rpms/rpm/FC-6 rpm-4.4.2.1-checksignals.patch, NONE, 1.1 rpm-4.4.2.1-checkterminate-noexit.patch, NONE, 1.1 rpm-4.4.2.1-checkterminate.patch, NONE, 1.1 rpm-4.4.2.1-config-mtime.patch, NONE, 1.1 rpm-4.4.2.1-python-exithook.patch, NONE, 1.1 rpm-4.4.2.1-strict-docdir.patch, NONE, 1.1 .cvsignore, 1.15, 1.16 rpm.spec, 1.215, 1.216 sources, 1.120, 1.121 mono-find-provides, 1.1, NONE mono-find-requires, 1.1, NONE rpm-4.4.1-fileconflicts.patch, 1.1, NONE rpm-4.4.1-hkp-disable.patch, 1.1, NONE rpm-4.4.1-noconfigdep.patch, 1.1, NONE rpm-4.4.1-nonmerged.patch, 1.1, NONE rpm-4.4.1-ordererase.patch, 1.1, NONE rpm-4.4.1-prepostun.patch, 1.1, NONE rpm-4.4.2-contextverify.patch, 1.2, NONE rpm-4.4.2-cronpath.patch, 1.1, NONE rpm-4.4.2-db3-param.patch, 1.1, NONE rpm-4.4.2-debugedit-ppc-reloc.patch, 1.1, NONE rpm-4.4.2-debugpaths.patch, 1.1, NONE rpm-4.4.2-doxy.patch, 1.1, NONE rpm-4.4.2-exclude.patch, 1.1, NONE rpm-4.4.2-excluded-size.patch, 1.1, NONE rpm-4.4.2-file-softmagic.patch, 1.1, NONE rpm-4.4.2-gnuhash.patch, 1.3, NONE rpm-4.4.2-! ia32e-install.patch, 1.1, NONE rpm-4.4.2-mono.patch, 1.1, NONE rpm-4.4.2-multi-digest.patch, 1.1, NONE rpm-4.4.2-netsharedpath.patch, 1.1, NONE rpm-4.4.2-no-large-mmap.patch, 1.1, NONE rpm-4.4.2-no-ppc-asm.patch, 1.1, NONE rpm-4.4.2-noselinux-verify.patch, 1.1, NONE rpm-4.4.2-perlmainprov.patch, 1.1, NONE rpm-4.4.2-perlreq.patch, 1.1, NONE rpm-4.4.2-popt-charset.patch, 1.1, NONE rpm-4.4.2-python-aslist.patch, 1.1, NONE rpm-4.4.2-rpmio-ipv6.patch, 1.1, NONE rpm-4.4.2-rpmsq-deadlock.patch, 1.1, NONE rpm-4.4.2-teCount-assert.patch, 1.1, NONE rpm-4.4.2-userlock.patch, 1.1, NONE rpm-4.4.2-vercmp.patch, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Aug 13 07:55:41 UTC 2007


Author: pmatilai

Update of /cvs/dist/rpms/rpm/FC-6
In directory cvs.devel.redhat.com:/tmp/cvs-serv25038/FC-6

Modified Files:
	.cvsignore rpm.spec sources 
Added Files:
	rpm-4.4.2.1-checksignals.patch 
	rpm-4.4.2.1-checkterminate-noexit.patch 
	rpm-4.4.2.1-checkterminate.patch 
	rpm-4.4.2.1-config-mtime.patch 
	rpm-4.4.2.1-python-exithook.patch 
	rpm-4.4.2.1-strict-docdir.patch 
Removed Files:
	mono-find-provides mono-find-requires 
	rpm-4.4.1-fileconflicts.patch rpm-4.4.1-hkp-disable.patch 
	rpm-4.4.1-noconfigdep.patch rpm-4.4.1-nonmerged.patch 
	rpm-4.4.1-ordererase.patch rpm-4.4.1-prepostun.patch 
	rpm-4.4.2-contextverify.patch rpm-4.4.2-cronpath.patch 
	rpm-4.4.2-db3-param.patch rpm-4.4.2-debugedit-ppc-reloc.patch 
	rpm-4.4.2-debugpaths.patch rpm-4.4.2-doxy.patch 
	rpm-4.4.2-exclude.patch rpm-4.4.2-excluded-size.patch 
	rpm-4.4.2-file-softmagic.patch rpm-4.4.2-gnuhash.patch 
	rpm-4.4.2-ia32e-install.patch rpm-4.4.2-mono.patch 
	rpm-4.4.2-multi-digest.patch rpm-4.4.2-netsharedpath.patch 
	rpm-4.4.2-no-large-mmap.patch rpm-4.4.2-no-ppc-asm.patch 
	rpm-4.4.2-noselinux-verify.patch rpm-4.4.2-perlmainprov.patch 
	rpm-4.4.2-perlreq.patch rpm-4.4.2-popt-charset.patch 
	rpm-4.4.2-python-aslist.patch rpm-4.4.2-rpmio-ipv6.patch 
	rpm-4.4.2-rpmsq-deadlock.patch rpm-4.4.2-teCount-assert.patch 
	rpm-4.4.2-userlock.patch rpm-4.4.2-vercmp.patch 
Log Message:
auto-import rpm-4.4.2.1-1.fc7 on branch FC-6 from rpm-4.4.2.1-1.fc7.src.rpm

rpm-4.4.2.1-checksignals.patch:
 rpmmodule.c |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+)

--- NEW FILE rpm-4.4.2.1-checksignals.patch ---
changeset:   6176:c0237c16e2e3
user:        Panu Matilainen <pmatilai at redhat.com>
date:        Fri Jul 20 10:41:15 2007 +0300
files:       python/rpmmodule.c
description:
Add python methods for checking pending signals from rpmsqCaught.
- a thin wrapper for rpmdbCheckSignals() from rpm5.org / Jeff Johnson
- a function taking a list of signals to check and returning list caught
  signals (python doesn't know about signal sets so rpmsqCaught needs
  wrapping)


diff -r d8e2ec20c948 -r c0237c16e2e3 python/rpmmodule.c
--- a/python/rpmmodule.c	Wed Jul 18 16:05:56 2007 +0300
+++ b/python/rpmmodule.c	Fri Jul 20 10:41:15 2007 +0300
@@ -7,6 +7,7 @@
 #include <rpmio_internal.h>
 #include <rpmcli.h>	/* XXX for rpmCheckSig */
 #include <rpmdb.h>
+#include <rpmsq.h>
 
 #include "legacy.h"
 #include "misc.h"
