Accepting request 461331 from Base:System

New version that fixes 1027228

OBS-URL: https://build.opensuse.org/request/show/461331
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rpm?expand=0&rev=243
This commit is contained in:
Dominique Leuenberger 2017-03-03 16:41:46 +00:00 committed by Git OBS Bridge
commit 4d3314a699
36 changed files with 537 additions and 524 deletions

View File

@ -1,6 +1,6 @@
--- ./scripts/Makefile.am.orig 2014-06-26 06:51:55.444816562 +0000 --- ./scripts/Makefile.am.orig 2016-10-13 07:12:21.467778490 +0000
+++ ./scripts/Makefile.am 2014-08-04 12:33:14.213715432 +0000 +++ ./scripts/Makefile.am 2017-01-19 12:09:27.378564186 +0000
@@ -27,6 +27,7 @@ rpmconfig_SCRIPTS = \ @@ -26,6 +26,7 @@ rpmconfig_SCRIPTS = \
appdata.prov \ appdata.prov \
brp-compress brp-python-bytecompile brp-java-gcjcompile \ brp-compress brp-python-bytecompile brp-java-gcjcompile \
brp-strip brp-strip-comment-note brp-python-hardlink \ brp-strip brp-strip-comment-note brp-python-hardlink \
@ -8,29 +8,29 @@
brp-strip-shared brp-strip-static-archive \ brp-strip-shared brp-strip-static-archive \
check-files check-prereqs \ check-files check-prereqs \
check-buildroot check-rpaths check-rpaths-worker \ check-buildroot check-rpaths check-rpaths-worker \
--- ./scripts/brp-strip-comment-note.orig 2014-06-26 06:51:55.455816533 +0000 --- ./scripts/brp-strip-comment-note.orig 2017-01-19 12:09:27.378564186 +0000
+++ ./scripts/brp-strip-comment-note 2014-08-04 12:33:14.214715437 +0000 +++ ./scripts/brp-strip-comment-note 2017-01-19 12:13:02.079982258 +0000
@@ -16,6 +16,8 @@ esac @@ -16,6 +16,8 @@ esac
# for already stripped elf files in the build root # for already stripped elf files in the build root
for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \ for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \ grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
+ grep -v ' shared object,' | \ + grep -v ' shared object,' | \
+ grep -v '/lib/modules/' | \ + grep -v '/lib/modules/' | \
sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped/\1/p'`; do sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped.*/\1/p'`; do
note="-R .note" note="-R .note"
if $OBJDUMP -h $f | grep '^[ ]*[0-9]*[ ]*.note[ ]' -A 1 | \ if $OBJDUMP -h $f | grep '^[ ]*[0-9]*[ ]*.note[ ]' -A 1 | \
--- ./scripts/brp-strip.orig 2014-06-26 06:51:55.455816533 +0000 --- ./scripts/brp-strip.orig 2017-01-19 12:09:27.379564183 +0000
+++ ./scripts/brp-strip 2014-08-04 12:33:14.214715437 +0000 +++ ./scripts/brp-strip 2017-01-19 12:10:34.113383581 +0000
@@ -15,6 +15,7 @@ esac @@ -15,6 +15,7 @@ esac
for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \ for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \ grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
grep -v ' shared object,' | \ grep -v ' shared object,' | \
+ grep -v '/lib/modules/' | \ + grep -v '/lib/modules/' | \
sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped.*/\1/p'`; do
$STRIP -g "$f" || : $STRIP -g "$f" || :
done done
--- ./scripts/brp-suse.orig 2014-08-04 12:33:14.214715437 +0000 --- ./scripts/brp-suse.orig 2017-01-19 12:09:27.379564183 +0000
+++ ./scripts/brp-suse 2014-08-04 12:33:14.214715437 +0000 +++ ./scripts/brp-suse 2017-01-19 12:09:27.379564183 +0000
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
+#! /bin/sh +#! /bin/sh
+ +

View File

