- update to rpm-4.14.1
OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=434
This commit is contained in:
parent
9de775e711
commit
20a2742d97
@ -1,66 +0,0 @@
|
||||
--- lib/signature.c.orig 2018-01-05 10:59:06.358348915 +0000
|
||||
+++ lib/signature.c 2018-01-05 12:25:13.224472739 +0000
|
||||
@@ -118,6 +118,8 @@ rpmRC rpmGenerateSignature(char *SHA256,
|
||||
char *reservedSpace;
|
||||
int spaceSize = 32; /* always reserve a bit of space */
|
||||
int gpgSize = rpmExpandNumeric("%{__gpg_reserved_space}");
|
||||
+ rpm_off_t size32 = size;
|
||||
+ rpm_off_t payloadSize32 = payloadSize;
|
||||
|
||||
/* Prepare signature */
|
||||
if (SHA256) {
|
||||
@@ -149,21 +151,32 @@ rpmRC rpmGenerateSignature(char *SHA256,
|
||||
|
||||
rpmtdReset(&td);
|
||||
td.count = 1;
|
||||
- if (payloadSize < UINT32_MAX) {
|
||||
- rpm_off_t p = payloadSize;
|
||||
- rpm_off_t s = size;
|
||||
- td.type = RPM_INT32_TYPE;
|
||||
+ td.type = RPM_INT32_TYPE;
|
||||
|
||||
- td.tag = RPMSIGTAG_PAYLOADSIZE;
|
||||
- td.data = &p;
|
||||
- headerPut(sig, &td, HEADERPUT_DEFAULT);
|
||||
+ td.tag = RPMSIGTAG_PAYLOADSIZE;
|
||||
+ td.data = &payloadSize32;
|
||||
+ headerPut(sig, &td, HEADERPUT_DEFAULT);
|
||||
|
||||
- td.tag = RPMSIGTAG_SIZE;
|
||||
- td.data = &s;
|
||||
- headerPut(sig, &td, HEADERPUT_DEFAULT);
|
||||
- } else {
|
||||
+ td.tag = RPMSIGTAG_SIZE;
|
||||
+ td.data = &size32;
|
||||
+ headerPut(sig, &td, HEADERPUT_DEFAULT);
|
||||
+
|
||||
+ if (payloadSize >= UINT32_MAX) {
|
||||
+ /*
|
||||
+ * Put the 64bit size variants into the header, but
|
||||
+ * modify spaceSize so that the resulting header has
|
||||
+ * the same size. Note that this only works if
|
||||
+ * RPMSIGTAG_RESERVEDSPACE is the last tag in the header!
|
||||
+ */
|
||||
rpm_loff_t p = payloadSize;
|
||||
rpm_loff_t s = size;
|
||||
+ int newsigSize, oldsigSize;
|
||||
+
|
||||
+ oldsigSize = headerSizeof(sig, HEADER_MAGIC_YES);
|
||||
+
|
||||
+ headerDel(sig, RPMSIGTAG_PAYLOADSIZE);
|
||||
+ headerDel(sig, RPMSIGTAG_SIZE);
|
||||
+
|
||||
td.type = RPM_INT64_TYPE;
|
||||
|
||||
td.tag = RPMSIGTAG_LONGARCHIVESIZE;
|
||||
@@ -174,8 +187,8 @@ rpmRC rpmGenerateSignature(char *SHA256,
|
||||
td.data = &s;
|
||||
headerPut(sig, &td, HEADERPUT_DEFAULT);
|
||||
|
||||
- /* adjust for the size difference between 64- and 32bit tags */
|
||||
- spaceSize -= 8;
|
||||
+ newsigSize = headerSizeof(sig, HEADER_MAGIC_YES);
|
||||
+ spaceSize -= newsigSize - oldsigSize;
|
||||
}
|
||||
|
||||
if (gpgSize > 0)
|
@ -1,5 +1,5 @@
|
||||
--- ./scripts/brp-compress.orig 2017-01-19 12:14:04.529812394 +0000
|
||||
+++ ./scripts/brp-compress 2017-01-19 12:18:22.488107819 +0000
|
||||
--- ./scripts/brp-compress.orig 2018-01-31 13:07:37.130104408 +0000
|
||||
+++ ./scripts/brp-compress 2018-01-31 13:07:16.234159981 +0000
|
||||
@@ -5,51 +5,78 @@ if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD
|
||||
exit 0
|
||||
fi
|
||||
@ -40,7 +40,7 @@
|
||||
for d in ./usr/man/man* ./usr/man/*/man* ./usr/info \
|
||||
./usr/share/man/man* ./usr/share/man/*/man* ./usr/share/info \
|
||||
./usr/kerberos/man ./usr/X11R6/man/man* ./usr/lib/perl5/man/man* \
|
||||
./usr/share/doc/*/man/man* ./usr/lib/*/man/man*
|
||||
./usr/share/doc/*/man/man* ./usr/lib/*/man/man* ./usr/share/fish/man/man*
|
||||
do
|
||||
[ -d $d ] || continue
|
||||
- for f in `find $d -type f ! -name dir`
|
||||
|
@ -1,20 +0,0 @@
|
||||
debugedit: edit_dwarf2 check lndx is in range before checking r_offset.
|
||||
|
||||
upstream commit 7e9af0c000868ad6272a9577f9daed991599419b
|
||||
--- ./tools/debugedit.c.orig 2017-12-05 11:59:10.287010024 +0000
|
||||
+++ ./tools/debugedit.c 2017-12-05 12:00:02.776862694 +0000
|
||||
@@ -2171,10 +2171,10 @@ edit_dwarf2 (DSO *dso)
|
||||
r_offset = rel.r_offset;
|
||||
}
|
||||
|
||||
- while (r_offset > (dso->lines.table[lndx].old_idx
|
||||
- + 4
|
||||
- + dso->lines.table[lndx].unit_length)
|
||||
- && lndx < dso->lines.used)
|
||||
+ while (lndx < dso->lines.used
|
||||
+ && r_offset > (dso->lines.table[lndx].old_idx
|
||||
+ + 4
|
||||
+ + dso->lines.table[lndx].unit_length))
|
||||
lndx++;
|
||||
|
||||
if (lndx >= dso->lines.used)
|
@ -1,6 +1,6 @@
|
||||
--- ./scripts/Makefile.am.orig 2017-12-01 14:48:23.171746842 +0000
|
||||
+++ ./scripts/Makefile.am 2017-12-01 14:49:09.395612962 +0000
|
||||
@@ -18,6 +18,7 @@ EXTRA_DIST = \
|
||||
--- ./scripts/Makefile.am.orig 2018-01-31 13:08:32.644956731 +0000
|
||||
+++ ./scripts/Makefile.am 2018-01-31 13:09:24.081819852 +0000
|
||||
@@ -19,6 +19,7 @@ EXTRA_DIST = \
|
||||
tgpg vpkg-provides.sh \
|
||||
find-requires find-provides \
|
||||
find-requires.php find-provides.php \
|
||||
@ -8,16 +8,16 @@
|
||||
mono-find-requires mono-find-provides \
|
||||
ocaml-find-requires.sh ocaml-find-provides.sh \
|
||||
pkgconfigdeps.sh libtooldeps.sh metainfo.prov \
|
||||
@@ -34,6 +35,7 @@ rpmconfig_SCRIPTS = \
|
||||
debuginfo.prov \
|
||||
@@ -36,6 +37,7 @@ rpmconfig_SCRIPTS = \
|
||||
find-lang.sh find-requires find-provides \
|
||||
perl.prov perl.req pythondeps.sh pythondistdeps.py \
|
||||
python-macro-helper \
|
||||
+ find-requires.ksyms find-provides.ksyms \
|
||||
metainfo.prov \
|
||||
mono-find-requires mono-find-provides \
|
||||
pkgconfigdeps.sh libtooldeps.sh \
|
||||
--- ./scripts/find-provides.ksyms.orig 2017-12-01 14:48:28.374731785 +0000
|
||||
+++ ./scripts/find-provides.ksyms 2017-12-01 14:48:28.374731785 +0000
|
||||
--- ./scripts/find-provides.ksyms.orig 2018-01-31 13:08:40.820934977 +0000
|
||||
+++ ./scripts/find-provides.ksyms 2018-01-31 13:08:40.820934977 +0000
|
||||
@@ -0,0 +1,60 @@
|
||||
+#! /bin/bash
|
||||
+
|
||||
@ -79,8 +79,8 @@
|
||||
+ | sed -r -ne "s/^0*([0-9a-f]+) A __crc_(.+)/ksym($flavor:\\2) = \\1/p"
|
||||
+done \
|
||||
+| sort -u
|
||||
--- ./scripts/find-requires.ksyms.orig 2017-12-01 14:48:28.375731781 +0000
|
||||
+++ ./scripts/find-requires.ksyms 2017-12-01 14:48:28.375731781 +0000
|
||||
--- ./scripts/find-requires.ksyms.orig 2018-01-31 13:08:40.821934974 +0000
|
||||
+++ ./scripts/find-requires.ksyms 2018-01-31 13:08:40.820934977 +0000
|
||||
@@ -0,0 +1,29 @@
|
||||
+#! /bin/bash
|
||||
+
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- ./scripts/find-lang.sh.orig 2017-10-05 10:04:57.586602035 +0000
|
||||
+++ ./scripts/find-lang.sh 2017-12-01 14:51:31.189202268 +0000
|
||||
@@ -30,11 +30,11 @@ the top of the tree containing the files
|
||||
--- ./scripts/find-lang.sh.orig 2018-01-16 09:02:23.879253043 +0000
|
||||
+++ ./scripts/find-lang.sh 2018-01-31 13:20:30.938048419 +0000
|
||||
@@ -22,11 +22,11 @@ the top of the tree containing the files
|
||||
PACKAGE_NAME is the %{name} of the package. This should also be
|
||||
the basename of the .mo files. the output is written to
|
||||
PACKAGE_NAME.lang unless \$3 is given in which case output is written
|
||||
@ -15,7 +15,7 @@
|
||||
--with-qt find Qt translation files
|
||||
--with-html find HTML files
|
||||
--with-man find localized man pages
|
||||
@@ -58,9 +58,9 @@ else NAME=$1
|
||||
@@ -50,9 +50,9 @@ else NAMES[0]=$1
|
||||
fi
|
||||
shift
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
QT=#
|
||||
MAN=#
|
||||
HTML=#
|
||||
@@ -83,6 +83,14 @@ while test $# -gt 0 ; do
|
||||
@@ -74,6 +74,14 @@ while test $# -gt 0 ; do
|
||||
KDE=
|
||||
shift
|
||||
;;
|
||||
@ -42,28 +42,33 @@
|
||||
--with-qt )
|
||||
QT=
|
||||
shift
|
||||
@@ -111,13 +119,19 @@ while test $# -gt 0 ; do
|
||||
@@ -103,11 +111,13 @@ while test $# -gt 0 ; do
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
-done
|
||||
+done
|
||||
|
||||
-if [ -f $MO_NAME ]; then
|
||||
- rm $MO_NAME
|
||||
+if ! test -s $MO_NAME ; then
|
||||
+ echo "%defattr (644, root, root, 755)" > $MO_NAME
|
||||
+fi
|
||||
fi
|
||||
+MO_NAME_NEW=$MO_NAME.tmp.$$
|
||||
+rm -f $MO_NAME_NEW
|
||||
+
|
||||
find "$TOP_DIR" -type f -o -type l|sed '
|
||||
s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3:
|
||||
|
||||
for NAME in ${NAMES[@]}; do
|
||||
|
||||
@@ -117,7 +127,7 @@ s:'"$TOP_DIR"'::
|
||||
'"$NO_ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3:
|
||||
s:^\([^%].*\)::
|
||||
s:%lang(C) ::
|
||||
-/^$/d' > $MO_NAME
|
||||
+/^$/d' > $MO_NAME_NEW
|
||||
-/^$/d' >> $MO_NAME
|
||||
+/^$/d' >> $MO_NAME_NEW
|
||||
|
||||
find "$TOP_DIR" -type d|sed '
|
||||
s:'"$TOP_DIR"'::
|
||||
@@ -125,27 +139,27 @@ s:'"$TOP_DIR"'::
|
||||
@@ -125,27 +135,27 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/[a-zA-Z0-9.\_\-]\+\)$:%lang(\2) %doc \1\2\3\4/:
|
||||
s:^\([^%].*\)::
|
||||
s:%lang(C) ::
|
||||
@ -98,7 +103,7 @@
|
||||
|
||||
find "$TOP_DIR" -type f|sed '
|
||||
s:'"$TOP_DIR"'::
|
||||
@@ -153,7 +167,7 @@ s:'"$TOP_DIR"'::
|
||||
@@ -153,7 +163,7 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1:
|
||||
s:^[^%].*::
|
||||
s:%lang(C) ::
|
||||
@ -107,7 +112,7 @@
|
||||
|
||||
find $TOP_DIR -type d|sed '
|
||||
s:'"$TOP_DIR"'::
|
||||
@@ -166,14 +180,14 @@ s:'"$TOP_DIR"'::
|
||||
@@ -166,14 +176,14 @@ s:'"$TOP_DIR"'::
|
||||
s:%lang(.*) .*/mate/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+/.*::
|
||||
s:^\([^%].*\)::
|
||||
s:%lang(C) ::
|
||||
@ -124,7 +129,7 @@
|
||||
|
||||
find "$TOP_DIR" -type f|sed '
|
||||
s:'"$TOP_DIR"'::
|
||||
@@ -181,7 +195,7 @@ s:'"$TOP_DIR"'::
|
||||
@@ -181,7 +191,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) ::
|
||||
@ -133,7 +138,7 @@
|
||||
|
||||
KDE3_HTML=`kde-config --expandvars --install html 2>/dev/null`
|
||||
if [ x"$KDE3_HTML" != x -a -d "$TOP_DIR$KDE3_HTML" ]; then
|
||||
@@ -193,7 +207,7 @@ s:'"$TOP_DIR"'::
|
||||
@@ -193,7 +203,7 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
|
||||
s:^\([^%].*\)::
|
||||
s:%lang(C) ::
|
||||
@ -142,7 +147,7 @@
|
||||
fi
|
||||
|
||||
KDE4_HTML=`kde4-config --expandvars --install html 2>/dev/null`
|
||||
@@ -206,7 +220,7 @@ s:'"$TOP_DIR"'::
|
||||
@@ -206,7 +216,7 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
|
||||
s:^\([^%].*\)::
|
||||
s:%lang(C) ::
|
||||
@ -151,7 +156,7 @@
|
||||
fi
|
||||
|
||||
KF5_HTML=`kf5-config --expandvars --install html 2>/dev/null`
|
||||
@@ -219,7 +233,7 @@ s:'"$TOP_DIR"'::
|
||||
@@ -219,7 +229,7 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
|
||||
s:^\([^%].*\)::
|
||||
s:%lang(C) ::
|
||||
@ -160,7 +165,7 @@
|
||||
fi
|
||||
|
||||
find "$TOP_DIR" -type d|sed '
|
||||
@@ -230,7 +244,7 @@ s:'"$TOP_DIR"'::
|
||||
@@ -230,7 +240,7 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
|
||||
s:^\([^%].*\)::
|
||||
s:%lang(C) ::
|
||||
@ -169,7 +174,7 @@
|
||||
|
||||
find "$TOP_DIR" -type f -o -type l|sed '
|
||||
s:'"$TOP_DIR"'::
|
||||
@@ -243,7 +257,7 @@ s:'"$TOP_DIR"'::
|
||||
@@ -243,7 +253,7 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1:
|
||||
s:^[^%].*::
|
||||
s:%lang(C) ::
|
||||
@ -178,7 +183,7 @@
|
||||
|
||||
find "$TOP_DIR" -type d|sed '
|
||||
s:'"$TOP_DIR"'::
|
||||
@@ -251,17 +265,22 @@ s:'"$TOP_DIR"'::
|
||||
@@ -251,19 +261,24 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*:
|
||||
s:^\([^%].*\)::
|
||||
s:%lang(C) ::
|
||||
@ -193,9 +198,12 @@
|
||||
-/^$/d' >> $MO_NAME
|
||||
+/^$/d' >> $MO_NAME_NEW
|
||||
|
||||
done # for NAME in ${NAMES[@]}
|
||||
|
||||
-if ! grep -q / $MO_NAME; then
|
||||
- echo "No translations found for ${NAME} in ${TOP_DIR}"
|
||||
+if ! grep -q / $MO_NAME_NEW; then
|
||||
echo "No translations found for ${NAME} in ${TOP_DIR}"
|
||||
+ echo "No translations found for ${NAMES[*]} in ${TOP_DIR}"
|
||||
+ rm -f $MO_NAME_NEW
|
||||
exit 1
|
||||
fi
|
||||
|
156
hardlink.diff
156
hardlink.diff
@ -1,156 +0,0 @@
|
||||
Create first hard link file and keep open, write it at end
|
||||
|
||||
upstream commit e276991614fd127f21aba94946f81f22cb7e6b73
|
||||
upstream commit 0afe0c3c6cba64d8b7adcdec6ed70f8d32961b58
|
||||
upstream commit ef3ff412c33a71be6b3543a50c244377dff3d9e7
|
||||
--- ./lib/fsm.c.orig 2017-10-05 10:04:56.977602149 +0000
|
||||
+++ ./lib/fsm.c 2017-12-05 12:05:19.529973029 +0000
|
||||
@@ -218,56 +218,76 @@ static int linkSane(FD_t wfd, const char
|
||||
sb.st_dev == lsb.st_dev && sb.st_ino == lsb.st_ino);
|
||||
}
|
||||
|
||||
-/** \ingroup payload
|
||||
- * Create file from payload stream.
|
||||
- * @return 0 on success
|
||||
- */
|
||||
-static int expandRegular(rpmfi fi, const char *dest, rpmpsm psm, int exclusive, int nodigest, int nocontent)
|
||||
+static void wfd_close(FD_t *wfdp)
|
||||
{
|
||||
- FD_t wfd = NULL;
|
||||
- int rc = 0;
|
||||
+ if (wfdp && *wfdp) {
|
||||
+ int myerrno = errno;
|
||||
+ static int oneshot = 0;
|
||||
+ static int flush_io = 0;
|
||||
+ if (!oneshot) {
|
||||
+ flush_io = rpmExpandNumeric("%{?_flush_io}");
|
||||
+ oneshot = 1;
|
||||
+ }
|
||||
+ if (flush_io) {
|
||||
+ int fdno = Fileno(*wfdp);
|
||||
+ fsync(fdno);
|
||||
+ }
|
||||
+ Fclose(*wfdp);
|
||||
+ *wfdp = NULL;
|
||||
+ errno = myerrno;
|
||||
+ }
|
||||
+}
|
||||
|
||||
+static int wfd_open(FD_t *wfdp, const char *dest, int exclusive)
|
||||
+{
|
||||
+ int rc = 0;
|
||||
/* Create the file with 0200 permissions (write by owner). */
|
||||
{
|
||||
mode_t old_umask = umask(0577);
|
||||
- wfd = Fopen(dest, exclusive ? "wx.ufdio" : "a.ufdio");
|
||||
+ *wfdp = Fopen(dest, exclusive ? "wx.ufdio" : "a.ufdio");
|
||||
umask(old_umask);
|
||||
|
||||
/* If reopening, make sure the file is what we expect */
|
||||
- if (!exclusive && wfd != NULL && !linkSane(wfd, dest)) {
|
||||
+ if (!exclusive && *wfdp != NULL && !linkSane(*wfdp, dest)) {
|
||||
rc = RPMERR_OPEN_FAILED;
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
- if (Ferror(wfd)) {
|
||||
+ if (Ferror(*wfdp)) {
|
||||
rc = RPMERR_OPEN_FAILED;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
+ return 0;
|
||||
+
|
||||
+exit:
|
||||
+ wfd_close(wfdp);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+/** \ingroup payload
|
||||
+ * Create file from payload stream.
|
||||
+ * @return 0 on success
|
||||
+ */
|
||||
+static int expandRegular(rpmfi fi, const char *dest, rpmpsm psm, int exclusive, int nodigest, int nocontent)
|
||||
+{
|
||||
+ FD_t wfd = NULL;
|
||||
+ int rc;
|
||||
+
|
||||
+ rc = wfd_open(&wfd, dest, exclusive);
|
||||
+ if (rc != 0)
|
||||
+ goto exit;
|
||||
+
|
||||
if (!nocontent)
|
||||
rc = rpmfiArchiveReadToFilePsm(fi, wfd, nodigest, psm);
|
||||
+ wfd_close(&wfd);
|
||||
exit:
|
||||
- if (wfd) {
|
||||
- int myerrno = errno;
|
||||
- static int oneshot = 0;
|
||||
- static int flush_io = 0;
|
||||
- if (!oneshot) {
|
||||
- flush_io = rpmExpandNumeric("%{?_flush_io}");
|
||||
- oneshot = 1;
|
||||
- }
|
||||
- if (flush_io) {
|
||||
- int fdno = Fileno(wfd);
|
||||
- fsync(fdno);
|
||||
- }
|
||||
- Fclose(wfd);
|
||||
- errno = myerrno;
|
||||
- }
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int fsmMkfile(rpmfi fi, const char *dest, rpmfiles files,
|
||||
rpmpsm psm, int nodigest, int *setmeta,
|
||||
- int * firsthardlink)
|
||||
+ int * firsthardlink, FD_t *firstlinkfile)
|
||||
{
|
||||
int rc = 0;
|
||||
int numHardlinks = rpmfiFNlink(fi);
|
||||
@@ -276,7 +296,7 @@ static int fsmMkfile(rpmfi fi, const cha
|
||||
/* Create first hardlinked file empty */
|
||||
if (*firsthardlink < 0) {
|
||||
*firsthardlink = rpmfiFX(fi);
|
||||
- rc = expandRegular(fi, dest, psm, 1, nodigest, 1);
|
||||
+ rc = wfd_open(firstlinkfile, dest, 1);
|
||||
} else {
|
||||
/* Create hard links for others */
|
||||
char *fn = rpmfilesFN(files, *firsthardlink);
|
||||
@@ -294,7 +314,8 @@ static int fsmMkfile(rpmfi fi, const cha
|
||||
rc = expandRegular(fi, dest, psm, 1, nodigest, 0);
|
||||
} else if (rpmfiArchiveHasContent(fi)) {
|
||||
if (!rc)
|
||||
- rc = expandRegular(fi, dest, psm, 0, nodigest, 0);
|
||||
+ rc = rpmfiArchiveReadToFilePsm(fi, *firstlinkfile, nodigest, psm);
|
||||
+ wfd_close(firstlinkfile);
|
||||
*firsthardlink = -1;
|
||||
} else {
|
||||
*setmeta = 0;
|
||||
@@ -861,6 +882,7 @@ int rpmPackageFilesInstall(rpmts ts, rpm
|
||||
int nodigest = (rpmtsFlags(ts) & RPMTRANS_FLAG_NOFILEDIGEST) ? 1 : 0;
|
||||
int nofcaps = (rpmtsFlags(ts) & RPMTRANS_FLAG_NOCAPS) ? 1 : 0;
|
||||
int firsthardlink = -1;
|
||||
+ FD_t firstlinkfile = NULL;
|
||||
int skip;
|
||||
rpmFileAction action;
|
||||
char *tid = NULL;
|
||||
@@ -932,7 +954,7 @@ int rpmPackageFilesInstall(rpmts ts, rpm
|
||||
if (S_ISREG(sb.st_mode)) {
|
||||
if (rc == RPMERR_ENOENT) {
|
||||
rc = fsmMkfile(fi, fpath, files, psm, nodigest,
|
||||
- &setmeta, &firsthardlink);
|
||||
+ &setmeta, &firsthardlink, &firstlinkfile);
|
||||
}
|
||||
} else if (S_ISDIR(sb.st_mode)) {
|
||||
if (rc == RPMERR_ENOENT) {
|
||||
@@ -970,7 +992,8 @@ int rpmPackageFilesInstall(rpmts ts, rpm
|
||||
/* we skip the hard linked file containing the content */
|
||||
/* write the content to the first used instead */
|
||||
char *fn = rpmfilesFN(files, firsthardlink);
|
||||
- rc = expandRegular(fi, fn, psm, 0, nodigest, 0);
|
||||
+ rc = rpmfiArchiveReadToFilePsm(fi, firstlinkfile, nodigest, psm);
|
||||
+ wfd_close(&firstlinkfile);
|
||||
firsthardlink = -1;
|
||||
free(fn);
|
||||
}
|
40
langnoc.diff
40
langnoc.diff
@ -1,6 +1,6 @@
|
||||
--- ./macros.in.orig 2012-06-01 14:10:18.000000000 +0000
|
||||
+++ ./macros.in 2012-06-01 14:10:29.000000000 +0000
|
||||
@@ -1204,6 +1204,7 @@ EOF
|
||||
--- ./macros.in.orig 2018-01-31 13:35:52.735593230 +0000
|
||||
+++ ./macros.in 2018-01-31 13:35:55.528585772 +0000
|
||||
@@ -1351,6 +1351,7 @@ EOF
|
||||
# %files -f %{name}.lang
|
||||
#
|
||||
%find_lang %{_rpmconfigdir}/find-lang.sh %{buildroot}
|
||||
@ -8,18 +8,18 @@
|
||||
|
||||
# Commands + opts to use for retrieving remote files
|
||||
# Proxy opts can be set through --httpproxy/--httpport popt aliases,
|
||||
--- ./scripts/find-lang.sh.orig 2012-06-01 14:10:18.000000000 +0000
|
||||
+++ ./scripts/find-lang.sh 2012-06-01 14:14:47.000000000 +0000
|
||||
@@ -62,6 +62,8 @@ MO=
|
||||
MO_NAME=$NAME.lang
|
||||
--- ./scripts/find-lang.sh.orig 2018-01-31 13:35:52.726593254 +0000
|
||||
+++ ./scripts/find-lang.sh 2018-01-31 13:36:35.806478195 +0000
|
||||
@@ -60,6 +60,8 @@ MO=
|
||||
MO_NAME=${NAMES[0]}.lang
|
||||
ALL_NAME=#
|
||||
NO_ALL_NAME=
|
||||
+ONLY_C=#
|
||||
+NO_C=#
|
||||
|
||||
while test $# -gt 0 ; do
|
||||
case "${1}" in
|
||||
@@ -98,6 +100,14 @@ while test $# -gt 0 ; do
|
||||
--with-gnome )
|
||||
@@ -103,6 +105,14 @@ while test $# -gt 0 ; do
|
||||
NO_ALL_NAME=#
|
||||
shift
|
||||
;;
|
||||
@ -32,18 +32,18 @@
|
||||
+ shift
|
||||
+ ;;
|
||||
* )
|
||||
MO_NAME=${1}
|
||||
shift
|
||||
@@ -133,6 +143,8 @@ s:'"$TOP_DIR"'::
|
||||
if [ $MO_NAME != ${NAMES[$#]}.lang ]; then
|
||||
NAMES[${#NAMES[@]}]=$MO_NAME
|
||||
@@ -143,6 +153,8 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3:
|
||||
'"$NO_ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3:
|
||||
s:^\([^%].*\)::
|
||||
+'"$ONLY_C"'/%lang(C)/!d
|
||||
+'"$NO_C"'/%lang(C)/d
|
||||
s:%lang(C) ::
|
||||
/^$/d' > $MO_NAME_NEW
|
||||
/^$/d' >> $MO_NAME_NEW
|
||||
|
||||
@@ -141,19 +153,23 @@ s:'"$TOP_DIR"'::
|
||||
@@ -151,19 +163,23 @@ s:'"$TOP_DIR"'::
|
||||
'"$NO_ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/'"$NAME"'\)$:%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:^\([^%].*\)::
|
||||
@ -69,7 +69,7 @@
|
||||
s:%lang(C) ::
|
||||
/^$/d' >> $MO_NAME_NEW
|
||||
|
||||
@@ -169,6 +185,8 @@ s:'"$TOP_DIR"'::
|
||||
@@ -179,6 +195,8 @@ s:'"$TOP_DIR"'::
|
||||
'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'/'"$NAME"'-\([^/.]\+\)\.omf\):%lang(\2) \1:
|
||||
'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1:
|
||||
s:^[^%].*::
|
||||
@ -78,7 +78,7 @@
|
||||
s:%lang(C) ::
|
||||
/^$/d' >> $MO_NAME_NEW
|
||||
|
||||
@@ -181,6 +199,8 @@ s:'"$TOP_DIR"'::
|
||||
@@ -219,6 +237,8 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\)::
|
||||
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
|
||||
s:^\([^%].*\)::
|
||||
@ -87,7 +87,7 @@
|
||||
s:%lang(C) ::
|
||||
/^$/d' >> $MO_NAME_NEW
|
||||
fi
|
||||
@@ -194,6 +214,8 @@ s:'"$TOP_DIR"'::
|
||||
@@ -232,6 +252,8 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\)::
|
||||
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
|
||||
s:^\([^%].*\)::
|
||||
@ -96,7 +96,7 @@
|
||||
s:%lang(C) ::
|
||||
/^$/d' >> $MO_NAME_NEW
|
||||
fi
|
||||
@@ -206,6 +228,8 @@ s:'"$TOP_DIR"'::
|
||||
@@ -269,6 +291,8 @@ 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:^[^%].*::
|
||||
@ -105,7 +105,7 @@
|
||||
s:%lang(C) ::
|
||||
/^$/d' >> $MO_NAME_NEW
|
||||
|
||||
@@ -214,6 +238,8 @@ s:'"$TOP_DIR"'::
|
||||
@@ -277,6 +301,8 @@ s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/\)::
|
||||
'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*:
|
||||
s:^\([^%].*\)::
|
||||
@ -114,7 +114,7 @@
|
||||
s:%lang(C) ::
|
||||
/^$/d' >> $MO_NAME_NEW
|
||||
|
||||
@@ -221,6 +247,8 @@ find "$TOP_DIR" -type f -o -type l|sed '
|
||||
@@ -284,6 +310,8 @@ find "$TOP_DIR" -type f -o -type l|sed -
|
||||
s:'"$TOP_DIR"'::
|
||||
'"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1*:
|
||||
s:^\([^%].*\)::
|
||||
|
@ -1,3 +1,8 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 31 14:45:33 CET 2018 - mls@suse.de
|
||||
|
||||
- update to rpm-4.14.1
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 19 09:39:25 UTC 2017 - jengelh@inai.de
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
|
||||
Name: python-rpm
|
||||
Version: 4.14.0
|
||||
Version: 4.14.1
|
||||
Release: 0
|
||||
#!BuildIgnore: rpmlint-Factory
|
||||
Summary: Python Bindings for Manipulating RPM Packages
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- ./scripts/find-lang.sh.orig 2012-06-01 13:28:40.000000000 +0000
|
||||
+++ ./scripts/find-lang.sh 2012-06-01 13:30:43.000000000 +0000
|
||||
@@ -111,6 +111,23 @@ fi
|
||||
--- ./scripts/find-lang.sh.orig 2018-01-31 13:25:25.229266078 +0000
|
||||
+++ ./scripts/find-lang.sh 2018-01-31 13:26:15.128133281 +0000
|
||||
@@ -119,6 +119,23 @@ fi
|
||||
MO_NAME_NEW=$MO_NAME.tmp.$$
|
||||
rm -f $MO_NAME_NEW
|
||||
|
||||
@ -21,6 +21,6 @@
|
||||
+ fi
|
||||
+done
|
||||
+
|
||||
for NAME in ${NAMES[@]}; do
|
||||
|
||||
find "$TOP_DIR" -type f -o -type l|sed '
|
||||
s:'"$TOP_DIR"'::
|
||||
'"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3:
|
||||
|
15
rofs.diff
15
rofs.diff
@ -1,15 +0,0 @@
|
||||
Don't bother retrying locking on read-only filesystem (RhBug:1502134)
|
||||
|
||||
upstream commit f25752a8cd6b161f3002dc7839242872ecb59547
|
||||
--- ./lib/rpmlock.c.orig 2017-08-10 08:08:07.122108699 +0000
|
||||
+++ ./lib/rpmlock.c 2017-12-05 12:02:26.248459858 +0000
|
||||
@@ -30,7 +30,8 @@ static rpmlock rpmlock_new(const char *l
|
||||
(void) umask(oldmask);
|
||||
|
||||
if (lock->fd == -1) {
|
||||
- lock->fd = open(lock_path, O_RDONLY);
|
||||
+ if (errno != EROFS)
|
||||
+ lock->fd = open(lock_path, O_RDONLY);
|
||||
if (lock->fd == -1) {
|
||||
free(lock);
|
||||
lock = NULL;
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:06a0ad54600d3c42e42e02701697a8857dc4b639f6476edefffa714d9f496314
|
||||
size 4085209
|
3
rpm-4.14.1.tar.bz2
Normal file
3
rpm-4.14.1.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:43f40e2ccc3ca65bd3238f8c9f8399d4957be0878c2e83cba2746d2d0d96793b
|
||||
size 4103880
|
@ -1,15 +1,6 @@
|
||||
--- ./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
|
||||
@@ -11,6 +11,8 @@
|
||||
#in tact and are included with any redistribution of this file or any
|
||||
#work based on this file.
|
||||
|
||||
+# 2016-05-19 Dominique Leuenberger <dimstar@suse.de>
|
||||
+# * 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>
|
||||
@@ -41,6 +43,7 @@ Additional options:
|
||||
--- ./scripts/find-lang.sh.orig 2018-01-31 13:37:22.810352621 +0000
|
||||
+++ ./scripts/find-lang.sh 2018-01-31 13:39:38.117990971 +0000
|
||||
@@ -32,6 +32,7 @@ Additional options:
|
||||
--with-man find localized man pages
|
||||
--all-name match all package/domain names
|
||||
--without-mo do not find locale files
|
||||
@ -17,15 +8,15 @@
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
@@ -72,6 +75,7 @@ ALL_NAME=#
|
||||
@@ -62,6 +63,7 @@ ALL_NAME=#
|
||||
NO_ALL_NAME=
|
||||
ONLY_C=#
|
||||
NO_C=#
|
||||
+METAINFO=#
|
||||
|
||||
while test $# -gt 0 ; do
|
||||
case "${1}" in
|
||||
@@ -128,6 +132,11 @@ while test $# -gt 0 ; do
|
||||
--with-gnome )
|
||||
@@ -113,6 +115,11 @@ while test $# -gt 0 ; do
|
||||
NO_C=
|
||||
shift
|
||||
;;
|
||||
@ -35,9 +26,9 @@
|
||||
+ shift 2
|
||||
+ ;;
|
||||
* )
|
||||
MO_NAME=${1}
|
||||
shift
|
||||
@@ -330,6 +339,24 @@ if ! grep -q / $MO_NAME_NEW; then
|
||||
if [ $MO_NAME != ${NAMES[$#]}.lang ]; then
|
||||
NAMES[${#NAMES[@]}]=$MO_NAME
|
||||
@@ -323,6 +330,24 @@ if ! grep -q / $MO_NAME_NEW; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
15
rpm.changes
15
rpm.changes
@ -1,3 +1,18 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 31 14:45:33 CET 2018 - mls@suse.de
|
||||
|
||||
- update to rpm-4.14.1
|
||||
* Fix arbitrary code execution when evaluating common
|
||||
python-related macros
|
||||
* new artifact file marker
|
||||
* less strict signature header verification [bnc#1078284]
|
||||
- dropped patches:
|
||||
* bigarchive.diff
|
||||
* editdwarf.diff
|
||||
* hardlink.diff
|
||||
* rofs.diff
|
||||
* transfiletriggerpostun.diff
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 22 11:13:48 UTC 2018 - rguenther@suse.com
|
||||
|
||||
|
11
rpm.spec
11
rpm.spec
@ -51,7 +51,7 @@ Requires(post): %fillup_prereq
|
||||
Summary: The RPM Package Manager
|
||||
License: GPL-2.0+
|
||||
Group: System/Packages
|
||||
Version: 4.14.0
|
||||
Version: 4.14.1
|
||||
Release: 0
|
||||
Source: http://ftp.rpm.org/releases/rpm-4.14.x/rpm-%{version}.tar.bz2
|
||||
Source1: RPM-HOWTO.tar.bz2
|
||||
@ -127,13 +127,8 @@ Patch99: enable-postin-scripts-error.diff
|
||||
Patch100: rpm-findlang-inject-metainfo.patch
|
||||
Patch102: emptymanifest.diff
|
||||
Patch103: find-lang-qt-qm.patch
|
||||
Patch104: editdwarf.diff
|
||||
Patch105: rofs.diff
|
||||
Patch106: transfiletriggerpostun.diff
|
||||
Patch107: hardlink.diff
|
||||
Patch108: debugedit-macro.diff
|
||||
Patch109: pythondistdeps.diff
|
||||
Patch110: bigarchive.diff
|
||||
Patch111: debugedit-bnc1076819.diff
|
||||
Patch6464: auto-config-update-aarch64-ppc64le.diff
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
@ -230,8 +225,8 @@ rm -f rpmdb/db.h
|
||||
%patch -P 70 -P 71 -P 73 -P 74 -P 75 -P 77 -P 78
|
||||
%patch -P 85
|
||||
%patch -P 93 -P 94 -P 99
|
||||
%patch -P 100 -P 102 -P 103 -P 104 -P 105 -P 106 -P 107 -P 108
|
||||
%patch -P 109 -P 110 -P 111
|
||||
%patch -P 100 -P 102 -P 103 -P 108
|
||||
%patch -P 109 -P 111
|
||||
|
||||
%ifarch aarch64 ppc64le
|
||||
%patch6464
|
||||
|
@ -1,21 +0,0 @@
|
||||
Fix not all %transfiletriggerpostun triggers executing (RhBug:1514085)
|
||||
|
||||
upstream commit db1b99db2543b2c2526a2e116daeffa0498d5de4
|
||||
--- ./lib/rpmtriggers.c.orig 2017-10-05 10:04:57.121602122 +0000
|
||||
+++ ./lib/rpmtriggers.c 2017-12-05 12:04:35.448096904 +0000
|
||||
@@ -106,7 +106,6 @@ void rpmtriggersPrepPostUnTransFileTrigs
|
||||
rpmfiles files;
|
||||
rpmds rpmdsTriggers;
|
||||
rpmds rpmdsTrigger;
|
||||
- int tix = 0;
|
||||
|
||||
ii = rpmdbIndexIteratorInit(rpmtsGetRdb(ts), RPMDBI_TRANSFILETRIGGERNAME);
|
||||
mi = rpmdbNewIterator(rpmtsGetRdb(ts), RPMDBI_PACKAGES);
|
||||
@@ -131,6 +130,7 @@ void rpmtriggersPrepPostUnTransFileTrigs
|
||||
if (rpmdbGetIteratorCount(mi)) {
|
||||
/* Filter triggers and save only trans postun triggers into ts */
|
||||
while ((trigH = rpmdbNextIterator(mi)) != NULL) {
|
||||
+ int tix = 0;
|
||||
rpmdsTriggers = rpmdsNew(trigH, RPMTAG_TRANSFILETRIGGERNAME, 0);
|
||||
while ((rpmdsTrigger = rpmdsFilterTi(rpmdsTriggers, tix))) {
|
||||
if ((rpmdsNext(rpmdsTrigger) >= 0) &&
|
Loading…
Reference in New Issue
Block a user