- update to pre-4.10 upstream snapshot

- drop/adjust patches as necessary
This commit is contained in:
Panu Matilainen 2012-03-20 11:55:51 +02:00
parent a709ae3098
commit ae9bea02d8
21 changed files with 28 additions and 609 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@ rpm-4.8.1.tar.bz2
/rpm-4.9.1.tar.bz2 /rpm-4.9.1.tar.bz2
/rpm-4.9.1.1.tar.bz2 /rpm-4.9.1.1.tar.bz2
/rpm-4.9.1.2.tar.bz2 /rpm-4.9.1.2.tar.bz2
/rpm-4.9.90.git11505.tar.bz2

View File

@ -1,13 +0,0 @@
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

View File

@ -1,55 +0,0 @@
--- rpm-4.9.0/scripts/find-debuginfo.sh 2011-02-19 07:57:21.000000000 +0100
+++ rpm-4.9.0/scripts/find-debuginfo.sh.orig 2011-02-19 08:50:23.000000000 +0100
@@ -127,6 +127,23 @@ debug_link()
link_relative "$t" "$l" "$RPM_BUILD_ROOT"
}
+# Provide .2, .3, ... symlinks to all filename instances of this build-id.
+make_id_dup_link()
+{
+ local id="$1" file="$2" idfile
+
+ local n=1
+ while true; do
+ idfile=".build-id/${id:0:2}/${id:2}.$n"
+ [ $# -eq 3 ] && idfile="${idfile}$3"
+ if [ ! -L "$RPM_BUILD_ROOT/usr/lib/debug/$idfile" ]; then
+ break
+ fi
+ n=$[$n+1]
+ done
+ debug_link "$file" "/$idfile"
+}
+
# Make a build-id symlink for id $1 with suffix $3 to file $2.
make_id_link()
{
@@ -140,6 +157,8 @@ make_id_link()
return
fi
+ make_id_dup_link "$@"
+
[ $# -eq 3 ] && return 0
local other=$(readlink -m "$root_idfile")
@@ -188,6 +207,9 @@ while read nlinks inum f; do
if [ $nlinks -gt 1 ]; then
eval linked=\$linked_$inum
if [ -n "$linked" ]; then
+ eval id=\$linkedid_$inum
+ make_id_dup_link "$id" "$dn/$(basename $f)"
+ make_id_dup_link "$id" "/usr/lib/debug$dn/$bn" .debug
link=$debugfn
get_debugfn "$linked"
echo "hard linked $link to $debugfn"
@@ -202,6 +224,9 @@ while read nlinks inum f; do
echo "extracting debug info from $f"
id=$(/usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \
-i -l "$SOURCEFILE" "$f") || exit
+ if [ $nlinks -gt 1 ]; then
+ eval linkedid_$inum=\$id
+ fi
if [ -z "$id" ]; then
echo >&2 "*** ${strict_error}: No build ID note found in $f"
$strict && exit 2

View File

@ -1,35 +0,0 @@
commit 9ddcc23d2b7ecaf5336530dbe37195b0057d0396
Author: Ville Skyttä <ville.skytta@iki.fi>
Date: Tue Jan 10 10:48:13 2012 +0200
Adapt perl and python fileattrs to file 5.10 magics
- file 5.10 has changed magics at least for perl and python scripts, samples:
5.09: a /usr/bin/perl -w script, ASCII text executable, with very long lines
5.10: Perl script, ASCII text executable, with very long lines
5.09: a /usr/bin/python script, ASCII text executable
5.10: Python script, ASCII text executable
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
diff --git a/fileattrs/perl.attr b/fileattrs/perl.attr
index 23b873f..0daef58 100644
--- a/fileattrs/perl.attr
+++ b/fileattrs/perl.attr
@@ -1,3 +1,3 @@
%__perl_requires %{_rpmconfigdir}/perl.req
-%__perl_magic ^.*perl .*$
+%__perl_magic ^.*[Pp]erl .*$
%__perl_flags exeonly
diff --git a/fileattrs/python.attr b/fileattrs/python.attr
index 5b48f75..4eaad76 100644
--- a/fileattrs/python.attr
+++ b/fileattrs/python.attr
@@ -1,4 +1,4 @@
%__python_provides %{_rpmconfigdir}/pythondeps.sh --provides
%__python_requires %{_rpmconfigdir}/pythondeps.sh --requires
%__python_path ^((/usr/lib(64)?/python[[:digit:]]\\.[[:digit:]]/.*\\.(py[oc]?|so))|(%{_bindir}/python[[:digit:]]\\.[[:digit:]]))$
-%__python_magic ^python.*(executable|byte-compiled)$
+%__python_magic ^[Pp]ython.*(executable|byte-compiled)$

View File

@ -1,12 +0,0 @@
diff --git a/build/rpmfc.c b/build/rpmfc.c
index 60ab0e3..5b6ddb5 100644
--- a/build/rpmfc.c
+++ b/build/rpmfc.c
@@ -557,6 +557,7 @@ static const struct rpmfcTokens_s rpmfcTokens[] = {
{ "perl ", RPMFC_INCLUDE },
{ "Perl5 module source text", RPMFC_INCLUDE },
+ { "Perl script", RPMFC_INCLUDE },
{ "python ", RPMFC_INCLUDE },
{ "libtool library ", RPMFC_INCLUDE },

View File

@ -1,15 +1,3 @@
diff -uNr rpm-4.9.0-orig//installplatform rpm-4.9.0/installplatform
--- rpm-4.9.0-orig//installplatform 2010-12-03 06:11:57.000000000 -0600
+++ rpm-4.9.0/installplatform 2011-08-05 12:25:13.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_arm_ 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_ s_arm_armv7hl_ s_arm_armv7hnl_' ;;
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_' ;;
diff -uNr rpm-4.9.0-orig//macros.in rpm-4.9.0/macros.in diff -uNr rpm-4.9.0-orig//macros.in rpm-4.9.0/macros.in
--- rpm-4.9.0-orig//macros.in 2011-08-05 12:23:04.000000000 -0500 --- rpm-4.9.0-orig//macros.in 2011-08-05 12:23:04.000000000 -0500
+++ rpm-4.9.0/macros.in 2011-08-05 12:25:13.000000000 -0500 +++ rpm-4.9.0/macros.in 2011-08-05 12:25:13.000000000 -0500

View File

@ -69,7 +69,7 @@ index dc0e0fb..e0a5d1f 100644
+ free(dstring); + free(dstring);
} }
- -
- dstring = _free(dstring); - free(dstring);
#endif #endif
- rc = headerGet(h, tag, td, HEADERGET_ALLOC); - rc = headerGet(h, tag, td, HEADERGET_ALLOC);

View File

@ -0,0 +1,12 @@
diff -up rpm-4.9.90.git11486/scripts/find-lang.sh.no-man-dirs rpm-4.9.90.git11486/scripts/find-lang.sh
--- rpm-4.9.90.git11486/scripts/find-lang.sh.no-man-dirs 2012-03-07 11:31:10.000000000 +0200
+++ rpm-4.9.90.git11486/scripts/find-lang.sh 2012-03-07 15:11:57.465801075 +0200
@@ -181,7 +181,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

View File

@ -1,13 +0,0 @@
diff --git a/tools/debugedit.c b/tools/debugedit.c
index 89d0428..dc424d3 100644
--- a/tools/debugedit.c
+++ b/tools/debugedit.c
@@ -1586,7 +1586,7 @@ main (int argc, char *argv[])
if (strcmp (name, ".stab") == 0)
{
fprintf (stderr, "Stabs debuginfo not supported: %s\n", file);
- exit (1);
+ break;
}
if (strcmp (name, ".debug_info") == 0)
edit_dwarf2 (dso);

View File

@ -1,16 +0,0 @@
commit 87d9e3c4adac92ff544440dd1239a4ae4fe05bb4
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Nov 28 14:00:45 2011 +0200
Fix classification of ELF binaries with setuid/setgid bit, oops...
diff --git a/fileattrs/elf.attr b/fileattrs/elf.attr
index bc6ce83..595b33e 100644
--- a/fileattrs/elf.attr
+++ b/fileattrs/elf.attr
@@ -1,4 +1,4 @@
%__elf_provides %{_rpmconfigdir}/elfdeps --provides %{?__filter_GLIBC_PRIVATE:--filter-private}
%__elf_requires %{_rpmconfigdir}/elfdeps --requires %{?__filter_GLIBC_PRIVATE:--filter-private}
-%__elf_magic ^(sticky )?ELF (32|64)-bit.*$
+%__elf_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*$
%__elf_flags exeonly

View File

@ -1,59 +0,0 @@
commit cce686b2129e4e8dc27f1a640f7c4746f9ffb032
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Sun Oct 23 13:59:46 2011 +0300
Warn but don't fail the build on missing excluded files (RhBug:745629)
- If a file/directory is not to be packaged, there's not a whole lot
point making the build fail if its missing. In case exclude is
used to leave certain files to sub-packages, the sub-package file
lists will catch out missing files that are really missing as a
result of actual build failure or such (except perhaps for some
glob cases but missing files can go unnoticed in those cases anyway)
- backported from commit 084a00bf51a941ec85c094a436bda401fccf7d3a
diff --git a/build/files.c b/build/files.c
index e0747f8..a520410 100644
--- a/build/files.c
+++ b/build/files.c
@@ -1393,12 +1393,19 @@ static rpmRC addFile(FileList fl, const char * diskPath,
statp->st_mtime = now;
statp->st_ctime = now;
} else {
+ int rc = RPMRC_FAIL;
+ int lvl = RPMLOG_ERR;
const char *msg = fl->isDir ?
_("Directory not found: %s\n") :
_("File not found: %s\n");
- rpmlog(RPMLOG_ERR, msg, diskPath);
- fl->processingFailed = 1;
- return RPMRC_FAIL;
+ if (fl->currentFlags & RPMFILE_EXCLUDE) {
+ lvl = RPMLOG_WARNING;
+ rc = RPMRC_OK;
+ } else {
+ fl->processingFailed = 1;
+ }
+ rpmlog(lvl, msg, diskPath);
+ return rc;
}
}
}
@@ -1702,11 +1707,15 @@ static rpmRC processBinaryFile(Package pkg, FileList fl, const char * fileName)
}
argvFree(argv);
} else {
+ int lvl = RPMLOG_WARNING;
const char *msg = (fl->isDir) ?
_("Directory not found by glob: %s\n") :
_("File not found by glob: %s\n");
- rpmlog(RPMLOG_ERR, msg, diskPath);
- rc = RPMRC_FAIL;
+ if (!(fl->currentFlags & RPMFILE_EXCLUDE)) {
+ lvl = RPMLOG_ERR;
+ rc = RPMRC_FAIL;
+ }
+ rpmlog(lvl, msg, diskPath);
goto exit;
}
} else {

View File

@ -1,15 +0,0 @@
commit fb30c0aac8b3da8c75a8cb1578a719ce38db59eb
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Fri Nov 25 16:07:38 2011 +0200
Identify "font collection" (data etc) as fonts also (RhBug:757105)
diff --git a/fileattrs/font.attr b/fileattrs/font.attr
index 5c4c78f..8c19383 100644
--- a/fileattrs/font.attr
+++ b/fileattrs/font.attr
@@ -1,3 +1,3 @@
%__font_provides %{_rpmconfigdir}/fontconfig.prov
%__font_requires %{nil}
-%__font_magic ^.* [Ff]ont (program )?(text|data).*$
+%__font_magic ^.* [Ff]ont (program|collection )?(text|data).*$

View File

@ -1,19 +0,0 @@
diff --git a/scripts/find-lang.sh b/scripts/find-lang.sh
index c3dbdbe..c8f4612 100755
--- a/scripts/find-lang.sh
+++ b/scripts/find-lang.sh
@@ -107,6 +107,14 @@ s:%lang(C) ::
find $TOP_DIR -type d|sed '
s:'"$TOP_DIR"'::
+'"$NO_ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\(/'"$NAME"'\)$:%lang(\2) %doc \1\2\3/:
+'"$ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\(/[a-zA-Z0-9.\_\-]\+\)$:%lang(\2) %doc \1\2\3/:
+s:^\([^%].*\)::
+s:%lang(C) ::
+/^$/d' >> $MO_NAME
+
+find "$TOP_DIR" -type d|sed '
+s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'$\):%dir \1:
'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'/[a-zA-Z0-9.\_\-]/.\+\)::
'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) \1\2:

