diff --git a/.gitignore b/.gitignore index e69de29..f67c8a8 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/gio2-0.90.4.gem diff --git a/rubygem-gio2.spec b/rubygem-gio2.spec new file mode 100644 index 0000000..812ec68 --- /dev/null +++ b/rubygem-gio2.spec @@ -0,0 +1,208 @@ +%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 gio2 +%global geminstdir %{gemdir}/gems/%{gemname}-%{version} + +%global glibminver 0.90.4 +%global obsoleteevr 0.90.4-1.999 + +%global rubyabi 1.8 + +Summary: Ruby binding of gio-2.0.x +Name: rubygem-%{gemname} +Version: 0.90.4 +Release: 2%{?dist} +Group: Development/Languages +# from README +License: LGPLv2 +URL: http://ruby-gnome2.sourceforge.jp/ +Source0: http://rubygems.org/gems/%{gemname}-%{version}.gem + +BuildRequires: ruby(abi) = %{rubyabi} +BuildRequires: rubygems +BuildRequires: rubygem-glib2-devel >= %{glibminver} +BuildRequires: ruby-devel +Requires: ruby(abi) = %{rubyabi} +Requires: rubygems +Requires: rubygem(glib2) >= %{glibminver} +Provides: rubygem(%{gemname}) = %{version} + +%description +Ruby/GIO2 is a Ruby binding of gio-2.0.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(glib2) >= %{glibminver} +Provides: ruby(%{gemname}) = %{version}-%{release} + +%description -n ruby-%{gemname} +This package provides non-Gem support for %{gemname}. + +%package devel +Summary: Ruby/GIO2 development environment +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +Requires: ruby-devel +# Obsoletes / Provides +Obsoletes: ruby-%{gemname}-devel < %{obsoleteevr} +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 pkgconfigdir=$(pwd)%{_libdir}/pkgconfig +export CONFIGURE_ARGS="--with-cflags='%{optflags}'" +gem install \ + -V \ + --local \ + --install-dir .%{gemdir} \ + --force \ + --rdoc \ + %{SOURCE0} + +find . -name \*.gem | xargs chmod 0644 + +%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 ./%{_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 +# Currently no testsuite is available + +%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 + +%files doc +%defattr(-,root,root,-) +%{gemdir}/doc/%{gemname}-%{version} +%{geminstdir}/Rakefile + +%changelog +* Sun Oct 24 2010 Mamoru Taska - 0.90.4-2 +- Initial package diff --git a/sources b/sources index e69de29..4a8ee3d 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +db47bd398db0cb77ec856290afef126e gio2-0.90.4.gem