[rubygem-zoom/f17] Fix packaging to really work properly

Mamoru Tasaka mtasaka at fedoraproject.org
Sun Apr 8 06:07:42 UTC 2012


commit deccb6d3d498479fd937cce89f907607fcd32d6c
Author: Mamoru Tasaka <tasaka1 at localhost.localdomain>
Date:   Sun Apr 8 15:07:28 2012 +0900

    Fix packaging to really work properly

 rubygem-zoom.spec |   93 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 57 insertions(+), 36 deletions(-)
---
diff --git a/rubygem-zoom.spec b/rubygem-zoom.spec
index 89c46dc..f893844 100644
--- a/rubygem-zoom.spec
+++ b/rubygem-zoom.spec
@@ -1,23 +1,26 @@
-%define		gemdir		%{_datadir}/rubygems
-%define		gemname		zoom
-%define		geminstdir	%{gemdir}/gems/%{gemname}-%{version}
-%define		gemextdir	%{_libdir}/gems/exts/%{gemname}-%{version} 
+%define		gem_name		zoom
 
-%{!?ruby_sitearch:	%global	ruby_sitearch	%(ruby -rrbconfig -e "puts RbConfig::CONFIG['sitearchdir']")}
+%if 0%{?fedora} < 17
+%global	ruby_sitearch	%(ruby -rrbconfig -e "puts Config::CONFIG['sitearchdir']")
+%endif
 
-%define		rubyabi		1.9
+%if 0%{?fedora} >= 17
+%define		rubyabi		1.9.1
+%else
+%define		rubyabi		1.8
+%endif
 %define		repoid		28211
 
 
-Name:		rubygem-%{gemname}
+Name:		rubygem-%{gem_name}
 Version:	0.4.1
-Release:	14%{?dist}
+Release:	15%{?dist}
 Group:		Development/Languages
 Summary:	Ruby binding to ZOOM
 
 License:	LGPLv2+
 URL:		http://ruby-zoom.rubyforge.org/
-Source0:	http://gems.rubyforge.org/gems/%{gemname}-%{version}.gem
+Source0:	http://gems.rubyforge.org/gems/%{gem_name}-%{version}.gem
 Patch0:		zoom-0.4.1-cert-chain-must-not-be-nil.patch
 Patch1:		zoom-0.4.1-authors.patch
 # Use abort() instead of break
@@ -39,9 +42,9 @@ BuildRequires:	libyaz-devel
 BuildRequires:	tcp_wrappers-devel
 
 Requires:	ruby(abi) >= %{rubyabi}
-Requires:	ruby(rubygems)
+Requires:	rubygems-devel
 
-Provides:	rubygem(%{gemname}) = %{version}-%{release}
+Provides:	rubygem(%{gem_name}) = %{version}-%{release}
 # Obsolete but not provide
 # Obsoletes: ruby(zoom) < 0.3.0 does not obsolete ruby-zoom
 Obsoletes:	ruby-zoom < 0.3.0
@@ -62,10 +65,15 @@ This package contains documentation for %{name}.
 
 
 %prep
-gem unpack %{SOURCE0}
-%setup -q -D -T -n %{gemname}-%{version}
+%setup -q -c -T
+TOPDIR=$(pwd)
+
+mkdir TMP
+cd TMP
 
-gem spec %{SOURCE0} -l --ruby > %{gemname}.gemspec
+gem unpack %{SOURCE0}
+cd %{gem_name}-%{version}
+gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec
 
 %patch0 -p1
 %patch1 -p1 
@@ -73,37 +81,44 @@ gem spec %{SOURCE0} -l --ruby > %{gemname}.gemspec
 %patch3 -p1 -b .no-newline
 %patch4 -p1 -b .ruby19
 
-%build
-mkdir -p .%{gemdir}
+gem build %{gem_name}.gemspec
+cp -p ./%{gem_name}-%{version}.gem $TOPDIR
 
-# Create the gem as gem install only works on a gem file
-gem build %{gemname}.gemspec
+%build
+mkdir -p .%{gem_dir}
 
 export CONFIGURE_ARGS="--with-cflags='%{optflags}'"
 gem install \
 	-V \
 	--local \
-	--install-dir ./%{gemdir} \
+	--install-dir ./%{gem_dir} \
 	--force \
         --rdoc \
-	%{gemname}-%{version}.gem
+	%{gem_name}-%{version}.gem
 
-chmod 0644 ./%{gemdir}/cache/%{gemname}-%{version}.gem
+chmod 0644 ./%{gem_cache}
 find . -type f -print0 | xargs --null chmod ugo+r
 
 %install
-mkdir -p %{buildroot}%{gemdir}
-cp -a ./%{gemdir}/* %{buildroot}%{gemdir}/
+mkdir -p %{buildroot}%{gem_dir}
+cp -a ./%{gem_dir}/* %{buildroot}%{gem_dir}/
 
 # If there are C extensions, mv them to the extdir.
 # $REQUIRE_PATHS is taken from the first value of the require_paths field in
 # the gemspec file.  It will typically be either "lib" or "ext".  For instance:
 #  s.require_paths = ["lib"] 
-mkdir -p %{buildroot}%{gemextdir}/lib
-mv %{buildroot}%{geminstdir}/lib/%{gemname}.so %{buildroot}%{gemextdir}/lib/
+%if 0%{?fedora} >= 17
+mkdir -p %{buildroot}%{gem_extdir}/lib
+mv %{buildroot}%{gem_instdir}/lib/%{gem_name}.so %{buildroot}%{gem_extdir}/lib/
+%else
+mkdir -p %{buildroot}%{ruby_sitearch}
+mv %{buildroot}%{gem_instdir}/lib/%{gem_name}.so %{buildroot}%{ruby_sitearch}
+%endif
 
 # clean the built bits out
-rm -rf %{buildroot}%{gemdir}/gems/%{gemname}-%{version}/src/*.o %{gemdir}/gems/%{gemname}-%{version}/src/*.so
+rm -rf %{buildroot}%{gem_dir}/gems/%{gem_name}-%{version}/src/
+
+rm -rf %{buildroot}%{gem_instdir}/.yardoc
 
 %check
 # Net connection needed, disabling now.
@@ -111,21 +126,27 @@ exit 0
 rake test
 
 %files
-%{gemextdir}/lib/%{gemname}.so
-%dir %{geminstdir}/
-%doc %{geminstdir}/[A-Z]*
-%{gemdir}/cache/%{gemname}-%{version}.gem
-%{gemdir}/doc/%{gemname}-%{version}/
-%{geminstdir}/src/
-%{gemdir}/specifications/%{gemname}-%{version}.gemspec
+%if 0%{?fedora} >= 17
+%{gem_extdir}/lib/%{gem_name}.so
+%else
+%{ruby_sitearch}/%{gem_name}.so
+%endif
+%dir %{gem_instdir}/
+%doc %{gem_instdir}/[A-Z]*
+%{gem_cache}
+%{gem_spec}
 
 %files doc
 %defattr(-,root,root,-)
-%{geminstdir}/Rakefile
-%{geminstdir}/sample/
-%{geminstdir}/test/
+%{gem_docdir}/
+%{gem_instdir}/Rakefile
+%{gem_instdir}/sample/
+%{gem_instdir}/test/
 
 %changelog
+* Sun Apr  8 2012 Mamoru Tasaka <mtasaka at fedoraproject.org> - 0.4.1-15
+- Fix packaging to really work properly
+
 * Fri Mar 23 2012 Tom Callaway <spot at fedoraproject.org> - 0.4.1-14
 - get this thing working
 


More information about the scm-commits mailing list