New version

This commit is contained in:
Paul Nasrat 2005-11-29 17:01:59 +00:00
parent 2c259d0d36
commit d8085d2c56
2 changed files with 66 additions and 1 deletions

60
rpm-4.4.2-exclude.patch Normal file
View File

@ -0,0 +1,60 @@
--- rpm-4.4.2/rpmdb/fprint.h.exclude 2003-05-08 16:39:31.000000000 -0400
+++ rpm-4.4.2/rpmdb/fprint.h 2005-11-29 11:40:29.000000000 -0500
@@ -79,6 +79,12 @@
/*@modifies db, *matchList, rpmGlobalMacroContext,
fileSystem, internalState @*/;
+int rpmdbFindFpListExclude(/*@null@*/ rpmdb db, fingerPrint * fpList,
+ /*@out@*/ dbiIndexSet * matchList, int numItems, unsigned int exclude)
+ /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
+ /*@modifies db, *matchList, rpmGlobalMacroContext,
+ fileSystem, internalState @*/;
+
/* Be carefull with the memory... assert(*fullName == '/' || !scareMemory) */
/**
--- rpm-4.4.2/rpmdb/rpmdb.c.exclude 2005-02-15 22:18:19.000000000 -0500
+++ rpm-4.4.2/rpmdb/rpmdb.c 2005-11-29 11:47:10.000000000 -0500
@@ -3388,11 +3388,17 @@
return 0;
}
-/* XXX transaction.c */
-/*@-compmempass@*/
int rpmdbFindFpList(rpmdb db, fingerPrint * fpList, dbiIndexSet * matchList,
int numItems)
{
+ return rpmdbFindFpListExclude(db, fpList, matchList, numItems, 0);
+}
+
+/* XXX transaction.c */
+/*@-compmempass@*/
+int rpmdbFindFpListExclude(rpmdb db, fingerPrint * fpList, dbiIndexSet * matchList,
+ int numItems, unsigned int exclude)
+{
DBT * key;
DBT * data;
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
@@ -3424,7 +3430,10 @@
key->size = strlen((char *)key->data);
if (key->size == 0) key->size++; /* XXX "/" fixup. */
- if (skipDir(fpList[i].entry->dirName))
+ /* HACK HACK HACK: don't skip dirs while removing
+ * packages as we will loose files on conflicts.
+ * exclude is not zero when removing */
+ if (!exclude && skipDir(fpList[i].entry->dirName))
continue;
xx = rpmdbGrowIterator(mi, i);
--- rpm-4.4.2/lib/transaction.c.exclude 2005-11-29 11:40:29.000000000 -0500
+++ rpm-4.4.2/lib/transaction.c 2005-11-29 11:40:29.000000000 -0500
@@ -1750,7 +1750,7 @@
(void) rpmswEnter(rpmtsOp(ts, RPMTS_OP_FINGERPRINT), 0);
/* Extract file info for all files in this package from the database. */
matches = xcalloc(fc, sizeof(*matches));
- if (rpmdbFindFpList(rpmtsGetRdb(ts), fi->fps, matches, fc)) {
+ if (rpmdbFindFpListExclude(rpmtsGetRdb(ts), fi->fps, matches, fc, rpmteType(p) == TR_REMOVED ? fi->record : 0)) {
ps = rpmpsFree(ps);
rpmtsFreeLock(lock);
return 1; /* XXX WTFO? */

View File

@ -20,7 +20,7 @@ Name: rpm
%define version 4.4.2 %define version 4.4.2
Version: %{version} Version: %{version}
%{expand: %%define rpm_version %{version}} %{expand: %%define rpm_version %{version}}
Release: 8 Release: 9
Group: System Environment/Base Group: System Environment/Base
Source: ftp://wraptastic.org/pub/rpm-4.4.x/rpm-%{rpm_version}.tar.gz Source: ftp://wraptastic.org/pub/rpm-4.4.x/rpm-%{rpm_version}.tar.gz
Patch0: rpm-4.4.1-hkp-disable.patch Patch0: rpm-4.4.1-hkp-disable.patch
@ -35,6 +35,7 @@ Patch8: rpm-4.4.2-db3-param.patch
Patch9: rpm-4.4.2-contextverify.patch Patch9: rpm-4.4.2-contextverify.patch
Patch10: rpm-4.4.2-popt-charset.patch Patch10: rpm-4.4.2-popt-charset.patch
Patch11: rpm-4.4.2-ghost-conflicts.patch Patch11: rpm-4.4.2-ghost-conflicts.patch
Patch12: rpm-4.4.2-exclude.patch
License: GPL License: GPL
Conflicts: patch < 2.5 Conflicts: patch < 2.5
%ifos linux %ifos linux
@ -158,6 +159,7 @@ shell-like rules.
%patch9 -p1 -b .contextverify %patch9 -p1 -b .contextverify
%patch10 -p1 -b .charset %patch10 -p1 -b .charset
%patch11 -p1 -b .ghostconflicts %patch11 -p1 -b .ghostconflicts
%patch12 -p1 -b .exclude
%build %build
@ -550,6 +552,9 @@ exit 0
%{__includedir}/popt.h %{__includedir}/popt.h
%changelog %changelog
* Tue Nov 29 2005 Paul Nasrat <pnasrat@redhat.com> - 4.4.2-9
- Don't skipDirs on erasures (#140055)
* Mon Nov 28 2005 Paul Nasrat <pnasrat@redhat.com> - 4.4.2-8 * Mon Nov 28 2005 Paul Nasrat <pnasrat@redhat.com> - 4.4.2-8
- Add elfutils Build Requires to rpmbuild (#155129) - Add elfutils Build Requires to rpmbuild (#155129)
- Don't do conflicts if both files %ghost(#155256) - Don't do conflicts if both files %ghost(#155256)