[packages/ruby-mongrel] Rel 13; gem based build

arekm arekm at pld-linux.org
Sat Mar 21 11:08:50 CET 2026


commit b7c8daa8d68d2a0ad8cd8bd4d99e6cd02e4090c5
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Sat Mar 21 11:07:43 2026 +0100

    Rel 13; gem based build

 ruby-mongrel-nogems.patch  | 93 ----------------------------------------------
 ruby-mongrel-rbraise.patch | 11 ++++++
 ruby-mongrel.spec          | 69 +++++++++++++++-------------------
 3 files changed, 40 insertions(+), 133 deletions(-)
---
diff --git a/ruby-mongrel.spec b/ruby-mongrel.spec
index b5eb006..6b10c9d 100644
--- a/ruby-mongrel.spec
+++ b/ruby-mongrel.spec
@@ -3,21 +3,18 @@ Summary:	Ruby webserver toolkit
 Summary(pl.UTF-8):	Toolkit języka Ruby dla serwera WWW
 Name:		ruby-%{pkgname}
 Version:	1.1.5
-Release:	12
+Release:	13
 License:	Ruby
 Group:		Development/Libraries
 Source0:	https://rubygems.org/downloads/%{pkgname}-%{version}.gem
 # Source0-md5:	a37617eb48f0932cc32143b2d76c0d12
-Patch0:		%{name}-nogems.patch
-Patch1:		%{name}-ruby1.9.patch
-Patch2:		format-security.patch
+Patch0:		%{name}-ruby1.9.patch
+Patch1:		format-security.patch
+Patch2:		ruby-mongrel-rbraise.patch
 URL:		https://rubygems.org/gems/mongrel
-BuildRequires:	dos2unix
-BuildRequires:	rpmbuild(macros) >= 1.277
+BuildRequires:	rpm-rubyprov
+BuildRequires:	rpmbuild(macros) >= 1.665
 BuildRequires:	ruby-devel
-BuildRequires:	ruby-irb
-BuildRequires:	ruby-modules
-BuildRequires:	setup.rb >= 3.4.1-6
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -53,46 +50,36 @@ ri documentation for %{pkgname}.
 Dokumentacji w formacie ri dla %{pkgname}.
 
 %prep
-%setup -q -c
-%{__tar} xf %{SOURCE0} -O data.tar.gz | %{__tar} xz
-find -newer README  -o -print | xargs touch --reference %{SOURCE0}
-dos2unix examples/mongrel_simple_service.rb
+%setup -q -n %{pkgname}-%{version}
 %patch -P0 -p1
 %patch -P1 -p1
 %patch -P2 -p1
 
-find -name '*.rb' -print0 | xargs -0 %{__sed} -i -e 's,\r$,,'
-
-cp %{_datadir}/setup.rb .
-
 %build
-# passing CFLAGS breaks -fPIC parsing,
-# patch mkmf module to be able to pass CC and OPTFLAGS
-%{__ruby} setup.rb config \
-	--prefix=%{_prefix} \
-	--bindir=%{_bindir} \
-	--libdir=%{_libdir} \
-	--datadir=%{_datadir} \
-	--mandir=%{_mandir} \
-	--sysconfdir=%{_sysconfdir} \
-	--localstatedir=%{_localstatedir} \
-	--rbdir=%{ruby_rubylibdir} \
-	--sodir=%{ruby_archdir} \
-	--make-prog="%{__make} CC=\"%{__cc}\""
-
-%{__ruby} setup.rb setup
+# pass CFLAGS to extconf.rb
+cd ext/http11
+%{__ruby} extconf.rb
+%{__make} \
+	CC="%{__cc}" \
+	CFLAGS="%{rpmcflags} -fPIC"
+cd ../..
+
+%__gem_helper spec
 
 rdoc --ri --op ri lib
 rdoc --op rdoc lib
-rm -r ri/{IO,Kernel,RequestLog,TCPServer}
-rm ri/created.rid
+rm -rf ri/IO ri/Kernel ri/RequestLog ri/TCPServer
+rm -f ri/created.rid
+rm -f ri/cache.ri
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{ruby_rubylibdir},%{ruby_ridir},%{ruby_rdocdir}}
+install -d $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{ruby_vendorarchdir},%{ruby_specdir},%{ruby_ridir},%{ruby_rdocdir},%{_bindir}}
 
