summaryrefslogtreecommitdiffstats
path: root/rubygem-nokogiri.spec
diff options
context:
space:
mode:
authorMamoru Tasaka <mtasaka@fedoraproject.org>2009-01-20 04:10:53 +0000
committerMamoru Tasaka <mtasaka@fedoraproject.org>2009-01-20 04:10:53 +0000
commit4113b89565ca1cf3296a1cf8fc4e128939f39bef (patch)
tree7292fd687a8eee9802f7498aae87a5be9567a0a8 /rubygem-nokogiri.spec
parent01908244dfce5c312ea8d34641b31e187091033e (diff)
downloadrubygem-nokogiri-4113b89565ca1cf3296a1cf8fc4e128939f39bef.tar.gz
rubygem-nokogiri-4113b89565ca1cf3296a1cf8fc4e128939f39bef.tar.xz
rubygem-nokogiri-4113b89565ca1cf3296a1cf8fc4e128939f39bef.zip
It seems that I did a big mistake...
Diffstat (limited to 'rubygem-nokogiri.spec')
-rw-r--r--rubygem-nokogiri.spec190
1 files changed, 190 insertions, 0 deletions
diff --git a/rubygem-nokogiri.spec b/rubygem-nokogiri.spec
new file mode 100644
index 0000000..80c843f
--- /dev/null
+++ b/rubygem-nokogiri.spec
@@ -0,0 +1,190 @@
+%define ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
+%define ruby_sitearch %(ruby -rrbconfig -e "puts Config::CONFIG['sitearchdir']")
+%define rubyabi 1.8
+
+%define gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
+%define gemname nokogiri
+%define geminstdir %{gemdir}/gems/%{gemname}-%{version}
+
+Summary: An HTML, XML, SAX, and Reader parser
+Name: rubygem-%{gemname}
+Version: 1.1.1
+Release: 1%{?dist}
+Group: Development/Languages
+License: MIT
+URL: http://nokogiri.rubyforge.org/nokogiri/
+Source0: http://gems.rubyforge.org/gems/%{gemname}-%{version}.gem
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: ruby(abi) = %{rubyabi}
+BuildRequires: ruby(rubygems)
+BuildRequires: rubygem(rake)
+BuildRequires: libxml2-devel
+BuildRequires: libxslt-devel
+BuildRequires: ruby-devel
+Requires: ruby(abi) = %{rubyabi}
+Requires: ruby(rubygems)
+Provides: rubygem(%{gemname}) = %{version}-%{release}
+
+%description
+Nokogiri parses and searches XML/HTML very quickly, and also has
+correctly implemented CSS3 selector support as well as XPath support.
+
+Nokogiri also features an Hpricot compatibility layer to help ease the change
+to using correct CSS and XPath.
+
+%package doc
+Summary: Documentation for %{name}
+Group: Documentation
+# Directory ownership issue
+Requires: %{name} = %{version}-%{release}
+Requires: ruby(rubygems)
+
+%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}.
+
+%prep
+%setup -q -T -c
+
+%build
+mkdir -p ./%{gemdir}
+export CONFIGURE_ARGS="--with-cflags='%{optflags}'"
+gem install \
+ --local \
+ --install-dir ./%{gemdir} \
+ -V --force \
+ %{SOURCE0}
+
+# cflags wrong (-O3 passed), recompiling
+pushd ./%{geminstdir}
+sed -i.flags -e 's|-O3||' ext/nokogiri/extconf.rb
+find . -name \*.so -or -name \*.o -exec rm -f {} \;
+rake -v ext/nokogiri/native.so
+
+%install
+rm -rf %{buildroot}
+mkdir -p %{buildroot}%{gemdir}
+cp -a ./%{gemdir}/* %{buildroot}%{gemdir}
+
+# move arch dependent files to %%ruby_sitearch
+mkdir -p %{buildroot}%{ruby_sitearch}/%{gemname}
+mv %{buildroot}%{geminstdir}/lib/%{gemname}/*.so \
+ %{buildroot}%{ruby_sitearch}/%{gemname}/
+
+# remove all shebang
+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}/{.require_paths,Rakefile}
+
+# only needed by Rakefile, removing
+## First remove only files, then check if the directory
+## is empty
+rm -f %{buildroot}/%{geminstdir}/vendor/hoe.rb
+rmdir %{buildroot}/%{geminstdir}/vendor/
+
+# 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}
+
+%files
+%defattr(-,root, root,-)
+%{ruby_sitearch}/%{gemname}/
+%dir %{geminstdir}/
+%doc %{geminstdir}/[A-Z]*
+%{geminstdir}/[a-l]*/
+%{gemdir}/cache/%{gemname}-%{version}.gem
+%{gemdir}/specifications/%{gemname}-%{version}.gemspec
+
+%files doc
+%defattr(-,root,root,-)
+%{geminstdir}/test/
+%{gemdir}/doc/%{gemname}-%{version}/
+
+%files -n ruby-%{gemname}
+%defattr(-,root,root,-)
+%{ruby_sitelib}/*%{gemname}.rb
+%{ruby_sitelib}/%{gemname}/
+
+%changelog
+* Thu Jan 15 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.1.1-1
+- 1.1.1
+
+* Thu Dec 25 2008 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.1.0-1
+- Initial packaging
+