[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