Compare commits
7 Commits
Author | SHA1 | Date |
---|---|---|
Paul Whalen | 233bb3037a | |
Paul Whalen | 2b03c0dab4 | |
Fedora Release Engineering | abf039d8a8 | |
Panu Matilainen | c698fc1a8e | |
Panu Matilainen | 855e5dc18e | |
Panu Matilainen | 644df007ba | |
Jesse Keating | 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
|
||||
--- rpm-4.8.0/build/rpmfc.c.postscriptdriver 2010-02-04 12:00:09.802558577 +0000
|
||||
+++ rpm-4.8.0/build/rpmfc.c 2010-02-04 12:00:09.894684178 +0000
|
||||
diff -up rpm-4.8.0/build/rpmfc.c.psdriver rpm-4.8.0/build/rpmfc.c
|
||||
--- rpm-4.8.0/build/rpmfc.c.psdriver 2010-03-16 10:54:04.000000000 +0200
|
||||
+++ 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
|
||||
{ " font metrics", RPMFC_WHITE|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. */
|
||||
else if (slen >= fc->brlen+sizeof("/dev/") && rstreqn(s+fc->brlen, "/dev/", sizeof("/dev/")-1))
|
||||
ftype = "";
|
||||
diff -up rpm-4.8.0/build/rpmfc.h.postscriptdriver 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 2010-02-04 12:00:09.894684178 +0000
|
||||
diff -up rpm-4.8.0/build/rpmfc.h.psdriver rpm-4.8.0/build/rpmfc.h
|
||||
--- rpm-4.8.0/build/rpmfc.h.psdriver 2009-12-09 15:37:25.000000000 +0200
|
||||
+++ rpm-4.8.0/build/rpmfc.h 2010-03-16 10:54:04.000000000 +0200
|
||||
@@ -31,7 +31,8 @@ enum FCOLOR_e {
|
||||
#define RPMFC_ELF (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFMIPSN32)
|
||||
/* (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_COMPRESSED = (1 << 21),
|
||||
diff -up rpm-4.8.0/macros.in.postscriptdriver 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 2010-02-04 12:00:09.904559096 +0000
|
||||
diff -up rpm-4.8.0/macros.in.psdriver rpm-4.8.0/macros.in
|
||||
--- rpm-4.8.0/macros.in.psdriver 2010-03-16 10:54:04.000000000 +0200
|
||||
+++ rpm-4.8.0/macros.in 2010-03-16 10:54:04.000000000 +0200
|
||||
@@ -504,6 +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.
|
||||
diff -up rpm-4.8.0/scripts/Makefile.am.postscriptdriver 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 2010-02-04 12:00:09.905560182 +0000
|
||||
diff -up rpm-4.8.0/scripts/Makefile.am.psdriver rpm-4.8.0/scripts/Makefile.am
|
||||
--- rpm-4.8.0/scripts/Makefile.am.psdriver 2009-12-07 16:36:49.000000000 +0200
|
||||
+++ rpm-4.8.0/scripts/Makefile.am 2010-03-16 10:54:04.000000000 +0200
|
||||
@@ -20,7 +20,8 @@ EXTRA_DIST = \
|
||||
mono-find-requires mono-find-provides \
|
||||
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
|
||||
|
||||
rpmconfig_DATA = \
|
||||
diff -up rpm-4.8.0/scripts/Makefile.in.postscriptdriver 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 2010-02-04 12:00:09.906559262 +0000
|
||||
diff -up rpm-4.8.0/scripts/Makefile.in.psdriver rpm-4.8.0/scripts/Makefile.in
|
||||
--- rpm-4.8.0/scripts/Makefile.in.psdriver 2010-01-08 10:35:16.000000000 +0200
|
||||
+++ 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
|
||||
find-php-provides find-php-requires mono-find-requires \
|
||||
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
|
||||
|
||||
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
|
||||
--- rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver 2010-02-04 12:00:09.907559566 +0000
|
||||
+++ rpm-4.8.0/scripts/postscriptdriver.prov 2010-02-04 12:03:57.312559754 +0000
|
||||
@@ -0,0 +1,232 @@
|
||||
diff -up rpm-4.8.0/scripts/postscriptdriver.prov.psdriver rpm-4.8.0/scripts/postscriptdriver.prov
|
||||
--- rpm-4.8.0/scripts/postscriptdriver.prov.psdriver 2010-03-16 10:54:04.000000000 +0200
|
||||
+++ rpm-4.8.0/scripts/postscriptdriver.prov 2010-03-16 10:54:04.000000000 +0200
|
||||
@@ -0,0 +1,261 @@
|
||||
+#!/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>
|
||||
|
@ -155,21 +155,26 @@ diff -up rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver rpm-4.8.0/scri
|
|||
+
|
||||
+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")
|
||||
|
@ -257,8 +262,9 @@ diff -up rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver rpm-4.8.0/scri
|
|||
+ return
|
||||
+
|
||||
+ attr = ppd.findAttr ('1284DeviceID')
|
||||
+ if attr:
|
||||
+ while attr:
|
||||
+ self.ids += attr.value
|
||||
+ attr = ppd.findNextAttr ('1284DeviceID')
|
||||
+
|
||||
+class DynamicDriver(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):
|
||||
+ 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)
|
||||
|
@ -312,9 +329,15 @@ diff -up rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver rpm-4.8.0/scri
|
|||
+ 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)
|
||||
|
@ -346,6 +369,12 @@ diff -up rpm-4.8.0/scripts/postscriptdriver.prov.postscriptdriver rpm-4.8.0/scri
|
|||
+ self.ids += DynamicDriver (path).list ()
|
||||
+ except TimedOut:
|
||||
+ pass
|
||||
+ except OSError, (e, s):
|
||||
+ if e == errno.EACCES or e == errno.ENOENT:
|
||||
+ # Not executable
|
||||
+ pass
|
||||
+ else:
|
||||
+ raise
|
||||
+
|
||||
+ if CAN_EXAMINE_PPDS:
|
||||
+ 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 rpmver 4.8.0
|
||||
%define rpmver 4.8.1
|
||||
%define snapver %{nil}
|
||||
%define srcver %{rpmver}
|
||||
|
||||
|
@ -21,10 +21,10 @@
|
|||
Summary: The RPM package management system
|
||||
Name: rpm
|
||||
Version: %{rpmver}
|
||||
Release: 10%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Group: System Environment/Base
|
||||
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}
|
||||
Source1: db-%{bdbver}.tar.gz
|
||||
%endif
|
||||
|
@ -36,22 +36,19 @@ Patch2: rpm-4.5.90-gstreamer-provides.patch
|
|||
# this as Fedora-specific patch for now
|
||||
Patch3: rpm-4.7.90-fedora-specspo.patch
|
||||
# Postscript driver provides extraction is Fedora specific for now
|
||||
# TODO: merge these when things stabilize
|
||||
Patch4: rpm-4.8.0-psdriver.patch
|
||||
Patch5: rpm-4.8.0-psdriver-fixes.patch
|
||||
Patch6: rpm-4.8.0-psdriver-more-fixes.patch
|
||||
Patch4: rpm-4.8.0-psdriver-deps.patch
|
||||
# In current Fedora, man-pages pkg owns all the localized man directories
|
||||
Patch5: rpm-4.8.0-no-man-dirs.patch
|
||||
|
||||
# Patches already in upstream
|
||||
Patch200: rpm-4.8.0-url-segfault.patch
|
||||
Patch201: rpm-4.8.0-verify-exitcode.patch
|
||||
Patch202: rpm-4.8.0-pythondeps-parallel.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
|
||||
Patch200: rpm-4.8.0-pythondeps-parallel.patch
|
||||
Patch201: rpm-4.8.0-python-bytecompile.patch
|
||||
Patch202: rpm-4.8.1-nlinks-race.patch
|
||||
|
||||
# These are not yet upstream
|
||||
Patch301: rpm-4.6.0-niagara.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
|
||||
# SourceLicense: (GPLv2+ and LGPLv2+ with exceptions) and BSD
|
||||
|
@ -191,19 +188,16 @@ packages on a system.
|
|||
%patch1 -p1 -b .pkgconfig-path
|
||||
%patch2 -p1 -b .gstreamer-prov
|
||||
%patch3 -p1 -b .fedora-specspo
|
||||
%patch4 -p1 -b .psdriver
|
||||
%patch5 -p1 -b .psdriver-fixes
|
||||
%patch6 -p1 -b .psdriver-more-fixes
|
||||
%patch4 -p1 -b .psdriver-deps
|
||||
%patch5 -p1 -b .no-man-dirs
|
||||
|
||||
%patch200 -p1 -b .url-segfault
|
||||
%patch201 -p1 -b .verify-exitcode
|
||||
%patch202 -p1 -b .pythondeps-parallel
|
||||
%patch203 -p1 -b .python-bytecompile
|
||||
%patch204 -p1 -b .lazy-statfs
|
||||
%patch205 -p1 -b .erasure-dsi
|
||||
%patch200 -p1 -b .pythondeps-parallel
|
||||
%patch201 -p1 -b .python-bytecompile
|
||||
%patch202 -p1 -b .nlinks-race
|
||||
|
||||
%patch301 -p1 -b .niagara
|
||||
%patch302 -p1 -b .geode
|
||||
%patch303 -p1 -b .arm
|
||||
|
||||
%if %{with int_bdb}
|
||||
ln -s db-%{bdbver} db
|
||||
|
@ -269,7 +263,6 @@ for dbutil in \
|
|||
do
|
||||
ln -s ../../bin/%{dbprefix}_${dbutil} $RPM_BUILD_ROOT/%{rpmhome}/rpmdb_${dbutil}
|
||||
done
|
||||
ln -s ../../bin/berkeley_%{dbprefix}_svc $RPM_BUILD_ROOT/%{rpmhome}/rpmdb_svc
|
||||
%endif
|
||||
|
||||
%find_lang %{name}
|
||||
|
@ -417,6 +410,35 @@ exit 0
|
|||
%doc doc/librpm/html/*
|
||||
|
||||
%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
|
||||
- drop bogus dependency on lzma, xz is used to handle the lzma format too
|
||||
|
||||
|
|
Loading…
Reference in New Issue