%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} %{!?ruby_sitearch: %global ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"] ')} Name: stfl Version: 0.21 Release: 7%{?dist} Summary: The Structured Terminal Forms Language/Library Group: System Environment/Libraries License: LGPLv3+ URL: http://www.clifford.at/stfl/ Source0: http://www.clifford.at/stfl/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: ncurses-devel BuildRequires: swig BuildRequires: perl-devel BuildRequires: python-devel BuildRequires: ruby, ruby-devel %description STFL is a library which implements a curses-based widget set for text terminals. %package devel Summary: Development files for %{name} Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: pkgconfig %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package perl Summary: Perl binding for STFL Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description perl Perl binding for STFL %package python Summary: Python binding for STFL Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description python Python binding for STFL. %package ruby Summary: Ruby binding for STFL Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: ruby(abi) = 1.8 %description ruby Ruby binding for STFL. %prep %setup -q ## ensures that _stfl.so doesn't end up in lib-dynload ## - http://www.rocklinux.net/pipermail/stfl/2009-June/000113.html sed -i.path \ -e '/mkdir.*lib-dynload/d' \ -e '/cp/s|lib-dynload||' \ python/Makefile.* ## creates an soname symlink for the shared library ## - http://www.rocklinux.net/pipermail/stfl/2009-June/000114.html ## add the new line needed (the part starting with \n) If you know a better way with sed to do it, please educate me sed -i.soname \ -e 's|\(.*ln -fs.*/\)\(libstfl\.so\)$|\1\2\n\1\$(SONAME)|' \ Makefile ## fixes undefined-non-weak-symbol rpmlint warnings ## - http://www.rocklinux.net/pipermail/stfl/2009-October/000116.html sed -i.ldflags -e 's|\(-shared\)|\1 \$(LDLIBS)|' Makefile ## fixes libdir for other arch than x86 ## - http://www.rocklinux.net/pipermail/stfl/2009-October/000118.html sed -i.path -e 's|libdir=.*|libdir=%{_libdir}|' stfl.pc.in sed -i.cflags -e 's|-Os||' Makefile %build # building with smp flags causes random failures export CFLAGS="%{optflags}" make prefix=%{_prefix} libdir=%{_lib} %install rm -rf %{buildroot} make install prefix=%{_prefix} libdir=%{_lib} DESTDIR=%{buildroot} # give the shared libraries executable permissions so they get stripped # also fixes the 0555 permissions on the perl bindings find %{buildroot} -name '*.so' -exec chmod 755 {} ';' # perl ignores empty .bs files find %{buildroot} -name '*.bs' -size 0c -exec rm -f {} ';' # fedora doesn't ship static libraries rm -f %{buildroot}%{_libdir}/libstfl.a ## remove unneeded files rm -f %{buildroot}%{perl_vendorarch}/example.pl rm -f %{buildroot}%{perl_vendorarch}/auto/stfl/.packlist rm -f %{buildroot}%{perl_archlib}/perllocal.pod %clean rm -rf %{buildroot} %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root,-) %doc README COPYING %{_libdir}/*.so.* %files devel %defattr(-,root,root,-) %{_includedir}/* %{_libdir}/*.so %{_libdir}/pkgconfig/stfl.pc %files perl %defattr(-,root,root,-) %dir %{perl_vendorarch}/auto/stfl %{perl_vendorarch}/*.pm %{perl_vendorarch}/auto/stfl/* %files python %defattr(-,root,root,-) %{python_sitearch}/stfl.py* %{python_sitearch}/_stfl.so %files ruby %defattr(-,root,root,-) %{ruby_sitearch}/stfl.so %changelog * Tue Oct 20 2009 Thomas Janssen 0.21-7 - Removed empty %%doc - Changed sed commands * Tue Oct 06 2009 Thomas Janssen 0.21-6 - Changed CFLAGS again * Tue Oct 06 2009 Thomas Janssen 0.21-5 - Better use of sed - Fixed CFLAGS - Use of rm instead of exclude - Removed empty doc * Mon Oct 05 2009 Thomas Janssen 0.21-4 - Removed unneeded requires - Removed dupe docs - removed patches and make use of sed - fixed stfl.pc.in for x86_64 * Fri Oct 02 2009 Thomas Janssen 0.21-3 - fixed installed rpmlint output * Fri Oct 02 2009 Thomas Janssen 0.21-2 - Added Requires: pkgconfig - Mentioned to upstream the rpmlint warnings - http://www.rocklinux.net/pipermail/stfl/2009-October/000115.html - Minor spec changes * Sun Jun 28 2009 Byron Clark 0.21-1 - New upstream release - Stop placing _stfl.so in lib-dynload - Add patch to properly create soname symlink for shared lib. * Wed Jun 10 2009 Byron Clark 0.20-5 - Stop using both python_sitelib and python_sitearch - Modify stfl-pythonpaths.patch to only use python_sitearch * Sat Jun 6 2009 Byron Clark 0.20-4 - Don't explicitly require python and perl * Thu May 21 2009 Byron Clark 0.20-3 - Use the patches that have been sent upstream * Thu May 21 2009 Byron Clark 0.20-2 - Add the minimal docs * Thu May 21 2009 Byron Clark 0.20-1 - Initial release