Hello community,

here is the log from the commit of package rpm for openSUSE:Factory checked in 
at 2020-01-10 17:47:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rpm (Old)
 and      /work/SRC/openSUSE:Factory/.rpm.new.6675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rpm"

Fri Jan 10 17:47:23 2020 rev:276 rq:755878 version:4.15.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/rpm/python-rpm.changes   2018-12-10 
12:22:12.838893618 +0100
+++ /work/SRC/openSUSE:Factory/.rpm.new.6675/python-rpm.changes 2020-01-10 
17:47:28.150157189 +0100
@@ -1,0 +2,10 @@
+Tue Nov 19 11:09:08 CET 2019 - [email protected]
+
+- update to rpm-4.15.1
+
+-------------------------------------------------------------------
+Wed Oct  2 14:53:19 CEST 2019 - [email protected]
+
+- update to rpm-4.15.0
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/rpm/rpm.changes  2019-10-21 12:24:42.307709338 
+0200
+++ /work/SRC/openSUSE:Factory/.rpm.new.6675/rpm.changes        2020-01-10 
17:47:33.810156179 +0100
@@ -1,0 +2,60 @@
+Fri Dec  6 15:30:48 CET 2019 - [email protected]
+
+- disable pythondist requires generator for now
+  * modified patch: fileattrs.diff
+
+-------------------------------------------------------------------
+Wed Nov 20 11:56:20 CET 2019 - [email protected]
+
+- drop python3-setuptools dependency from rpm-build, the package
+  is not part of ring-0
+
+-------------------------------------------------------------------
+Tue Nov 19 11:09:08 CET 2019 - [email protected]
+
+- update to rpm-4.15.1
+  * bugfix release
+- dropped patches:
+  * fix_lua_cflags.diff
+
+-------------------------------------------------------------------
+Tue Nov  5 16:25:53 UTC 2019 - Neal Gompa <[email protected]>
+
+- Fix shebang for pythondistdeps.py to use Python 3
+  + Modify patch: pythondistdeps.diff
+- Move pythondistdeps dependency generator to rpm-build
+- Add python3-setuptools and python3 dependencies to rpm-build for 
pythondistdeps
+
+-------------------------------------------------------------------
+Tue Oct 29 14:42:26 UTC 2019 - Ignaz Forster <[email protected]>
+
+- Declare /var/lib/rpm as a ghost file (it is a link to /usr/lib/sysimage/rpm
+  generated in post script for quite some time now) [boo#1132796]
+
+-------------------------------------------------------------------
+Wed Oct  2 14:53:19 CEST 2019 - [email protected]
+
+- update to rpm-4.15.0
+  * dynamic build dependencies
+  * support for %elif, %elifos and %elifarch statements in spec
+  * caret version operator (the opposite of tilde)
+  * new %patchlist and %sourcelist spec sections
+  * new %{expr:#} built-in macro for evaluating expressions
+  * new %dnl macro primitive for comments
+- dropped patches:
+  * 0001-Stop-papering-over-the-security-disaster-known-as-pr.patch
+  * 0002-Fix-use-after-free-introduced-in-0f21bdd0d7b2c45564d.patch
+  * adopt-language-specific-build_fooflags-macros-from-F.patch
+  * auto-config-update-riscv64.diff
+  * debugedit-macro.diff
+  * dwz-compression.patch
+  * getncpus.diff
+  * nameversioncompare.diff
+  * mono-find-requires.diff
+  * rpmfc-push-name-epoch-version-release-macro-before-invoking-depgens.patch
+  * set-flto=auto-by-default.patch
+  * source_date_epoch_buildtime.diff
+- new patches:
+  * fix_lua_cflags.diff
+
+-------------------------------------------------------------------

Old:
----
  0001-Stop-papering-over-the-security-disaster-known-as-pr.patch
  0002-Fix-use-after-free-introduced-in-0f21bdd0d7b2c45564d.patch
  adopt-language-specific-build_fooflags-macros-from-F.patch
  auto-config-update-riscv64.diff
  debugedit-macro.diff
  dwz-compression.patch
  getncpus.diff
  mono-find-requires.diff
  nameversioncompare.diff
  rpm-4.14.2.1.tar.bz2
  rpmfc-push-name-epoch-version-release-macro-before-invoking-depgens.patch
  set-flto=auto-by-default.patch
  source_date_epoch_buildtime.diff

New:
----
  rpm-4.15.1.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-rpm.spec ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.550155691 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.550155691 +0100
@@ -21,14 +21,13 @@
 %global with_python 1
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-rpm
-Version:        4.14.2.1
+Version:        4.15.1
 Release:        0
 Summary:        Python Bindings for Manipulating RPM Packages
 License:        GPL-2.0-or-later
 Group:          Development/Libraries/Python
 URL:            https://rpm.org/
 #Git-Clone:     https://github.com/rpm-software-management/rpm
-Source99:       rpm.spec
 BuildRequires:  %{python_module devel}
 BuildRequires:  file-devel
 BuildRequires:  libacl-devel
@@ -47,6 +46,7 @@
 BuildRequires:  pkgconfig(libzstd)
 Requires:       rpm = %{version}
 %{expand:%(sed -n -e '/^Source:/,/^BuildRoot:/p' <%{_sourcedir}/rpm.spec)}
+Source99:       rpm.spec
 %if "%{python_flavor}" == "python2"
 Obsoletes:      rpm-python < %{version}-%{release}
 Provides:       rpm-python = %{version}-%{release}

++++++ rpm.spec ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.598155683 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.606155681 +0100
@@ -19,7 +19,7 @@
 #Compat macro for new _fillupdir macro introduced in Nov 2017
 %{?!_fillupdir:%define _fillupdir /var/adm/fillup-templates}
 
-%global librpmsover 8
+%global librpmsover 9
 
 Name:           rpm
 BuildRequires:  binutils
@@ -57,11 +57,11 @@
 Summary:        The RPM Package Manager
 License:        GPL-2.0-or-later
 Group:          System/Packages
-Version:        4.14.2.1
+Version:        4.15.1
 Release:        0
 URL:            https://rpm.org/
 #Git-Clone:     https://github.com/rpm-software-management/rpm
-Source:         http://ftp.rpm.org/releases/rpm-4.14.x/rpm-%{version}.tar.bz2
+Source:         http://ftp.rpm.org/releases/rpm-4.15.x/rpm-%{version}.tar.bz2
 Source1:        RPM-HOWTO.tar.bz2
 Source5:        rpmsort
 Source8:        rpmconfigcheck
@@ -79,7 +79,6 @@
 Patch11:        debugedit.diff
 Patch13:        ignore-auxv.diff
 Patch12:        localetag.diff
-Patch14:        nameversioncompare.diff
 Patch15:        dbfsync.diff
 Patch16:        dbrointerruptable.diff
 Patch18:        refreshtestarch.diff
@@ -116,7 +115,6 @@
 Patch70:        fileattrs.diff
 Patch71:        nomagiccheck.diff
 Patch73:        assumeexec.diff
-Patch74:        mono-find-requires.diff
 Patch75:        rpm-deptracking.patch
 Patch77:        langnoc.diff
 Patch78:        headerchk2.diff
@@ -127,19 +125,9 @@
 Patch100:       rpm-findlang-inject-metainfo.patch
 Patch102:       emptymanifest.diff
 Patch103:       find-lang-qt-qm.patch
-Patch108:       debugedit-macro.diff
 Patch109:       pythondistdeps.diff
-Patch114:       source_date_epoch_buildtime.diff
 Patch117:       findsupplements.diff
-Patch118:       dwz-compression.patch
-Patch119:       getncpus.diff
-Patch120:       
rpmfc-push-name-epoch-version-release-macro-before-invoking-depgens.patch
-Patch121:       adopt-language-specific-build_fooflags-macros-from-F.patch
-Patch122:       0001-Stop-papering-over-the-security-disaster-known-as-pr.patch
-Patch123:       0002-Fix-use-after-free-introduced-in-0f21bdd0d7b2c45564d.patch
-Patch124:       set-flto=auto-by-default.patch
 Patch6464:      auto-config-update-aarch64-ppc64le.diff
-Patch6465:      auto-config-update-riscv64.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 #
 # avoid bootstrapping problem
@@ -212,6 +200,10 @@
 # drop candidates
 Requires:       cpio
 Requires:       file
+# for pythondistdeps generator
+Requires:       python3-base
+# The point of the split
+Conflicts:      rpm < 4.15.0
 
 %description build
 If you want to build a rpm, you need this package. It provides rpmbuild
@@ -234,29 +226,21 @@
 %patch3 -p1
 %patch -P 4
 %patch5 -p1
-%patch       -P 11 -P 12 -P 13 -P 14 -P 15 -P 16       -P 18
+%patch       -P 11 -P 12 -P 13       -P 15 -P 16       -P 18
 %patch -P 20 -P 21             -P 24 -P 25 -P 26 -P 27       -P 29
 %patch -P 30       -P 32 -P 33 -P 34 -P 35 -P 36       -P 38
 %patch                   -P 43       -P 45 -P 46 -P 47       -P 49
 %patch       -P 51                   -P 55 -P 56 -P 57 -P 58
 %patch -P 60 -P 61                         -P 66 -P 67 -P 68 -P 69
-%patch -P 70 -P 71       -P 73 -P 74 -P 75       -P 77 -P 78
+%patch -P 70 -P 71       -P 73       -P 75       -P 77 -P 78
 %patch                               -P 85
 %patch                   -P 93 -P 94                         -P 99
-%patch -P 100        -P 102 -P 103                             -P 108
-%patch -P 109                      -P 114               -P 117 -P 118
-%patch -P 119 -P 120
-%patch121 -p1
-%patch122 -p1
-%patch123 -p1
-%patch124 -p1
+%patch -P 100        -P 102 -P 103                            
+%patch -P 109                                           -P 117
 
 %ifarch aarch64 ppc64le riscv64
 %patch6464
 %endif
-%ifarch riscv64
-%patch6465
-%endif
 
 cp config.guess config.sub db/dist/
 cp config.guess config.sub beecrypt/
@@ -286,13 +270,17 @@
 
 autoreconf -fi
 ./configure --disable-dependency-tracking --prefix=%{_prefix} 
--mandir=%{_mandir} --infodir=%{_infodir} \
---libdir=%{_libdir} --sysconfdir=/etc --localstatedir=/var 
--sharedstatedir=/var/lib --with-lua \
---without-external-db \
+--libdir=%{_libdir} --sysconfdir=/etc --localstatedir=/var 
--sharedstatedir=/var/lib \
+--with-lua \
 --with-vendor=suse \
 --with-rundir=/run \
 --without-archive \
---with-selinux --with-internal-beecrypt \
---with-acl --with-cap --enable-shared %{?with_python: --enable-python} 
$BUILDTARGET
+--with-selinux \
+--with-internal-beecrypt \
+--with-acl \
+--with-cap \
+--enable-zstd \
+--enable-shared %{?with_python: --enable-python} $BUILDTARGET
 
 rm po/de.gmo
 make %{?_smp_mflags}
@@ -327,7 +315,6 @@
   chmod 755 %{buildroot}/usr/src/packages/RPMS/$dd
 done
 mkdir -p %{buildroot}/usr/lib/sysimage/rpm
-mkdir -p %{buildroot}/var/lib/rpm
 gzip -9 %{buildroot}/%{_mandir}/man[18]/*.[18]
 export RPM_BUILD_ROOT
 %ifarch s390x
@@ -386,6 +373,7 @@
 fi
 
 test -f usr/lib/sysimage/rpm/Packages || rpmdb --initdb
+test -e var/lib/rpm || ln -s ../../usr/lib/sysimage/rpm var/lib/rpm
 
 %posttrans
 # var/lib/rpm migration
@@ -405,7 +393,8 @@
     mv -f var/lib/rpm/.[!.]* usr/lib/sysimage/rpm/
     mv -f var/lib/rpm/* usr/lib/sysimage/rpm/
   fi
-  rmdir var/lib/rpm && ln -s ../../usr/lib/sysimage/rpm var/lib/rpm
+  test -d var/lib/rpm && rmdir var/lib/rpm
+  test -e var/lib/rpm || ln -s ../../usr/lib/sysimage/rpm var/lib/rpm
 fi
 
 %files -f rpm.lang
@@ -428,6 +417,8 @@
        %exclude /usr/lib/rpm/brp-*
        %exclude /usr/lib/rpm/check-*
        %exclude /usr/lib/rpm/*find*
+       %exclude /usr/lib/rpm/fileattrs/pythondist.attr
+       %exclude /usr/lib/rpm/pythondistdeps.py
        /usr/sbin/rpmconfigcheck
        /usr/lib/systemd/system/rpmconfigcheck.service
        /usr/lib/rpm
@@ -438,7 +429,7 @@
 %doc   %{_mandir}/man[18]/*.[18]*
 %dir   /usr/lib/sysimage
 %dir   /usr/lib/sysimage/rpm
-%dir   /var/lib/rpm
+%ghost /var/lib/rpm
 %dir   %attr(755,root,root) /usr/src/packages/BUILD
 %dir   %attr(755,root,root) /usr/src/packages/SPECS
 %dir   %attr(755,root,root) /usr/src/packages/SOURCES
@@ -465,6 +456,8 @@
 /usr/lib/rpm/brp-*
 /usr/lib/rpm/check-*
 /usr/lib/rpm/*find*
+/usr/lib/rpm/fileattrs/pythondist.attr
+/usr/lib/rpm/pythondistdeps.py
 
 %files devel
 %defattr(644,root,root,755)

++++++ auto-config-update-aarch64-ppc64le.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.694155666 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.702155664 +0100
@@ -1,28 +1,28 @@
-Index: build/parseBuildInstallClean.c
-===================================================================
---- build/parseBuildInstallClean.c.orig
-+++ build/parseBuildInstallClean.c
-@@ -46,7 +46,22 @@ int parseBuildInstallClean(rpmSpec spec,
-     } else if (rc < 0) {
-       goto exit;
-     }
--    
-+
-+    if (parsePart == PART_BUILD) {
-+        char* buf = strdup(
-+            "ref=/usr/lib/rpm\n"
-+            "for s in guess sub; do\n"
-+            "    for c in $(find -maxdepth 8 -name \"config.$s\"); do\n"
-+            "         grep -q config-patches@ $c || continue\n"
-+            "         grep -q aarch64 $c || install -m 755 $ref/config.$s 
$c\n"
-+            "         grep -q ppc64le $c || install -m 755 $ref/config.$s 
$c\n"
-+            "     done\n"
-+            "done\n"
-+        );
-+        appendLineStringBuf(*sbp, buf);
-+        free(buf);
-+    }
-+
-     while (! (nextPart = isPart(spec->line))) {
-       appendStringBuf(*sbp, spec->line);
-       if ((rc = readLine(spec, STRIP_NOTHING)) > 0) {
+--- ./build/parseSpec.c.orig   2019-10-02 12:38:51.836127743 +0000
++++ ./build/parseSpec.c        2019-10-02 12:52:33.818447657 +0000
+@@ -926,7 +926,24 @@ static rpmSpec parseSpec(const char *spe
+                                         &(spec->buildrequires));
+           break;
+       case PART_BUILD:
+-          parsePart = parseSimpleScript(spec, "%build", &(spec->build));
++          if (spec->build) {
++              rpmlog(RPMLOG_ERR, _("line %d: second %s\n"), spec->lineNum, 
"%build");
++              parsePart = PART_ERROR;
++              break;
++          }
++          spec->build = newStringBuf();
++          appendLineStringBuf(spec->build,
++              "ref=/usr/lib/rpm\n"
++              "for s in guess sub; do\n"
++              "    for c in $(find -maxdepth 8 -name \"config.$s\"); do\n"
++              "         grep -q config-patches@ $c || continue\n"
++              "         grep -q aarch64 $c || install -m 755 $ref/config.$s 
$c\n"
++              "         grep -q ppc64le $c || install -m 755 $ref/config.$s 
$c\n"
++              "         grep -q 'riscv64[-:]' $c || install -m 755 
$ref/config.$s $c\n"
++              "     done\n"
++              "done\n"
++          );
++          parsePart = parseLines(spec, STRIP_NOTHING, NULL, &(spec->build));
+           break;
+       case PART_INSTALL:
+           parsePart = parseSimpleScript(spec, "%install", &(spec->install));

++++++ brp-compress-no-img.patch ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.758155654 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.758155654 +0100
@@ -1,10 +1,10 @@
---- scripts/brp-compress       2013-09-02 19:00:09.000000000 +0200
-+++ scripts/brp-compress       2013-09-02 19:03:12.000000000 +0200
-@@ -47,6 +47,7 @@ do
+--- ./scripts/brp-compress.orig        2019-10-02 12:09:46.263708258 +0000
++++ ./scripts/brp-compress     2019-10-02 12:09:52.055696056 +0000
+@@ -50,6 +50,7 @@ do
      find $d -type f ! -name dir | while read f
      do
          [ -f "$f" ] || continue
 +      case $(file "$f") in *"image data"*) continue;; esac
  
        case "$f" in
-        *.gz|*.Z)    gunzip  "$f" || check_for_hard_link $d "$f"; b=`echo $f | 
sed -e 's/\.\(gz\|Z\)$//'`;;
+        *.gz|*.Z)    gunzip  -f "$f" || check_for_hard_link $d "$f"; b=`echo 
$f | sed -e 's/\.\(gz\|Z\)$//'`;;

++++++ brpcompress.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.778155650 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.778155650 +0100
@@ -1,16 +1,16 @@
---- ./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
+--- ./scripts/brp-compress.orig        2019-10-02 09:59:40.403995534 +0000
++++ ./scripts/brp-compress     2019-10-02 10:03:27.075537047 +0000
+@@ -5,6 +5,9 @@ if [ -z "$RPM_BUILD_ROOT" ] || [ "$RPM_B
        exit 0
  fi
  
 +LC_ALL=
 +LANG=
 +LC_TIME=POSIX
-+
- cd "$RPM_BUILD_ROOT"
+ PREFIX=${1:-/usr}
  
- # Compress man pages
+ cd "$RPM_BUILD_ROOT"
+@@ -13,6 +16,29 @@ cd "$RPM_BUILD_ROOT"
  COMPRESS=${COMPRESS:-gzip -9 -n}
  COMPRESS_EXT=${COMPRESS_EXT:-.gz}
  
@@ -37,10 +37,11 @@
 +    done
 +}
 +
- 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/fish/man/man*
+ for d in .${PREFIX}/man/man* .${PREFIX}/man/*/man* .${PREFIX}/info \
+       .${PREFIX}/share/man/man* .${PREFIX}/share/man/*/man* \
+       .${PREFIX}/share/info .${PREFIX}/kerberos/man \
+@@ -21,39 +47,39 @@ for d in .${PREFIX}/man/man* .${PREFIX}/
+       .${PREFIX}/share/fish/man/man*
  do
      [ -d $d ] || continue
 -    for f in `find $d -type f ! -name dir`
@@ -52,11 +53,10 @@
 -       *.gz|*.Z)    gunzip  -f $f; b=`echo $f | sed -e 's/\.\(gz\|Z\)$//'`;;
 -       *.bz2)       bunzip2 -f $f; b=`echo $f | sed -e 's/\.bz2$//'`;;
 -       *.xz|*.lzma) unxz    -f $f; b=`echo $f | sed -e 
's/\.\(xz\|lzma\)$//'`;;
--       *) b=$f;;
-+       *.gz|*.Z)    gunzip  "$f" || check_for_hard_link $d "$f"; b=`echo $f | 
sed -e 's/\.\(gz\|Z\)$//'`;;
-+       *.bz2)       bunzip2 "$f" || check_for_hard_link $d "$f"; b=`echo $f | 
sed -e 's/\.bz2$//'`;;
-+       *.xz|*.lzma) unxz    "$f" || check_for_hard_link $d "$f"; b=`echo $f | 
sed -e 's/\.\(xz\|lzma\)$//'`;;
-+       *) b="$f";;
++       *.gz|*.Z)    gunzip  -f "$f" || check_for_hard_link $d "$f"; b=`echo 
$f | sed -e 's/\.\(gz\|Z\)$//'`;;
++       *.bz2)       bunzip2 -f "$f" || check_for_hard_link $d "$f"; b=`echo 
$f | sed -e 's/\.bz2$//'`;;
++       *.xz|*.lzma) unxz    -f "$f" || check_for_hard_link $d "$f"; b=`echo 
$f | sed -e 's/\.\(xz\|lzma\)$//'`;;
+        *) b=$f;;
        esac
  
 -      $COMPRESS $b </dev/null 2>/dev/null || {

++++++ checksepwarn.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.794155647 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.794155647 +0100
@@ -1,5 +1,5 @@
---- ./build/parseReqs.c.orig   2017-10-05 10:04:56.887602165 +0000
-+++ ./build/parseReqs.c        2017-12-01 16:00:06.956343096 +0000
+--- ./build/parseReqs.c.orig   2019-06-26 14:17:31.396985719 +0000
++++ ./build/parseReqs.c        2019-10-02 12:10:51.879570016 +0000
 @@ -42,7 +42,7 @@ static rpmRC checkEpoch(const char *s, c
      return RPMRC_OK;
  }
@@ -54,11 +54,11 @@
 +      if (checkDep(spec, tagflags, N, EVR, &emsg))
            goto exit;
  
-       if (nametag == RPMTAG_FILETRIGGERNAME ||
---- ./macros.in.orig   2017-12-01 16:00:02.705355493 +0000
-+++ ./macros.in        2017-12-01 16:00:06.957343106 +0000
-@@ -456,7 +456,7 @@ package or when debugging this package.\
- %_invalid_encoding_terminates_build 0
+       if (nametag == RPMTAG_OBSOLETENAME) {
+--- ./macros.in.orig   2019-10-02 12:10:45.431583601 +0000
++++ ./macros.in        2019-10-02 12:10:51.879570016 +0000
+@@ -452,7 +452,7 @@ package or when debugging this package.\
+ %_invalid_encoding_terminates_build 1
  
  # Should invalid version format in requires, provides, ... terminate a build?
 -%_wrong_version_format_terminate_build 1

++++++ debugedit.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.810155644 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.814155644 +0100
@@ -1,8 +1,8 @@
 Make debugedit build without dwarf.h
 
---- ./Makefile.am.orig 2017-12-01 14:15:13.963574699 +0000
-+++ ./Makefile.am      2017-12-01 14:16:10.634407860 +0000
-@@ -154,7 +154,6 @@ rpm2archive_LDADD +=       @WITH_POPT_LIB@ @WI
+--- ./Makefile.am.orig 2019-06-26 14:17:31.394985722 +0000
++++ ./Makefile.am      2019-10-02 09:48:35.949316743 +0000
+@@ -167,7 +167,6 @@ rpm2archive_LDADD +=       @WITH_POPT_LIB@ @WI
  
  
  if LIBELF
@@ -10,7 +10,7 @@
  if LIBDW
  rpmconfig_SCRIPTS += scripts/find-debuginfo.sh
  
-@@ -168,7 +167,6 @@ else
+@@ -181,7 +180,6 @@ else
  debugedit_LDADD +=    @WITH_LIBDW_LIB@ -lebl
  endif # HAVE_LIBDW_STRTAB
  endif # LIBDW
@@ -18,9 +18,9 @@
  rpmlibexec_PROGRAMS +=        elfdeps
  elfdeps_SOURCES =     tools/elfdeps.c
  elfdeps_LDADD =               rpmio/librpmio.la
---- ./tools/debugedit.c.orig   2017-10-05 10:04:57.714602011 +0000
-+++ ./tools/debugedit.c        2017-12-01 14:15:13.965574668 +0000
-@@ -39,7 +39,37 @@
+--- ./tools/debugedit.c.orig   2019-06-26 14:17:31.462985619 +0000
++++ ./tools/debugedit.c        2019-10-02 09:48:35.953316735 +0000
+@@ -39,7 +39,45 @@
  #include <popt.h>
  
  #include <gelf.h>
@@ -56,6 +56,14 @@
 +#define DW_FORM_ref8          0x14
 +#define DW_FORM_ref_udata     0x15
 +#define DW_FORM_indirect      0x16
++
++#define DW_MACRO_GNU_define   1
++#define DW_MACRO_GNU_undef    2
++#define DW_MACRO_GNU_start_file       3
++#define DW_MACRO_GNU_end_file 4
++#define DW_MACRO_GNU_define_indirect  5
++#define DW_MACRO_GNU_undef_indirect   6
++#define DW_MACRO_GNU_transparent_include 7
+ 
  
  /* Unfortunately strtab manipulation functions were only officially added
-    to elfutils libdw in 0.167.  Before that there were internal unsupported

++++++ enable-postin-scripts-error.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.834155640 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.834155640 +0100
@@ -1,21 +1,29 @@
---- ./lib/transaction.c.orig   2018-07-02 14:51:41.328051671 +0000
-+++ ./lib/transaction.c        2018-07-02 14:51:46.264038824 +0000
-@@ -1462,7 +1462,9 @@ rpmRC runScript(rpmts ts, rpmte te, Head
-     int warn_only = (stag != RPMTAG_PREIN &&
-                    stag != RPMTAG_PREUN &&
-                    stag != RPMTAG_PRETRANS &&
--                   stag != RPMTAG_VERIFYSCRIPT);
-+                   stag != RPMTAG_VERIFYSCRIPT &&
-+                   !(stag == RPMTAG_POSTIN &&
-+                      rpmExpandNumeric("%{_fail_on_postinstall_errors}")));
-     rpmdb rdb = rpmtsGetRdb(ts);
+--- ./lib/rpmscript.c.orig     2019-10-02 12:19:15.694519983 +0000
++++ ./lib/rpmscript.c  2019-10-02 12:22:32.838112185 +0000
+@@ -411,7 +411,7 @@ rpmRC rpmScriptRun(rpmScript script, int
+     if (script == NULL) return RPMRC_OK;
  
-     /* Fake up a transaction element for triggers from rpmdb */
---- ./macros.in.orig   2018-07-02 14:51:41.340051640 +0000
-+++ ./macros.in        2018-07-02 14:51:46.264038824 +0000
-@@ -1290,5 +1290,10 @@ end}
- %{expand:%__scm_setup_%{__scm} %{!-v:-q}}\
- %{!-N:%autopatch %{-v} %{-p:-p%{-p*}}}
+     ARGV_t args = NULL;
+-    rpmlogLvl lvl = (script->flags & RPMSCRIPT_FLAG_CRITICAL) ?
++    rpmlogLvl lvl = (rpmScriptFlags(script) & RPMSCRIPT_FLAG_CRITICAL) ?
+                   RPMLOG_ERR : RPMLOG_WARNING;
+     rpmRC rc;
+     int script_type = RPMSCRIPTLET_FORK | RPMSCRIPTLET_EXEC;
+@@ -654,5 +654,8 @@ rpmscriptTypes rpmScriptType(rpmScript s
+ 
+ rpmscriptFlags rpmScriptFlags(rpmScript script)
+ {
+-    return (script != NULL) ? script->flags : 0;
++    rpmscriptFlags flags = (script != NULL) ? script->flags : 0;
++    if (script && script->tag == RPMTAG_POSTIN && 
rpmExpandNumeric("%{_fail_on_postinstall_errors}"))
++      flags |= RPMSCRIPT_FLAG_CRITICAL;
++    return flags;
+ }
+--- ./macros.in.orig   2019-10-02 12:12:13.027399050 +0000
++++ ./macros.in        2019-10-02 12:12:19.799384783 +0000
+@@ -1318,5 +1318,10 @@ end}
+ %requires_eq() %(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: 
%%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | 
grep -v "is not")
+ %requires_ge() %(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: 
%%{name} >= %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | 
grep -v "is not")
  
 +# Should errors in %post scriptlet be propagated as errors? 
 +#

++++++ fileattrs.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.842155639 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.842155639 +0100
@@ -1,15 +1,15 @@
---- ./fileattrs/Makefile.am.orig       2017-12-01 15:46:21.021741182 +0000
-+++ ./fileattrs/Makefile.am    2017-12-01 15:48:54.108298271 +0000
+--- ./fileattrs/Makefile.am.orig       2019-10-02 11:39:56.095525981 +0000
++++ ./fileattrs/Makefile.am    2019-10-02 11:40:20.695473538 +0000
 @@ -8,6 +8,6 @@ fattrsdir = $(rpmconfigdir)/fileattrs
  fattrs_DATA = \
        debuginfo.attr desktop.attr elf.attr font.attr libtool.attr 
metainfo.attr \
-       perl.attr perllib.attr pkgconfig.attr python.attr ocaml.attr 
script.attr \
--      mono.attr
-+      mono.attr elflib.attr
+       perl.attr perllib.attr pkgconfig.attr python.attr pythondist.attr 
ocaml.attr \
+-      script.attr
++      script.attr elflib.attr
  
  EXTRA_DIST = $(fattrs_DATA)
---- ./fileattrs/elf.attr.orig  2017-12-01 15:46:28.171720501 +0000
-+++ ./fileattrs/elf.attr       2017-12-01 15:47:49.339485678 +0000
+--- ./fileattrs/elf.attr.orig  2019-06-26 14:17:31.404985707 +0000
++++ ./fileattrs/elf.attr       2019-10-02 11:39:56.095525981 +0000
 @@ -1,4 +1,5 @@
  %__elf_provides               %{_rpmconfigdir}/elfdeps --provides 
%{?__filter_GLIBC_PRIVATE:--filter-private}
  %__elf_requires               %{_rpmconfigdir}/elfdeps --requires 
%{?__filter_GLIBC_PRIVATE:--filter-private}
@@ -17,23 +17,23 @@
 +%__elf_magic          ^(setuid,? )?(setgid,? )?(sticky )?ELF 
(32|64)-bit.*executable
  %__elf_flags          exeonly
 +%__elf_exclude_path   ^/usr/lib/debug/
---- ./fileattrs/elflib.attr.orig       2017-12-01 15:46:28.171720501 +0000
-+++ ./fileattrs/elflib.attr    2017-12-01 15:46:28.171720501 +0000
+--- ./fileattrs/elflib.attr.orig       2019-10-02 11:39:56.095525981 +0000
++++ ./fileattrs/elflib.attr    2019-10-02 11:39:56.095525981 +0000
 @@ -0,0 +1,4 @@
 +%__elflib_provides    %{_rpmconfigdir}/elfdeps --assume-exec --provides 
%{?__filter_GLIBC_PRIVATE:--filter-private}
 +%__elflib_requires    %{_rpmconfigdir}/elfdeps --assume-exec --requires 
%{?__filter_GLIBC_PRIVATE:--filter-private}
 +%__elflib_magic               ^(setuid )?(setgid )?(sticky )?ELF 
(32|64)-bit.*shared object
 +%__elflib_exclude_path        ^/usr/lib/debug/
---- ./fileattrs/perl.attr.orig 2017-08-10 08:08:07.113108701 +0000
-+++ ./fileattrs/perl.attr      2017-12-01 15:46:28.172720497 +0000
+--- ./fileattrs/perl.attr.orig 2019-06-26 14:17:31.404985707 +0000
++++ ./fileattrs/perl.attr      2019-10-02 11:39:56.095525981 +0000
 @@ -1,3 +1,4 @@
 -%__perl_requires      %{_rpmconfigdir}/perl.req
 +# disabled for now
 +#%__perl_requires     %{_rpmconfigdir}/perl.req
  %__perl_magic         ^.*[Pp]erl .*$
  %__perl_flags         exeonly
---- ./fileattrs/perllib.attr.orig      2017-08-10 08:08:07.113108701 +0000
-+++ ./fileattrs/perllib.attr   2017-12-01 15:46:28.172720497 +0000
+--- ./fileattrs/perllib.attr.orig      2019-06-26 14:17:31.404985707 +0000
++++ ./fileattrs/perllib.attr   2019-10-02 11:39:56.095525981 +0000
 @@ -1,5 +1,6 @@
  %__perllib_provides   %{_rpmconfigdir}/perl.prov
 -%__perllib_requires   %{_rpmconfigdir}/perl.req
@@ -42,3 +42,11 @@
  %__perllib_magic      ^Perl[[:digit:]] module source.*
  %__perllib_path               \\.pm$
  %__perllib_flags      magic_and_path
+--- ./fileattrs/pythondist.attr.orig   2019-12-06 14:32:57.245328376 +0000
++++ ./fileattrs/pythondist.attr        2019-12-06 14:33:35.345238073 +0000
+@@ -1,3 +1,4 @@
+ %__pythondist_provides        %{_rpmconfigdir}/pythondistdeps.py --provides 
--majorver-provides
+-%__pythondist_requires        %{_rpmconfigdir}/pythondistdeps.py --requires
++#disabled for now
++#%__pythondist_requires       %{_rpmconfigdir}/pythondistdeps.py --requires
+ %__pythondist_path            
/lib(64)?/python[[:digit:]]\\.[[:digit:]]+/site-packages/[^/]+\\.(dist-info|egg-info|egg-link)$

++++++ finddebuginfo.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.862155636 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.862155636 +0100
@@ -1,15 +1,15 @@
---- ./scripts/find-debuginfo.sh.orig   2017-10-05 10:04:57.586602035 +0000
-+++ ./scripts/find-debuginfo.sh        2017-12-01 14:45:15.439290101 +0000
-@@ -326,12 +326,18 @@ trap 'rm -rf "$temp"' EXIT
+--- ./scripts/find-debuginfo.sh.orig   2019-09-09 07:56:53.377788842 +0000
++++ ./scripts/find-debuginfo.sh        2019-10-02 11:11:56.878979662 +0000
+@@ -348,12 +348,18 @@ trap 'rm -rf "$temp"' EXIT
  
  # Build a list of unstripped ELF files and their hardlinks
  touch "$temp/primary"
 -find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
 -                   \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
--                   -print |
+-                   -print | LC_ALL=C sort |
 -file -N -f - | sed -n -e 's/^\(.*\):[         ]*.*ELF.*, not stripped.*/\1/p' 
|
 -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" \) ! -name "*.a" -print0 | sort -z |
++find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \( -perm /111 
-or -name "*.so*" -or -name "*.ko" \) ! -name "*.a" -print0 | LC_ALL=C sort -z |
 +xargs --no-run-if-empty -0 stat -c '%h %D_%i %n' |
  while read nlinks inum f; do
 +  case $(objdump -h $f 2>/dev/null | egrep -o '(debug[\.a-z_]*|gnu.version)') 
in
@@ -24,7 +24,7 @@
    if [ $nlinks -gt 1 ]; then
      var=seen_$inum
      if test -n "${!var}"; then
-@@ -364,6 +370,8 @@ do_file()
+@@ -386,6 +392,8 @@ do_file()
    if [ "$no_recompute_build_id" = "true" ]; then
      no_recompute="-n"
    fi
@@ -33,7 +33,7 @@
    id=$(${lib_rpm_dir}/debugedit -b "$debug_base_name" -d "$debug_dest_name" \
                              $no_recompute -i \
                              
${build_id_seed:+--build-id-seed="$build_id_seed"} \
-@@ -387,17 +395,30 @@ do_file()
+@@ -413,17 +421,30 @@ do_file()
    # just has its file names collected and adjusted.
    case "$dn" in
    /usr/lib/debug/*)
@@ -71,16 +71,7 @@
  
    # strip -g implies we have full symtab, don't add mini symtab in that case.
    # It only makes sense to add a minisymtab for executables and shared
-@@ -507,7 +528,7 @@ if $run_dwz \
-     rmdir "${RPM_BUILD_ROOT}/usr/lib/debug/.dwz" 2>/dev/null
-     if [ -f "${RPM_BUILD_ROOT}/usr/lib/debug/.dwz/${dwz_multifile_name}" ]; 
then
-       id="`readelf -Wn 
"${RPM_BUILD_ROOT}/usr/lib/debug/.dwz/${dwz_multifile_name}" \
--           2>/dev/null | sed -n 's/^    Build ID: \([0-9a-f]\+\)/\1/p'`"
-+           2>/dev/null | sed -n 's/^.* Build ID: \([0-9a-f]\+\)/\1/p'`"
-     fi
- 
-     # dwz invalidates .gnu_debuglink CRC32 in the main files.
-@@ -551,12 +572,14 @@ if [ -s "$SOURCEFILE" ]; then
+@@ -581,12 +602,14 @@ if [ -s "$SOURCEFILE" ]; then
    # and non-standard modes may be inherented from original directories, fixup
    find "${RPM_BUILD_ROOT}${debug_dest_name}" -type d -print0 |
    xargs --no-run-if-empty -0 chmod 0755
@@ -88,7 +79,7 @@
 +  xargs --no-run-if-empty -0 chmod a+r
  fi
  
- if [ -d "${RPM_BUILD_ROOT}/usr/lib" -o -d "${RPM_BUILD_ROOT}/usr/src" ]; then
+ if [ -d "${RPM_BUILD_ROOT}/usr/lib" ] || [ -d "${RPM_BUILD_ROOT}/usr/src" ]; 
then
    ((nout > 0)) ||
    test ! -d "${RPM_BUILD_ROOT}/usr/lib" ||
 -  (cd "${RPM_BUILD_ROOT}/usr/lib"; find debug -type d) |

++++++ findlang.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.886155631 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.886155631 +0100
@@ -1,5 +1,5 @@
---- ./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
+--- ./scripts/find-lang.sh.orig        2019-09-09 07:56:53.377788842 +0000
++++ ./scripts/find-lang.sh     2019-10-02 11:12:53.774861485 +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
@@ -137,7 +137,7 @@
 +/^$/d' >> $MO_NAME_NEW
  
  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 ] && [ -d "$TOP_DIR$KDE3_HTML" ]; then
 @@ -193,7 +203,7 @@ s:'"$TOP_DIR"'::
  
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) 
\1\2\3:
  s:^\([^%].*\)::

++++++ findsupplements.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.902155628 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.902155628 +0100
@@ -1,25 +1,25 @@
---- ./scripts/Makefile.am.orig 2018-07-02 14:43:19.345357110 +0000
-+++ ./scripts/Makefile.am      2018-07-02 14:43:47.245284542 +0000
-@@ -17,7 +17,7 @@ EXTRA_DIST = \
-       python-macro-helper \
+--- ./scripts/Makefile.am.orig 2019-06-26 14:17:31.452985634 +0000
++++ ./scripts/Makefile.am      2019-10-02 12:27:55.885450155 +0000
+@@ -16,7 +16,7 @@ EXTRA_DIST = \
+       perl.prov perl.req pythondeps.sh pythondistdeps.py \
        rpmdb_loadcvt rpm.daily rpm.log rpm.supp rpm2cpio.sh \
        tgpg vpkg-provides.sh \
 -      find-requires find-provides \
 +      find-requires find-provides find-supplements \
        find-requires.php find-provides.php \
-       mono-find-requires mono-find-provides \
        ocaml-find-requires.sh ocaml-find-provides.sh \
-@@ -32,7 +32,7 @@ rpmconfig_SCRIPTS = \
+       pkgconfigdeps.sh libtooldeps.sh metainfo.prov \
+@@ -29,7 +29,7 @@ rpmconfig_SCRIPTS = \
        check-files check-prereqs \
        check-buildroot check-rpaths check-rpaths-worker \
        debuginfo.prov \
 -      find-lang.sh find-requires find-provides \
 +      find-lang.sh find-requires find-provides find-supplements \
        perl.prov perl.req pythondeps.sh pythondistdeps.py \
-       python-macro-helper \
        metainfo.prov \
---- ./scripts/find-supplements.orig    2018-07-02 14:43:12.877373928 +0000
-+++ ./scripts/find-supplements 2018-07-02 14:43:59.325253127 +0000
+       pkgconfigdeps.sh libtooldeps.sh \
+--- ./scripts/find-supplements.orig    2019-10-02 12:27:55.885450155 +0000
++++ ./scripts/find-supplements 2019-10-02 12:27:55.885450155 +0000
 @@ -0,0 +1,3 @@
 +#!/bin/sh
 +

++++++ ignore-auxv.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:36.970155617 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:36.970155617 +0100
@@ -1,6 +1,6 @@
---- ./lib/rpmrc.c.orig 2014-07-03 15:11:48.572096075 +0000
-+++ ./lib/rpmrc.c      2014-09-17 12:04:27.330717791 +0000
-@@ -79,10 +79,12 @@ struct rpmOption {
+--- ./lib/rpmrc.c.orig 2019-06-26 14:17:31.416985688 +0000
++++ ./lib/rpmrc.c      2019-10-02 09:52:05.076903733 +0000
+@@ -79,11 +79,13 @@ struct rpmOption {
      int localize;
  };
  
@@ -8,21 +8,22 @@
  static struct rpmat_s {
      const char *platform;
      uint64_t hwcap;
+     uint64_t hwcap2;
  } rpmat;
 +#endif
  
  typedef struct defaultEntry_s {
      char * name;
-@@ -936,7 +938,7 @@ static int is_geode(void)
+@@ -950,7 +952,7 @@ static int is_geode(void)
  #endif
  
  
 -#if defined(__linux__)
 +#if defined(__linux__) && (defined(__powerpc__) || defined(__sparc__) || 
(defined(__arm__) && defined(__ARM_PCS_VFP)))
- /**
-  * Populate rpmat structure with auxv values
-  */
-@@ -993,7 +995,7 @@ static void defaultMachine(rpmrcCtx ctx,
+ #ifndef AT_HWCAP2 /* glibc < 2.18 */
+ #define AT_HWCAP2 26
+ #endif
+@@ -1013,7 +1015,7 @@ static void defaultMachine(rpmrcCtx ctx,
      canonEntry canon;
      int rc;
  

++++++ macrosin.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:37.006155610 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:37.006155610 +0100
@@ -1,6 +1,6 @@
---- ./macros.in.orig   2018-07-02 14:46:14.912900534 +0000
-+++ ./macros.in        2018-07-02 14:50:35.356223235 +0000
-@@ -184,7 +184,7 @@
+--- ./macros.in.orig   2019-10-02 11:13:35.966773848 +0000
++++ ./macros.in        2019-10-02 11:17:37.210282271 +0000
+@@ -177,7 +177,7 @@
      %{?_unique_build_ids:--build-id-seed "%{VERSION}-%{RELEASE}"} \\\
      %{?_unique_debug_names:--unique-debug-suffix 
"-%{VERSION}-%{RELEASE}.%{_arch}"} \\\
      %{?_unique_debug_srcs:--unique-debug-src-base 
"%{name}-%{VERSION}-%{RELEASE}.%{_arch}"} \\\
@@ -9,7 +9,7 @@
      %{?_find_debuginfo_opts} \\\
      %{?_debugsource_packages:-S debugsourcefiles.list} \\\
      "%{_builddir}/%{?buildsubdir}"\
-@@ -224,7 +224,8 @@ package or when debugging this package.\
+@@ -217,7 +217,8 @@ package or when debugging this package.\
  %endif\
  %{nil}
  
@@ -19,7 +19,7 @@
  %_defaultlicensedir   %{_datadir}/licenses
  
  # Following macros for filtering auto deps must not be used in spec files.
-@@ -278,7 +279,8 @@ package or when debugging this package.\
+@@ -276,7 +277,8 @@ package or when debugging this package.\
  %_tmppath             %{_var}/tmp
  
  #     Path to top of build area.
@@ -29,8 +29,8 @@
  
  #     The path to the unzip executable (legacy, use %{__unzip} instead).
  %_unzipbin            %{__unzip}
-@@ -382,7 +384,7 @@ package or when debugging this package.\
- #             "w6.lzdio"      lzma-alone level 6, lzma's default
+@@ -388,7 +390,7 @@ package or when debugging this package.\
+ #             "w.ufdio"       uncompressed
  #
  #%_source_payload     w9.gzdio
 -#%_binary_payload     w9.gzdio
@@ -38,7 +38,7 @@
  
  #     Algorithm to use for generating file checksum digests on build.
  #     If not specified or 0, MD5 is used.
-@@ -489,6 +491,19 @@ package or when debugging this package.\
+@@ -495,6 +497,19 @@ package or when debugging this package.\
  #
  #%_include_minidebuginfo      1
  
@@ -58,7 +58,7 @@
  #
  # Include a .gdb_index section in the .debug files.
  # Requires _enable_debug_packages and gdb-add-index installed.
-@@ -521,7 +536,7 @@ package or when debugging this package.\
+@@ -527,7 +542,7 @@ package or when debugging this package.\
  #   Same as for "separate" but if the __debug_package global is set then
  #   the -debuginfo package will have a compatibility link for the main
  #   ELF /usr/lib/debug/.build-id/xx/yyy -> /usr/lib/.build-id/xx/yyy
@@ -67,7 +67,7 @@
  
  # Whether build-ids should be made unique between package version/releases
  # when generating debuginfo packages. If set to 1 this will pass
-@@ -550,10 +565,10 @@ package or when debugging this package.\
+@@ -556,10 +571,10 @@ package or when debugging this package.\
  %_unique_debug_srcs   1
  
  # Whether rpm should put debug source files into its own subpackage
@@ -80,7 +80,7 @@
  
  #
  # Use internal dependency generator rather than external helpers?
-@@ -566,6 +581,10 @@ package or when debugging this package.\
+@@ -572,6 +587,10 @@ package or when debugging this package.\
  # 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
  
@@ -91,7 +91,7 @@
  #
  # Path to scripts to autogenerate package dependencies,
  #
-@@ -576,6 +595,7 @@ package or when debugging this package.\
+@@ -582,6 +601,7 @@ package or when debugging this package.\
  %__find_requires      %{_rpmconfigdir}/find-requires
  #%__find_conflicts    ???
  #%__find_obsoletes    ???
@@ -99,7 +99,7 @@
  
  # 
  # Path to file attribute classifications for automatic dependency 
-@@ -654,10 +674,10 @@ package or when debugging this package.\
+@@ -660,10 +680,10 @@ package or when debugging this package.\
  # Misc BDB tuning options
  %__dbi_other                  mp_mmapsize=128Mb mp_size=1Mb
  
@@ -112,7 +112,7 @@
  
  
#==============================================================================
  # ---- GPG/PGP/PGP5 signature macros.
-@@ -969,7 +989,7 @@ package or when debugging this package.\
+@@ -1000,7 +1020,7 @@ package or when debugging this package.\
  %_build_vendor                %{_host_vendor}
  %_build_os            %{_host_os}
  %_host                        @host@
@@ -121,13 +121,13 @@
  %_host_cpu            @host_cpu@
  %_host_vendor         @host_vendor@
  %_host_os             @host_os@
-@@ -1095,7 +1115,9 @@ package or when debugging this package.\
+@@ -1119,7 +1139,9 @@ package or when debugging this package.\
  
  
#------------------------------------------------------------------------------
  # arch macro for all supported ARM processors
--%arm  armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl 
armv7l armv7hl armv7hnl
-+%arm    armv3l armv4b armv4l armv4tl armv5b armv5l armv5teb armv5tel 
armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl
-+%arml   armv3l armv4l armv5l armv5tel armv6l armv6hl armv7l armv7hl armv7hnl
+-%arm  armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl 
armv7l armv7hl armv7hnl armv8l armv8hl armv8hnl armv8hcnl
++%arm    armv3l armv4b armv4l armv4tl armv5b armv5l armv5teb armv5tel 
armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl armv8l armv8hl armv8hnl 
armv8hcnl
++%arml   armv3l armv4l armv5l armv5tel armv6l armv6hl armv7l armv7hl armv7hnl 
armv8l armv8hl armv8hnl armv8hcnl
 +%armb   armv4b armv5b armv5teb
  
  
#------------------------------------------------------------------------------

++++++ nomagiccheck.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:37.078155597 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:37.078155597 +0100
@@ -1,13 +1,13 @@
 Don't let rpm complain about a missing /etc/magic.mgc file
 
---- build/rpmfc.c.orig 2013-07-12 12:16:40.000000000 +0000
-+++ build/rpmfc.c      2013-07-12 12:17:15.000000000 +0000
-@@ -901,7 +901,7 @@ static int initAttrs(rpmfc fc)
+--- ./build/rpmfc.c.orig       2019-10-02 11:41:15.063357579 +0000
++++ ./build/rpmfc.c    2019-10-02 11:41:42.583298884 +0000
+@@ -1065,7 +1065,7 @@ static int initAttrs(rpmfc fc)
  
  rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
  {
 -    int msflags = MAGIC_CHECK | MAGIC_COMPRESS | MAGIC_NO_CHECK_TOKENS;
 +    int msflags = MAGIC_COMPRESS | MAGIC_NO_CHECK_TOKENS;
-     magic_t ms = NULL;
+     int nerrors = 0;
      rpmRC rc = RPMRC_FAIL;
  

++++++ noprereqdeprec.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:37.094155594 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:37.098155594 +0100
@@ -1,20 +1,20 @@
---- ./build/parsePreamble.c.orig       2017-12-01 15:42:35.766392406 +0000
-+++ ./build/parsePreamble.c    2017-12-01 15:43:29.364237520 +0000
-@@ -996,7 +996,7 @@ static struct PreambleRec_s const preamb
-     {RPMTAG_SUGGESTNAME,      0, 0, LEN_AND_STR("suggests")},
-     {RPMTAG_SUPPLEMENTNAME,   0, 0, LEN_AND_STR("supplements")},
-     {RPMTAG_ENHANCENAME,      0, 0, LEN_AND_STR("enhances")},
--    {RPMTAG_PREREQ,           2, 1, LEN_AND_STR("prereq")},
-+    {RPMTAG_PREREQ,           2, 0, LEN_AND_STR("prereq")},
-     {RPMTAG_CONFLICTNAME,     0, 0, LEN_AND_STR("conflicts")},
-     {RPMTAG_OBSOLETENAME,     0, 0, LEN_AND_STR("obsoletes")},
-     {RPMTAG_PREFIXES,         0, 0, LEN_AND_STR("prefixes")},
-@@ -1005,7 +1005,7 @@ static struct PreambleRec_s const preamb
-     {RPMTAG_BUILDARCHS,               0, 0, 
LEN_AND_STR("buildarchitectures")},
-     {RPMTAG_BUILDARCHS,               0, 0, LEN_AND_STR("buildarch")},
-     {RPMTAG_BUILDCONFLICTS,   0, 0, LEN_AND_STR("buildconflicts")},
--    {RPMTAG_BUILDPREREQ,      0, 1, LEN_AND_STR("buildprereq")},
-+    {RPMTAG_BUILDPREREQ,      0, 0, LEN_AND_STR("buildprereq")},
-     {RPMTAG_BUILDREQUIRES,    0, 0, LEN_AND_STR("buildrequires")},
-     {RPMTAG_AUTOREQPROV,      0, 0, LEN_AND_STR("autoreqprov")},
-     {RPMTAG_AUTOREQ,          0, 0, LEN_AND_STR("autoreq")},
+--- ./build/parsePreamble.c.orig       2019-10-02 11:38:15.807736662 +0000
++++ ./build/parsePreamble.c    2019-10-02 11:39:12.495617575 +0000
+@@ -1032,7 +1032,7 @@ static struct PreambleRec_s const preamb
+     {RPMTAG_SUGGESTNAME,      0, 0, 0, LEN_AND_STR("suggests")},
+     {RPMTAG_SUPPLEMENTNAME,   0, 0, 0, LEN_AND_STR("supplements")},
+     {RPMTAG_ENHANCENAME,      0, 0, 0, LEN_AND_STR("enhances")},
+-    {RPMTAG_PREREQ,           2, 1, 0, LEN_AND_STR("prereq")},
++    {RPMTAG_PREREQ,           2, 0, 0, LEN_AND_STR("prereq")},
+     {RPMTAG_CONFLICTNAME,     0, 0, 0, LEN_AND_STR("conflicts")},
+     {RPMTAG_OBSOLETENAME,     0, 0, 0, LEN_AND_STR("obsoletes")},
+     {RPMTAG_PREFIXES,         0, 0, 1, LEN_AND_STR("prefixes")},
+@@ -1041,7 +1041,7 @@ static struct PreambleRec_s const preamb
+     {RPMTAG_BUILDARCHS,               0, 0, 0, 
LEN_AND_STR("buildarchitectures")},
+     {RPMTAG_BUILDARCHS,               0, 0, 0, LEN_AND_STR("buildarch")},
+     {RPMTAG_BUILDCONFLICTS,   0, 0, 0, LEN_AND_STR("buildconflicts")},
+-    {RPMTAG_BUILDPREREQ,      0, 1, 0, LEN_AND_STR("buildprereq")},
++    {RPMTAG_BUILDPREREQ,      0, 0, 0, LEN_AND_STR("buildprereq")},
+     {RPMTAG_BUILDREQUIRES,    0, 0, 0, LEN_AND_STR("buildrequires")},
+     {RPMTAG_AUTOREQPROV,      0, 0, 0, LEN_AND_STR("autoreqprov")},
+     {RPMTAG_AUTOREQ,          0, 0, 0, LEN_AND_STR("autoreq")},

++++++ pythondistdeps.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:37.114155591 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:37.118155590 +0100
@@ -1,7 +1,8 @@
---- ./scripts/pythondistdeps.py.orig   2018-08-08 13:40:18.173941320 +0000
-+++ ./scripts/pythondistdeps.py        2018-10-16 09:30:49.271004917 +0000
-@@ -1,4 +1,3 @@
+--- ./scripts/pythondistdeps.py.orig   2019-06-26 10:17:31.454985631 -0400
++++ ./scripts/pythondistdeps.py        2019-10-31 16:30:37.685850605 -0400
+@@ -1,4 +1,4 @@
 -#!/usr/bin/python
++#!/usr/bin/python3
  # -*- coding: utf-8 -*-
  #
  # Copyright 2010 Per Øyvind Karlsen <[email protected]>

++++++ refreshtestarch.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:37.130155588 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:37.138155586 +0100
@@ -1,14 +1,9 @@
 Also test architecture in "refresh" test when not colored. This allows
 updates to different architectures.
 
---- ./lib/psm.c.orig   2012-03-20 08:07:25.000000000 +0000
-+++ ./lib/psm.c        2012-06-01 10:22:24.000000000 +0000
-@@ -680,13 +680,14 @@ void rpmpsmNotify(rpmpsm psm, int what,
-  */
- static void markReplacedInstance(rpmts ts, rpmte te)
- {
-+    /* this must match rpmNameVersionCompare in depends.c */
-     rpmdbMatchIterator mi = rpmtsInitIterator(ts, RPMDBI_NAME, rpmteN(te), 0);
+--- ./lib/psm.c.orig   2019-10-02 09:54:56.180565818 +0000
++++ ./lib/psm.c        2019-10-02 09:55:02.700552941 +0000
+@@ -518,9 +518,9 @@ static void markReplacedInstance(rpmts t
      rpmdbSetIteratorRE(mi, RPMTAG_EPOCH, RPMMIRE_STRCMP, rpmteE(te));
      rpmdbSetIteratorRE(mi, RPMTAG_VERSION, RPMMIRE_STRCMP, rpmteV(te));
      rpmdbSetIteratorRE(mi, RPMTAG_RELEASE, RPMMIRE_STRCMP, rpmteR(te));

++++++ requires-ge-macro.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:37.150155584 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:37.154155584 +0100
@@ -1,12 +1,12 @@
---- ./macros.in.orig   2011-05-11 15:36:05.000000000 +0000
-+++ ./macros.in        2011-05-11 15:38:44.000000000 +0000
-@@ -1027,7 +1027,8 @@ done \
- #     %{perl_sitearch}/Image
- #     %dir %{perl_sitearch}/auto/Image
- #
--%requires_eq()        %(LC_ALL="C" echo '%*' | xargs -r rpm -q --qf 
'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 
0:/ /' | grep -v "is not")
-+%requires_eq()        %(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: 
%%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | 
grep -v "is not")
-+%requires_ge()        %(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: 
%%{name} >= %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | 
grep -v "is not")
- %perl_sitearch        %(eval "`%{__perl} -V:installsitearch`"; echo 
$installsitearch)
- %perl_sitelib %(eval "`%{__perl} -V:installsitelib`"; echo $installsitelib)
- %perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo 
$installvendorarch)
+--- ./macros.in.orig   2019-10-02 11:33:19.956358174 +0000
++++ ./macros.in        2019-10-02 11:35:01.496144862 +0000
+@@ -1312,5 +1312,9 @@ end}
+ %{expand:%__scm_setup_%{__scm} %{!-v:-q}}\
+ %{!-N:%autopatch %{-v} %{-p:-p%{-p*}}}
+ 
++# XXX: to be moved to rpm-config-SUSE
++%requires_eq() %(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: 
%%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | 
grep -v "is not")
++%requires_ge() %(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: 
%%{name} >= %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | 
grep -v "is not")
++
+ # \endverbatim
+ #*/

++++++ rpm-4.14.2.1.tar.bz2 -> rpm-4.15.1.tar.bz2 ++++++
++++ 286474 lines of diff (skipped)

++++++ rpm-shorten-changelog.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:40.754154941 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:40.758154941 +0100
@@ -1,7 +1,7 @@
---- ./build/pack.c.orig        2017-10-11 12:39:53.009897937 +0000
-+++ ./build/pack.c     2017-12-04 16:02:29.299440578 +0000
-@@ -641,6 +641,71 @@ static rpmRC checkPackages(char *pkgchec
-     return RPMRC_OK;
+--- ./build/pack.c.orig        2019-06-26 14:17:31.395985720 +0000
++++ ./build/pack.c     2019-10-02 11:31:05.908639084 +0000
+@@ -743,11 +743,78 @@ static rpmRC packageBinary(rpmSpec spec,
+     return rc;
  }
  
 +static void trimChangelog(Header h)
@@ -71,18 +71,17 @@
 +
  rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
  {
-     rpmRC rc;
-@@ -648,6 +713,7 @@ rpmRC packageBinaries(rpmSpec spec, cons
+     rpmRC rc = RPMRC_OK;
      Package pkg;
-     char *pkglist = NULL;
  
 +    trimChangelog(spec->packages->header);
-     for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
-       char *fn;
- 
---- ./build/parseChangelog.c.orig      2017-10-05 10:04:56.859602170 +0000
-+++ ./build/parseChangelog.c   2017-12-04 14:47:41.249346774 +0000
-@@ -255,6 +255,11 @@ static rpmRC addChangelog(Header h, ARGV
++
+     /* Run binary creation in parallel */
+     #pragma omp parallel
+     #pragma omp single
+--- ./build/parseChangelog.c.orig      2019-06-26 14:17:31.395985720 +0000
++++ ./build/parseChangelog.c   2019-10-02 11:29:26.684840735 +0000
+@@ -253,6 +253,11 @@ static rpmRC addChangelog(Header h, ARGV
            goto exit;
        }
  

++++++ rpmrc.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:40.826154928 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:40.826154928 +0100
@@ -1,5 +1,5 @@
---- ./rpmrc.in.orig    2017-10-05 10:04:57.571602038 +0000
-+++ ./rpmrc.in 2017-12-01 15:03:23.956144776 +0000
+--- ./rpmrc.in.orig    2019-06-26 14:17:31.451985635 +0000
++++ ./rpmrc.in 2019-10-02 11:24:49.601403844 +0000
 @@ -12,16 +12,16 @@
  # "fat" binary with both archs, for Darwin
  optflags: fat -O2 -g -arch i386 -arch ppc
@@ -65,9 +65,9 @@
 -optflags: armv7hl -O2 -g -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16
 +optflags: armv7hl -O2 -g -march=armv7-a -mfloat-abi=hard -mthumb 
-mabi=aapcs-linux
  optflags: armv7hnl -O2 -g -march=armv7-a -mfloat-abi=hard -mfpu=neon
- 
- optflags: m68k -O2 -g -fomit-frame-pointer
-@@ -91,8 +92,8 @@ optflags: atariclone -O2 -g -fomit-frame
+ optflags: armv8l -O2 -g -march=armv8-a
+ optflags: armv8hl -O2 -g -march=armv8-a -mfloat-abi=hard -mfpu=vfpv4
+@@ -95,8 +96,8 @@ optflags: atariclone -O2 -g -fomit-frame
  optflags: milan -O2 -g -fomit-frame-pointer
  optflags: hades -O2 -g -fomit-frame-pointer
  
@@ -78,7 +78,7 @@
  
  optflags: sh3 -O2 -g
  optflags: sh4 -O2 -g -mieee
-@@ -288,17 +289,17 @@ os_canon:       MacOSX: macosx   21
+@@ -300,17 +301,17 @@ os_canon:       MacOSX: macosx   21
  #############################################################
  # For a given uname().machine, the default build arch
  
@@ -104,7 +104,7 @@
  buildarchtranslate: i486: i386
  buildarchtranslate: i386: i386
  
-@@ -320,6 +321,7 @@ buildarchtranslate: sparc64v: sparc64
+@@ -332,6 +333,7 @@ buildarchtranslate: sparc64v: sparc64
  buildarchtranslate: osfmach3_ppc: ppc
  buildarchtranslate: powerpc: ppc
  buildarchtranslate: powerppc: ppc
@@ -112,7 +112,7 @@
  buildarchtranslate: ppc8260: ppc
  buildarchtranslate: ppc8560: ppc
  buildarchtranslate: ppc32dy4: ppc
-@@ -381,6 +383,15 @@ buildarchtranslate: aarch64: aarch64
+@@ -398,6 +400,15 @@ buildarchtranslate: arm64: aarch64
  buildarchtranslate: riscv: riscv64
  buildarchtranslate: riscv64: riscv64
  
@@ -128,7 +128,7 @@
  #############################################################
  # Architecture compatibility
  
-@@ -445,15 +456,21 @@ arch_compat: mips64r6el: mipsr6el
+@@ -462,16 +473,20 @@ arch_compat: mips64r6el: mipsr6el
  arch_compat: hppa2.0: hppa1.2
  arch_compat: hppa1.2: hppa1.1
  arch_compat: hppa1.1: hppa1.0
@@ -140,9 +140,8 @@
 +arch_compat: armv5teb: armv5b
 +arch_compat: armv5b: armv4b
  arch_compat: armv4b: noarch
-+arch_compat: armv7hl: armv7l
+ arch_compat: armv8l: armv7l
  arch_compat: armv7l: armv6l
-+arch_compat: armv6hl: armv6l
  arch_compat: armv6l: armv5tejl
  arch_compat: armv5tejl: armv5tel
  arch_compat: armv5tel: armv5tl
@@ -152,7 +151,7 @@
  arch_compat: armv4tl: armv4l
  arch_compat: armv4l: armv3l
  arch_compat: armv3l: noarch
-@@ -475,7 +492,7 @@ arch_compat: i370: noarch
+@@ -497,7 +512,7 @@ arch_compat: i370: noarch
  arch_compat: s390: noarch
  arch_compat: s390x: s390 noarch
  
@@ -161,17 +160,7 @@
  
  arch_compat: x86_64: amd64 em64t athlon noarch
  arch_compat: amd64: x86_64 em64t athlon noarch
-@@ -578,7 +595,9 @@ buildarch_compat: mips64r6: noarch
- buildarch_compat: mips64r6el: noarch
- 
- buildarch_compat: armv4b: noarch
-+buildarch_compat: armv7hl: armv7l
- buildarch_compat: armv7l: armv6l
-+buildarch_compat: armv6hl: armv6l
- buildarch_compat: armv6l: armv5tejl
- buildarch_compat: armv5tejl: armv5tel armv5tl
- buildarch_compat: armv5tel: armv4tl armv5tl
-@@ -594,7 +613,8 @@ buildarch_compat: armv6hl: noarch
+@@ -623,7 +638,8 @@ buildarch_compat: armv6hl: noarch
  buildarch_compat: hppa2.0: hppa1.2
  buildarch_compat: hppa1.2: hppa1.1
  buildarch_compat: hppa1.1: hppa1.0

++++++ safeugid.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:40.846154925 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:40.846154925 +0100
@@ -1,211 +1,214 @@
---- ./lib/rpmchroot.c.orig     2012-11-07 12:55:24.000000000 +0000
-+++ ./lib/rpmchroot.c  2014-02-20 12:50:05.360815211 +0000
-@@ -66,6 +66,7 @@ int rpmChrootIn(void)
-     } else if (rootState.chrootDone == 0) {
-       if (chdir("/") == 0 && chroot(rootState.rootDir) == 0) {
-           rootState.chrootDone = 1;
-+          rpmugChroot(1);
-       } else {
-           rpmlog(RPMLOG_ERR, _("Unable to change root directory: %m\n"));
-           rc = -1;
-@@ -91,6 +92,7 @@ int rpmChrootOut(void)
-     } else if (rootState.chrootDone == 1) {
-       if (chroot(".") == 0 && fchdir(rootState.cwd) == 0) {
-           rootState.chrootDone = 0;
-+          rpmugChroot(0);
-       } else {
-           rpmlog(RPMLOG_ERR, _("Unable to restore root directory: %m\n"));
-           rc = -1;
---- ./lib/rpmug.c.orig 2014-02-05 13:04:37.000000000 +0000
-+++ ./lib/rpmug.c      2014-02-20 12:50:05.361815211 +0000
-@@ -10,6 +10,47 @@
- #include "lib/rpmug.h"
- #include "debug.h"
- 
-+#if defined(__GLIBC__)
-+
-+static int inchroot;
-+
-+/*
-+ * Unfortunatelly glibc caches nss/nscd data and there is no
-+ * good way to flush those caches when we did a chroot(). Thus
-+ * we need to parse /etc/passwd and /etc/group ourselfs.
-+ */
-+static int safe_lookup(const char * file, const char * name)
-+{
-+    FILE *fp;
-+    int l;
-+    char buf[4096], *p;
-+
-+    if (!name || !*name)
-+      return -1;
-+    l = strlen(name);
-+    if ((fp = fopen(file, "r")) == 0)
-+      return -1;
-+    while ((p = fgets(buf, sizeof(buf), fp)) != 0) {
-+      if (*p == '#')
-+          continue;
-+      while (*p && (*p == ' ' || *p == '\t'))
-+          p++;
-+      if (strncmp(p, name, l) != 0 || p[l] != ':')
-+          continue;
-+      p = strchr(p + l + 1, ':');
-+      if (!p)
-+          continue;
-+      fclose(fp);
-+      p++;
-+      while (*p && (*p == ' ' || *p == '\t'))
-+          p++;
-+      return atoi(p);
-+    }
-+    fclose(fp);
-+    return -1;
-+}
-+#endif
-+
- /* 
-  * These really ought to use hash tables. I just made the
-  * guess that most files would be owned by root or the same person/group
-@@ -43,17 +84,28 @@ int rpmugUid(const char * thisUname, uid
-           lastUnameAlloced = thisUnameLen + 10;
-           lastUname = xrealloc(lastUname, lastUnameAlloced);  /* XXX memory 
leak */
-       }
--      strcpy(lastUname, thisUname);
- 
--      pwent = getpwnam(thisUname);
--      if (pwent == NULL) {
--          /* FIX: shrug */
--          endpwent();
-+#if defined(__GLIBC__)
-+      if (inchroot) {
-+          int uid =  safe_lookup("/etc/passwd", thisUname);
-+          if (uid < 0)
-+              return -1;
-+          lastUid = uid;
-+      } else
-+#endif
-+      {
-           pwent = getpwnam(thisUname);
--          if (pwent == NULL) return -1;
-+          if (pwent == NULL) {
-+              /* FIX: shrug */
-+              endpwent();
-+              pwent = getpwnam(thisUname);
-+              if (pwent == NULL) return -1;
-+          }
-+          lastUid = pwent->pw_uid;
-       }
- 
--      lastUid = pwent->pw_uid;
-+      strcpy(lastUname, thisUname);
-+      lastUnameLen = thisUnameLen;
-     }
- 
-     *uid = lastUid;
-@@ -86,18 +138,29 @@ int rpmugGid(const char * thisGname, gid
-           lastGnameAlloced = thisGnameLen + 10;
-           lastGname = xrealloc(lastGname, lastGnameAlloced);  /* XXX memory 
leak */
-       }
--      strcpy(lastGname, thisGname);
- 
--      grent = getgrnam(thisGname);
--      if (grent == NULL) {
--          /* FIX: shrug */
--          endgrent();
-+#if defined(__GLIBC__)
-+      if (inchroot) {
-+          int gid =  safe_lookup("/etc/group", thisGname);
-+          if (gid < 0)
-+              return -1;
-+          lastGid = gid;
-+      } else
-+#endif
-+      {
-           grent = getgrnam(thisGname);
-           if (grent == NULL) {
--              return -1;
-+              /* FIX: shrug */
-+              endgrent();
-+              grent = getgrnam(thisGname);
-+              if (grent == NULL) {
-+                  return -1;
-+              }
-           }
-+          lastGid = grent->gr_gid;
-       }
--      lastGid = grent->gr_gid;
-+      strcpy(lastGname, thisGname);
-+      lastGnameLen = thisGnameLen;
-     }
- 
-     *gid = lastGid;
-@@ -109,7 +172,7 @@ const char * rpmugUname(uid_t uid)
- {
-     static uid_t lastUid = (uid_t) -1;
-     static char * lastUname = NULL;
--    static size_t lastUnameLen = 0;
-+    static size_t lastUnameAlloced = 0;
- 
-     if (uid == (uid_t) -1) {
-       lastUid = (uid_t) -1;
-@@ -126,9 +189,9 @@ const char * rpmugUname(uid_t uid)
- 
-       lastUid = uid;
-       len = strlen(pwent->pw_name);
--      if (lastUnameLen < len + 1) {
--          lastUnameLen = len + 20;
--          lastUname = xrealloc(lastUname, lastUnameLen);
-+      if (lastUnameAlloced < len + 1) {
-+          lastUnameAlloced = len + 20;
-+          lastUname = xrealloc(lastUname, lastUnameAlloced);
-       }
-       strcpy(lastUname, pwent->pw_name);
- 
-@@ -140,7 +203,7 @@ const char * rpmugGname(gid_t gid)
- {
-     static gid_t lastGid = (gid_t) -1;
-     static char * lastGname = NULL;
--    static size_t lastGnameLen = 0;
-+    static size_t lastGnameAlloced = 0;
- 
-     if (gid == (gid_t) -1) {
-       lastGid = (gid_t) -1;
-@@ -157,9 +220,9 @@ const char * rpmugGname(gid_t gid)
- 
-       lastGid = gid;
-       len = strlen(grent->gr_name);
--      if (lastGnameLen < len + 1) {
--          lastGnameLen = len + 20;
--          lastGname = xrealloc(lastGname, lastGnameLen);
-+      if (lastGnameAlloced < len + 1) {
-+          lastGnameAlloced = len + 20;
-+          lastGname = xrealloc(lastGname, lastGnameAlloced);
-       }
-       strcpy(lastGname, grent->gr_name);
- 
-@@ -189,3 +252,16 @@ void rpmugFree(void)
-     rpmugUname(-1);
-     rpmugGname(-1);
- }
-+
-+void rpmugChroot(int in)
-+{
-+    /* tell libc to drop caches / file descriptors */
-+    endpwent();
-+    endgrent();
-+    /* drop our own caches */
-+    rpmugUid(NULL, NULL);
-+    rpmugGid(NULL, NULL);
-+#if defined(__GLIBC__)
-+    inchroot = in;
-+#endif
-+}
---- ./lib/rpmug.h.orig 2014-02-05 13:04:02.000000000 +0000
-+++ ./lib/rpmug.h      2014-02-20 12:50:05.362815211 +0000
-@@ -15,4 +15,6 @@ int rpmugInit(void);
- 
- void rpmugFree(void);
- 
-+void rpmugChroot(int in);
-+
- #endif /* _RPMUG_H */
+--- ../safeugid.diff   2019-10-02 13:37:13.191868203 +0200
++++ P  2019-10-02 13:36:09.036002978 +0200
+@@ -0,0 +1,211 @@
++--- ./lib/rpmchroot.c.orig    2019-06-26 14:17:31.411985696 +0000
+++++ ./lib/rpmchroot.c 2019-10-02 11:35:58.788024507 +0000
++@@ -126,6 +126,7 @@ int rpmChrootIn(void)
++ 
++      if (chdir("/") == 0 && chroot(rootState.rootDir) == 0) {
++          rootState.chrootDone = 1;
+++         rpmugChroot(1);
++      } else {
++          rpmlog(RPMLOG_ERR, _("Unable to change root directory: %m\n"));
++          rc = -1;
++@@ -151,6 +152,7 @@ int rpmChrootOut(void)
++     } else if (rootState.chrootDone == 1) {
++      if (chroot(".") == 0 && fchdir(rootState.cwd) == 0) {
++          rootState.chrootDone = 0;
+++         rpmugChroot(0);
++      } else {
++          rpmlog(RPMLOG_ERR, _("Unable to restore root directory: %m\n"));
++          rc = -1;
++--- ./lib/rpmug.c.orig        2019-06-26 14:17:31.418985685 +0000
+++++ ./lib/rpmug.c     2019-10-02 11:35:58.788024507 +0000
++@@ -11,6 +11,47 @@
++ #include "lib/rpmug.h"
++ #include "debug.h"
++ 
+++#if defined(__GLIBC__)
+++
+++static int inchroot;
+++
+++/*
+++ * Unfortunatelly glibc caches nss/nscd data and there is no
+++ * good way to flush those caches when we did a chroot(). Thus
+++ * we need to parse /etc/passwd and /etc/group ourselfs.
+++ */
+++static int safe_lookup(const char * file, const char * name)
+++{
+++    FILE *fp;
+++    int l;
+++    char buf[4096], *p;
+++
+++    if (!name || !*name)
+++     return -1;
+++    l = strlen(name);
+++    if ((fp = fopen(file, "r")) == 0)
+++     return -1;
+++    while ((p = fgets(buf, sizeof(buf), fp)) != 0) {
+++     if (*p == '#')
+++         continue;
+++     while (*p && (*p == ' ' || *p == '\t'))
+++         p++;
+++     if (strncmp(p, name, l) != 0 || p[l] != ':')
+++         continue;
+++     p = strchr(p + l + 1, ':');
+++     if (!p)
+++         continue;
+++     fclose(fp);
+++     p++;
+++     while (*p && (*p == ' ' || *p == '\t'))
+++         p++;
+++     return atoi(p);
+++    }
+++    fclose(fp);
+++    return -1;
+++}
+++#endif
+++
++ /* 
++  * These really ought to use hash tables. I just made the
++  * guess that most files would be owned by root or the same person/group
++@@ -44,17 +85,28 @@ int rpmugUid(const char * thisUname, uid
++          lastUnameAlloced = thisUnameLen + 10;
++          lastUname = xrealloc(lastUname, lastUnameAlloced);  /* XXX memory 
leak */
++      }
++-     strcpy(lastUname, thisUname);
++ 
++-     pwent = getpwnam(thisUname);
++-     if (pwent == NULL) {
++-         /* FIX: shrug */
++-         endpwent();
+++#if defined(__GLIBC__)
+++     if (inchroot) {
+++         int uid =  safe_lookup("/etc/passwd", thisUname);
+++         if (uid < 0)
+++             return -1;
+++         lastUid = uid;
+++     } else
+++#endif
+++     {
++          pwent = getpwnam(thisUname);
++-         if (pwent == NULL) return -1;
+++         if (pwent == NULL) {
+++             /* FIX: shrug */
+++             endpwent();
+++             pwent = getpwnam(thisUname);
+++             if (pwent == NULL) return -1;
+++         }
+++         lastUid = pwent->pw_uid;
++      }
++ 
++-     lastUid = pwent->pw_uid;
+++     strcpy(lastUname, thisUname);
+++     lastUnameLen = thisUnameLen;
++     }
++ 
++     *uid = lastUid;
++@@ -87,18 +139,29 @@ int rpmugGid(const char * thisGname, gid
++          lastGnameAlloced = thisGnameLen + 10;
++          lastGname = xrealloc(lastGname, lastGnameAlloced);  /* XXX memory 
leak */
++      }
++-     strcpy(lastGname, thisGname);
++ 
++-     grent = getgrnam(thisGname);
++-     if (grent == NULL) {
++-         /* FIX: shrug */
++-         endgrent();
+++#if defined(__GLIBC__)
+++     if (inchroot) {
+++         int gid =  safe_lookup("/etc/group", thisGname);
+++         if (gid < 0)
+++             return -1;
+++         lastGid = gid;
+++     } else
+++#endif
+++     {
++          grent = getgrnam(thisGname);
++          if (grent == NULL) {
++-             return -1;
+++             /* FIX: shrug */
+++             endgrent();
+++             grent = getgrnam(thisGname);
+++             if (grent == NULL) {
+++                 return -1;
+++             }
++          }
+++         lastGid = grent->gr_gid;
++      }
++-     lastGid = grent->gr_gid;
+++     strcpy(lastGname, thisGname);
+++     lastGnameLen = thisGnameLen;
++     }
++ 
++     *gid = lastGid;
++@@ -110,7 +173,7 @@ const char * rpmugUname(uid_t uid)
++ {
++     static uid_t lastUid = (uid_t) -1;
++     static char * lastUname = NULL;
++-    static size_t lastUnameLen = 0;
+++    static size_t lastUnameAlloced = 0;
++ 
++     if (uid == (uid_t) -1) {
++      lastUid = (uid_t) -1;
++@@ -127,9 +190,9 @@ const char * rpmugUname(uid_t uid)
++ 
++      lastUid = uid;
++      len = strlen(pwent->pw_name);
++-     if (lastUnameLen < len + 1) {
++-         lastUnameLen = len + 20;
++-         lastUname = xrealloc(lastUname, lastUnameLen);
+++     if (lastUnameAlloced < len + 1) {
+++         lastUnameAlloced = len + 20;
+++         lastUname = xrealloc(lastUname, lastUnameAlloced);
++      }
++      strcpy(lastUname, pwent->pw_name);
++ 
++@@ -141,7 +204,7 @@ const char * rpmugGname(gid_t gid)
++ {
++     static gid_t lastGid = (gid_t) -1;
++     static char * lastGname = NULL;
++-    static size_t lastGnameLen = 0;
+++    static size_t lastGnameAlloced = 0;
++ 
++     if (gid == (gid_t) -1) {
++      lastGid = (gid_t) -1;
++@@ -158,9 +221,9 @@ const char * rpmugGname(gid_t gid)
++ 
++      lastGid = gid;
++      len = strlen(grent->gr_name);
++-     if (lastGnameLen < len + 1) {
++-         lastGnameLen = len + 20;
++-         lastGname = xrealloc(lastGname, lastGnameLen);
+++     if (lastGnameAlloced < len + 1) {
+++         lastGnameAlloced = len + 20;
+++         lastGname = xrealloc(lastGname, lastGnameAlloced);
++      }
++      strcpy(lastGname, grent->gr_name);
++ 
++@@ -192,3 +255,16 @@ void rpmugFree(void)
++     rpmugUname(-1);
++     rpmugGname(-1);
++ }
+++
+++void rpmugChroot(int in)
+++{
+++    /* tell libc to drop caches / file descriptors */
+++    endpwent();
+++    endgrent();
+++    /* drop our own caches */
+++    rpmugUid(NULL, NULL);
+++    rpmugGid(NULL, NULL);
+++#if defined(__GLIBC__)
+++    inchroot = in;
+++#endif
+++}
++--- ./lib/rpmug.h.orig        2019-06-26 14:17:31.418985685 +0000
+++++ ./lib/rpmug.h     2019-10-02 11:35:58.788024507 +0000
++@@ -15,4 +15,6 @@ int rpmugInit(void);
++ 
++ void rpmugFree(void);
++ 
+++void rpmugChroot(int in);
+++
++ #endif /* _RPMUG_H */

++++++ suspendlock.diff ++++++
--- /var/tmp/diff_new_pack.Ba2uKp/_old  2020-01-10 17:47:40.870154921 +0100
+++ /var/tmp/diff_new_pack.Ba2uKp/_new  2020-01-10 17:47:40.870154921 +0100
@@ -2,8 +2,8 @@
 read access in scriptlets. Only needed for DB_PRIVATE (aka global)
 locking.
 
---- ./lib/backend/db3.c.orig   2017-12-01 14:27:03.193486711 +0000
-+++ ./lib/backend/db3.c        2017-12-01 14:27:23.747426200 +0000
+--- ./lib/backend/db3.c.orig   2019-10-02 09:56:46.416347458 +0000
++++ ./lib/backend/db3.c        2019-10-02 09:56:52.084335992 +0000
 @@ -552,6 +552,46 @@ static void db3_dbSetFSync(rpmdb rdb, in
  
  static int db3_Ctrl(rpmdb rdb, dbCtrlOp ctrl)
@@ -51,8 +51,8 @@
      return 0;
  }
  
---- ./lib/backend/dbi.h.orig   2017-12-01 14:27:03.193486711 +0000
-+++ ./lib/backend/dbi.h        2017-12-01 14:27:23.747426200 +0000
+--- ./lib/backend/dbi.h.orig   2019-10-02 09:56:46.416347458 +0000
++++ ./lib/backend/dbi.h        2019-10-02 09:56:52.084335992 +0000
 @@ -17,7 +17,9 @@ typedef enum dbCtrlOp_e {
      DB_CTRL_UNLOCK_RO         = 2,
      DB_CTRL_LOCK_RW           = 3,
@@ -64,9 +64,9 @@
  } dbCtrlOp;
  
  typedef struct dbiIndex_s * dbiIndex;
---- ./lib/rpmdb.c.orig 2017-12-01 14:27:03.190486720 +0000
-+++ ./lib/rpmdb.c      2017-12-01 14:27:23.748426197 +0000
-@@ -2639,6 +2639,12 @@ int rpmdbCtrl(rpmdb db, rpmdbCtrlOp ctrl
+--- ./lib/rpmdb.c.orig 2019-10-02 09:56:46.416347458 +0000
++++ ./lib/rpmdb.c      2019-10-02 09:56:52.084335992 +0000
+@@ -2644,6 +2644,12 @@ int rpmdbCtrl(rpmdb db, rpmdbCtrlOp ctrl
      case RPMDB_CTRL_INDEXSYNC:
        dbctrl = DB_CTRL_INDEXSYNC;
        break;
@@ -79,8 +79,8 @@
      }
      return dbctrl ? dbCtrl(db, dbctrl) : 1;
  }
---- ./lib/rpmdb.h.orig 2017-10-05 10:04:57.035602138 +0000
-+++ ./lib/rpmdb.h      2017-12-01 14:27:23.748426197 +0000
+--- ./lib/rpmdb.h.orig 2019-06-26 14:17:31.412985694 +0000
++++ ./lib/rpmdb.h      2019-10-02 09:56:52.088335984 +0000
 @@ -35,7 +35,9 @@ typedef enum rpmdbCtrlOp_e {
      RPMDB_CTRL_UNLOCK_RO       = 2,
      RPMDB_CTRL_LOCK_RW         = 3,
@@ -92,24 +92,24 @@
  } rpmdbCtrlOp;
  
  /** \ingroup rpmdb
---- ./lib/transaction.c.orig   2017-12-01 14:27:23.750426192 +0000
-+++ ./lib/transaction.c        2017-12-01 14:28:43.232192224 +0000
-@@ -1457,6 +1457,7 @@ rpmRC runScript(rpmts ts, rpmte te, Head
-                    stag != RPMTAG_PREUN &&
-                    stag != RPMTAG_PRETRANS &&
-                    stag != RPMTAG_VERIFYSCRIPT);
+--- ./lib/transaction.c.orig   2019-10-02 09:56:52.088335984 +0000
++++ ./lib/transaction.c        2019-10-02 09:58:36.956123870 +0000
+@@ -1601,6 +1601,7 @@ rpmRC runScript(rpmts ts, rpmte te, Head
+     rpmTagVal stag = rpmScriptTag(script);
+     FD_t sfd = NULL;
+     int warn_only = !(rpmScriptFlags(script) & RPMSCRIPT_FLAG_CRITICAL);
 +    rpmdb rdb = rpmtsGetRdb(ts);
  
-     /* Fake up a transaction element for triggers from rpmdb */
+     /* Create a temporary transaction element for triggers from rpmdb */
      if (te == NULL) {
-@@ -1468,10 +1469,12 @@ rpmRC runScript(rpmts ts, rpmte te, Head
+@@ -1612,10 +1613,12 @@ rpmRC runScript(rpmts ts, rpmte te, Head
      if (sfd == NULL)
        sfd = rpmtsScriptFd(ts);
  
 +    rpmdbCtrl(rdb, RPMDB_CTRL_SUSPEND_DBLOCK);
      rpmswEnter(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
      rc = rpmScriptRun(script, arg1, arg2, sfd,
-                     prefixes, warn_only, rpmtsPlugins(ts));
+                     prefixes, rpmtsPlugins(ts));
      rpmswExit(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
 +    rpmdbCtrl(rdb, RPMDB_CTRL_RESUME_DBLOCK);
  


Reply via email to