Merge branch 'f15'
This commit is contained in:
commit
d123f007fc
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@ rpm-4.8.1.tar.bz2
|
||||
/rpm-4.9.0-beta1.tar.bz2
|
||||
/rpm-4.9.0-rc1.tar.bz2
|
||||
/rpm-4.9.0.tar.bz2
|
||||
/rpm-4.9.1.tar.bz2
|
||||
|
@ -1,130 +0,0 @@
|
||||
--- rpm-4.9.0/tools/debugedit.c 2010-12-03 13:11:57.000000000 +0100
|
||||
+++ rpm-4.9.0/tools/debugedit.c.jj 2011-05-25 18:49:53.151936963 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-/* Copyright (C) 2001, 2002, 2003, 2005, 2007, 2009, 2010 Red Hat, Inc.
|
||||
+/* Copyright (C) 2001, 2002, 2003, 2005, 2007, 2009, 2010, 2011 Red Hat, Inc.
|
||||
Written by Alexander Larsson <alexl@redhat.com>, 2002
|
||||
Based on code by Jakub Jelinek <jakub@redhat.com>, 2001.
|
||||
|
||||
@@ -44,6 +44,10 @@
|
||||
#include "tools/hashtab.h"
|
||||
|
||||
#define DW_TAG_partial_unit 0x3c
|
||||
+#define DW_FORM_sec_offset 0x17
|
||||
+#define DW_FORM_exprloc 0x18
|
||||
+#define DW_FORM_flag_present 0x19
|
||||
+#define DW_FORM_ref_sig8 0x20
|
||||
|
||||
char *base_dir = NULL;
|
||||
char *dest_dir = NULL;
|
||||
@@ -220,6 +224,7 @@ static struct
|
||||
#define DEBUG_STR 8
|
||||
#define DEBUG_FRAME 9
|
||||
#define DEBUG_RANGES 10
|
||||
+#define DEBUG_TYPES 11
|
||||
{ ".debug_info", NULL, NULL, 0, 0, 0 },
|
||||
{ ".debug_abbrev", NULL, NULL, 0, 0, 0 },
|
||||
{ ".debug_line", NULL, NULL, 0, 0, 0 },
|
||||
@@ -231,6 +236,7 @@ static struct
|
||||
{ ".debug_str", NULL, NULL, 0, 0, 0 },
|
||||
{ ".debug_frame", NULL, NULL, 0, 0, 0 },
|
||||
{ ".debug_ranges", NULL, NULL, 0, 0, 0 },
|
||||
+ { ".debug_types", NULL, NULL, 0, 0, 0 },
|
||||
{ NULL, NULL, NULL, 0, 0, 0 }
|
||||
};
|
||||
|
||||
@@ -323,7 +329,8 @@ no_memory:
|
||||
goto no_memory;
|
||||
}
|
||||
form = read_uleb128 (ptr);
|
||||
- if (form == 2 || form > DW_FORM_indirect)
|
||||
+ if (form == 2
|
||||
+ || (form > DW_FORM_flag_present && form != DW_FORM_ref_sig8))
|
||||
{
|
||||
error (0, 0, "%s: Unknown DWARF DW_FORM_%d", dso->filename, form);
|
||||
htab_delete (h);
|
||||
@@ -352,7 +359,6 @@ static char *
|
||||
canonicalize_path (const char *s, char *d)
|
||||
{
|
||||
char *rv = d;
|
||||
- const char *sroot;
|
||||
char *droot;
|
||||
|
||||
if (IS_DIR_SEPARATOR (*s))
|
||||
@@ -368,7 +374,6 @@ canonicalize_path (const char *s, char *
|
||||
s++;
|
||||
}
|
||||
droot = d;
|
||||
- sroot = s;
|
||||
|
||||
while (*s)
|
||||
{
|
||||
@@ -495,7 +500,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
|
||||
}
|
||||
|
||||
value = read_16 (ptr);
|
||||
- if (value != 2 && value != 3)
|
||||
+ if (value != 2 && value != 3 && value != 4)
|
||||
{
|
||||
error (0, 0, "%s: DWARF version %d unhandled", dso->filename,
|
||||
value);
|
||||
@@ -511,8 +516,8 @@ edit_dwarf2_line (DSO *dso, uint32_t off
|
||||
return 1;
|
||||
}
|
||||
|
||||
- opcode_base = ptr[4];
|
||||
- ptr = dir = ptr + 4 + opcode_base;
|
||||
+ opcode_base = ptr[4 + (value >= 4)];
|
||||
+ ptr = dir = ptr + 4 + (value >= 4) + opcode_base;
|
||||
|
||||
/* dir table: */
|
||||
value = 1;
|
||||
@@ -739,7 +744,8 @@ edit_attributes (DSO *dso, unsigned char
|
||||
{
|
||||
if (t->attr[i].attr == DW_AT_stmt_list)
|
||||
{
|
||||
- if (form == DW_FORM_data4)
|
||||
+ if (form == DW_FORM_data4
|
||||
+ || form == DW_FORM_sec_offset)
|
||||
{
|
||||
list_offs = do_read_32_relocated (ptr);
|
||||
found_list_offs = 1;
|
||||
@@ -841,6 +847,8 @@ edit_attributes (DSO *dso, unsigned char
|
||||
else
|
||||
ptr += 4;
|
||||
break;
|
||||
+ case DW_FORM_flag_present:
|
||||
+ break;
|
||||
case DW_FORM_addr:
|
||||
ptr += ptr_size;
|
||||
break;
|
||||
@@ -855,10 +863,12 @@ edit_attributes (DSO *dso, unsigned char
|
||||
break;
|
||||
case DW_FORM_ref4:
|
||||
case DW_FORM_data4:
|
||||
+ case DW_FORM_sec_offset:
|
||||
ptr += 4;
|
||||
break;
|
||||
case DW_FORM_ref8:
|
||||
case DW_FORM_data8:
|
||||
+ case DW_FORM_ref_sig8:
|
||||
ptr += 8;
|
||||
break;
|
||||
case DW_FORM_sdata:
|
||||
@@ -887,6 +897,7 @@ edit_attributes (DSO *dso, unsigned char
|
||||
form = DW_FORM_block1;
|
||||
break;
|
||||
case DW_FORM_block:
|
||||
+ case DW_FORM_exprloc:
|
||||
len = read_uleb128 (ptr);
|
||||
form = DW_FORM_block1;
|
||||
assert (len < UINT_MAX);
|
||||
@@ -1190,7 +1201,7 @@ edit_dwarf2 (DSO *dso)
|
||||
}
|
||||
|
||||
cu_version = read_16 (ptr);
|
||||
- if (cu_version != 2 && cu_version != 3)
|
||||
+ if (cu_version != 2 && cu_version != 3 && cu_version != 4)
|
||||
{
|
||||
error (0, 0, "%s: DWARF version %d unhandled", dso->filename,
|
||||
cu_version);
|
@ -1,21 +0,0 @@
|
||||
commit 78a6cf6fbf047c5bf0066df21792e4c9925d04a0
|
||||
Author: Michael Schroeder <mls@suse.de>
|
||||
Date: Tue May 24 08:51:56 2011 +0300
|
||||
|
||||
Do not die on empty changelog section
|
||||
|
||||
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
|
||||
|
||||
diff --git a/build/parseChangelog.c b/build/parseChangelog.c
|
||||
index 36a19c3..d4681cb 100644
|
||||
--- a/build/parseChangelog.c
|
||||
+++ b/build/parseChangelog.c
|
||||
@@ -233,7 +233,7 @@ int parseChangelog(rpmSpec spec)
|
||||
}
|
||||
}
|
||||
|
||||
- if (addChangelog(spec->packages->header, sb)) {
|
||||
+ if (sb && addChangelog(spec->packages->header, sb)) {
|
||||
goto exit;
|
||||
}
|
||||
res = nextPart;
|
@ -1,21 +0,0 @@
|
||||
commit 39800e901e2258685d1fc34e1e9a7b8a058e11ce
|
||||
Author: Michael Schroeder <mls@suse.de>
|
||||
Date: Mon May 16 11:57:44 2011 +0300
|
||||
|
||||
Fix segfault on build with empty %prep section
|
||||
|
||||
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
|
||||
|
||||
diff --git a/build/parsePrep.c b/build/parsePrep.c
|
||||
index c0508ec..9e61dde 100644
|
||||
--- a/build/parsePrep.c
|
||||
+++ b/build/parsePrep.c
|
||||
@@ -504,7 +504,7 @@ int parsePrep(rpmSpec spec)
|
||||
}
|
||||
}
|
||||
|
||||
- for (ARGV_const_t lines = saveLines; *lines; lines++) {
|
||||
+ for (ARGV_const_t lines = saveLines; lines && *lines; lines++) {
|
||||
res = 0;
|
||||
if (rstreqn(*lines, "%setup", sizeof("%setup")-1)) {
|
||||
res = doSetupMacro(spec, *lines);
|
@ -1,39 +0,0 @@
|
||||
commit db4905f51eb80b55c408e3a659bab6b4ec5d9e3b
|
||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Fri Jun 10 12:08:45 2011 +0300
|
||||
|
||||
Adjust script detection rules to work with file >= 5.07 too (RhBug:712251)
|
||||
- Somewhere between file 5.05 and 5.07 it started adding encoding
|
||||
to script descriptions, eg "<mumble> script text executable" became
|
||||
"<mumble> script, <encoding> text executable" breaking what had
|
||||
been working for 10+ years in the case of old find-requires.
|
||||
- Permit either comma or space after "script", this works for both
|
||||
old and new file.
|
||||
|
||||
diff --git a/autodeps/linux.req b/autodeps/linux.req
|
||||
index cf60bd9..b9a8f99 100644
|
||||
--- a/autodeps/linux.req
|
||||
+++ b/autodeps/linux.req
|
||||
@@ -20,10 +20,11 @@ fi
|
||||
# --- Grab the file manifest and classify files.
|
||||
#filelist=`sed "s/['\"]/\\\&/g"`
|
||||
filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
|
||||
-exelist=`echo $filelist | xargs -r file | grep -Ev ":.* (commands|script) " | \
|
||||
+exelist=`echo $filelist | xargs -r file | \
|
||||
+ grep -Ev ":.* (commands|script)[, ]" | \
|
||||
grep ":.*executable" | cut -d: -f1`
|
||||
scriptlist=`echo $filelist | xargs -r file | \
|
||||
- grep -E ":.* (commands|script) " | cut -d: -f1`
|
||||
+ grep -E ":.* (commands|script)[, ]" | cut -d: -f1`
|
||||
liblist=`echo $filelist | xargs -r file | \
|
||||
grep ":.*shared object" | cut -d : -f1`
|
||||
|
||||
diff --git a/fileattrs/script.attr b/fileattrs/script.attr
|
||||
index 13b8ba0..79f4d73 100644
|
||||
--- a/fileattrs/script.attr
|
||||
+++ b/fileattrs/script.attr
|
||||
@@ -1,3 +1,3 @@
|
||||
%__script_requires %{_rpmconfigdir}/script.req
|
||||
-%__script_magic ^.* script text.*$
|
||||
+%__script_magic ^.* script[, ].*$
|
||||
%__script_flags exeonly
|
@ -1,51 +0,0 @@
|
||||
commit 566a15c9c08aa593d05e2f55f1c171a48bc1b1bc
|
||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Wed Mar 9 09:39:32 2011 +0200
|
||||
|
||||
Take file state into account for file dependencies
|
||||
- Files which are not installed, have been replaced or are of wrong
|
||||
color can not actually satisfy a dependency despite what the package's
|
||||
file list says.
|
||||
- This prevents breaking the system despite seemingly correct dependencies
|
||||
in some situations, such as on multilib systems where a colored
|
||||
files can appear to be shared between primary and secondary architecture
|
||||
packages, but only the file from primary arch package is physically
|
||||
present, and removing the primary arch package would remove the
|
||||
file and silently break any dependencies on such files in practise.
|
||||
Similarly replaced files become owned by the replacing package in
|
||||
practise, so the original package whose files were replaced can no
|
||||
longer satisfy dependency on those files.
|
||||
|
||||
diff --git a/lib/depends.c b/lib/depends.c
|
||||
index 4daa512..69aecbb 100644
|
||||
--- a/lib/depends.c
|
||||
+++ b/lib/depends.c
|
||||
@@ -345,12 +345,25 @@ static int rpmdbProvides(rpmts ts, depCache dcache, rpmds dep)
|
||||
return rc;
|
||||
}
|
||||
|
||||
- /* See if a filename dependency is a real file in some package */
|
||||
+ /*
|
||||
+ * See if a filename dependency is a real file in some package,
|
||||
+ * taking file state into account: replaced, wrong colored and
|
||||
+ * not installed files can not satisfy a dependency.
|
||||
+ */
|
||||
if (Name[0] == '/') {
|
||||
mi = rpmtsPrunedIterator(ts, RPMDBI_BASENAMES, Name);
|
||||
while ((h = rpmdbNextIterator(mi)) != NULL) {
|
||||
- rpmdsNotify(dep, "(db files)", rc);
|
||||
- break;
|
||||
+ int fs = RPMFILE_STATE_MISSING;
|
||||
+ struct rpmtd_s states;
|
||||
+ if (headerGet(h, RPMTAG_FILESTATES, &states, HEADERGET_MINMEM)) {
|
||||
+ rpmtdSetIndex(&states, rpmdbGetIteratorFileNum(mi));
|
||||
+ fs = rpmtdGetNumber(&states);
|
||||
+ rpmtdFreeData(&states);
|
||||
+ }
|
||||
+ if (fs == RPMFILE_STATE_NORMAL || fs == RPMFILE_STATE_NETSHARED) {
|
||||
+ rpmdsNotify(dep, "(db files)", rc);
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
rpmdbFreeIterator(mi);
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
commit ee0ae58b442c5f79967a0d0580144b5c84e0c888
|
||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Wed Mar 9 10:25:29 2011 +0200
|
||||
|
||||
Verify some properties of replaced and wrong-colored files (RhBug:528383)
|
||||
- We can't verify any properties of replaced files, but we can and
|
||||
should still see if it exists at all.
|
||||
- Files skipped due to wrong color are supposed to share some of
|
||||
the attributes with the file that got actually installed, such
|
||||
as permissions and whether it exists at all. Verify what we can
|
||||
instead of silently ignoring.
|
||||
|
||||
diff --git a/lib/verify.c b/lib/verify.c
|
||||
index 3be357d..46210bc 100644
|
||||
--- a/lib/verify.c
|
||||
+++ b/lib/verify.c
|
||||
@@ -70,12 +70,22 @@ int rpmVerifyFile(const rpmts ts, const rpmfi fi,
|
||||
*/
|
||||
switch (rpmfiFState(fi)) {
|
||||
case RPMFILE_STATE_NETSHARED:
|
||||
- case RPMFILE_STATE_REPLACED:
|
||||
case RPMFILE_STATE_NOTINSTALLED:
|
||||
- case RPMFILE_STATE_WRONGCOLOR:
|
||||
case RPMFILE_STATE_MISSING:
|
||||
return 0;
|
||||
break;
|
||||
+ case RPMFILE_STATE_REPLACED:
|
||||
+ /* For replaced files we can only verify if it exists at all */
|
||||
+ flags = RPMVERIFY_LSTATFAIL;
|
||||
+ break;
|
||||
+ case RPMFILE_STATE_WRONGCOLOR:
|
||||
+ /*
|
||||
+ * Files with wrong color are supposed to share some attributes
|
||||
+ * with the actually installed file - verify what we can.
|
||||
+ */
|
||||
+ flags &= ~(RPMVERIFY_FILEDIGEST | RPMVERIFY_FILESIZE |
|
||||
+ RPMVERIFY_MTIME | RPMVERIFY_RDEV);
|
||||
+ break;
|
||||
case RPMFILE_STATE_NORMAL:
|
||||
break;
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
commit f4c79584d01c6394544c86c122d2f32f77a1d02d
|
||||
Author: Michael Schroeder <mls@suse.de>
|
||||
Date: Wed May 18 09:04:40 2011 +0300
|
||||
|
||||
Always copy macro source when expanding it
|
||||
- A macro can undefine itself, and unless we grab a copy of it we'll
|
||||
end up accessing already freed memory. Fixes a regression from
|
||||
commit ebc4ceaaeb8bb59019f4635471b28eb5f3eaaaa6 which assumed
|
||||
a copy is not always needed.
|
||||
|
||||
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
|
||||
|
||||
diff --git a/rpmio/macro.c b/rpmio/macro.c
|
||||
index 8ea4819..d79ef18 100644
|
||||
--- a/rpmio/macro.c
|
||||
+++ b/rpmio/macro.c
|
||||
@@ -1022,12 +1022,12 @@ expandMacro(MacroBuf mb, const char *src, size_t slen)
|
||||
char *source = NULL;
|
||||
|
||||
/* Handle non-terminated substrings by creating a terminated copy */
|
||||
- if (slen > 0) {
|
||||
- source = xmalloc(slen + 1);
|
||||
- strncpy(source, src, slen);
|
||||
- source[slen] = '\0';
|
||||
- s = source;
|
||||
- }
|
||||
+ if (!slen)
|
||||
+ slen = strlen(src);
|
||||
+ source = xmalloc(slen + 1);
|
||||
+ strncpy(source, src, slen);
|
||||
+ source[slen] = '\0';
|
||||
+ s = source;
|
||||
|
||||
if (mb->buf == NULL) {
|
||||
size_t blen = MACROBUFSIZ + strlen(s);
|
@ -1,11 +0,0 @@
|
||||
diff -up rpm-4.9.0/lib/manifest.c.manifest-fix rpm-4.9.0/lib/manifest.c
|
||||
--- rpm-4.9.0/lib/manifest.c.manifest-fix 2010-12-03 13:11:57.000000000 +0100
|
||||
+++ rpm-4.9.0/lib/manifest.c 2011-03-16 14:54:49.502557299 +0100
|
||||
@@ -96,6 +96,7 @@ rpmRC rpmReadPackageManifest(FD_t fd, in
|
||||
|
||||
/* Sanity checks: skip obviously binary lines and dash (for stdin) */
|
||||
if (*s < 32 || rstreq(s, "-")) {
|
||||
+ s = NULL;
|
||||
rpmrc = RPMRC_NOTFOUND;
|
||||
goto exit;
|
||||
}
|
@ -1,46 +0,0 @@
|
||||
commit 4a16d55f1f689ab06e8dd45c50b86e478a732367
|
||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Tue Mar 8 13:28:32 2011 +0200
|
||||
|
||||
Preferred color pkgs should be erased last
|
||||
- On install we need to queue preferred colored pkgs before others
|
||||
to account for the way colored files get laid on disk. On erase,
|
||||
we need to revert this for the same reason. Most of the time
|
||||
dependencies take care of this, but the queue placement matters in
|
||||
cases such as RhBug:680261 where the order is not dependency-driven.
|
||||
|
||||
diff --git a/lib/order.c b/lib/order.c
|
||||
index 3b0849d..18fe05c 100644
|
||||
--- a/lib/order.c
|
||||
+++ b/lib/order.c
|
||||
@@ -208,6 +208,8 @@ static void addQ(tsortInfo p, tsortInfo * qp, tsortInfo * rp,
|
||||
rpm_color_t prefcolor)
|
||||
{
|
||||
tsortInfo q, qprev;
|
||||
+ rpm_color_t pcolor = rpmteColor(p->te);
|
||||
+ int tailcond;
|
||||
|
||||
/* Mark the package as queued. */
|
||||
p->tsi_reqx = 1;
|
||||
@@ -218,13 +220,18 @@ static void addQ(tsortInfo p, tsortInfo * qp, tsortInfo * rp,
|
||||
return;
|
||||
}
|
||||
|
||||
- /* Find location in queue using metric tsi_qcnt. */
|
||||
+ if (rpmteType(p->te) == TR_ADDED)
|
||||
+ tailcond = (pcolor && pcolor != prefcolor);
|
||||
+ else
|
||||
+ tailcond = (pcolor && pcolor == prefcolor);
|
||||
+
|
||||
+ /* Find location in queue using metric tsi_qcnt and color. */
|
||||
for (qprev = NULL, q = (*qp);
|
||||
q != NULL;
|
||||
qprev = q, q = q->tsi_suc)
|
||||
{
|
||||
- /* XXX Insure preferred color first. */
|
||||
- if (rpmteColor(p->te) != prefcolor && rpmteColor(p->te) != rpmteColor(q->te))
|
||||
+ /* Place preferred color towards queue head on install, tail on erase */
|
||||
+ if (tailcond && (pcolor != rpmteColor(q->te)))
|
||||
continue;
|
||||
|
||||
if (q->tsi_qcnt <= p->tsi_qcnt)
|
@ -1,30 +0,0 @@
|
||||
commit 077d2c850cf0a719d7abacc3256168d60a4ec7bb
|
||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Tue Apr 5 17:33:12 2011 +0300
|
||||
|
||||
Dont reference transaction set from transaction elements
|
||||
- Elements referencing ts prevents rpmtsFree() from freeing anything
|
||||
unless the caller does rpmtsEmpty() first. Oops. Undo the braindamage
|
||||
from commit 8f7c2d7063df6d1057425d014ce4168d46c5e7d9.
|
||||
|
||||
diff --git a/lib/rpmte.c b/lib/rpmte.c
|
||||
index 860b3f4..dfd7b6f 100644
|
||||
--- a/lib/rpmte.c
|
||||
+++ b/lib/rpmte.c
|
||||
@@ -291,7 +291,6 @@ rpmte rpmteFree(rpmte te)
|
||||
rpmfsFree(te->fs);
|
||||
rpmpsFree(te->probs);
|
||||
rpmteCleanDS(te);
|
||||
- rpmtsFree(te->ts);
|
||||
|
||||
argvFree(te->collections);
|
||||
argvFree(te->lastInCollectionsAny);
|
||||
@@ -308,7 +307,7 @@ rpmte rpmteNew(rpmts ts, Header h, rpmElementType type, fnpyKey key,
|
||||
rpmRelocation * relocs)
|
||||
{
|
||||
rpmte p = xcalloc(1, sizeof(*p));
|
||||
- p->ts = rpmtsLink(ts);
|
||||
+ p->ts = ts;
|
||||
p->type = type;
|
||||
addTE(p, h, key, relocs);
|
||||
switch (type) {
|
@ -1,23 +0,0 @@
|
||||
commit 94fb6eed6a7a8957152035c3156974fc00bc4b42
|
||||
Author: Jindrich Novy <jnovy@redhat.com>
|
||||
Date: Mon Apr 4 16:03:11 2011 +0200
|
||||
|
||||
Don't list packages which will not be created in spec query (RhBug:693338)
|
||||
- particularly, while doing "rpm -q --specfile <a spec file>"
|
||||
|
||||
diff --git a/build/spec.c b/build/spec.c
|
||||
index 6861753..353ae47 100644
|
||||
--- a/build/spec.c
|
||||
+++ b/build/spec.c
|
||||
@@ -412,8 +412,10 @@ int rpmspecQuery(rpmts ts, QVA_t qva, const char * arg)
|
||||
|
||||
res = 0;
|
||||
if (qva->qva_source == RPMQV_SPECRPMS) {
|
||||
- for (Package pkg = spec->packages; pkg != NULL; pkg = pkg->next)
|
||||
+ for (Package pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
|
||||
+ if (pkg->fileList == NULL) continue;
|
||||
xx = qva->qva_showPackage(qva, ts, pkg->header);
|
||||
+ }
|
||||
} else {
|
||||
xx = qva->qva_showPackage(qva, ts, spec->sourceHeader);
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
commit 6eba5dc468aa2d26ff80f9321e8d4d014279d506
|
||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Tue Mar 22 08:36:35 2011 +0200
|
||||
|
||||
Fix classification of ELF binaries with sticky bit (RhBug:689182)
|
||||
|
||||
diff --git a/fileattrs/elf.attr b/fileattrs/elf.attr
|
||||
index fba180b..bc6ce83 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 ^ELF (32|64)-bit.*$
|
||||
+%__elf_magic ^(sticky )?ELF (32|64)-bit.*$
|
||||
%__elf_flags exeonly
|
51
rpm.spec
51
rpm.spec
@ -11,7 +11,7 @@
|
||||
|
||||
%define rpmhome /usr/lib/rpm
|
||||
|
||||
%define rpmver 4.9.0
|
||||
%define rpmver 4.9.1
|
||||
%define srcver %{rpmver}%{?snapver:-%{snapver}}
|
||||
|
||||
%define bdbname db4
|
||||
@ -21,7 +21,7 @@
|
||||
Summary: The RPM package management system
|
||||
Name: rpm
|
||||
Version: %{rpmver}
|
||||
Release: %{?snapver:0.%{snapver}.}10%{?dist}
|
||||
Release: %{?snapver:0.%{snapver}.}1%{?dist}
|
||||
Group: System Environment/Base
|
||||
Url: http://www.rpm.org/
|
||||
Source0: http://rpm.org/releases/rpm-4.9.x/%{name}-%{srcver}.tar.bz2
|
||||
@ -40,35 +40,12 @@ Patch3: rpm-4.8.0-no-man-dirs.patch
|
||||
Patch4: rpm-4.8.1-use-gpg2.patch
|
||||
|
||||
# Patches already in upstream
|
||||
# Do not try to free and unallocated variable (#688091)
|
||||
Patch100: rpm-4.9.0-manifest-fix.patch
|
||||
# Recognize elf executables with sticky bit as elf
|
||||
Patch101: rpm-4.9.0-sticky-elf.patch
|
||||
# Fix leaks on freeing a populated transaction set
|
||||
Patch102: rpm-4.9.0-rpmts-noref.patch
|
||||
# Only list packages that will be built on spec query (#693338)
|
||||
# Patch103: rpm-4.9.0-specquery-pkgs.patch
|
||||
# Verify some properties of replaced and wrong-colored files (#528383)
|
||||
Patch104: rpm-4.9.0-fstate-verify.patch
|
||||
# Take file state into account for file dependencies
|
||||
Patch105: rpm-4.9.0-fstate-deps.patch
|
||||
# Preferred color pkgs should be erased last
|
||||
Patch106: rpm-4.9.0-prefcolor-erase.patch
|
||||
# Fix crash on empty prep-section
|
||||
Patch107: rpm-4.9.0-empty-prep-crash.patch
|
||||
# Fix crash on empty changelog-section
|
||||
Patch108: rpm-4.9.0-empty-changelog-crash.patch
|
||||
# Fix crash on macro undefining itself
|
||||
Patch109: rpm-4.9.0-macro-self-undefine.patch
|
||||
# Fix breakage caused by file 5.07 string changes
|
||||
Patch110: rpm-4.9.0-file-compat.patch
|
||||
|
||||
# These are not yet upstream
|
||||
Patch301: rpm-4.6.0-niagara.patch
|
||||
Patch302: rpm-4.7.1-geode-i686.patch
|
||||
# To be upstreamed after rawhide-testdrive (#641377, #707677)
|
||||
Patch303: rpm-4.9.0-debugedit-dwarf4.patch
|
||||
Patch304: rpm-4.9.0-debuginfo-allnames.patch
|
||||
# To be upstreamed after rawhide-testdrive (#641377)
|
||||
Patch303: rpm-4.9.0-debuginfo-allnames.patch
|
||||
|
||||
# Partially GPL/LGPL dual-licensed and some bits with BSD
|
||||
# SourceLicense: (GPLv2+ and LGPLv2+ with exceptions) and BSD
|
||||
@ -230,23 +207,9 @@ packages on a system.
|
||||
%patch3 -p1 -b .no-man-dirs
|
||||
%patch4 -p1 -b .use-gpg2
|
||||
|
||||
%patch100 -p1 -b .manifest-fix
|
||||
%patch101 -p1 -b .sticky-elf
|
||||
%patch102 -p1 -b .rpmts-noref
|
||||
# this breaks fedpkg
|
||||
# %patch103 -p1 -b .specquery-pkgs
|
||||
%patch104 -p1 -b .fstate-verify
|
||||
%patch105 -p1 -b .fstate-deps
|
||||
%patch106 -p1 -b .prefcolor-erase
|
||||
%patch107 -p1 -b .empty-prep-crash
|
||||
%patch108 -p1 -b .empty-changelog-crash
|
||||
%patch109 -p1 -b .macro-self-undefine
|
||||
%patch110 -p1 -b .file-compat
|
||||
|
||||
%patch301 -p1 -b .niagara
|
||||
%patch302 -p1 -b .geode
|
||||
%patch303 -p1 -b .dwarf-4
|
||||
%patch304 -p1 -b .debuginfo-allnames
|
||||
%patch303 -p1 -b .debuginfo-allnames
|
||||
|
||||
%if %{with int_bdb}
|
||||
ln -s db-%{bdbver} db
|
||||
@ -460,6 +423,10 @@ exit 0
|
||||
%doc COPYING doc/librpm/html/*
|
||||
|
||||
%changelog
|
||||
* Fri Jul 15 2011 Panu Matilainen <pmatilai@redhat.com> - 4.9.1-1
|
||||
- update to 4.9.1 (http://rpm.org/wiki/Releases/4.9.1)
|
||||
- drop no longer needed patches
|
||||
|
||||
* Thu Jun 16 2011 Panu Matilainen <pmatilai@redhat.com> - 4.9.0-10
|
||||
- rebuild to fix a missing interpreter dependency due to bug #712251
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user