diff --git a/.cvsignore b/.cvsignore index 6394026..4f4463d 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -rpm-4.7.1.tar.bz2 +rpm-4.7.2.tar.bz2 diff --git a/rpm-4.7.1-abs-filelist.patch b/rpm-4.7.1-abs-filelist.patch deleted file mode 100644 index 476499c..0000000 --- a/rpm-4.7.1-abs-filelist.patch +++ /dev/null @@ -1,30 +0,0 @@ -commit 4018bbd08e84fd0cc227dcb8d2dc20693ce2296a -Author: Panu Matilainen -Date: Tue Sep 15 10:56:58 2009 +0300 - - Allow absolute paths in file lists again (SuseBug:535594, RhBug:521760) - - patch from OpenSUSE / Michael Schroeder - - build-time generated file lists should be placed in the build directory, - but at least one valid use case for this is things like %files -f %{SOURCE10} - -diff --git a/build/files.c b/build/files.c -index b5c5437..061494d 100644 ---- a/build/files.c -+++ b/build/files.c -@@ -1755,9 +1755,13 @@ static rpmRC processPackageFiles(rpmSpec spec, Package pkg, - - argvSplit(&filelists, getStringBuf(pkg->fileFile), "\n"); - for (fp = filelists; *fp != NULL; fp++) { -- ffn = rpmGetPath("%{_builddir}/", -- (spec->buildSubdir ? spec->buildSubdir : "") , -- "/", *fp, NULL); -+ if (**fp == '/') { -+ ffn = rpmGetPath(*fp, NULL); -+ } else { -+ ffn = rpmGetPath("%{_builddir}/", -+ (spec->buildSubdir ? spec->buildSubdir : "") , -+ "/", *fp, NULL); -+ } - fd = fopen(ffn, "r"); - - if (fd == NULL || ferror(fd)) { diff --git a/rpm-4.7.1-chroot-env-paths.patch b/rpm-4.7.1-chroot-env-paths.patch deleted file mode 100644 index 0effaa4..0000000 --- a/rpm-4.7.1-chroot-env-paths.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/lib/backend/db3.c b/lib/backend/db3.c -index 9f0f941..b0b2a86 100644 ---- a/lib/backend/db3.c -+++ b/lib/backend/db3.c -@@ -1015,17 +1015,12 @@ static int db3open(rpmdb rpmdb, rpmTag rpmtag, dbiIndex * dbip) - } - - if (rc == 0) { -- char * fullpath; -- const char * dbpath; -- fullpath = rpmGetPath(dbhome, "/", dbfile ? dbfile : "", NULL); -- --#ifdef HACK /* XXX necessary to support dbsubfile */ -- dbpath = (!dbi->dbi_use_dbenv && !dbi->dbi_temporary) -- ? fullpath : dbfile; --#else -- dbpath = (!dbi->dbi_temporary) -- ? fullpath : dbfile; --#endif -+ char * fullpath = NULL; -+ const char * dbpath = dbfile; -+ if (!dbi->dbi_use_dbenv && !dbi->dbi_temporary) { -+ fullpath = rpmGetPath(dbhome, "/", dbfile, NULL); -+ dbpath = fullpath; -+ } - - rc = (db->open)(db, txnid, dbpath, dbsubfile, - dbi->dbi_type, oflags, dbi->dbi_perms); diff --git a/rpm-4.7.1-chroot-remove-env.patch b/rpm-4.7.1-chroot-remove-env.patch deleted file mode 100644 index 6da7ab7..0000000 --- a/rpm-4.7.1-chroot-remove-env.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/lib/backend/db3.c b/lib/backend/db3.c -index 9f0f941..9683100 100644 ---- a/lib/backend/db3.c -+++ b/lib/backend/db3.c -@@ -181,7 +181,8 @@ static int db_fini(dbiIndex dbi, const char * dbhome, - xx = db_env_create(&dbenv, 0); - xx = cvtdberr(dbi, "db_env_create", xx, _debug); - xx = dbenv->remove(dbenv, dbhome, 0); -- xx = cvtdberr(dbi, "dbenv->remove", xx, _debug); -+ /* filter out EBUSY as it just means somebody else gets to clean it */ -+ xx = cvtdberr(dbi, "dbenv->remove", xx, (xx == EBUSY ? 0 : _debug)); - - if (dbfile) - rpmlog(RPMLOG_DEBUG, "removed db environment %s/%s\n", -diff --git a/lib/rpmdb.c b/lib/rpmdb.c -index 0754b99..b781cfc 100644 ---- a/lib/rpmdb.c -+++ b/lib/rpmdb.c -@@ -921,7 +921,8 @@ rpmdb newRpmdb(const char * root, - return NULL; - } - db->db_errpfx = rpmExpand( (epfx && *epfx ? epfx : _DB_ERRPFX), NULL); -- db->db_remove_env = 0; -+ /* XXX remove environment after chrooted operations, for now... */ -+ db->db_remove_env = ((strcmp(db->db_root, "/") != 0)? 1 : 0); - db->db_filter_dups = _db_filter_dups; - db->db_ndbi = dbiTags.max; - db->_dbi = xcalloc(db->db_ndbi, sizeof(*db->_dbi)); diff --git a/rpm-4.7.1-debug-perms.patch b/rpm-4.7.1-debug-perms.patch deleted file mode 100644 index 1c76193..0000000 --- a/rpm-4.7.1-debug-perms.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 6cc599de01a9835b5128b7b2a869f9f7cf3976fb Mon Sep 17 00:00:00 2001 -From: Roland McGrath -Date: Wed, 9 Sep 2009 11:07:10 -0700 -Subject: [PATCH] find-debuginfo.sh: use permissions 444 for all .debug files - -Signed-off-by: Roland McGrath ---- - scripts/find-debuginfo.sh | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/scripts/find-debuginfo.sh b/scripts/find-debuginfo.sh -index 21366bf..8d86de6 100644 ---- a/scripts/find-debuginfo.sh -+++ b/scripts/find-debuginfo.sh -@@ -93,6 +93,7 @@ strip_to_debug() - application/x-sharedlib*) g=-g ;; - esac - eu-strip --remove-comment $g -f "$1" "$2" || exit -+ chmod 444 "$1" || exit - } - - # Make a relative symlink to $1 called $3$2 --- -1.6.2.5 - diff --git a/rpm-4.7.1-diskspace.patch b/rpm-4.7.1-diskspace.patch deleted file mode 100644 index 20e3aea..0000000 --- a/rpm-4.7.1-diskspace.patch +++ /dev/null @@ -1,56 +0,0 @@ -commit 2222e81e1cf74bbf78acb9969592ab06e2289929 -Author: Panu Matilainen -Date: Tue Oct 27 10:57:35 2009 +0200 - - Make disk space problem reporting slightly saner (RhBug:517418) - - Only report disk space/inode issues for packages that are affected - instead of piling up all the problems in all filesystems on all remaining - packages - - The messages are still ambiguous at best, need to figure out something - better one of these days... - -diff --git a/lib/rpmts.c b/lib/rpmts.c -index 38fedc8..6e28b82 100644 ---- a/lib/rpmts.c -+++ b/lib/rpmts.c -@@ -910,17 +910,23 @@ void rpmtsCheckDSIProblems(const rpmts ts, const rpmte te) - for (i = 0; i < ts->filesystemCount; i++, dsi++) { - - if (dsi->bavail >= 0 && adj_fs_blocks(dsi->bneeded) > dsi->bavail) { -- rpmpsAppend(ps, RPMPROB_DISKSPACE, -+ if (dsi->bneeded != dsi->obneeded) { -+ rpmpsAppend(ps, RPMPROB_DISKSPACE, - rpmteNEVRA(te), rpmteKey(te), - ts->filesystems[i], NULL, NULL, -- (adj_fs_blocks(dsi->bneeded) - dsi->bavail) * dsi->bsize); -+ (adj_fs_blocks(dsi->bneeded) - dsi->bavail) * dsi->bsize); -+ dsi->obneeded = dsi->bneeded; -+ } - } - - if (dsi->iavail >= 0 && adj_fs_blocks(dsi->ineeded) > dsi->iavail) { -- rpmpsAppend(ps, RPMPROB_DISKNODES, -+ if (dsi->ineeded != dsi->oineeded) { -+ rpmpsAppend(ps, RPMPROB_DISKNODES, - rpmteNEVRA(te), rpmteKey(te), - ts->filesystems[i], NULL, NULL, -- (adj_fs_blocks(dsi->ineeded) - dsi->iavail)); -+ (adj_fs_blocks(dsi->ineeded) - dsi->iavail)); -+ dsi->oineeded = dsi->ineeded; -+ } - } - } - ps = rpmpsFree(ps); -diff --git a/lib/rpmts_internal.h b/lib/rpmts_internal.h -index 6189fc1..1b0f847 100644 ---- a/lib/rpmts_internal.h -+++ b/lib/rpmts_internal.h -@@ -20,6 +20,8 @@ struct diskspaceInfo_s { - int64_t bsize; /*!< File system block size. */ - int64_t bavail; /*!< No. of blocks available. */ - int64_t iavail; /*!< No. of inodes available. */ -+ int64_t obneeded; /*!< Bookkeeping to avoid duplicate reports */ -+ int64_t oineeded; /*!< Bookkeeping to avoid duplicate reports */ - }; - - /** \ingroup rpmts diff --git a/rpm-4.7.1-duplicate-deps.patch b/rpm-4.7.1-duplicate-deps.patch deleted file mode 100644 index eb23cd1..0000000 --- a/rpm-4.7.1-duplicate-deps.patch +++ /dev/null @@ -1,95 +0,0 @@ -commit 10772ac7dfad60cb5a20681d22cf851468d0a8f9 -Author: Panu Matilainen -Date: Thu Aug 20 13:02:05 2009 +0300 - - Fix duplicate dependency checking on build - - Broken by commit af8b41c64af39ce07d85fcd92fa78d566747d815 which - simplified too much. - - There's no guarantee that rpmdsNew() returns a sorted dependency set - so rpmdsFind() doesn't work correctly here. Walk the ds manually instead. - - With multiple triggers of same type, identical trigger conditions on - different trigger script were seen as duplicates (RhBug:490378) - - Split the duplicate checking to separate helper function for clarity - -diff --git a/build/reqprov.c b/build/reqprov.c -index 1e69bd2..ba6a1e8 100644 ---- a/build/reqprov.c -+++ b/build/reqprov.c -@@ -9,6 +9,38 @@ - #include - #include "debug.h" - -+static int isNewDep(Header h, rpmTag nametag, -+ const char *N, const char *EVR, rpmsenseFlags Flags, -+ rpmTag indextag, uint32_t index) -+{ -+ int new = 1; -+ struct rpmtd_s idx; -+ rpmds ads = rpmdsNew(h, nametag, 0); -+ rpmds bds = rpmdsSingle(nametag, N, EVR, Flags); -+ -+ if (indextag) { -+ headerGet(h, indextag, &idx, HEADERGET_MINMEM); -+ } -+ -+ /* XXX there's no guarantee the ds is sorted here so rpmdsFind() wont do */ -+ rpmdsInit(ads); -+ while (new && rpmdsNext(ads) >= 0) { -+ if (strcmp(rpmdsN(ads), rpmdsN(bds))) continue; -+ if (strcmp(rpmdsEVR(ads), rpmdsEVR(bds))) continue; -+ if (rpmdsFlags(ads) != rpmdsFlags(bds)) continue; -+ if (indextag && rpmtdSetIndex(&idx, rpmdsIx(ads)) >= 0 && -+ rpmtdGetNumber(&idx) != index) continue; -+ new = 0; -+ } -+ -+ if (indextag) { -+ rpmtdFreeData(&idx); -+ } -+ rpmdsFree(ads); -+ rpmdsFree(bds); -+ return new; -+} -+ - int addReqProv(rpmSpec spec, Header h, rpmTag tagN, - const char * N, const char * EVR, rpmsenseFlags Flags, - uint32_t index) -@@ -55,28 +87,18 @@ int addReqProv(rpmSpec spec, Header h, rpmTag tagN, - if (EVR == NULL) - EVR = ""; - -- /* Check for duplicate dependencies. */ -- rpmds hds = rpmdsNew(h, nametag, 0); -- rpmds newds = rpmdsSingle(nametag, N, EVR, Flags); -- /* already got it, don't bother */ -- if (rpmdsFind(hds, newds) >= 0) { -- goto exit; -- } -- -- /* Add this dependency. */ -- headerPutString(h, nametag, N); -- if (flagtag) { -- headerPutString(h, versiontag, EVR); -- headerPutUint32(h, flagtag, &Flags, 1); -- } -- if (indextag) { -- headerPutUint32(h, indextag, &index, 1); -+ /* Avoid adding duplicate dependencies. */ -+ if (isNewDep(h, nametag, N, EVR, Flags, indextag, index)) { -+ headerPutString(h, nametag, N); -+ if (flagtag) { -+ headerPutString(h, versiontag, EVR); -+ headerPutUint32(h, flagtag, &Flags, 1); -+ } -+ if (indextag) { -+ headerPutUint32(h, indextag, &index, 1); -+ } - } - --exit: -- rpmdsFree(hds); -- rpmdsFree(newds); -- - return 0; - } - diff --git a/rpm-4.7.1-filedep-dnevr.patch b/rpm-4.7.1-filedep-dnevr.patch deleted file mode 100644 index b57f86f..0000000 --- a/rpm-4.7.1-filedep-dnevr.patch +++ /dev/null @@ -1,20 +0,0 @@ -commit d846e6b0f829791e6ffce4fd496c9378bff19c43 -Author: Panu Matilainen -Date: Tue Sep 15 08:45:14 2009 +0300 - - Don't add dependency type into file requires and provides (RhBug:523282) - - unintended change in commit 3d8656f040d2c780c88d0cd63594898f0605a6fa - -diff --git a/lib/tagexts.c b/lib/tagexts.c -index ec0b001..4588365 100644 ---- a/lib/tagexts.c -+++ b/lib/tagexts.c -@@ -137,7 +137,7 @@ static int filedepTag(Header h, rpmTag tagN, rpmtd td, headerGetFlags hgflags) - continue; - DNEVR = rpmdsDNEVR(ds); - if (DNEVR != NULL) { -- argvAdd(&deps, DNEVR); -+ argvAdd(&deps, DNEVR + 2); - } - } - } diff --git a/rpm-4.7.1-perl-heredoc.patch b/rpm-4.7.1-perl-heredoc.patch deleted file mode 100644 index a892f11..0000000 --- a/rpm-4.7.1-perl-heredoc.patch +++ /dev/null @@ -1,33 +0,0 @@ -commit 007218488a33678c66b19b34ab1ef9fd2ffaec9e -Author: Ville Skyttä -Date: Tue Sep 22 21:11:20 2009 +0300 - - Improve perl.req here-doc skipping. - - This version is stricter in finding the end identifier by using equality test - instead of a regex (as a side effect, fixes rhbz#524929) as well as parsing - quoted identifiers, and adds support for identifiers in backticks. - (cherry picked from commit dab575b24498e2362845e7da6dc76015fa88b4a9) - -diff --git a/scripts/perl.req b/scripts/perl.req -index 0d26346..4c08dcd 100755 ---- a/scripts/perl.req -+++ b/scripts/perl.req -@@ -82,12 +82,14 @@ sub process_file { - - # skip the "= <<" block - -- if ( ( m/^\s*\$(.*)\s*=\s*<<\s*["'](.*)['"]/) || -- ( m/^\s*\$(.*)\s*=\s*<<\s*(.*);/) ) { -+ if ( ( m/^\s*\$(?:.*)\s*=\s*<<\s*(["'`])(.*)\1/) || -+ ( m/^\s*\$(.*)\s*=\s*<<(\w*)\s*;/) ) { - $tag = $2; - while () { -- ( $_ =~ /^$tag/) && last; -+ chomp; -+ ( $_ eq $tag ) && last; - } -+ $_ = ; - } - - # skip q{} quoted sections - just hope we don't have curly brackets diff --git a/rpm-4.7.1-remove-db4-xa.patch b/rpm-4.7.1-remove-db4-xa.patch deleted file mode 100644 index cd7c18f..0000000 --- a/rpm-4.7.1-remove-db4-xa.patch +++ /dev/null @@ -1,22 +0,0 @@ -commit 0482504290d9d2f065dd8cb0d0c697c788724db3 -Author: Panu Matilainen -Date: Mon Sep 21 10:29:38 2009 +0300 - - Remove XA "support" from the backend - - it's removed from BDB 4.8.x and this has hardly ever done anything anyway - (cherry picked from commit 510c6763ef745b308abd1cc6cec2a62119e87c9c) - -diff --git a/lib/backend/dbconfig.c b/lib/backend/dbconfig.c -index e668036..2b16241 100644 ---- a/lib/backend/dbconfig.c -+++ b/lib/backend/dbconfig.c -@@ -40,9 +40,6 @@ struct poptOption rdbOptions[] = { - NULL, NULL }, - #endif - -- { "xa_create", 0,POPT_BIT_SET, &db3dbi.dbi_cflags, DB_XA_CREATE, -- NULL, NULL }, -- - { "create", 0,POPT_BIT_SET, &db3dbi.dbi_oeflags, DB_CREATE, - NULL, NULL }, - { "thread", 0,POPT_BIT_SET, &db3dbi.dbi_oeflags, DB_THREAD, diff --git a/rpm-4.7.1-rpm2cpio-init.patch b/rpm-4.7.1-rpm2cpio-init.patch deleted file mode 100644 index 389b7a6..0000000 --- a/rpm-4.7.1-rpm2cpio-init.patch +++ /dev/null @@ -1,27 +0,0 @@ -commit 63d37be6b4a854b9cbbd47306c5c383a2ad356c2 -Author: Panu Matilainen -Date: Tue Sep 15 12:57:51 2009 +0300 - - Initialize rpm earlier in rpm2cpio (RhBug:523260) - - url retrieval requires macros to be loaded - -diff --git a/rpm2cpio.c b/rpm2cpio.c -index 6c29cab..bf7f17c 100644 ---- a/rpm2cpio.c -+++ b/rpm2cpio.c -@@ -21,6 +21,7 @@ int main(int argc, char *argv[]) - FD_t gzdi; - - setprogname(argv[0]); /* Retrofit glibc __progname */ -+ rpmReadConfigFiles(NULL, NULL); - if (argc == 1) - fdi = fdDup(STDIN_FILENO); - else { -@@ -37,7 +38,6 @@ int main(int argc, char *argv[]) - exit(EXIT_FAILURE); - } - fdo = fdDup(STDOUT_FILENO); -- rpmReadConfigFiles(NULL, NULL); - - { rpmts ts = rpmtsCreate(); - rpmVSFlags vsflags = 0; diff --git a/rpm.spec b/rpm.spec index 0c6e06c..4be7415 100644 --- a/rpm.spec +++ b/rpm.spec @@ -11,7 +11,7 @@ %define rpmhome /usr/lib/rpm -%define rpmver 4.7.1 +%define rpmver 4.7.2 %define snapver {nil} %define srcver %{rpmver} @@ -21,7 +21,7 @@ Summary: The RPM package management system Name: rpm Version: %{rpmver} -Release: 10%{?dist} +Release: 1%{?dist} Group: System Environment/Base Url: http://www.rpm.org/ Source0: http://rpm.org/releases/rpm-4.7.x/%{name}-%{srcver}.tar.bz2 @@ -38,20 +38,10 @@ Patch2: rpm-4.5.90-gstreamer-provides.patch # this as Fedora-specific patch for now Patch3: rpm-4.6.0-fedora-specspo.patch -# Patches already in upstream +# Patches already in upstream (but not in 4.7.x) Patch200: rpm-4.7.1-bugurl.patch -Patch201: rpm-4.7.1-abs-filelist.patch -Patch202: rpm-4.7.1-debug-perms.patch -Patch203: rpm-4.7.1-duplicate-deps.patch -Patch204: rpm-4.7.1-chroot-env-paths.patch -Patch205: rpm-4.7.1-rpm2cpio-init.patch -Patch206: rpm-4.7.1-filedep-dnevr.patch -Patch207: rpm-4.7.1-chroot-remove-env.patch -Patch208: rpm-4.7.1-remove-db4-xa.patch -Patch209: rpm-4.7.1-perl-heredoc.patch -Patch210: rpm-4.7.0-extra-provides.patch -Patch211: rpm-4.7.1-python-bytecompile.patch -Patch212: rpm-4.7.1-diskspace.patch +Patch201: rpm-4.7.0-extra-provides.patch +Patch202: rpm-4.7.1-python-bytecompile.patch # These are not yet upstream Patch301: rpm-4.6.0-niagara.patch @@ -205,18 +195,8 @@ packages on a system. %patch3 -p1 -b .fedora-specspo %patch200 -p1 -b .bugurl -%patch201 -p1 -b .abs-filelist -%patch202 -p1 -b .debug-perms -%patch203 -p1 -b .duplicate-deps -%patch204 -p1 -b .chroot-env-paths -%patch205 -p1 -b .rpm2cpio.init -%patch206 -p1 -b .filedep-dnevr -%patch207 -p1 -b .chroot-remove-env -%patch208 -p1 -b .remove-db4-xa -%patch209 -p1 -b .perl-heredoc -%patch210 -p1 -b .extra-prov -%patch211 -p1 -b .python-bytecompile -%patch212 -p1 -b .diskspace +%patch201 -p1 -b .extra-prov +%patch202 -p1 -b .python-bytecompile %patch301 -p1 -b .niagara %patch302 -p1 -b .geode @@ -431,6 +411,10 @@ exit 0 %doc doc/librpm/html/* %changelog +* Wed Nov 25 2009 Panu Matilainen - 4.7.2-1 +- update to 4.7.2 (http://rpm.org/wiki/Releases/4.7.2) +- fixes #464750, #529214 + * Wed Nov 18 2009 Jindrich Novy - 4.7.1-10 - rebuild against BDB-4.8.24 diff --git a/sources b/sources index 9ffc0ab..3b72ee8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e1abe3bcf6514a319a3803d2cf3bf83b rpm-4.7.1.tar.bz2 +224715646325df4cd3904e3ac9e16186 rpm-4.7.2.tar.bz2