-%{__ruby} setup.rb install \
-	--prefix=$RPM_BUILD_ROOT
+cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
+install -p ext/http11/http11.so $RPM_BUILD_ROOT%{ruby_vendorarchdir}
+cp -p %{pkgname}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
+install -p bin/* $RPM_BUILD_ROOT%{_bindir}
 
 cp -a ri/* $RPM_BUILD_ROOT%{ruby_ridir}
 cp -a rdoc $RPM_BUILD_ROOT%{ruby_rdocdir}/%{name}-%{version}
@@ -102,10 +89,12 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
+%doc README COPYING
 %attr(755,root,root) %{_bindir}/*
-%{ruby_rubylibdir}/*.rb
-%{ruby_rubylibdir}/mongrel
-%attr(755,root,root) %{ruby_archdir}/*.so
+%{ruby_vendorlibdir}/*.rb
+%{ruby_vendorlibdir}/mongrel
+%attr(755,root,root) %{ruby_vendorarchdir}/http11.so
+%{ruby_specdir}/%{pkgname}-%{version}.gemspec
 
 %files rdoc
 %defattr(644,root,root,755)
diff --git a/ruby-mongrel-nogems.patch b/ruby-mongrel-nogems.patch
deleted file mode 100644
index 63621c1..0000000
--- a/ruby-mongrel-nogems.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-diff -ur ruby-mongrel-1.1.5.orig/bin/mongrel_rails ruby-mongrel-1.1.5/bin/mongrel_rails
---- ruby-mongrel-1.1.5.orig/bin/mongrel_rails	1970-01-01 01:00:00.000000000 +0100
-+++ ruby-mongrel-1.1.5/bin/mongrel_rails	2009-08-08 20:13:26.256567691 +0200
-@@ -1,3 +1,4 @@
-+#!/usr/bin/ruby
- # Copyright (c) 2005 Zed A. Shaw
- # You can redistribute it and/or modify it under the same terms as Ruby.
- #
-@@ -7,7 +8,6 @@
- require 'yaml'
- require 'etc'
- 
--$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
- require 'mongrel'
- require 'mongrel/rails'
- 
-diff -ur ruby-mongrel-1.1.5.orig/examples/camping/blog.rb ruby-mongrel-1.1.5/examples/camping/blog.rb
---- ruby-mongrel-1.1.5.orig/examples/camping/blog.rb	1970-01-01 01:00:00.000000000 +0100
-+++ ruby-mongrel-1.1.5/examples/camping/blog.rb	2009-08-08 20:13:26.246567638 +0200
-@@ -1,8 +1,6 @@
- #!/usr/bin/env ruby
- 
- $:.unshift File.dirname(__FILE__) + "/../../lib"
--require 'rubygems'
--require_gem 'camping', '>=1.4'
- require 'camping/session'
-   
- Camping.goes :Blog
-diff -ur ruby-mongrel-1.1.5.orig/examples/camping/tepee.rb ruby-mongrel-1.1.5/examples/camping/tepee.rb
---- ruby-mongrel-1.1.5.orig/examples/camping/tepee.rb	1970-01-01 01:00:00.000000000 +0100
-+++ ruby-mongrel-1.1.5/examples/camping/tepee.rb	2009-08-08 20:13:26.246567638 +0200
-@@ -1,6 +1,6 @@
- #!/usr/bin/ruby
- $:.unshift File.dirname(__FILE__) + "/../../lib"
--%w(rubygems redcloth camping acts_as_versioned).each { |lib| require lib }
-+%w(redcloth camping acts_as_versioned).each { |lib| require lib }
- 
- Camping.goes :Tepee
- 
-diff -ur ruby-mongrel-1.1.5.orig/examples/mongrel_simple_service.rb ruby-mongrel-1.1.5/examples/mongrel_simple_service.rb
---- ruby-mongrel-1.1.5.orig/examples/mongrel_simple_service.rb	1970-01-01 01:00:00.000000000 +0100
-+++ ruby-mongrel-1.1.5/examples/mongrel_simple_service.rb	2009-08-08 20:16:44.469881354 +0200
-@@ -1,5 +1,4 @@
- # This script emualtes script/server behavior but running webrick http server 
--require 'rubygems'
- 
- require 'mongrel'
- require 'yaml'
-diff -ur ruby-mongrel-1.1.5.orig/lib/mongrel/command.rb ruby-mongrel-1.1.5/lib/mongrel/command.rb
---- ruby-mongrel-1.1.5.orig/lib/mongrel/command.rb	1970-01-01 01:00:00.000000000 +0100
-+++ ruby-mongrel-1.1.5/lib/mongrel/command.rb	2009-08-08 20:13:26.253234425 +0200
-@@ -148,6 +148,7 @@
- 
-       # Builds a list of possible commands from the Command derivates list
-       def commands
-+				return [] # Neutered
-         pmgr = GemPlugin::Manager.instance
-         list = pmgr.plugins["/commands"].keys
-         return list.sort
-@@ -190,7 +191,8 @@
-             cmd_name = "mongrel::" + cmd_name
-           end
- 
--          command = GemPlugin::Manager.instance.create("/commands/#{cmd_name}", :argv => args)
-+					# Neutered
-+          # command = GemPlugin::Manager.instance.create("/commands/#{cmd_name}", :argv => args)
-         rescue OptionParser::InvalidOption
-           STDERR.puts "#$! for command '#{cmd_name}'"
-           STDERR.puts "Try #{cmd_name} -h to get help."
-diff -ur ruby-mongrel-1.1.5.orig/lib/mongrel/gems.rb ruby-mongrel-1.1.5/lib/mongrel/gems.rb
---- ruby-mongrel-1.1.5.orig/lib/mongrel/gems.rb	1970-01-01 01:00:00.000000000 +0100
-+++ ruby-mongrel-1.1.5/lib/mongrel/gems.rb	2009-08-08 20:16:10.039884828 +0200
-@@ -5,18 +5,10 @@
-       def require(library, version = nil)
-         begin
-           Kernel.require library
--        rescue LoadError, RuntimeError => e
--          begin 
--            # ActiveSupport breaks 'require' by making it always return a true value
--            Kernel.require 'rubygems'
--            version ? gem(library, version) : gem(library)
--            retry
--          rescue Gem::LoadError, LoadError, RuntimeError
-+                              rescue LoadError, RuntimeError
-             # puts "** #{library.inspect} could not be loaded" unless library == "mongrel_experimental"
--          end
-         end  
-       end
--      
-     end    
-   end
- end
-\ No newline at end of file
diff --git a/ruby-mongrel-rbraise.patch b/ruby-mongrel-rbraise.patch
new file mode 100644
index 0000000..f799ff9
--- /dev/null
+++ b/ruby-mongrel-rbraise.patch
@@ -0,0 +1,11 @@
+--- a/ext/http11/http11.c.orig_for_us	2026-03-21 01:48:09.713152068 +0100
++++ b/ext/http11/http11.c	2026-03-21 01:48:09.718034484 +0100
+@@ -44,7 +44,7 @@
+ #define DEF_MAX_LENGTH(N,length) const size_t MAX_##N##_LENGTH = length; const char *MAX_##N##_LENGTH_ERR = "HTTP element " # N  " is longer than the " # length " allowed length."
+ 
+ /** Validates the max length of given input and throws an HttpParserError exception if over. */
+-#define VALIDATE_MAX_LENGTH(len, N) if(len > MAX_##N##_LENGTH) { rb_raise("%s", eHttpParserError, MAX_##N##_LENGTH_ERR); }
++#define VALIDATE_MAX_LENGTH(len, N) if(len > MAX_##N##_LENGTH) { rb_raise(eHttpParserError, "%s", MAX_##N##_LENGTH_ERR); }
+ 
+ /** Defines global strings in the init method. */
+ #define DEF_GLOBAL(N, val)   global_##N = rb_obj_freeze(rb_str_new2(val)); rb_global_variable(&global_##N)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/ruby-mongrel.git/commitdiff/b7c8daa8d68d2a0ad8cd8bd4d99e6cd02e4090c5



More information about the pld-cvs-commit mailing list