- update to 4.11.2

- drop/adjust patches as appropriate
This commit is contained in:
Panu Matilainen 2014-02-13 10:26:53 +02:00
parent 9c611011c4
commit 3c5d396fc8
9 changed files with 18 additions and 220 deletions

1
.gitignore vendored
View File

@ -10,3 +10,4 @@
/rpm-4.11.1-rc1.tar.bz2
/rpm-4.11.1-rc2.tar.bz2
/rpm-4.11.1.tar.bz2
/rpm-4.11.2.tar.bz2

View File

@ -1,19 +0,0 @@
commit 65eec62cb7796dad6fbf1d5436251e176449f522
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Thu Aug 29 16:32:32 2013 +0300
Fix double-free on %caps() wildcard %files entry (RhBug:956190)
diff --git a/build/files.c b/build/files.c
index 20f452f..eed5696 100644
--- a/build/files.c
+++ b/build/files.c
@@ -1448,7 +1448,7 @@ static rpmRC addFile(FileList fl, const char * diskPath,
}
if (fl->cur.caps) {
- flp->caps = fl->cur.caps;
+ flp->caps = xstrdup(fl->cur.caps);
} else {
flp->caps = xstrdup("");
}

View File

@ -1,23 +0,0 @@
commit 5f3598a700e8e028f9140682262869ca319597ee
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Fri Sep 6 16:31:25 2013 +0300
Fix segfault executing a -p <lua> scriptlet without a body (RhBug:1004062)
- There are any number of places where this could be fixed, but
to keep the behavior similar to eg /bin/sh scriptlet without a body,
just turn a non-existent script into an empty string.
diff --git a/rpmio/rpmlua.c b/rpmio/rpmlua.c
index 0576318..921cc37 100644
--- a/rpmio/rpmlua.c
+++ b/rpmio/rpmlua.c
@@ -526,6 +526,8 @@ int rpmluaRunScript(rpmlua _lua, const char *script, const char *name)
int ret = 0;
if (name == NULL)
name = "<lua>";
+ if (script == NULL)
+ script = "";
if (luaL_loadbuffer(L, script, strlen(script), name) != 0) {
rpmlog(RPMLOG_ERR, _("invalid syntax in lua script: %s\n"),
lua_tostring(L, -1));

View File

@ -1,27 +0,0 @@
commit 65c7cc17664358051f0358de272e616dd88ab624
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Aug 27 15:15:40 2013 +0300
Relax the filename triplet sanity check a bit (RhBug:1001553)
- At least unowned directories can cause orphans to be left around
in RPMTAG_DIRNAMES, in which case its possible for number of
dirnames to be larger than the number of basenames. This is
arguably a bug in the relocation code but doesn't seem worth
the trouble... so just relax the check to simply permit non-empty
dirnames array, the index bound checking is far more important.
diff --git a/lib/rpmfi.c b/lib/rpmfi.c
index 30663d0..00506ce 100644
--- a/lib/rpmfi.c
+++ b/lib/rpmfi.c
@@ -1128,7 +1128,8 @@ static int indexSane(rpmtd xd, rpmtd yd, rpmtd zd)
uint32_t zc = rpmtdCount(zd);
/* check that the amount of data in each is sane */
- if (xc > 0 && yc > 0 && yc <= xc && zc == xc) {
+ /* normally yc <= xc but larger values are not fatal (RhBug:1001553) */
+ if (xc > 0 && yc > 0 && zc == xc) {
uint32_t * i;
/* ...and that the indexes are within bounds */
while ((i = rpmtdNextUint32(zd))) {

View File

@ -1,55 +0,0 @@
commit 1ac9e84d9a4a04df7c8f659a8df676fc4f8544f0
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Fri Jul 5 10:27:18 2013 +0300
Ensure relocatable packages always get install-prefix(es) set (RhBug:979443)
- Scriptlets from relocatable packages should always run with
$RPM_INSTALL_PREFIX* defined, whether actually being relocated or not.
- Fixes regression introduced by the optimization in commit
5d3018c4ed476b1b7ac18e2573af517f872cb303. We always need to call
addPrefixes() but return early from rpmRelocateFileList() when
no relocations are taking place, fixing the performance regression
introduced all the way back in cb8241dda783f7e8c143b08fecf57fe89a39c3a6
which is what 5d3018c4ed476b1b7ac18e2573af517f872cb303 was trying
to fix. Pooh :)
(cherry picked from commit 88d24b14a8e0e33e768cb74a3487acf0925b012a)
diff --git a/lib/rpmfi.c b/lib/rpmfi.c
index 0bfb5dd..185deae 100644
--- a/lib/rpmfi.c
+++ b/lib/rpmfi.c
@@ -793,7 +793,8 @@ static int addPrefixes(Header h, rpmRelocation *relocations, int numRelocations)
headerPutStringArray(h, RPMTAG_INSTPREFIXES, actualRelocations, numActual);
}
free(actualRelocations);
- return numActual;
+ /* When any relocations are present there'll be more work to do */
+ return 1;
}
static void saveRelocs(Header h, rpmtd bnames, rpmtd dnames, rpmtd dindexes)
@@ -835,7 +836,8 @@ void rpmRelocateFileList(rpmRelocation *relocations, int numRelocations,
int i, j;
struct rpmtd_s bnames, dnames, dindexes, fmodes;
- addPrefixes(h, relocations, numRelocations);
+ if (!addPrefixes(h, relocations, numRelocations))
+ return;
if (!_printed) {
_printed = 1;
diff --git a/lib/rpmte.c b/lib/rpmte.c
index 6afd69e..87fb391 100644
--- a/lib/rpmte.c
+++ b/lib/rpmte.c
@@ -98,7 +98,7 @@ static rpmfi getFI(rpmte p, Header h)
(RPMFI_NOHEADER | RPMFI_FLAGS_ERASE);
/* relocate stuff in header if necessary */
- if (rpmteType(p) == TR_ADDED && rpmfsFC(p->fs) > 0 && p->nrelocs) {
+ if (rpmteType(p) == TR_ADDED && rpmfsFC(p->fs) > 0) {
if (!headerIsSource(h) && !headerIsEntry(h, RPMTAG_ORIGBASENAMES)) {
rpmRelocateFileList(p->relocs, p->nrelocs, p->fs, h);
}

View File

@ -11,84 +11,6 @@
endif
endif
--- rpm-4.11.1-rc1-orig/Makefile.in 2013-06-10 08:38:51.000000000 +0200
+++ rpm-4.11.1-rc1/Makefile.in 2013-06-24 18:34:06.342894002 +0200
@@ -74,7 +74,8 @@ bin_PROGRAMS = rpm2cpio$(EXEEXT) rpmbuil
rpmgraph$(EXEEXT)
rpmlibexec_PROGRAMS = $(am__EXEEXT_1) rpmdeps$(EXEEXT)
@LIBDWARF_TRUE@@LIBELF_TRUE@am__append_6 = scripts/find-debuginfo.sh
-@LIBDWARF_TRUE@@LIBELF_TRUE@am__append_7 = debugedit elfdeps
+@LIBDWARF_TRUE@@LIBELF_TRUE@am__append_7 = debugedit elfdeps \
+@LIBDWARF_TRUE@@LIBELF_TRUE@ sepdebugcrcfix
@DOXYGEN_TRUE@@HACKINGDOCS_TRUE@am__append_8 = doc/hacking/html/index.html
@DOXYGEN_TRUE@am__append_9 = doc/librpm/html/index.html
@WITH_INTERNAL_DB_TRUE@am__append_10 = db.h
@@ -110,7 +111,8 @@ am__installdirs = "$(DESTDIR)$(bindir)"
"$(DESTDIR)$(rpmconfigdir)" "$(DESTDIR)$(rpmvardir)" \
"$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)"
@LIBDWARF_TRUE@@LIBELF_TRUE@am__EXEEXT_1 = debugedit$(EXEEXT) \
-@LIBDWARF_TRUE@@LIBELF_TRUE@ elfdeps$(EXEEXT)
+@LIBDWARF_TRUE@@LIBELF_TRUE@ elfdeps$(EXEEXT) \
+@LIBDWARF_TRUE@@LIBELF_TRUE@ sepdebugcrcfix$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS) $(rpmbin_PROGRAMS) $(rpmlibexec_PROGRAMS)
am__debugedit_SOURCES_DIST = tools/debugedit.c tools/hashtab.c \
tools/hashtab.h
@@ -157,6 +159,11 @@ am_rpmspec_OBJECTS = rpmspec-rpmspec.$(O
rpmspec_OBJECTS = $(am_rpmspec_OBJECTS)
rpmspec_DEPENDENCIES = libcliutils.la build/librpmbuild.la \
lib/librpm.la rpmio/librpmio.la
+am__sepdebugcrcfix_SOURCES_DIST = tools/sepdebugcrcfix.c
+@LIBDWARF_TRUE@@LIBELF_TRUE@am_sepdebugcrcfix_OBJECTS = \
+@LIBDWARF_TRUE@@LIBELF_TRUE@ tools/sepdebugcrcfix.$(OBJEXT)
+sepdebugcrcfix_OBJECTS = $(am_sepdebugcrcfix_OBJECTS)
+sepdebugcrcfix_DEPENDENCIES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -223,12 +230,12 @@ SOURCES = $(libcliutils_la_SOURCES) $(de
$(elfdeps_SOURCES) $(rpm_SOURCES) $(rpm2cpio_SOURCES) \
$(rpmbuild_SOURCES) $(rpmdb_SOURCES) $(rpmdeps_SOURCES) \
$(rpmgraph_SOURCES) $(rpmkeys_SOURCES) $(rpmsign_SOURCES) \
- $(rpmspec_SOURCES)
+ $(rpmspec_SOURCES) $(sepdebugcrcfix_SOURCES)
DIST_SOURCES = $(libcliutils_la_SOURCES) $(am__debugedit_SOURCES_DIST) \
$(am__elfdeps_SOURCES_DIST) $(rpm_SOURCES) $(rpm2cpio_SOURCES) \
$(rpmbuild_SOURCES) $(rpmdb_SOURCES) $(rpmdeps_SOURCES) \
$(rpmgraph_SOURCES) $(rpmkeys_SOURCES) $(rpmsign_SOURCES) \
- $(rpmspec_SOURCES)
+ $(rpmspec_SOURCES) $(am__sepdebugcrcfix_SOURCES_DIST)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
@@ -636,6 +643,8 @@ rpm2cpio_LDADD = lib/librpm.la rpmio/lib
@LIBDWARF_TRUE@@LIBELF_TRUE@elfdeps_LDADD = rpmio/librpmio.la \
@LIBDWARF_TRUE@@LIBELF_TRUE@ @WITH_LIBELF_LIB@ @WITH_POPT_LIB@ \
@LIBDWARF_TRUE@@LIBELF_TRUE@ $(am__empty)
+@LIBDWARF_TRUE@@LIBELF_TRUE@sepdebugcrcfix_SOURCES = tools/sepdebugcrcfix.c
+@LIBDWARF_TRUE@@LIBELF_TRUE@sepdebugcrcfix_LDADD = @WITH_LIBELF_LIB@
rpmdeps_SOURCES = tools/rpmdeps.c
rpmdeps_LDADD = lib/librpm.la rpmio/librpmio.la build/librpmbuild.la @WITH_POPT_LIB@
rpmgraph_SOURCES = tools/rpmgraph.c
@@ -903,6 +912,11 @@ rpmsign$(EXEEXT): $(rpmsign_OBJECTS) $(r
rpmspec$(EXEEXT): $(rpmspec_OBJECTS) $(rpmspec_DEPENDENCIES) $(EXTRA_rpmspec_DEPENDENCIES)
@rm -f rpmspec$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(rpmspec_OBJECTS) $(rpmspec_LDADD) $(LIBS)
+tools/sepdebugcrcfix.$(OBJEXT): tools/$(am__dirstamp) \
+ tools/$(DEPDIR)/$(am__dirstamp)
+sepdebugcrcfix$(EXEEXT): $(sepdebugcrcfix_OBJECTS) $(sepdebugcrcfix_DEPENDENCIES) $(EXTRA_sepdebugcrcfix_DEPENDENCIES)
+ @rm -f sepdebugcrcfix$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sepdebugcrcfix_OBJECTS) $(sepdebugcrcfix_LDADD) $(LIBS)
install-dist_binSCRIPTS: $(dist_bin_SCRIPTS)
@$(NORMAL_INSTALL)
@list='$(dist_bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
@@ -994,6 +1008,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/hashtab.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/rpmdeps.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/rpmgraph.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/sepdebugcrcfix.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
--- rpm-4.11.1-rc1-orig/scripts/find-debuginfo.sh 2013-06-24 17:20:55.407538301 +0200
+++ rpm-4.11.1-rc1/scripts/find-debuginfo.sh 2013-06-24 18:34:41.270897302 +0200
@@ -114,10 +114,12 @@ done

View File

@ -1,7 +1,7 @@
diff -up rpm-4.9.1.3/lib/rpmrc.c.armhfp-logic rpm-4.9.1.3/lib/rpmrc.c
--- rpm-4.9.1.3/lib/rpmrc.c.armhfp-logic 2012-04-19 17:11:32.728750591 +0200
+++ rpm-4.9.1.3/lib/rpmrc.c 2012-04-19 17:11:32.754738455 +0200
@@ -743,6 +743,56 @@ static int is_sun4v()
diff -up rpm-4.11.1/lib/rpmrc.c.armhfp-logic rpm-4.11.1/lib/rpmrc.c
--- rpm-4.11.1/lib/rpmrc.c.armhfp-logic 2013-10-01 14:59:12.841041726 +0300
+++ rpm-4.11.1/lib/rpmrc.c 2013-10-01 14:59:12.856041684 +0300
@@ -733,6 +733,56 @@ static int is_sun4v()
}
#endif
@ -58,8 +58,8 @@ diff -up rpm-4.9.1.3/lib/rpmrc.c.armhfp-logic rpm-4.9.1.3/lib/rpmrc.c
# if defined(__linux__) && defined(__i386__)
#include <setjmp.h>
@@ -1220,6 +1270,22 @@ static void defaultMachine(const char **
}
@@ -1136,6 +1186,22 @@ static void defaultMachine(const char **
# endif /* __ORDER_BIG_ENDIAN__ */
# endif /* ppc64*-linux */
+# if defined(__linux__) && defined(__arm__)

View File

@ -11,7 +11,7 @@
%define rpmhome /usr/lib/rpm
%define rpmver 4.11.1
%define rpmver 4.11.2
%define srcver %{rpmver}%{?snapver:-%{snapver}}
%define bdbname libdb
@ -21,7 +21,7 @@
Summary: The RPM package management system
Name: rpm
Version: %{rpmver}
Release: %{?snapver:0.%{snapver}.}7%{?dist}
Release: %{?snapver:0.%{snapver}.}1%{?dist}
Group: System Environment/Base
Url: http://www.rpm.org/
Source0: http://rpm.org/releases/rpm-4.11.x/%{name}-%{srcver}.tar.bz2
@ -46,13 +46,9 @@ Patch5: rpm-4.9.90-armhfp.patch
Patch6: rpm-4.9.0-armhfp-logic.patch
# Patches already in upstream
# Filter soname dependencies by name
# Filter soname dependencies by name (these are upstream but not in 4.11.x)
Patch100: rpm-4.11.x-filter-soname-deps.patch
Patch101: rpm-4.11.1-instprefix.patch
Patch102: rpm-4.11.x-do-not-filter-ld64.patch
Patch103: rpm-4.11.1-file-triplet-check.patch
Patch104: rpm-4.11.1-caps-double-free.patch
Patch105: rpm-4.11.1-empty-lua-script.patch
# These are not yet upstream
Patch301: rpm-4.6.0-niagara.patch
@ -118,6 +114,8 @@ BuildRequires: xz-devel%{_isa} >= 4.999.8
%endif
# Only required by sepdebugcrcfix patch
BuildRequires: binutils-devel
# Couple of patches change makefiles so, require for now...
BuildRequires: automake libtool
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -252,11 +250,7 @@ packages on a system.
%patch4 -p1 -b .use-gpg2
%patch100 -p1 -b .filter-soname-deps
%patch101 -p1 -b .instprefix
%patch102 -p1 -b .dont-filter-ld64
%patch103 -p1 -b .file-triplet-check
%patch104 -p1 -b .caps-double-free
%patch105 -p1 -b .empty-lua-script
%patch301 -p1 -b .niagara
%patch302 -p1 -b .geode
@ -287,6 +281,8 @@ CPPFLAGS="$CPPFLAGS `pkg-config --cflags nss`"
CFLAGS="$RPM_OPT_FLAGS"
export CPPFLAGS CFLAGS LDFLAGS
autoreconf -i -f
# Using configure macro has some unwanted side-effects on rpm platform
# setup, use the old-fashioned way for now only defining minimal paths.
./configure \
@ -513,6 +509,9 @@ exit 0
%doc COPYING doc/librpm/html/*
%changelog
* Thu Feb 13 2014 Panu Matilainen <pmatilai@redhat.com> - 4.11.2-1
- update to 4.11.2 (http://rpm.org/wiki/Releases/4.11.2)
* Mon Sep 09 2013 Matilainen <pmatilai@redhat.com> - 4.11.1-7
- fix build-time double-free on file capability processing (#956190)
- fix relocation related regression on file sanity check (#1001553)

View File

@ -1 +1 @@
e53c59768676b21b0924d251b21df7c6 rpm-4.11.1.tar.bz2
876ac9948a88367054f8ddb5c0e87173 rpm-4.11.2.tar.bz2