Compare commits
7 Commits
Author | SHA1 | Date |
---|---|---|
|
233bb3037a | |
|
2b03c0dab4 | |
|
abf039d8a8 | |
|
c698fc1a8e | |
|
855e5dc18e | |
|
644df007ba | |
|
90f9e63a66 |
|
@ -1 +0,0 @@
|
||||||
rpm-4.8.0.tar.bz2
|
|
|
@ -0,0 +1 @@
|
||||||
|
rpm-4.8.1.tar.bz2
|
21
Makefile
21
Makefile
|
@ -1,21 +0,0 @@
|
||||||
# Makefile for source rpm: rpm
|
|
||||||
# $Id: Makefile,v 1.2 2007/10/15 19:21:12 notting Exp $
|
|
||||||
NAME := rpm
|
|
||||||
SPECFILE = $(firstword $(wildcard *.spec))
|
|
||||||
|
|
||||||
define find-makefile-common
|
|
||||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
|
||||||
|
|
||||||
ifeq ($(MAKEFILE_COMMON),)
|
|
||||||
# attempt a checkout
|
|
||||||
define checkout-makefile-common
|
|
||||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(MAKEFILE_COMMON)
|
|
|
@ -1 +0,0 @@
|
||||||
rpm-4_5_90-0_git8444_1:HEAD:rpm-4.5.90-0.git8444.1.src.rpm:1217601763
|
|
|
@ -1,46 +0,0 @@
|
||||||
commit 4e4aec28c544f2884cb76be37d508f376db5cb7c
|
|
||||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
|
||||||
Date: Thu Feb 4 15:55:16 2010 +0200
|
|
||||||
|
|
||||||
Handle erased packages wrt disk-space problem reporting (RhBug:561160)
|
|
||||||
- erased packages in the transaction cause space needs to shrink, which
|
|
||||||
commit 2222e81e1cf74bbf78acb9969592ab06e2289929 failed to take into
|
|
||||||
account, causing false disk space errors from unaffected packages
|
|
||||||
- adjust obneeded and oineeded when the requirements shrink
|
|
||||||
- new disk space problems can only occur when the requirements grow,
|
|
||||||
change the pmtsCheckDSIProblems() check to reflect that (although not
|
|
||||||
strictly necessary)
|
|
||||||
|
|
||||||
diff --git a/lib/transaction.c b/lib/transaction.c
|
|
||||||
index d913258..7d12eeb 100644
|
|
||||||
--- a/lib/transaction.c
|
|
||||||
+++ b/lib/transaction.c
|
|
||||||
@@ -219,6 +219,10 @@ static void rpmtsUpdateDSI(const rpmts ts, dev_t dev, const char *dirName,
|
|
||||||
|
|
||||||
if (fixupSize)
|
|
||||||
dsi->bneeded -= BLOCK_ROUND(fixupSize, dsi->bsize);
|
|
||||||
+
|
|
||||||
+ /* adjust bookkeeping when requirements shrink */
|
|
||||||
+ if (dsi->bneeded < dsi->obneeded) dsi->obneeded = dsi->bneeded;
|
|
||||||
+ if (dsi->ineeded < dsi->oineeded) dsi->oineeded = dsi->ineeded;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void rpmtsCheckDSIProblems(const rpmts ts, const rpmte te)
|
|
||||||
@@ -238,7 +242,7 @@ static void rpmtsCheckDSIProblems(const rpmts ts, const rpmte te)
|
|
||||||
for (; dsi->bsize; dsi++) {
|
|
||||||
|
|
||||||
if (dsi->bavail >= 0 && adj_fs_blocks(dsi->bneeded) > dsi->bavail) {
|
|
||||||
- if (dsi->bneeded != dsi->obneeded) {
|
|
||||||
+ if (dsi->bneeded > dsi->obneeded) {
|
|
||||||
rpmpsAppend(ps, RPMPROB_DISKSPACE,
|
|
||||||
rpmteNEVRA(te), rpmteKey(te),
|
|
||||||
dsi->mntPoint, NULL, NULL,
|
|
||||||
@@ -248,7 +252,7 @@ static void rpmtsCheckDSIProblems(const rpmts ts, const rpmte te)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dsi->iavail >= 0 && adj_fs_blocks(dsi->ineeded) > dsi->iavail) {
|
|
||||||
- if (dsi->ineeded != dsi->oineeded) {
|
|
||||||
+ if (dsi->ineeded > dsi->oineeded) {
|
|
||||||
rpmpsAppend(ps, RPMPROB_DISKNODES,
|
|
||||||
rpmteNEVRA(te), rpmteKey(te),
|
|
||||||
dsi->mntPoint, NULL, NULL,
|
|
|
@ -1,271 +0,0 @@
|
||||||
diff --git a/lib/transaction.c b/lib/transaction.c
|
|
||||||
index 1860dfb..d913258 100644
|
|
||||||
--- a/lib/transaction.c
|
|
||||||
+++ b/lib/transaction.c
|
|
||||||
@@ -45,6 +45,7 @@
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
struct diskspaceInfo_s {
|
|
||||||
+ char * mntPoint; /*!< File system mount point */
|
|
||||||
dev_t dev; /*!< File system device number. */
|
|
||||||
int64_t bneeded; /*!< No. of blocks needed. */
|
|
||||||
int64_t ineeded; /*!< No. of inodes needed. */
|
|
||||||
@@ -61,83 +62,114 @@ struct diskspaceInfo_s {
|
|
||||||
|
|
||||||
static int rpmtsInitDSI(const rpmts ts)
|
|
||||||
{
|
|
||||||
- rpmDiskSpaceInfo dsi;
|
|
||||||
- struct stat sb;
|
|
||||||
- int rc;
|
|
||||||
- int i;
|
|
||||||
-
|
|
||||||
if (rpmtsFilterFlags(ts) & RPMPROB_FILTER_DISKSPACE)
|
|
||||||
return 0;
|
|
||||||
-
|
|
||||||
- rpmlog(RPMLOG_DEBUG, "mounted filesystems:\n");
|
|
||||||
- rpmlog(RPMLOG_DEBUG,
|
|
||||||
- " i dev bsize bavail iavail mount point\n");
|
|
||||||
-
|
|
||||||
- rc = rpmGetFilesystemList(&ts->filesystems, &ts->filesystemCount);
|
|
||||||
- if (rc || ts->filesystems == NULL || ts->filesystemCount <= 0)
|
|
||||||
- return rc;
|
|
||||||
-
|
|
||||||
- /* Get available space on mounted file systems. */
|
|
||||||
-
|
|
||||||
ts->dsi = _free(ts->dsi);
|
|
||||||
- ts->dsi = xcalloc((ts->filesystemCount + 1), sizeof(*ts->dsi));
|
|
||||||
+ ts->filesystemCount = 0;
|
|
||||||
+ ts->dsi = xcalloc(1, sizeof(*ts->dsi));
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
|
|
||||||
- dsi = ts->dsi;
|
|
||||||
+static rpmDiskSpaceInfo rpmtsCreateDSI(const rpmts ts, dev_t dev,
|
|
||||||
+ const char * dirName, int count)
|
|
||||||
+{
|
|
||||||
+ rpmDiskSpaceInfo dsi;
|
|
||||||
+ struct stat sb;
|
|
||||||
+ char * resolved_path;
|
|
||||||
+ char mntPoint[PATH_MAX];
|
|
||||||
+ int rc;
|
|
||||||
|
|
||||||
- if (dsi != NULL)
|
|
||||||
- for (i = 0; (i < ts->filesystemCount) && dsi; i++, dsi++) {
|
|
||||||
#if STATFS_IN_SYS_STATVFS
|
|
||||||
- struct statvfs sfb;
|
|
||||||
- memset(&sfb, 0, sizeof(sfb));
|
|
||||||
- rc = statvfs(ts->filesystems[i], &sfb);
|
|
||||||
+ struct statvfs sfb;
|
|
||||||
+ memset(&sfb, 0, sizeof(sfb));
|
|
||||||
+ rc = statvfs(dirName, &sfb);
|
|
||||||
#else
|
|
||||||
- struct statfs sfb;
|
|
||||||
- memset(&sfb, 0, sizeof(sfb));
|
|
||||||
+ struct statfs sfb;
|
|
||||||
+ memset(&sfb, 0, sizeof(sfb));
|
|
||||||
# if STAT_STATFS4
|
|
||||||
/* This platform has the 4-argument version of the statfs call. The last two
|
|
||||||
* should be the size of struct statfs and 0, respectively. The 0 is the
|
|
||||||
* filesystem type, and is always 0 when statfs is called on a mounted
|
|
||||||
* filesystem, as we're doing.
|
|
||||||
*/
|
|
||||||
- rc = statfs(ts->filesystems[i], &sfb, sizeof(sfb), 0);
|
|
||||||
+ rc = statfs(dirName, &sfb, sizeof(sfb), 0);
|
|
||||||
# else
|
|
||||||
- rc = statfs(ts->filesystems[i], &sfb);
|
|
||||||
+ rc = statfs(dirName, &sfb);
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
- if (rc)
|
|
||||||
- break;
|
|
||||||
-
|
|
||||||
- rc = stat(ts->filesystems[i], &sb);
|
|
||||||
- if (rc)
|
|
||||||
- break;
|
|
||||||
- dsi->dev = sb.st_dev;
|
|
||||||
-
|
|
||||||
- dsi->bsize = sfb.f_bsize;
|
|
||||||
- dsi->bneeded = 0;
|
|
||||||
- dsi->ineeded = 0;
|
|
||||||
+ if (rc)
|
|
||||||
+ return NULL;
|
|
||||||
+
|
|
||||||
+ rc = stat(dirName, &sb);
|
|
||||||
+ if (rc)
|
|
||||||
+ return NULL;
|
|
||||||
+ if (sb.st_dev != dev) // XXX WHY?
|
|
||||||
+ return NULL;
|
|
||||||
+
|
|
||||||
+ ts->dsi = xrealloc(ts->dsi, (count + 2) * sizeof(*ts->dsi));
|
|
||||||
+ dsi = ts->dsi + count;
|
|
||||||
+ memset(dsi, 0, 2 * sizeof(*dsi));
|
|
||||||
+
|
|
||||||
+ dsi->dev = sb.st_dev;
|
|
||||||
+ dsi->bsize = sfb.f_bsize;
|
|
||||||
+ if (!dsi->bsize)
|
|
||||||
+ dsi->bsize = 512; /* we need a bsize */
|
|
||||||
+ dsi->bneeded = 0;
|
|
||||||
+ dsi->ineeded = 0;
|
|
||||||
#ifdef STATFS_HAS_F_BAVAIL
|
|
||||||
- dsi->bavail = (sfb.f_flag & ST_RDONLY) ? 0 : sfb.f_bavail;
|
|
||||||
+ dsi->bavail = (sfb.f_flag & ST_RDONLY) ? 0 : sfb.f_bavail;
|
|
||||||
#else
|
|
||||||
/* FIXME: the statfs struct doesn't have a member to tell how many blocks are
|
|
||||||
* available for non-superusers. f_blocks - f_bfree is probably too big, but
|
|
||||||
* it's about all we can do.
|
|
||||||
*/
|
|
||||||
- dsi->bavail = sfb.f_blocks - sfb.f_bfree;
|
|
||||||
+ dsi->bavail = sfb.f_blocks - sfb.f_bfree;
|
|
||||||
#endif
|
|
||||||
- /* XXX Avoid FAT and other file systems that have not inodes. */
|
|
||||||
- /* XXX assigning negative value to unsigned type */
|
|
||||||
- dsi->iavail = !(sfb.f_ffree == 0 && sfb.f_files == 0)
|
|
||||||
- ? sfb.f_ffree : -1;
|
|
||||||
- rpmlog(RPMLOG_DEBUG,
|
|
||||||
- "%5d 0x%08x %8" PRId64 " %12" PRId64 " %12" PRId64" %s\n",
|
|
||||||
- i, (unsigned) dsi->dev, dsi->bsize,
|
|
||||||
- dsi->bavail, dsi->iavail,
|
|
||||||
- ts->filesystems[i]);
|
|
||||||
+ /* XXX Avoid FAT and other file systems that have not inodes. */
|
|
||||||
+ /* XXX assigning negative value to unsigned type */
|
|
||||||
+ dsi->iavail = !(sfb.f_ffree == 0 && sfb.f_files == 0)
|
|
||||||
+ ? sfb.f_ffree : -1;
|
|
||||||
+
|
|
||||||
+ /* Find mount point belonging to this device number */
|
|
||||||
+ resolved_path = realpath(dirName, mntPoint);
|
|
||||||
+ if (!resolved_path) {
|
|
||||||
+ strncpy(mntPoint, dirName, PATH_MAX);
|
|
||||||
+ mntPoint[PATH_MAX-1] = '\0';
|
|
||||||
}
|
|
||||||
- return rc;
|
|
||||||
+ char * end = NULL;
|
|
||||||
+ while (end != mntPoint) {
|
|
||||||
+ end = strrchr(mntPoint, '/');
|
|
||||||
+ if (end == mntPoint) { // reached "/"
|
|
||||||
+ stat("/", &sb);
|
|
||||||
+ if (dsi->dev != sb.st_dev) {
|
|
||||||
+ dsi->mntPoint = xstrdup(mntPoint);
|
|
||||||
+ } else {
|
|
||||||
+ dsi->mntPoint = xstrdup("/");
|
|
||||||
+ }
|
|
||||||
+ break;
|
|
||||||
+ } else if (end) {
|
|
||||||
+ *end = '\0';
|
|
||||||
+ } else { // dirName doesn't start with / - should not happen
|
|
||||||
+ dsi->mntPoint = xstrdup(dirName);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ stat(mntPoint, &sb);
|
|
||||||
+ if (dsi->dev != sb.st_dev) {
|
|
||||||
+ *end = '/';
|
|
||||||
+ dsi->mntPoint = xstrdup(mntPoint);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ rpmlog(RPMLOG_DEBUG,
|
|
||||||
+ "0x%08x %8" PRId64 " %12" PRId64 " %12" PRId64" %s\n",
|
|
||||||
+ (unsigned) dsi->dev, dsi->bsize,
|
|
||||||
+ dsi->bavail, dsi->iavail,
|
|
||||||
+ dsi->mntPoint);
|
|
||||||
+ return dsi;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void rpmtsUpdateDSI(const rpmts ts, dev_t dev,
|
|
||||||
+static void rpmtsUpdateDSI(const rpmts ts, dev_t dev, const char *dirName,
|
|
||||||
rpm_loff_t fileSize, rpm_loff_t prevSize, rpm_loff_t fixupSize,
|
|
||||||
rpmFileAction action)
|
|
||||||
{
|
|
||||||
@@ -148,8 +180,10 @@ static void rpmtsUpdateDSI(const rpmts ts, dev_t dev,
|
|
||||||
if (dsi) {
|
|
||||||
while (dsi->bsize && dsi->dev != dev)
|
|
||||||
dsi++;
|
|
||||||
- if (dsi->bsize == 0)
|
|
||||||
- dsi = NULL;
|
|
||||||
+ if (dsi->bsize == 0) {
|
|
||||||
+ /* create new entry */
|
|
||||||
+ dsi = rpmtsCreateDSI(ts, dev, dirName, dsi - ts->dsi);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
if (dsi == NULL)
|
|
||||||
return;
|
|
||||||
@@ -192,26 +226,22 @@ static void rpmtsCheckDSIProblems(const rpmts ts, const rpmte te)
|
|
||||||
rpmDiskSpaceInfo dsi;
|
|
||||||
rpmps ps;
|
|
||||||
int fc;
|
|
||||||
- int i;
|
|
||||||
-
|
|
||||||
- if (ts->filesystems == NULL || ts->filesystemCount <= 0)
|
|
||||||
- return;
|
|
||||||
|
|
||||||
dsi = ts->dsi;
|
|
||||||
- if (dsi == NULL)
|
|
||||||
+ if (dsi == NULL || !dsi->bsize)
|
|
||||||
return;
|
|
||||||
fc = rpmfiFC(rpmteFI(te));
|
|
||||||
if (fc <= 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
ps = rpmtsProblems(ts);
|
|
||||||
- for (i = 0; i < ts->filesystemCount; i++, dsi++) {
|
|
||||||
+ for (; dsi->bsize; dsi++) {
|
|
||||||
|
|
||||||
if (dsi->bavail >= 0 && adj_fs_blocks(dsi->bneeded) > dsi->bavail) {
|
|
||||||
if (dsi->bneeded != dsi->obneeded) {
|
|
||||||
rpmpsAppend(ps, RPMPROB_DISKSPACE,
|
|
||||||
rpmteNEVRA(te), rpmteKey(te),
|
|
||||||
- ts->filesystems[i], NULL, NULL,
|
|
||||||
+ dsi->mntPoint, NULL, NULL,
|
|
||||||
(adj_fs_blocks(dsi->bneeded) - dsi->bavail) * dsi->bsize);
|
|
||||||
dsi->obneeded = dsi->bneeded;
|
|
||||||
}
|
|
||||||
@@ -221,7 +251,7 @@ static void rpmtsCheckDSIProblems(const rpmts ts, const rpmte te)
|
|
||||||
if (dsi->ineeded != dsi->oineeded) {
|
|
||||||
rpmpsAppend(ps, RPMPROB_DISKNODES,
|
|
||||||
rpmteNEVRA(te), rpmteKey(te),
|
|
||||||
- ts->filesystems[i], NULL, NULL,
|
|
||||||
+ dsi->mntPoint, NULL, NULL,
|
|
||||||
(adj_fs_blocks(dsi->ineeded) - dsi->iavail));
|
|
||||||
dsi->oineeded = dsi->ineeded;
|
|
||||||
}
|
|
||||||
@@ -230,6 +260,20 @@ static void rpmtsCheckDSIProblems(const rpmts ts, const rpmte te)
|
|
||||||
ps = rpmpsFree(ps);
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void rpmtsFreeDSI(rpmts ts){
|
|
||||||
+ rpmDiskSpaceInfo dsi;
|
|
||||||
+ if (ts == NULL)
|
|
||||||
+ return;
|
|
||||||
+ dsi = ts->dsi;
|
|
||||||
+ while (dsi && dsi->bsize != 0) {
|
|
||||||
+ dsi->mntPoint = _free(dsi->mntPoint);
|
|
||||||
+ dsi++;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ts->dsi = _free(ts->dsi);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
static int archOkay(const char * pkgArch)
|
|
||||||
@@ -543,8 +587,9 @@ assert(otherFi != NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Update disk space info for a file. */
|
|
||||||
- rpmtsUpdateDSI(ts, fiFps->entry->dev, rpmfiFSize(fi),
|
|
||||||
- rpmfiFReplacedSize(fi), fixupSize, rpmfsGetAction(fs, i));
|
|
||||||
+ rpmtsUpdateDSI(ts, fiFps->entry->dev, fiFps->entry->dirName,
|
|
||||||
+ rpmfiFSize(fi), rpmfiFReplacedSize(fi),
|
|
||||||
+ fixupSize, rpmfsGetAction(fs, i));
|
|
||||||
|
|
||||||
}
|
|
||||||
ps = rpmpsFree(ps);
|
|
||||||
@@ -1338,6 +1383,7 @@ static int rpmtsPrepare(rpmts ts)
|
|
||||||
exit:
|
|
||||||
ht = rpmFpHashFree(ht);
|
|
||||||
fpc = fpCacheFree(fpc);
|
|
||||||
+ rpmtsFreeDSI(ts);
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/scripts/find-lang.sh b/scripts/find-lang.sh
|
||||||
|
index bb25b31..e4a22db 100755
|
||||||
|
--- a/scripts/find-lang.sh
|
||||||
|
+++ b/scripts/find-lang.sh
|
||||||
|
@@ -173,7 +173,7 @@ s:%lang(C) ::
|
||||||
|
find $TOP_DIR -type d|sed '
|
||||||
|
s:'"$TOP_DIR"'::
|
||||||
|
'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/\)::
|
||||||
|
-'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*:
|
||||||
|
+'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1/*:
|
||||||
|
s:^\([^%].*\)::
|
||||||
|
s:%lang(C) ::
|
||||||
|
/^$/d' >> $MO_NAME
|
|
@ -1,6 +1,6 @@
|
||||||
diff -up rpm-4.8.0/build/rpmfc.c.postscriptdriver rpm-4.8.0/build/rpmfc.c
|
diff -up rpm-4.8.0/build/rpmfc.c.psdriver rpm-4.8.0/build/rpmfc.c
|
||||||
--- rpm-4.8.0/build/rpmfc.c.postscriptdriver 2010-02-04 12:00:09.802558577 +0000
|
--- rpm-4.8.0/build/rpmfc.c.psdriver 2010-03-16 10:54:04.000000000 +0200
|
||||||
+++ rpm-4.8.0/build/rpmfc.c 2010-02-04 12:00:09.894684178 +0000
|
+++ rpm-4.8.0/build/rpmfc.c 2010-03-16 10:54:04.000000000 +0200
|
||||||
@@ -489,6 +489,7 @@ static const struct rpmfcTokens_s const
|
@@ -489,6 +489,7 @@ static const struct rpmfcTokens_s const
|
||||||
{ " font metrics", RPMFC_WHITE|RPMFC_INCLUDE },
|
{ " font metrics", RPMFC_WHITE|RPMFC_INCLUDE },
|
||||||
{ " font", RPMFC_FONT|RPMFC_INCLUDE },
|
{ " font", RPMFC_FONT|RPMFC_INCLUDE },
|
||||||
|
@ -52,9 +52,9 @@ diff -up rpm-4.8.0/build/rpmfc.c.postscriptdriver rpm-4.8.0/build/rpmfc.c
|
||||||
/* XXX skip all files in /dev/ which are (or should be) %dev dummies. */
|
/* XXX skip all files in /dev/ which are (or should be) %dev dummies. */
|
||||||
else if (slen >= fc->brlen+sizeof("/dev/") && rstreqn(s+fc->brlen, "/dev/", sizeof("/dev/")-1))
|
else if (slen >= fc->brlen+sizeof("/dev/") && rstreqn(s+fc->brlen, "/dev/", sizeof("/dev/")-1))
|
||||||
ftype = "";
|
ftype = "";
|
||||||
diff -up rpm-4.8.0/build/rpmfc.h.postscriptdriver rpm-4.8.0/build/rpmfc.h
|
diff -up rpm-4.8.0/build/rpmfc.h.psdriver rpm-4.8.0/build/rpmfc.h
|
||||||
--- rpm-4.8.0/build/rpmfc.h.postscriptdriver 2009-12-09 13:37:25.000000000 +0000
|
--- rpm-4.8.0/build/rpmfc.h.psdriver 2009-12-09 15:37:25.000000000 +0200
|
||||||
+++ rpm-4.8.0/build/rpmfc.h 2010-02-04 12:00:09.894684178 +0000
|
+++ rpm-4.8.0/build/rpmfc.h 2010-03-16 10:54:04.000000000 +0200
|
||||||
@@ -31,7 +31,8 @@ enum FCOLOR_e {
|
@@ -31,7 +31,8 @@ enum FCOLOR_e {
|
||||||
#define RPMFC_ELF (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFMIPSN32)
|
#define RPMFC_ELF (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFMIPSN32)
|
||||||
/* (1 << 3) leaks into package headers, reserved */
|
/* (1 << 3) leaks into package headers, reserved */
|
||||||
|
@ -73,20 +73,20 @@ diff -up rpm-4.8.0/build/rpmfc.h.postscriptdriver rpm-4.8.0/build/rpmfc.h
|
||||||
|
|
||||||
RPMFC_ARCHIVE = (1 << 20),
|
RPMFC_ARCHIVE = (1 << 20),
|
||||||
RPMFC_COMPRESSED = (1 << 21),
|
RPMFC_COMPRESSED = (1 << 21),
|
||||||
diff -up rpm-4.8.0/macros.in.postscriptdriver rpm-4.8.0/macros.in
|
diff -up rpm-4.8.0/macros.in.psdriver rpm-4.8.0/macros.in
|
||||||
--- rpm-4.8.0/macros.in.postscriptdriver 2010-02-04 12:00:09.776559914 +0000
|
--- rpm-4.8.0/macros.in.psdriver 2010-03-16 10:54:04.000000000 +0200
|
||||||
+++ rpm-4.8.0/macros.in 2010-02-04 12:00:09.904559096 +0000
|
+++ rpm-4.8.0/macros.in 2010-03-16 10:54:04.000000000 +0200
|
||||||
@@ -504,6 +504,7 @@ print (t)\
|
@@ -504,6 +504,7 @@ print (t)\
|
||||||
|
|
||||||
%__fontconfig_provides %{_rpmconfigdir}/fontconfig.prov
|
%__fontconfig_provides %{_rpmconfigdir}/fontconfig.prov
|
||||||
%__desktop_provides %{_rpmconfigdir}/desktop-file.prov
|
%__desktop_provides %{_rpmconfigdir}/desktop-file.prov
|
||||||
+%__psdriver_provides %{_rpmconfigdir}/postscriptdriver.prov
|
+%__psdriver_provides %{_rpmconfigdir}/postscriptdriver.prov %{buildroot}
|
||||||
|
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# ---- Database configuration macros.
|
# ---- Database configuration macros.
|
||||||
diff -up rpm-4.8.0/scripts/Makefile.am.postscriptdriver rpm-4.8.0/scripts/Makefile.am
|
diff -up rpm-4.8.0/scripts/Makefile.am.psdriver rpm-4.8.0/scripts/Makefile.am
|
||||||
--- rpm-4.8.0/scripts/Makefile.am.postscriptdriver 2009-12-07 14:36:49.000000000 +0000
|
--- rpm-4.8.0/scripts/Makefile.am.psdriver 2009-12-07 16:36:49.000000000 +0200
|
||||||
+++ rpm-4.8.0/scripts/Makefile.am 2010-02-04 12:00:09.905560182 +0000
|
+++ rpm-4.8.0/scripts/Makefile.am 2010-03-16 10:54:04.000000000 +0200
|
||||||
@@ -20,7 +20,8 @@ EXTRA_DIST = \
|
@@ -20,7 +20,8 @@ EXTRA_DIST = \
|
||||||
mono-find-requires mono-find-provides \
|
mono-find-requires mono-find-provides \
|
||||||
ocaml-find-requires.sh ocaml-find-provides.sh \
|
ocaml-find-requires.sh ocaml-find-provides.sh \
|
||||||
|
@ -105,9 +105,9 @@ diff -up rpm-4.8.0/scripts/Makefile.am.postscriptdriver rpm-4.8.0/scripts/Makefi
|
||||||
rpmdb_loadcvt rpmdiff rpm2cpio.sh tcl.req tgpg
|
rpmdb_loadcvt rpmdiff rpm2cpio.sh tcl.req tgpg
|
||||||
|
|
||||||
rpmconfig_DATA = \
|
rpmconfig_DATA = \
|
||||||
diff -up rpm-4.8.0/scripts/Makefile.in.postscriptdriver rpm-4.8.0/scripts/Makefile.in
|
diff -up rpm-4.8.0/scripts/Makefile.in.psdriver rpm-4.8.0/scripts/Makefile.in
|
||||||
--- rpm-4.8.0/scripts/Makefile.in.postscriptdriver 2010-01-08 08:35:16.000000000 +0000
|
--- rpm-4.8.0/scripts/Makefile.in.psdriver 2010-01-08 10:35:16.000000000 +0200
|
||||||
+++ rpm-4.8.0/scripts/Makefile.in 2010-02-04 12:00:09.906559262 +0000
|
+++ rpm-4.8.0/scripts/Makefile.in 2010-03-16 10:54:04.000000000 +0200
|
||||||
@@ -317,7 +317,8 @@ EXTRA_DIST = brp-compress brp-python-byt
|
@@ -317,7 +317,8 @@ EXTRA_DIST = brp-compress brp-python-byt
|
||||||
find-php-provides find-php-requires mono-find-requires \
|
find-php-provides find-php-requires mono-find-requires \
|
||||||
mono-find-provides ocaml-find-requires.sh \
|
mono-find-provides ocaml-find-requires.sh \
|
||||||
|
@ -126,13 +126,13 @@ diff -up rpm-4.8.0/scripts/Makefile.in.postscriptdriver rpm-4.8.0/scripts/Makefi
|
||||||
rpmdb_loadcvt rpmdiff rpm2cpio.sh tcl.req tgpg
|
rpmdb_loadcvt rpmdiff rpm2cpio.sh tcl.req tgpg
|
||||||
|
|
||||||
rpmconfig_DATA = rpmdiff.cgi rpm.daily rpm.log rpm.xinetd macros.perl \
|
rpmconfig_DATA = rpmdiff.cgi rpm.daily rpm.log rpm.xinetd macros.perl \
|
||||||
diff -up rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver rpm-4.8.0/scripts/postscriptdriver.prov
|
diff -up rpm-4.8.0/scripts/postscriptdriver.prov.psdriver rpm-4.8.0/scripts/postscriptdriver.prov
|
||||||
--- rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver 2010-02-04 12:00:09.907559566 +0000
|
--- rpm-4.8.0/scripts/postscriptdriver.prov.psdriver 2010-03-16 10:54:04.000000000 +0200
|
||||||
+++ rpm-4.8.0/scripts/postscriptdriver.prov 2010-02-04 12:03:57.312559754 +0000
|
+++ rpm-4.8.0/scripts/postscriptdriver.prov 2010-03-16 10:54:04.000000000 +0200
|
||||||
@@ -0,0 +1,232 @@
|
@@ -0,0 +1,261 @@
|
||||||
+#!/bin/bash
|
+#!/bin/bash
|
||||||
+shopt -s execfail
|
+shopt -s execfail
|
||||||
+exec -a "$0" python -- "$@" <(tail -n +4 -- "$0") || exit 0 # -*- python -*-
|
+exec -a "$0" python -- <(tail -n +4 -- "$0") "$@" || exit 0 # -*- python -*-
|
||||||
+
|
+
|
||||||
+## Copyright (C) 2009, 2010 Red Hat, Inc.
|
+## Copyright (C) 2009, 2010 Red Hat, Inc.
|
||||||
+## Author: Tim Waugh <twaugh@redhat.com>
|
+## Author: Tim Waugh <twaugh@redhat.com>
|
||||||
|
@ -155,21 +155,26 @@ diff -up rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver rpm-4.8.0/scri
|
||||||
+
|
+
|
||||||
+try:
|
+try:
|
||||||
+ import cups
|
+ import cups
|
||||||
+ CAN_EXAMINE_PPDS=True
|
+ CAN_EXAMINE_PPDS = True
|
||||||
+except:
|
+except:
|
||||||
+ CAN_EXAMINE_PPDS=False
|
+ CAN_EXAMINE_PPDS = False
|
||||||
+
|
+
|
||||||
+from getopt import getopt
|
+from getopt import getopt
|
||||||
|
+import errno
|
||||||
+import os
|
+import os
|
||||||
+import posix
|
+import posix
|
||||||
+import re
|
+import re
|
||||||
+import shlex
|
+import shlex
|
||||||
+import signal
|
+import signal
|
||||||
+import stat
|
|
||||||
+import subprocess
|
+import subprocess
|
||||||
+import sys
|
+import sys
|
||||||
+import tempfile
|
+import tempfile
|
||||||
+
|
+
|
||||||
|
+if len (sys.argv) > 1:
|
||||||
|
+ RPM_BUILD_ROOT = sys.argv[1]
|
||||||
|
+else:
|
||||||
|
+ RPM_BUILD_ROOT = None
|
||||||
|
+
|
||||||
+class TimedOut(Exception):
|
+class TimedOut(Exception):
|
||||||
+ def __init__ (self):
|
+ def __init__ (self):
|
||||||
+ Exception.__init__ (self, "Timed out")
|
+ Exception.__init__ (self, "Timed out")
|
||||||
|
@ -257,8 +262,9 @@ diff -up rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver rpm-4.8.0/scri
|
||||||
+ return
|
+ return
|
||||||
+
|
+
|
||||||
+ attr = ppd.findAttr ('1284DeviceID')
|
+ attr = ppd.findAttr ('1284DeviceID')
|
||||||
+ if attr:
|
+ while attr:
|
||||||
+ self.ids += attr.value
|
+ self.ids += attr.value
|
||||||
|
+ attr = ppd.findNextAttr ('1284DeviceID')
|
||||||
+
|
+
|
||||||
+class DynamicDriver(Driver):
|
+class DynamicDriver(Driver):
|
||||||
+ def __init__ (self, driver):
|
+ def __init__ (self, driver):
|
||||||
|
@ -271,9 +277,20 @@ diff -up rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver rpm-4.8.0/scri
|
||||||
+
|
+
|
||||||
+ def list (self):
|
+ def list (self):
|
||||||
+ signal.alarm (60)
|
+ signal.alarm (60)
|
||||||
|
+ env = os.environ.copy ()
|
||||||
|
+ if RPM_BUILD_ROOT:
|
||||||
|
+ buildroot = RPM_BUILD_ROOT
|
||||||
|
+ if not buildroot.endswith (os.path.sep):
|
||||||
|
+ buildroot += os.path.sep
|
||||||
|
+
|
||||||
|
+ env["DESTDIR"] = RPM_BUILD_ROOT
|
||||||
|
+ env["LD_LIBRARY_PATH"] = "%susr/lib64:%susr/lib" % (buildroot,
|
||||||
|
+ buildroot)
|
||||||
|
+
|
||||||
+ p = subprocess.Popen ([self.driver, "list"],
|
+ p = subprocess.Popen ([self.driver, "list"],
|
||||||
+ stdout=subprocess.PIPE,
|
+ stdout=subprocess.PIPE,
|
||||||
+ stderr=subprocess.PIPE)
|
+ stderr=subprocess.PIPE,
|
||||||
|
+ env=env)
|
||||||
+ try:
|
+ try:
|
||||||
+ (stdout, stderr) = p.communicate ()
|
+ (stdout, stderr) = p.communicate ()
|
||||||
+ signal.alarm (0)
|
+ signal.alarm (0)
|
||||||
|
@ -312,9 +329,15 @@ diff -up rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver rpm-4.8.0/scri
|
||||||
+ self.drv ]
|
+ self.drv ]
|
||||||
+
|
+
|
||||||
+ signal.alarm (60)
|
+ signal.alarm (60)
|
||||||
+ p = subprocess.Popen (argv,
|
+ try:
|
||||||
+ stdout=subprocess.PIPE,
|
+ p = subprocess.Popen (argv,
|
||||||
+ stderr=subprocess.PIPE)
|
+ stdout=subprocess.PIPE,
|
||||||
|
+ stderr=subprocess.PIPE)
|
||||||
|
+ except OSError:
|
||||||
|
+ # ppdc not available.
|
||||||
|
+ os.rmdir (outputdir)
|
||||||
|
+ return Driver.list (self)
|
||||||
|
+
|
||||||
+ try:
|
+ try:
|
||||||
+ (stdout, stderr) = p.communicate ()
|
+ (stdout, stderr) = p.communicate ()
|
||||||
+ signal.alarm (0)
|
+ signal.alarm (0)
|
||||||
|
@ -346,6 +369,12 @@ diff -up rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver rpm-4.8.0/scri
|
||||||
+ self.ids += DynamicDriver (path).list ()
|
+ self.ids += DynamicDriver (path).list ()
|
||||||
+ except TimedOut:
|
+ except TimedOut:
|
||||||
+ pass
|
+ pass
|
||||||
|
+ except OSError, (e, s):
|
||||||
|
+ if e == errno.EACCES or e == errno.ENOENT:
|
||||||
|
+ # Not executable
|
||||||
|
+ pass
|
||||||
|
+ else:
|
||||||
|
+ raise
|
||||||
+
|
+
|
||||||
+ if CAN_EXAMINE_PPDS:
|
+ if CAN_EXAMINE_PPDS:
|
||||||
+ for path in paths:
|
+ for path in paths:
|
|
@ -1,86 +0,0 @@
|
||||||
--- rpm-4.8.0/macros.in 2010-02-04 17:42:32.228100971 +0000
|
|
||||||
+++ rpm-4.8.0/macros.in.postscriptdriver-fixes 2010-02-04 17:43:03.867226950 +0000
|
|
||||||
@@ -504,7 +504,7 @@ print (t)\
|
|
||||||
|
|
||||||
%__fontconfig_provides %{_rpmconfigdir}/fontconfig.prov
|
|
||||||
%__desktop_provides %{_rpmconfigdir}/desktop-file.prov
|
|
||||||
-%__psdriver_provides %{_rpmconfigdir}/postscriptdriver.prov
|
|
||||||
+%__psdriver_provides %{_rpmconfigdir}/postscriptdriver.prov %{buildroot}
|
|
||||||
|
|
||||||
#==============================================================================
|
|
||||||
# ---- Database configuration macros.
|
|
||||||
--- rpm-4.8.0/scripts/postscriptdriver.prov 2010-02-04 17:25:15.672102648 +0000
|
|
||||||
+++ rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver-fixes 2010-02-05 10:46:44.517778993 +0000
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
#!/bin/bash
|
|
||||||
shopt -s execfail
|
|
||||||
-exec -a "$0" python -- "$@" <(tail -n +4 -- "$0") || exit 0 # -*- python -*-
|
|
||||||
+exec -a "$0" python -- <(tail -n +4 -- "$0") "$@" || exit 0 # -*- python -*-
|
|
||||||
|
|
||||||
## Copyright (C) 2009, 2010 Red Hat, Inc.
|
|
||||||
## Author: Tim Waugh <twaugh@redhat.com>
|
|
||||||
@@ -23,21 +23,26 @@ import sys
|
|
||||||
|
|
||||||
try:
|
|
||||||
import cups
|
|
||||||
- CAN_EXAMINE_PPDS=True
|
|
||||||
+ CAN_EXAMINE_PPDS = True
|
|
||||||
except:
|
|
||||||
- CAN_EXAMINE_PPDS=False
|
|
||||||
+ CAN_EXAMINE_PPDS = False
|
|
||||||
|
|
||||||
from getopt import getopt
|
|
||||||
+import errno
|
|
||||||
import os
|
|
||||||
import posix
|
|
||||||
import re
|
|
||||||
import shlex
|
|
||||||
import signal
|
|
||||||
-import stat
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
import tempfile
|
|
||||||
|
|
||||||
+if len (sys.argv) > 1:
|
|
||||||
+ RPM_BUILD_ROOT = sys.argv[1]
|
|
||||||
+else:
|
|
||||||
+ RPM_BUILD_ROOT = None
|
|
||||||
+
|
|
||||||
class TimedOut(Exception):
|
|
||||||
def __init__ (self):
|
|
||||||
Exception.__init__ (self, "Timed out")
|
|
||||||
@@ -139,9 +144,20 @@ class DynamicDriver(Driver):
|
|
||||||
|
|
||||||
def list (self):
|
|
||||||
signal.alarm (60)
|
|
||||||
+ env = os.environ.copy ()
|
|
||||||
+ if RPM_BUILD_ROOT:
|
|
||||||
+ buildroot = RPM_BUILD_ROOT
|
|
||||||
+ if not buildroot.endswith (os.path.sep):
|
|
||||||
+ buildroot += os.path.sep
|
|
||||||
+
|
|
||||||
+ env["DESTDIR"] = RPM_BUILD_ROOT
|
|
||||||
+ env["LD_LIBRARY_PATH"] = "%susr/lib64:%susr/lib" % (buildroot,
|
|
||||||
+ buildroot)
|
|
||||||
+
|
|
||||||
p = subprocess.Popen ([self.driver, "list"],
|
|
||||||
stdout=subprocess.PIPE,
|
|
||||||
- stderr=subprocess.PIPE)
|
|
||||||
+ stderr=subprocess.PIPE,
|
|
||||||
+ env=env)
|
|
||||||
try:
|
|
||||||
(stdout, stderr) = p.communicate ()
|
|
||||||
signal.alarm (0)
|
|
||||||
@@ -214,6 +230,12 @@ class TagBuilder:
|
|
||||||
self.ids += DynamicDriver (path).list ()
|
|
||||||
except TimedOut:
|
|
||||||
pass
|
|
||||||
+ except OSError, e:
|
|
||||||
+ if e == errno.EACCES or e == errno.ENOENT:
|
|
||||||
+ # Not executable
|
|
||||||
+ pass
|
|
||||||
+ else:
|
|
||||||
+ raise
|
|
||||||
|
|
||||||
if CAN_EXAMINE_PPDS:
|
|
||||||
for path in paths:
|
|
|
@ -1,30 +0,0 @@
|
||||||
--- rpm-4.8.0/scripts/postscriptdriver.prov 2010-02-05 15:40:34.451050057 +0000
|
|
||||||
+++ rpm-4.8.0/scripts/postscriptdriver.prov~ 2010-02-05 15:44:10.141926520 +0000
|
|
||||||
@@ -196,9 +196,15 @@ class DrvDriver(PPDDriver):
|
|
||||||
self.drv ]
|
|
||||||
|
|
||||||
signal.alarm (60)
|
|
||||||
- p = subprocess.Popen (argv,
|
|
||||||
- stdout=subprocess.PIPE,
|
|
||||||
- stderr=subprocess.PIPE)
|
|
||||||
+ try:
|
|
||||||
+ p = subprocess.Popen (argv,
|
|
||||||
+ stdout=subprocess.PIPE,
|
|
||||||
+ stderr=subprocess.PIPE)
|
|
||||||
+ except OSError:
|
|
||||||
+ # ppdc not available.
|
|
||||||
+ os.rmdir (outputdir)
|
|
||||||
+ return Driver.list (self)
|
|
||||||
+
|
|
||||||
try:
|
|
||||||
(stdout, stderr) = p.communicate ()
|
|
||||||
signal.alarm (0)
|
|
||||||
@@ -230,7 +236,7 @@ class TagBuilder:
|
|
||||||
self.ids += DynamicDriver (path).list ()
|
|
||||||
except TimedOut:
|
|
||||||
pass
|
|
||||||
- except OSError, e:
|
|
||||||
+ except OSError, (e, s):
|
|
||||||
if e == errno.EACCES or e == errno.ENOENT:
|
|
||||||
# Not executable
|
|
||||||
pass
|
|
|
@ -1,19 +0,0 @@
|
||||||
commit ce1d2e87157f4a7ebc4f4d6f26024ac597400367
|
|
||||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
|
||||||
Date: Thu Jan 21 13:45:34 2010 +0200
|
|
||||||
|
|
||||||
Fix double-free segfault on url retrieve to read-only media (RhBug:557118)
|
|
||||||
|
|
||||||
diff --git a/lib/rpminstall.c b/lib/rpminstall.c
|
|
||||||
index 6b3dde7..568e13f 100644
|
|
||||||
--- a/lib/rpminstall.c
|
|
||||||
+++ b/lib/rpminstall.c
|
|
||||||
@@ -458,7 +458,7 @@ restart:
|
|
||||||
case URL_IS_HTTPS:
|
|
||||||
case URL_IS_HTTP:
|
|
||||||
case URL_IS_FTP:
|
|
||||||
- { char *tfn;
|
|
||||||
+ { char *tfn = NULL;
|
|
||||||
FD_t tfd;
|
|
||||||
|
|
||||||
if (rpmIsVerbose())
|
|
|
@ -1,22 +0,0 @@
|
||||||
commit 04ad4b1155ec4b082fbac425a575a0ba05337ab1
|
|
||||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
|
||||||
Date: Thu Jan 21 14:14:28 2010 +0200
|
|
||||||
|
|
||||||
Really fix verification error code to not depend on verbosity (RhBug:557101)
|
|
||||||
- earlier fix from commit 6649c23cac5823d0c7415df5cfd66e5aac5eebd2 was
|
|
||||||
broken as it could reset return code to zero after detecting errors
|
|
||||||
earlier
|
|
||||||
|
|
||||||
diff --git a/lib/verify.c b/lib/verify.c
|
|
||||||
index 44ab314..1068cfe 100644
|
|
||||||
--- a/lib/verify.c
|
|
||||||
+++ b/lib/verify.c
|
|
||||||
@@ -353,7 +353,7 @@ static int verifyHeader(QVA_t qva, const rpmts ts, Header h)
|
|
||||||
static const char *const aok = ".";
|
|
||||||
static const char *const unknown = "?";
|
|
||||||
|
|
||||||
- ec = (verifyResult != 0);
|
|
||||||
+ if (verifyResult) ec = 1;
|
|
||||||
|
|
||||||
#define _verify(_RPMVERIFY_F, _C) \
|
|
||||||
((verifyResult & _RPMVERIFY_F) ? _C : aok)
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -ru rpm-4.8.1-orig/installplatform rpm-4.8.1/installplatform
|
||||||
|
--- rpm-4.8.1-orig/installplatform 2009-12-07 09:36:49.000000000 -0500
|
||||||
|
+++ rpm-4.8.1/installplatform 2011-01-19 02:58:44.000000000 -0500
|
||||||
|
@@ -19,7 +19,7 @@
|
||||||
|
case "$arch" in
|
||||||
|
i[3456]86|pentium[34]|athlon|geode) SUBSTS='s_i386_i386_ s_i386_i486_ s_i386_i586_ s_i386_i686_ s_i386_pentium3_ s_i386_pentium4_ s_i386_athlon_ s_i386_geode_' ;;
|
||||||
|
alpha*) SUBSTS='s_alpha_alpha_ s_alpha_alphaev5_ s_alpha_alphaev56_ s_alpha_alphapca56_ s_alpha_alphaev6_ s_alpha_alphaev67_' ;;
|
||||||
|
- arm*) SUBSTS='s_arm_armv3l_ s_arm_armv4l_ s_arm_armv4tl_ s_arm_armv5tel_ s_arm_armv5tejl_ s_arm_armv6l_ s_arm_armv7l_' ;;
|
||||||
|
+ arm*) SUBSTS='s_arm_arm_ s_arm_armv3l_ s_arm_armv4l_ s_arm_armv4tl_ s_arm_armv5tel_ s_arm_armv5tejl_ s_arm_armv6l_ s_arm_armv7l_' ;;
|
||||||
|
sh4*) SUBSTS='s_sh4_sh4_ s_sh4_sh4a_' ;;
|
||||||
|
sparc*) SUBSTS='s_sparc\(64\|64v\|v9v\|v9\)_sparc_ s_sparc64_sparcv9_;s_sparc\([^v]\|$\)_sparcv9\1_ s_sparcv9_sparc64_;s_sparc\([^6]\|$\)_sparc64\1_' ;;
|
||||||
|
powerpc*|ppc*) SUBSTS='s_ppc64_ppc_ s_ppc\([^6ip]\|$\)_ppc64\1_ s_ppc\([^6ip]\|$\)_ppciseries_ s_ppc\([^6ip]\|$\)_ppcpseries_ s_ppc\([^6ip]\|$\)_ppc64iseries_ s_ppc\([^6ip]\|$\)_ppc64pseries_' ;;
|
|
@ -0,0 +1,25 @@
|
||||||
|
commit 26874707edfe73e153383284f9fe33cfd9879bb1
|
||||||
|
Author: Michal Schmidt <mschmidt@redhat.com>
|
||||||
|
Date: Tue Jun 22 15:51:41 2010 +0200
|
||||||
|
|
||||||
|
Revert "If there are no hardlinks, dont bother with s-bit and caps removal"
|
||||||
|
|
||||||
|
Deciding whether it is necessary to remove the SUID bit based on
|
||||||
|
the current link count creates an opportunity for a race condition.
|
||||||
|
A hardlink could be created just between lstat() and chmod().
|
||||||
|
|
||||||
|
This reverts commit 89be57ad9239c9ada0cba94a5003876b456d46bf.
|
||||||
|
|
||||||
|
diff --git a/lib/fsm.c b/lib/fsm.c
|
||||||
|
index 2d972f3..068c65d 100644
|
||||||
|
--- a/lib/fsm.c
|
||||||
|
+++ b/lib/fsm.c
|
||||||
|
@@ -1264,7 +1264,7 @@ static int fsmMkdirs(FSM_t fsm)
|
||||||
|
static void removeSBITS(const char *path)
|
||||||
|
{
|
||||||
|
struct stat stb;
|
||||||
|
- if (lstat(path, &stb) == 0 && S_ISREG(stb.st_mode) && stb.st_nlink > 1) {
|
||||||
|
+ if (lstat(path, &stb) == 0 && S_ISREG(stb.st_mode)) {
|
||||||
|
if ((stb.st_mode & 06000) != 0) {
|
||||||
|
(void) chmod(path, stb.st_mode & 0777);
|
||||||
|
}
|
68
rpm.spec
68
rpm.spec
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
%define rpmhome /usr/lib/rpm
|
%define rpmhome /usr/lib/rpm
|
||||||
|
|
||||||
%define rpmver 4.8.0
|
%define rpmver 4.8.1
|
||||||
%define snapver %{nil}
|
%define snapver %{nil}
|
||||||
%define srcver %{rpmver}
|
%define srcver %{rpmver}
|
||||||
|
|
||||||
|
@ -21,10 +21,10 @@
|
||||||
Summary: The RPM package management system
|
Summary: The RPM package management system
|
||||||
Name: rpm
|
Name: rpm
|
||||||
Version: %{rpmver}
|
Version: %{rpmver}
|
||||||
Release: 10%{?dist}
|
Release: 3%{?dist}
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
Url: http://www.rpm.org/
|
Url: http://www.rpm.org/
|
||||||
Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
|
Source0: http://rpm.org/releases/rpm-4.8.x/%{name}-%{srcver}.tar.bz2
|
||||||
%if %{with int_bdb}
|
%if %{with int_bdb}
|
||||||
Source1: db-%{bdbver}.tar.gz
|
Source1: db-%{bdbver}.tar.gz
|
||||||
%endif
|
%endif
|
||||||
|
@ -36,22 +36,19 @@ Patch2: rpm-4.5.90-gstreamer-provides.patch
|
||||||
# this as Fedora-specific patch for now
|
# this as Fedora-specific patch for now
|
||||||
Patch3: rpm-4.7.90-fedora-specspo.patch
|
Patch3: rpm-4.7.90-fedora-specspo.patch
|
||||||
# Postscript driver provides extraction is Fedora specific for now
|
# Postscript driver provides extraction is Fedora specific for now
|
||||||
# TODO: merge these when things stabilize
|
Patch4: rpm-4.8.0-psdriver-deps.patch
|
||||||
Patch4: rpm-4.8.0-psdriver.patch
|
# In current Fedora, man-pages pkg owns all the localized man directories
|
||||||
Patch5: rpm-4.8.0-psdriver-fixes.patch
|
Patch5: rpm-4.8.0-no-man-dirs.patch
|
||||||
Patch6: rpm-4.8.0-psdriver-more-fixes.patch
|
|
||||||
|
|
||||||
# Patches already in upstream
|
# Patches already in upstream
|
||||||
Patch200: rpm-4.8.0-url-segfault.patch
|
Patch200: rpm-4.8.0-pythondeps-parallel.patch
|
||||||
Patch201: rpm-4.8.0-verify-exitcode.patch
|
Patch201: rpm-4.8.0-python-bytecompile.patch
|
||||||
Patch202: rpm-4.8.0-pythondeps-parallel.patch
|
Patch202: rpm-4.8.1-nlinks-race.patch
|
||||||
Patch203: rpm-4.8.0-python-bytecompile.patch
|
|
||||||
Patch204: rpm-4.8.0-lazy-statfs.patch
|
|
||||||
Patch205: rpm-4.8.0-erasure-dsi.patch
|
|
||||||
|
|
||||||
# These are not yet upstream
|
# These are not yet upstream
|
||||||
Patch301: rpm-4.6.0-niagara.patch
|
Patch301: rpm-4.6.0-niagara.patch
|
||||||
Patch302: rpm-4.7.1-geode-i686.patch
|
Patch302: rpm-4.7.1-geode-i686.patch
|
||||||
|
Patch303: rpm-4.8.1-fixarm.patch
|
||||||
|
|
||||||
# Partially GPL/LGPL dual-licensed and some bits with BSD
|
# Partially GPL/LGPL dual-licensed and some bits with BSD
|
||||||
# SourceLicense: (GPLv2+ and LGPLv2+ with exceptions) and BSD
|
# SourceLicense: (GPLv2+ and LGPLv2+ with exceptions) and BSD
|
||||||
|
@ -191,19 +188,16 @@ packages on a system.
|
||||||
%patch1 -p1 -b .pkgconfig-path
|
%patch1 -p1 -b .pkgconfig-path
|
||||||
%patch2 -p1 -b .gstreamer-prov
|
%patch2 -p1 -b .gstreamer-prov
|
||||||
%patch3 -p1 -b .fedora-specspo
|
%patch3 -p1 -b .fedora-specspo
|
||||||
%patch4 -p1 -b .psdriver
|
%patch4 -p1 -b .psdriver-deps
|
||||||
%patch5 -p1 -b .psdriver-fixes
|
%patch5 -p1 -b .no-man-dirs
|
||||||
%patch6 -p1 -b .psdriver-more-fixes
|
|
||||||
|
|
||||||
%patch200 -p1 -b .url-segfault
|
%patch200 -p1 -b .pythondeps-parallel
|
||||||
%patch201 -p1 -b .verify-exitcode
|
%patch201 -p1 -b .python-bytecompile
|
||||||
%patch202 -p1 -b .pythondeps-parallel
|
%patch202 -p1 -b .nlinks-race
|
||||||
%patch203 -p1 -b .python-bytecompile
|
|
||||||
%patch204 -p1 -b .lazy-statfs
|
|
||||||
%patch205 -p1 -b .erasure-dsi
|
|
||||||
|
|
||||||
%patch301 -p1 -b .niagara
|
%patch301 -p1 -b .niagara
|
||||||
%patch302 -p1 -b .geode
|
%patch302 -p1 -b .geode
|
||||||
|
%patch303 -p1 -b .arm
|
||||||
|
|
||||||
%if %{with int_bdb}
|
%if %{with int_bdb}
|
||||||
ln -s db-%{bdbver} db
|
ln -s db-%{bdbver} db
|
||||||
|
@ -269,7 +263,6 @@ for dbutil in \
|
||||||
do
|
do
|
||||||
ln -s ../../bin/%{dbprefix}_${dbutil} $RPM_BUILD_ROOT/%{rpmhome}/rpmdb_${dbutil}
|
ln -s ../../bin/%{dbprefix}_${dbutil} $RPM_BUILD_ROOT/%{rpmhome}/rpmdb_${dbutil}
|
||||||
done
|
done
|
||||||
ln -s ../../bin/berkeley_%{dbprefix}_svc $RPM_BUILD_ROOT/%{rpmhome}/rpmdb_svc
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
@ -417,6 +410,35 @@ exit 0
|
||||||
%doc doc/librpm/html/*
|
%doc doc/librpm/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri May 27 2011 Paul Whalen <paul.whalen@senecac.on.ca> - 4.8.1-3
|
||||||
|
- Added patch for ARM builds
|
||||||
|
|
||||||
|
* Wed Jun 30 2010 Panu Matilainen <pmatilai@redhat.com> - 4.8.1-2
|
||||||
|
- plug a tiny race on sbit/capability removal
|
||||||
|
|
||||||
|
* Fri Jun 14 2010 Panu Matilainen <pmatilai@redhat.com> - 4.8.1-1
|
||||||
|
- update to 4.8.1 (http://rpm.org/wiki/Releases/4.8.1)
|
||||||
|
- drop no longer needed patches
|
||||||
|
- fix source url pointing to testing directory
|
||||||
|
- fixes CVE-2010-2059 / #598934
|
||||||
|
- fixes #532992, #578299, #587755, #590588, #593553, #597835, #598988
|
||||||
|
|
||||||
|
* Fri Apr 23 2010 Panu Matilainen <pmatilai@redhat.com> - 4.8.0-14
|
||||||
|
- lose dangling symlink to extinct (and useless) berkeley_db_svc (#585174)
|
||||||
|
|
||||||
|
* Wed Mar 24 2010 Panu Matilainen <pmatilai@redhat.com> - 4.8.0-13
|
||||||
|
- fix python match iterator regression wrt boolean representation
|
||||||
|
|
||||||
|
* Wed Mar 17 2010 Panu Matilainen <pmatilai@redhat.com> - 4.8.0-12
|
||||||
|
- unbreak find-lang --with-man from yesterdays braindamage
|
||||||
|
|
||||||
|
* Tue Mar 16 2010 Panu Matilainen <pmatilai@redhat.com> - 4.8.0-11
|
||||||
|
- support single PPD providing driver for devices (#568351)
|
||||||
|
- merge the psdriver patch pile into one
|
||||||
|
- preserve empty lines in spec prep section (#573339)
|
||||||
|
- teach python bindings about RPMTRANS_FLAG_NOCONTEXTS (related to #573111)
|
||||||
|
- dont own localized man directories through find_lang (#569536)
|
||||||
|
|
||||||
* Mon Feb 15 2010 Panu Matilainen <pmatilai@redhat.com> - 4.8.0-10
|
* Mon Feb 15 2010 Panu Matilainen <pmatilai@redhat.com> - 4.8.0-10
|
||||||
- drop bogus dependency on lzma, xz is used to handle the lzma format too
|
- drop bogus dependency on lzma, xz is used to handle the lzma format too
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue