diff --git a/.gitignore b/.gitignore index 7069b6c..c69abb2 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ /rpm-4.12.0.tar.bz2 /rpm-4.12.0.1.tar.bz2 /rpm-4.12.90.tar.bz2 +/rpm-4.13.0-rc1.tar.bz2 diff --git a/rpm-4.12.90-Fix-compressed-patches.patch b/rpm-4.12.90-Fix-compressed-patches.patch deleted file mode 100644 index 488198c..0000000 --- a/rpm-4.12.90-Fix-compressed-patches.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 8fab4539051091f71d88f6b1d8c6660a40d5a5bd Mon Sep 17 00:00:00 2001 -From: Florian Festi -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 - diff --git a/rpm-4.12.90-braces-expansion.patch b/rpm-4.12.90-braces-expansion.patch deleted file mode 100644 index 03198ba..0000000 --- a/rpm-4.12.90-braces-expansion.patch +++ /dev/null @@ -1,123 +0,0 @@ -From d14ecfe587efbe80e5534161dbd3a4f7158b4e2b Mon Sep 17 00:00:00 2001 -From: Lubos Kardos -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 - diff --git a/rpm-4.12.90-fix-macro-warning.patch b/rpm-4.12.90-fix-macro-warning.patch deleted file mode 100644 index aab5cf8..0000000 --- a/rpm-4.12.90-fix-macro-warning.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 655ca18630d4a89e022b51ea495fa63718303413 Mon Sep 17 00:00:00 2001 -From: Lubos Kardos -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 - diff --git a/rpm-4.12.90-modify-rpmisglob.patch b/rpm-4.12.90-modify-rpmisglob.patch deleted file mode 100644 index d609762..0000000 --- a/rpm-4.12.90-modify-rpmisglob.patch +++ /dev/null @@ -1,136 +0,0 @@ -From 630a0970df46df6cc96a68349cf4e08d8b4ca772 Mon Sep 17 00:00:00 2001 -From: Lubos Kardos -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 - diff --git a/rpm-4.12.90-remove-pystring.patch b/rpm-4.12.90-remove-pystring.patch deleted file mode 100644 index b2885e2..0000000 --- a/rpm-4.12.90-remove-pystring.patch +++ /dev/null @@ -1,33 +0,0 @@ -From aec4f88ed585aedae1b35f447ee730a9054d6a4a Mon Sep 17 00:00:00 2001 -From: Thierry Vignaud -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 "", line 1, in -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 - diff --git a/rpm-4.12.90-show-filetriggers.patch b/rpm-4.12.90-show-filetriggers.patch deleted file mode 100644 index 9757649..0000000 --- a/rpm-4.12.90-show-filetriggers.patch +++ /dev/null @@ -1,257 +0,0 @@ -From d18fdd7f8964d01b4dfc39bf84133695cff5a13a Mon Sep 17 00:00:00 2001 -From: Lubos Kardos -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 - diff --git a/rpm-4.12.90-try-unglobbed.patch b/rpm-4.12.90-try-unglobbed.patch deleted file mode 100644 index bcce9f4..0000000 --- a/rpm-4.12.90-try-unglobbed.patch +++ /dev/null @@ -1,45 +0,0 @@ -From c16c70cbd6b31cd93541d5c22d23ba98d212ad3d Mon Sep 17 00:00:00 2001 -From: Lubos Kardos -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 - diff --git a/rpm.spec b/rpm.spec index e11b1b8..099c28b 100644 --- a/rpm.spec +++ b/rpm.spec @@ -10,13 +10,15 @@ %bcond_with sanitizer # build with libarchive? (needed for rpm2archive) %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)")} %define rpmhome /usr/lib/rpm -%define rpmver 4.12.90 -#define snapver rc1 +%define rpmver 4.13.0 +%define snapver rc1 %define srcver %{rpmver}%{?snapver:-%{snapver}} %define eggver %{rpmver}%{?snapver:_%{snapver}} @@ -27,7 +29,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.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 # 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 Patch302: rpm-4.7.1-geode-i686.patch @@ -137,6 +132,10 @@ BuildRequires: libubsan %global sanitizer_flags -fsanitize=address -fsanitize=undefined %endif +%if %{with libimaevm} +BuildRequires: ima-evm-utils +%endif + %description The RPM Package Manager (RPM) is a powerful command line driven package management system capable of installing, uninstalling, @@ -288,6 +287,15 @@ Requires: rpm-libs%{_isa} = %{version}-%{release} %description plugin-systemd-inhibit %{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 %prep @@ -473,6 +481,9 @@ exit 0 %files plugin-systemd-inhibit %{_libdir}/rpm-plugins/systemd_inhibit.so + +%files plugin-ima +%{_libdir}/rpm-plugins/ima.so %endif %files build-libs @@ -541,6 +552,10 @@ exit 0 %doc doc/librpm/html/* %changelog + +* Wed Sep 02 2015 Florian Festi - 4.13.0-0.rc1.1 +- Update to upstream rc1 release + * Mon Aug 10 2015 Lubos Kardos - 4.12.90-7 - Fix last occurence of PyString diff --git a/sources b/sources index aa7fa3b..be9b46c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b81285be38dae05e101f694689e934eb rpm-4.12.90.tar.bz2 +f9be5490f187bc4d9710c9fdae529e7b rpm-4.13.0-rc1.tar.bz2