Update to 4.7.2, mop up now unnecessary patches

This commit is contained in:
Panu Matilainen 2009-11-25 08:23:32 +00:00
parent e680093050
commit c23067b502
13 changed files with 13 additions and 393 deletions

View File

@ -1 +1 @@
rpm-4.7.1.tar.bz2
rpm-4.7.2.tar.bz2

View File

@ -1,30 +0,0 @@
commit 4018bbd08e84fd0cc227dcb8d2dc20693ce2296a
Author: Panu Matilainen <pmatilai@redhat.com>
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)) {

View File

@ -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);

View File

@ -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));

View File

@ -1,25 +0,0 @@
From 6cc599de01a9835b5128b7b2a869f9f7cf3976fb Mon Sep 17 00:00:00 2001
From: Roland McGrath <roland@redhat.com>
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 <roland@redhat.com>
---
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

View File

@ -1,56 +0,0 @@
commit 2222e81e1cf74bbf78acb9969592ab06e2289929
Author: Panu Matilainen <pmatilai@redhat.com>
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

View File

@ -1,95 +0,0 @@
commit 10772ac7dfad60cb5a20681d22cf851468d0a8f9
Author: Panu Matilainen <pmatilai@redhat.com>
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 <rpm/rpmbuild.h>
#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;
}

View File

@ -1,20 +0,0 @@
commit d846e6b0f829791e6ffce4fd496c9378bff19c43
Author: Panu Matilainen <pmatilai@redhat.com>
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);
}
}
}

View File

@ -1,33 +0,0 @@
commit 007218488a33678c66b19b34ab1ef9fd2ffaec9e
Author: Ville Skyttä <ville.skytta@iki.fi>
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 (<FILE>) {
- ( $_ =~ /^$tag/) && last;
+ chomp;
+ ( $_ eq $tag ) && last;
}
+ $_ = <FILE>;
}
# skip q{} quoted sections - just hope we don't have curly brackets

View File

@ -1,22 +0,0 @@
commit 0482504290d9d2f065dd8cb0d0c697c788724db3
Author: Panu Matilainen <pmatilai@redhat.com>
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,

View File

@ -1,27 +0,0 @@
commit 63d37be6b4a854b9cbbd47306c5c383a2ad356c2
Author: Panu Matilainen <pmatilai@redhat.com>
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;

View File

@ -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 <pmatilai@redhat.com> - 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 <jnovy@redhat.com> - 4.7.1-10
- rebuild against BDB-4.8.24

View File

@ -1 +1 @@
e1abe3bcf6514a319a3803d2cf3bf83b rpm-4.7.1.tar.bz2
224715646325df4cd3904e3ac9e16186 rpm-4.7.2.tar.bz2