@@ -58,6 +59,50 @@ static PyObject * archScore(PyObject * s
 }
 
 /**
+ *  */
+static PyObject * signalsCaught(PyObject * self, PyObject * check)
+{
+    PyObject *caught, *o;
+    Py_ssize_t llen;
+    int signum, i;
+    sigset_t newMask, oldMask;
+
+    if (!PyList_Check(check)) {
+	PyErr_SetString(PyExc_TypeError, "list expected");
+	return NULL;
+    }
+
+    llen = PyList_Size(check);
+    caught = PyList_New(0);
+
+    /* block signals while checking for them */
+    (void) sigfillset(&newMask);
+    (void) sigprocmask(SIG_BLOCK, &newMask, &oldMask);
+
+    for (i = 0; i < llen; i++) {
+	o = PyList_GetItem(check, i);
+	signum = PyInt_AsLong(o);
+	if (sigismember(&rpmsqCaught, signum)) {
+	    PyList_Append(caught, o);
+	}
+    }
+    (void) sigprocmask(SIG_SETMASK, &oldMask, NULL);
+
+    return caught;
+}
+
+/**
+ *  */
+static PyObject * checkSignals(PyObject * self, PyObject * args)
+{
+    if (!PyArg_ParseTuple(args, ":checkSignals")) return NULL;
+    rpmdbCheckSignals();
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+/**
  */
 static PyObject * setLogFile (PyObject * self, PyObject * args, PyObject *kwds)
 {
@@ -145,6 +190,11 @@ static PyMethodDef rpmModuleMethods[] = 
 
     { "archscore", (PyCFunction) archScore, METH_VARARGS|METH_KEYWORDS,
 	NULL },
+
+    { "signalsCaught", (PyCFunction) signalsCaught, METH_O, 
+	NULL },
+    { "checkSignals", (PyCFunction) checkSignals, METH_VARARGS,
+        NULL },
 
     { "headerLoad", (PyCFunction) hdrLoad, METH_VARARGS|METH_KEYWORDS,
 	NULL },


rpm-4.4.2.1-checkterminate-noexit.patch:
 python/rpmmodule.c |    2 --
 rpmdb/rpmdb.c      |   26 ++++++++++++++------------
 rpmdb/rpmdb.h      |   12 +++++++-----
 3 files changed, 21 insertions(+), 19 deletions(-)

--- NEW FILE rpm-4.4.2.1-checkterminate-noexit.patch ---
changeset:   6179:fb37e4dccbf3
tag:         tip
user:        Panu Matilainen <pmatilai at redhat.com>
date:        Sat Jul 21 15:05:19 2007 +0300
files:       python/rpmmodule.c rpmdb/rpmdb.c rpmdb/rpmdb.h
description:
Make rpmdbCheckTerminate() non-terminating.
This allows use in exit handler without affecting exit code, and permits
caller to do its own cleanup if necessary.


diff -r e9ced408b17f -r fb37e4dccbf3 python/rpmmodule.c
--- a/python/rpmmodule.c	Fri Jul 20 11:23:11 2007 +0300
+++ b/python/rpmmodule.c	Sat Jul 21 15:05:19 2007 +0300
@@ -229,8 +229,6 @@ static PyMethodDef rpmModuleMethods[] = 
 
 /*
 * Force clean up of open iterators and dbs on exit.
-* This ends up calling exit() while we're already exiting but exit
-* handlers will only get called once so it wont loop.
 */
 static void rpm_exithook(void)
 {
diff -r e9ced408b17f -r fb37e4dccbf3 rpmdb/rpmdb.c
--- a/rpmdb/rpmdb.c	Fri Jul 20 11:23:11 2007 +0300
+++ b/rpmdb/rpmdb.c	Sat Jul 21 15:05:19 2007 +0300
@@ -707,7 +707,7 @@ int rpmdbCheckTerminate(int terminate)
     sigset_t newMask, oldMask;
     static int terminating = 0;
 
-    if (terminating) return 0;
+    if (terminating) return 1;
 
     (void) sigfillset(&newMask);		/* block all signals */
     (void) sigprocmask(SIG_BLOCK, &newMask, &oldMask);
@@ -724,10 +724,6 @@ int rpmdbCheckTerminate(int terminate)
 	rpmdb db;
 	rpmdbMatchIterator mi;
 
-/*@-abstract@*/ /* sigset_t is abstract type */
-	rpmMessage(RPMMESS_DEBUG, "Exiting on signal(0x%lx) ...\n", *((unsigned long *)&rpmsqCaught));
-/*@=abstract@*/
-
 /*@-branchstate@*/
 	while ((mi = rpmmiRock) != NULL) {
 /*@i@*/	    rpmmiRock = mi->mi_next;
@@ -743,14 +739,20 @@ int rpmdbCheckTerminate(int terminate)
 	    (void) rpmdbClose(db);
 	}
 /*@=newreftrans@*/
+    }
+    sigprocmask(SIG_SETMASK, &oldMask, NULL);
+    return terminating;
+}
+
+int rpmdbCheckSignals(void)
+{
+    if (rpmdbCheckTerminate(0)) {
+/*@-abstract@*/ /* sigset_t is abstract type */
+	rpmMessage(RPMMESS_DEBUG, "Exiting on signal(0x%lx) ...\n", *((unsigned long *)&rpmsqCaught));
 	exit(EXIT_FAILURE);
-    }
-    return sigprocmask(SIG_SETMASK, &oldMask, NULL);
-}
-
-int rpmdbCheckSignals(void)
-{
-    return rpmdbCheckTerminate(0);
+/*@=abstract@*/
+    }
+    return 0;
 }
 
 /**
diff -r e9ced408b17f -r fb37e4dccbf3 rpmdb/rpmdb.h
--- a/rpmdb/rpmdb.h	Fri Jul 20 11:23:11 2007 +0300
+++ b/rpmdb/rpmdb.h	Sat Jul 21 15:05:19 2007 +0300
@@ -1039,8 +1039,7 @@ Header rpmdbNextIterator(/*@null@*/ rpmd
 	/*@modifies mi, rpmGlobalMacroContext, fileSystem, internalState @*/;
 
 /** \ingroup rpmdb
- * Check rpmdb signal handler for trapped signal exit. Just a compatibility
- * wrapper for rpmdbCheckTerminate()
+ * Check for and exit on termination signals.
  */
 /*@mayexit@*/
 int rpmdbCheckSignals(void)
@@ -1048,10 +1047,13 @@ int rpmdbCheckSignals(void)
 	/*@modifies fileSystem, internalState @*/;
 
 /** \ingroup rpmdb
- * Check rpmdb signal handler for trapped signal or requested exit.
+ * Check rpmdb signal handler for trapped signal and/or requested exit,
+ * clean up any open iterators and databases on termination condition.
+ * On non-zero exit any open references to rpmdb are invalid and cannot
+ * be accessed anymore, calling process should terminate immediately.
  * @param terminate	0 to only check for signals, 1 to terminate anyway
- */
-/*@mayexit@*/
+ * @return 		0 to continue, 1 if termination cleanup was done.
+ */
 int rpmdbCheckTerminate(int terminate);
 
 /** \ingroup rpmdb


rpm-4.4.2.1-checkterminate.patch:
 rpmdb.c |   22 ++++++++++++++--------
 rpmdb.h |   10 +++++++++-
 2 files changed, 23 insertions(+), 9 deletions(-)

--- NEW FILE rpm-4.4.2.1-checkterminate.patch ---
changeset:   6177:6acd7701e4df
user:        Panu Matilainen <pmatilai at redhat.com>
date:        Fri Jul 20 11:19:56 2007 +0300
files:       rpmdb/rpmdb.c rpmdb/rpmdb.h
description:
Support explicitly asking from rpmdb cleanup + termination.
New rpmdbCheckTerminate() function which checks for termination signals
and allows requesting termination via parameter as well. Make
rpmdbCheckSignals() just a wrapper that calls it with terminate=0.


diff -r c0237c16e2e3 -r 6acd7701e4df rpmdb/rpmdb.c
--- a/rpmdb/rpmdb.c	Fri Jul 20 10:41:15 2007 +0300
+++ b/rpmdb/rpmdb.c	Fri Jul 20 11:19:56 2007 +0300
@@ -700,14 +700,14 @@ static rpmdb rpmdbRock;
 /*@unchecked@*/ /*@exposed@*/ /*@null@*/
 static rpmdbMatchIterator rpmmiRock;
 
-int rpmdbCheckSignals(void)
+int rpmdbCheckTerminate(int terminate)
 	/*@globals rpmdbRock, rpmmiRock @*/
 	/*@modifies rpmdbRock, rpmmiRock @*/
 {
     sigset_t newMask, oldMask;
-    static int terminate = 0;
-
-    if (terminate) return 0;
+    static int terminating = 0;
+
+    if (terminating) return 0;
 
     (void) sigfillset(&newMask);		/* block all signals */
     (void) sigprocmask(SIG_BLOCK, &newMask, &oldMask);
@@ -716,10 +716,11 @@ int rpmdbCheckSignals(void)
      || sigismember(&rpmsqCaught, SIGQUIT)
      || sigismember(&rpmsqCaught, SIGHUP)
      || sigismember(&rpmsqCaught, SIGTERM)
-     || sigismember(&rpmsqCaught, SIGPIPE))
-	terminate = 1;
-
-    if (terminate) {
+     || sigismember(&rpmsqCaught, SIGPIPE)
+     || terminate)
+	terminating = 1;
+
+    if (terminating) {
 	rpmdb db;
 	rpmdbMatchIterator mi;
 
@@ -745,6 +746,11 @@ int rpmdbCheckSignals(void)
 	exit(EXIT_FAILURE);
     }
     return sigprocmask(SIG_SETMASK, &oldMask, NULL);
+}
+
+int rpmdbCheckSignals(void)
+{
+    return rpmdbCheckTerminate(0);
 }
 
 /**
diff -r c0237c16e2e3 -r 6acd7701e4df rpmdb/rpmdb.h
--- a/rpmdb/rpmdb.h	Fri Jul 20 10:41:15 2007 +0300
+++ b/rpmdb/rpmdb.h	Fri Jul 20 11:19:56 2007 +0300
@@ -1039,12 +1039,20 @@ Header rpmdbNextIterator(/*@null@*/ rpmd
 	/*@modifies mi, rpmGlobalMacroContext, fileSystem, internalState @*/;
 
 /** \ingroup rpmdb
- * Check rpmdb signal handler for trapped signal exit.
+ * Check rpmdb signal handler for trapped signal exit. Just a compatibility
+ * wrapper for rpmdbCheckTerminate()
  */
 /*@mayexit@*/
 int rpmdbCheckSignals(void)
 	/*@globals fileSystem, internalState @*/
 	/*@modifies fileSystem, internalState @*/;
