%define rubyver 1.8 %{!?ruby_sitearch: %define ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"]')} %{!?ruby_sitelib: %define ruby_sitelib %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"]')} Name: qdbm Version: 1.8.78 Release: 1%{?dist} License: LGPLv2+ URL: http://fallabs.com/qdbm/ Source0: http://fallabs.com/qdbm/%{name}-%{version}.tar.gz BuildRequires: zlib-devel BuildRequires: bzip2-devel BuildRequires: lzo-devel BuildRequires: gcc-java libgcj-devel # ruby-devel requires ruby-libs but not require ruby BuildRequires: ruby BuildRequires: ruby-devel BuildRequires: ruby(abi) = %{rubyver} BuildRequires: perl(ExtUtils::MakeMaker) Summary: Quick Database Manager Group: System Environment/Libraries %description QDBM is an embedded database library compatible with GDBM and NDBM. It features hash database and B+ tree database and is developed referring to GDBM for the purpose of the following three points: higher processing speed, smaller size of a database file, and simpler API. %package devel Summary: Libraries and Header files for QDBM Database library Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel This is the development package that provides header files and libraries for QDBM library. %package cgi Summary: CGI interface for QDBM Database Group: Applications/Text Requires: %{name} = %{version}-%{release} Requires: webserver %description cgi This package contains a CGI interface for QDBM Database. %package java Summary: QDBM Database Library for Java Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} %description java This package contains a Java interface for QDBM Database library. %package perl Summary: QDBM Database Library for Perl Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description perl This package contains a Perl interface for QDBM Database library. %package -n qdbm++ Summary: QDBM Database Library for C++ Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} %description -n qdbm++ This package contains a C++ interface for QDBM Database library. %package -n qdbm++-devel Summary: Libraries and Header files for QDBM C++ interface Group: Development/Libraries Requires: qdbm++ = %{version}-%{release} %description -n qdbm++-devel This is the development package that provides header files and libraries for QDBM C++ interface. %package -n ruby-qdbm Summary: QDBM Database Library for Ruby Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} Requires: ruby(abi) = %{rubyver} Provides: ruby(qdbm) = %{version}-%{release} %description -n ruby-qdbm This package contains a Ruby interface for QDBM Database library. %prep %setup -q # Fix path in doc/index*.html sed -i.link \ -e 's|"spex|"../%{name}-devel-%{version}/spex|' \ -e 's|"xspex|"../%{name}++-devel-%{version}/xspex|' \ -e 's|"jspex|"../%{name}-java-%{version}/jspex|' \ -e 's|"plspex|"../%{name}-perl-%{version}/plspex|' \ -e 's|"rbspex|"../ruby-%{name}-%{version}/rbspex|' \ -e 's|"cgispex|"../%{name}-cgi-%{version}/cgispex|' \ doc/index*.html %build ## 0. First: ## - remove rpath ## - fix pc file to hide header files ## - fix Makefile to keep timestamps for f in `find . -name Makefile.in` ; do %{__sed} -i.rpath -e '/^LDENV/d' $f done %{__sed} -i.misc \ -e '/^Libs/s|@LIBS@||' \ -e '/Cflags/s|^\(.*\)|\1 -I\${includedir}/qdbm|' \ qdbm.pc.in %{__sed} -i.stamp \ -e 's|cp \(-R*f \)|cp -p \1| ' \ -e 's|^CP =.*$|CP = cp -p|' \ `find . -name \*[mM]akefile.in -or -name \*[mM]akefile` ## 1. for main %{__sed} -i.flags -e '/^CFLAGS/s|-O3.*$|%{optflags}|' Makefile.in %configure \ --enable-pthread \ --enable-zlib \ --enable-bzip \ --enable-iconv \ --enable-lzo %{__make} %{?_smp_mflags} ## 2. for C++ pushd plus %{__sed} -i.flags -e '/^CXXFLAGS/s|@MYOPTS@|%{optflags}|' Makefile.in %configure %{__make} %{?_smp_mflags} popd ## 3. for java pushd java %{__sed} -i.flags -e '/^CFLAGS/s|@MYOPTS@|%{optflags}|' Makefile.in %configure --with-gcj %{__make} JAR=%{_bindir}/fastjar JAVAC="%{_bindir}/gcj -C" popd ## 4. for cgi pushd cgi %{__sed} -i.flags -e \ '/^CFLAGS/s|-O2.*$|%{optflags} -DCONFDIR="\"@sysconfdir@/qdbm/\""|' Makefile.in %configure %{__make} %{?_smp_mflags} popd ## 5. for perl pushd perl %configure %{__make} %{?_smp_mflags} CC="gcc %optflags" LDDLFLAGS="-shared" INSTALLDIRS=vendor popd ## 6. for Ruby pushd ruby %configure %{__make} %{?_smp_mflags} CC="gcc %optflags" popd %install %{__rm} -rf $RPM_BUILD_ROOT ## 1. for main %{__make} install DESTDIR=$RPM_BUILD_ROOT %{__rm} -rf $RPM_BUILD_ROOT%{_libdir}/lib*.a %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/ ## 2. for cgi pushd cgi %{__make} install DESTDIR=$RPM_BUILD_ROOT popd %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/cgi/*.html %{__install} -d $RPM_BUILD_ROOT%{_sysconfdir}/qdbm %{__mv} $RPM_BUILD_ROOT%{_datadir}/qdbm/cgi/*.conf \ $RPM_BUILD_ROOT%{_sysconfdir}/qdbm/ rmdir $RPM_BUILD_ROOT%{_datadir}/qdbm/cgi rmdir $RPM_BUILD_ROOT%{_datadir}/qdbm ## 3. for java pushd java %{__make} install DESTDIR=$RPM_BUILD_ROOT JAR=%{_bindir}/fastjar popd %{__mkdir_p} $RPM_BUILD_ROOT%{_javadir} %{__mv} -f $RPM_BUILD_ROOT%{_libdir}/*.jar \ $RPM_BUILD_ROOT%{_javadir} %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/qdbm/java/japidoc %{__rm} $RPM_BUILD_ROOT%{_datadir}/qdbm/java/*.html rmdir $RPM_BUILD_ROOT%{_datadir}/qdbm/java rmdir $RPM_BUILD_ROOT%{_datadir}/qdbm ## 4. for perl pushd perl %{__make} install DESTDIR=$RPM_BUILD_ROOT INSTALLDIRS=vendor popd %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/qdbm/perl/plapidoc %{__rm} $RPM_BUILD_ROOT%{_datadir}/qdbm/perl/*.html rmdir $RPM_BUILD_ROOT%{_datadir}/qdbm/perl rmdir $RPM_BUILD_ROOT%{_datadir}/qdbm # Fix perl modules.. %{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod find $RPM_BUILD_ROOT%{perl_vendorarch} \ -name \*.bs -or -name .packlist | \ xargs rm -f find $RPM_BUILD_ROOT%{perl_vendorarch} \ -name \*.so | \ xargs chmod 0755 ## 5. for C++ pushd plus make install DESTDIR=$RPM_BUILD_ROOT popd %{__rm} -rf $RPM_BUILD_ROOT%{_libdir}/lib*.a %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/qdbm/plus/xapidoc %{__rm} $RPM_BUILD_ROOT%{_datadir}/qdbm/plus/*.html rmdir $RPM_BUILD_ROOT%{_datadir}/qdbm/plus rmdir $RPM_BUILD_ROOT%{_datadir}/qdbm ## 6. for Ruby pushd ruby make install DESTDIR=$RPM_BUILD_ROOT popd %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/qdbm/ruby/rbapidoc %{__rm} $RPM_BUILD_ROOT%{_datadir}/qdbm/ruby/*.html rmdir $RPM_BUILD_ROOT%{_datadir}/qdbm/ruby rmdir $RPM_BUILD_ROOT%{_datadir}/qdbm ## 7. Finally hide header files to name specific directory pushd $RPM_BUILD_ROOT%{_includedir} for f in *.h ; do for g in *.h ; do eval sed -i -e \'s\|include \<$g\>\|include \"$g\"\|\' $f done done %{__mkdir} qdbm %{__mv} *.h qdbm/ popd %clean %{__rm} -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %post java -p /sbin/ldconfig %postun java -p /sbin/ldconfig %post -n qdbm++ -p /sbin/ldconfig %postun -n qdbm++ -p /sbin/ldconfig %files %defattr(-, root, root, -) %doc COPYING ChangeLog NEWS README THANKS %doc doc/*png %doc doc/index.html %lang(ja) %doc doc/index.ja.html %{_bindir}/[a-wyz]* %exclude %{_bindir}/pl* %exclude %{_bindir}/rb* %{_libdir}/libqdbm.so.* # own includedir %dir %{_includedir}/qdbm/ %{_mandir}/man1/* %files devel %defattr(-, root, root, -) %doc doc/spex.html %lang(ja) %doc doc/spex-ja.html %{_mandir}/man3/* %{_includedir}/qdbm/[a-w]*.h %{_libdir}/libqdbm.so %{_libdir}/pkgconfig/*.pc %files cgi %defattr(-, root, root, -) %doc cgi/cgispex.html %lang(ja) %doc cgi/cgispex-ja.html %{_libexecdir}/*.cgi %dir %{_sysconfdir}/qdbm/ %config(noreplace) %{_sysconfdir}/qdbm/*.conf %files java %defattr(-, root, root,-) %doc java/japidoc/ %doc java/jspex.html %lang(ja) %doc java/jspex-ja.html %{_libdir}/libjqdbm.so* %{_javadir}/*.jar %files perl %defattr(-, root, root, -) %doc perl/plapidoc/ %doc perl/plspex.html %lang(ja) %doc perl/plspex-ja.html %{_bindir}/pl* %{perl_vendorarch}/*.pm %{perl_vendorarch}/auto/*/ %files -n qdbm++ %defattr(-, root, root, -) %{_bindir}/x* %{_libdir}/libxqdbm.so.* %files -n qdbm++-devel %defattr(-, root, root, -) %doc plus/xapidoc/ %doc plus/xspex.html %lang(ja) %doc plus/xspex-ja.html %{_includedir}/qdbm/x*.h %{_libdir}/libxqdbm.so %files -n ruby-qdbm %defattr(-, root, root, -) %doc ruby/rbapidoc/ %doc ruby/rbspex.html %lang(ja) %doc ruby/rbspex-ja.html %{_bindir}/rb* %{ruby_sitearch}/mod_*.so %{ruby_sitelib}/*.rb %changelog * Fri Aug 27 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.78-1 - 1.8.78 * Wed Jun 02 2010 Marcela Maslanova <mmaslano@redhat.com> - 1.8.77-7 - Mass rebuild with perl-5.12.0 * Wed Dec 23 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.77-6 - F-13: rebuild for new perl * Sat Jul 25 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.77-5 - F-12: Mass rebuild * Tue Feb 24 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.77-4 - F-11: Mass rebuild * Fri Mar 14 2008 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.77-3 - Support LZO compression (thanks to Karsten Hopp) - And rebuild against new perl (F-9) * Sat Feb 9 2008 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - Rebuild against gcc43 (F-9) * Sat Nov 17 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.77-1 - 1.8.77 * Sun Nov 4 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.76-1 - 1.8.76 * Wed Aug 22 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.75-3.dist.2 - Mass rebuild (buildID or binutils issue) * Fri Aug 3 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.75-3.dist.1 - License update * Thu Jun 16 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.75-3 - Fix java directory * Thu Mar 22 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.75-1 - 1.8.75 - Ruby subpackage description change according to Guildlines * Thu Mar 8 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.74-3 - Add JAVAC direction and perl-devel for BR * Fri Feb 23 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.74-2 - Add missing release dependency - Change group from Development to System Environment - Remove duplicate files and fix the dependency for main package. * Wed Feb 21 2007 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.74-1 - Rewrite. * Tue Sep 12 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.70-1 - Initial package.