@ -1,5 +1,5 @@
--- ./scripts/brp-compress.orig 2010-12-03 12:11:57.000000000 +0000 --- ./scripts/brp-compress.orig 2017-01-19 12:14:04.529812394 +0000
+++ ./scripts/brp-compress 2011-05-11 14:44:21.000000000 +0000 +++ ./scripts/brp-compress 2017-01-19 12:18:22.488107819 +0000
@@ -5,51 +5,78 @@ if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD @@ -5,51 +5,78 @@ if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD
exit 0 exit 0
fi fi
@ -11,8 +11,8 @@
cd "$RPM_BUILD_ROOT" cd "$RPM_BUILD_ROOT"
# Compress man pages # Compress man pages
COMPRESS="gzip -9 -n" COMPRESS=${COMPRESS:-gzip -9 -n}
COMPRESS_EXT=.gz COMPRESS_EXT=${COMPRESS_EXT:-.gz}
+check_for_hard_link() +check_for_hard_link()
+{ +{

View File

@ -1,19 +1,68 @@
--- ./build/parseReqs.c.orig 2014-02-21 12:25:51.259664860 +0000 --- ./build/parseReqs.c.orig 2017-01-19 13:11:21.618153943 +0000
+++ ./build/parseReqs.c 2014-02-21 12:28:07.545664619 +0000 +++ ./build/parseReqs.c 2017-01-19 13:24:32.661841405 +0000
@@ -178,8 +178,14 @@ rpmRC parseRCPOT(rpmSpec spec, Package p @@ -42,7 +42,7 @@ static rpmRC checkEpoch(const char *s, c
if (rpmCharCheck(spec, EVR, ve-v, ".-_+:%{}~")) goto exit; return RPMRC_OK;
}
/* While ':' and '-' are valid, only one of each is valid. */ -static rpmRC checkDep(rpmSpec spec, char *N, char *EVR, char **emsg)
- if (checkSep(EVR, '-', &emsg) || checkSep(EVR, ':', &emsg)) +static rpmRC checkDep(rpmSpec spec, rpmsenseFlags tagflags, char *N, char *EVR, char **emsg)
- goto exit; {
+ if (checkSep(EVR, '-', &emsg) || checkSep(EVR, ':', &emsg)) { /*
+ if (tagflags & (RPMSENSE_FIND_REQUIRES|RPMSENSE_FIND_PROVIDES)) { * Tokens must begin with alphanumeric, _, or /, but we don't know
+ rpmlog(RPMLOG_WARNING, "%s: %s\n", emsg, r); @@ -65,6 +65,11 @@ static rpmRC checkDep(rpmSpec spec, char
+ } else {
+ rpmlog(RPMLOG_WARNING, _("line %d: %s: %s\n"), spec->lineNum, emsg, spec->line);
+ }
+ emsg = _free(emsg);
+ }
re = ve; /* ==> next token after EVR string starts here */ if (rpmExpandNumeric("%{?_wrong_version_format_terminate_build}"))
} else return RPMRC_FAIL;
+ if (tagflags & (RPMSENSE_FIND_REQUIRES|RPMSENSE_FIND_PROVIDES))
+ rpmlog(RPMLOG_WARNING, "%s\n", *emsg);
+ else
+ rpmlog(RPMLOG_WARNING, _("line %d: %s: %s\n"), spec->lineNum, *emsg, spec->line);
+ *emsg = _free(*emsg);
}
}
return RPMRC_OK;
@@ -72,6 +77,7 @@ static rpmRC checkDep(rpmSpec spec, char
struct parseRCPOTRichData {
rpmSpec spec;
+ rpmsenseFlags tagflags;
StringBuf sb;
};
@@ -109,7 +115,7 @@ static rpmRC parseRCPOTRichCB(void *cbda
appendStringBuf(sb, rel);
appendStringBuf(sb, EVR);
}
- rc = checkDep(data->spec, N, EVR, emsg);
+ rc = checkDep(data->spec, data->tagflags, N, EVR, emsg);
_free(N);
_free(EVR);
} else if (type == RPMRICH_PARSE_OP) {
@@ -231,6 +237,7 @@ rpmRC parseRCPOT(rpmSpec spec, Package p
goto exit;
}
data.spec = spec;
+ data.tagflags = tagflags;
data.sb = newStringBuf();
if (rpmrichParse(&r, &emsg, parseRCPOTRichCB, &data) != RPMRC_OK) {
freeStringBuf(data.sb);
@@ -282,7 +289,7 @@ rpmRC parseRCPOT(rpmSpec spec, Package p
}
/* check that dependency is well-formed */
- if (checkDep(spec, N, EVR, &emsg))
+ if (checkDep(spec, tagflags, N, EVR, &emsg))
goto exit;
if (nametag == RPMTAG_FILETRIGGERNAME ||
--- ./macros.in.orig 2017-01-19 13:15:43.113390933 +0000
+++ ./macros.in 2017-01-19 13:15:56.263352524 +0000
@@ -413,7 +413,7 @@ package or when debugging this package.\
%_invalid_encoding_terminates_build 0
# Should invalid version format in requires, provides, ... terminate a build?
-%_wrong_version_format_terminate_build 1
+%_wrong_version_format_terminate_build 0
#
# Should rpm try to download missing sources at build-time?

View File

@ -1,8 +1,8 @@
Support a database-local fsync setting. Needs berkeley db patch. Support a database-local fsync setting. Needs berkeley db patch.
--- ./lib/backend/dbconfig.c.orig 2011-01-03 13:57:41.000000000 +0000 --- ./lib/backend/db3.c.orig 2017-01-19 10:31:06.874215725 +0000
+++ ./lib/backend/dbconfig.c 2011-05-10 17:00:29.000000000 +0000 +++ ./lib/backend/db3.c 2017-01-19 10:32:51.825873926 +0000
@@ -58,8 +58,10 @@ static const struct poptOption rdbOption @@ -73,8 +73,10 @@ static const struct poptOption rdbOption
{ "mp_size", 0,POPT_ARG_INT, &staticcfg.db_cachesize, 0, { "mp_size", 0,POPT_ARG_INT, &staticcfg.db_cachesize, 0,
NULL, NULL }, NULL, NULL },
@ -12,12 +12,12 @@ Support a database-local fsync setting. Needs berkeley db patch.
+#endif +#endif
/* Per-dbi options */ /* Per-dbi options */
{ "nommap", 0,POPT_BIT_SET, &staticdbi.dbi_oflags, DB_NOMMAP, { "nommap", 0,POPT_BIT_SET, &staticdbicfg.dbi_oflags, DB_NOMMAP,
@@ -69,6 +71,8 @@ static const struct poptOption rdbOption @@ -84,6 +86,8 @@ static const struct poptOption rdbOption
NULL, NULL }, NULL, NULL },
{ "lockdbfd", 0,POPT_ARG_NONE, &staticdbi.dbi_lockdbfd, 0, { "lockdbfd", 0,POPT_ARG_NONE, &staticdbicfg.dbi_lockdbfd, 0,
NULL, NULL }, NULL, NULL },
+ { "nofsync", 0,POPT_BIT_SET, &staticdbi.dbi_oflags, DB_NOFSYNC, + { "nofsync", 0,POPT_BIT_SET, &staticdbicfg.dbi_oflags, DB_NOFSYNC,
+ NULL, NULL }, + NULL, NULL },
POPT_TABLEEND POPT_TABLEEND

View File

@ -1,6 +1,6 @@
--- ./lib/rpmdb.c.orig 2013-06-10 15:55:10.000000000 +0000 --- ./lib/rpmdb.c.orig 2016-10-21 09:44:00.306962087 +0000
+++ ./lib/rpmdb.c 2013-07-12 11:28:22.000000000 +0000 +++ ./lib/rpmdb.c 2017-01-19 10:36:12.529219141 +0000
@@ -730,10 +730,12 @@ int rpmdbClose(rpmdb db) @@ -450,9 +450,11 @@ int rpmdbClose(rpmdb db)
{ {
rpmdb * prev, next; rpmdb * prev, next;
int rc = 0; int rc = 0;
@ -8,12 +8,11 @@
if (db == NULL) if (db == NULL)
goto exit; goto exit;
+ dbmode = db->db_mode; + dbmode = db->db_mode;
(void) rpmdbUnlink(db);
if (db->nrefs > 0) prev = &rpmdbRock;
@@ -761,7 +763,7 @@ int rpmdbClose(rpmdb db) while ((next = *prev) != NULL && next != db)
@@ -487,7 +489,7 @@ int rpmdbClose(rpmdb db)
db = _free(db); db = _free(db);
@ -22,7 +21,7 @@
(void) rpmsqEnable(-SIGHUP, NULL); (void) rpmsqEnable(-SIGHUP, NULL);
(void) rpmsqEnable(-SIGINT, NULL); (void) rpmsqEnable(-SIGINT, NULL);
(void) rpmsqEnable(-SIGTERM, NULL); (void) rpmsqEnable(-SIGTERM, NULL);
@@ -830,7 +832,7 @@ static int openDatabase(const char * pre @@ -572,7 +574,7 @@ static int openDatabase(const char * pre
/* Try to ensure db home exists, error out if we can't even create */ /* Try to ensure db home exists, error out if we can't even create */
rc = rpmioMkpath(rpmdbHome(db), 0755, getuid(), getgid()); rc = rpmioMkpath(rpmdbHome(db), 0755, getuid(), getgid());
if (rc == 0) { if (rc == 0) {

View File

@ -1,5 +1,7 @@
--- ./tools/debugedit.c.orig 2011-07-18 16:53:12.000000000 +0000 Index: tools/debugedit.c
+++ ./tools/debugedit.c 2011-07-18 17:15:27.000000000 +0000 ===================================================================
--- tools/debugedit.c.orig 2017-02-27 13:35:18.727800856 +0100
+++ tools/debugedit.c 2017-02-27 14:22:33.975985617 +0100
@@ -162,7 +162,7 @@ strptr (DSO *dso, int sec, off_t offset) @@ -162,7 +162,7 @@ strptr (DSO *dso, int sec, off_t offset)
{ {
if (data->d_buf if (data->d_buf
@ -9,7 +11,7 @@
return (const char *) data->d_buf + (offset - data->d_off); return (const char *) data->d_buf + (offset - data->d_off);
} }
} }
@@ -503,9 +503,10 @@ static int @@ -505,9 +505,10 @@ static int
edit_dwarf2_line (DSO *dso, uint32_t off, char *comp_dir, int phase) edit_dwarf2_line (DSO *dso, uint32_t off, char *comp_dir, int phase)
{ {
unsigned char *ptr = debug_sections[DEBUG_LINE].data, *dir; unsigned char *ptr = debug_sections[DEBUG_LINE].data, *dir;
@ -20,8 +22,8 @@
+ char line_base; + char line_base;
unsigned char opcode_base; unsigned char opcode_base;
uint32_t value, dirt_cnt; uint32_t value, dirt_cnt;
size_t comp_dir_len = strlen (comp_dir); size_t comp_dir_len = !comp_dir ? 0 : strlen (comp_dir);
@@ -549,6 +550,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off @@ -555,6 +556,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
return 1; return 1;
} }
@ -29,7 +31,7 @@
opcode_base = ptr[4 + (value >= 4)]; opcode_base = ptr[4 + (value >= 4)];
ptr = dir = ptr + 4 + (value >= 4) + opcode_base; ptr = dir = ptr + 4 + (value >= 4) + opcode_base;
@@ -560,13 +562,13 @@ edit_dwarf2_line (DSO *dso, uint32_t off @@ -566,13 +568,13 @@ edit_dwarf2_line (DSO *dso, uint32_t off
++value; ++value;
} }
@ -45,7 +47,7 @@
ptr = (unsigned char *) strchr ((char *)ptr, 0) + 1; ptr = (unsigned char *) strchr ((char *)ptr, 0) + 1;
} }
ptr++; ptr++;
@@ -679,7 +681,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off @@ -685,7 +687,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
if (dest_dir) if (dest_dir)
{ {
@ -54,7 +56,7 @@
size_t base_len = strlen (base_dir); size_t base_len = strlen (base_dir);
size_t dest_len = strlen (dest_dir); size_t dest_len = strlen (dest_dir);
size_t shrank = 0; size_t shrank = 0;
@@ -693,11 +695,14 @@ edit_dwarf2_line (DSO *dso, uint32_t off @@ -699,11 +701,14 @@ edit_dwarf2_line (DSO *dso, uint32_t off
ptr = dir; ptr = dir;
} }
else else
@ -71,22 +73,29 @@
char *orig = strdup ((const char *) srcptr); char *orig = strdup ((const char *) srcptr);
@@ -724,10 +729,13 @@ edit_dwarf2_line (DSO *dso, uint32_t off @@ -730,11 +735,18 @@ edit_dwarf2_line (DSO *dso, uint32_t off
if (shrank > 0) if (shrank > 0)
{ {
- if (--shrank == 0) - if (--shrank == 0)
+ --shrank; - error (EXIT_FAILURE, 0,
+#if 0 - "canonicalization unexpectedly shrank by one character");
+ if (shrank == 0) + if (shrank == 1)
error (EXIT_FAILURE, 0, + {
"canonicalization unexpectedly shrank by one character"); + /* For size 1 we can't append a dummy entry as a '\0' tells
+ it the directory table ends prematurely and thus the file
+ table will end up empty. Simply append a / to the last
+ directory entry in this case. */
+ *(ptr - 1) = '/';
+ *ptr++ = '\0';
+ }
else else
+#endif
{ {
+ --shrank;
memset (ptr, 'X', shrank); memset (ptr, 'X', shrank);
ptr += shrank; ptr += shrank;
@@ -763,21 +771,26 @@ edit_dwarf2_line (DSO *dso, uint32_t off *ptr++ = '\0';
@@ -769,21 +781,26 @@ edit_dwarf2_line (DSO *dso, uint32_t off
} }
dirty_section (DEBUG_STR); dirty_section (DEBUG_STR);
} }

View File

@ -1,24 +1,24 @@
Include compilation directory in source file list if used. Include compilation directory in source file list if used.
--- ./tools/debugedit.c.orig 2011-05-11 14:27:32.000000000 +0000 --- ./tools/debugedit.c.orig 2017-03-01 12:51:20.851951816 +0000
+++ ./tools/debugedit.c 2011-05-11 15:31:31.000000000 +0000 +++ ./tools/debugedit.c 2017-03-01 12:54:14.020391379 +0000
@@ -503,6 +503,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off @@ -512,6 +512,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
uint32_t value, dirt_cnt; uint32_t value, dirt_cnt;
size_t comp_dir_len = strlen (comp_dir); size_t comp_dir_len = !comp_dir ? 0 : strlen (comp_dir);
size_t abs_file_cnt = 0, abs_dir_cnt = 0; size_t abs_file_cnt = 0, abs_dir_cnt = 0;
+ int comp_dir_used = 0; + int comp_dir_used = 0;
if (phase != 0) if (phase != 0)
return 0; return 0;
@@ -611,6 +612,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off @@ -620,6 +621,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
memcpy (p, dirt[value], dir_len); memcpy (s, comp_dir, comp_dir_len);
p[dir_len] = '/'; s[comp_dir_len] = '/';
memcpy (p + dir_len + 1, file, file_len + 1); p += comp_dir_len + 1;
+ comp_dir_used = 1; + comp_dir_used = 1;
} }
canonicalize_path (s, s); memcpy (p, dirt[value], dir_len);
if (list_file_fd != -1) p[dir_len] = '/';
@@ -644,6 +646,30 @@ edit_dwarf2_line (DSO *dso, uint32_t off @@ -657,6 +659,30 @@ edit_dwarf2_line (DSO *dso, uint32_t off
} }
++ptr; ++ptr;

View File

@ -1,8 +1,8 @@
Make debugedit build without dwarf.h Make debugedit build without dwarf.h
--- ./Makefile.am.orig 2012-03-20 08:07:25.000000000 +0000 --- ./Makefile.am.orig 2016-10-21 09:44:00.299962090 +0000
+++ ./Makefile.am 2012-06-01 10:05:04.000000000 +0000 +++ ./Makefile.am 2017-01-19 10:25:42.252270176 +0000
@@ -149,7 +149,6 @@ rpm2cpio_LDADD += @WITH_NSS_LIB@ @WITH_P @@ -155,7 +155,6 @@ rpm2archive_LDADD += @WITH_NSS_LIB@ @WIT
if LIBELF if LIBELF
@ -10,16 +10,16 @@ Make debugedit build without dwarf.h
rpmconfig_SCRIPTS += scripts/find-debuginfo.sh rpmconfig_SCRIPTS += scripts/find-debuginfo.sh
rpmlibexec_PROGRAMS += debugedit rpmlibexec_PROGRAMS += debugedit
@@ -162,7 +161,6 @@ elfdeps_SOURCES = tools/elfdeps.c @@ -172,7 +171,6 @@ rpmlibexec_PROGRAMS += sepdebugcrcfix
elfdeps_LDADD = rpmio/librpmio.la sepdebugcrcfix_SOURCES = tools/sepdebugcrcfix.c
elfdeps_LDADD += @WITH_LIBELF_LIB@ @WITH_POPT_LIB@ sepdebugcrcfix_LDADD = @WITH_LIBELF_LIB@
endif endif
-endif -endif
rpmlibexec_PROGRAMS += rpmdeps rpmlibexec_PROGRAMS += rpmdeps
rpmdeps_SOURCES = tools/rpmdeps.c rpmdeps_SOURCES = tools/rpmdeps.c
--- ./tools/debugedit.c.orig 2012-03-20 08:07:25.000000000 +0000 --- ./tools/debugedit.c.orig 2016-10-13 07:12:21.471778488 +0000
+++ ./tools/debugedit.c 2012-06-01 10:05:04.000000000 +0000 +++ ./tools/debugedit.c 2017-01-19 10:25:42.252270176 +0000
@@ -37,7 +37,37 @@ @@ -37,7 +37,37 @@
#include <popt.h> #include <popt.h>

View File

@ -1,6 +1,6 @@
--- ./scripts/find-debuginfo.sh.orig 2011-05-11 16:10:22.000000000 +0000 --- ./scripts/find-debuginfo.sh.orig 2017-01-19 13:03:40.090496764 +0000
+++ ./scripts/find-debuginfo.sh 2011-05-11 16:10:48.000000000 +0000 +++ ./scripts/find-debuginfo.sh 2017-01-19 13:03:55.515451969 +0000
@@ -211,6 +211,17 @@ while read nlinks inum f; do @@ -315,6 +315,17 @@ while read nlinks inum f; do
;; ;;
*) continue ;; *) continue ;;
esac esac

View File

@ -1,7 +1,7 @@
Create a debuginfo package for each subpackage. Create a debuginfo package for each subpackage.
--- ./build/files.c.orig 2014-06-30 08:47:13.928503700 +0000 --- ./build/files.c.orig 2016-10-21 09:44:00.300962089 +0000
+++ ./build/files.c 2014-09-17 11:03:25.001860575 +0000 +++ ./build/files.c 2017-01-19 13:01:34.731859805 +0000
@@ -21,6 +21,10 @@ @@ -21,6 +21,10 @@
#include <rpm/rpmlog.h> #include <rpm/rpmlog.h>
#include <rpm/rpmbase64.h> #include <rpm/rpmbase64.h>
@ -13,7 +13,7 @@ Create a debuginfo package for each subpackage.
#include "rpmio/rpmio_internal.h" /* XXX rpmioSlurp */ #include "rpmio/rpmio_internal.h" /* XXX rpmioSlurp */
#include "misc/fts.h" #include "misc/fts.h"
#include "lib/rpmfi_internal.h" /* XXX fi->apath */ #include "lib/rpmfi_internal.h" /* XXX fi->apath */
@@ -2031,13 +2035,238 @@ exit: @@ -2156,13 +2160,238 @@ exit:
return rc; return rc;
} }
@ -252,7 +252,7 @@ Create a debuginfo package for each subpackage.
genSourceRpmName(spec); genSourceRpmName(spec);
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
@@ -2055,8 +2284,12 @@ rpmRC processBinaryFiles(rpmSpec spec, r @@ -2180,8 +2409,12 @@ rpmRC processBinaryFiles(rpmSpec spec, r
rpmlog(RPMLOG_NOTICE, _("Processing files: %s\n"), nvr); rpmlog(RPMLOG_NOTICE, _("Processing files: %s\n"), nvr);
free(nvr); free(nvr);
@ -267,9 +267,9 @@ Create a debuginfo package for each subpackage.
goto exit; goto exit;
a = headerGetString(pkg->header, RPMTAG_ARCH); a = headerGetString(pkg->header, RPMTAG_ARCH);
--- ./build/parseSpec.c.orig 2014-09-17 11:00:45.295614365 +0000 --- ./build/parseSpec.c.orig 2017-01-19 13:01:28.985876261 +0000
+++ ./build/parseSpec.c 2014-09-17 11:01:56.371278963 +0000 +++ ./build/parseSpec.c 2017-01-19 13:01:34.732859802 +0000
@@ -507,7 +507,7 @@ static void initSourceHeader(rpmSpec spe @@ -564,7 +564,7 @@ static void initSourceHeader(rpmSpec spe
} }
/* Add extra provides to package. */ /* Add extra provides to package. */
@ -278,9 +278,9 @@ Create a debuginfo package for each subpackage.
{ {
const char *arch, *name; const char *arch, *name;
char *evr, *isaprov; char *evr, *isaprov;
--- ./build/rpmbuild_internal.h.orig 2014-08-18 06:59:55.487105642 +0000 --- ./build/rpmbuild_internal.h.orig 2016-10-13 07:12:21.364778540 +0000
+++ ./build/rpmbuild_internal.h 2014-09-17 11:01:45.138331580 +0000 +++ ./build/rpmbuild_internal.h 2017-01-19 13:01:34.732859802 +0000
@@ -433,6 +433,13 @@ int addReqProv(Package pkg, rpmTagVal ta @@ -442,6 +442,13 @@ int addReqProv(Package pkg, rpmTagVal ta
/** \ingroup rpmbuild /** \ingroup rpmbuild
@ -294,8 +294,8 @@ Create a debuginfo package for each subpackage.
* Add rpmlib feature dependency. * Add rpmlib feature dependency.
* @param pkg package * @param pkg package
* @param feature rpm feature name (i.e. "rpmlib(Foo)" for feature Foo) * @param feature rpm feature name (i.e. "rpmlib(Foo)" for feature Foo)
--- ./macros.in.orig 2014-09-17 11:00:45.299614345 +0000 --- ./macros.in.orig 2017-01-19 13:01:28.988876252 +0000
+++ ./macros.in 2014-09-17 11:00:50.013592123 +0000 +++ ./macros.in 2017-01-19 13:01:34.733859800 +0000
@@ -186,24 +186,10 @@ @@ -186,24 +186,10 @@
# Template for debug information sub-package. # Template for debug information sub-package.
%debug_package \ %debug_package \
@ -321,9 +321,9 @@ Create a debuginfo package for each subpackage.
%description debugsource\ %description debugsource\
This package provides debug sources for package %{name}.\ This package provides debug sources for package %{name}.\
Debug sources are useful when developing applications that use this\ Debug sources are useful when developing applications that use this\
--- ./scripts/find-debuginfo.sh.orig 2014-09-17 11:00:45.293614374 +0000 --- ./scripts/find-debuginfo.sh.orig 2017-01-19 13:01:28.983876267 +0000
+++ ./scripts/find-debuginfo.sh 2014-09-17 11:00:50.014592113 +0000 +++ ./scripts/find-debuginfo.sh 2017-01-19 13:01:34.733859800 +0000
@@ -149,6 +149,11 @@ debug_link() @@ -220,6 +220,11 @@ debug_link()
# Provide .2, .3, ... symlinks to all filename instances of this build-id. # Provide .2, .3, ... symlinks to all filename instances of this build-id.
make_id_dup_link() make_id_dup_link()
{ {
@ -335,9 +335,9 @@ Create a debuginfo package for each subpackage.
local id="$1" file="$2" idfile local id="$1" file="$2" idfile
local n=1 local n=1
@@ -311,19 +316,11 @@ while read nlinks inum f; do @@ -424,19 +429,11 @@ if $run_dwz && type dwz >/dev/null 2>&1
fi
fi fi
done || exit
-# For each symlink whose target has a .debug file, -# For each symlink whose target has a .debug file,
-# make a .debug symlink to that file. -# make a .debug symlink to that file.

11
emptymanifest.diff Normal file
View File

@ -0,0 +1,11 @@
--- ./macros.in.orig 2017-01-20 10:15:12.677868723 +0000
+++ ./macros.in 2017-01-20 10:15:30.385819715 +0000
@@ -403,7 +403,7 @@ package or when debugging this package.\
# Should empty %files manifest file terminate a build?
#
# Note: The default value should be 0 for legacy compatibility.
-%_empty_manifest_terminate_build 1
+%_empty_manifest_terminate_build 0
#
# Should binaries in noarch packages terminate a build?

View File

@ -1,6 +1,6 @@
--- ./lib/psm.c.orig 2016-04-21 13:22:27.901033751 +0000 --- ./lib/transaction.c.orig 2017-01-19 13:46:06.163983390 +0000
+++ ./lib/psm.c 2016-04-21 13:23:45.324742853 +0000 +++ ./lib/transaction.c 2017-01-19 13:47:03.649807918 +0000
@@ -285,7 +285,9 @@ static rpmRC runScript(rpmts ts, rpmte t @@ -1435,7 +1435,9 @@ rpmRC runScript(rpmts ts, rpmte te, ARGV
int warn_only = (stag != RPMTAG_PREIN && int warn_only = (stag != RPMTAG_PREIN &&
stag != RPMTAG_PREUN && stag != RPMTAG_PREUN &&
stag != RPMTAG_PRETRANS && stag != RPMTAG_PRETRANS &&
@ -8,12 +8,12 @@
+ stag != RPMTAG_VERIFYSCRIPT && + stag != RPMTAG_VERIFYSCRIPT &&
+ !(stag == RPMTAG_POSTIN && + !(stag == RPMTAG_POSTIN &&
+ rpmExpandNumeric("%{_fail_on_postinstall_errors}"))); + rpmExpandNumeric("%{_fail_on_postinstall_errors}")));
rpmdb rdb = rpmtsGetRdb(ts);
sfd = rpmtsNotify(ts, te, RPMCALLBACK_SCRIPT_START, stag, 0); sfd = rpmtsNotify(ts, te, RPMCALLBACK_SCRIPT_START, stag, 0);
if (sfd == NULL) --- ./macros.in.orig 2017-01-19 13:44:57.362193434 +0000
--- ./macros.in.orig 2016-04-21 13:21:58.933142657 +0000 +++ ./macros.in 2017-01-19 13:45:13.038145574 +0000
+++ ./macros.in 2016-04-21 13:22:27.902033748 +0000 @@ -1374,6 +1374,11 @@ end}
@@ -1327,6 +1327,11 @@ end}
%{-S:%{expand:%__scm_setup_%{-S*} %{!-v:-q}}}\ %{-S:%{expand:%__scm_setup_%{-S*} %{!-v:-q}}}\
%{!-N:%autopatch %{-v} %{-p:-p%{-p*}}} %{!-N:%autopatch %{-v} %{-p:-p%{-p*}}}

View File

@ -2,25 +2,25 @@ Support for finding Python translation files in %python_sitelib
or %python_sitearch. or %python_sitearch.
Sascha Peilicke <speilicke@suse.com> Sascha Peilicke <speilicke@suse.com>
--- scripts/find-lang.sh 2013-09-27 20:04:33.000000000 +0200 --- ./scripts/find-lang.sh.orig 2017-01-19 13:07:41.062796290 +0000
+++ scripts/find-lang.sh-new 2013-11-07 18:35:39.879014359 +0100 +++ ./scripts/find-lang.sh 2017-01-19 13:07:48.561774470 +0000
@@ -32,6 +32,7 @@ @@ -35,6 +35,7 @@ Additional options:
Additional options:
--without-gnome do not find GNOME help files --without-gnome do not find GNOME help files
--with-mate find MATE help files
--without-kde do not find KDE help files --without-kde do not find KDE help files
+ --with-python find Python translation files + --with-python find Python translation files
--with-qt find Qt translation files --with-qt find Qt translation files
--with-html find HTML files
--with-man find localized man pages --with-man find localized man pages
--all-name match all package/domain names @@ -61,6 +62,7 @@ shift
@@ -56,6 +57,7 @@
GNOME= GNOME=
MATE=#
KDE= KDE=
+PYTHON=# +PYTHON=#
QT=# QT=#
MAN=# MAN=#
MO= HTML=#
@@ -83,6 +85,10 @@ @@ -93,6 +95,10 @@ while test $# -gt 0 ; do
KDE=# KDE=#
shift shift
;; ;;
@ -31,7 +31,7 @@ Sascha Peilicke <speilicke@suse.com>
--with-qt ) --with-qt )
QT= QT=
shift shift
@@ -122,21 +128,25 @@ @@ -136,21 +142,25 @@ MO_NAME_NEW=$MO_NAME.tmp.$$
rm -f $MO_NAME_NEW rm -f $MO_NAME_NEW
# remove languages we do not yet support - but give out statistics # remove languages we do not yet support - but give out statistics
@ -71,7 +71,7 @@ Sascha Peilicke <speilicke@suse.com>
find "$TOP_DIR" -type f -o -type l|sed ' find "$TOP_DIR" -type f -o -type l|sed '
s:'"$TOP_DIR"':: s:'"$TOP_DIR"'::
@@ -187,6 +197,16 @@ @@ -201,6 +211,16 @@ s:'"$TOP_DIR"'::
s:^[^%].*:: s:^[^%].*::
'"$ONLY_C"'/%lang(C)/!d '"$ONLY_C"'/%lang(C)/!d
'"$NO_C"'/%lang(C)/d '"$NO_C"'/%lang(C)/d

View File

@ -1,6 +1,6 @@
--- ./scripts/find-debuginfo.sh.orig 2012-03-20 08:07:25.000000000 +0000 --- ./scripts/find-debuginfo.sh.orig 2016-11-03 09:10:28.922784796 +0000
+++ ./scripts/find-debuginfo.sh 2012-06-01 12:26:12.000000000 +0000 +++ ./scripts/find-debuginfo.sh 2017-01-19 12:32:12.596821861 +0000
@@ -153,6 +153,20 @@ make_id_dup_link() @@ -224,6 +224,20 @@ make_id_dup_link()
debug_link "$file" "/$idfile" debug_link "$file" "/$idfile"
} }
@ -21,7 +21,7 @@
# Make a build-id symlink for id $1 with suffix $3 to file $2. # Make a build-id symlink for id $1 with suffix $3 to file $2.
make_id_link() make_id_link()
{ {
@@ -173,7 +187,7 @@ make_id_link() @@ -244,7 +258,7 @@ make_id_link()
local other=$(readlink -m "$root_idfile") local other=$(readlink -m "$root_idfile")
other=${other#$RPM_BUILD_ROOT} other=${other#$RPM_BUILD_ROOT}
if cmp -s "$root_idfile" "$RPM_BUILD_ROOT$file" || if cmp -s "$root_idfile" "$RPM_BUILD_ROOT$file" ||
@ -30,14 +30,14 @@
# Two copies. Maybe one has to be setuid or something. # Two copies. Maybe one has to be setuid or something.
echo >&2 "*** WARNING: identical binaries are copied, not linked:" echo >&2 "*** WARNING: identical binaries are copied, not linked:"
echo >&2 " $file" echo >&2 " $file"
@@ -202,12 +216,18 @@ strict_error=ERROR @@ -273,12 +287,18 @@ strict_error=ERROR
$strict || strict_error=WARNING $strict || strict_error=WARNING
# Strip ELF binaries # Strip ELF binaries
-find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \ -find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
- \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \ - \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
- -print | - -print |
-file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p' | -file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped.*/\1/p' |
-xargs --no-run-if-empty stat -c '%h %D_%i %n' | -xargs --no-run-if-empty stat -c '%h %D_%i %n' |
+find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm /111 -or -name "*.so*" -or -name "*.ko" \) -print 0 | sort -z | +find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm /111 -or -name "*.so*" -or -name "*.ko" \) -print 0 | sort -z |
+xargs --no-run-if-empty -0 stat -c '%h %D_%i %n' | +xargs --no-run-if-empty -0 stat -c '%h %D_%i %n' |
@ -54,21 +54,20 @@
get_debugfn "$f" get_debugfn "$f"
[ -f "${debugfn}" ] && continue [ -f "${debugfn}" ] && continue
@@ -231,8 +251,11 @@ while read nlinks inum f; do @@ -302,7 +322,11 @@ while read nlinks inum f; do
fi fi
echo "extracting debug info from $f" echo "extracting debug info from $f"
- id=$(/usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \ - id=$(${lib_rpm_dir}/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \
- -i -l "$SOURCEFILE" "$f") || exit
+ mode=$(stat -c %a "$f") + mode=$(stat -c %a "$f")
+ chmod +w "$f" + chmod +w "$f"
+ id=$($(DEBUGEDIT=$(which debugedit 2>/dev/null); \ + id=$($(DEBUGEDIT=$(which debugedit 2>/dev/null); \
+ echo ${DEBUGEDIT:-/usr/lib/rpm/debugedit}) -b "$RPM_BUILD_DIR" \ + echo ${DEBUGEDIT:-/usr/lib/rpm/debugedit}) \
+ -d /usr/src/debug -i -l "$SOURCEFILE" "$f") || exit + -b "$RPM_BUILD_DIR" -d /usr/src/debug \
-i -l "$SOURCEFILE" "$f") || exit
if [ $nlinks -gt 1 ]; then if [ $nlinks -gt 1 ]; then
eval linkedid_$inum=\$id eval linkedid_$inum=\$id
fi @@ -323,13 +347,25 @@ while read nlinks inum f; do
@@ -252,13 +275,25 @@ while read nlinks inum f; do
esac esac
mkdir -p "${debugdn}" mkdir -p "${debugdn}"
@ -99,9 +98,9 @@
+ chmod $mode $f + chmod $mode $f
+ ) || : + ) || :
if [ -n "$id" ]; then # strip -g implies we have full symtab, don't add mini symtab in that case.
make_id_link "$id" "$dn/$(basename $f)" $strip_g || ($include_minidebug && add_minidebug "${debugfn}" "$f")
@@ -287,12 +322,14 @@ if [ -s "$SOURCEFILE" ]; then @@ -399,12 +435,14 @@ if [ -s "$SOURCEFILE" ]; then
# stupid cpio creates new directories in mode 0700, fixup # stupid cpio creates new directories in mode 0700, fixup
find "${RPM_BUILD_ROOT}/usr/src/debug" -type d -print0 | find "${RPM_BUILD_ROOT}/usr/src/debug" -type d -print0 |
xargs --no-run-if-empty -0 chmod a+rx xargs --no-run-if-empty -0 chmod a+rx

View File

@ -1,25 +1,23 @@
SUSE specific kernel provides/requires scripts --- ./scripts/Makefile.am.orig 2017-01-19 12:33:33.358599138 +0000
+++ ./scripts/Makefile.am 2017-01-19 12:35:00.045359629 +0000
--- ./scripts/Makefile.am.orig 2014-08-04 12:34:11.656463310 +0000
+++ ./scripts/Makefile.am 2014-08-04 12:34:15.063448350 +0000
@@ -16,6 +16,7 @@ EXTRA_DIST = \ @@ -16,6 +16,7 @@ EXTRA_DIST = \
tcl.req tgpg vpkg-provides.sh \ tgpg vpkg-provides.sh \
find-requires find-provides \ find-requires find-provides \
find-requires.php find-provides.php \ find-requires.php find-provides.php \
+ find-requires.ksyms find-provides.ksyms \ + find-requires.ksyms find-provides.ksyms \
find-php-provides find-php-requires \
mono-find-requires mono-find-provides \ mono-find-requires mono-find-provides \
ocaml-find-requires.sh ocaml-find-provides.sh \ ocaml-find-requires.sh ocaml-find-provides.sh \
@@ -33,6 +34,7 @@ rpmconfig_SCRIPTS = \ pkgconfigdeps.sh libtooldeps.sh appdata.prov \
@@ -32,6 +33,7 @@ rpmconfig_SCRIPTS = \
check-buildroot check-rpaths check-rpaths-worker \ check-buildroot check-rpaths check-rpaths-worker \
find-lang.sh find-requires find-provides \ find-lang.sh find-requires find-provides \
perl.prov perl.req perldeps.pl pythondeps.sh osgideps.pl \ perl.prov perl.req pythondeps.sh \
+ find-requires.ksyms find-provides.ksyms \ + find-requires.ksyms find-provides.ksyms \
mono-find-requires mono-find-provides \ mono-find-requires mono-find-provides \
pkgconfigdeps.sh libtooldeps.sh \ pkgconfigdeps.sh libtooldeps.sh \
ocaml-find-requires.sh ocaml-find-provides.sh \ ocaml-find-requires.sh ocaml-find-provides.sh \
--- ./scripts/find-provides.ksyms.orig 2014-08-04 12:34:15.062448349 +0000 --- ./scripts/find-provides.ksyms.orig 2017-01-19 12:33:33.359599136 +0000
+++ ./scripts/find-provides.ksyms 2014-08-04 12:34:15.062448349 +0000 +++ ./scripts/find-provides.ksyms 2017-01-19 12:33:33.359599136 +0000
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
+#! /bin/bash +#! /bin/bash
+ +
@ -38,8 +36,8 @@ SUSE specific kernel provides/requires scripts
+ esac + esac
+done \ +done \
+| sort -u +| sort -u
--- ./scripts/find-requires.ksyms.orig 2014-08-04 12:34:15.062448349 +0000 --- ./scripts/find-requires.ksyms.orig 2017-01-19 12:33:33.359599136 +0000
+++ ./scripts/find-requires.ksyms 2014-08-04 12:34:15.062448349 +0000 +++ ./scripts/find-requires.ksyms 2017-01-19 12:33:33.359599136 +0000
@@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
+#! /bin/bash +#! /bin/bash
+ +

View File

@ -1,6 +1,6 @@
--- ./scripts/find-lang.sh.orig 2012-03-20 08:07:25.000000000 +0000 --- ./scripts/find-lang.sh.orig 2016-10-13 07:12:21.467778490 +0000
+++ ./scripts/find-lang.sh 2012-06-01 12:35:41.000000000 +0000 +++ ./scripts/find-lang.sh 2017-01-19 12:45:51.491544036 +0000
@@ -28,10 +28,10 @@ the top of the tree containing the files @@ -30,11 +30,11 @@ the top of the tree containing the files
PACKAGE_NAME is the %{name} of the package. This should also be PACKAGE_NAME is the %{name} of the package. This should also be
the basename of the .mo files. the output is written to the basename of the .mo files. the output is written to
PACKAGE_NAME.lang unless \$3 is given in which case output is written PACKAGE_NAME.lang unless \$3 is given in which case output is written
@ -8,24 +8,26 @@
+to \$3 (note that \$3 is appended to if given). +to \$3 (note that \$3 is appended to if given).
Additional options: Additional options:
- --with-gnome find GNOME help files - --with-gnome find GNOME help files
- --with-kde find KDE help files
+ --without-gnome do not find GNOME help files + --without-gnome do not find GNOME help files
--with-mate find MATE help files
- --with-kde find KDE help files
+ --without-kde do not find KDE help files + --without-kde do not find KDE help files
--with-qt find Qt translation files --with-qt find Qt translation files
--with-html find HTML files
--with-man find localized man pages --with-man find localized man pages
--all-name match all package/domain names @@ -58,9 +58,9 @@ else NAME=$1
@@ -54,8 +54,8 @@ else NAME=$1
fi fi
shift shift
-GNOME=# -GNOME=#
-KDE=#
+GNOME= +GNOME=
MATE=#
-KDE=#
+KDE= +KDE=
QT=# QT=#
MAN=# MAN=#
MO= HTML=#
@@ -73,6 +73,14 @@ while test $# -gt 0 ; do @@ -83,6 +83,14 @@ while test $# -gt 0 ; do
KDE= KDE=
shift shift
;; ;;
@ -40,7 +42,7 @@
--with-qt ) --with-qt )
QT= QT=
shift shift
@@ -97,13 +105,19 @@ while test $# -gt 0 ; do @@ -111,13 +119,19 @@ while test $# -gt 0 ; do
esac esac
done done
@ -61,7 +63,7 @@
find "$TOP_DIR" -type d|sed ' find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"':: s:'"$TOP_DIR"'::
@@ -111,27 +125,27 @@ s:'"$TOP_DIR"':: @@ -125,27 +139,27 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/[a-zA-Z0-9.\_\-]\+\)$:%lang(\2) %doc \1\2\3\4/: '"$ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/[a-zA-Z0-9.\_\-]\+\)$:%lang(\2) %doc \1\2\3\4/:
s:^\([^%].*\):: s:^\([^%].*\)::
s:%lang(C) :: s:%lang(C) ::
@ -96,16 +98,39 @@
find "$TOP_DIR" -type f|sed ' find "$TOP_DIR" -type f|sed '
s:'"$TOP_DIR"':: s:'"$TOP_DIR"'::
@@ -139,7 +153,7 @@ s:'"$TOP_DIR"':: @@ -153,7 +167,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1: '"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1:
s:^[^%].*:: s:^[^%].*::
s:%lang(C) :: s:%lang(C) ::
-/^$/d' >> $MO_NAME -/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find $TOP_DIR -type d|sed '
s:'"$TOP_DIR"'::
@@ -162,11 +176,11 @@ s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$MATE"'s:\(.*/mate/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) \1\2:
'"$ALL_NAME$MATE"'s:\(.*/mate/help/[a-zA-Z0-9.\_\-]\+$\):%dir \1:
'"$ALL_NAME$MATE"'s:\(.*/mate/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]/.\+\)::
-'"$ALL_NAME$GNOME"'s:\(.*/mate/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) \1\2:
+'"$ALL_NAME$MATE"'s:\(.*/mate/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) \1\2:
s:%lang(.*) .*/mate/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+/.*::
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
@@ -181,7 +195,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$MATE"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1:
s:^[^%].*::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW +/^$/d' >> $MO_NAME_NEW
KDE3_HTML=`kde-config --expandvars --install html 2>/dev/null` KDE3_HTML=`kde-config --expandvars --install html 2>/dev/null`
if [ x"$KDE3_HTML" != x -a -d "$TOP_DIR$KDE3_HTML" ]; then if [ x"$KDE3_HTML" != x -a -d "$TOP_DIR$KDE3_HTML" ]; then
@@ -151,7 +165,7 @@ s:'"$TOP_DIR"':: @@ -193,7 +207,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
s:^\([^%].*\):: s:^\([^%].*\)::
s:%lang(C) :: s:%lang(C) ::
@ -114,7 +139,7 @@
fi fi
KDE4_HTML=`kde4-config --expandvars --install html 2>/dev/null` KDE4_HTML=`kde4-config --expandvars --install html 2>/dev/null`
@@ -164,7 +178,7 @@ s:'"$TOP_DIR"':: @@ -206,7 +220,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
s:^\([^%].*\):: s:^\([^%].*\)::
s:%lang(C) :: s:%lang(C) ::
@ -122,8 +147,17 @@
+/^$/d' >> $MO_NAME_NEW +/^$/d' >> $MO_NAME_NEW
fi fi
find "$TOP_DIR" -type d|sed '
@@ -217,7 +231,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type f -o -type l|sed ' find "$TOP_DIR" -type f -o -type l|sed '
@@ -176,7 +190,7 @@ s:'"$TOP_DIR"':: s:'"$TOP_DIR"'::
@@ -228,7 +242,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1: '"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1:
s:^[^%].*:: s:^[^%].*::
s:%lang(C) :: s:%lang(C) ::
@ -132,14 +166,14 @@
find "$TOP_DIR" -type d|sed ' find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"':: s:'"$TOP_DIR"'::
@@ -184,17 +198,22 @@ s:'"$TOP_DIR"':: @@ -236,17 +250,22 @@ s:'"$TOP_DIR"'::
'"$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:^\([^%].*\)::
s:%lang(C) :: s:%lang(C) ::
-/^$/d' >> $MO_NAME -/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW +/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type f -o -type l|sed ' find "$TOP_DIR" -type f -o -type l|sed -r 's/\.(bz2|gz|xz|lzma|Z)$//g' | sed '
s:'"$TOP_DIR"':: s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1*: '"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1*:
s:^\([^%].*\):: s:^\([^%].*\)::

View File

@ -1,28 +0,0 @@
--- ./build/pack.c.orig 2014-10-06 13:05:52.801204141 +0000
+++ ./build/pack.c 2014-10-06 13:06:19.815077722 +0000
@@ -290,6 +290,8 @@ static rpmRC generateSignature(char *SHA
rpmRC rc = RPMRC_OK;
char *reservedSpace;
int spaceSize = 0;
+ uint32_t size32 = (uint32_t)size;
+ uint32_t payloadSize32 = (uint32_t)payloadSize;
/* Prepare signature */
sig = rpmNewSignature();
@@ -322,14 +324,14 @@ static rpmRC generateSignature(char *SHA
td.tag = payloadtag;
td.count = 1;
td.type = typetag;
- td.data = &payloadSize;
+ td.data = typetag == RPM_INT32_TYPE ? &payloadSize32 : &payloadSize;
headerPut(sig, &td, HEADERPUT_DEFAULT);
rpmtdReset(&td);
td.tag = sizetag;
td.count = 1;
td.type = typetag;
- td.data = &size;
+ td.data = typetag == RPM_INT32_TYPE ? &size32 : &size;
headerPut(sig, &td, HEADERPUT_DEFAULT);
spaceSize = rpmExpandNumeric("%{__gpg_reserved_space}");

View File

@ -1,5 +1,5 @@
--- ./scripts/Makefile.am.orig 2014-02-20 12:52:33.971814948 +0000 --- ./scripts/Makefile.am.orig 2017-01-19 13:05:33.490167306 +0000
+++ ./scripts/Makefile.am 2014-02-20 12:52:40.089814937 +0000 +++ ./scripts/Makefile.am 2017-01-19 13:06:29.192005359 +0000
@@ -21,6 +21,7 @@ EXTRA_DIST = \ @@ -21,6 +21,7 @@ EXTRA_DIST = \
ocaml-find-requires.sh ocaml-find-provides.sh \ ocaml-find-requires.sh ocaml-find-provides.sh \
pkgconfigdeps.sh libtooldeps.sh appdata.prov \ pkgconfigdeps.sh libtooldeps.sh appdata.prov \
@ -8,16 +8,16 @@
macros.perl macros.php macros.python macros.perl macros.php macros.python
rpmconfig_SCRIPTS = \ rpmconfig_SCRIPTS = \
@@ -37,6 +38,7 @@ rpmconfig_SCRIPTS = \ @@ -38,6 +39,7 @@ rpmconfig_SCRIPTS = \
pkgconfigdeps.sh libtooldeps.sh \ pkgconfigdeps.sh libtooldeps.sh \
ocaml-find-requires.sh ocaml-find-provides.sh \ ocaml-find-requires.sh ocaml-find-provides.sh \
fontconfig.prov desktop-file.prov script.req \ fontconfig.prov desktop-file.prov script.req \
+ sysvinitdeps.sh \ + sysvinitdeps.sh \
rpmdb_loadcvt rpm2cpio.sh tcl.req tgpg rpmdb_loadcvt rpm2cpio.sh tgpg
rpmconfig_DATA = \ rpmconfig_DATA = \
--- ./scripts/sysvinitdeps.sh.orig 2014-02-20 12:52:40.089814937 +0000 --- ./scripts/sysvinitdeps.sh.orig 2017-01-19 13:05:37.523155583 +0000
+++ ./scripts/sysvinitdeps.sh 2014-02-20 12:52:40.089814937 +0000 +++ ./scripts/sysvinitdeps.sh 2017-01-19 13:05:37.523155583 +0000
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
+#!/bin/sh +#!/bin/sh
+ +

View File

@ -1,8 +1,8 @@
Convert output to the current locale. Assumes utf8 input if the Convert output to the current locale. Assumes utf8 input if the
decoding works, otherwise iso-8859-1. decoding works, otherwise iso-8859-1.
--- ./lib/tagexts.c.orig 2010-12-03 12:11:57.000000000 +0000 --- ./lib/tagexts.c.orig 2016-10-21 09:44:00.309962086 +0000
+++ ./lib/tagexts.c 2011-05-10 16:05:30.000000000 +0000 +++ ./lib/tagexts.c 2017-01-19 10:27:57.243832208 +0000
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
* \file lib/formats.c * \file lib/formats.c
*/ */
@ -11,9 +11,9 @@ decoding works, otherwise iso-8859-1.
#include "system.h" #include "system.h"
#include <rpm/rpmtypes.h> #include <rpm/rpmtypes.h>
@@ -150,6 +151,114 @@ exit: @@ -197,6 +198,114 @@ typedef enum tMode_e {
return rc; TRANSFILETRIGGER = 2,
} } tMode;
+static char * strtolocale(char *str) +static char * strtolocale(char *str)
+{ +{
@ -125,8 +125,8 @@ decoding works, otherwise iso-8859-1.
+ +
/** /**
* Retrieve trigger info. * Retrieve trigger info.
* @param h header * @param mode type of trigger (see tMode_e)
@@ -435,10 +544,41 @@ static int i18nTag(Header h, rpmTag tag, @@ -607,10 +716,41 @@ static int i18nTag(Header h, rpmTag tag,
#endif #endif
rc = headerGet(h, tag, td, HEADERGET_ALLOC); rc = headerGet(h, tag, td, HEADERGET_ALLOC);
@ -168,7 +168,7 @@ decoding works, otherwise iso-8859-1.
* Retrieve summary text. * Retrieve summary text.
* @param h header * @param h header
* @retval td tag data container * @retval td tag data container
@@ -460,6 +600,16 @@ static int descriptionTag(Header h, rpmt @@ -634,6 +774,16 @@ static int descriptionTag(Header h, rpmt
return i18nTag(h, RPMTAG_DESCRIPTION, td, hgflags); return i18nTag(h, RPMTAG_DESCRIPTION, td, hgflags);
} }
@ -185,7 +185,7 @@ decoding works, otherwise iso-8859-1.
/** /**
* Retrieve group text. * Retrieve group text.
* @param h header * @param h header
@@ -677,6 +827,8 @@ static const struct headerTagFunc_s rpmH @@ -971,6 +1121,8 @@ static const struct headerTagFunc_s rpmH
{ RPMTAG_LONGARCHIVESIZE, longarchivesizeTag }, { RPMTAG_LONGARCHIVESIZE, longarchivesizeTag },
{ RPMTAG_LONGSIZE, longsizeTag }, { RPMTAG_LONGSIZE, longsizeTag },
{ RPMTAG_LONGSIGSIZE, longsigsizeTag }, { RPMTAG_LONGSIGSIZE, longsigsizeTag },

View File

@ -1,5 +1,5 @@
--- ./macros.in.orig 2014-06-27 07:25:43.624470700 +0000 --- ./macros.in.orig 2016-10-21 09:47:06.238886221 +0000
+++ ./macros.in 2014-08-04 12:38:02.067474055 +0000 +++ ./macros.in 2017-01-19 12:48:15.414136831 +0000
@@ -185,22 +185,22 @@ @@ -185,22 +185,22 @@
# Template for debug information sub-package. # Template for debug information sub-package.
@ -45,7 +45,7 @@
# Algorithm to use for generating file checksum digests on build. # Algorithm to use for generating file checksum digests on build.
# If not specified or 0, MD5 is used. # If not specified or 0, MD5 is used.
@@ -440,16 +441,22 @@ package or when debugging this package.\ @@ -459,16 +460,22 @@ package or when debugging this package.\
# Directories whose contents should be considered as documentation. # Directories whose contents should be considered as documentation.
%__docdir_path %{_datadir}/doc:%{_datadir}/man:%{_datadir}/info:%{_datadir}/gtk-doc/html:%{?_docdir}:%{?_mandir}:%{?_infodir}:%{?_javadocdir}:/usr/doc:/usr/man:/usr/info:/usr/X11R6/man %__docdir_path %{_datadir}/doc:%{_datadir}/man:%{_datadir}/info:%{_datadir}/gtk-doc/html:%{?_docdir}:%{?_mandir}:%{?_infodir}:%{?_javadocdir}:/usr/doc:/usr/man:/usr/info:/usr/X11R6/man
@ -70,7 +70,7 @@
# #
# Path to file attribute classifications for automatic dependency # Path to file attribute classifications for automatic dependency
@@ -519,10 +526,10 @@ package or when debugging this package.\ @@ -538,10 +545,10 @@ package or when debugging this package.\
# Misc BDB tuning options # Misc BDB tuning options
%__dbi_other mp_mmapsize=128Mb mp_size=1Mb %__dbi_other mp_mmapsize=128Mb mp_size=1Mb
@ -83,7 +83,7 @@
#============================================================================== #==============================================================================
# ---- GPG/PGP/PGP5 signature macros. # ---- GPG/PGP/PGP5 signature macros.
@@ -823,7 +830,7 @@ package or when debugging this package.\ @@ -840,7 +847,7 @@ package or when debugging this package.\
%_build_vendor %{_host_vendor} %_build_vendor %{_host_vendor}
%_build_os %{_host_os} %_build_os %{_host_os}
%_host @host@ %_host @host@
@ -92,7 +92,7 @@
%_host_cpu @host_cpu@ %_host_cpu @host_cpu@
%_host_vendor @host_vendor@ %_host_vendor @host_vendor@
%_host_os @host_os@ %_host_os @host_os@
@@ -991,6 +998,183 @@ done \ @@ -1009,6 +1016,183 @@ done \
%python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))") %python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))")
%python_version %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])") %python_version %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])")
@ -276,7 +276,7 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# arch macro for all Intel i?86 compatibile processors # arch macro for all Intel i?86 compatibile processors
# (Note: This macro (and it's analogues) will probably be obsoleted when # (Note: This macro (and it's analogues) will probably be obsoleted when
@@ -1001,7 +1185,9 @@ done \ @@ -1019,7 +1203,9 @@ done \
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# arch macro for all supported ARM processors # arch macro for all supported ARM processors
@ -286,8 +286,8 @@
+%armb armv4b armv5b armv5teb +%armb armv4b armv5b armv5teb
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# arch macro for all supported Sparc processors # arch macro for 32-bit MIPS processors
@@ -1127,3 +1313,24 @@ end} @@ -1174,3 +1360,24 @@ end}
# \endverbatim # \endverbatim
#*/ #*/

19
nobfd.diff Normal file
View File

@ -0,0 +1,19 @@
--- ./tools/sepdebugcrcfix.c.orig 2017-01-19 15:28:12.521321881 +0000
+++ ./tools/sepdebugcrcfix.c 2017-01-19 15:28:26.895267612 +0000
@@ -28,7 +28,6 @@
#include <error.h>
#include <libelf.h>
#include <gelf.h>
-#include <bfd.h>
#define _(x) x
#define static_assert(expr) \
@@ -46,7 +45,7 @@ static const bool false = 0, true = 1;
static unsigned long
calc_gnu_debuglink_crc32 (unsigned long crc,
const unsigned char *buf,
- bfd_size_type len)
+ size_t len)
{
static const unsigned long crc32_table[256] =
{

View File

@ -1,7 +1,7 @@
# #
# spec file for package python3-rpm # spec file for package python3-rpm
# #
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -17,7 +17,7 @@
Name: python3-rpm Name: python3-rpm
Version: 4.12.0.1 Version: 4.13.0.1
Release: 0 Release: 0
Summary: Python Bindings for Manipulating RPM Packages Summary: Python Bindings for Manipulating RPM Packages
License: GPL-2.0+ License: GPL-2.0+

View File

@ -1,18 +0,0 @@
--- ./lib/psm.c.orig 2014-08-04 12:51:13.219051031 +0000
+++ ./lib/psm.c 2014-08-04 12:57:38.294335406 +0000
@@ -673,8 +673,15 @@ static rpmRC rpmpsmUnpack(rpmpsm psm)
if (!(rpmtsFlags(psm->ts) & RPMTRANS_FLAG_JUSTDB)) {
if (rpmfilesFC(psm->files) > 0) {
+ rpmtransFlags oldtsflags = rpmtsFlags(psm->ts);
+ Header h = rpmteHeader(psm->te);
+ if (h && headerIsEntry(h, RPMTAG_REMOVETID))
+ (void) rpmtsSetFlags(psm->ts, oldtsflags | RPMTRANS_FLAG_NOMD5);
fsmrc = rpmPackageFilesInstall(psm->ts, psm->te, psm->files,
psm, &failedFile);
+ if (h && headerIsEntry(h, RPMTAG_REMOVETID))
+ (void) rpmtsSetFlags(psm->ts, oldtsflags);
+ headerFree(h);
saved_errno = errno;
}
}

View File

@ -1,63 +0,0 @@
--- luaext/lposix.c
+++ luaext/lposix.c
@@ -361,22 +361,35 @@ static int Pfork(lua_State *L) /** for
static int Pwait(lua_State *L) /** wait([pid]) */
{
+#if LUA_VERSION_NUM < 503
pid_t pid = luaL_optint(L, 1, -1);
+#else
+ pid_t pid = (int)luaL_optinteger(L, 1, -1);
+#endif
return pushresult(L, waitpid(pid, NULL, 0), NULL);
}
static int Pkill(lua_State *L) /** kill(pid,[sig]) */
{
+#if LUA_VERSION_NUM < 503
pid_t pid = luaL_checkint(L, 1);
int sig = luaL_optint(L, 2, SIGTERM);
+#else
+ pid_t pid = (int)luaL_checkinteger(L, 1);
+ int sig = (int)luaL_optinteger(L, 2, SIGTERM);
+#endif
return pushresult(L, kill(pid, sig), NULL);
}
static int Psleep(lua_State *L) /** sleep(seconds) */
{
+#if LUA_VERSION_NUM < 503
unsigned int seconds = luaL_checkint(L, 1);
+#else
+ unsigned int seconds = (int)luaL_checkinteger(L, 1);
+#endif
lua_pushnumber(L, sleep(seconds));
return 1;
}
@@ -529,7 +542,11 @@ static int Pgetprocessid(lua_State *L)
static int Pttyname(lua_State *L) /** ttyname(fd) */
{
+#if LUA_VERSION_NUM < 503
int fd=luaL_optint(L, 1, 0);
+#else
+ int fd = (int)luaL_optinteger(L, 1, 0);
+#endif
lua_pushstring(L, ttyname(fd));
return 1;
}
@@ -879,8 +896,11 @@ static int exit_override(lua_State *L)
{
if (!have_forked)
return luaL_error(L, "exit not permitted in this context");
-
+#if LUA_VERSION_NUM < 503
exit(luaL_optint(L, 1, EXIT_SUCCESS));
+#else
+ exit((int)luaL_optinteger(L, 1, EXIT_SUCCESS));
+#endif
}
static const luaL_Reg os_overrides[] =

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:77ddd228fc332193c874aa0b424f41db1ff8b7edbb6a338703ef747851f50229
size 4129093

3
rpm-4.13.0.1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:27fc7ba7d419622b1ce34d6507aa70b0808bc344021d298072a0c2ec165f9b0d
size 4305261

View File

@ -1,17 +1,15 @@
Index: scripts/find-lang.sh --- ./scripts/find-lang.sh.orig 2017-01-19 13:48:53.548472521 +0000
=================================================================== +++ ./scripts/find-lang.sh 2017-01-19 13:53:09.922690409 +0000
--- scripts/find-lang.sh.orig
+++ scripts/find-lang.sh
@@ -11,6 +11,8 @@ @@ -11,6 +11,8 @@
#in tact and are included with any redistribution of this file or any #in tact and are included with any redistribution of this file or any
#work based on this file. #work based on this file.
+# 2016-05-19 Dominique Leuenberger <dimstar@suse.de> +# 2016-05-19 Dominique Leuenberger <dimstar@suse.de>
+# * Add support to create a metainfo.xml for -lang packages +# * Add support to create a metainfo.xml for -lang packages
# 2011-11-16 Per Øyvind Karlsen <peroyvind@mandriva.org>
# * add support for HTML files (from Mandriva)
# 2004-06-20 Arkadiusz Miśkiewicz <arekm@pld-linux.org> # 2004-06-20 Arkadiusz Miśkiewicz <arekm@pld-linux.org>
# * merge PLD changes, kde, all-name (mkochano,pascalek@PLD) @@ -41,6 +43,7 @@ Additional options:
# 1999-10-19 Artur Frysiak <wiget@pld-linux.org>
@@ -37,6 +39,7 @@ Additional options:
--with-man find localized man pages --with-man find localized man pages
--all-name match all package/domain names --all-name match all package/domain names
--without-mo do not find locale files --without-mo do not find locale files
@ -19,31 +17,31 @@ Index: scripts/find-lang.sh
EOF EOF
exit 1 exit 1
} }
@@ -66,6 +69,7 @@ ALL_NAME=# @@ -72,6 +75,7 @@ ALL_NAME=#
NO_ALL_NAME= NO_ALL_NAME=
ONLY_C=# ONLY_C=#
NO_C=# NO_C=#
+METAINFO=0 +METAINFO=#
while test $# -gt 0 ; do while test $# -gt 0 ; do
case "${1}" in case "${1}" in
@@ -114,6 +118,11 @@ while test $# -gt 0 ; do @@ -128,6 +132,11 @@ while test $# -gt 0 ; do
NO_C= NO_C=
shift shift
;; ;;
+ --metainfo ) + --metainfo )
+ METAINFO=1 + METAINFO=
+ METADESKID=${2} + METADESKID=${2}
+ shift 2 + shift 2
+ ;; + ;;
* ) * )
MO_NAME=${1} MO_NAME=${1}
shift shift
@@ -278,6 +287,24 @@ if ! grep -q / $MO_NAME_NEW; then @@ -330,6 +339,24 @@ if ! grep -q / $MO_NAME_NEW; then
exit 1 exit 1
fi fi
+if [ "${METAINFO}" -gt 0 ]; then +if [ -z "${METAINFO}" ] ; then
+ # create a metainfo.xml file for METADESKID + # create a metainfo.xml file for METADESKID
+ mkdir -p ${TOP_DIR}/usr/share/appdata + mkdir -p ${TOP_DIR}/usr/share/appdata
+ cat > ${TOP_DIR}/usr/share/appdata/${METADESKID}-lang.metainfo.xml <<EOF + cat > ${TOP_DIR}/usr/share/appdata/${METADESKID}-lang.metainfo.xml <<EOF

View File

@ -1,7 +1,7 @@
# #
# spec file for package rpm-python # spec file for package rpm-python
# #
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -17,7 +17,7 @@
Name: rpm-python Name: rpm-python
Version: 4.12.0.1 Version: 4.13.0.1
Release: 0 Release: 0
#!BuildIgnore: rpmlint-Factory #!BuildIgnore: rpmlint-Factory
Summary: Python Bindings for Manipulating RPM Packages Summary: Python Bindings for Manipulating RPM Packages

View File

@ -1,3 +1,38 @@
-------------------------------------------------------------------
Wed Mar 1 13:55:51 CET 2017 - mls@suse.de
- Tweak debugedit-comp-dir patch so that debugedit does not crash
with a NULL comp_dir [bnc#1027228]
-------------------------------------------------------------------
Mon Feb 27 13:24:26 UTC 2017 - rguenther@suse.com
- Fix debugedit-canon-fix.diff to handle directory table size
shrinking by 1 byte correctly.
-------------------------------------------------------------------
Mon Feb 20 14:17:26 CET 2017 - mls@suse.de
- update to rpm-4.13.0.1
* fix several out of bounds reads in the OpenPGP parser
* fix handling of OpenPGP reserved tag (should be rejected)
* fix various crashes from malformed packages with invalid tags
* fix transfiletriggerpostun nondeterministic behavior
-------------------------------------------------------------------
Thu Jan 19 15:10:48 CET 2017 - mls@suse.de
- update to rpm-4.13.0
* support of rich (boolean) dependencies
* support of file triggers
- new patches:
* nobfd.diff
* emptymanifest.diff
- dropped patches:
* rpm-4.12.0.1-lua-5.3.patch
* fixsizeforbigendian.diff
* repackage-nomd5.diff
------------------------------------------------------------------- -------------------------------------------------------------------
Sun Oct 30 14:46:36 UTC 2016 - jengelh@inai.de Sun Oct 30 14:46:36 UTC 2016 - jengelh@inai.de

View File

@ -1,7 +1,7 @@
# #
# spec file for package rpm # spec file for package rpm
# #
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -47,9 +47,9 @@ PreReq: %fillup_prereq
Summary: The RPM Package Manager Summary: The RPM Package Manager
License: GPL-2.0+ License: GPL-2.0+
Group: System/Packages Group: System/Packages
Version: 4.12.0.1 Version: 4.13.0.1
Release: 0 Release: 0
Source: http://rpm.org/releases/rpm-4.12.x/rpm-%{version}.tar.bz2 Source: http://ftp.rpm.org/releases/rpm-4.13.x/rpm-%{version}.tar.bz2
Source1: RPM-HOWTO.tar.bz2 Source1: RPM-HOWTO.tar.bz2
Source4: rpm-suse_macros Source4: rpm-suse_macros
Source5: rpmsort Source5: rpmsort
@ -109,7 +109,6 @@ Patch55: debugsubpkg.diff
Patch56: debuglink.diff Patch56: debuglink.diff
Patch57: debuginfo-mono.patch Patch57: debuginfo-mono.patch
Patch58: lazystatfs.diff Patch58: lazystatfs.diff
Patch59: repackage-nomd5.diff
Patch60: safeugid.diff Patch60: safeugid.diff
Patch61: noprereqdeprec.diff Patch61: noprereqdeprec.diff
Patch65: initscriptsprov.diff Patch65: initscriptsprov.diff
@ -130,12 +129,12 @@ Patch85: brp-compress-no-img.patch
Patch92: find-lang-python.patch Patch92: find-lang-python.patch
Patch93: weakdepscompat.diff Patch93: weakdepscompat.diff
Patch94: checksepwarn.diff Patch94: checksepwarn.diff
Patch95: fixsizeforbigendian.diff
Patch96: modalias-no-kgraft.diff Patch96: modalias-no-kgraft.diff
Patch97: rpm-4.12.0.1-lua-5.3.patch
Patch98: normalize_blocksize.diff Patch98: normalize_blocksize.diff
Patch99: enable-postin-scripts-error.diff Patch99: enable-postin-scripts-error.diff
Patch100: rpm-findlang-inject-metainfo.patch Patch100: rpm-findlang-inject-metainfo.patch
Patch101: nobfd.diff
Patch102: emptymanifest.diff
Patch6464: auto-config-update-aarch64-ppc64le.diff Patch6464: auto-config-update-aarch64-ppc64le.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
# #
@ -225,12 +224,12 @@ rm -f rpmdb/db.h
%patch -P 20 -P 21 -P 24 -P 25 -P 26 -P 27 -P 28 -P 29 %patch -P 20 -P 21 -P 24 -P 25 -P 26 -P 27 -P 28 -P 29
%patch -P 30 -P 31 -P 32 -P 33 -P 34 -P 35 -P 36 -P 37 -P 38 -P 39 %patch -P 30 -P 31 -P 32 -P 33 -P 34 -P 35 -P 36 -P 37 -P 38 -P 39
%patch -P 41 -P 42 -P 43 -P 44 -P 45 -P 46 -P 47 -P 48 -P 49 %patch -P 41 -P 42 -P 43 -P 44 -P 45 -P 46 -P 47 -P 48 -P 49
%patch -P 50 -P 51 -P 52 -P 53 -P 54 -P 55 -P 56 -P 57 -P 58 -P 59 %patch -P 50 -P 51 -P 52 -P 53 -P 54 -P 55 -P 56 -P 57 -P 58
%patch -P 60 -P 61 -P 65 -P 66 -P 67 -P 68 -P 69 %patch -P 60 -P 61 -P 65 -P 66 -P 67 -P 68 -P 69
%patch -P 70 -P 71 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79 %patch -P 70 -P 71 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79
%patch -P 85 %patch -P 85
%patch -P 92 -P 93 -P 94 -P 95 -P 96 -P 97 -P 98 -P 99 %patch -P 92 -P 93 -P 94 -P 96 -P 98 -P 99
%patch -P 100 %patch -P 100 -P 101 -P 102
%ifarch aarch64 ppc64le %ifarch aarch64 ppc64le
%patch6464 %patch6464

View File

@ -1,5 +1,5 @@
--- ./rpmrc.in.orig 2014-06-27 07:25:43.624470700 +0000 --- ./rpmrc.in.orig 2016-10-21 09:44:00.345962071 +0000
+++ ./rpmrc.in 2014-08-04 12:44:21.192842515 +0000 +++ ./rpmrc.in 2017-01-19 12:52:53.018348891 +0000
@@ -12,16 +12,16 @@ @@ -12,16 +12,16 @@
# "fat" binary with both archs, for Darwin # "fat" binary with both archs, for Darwin
optflags: fat -O2 -g -arch i386 -arch ppc optflags: fat -O2 -g -arch i386 -arch ppc
@ -54,7 +54,7 @@
optflags: hppa1.0 -O2 -g -mpa-risc-1-0 optflags: hppa1.0 -O2 -g -mpa-risc-1-0
optflags: hppa1.1 -O2 -g -mpa-risc-1-0 optflags: hppa1.1 -O2 -g -mpa-risc-1-0
optflags: hppa1.2 -O2 -g -mpa-risc-1-0 optflags: hppa1.2 -O2 -g -mpa-risc-1-0
@@ -67,10 +68,10 @@ optflags: armv4tl -O2 -g -march=armv4t @@ -74,10 +75,10 @@ optflags: armv4tl -O2 -g -march=armv4t
optflags: armv5tel -O2 -g -march=armv5te optflags: armv5tel -O2 -g -march=armv5te
optflags: armv5tejl -O2 -g -march=armv5te optflags: armv5tejl -O2 -g -march=armv5te
optflags: armv6l -O2 -g -march=armv6 optflags: armv6l -O2 -g -march=armv6
@ -67,7 +67,7 @@
optflags: armv7hnl -O2 -g -march=armv7-a -mfloat-abi=hard -mfpu=neon optflags: armv7hnl -O2 -g -march=armv7-a -mfloat-abi=hard -mfpu=neon
optflags: m68k -O2 -g -fomit-frame-pointer optflags: m68k -O2 -g -fomit-frame-pointer
@@ -83,8 +84,8 @@ optflags: atariclone -O2 -g -fomit-frame @@ -90,8 +91,8 @@ optflags: atariclone -O2 -g -fomit-frame
optflags: milan -O2 -g -fomit-frame-pointer optflags: milan -O2 -g -fomit-frame-pointer
optflags: hades -O2 -g -fomit-frame-pointer optflags: hades -O2 -g -fomit-frame-pointer
@ -78,7 +78,7 @@
optflags: sh3 -O2 -g optflags: sh3 -O2 -g
optflags: sh4 -O2 -g -mieee optflags: sh4 -O2 -g -mieee
@@ -255,17 +256,17 @@ os_canon: MacOSX: macosx 21 @@ -286,17 +287,17 @@ os_canon: MacOSX: macosx 21
############################################################# #############################################################
# For a given uname().machine, the default build arch # For a given uname().machine, the default build arch
@ -104,9 +104,17 @@
buildarchtranslate: i486: i386 buildarchtranslate: i486: i386
buildarchtranslate: i386: i386 buildarchtranslate: i386: i386
@@ -334,6 +335,15 @@ buildarchtranslate: sh4a: sh4 @@ -318,6 +319,7 @@ buildarchtranslate: sparc64v: sparc64
buildarchtranslate: osfmach3_ppc: ppc
buildarchtranslate: aarch64: aarch64 buildarchtranslate: powerpc: ppc
buildarchtranslate: powerppc: ppc
+buildarchtranslate: powerpc64: ppc64
buildarchtranslate: ppc8260: ppc
buildarchtranslate: ppc8560: ppc
buildarchtranslate: ppc32dy4: ppc
@@ -378,6 +380,15 @@ buildarchtranslate: aarch64: aarch64
buildarchtranslate: riscv: riscv64
buildarchtranslate: riscv64: riscv64
+buildarchtranslate: parisc: hppa +buildarchtranslate: parisc: hppa
+buildarchtranslate: hppa2.0: hppa +buildarchtranslate: hppa2.0: hppa
@ -120,7 +128,7 @@
############################################################# #############################################################
# Architecture compatibility # Architecture compatibility
@@ -391,14 +401,20 @@ arch_compat: mipsel: noarch @@ -442,14 +453,20 @@ arch_compat: mips64r6el: mipsr6el
arch_compat: hppa2.0: hppa1.2 arch_compat: hppa2.0: hppa1.2
arch_compat: hppa1.2: hppa1.1 arch_compat: hppa1.2: hppa1.1
arch_compat: hppa1.1: hppa1.0 arch_compat: hppa1.1: hppa1.0
@ -143,7 +151,7 @@
arch_compat: armv4tl: armv4l arch_compat: armv4tl: armv4l
arch_compat: armv4l: armv3l arch_compat: armv4l: armv3l
arch_compat: armv3l: noarch arch_compat: armv3l: noarch
@@ -420,7 +436,7 @@ arch_compat: i370: noarch @@ -471,7 +488,7 @@ arch_compat: i370: noarch
arch_compat: s390: noarch arch_compat: s390: noarch
arch_compat: s390x: s390 noarch arch_compat: s390x: s390 noarch
@ -152,14 +160,8 @@
arch_compat: x86_64: amd64 em64t athlon noarch arch_compat: x86_64: amd64 em64t athlon noarch
arch_compat: amd64: x86_64 em64t athlon noarch arch_compat: amd64: x86_64 em64t athlon noarch
@@ -505,12 +521,15 @@ buildarch_compat: ppc64le: noarch fat @@ -574,7 +591,9 @@ buildarch_compat: mips64r6: noarch
buildarch_compat: ppc64pseries: ppc64 buildarch_compat: mips64r6el: noarch
buildarch_compat: ppc64iseries: ppc64
buildarch_compat: ppc64p7: ppc64
+buildarchtranslate: powerpc64: ppc64
buildarch_compat: mips: noarch
buildarch_compat: mipsel: noarch
buildarch_compat: armv4b: noarch buildarch_compat: armv4b: noarch
+buildarch_compat: armv7hl: armv7l +buildarch_compat: armv7hl: armv7l
@ -168,7 +170,7 @@
buildarch_compat: armv6l: armv5tejl buildarch_compat: armv6l: armv5tejl
buildarch_compat: armv5tejl: armv5tel buildarch_compat: armv5tejl: armv5tel
buildarch_compat: armv5tel: armv4tl buildarch_compat: armv5tel: armv4tl
@@ -525,7 +544,8 @@ buildarch_compat: armv6hl: noarch @@ -589,7 +608,8 @@ buildarch_compat: armv6hl: noarch
buildarch_compat: hppa2.0: hppa1.2 buildarch_compat: hppa2.0: hppa1.2
buildarch_compat: hppa1.2: hppa1.1 buildarch_compat: hppa1.2: hppa1.1
buildarch_compat: hppa1.1: hppa1.0 buildarch_compat: hppa1.1: hppa1.0

View File

@ -1,8 +1,8 @@
Patch machine detection code: detect transmeta, rename parisc to hppa. [#52713] Patch machine detection code: detect transmeta, rename parisc to hppa. [#52713]
--- ./lib/rpmrc.c.orig 2012-06-01 10:38:24.000000000 +0000 --- ./lib/rpmrc.c.orig 2017-01-19 10:38:55.294687058 +0000
+++ ./lib/rpmrc.c 2012-06-01 10:44:59.000000000 +0000 +++ ./lib/rpmrc.c 2017-01-19 10:39:13.697626840 +0000
@@ -786,6 +786,14 @@ static inline int RPMClass(void) @@ -817,6 +817,14 @@ static inline int RPMClass(void)
cpu = (tfms>>8)&15; cpu = (tfms>>8)&15;
@ -16,9 +16,9 @@ Patch machine detection code: detect transmeta, rename parisc to hppa. [#52713]
+ +
sigaction(SIGILL, &oldsa, NULL); sigaction(SIGILL, &oldsa, NULL);
if (cpu < 6) #define USER686 ((1<<4) | (1<<8) | (1<<15))
@@ -1023,6 +1031,12 @@ static void defaultMachine(const char ** @@ -1101,6 +1109,12 @@ static void defaultMachine(rpmrcCtx ctx,
strcpy(un.machine, "mips"); # endif
# endif # endif
+#if defined(__linux__) +#if defined(__linux__)

View File

@ -2,52 +2,31 @@ Suspend exclusive database lock when scriptlets get called, allowing
read access in scriptlets. Only needed for DB_PRIVATE (aka global) read access in scriptlets. Only needed for DB_PRIVATE (aka global)
locking. locking.
--- ./lib/backend/db3.c.orig 2014-08-04 12:25:29.288759808 +0000 --- ./lib/backend/db3.c.orig 2017-01-19 15:31:32.166569447 +0000
+++ ./lib/backend/db3.c 2014-08-04 12:30:30.829430726 +0000 +++ ./lib/backend/db3.c 2017-01-19 15:32:29.239335811 +0000
@@ -625,6 +625,63 @@ static int dbiFlock(dbiIndex dbi, int mo @@ -541,6 +541,46 @@ static void db3_dbSetFSync(rpmdb rdb, in
return rc;
}
+int dbiSuspendDBLock(dbiIndex dbi, unsigned int flags) static int db3_Ctrl(rpmdb rdb, dbCtrlOp ctrl)
+{ {
+ struct flock l; + struct flock l;
+ int rc = 0;
+ int fdno = -1;
+ DB * db = dbi->dbi_db;
+
+ if (!dbi->dbi_lockdbfd)
+ return 0;
+ if (!(dbi->dbi_rpmdb->db_mode & (O_RDWR|O_WRONLY)))
+ return 0;
+ if (_lockdbfd == 0)
+ return 0;
+ if (!(db->fd(db, &fdno) == 0 && fdno >= 0))
+ return 1;
+ memset(&l, 0, sizeof(l));
+ l.l_whence = 0;
+ l.l_start = 0;
+ l.l_len = 0;
+ l.l_type = F_RDLCK;
+ rc = fcntl(fdno, F_SETLK, (void *)&l);
+ if (rc)
+ rpmlog(RPMLOG_WARNING, _("could not suspend database lock\n"));
+ return rc;
+}
+
+int dbiResumeDBLock(dbiIndex dbi, unsigned int flags)
+{
+ struct flock l;
+ int rc = 0;
+ int tries; + int tries;
+ int fdno = -1; + int fdno = -1;
+ DB * db = dbi->dbi_db; + dbiIndex dbi;
+ DB * db;
+ +
+ if (!dbi->dbi_lockdbfd) + switch (ctrl) {
+ case DB_CTRL_SUSPEND_DBLOCK:
+ case DB_CTRL_RESUME_DBLOCK:
+ dbi = rdb->db_pkgs; /* packages db only */
+ if (!dbi)
+ return 1;
+ if (!dbi->cfg.dbi_lockdbfd || (dbi->dbi_flags & DBI_VERIFYONLY) != 0)
+ return 0; + return 0;
+ if (!(dbi->dbi_rpmdb->db_mode & (O_RDWR|O_WRONLY))) + if (!(dbi->dbi_rpmdb->db_mode & (O_RDWR|O_WRONLY)))
+ return 0; + return 0;
+ if (_lockdbfd == 0) + if (_lockdbfd == 0)
+ return 0; + return 0;
+ db = dbi->dbi_db;
+ if (!(db->fd(db, &fdno) == 0 && fdno >= 0)) + if (!(db->fd(db, &fdno) == 0 && fdno >= 0))
+ return 1; + return 1;
+ for (tries = 0; tries < 2; tries++) { + for (tries = 0; tries < 2; tries++) {
@ -55,98 +34,82 @@ locking.
+ l.l_whence = 0; + l.l_whence = 0;
+ l.l_start = 0; + l.l_start = 0;
+ l.l_len = 0; + l.l_len = 0;
+ l.l_type = F_WRLCK; + l.l_type = ctrl == DB_CTRL_SUSPEND_DBLOCK ? F_RDLCK : F_WRLCK;
+ rc = fcntl(fdno, tries ? F_SETLKW : F_SETLK, (void *)&l); + if (!fcntl(fdno, tries ? F_SETLKW : F_SETLK, (void *)&l))
+ if (!rc) + return 0;
+ break; + if (ctrl == DB_CTRL_SUSPEND_DBLOCK) {
+ rpmlog(RPMLOG_WARNING, _("could not suspend database lock\n"));
+ return 1;
+ }
+ if (tries == 0) + if (tries == 0)
+ rpmlog(RPMLOG_WARNING, _("waiting to reestablish exclusive database lock\n")); + rpmlog(RPMLOG_WARNING, _("waiting to reestablish exclusive database lock\n"));
+ } + }
+ return rc; + return 1;
+} + default:
+ + break;
int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags) + }
{ return 0;
const char *dbhome = rpmdbHome(rdb); }
--- ./lib/backend/dbi.h.orig 2014-06-26 06:51:54.101820242 +0000
+++ ./lib/backend/dbi.h 2014-08-04 12:25:29.288759808 +0000
@@ -92,6 +92,24 @@ struct dbiIndex_s {
extern "C" {
#endif
+/** \ingroup dbi --- ./lib/backend/dbi.h.orig 2017-01-19 15:31:32.166569447 +0000
+ * Suspend the exclusive lock on the dbi +++ ./lib/backend/dbi.h 2017-01-19 15:31:34.816559478 +0000
+ * @param dbi index database handle @@ -17,7 +17,9 @@ typedef enum dbCtrlOp_e {
+ * @param flags (unused) DB_CTRL_UNLOCK_RO = 2,
+ * @return 0 on success DB_CTRL_LOCK_RW = 3,
+ */ DB_CTRL_UNLOCK_RW = 4,
+RPM_GNUC_INTERNAL - DB_CTRL_INDEXSYNC = 5
+int dbiSuspendDBLock(dbiIndex dbi, unsigned int flags); + DB_CTRL_INDEXSYNC = 5,
+ + DB_CTRL_SUSPEND_DBLOCK = 100,
+/** \ingroup dbi + DB_CTRL_RESUME_DBLOCK = 101
+ * Reacquire an exclusive lock on the dbi } dbCtrlOp;
+ * @param dbi index database handle
+ * @param flags (unused)
+ * @return 0 on success
+ */
+RPM_GNUC_INTERNAL
+int dbiResumeDBLock(dbiIndex dbi, unsigned int flags);
+
RPM_GNUC_INTERNAL typedef struct dbiIndex_s * dbiIndex;
/* Globally enable/disable fsync in the backend */ --- ./lib/rpmdb.c.orig 2017-01-19 15:31:32.162569461 +0000
--- ./lib/psm.c.orig 2014-08-04 12:25:29.289759769 +0000 +++ ./lib/rpmdb.c 2017-01-19 15:31:34.817559474 +0000
+++ ./lib/psm.c 2014-08-04 12:27:04.230340235 +0000 @@ -2706,6 +2706,12 @@ int rpmdbCtrl(rpmdb db, rpmdbCtrlOp ctrl
@@ -291,10 +291,12 @@ static rpmRC runScript(rpmts ts, rpmte t case RPMDB_CTRL_INDEXSYNC:
dbctrl = DB_CTRL_INDEXSYNC;
break;
+ case RPMDB_CTRL_SUSPEND_DBLOCK:
+ dbctrl = DB_CTRL_SUSPEND_DBLOCK;
+ break;
+ case RPMDB_CTRL_RESUME_DBLOCK:
+ dbctrl = DB_CTRL_RESUME_DBLOCK;
+ break;
}
return dbctrl ? dbCtrl(db, dbctrl) : 1;
}
--- ./lib/rpmdb.h.orig 2016-10-03 08:08:36.582686286 +0000
+++ ./lib/rpmdb.h 2017-01-19 15:31:34.818559471 +0000
@@ -35,7 +35,9 @@ typedef enum rpmdbCtrlOp_e {
RPMDB_CTRL_UNLOCK_RO = 2,
RPMDB_CTRL_LOCK_RW = 3,
RPMDB_CTRL_UNLOCK_RW = 4,
- RPMDB_CTRL_INDEXSYNC = 5
+ RPMDB_CTRL_INDEXSYNC = 5,
+ RPMDB_CTRL_SUSPEND_DBLOCK = 100,
+ RPMDB_CTRL_RESUME_DBLOCK = 101
} rpmdbCtrlOp;
/** \ingroup rpmdb
--- ./lib/transaction.c.orig 2016-10-21 09:44:00.309962086 +0000
+++ ./lib/transaction.c 2017-01-19 15:31:34.818559471 +0000
@@ -1425,15 +1425,18 @@ rpmRC runScript(rpmts ts, rpmte te, ARGV
stag != RPMTAG_PREUN &&
stag != RPMTAG_PRETRANS &&
stag != RPMTAG_VERIFYSCRIPT);
+ rpmdb rdb = rpmtsGetRdb(ts);
sfd = rpmtsNotify(ts, te, RPMCALLBACK_SCRIPT_START, stag, 0);
if (sfd == NULL) if (sfd == NULL)
sfd = rpmtsScriptFd(ts); sfd = rpmtsScriptFd(ts);
+ rpmtsSuspendResumeDBLock(ts, 0); + rpmdbCtrl(rdb, RPMDB_CTRL_SUSPEND_DBLOCK);
rpmswEnter(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0); rpmswEnter(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
rc = rpmScriptRun(script, arg1, arg2, sfd, rc = rpmScriptRun(script, arg1, arg2, sfd,
prefixes, warn_only, rpmtsPlugins(ts)); prefixes, warn_only, rpmtsPlugins(ts));
rpmswExit(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0); rpmswExit(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
+ rpmtsSuspendResumeDBLock(ts, 1); + rpmdbCtrl(rdb, RPMDB_CTRL_RESUME_DBLOCK);
/* Map warn-only errors to "notfound" for script stop callback */ /* Map warn-only errors to "notfound" for script stop callback */
stoprc = (rc != RPMRC_OK && warn_only) ? RPMRC_NOTFOUND : rc; stoprc = (rc != RPMRC_OK && warn_only) ? RPMRC_NOTFOUND : rc;
--- ./lib/rpmdb.c.orig 2014-08-04 12:25:15.106821818 +0000
+++ ./lib/rpmdb.c 2014-08-04 12:25:29.289759769 +0000
@@ -475,6 +475,12 @@ exit:
return rc;
}
+int rpmdbSuspendResumeDBLock(rpmdb db, int mode)
+{
+ if (db == NULL) return 0;
+ return dbiForeach(db->db_indexes, db->db_ndbi, mode ? dbiResumeDBLock : dbiSuspendDBLock, 0);
+}
+
static rpmdb newRpmdb(const char * root, const char * home,
int mode, int perms, int flags)
{
--- ./lib/rpmts.c.orig 2014-06-26 06:51:54.653818721 +0000
+++ ./lib/rpmts.c 2014-08-04 12:25:29.289759769 +0000
@@ -101,6 +101,11 @@ int rpmtsOpenDB(rpmts ts, int dbmode)
return rc;
}
+int rpmtsSuspendResumeDBLock(rpmts ts, int mode)
+{
+ return rpmdbSuspendResumeDBLock(ts->rdb, mode);
+}
+
int rpmtsInitDB(rpmts ts, int dbmode)
{
rpmtxn txn = rpmtxnBegin(ts, RPMTXN_WRITE);
--- ./lib/rpmts.h.orig 2014-06-26 06:51:54.655818716 +0000
+++ ./lib/rpmts.h 2014-08-04 12:25:29.290759730 +0000
@@ -441,6 +441,8 @@ rpmdb rpmtsGetRdb(rpmts ts);
void * rpmtsNotify(rpmts ts, rpmte te,
rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total);
+int rpmtsSuspendResumeDBLock(rpmts ts, int mode);
+
/** \ingroup rpmts
* Return number of (ordered) transaction set elements.
* @param ts transaction set

View File

@ -1,9 +1,9 @@
This used to be the taggedfileindex patch, but it's gone. This used to be the taggedfileindex patch, but it's gone.
The remaining part just strips off the tag. The remaining part just strips off the tag.
--- ./lib/backend/db3.c.orig 2014-08-04 12:45:25.907562115 +0000 --- ./lib/backend/db3.c.orig 2017-01-19 12:54:16.141112342 +0000
+++ ./lib/backend/db3.c 2014-08-04 12:46:22.225318788 +0000 +++ ./lib/backend/db3.c 2017-01-19 12:55:14.587945851 +0000
@@ -833,6 +833,9 @@ static int dbt2set(dbiIndex dbi, DBT * d @@ -1024,6 +1024,9 @@ static int dbt2set(dbiIndex dbi, DBT * d
_DBSWAP(hdrNum); _DBSWAP(hdrNum);
_DBSWAP(tagNum); _DBSWAP(tagNum);
} }

View File

@ -1,27 +1,27 @@
Fix global (DB_PRIVATE) lock code: fix recursion counter, retry Fix global (DB_PRIVATE) lock code: fix recursion counter, retry
failed lock operations for up to 3 minutes. failed lock operations for up to 3 minutes.
--- ./lib/backend/db3.c.orig 2012-05-04 09:47:17.000000000 +0000 --- ./lib/backend/db3.c.orig 2017-01-19 14:59:01.432807649 +0000
+++ ./lib/backend/db3.c 2012-06-01 10:47:01.000000000 +0000 +++ ./lib/backend/db3.c 2017-01-19 15:13:18.034716068 +0000
@@ -422,6 +422,8 @@ int dbiVerify(dbiIndex dbi, unsigned int @@ -33,6 +33,8 @@ struct dbiCursor_s {
return rc; static struct dbiConfig_s staticdbicfg;
} static struct dbConfig_s staticcfg;
+static int _lockdbfd = 0; +static int _lockdbfd = 0;
+ +
int dbiClose(dbiIndex dbi, unsigned int flags) /** \ingroup dbi
{ */
rpmdb rdb = dbi->dbi_rpmdb; static const struct poptOption rdbOptions[] = {
@@ -439,6 +441,8 @@ int dbiClose(dbiIndex dbi, unsigned int @@ -744,6 +746,8 @@ static int db3_dbiClose(dbiIndex dbi, un
rpmlog(RPMLOG_DEBUG, "closed db index %s/%s\n", rpmlog(RPMLOG_DEBUG, "closed db index %s/%s\n",
dbhome, dbi->dbi_file); dbhome, dbi->dbi_file);
+ if (dbi->dbi_lockdbfd && _lockdbfd) + if (dbi->cfg.dbi_lockdbfd && !(dbi->dbi_flags & DBI_VERIFYONLY) && _lockdbfd)
+ _lockdbfd--; + _lockdbfd--;
} }
db_fini(rdb, dbhome ? dbhome : ""); db_fini(rdb, dbhome ? dbhome : "");
@@ -478,6 +482,7 @@ static int dbiFlock(dbiIndex dbi, int mo @@ -783,6 +787,7 @@ static int dbiFlock(dbiIndex dbi, int mo
rc = 1; rc = 1;
} else { } else {
const char *dbhome = rpmdbHome(dbi->dbi_rpmdb); const char *dbhome = rpmdbHome(dbi->dbi_rpmdb);
@ -29,7 +29,7 @@ failed lock operations for up to 3 minutes.
struct flock l; struct flock l;
memset(&l, 0, sizeof(l)); memset(&l, 0, sizeof(l));
l.l_whence = 0; l.l_whence = 0;
@@ -487,20 +492,38 @@ static int dbiFlock(dbiIndex dbi, int mo @@ -792,20 +797,38 @@ static int dbiFlock(dbiIndex dbi, int mo
? F_RDLCK : F_WRLCK; ? F_RDLCK : F_WRLCK;
l.l_pid = 0; l.l_pid = 0;
@ -82,7 +82,7 @@ failed lock operations for up to 3 minutes.
} }
} }
return rc; return rc;
@@ -517,7 +540,6 @@ int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmt @@ -822,7 +845,6 @@ static int db3_dbiOpen(rpmdb rdb, rpmDbi
DB * db = NULL; DB * db = NULL;
DBTYPE dbtype = DB_UNKNOWN; DBTYPE dbtype = DB_UNKNOWN;
uint32_t oflags; uint32_t oflags;
@ -90,15 +90,22 @@ failed lock operations for up to 3 minutes.
if (dbip) if (dbip)
*dbip = NULL; *dbip = NULL;
@@ -591,7 +613,10 @@ int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmt @@ -902,6 +924,8 @@ static int db3_dbiOpen(rpmdb rdb, rpmDbi
dbi->dbi_db = db; dbi->dbi_flags |= DBI_CREATED;
dbi->dbi_oflags = oflags; if (oflags & DB_RDONLY)
dbi->dbi_flags |= DBI_RDONLY;
- if (!verifyonly && rc == 0 && dbi->dbi_lockdbfd && _lockdbfd++ == 0) {
+ if (verifyonly) + if (verifyonly)
+ dbi->dbi_lockdbfd = 0; /* disable locking in verify mode */ + dbi->dbi_flags |= DBI_VERIFYONLY;
+
+ if (rc == 0 && dbi->dbi_lockdbfd && _lockdbfd++ == 0) {
rc = dbiFlock(dbi, rdb->db_mode);
}
if (!verifyonly && rc == 0 && dbi->cfg.dbi_lockdbfd && _lockdbfd++ == 0) {
rc = dbiFlock(dbi, rdb->db_mode);
--- ./lib/backend/dbi.h.orig 2017-01-19 15:12:26.833899257 +0000
+++ ./lib/backend/dbi.h 2017-01-19 15:05:43.958347554 +0000
@@ -83,6 +83,7 @@ enum dbiFlags_e {
DBI_NONE = 0,
DBI_CREATED = (1 << 0),
DBI_RDONLY = (1 << 1),
+ DBI_VERIFYONLY = (1 << 2),
};
enum dbcFlags_e {

View File

@ -1,6 +1,6 @@
--- ./doc/rpm.8.orig 2011-01-05 08:11:09.000000000 +0000 --- ./doc/rpm.8.orig 2017-01-19 12:57:41.380527116 +0000
+++ ./doc/rpm.8 2011-05-11 15:36:18.000000000 +0000 +++ ./doc/rpm.8 2017-01-19 12:58:12.693437688 +0000
@@ -564,6 +564,11 @@ Query all packages that provide the \fIC @@ -592,6 +592,11 @@ Query all packages that provide the \fIC
.TP .TP
\fB--whatrequires \fICAPABILITY\fB\fR \fB--whatrequires \fICAPABILITY\fB\fR
Query all packages that require \fICAPABILITY\fR for proper functioning. Query all packages that require \fICAPABILITY\fR for proper functioning.
@ -9,6 +9,6 @@
+A package usually provides multiple capabilities and file-names on which +A package usually provides multiple capabilities and file-names on which
+other packages may depend. To see the complete dependencies +other packages may depend. To see the complete dependencies
+for a package, use \fB-e --test \fIPACKAGE_NAME\fB\fR +for a package, use \fB-e --test \fIPACKAGE_NAME\fB\fR
.SS "PACKAGE QUERY OPTIONS:"
.PP
.TP .TP
\fB--whatrecommends \fICAPABILITY\fB\fR
Query all packages that recommend \fICAPABILITY\fR.