+
+/** \ingroup rpmdb
+ * Check rpmdb signal handler for trapped signal or requested exit.
+ * @param terminate	0 to only check for signals, 1 to terminate anyway
+ */
+/*@mayexit@*/
+int rpmdbCheckTerminate(int terminate);
 
 /** \ingroup rpmdb
  * Destroy rpm database iterator.


rpm-4.4.2.1-config-mtime.patch:
 rpmfi.c       |   44 ++++++++++++++++++++++++++++++++++++++++++++
 rpmfi.h       |    8 ++++++++
 transaction.c |    6 +++---
 3 files changed, 55 insertions(+), 3 deletions(-)

--- NEW FILE rpm-4.4.2.1-config-mtime.patch ---
changeset:   6235:0d4b8cfd8dc9
tag:         tip
user:        Panu Matilainen <pmatilai at redhat.com>
date:        Thu Aug 09 15:15:24 2007 +0300
files:       lib/rpmfi.c lib/rpmfi.h lib/transaction.c
description:
Avoid unnecessary .rpmnew and .rpmsave files (rhbz#128622)
Don't create .rpmnew and .rpmsave files when file/symlink on disk differs
just by timestamp. Patch by Tomas Mraz.


diff -r debbc872bbb3 -r 0d4b8cfd8dc9 lib/rpmfi.c
--- a/lib/rpmfi.c	Thu Aug 09 14:18:11 2007 +0300
+++ b/lib/rpmfi.c	Thu Aug 09 15:15:24 2007 +0300
@@ -22,6 +22,7 @@
 #include "rpmte.h"
 #include "rpmts.h"
 
+#include "legacy.h"     /* XXX domd5 */
 #include "misc.h"	/* XXX stripTrailingChar */
 #include "rpmmacro.h"	/* XXX rpmCleanPath */
 #include "legacy.h"
@@ -625,6 +626,49 @@ fileAction rpmfiDecideFate(const rpmfi o
      * merge the difference ala CVS, but...
      */
     return save;
+}
+/*@=boundsread@*/
+
+/*@-boundsread@*/
+int rpmfiConfigConflict(const rpmfi fi)
+{
+    const char * fn = rpmfiFN(fi);
+    int flags = rpmfiFFlags(fi);
+    char buffer[1024];
+    fileTypes newWhat, diskWhat;
+    struct stat sb;
+
+    if (!(flags & RPMFILE_CONFIG) || lstat(fn, &sb)) {
+	return 0;
+    }
+
+    diskWhat = whatis((int_16)sb.st_mode);
+    newWhat = whatis(rpmfiFMode(fi));
+
+    if (newWhat != LINK && newWhat != REG)
+	return 1;
+
+    if (diskWhat != newWhat)
+	return 1;
+    
+    memset(buffer, 0, sizeof(buffer));
+    if (newWhat == REG) {
+	const unsigned char * nmd5;
+	if (domd5(fn, (unsigned char *)buffer, 0, NULL))
+	    return 0;	/* assume file has been removed */
+	nmd5 = rpmfiMD5(fi);
+	if (nmd5 && !memcmp(nmd5, buffer, 16))
+	    return 0;	/* unmodified config file */
+    } else /* newWhat == LINK */ {
+	const char * nFLink;
+	if (readlink(fn, buffer, sizeof(buffer) - 1) == -1)
+	    return 0;	/* assume file has been removed */
+	nFLink = rpmfiFLink(fi);
+	if (nFLink && !strcmp(nFLink, buffer))
+	    return 0;	/* unmodified config file */
+    }
+
+    return 1;
 }
 /*@=boundsread@*/
 
