From 5367eb618b0a064fccddbf4ebd91baa91976ec6f Mon Sep 17 00:00:00 2001 From: Mamoru Tasaka Date: Tue, 12 Oct 2010 19:32:35 +0900 Subject: [PATCH] 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