rpms/rpm/F-11 rpm-4.7.1-abs-filelist.patch, NONE, 1.1 rpm-4.7.1-chroot-env-paths.patch, NONE, 1.1 rpm-4.7.1-chroot-remove-env.patch, NONE, 1.1 rpm-4.7.1-debug-perms.patch, NONE, 1.1 rpm-4.7.1-duplicate-deps.patch, NONE, 1.1 rpm-4.7.1-filedep-dnevr.patch, NONE, 1.1 rpm-4.7.1-perl-heredoc.patch, NONE, 1.1 rpm-4.7.1-rpm2cpio-init.patch, NONE, 1.1 rpm.spec, 1.354, 1.355
Panu Matilainen
pmatilai at fedoraproject.org
Thu Oct 8 09:48:25 UTC 2009
- Previous message (by thread): rpms/btanks/devel btanks.spec,1.3,1.4
- Next message (by thread): rpms/eclipse/devel sources, 1.83, 1.84 eclipse.spec, 1.674, 1.675 eclipse-pde.build-add-package-build.patch, 1.13, NONE eclipse-osgi-classpath.patch, 1.2, NONE eclipse-gtk2.18zorder.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: pmatilai
Update of /cvs/pkgs/rpms/rpm/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv11055
Modified Files:
rpm.spec
Added Files:
rpm-4.7.1-abs-filelist.patch rpm-4.7.1-chroot-env-paths.patch
rpm-4.7.1-chroot-remove-env.patch rpm-4.7.1-debug-perms.patch
rpm-4.7.1-duplicate-deps.patch rpm-4.7.1-filedep-dnevr.patch
rpm-4.7.1-perl-heredoc.patch rpm-4.7.1-rpm2cpio-init.patch
Log Message:
- use relative paths within db environment (related to #507309, #507309...)
- remove db environment on close in chrooted operation (related to above)
- initialize rpmlib earlier in rpm2cpio (#523260)
- fix file dependency tag extension formatting (#523282)
- fix duplicate dependency filtering on build (#490378)
- permit absolute paths in file lists again (#521760)
- use permissions 444 for all .debug files (#522194)
- perl dep extractor heredoc parsing improvements (#524929)
rpm-4.7.1-abs-filelist.patch:
files.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
--- NEW FILE rpm-4.7.1-abs-filelist.patch ---
commit 4018bbd08e84fd0cc227dcb8d2dc20693ce2296a
Author: Panu Matilainen <pmatilai at 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)) {
rpm-4.7.1-chroot-env-paths.patch:
db3.c | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
--- NEW FILE rpm-4.7.1-chroot-env-paths.patch ---
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);
rpm-4.7.1-chroot-remove-env.patch:
backend/db3.c | 3 ++-
rpmdb.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
--- NEW FILE rpm-4.7.1-chroot-remove-env.patch ---
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));
rpm-4.7.1-debug-perms.patch:
find-debuginfo.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE rpm-4.7.1-debug-perms.patch ---
>From 6cc599de01a9835b5128b7b2a869f9f7cf3976fb Mon Sep 17 00:00:00 2001
From: Roland McGrath <roland at 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 at 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
rpm-4.7.1-duplicate-deps.patch:
reqprov.c | 62 ++++++++++++++++++++++++++++++++++++++++++--------------------
1 file changed, 42 insertions(+), 20 deletions(-)
--- NEW FILE rpm-4.7.1-duplicate-deps.patch ---
commit 10772ac7dfad60cb5a20681d22cf851468d0a8f9
Author: Panu Matilainen <pmatilai at 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;
}
rpm-4.7.1-filedep-dnevr.patch:
tagexts.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE rpm-4.7.1-filedep-dnevr.patch ---
commit d846e6b0f829791e6ffce4fd496c9378bff19c43
Author: Panu Matilainen <pmatilai at 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);
}
}
}
rpm-4.7.1-perl-heredoc.patch:
perl.req | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
--- NEW FILE rpm-4.7.1-perl-heredoc.patch ---
commit 007218488a33678c66b19b34ab1ef9fd2ffaec9e
Author: Ville Skyttä <ville.skytta at 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
rpm-4.7.1-rpm2cpio-init.patch:
rpm2cpio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE rpm-4.7.1-rpm2cpio-init.patch ---
commit 63d37be6b4a854b9cbbd47306c5c383a2ad356c2
Author: Panu Matilainen <pmatilai at 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;
Index: rpm.spec
===================================================================
RCS file: /cvs/pkgs/rpms/rpm/F-11/rpm.spec,v
retrieving revision 1.354
retrieving revision 1.355
diff -u -p -r1.354 -r1.355
--- rpm.spec 27 Jul 2009 19:03:33 -0000 1.354
+++ rpm.spec 8 Oct 2009 09:48:24 -0000 1.355
@@ -25,7 +25,7 @@
Summary: The RPM package management system
Name: rpm
Version: %{rpmver}
-Release: 2%{?dist}
+Release: 3%{?dist}
Group: System Environment/Base
Url: http://www.rpm.org/
Source0: http://rpm.org/releases/rpm-4.7.x/%{name}-%{srcver}.tar.bz2
@@ -43,6 +43,14 @@ Patch2: rpm-4.5.90-gstreamer-provides.pa
Patch3: rpm-4.6.0-fedora-specspo.patch
# Patches already in upstream
+Patch200: rpm-4.7.1-abs-filelist.patch
+Patch201: rpm-4.7.1-debug-perms.patch
+Patch202: rpm-4.7.1-duplicate-deps.patch
+Patch203: rpm-4.7.1-chroot-env-paths.patch
+Patch204: rpm-4.7.1-rpm2cpio-init.patch
+Patch205: rpm-4.7.1-filedep-dnevr.patch
+Patch206: rpm-4.7.1-chroot-remove-env.patch
+Patch207: rpm-4.7.1-perl-heredoc.patch
# These are not yet upstream
Patch300: rpm-4.7.0-extra-provides.patch
@@ -184,6 +192,15 @@ that will manipulate RPM packages and da
%patch2 -p1 -b .gstreamer-prov
%patch3 -p1 -b .fedora-specspo
+%patch200 -p1 -b .abs-filelist
+%patch201 -p1 -b .debug-perms
+%patch202 -p1 -b .duplicate-deps
+%patch203 -p1 -b .chroot-env-paths
+%patch204 -p1 -b .rpm2cpio.init
+%patch205 -p1 -b .filedep-dnevr
+%patch206 -p1 -b .chroot-remove-env
+%patch207 -p1 -b .perl-heredoc
+
%patch300 -p1 -b .extra-prov
%patch301 -p1 -b .niagara
@@ -393,6 +410,16 @@ exit 0
%doc doc/librpm/html/*
%changelog
+* Thu Oct 08 2009 Panu Matilainen <pmatilai at redhat.com> - 4.7.1-3
+- use relative paths within db environment (related to #507309, #507309...)
+- remove db environment on close in chrooted operation (related to above)
+- initialize rpmlib earlier in rpm2cpio (#523260)
+- fix file dependency tag extension formatting (#523282)
+- fix duplicate dependency filtering on build (#490378)
+- permit absolute paths in file lists again (#521760)
+- use permissions 444 for all .debug files (#522194)
+- perl dep extractor heredoc parsing improvements (#524929)
+
* Mon Jul 27 2009 Bill Nottingham <notting at redhat.com> - 4.7.1-2
- bump release
- Previous message (by thread): rpms/btanks/devel btanks.spec,1.3,1.4
- Next message (by thread): rpms/eclipse/devel sources, 1.83, 1.84 eclipse.spec, 1.674, 1.675 eclipse-pde.build-add-package-build.patch, 1.13, NONE eclipse-osgi-classpath.patch, 1.2, NONE eclipse-gtk2.18zorder.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list