View File

@ -1,21 +0,0 @@
commit bf92b843fabd6c9881b19efb0cae1578d16e4f7b
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Feb 28 12:18:10 2012 +0200
Don't process spec %include in false branch of %if clauses (RhBug:782970)
(backported from commit 9defc922e971d98203890f1557ab951ec94f2a3f)
diff --git a/build/parseSpec.c b/build/parseSpec.c
index 01620bd..01c3c08 100644
--- a/build/parseSpec.c
+++ b/build/parseSpec.c
@@ -374,7 +374,8 @@ int readLine(rpmSpec spec, int strip)
spec->readStack = spec->readStack->next;
free(rl);
spec->line[0] = '\0';
- } else if (rstreqn("%include", s, sizeof("%include")-1)) {
+ } else if (spec->readStack->reading &&
+ rstreqn("%include", s, sizeof("%include")-1)) {
char *fileName, *endFileName, *p;
s += 8;

View File

@ -1,28 +0,0 @@
commit d8cd36058b528f56bd579204426143be1e1eac6d
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Wed Feb 8 10:56:09 2012 +0200
Switch back to former, much smaller BDB memory pool size (RhBug:752897)
- A larger cache is beneficial in various scenarios, but triggers
horrible worst-case performance under memory pressure (or so my
current theory goes, there might be other factors too). The
worst-case degration is orders of magnitude bigger than the best-case
improvements from the larger cache and for many use-cases doesn't
make a whole lot difference. We could/should tune the cache with
priorizing indexes and all, and perhaps dynamically select the
cache size but for now, the 1Mb cache size is known to "just work".
diff --git a/macros.in b/macros.in
index f835fec..6034721 100644
--- a/macros.in
+++ b/macros.in
@@ -535,7 +535,7 @@ print (t)\
#
# Misc BDB tuning options
-%__dbi_other mp_mmapsize=128Mb mp_size=64Mb
+%__dbi_other mp_mmapsize=128Mb mp_size=1Mb
%_dbi_config %{?__dbi_other}

View File

@ -1,66 +0,0 @@
commit 59807943af5c10c892b239f11b8fafb209254a4a
Author: David Malcolm <dmalcolm@redhat.com>
Date: Thu Dec 15 22:22:56 2011 -0500
fix memory leaks in invocations of PyObject_Call
- Various functions in the Python bindings have expressions of the form:
PyObject_Call(callable,
Py_BuildValue(fmtstring, ...), NULL);
This leaks memory for the case when Py_BuildValue succeeds (it returns a
new reference, which is never freed; PyObject_Call doesn't steal the
reference): the argument tuple and all of its components will not be
freed (until the process exits).
Signed-off-by: Ales Kozumplik <akozumpl@redhat.com>
diff --git a/python/header-py.c b/python/header-py.c
index 96cf200..cef457b 100644
--- a/python/header-py.c
+++ b/python/header-py.c
@@ -295,8 +295,7 @@ static PyObject * hdrWrite(hdrObject *s, PyObject *args, PyObject *kwds)
*/
static PyObject * hdr_fiFromHeader(PyObject * s, PyObject * args, PyObject * kwds)
{
- return PyObject_Call((PyObject *) &rpmfi_Type,
- Py_BuildValue("(O)", s), NULL);
+ return PyObject_CallFunctionObjArgs((PyObject *) &rpmfi_Type, s, NULL);
}
/* Backwards compatibility. Flags argument is just a dummy and discarded. */
@@ -309,14 +308,14 @@ static PyObject * hdr_dsFromHeader(PyObject * s, PyObject * args, PyObject * kwd
tagNumFromPyObject, &tag, &flags))
return NULL;
- return PyObject_Call((PyObject *) &rpmds_Type,
- Py_BuildValue("(Oi)", s, tag), NULL);
+ return PyObject_CallFunction((PyObject *) &rpmds_Type,
+ "(Oi)", s, tag);
}
static PyObject * hdr_dsOfHeader(PyObject * s)
{
- return PyObject_Call((PyObject *) &rpmds_Type,
- Py_BuildValue("(Oi)", s, RPMTAG_NEVR), NULL);
+ return PyObject_CallFunction((PyObject *) &rpmds_Type,
+ "(Oi)", s, RPMTAG_NEVR);
}
static long hdr_hash(PyObject * h)
diff --git a/python/rpmfd-py.c b/python/rpmfd-py.c
index 89a70cd..1150aa1 100644
--- a/python/rpmfd-py.c
+++ b/python/rpmfd-py.c
@@ -23,8 +23,8 @@ int rpmfdFromPyObject(PyObject *obj, rpmfdObject **fdop)
Py_INCREF(obj);
fdo = (rpmfdObject *) obj;
} else {
- fdo = (rpmfdObject *) PyObject_Call((PyObject *)&rpmfd_Type,
- Py_BuildValue("(O)", obj), NULL);
+ fdo = (rpmfdObject *) PyObject_CallFunctionObjArgs((PyObject *)&rpmfd_Type,
+ obj, NULL);
}
if (fdo == NULL) return 0;

