From 6862a55be2f7713e1fd90f689925f6e523357281 Mon Sep 17 00:00:00 2001 From: Mamoru Tasaka Date: Tue, 12 Oct 2010 19:33:04 +0900 Subject: [PATCH 1/5] Initial import --- .gitignore | 1 + rubygem-pango-0.90.2-enable-testsuite.patch | 29 +++ rubygem-pango.spec | 255 ++++++++++++++++++++ sources | 1 + 4 files changed, 286 insertions(+) create mode 100644 rubygem-pango-0.90.2-enable-testsuite.patch create mode 100644 rubygem-pango.spec diff --git a/.gitignore b/.gitignore index e69de29..c6b2ce5 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/pango-0.90.2.gem diff --git a/rubygem-pango-0.90.2-enable-testsuite.patch b/rubygem-pango-0.90.2-enable-testsuite.patch new file mode 100644 index 0000000..4e4c07a --- /dev/null +++ b/rubygem-pango-0.90.2-enable-testsuite.patch @@ -0,0 +1,29 @@ +--- pango-0.90.2/test/run-test.rb.debug 1970-01-01 09:00:00.000000000 +0900 ++++ pango-0.90.2/test/run-test.rb 2010-09-28 06:40:38.000000000 +0900 +@@ -1,5 +1,17 @@ + #!/usr/bin/env ruby + ++require 'rubygems' ++gem 'test-unit' ++require 'test/unit' ++ ++$LOAD_PATH.unshift(File.dirname(__FILE__), "..", "lib") ++$LOAD_PATH.unshift(File.dirname(__FILE__)) ++begin ++ gem "cairo" ++ gem "glib2" ++rescue LoadError ++end ++ + $VERBOSE = true + + ruby_gnome2_base = File.join(File.dirname(__FILE__), "..", "..") +@@ -9,7 +21,7 @@ + pango_base = File.join(ruby_gnome2_base, "pango") + + $LOAD_PATH.unshift(File.join(glib_base, "test")) +-require 'glib-test-init' ++#require 'glib-test-init' + + [[glib_base, "glib2"], + [pango_base, "pango"]].each do |target, module_name| diff --git a/rubygem-pango.spec b/rubygem-pango.spec new file mode 100644 index 0000000..537ea96 --- /dev/null +++ b/rubygem-pango.spec @@ -0,0 +1,255 @@ +%global ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']") +%global ruby_sitearch %(ruby -rrbconfig -e "puts Config::CONFIG['sitearchdir']") + +%global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null) +%global gemname pango +%global geminstdir %{gemdir}/gems/%{gemname}-%{version} + +%global rubyabi 1.8 + +Summary: Ruby binding of pango-1.x +Name: rubygem-%{gemname} +Version: 0.90.2 +Release: 5%{?dist} +Group: Development/Languages +# from README +License: LGPLv2 +URL: http://ruby-gnome2.sourceforge.jp/ +Source0: http://rubygems.org/gems/%{gemname}-%{version}.gem +# Need to contact upstream? +Patch0: rubygem-pango-0.90.2-enable-testsuite.patch + +BuildRequires: ruby(abi) = %{rubyabi} +BuildRequires: rubygems +BuildRequires: rubygem-cairo-devel +BuildRequires: rubygem-glib2-devel +BuildRequires: ruby-devel +BuildRequires: pango-devel +BuildRequires(check): rubygem(test-unit) +Requires: ruby(abi) = %{rubyabi} +Requires: rubygems +Requires: rubygem(cairo) +Requires: rubygem(glib2) = %{version} +Provides: rubygem(%{gemname}) = %{version} + +%description +Ruby/Pango is a Ruby binding of pango-1.x. + +%package doc +Summary: Documentation for %{name} +Group: Documentation +Requires: %{name} = %{version}-%{release} + +%description doc +This package contains documentation for %{name}. + +%package -n ruby-%{gemname} +Summary: Non-Gem support package for %{gemname} +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +# Requires for corresponsing non-gem rpms +Requires: ruby(cairo) +Requires: ruby(glib2) = %{version} +Provides: ruby(%{gemname}) = %{version}-%{release} + +%description -n ruby-%{gemname} +This package provides non-Gem support for %{gemname}. + +%package devel +Summary: Ruby/pango development environment +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +Requires: ruby-devel +Requires: pango-devel +Requires: rubygem-cairo-devel +# Obsoletes / Provides +# ruby(%%{gemname}-devel) Provides is for compatibility +Obsoletes: ruby-%{gemname}-devel < 0.90.2-3.999 +Provides: ruby-%{gemname}-devel = %{version}-%{release} +Provides: ruby(%{gemname}-devel) = %{version}-%{release} + +%description devel +Header files and libraries for building a extension library for the +rubygem-%{gemname} + +%prep +%setup -q -c -T +mkdir -p .%{gemdir} + +export DESTDIR=$(pwd)/TMPINSTDIR +export CONFIGURE_ARGS="--with-cflags='%{optflags}'" +gem install \ + -V \ + --local \ + --install-dir .%{gemdir} \ + --force \ + --rdoc \ + %{SOURCE0} + +find . -name \*.gem | xargs chmod 0644 + +# patch +pushd .%{geminstdir} +%patch0 -p1 -b .debug +popd + +pushd .%{geminstdir} +# Fix wrong shebang +grep -rl /usr/local/bin sample | \ + xargs sed -i -e 's|/usr/local/bin|/usr/bin|' + +# Kill shebang +grep -rl '#!.*/usr/bin' sample | \ + xargs sed -i -e '\@#![ ]*/usr/bin@d' +find sample/ -name \*.rb | xargs chmod 0644 +popd + +%build + +%install +rm -rf %{buildroot} + +# Once copy all +mkdir -p %{buildroot}%{gemdir} +cp -a .%{gemdir}/* \ + %{buildroot}%{gemdir}/ + +pushd %{buildroot} +# move header files, C extension files to the correct directory +mkdir -p .%{ruby_sitearch} +mv .%{geminstdir}/lib/*.h .%{ruby_sitearch}/ +mv .%{geminstdir}/lib/%{gemname}.so .%{ruby_sitearch}/ +popd + +# move pkgconfig file +mkdir %{buildroot}%{_libdir}/pkgconfig +install -cpm 644 TMPINSTDIR/%{_libdir}/pkgconfig/*.pc \ + %{buildroot}%{_libdir}/pkgconfig/ + + +# Cleanups +pushd %{buildroot} +rm -rf .%{geminstdir}/ext/ +rm -f .%{geminstdir}/extconf.rb +popd + +# The following method is completely copied from rubygem-gettext +# spec file +# +# Create symlinks +## +## Note that before switching to gem %%{ruby_sitelib}/%%{gemname} +## already existed as a directory, so this cannot be replaced +## by symlink (cpio fails) +## Similarly, all directories under %%{ruby_sitelib} cannot be +## replaced by symlink +# + +create_symlink_rec(){ + +ORIGBASEDIR=$1 +TARGETBASEDIR=$2 + +## First calculate relative path of ORIGBASEDIR +## from TARGETBASEDIR +TMPDIR=$TARGETBASEDIR +BACKDIR= +DOWNDIR= +num=0 +nnum=0 +while true +do + num=$((num+1)) + TMPDIR=$(echo $TMPDIR | sed -e 's|/[^/][^/]*$||') + DOWNDIR=$(echo $ORIGBASEDIR | sed -e "s|^$TMPDIR||") + if [ x$DOWNDIR != x$ORIGBASEDIR ] + then + nnum=0 + while [ $nnum -lt $num ] + do + BACKDIR="../$BACKDIR" + nnum=$((nnum+1)) + done + break + fi +done + +RELBASEDIR=$( echo $BACKDIR/$DOWNDIR | sed -e 's|//*|/|g' ) + +## Next actually create symlink +pushd %{buildroot}/$ORIGBASEDIR +find . -type f | while read f +do + DIRNAME=$(dirname $f) + BACK2DIR=$(echo $DIRNAME | sed -e 's|/[^/][^/]*|/..|g') + mkdir -p %{buildroot}${TARGETBASEDIR}/$DIRNAME + LNNAME=$(echo $BACK2DIR/$RELBASEDIR/$f | \ + sed -e 's|^\./||' | sed -e 's|//|/|g' | \ + sed -e 's|/\./|/|' ) + ln -s -f $LNNAME %{buildroot}${TARGETBASEDIR}/$f +done +popd + +} + +create_symlink_rec %{geminstdir}/lib %{ruby_sitelib} + +%check +pushd .%{geminstdir} + +# kill unneeded make process +rm -rf ./TMPBINDIR +mkdir ./TMPBINDIR +pushd ./TMPBINDIR +ln -sf /bin/true make +export PATH=$(pwd):$PATH +popd + +# test_default(TestLanguage) [./test/test-language.rb] needs LANG=ja_JP.UTF-8, for example +LANG=en_US.UTF-8 +ruby ./test/run-test.rb + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root,-) +%dir %{geminstdir} +%dir %{geminstdir}/lib/ + +%doc %{geminstdir}/[A-Z]* +%exclude %{geminstdir}/Rakefile + +%{geminstdir}/lib/%{gemname}.rb +%{ruby_sitearch}/%{gemname}.so + +%{gemdir}/cache/%{gemname}-%{version}.gem +%{gemdir}/specifications/%{gemname}-%{version}.gemspec + +%files -n ruby-%{gemname} +%defattr(-,root,root,-) +%{ruby_sitelib}/*.rb + +%files devel +%defattr(-,root,root,-) +%{_libdir}/pkgconfig/ruby-%{gemname}.pc +%{ruby_sitearch}/rbpango.h +%{ruby_sitearch}/rbpangoversion.h + +%files doc +%defattr(-,root,root,-) +%{gemdir}/doc/%{gemname}-%{version} +%{geminstdir}/Rakefile +%{geminstdir}/sample/ +%{geminstdir}/test/ + +%changelog +* Fri Oct 1 2010 Mamoru Tasaka - 0.90.2-5 +- Fix up summary +- Fix Requires for -devel subpackage + +* Fri Oct 1 2010 Mamoru Tasaka - 0.90.2-4 +- Use formally released gem file + +* Tue Sep 28 2010 Mamoru Tasaka - 0.90.2-2 +- Initial package diff --git a/sources b/sources index e69de29..c0a13b2 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +5c63671ab8d9e7ccbce5050ec6c76f46 pango-0.90.2.gem From ff0200584820fc5a369df079d7dcb9c3f1eecd32 Mon Sep 17 00:00:00 2001 From: Mamoru Tasaka Date: Sun, 24 Oct 2010 05:20:02 +0900 Subject: [PATCH 2/5] - 0.90.3 --- .gitignore | 1 + rubygem-pango-0.90.2-enable-testsuite.patch | 29 -------------- rubygem-pango.spec | 42 ++++++++++++++------- sources | 2 +- 4 files changed, 30 insertions(+), 44 deletions(-) delete mode 100644 rubygem-pango-0.90.2-enable-testsuite.patch diff --git a/.gitignore b/.gitignore index c6b2ce5..6c7c96c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /pango-0.90.2.gem +/pango-0.90.3.gem diff --git a/rubygem-pango-0.90.2-enable-testsuite.patch b/rubygem-pango-0.90.2-enable-testsuite.patch deleted file mode 100644 index 4e4c07a..0000000 --- a/rubygem-pango-0.90.2-enable-testsuite.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- pango-0.90.2/test/run-test.rb.debug 1970-01-01 09:00:00.000000000 +0900 -+++ pango-0.90.2/test/run-test.rb 2010-09-28 06:40:38.000000000 +0900 -@@ -1,5 +1,17 @@ - #!/usr/bin/env ruby - -+require 'rubygems' -+gem 'test-unit' -+require 'test/unit' -+ -+$LOAD_PATH.unshift(File.dirname(__FILE__), "..", "lib") -+$LOAD_PATH.unshift(File.dirname(__FILE__)) -+begin -+ gem "cairo" -+ gem "glib2" -+rescue LoadError -+end -+ - $VERBOSE = true - - ruby_gnome2_base = File.join(File.dirname(__FILE__), "..", "..") -@@ -9,7 +21,7 @@ - pango_base = File.join(ruby_gnome2_base, "pango") - - $LOAD_PATH.unshift(File.join(glib_base, "test")) --require 'glib-test-init' -+#require 'glib-test-init' - - [[glib_base, "glib2"], - [pango_base, "pango"]].each do |target, module_name| diff --git a/rubygem-pango.spec b/rubygem-pango.spec index 537ea96..064a0f1 100644 --- a/rubygem-pango.spec +++ b/rubygem-pango.spec @@ -5,31 +5,32 @@ %global gemname pango %global geminstdir %{gemdir}/gems/%{gemname}-%{version} +%global glibminver 0.90.3 +%global obsoleteevr 0.90.3-1.999 + %global rubyabi 1.8 Summary: Ruby binding of pango-1.x Name: rubygem-%{gemname} -Version: 0.90.2 -Release: 5%{?dist} +Version: 0.90.3 +Release: 2%{?dist} Group: Development/Languages # from README License: LGPLv2 URL: http://ruby-gnome2.sourceforge.jp/ Source0: http://rubygems.org/gems/%{gemname}-%{version}.gem -# Need to contact upstream? -Patch0: rubygem-pango-0.90.2-enable-testsuite.patch BuildRequires: ruby(abi) = %{rubyabi} BuildRequires: rubygems BuildRequires: rubygem-cairo-devel -BuildRequires: rubygem-glib2-devel +BuildRequires: rubygem-glib2-devel >= %{glibminver} BuildRequires: ruby-devel BuildRequires: pango-devel BuildRequires(check): rubygem(test-unit) Requires: ruby(abi) = %{rubyabi} Requires: rubygems Requires: rubygem(cairo) -Requires: rubygem(glib2) = %{version} +Requires: rubygem(glib2) >= %{glibminver} Provides: rubygem(%{gemname}) = %{version} %description @@ -64,7 +65,7 @@ Requires: pango-devel Requires: rubygem-cairo-devel # Obsoletes / Provides # ruby(%%{gemname}-devel) Provides is for compatibility -Obsoletes: ruby-%{gemname}-devel < 0.90.2-3.999 +Obsoletes: ruby-%{gemname}-devel < %{obsoleteevr} Provides: ruby-%{gemname}-devel = %{version}-%{release} Provides: ruby(%{gemname}-devel) = %{version}-%{release} @@ -76,7 +77,7 @@ rubygem-%{gemname} %setup -q -c -T mkdir -p .%{gemdir} -export DESTDIR=$(pwd)/TMPINSTDIR +export pkgconfigdir=$(pwd)%{_libdir}/pkgconfig export CONFIGURE_ARGS="--with-cflags='%{optflags}'" gem install \ -V \ @@ -88,11 +89,6 @@ gem install \ find . -name \*.gem | xargs chmod 0644 -# patch -pushd .%{geminstdir} -%patch0 -p1 -b .debug -popd - pushd .%{geminstdir} # Fix wrong shebang grep -rl /usr/local/bin sample | \ @@ -123,7 +119,7 @@ popd # move pkgconfig file mkdir %{buildroot}%{_libdir}/pkgconfig -install -cpm 644 TMPINSTDIR/%{_libdir}/pkgconfig/*.pc \ +install -cpm 644 ./%{_libdir}/pkgconfig/*.pc \ %{buildroot}%{_libdir}/pkgconfig/ @@ -205,6 +201,21 @@ ln -sf /bin/true make export PATH=$(pwd):$PATH popd +cat > glib-test-init.rb < - 0.90.3-2 +- 0.90.3 + * Fri Oct 1 2010 Mamoru Tasaka - 0.90.2-5 - Fix up summary - Fix Requires for -devel subpackage diff --git a/sources b/sources index c0a13b2..ff19c71 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5c63671ab8d9e7ccbce5050ec6c76f46 pango-0.90.2.gem +8fd29b854e5027ceb01e67212d9d9587 pango-0.90.3.gem From 47ccada6dbd1fafef1c1440ca0771a639e59552a Mon Sep 17 00:00:00 2001 From: Mamoru Tasaka Date: Mon, 25 Oct 2010 03:06:43 +0900 Subject: [PATCH 3/5] - 0.90.4 --- .gitignore | 1 + rubygem-pango.spec | 11 +++++++---- sources | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 6c7c96c..ec77436 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /pango-0.90.2.gem /pango-0.90.3.gem +/pango-0.90.4.gem diff --git a/rubygem-pango.spec b/rubygem-pango.spec index 064a0f1..9c07c09 100644 --- a/rubygem-pango.spec +++ b/rubygem-pango.spec @@ -5,14 +5,14 @@ %global gemname pango %global geminstdir %{gemdir}/gems/%{gemname}-%{version} -%global glibminver 0.90.3 -%global obsoleteevr 0.90.3-1.999 +%global glibminver 0.90.4 +%global obsoleteevr 0.90.4-1.999 %global rubyabi 1.8 Summary: Ruby binding of pango-1.x Name: rubygem-%{gemname} -Version: 0.90.3 +Version: 0.90.4 Release: 2%{?dist} Group: Development/Languages # from README @@ -50,7 +50,7 @@ Group: Development/Languages Requires: %{name} = %{version}-%{release} # Requires for corresponsing non-gem rpms Requires: ruby(cairo) -Requires: ruby(glib2) = %{version} +Requires: ruby(glib2) >= %{glibminver} Provides: ruby(%{gemname}) = %{version}-%{release} %description -n ruby-%{gemname} @@ -255,6 +255,9 @@ rm -rf %{buildroot} %{geminstdir}/test/ %changelog +* Sun Oct 24 2010 Mamoru Taska - 0.90.4-2 +- 0.90.4 + * Sun Oct 24 2010 Mamoru Taska - 0.90.3-2 - 0.90.3 diff --git a/sources b/sources index ff19c71..686c5f7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -8fd29b854e5027ceb01e67212d9d9587 pango-0.90.3.gem +5a6ea6704ee0ba0c975def1cd4eb9acf pango-0.90.4.gem From 64a0695a8467accfda531ec9b5aa2c09ee99495b Mon Sep 17 00:00:00 2001 From: Mamoru Tasaka Date: Sun, 31 Oct 2010 04:24:35 +0900 Subject: [PATCH 4/5] - 0.90.5 - Move C extension so that "require %gemname" works correctly --- .gitignore | 1 + rubygem-pango.spec | 31 ++++++++++++++++++++----------- sources | 2 +- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index ec77436..0abe1a2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /pango-0.90.2.gem /pango-0.90.3.gem /pango-0.90.4.gem +/pango-0.90.5.gem diff --git a/rubygem-pango.spec b/rubygem-pango.spec index 9c07c09..294c80b 100644 --- a/rubygem-pango.spec +++ b/rubygem-pango.spec @@ -5,14 +5,14 @@ %global gemname pango %global geminstdir %{gemdir}/gems/%{gemname}-%{version} -%global glibminver 0.90.4 -%global obsoleteevr 0.90.4-1.999 +%global glibminver 0.90.5 +%global obsoleteevr 0.90.5-1.999 %global rubyabi 1.8 Summary: Ruby binding of pango-1.x Name: rubygem-%{gemname} -Version: 0.90.4 +Version: 0.90.5 Release: 2%{?dist} Group: Development/Languages # from README @@ -77,8 +77,8 @@ rubygem-%{gemname} %setup -q -c -T mkdir -p .%{gemdir} -export pkgconfigdir=$(pwd)%{_libdir}/pkgconfig export CONFIGURE_ARGS="--with-cflags='%{optflags}'" +export CONFIGURE_ARGS="$CONFIGURE_ARGS --with-pkg-config-dir=$(pwd)%{_libdir}/pkgconfig" gem install \ -V \ --local \ @@ -101,6 +101,14 @@ find sample/ -name \*.rb | xargs chmod 0644 popd %build +# Move C extension library to some private directory +pushd .%{geminstdir} +mkdir lib/ruby-gnome2 +mv lib/%{gemname}.so lib/ruby-gnome2/ +grep -rl '%{gemname}.so' . | \ + xargs sed -i \ + -e "\@require@s|'%{gemname}.so'|'ruby-gnome2/%{gemname}.so'|" \ + -e '\@require@s|"%{gemname}.so"|"ruby-gnome2/%{gemname}.so"|' %install rm -rf %{buildroot} @@ -112,9 +120,9 @@ cp -a .%{gemdir}/* \ pushd %{buildroot} # move header files, C extension files to the correct directory -mkdir -p .%{ruby_sitearch} +mkdir -p .%{ruby_sitearch}/ruby-gnome2/ mv .%{geminstdir}/lib/*.h .%{ruby_sitearch}/ -mv .%{geminstdir}/lib/%{gemname}.so .%{ruby_sitearch}/ +mv .%{geminstdir}/lib/ruby-gnome2/%{gemname}.so .%{ruby_sitearch}/ruby-gnome2/ popd # move pkgconfig file @@ -202,14 +210,10 @@ export PATH=$(pwd):$PATH popd cat > glib-test-init.rb < - 0.90.5-2 +- 0.90.5 +- Move C extension so that "require %%gemname" works correctly + * Sun Oct 24 2010 Mamoru Taska - 0.90.4-2 - 0.90.4 diff --git a/sources b/sources index 686c5f7..adabcfe 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5a6ea6704ee0ba0c975def1cd4eb9acf pango-0.90.4.gem +5e39411da2ced845bb12a309c8908645 pango-0.90.5.gem From d46e32683ea9979db27a5ed3c8aa87be1e925b15 Mon Sep 17 00:00:00 2001 From: Mamoru Tasaka Date: Sun, 31 Oct 2010 05:39:13 +0900 Subject: [PATCH 5/5] fix test failure --- rubygem-pango.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/rubygem-pango.spec b/rubygem-pango.spec index 294c80b..abbcd73 100644 --- a/rubygem-pango.spec +++ b/rubygem-pango.spec @@ -210,6 +210,7 @@ export PATH=$(pwd):$PATH popd cat > glib-test-init.rb <