- Update to upstream 4.13.0-rc1 release

This commit is contained in:
Florian Festi 2015-09-02 19:46:34 +02:00
parent d407fb640c
commit 592510cfdb
10 changed files with 27 additions and 679 deletions

1
.gitignore vendored
View File

@ -19,3 +19,4 @@
/rpm-4.12.0.tar.bz2 /rpm-4.12.0.tar.bz2
/rpm-4.12.0.1.tar.bz2 /rpm-4.12.0.1.tar.bz2
/rpm-4.12.90.tar.bz2 /rpm-4.12.90.tar.bz2
/rpm-4.13.0-rc1.tar.bz2

View File

@ -1,26 +0,0 @@
From 8fab4539051091f71d88f6b1d8c6660a40d5a5bd Mon Sep 17 00:00:00 2001
From: Florian Festi <ffesti@redhat.com>
Date: Mon, 27 Jul 2015 18:52:25 +0200
Subject: [PATCH] Fix compressed patches
Regression caused by d9f673bf2841bb8c854e6676871078ab563a51c9 caused uncompressed patch content to be printed out to std instead of being piped into patch command.
---
build/parsePrep.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/parsePrep.c b/build/parsePrep.c
index 5ba5aee..b94aad2 100644
--- a/build/parsePrep.c
+++ b/build/parsePrep.c
@@ -101,7 +101,7 @@ static char *doPatch(rpmSpec spec, uint32_t c, int strip, const char *db,
/* Avoid the extra cost of fork and pipe for uncompressed patches */
if (compressed != COMPRESSED_NOT) {
- patchcmd = rpmExpand("%{uncompress: ", fn, "} || echo patch_fail | "
+ patchcmd = rpmExpand("{ %{uncompress: ", fn, "} || echo patch_fail ; } | "
"%{__patch} ", args, NULL);
} else {
patchcmd = rpmExpand("%{__patch} ", args, " < ", fn, NULL);
--
2.1.0

View File

@ -1,123 +0,0 @@
From d14ecfe587efbe80e5534161dbd3a4f7158b4e2b Mon Sep 17 00:00:00 2001
From: Lubos Kardos <lkardos@redhat.com>
Date: Mon, 27 Jul 2015 11:22:19 +0200
Subject: [PATCH] Enable {} expansion in rpmGlob() (rhbz:1246743)
---
rpmio/rpmglob.c | 42 ++++++++++++++++++++++++++++++++----------
1 file changed, 32 insertions(+), 10 deletions(-)
diff --git a/rpmio/rpmglob.c b/rpmio/rpmglob.c
index 4fc106d..597ac5c 100644
--- a/rpmio/rpmglob.c
+++ b/rpmio/rpmglob.c
@@ -150,7 +150,7 @@ static inline const char *next_brace_sub(const char *begin)
return cp;
}
-static int __glob_pattern_p(const char *pattern, int quote);
+static int __glob_pattern_p(const char *pattern, int flags);
/* Do glob searching for PATTERN, placing results in PGLOB.
The bits defined above may be set in FLAGS.
@@ -419,7 +419,7 @@ glob(const char *pattern, int flags,
return GLOB_NOMATCH;
}
- if (__glob_pattern_p(dirname, !(flags & GLOB_NOESCAPE))) {
+ if (__glob_pattern_p(dirname, flags)) {
/* The directory name contains metacharacters, so we
have to glob for the directory, and then glob for
the pattern in each directory found. */
@@ -646,10 +646,11 @@ static int prefix_array(const char *dirname, char **array, size_t n)
/* Return nonzero if PATTERN contains any metacharacters.
Metacharacters can be quoted with backslashes if QUOTE is nonzero. */
-static int __glob_pattern_p(const char *pattern, int quote)
+static int __glob_pattern_p(const char *pattern, int flags)
{
register const char *p;
- int open = 0;
+ int openBrackets = 0;
+ int openBraces = 0;
for (p = pattern; *p != '\0'; ++p)
switch (*p) {
@@ -658,18 +659,29 @@ static int __glob_pattern_p(const char *pattern, int quote)
return 1;
case '\\':
- if (quote && p[1] != '\0')
+ if (!(flags & GLOB_NOESCAPE) && p[1] != '\0')
++p;
break;
case '[':
- open = 1;
+ openBrackets = 1;
break;
case ']':
- if (open)
+ if (openBrackets)
return 1;
break;
+
+ case '{':
+ if (flags & GLOB_BRACE)
+ openBraces = 1;
+ break;
+
+ case '}':
+ if (openBraces)
+ return 1;
+ break;
+
}
return 0;
@@ -694,7 +706,7 @@ glob_in_dir(const char *pattern, const char *directory, int flags,
int meta;
int save;
- meta = __glob_pattern_p(pattern, !(flags & GLOB_NOESCAPE));
+ meta = __glob_pattern_p(pattern, flags);
if (meta == 0) {
if (flags & (GLOB_NOCHECK | GLOB_NOMAGIC))
/* We need not do any tests. The PATTERN contains no meta
@@ -844,6 +856,8 @@ int rpmGlob(const char * patterns, int * argcPtr, ARGV_t * argvPtr)
int i, j;
int rc;
+ gflags |= GLOB_BRACE;
+
if (home != NULL && strlen(home) > 0)
gflags |= GLOB_TILDE;
@@ -874,7 +888,9 @@ int rpmGlob(const char * patterns, int * argcPtr, ARGV_t * argvPtr)
int dir_only = (plen > 0 && path[plen-1] == '/');
glob_t gl;
- if (!local || (!rpmIsGlob(av[j], 0) && strchr(path, '~') == NULL)) {
+ if (!local || (!rpmIsGlob(av[j], GLOB_NOESCAPE | flags) &&
+ strchr(path, '~') == NULL)) {
+
argvAdd(&argv, av[j]);
continue;
}
@@ -966,5 +982,11 @@ exit:
int rpmIsGlob(const char * pattern, int quote)
{
- return __glob_pattern_p(pattern, quote);
+ int flags = 0;
+ if (!quote) {
+ flags |= GLOB_NOESCAPE;
+ }
+ flags |= GLOB_BRACE;
+
+ return __glob_pattern_p(pattern, flags);
}
--
1.9.3

View File

@ -1,48 +0,0 @@
From 655ca18630d4a89e022b51ea495fa63718303413 Mon Sep 17 00:00:00 2001
From: Lubos Kardos <lkardos@redhat.com>
Date: Thu, 30 Jul 2015 16:23:58 +0200
Subject: [PATCH] Don't warn when an escaped macro is in comment.
- Related to 2a3f49585e5bd82d0bbfe5b9d6cdf24d9501b5cd
---
build/parseSpec.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/build/parseSpec.c b/build/parseSpec.c
index 706579d..edc3d00 100644
--- a/build/parseSpec.c
+++ b/build/parseSpec.c
@@ -189,12 +189,25 @@ static int expandMacrosInSpecBuf(rpmSpec spec, int strip)
goto exit;
}
- if (strip & STRIP_COMMENTS &&
- isComment && !rstreq(spec->lbuf, lbuf)) {
+ if (strip & STRIP_COMMENTS && isComment) {
+ char *bufA = lbuf;
+ char *bufB = spec->lbuf;
- rpmlog(RPMLOG_WARNING,
- _("Macro expanded in comment on line %d: %s\n"),
- spec->lineNum, lbuf);
+ while (*bufA != '\0' && *bufB != '\0') {
+ if (*bufA == '%' && *(bufA + 1) == '%')
+ bufA++;
+
+ if (*bufA != *bufB)
+ break;
+
+ bufA++;
+ bufB++;
+ }
+
+ if (*bufA != '\0' || *bufB != '\0')
+ rpmlog(RPMLOG_WARNING,
+ _("Macro expanded in comment on line %d: %s\n"),
+ spec->lineNum, lbuf);
}
exit:
--
1.9.3

View File

@ -1,136 +0,0 @@
From 630a0970df46df6cc96a68349cf4e08d8b4ca772 Mon Sep 17 00:00:00 2001
From: Lubos Kardos <lkardos@redhat.com>
Date: Mon, 3 Aug 2015 16:51:11 +0200
Subject: [PATCH 1/2] Modify rpmIsGlob() to be more precise.
Now rpmIsGlob() checks if braces expansion pattern is well formed and
not only if it contains opening and closing brace. The checking
procedure is same as procedure in glob() so rpmIsGlob() and glob() are
now compatible.
---
rpmio/rpmglob.c | 57 ++++++++++++++++++++++++++++++++-------------------------
1 file changed, 32 insertions(+), 25 deletions(-)
diff --git a/rpmio/rpmglob.c b/rpmio/rpmglob.c
index 597ac5c..0c6b0a3 100644
--- a/rpmio/rpmglob.c
+++ b/rpmio/rpmglob.c
@@ -150,7 +150,7 @@ static inline const char *next_brace_sub(const char *begin)
return cp;
}
-static int __glob_pattern_p(const char *pattern, int flags);
+static int __glob_pattern_p(const char *pattern, int quote);
/* Do glob searching for PATTERN, placing results in PGLOB.
The bits defined above may be set in FLAGS.
@@ -419,7 +419,7 @@ glob(const char *pattern, int flags,
return GLOB_NOMATCH;
}
- if (__glob_pattern_p(dirname, flags)) {
+ if (__glob_pattern_p(dirname, !(flags & GLOB_NOESCAPE))) {
/* The directory name contains metacharacters, so we
have to glob for the directory, and then glob for
the pattern in each directory found. */
@@ -646,11 +646,10 @@ static int prefix_array(const char *dirname, char **array, size_t n)
/* Return nonzero if PATTERN contains any metacharacters.
Metacharacters can be quoted with backslashes if QUOTE is nonzero. */
-static int __glob_pattern_p(const char *pattern, int flags)
+static int __glob_pattern_p(const char *pattern, int quote)
{
register const char *p;
int openBrackets = 0;
- int openBraces = 0;
for (p = pattern; *p != '\0'; ++p)
switch (*p) {
@@ -659,7 +658,7 @@ static int __glob_pattern_p(const char *pattern, int flags)
return 1;
case '\\':
- if (!(flags & GLOB_NOESCAPE) && p[1] != '\0')
+ if (quote && p[1] != '\0')
++p;
break;
@@ -671,17 +670,6 @@ static int __glob_pattern_p(const char *pattern, int flags)
if (openBrackets)
return 1;
break;
-
- case '{':
- if (flags & GLOB_BRACE)
- openBraces = 1;
- break;
-
- case '}':
- if (openBraces)
- return 1;
- break;
-
}
return 0;
@@ -706,7 +694,7 @@ glob_in_dir(const char *pattern, const char *directory, int flags,
int meta;
int save;
- meta = __glob_pattern_p(pattern, flags);
+ meta = __glob_pattern_p(pattern, !(flags & GLOB_NOESCAPE));
if (meta == 0) {
if (flags & (GLOB_NOCHECK | GLOB_NOMAGIC))
/* We need not do any tests. The PATTERN contains no meta
@@ -888,9 +876,7 @@ int rpmGlob(const char * patterns, int * argcPtr, ARGV_t * argvPtr)
int dir_only = (plen > 0 && path[plen-1] == '/');
glob_t gl;
- if (!local || (!rpmIsGlob(av[j], GLOB_NOESCAPE | flags) &&
- strchr(path, '~') == NULL)) {
-
+ if (!local || (!rpmIsGlob(av[j], 0) && strchr(path, '~') == NULL)) {
argvAdd(&argv, av[j]);
continue;
}
@@ -982,11 +968,32 @@ exit:
int rpmIsGlob(const char * pattern, int quote)
{
- int flags = 0;
- if (!quote) {
- flags |= GLOB_NOESCAPE;
+ if(!__glob_pattern_p(pattern, quote)) {
+
+ const char *begin;
+ const char *next;
+ const char *rest;
+
+ begin = strchr(pattern, '{');
+ if (begin == NULL)
+ return 0;
+ /*
+ * Find the first sub-pattern and at the same time find the
+ * rest after the closing brace.
+ */
+ next = next_brace_sub(begin + 1);
+ if (next == NULL)
+ return 0;
+
+ /* Now find the end of the whole brace expression. */
+ rest = next;
+ while (*rest != '}') {
+ rest = next_brace_sub(rest + 1);
+ if (rest == NULL)
+ return 0;
+ }
+ /* Now we can be sure that brace expression is well-foermed. */
}
- flags |= GLOB_BRACE;
- return __glob_pattern_p(pattern, flags);
+ return 1;
}
--
1.9.3

View File

@ -1,33 +0,0 @@
From aec4f88ed585aedae1b35f447ee730a9054d6a4a Mon Sep 17 00:00:00 2001
From: Thierry Vignaud <thierry.vignaud@gmail.com>
Date: Mon, 10 Aug 2015 04:38:47 -0400
Subject: [PATCH] Fix last occurence of PyString
This should have been done in
commit 1866fc41c8fdf5a82705cee7f1043d5fb634c3be
This fixes:
$ python3 -c 'import rpm._rpmb'
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: /usr/lib64/python3.4/site-packages/rpm/_rpmb.cpython-34m.so: undefined symbol: PyString_FromString
---
python/spec-py.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python/spec-py.c b/python/spec-py.c
index 728b63c..f710f5c 100644
--- a/python/spec-py.c
+++ b/python/spec-py.c
@@ -51,7 +51,7 @@ static PyObject *pkgGetSection(rpmSpecPkg pkg, int section)
{
char *sect = rpmSpecPkgGetSection(pkg, section);
if (sect != NULL) {
- PyObject *ps = PyString_FromString(sect);
+ PyObject *ps = PyBytes_FromString(sect);
free(sect);
if (ps != NULL)
return ps;
--
1.9.3

View File

@ -1,257 +0,0 @@
From d18fdd7f8964d01b4dfc39bf84133695cff5a13a Mon Sep 17 00:00:00 2001
From: Lubos Kardos <lkardos@redhat.com>
Date: Thu, 6 Aug 2015 14:28:25 +0200
Subject: [PATCH] Add --filetriggers option to show info about file triggers.
---
lib/rpmtag.h | 4 ++
lib/tagexts.c | 107 +++++++++++++++++++++++++++++++++++++++++++++++-----
rpmpopt.in | 8 ++++
tests/rpmgeneral.at | 4 ++
4 files changed, 113 insertions(+), 10 deletions(-)
diff --git a/lib/rpmtag.h b/lib/rpmtag.h
index ac6ee64..94c0655 100644
--- a/lib/rpmtag.h
+++ b/lib/rpmtag.h
@@ -352,6 +352,10 @@ typedef enum rpmTag_e {
RPMTAG_REMOVEPATHPOSTFIXES = 5083, /* s internal */
RPMTAG_FILETRIGGERPRIORITIES = 5084, /* i[] */
RPMTAG_TRANSFILETRIGGERPRIORITIES = 5085, /* i[] */
+ RPMTAG_FILETRIGGERCONDS = 5086, /* s[] extension */
+ RPMTAG_FILETRIGGERTYPE = 5087, /* s[] extension */
+ RPMTAG_TRANSFILETRIGGERCONDS = 5088, /* s[] extension */
+ RPMTAG_TRANSFILETRIGGERTYPE = 5089, /* s[] extension */
RPMTAG_FIRSTFREE_TAG /*!< internal */
} rpmTag;
diff --git a/lib/tagexts.c b/lib/tagexts.c
index fa3fe72..69f3c24 100644
--- a/lib/tagexts.c
+++ b/lib/tagexts.c
@@ -191,6 +191,12 @@ exit:
return rc;
}
+typedef enum tMode_e {
+ NORMALTRIGGER = 0,
+ FILETRIGGER = 1,
+ TRANSFILETRIGGER = 2,
+} tMode;
+
/**
* Retrieve trigger info.
* @param h header
@@ -198,22 +204,49 @@ exit:
* @param hgflags header get flags
* @return 1 on success
*/
-static int triggercondsTag(Header h, rpmtd td, headerGetFlags hgflags)
+static int triggercondsTagFor(tMode mode, Header h, rpmtd td,
+ headerGetFlags hgflags)
{
uint32_t * indices;
int i, j;
char ** conds;
struct rpmtd_s nametd, indextd, flagtd, versiontd, scripttd;
int hgeflags = HEADERGET_MINMEM;
+ rpmTagVal triggername, triggerindex, triggerflags;
+ rpmTagVal triggerversion, triggerscripts;
+
+ switch (mode) {
+ case NORMALTRIGGER:
+ triggername = RPMTAG_TRIGGERNAME;
+ triggerindex = RPMTAG_TRIGGERINDEX;
+ triggerflags = RPMTAG_TRIGGERFLAGS;
+ triggerversion = RPMTAG_TRIGGERVERSION;
+ triggerscripts = RPMTAG_TRIGGERSCRIPTS;
+ break;
+ case FILETRIGGER:
+ triggername = RPMTAG_FILETRIGGERNAME;
+ triggerindex = RPMTAG_FILETRIGGERINDEX;
+ triggerflags = RPMTAG_FILETRIGGERFLAGS;
+ triggerversion = RPMTAG_FILETRIGGERVERSION;
+ triggerscripts = RPMTAG_FILETRIGGERSCRIPTS;
+ break;
+ case TRANSFILETRIGGER:
+ triggername = RPMTAG_TRANSFILETRIGGERNAME;
+ triggerindex = RPMTAG_TRANSFILETRIGGERINDEX;
+ triggerflags = RPMTAG_TRANSFILETRIGGERFLAGS;
+ triggerversion = RPMTAG_TRANSFILETRIGGERVERSION;
+ triggerscripts = RPMTAG_TRANSFILETRIGGERSCRIPTS;
+ break;
+ }
- if (!headerGet(h, RPMTAG_TRIGGERNAME, &nametd, hgeflags)) {
+ if (!headerGet(h, triggername, &nametd, hgeflags)) {
return 0;
}
- headerGet(h, RPMTAG_TRIGGERINDEX, &indextd, hgeflags);
- headerGet(h, RPMTAG_TRIGGERFLAGS, &flagtd, hgeflags);
- headerGet(h, RPMTAG_TRIGGERVERSION, &versiontd, hgeflags);
- headerGet(h, RPMTAG_TRIGGERSCRIPTS, &scripttd, hgeflags);
+ headerGet(h, triggerindex, &indextd, hgeflags);
+ headerGet(h, triggerflags, &flagtd, hgeflags);
+ headerGet(h, triggerversion, &versiontd, hgeflags);
+ headerGet(h, triggerscripts, &scripttd, hgeflags);
td->type = RPM_STRING_ARRAY_TYPE;
td->flags = RPMTD_ALLOCED | RPMTD_PTR_ALLOCED;
@@ -262,6 +295,21 @@ static int triggercondsTag(Header h, rpmtd td, headerGetFlags hgflags)
return 1;
}
+static int triggercondsTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggercondsTagFor(NORMALTRIGGER, h, td, hgflags);
+}
+
+static int filetriggercondsTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggercondsTagFor(FILETRIGGER, h, td, hgflags);
+}
+
+static int transfiletriggercondsTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggercondsTagFor(TRANSFILETRIGGER, h, td, hgflags);
+}
+
/**
* Retrieve trigger type info.
* @param h header
@@ -269,18 +317,38 @@ static int triggercondsTag(Header h, rpmtd td, headerGetFlags hgflags)
* @param hgflags header get flags
* @return 1 on success
*/
-static int triggertypeTag(Header h, rpmtd td, headerGetFlags hgflags)
+static int triggertypeTagFor(tMode mode, Header h, rpmtd td,
+ headerGetFlags hgflags)
{
int i;
char ** conds;
struct rpmtd_s indices, flags, scripts;
+ rpmTagVal triggerindex, triggerflags, triggerscripts;
+
+ switch (mode) {
+ case NORMALTRIGGER:
+ triggerindex = RPMTAG_TRIGGERINDEX;
+ triggerflags = RPMTAG_TRIGGERFLAGS;
+ triggerscripts = RPMTAG_TRIGGERSCRIPTS;
+ break;
+ case FILETRIGGER:
+ triggerindex = RPMTAG_FILETRIGGERINDEX;
+ triggerflags = RPMTAG_FILETRIGGERFLAGS;
+ triggerscripts = RPMTAG_FILETRIGGERSCRIPTS;
+ break;
+ case TRANSFILETRIGGER:
+ triggerindex = RPMTAG_TRANSFILETRIGGERINDEX;
+ triggerflags = RPMTAG_TRANSFILETRIGGERFLAGS;
+ triggerscripts = RPMTAG_TRANSFILETRIGGERSCRIPTS;
+ break;
+ }
- if (!headerGet(h, RPMTAG_TRIGGERINDEX, &indices, HEADERGET_MINMEM)) {
+ if (!headerGet(h, triggerindex, &indices, HEADERGET_MINMEM)) {
return 0;
}
- headerGet(h, RPMTAG_TRIGGERFLAGS, &flags, HEADERGET_MINMEM);
- headerGet(h, RPMTAG_TRIGGERSCRIPTS, &scripts, HEADERGET_MINMEM);
+ headerGet(h, triggerflags, &flags, HEADERGET_MINMEM);
+ headerGet(h, triggerscripts, &scripts, HEADERGET_MINMEM);
td->flags = RPMTD_ALLOCED | RPMTD_PTR_ALLOCED;
td->count = rpmtdCount(&scripts);
@@ -316,6 +384,21 @@ static int triggertypeTag(Header h, rpmtd td, headerGetFlags hgflags)
return 1;
}
+static int triggertypeTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggertypeTagFor(NORMALTRIGGER, h, td, hgflags);
+}
+
+static int filetriggertypeTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggertypeTagFor(FILETRIGGER, h, td, hgflags);
+}
+
+static int transfiletriggertypeTag(Header h, rpmtd td, headerGetFlags hgflags)
+{
+ return triggertypeTagFor(TRANSFILETRIGGER, h, td, hgflags);
+}
+
/**
* Retrieve installed file paths.
* @param h header
@@ -873,7 +956,11 @@ static const struct headerTagFunc_s rpmHeaderTagExtensions[] = {
{ RPMTAG_FILEPROVIDE, fileprovideTag },
{ RPMTAG_FILEREQUIRE, filerequireTag },
{ RPMTAG_TRIGGERCONDS, triggercondsTag },
+ { RPMTAG_FILETRIGGERCONDS, filetriggercondsTag },
+ { RPMTAG_TRANSFILETRIGGERCONDS, transfiletriggercondsTag },
{ RPMTAG_TRIGGERTYPE, triggertypeTag },
+ { RPMTAG_FILETRIGGERTYPE, filetriggertypeTag },
+ { RPMTAG_TRANSFILETRIGGERTYPE, transfiletriggertypeTag },
{ RPMTAG_LONGFILESIZES, longfilesizesTag },
{ RPMTAG_LONGARCHIVESIZE, longarchivesizeTag },
{ RPMTAG_LONGSIZE, longsizeTag },
diff --git a/rpmpopt.in b/rpmpopt.in
index 48c5c55..d930862 100644
--- a/rpmpopt.in
+++ b/rpmpopt.in
@@ -115,6 +115,14 @@ rpm alias --triggerscripts --qf '\
rpm alias --triggers --triggerscripts \
--POPTdesc=$"list trigger scriptlets from package(s)"
+rpm alias --filetriggerscripts --qf '\
+[filetrigger%{FILETRIGGERTYPE} scriptlet (using %{FILETRIGGERSCRIPTPROG}) -- \
+%{FILETRIGGERCONDS}\n%{FILETRIGGERSCRIPTS}\n]\
+[transfiletrigger%{TRANSFILETRIGGERTYPE} scriptlet (using %{TRANSFILETRIGGERSCRIPTPROG}) -- \
+%{TRANSFILETRIGGERCONDS}\n%{TRANSFILETRIGGERSCRIPTS}\n]'
+rpm alias --filetriggers --filetriggerscripts \
+ --POPTdesc=$"list filetrigger scriptlets from package(s)"
+
rpm alias --last --qf '%|INSTALLTIME?{%{INSTALLTIME}}:{000000000}| %{NVRA} %|INSTALLTIME?{%{INSTALLTIME:date}}:{(not installed)}|\n' \
--pipe "LC_NUMERIC=C sort -r -n | sed 's,^[0-9]\+ ,,' | awk '{printf(\"%-45s %-s\n\", $1, substr($0,length($1)+2))}' " \
--POPTdesc=$"list package(s) by install time, most recent first"
diff --git a/tests/rpmgeneral.at b/tests/rpmgeneral.at
index 312f43b..ac21a40 100644
--- a/tests/rpmgeneral.at
+++ b/tests/rpmgeneral.at
@@ -115,6 +115,7 @@ FILERDEVS
FILEREQUIRE
FILESIZES
FILESTATES
+FILETRIGGERCONDS
FILETRIGGERFLAGS
FILETRIGGERINDEX
FILETRIGGERNAME
@@ -122,6 +123,7 @@ FILETRIGGERPRIORITIES
FILETRIGGERSCRIPTFLAGS
FILETRIGGERSCRIPTPROG
FILETRIGGERSCRIPTS
+FILETRIGGERTYPE
FILETRIGGERVERSION
FILEUSERNAME
FILEVERIFYFLAGS
@@ -256,6 +258,7 @@ SUPPLEMENTNAME
SUPPLEMENTNEVRS
SUPPLEMENTS
SUPPLEMENTVERSION
+TRANSFILETRIGGERCONDS
TRANSFILETRIGGERFLAGS
TRANSFILETRIGGERINDEX
TRANSFILETRIGGERNAME
@@ -263,6 +266,7 @@ TRANSFILETRIGGERPRIORITIES
TRANSFILETRIGGERSCRIPTFLAGS
TRANSFILETRIGGERSCRIPTPROG
TRANSFILETRIGGERSCRIPTS
+TRANSFILETRIGGERTYPE
TRANSFILETRIGGERVERSION
TRIGGERCONDS
TRIGGERFLAGS
--
1.9.3

View File

@ -1,45 +0,0 @@
From c16c70cbd6b31cd93541d5c22d23ba98d212ad3d Mon Sep 17 00:00:00 2001
From: Lubos Kardos <lkardos@redhat.com>
Date: Mon, 3 Aug 2015 12:10:14 +0200
Subject: [PATCH 2/2] If globbing of a filename fails, try use the filename
without globbing.
Commit d14ecfe587efbe80e5534161dbd3a4f7158b4e2b enabled {} expansion
but {} expansion caused regresion because rpm tried to expand filenames
which weren't expanded previously and expansion failed because these
filenames weren't supposed to be expanded. Now if expansion fails then
rpm tries to use original filename.
---
build/files.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/build/files.c b/build/files.c
index d16bb17..ea595b9 100644
--- a/build/files.c
+++ b/build/files.c
@@ -1584,16 +1584,13 @@ static rpmRC processBinaryFile(Package pkg, FileList fl, const char * fileName)
}
argvFree(argv);
} else {
- int lvl = RPMLOG_WARNING;
const char *msg = (fl->cur.isDir) ?
- _("Directory not found by glob: %s\n") :
- _("File not found by glob: %s\n");
- if (!(fl->cur.attrFlags & RPMFILE_EXCLUDE)) {
- lvl = RPMLOG_ERR;
- rc = RPMRC_FAIL;
- }
- rpmlog(lvl, msg, diskPath);
- goto exit;
+ _("Directory not found by glob: %s. "
+ "Trying without globbing.\n") :
+ _("File not found by glob: %s. "
+ "Trying without globbing.\n");
+ rpmlog(RPMLOG_DEBUG, msg, diskPath);
+ rc = addFile(fl, diskPath, NULL);
}
} else {
rc = addFile(fl, diskPath, NULL);
--
1.9.3

View File

@ -10,13 +10,15 @@
%bcond_with sanitizer %bcond_with sanitizer
# build with libarchive? (needed for rpm2archive) # build with libarchive? (needed for rpm2archive)
%bcond_without libarchive %bcond_without libarchive
# build with libimaevm.so
%bcond_without libimaevm
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
%define rpmhome /usr/lib/rpm %define rpmhome /usr/lib/rpm
%define rpmver 4.12.90 %define rpmver 4.13.0
#define snapver rc1 %define snapver rc1
%define srcver %{rpmver}%{?snapver:-%{snapver}} %define srcver %{rpmver}%{?snapver:-%{snapver}}
%define eggver %{rpmver}%{?snapver:_%{snapver}} %define eggver %{rpmver}%{?snapver:_%{snapver}}
@ -27,7 +29,7 @@
Summary: The RPM package management system Summary: The RPM package management system
Name: rpm Name: rpm
Version: %{rpmver} Version: %{rpmver}
Release: %{?snapver:0.%{snapver}.}7%{?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.12.x/%{name}-%{srcver}.tar.bz2 Source0: http://rpm.org/releases/rpm-4.12.x/%{name}-%{srcver}.tar.bz2
@ -50,13 +52,6 @@ Patch4: rpm-4.8.1-use-gpg2.patch
Patch5: rpm-4.12.0-rpm2cpio-hack.patch Patch5: rpm-4.12.0-rpm2cpio-hack.patch
# Patches already upstream: # Patches already upstream:
Patch100: rpm-4.12.90-braces-expansion.patch
Patch101: rpm-4.12.90-Fix-compressed-patches.patch
Patch102: rpm-4.12.90-fix-macro-warning.patch
Patch103: rpm-4.12.90-modify-rpmisglob.patch
Patch104: rpm-4.12.90-try-unglobbed.patch
Patch105: rpm-4.12.90-show-filetriggers.patch
Patch106: rpm-4.12.90-remove-pystring.patch
# These are not yet upstream # These are not yet upstream
Patch302: rpm-4.7.1-geode-i686.patch Patch302: rpm-4.7.1-geode-i686.patch
@ -137,6 +132,10 @@ BuildRequires: libubsan
%global sanitizer_flags -fsanitize=address -fsanitize=undefined %global sanitizer_flags -fsanitize=address -fsanitize=undefined
%endif %endif
%if %{with libimaevm}
BuildRequires: ima-evm-utils
%endif
%description %description
The RPM Package Manager (RPM) is a powerful command line driven The RPM Package Manager (RPM) is a powerful command line driven
package management system capable of installing, uninstalling, package management system capable of installing, uninstalling,
@ -288,6 +287,15 @@ Requires: rpm-libs%{_isa} = %{version}-%{release}
%description plugin-systemd-inhibit %description plugin-systemd-inhibit
%{summary} %{summary}
%package plugin-ima
Summary: Rpm plugin ima file signatures
Group: System Environment/Base
Requires: rpm-libs%{_isa} = %{version}-%{release}
%description plugin-ima
%{summary}
%endif %endif
%prep %prep
@ -473,6 +481,9 @@ exit 0
%files plugin-systemd-inhibit %files plugin-systemd-inhibit
%{_libdir}/rpm-plugins/systemd_inhibit.so %{_libdir}/rpm-plugins/systemd_inhibit.so
%files plugin-ima
%{_libdir}/rpm-plugins/ima.so
%endif %endif
%files build-libs %files build-libs
@ -541,6 +552,10 @@ exit 0
%doc doc/librpm/html/* %doc doc/librpm/html/*
%changelog %changelog
* Wed Sep 02 2015 Florian Festi <ffesti@rpm.org> - 4.13.0-0.rc1.1
- Update to upstream rc1 release
* Mon Aug 10 2015 Lubos Kardos <lkardos@redhat.com> - 4.12.90-7 * Mon Aug 10 2015 Lubos Kardos <lkardos@redhat.com> - 4.12.90-7
- Fix last occurence of PyString - Fix last occurence of PyString

View File

@ -1 +1 @@
b81285be38dae05e101f694689e934eb rpm-4.12.90.tar.bz2 f9be5490f187bc4d9710c9fdae529e7b rpm-4.13.0-rc1.tar.bz2