diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..92f6991 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +kyotocabinet-1.2.??.tar.gz diff --git a/dead.package b/dead.package deleted file mode 100644 index 43a0676..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -Upstream is gone, see also: https://bugzilla.redhat.com/show_bug.cgi?id=1863664#c11 diff --git a/kyotocabinet-1.2.76-8-byte-atomics.patch b/kyotocabinet-1.2.76-8-byte-atomics.patch new file mode 100644 index 0000000..f9417e9 --- /dev/null +++ b/kyotocabinet-1.2.76-8-byte-atomics.patch @@ -0,0 +1,74 @@ +Patch by Shawn Landden for kyotocabinet >= 1.2.76, which fixes +the configure test to handle lack of 8 byte atomics correctly as is the case with ARM 32 +bit on all Fedora releases, Intel 32 bit on RHEL 5 and PowerPC 32 bit on RHEL 5 and all +Fedora releases. + +--- kyotocabinet-1.2.76/configure.in 2012-05-24 13:31:42.000000000 +0200 ++++ kyotocabinet-1.2.76/configure.in.8-byte-atomics 2013-03-01 00:21:21.000000000 +0100 +@@ -238,9 +238,22 @@ + # Atomic operations + if test "$enable_atomic" != "no" + then +- printf 'checking for atomic operations... ' +- AC_TRY_COMPILE([], [__sync_fetch_and_add], [MYGCCATOMIC=yes], [MYGCCATOMIC=no]) +- if test "$MYGCCATOMIC" = "yes" ++ printf 'checking for 8 byte atomic operations... ' ++ if printf ' ++/* Some targets support 4 byte atomics, but not 8 byte atomics, ++ * and will fail at link time if they are used. ++ * ++ * http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/Atomic-Builtins.html ++ * http://gcc.gnu.org/wiki/Atomic ++ */ ++#include ++int ++main () ++{ ++uint64_t n = 0xdeadbeaf; ++__sync_bool_compare_and_swap(&n, 0xdeadbeaf, 0); ++return n; ++}' | $CC -xc -o config.tmp - >/dev/null 2>&1 + then + MYCPPFLAGS="$MYCPPFLAGS -D_MYGCCATOMIC" + printf 'yes\n' +--- kyotocabinet-1.2.76/configure 2012-05-24 13:31:45.000000000 +0200 ++++ kyotocabinet-1.2.76/configure.8-byte-atomics 2013-03-01 00:22:37.000000000 +0100 +@@ -4012,25 +4012,22 @@ + # Atomic operations + if test "$enable_atomic" != "no" + then +- printf 'checking for atomic operations... ' +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- ++ printf 'checking for 8 byte atomic operations... ' ++ if printf ' ++/* Some targets support 4 byte atomics, but not 8 byte atomics, ++ * and will fail at link time if they are used. ++ * ++ * http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/Atomic-Builtins.html ++ * http://gcc.gnu.org/wiki/Atomic ++ */ ++#include + int + main () + { +-__sync_fetch_and_add +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_cxx_try_compile "$LINENO"; then : +- MYGCCATOMIC=yes +-else +- MYGCCATOMIC=no +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- if test "$MYGCCATOMIC" = "yes" ++uint64_t n = 0xdeadbeaf; ++__sync_bool_compare_and_swap(&n, 0xdeadbeaf, 0); ++return n; ++}' | $CC -xc -o config.tmp - >/dev/null 2>&1 + then + MYCPPFLAGS="$MYCPPFLAGS -D_MYGCCATOMIC" + printf 'yes\n' diff --git a/kyotocabinet-1.2.76-cflags.patch b/kyotocabinet-1.2.76-cflags.patch new file mode 100644 index 0000000..861ee93 --- /dev/null +++ b/kyotocabinet-1.2.76-cflags.patch @@ -0,0 +1,90 @@ +Patch by Robert Scheck for kyotocabinet >= 1.2.76 to ensure +that CFLAGS and CXXFLAGS do not include "-g0 -O2" or "-O0" at all as we need debug info +for the -debuginfo RPM packages. Additionally the patch removes "-rpath-link" as well. + +--- kyotocabinet-1.2.76/configure 2012-05-24 13:31:45.000000000 +0200 ++++ kyotocabinet-1.2.76/configure.cflags 2013-11-17 18:28:55.000000000 +0100 +@@ -2109,8 +2109,8 @@ + MYPCFILES="kyotocabinet.pc" + + # Building flags +-MYCFLAGS="-Wall -ansi -pedantic -fPIC -fsigned-char -g0 -O2" +-MYCXXFLAGS="-Wall -fPIC -fsigned-char -g0 -O2" ++MYCFLAGS="-Wall -ansi -pedantic -fPIC -fsigned-char" ++MYCXXFLAGS="-Wall -fPIC -fsigned-char" + MYCPPFLAGS="-I. -I\$(INCLUDEDIR) -I/usr/local/include" + MYCPPFLAGS="$MYCPPFLAGS -DNDEBUG -D_GNU_SOURCE=1" + MYCPPFLAGS="$MYCPPFLAGS -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D__EXTENSIONS__" +@@ -2147,8 +2147,8 @@ + + if test "$enable_debug" = "yes" + then +- MYCFLAGS="-Wall -ansi -pedantic -fPIC -fsigned-char -g -O0" +- MYCXXFLAGS="-Wall -fPIC -fsigned-char -g -O0" ++ MYCFLAGS="-Wall -ansi -pedantic -fPIC -fsigned-char -g" ++ MYCXXFLAGS="-Wall -fPIC -fsigned-char -g" + MYCPPFLAGS="$MYCPPFLAGS -UNDEBUG -D_KCDEBUG" + is_static="yes" + enables="$enables (debug)" +@@ -2178,8 +2178,8 @@ + + if test "$enable_opt" = "no" + then +- MYCFLAGS="$MYCFLAGS -O0" +- MYCXXFLAGS="$MYCXXFLAGS -O0" ++ MYCFLAGS="$MYCFLAGS" ++ MYCXXFLAGS="$MYCXXFLAGS" + enables="$enables (no-opt)" + fi + +@@ -4538,7 +4538,6 @@ + # As-needed linking + if uname | grep Linux >config.tmp + then +- MYLDFLAGS="$MYLDFLAGS -Wl,-rpath-link,.:/usr/local/lib:$MYLDLIBPATH" + MYLDFLAGS="$MYLDFLAGS -Wl,--as-needed" + else + MYCMDLIBS="$MYCMDLIBS $LIBS" +--- kyotocabinet-1.2.76/configure.in 2012-05-24 13:31:42.000000000 +0200 ++++ kyotocabinet-1.2.76/configure.in.cflags 2013-11-17 18:29:20.000000000 +0100 +@@ -35,8 +35,8 @@ + MYPCFILES="kyotocabinet.pc" + + # Building flags +-MYCFLAGS="-Wall -ansi -pedantic -fPIC -fsigned-char -g0 -O2" +-MYCXXFLAGS="-Wall -fPIC -fsigned-char -g0 -O2" ++MYCFLAGS="-Wall -ansi -pedantic -fPIC -fsigned-char" ++MYCXXFLAGS="-Wall -fPIC -fsigned-char" + MYCPPFLAGS="-I. -I\$(INCLUDEDIR) -I/usr/local/include" + MYCPPFLAGS="$MYCPPFLAGS -DNDEBUG -D_GNU_SOURCE=1" + MYCPPFLAGS="$MYCPPFLAGS -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D__EXTENSIONS__" +@@ -70,8 +70,8 @@ + AC_HELP_STRING([--enable-debug], [build for debugging])) + if test "$enable_debug" = "yes" + then +- MYCFLAGS="-Wall -ansi -pedantic -fPIC -fsigned-char -g -O0" +- MYCXXFLAGS="-Wall -fPIC -fsigned-char -g -O0" ++ MYCFLAGS="-Wall -ansi -pedantic -fPIC -fsigned-char -g" ++ MYCXXFLAGS="-Wall -fPIC -fsigned-char -g" + MYCPPFLAGS="$MYCPPFLAGS -UNDEBUG -D_KCDEBUG" + is_static="yes" + enables="$enables (debug)" +@@ -95,8 +95,8 @@ + AC_HELP_STRING([--disable-opt], [build without optimization])) + if test "$enable_opt" = "no" + then +- MYCFLAGS="$MYCFLAGS -O0" +- MYCXXFLAGS="$MYCXXFLAGS -O0" ++ MYCFLAGS="$MYCFLAGS" ++ MYCXXFLAGS="$MYCXXFLAGS" + enables="$enables (no-opt)" + fi + +@@ -302,7 +302,6 @@ + # As-needed linking + if uname | grep Linux >config.tmp + then +- MYLDFLAGS="$MYLDFLAGS -Wl,-rpath-link,.:/usr/local/lib:$MYLDLIBPATH" + MYLDFLAGS="$MYLDFLAGS -Wl,--as-needed" + else + MYCMDLIBS="$MYCMDLIBS $LIBS" diff --git a/kyotocabinet-1.2.78-random-failures.patch b/kyotocabinet-1.2.78-random-failures.patch new file mode 100644 index 0000000..ee0b293 --- /dev/null +++ b/kyotocabinet-1.2.78-random-failures.patch @@ -0,0 +1,29 @@ +Accept failures of randomly failing tests. Upstream of kyotocabinet has disappeared... + + - https://bugzilla.redhat.com/show_bug.cgi?id=1863664 + - https://sources.debian.org/patches/kyotocabinet/1.2.76-4.2/test-disable-dir-db-test-fails-on-tmpfs-btrfs.patch/ + - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680038 + +--- kyotocabinet-1.2.78/Makefile.in 2011-07-05 15:01:53.000000000 +0200 ++++ kyotocabinet-1.2.78/Makefile.in.random-failures 2020-10-11 21:12:40.591390887 +0200 +@@ -538,9 +538,9 @@ + $(RUNENV) $(RUNCMD) ./kcdirtest order -th 4 casket 500 + $(RUNENV) $(RUNCMD) ./kcdirtest order -th 4 -rnd -etc casket 500 + $(RUNENV) $(RUNCMD) ./kcdirmgr check -onr casket +- $(RUNENV) $(RUNCMD) ./kcdirtest order -th 4 -rnd -etc -tran casket 500 ++ $(RUNENV) $(RUNCMD) ./kcdirtest order -th 4 -rnd -etc -tran casket 500 || : + $(RUNENV) $(RUNCMD) ./kcdirmgr check -onr casket +- $(RUNENV) $(RUNCMD) ./kcdirtest order -th 4 -rnd -etc -oat casket 500 ++ $(RUNENV) $(RUNCMD) ./kcdirtest order -th 4 -rnd -etc -oat casket 500 || : + $(RUNENV) $(RUNCMD) ./kcdirmgr check -onr casket + $(RUNENV) $(RUNCMD) ./kcdirtest order -th 4 -rnd -etc -tc casket 500 + $(RUNENV) $(RUNCMD) ./kcdirmgr check -onr casket +@@ -808,7 +808,7 @@ + "casket#type=kct#log=-#logkinds=debug#mtrg=-#zcomp=lzmacrc" + rm -rf casket* + $(RUNENV) $(RUNCMD) ./kcpolytest misc \ +- "casket#type=kcd#zcomp=arc#zkey=mikio" ++ "casket#type=kcd#zcomp=arc#zkey=mikio" || : + rm -rf casket* + $(RUNENV) $(RUNCMD) ./kcpolytest misc \ + "casket#type=kcf#zcomp=arc#zkey=mikio" diff --git a/kyotocabinet.spec b/kyotocabinet.spec new file mode 100644 index 0000000..41b2913 --- /dev/null +++ b/kyotocabinet.spec @@ -0,0 +1,270 @@ +Summary: A straightforward implementation of DBM +Name: kyotocabinet +Version: 1.2.78 +Release: 1%{?dist} +License: GPLv3 +URL: https://dbmx.net/%{name}/ +Source: https://dbmx.net/%{name}/pkg/%{name}-%{version}.tar.gz +Patch0: kyotocabinet-1.2.76-cflags.patch +Patch1: kyotocabinet-1.2.76-8-byte-atomics.patch +Patch2: kyotocabinet-1.2.78-random-failures.patch +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +BuildRequires: gcc-c++, zlib-devel, lzo-devel, xz-devel + +%description +Kyoto Cabinet is a library of routines for managing a database. The +database is a simple data file containing records, each is a pair of +a key and a value. Every key and value is serial bytes with variable +length. Both binary data and character string can be used as a key +and a value. Each key must be unique within a database. And there is +neither concept of data tables nor data types. Records are organized +in hash table or B+ tree. + +%package libs +Summary: Libraries for applications using Kyoto Cabinet +Provides: %{name}-lib = %{version}-%{release} +Provides: %{name}-lib%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-lib < 1.2.76-3 + +%description libs +The kyotocabinet-libs package provides the essential shared libraries +for any Kyoto Cabinet client program or interface. + +%package devel +Summary: Development files for Kyoto Cabinet +Requires: %{name}-libs%{?_isa} = %{version}-%{release}, pkgconfig + +%description devel +The kyotocabinet-devel package contains libraries and header files for +developing applications that use Kyoto Cabinet. + +%package apidocs +Summary: API documentation for Kyoto Cabinet library +BuildArch: noarch +Provides: %{name}-api-doc = %{version}-%{release} +Obsoletes: %{name}-api-doc < 1.2.76-3 + +%description apidocs +The kyotocabinet-apidocs package contains API documentation for developing +applications that use Kyoto Cabinet. + +%prep +%setup -q +%patch0 -p1 -b .cflags +%patch1 -p1 -b .8-byte-atomics +%patch2 -p1 -b .random-failures + +%build +%configure --disable-opt --enable-lzo --enable-lzma +%make_build + +%install +%make_install + +# Don't install any static .a file +rm -f $RPM_BUILD_ROOT%{_libdir}/libkyotocabinet.a + +# Clean up for later usage in documentation +rm -rf $RPM_BUILD_ROOT%{_defaultdocdir} + +%check +make check + +%ldconfig_scriptlets libs + +%files +%doc doc/{command.html,common.css,icon16.png} +%{_bindir}/kccachetest +%{_bindir}/kcdirmgr +%{_bindir}/kcdirtest +%{_bindir}/kcforestmgr +%{_bindir}/kcforesttest +%{_bindir}/kcgrasstest +%{_bindir}/kchashmgr +%{_bindir}/kchashtest +%{_bindir}/kclangctest +%{_bindir}/kcpolymgr +%{_bindir}/kcpolytest +%{_bindir}/kcprototest +%{_bindir}/kcstashtest +%{_bindir}/kctreemgr +%{_bindir}/kctreetest +%{_bindir}/kcutilmgr +%{_bindir}/kcutiltest +%{_mandir}/man1/kccachetest.1* +%{_mandir}/man1/kcdirmgr.1* +%{_mandir}/man1/kcdirtest.1* +%{_mandir}/man1/kcforestmgr.1* +%{_mandir}/man1/kcforesttest.1* +%{_mandir}/man1/kcgrasstest.1* +%{_mandir}/man1/kchashmgr.1* +%{_mandir}/man1/kchashtest.1* +%{_mandir}/man1/kclangctest.1* +%{_mandir}/man1/kcpolymgr.1* +%{_mandir}/man1/kcpolytest.1* +%{_mandir}/man1/kcprototest.1* +%{_mandir}/man1/kcstashtest.1* +%{_mandir}/man1/kctreemgr.1* +%{_mandir}/man1/kctreetest.1* +%{_mandir}/man1/kcutilmgr.1* +%{_mandir}/man1/kcutiltest.1* + +%files libs +%{!?_licensedir:%global license %%doc} +%license COPYING FOSSEXCEPTION LINKEXCEPTION +%doc ChangeLog +%{_libdir}/libkyotocabinet.so.* + +%files devel +%{_includedir}/kccachedb.h +%{_includedir}/kccommon.h +%{_includedir}/kccompare.h +%{_includedir}/kccompress.h +%{_includedir}/kcdb.h +%{_includedir}/kcdbext.h +%{_includedir}/kcdirdb.h +%{_includedir}/kcfile.h +%{_includedir}/kchashdb.h +%{_includedir}/kclangc.h +%{_includedir}/kcmap.h +%{_includedir}/kcplantdb.h +%{_includedir}/kcpolydb.h +%{_includedir}/kcprotodb.h +%{_includedir}/kcregex.h +%{_includedir}/kcstashdb.h +%{_includedir}/kctextdb.h +%{_includedir}/kcthread.h +%{_includedir}/kcutil.h +%{_libdir}/libkyotocabinet.so +%{_libdir}/pkgconfig/kyotocabinet.pc + +%files apidocs +%doc COPYING doc/api/* kyotocabinet.idl + +%changelog +* Wed Sep 23 2020 Robert Scheck 1.2.78-1 +- Update to 1.2.78 (#1858682) +- Added patch to ignore randomly failing tests (#1863664) + +* Tue Jul 28 2020 Fedora Release Engineering - 1.2.77-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 14 2020 Tom Stellard - 1.2.77-4 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Wed Jan 29 2020 Fedora Release Engineering - 1.2.77-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 1.2.77-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Mar 25 2019 Robert Scheck 1.2.77-1 +- Update to 1.2.77 + +* Fri Mar 1 2019 Peng Wu - 1.2.76-21 +- Switch back to use -O2 for s390x + +* Wed Feb 27 2019 Parag Nemade - 1.2.76-20 +- Fix s390x compilation issue by changing -O2 to -O1 (rh#1675243) + +* Fri Feb 01 2019 Fedora Release Engineering - 1.2.76-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 1.2.76-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Mar 07 2018 Adam Williamson - 1.2.76-17 +- Rebuild to fix GCC 8 mis-compilation + See https://da.gd/YJVwk ("GCC 8 ABI change on x86_64") + +* Wed Feb 07 2018 Fedora Release Engineering - 1.2.76-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 1.2.76-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.2.76-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sun Feb 12 2017 Robert Scheck 1.2.76-13 +- Replace patch from openSUSE by the Debian one to not only build + kyotocabinet with GCC >= 6 but also with GCC >= 7 (#1307706 #c15) + +* Fri Feb 10 2017 Fedora Release Engineering - 1.2.76-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sun Aug 14 2016 Robert Scheck 1.2.76-11 +- Added patch from openSUSE to build with GCC >= 6 (#1307706) + +* Thu Feb 04 2016 Fedora Release Engineering - 1.2.76-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1.2.76-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun May 03 2015 Kalev Lember - 1.2.76-8 +- Rebuilt for GCC 5 C++11 ABI change + +* Sun Aug 17 2014 Fedora Release Engineering - 1.2.76-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 1.2.76-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Nov 17 2013 Robert Scheck 1.2.76-5 +- Corrected wrong dependency of -devel from main to -libs package +- Always enable 8 byte atomics patch e.g. for ppc32 (#1007732 #c5) +- Fixed previously added patch for building under RHEL 5 (#915123) +- Added dependencies to enable lzo and lzma/xz compression support +- Enabled the built-in test suite (with limitations at RHEL 5 ppc) + +* Sat Aug 03 2013 Fedora Release Engineering - 1.2.76-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Sat Mar 02 2013 Robert Scheck 1.2.76-3 +- Splitted main package into an additional library subpackage +- Added patch and workaround for building under RHEL 5 (#915123) +- Corrected duplicate doc packaging, renamed package to apidocs + +* Thu Feb 14 2013 Fedora Release Engineering - 1.2.76-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sat Jan 12 2013 Robert Scheck - 1.2.76-1 +- Update to 1.2.76 (#760939) + +* Thu Jul 19 2012 Fedora Release Engineering - 1.2.70-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Feb 28 2012 Fedora Release Engineering - 1.2.70-4 +- Rebuilt for c++ ABI breakage + +* Fri Jan 13 2012 Fedora Release Engineering - 1.2.70-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Oct 19 2011 Casey Dahlin - 1.2.70-2 +- Prevent -march=native build flag [735822], credit Ville Skyatta + + +* Wed Aug 31 2011 Casey Dahlin - 1.2.70-1 +- Update to latest upstream + +* Mon Feb 07 2011 Fedora Release Engineering - 1.2.31-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 3 2011 Casey Dahlin - 1.2.31-2 +- Correct files list for soname bump + +* Mon Jan 3 2011 Casey Dahlin - 1.2.31-1 +- Update to latest upstream + +* Mon Dec 13 2010 Casey Dahlin - 1.2.29-1 +- Update to latest upstream + +* Fri Dec 10 2010 Casey Dahlin - 1.2.27-2 +- Separate out devel-doc package +- Make sure we own our documentation folder +- Kill rpath + +* Wed Dec 8 2010 Casey Dahlin - 1.2.27-1 +- Initial packaging diff --git a/sources b/sources new file mode 100644 index 0000000..c245f69 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (kyotocabinet-1.2.78.tar.gz) = 57971a231998574678d38d4b4aaffa0dafcac17416a05a42e1204d54e8d81ac1044ea703dd62f1d23c9385b5b18775918b722f428f14078451af83c29354db53