diff -ru rpm-4.14.1.orig/config.h.in rpm-4.14.1/config.h.in --- rpm-4.14.1.orig/config.h.in 2018-01-16 10:32:04.032937164 +0100 +++ rpm-4.14.1/config.h.in 2018-04-01 01:52:38.186380003 +0200 @@ -6,6 +6,9 @@ /* Build with dmalloc support? */ #undef DMALLOC +/* Enable Berkeley DB rpmdb support */ +#undef ENABLE_BDB + /* Enable new rpm database format? */ #undef ENABLE_NDB diff -ru rpm-4.14.1.orig/configure rpm-4.14.1/configure --- rpm-4.14.1.orig/configure 2018-04-01 01:53:02.034218083 +0200 +++ rpm-4.14.1/configure 2018-04-01 01:52:38.074380764 +0200 @@ -715,6 +715,8 @@ LMDB_CFLAGS NDB_FALSE NDB_TRUE +BDB_FALSE +BDB_TRUE WITH_DB_LIB HAVE_LIBDW_STRTAB_FALSE HAVE_LIBDW_STRTAB_TRUE @@ -960,6 +962,7 @@ with_beecrypt with_internal_beecrypt with_archive +enable_bdb with_external_db enable_ndb enable_lmdb @@ -1652,6 +1655,8 @@ --disable-largefile omit support for large files --enable-zstd=[yes/no/auto] build without zstd support (default=auto) + --enable-bdb=[yes/no] build with Berkeley DB rpm database format support + (default=yes) --enable-ndb (EXPERIMENTAL) enable the new rpm database format --enable-lmdb=[yes/no/auto] (EXPERIMENTAL) @@ -21980,6 +21985,23 @@ #================= +# Enable Berkeley DB rpmdb backend +# Check whether --enable-bdb was given. +if test "${enable_bdb+set}" = set; then : + enableval=$enable_bdb; enable_bdb="$enableval" +else + enable_bdb=yes +fi + + +if test "$enable_bdb" = "yes"; then : + + + +$as_echo "#define ENABLE_BDB /**/" >>confdefs.h + + +#================= # Process --with/without-external-db # Check whether --with-external_db was given. @@ -22087,6 +22109,16 @@ +fi + if test "$enable_bdb" = yes; then + BDB_TRUE= + BDB_FALSE='#' +else + BDB_TRUE='#' + BDB_FALSE= +fi + + #================= # Process --enable-ndb # Check whether --enable-ndb was given. @@ -26723,6 +26755,10 @@ as_fn_error $? "conditional \"HAVE_LIBDW_STRTAB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${BDB_TRUE}" && test -z "${BDB_FALSE}"; then + as_fn_error $? "conditional \"BDB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${NDB_TRUE}" && test -z "${NDB_FALSE}"; then as_fn_error $? "conditional \"NDB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff -ru rpm-4.14.1.orig/lib/backend/dbi.c rpm-4.14.1/lib/backend/dbi.c --- rpm-4.14.1.orig/lib/backend/dbi.c 2017-10-05 12:04:56.946602155 +0200 +++ rpm-4.14.1/lib/backend/dbi.c 2018-04-01 01:52:13.858545262 +0200 @@ -50,11 +50,13 @@ } else #endif { +#ifdef ENABLE_BDB rdb->db_ops = &db3_dbops; if (*db_backend == '\0') { free(db_backend); db_backend = xstrdup("bdb"); } +#endif } #if defined(WITH_LMDB) @@ -75,12 +77,14 @@ free(path); #endif +#ifdef ENABLE_BDB path = rstrscat(NULL, dbhome, "/Packages", NULL); if (access(path, F_OK) == 0 && rdb->db_ops != &db3_dbops) { rdb->db_ops = &db3_dbops; rpmlog(RPMLOG_WARNING, _("Found BDB Packages database while attempting %s backend: using bdb backend.\n"), db_backend); } free(path); +#endif if (db_backend) free(db_backend); diff -ru rpm-4.14.1.orig/lib/Makefile.in rpm-4.14.1/lib/Makefile.in --- rpm-4.14.1.orig/lib/Makefile.in 2018-04-01 01:53:02.858212489 +0200 +++ rpm-4.14.1/lib/Makefile.in 2018-04-01 01:52:38.898375168 +0200 @@ -96,9 +96,12 @@ @WITH_LUA_TRUE@am__append_1 = @LUA_CFLAGS@ @WITH_LUA_TRUE@am__append_2 = @LUA_LIBS@ @WITH_LUA_TRUE@am__append_3 = rpmliblua.c rpmliblua.h -@WITH_INTERNAL_DB_TRUE@am__append_4 = $(libdb_la) -@WITH_INTERNAL_DB_FALSE@am__append_5 = @WITH_DB_LIB@ -@NDB_TRUE@am__append_6 = \ +@BDB_TRUE@am__append_4 = \ +@BDB_TRUE@ backend/db3.c + +@BDB_TRUE@@WITH_INTERNAL_DB_TRUE@am__append_5 = $(libdb_la) +@BDB_TRUE@@WITH_INTERNAL_DB_FALSE@am__append_6 = @WITH_DB_LIB@ +@NDB_TRUE@am__append_7 = \ @NDB_TRUE@ backend/ndb/glue.c \ @NDB_TRUE@ backend/ndb/rpmpkg.c \ @NDB_TRUE@ backend/ndb/rpmpkg.h \ @@ -107,12 +110,12 @@ @NDB_TRUE@ backend/ndb/rpmxdb.c \ @NDB_TRUE@ backend/ndb/rpmxdb.h -@LMDB_TRUE@am__append_7 = $(LMDB_CFLAGS) -@LMDB_TRUE@am__append_8 = $(LMDB_LIBS) -@LMDB_TRUE@am__append_9 = \ +@LMDB_TRUE@am__append_8 = $(LMDB_CFLAGS) +@LMDB_TRUE@am__append_9 = $(LMDB_LIBS) +@LMDB_TRUE@am__append_10 = \ @LMDB_TRUE@ backend/lmdb.c -@WITH_INTERNAL_DB_TRUE@am__append_10 = $(libdb_la) +@WITH_INTERNAL_DB_TRUE@am__append_11 = $(libdb_la) @WITH_INTERNAL_DB_TRUE@rpmlibexec_PROGRAMS = rpmdb_dump$(EXEEXT) \ @WITH_INTERNAL_DB_TRUE@ rpmdb_load$(EXEEXT) \ @WITH_INTERNAL_DB_TRUE@ rpmdb_recover$(EXEEXT) \ @@ -169,9 +172,9 @@ am__DEPENDENCIES_1 = @LMDB_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) librpm_la_DEPENDENCIES = $(top_builddir)/rpmio/librpmio.la \ - $(am__DEPENDENCIES_1) $(am__append_4) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_5) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) -am__librpm_la_SOURCES_DIST = backend/db3.c backend/dbi.c backend/dbi.h \ +am__librpm_la_SOURCES_DIST = backend/dbi.c backend/dbi.h \ backend/dbiset.c backend/dbiset.h headerutil.c header.c \ headerfmt.c header_internal.h rpmdb.c rpmdb_internal.h \ fprint.c fprint.h tagname.c rpmtd.c cpio.c cpio.h depends.c \ @@ -185,25 +188,27 @@ rpmlock.h misc.h relocation.c rpmscript.h rpmscript.c \ rpmchroot.c rpmchroot.h rpmplugins.c rpmplugins.h rpmplugin.h \ rpmug.c rpmug.h rpmtriggers.h rpmtriggers.c rpmvs.c rpmvs.h \ - rpmliblua.c rpmliblua.h backend/ndb/glue.c \ + rpmliblua.c rpmliblua.h backend/db3.c backend/ndb/glue.c \ backend/ndb/rpmpkg.c backend/ndb/rpmpkg.h backend/ndb/rpmidx.c \ backend/ndb/rpmidx.h backend/ndb/rpmxdb.c backend/ndb/rpmxdb.h \ backend/lmdb.c am__dirstamp = $(am__leading_dot)dirstamp @WITH_LUA_TRUE@am__objects_1 = rpmliblua.lo -@NDB_TRUE@am__objects_2 = backend/ndb/glue.lo backend/ndb/rpmpkg.lo \ +@BDB_TRUE@am__objects_2 = backend/db3.lo +@NDB_TRUE@am__objects_3 = backend/ndb/glue.lo backend/ndb/rpmpkg.lo \ @NDB_TRUE@ backend/ndb/rpmidx.lo backend/ndb/rpmxdb.lo -@LMDB_TRUE@am__objects_3 = backend/lmdb.lo -am_librpm_la_OBJECTS = backend/db3.lo backend/dbi.lo backend/dbiset.lo \ - headerutil.lo header.lo headerfmt.lo rpmdb.lo fprint.lo \ - tagname.lo rpmtd.lo cpio.lo depends.lo order.lo formats.lo \ - tagexts.lo fsm.lo manifest.lo package.lo poptALL.lo poptI.lo \ - poptQV.lo psm.lo query.lo rpmal.lo rpmchecksig.lo rpmds.lo \ - rpmfi.lo rpmgi.lo rpminstall.lo rpmlead.lo rpmps.lo rpmprob.lo \ - rpmrc.lo rpmte.lo rpmts.lo rpmfs.lo rpmvercmp.lo signature.lo \ - transaction.lo verify.lo rpmlock.lo relocation.lo rpmscript.lo \ - rpmchroot.lo rpmplugins.lo rpmug.lo rpmtriggers.lo rpmvs.lo \ - $(am__objects_1) $(am__objects_2) $(am__objects_3) +@LMDB_TRUE@am__objects_4 = backend/lmdb.lo +am_librpm_la_OBJECTS = backend/dbi.lo backend/dbiset.lo headerutil.lo \ + header.lo headerfmt.lo rpmdb.lo fprint.lo tagname.lo rpmtd.lo \ + cpio.lo depends.lo order.lo formats.lo tagexts.lo fsm.lo \ + manifest.lo package.lo poptALL.lo poptI.lo poptQV.lo psm.lo \ + query.lo rpmal.lo rpmchecksig.lo rpmds.lo rpmfi.lo rpmgi.lo \ + rpminstall.lo rpmlead.lo rpmps.lo rpmprob.lo rpmrc.lo rpmte.lo \ + rpmts.lo rpmfs.lo rpmvercmp.lo signature.lo transaction.lo \ + verify.lo rpmlock.lo relocation.lo rpmscript.lo rpmchroot.lo \ + rpmplugins.lo rpmug.lo rpmtriggers.lo rpmvs.lo \ + $(am__objects_1) $(am__objects_2) $(am__objects_3) \ + $(am__objects_4) librpm_la_OBJECTS = $(am_librpm_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -597,18 +602,18 @@ -DLOCALSTATEDIR="\"$(localstatedir)\"" \ -DLIBRPMALIAS_FILENAME="\"rpmpopt-${VERSION}\"" \ -DLIBRPMALIAS_EXECPATH="\"$(bindir)\"" $(am__append_1) \ - $(am__append_7) + $(am__append_8) usrlibdir = $(libdir) -CLEANFILES = $(am__append_10) $(BUILT_SOURCES) +CLEANFILES = $(am__append_11) $(BUILT_SOURCES) EXTRA_DIST = gentagtbl.sh tagtbl.C rpmhash.C rpmhash.H usrlib_LTLIBRARIES = librpm.la -librpm_la_SOURCES = backend/db3.c backend/dbi.c backend/dbi.h \ - backend/dbiset.c backend/dbiset.h headerutil.c header.c \ - headerfmt.c header_internal.h rpmdb.c rpmdb_internal.h \ - fprint.c fprint.h tagname.c rpmtd.c cpio.c cpio.h depends.c \ - order.c formats.c tagexts.c fsm.c fsm.h manifest.c manifest.h \ - package.c poptALL.c poptI.c poptQV.c psm.c query.c rpmal.c \ - rpmal.h rpmchecksig.c rpmds.c rpmds_internal.h rpmfi.c \ +librpm_la_SOURCES = backend/dbi.c backend/dbi.h backend/dbiset.c \ + backend/dbiset.h headerutil.c header.c headerfmt.c \ + header_internal.h rpmdb.c rpmdb_internal.h fprint.c fprint.h \ + tagname.c rpmtd.c cpio.c cpio.h depends.c order.c formats.c \ + tagexts.c fsm.c fsm.h manifest.c manifest.h package.c \ + poptALL.c poptI.c poptQV.c psm.c query.c rpmal.c rpmal.h \ + rpmchecksig.c rpmds.c rpmds_internal.h rpmfi.c \ rpmfi_internal.h rpmgi.h rpmgi.c rpminstall.c rpmts_internal.h \ rpmlead.c rpmlead.h rpmps.c rpmprob.c rpmrc.c rpmte.c \ rpmte_internal.h rpmts.c rpmfs.h rpmfs.c rpmvercmp.c \ @@ -616,11 +621,12 @@ rpmlock.h misc.h relocation.c rpmscript.h rpmscript.c \ rpmchroot.c rpmchroot.h rpmplugins.c rpmplugins.h rpmplugin.h \ rpmug.c rpmug.h rpmtriggers.h rpmtriggers.c rpmvs.c rpmvs.h \ - $(am__append_3) $(am__append_6) $(am__append_9) + $(am__append_3) $(am__append_4) $(am__append_7) \ + $(am__append_10) librpm_la_LDFLAGS = -version-info $(rpm_version_info) librpm_la_LIBADD = $(top_builddir)/rpmio/librpmio.la @WITH_POPT_LIB@ \ @WITH_CAP_LIB@ @WITH_ACL_LIB@ @LIBINTL@ $(am__append_2) \ - $(am__append_4) $(am__append_5) $(am__append_8) + $(am__append_5) $(am__append_6) $(am__append_9) BUILT_SOURCES = tagtbl.C # XXX watchout, $(top_builddir)/db3/libdb.la created by this Makefile may surprise @@ -748,12 +754,12 @@ backend/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) backend/$(DEPDIR) @: > backend/$(DEPDIR)/$(am__dirstamp) -backend/db3.lo: backend/$(am__dirstamp) \ - backend/$(DEPDIR)/$(am__dirstamp) backend/dbi.lo: backend/$(am__dirstamp) \ backend/$(DEPDIR)/$(am__dirstamp) backend/dbiset.lo: backend/$(am__dirstamp) \ backend/$(DEPDIR)/$(am__dirstamp) +backend/db3.lo: backend/$(am__dirstamp) \ + backend/$(DEPDIR)/$(am__dirstamp) backend/ndb/$(am__dirstamp): @$(MKDIR_P) backend/ndb @: > backend/ndb/$(am__dirstamp) diff -ru rpm-4.14.1.orig/macros.in rpm-4.14.1/macros.in --- rpm-4.14.1.orig/macros.in 2018-01-16 10:02:32.740236142 +0100 +++ rpm-4.14.1/macros.in 2018-04-01 01:51:55.766668212 +0200 @@ -613,7 +613,7 @@ # lmdb Lightning Memory-mapped Database # ndb new data base format # -%_db_backend bdb +%_db_backend lmdb # # Macros used to configure Berkley db parameters. Only in rpm-4.14.1: macros.in.orig diff -ru rpm-4.14.1.orig/rpmio/digest_openssl.c rpm-4.14.1/rpmio/digest_openssl.c --- rpm-4.14.1.orig/rpmio/digest_openssl.c 2017-10-05 12:04:57.554602041 +0200 +++ rpm-4.14.1/rpmio/digest_openssl.c 2018-04-01 02:39:06.081268659 +0200 @@ -175,8 +175,11 @@ case PGPHASHALGO_RIPEMD160: return EVP_ripemd160(); +/* This should be a ifndef libressl... */ +#ifndef __midipix__ case PGPHASHALGO_MD2: return EVP_md2(); +#endif case PGPHASHALGO_SHA256: return EVP_sha256();