[packages/ruby-thin] new, version 1.5.0

glen glen at pld-linux.org
Sun Oct 6 12:48:49 CEST 2013


commit 92b0802327b892c85e0f524784b4a90db1c6e5cd
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Sun Oct 6 13:48:15 2013 +0300

    new, version 1.5.0
    
    based on fedora rubygem-thin package
    97bf81fa560fe1eb0ca9e05c94ef55261d5312eb

 fix-install-spec.patch      |  13 ++++++
 remove-rspec1-require.patch |  10 +++++
 rspec2-null-object.patch    |  31 +++++++++++++
 ruby-thin.spec              | 107 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 161 insertions(+)
---
diff --git a/ruby-thin.spec b/ruby-thin.spec
new file mode 100644
index 0000000..65ddbd0
--- /dev/null
+++ b/ruby-thin.spec
@@ -0,0 +1,107 @@
+#
+# Conditional build:
+%bcond_with	tests		# build without tests
+
+%define	pkgname thin
+Summary:	A thin and fast web server
+Name:		ruby-%{pkgname}
+Version:	1.5.0
+Release:	1
+License:	(GPL v2 or Ruby) and MIT
+Group:		Development/Languages
+Source0:	http://rubygems.org/gems/%{pkgname}-%{version}.gem
+# Source0-md5:	2f011aba841da210e49d09b85130dfc0
+# git clone https://github.com/macournoyer/thin.git && cd thin && git checkout v1.5.0
+# tar czvf thin-1.5.0-tests.tgz spec/
+Source1:	http://pkgs.fedoraproject.org/repo/pkgs/rubygem-thin/thin-%{version}-tests.tgz/d7ee25c7f947151b93501668c53e2d34/thin-%{version}-tests.tgz
+# Source1-md5:	d7ee25c7f947151b93501668c53e2d34
+# https://github.com/macournoyer/thin/issues/77
+Patch1:		remove-rspec1-require.patch
+Patch2:		rspec2-null-object.patch
+# https://github.com/macournoyer/thin/issues/76
+Patch3:		fix-install-spec.patch
+URL:		http://code.macournoyer.com/thin/
+BuildRequires:	rpm-rubyprov
+BuildRequires:	rpmbuild(macros) >= 1.656
+BuildRequires:	ruby-devel
+BuildRequires:	sed >= 4.0
+%if %{with tests}
+BuildRequires:	ruby-daemons >= 1.0.9
+BuildRequires:	ruby-eventmachine >= 0.12.6
+BuildRequires:	ruby-rack >= 1.0.0
+BuildRequires:	ruby-rspec
+%endif
+Requires:	curl
+Requires:	ruby-daemons >= 1.0.9
+Requires:	ruby-eventmachine >= 0.12.6
+Requires:	ruby-rack >= 1.0.0
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+Thin is a Ruby web server that glues together three of the best Ruby
+libraries in web history. The Mongrel parser, the root of Mongrel
+speed and security, Event Machine, a network I/O library with
+extremely high scalability and Rack, a minimal interface between
+webservers and Ruby frameworks.
+
+%package doc
+Summary:	Documentation for %{name}
+Group:		Documentation
+Requires:	%{name} = %{version}-%{release}
+
+%description doc
+Documentation for %{name}.
+
+%prep
+%setup -q -n %{pkgname}-%{version} -a1
+%{__sed} -i -e '1 s,#!.*ruby,#!%{__ruby},' bin/*
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+
+%build
+cd ext/thin_parser
+%{__ruby} extconf.rb
+%{__make} \
+	CC="%{__cc}" \
+	LDFLAGS="%{rpmldflags}" \
+	CFLAGS="%{rpmcflags} -fPIC"
+
+%if %{with tests}
+# Depends on rubygem-benchmark_unit, not available in Fedora yet.
+rm -rf spec/perf
+# Test fails.
+# https://github.com/macournoyer/thin/issues/40
+rm -f spec/server/pipelining_spec.rb
+# The 'should force kill process in pid file' spec is not compatible with RSpec2.
+# https://github.com/rspec/rspec-core/issues/520
+# http://rubyforge.org/tracker/?func=detail&aid=29450&group_id=524&atid=2086
+ruby -ne "print unless (99..117).include? $." spec/daemonizing_spec.rb > spec/daemonizing_spec.rb
+
+rspec spec
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{_bindir}}
+cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
+cp -a bin/* $RPM_BUILD_ROOT%{_bindir}
+
+# install ext
+install -d $RPM_BUILD_ROOT%{ruby_vendorarchdir}
+install -p ext/thin_parser/thin_parser.so $RPM_BUILD_ROOT%{ruby_vendorarchdir}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc README.md
+%attr(755,root,root) %{_bindir}/thin
+%{ruby_vendorlibdir}/thin
+%{ruby_vendorlibdir}/thin.rb
+%attr(755,root,root) %{ruby_vendorarchdir}/thin_parser.so
+
+# rack adapter
+%{ruby_vendorlibdir}/rack/adapter/loader.rb
+%{ruby_vendorlibdir}/rack/adapter/rails.rb
diff --git a/fix-install-spec.patch b/fix-install-spec.patch
new file mode 100644
index 0000000..d6e6f52
--- /dev/null
+++ b/fix-install-spec.patch
@@ -0,0 +1,13 @@
+diff --git a/spec/controllers/service_spec.rb b/spec/controllers/service_spec.rb
+index 10abdaf..3cff608 100644
+--- a/spec/controllers/service_spec.rb
++++ b/spec/controllers/service_spec.rb
+@@ -28,7 +28,7 @@ describe Service do
+     
+     File.exist?(Service::INITD_PATH).should be_true
+     File.read(Service::INITD_PATH).should include('CONFIG_PATH=tmp/sandbox/etc/thin',
+-                                                  'SCRIPT_NAME=tmp/sandbox/etc/init.d/thin',
++                                                  'SCRIPT_NAME=tmp/sandbox' + (File.directory?('/etc/rc.d') ? '/etc/rc.d/thin' : '/etc/init.d/thin'),
+                                                   'DAEMON=' + Command.script)
+   end
+   
diff --git a/remove-rspec1-require.patch b/remove-rspec1-require.patch
new file mode 100644
index 0000000..7447a8a
--- /dev/null
+++ b/remove-rspec1-require.patch
@@ -0,0 +1,10 @@
+--- a/spec/spec_helper.rb
++++ b/spec/spec_helper.rb
+@@ -1,7 +1,5 @@
+ require 'rubygems'
+ require 'thin'
+-gem "rspec", "~> 1.2.9"
+-require 'spec'
+ require 'benchmark'
+ require 'timeout'
+ require 'fileutils'
diff --git a/rspec2-null-object.patch b/rspec2-null-object.patch
new file mode 100644
index 0000000..23f8201
--- /dev/null
+++ b/rspec2-null-object.patch
@@ -0,0 +1,31 @@
+--- a/spec/backends/swiftiply_client_spec.rb
++++ b/spec/backends/swiftiply_client_spec.rb
+@@ -3,7 +3,7 @@
+ describe Backends::SwiftiplyClient do
+   before do
+     @backend = Backends::SwiftiplyClient.new('0.0.0.0', 3333)
+-    @backend.server = mock('server', :null_object => true)
++    @backend.server = mock('server').as_null_object
+   end
+   
+   it "should connect" do
+@@ -26,7 +26,7 @@
+   before do
+     @connection = SwiftiplyConnection.new(nil)
+     @connection.backend = Backends::SwiftiplyClient.new('0.0.0.0', 3333)
+-    @connection.backend.server = mock('server', :null_object => true)
++    @connection.backend.server = mock('server').as_null_object
+   end
+   
+   it do
+--- a/spec/connection_spec.rb
++++ b/spec/connection_spec.rb
+@@ -3,7 +3,7 @@
+ describe Connection do
+   before do
+     EventMachine.stub(:send_data)
+-    @connection = Connection.new(mock('EM', :null_object => true))
++    @connection = Connection.new(mock('EM').as_null_object)
+     @connection.post_init
+     @connection.backend = mock("backend", :ssl? => false)
+     @connection.app = proc do |env|
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/ruby-thin.git/commitdiff/92b0802327b892c85e0f524784b4a90db1c6e5cd



More information about the pld-cvs-commit mailing list