diff --git a/.gitignore b/.gitignore index e69de29..5bcec15 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/cairo-1.10.0.gem diff --git a/cairo-1.10.0-ext.cairo.depend b/cairo-1.10.0-ext.cairo.depend new file mode 100644 index 0000000..d267ff6 --- /dev/null +++ b/cairo-1.10.0-ext.cairo.depend @@ -0,0 +1,2 @@ +install-so: + $(INSTALL_DATA) $(srcdir)/rb_cairo.h $(RUBYARCHDIR) diff --git a/rubygem-cairo.spec b/rubygem-cairo.spec new file mode 100644 index 0000000..b9e089d --- /dev/null +++ b/rubygem-cairo.spec @@ -0,0 +1,279 @@ +%global ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']") +%global ruby_sitearch %(ruby -rrbconfig -e "puts Config::CONFIG['sitearchdir']") +%global rubyabi 1.8 + +%global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null) +%define gemname cairo +%define geminstdir %{gemdir}/gems/%{gemname}-%{version} + +%global mainver 1.10.0 +%global gitver %(echo %mainver | sed -e 's|\.|_|g') + +# Upstream GIT http://github.com/rcairo/ + +Summary: Ruby bindings for cairo +Name: rubygem-%{gemname} +Version: 1.10.0 +Release: 2%{?dist} +Group: Development/Languages +License: GPLv2 or Ruby +URL: http://cairographics.org/rcairo/ +Source0: http://rubygems.org/downloads/%{gemname}-%{version}.gem +# This one is needed +# wget -N -O %%gemname-%%mainver-ext.cairo.depend http://github.com/rcairo/rcairo/raw/RELEASE_%%{gitver}/ext/cairo/depend +Source100: %{gemname}-1.10.0-ext.cairo.depend + +BuildRequires: ruby(abi) = %{rubyabi} +BuildRequires: ruby(rubygems) +BuildRequires: cairo-devel +BuildRequires: ruby-devel +BuildRequires(check): rubygem(test-unit) +BuildRequires(check): rubygem(pkg-config) +# Make sure at least one font is available for test/test_context.rb:57 +# `initialize': out of memory (NoMemoryError) +BuildRequires(check): dejavu-serif-fonts +Requires: ruby(abi) = %{rubyabi} +Requires: ruby(rubygems) +Provides: rubygem(%{gemname}) = %{version}-%{release} + +%description +Ruby bindings for cairo. Cairo is a 2D graphics library with support for +multiple output devices. Currently supported output targets include the +X Window System, win32, and image buffers. + +%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} +Provides: ruby(%{gemname}) = %{version}-%{release} + +%description -n ruby-%{gemname} +This package provides non-Gem support for %{gemname}. + +%package devel +Summary: Ruby-cairo development environment +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +Requires: cairo-devel +Requires: ruby-devel +# Obsoletes / Provides +# ruby(cairo-devel) Provides is for compatibility +Obsoletes: ruby-cairo-devel < 1.9 +Provides: ruby-cairo-devel = %{version}-%{release} +Provides: ruby(cairo-devel) = %{version}-%{release} + +%description devel +Header files and libraries for building a extension library for the +ruby-cairo +%prep +%setup -q -T -c + +mkdir -p ./%{gemdir} +export CONFIGURE_ARGS="--with-cflags='%{optflags}'" +gem install \ + --local \ + --install-dir ./%{gemdir} \ + -V --force \ + %{SOURCE0} + +# Install ext/cairo/depend +pushd .%{geminstdir} +cp -p %{SOURCE100} ext/cairo/depend + +%build +# Make pkg-config development-dependent +# Already in upstream git. For now change manually +# +sed -i -e '/pkg-config/s|project\.extra_deps|project.extra_dev_deps|' \ + .%{geminstdir}/Rakefile +sed -i -e '/pkg-config/s|add_runtime_dependency|add_development_dependency|' \ + .%{gemdir}/specifications/%{gemname}-%{version}.gemspec + +pushd .%{geminstdir} +# only create Makefile +export CFLAGS="%{optflags}" +ruby ./extconf.rb +popd + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{gemdir} +cp -a ./%{gemdir}/* %{buildroot}%{gemdir} + +# Install C extensions, header files +pushd .%{geminstdir} +make -C ext/cairo \ + install \ + INSTALL="install -p" \ + DESTDIR=%{buildroot}/ + +# remove all shebang, set permission to 0644 +for f in $(find %{buildroot}%{geminstdir} -name \*.rb) +do + sed -i -e '/^#!/d' $f + chmod 0644 $f +done + +# cleanups +rm -rf %{buildroot}%{geminstdir}/ext/ +rm -f %{buildroot}%{geminstdir}/lib/*.so + +rm -f %{buildroot}%{geminstdir}/{Makefile*,extconf.rb} + +# 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} + +%clean +rm -rf %{buildroot} + +%check +pushd ./%{geminstdir} +ruby ./test/run-test.rb --verbose +popd + +%files +%defattr(-,root, root,-) +%{ruby_sitearch}/%{gemname}.so +%dir %{geminstdir}/ +%doc %{geminstdir}/[A-Z]* +%exclude %{geminstdir}/Rakefile +%{geminstdir}/lib/ +%{gemdir}/cache/%{gemname}-%{version}.gem +%{gemdir}/specifications/%{gemname}-%{version}.gemspec + +%files doc +%defattr(-,root,root,-) +%{geminstdir}/Rakefile +%{geminstdir}/misc/ +%{geminstdir}/samples/ +%{geminstdir}/test/ +%{gemdir}/doc/%{gemname}-%{version}/ + +%files -n ruby-%{gemname} +%defattr(-,root,root,-) +%{ruby_sitelib}/%{gemname}.rb +%{ruby_sitelib}/%{gemname}/ + +%files devel +%defattr(-,root,root,-) +%{ruby_sitearch}/rb_cairo.h + +%changelog +* Tue Oct 5 2010 Mamoru Tasaka 1.10.0-2 +- Install one font at BuildRequires for test + +* Sun Sep 19 2010 Mamoru Tasaka 1.10.0-1 +- Update to 1.10.0 + +* Fri Sep 3 2010 Mamoru Tasaka 1.8.5-2 +- Switch to gem +- Fix license tag + +* Thu Sep 2 2010 Mamoru Tasaka 1.8.5-1 +- Update to 1.8.5 + +* Wed Dec 16 2009 Allisson Azevedo 1.8.1-1 +- Update to 1.8.1 + +* Sun Jul 26 2009 Fedora Release Engineering - 1.8.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 1.8.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Jan 23 2009 Allisson Azevedo 1.8.0-2 +- Rebuild + +* Sun Oct 5 2008 Allisson Azevedo 1.8.0-1 +- Update to 1.8.0 + +* Tue Sep 9 2008 Allisson Azevedo 1.7.0-1 +- Update to 1.7.0 + +* Sun May 18 2008 Allisson Azevedo 1.6.1-1 +- Update to 1.6.1 + +* Mon Feb 25 2008 Allisson Azevedo 1.5.1-1 +- Update to 1.5.1 +- Update License for GPLv2+ + +* Mon Feb 18 2008 Fedora Release Engineering - 1.5.0-2 +- Autorebuild for GCC 4.3 + +* Mon Jun 11 2007 Allisson Azevedo 1.5.0-1 +- Update to 1.5.0 + +* Sun Mar 28 2007 Allisson Azevedo 1.4.1-2 +- Changed license for Ruby License/GPL +- Add ruby-devel for devel requires +- Changed main group for System Environment/Libraries +- Changed install for keep timestamps + +* Sun Mar 26 2007 Allisson Azevedo 1.4.1-1 +- Initial RPM release diff --git a/sources b/sources index e69de29..6e8e3f4 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +9511621d4fdb60e67c8b87f63e6d54d2 cairo-1.10.0.gem