View File

@ -1,98 +0,0 @@
diff --git a/lib/transaction.c b/lib/transaction.c
index 7adf60b..5acc08e 100644
--- a/lib/transaction.c
+++ b/lib/transaction.c
@@ -227,46 +227,12 @@ static void rpmtsUpdateDSI(const rpmts ts, dev_t dev, const char *dirName,
if (dsi->ineeded < dsi->oineeded) dsi->oineeded = dsi->ineeded;
}
-/* return DSI of the device the rpmdb lives on */
-static rpmDiskSpaceInfo rpmtsDbDSI(const rpmts ts) {
- const char *dbhome = rpmdbHome(rpmtsGetRdb(ts));
- struct stat sb;
- int rc;
-
- rc = stat(dbhome, &sb);
- if (rc) {
- return NULL;
- }
- return rpmtsGetDSI(ts, sb.st_dev, dbhome);
-}
-
-/* Update DSI for changing size of the rpmdb */
-static void rpmtsUpdateDSIrpmDBSize(const rpmte p,
- rpmDiskSpaceInfo dsi) {
- rpm_loff_t headerSize;
- int64_t bneeded;
-
- /* XXX somehow we can end up here with bsize 0 (RhBug:671056) */
- if (dsi == NULL || dsi->bsize == 0) return;
-
- headerSize = rpmteHeaderSize(p);
- bneeded = BLOCK_ROUND(headerSize, dsi->bsize);
- /* REMOVE doesn't neccessarily shrink the database */
- if (rpmteType(p) == TR_ADDED) {
- /* guessing that db grows 4 times more than the header size */
- dsi->bneeded += (bneeded * 4);
- }
-}
-
-
static void rpmtsCheckDSIProblems(const rpmts ts, const rpmte te)
{
rpmDiskSpaceInfo dsi = ts->dsi;
if (dsi == NULL || !dsi->bsize)
return;
- if (rpmfiFC(rpmteFI(te)) <= 0)
- return;
for (; dsi->bsize; dsi++) {
@@ -1294,11 +1260,12 @@ static int rpmtsPrepare(rpmts ts)
rpmfi fi;
int rc = 0;
uint64_t fileCount = countFiles(ts);
+ const char *dbhome = NULL;
+ struct stat dbstat;
fingerPrintCache fpc = fpCacheCreate(fileCount/2 + 10001);
rpmFpHash ht = rpmFpHashCreate(fileCount/2+1, fpHashFunction, fpEqual,
NULL, NULL);
- rpmDiskSpaceInfo dsi;
rpmlog(RPMLOG_DEBUG, "computing %" PRIu64 " file fingerprints\n", fileCount);
@@ -1326,7 +1293,10 @@ static int rpmtsPrepare(rpmts ts)
/* check against files in the rpmdb */
checkInstalledFiles(ts, fileCount, ht, fpc);
- dsi = rpmtsDbDSI(ts);
+ dbhome = rpmdbHome(rpmtsGetRdb(ts));
+ /* If we can't stat, ignore db growth. Probably not right but... */
+ if (dbhome && stat(dbhome, &dbstat))
+ dbhome = NULL;
pi = rpmtsiInit(ts);
while ((p = rpmtsiNext(pi, 0)) != NULL) {
@@ -1338,10 +1308,18 @@ static int rpmtsPrepare(rpmts ts)
needs on each partition for this package. */
handleOverlappedFiles(ts, ht, p, fi);
- rpmtsUpdateDSIrpmDBSize(p, dsi);
-
/* Check added package has sufficient space on each partition used. */
if (rpmteType(p) == TR_ADDED) {
+ /*
+ * Try to estimate space needed for rpmdb growth: guess that the
+ * db grows 4 times the header size (indexes and all).
+ */
+ if (dbhome) {
+ int64_t hsize = rpmteHeaderSize(p) * 4;
+ rpmtsUpdateDSI(ts, dbstat.st_dev, dbhome,
+ hsize, 0, 0, FA_CREATE);
+ }
+
rpmtsCheckDSIProblems(ts, p);
}
(void) rpmswExit(rpmtsOp(ts, RPMTS_OP_FINGERPRINT), 0);

View File

@ -1,43 +0,0 @@
commit 7d88d5e54a9c3fa2b7fb443921c8adb799051784
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Wed Feb 1 17:48:20 2012 +0200
Don't free up file info sets on transaction test-runs
- We'd like to get rid of the potentially huge amounts of memory
eaten by file info sets as early as possible, but when there's a
chance that we'll get called again with either added transacation
elements or on-disk changes, such as %pretrans changing something
underneath us, we need to (be able to) recalculate everything
from scratch. Only free up the memory when we know we dont need
it anymore, ie on an actual transaction run.
- This doesn't change anything for rpm itself, for yum and others
which do a separate test-transaction first, it means %pretrans
directory<->symlink replacement hacks and the like have a chance
of working again. I'm sure there's a bug filed on this somewhere but...
(cherry picked from commit cef18c94807af0935b7796c462aab8ed39f0f376)
diff --git a/lib/transaction.c b/lib/transaction.c
index 56ebc17..8d29ab9 100644
--- a/lib/transaction.c
+++ b/lib/transaction.c
@@ -1355,12 +1355,14 @@ static int rpmtsPrepare(rpmts ts)
if (rpmChrootOut())
rc = -1;
- /* File info sets, fp caches etc not needed beyond here, free 'em up. */
- pi = rpmtsiInit(ts);
- while ((p = rpmtsiNext(pi, 0)) != NULL) {
- rpmteSetFI(p, NULL);
+ /* On actual transaction, file info sets are not needed after this */
+ if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_TEST|RPMTRANS_FLAG_BUILD_PROBS))) {
+ pi = rpmtsiInit(ts);
+ while ((p = rpmtsiNext(pi, 0)) != NULL) {
+ rpmteSetFI(p, NULL);
+ }
+ rpmtsiFree(pi);
}
- pi = rpmtsiFree(pi);
exit:
ht = rpmFpHashFree(ht);

View File

@ -1,62 +0,0 @@
commit 4e207bfdfce434a6484babc14fe86aeadeec5329
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Feb 28 10:31:28 2012 +0200
Unbreak rpm -V output (RhBug:797964)
- Commit ac0ab016a5ec31e65eb0c0910a5a6f1199aae3e7 unintentionally
changed the order of the problems shown in verify strings due to
a dumb oversight (greetings to self, duh). In other words, this
fixes a verify output regression in rpm >= 4.9.x by restoring
the long-standing (and documented) order of the verify output chars.
- Also fix the testcase which unfortunately was only added after
the output-changing commit so it didn't catch the breakage either :-/
diff --git a/lib/verify.c b/lib/verify.c
index 35612fe..1edb27f 100644
--- a/lib/verify.c
+++ b/lib/verify.c
@@ -292,14 +292,14 @@ char * rpmVerifyString(uint32_t verifyResult, const char *pad)
{
char *fmt = NULL;
rasprintf(&fmt, "%s%s%s%s%s%s%s%s%s",
- _verifyfile(RPMVERIFY_FILEDIGEST, "5", pad),
_verify(RPMVERIFY_FILESIZE, "S", pad),
- _verifylink(RPMVERIFY_LINKTO, "L", pad),
- _verify(RPMVERIFY_MTIME, "T", pad),
+ _verify(RPMVERIFY_MODE, "M", pad),
+ _verifyfile(RPMVERIFY_FILEDIGEST, "5", pad),
_verify(RPMVERIFY_RDEV, "D", pad),
+ _verifylink(RPMVERIFY_LINKTO, "L", pad),
_verify(RPMVERIFY_USER, "U", pad),
_verify(RPMVERIFY_GROUP, "G", pad),
- _verify(RPMVERIFY_MODE, "M", pad),
+ _verify(RPMVERIFY_MTIME, "T", pad),
_verify(RPMVERIFY_CAPS, "P", pad));
return fmt;
diff --git a/tests/rpmverify.at b/tests/rpmverify.at
index dd23a4a..77d6bfe 100644
--- a/tests/rpmverify.at
+++ b/tests/rpmverify.at
@@ -79,7 +79,7 @@ dd if=/dev/zero of="${RPMTEST}"/usr/local/bin/hello \
runroot rpm -Va --nodeps --nouser --nogroup
],
[1],
-[5..T...M. /usr/local/bin/hello
+[.M5....T. /usr/local/bin/hello
missing d /usr/share/doc/hello-1.0/FAQ
],
[])
diff -up rpm-4.9.1.2/tests/rpmtests.verify-output rpm-4.9.1.2/tests/rpmtests
--- rpm-4.9.1.2/tests/rpmtests.verify-output 2012-03-07 12:20:31.889830559 +0200
+++ rpm-4.9.1.2/tests/rpmtests 2012-03-07 12:21:01.651753987 +0200
@@ -3619,7 +3619,7 @@ runroot rpm -Va --nodeps --nouser --nogr
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "5..T...M. /usr/local/bin/hello
+echo >>"$at_stdout"; $as_echo ".M5....T. /usr/local/bin/hello
missing d /usr/share/doc/hello-1.0/FAQ
" | \
$at_diff - "$at_stdout" || at_failed=:

View File

@ -11,8 +11,9 @@
%define rpmhome /usr/lib/rpm %define rpmhome /usr/lib/rpm
%define rpmver 4.9.1.2 %define rpmver 4.9.90
%define srcver %{rpmver}%{?snapver:-%{snapver}} %define snapver git11505
%define srcver %{rpmver}%{?snapver:.%{snapver}}
%define bdbname libdb %define bdbname libdb
%define bdbver 5.2.36 %define bdbver 5.2.36
@ -21,10 +22,10 @@
Summary: The RPM package management system Summary: The RPM package management system
Name: rpm Name: rpm
Version: %{rpmver} Version: %{rpmver}
Release: %{?snapver:0.%{snapver}.}14%{?dist} Release: %{?snapver:0.%{snapver}.}1%{?dist}
Group: System Environment/Base Group: System Environment/Base
Url: http://www.rpm.org/ Url: http://www.rpm.org/
Source0: http://rpm.org/releases/rpm-4.9.x/%{name}-%{srcver}.tar.bz2 Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
%if %{with int_bdb} %if %{with int_bdb}
Source1: db-%{bdbver}.tar.gz Source1: db-%{bdbver}.tar.gz
%endif %endif
@ -33,42 +34,24 @@ Source10: libsymlink.attr
Patch1: rpm-4.5.90-pkgconfig-path.patch Patch1: rpm-4.5.90-pkgconfig-path.patch
# Fedora specspo is setup differently than what rpm expects, considering # Fedora specspo is setup differently than what rpm expects, considering
# this as Fedora-specific patch for now # this as Fedora-specific patch for now
Patch2: rpm-4.8.90-fedora-specspo.patch Patch2: rpm-4.9.90-fedora-specspo.patch
# In current Fedora, man-pages pkg owns all the localized man directories # In current Fedora, man-pages pkg owns all the localized man directories
Patch3: rpm-4.8.0-no-man-dirs.patch Patch3: rpm-4.9.90-no-man-dirs.patch
# gnupg2 comes installed by default, avoid need to drag in gnupg too # gnupg2 comes installed by default, avoid need to drag in gnupg too
Patch4: rpm-4.8.1-use-gpg2.patch Patch4: rpm-4.8.1-use-gpg2.patch
Patch5: rpm-4.9.0-armhfp.patch Patch5: rpm-4.9.90-armhfp.patch
#conditionally applied patch for arm hardware floating point #conditionally applied patch for arm hardware floating point
Patch6: rpm-4.9.0-armhfp-logic.patch Patch6: rpm-4.9.0-armhfp-logic.patch
# Patches already in upstream # Patches already in upstream
Patch100: rpm-4.9.x-fontattr.patch
Patch101: rpm-4.9.x-elfattr.patch
Patch102: rpm-4.9.1.2-perl-python-attr.patch
Patch103: rpm-4.9.x-mpsize.patch
Patch104: rpm-4.9.x-rpmdb-dsi.patch
Patch105: rpm-4.9.x-python-memleaks.patch
Patch106: rpm-4.9.x-verify-output.patch
Patch107: rpm-4.9.x-include-cond.patch
Patch108: rpm-4.9.x-exclude-warn.patch
Patch109: rpm-4.9.x-tstest-fileinfo.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
# To be upstreamed after rawhide-testdrive (#641377)
Patch303: rpm-4.9.0-debuginfo-allnames.patch
# Probably to be upstreamed in slightly different form # Probably to be upstreamed in slightly different form
Patch304: rpm-4.9.1.1-ld-flags.patch Patch304: rpm-4.9.1.1-ld-flags.patch
# Based on patch from OpenSUSE, without the C-lang related enhancements
Patch305: rpm-4.9.x-gnome-help.patch
# Just warn on STABS instead of failing for now
Patch306: rpm-4.9.x-debugedit-stabs-warn.patch
# Temporary Patch to provide support for updates # Temporary Patch to provide support for updates
Patch400: rpm-4.9.1.2-rpmlib-filesystem-check.patch Patch400: rpm-4.9.1.2-rpmlib-filesystem-check.patch
# Recognize Perl script as Perl code
Patch401: rpm-4.9.1.2-perl-script.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
@ -230,26 +213,11 @@ packages on a system.
%patch3 -p1 -b .no-man-dirs %patch3 -p1 -b .no-man-dirs
%patch4 -p1 -b .use-gpg2 %patch4 -p1 -b .use-gpg2
%patch100 -p1 -b .fontattr
%patch101 -p1 -b .elfattr
%patch102 -p1 -b .perl-python-attr
%patch103 -p1 -b .mpsize
%patch104 -p1 -b .rpmdb-dsi
%patch105 -p1 -b .python-memleaks
%patch106 -p1 -b .verify-output
%patch107 -p1 -b .include-cond
%patch108 -p1 -b .exclude-warn
%patch109 -p1 -b .tstest-fileinfo
%patch301 -p1 -b .niagara %patch301 -p1 -b .niagara
%patch302 -p1 -b .geode %patch302 -p1 -b .geode
%patch303 -p1 -b .debuginfo-allnames
%patch304 -p1 -b .ldflags %patch304 -p1 -b .ldflags
%patch305 -p1 -b .gnome-help
%patch306 -p1 -b .debugedit-stabs-warn
%patch400 -p1 -b .rpmlib-filesystem-check %patch400 -p1 -b .rpmlib-filesystem-check
%patch401 -p1 -b .perl-script
%patch5 -p1 -b .armhfp %patch5 -p1 -b .armhfp
# this patch cant be applied on softfp builds # this patch cant be applied on softfp builds
@ -278,6 +246,7 @@ export CPPFLAGS CFLAGS LDFLAGS
--localstatedir=%{_var} \ --localstatedir=%{_var} \
--sharedstatedir=%{_var}/lib \ --sharedstatedir=%{_var}/lib \
--libdir=%{_libdir} \ --libdir=%{_libdir} \
--with-vendor=redhat \
%{!?with_int_bdb: --with-external-db} \ %{!?with_int_bdb: --with-external-db} \
%{!?with_plugins: --disable-plugins} \ %{!?with_plugins: --disable-plugins} \
--with-lua \ --with-lua \
@ -469,6 +438,10 @@ exit 0
%doc COPYING doc/librpm/html/* %doc COPYING doc/librpm/html/*
%changelog %changelog
* Tue Mar 20 2012 Panu Matilainen <pmatilai@redhat.com> - 4.9.90-0.git11505.1
- update to 4.10.0 alpha (http://rpm.org/wiki/Releases/4.10.0)
- drop/adjust patches as necessary
* Wed Mar 07 2012 Panu Matilainen <pmatilai@redhat.com> - 4.9.1.2-14 * Wed Mar 07 2012 Panu Matilainen <pmatilai@redhat.com> - 4.9.1.2-14
- fix backport thinko in the exclude patch - fix backport thinko in the exclude patch

View File

@ -1 +1 @@
85cc5b7adb5806b5abf5b538b088dbdc rpm-4.9.1.2.tar.bz2 9206167147441cda84a56c338de9ebaa rpm-4.9.90.git11505.tar.bz2