diff -r debbc872bbb3 -r 0d4b8cfd8dc9 lib/rpmfi.h
--- a/lib/rpmfi.h	Thu Aug 09 14:18:11 2007 +0300
+++ b/lib/rpmfi.h	Thu Aug 09 15:15:24 2007 +0300
@@ -620,6 +620,14 @@ fileAction rpmfiDecideFate(const rpmfi o
 	/*@modifies nfi, fileSystem, internalState @*/;
 
 /**
+ * Return whether file is conflicting config
+ * @param fi		file info
+ * @return		1 if config file and file on disk conflicts
+ */
+int rpmfiConfigConflict(const rpmfi fi)
+	/*@*/;
+
+/**
  * Return formatted string representation of package disposition.
  * @param fi		file info set
  * @return		formatted string
diff -r debbc872bbb3 -r 0d4b8cfd8dc9 lib/transaction.c
--- a/lib/transaction.c	Thu Aug 09 14:18:11 2007 +0300
+++ b/lib/transaction.c	Thu Aug 09 15:15:24 2007 +0300
@@ -547,7 +547,7 @@ static void handleOverlappedFiles(const 
 /*@-boundswrite@*/
 	switch (rpmteType(p)) {
 	case TR_ADDED:
-	  { struct stat sb;
+	  {
 	    int reportConflicts =
 		!(rpmtsFilterFlags(ts) & RPMPROB_FILTER_REPLACENEWFILES);
 	    int done = 0;
@@ -556,7 +556,7 @@ static void handleOverlappedFiles(const 
 		/* XXX is this test still necessary? */
 		if (fi->actions[i] != FA_UNKNOWN)
 		    /*@switchbreak@*/ break;
-		if ((FFlags & RPMFILE_CONFIG) && !lstat(fn, &sb)) {
+		if (rpmfiConfigConflict(fi)) {
 		    /* Here is a non-overlapped pre-existing config file. */
 		    fi->actions[i] = (FFlags & RPMFILE_NOREPLACE)
 			? FA_ALTNAME : FA_BACKUP;
@@ -613,7 +613,7 @@ assert(otherFi != NULL);
 	    /* Try to get the disk accounting correct even if a conflict. */
 	    fixupSize = rpmfiFSize(otherFi);
 
-	    if ((FFlags & RPMFILE_CONFIG) && !lstat(fn, &sb)) {
+	    if (rpmfiConfigConflict(fi)) {
 		/* Here is an overlapped  pre-existing config file. */
 		fi->actions[i] = (FFlags & RPMFILE_NOREPLACE)
 			? FA_ALTNAME : FA_SKIP;


rpm-4.4.2.1-python-exithook.patch:
 rpmmodule.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+)

--- NEW FILE rpm-4.4.2.1-python-exithook.patch ---
changeset:   6178:e9ced408b17f
tag:         tip
user:        Panu Matilainen <pmatilai at redhat.com>
date:        Fri Jul 20 11:23:11 2007 +0300
files:       python/rpmmodule.c
description:
Force rpmdb clean termination on exit from python.
Python process tracebacking with active iterators can and will otherwise leave
stale locks around (as is presumably the reason for rhbz#235389 and various
other locking issues)


diff -r 6acd7701e4df -r e9ced408b17f python/rpmmodule.c
--- a/python/rpmmodule.c	Fri Jul 20 11:19:56 2007 +0300
+++ b/python/rpmmodule.c	Fri Jul 20 11:23:11 2007 +0300
@@ -227,6 +227,16 @@ static PyMethodDef rpmModuleMethods[] = 
     { NULL }
 } ;
 
+/*
+* Force clean up of open iterators and dbs on exit.
+* This ends up calling exit() while we're already exiting but exit
+* handlers will only get called once so it wont loop.
+*/
+static void rpm_exithook(void)
+{
+   rpmdbCheckTerminate(1);
+}
+
 /**
  */
 static char rpm__doc__[] =
@@ -263,6 +273,13 @@ void init_rpm(void)
 
     m = Py_InitModule3("_rpm", rpmModuleMethods, rpm__doc__);
     if (m == NULL)
+	return;
+
+    /* 
+     * treat error to register rpm cleanup hook as fatal, tracebacks
+     * can and will leave stale locks around if we can't clean up
+     */
+    if (Py_AtExit(rpm_exithook) == -1)
 	return;
 
     rpmReadConfigFiles(NULL, NULL);


rpm-4.4.2.1-strict-docdir.patch:
 files.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

--- NEW FILE rpm-4.4.2.1-strict-docdir.patch ---
diff -r e1802883bd62 -r cf3b54441b8a build/files.c
--- a/build/files.c	Sat Jul 21 15:48:03 2007 +0300
+++ b/build/files.c	Mon Jul 23 10:02:54 2007 +0300
@@ -1065,7 +1065,6 @@ static int compareFileListRecs(const voi
 
 /**
  * Test if file is located in a %docdir.
- * @bug Use of strstr(3) might result in false positives.
  * @param fl		package file tree walk data
  * @param fileName	file path
  * @return		1 if doc file, 0 if not
@@ -1073,9 +1072,12 @@ static int isDoc(FileList fl, const char
 static int isDoc(FileList fl, const char * fileName)	/*@*/
 {
     int x = fl->docDirCount;
-
+    size_t k, l;
+
+    k = strlen(fileName);
     while (x--) {
-	if (strstr(fileName, fl->docDirs[x]) == fileName)
+	l = strlen(fl->docDirs[x]);
+	if (l < k && strncmp(fileName, fl->docDirs[x], l) == 0 && fileName[l] == '/')
 	    return 1;
     }
     return 0;


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/rpm/FC-6/.cvsignore,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- .cvsignore	21 Jul 2005 21:26:50 -0000	1.15
+++ .cvsignore	13 Aug 2007 07:55:37 -0000	1.16
@@ -1,3 +1 @@
-rpm-4.3.3.tar.gz
-rpm-4.4.1.tar.gz
-rpm-4.4.2.tar.gz
+rpm-4.4.2.1.tar.gz


Index: rpm.spec
===================================================================
RCS file: /cvs/dist/rpms/rpm/FC-6/rpm.spec,v
retrieving revision 1.215
retrieving revision 1.216
diff -u -r1.215 -r1.216
--- rpm.spec	27 Apr 2007 14:29:01 -0000	1.215
+++ rpm.spec	13 Aug 2007 07:55:37 -0000	1.216
@@ -1,96 +1,64 @@
-%define	with_python_subpackage	1%{nil}
-%define	with_python_version	2.4%{nil}
-%define	with_bzip2		1%{nil}
-%define	with_apidocs		1%{nil}
+%define with_python_version     2.5%{nil}
+%define with_apidocs            1%{nil}
 
-# XXX legacy requires './' payload prefix to be omitted from rpm packages.
-%define	_noPayloadPrefix	1
-
-%define	__prefix	%{?_prefix}%{!?_prefix:/usr}
+%define __prefix        %{?_prefix}%{!?_prefix:/usr}
 %{?!_lib: %define _lib lib}
 %{expand: %%define __share %(if [ -d %{__prefix}/share/man ]; then echo /share ; else echo %%{nil} ; fi)}
 
-%define __bindir	%{__prefix}/bin
-%define __includedir	%{__prefix}/include
-%define __libdir	%{__prefix}/%{_lib}
-%define __mandir	%{__prefix}%{__share}/man
+%define __bindir        %{__prefix}/bin
+%define __includedir    %{__prefix}/include
+%define __libdir        %{__prefix}/%{_lib}
+%define __mandir        %{__prefix}%{__share}/man
 
-Summary: The RPM package management system.
+Summary: The RPM package management system
 Name: rpm
-%define version 4.4.2
-Version: %{version}
+Version: 4.4.2.1
 %{expand: %%define rpm_version %{version}}
-Release: 33%{?dist}
+Release: 1%{?dist}
 Group: System Environment/Base
-Source: ftp://wraptastic.org/pub/rpm-4.4.x/rpm-%{rpm_version}.tar.gz
-Source1: mono-find-provides
-Source2: mono-find-requires
-Patch0: rpm-4.4.1-hkp-disable.patch
-Patch1: rpm-4.4.1-fileconflicts.patch 
-Patch2: rpm-4.4.1-prereq.patch
-Patch3: rpm-4.4.1-nonmerged.patch
-Patch4: rpm-4.4.1-prepostun.patch
-Patch5: rpm-4.4.1-ordererase.patch
+Url: http://www.rpm.org/
+Source: rpm-%{rpm_version}.tar.gz
+Patch1: rpm-4.4.1-prereq.patch
+Patch2: rpm-4.4.2-ghost-conflicts.patch
+Patch3: rpm-4.4.2-trust.patch
+Patch4: rpm-4.4.2-devel-autodep.patch
+Patch5: rpm-4.4.2-rpmfc-skip.patch
 Patch6: rpm-4.4.2-matchpathcon.patch
-Patch7: rpm-4.4.2-perlreq.patch
-Patch8: rpm-4.4.2-db3-param.patch
-Patch9: rpm-4.4.2-contextverify.patch
-Patch10: rpm-4.4.2-popt-charset.patch
-Patch11: rpm-4.4.2-ghost-conflicts.patch
-Patch12: rpm-4.4.2-exclude.patch
-Patch13: rpm-4.4.2-excluded-size.patch
-Patch14: rpm-4.4.2-cronpath.patch
-Patch15: rpm-4.4.2-mono.patch
-Patch16: rpm-4.4.2-file-softmagic.patch
-Patch17: rpm-4.4.2-no-large-mmap.patch
-Patch18: rpm-4.4.2-perlmainprov.patch
-Patch19: rpm-4.4.2-rpmsq-deadlock.patch
-Patch20: rpm-4.4.2-netsharedpath.patch
-Patch21: rpm-4.4.2-userlock.patch
-Patch22: rpm-4.4.2-vercmp.patch
-Patch23: rpm-4.4.2-doxy.patch
-Patch24: rpm-4.4.2-trust.patch
-Patch25: rpm-4.4.2-devel-autodep.patch
-Patch26: rpm-4.4.2-rpmfc-skip.patch
-Patch27: rpm-4.4.2-noselinux-verify.patch
-Patch28: rpm-4.4.2-python-aslist.patch
-Patch29: rpm-4.4.2-rpmio-ipv6.patch
-Patch30: rpm-4.4.2-gnuhash.patch
-Patch31: rpm-4.4.2-debugedit-ppc-reloc.patch
-Patch32: rpm-4.4.2-debugpaths.patch
-Patch33: rpm-4.4.2-no-ppc-asm.patch
-License: GPL
-Conflicts: patch < 2.5
-%ifos linux
-Prereq: fileutils shadow-utils
-%endif
-Requires: popt = 1.10.2
-Obsoletes: rpm-perl < %{version}
+Patch7: rpm-4.4.2.1-checksignals.patch
+Patch8: rpm-4.4.2.1-checkterminate.patch
+Patch9: rpm-4.4.2.1-python-exithook.patch
+Patch10: rpm-4.4.2.1-checkterminate-noexit.patch
+Patch11: rpm-4.4.2.1-config-mtime.patch
+Patch12: rpm-4.4.2.1-strict-docdir.patch
+# XXX Beware, this is one murky license, partially GPL/LGPL dual-licensed
+# and several different components with their own licenses included...
+License: (GPLv2 and LGPLv2 with exceptions) and BSD and MIT and Sleepycat
+Requires(pre): shadow-utils
+Requires(postun): shadow-utils
+Requires(post): coreutils
+Requires: popt >= 1.10.2.1
+Requires: crontabs
+Requires: logrotate
 
 BuildRequires: autoconf
 BuildRequires: elfutils-devel >= 0.112
+BuildRequires: elfutils-libelf-devel-static
 
-BuildRequires: sed readline-devel zlib-devel
+BuildRequires: readline-devel zlib-devel
 
 BuildRequires: beecrypt-devel >= 4.1.2
 Requires: beecrypt >= 4.1.2
 
-BuildRequires: neon-devel
+BuildConflicts: neon-devel
 BuildRequires: sqlite-devel
 BuildRequires: gettext-devel
 BuildRequires: libselinux-devel
-#XXX: lua fix this
 BuildRequires: ncurses-devel
-
-# XXX Red Hat 5.2 has not bzip2 or python
-%if %{with_bzip2}
 BuildRequires: bzip2-devel >= 0.9.0c-2
-%endif
-%if %{with_python_subpackage}
 BuildRequires: python-devel >= %{with_python_version}
-%endif
+BuildRequires: doxygen
 
-BuildRoot: %{_tmppath}/%{name}-root
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 %description
 The RPM Package Manager (RPM) is a powerful command line driven
@@ -100,19 +68,18 @@
 the package like its version, a description, etc.
 
 %package libs
-Summary:  Libraries for manipulating RPM packages.
+Summary:  Libraries for manipulating RPM packages
 Group: Development/Libraries
-Requires: rpm = %{rpm_version}-%{release}
+Requires: rpm = %{version}-%{release}
 
 %description libs
 This package contains the RPM shared libraries.
 
 %package devel
-Summary:  Development files for manipulating RPM packages.
+Summary:  Development files for manipulating RPM packages
 Group: Development/Libraries
-Requires: rpm = %{rpm_version}-%{release}
+Requires: rpm = %{version}-%{release}
 Requires: beecrypt >= 4.1.2
-Requires: neon-devel
 Requires: sqlite-devel
 Requires: libselinux-devel
 Requires: elfutils-libelf-devel
@@ -129,21 +96,21 @@
 will manipulate RPM packages and databases.
 
 %package build
-Summary: Scripts and executable programs used to build packages.
+Summary: Scripts and executable programs used to build packages
 Group: Development/Tools
-Requires: rpm = %{rpm_version}-%{release}, patch >= 2.5, file, elfutils
+Requires: rpm = %{version}-%{release}, patch >= 2.5, file
+Requires: elfutils >= 0.128
+Requires: findutils
 Provides: rpmbuild(VendorConfig) = 4.1-1
 
 %description build
 The rpm-build package contains the scripts and executable programs
 that are used to build packages using the RPM Package Manager.
 
-%if %{with_python_subpackage}
 %package python
-Summary: Python bindings for apps which will manipulate RPM packages.
+Summary: Python bindings for apps which will manipulate RPM packages
 Group: Development/Libraries
-Requires: rpm = %{rpm_version}-%{release}
-Requires: python >= %{with_python_version}
+Requires: rpm = %{version}-%{release}
 
 %description python
 The rpm-python package contains a module that permits applications
@@ -152,12 +119,12 @@
 
 This package should be installed if you want to develop Python
 programs that will manipulate RPM packages and databases.
-%endif
 
 %package -n popt
-Summary: A C library for parsing command line parameters.
+Summary: A C library for parsing command line parameters
 Group: Development/Libraries
-Version: 1.10.2
+Version: 1.10.2.1
+License: MIT
 
 %description -n popt
 Popt is a C library for parsing command line parameters. Popt was
@@ -170,69 +137,32 @@
 shell-like rules.
 
 %prep
-%setup -q
-%patch0 -p1  -b .nohkp
-%patch1 -p1  -b .fileconflicts
-%patch2 -p1  -b .prereq
-%patch3 -p1  -b .rpmal
-%patch4 -p1  -b .prepostun
-%patch5 -p1  -b .ordererase
-# patch 6 moved
-%patch7 -p1  -b .perlreq
-%patch8 -p1  -b .param
-%patch10 -p1  -b .charset
-%patch11 -p1  -b .ghostconflicts
-#patch12 -p1  -b .exclude
-%patch13 -p1  -b .excludedsize
-%patch14 -p1  -b .cronpath
-%patch15 -p1  -b .mono
-%patch16 -p1 -b .magic
-%patch17 -p1 -b .no_large_mmap
-%patch18 -p1 -b .perlmainprov
-%patch19 -p1 -b .deadlock
-%patch20 -p1 -b .netsharedpath
-%patch21 -p1 -b .userlock
-%patch22 -p1 -b .vercmp
-%patch23 -p1 -b .doxy
-%patch24 -p1 -b .trust
-%patch25 -p1 -b .develdeps
-%patch26 -p1 -b .fcskip
-%patch27 -p0 -b .nosever
-%patch6 -p1  -b .matchpathcon
-%patch28 -p1 -b .aslist
-%patch29 -p1 -b .ipv6
-%patch30 -p1 -b .gnuhash
-%patch31 -p0 -b .dbgppc
-%patch32 -p1 -b .dbgpaths
-%patch33 -p1 -b .noppcasm
-
-# rebuild configure for ipv6
-autoconf
+%setup -q -n %{name}-%{rpm_version}
+%patch1 -p1 -b .prereq
+%patch2 -p1 -b .ghostconflicts
+%patch3 -p1 -b .trust
+%patch4 -p1 -b .develdeps
+%patch5 -p1 -b .fcskip
+%patch6 -p1 -b .matchpathcon
+%patch7 -p1 -b .checksignals
+%patch8 -p1 -b .checkterminate
+%patch9 -p1 -b .py-exithook
+%patch10 -p1 -b .checkterminate-noexit
+%patch11 -p1 -b .config-mtime
+%patch12 -p1 -b .strict-docdir
 
 %build
 
 # XXX rpm needs functioning nptl for configure tests
 unset LD_ASSUME_KERNEL || :
 
-%if %{with_python_subpackage}
 WITH_PYTHON="--with-python=%{with_python_version}"
-%else
-WITH_PYTHON="--without-python"
-%endif
 
-%ifos linux
 CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS
 ./configure --prefix=%{__prefix} --sysconfdir=/etc \
-	--localstatedir=/var --infodir='${prefix}%{__share}/info' \
-	--mandir='${prefix}%{__share}/man' \
-	$WITH_PYTHON --enable-posixmutexes --without-javaglue
-%else
-export CPPFLAGS=-I%{__prefix}/include 
-CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{__prefix} $WITH_PYTHON \
-	--without-javaglue
-%endif
-
-make -C zlib || :
+        --localstatedir=/var --infodir='${prefix}%{__share}/info' \
+        --mandir='${prefix}%{__share}/man' \
+        $WITH_PYTHON --enable-posixmutexes --without-javaglue
 
 make %{?_smp_mflags}
 
@@ -248,9 +178,9 @@
 # workaround to #132435,
 # and from linking to included zlib
 for i in librpm.la librpmbuild.la librpmdb.la librpmio.la ; do
-	sed -i -e 's~-L'"$RPM_BUILD_ROOT"'[^ ]* ~~g' \
-		-e 's~-L'"$RPM_BUILD_DIR"'[^ ]* ~~g' \
-		"$RPM_BUILD_ROOT%{__libdir}/$i"
+        sed -i -e 's~-L'"$RPM_BUILD_ROOT"'[^ ]* ~~g' \
+                -e 's~-L'"$RPM_BUILD_DIR"'[^ ]* ~~g' \
+                "$RPM_BUILD_ROOT%{__libdir}/$i"
 done
 
 # Clean up dangling symlinks
@@ -264,8 +194,6 @@
     rm -f "$RPM_BUILD_ROOT"/"$i" 
 done
 
-%ifos linux
-
 # Save list of packages through cron
 mkdir -p ${RPM_BUILD_ROOT}/etc/cron.daily
 install -m 755 scripts/rpm.daily ${RPM_BUILD_ROOT}/etc/cron.daily/rpm
@@ -278,60 +206,42 @@
 mkdir -p $RPM_BUILD_ROOT/var/spool/repackage
 mkdir -p $RPM_BUILD_ROOT/var/lib/rpm
 for dbi in \
-	Basenames Conflictname Dirnames Group Installtid Name Packages \
-	Providename Provideversion Requirename Requireversion Triggername \
-	Filemd5s Pubkeys Sha1header Sigmd5 \
-	__db.001 __db.002 __db.003 __db.004 __db.005 __db.006 __db.007 \
-	__db.008 __db.009
+        Basenames Conflictname Dirnames Group Installtid Name Packages \
+        Providename Provideversion Requirename Requireversion Triggername \
+        Filemd5s Pubkeys Sha1header Sigmd5 \
+        __db.001 __db.002 __db.003 __db.004 __db.005 __db.006 __db.007 \
+        __db.008 __db.009
 do
     touch $RPM_BUILD_ROOT/var/lib/rpm/$dbi
 done
 
-%endif
+%find_lang %{name}
+%find_lang popt
 
-%if %{with_apidocs}
-gzip -9n apidocs/man/man*/* || :
-%endif
+# copy db and file/libmagic license info to distinct names
+cp -p db/LICENSE LICENSE-bdb
+cp -p file/LEGAL.NOTICE LEGAL.NOTICE-file
+cp -p lua/COPYRIGHT COPYRIGHT-lua
 
 # Get rid of unpackaged files
 { cd $RPM_BUILD_ROOT
   rm -f .%{_libdir}/lib*.la
-  rm -f .%{__prefix}/lib/rpm/{Specfile.pm,cpanflute,cpanflute2,rpmdiff,rpmdiff.cgi,sql.prov,sql.req,tcl.req}
+  rm -f .%{__prefix}/lib/rpm/{Specfile.pm,cpanflute,cpanflute2,rpmdiff,rpmdiff.cgi,sql.prov,sql.req,tcl.req,rpm.*}
   rm -rf .%{__mandir}/{fr,ko}
-%if %{with_python_subpackage}
   rm -f .%{__libdir}/python%{with_python_version}/site-packages/*.{a,la}
   rm -f .%{__libdir}/python%{with_python_version}/site-packages/rpm/*.{a,la}
   rm -f .%{__libdir}/python%{with_python_version}/site-packages/rpmdb/*.{a,la}
-%endif
 }
 
-# Install mono find-provides/requires
-install -m 755 %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/rpm
-install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/usr/lib/rpm
-
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %pre
-%ifos linux
-if [ -f /var/lib/rpm/packages.rpm ]; then
-    echo "
-You have (unsupported)
-	/var/lib/rpm/packages.rpm	db1 format installed package headers
-Please install rpm-4.0.4 first, and do
-	rpm --rebuilddb
-to convert your database from db1 to db3 format.
-"
-    exit 1
-fi
-/usr/sbin/groupadd -g 37 rpm				> /dev/null 2>&1
-/usr/sbin/useradd  -r -d /var/lib/rpm -u 37 -g 37 rpm -s /sbin/nologin	> /dev/null 2>&1
-%endif
+/usr/sbin/groupadd -g 37 rpm                            > /dev/null 2>&1
+/usr/sbin/useradd  -r -d /var/lib/rpm -u 37 -g 37 rpm -s /sbin/nologin  > /dev/null 2>&1
 exit 0
 
 %post
-%ifos linux
-
 # Establish correct rpmdb ownership.
 /bin/chown rpm.rpm /var/lib/rpm/[A-Z]*
 
@@ -341,16 +251,15 @@
 [ -w /var/lib/rpm/__db.001 ] &&
 /usr/lib/rpm/rpmdb_stat -CA -h /var/lib/rpm 2>&1 |
 grep "db_stat: Program version 4.3 doesn't match environment version" 2>&1 > /dev/null &&
-	rm -f /var/lib/rpm/__db*
+        rm -f /var/lib/rpm/__db*
                                                                                 
-%endif
 exit 0
 
-%ifos linux
 %postun
 if [ $1 = 0 ]; then
-    /usr/sbin/userdel rpm
-    /usr/sbin/groupdel rpm
+    /usr/sbin/userdel rpm > /dev/null 2>&1
+    /usr/sbin/groupdel rpm > /dev/null 2>&1
+
 fi
 exit 0
 
@@ -362,120 +271,87 @@
 
 %post -n popt -p /sbin/ldconfig
 %postun -n popt -p /sbin/ldconfig
-%endif
-
-%if %{with_python_subpackage}
-%post python -p /sbin/ldconfig
-%postun python -p /sbin/ldconfig
-%endif
-
-%define	rpmattr		%attr(0755, rpm, rpm)
 
-%files
-%defattr(-,root,root)
-%doc RPM-PGP-KEY RPM-GPG-KEY BETA-GPG-KEY CHANGES GROUPS doc/manual/[a-z]*
-# XXX comment these lines out if building with rpm that knows not %pubkey attr
-%pubkey RPM-PGP-KEY
-%pubkey RPM-GPG-KEY
-%pubkey BETA-GPG-KEY
-%attr(0755, rpm, rpm)	/bin/rpm
-
-%ifos linux
-%config(noreplace,missingok)	/etc/cron.daily/rpm
-%config(noreplace,missingok)	/etc/logrotate.d/rpm
-%dir				/etc/rpm
-#%config(noreplace,missingok)	/etc/rpm/macros.*
-%attr(0755, rpm, rpm)	%dir /var/lib/rpm
-%attr(0755, rpm, rpm)	%dir /var/spool/repackage
-
-%define	rpmdbattr %attr(0644, rpm, rpm) %verify(not md5 size mtime) %ghost %config(missingok,noreplace)
-%rpmdbattr	/var/lib/rpm/*
-%endif
+%define rpmattr         %attr(0755, rpm, rpm)
 
-%rpmattr	%{__bindir}/rpm2cpio
-%rpmattr	%{__bindir}/gendiff
-%rpmattr	%{__bindir}/rpmdb
-#%rpmattr	%{__bindir}/rpm[eiu]
-%rpmattr	%{__bindir}/rpmsign
-%rpmattr	%{__bindir}/rpmquery
-%rpmattr	%{__bindir}/rpmverify
-
-%attr(0755, rpm, rpm)	%dir %{__prefix}/lib/rpm
-%rpmattr	%{__prefix}/lib/rpm/config.guess
-%rpmattr	%{__prefix}/lib/rpm/config.sub
-%rpmattr	%{__prefix}/lib/rpm/convertrpmrc.sh
-%rpmattr	%{__prefix}/lib/rpm/freshen.sh
-%attr(0644, rpm, rpm)	%{__prefix}/lib/rpm/macros
-%rpmattr	%{__prefix}/lib/rpm/mkinstalldirs
-%rpmattr	%{__prefix}/lib/rpm/rpm.*
-%rpmattr	%{__prefix}/lib/rpm/rpm2cpio.sh
-%rpmattr	%{__prefix}/lib/rpm/rpm[deiukqv]
-%rpmattr	%{__prefix}/lib/rpm/tgpg
-%attr(0644, rpm, rpm)	%{__prefix}/lib/rpm/rpmpopt*
-%attr(0644, rpm, rpm)	%{__prefix}/lib/rpm/rpmrc
+%files -f %{name}.lang
+%defattr(-,root,root,-)
+%doc CHANGES GROUPS COPYING LICENSE-bdb LEGAL.NOTICE-file CREDITS ChangeLog
+%doc COPYRIGHT-lua doc/manual/[a-z]*
+%attr(0755, rpm, rpm)   /bin/rpm
+
+/etc/cron.daily/rpm
+%config(noreplace,missingok)    /etc/logrotate.d/rpm
+%dir                            /etc/rpm
+#%config(noreplace,missingok)   /etc/rpm/macros.*
+%attr(0755, rpm, rpm)   %dir /var/lib/rpm
+%attr(0755, rpm, rpm)   %dir /var/spool/repackage
+
+%define rpmdbattr %attr(0644, rpm, rpm) %verify(not md5 size mtime) %ghost %config(missingok,noreplace)
+%rpmdbattr      /var/lib/rpm/*
+
+%rpmattr        %{__bindir}/rpm2cpio
+%rpmattr        %{__bindir}/gendiff
+%rpmattr        %{__bindir}/rpmdb
+#%rpmattr       %{__bindir}/rpm[eiu]
+%rpmattr        %{__bindir}/rpmsign
+%rpmattr        %{__bindir}/rpmquery
+%rpmattr        %{__bindir}/rpmverify
+
+%attr(0755, rpm, rpm)   %dir %{__prefix}/lib/rpm
+%rpmattr        %{__prefix}/lib/rpm/config.guess
+%rpmattr        %{__prefix}/lib/rpm/config.sub
+%rpmattr        %{__prefix}/lib/rpm/convertrpmrc.sh
+%rpmattr        %{__prefix}/lib/rpm/freshen.sh
+%attr(0644, rpm, rpm)   %{__prefix}/lib/rpm/macros
+%rpmattr        %{__prefix}/lib/rpm/mkinstalldirs
+%rpmattr        %{__prefix}/lib/rpm/rpm2cpio.sh
+%rpmattr        %{__prefix}/lib/rpm/rpm[deiukqv]
+%rpmattr        %{__prefix}/lib/rpm/tgpg
+%attr(0644, rpm, rpm)   %{__prefix}/lib/rpm/rpmpopt*
+%attr(0644, rpm, rpm)   %{__prefix}/lib/rpm/rpmrc
 
 %ifarch i386 i486 i586 i686 athlon pentium3 pentium4
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/i[3456]86*
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/athlon*
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/pentium*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/i[3456]86*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/athlon*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/pentium*
 %endif
 %ifarch alpha alphaev5 alphaev56 alphapca56 alphaev6 alphaev67
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/alpha*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/alpha*
 %endif
 %ifarch sparc sparcv8 sparcv9 sparc64
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/sparc*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/sparc*
 %endif
 %ifarch ia64
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/ia64*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/ia64*
 %endif
 %ifarch powerpc ppc ppciseries ppcpseries ppcmac ppc64
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/ppc*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/ppc*
 %endif
 %ifarch s390 s390x
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/s390*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/s390*
 %endif
 %ifarch armv3l armv4l
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/armv[34][lb]*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/armv[34][lb]*
 %endif
 %ifarch mips mipsel
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/mips*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/mips*
 %endif
 %ifarch x86_64
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/x86_64*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/x86_64*
 %endif
-%attr(-, rpm, rpm)		%{__prefix}/lib/rpm/noarch*
+%attr(-, rpm, rpm)              %{__prefix}/lib/rpm/noarch*
 
-%rpmattr	%{__prefix}/lib/rpm/rpmdb_*
-%rpmattr	%{__prefix}/lib/rpm/rpmfile
-
-%lang(cs)	%{__prefix}/*/locale/cs/LC_MESSAGES/rpm.mo
-%lang(da)	%{__prefix}/*/locale/da/LC_MESSAGES/rpm.mo
-%lang(de)	%{__prefix}/*/locale/de/LC_MESSAGES/rpm.mo
-%lang(fi)	%{__prefix}/*/locale/fi/LC_MESSAGES/rpm.mo
-%lang(fr)	%{__prefix}/*/locale/fr/LC_MESSAGES/rpm.mo
-%lang(gl)	%{__prefix}/*/locale/gl/LC_MESSAGES/rpm.mo
-%lang(is)	%{__prefix}/*/locale/is/LC_MESSAGES/rpm.mo
-%lang(ja)	%{__prefix}/*/locale/ja/LC_MESSAGES/rpm.mo
-%lang(ko)	%{__prefix}/*/locale/ko/LC_MESSAGES/rpm.mo
-%lang(no)	%{__prefix}/*/locale/no/LC_MESSAGES/rpm.mo
-%lang(pl)	%{__prefix}/*/locale/pl/LC_MESSAGES/rpm.mo
-%lang(pt)	%{__prefix}/*/locale/pt/LC_MESSAGES/rpm.mo
-%lang(pt_BR)	%{__prefix}/*/locale/pt_BR/LC_MESSAGES/rpm.mo
-%lang(ro)	%{__prefix}/*/locale/ro/LC_MESSAGES/rpm.mo
-%lang(ru)	%{__prefix}/*/locale/ru/LC_MESSAGES/rpm.mo
-%lang(sk)	%{__prefix}/*/locale/sk/LC_MESSAGES/rpm.mo
-%lang(sl)	%{__prefix}/*/locale/sl/LC_MESSAGES/rpm.mo
-%lang(sr)	%{__prefix}/*/locale/sr/LC_MESSAGES/rpm.mo
-%lang(sv)	%{__prefix}/*/locale/sv/LC_MESSAGES/rpm.mo
-%lang(tr)	%{__prefix}/*/locale/tr/LC_MESSAGES/rpm.mo
+%rpmattr        %{__prefix}/lib/rpm/rpmdb_*
+%rpmattr        %{__prefix}/lib/rpm/rpmfile
 
 %{__mandir}/man1/gendiff.1*
 %{__mandir}/man8/rpm.8*
 %{__mandir}/man8/rpm2cpio.8*
-%lang(ja)	%{__mandir}/ja/man[18]/*.[18]*
-%lang(pl)	%{__mandir}/pl/man[18]/*.[18]*
-%lang(ru)	%{__mandir}/ru/man[18]/*.[18]*
-%lang(sk)	%{__mandir}/sk/man[18]/*.[18]*
+%lang(ja)       %{__mandir}/ja/man[18]/*.[18]*
+%lang(pl)       %{__mandir}/pl/man[18]/*.[18]*
+%lang(ru)       %{__mandir}/ru/man[18]/*.[18]*
+%lang(sk)       %{__mandir}/sk/man[18]/*.[18]*
 
 %files libs
 %defattr(-,root,root)
@@ -493,53 +369,53 @@
 %dir %{__prefix}/src/redhat/SRPMS
 %dir %{__prefix}/src/redhat/RPMS
 %{__prefix}/src/redhat/RPMS/*
-%rpmattr	%{__bindir}/rpmbuild
-%rpmattr	%{__prefix}/lib/rpm/brp-*
-%rpmattr	%{__prefix}/lib/rpm/check-files
-%rpmattr	%{__prefix}/lib/rpm/check-prereqs
-%rpmattr	%{__prefix}/lib/rpm/config.site
-%rpmattr	%{__prefix}/lib/rpm/cross-build
-%rpmattr	%{__prefix}/lib/rpm/debugedit
-%rpmattr	%{__prefix}/lib/rpm/find-debuginfo.sh
-%rpmattr	%{__prefix}/lib/rpm/find-lang.sh
-%rpmattr	%{__prefix}/lib/rpm/find-prov.pl
-%rpmattr	%{__prefix}/lib/rpm/find-provides
-%rpmattr	%{__prefix}/lib/rpm/find-provides.perl
-%rpmattr	%{__prefix}/lib/rpm/find-req.pl
-%rpmattr	%{__prefix}/lib/rpm/find-requires
-%rpmattr	%{__prefix}/lib/rpm/find-requires.perl
-%rpmattr	%{__prefix}/lib/rpm/get_magic.pl
-%rpmattr	%{__prefix}/lib/rpm/getpo.sh
-%rpmattr	%{__prefix}/lib/rpm/http.req
-%rpmattr	%{__prefix}/lib/rpm/javadeps
-%rpmattr	%{__prefix}/lib/rpm/magic
-%rpmattr	%{__prefix}/lib/rpm/magic.mgc
-%rpmattr	%{__prefix}/lib/rpm/magic.mime
-%rpmattr	%{__prefix}/lib/rpm/magic.mime.mgc
-%rpmattr	%{__prefix}/lib/rpm/magic.prov
-%rpmattr	%{__prefix}/lib/rpm/magic.req
-%rpmattr	%{__prefix}/lib/rpm/mono-find-provides
-%rpmattr	%{__prefix}/lib/rpm/mono-find-requires
-%rpmattr	%{__prefix}/lib/rpm/perldeps.pl
-%rpmattr	%{__prefix}/lib/rpm/perl.prov
-%rpmattr	%{__prefix}/lib/rpm/perl.req
-%rpmattr	%{__prefix}/lib/rpm/pythondeps.sh
-
-%rpmattr	%{__prefix}/lib/rpm/rpm[bt]
-%rpmattr	%{__prefix}/lib/rpm/rpmdeps
-%rpmattr	%{__prefix}/lib/rpm/trpm
-%rpmattr	%{__prefix}/lib/rpm/u_pkg.sh
-%rpmattr	%{__prefix}/lib/rpm/vpkg-provides.sh
-%rpmattr	%{__prefix}/lib/rpm/vpkg-provides2.sh
+%rpmattr        %{__bindir}/rpmbuild
+%rpmattr        %{__prefix}/lib/rpm/brp-*
+%rpmattr        %{__prefix}/lib/rpm/check-buildroot
+%rpmattr        %{__prefix}/lib/rpm/check-files
+%rpmattr        %{__prefix}/lib/rpm/check-prereqs
+%rpmattr        %{__prefix}/lib/rpm/check-rpaths*
+%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/config.site
+%rpmattr        %{__prefix}/lib/rpm/cross-build
+%rpmattr        %{__prefix}/lib/rpm/debugedit
+%rpmattr        %{__prefix}/lib/rpm/find-debuginfo.sh
+%rpmattr        %{__prefix}/lib/rpm/find-lang.sh
+%rpmattr        %{__prefix}/lib/rpm/find-prov.pl
+%rpmattr        %{__prefix}/lib/rpm/find-provides
+%rpmattr        %{__prefix}/lib/rpm/find-provides.perl
+%rpmattr        %{__prefix}/lib/rpm/find-req.pl
+%rpmattr        %{__prefix}/lib/rpm/find-requires
+%rpmattr        %{__prefix}/lib/rpm/find-requires.perl
+%rpmattr        %{__prefix}/lib/rpm/get_magic.pl
+%rpmattr        %{__prefix}/lib/rpm/getpo.sh
+%rpmattr        %{__prefix}/lib/rpm/http.req
+%rpmattr        %{__prefix}/lib/rpm/javadeps
+%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/magic
+%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/magic.mgc
+%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/magic.mime
+%attr(0644, rpm, rpm) %{__prefix}/lib/rpm/magic.mime.mgc
+%rpmattr        %{__prefix}/lib/rpm/magic.prov
+%rpmattr        %{__prefix}/lib/rpm/magic.req
+%rpmattr        %{__prefix}/lib/rpm/mono-find-provides
+%rpmattr        %{__prefix}/lib/rpm/mono-find-requires
+%rpmattr        %{__prefix}/lib/rpm/perldeps.pl
+%rpmattr        %{__prefix}/lib/rpm/perl.prov
+%rpmattr        %{__prefix}/lib/rpm/perl.req
+%rpmattr        %{__prefix}/lib/rpm/pythondeps.sh
+
+%rpmattr        %{__prefix}/lib/rpm/rpm[bt]
+%rpmattr        %{__prefix}/lib/rpm/rpmdeps
+%rpmattr        %{__prefix}/lib/rpm/trpm
+%rpmattr        %{__prefix}/lib/rpm/u_pkg.sh
+%rpmattr        %{__prefix}/lib/rpm/vpkg-provides.sh
+%rpmattr        %{__prefix}/lib/rpm/vpkg-provides2.sh
 
 %{__mandir}/man8/rpmbuild.8*
 %{__mandir}/man8/rpmdeps.8*
 
-%if %{with_python_subpackage}
 %files python
 %defattr(-,root,root)
 %{__libdir}/python%{with_python_version}/site-packages/rpm
-%endif
 
 %files devel
 %defattr(-,root,root)
@@ -557,43 +433,13 @@
 %{__libdir}/librpmbuild.so
 %{__mandir}/man8/rpmcache.8*
 %{__mandir}/man8/rpmgraph.8*
-%rpmattr	%{__prefix}/lib/rpm/rpmcache
-%rpmattr	%{__bindir}/rpmgraph
+%rpmattr        %{__prefix}/lib/rpm/rpmcache
+%rpmattr        %{__bindir}/rpmgraph
 
-%files -n popt
+%files -n popt -f popt.lang
 %defattr(-,root,root)
 %{__libdir}/libpopt.so.*
 %{__mandir}/man3/popt.3*
-%lang(cs)	%{__prefix}/*/locale/cs/LC_MESSAGES/popt.mo
-%lang(da)	%{__prefix}/*/locale/da/LC_MESSAGES/popt.mo
-%lang(de)	%{__prefix}/*/locale/de/LC_MESSAGES/popt.mo
-%lang(es)	%{__prefix}/*/locale/es/LC_MESSAGES/popt.mo
-%lang(eu_ES)	%{__prefix}/*/locale/eu_ES/LC_MESSAGES/popt.mo
-%lang(fi)	%{__prefix}/*/locale/fi/LC_MESSAGES/popt.mo
-%lang(fr)	%{__prefix}/*/locale/fr/LC_MESSAGES/popt.mo
-%lang(gl)	%{__prefix}/*/locale/gl/LC_MESSAGES/popt.mo
-%lang(hu)	%{__prefix}/*/locale/hu/LC_MESSAGES/popt.mo
-%lang(id)	%{__prefix}/*/locale/id/LC_MESSAGES/popt.mo
-%lang(is)	%{__prefix}/*/locale/is/LC_MESSAGES/popt.mo
-%lang(it)	%{__prefix}/*/locale/it/LC_MESSAGES/popt.mo
-%lang(ja)	%{__prefix}/*/locale/ja/LC_MESSAGES/popt.mo
-%lang(ko)	%{__prefix}/*/locale/ko/LC_MESSAGES/popt.mo
-%lang(no)	%{__prefix}/*/locale/no/LC_MESSAGES/popt.mo
-%lang(pl)	%{__prefix}/*/locale/pl/LC_MESSAGES/popt.mo
-%lang(pt)	%{__prefix}/*/locale/pt/LC_MESSAGES/popt.mo
-%lang(pt_BR)	%{__prefix}/*/locale/pt_BR/LC_MESSAGES/popt.mo
-%lang(ro)	%{__prefix}/*/locale/ro/LC_MESSAGES/popt.mo
-%lang(ru)	%{__prefix}/*/locale/ru/LC_MESSAGES/popt.mo
-%lang(sk)	%{__prefix}/*/locale/sk/LC_MESSAGES/popt.mo
-%lang(sl)	%{__prefix}/*/locale/sl/LC_MESSAGES/popt.mo
-%lang(sr)	%{__prefix}/*/locale/sr/LC_MESSAGES/popt.mo
-%lang(sv)	%{__prefix}/*/locale/sv/LC_MESSAGES/popt.mo
-%lang(tr)	%{__prefix}/*/locale/tr/LC_MESSAGES/popt.mo
-%lang(uk)	%{__prefix}/*/locale/uk/LC_MESSAGES/popt.mo
-%lang(wa)	%{__prefix}/*/locale/wa/LC_MESSAGES/popt.mo
-%lang(zh)	%{__prefix}/*/locale/zh/LC_MESSAGES/popt.mo
-%lang(zh_CN)	%{__prefix}/*/locale/zh_CN/LC_MESSAGES/popt.mo
-%lang(zh_TW)	%{__prefix}/*/locale/zh_TW/LC_MESSAGES/popt.mo
 
 # XXX These may end up in popt-devel but it hardly seems worth the effort.
 %{__libdir}/libpopt.a
@@ -601,9 +447,76 @@
 %{__includedir}/popt.h
 
 %changelog
-* Fri Apr 27 2007 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-33
+* Mon Aug 13 2007 Panu Matilainen <pmatilai at redhat.com> - 4.4.2.1-1
+- update to 4.4.2.1 (#247749 and others)
+- drop upstreamed patches and sources
+- loosen up popt-dependency to prepare for splitting it off
+- avoid unnecessary .rpmsave / .rpmnew files by Tomas Mraz (#29470, #128622)
+- stricter docdir checking by Ralf S. Engelschall (#246819)
+- license clarifications
+- include full ChangeLog as doc
+- require logrotate (#248629)
+- allow checking for pending signals from python (#181434)
+- add hook to python for cleaning up on unclean exit (#245389)
+- spec / package (review) cleanups:
+- use find_lang instead of manually listing translations
+- remove useless rpm 3.x upgrade check from preinstall script
+- use Fedora recommended buildroot
+- don't include useless, ancient GPG keys
+- add rpm, db, file and lua licenses to docs
+- use scriptlet dependency markers instead of PreReq
+- post scriptlet requires coreutils
+- main package doesn't require patch, rpm-build does
+- buildrequire doxygen once more to resurrect apidocs
+- remove useless/doubly packaged files from /usr/lib/rpm
+- fix bunch of file permissions
+
+* Tue May 01 2007 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-46
+- Configurable policy for prefered ELF (#235757)
+
+* Mon Apr 23 2007 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-45
+- Fix debugedit for relative paths (#232222)
+
+* Mon Apr 16 2007 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-44
+- Set default verify flags for %%doc (#235353)
+- Revert to old configure line 
+
+* Mon Apr 16 2007 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-43
+- Log failures for fork failing (OLPC)
+- Gendiff enhancement from Enrico Scholz (#146981)
+
+* Wed Apr 04 2007 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-42
 - Remove ppc64 inline asm (#233145)
 
+* Tue Mar 13 2007 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-41
+- Fix potential segfault when no rpmloc_path (#231146)
+- Fix debugedit for relative paths (#232222)
+- Spec cleanup
+
+* Mon Feb 19 2007 Jeremy Katz <katzj at redhat.com> - 4.4.2-40
+- rpm-build should require findutils
+
+* Wed Jan 17 2007 Deepak Bhole <dbhole at redhat.com> 4.4.2-39%{?dist}
+- Added a missing BR for elfutils-libelf-devel-static (needed for -lelf)
+
+* Mon Dec 11 2006 Jeremy Katz <katzj at redhat.com> - 4.4.2-38
+- python: dbmatch keys can be unicode objects also (#219008)
+
+* Wed Dec  6 2006 Jeremy Katz <katzj at redhat.com> - 4.4.2-37
+- rebuild for python 2.5
+
+* Mon Nov 20 2006 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-36
+- Fix ordering issues (#196590)
+
+* Tue Oct 31 2006 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-35
+- Flush query buffer patch from jbj (#212833)
+
+* Tue Oct 31 2006 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-34
+- Debuginfo extraction with O0
+
+* Wed Oct 25 2006 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-33
+- Fix for ordering (#202540, #202542, #202543, #202544)
+
 * Thu Sep 07 2006 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-32
 - Various debuginfo fixes (#165434, #165418, #149113, #205339)
 
@@ -693,7 +606,7 @@
 
 * Mon Nov 28 2005 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-8
 - 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)
 - Fix popt charset for various languages (#172155)
 - Don't include .la file (#174261)
 


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/rpm/FC-6/sources,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -r1.120 -r1.121
--- sources	21 Jul 2005 21:26:50 -0000	1.120
+++ sources	13 Aug 2007 07:55:37 -0000	1.121
@@ -1 +1 @@
-e24ce468082479fe850c9d6563f56db5  rpm-4.4.2.tar.gz
+4298abc7a0b4c33b4bf1665adbeeabae  rpm-4.4.2.1.tar.gz


--- mono-find-provides DELETED ---


--- mono-find-requires DELETED ---


--- rpm-4.4.1-fileconflicts.patch DELETED ---


--- rpm-4.4.1-hkp-disable.patch DELETED ---


--- rpm-4.4.1-noconfigdep.patch DELETED ---


--- rpm-4.4.1-nonmerged.patch DELETED ---


--- rpm-4.4.1-ordererase.patch DELETED ---


--- rpm-4.4.1-prepostun.patch DELETED ---


--- rpm-4.4.2-contextverify.patch DELETED ---


--- rpm-4.4.2-cronpath.patch DELETED ---


--- rpm-4.4.2-db3-param.patch DELETED ---


--- rpm-4.4.2-debugedit-ppc-reloc.patch DELETED ---


--- rpm-4.4.2-debugpaths.patch DELETED ---


--- rpm-4.4.2-doxy.patch DELETED ---


--- rpm-4.4.2-exclude.patch DELETED ---


--- rpm-4.4.2-excluded-size.patch DELETED ---


--- rpm-4.4.2-file-softmagic.patch DELETED ---


--- rpm-4.4.2-gnuhash.patch DELETED ---


--- rpm-4.4.2-ia32e-install.patch DELETED ---


--- rpm-4.4.2-mono.patch DELETED ---


--- rpm-4.4.2-multi-digest.patch DELETED ---


--- rpm-4.4.2-netsharedpath.patch DELETED ---


--- rpm-4.4.2-no-large-mmap.patch DELETED ---


--- rpm-4.4.2-no-ppc-asm.patch DELETED ---


--- rpm-4.4.2-noselinux-verify.patch DELETED ---


--- rpm-4.4.2-perlmainprov.patch DELETED ---


--- rpm-4.4.2-perlreq.patch DELETED ---


--- rpm-4.4.2-popt-charset.patch DELETED ---


--- rpm-4.4.2-python-aslist.patch DELETED ---


--- rpm-4.4.2-rpmio-ipv6.patch DELETED ---


--- rpm-4.4.2-rpmsq-deadlock.patch DELETED ---


--- rpm-4.4.2-teCount-assert.patch DELETED ---


--- rpm-4.4.2-userlock.patch DELETED ---


--- rpm-4.4.2-vercmp.patch DELETED ---




More information about the fedora-cvs-commits mailing list