Hello community, here is the log from the commit of package rpm for openSUSE:Factory checked in at 2018-01-13 21:33:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rpm (Old) and /work/SRC/openSUSE:Factory/.rpm.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpm" Sat Jan 13 21:33:10 2018 rev:254 rq:561871 version:4.14.0 Changes: -------- New Changes file: --- /dev/null 2018-01-05 12:14:39.755488130 +0100 +++ /work/SRC/openSUSE:Factory/.rpm.new/python-rpm.changes 2018-01-13 21:33:15.166354674 +0100 @@ -0,0 +1,150 @@ +------------------------------------------------------------------- +Tue Dec 19 09:39:25 UTC 2017 - [email protected] + +- Update RPM groups + +------------------------------------------------------------------- +Sat Oct 28 12:19:34 UTC 2017 - [email protected] + +- Add a comment to note that prep and build stages come from rpm.spec + +------------------------------------------------------------------- +Mon Oct 16 13:49:18 UTC 2017 - [email protected] + +- Properly quote the conditional for Obsoletes+Provides + +------------------------------------------------------------------- +Sun Oct 15 04:03:00 UTC 2017 - [email protected] + +- Unify rpm-python and python3-rpm into singlespec +- Switch the build to use setuptools-based build, so that + the Python module is properly built with all its metadata + +------------------------------------------------------------------- +Wed Nov 20 14:41:34 CET 2013 - [email protected] + +- adapt to python-3.3, which no longer looks at XXXmodule.so + +------------------------------------------------------------------- +Fri Jul 12 15:36:43 CEST 2013 - [email protected] + +- update to rpm-4.11.1 + +------------------------------------------------------------------- +Wed Jan 2 14:25:20 UTC 2013 - [email protected] + +- Update to 4.10.2 + +------------------------------------------------------------------- +Mon Apr 23 11:16:26 CEST 2012 - [email protected] + +- modified capsule api diff to match rpm upstream + +------------------------------------------------------------------- +Wed Apr 11 16:54:02 UTC 2012 - [email protected] + +- Fix usage of deprecated AsVoidPtr Python/C API, + replaced by Capsule API + +------------------------------------------------------------------- +Tue Jan 17 10:28:42 UTC 2012 - [email protected] + +- Spec file cleanup: + * Don't rm -rf %{buildroot} + * Removed %clean section + * Removed authors from description + +------------------------------------------------------------------- +Sun Dec 11 09:28:28 UTC 2011 - [email protected] + +- add libtool as explicit buildrequire + +------------------------------------------------------------------- +Wed Feb 23 14:01:41 CET 2011 - [email protected] + +- drop standard python directories from filelist [bnc#229189] + +------------------------------------------------------------------- +Fri Oct 22 15:52:32 UTC 2010 - [email protected] + +- adapt second spec file to changes done to rpm.spec + +------------------------------------------------------------------- +Mon Oct 18 11:03:53 CEST 2010 - [email protected] + +- adapt buildrequires + +------------------------------------------------------------------- +Thu Feb 12 16:52:26 CET 2009 - [email protected] + +- adapt buildrequires + +------------------------------------------------------------------- +Wed Oct 8 11:24:22 CEST 2008 - [email protected] + +- added libelf-devel to BuildRequires to fix build + +------------------------------------------------------------------- +Thu Sep 11 15:33:52 CEST 2008 - [email protected] + +- update to 4.4.2.3 to get rid of >50 patches + +------------------------------------------------------------------- +Sat Aug 30 21:23:38 CEST 2008 - [email protected] + +- add libselinux-devel to BuildRequires + +------------------------------------------------------------------- +Thu Aug 7 16:05:51 CEST 2008 - [email protected] + +- fix build against python 2.6 + +------------------------------------------------------------------- +Thu Mar 27 14:47:18 CET 2008 - [email protected] + +- fix buildrequires + +------------------------------------------------------------------- +Fri May 25 16:20:53 CEST 2007 - [email protected] + +- fix unicode queries + +------------------------------------------------------------------- +Fri Mar 30 15:06:28 CEST 2007 - [email protected] + +- add ncurses-devel and zlib-devel BuildRequires. + +------------------------------------------------------------------- +Wed Oct 18 22:59:02 CEST 2006 - [email protected] + +- use rpm.spec for building instead of duplication everything +- delete superfluous .a and .la files [#202604] +- create .pyc and .pyo files [#205711] + +------------------------------------------------------------------- +Sun Oct 15 23:41:37 CEST 2006 - [email protected] + +- Make sure config.rpath is present. + +------------------------------------------------------------------- +Fri Sep 22 08:58:57 CEST 2006 - [email protected] + +- Fix for python2.5. + +------------------------------------------------------------------- +Thu Sep 21 11:41:04 CEST 2006 - [email protected] + +- do not package beecrypt python bindings as libbeecrypt is not + packaged either +- fix literal %{version} in Requires tag + +------------------------------------------------------------------- +Thu Sep 21 10:58:42 CEST 2006 - [email protected] + +- fix build with python 2.5 by overriding autodetection + +------------------------------------------------------------------- +Tue Sep 19 13:48:27 CEST 2006 - [email protected] + +- split from rpm package + --- /work/SRC/openSUSE:Factory/rpm/rpm.changes 2017-11-30 12:31:52.935390609 +0100 +++ /work/SRC/openSUSE:Factory/.rpm.new/rpm.changes 2018-01-13 21:33:15.342346435 +0100 @@ -1,0 +2,66 @@ +Fri Jan 5 13:26:50 CET 2018 - [email protected] + +- fix signature header writing if the archive size is bigger + than 2 GByte + new patch: bigarchive.diff + +------------------------------------------------------------------- +Tue Jan 2 11:04:52 CET 2018 - [email protected] + +- remove shebang from pythondistdeps.py + new patch: pythondistdeps.diff + +------------------------------------------------------------------- +Tue Dec 19 09:39:25 UTC 2017 - [email protected] + +- Update RPM groups + +------------------------------------------------------------------- +Fri Dec 15 13:18:39 CET 2017 - [email protected] + +- patch debugedit so that it also handles the .debug.macro section + new patch: debugedit-macro.diff + +------------------------------------------------------------------- +Thu Dec 7 17:02:52 CET 2017 - [email protected] + +- switch build id generation to "alldebug" mode + +------------------------------------------------------------------- +Mon Dec 4 18:35:41 UTC 2017 - [email protected] + +- Replace PreReq fillup with Requires(post), so that we can + deinstall it later if we don't need it anymore + +------------------------------------------------------------------- +Fri Dec 1 17:15:13 CET 2017 - [email protected] + +- update to rpm-4.14.0 + * new with/without/unless rich dependencies + * multifile optimized debuginfo packages + * much improved macro engine +- dropped patches: + * 0001-set-SOURCE_DATE_EPOCH-from-changelog.patch + * 0002-Extend-changelog-to-support-full-timestamps-903.patch + * 0003-Allow-SOURCE_DATE_EPOCH-to-override-file-timestamps.patch + * 0004-Allow-SOURCE_DATE_EPOCH-to-override-RPMTAG_BUILDTIME.patch + * buildidprov.diff + * changes-doc.diff + * convertdb1static.diff + * debugedit-canon-fix.diff + * debugedit-comp-dir.diff + * debugsource-package.diff + * find-lang-python.patch + * nobfd.diff + * normalize_blocksize.diff + * perlprov-package.diff + * perlprov.diff + * python3-abi-kind.diff + * rpmrctests.diff +- new patches (backports from master): + * editdwarf.diff + * rofs.diff + * transfiletriggerpostun.diff + * hardlink.diff + +------------------------------------------------------------------- Old: ---- 0001-set-SOURCE_DATE_EPOCH-from-changelog.patch 0002-Extend-changelog-to-support-full-timestamps-903.patch 0003-Allow-SOURCE_DATE_EPOCH-to-override-file-timestamps.patch 0004-Allow-SOURCE_DATE_EPOCH-to-override-RPMTAG_BUILDTIME.patch buildidprov.diff changes-doc.diff convertdb1static.diff debugedit-canon-fix.diff debugedit-comp-dir.diff debugsource-package.diff find-lang-python.patch nobfd.diff normalize_blocksize.diff perlprov-package.diff perlprov.diff python3-abi-kind.diff python3-rpm.changes python3-rpm.spec rpm-4.13.0.1.tar.bz2 rpm-python.changes rpm-python.spec rpmrctests.diff New: ---- bigarchive.diff debugedit-macro.diff editdwarf.diff hardlink.diff python-rpm.changes python-rpm.spec pythondistdeps.diff rofs.diff rpm-4.14.0.tar.bz2 transfiletriggerpostun.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-rpm.spec ++++++ # # spec file for package python-rpm # # Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2017 Neal Gompa <[email protected]>. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: python-rpm Version: 4.14.0 Release: 0 #!BuildIgnore: rpmlint-Factory Summary: Python Bindings for Manipulating RPM Packages License: GPL-2.0+ Group: Development/Libraries/Python Source99: rpm.spec BuildRequires: file-devel BuildRequires: libacl-devel BuildRequires: libbz2-devel BuildRequires: libcap-devel BuildRequires: libelf-devel BuildRequires: libselinux-devel BuildRequires: libsemanage-devel BuildRequires: libtool BuildRequires: lua-devel BuildRequires: ncurses-devel BuildRequires: popt-devel BuildRequires: python-rpm-macros BuildRequires: python2-devel BuildRequires: python3-devel BuildRequires: xz-devel BuildRequires: zlib-devel Requires: rpm = %{version} %if "%{python_flavor}" == "python2" Obsoletes: rpm-python < %{version}-%{release} Provides: rpm-python = %{version}-%{release} %endif # Enable Python build sourced from rpm spec %global with_python 1 %{expand:%(sed -n -e '/^Source:/,/^BuildRoot:/p' <%_sourcedir/rpm.spec)} %python_subpackages %description This package contains a module that permits applications written in the Python programming language to use the interface supplied by RPM Package Manager libraries. This package should be installed if you want to develop Python programs that will manipulate RPM packages and databases. %prep %{expand:%(sed -n -e '/^%%prep/,/^%%install/p' <%_sourcedir/rpm.spec | sed -e '1d' -e '$d')} # The build stage is already declared and pulled in from rpm.spec pushd python %python_build popd %install pushd python %python_install popd %files %{python_files} %{python_sitearch}/rpm* %changelog ++++++ rpm.spec ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:17.734234453 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:17.738234267 +0100 @@ -1,7 +1,7 @@ # # spec file for package rpm # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,9 +17,7 @@ #Compat macro for new _fillupdir macro introduced in Nov 2017 -%if ! %{defined _fillupdir} - %define _fillupdir /var/adm/fillup-templates -%endif +%{?!_fillupdir:%define _fillupdir /var/adm/fillup-templates} Name: rpm BuildRequires: binutils @@ -33,6 +31,7 @@ BuildRequires: libacl-devel BuildRequires: libbz2-devel BuildRequires: libcap-devel +BuildRequires: libdw-devel BuildRequires: libelf-devel BuildRequires: libselinux-devel BuildRequires: libsemanage-devel @@ -48,13 +47,13 @@ BuildRequires: zlib-devel #!BuildIgnore: rpmlint-Factory Provides: rpminst -PreReq: %fillup_prereq +Requires(post): %fillup_prereq Summary: The RPM Package Manager License: GPL-2.0+ Group: System/Packages -Version: 4.13.0.1 +Version: 4.14.0 Release: 0 -Source: http://ftp.rpm.org/releases/rpm-4.13.x/rpm-%{version}.tar.bz2 +Source: http://ftp.rpm.org/releases/rpm-4.14.x/rpm-%{version}.tar.bz2 Source1: RPM-HOWTO.tar.bz2 Source4: rpm-suse_macros Source5: rpmsort @@ -78,7 +77,6 @@ Patch16: dbrointerruptable.diff Patch17: extcond.diff Patch18: refreshtestarch.diff -Patch19: rpmrctests.diff Patch20: waitlock.diff Patch21: suspendlock.diff Patch24: brp.diff @@ -94,22 +92,16 @@ Patch34: rpmrc.diff Patch35: taggedfileindex.diff Patch36: rpmqpack.diff -Patch37: convertdb1static.diff Patch38: build.diff -Patch41: debugedit-comp-dir.diff -Patch42: perlprov.diff Patch43: rpm-shorten-changelog.diff -Patch44: debugsource-package.diff Patch45: whatrequires-doc.diff Patch46: remove-brp-strips.diff Patch47: requires-ge-macro.diff -Patch48: debugedit-canon-fix.diff Patch49: finddebuginfo-absolute-links.diff Patch50: firmware.diff Patch51: specfilemacro.diff Patch52: modalias-encode.diff Patch53: disttag-macro.diff -Patch54: buildidprov.diff Patch55: debugsubpkg.diff Patch56: debuglink.diff Patch57: debuginfo-mono.patch @@ -126,29 +118,22 @@ Patch73: assumeexec.diff Patch74: mono-find-requires.diff Patch75: rpm-deptracking.patch -Patch76: python3-abi-kind.diff Patch77: langnoc.diff Patch78: headerchk2.diff -# PATCH-FEATURE-UPSTREAM 4.14 0e87aed1785d0531c40b23889f8338744f6abb3a -Patch80: 0001-set-SOURCE_DATE_EPOCH-from-changelog.patch -# PATCH-FEATURE-UPSTREAM 4.14 57f94a582602f0353cdb17a02dc12c4461d4f32d -Patch81: 0002-Extend-changelog-to-support-full-timestamps-903.patch -# PATCH-FEATURE-UPSTREAM 4.14 8d84878ee05b2e63858af3a5a49d98e9e2933b1b -Patch82: 0003-Allow-SOURCE_DATE_EPOCH-to-override-file-timestamps.patch -# PATCH-FEATURE-UPSTREAM 4.14 b8a54d6a1e9bb6140b6b47e23dc707e4b967537e -Patch83: 0004-Allow-SOURCE_DATE_EPOCH-to-override-RPMTAG_BUILDTIME.patch Patch85: brp-compress-no-img.patch -Patch92: find-lang-python.patch Patch93: weakdepscompat.diff Patch94: checksepwarn.diff -Patch98: normalize_blocksize.diff Patch99: enable-postin-scripts-error.diff Patch100: rpm-findlang-inject-metainfo.patch -Patch101: nobfd.diff Patch102: emptymanifest.diff Patch103: find-lang-qt-qm.patch -Patch104: perlprov-package.diff -Patch105: changes-doc.diff +Patch104: editdwarf.diff +Patch105: rofs.diff +Patch106: transfiletriggerpostun.diff +Patch107: hardlink.diff +Patch108: debugedit-macro.diff +Patch109: pythondistdeps.diff +Patch110: bigarchive.diff Patch6464: auto-config-update-aarch64-ppc64le.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build # @@ -165,8 +150,8 @@ all installed packages. RPM also supports database queries. %package devel -Summary: Include Files and Libraries mandatory for Development -Group: System/Packages +Summary: Development files for librpm +Group: Development/Libraries/C and C++ Requires: rpm = %{version} # for people confusing the one with the other Recommends: rpm-build = %{version} @@ -235,16 +220,17 @@ %patch3 -p1 %patch -P 4 %patch5 -p1 -%patch -P 11 -P 12 -P 13 -P 14 -P 15 -P 16 -P 17 -P 18 -P 19 +%patch -P 11 -P 12 -P 13 -P 14 -P 15 -P 16 -P 17 -P 18 %patch -P 20 -P 21 -P 24 -P 25 -P 26 -P 27 -P 28 -P 29 -%patch -P 30 -P 31 -P 32 -P 33 -P 34 -P 35 -P 36 -P 37 -P 38 -%patch -P 41 -P 42 -P 43 -P 44 -P 45 -P 46 -P 47 -P 48 -P 49 -%patch -P 50 -P 51 -P 52 -P 53 -P 54 -P 55 -P 56 -P 57 -P 58 +%patch -P 30 -P 31 -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 50 -P 51 -P 52 -P 53 -P 55 -P 56 -P 57 -P 58 %patch -P 60 -P 61 -P 65 -P 66 -P 67 -P 68 -P 69 -%patch -P 70 -P 71 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -%patch -P 80 -P 81 -P 82 -P 83 -P 85 -%patch -P 92 -P 93 -P 94 -P 98 -P 99 -%patch -P 100 -P 101 -P 102 -P 103 -P 104 -P 105 +%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 %ifarch aarch64 ppc64le %patch6464 @@ -288,11 +274,10 @@ make %{?_smp_mflags} popd -export PYTHON=python%{with_python} autoreconf -fi -sed -i -e 's,{PYTHON_VERSION}mu,{PYTHON_VERSION}mu python${PYTHON_VERSION}m,' configure ./configure --disable-dependency-tracking --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ --libdir=%{_libdir} --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/lib --with-lua \ +--without-external-db \ --with-vendor=suse \ --with-rundir=/run \ --without-archive \ @@ -301,14 +286,14 @@ rm po/de.gmo make %{?_smp_mflags} -make convertdb1 %install mkdir -p %{buildroot}/usr/lib mkdir -p %{buildroot}/usr/share/locale ln -s ../share/locale %{buildroot}/usr/lib/locale %make_install -install -m 755 convertdb1 %{buildroot}/usr/lib/rpm +mkdir -p %{buildroot}/bin +ln -s /usr/bin/rpm %{buildroot}/bin/rpm install -m 644 db3/db.h %{buildroot}/usr/include/rpm # remove .la file and the static variant of libpopt # have to remove the dependency from other .la files as well @@ -374,7 +359,6 @@ install -m 755 config.guess %{buildroot}/usr/lib/rpm install -m 755 config.sub %{buildroot}/usr/lib/rpm %endif -gzip -9 CHANGES rm -rf %{buildroot}/%{_libdir}/python%{py_ver} rm -f %{buildroot}%{_libdir}/*.la rm -f %{buildroot}%{_libdir}/rpm-plugins/*.la @@ -400,12 +384,6 @@ %posttrans # var/lib/rpm migration if test ! -L var/lib/rpm ; then - if test -s var/lib/rpm/packages.rpm ; then - echo "converting rpm-3 database to rpm-4 format..." - usr/lib/rpm/convertdb1 var/lib/rpm/packages.rpm - mv -f var/lib/rpm/packages.rpm var/lib/rpm/packages.rpm3 - rm -f var/lib/rpm/conflictsindex.rpm var/lib/rpm/fileindex.rpm var/lib/rpm/groupindex.rpm var/lib/rpm/nameindex.rpm var/lib/rpm/providesindex.rpm var/lib/rpm/requiredby.rpm var/lib/rpm/triggerindex.rpm - fi # delete no longer maintained databases rm -f var/lib/rpm/Filemd5s var/lib/rpm/Filedigests var/lib/rpm/Requireversion var/lib/rpm/Provideversion @@ -426,7 +404,7 @@ %files -f rpm.lang %defattr(-,root,root) -%doc CHANGES.gz COPYING GROUPS +%doc COPYING %doc doc/manual %doc RPM-HOWTO /etc/rpm ++++++ bigarchive.diff ++++++ --- 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) ++++++ brp.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:17.878227713 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:17.886227338 +0100 @@ -1,15 +1,15 @@ ---- ./scripts/Makefile.am.orig 2016-10-13 07:12:21.467778490 +0000 -+++ ./scripts/Makefile.am 2017-01-19 12:09:27.378564186 +0000 -@@ -26,6 +26,7 @@ rpmconfig_SCRIPTS = \ - appdata.prov \ +--- ./scripts/Makefile.am.orig 2017-10-05 10:04:57.571602038 +0000 ++++ ./scripts/Makefile.am 2017-12-01 14:29:56.760975726 +0000 +@@ -27,6 +27,7 @@ EXTRA_DIST = \ + rpmconfig_SCRIPTS = \ brp-compress brp-python-bytecompile brp-java-gcjcompile \ brp-strip brp-strip-comment-note brp-python-hardlink \ + brp-suse \ brp-strip-shared brp-strip-static-archive \ check-files check-prereqs \ check-buildroot check-rpaths check-rpaths-worker \ ---- ./scripts/brp-strip-comment-note.orig 2017-01-19 12:09:27.378564186 +0000 -+++ ./scripts/brp-strip-comment-note 2017-01-19 12:13:02.079982258 +0000 +--- ./scripts/brp-strip-comment-note.orig 2017-08-10 08:08:07.150108692 +0000 ++++ ./scripts/brp-strip-comment-note 2017-12-01 14:29:56.761975721 +0000 @@ -16,6 +16,8 @@ esac # for already stripped elf files in the build root for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \ @@ -19,8 +19,8 @@ sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped.*/\1/p'`; do note="-R .note" if $OBJDUMP -h $f | grep '^[ ]*[0-9]*[ ]*.note[ ]' -A 1 | \ ---- ./scripts/brp-strip.orig 2017-01-19 12:09:27.379564183 +0000 -+++ ./scripts/brp-strip 2017-01-19 12:10:34.113383581 +0000 +--- ./scripts/brp-strip.orig 2017-08-10 08:08:07.150108692 +0000 ++++ ./scripts/brp-strip 2017-12-01 14:29:56.761975721 +0000 @@ -15,6 +15,7 @@ esac for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \ grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \ @@ -29,8 +29,8 @@ sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped.*/\1/p'`; do $STRIP -g "$f" || : done ---- ./scripts/brp-suse.orig 2017-01-19 12:09:27.379564183 +0000 -+++ ./scripts/brp-suse 2017-01-19 12:09:27.379564183 +0000 +--- ./scripts/brp-suse.orig 2017-12-01 14:29:56.762975717 +0000 ++++ ./scripts/brp-suse 2017-12-01 14:29:56.761975721 +0000 @@ -0,0 +1,13 @@ +#! /bin/sh + ++++++ build.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:17.906226402 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:17.906226402 +0100 @@ -8,7 +8,7 @@ +CC="$CC" CFLAGS="$CFLAGS" $db_dist/configure \ --enable-shared --enable-static \ - --with-uniquename=_rpmdb --srcdir=$db_dist -+ --with-uniquename=_rpmdb --srcdir=$db_dist $ARGS ++ --with-uniquename=_rpmdb --srcdir=$db_dist --with-pic $ARGS mv Makefile Makefile.orig cat Makefile.orig | sed -e '/^install[:-]/c\ ++++++ checksepwarn.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:17.934225091 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:17.938224903 +0100 @@ -1,5 +1,5 @@ ---- ./build/parseReqs.c.orig 2017-01-19 13:11:21.618153943 +0000 -+++ ./build/parseReqs.c 2017-01-19 13:24:32.661841405 +0000 +--- ./build/parseReqs.c.orig 2017-10-05 10:04:56.887602165 +0000 ++++ ./build/parseReqs.c 2017-12-01 16:00:06.956343096 +0000 @@ -42,7 +42,7 @@ static rpmRC checkEpoch(const char *s, c return RPMRC_OK; } @@ -38,15 +38,15 @@ _free(N); _free(EVR); } else if (type == RPMRICH_PARSE_OP) { -@@ -231,6 +237,7 @@ rpmRC parseRCPOT(rpmSpec spec, Package p +@@ -223,6 +229,7 @@ rpmRC parseRCPOT(rpmSpec spec, Package p goto exit; } data.spec = spec; + data.tagflags = tagflags; data.sb = newStringBuf(); - if (rpmrichParse(&r, &emsg, parseRCPOTRichCB, &data) != RPMRC_OK) { + if (rpmrichParseForTag(&r, &emsg, parseRCPOTRichCB, &data, nametag) != RPMRC_OK) { freeStringBuf(data.sb); -@@ -282,7 +289,7 @@ rpmRC parseRCPOT(rpmSpec spec, Package p +@@ -274,7 +281,7 @@ rpmRC parseRCPOT(rpmSpec spec, Package p } /* check that dependency is well-formed */ @@ -55,9 +55,9 @@ goto exit; if (nametag == RPMTAG_FILETRIGGERNAME || ---- ./macros.in.orig 2017-01-19 13:15:43.113390933 +0000 -+++ ./macros.in 2017-01-19 13:15:56.263352524 +0000 -@@ -413,7 +413,7 @@ package or when debugging this package.\ +--- ./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 # Should invalid version format in requires, provides, ... terminate a build? ++++++ dbprivate.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:17.962223780 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:17.962223780 +0100 @@ -1,10 +1,7 @@ -Always use DB_PRIVATE. Unfortunately no longer configurable -in the macros file. - ---- ./lib/backend/db3.c.orig 2013-07-12 12:09:45.000000000 +0000 -+++ ./lib/backend/db3.c 2013-07-12 12:11:07.000000000 +0000 -@@ -164,7 +164,7 @@ static int db_init(rpmdb rdb, const char - int lockfd = -1; +--- ./lib/backend/db3.c.orig 2017-12-01 15:44:53.609993968 +0000 ++++ ./lib/backend/db3.c 2017-12-01 15:45:05.462959735 +0000 +@@ -416,7 +416,7 @@ static int db_init(rpmdb rdb, const char + int rdonly = ((rdb->db_mode & O_ACCMODE) == O_RDONLY); struct dbConfig_s * cfg = &rdb->cfg; /* This is our setup, thou shall not have other setups before us */ - uint32_t eflags = (DB_CREATE|DB_INIT_MPOOL|DB_INIT_CDB); ++++++ dbrointerruptable.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:17.978223031 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:17.982222843 +0100 @@ -1,6 +1,6 @@ ---- ./lib/rpmdb.c.orig 2016-10-21 09:44:00.306962087 +0000 -+++ ./lib/rpmdb.c 2017-01-19 10:36:12.529219141 +0000 -@@ -450,9 +450,11 @@ int rpmdbClose(rpmdb db) +--- ./lib/rpmdb.c.orig 2017-10-05 10:05:27.459594162 +0000 ++++ ./lib/rpmdb.c 2017-12-01 14:19:12.361872712 +0000 +@@ -387,9 +387,11 @@ int rpmdbClose(rpmdb db) { rpmdb * prev, next; int rc = 0; @@ -12,21 +12,21 @@ prev = &rpmdbRock; while ((next = *prev) != NULL && next != db) -@@ -487,7 +489,7 @@ int rpmdbClose(rpmdb db) +@@ -424,7 +426,7 @@ int rpmdbClose(rpmdb db) db = _free(db); - if (rpmdbRock == NULL) { + if (rpmdbRock == NULL && (dbmode & (O_RDWR|O_WRONLY)) != 0) { - (void) rpmsqEnable(-SIGHUP, NULL); - (void) rpmsqEnable(-SIGINT, NULL); - (void) rpmsqEnable(-SIGTERM, NULL); -@@ -572,7 +574,7 @@ static int openDatabase(const char * pre + rpmsqActivate(0); + } + exit: +@@ -505,7 +507,7 @@ static int openDatabase(const char * pre /* Try to ensure db home exists, error out if we can't even create */ rc = rpmioMkpath(rpmdbHome(db), 0755, getuid(), getgid()); if (rc == 0) { - if (rpmdbRock == NULL) { + if (rpmdbRock == NULL && (db->db_mode & (O_RDWR|O_WRONLY)) != 0) { - (void) rpmsqEnable(SIGHUP, NULL); - (void) rpmsqEnable(SIGINT, NULL); - (void) rpmsqEnable(SIGTERM, NULL); + rpmsqActivate(1); + } + ++++++ debugedit-macro.diff ++++++ --- ./tools/debugedit.c.orig 2017-12-15 12:17:02.564975374 +0000 +++ ./tools/debugedit.c 2017-12-15 12:17:29.058901941 +0000 @@ -71,6 +71,14 @@ #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 ebl variants. While libebl.h isn't supported we'll try to use it anyway @@ -2209,6 +2217,67 @@ edit_dwarf2 (DSO *dso) } } + /* the macro section also contains offsets into the str section, + * so we need to update those as well if we update the strings + */ + if (need_strp_update && debug_sections[DEBUG_MACRO].data) + { + ptr = debug_sections[DEBUG_MACRO].data; + endsec = ptr + debug_sections[DEBUG_MACRO].size; + int op = 0, macro_version, macro_flags; + + while (ptr < endsec) + { + if (!op) + { + macro_version = read_16 (ptr); + macro_flags = read_8 (ptr); + if (macro_version != 4 || (macro_flags & ~2) != 0) + error (1, 0, "unhandled .debug_macro version/flags"); + if ((macro_flags & 2) != 0) + ptr += 4; + } + op = read_8 (ptr); + if (!op) + continue; + switch(op) + { + case DW_MACRO_GNU_define: + case DW_MACRO_GNU_undef: + read_uleb128 (ptr); + ptr = (unsigned char *) strchr ((char *) ptr, '\0') + 1; + break; + case DW_MACRO_GNU_start_file: + read_uleb128 (ptr); + read_uleb128 (ptr); + break; + case DW_MACRO_GNU_define_indirect: + case DW_MACRO_GNU_undef_indirect: + read_uleb128 (ptr); + if (phase == 0) + { + size_t idx = read_32 (ptr); + record_existing_string_entry_idx (&dso->strings, idx); + } + else + { + struct stridxentry *entry; + size_t idx, new_idx; + idx = do_read_32 (ptr); + entry = string_find_entry (&dso->strings, idx); + new_idx = strent_offset (entry->entry); + write_32 (ptr, new_idx); + } + break; + case DW_MACRO_GNU_transparent_include: + ptr += 4; + break; + default: + break; + } + } + } + /* Same for the debug_str section. Make sure everything is in place for phase 1 updating of debug_info references. */ @@ -2238,6 +2307,8 @@ edit_dwarf2 (DSO *dso) new strp, strings and/or linep offsets. */ if (need_strp_update || need_string_replacement || need_stmt_update) dirty_section (DEBUG_INFO); + if (need_strp_update) + dirty_section (DEBUG_MACRO); /* Update any debug_info relocations addends we might have touched. */ if (relbuf != NULL && reltype == SHT_RELA) ++++++ debugedit.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.002221908 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.002221908 +0100 @@ -1,26 +1,26 @@ Make debugedit build without dwarf.h ---- ./Makefile.am.orig 2016-10-21 09:44:00.299962090 +0000 -+++ ./Makefile.am 2017-01-19 10:25:42.252270176 +0000 -@@ -155,7 +155,6 @@ rpm2archive_LDADD += @WITH_NSS_LIB@ @WIT +--- ./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 if LIBELF -if LIBDWARF + if LIBDW rpmconfig_SCRIPTS += scripts/find-debuginfo.sh - rpmlibexec_PROGRAMS += debugedit -@@ -172,7 +171,6 @@ rpmlibexec_PROGRAMS += sepdebugcrcfix - sepdebugcrcfix_SOURCES = tools/sepdebugcrcfix.c - sepdebugcrcfix_LDADD = @WITH_LIBELF_LIB@ - endif --endif - - rpmlibexec_PROGRAMS += rpmdeps - rpmdeps_SOURCES = tools/rpmdeps.c ---- ./tools/debugedit.c.orig 2016-10-13 07:12:21.471778488 +0000 -+++ ./tools/debugedit.c 2017-01-19 10:25:42.252270176 +0000 -@@ -37,7 +37,37 @@ +@@ -168,7 +167,6 @@ else + debugedit_LDADD += @WITH_LIBDW_LIB@ -lebl + endif # HAVE_LIBDW_STRTAB + endif # LIBDW +-endif # LIBDWARF + 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 @@ #include <popt.h> #include <gelf.h> @@ -57,5 +57,5 @@ +#define DW_FORM_ref_udata 0x15 +#define DW_FORM_indirect 0x16 - #include <rpm/rpmio.h> - #include <rpm/rpmpgp.h> + /* Unfortunately strtab manipulation functions were only officially added + to elfutils libdw in 0.167. Before that there were internal unsupported ++++++ debuginfo-mono.patch ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.026220784 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.026220784 +0100 @@ -1,6 +1,6 @@ ---- ./scripts/find-debuginfo.sh.orig 2017-01-19 13:03:40.090496764 +0000 -+++ ./scripts/find-debuginfo.sh 2017-01-19 13:03:55.515451969 +0000 -@@ -315,6 +315,17 @@ while read nlinks inum f; do +--- ./scripts/find-debuginfo.sh.orig 2017-12-01 15:40:27.006764372 +0000 ++++ ./scripts/find-debuginfo.sh 2017-12-01 15:41:17.270619182 +0000 +@@ -348,6 +348,16 @@ while read nlinks inum f; do ;; *) continue ;; esac @@ -10,11 +10,10 @@ + case $ftype in + *ELF*) ;; + *) -+ echo "$f is not an ELF file, skipping" -+ continue -+ ;; ++ echo "$f is not an ELF file, skipping" ++ continue ++ ;; + esac -+ - get_debugfn "$f" - [ -f "${debugfn}" ] && continue - + if [ $nlinks -gt 1 ]; then + var=seen_$inum + if test -n "${!var}"; then ++++++ debuglink.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.050219660 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.054219473 +0100 @@ -1,12 +1,11 @@ ---- ./scripts/find-debuginfo.sh.orig 2011-05-11 15:59:44.000000000 +0000 -+++ ./scripts/find-debuginfo.sh 2011-05-11 16:10:22.000000000 +0000 -@@ -186,7 +186,8 @@ make_id_link() +--- ./scripts/find-debuginfo.sh.orig 2017-12-01 15:39:07.239994681 +0000 ++++ ./scripts/find-debuginfo.sh 2017-12-01 15:39:34.942914702 +0000 +@@ -321,7 +321,7 @@ debug_link() get_debugfn() { dn=$(dirname "${1#$RPM_BUILD_ROOT}") -- bn=$(basename "$1" .debug).debug -+# Do not strip existing .debug suffixes -+ bn=$(basename "$1").debug - +- bn=$(basename "$1" .debug)${unique_debug_suffix}.debug ++ bn=$(basename "$1")${unique_debug_suffix}.debug debugdn=${debugdir}${dn} debugfn=${debugdn}/${bn} + } ++++++ debugsubpkg.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.070218724 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.074218537 +0100 @@ -1,439 +1,6 @@ ---- ./build/files.c.orig 2017-02-16 09:52:49.292092380 +0000 -+++ ./build/files.c 2017-03-22 13:32:42.911865500 +0000 -@@ -21,6 +21,10 @@ - #include <rpm/rpmlog.h> - #include <rpm/rpmbase64.h> - -+#if HAVE_GELF_H -+#include <gelf.h> -+#endif -+ - #include "rpmio/rpmio_internal.h" /* XXX rpmioSlurp */ - #include "misc/fts.h" - #include "lib/rpmfi_internal.h" /* XXX fi->apath */ -@@ -2155,13 +2159,302 @@ exit: - return rc; - } - -+#if HAVE_GELF_H && HAVE_LIBELF -+/* Query the build-id from the ELF file NAME and store it in the newly -+ allocated *build_id array of size *build_id_size. Returns -1 on -+ error. */ -+ -+static int -+getELFBuildId (const char *name, -+ unsigned char **id, size_t *id_size) -+{ -+ int fd, i; -+ Elf *elf; -+ GElf_Ehdr ehdr; -+ Elf_Data *build_id = NULL; -+ size_t build_id_offset = 0, build_id_size = 0; -+ -+ /* Now query the build-id of the file and add the -+ corresponding links in the .build-id tree. -+ The following code is based on tools/debugedit.c. */ -+ fd = open (name, O_RDONLY); -+ if (fd < 0) -+ return -1; -+ elf = elf_begin (fd, ELF_C_READ_MMAP, NULL); -+ if (elf == NULL) -+ { -+ fprintf (stderr, "cannot open ELF file: %s", -+ elf_errmsg (-1)); -+ close (fd); -+ return -1; -+ } -+ if (elf_kind (elf) != ELF_K_ELF -+ || gelf_getehdr (elf, &ehdr) == NULL -+ || (ehdr.e_type != ET_DYN -+ && ehdr.e_type != ET_EXEC -+ && ehdr.e_type != ET_REL)) -+ { -+ elf_end (elf); -+ close (fd); -+ return -1; -+ } -+ for (i = 0; i < ehdr.e_shnum; ++i) -+ { -+ Elf_Scn *s = elf_getscn (elf, i); -+ GElf_Shdr shdr; -+ Elf_Data *data; -+ Elf32_Nhdr nh; -+ Elf_Data dst = -+ { -+ .d_version = EV_CURRENT, .d_type = ELF_T_NHDR, -+ .d_buf = &nh, .d_size = sizeof nh -+ }; -+ Elf_Data src = dst; -+ -+ gelf_getshdr (s, &shdr); -+ /* LD creates .note.gnu.build-id with SHF_ALLOC but the DWZ -+ common debuginfo only file only has non-allocated sections. */ -+ if (shdr.sh_type != SHT_NOTE) -+ continue; -+ -+ /* Look for a build-ID note here. */ -+ data = elf_rawdata (s, NULL); -+ src.d_buf = data->d_buf; -+ assert (sizeof (Elf32_Nhdr) == sizeof (Elf64_Nhdr)); -+ while ((unsigned char *)data->d_buf + data->d_size - (unsigned char *)src.d_buf > (int) sizeof nh -+ && elf32_xlatetom (&dst, &src, ehdr.e_ident[EI_DATA])) -+ { -+ Elf32_Word len = sizeof nh + nh.n_namesz; -+ len = (len + 3) & ~3; -+ -+ if (nh.n_namesz == sizeof "GNU" && nh.n_type == 3 -+ && !memcmp ((unsigned char *)src.d_buf + sizeof nh, "GNU", sizeof "GNU")) -+ { -+ build_id = data; -+ build_id_offset = (unsigned char *)src.d_buf + len - (unsigned char *)data->d_buf; -+ build_id_size = nh.n_descsz; -+ break; -+ } -+ -+ len += nh.n_descsz; -+ len = (len + 3) & ~3; -+ src.d_buf = (unsigned char *)src.d_buf + len; -+ } -+ -+ if (build_id != NULL) -+ break; -+ } -+ -+ if (build_id == NULL) -+ return -1; -+ -+ *id = malloc (build_id_size); -+ *id_size = build_id_size; -+ memcpy (*id, (unsigned char *)build_id->d_buf + build_id_offset, build_id_size); -+ -+ elf_end (elf); -+ close (fd); -+ -+ return 0; -+} -+ -+ -+static rpmTag copyTagsForDebug[] = { -+ RPMTAG_EPOCH, -+ RPMTAG_VERSION, -+ RPMTAG_RELEASE, -+ RPMTAG_LICENSE, -+ RPMTAG_PACKAGER, -+ RPMTAG_DISTRIBUTION, -+ RPMTAG_DISTURL, -+ RPMTAG_VENDOR, -+ RPMTAG_ICON, -+ RPMTAG_URL, -+ RPMTAG_CHANGELOGTIME, -+ RPMTAG_CHANGELOGNAME, -+ RPMTAG_CHANGELOGTEXT, -+ RPMTAG_PREFIXES, -+ RPMTAG_RHNPLATFORM, -+ RPMTAG_OS, -+ RPMTAG_DISTTAG, -+ RPMTAG_CVSID, -+ RPMTAG_ARCH, -+ 0 -+}; -+ -+/* Add a new debuginfo package based on PKG with FILES. */ -+ -+static Package addDebuginfoPackage(rpmSpec spec, Package pkg, ARGV_t files) -+{ -+ const char *name; -+ char tmp[1024]; -+ Package dbg = newPackage(NULL, spec->pool, &spec->packages); -+ name = headerGetString(pkg->header, RPMTAG_NAME); -+ /* Set name, summary and group. */ -+ snprintf(tmp, 1024, "%s-debuginfo", name); -+ headerPutString(dbg->header, RPMTAG_NAME, tmp); -+ snprintf(tmp, 1024, "Debug information for package %s", name); -+ headerPutString(dbg->header, RPMTAG_SUMMARY, tmp); -+ snprintf(tmp, 1024, "This package provides debug information for package %s.\n" -+ "Debug information is useful when developing applications that use this\n" -+ "package or when debugging this package.", name); -+ headerPutString(dbg->header, RPMTAG_DESCRIPTION, tmp); -+ headerPutString(dbg->header, RPMTAG_GROUP, "Development/Debug"); -+ /* Inherit other tags from parent. */ -+ headerCopyTags(spec->packages->header, -+ dbg->header, copyTagsForDebug); -+ -+ /* Add self-provides */ -+ dbg->ds = rpmdsThis(dbg->header, RPMTAG_REQUIRENAME, RPMSENSE_EQUAL); -+ addPackageProvides(dbg); -+ -+ /* Build up the files list. */ -+ dbg->fileList = files; -+ return dbg; -+} -+ -+/* Process the filelist of PKG and see to eventually create a debuginfo -+ packge for it. */ -+ -+static Package processDebuginfo(rpmSpec spec, Package pkg, char *buildroot) -+{ -+ const char *a; -+ -+ elf_version(EV_CURRENT); -+ a = headerGetString(pkg->header, RPMTAG_ARCH); -+ if (strcmp(a, "noarch") != 0) -+ { -+ rpmfi fi = rpmfilesIter(pkg->cpioList, RPMFI_ITER_FWD); -+ char tmp[1024]; -+ const char *name; -+ ARGV_t files = NULL; -+ int seen_build_id = 0; -+ -+ /* Check if the current package has files with debug info -+ and record them. */ -+ fi = rpmfiInit(fi, 0); -+ while (rpmfiNext(fi) >= 0) -+ { -+ int i; -+ unsigned char *build_id = NULL; -+ size_t build_id_size = 0; -+ struct stat sbuf; -+ -+ name = rpmfiFN(fi); -+ /* Pre-pend %buildroot/usr/lib/debug and append .debug. */ -+ snprintf(tmp, 1024, "%s/usr/lib/debug%s.debug", -+ buildroot, name); -+ /* If that file exists we have debug information for it. */ -+ if (access(tmp, F_OK) != 0) -+ continue; -+ -+ /* Append the file list preamble. */ -+ if (!files) -+ { -+ argvAdd(&files, "%defattr(-,root,root)"); -+ argvAdd(&files, "%dir /usr/lib/debug"); -+ } -+ /* Add the files main debug-info file. */ -+ snprintf(tmp, 1024, "/usr/lib/debug/%s.debug", name); -+ argvAdd(&files, tmp); -+ -+ snprintf(tmp, 1024, "%s%s", buildroot, name); -+ /* Do not bother to check build-ids for symbolic links. -+ We'll handle them for the link target. */ -+ if (lstat(tmp, &sbuf) == -1 || S_ISLNK(sbuf.st_mode)) -+ continue; -+ -+ /* Try to gather the build-id from the binary. */ -+ if (getELFBuildId(tmp, &build_id, &build_id_size) == -1) -+ continue; -+ -+ /* If we see build-id links for the first time add the -+ directory. */ -+ if (!seen_build_id) -+ { -+ seen_build_id = 1; -+ argvAdd(&files, "%dir /usr/lib/debug/.build-id"); -+ } -+ -+ /* From the build-id construct the two links pointing back -+ to the debug information file and the binary. */ -+ snprintf(tmp, 1024, "/usr/lib/debug/.build-id/%02x/", -+ build_id[0]); -+ for (i = 1; i < build_id_size; ++i) -+ sprintf(tmp + strlen(tmp), "%02x", build_id[i]); -+ argvAdd(&files, tmp); -+ sprintf(tmp + strlen(tmp), ".debug"); -+ argvAdd(&files, tmp); -+ -+ free(build_id); -+ } -+ -+ /* If there are debuginfo files for this package add a -+ new debuginfo package. */ -+ if (files) -+ return addDebuginfoPackage (spec, pkg, files); -+ } -+ return NULL; -+} -+ -+ -+static char *addDebugDWZ(ARGV_t *filesp, char *buildroot) -+{ -+ char tmp[1024]; -+ struct stat sbuf; -+ char *dwz_dbg_buildid = NULL; -+ DIR *d; -+ struct dirent *de; -+ int i; -+ -+ snprintf(tmp, 1024, "%s%s", buildroot, "/usr/lib/debug/.dwz"); -+ if (lstat(tmp, &sbuf) != 0 || !S_ISDIR(sbuf.st_mode)) -+ return NULL; -+ d = opendir(tmp); -+ if (!d) -+ return NULL; -+ -+ argvAdd(filesp, "/usr/lib/debug/.dwz"); -+ while ((de = readdir (d))) { -+ unsigned char *build_id = NULL; -+ size_t build_id_size = 0; -+ -+ snprintf(tmp, 1024, "%s/usr/lib/debug/.dwz/%s", buildroot, de->d_name); -+ if (lstat(tmp, &sbuf) == -1 || !S_ISREG(sbuf.st_mode)) -+ continue; -+ if (getELFBuildId(tmp, &build_id, &build_id_size) == -1) -+ continue; -+ snprintf(tmp, 1024, "/usr/lib/debug/.build-id/%02x/", build_id[0]); -+ for (i = 1; i < build_id_size; ++i) -+ sprintf(tmp + strlen(tmp), "%02x", build_id[i]); -+ sprintf(tmp + strlen(tmp), ".debug"); -+ argvAdd(filesp, tmp); -+ if (!dwz_dbg_buildid) { -+ for (i = 0; i < build_id_size; ++i) -+ sprintf(tmp + 2 * i, "%02x", build_id[i]); -+ dwz_dbg_buildid = xstrdup(tmp); -+ } -+ free(build_id); -+ } -+ closedir(d); -+ return dwz_dbg_buildid; -+} -+ -+#endif -+ - rpmRC processBinaryFiles(rpmSpec spec, rpmBuildPkgFlags pkgFlags, - int installSpecialDoc, int test) - { - Package pkg; - rpmRC rc = RPMRC_OK; -+ char *buildroot; -+ Package first_dbg = NULL, dwz_dbg = NULL; -+ int processing_dbg = 0; -+ int main_pkg_got_dbg = 0; -+ char *dwz_dbg_buildid = NULL; - - check_fileList = newStringBuf(); -+ buildroot = rpmGenPath(spec->rootDir, spec->buildRoot, NULL); - genSourceRpmName(spec); - - for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { -@@ -2179,8 +2472,40 @@ rpmRC processBinaryFiles(rpmSpec spec, r - rpmlog(RPMLOG_NOTICE, _("Processing files: %s\n"), nvr); - free(nvr); - -- if ((rc = processPackageFiles(spec, pkgFlags, pkg, installSpecialDoc, test)) != RPMRC_OK || -- (rc = rpmfcGenerateDepends(spec, pkg)) != RPMRC_OK) -+#if HAVE_GELF_H && HAVE_LIBELF -+ if (pkg == first_dbg) { -+ /* If we have multiple debug packages then we put -+ DWZ generated files into %name-debuginfo which -+ may already exist. Otherwise put the DWZ data -+ into the only debug package. */ -+ processing_dbg = 1; -+ if (!first_dbg->next || main_pkg_got_dbg) { -+ dwz_dbg_buildid = addDebugDWZ(&first_dbg->fileList, buildroot); -+ dwz_dbg = pkg; -+ } else { -+ ARGV_t files = NULL; -+ dwz_dbg_buildid = addDebugDWZ(&files, buildroot); -+ dwz_dbg = addDebuginfoPackage(spec, spec->packages, files); -+ } -+ } -+#endif -+ if ((rc = processPackageFiles(spec, pkgFlags, pkg, installSpecialDoc, test)) != RPMRC_OK) -+ goto exit; -+#if HAVE_GELF_H && HAVE_LIBELF -+ if (!processing_dbg) { -+ Package dbg = processDebuginfo(spec, pkg, buildroot); -+ if (dbg && !first_dbg) { -+ first_dbg = dbg; -+ if (pkg == spec->packages) -+ main_pkg_got_dbg = 1; -+ } -+ } -+ /* If we have DWZ info and it is not in PKG then add a requires. */ -+ if (dwz_dbg_buildid && pkg != dwz_dbg) -+ addReqProv(pkg, RPMTAG_REQUIRENAME, -+ "debuginfo(build-id)", dwz_dbg_buildid, RPMSENSE_EQUAL, 0); -+#endif -+ if ((rc = rpmfcGenerateDepends(spec, pkg)) != RPMRC_OK) - goto exit; - - a = headerGetString(pkg->header, RPMTAG_ARCH); -@@ -2215,6 +2540,7 @@ rpmRC processBinaryFiles(rpmSpec spec, r - } - exit: - check_fileList = freeStringBuf(check_fileList); -+ _free(dwz_dbg_buildid); - - return rc; - } ---- ./build/parseSpec.c.orig 2017-03-22 12:10:11.304029953 +0000 -+++ ./build/parseSpec.c 2017-03-22 12:10:20.142010341 +0000 -@@ -564,7 +564,7 @@ static void initSourceHeader(rpmSpec spe - } - - /* Add extra provides to package. */ --static void addPackageProvides(Package pkg) -+void addPackageProvides(Package pkg) - { - const char *arch, *name; - char *evr, *isaprov; ---- ./build/rpmbuild_internal.h.orig 2017-02-16 09:40:09.788649545 +0000 -+++ ./build/rpmbuild_internal.h 2017-03-22 12:10:20.143010339 +0000 -@@ -442,6 +442,13 @@ int addReqProv(Package pkg, rpmTagVal ta - - - /** \ingroup rpmbuild -+ * Add self-provides to package. -+ * @param pkg package -+ */ -+RPM_GNUC_INTERNAL -+void addPackageProvides(Package pkg); -+ -+/** \ingroup rpmbuild - * Add rpmlib feature dependency. - * @param pkg package - * @param feature rpm feature name (i.e. "rpmlib(Foo)" for feature Foo) ---- ./macros.in.orig 2017-03-22 12:10:11.307029946 +0000 -+++ ./macros.in 2017-03-22 12:10:20.143010339 +0000 -@@ -186,24 +186,10 @@ - # Template for debug information sub-package. - %debug_package \ - %global __debug_package 1\ --%package debuginfo\ --Summary: Debug information for package %{name}\ --Group: Development/Debug\ --AutoReq: 0\ --AutoProv: 1\ --#Requires: %{?!debug_package_requires:%{name} = %{version}-%{release}}%{?debug_package_requires}\ --%description debuginfo\ --This package provides debug information for package %{name}.\ --Debug information is useful when developing applications that use this\ --package or when debugging this package.\ --%files debuginfo -f debugfiles.list\ --%defattr(-,root,root)\ --\ - %package debugsource\ - Summary: Debug sources for package %{name}\ - Group: Development/Debug\ - AutoReqProv: 0\ --Requires: %{name}-debuginfo = %{version}-%{release}\ - %description debugsource\ - This package provides debug sources for package %{name}.\ - Debug sources are useful when developing applications that use this\ ---- ./scripts/find-debuginfo.sh.orig 2017-03-22 12:10:11.303029955 +0000 -+++ ./scripts/find-debuginfo.sh 2017-03-22 12:10:20.144010337 +0000 -@@ -220,6 +220,11 @@ debug_link() - # Provide .2, .3, ... symlinks to all filename instances of this build-id. - make_id_dup_link() - { -+ # See https://bugzilla.redhat.com/show_bug.cgi?id=641377 for the reasoning, -+ # but it has seveal drawbacks as we would need to split the .1 suffixes into -+ # different subpackages and it's about impossible to predict the number -+ # -> perhaps later -+ return - local id="$1" file="$2" idfile - - local n=1 -@@ -424,19 +429,11 @@ if $run_dwz && type dwz >/dev/null 2>&1 +--- ./scripts/find-debuginfo.sh.orig 2017-12-01 15:35:59.023537837 +0000 ++++ ./scripts/find-debuginfo.sh 2017-12-01 15:36:30.351447397 +0000 +@@ -548,19 +548,25 @@ if $run_dwz \ fi fi @@ -455,6 +22,20 @@ +# the debuglink section contains only the destination of those links. +# Creating those links anyway results in debuginfo packages for +# devel packages just because of the .so symlinks in them. ++ ++## For each symlink whose target has a .debug file, ++## make a .debug symlink to that file. ++#find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*" -type l -print | ++#while read f ++#do ++# t=$(readlink -m "$f").debug ++# f=${f#$RPM_BUILD_ROOT} ++# t=${t#$RPM_BUILD_ROOT} ++# if [ -f "$debugdir$t" ]; then ++# echo "symlinked /usr/lib/debug$t to /usr/lib/debug${f}.debug" ++# debug_link "/usr/lib/debug$t" "${f}.debug" ++# fi ++#done if [ -s "$SOURCEFILE" ]; then - mkdir -p "${RPM_BUILD_ROOT}/usr/src/debug" + # See also debugedit invocation. Directories must match up. ++++++ editdwarf.diff ++++++ 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) ++++++ enable-postin-scripts-error.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.110216852 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.110216852 +0100 @@ -1,6 +1,6 @@ ---- ./lib/transaction.c.orig 2017-01-19 13:46:06.163983390 +0000 -+++ ./lib/transaction.c 2017-01-19 13:47:03.649807918 +0000 -@@ -1435,7 +1435,9 @@ rpmRC runScript(rpmts ts, rpmte te, ARGV +--- ./lib/transaction.c.orig 2017-12-01 16:02:14.150972487 +0000 ++++ ./lib/transaction.c 2017-12-01 16:02:56.139850122 +0000 +@@ -1460,7 +1460,9 @@ rpmRC runScript(rpmts ts, rpmte te, Head int warn_only = (stag != RPMTAG_PREIN && stag != RPMTAG_PREUN && stag != RPMTAG_PRETRANS && @@ -10,11 +10,11 @@ + rpmExpandNumeric("%{_fail_on_postinstall_errors}"))); rpmdb rdb = rpmtsGetRdb(ts); - sfd = rpmtsNotify(ts, te, RPMCALLBACK_SCRIPT_START, stag, 0); ---- ./macros.in.orig 2017-01-19 13:44:57.362193434 +0000 -+++ ./macros.in 2017-01-19 13:45:13.038145574 +0000 -@@ -1374,6 +1374,11 @@ end} - %{-S:%{expand:%__scm_setup_%{-S*} %{!-v:-q}}}\ + /* Fake up a transaction element for triggers from rpmdb */ +--- ./macros.in.orig 2017-12-01 16:02:14.170972428 +0000 ++++ ./macros.in 2017-12-01 16:02:56.140850119 +0000 +@@ -1468,6 +1468,11 @@ end} + %{expand:%__scm_setup_%{__scm} %{!-v:-q}}\ %{!-N:%autopatch %{-v} %{-p:-p%{-p*}}} +# Should errors in %post scriptlet be propagated as errors? ++++++ fileattrs.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.130215915 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.130215915 +0100 @@ -1,75 +1,56 @@ ---- - fileattrs/Makefile.am | 3 ++- - fileattrs/debuginfo.attr | 2 ++ - fileattrs/elf.attr | 3 ++- - fileattrs/elflib.attr | 4 ++++ - fileattrs/firmware.attr | 2 ++ - fileattrs/kernel.attr | 2 ++ - fileattrs/kmp.attr | 4 ++++ - fileattrs/perl.attr | 3 ++- - fileattrs/perllib.attr | 3 ++- - fileattrs/sysvinit.attr | 2 ++ - 10 files changed, 24 insertions(+), 4 deletions(-) - ---- fileattrs/Makefile.am.orig -+++ fileattrs/Makefile.am -@@ -7,6 +7,7 @@ fattrsdir = $(rpmconfigdir)/fileattrs +--- ./fileattrs/Makefile.am.orig 2017-12-01 15:46:21.021741182 +0000 ++++ ./fileattrs/Makefile.am 2017-12-01 15:48:54.108298271 +0000 +@@ -8,6 +8,6 @@ fattrsdir = $(rpmconfigdir)/fileattrs fattrs_DATA = \ - appdata.attr desktop.attr elf.attr font.attr libtool.attr perl.attr \ - perllib.attr pkgconfig.attr python.attr ocaml.attr script.attr \ + 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 debuginfo.attr elflib.attr firmware.attr kernel.attr \ -+ kmp.attr sysvinit.attr ++ mono.attr elflib.attr firmware.attr kernel.attr kmp.attr sysvinit.attr EXTRA_DIST = $(fattrs_DATA) ---- /dev/null -+++ fileattrs/debuginfo.attr -@@ -0,0 +1,2 @@ -+%__debuginfo_provides %{_rpmconfigdir}/debuginfo.prov -+%__debuginfo_path ^/usr/lib/debug/ ---- fileattrs/elf.attr.orig -+++ fileattrs/elf.attr +--- ./fileattrs/elf.attr.orig 2017-12-01 15:46:28.171720501 +0000 ++++ ./fileattrs/elf.attr 2017-12-01 15:47:49.339485678 +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} --%__elf_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*$ -+%__elf_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*executable +-%__elf_magic ^(setuid,? )?(setgid,? )?(sticky )?ELF (32|64)-bit.*$ ++%__elf_magic ^(setuid,? )?(setgid,? )?(sticky )?ELF (32|64)-bit.*executable %__elf_flags exeonly +%__elf_exclude_path ^/usr/lib/debug/ ---- /dev/null -+++ fileattrs/elflib.attr +--- ./fileattrs/elflib.attr.orig 2017-12-01 15:46:28.171720501 +0000 ++++ ./fileattrs/elflib.attr 2017-12-01 15:46:28.171720501 +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/ ---- /dev/null -+++ fileattrs/firmware.attr +--- ./fileattrs/firmware.attr.orig 2017-12-01 15:46:28.171720501 +0000 ++++ ./fileattrs/firmware.attr 2017-12-01 15:46:28.171720501 +0000 @@ -0,0 +1,2 @@ +%__firmware_provides %{_rpmconfigdir}/firmware.prov +%__firmware_path /lib/firmware/ ---- /dev/null -+++ fileattrs/kernel.attr +--- ./fileattrs/kernel.attr.orig 2017-12-01 15:46:28.172720497 +0000 ++++ ./fileattrs/kernel.attr 2017-12-01 15:46:28.172720497 +0000 @@ -0,0 +1,2 @@ +%__kernel_provides %{_rpmconfigdir}/find-provides.ksyms --opensuse 0%{?is_opensuse} +%__kernel_path ^(/lib/modules/[^/]*/kernel/.*\.ko(\.gz)?|/boot/vmlinu[xz].*)$ ---- /dev/null -+++ fileattrs/kmp.attr +--- ./fileattrs/kmp.attr.orig 2017-12-01 15:46:28.172720497 +0000 ++++ ./fileattrs/kmp.attr 2017-12-01 15:46:28.172720497 +0000 @@ -0,0 +1,4 @@ +%__kmp_provides %{_rpmconfigdir}/find-provides.ksyms --opensuse 0%{?is_opensuse} +%__kmp_requires %{_rpmconfigdir}/find-requires.ksyms --opensuse 0%{?is_opensuse} +%__kmp_supplements %{_rpmconfigdir}/find-supplements.ksyms +%__kmp_path ^/lib/modules/[^/]*/(updates|extra)/.*\.ko(\.gz)? ---- fileattrs/perl.attr.orig -+++ fileattrs/perl.attr +--- ./fileattrs/perl.attr.orig 2017-08-10 08:08:07.113108701 +0000 ++++ ./fileattrs/perl.attr 2017-12-01 15:46:28.172720497 +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 -+++ fileattrs/perllib.attr +--- ./fileattrs/perllib.attr.orig 2017-08-10 08:08:07.113108701 +0000 ++++ ./fileattrs/perllib.attr 2017-12-01 15:46:28.172720497 +0000 @@ -1,5 +1,6 @@ %__perllib_provides %{_rpmconfigdir}/perl.prov -%__perllib_requires %{_rpmconfigdir}/perl.req @@ -78,8 +59,8 @@ %__perllib_magic ^Perl[[:digit:]] module source.* %__perllib_path \\.pm$ %__perllib_flags magic_and_path ---- /dev/null -+++ fileattrs/sysvinit.attr +--- ./fileattrs/sysvinit.attr.orig 2017-12-01 15:46:28.172720497 +0000 ++++ ./fileattrs/sysvinit.attr 2017-12-01 15:46:28.172720497 +0000 @@ -0,0 +1,2 @@ +%__sysvinit_provides %{_rpmconfigdir}/sysvinitdeps.sh --provides +%__sysvinit_path ^/etc/init\.d/ ++++++ find-lang-qt-qm.patch ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.146215166 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.146215166 +0100 @@ -1,23 +1,6 @@ -Author: Fabian Vogt <[email protected]> -Subject: Handle special cases of qt translations correctly -References: boo#1027925 - -Some KDE frameworks write their translations to files like this: -/usr/share/locale/ca/LC_MESSAGES/libkirigami2plugin_qt.qm - -Without this patch it gets detected as %lang(qt), which is obviously -incorrect. This copies two lines from the .mo handling and adjusts -them to handle _qt.qm files as well. "qt" is not an official ISO language -code, so this should not break anything in the past or hopefully the future. - -Signed-off-by: Fabian Vogt <[email protected]> ---- - scripts/find-lang.sh | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - ---- scripts/find-lang.sh.orig -+++ scripts/find-lang.sh -@@ -303,9 +303,11 @@ s:%lang(C) :: +--- ./scripts/find-lang.sh.orig 2017-12-01 16:07:23.339071251 +0000 ++++ ./scripts/find-lang.sh 2017-12-01 16:13:00.392088317 +0000 +@@ -296,7 +296,9 @@ s:%lang(C) :: find "$TOP_DIR" -type f -o -type l|sed ' s:'"$TOP_DIR"':: @@ -25,9 +8,6 @@ +'"$ALL_NAME$QT"'s:\(.*/locale/\)\([^/]\+\)\(/.\+/\)\([^/]\+_qt\.qm$\):%lang(\2) \1\2\3\4: +'"$NO_ALL_NAME$QT"'s:\(.*/locale/\)\([^/]\+\)\(/.\+/\)\('"$NAME"'_qt\.qm$\):%lang(\2) \1\2\3\4: +'"$NO_ALL_NAME$QT"'s:^\([^%].*/'"$NAME"'_\([a-zA-Z]\{2\}\([_@].*\)\?\)\.qm$\):%lang(\2) \1: - '"$ALL_NAME$QT"'s:\(.*/[^/_]\+_\([a-zA-Z]\{2\}[_@].*\)\.qm$\):%lang(\2) \1: --'"$ALL_NAME$QT"'s:\(.*/[^/_]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1: -+'"$ALL_NAME$QT"'s:^\([^%].*/[^/_]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1: - '"$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:^[^%].*:: + '"$ALL_NAME$QT"'s:^\([^%].*/\([a-zA-Z]\{2\}[_@].*\)\.qm$\):%lang(\2) \1: + '"$ALL_NAME$QT"'s:^\([^%].*/\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1: + '"$ALL_NAME$QT"'s:^\([^%].*/[^/_]\+_\([a-zA-Z]\{2\}[_@].*\)\.qm$\):%lang(\2) \1: ++++++ finddebuginfo-absolute-links.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.166214230 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.170214043 +0100 @@ -7,9 +7,9 @@ Signed-off-by: Jan Blunck <[email protected]> ---- ./scripts/find-debuginfo.sh.orig 2012-06-01 13:12:04.000000000 +0000 -+++ ./scripts/find-debuginfo.sh 2012-06-01 13:12:17.000000000 +0000 -@@ -133,7 +133,17 @@ debug_link() +--- ./scripts/find-debuginfo.sh.orig 2017-12-01 15:26:21.939199791 +0000 ++++ ./scripts/find-debuginfo.sh 2017-12-01 15:27:03.153081225 +0000 +@@ -305,7 +305,17 @@ debug_link() local l="/usr/lib/debug$2" local t="$1" echo >> "$LINKSFILE" "$l $t" @@ -27,15 +27,4 @@ + esac } - # Provide .2, .3, ... symlinks to all filename instances of this build-id. -@@ -186,8 +196,8 @@ make_id_link() - - local other=$(readlink -m "$root_idfile") - other=${other#$RPM_BUILD_ROOT} -- if cmp -s "$root_idfile" "$RPM_BUILD_ROOT$file" || -- elfcmp "$root_idfile" "$RPM_BUILD_ROOT$file" ; then -+ if cmp -s "$RPM_BUILD_ROOT$other" "$RPM_BUILD_ROOT$file" || -+ elfcmp "$RPM_BUILD_ROOT$other" "$RPM_BUILD_ROOT$file" ; then - # Two copies. Maybe one has to be setuid or something. - echo >&2 "*** WARNING: identical binaries are copied, not linked:" - echo >&2 " $file" + get_debugfn() ++++++ finddebuginfo.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.186213293 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.190213107 +0100 @@ -1,47 +1,15 @@ -Index: scripts/find-debuginfo.sh -=================================================================== ---- scripts/find-debuginfo.sh.orig 2017-02-16 10:54:14.779025209 +0100 -+++ scripts/find-debuginfo.sh 2017-07-26 14:39:24.338122534 +0200 -@@ -224,6 +224,20 @@ make_id_dup_link() - debug_link "$file" "/$idfile" - } +--- ./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 -+# Compare two binaries but ignore the .note.gnu.build-id section -+elfcmp() -+{ -+ local tmp1=$(mktemp -t ${1##*/}.XXXXXX) -+ local tmp2=$(mktemp -t ${2##*/}.XXXXXX) -+ -+ objcopy -R .note.gnu.build-id -R .gnu_debuglink $1 $tmp1 -+ objcopy -R .note.gnu.build-id -R .gnu_debuglink $2 $tmp2 -+ cmp -s $tmp1 $tmp2 -+ local res=$? -+ rm -f $tmp1 $tmp2 -+ return $res -+} -+ - # Make a build-id symlink for id $1 with suffix $3 to file $2. - make_id_link() - { -@@ -244,7 +258,7 @@ make_id_link() - local other=$(readlink -m "$root_idfile") - other=${other#$RPM_BUILD_ROOT} - if cmp -s "$root_idfile" "$RPM_BUILD_ROOT$file" || -- eu-elfcmp -q "$root_idfile" "$RPM_BUILD_ROOT$file" 2> /dev/null; then -+ elfcmp "$root_idfile" "$RPM_BUILD_ROOT$file" ; then - # Two copies. Maybe one has to be setuid or something. - echo >&2 "*** WARNING: identical binaries are copied, not linked:" - echo >&2 " $file" -@@ -273,12 +287,18 @@ strict_error=ERROR - $strict || strict_error=WARNING - - # Strip ELF binaries + # 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 | -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" \) -print 0 | sort -z | ++find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \( -perm /111 -or -name "*.so*" -or -name "*.ko" \) ! -name "*.a" -print0 | 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 @@ -53,23 +21,24 @@ + ;; + *) continue ;; + esac - get_debugfn "$f" - [ -f "${debugfn}" ] && continue - -@@ -302,7 +322,11 @@ while read nlinks inum f; do + if [ $nlinks -gt 1 ]; then + var=seen_$inum + if test -n "${!var}"; then +@@ -364,6 +370,8 @@ do_file() + if [ "$no_recompute_build_id" = "true" ]; then + no_recompute="-n" fi - - echo "extracting debug info from $f" -- id=$(${lib_rpm_dir}/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \ + mode=$(stat -c %a "$f") + chmod +w "$f" -+ id=$($(DEBUGEDIT=$(which debugedit 2>/dev/null); \ -+ echo ${DEBUGEDIT:-/usr/lib/rpm/debugedit}) \ -+ -b "$RPM_BUILD_DIR" -d /usr/src/debug \ - -i -l "$SOURCEFILE" "$f") || exit - if [ $nlinks -gt 1 ]; then - eval linkedid_$inum=\$id -@@ -323,13 +347,25 @@ while read nlinks inum f; do + 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() + # just has its file names collected and adjusted. + case "$dn" in + /usr/lib/debug/*) ++ chmod $mode "$f" + return ;; esac mkdir -p "${debugdn}" @@ -80,7 +49,7 @@ - strip_to_debug "${debugfn}" "$f" - chmod u-w "$f" - fi -+ objcopy --only-keep-debug $f $debugfn || : ++ objcopy --only-keep-debug "$f" "$debugfn" || : + ( + shopt -s extglob + strip_option="--strip-all" @@ -96,26 +65,26 @@ + if test "$NO_DEBUGINFO_STRIP_DEBUG" = true ; then + strip_option= + fi -+ objcopy --add-gnu-debuglink=$debugfn -R .comment -R .GCC.command.line $strip_option $f -+ chmod $mode $f ++ objcopy --add-gnu-debuglink="$debugfn" -R .comment -R .GCC.command.line $strip_option "$f" ++ chmod $mode "$f" + ) || : # strip -g implies we have full symtab, don't add mini symtab in that case. - $strip_g || ($include_minidebug && add_minidebug "${debugfn}" "$f") -@@ -366,7 +402,7 @@ if $run_dwz && type dwz >/dev/null 2>&1 + # 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'`" - [ -n "$id" ] \ - && make_id_link "$id" "/usr/lib/debug/.dwz/${dwz_multifile_name}" .debug fi -@@ -399,12 +435,14 @@ if [ -s "$SOURCEFILE" ]; then - # stupid cpio creates new directories in mode 0700, fixup - find "${RPM_BUILD_ROOT}/usr/src/debug" -type d -print0 | - xargs --no-run-if-empty -0 chmod a+rx -+ find "${RPM_BUILD_ROOT}/usr/src/debug" -type f -print0 | + + # dwz invalidates .gnu_debuglink CRC32 in the main files. +@@ -551,12 +572,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 ++ find "${RPM_BUILD_ROOT}${debug_dest_name}" -type f -print0 | + xargs --no-run-if-empty -0 chmod a+r fi ++++++ findksyms.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.210212170 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.210212170 +0100 @@ -1,29 +1,23 @@ ---- - scripts/Makefile.am | 2 + - scripts/find-provides.ksyms | 60 ++++++++++++++++++++++++++++++++++++++++++++ - scripts/find-requires.ksyms | 29 +++++++++++++++++++++ - 3 files changed, 91 insertions(+) - ---- scripts/Makefile.am.orig -+++ scripts/Makefile.am -@@ -16,6 +16,7 @@ EXTRA_DIST = \ +--- ./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 = \ tgpg vpkg-provides.sh \ find-requires find-provides \ find-requires.php find-provides.php \ + find-requires.ksyms find-provides.ksyms \ mono-find-requires mono-find-provides \ ocaml-find-requires.sh ocaml-find-provides.sh \ - pkgconfigdeps.sh libtooldeps.sh appdata.prov \ -@@ -32,6 +33,7 @@ rpmconfig_SCRIPTS = \ - check-buildroot check-rpaths check-rpaths-worker \ + pkgconfigdeps.sh libtooldeps.sh metainfo.prov \ +@@ -34,6 +35,7 @@ rpmconfig_SCRIPTS = \ + debuginfo.prov \ find-lang.sh find-requires find-provides \ - perl.prov perl.req pythondeps.sh \ + perl.prov perl.req pythondeps.sh pythondistdeps.py \ + find-requires.ksyms find-provides.ksyms \ + metainfo.prov \ mono-find-requires mono-find-provides \ pkgconfigdeps.sh libtooldeps.sh \ - ocaml-find-requires.sh ocaml-find-provides.sh \ ---- /dev/null -+++ scripts/find-provides.ksyms +--- ./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 @@ -0,0 +1,60 @@ +#! /bin/bash + @@ -85,8 +79,8 @@ + | sed -r -ne "s/^0*([0-9a-f]+) A __crc_(.+)/ksym($flavor:\\2) = \\1/p" +done \ +| sort -u ---- /dev/null -+++ scripts/find-requires.ksyms +--- ./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 @@ -0,0 +1,29 @@ +#! /bin/bash + ++++++ findlang.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.230211233 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.234211047 +0100 @@ -1,5 +1,5 @@ ---- ./scripts/find-lang.sh.orig 2016-10-13 07:12:21.467778490 +0000 -+++ ./scripts/find-lang.sh 2017-01-19 12:45:51.491544036 +0000 +--- ./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 PACKAGE_NAME is the %{name} of the package. This should also be the basename of the .mo files. the output is written to @@ -107,12 +107,7 @@ find $TOP_DIR -type d|sed ' s:'"$TOP_DIR"':: -@@ -162,11 +176,11 @@ s:'"$TOP_DIR"':: - '"$NO_ALL_NAME$MATE"'s:\(.*/mate/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) \1\2: - '"$ALL_NAME$MATE"'s:\(.*/mate/help/[a-zA-Z0-9.\_\-]\+$\):%dir \1: - '"$ALL_NAME$MATE"'s:\(.*/mate/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]/.\+\):: --'"$ALL_NAME$GNOME"'s:\(.*/mate/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) \1\2: -+'"$ALL_NAME$MATE"'s:\(.*/mate/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) \1\2: +@@ -166,14 +180,14 @@ s:'"$TOP_DIR"':: s:%lang(.*) .*/mate/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+/.*:: s:^\([^%].*\):: s:%lang(C) :: @@ -121,6 +116,14 @@ find "$TOP_DIR" -type d|sed ' s:'"$TOP_DIR"':: + '"$NO_ALL_NAME$MATE"'s:\(.*/omf/'"$NAME"'$\):%dir \1: + '"$ALL_NAME$MATE"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+$\):%dir \1: + s:^\([^%].*\):: +-/^$/d' >> $MO_NAME ++/^$/d' >> $MO_NAME_NEW + + find "$TOP_DIR" -type f|sed ' + s:'"$TOP_DIR"':: @@ -181,7 +195,7 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$MATE"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1: s:^[^%].*:: @@ -147,8 +150,17 @@ +/^$/d' >> $MO_NAME_NEW fi + KF5_HTML=`kf5-config --expandvars --install html 2>/dev/null` +@@ -219,7 +233,7 @@ s:'"$TOP_DIR"':: + '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: + s:^\([^%].*\):: + s:%lang(C) :: +-/^$/d' >> $MO_NAME ++/^$/d' >> $MO_NAME_NEW + fi + find "$TOP_DIR" -type d|sed ' -@@ -217,7 +231,7 @@ s:'"$TOP_DIR"':: +@@ -230,7 +244,7 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: s:^\([^%].*\):: s:%lang(C) :: @@ -157,7 +169,7 @@ find "$TOP_DIR" -type f -o -type l|sed ' s:'"$TOP_DIR"':: -@@ -228,7 +242,7 @@ s:'"$TOP_DIR"':: +@@ -243,7 +257,7 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1: s:^[^%].*:: s:%lang(C) :: @@ -166,7 +178,7 @@ find "$TOP_DIR" -type d|sed ' s:'"$TOP_DIR"':: -@@ -236,17 +250,22 @@ s:'"$TOP_DIR"':: +@@ -251,17 +265,22 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*: s:^\([^%].*\):: s:%lang(C) :: ++++++ hardlink.diff ++++++ 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); } ++++++ headerchk2.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.278208987 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.278208987 +0100 @@ -1,12 +1,12 @@ ---- lib/header.c.orig 2012-04-03 13:29:24.000000000 +0000 -+++ lib/header.c 2012-06-01 14:22:12.000000000 +0000 -@@ -900,7 +900,8 @@ Header headerImport(void * blob, unsigne +--- ./lib/header.c.orig 2017-12-01 15:54:04.254399473 +0000 ++++ ./lib/header.c 2017-12-01 15:55:36.389131237 +0000 +@@ -929,7 +929,8 @@ rpmRC hdrblobImport(hdrblob blob, int fa rdlen += REGION_TAG_COUNT; -- if (rdlen != dl) +- if (rdlen != blob->dl) + /* should be equality test, but can be off if entries are not perfectly aligned */ -+ if (rdlen > dl) ++ if (rdlen > blob->dl) goto errxit; } ++++++ initscriptsprov.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.310207488 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.314207302 +0100 @@ -1,14 +1,14 @@ ---- ./scripts/Makefile.am.orig 2017-01-19 13:05:33.490167306 +0000 -+++ ./scripts/Makefile.am 2017-01-19 13:06:29.192005359 +0000 -@@ -21,6 +21,7 @@ EXTRA_DIST = \ +--- ./scripts/Makefile.am.orig 2017-12-01 15:44:10.626118239 +0000 ++++ ./scripts/Makefile.am 2017-12-01 15:44:14.182107984 +0000 +@@ -23,6 +23,7 @@ EXTRA_DIST = \ ocaml-find-requires.sh ocaml-find-provides.sh \ - pkgconfigdeps.sh libtooldeps.sh appdata.prov \ + pkgconfigdeps.sh libtooldeps.sh metainfo.prov \ fontconfig.prov desktop-file.prov script.req \ + sysvinitdeps.sh \ macros.perl macros.php macros.python rpmconfig_SCRIPTS = \ -@@ -38,6 +39,7 @@ rpmconfig_SCRIPTS = \ +@@ -41,6 +42,7 @@ rpmconfig_SCRIPTS = \ pkgconfigdeps.sh libtooldeps.sh \ ocaml-find-requires.sh ocaml-find-provides.sh \ fontconfig.prov desktop-file.prov script.req \ @@ -16,8 +16,8 @@ rpmdb_loadcvt rpm2cpio.sh tgpg rpmconfig_DATA = \ ---- ./scripts/sysvinitdeps.sh.orig 2017-01-19 13:05:37.523155583 +0000 -+++ ./scripts/sysvinitdeps.sh 2017-01-19 13:05:37.523155583 +0000 +--- ./scripts/sysvinitdeps.sh.orig 2017-12-01 15:44:14.183107975 +0000 ++++ ./scripts/sysvinitdeps.sh 2017-12-01 15:44:14.183107975 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh + ++++++ macrosin.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.350205616 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.350205616 +0100 @@ -1,23 +1,7 @@ ---- ./macros.in.orig 2017-02-16 09:40:09.908649457 +0000 -+++ ./macros.in 2017-07-05 14:15:53.855734802 +0000 -@@ -185,22 +185,22 @@ - - # Template for debug information sub-package. - %debug_package \ --%ifnarch noarch\ - %global __debug_package 1\ - %package debuginfo\ - Summary: Debug information for package %{name}\ - Group: Development/Debug\ - AutoReqProv: 0\ -+#Requires: %{?!debug_package_requires:%{name} = %{version}-%{release}}%{?debug_package_requires}\ - %description debuginfo\ - This package provides debug information for package %{name}.\ - Debug information is useful when developing applications that use this\ - package or when debugging this package.\ - %files debuginfo -f debugfiles.list\ - %defattr(-,root,root)\ --%endif\ +--- ./macros.in.orig 2017-12-07 16:01:58.933485867 +0000 ++++ ./macros.in 2017-12-07 16:02:25.273409983 +0000 +@@ -224,7 +224,8 @@ package or when debugging this package.\ + %endif\ %{nil} -%_defaultdocdir %{_datadir}/doc @@ -25,8 +9,8 @@ +%_docdir_fmt %%{NAME} %_defaultlicensedir %{_datadir}/licenses - # The path to the gzip executable (legacy, use %{__gzip} instead). -@@ -238,7 +238,8 @@ package or when debugging this package.\ + # Following macros for filtering auto deps must not be used in spec files. +@@ -278,7 +279,8 @@ package or when debugging this package.\ %_tmppath %{_var}/tmp # Path to top of build area. @@ -36,8 +20,8 @@ # The path to the unzip executable (legacy, use %{__unzip} instead). %_unzipbin %{__unzip} -@@ -341,7 +342,7 @@ package or when debugging this package.\ - # "w7.lzdio" lzma-alone level 7, lzma's default +@@ -382,7 +384,7 @@ package or when debugging this package.\ + # "w6.lzdio" lzma-alone level 6, lzma's default # #%_source_payload w9.gzdio -#%_binary_payload w9.gzdio @@ -45,7 +29,7 @@ # Algorithm to use for generating file checksum digests on build. # If not specified or 0, MD5 is used. -@@ -448,6 +449,19 @@ package or when debugging this package.\ +@@ -489,6 +491,19 @@ package or when debugging this package.\ # #%_include_minidebuginfo 1 @@ -63,9 +47,31 @@ + --dwz-max-die-limit %{_dwz_max_die_limit} + # + # 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.\ + # 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 +-%_build_id_links compat ++%_build_id_links alldebug + + # 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.\ + %_unique_debug_srcs 1 + + # Whether rpm should put debug source files into its own subpackage +-#%_debugsource_packages 1 ++%_debugsource_packages 1 + + # Whether rpm should create extra debuginfo packages for each subpackage +-#%_debuginfo_subpackages 1 ++%_debuginfo_subpackages 1 + + # # Use internal dependency generator rather than external helpers? - %_use_internal_dependency_generator 1 -@@ -459,16 +473,22 @@ package or when debugging this package.\ +@@ -566,16 +581,22 @@ 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 @@ -90,7 +96,7 @@ # # Path to file attribute classifications for automatic dependency -@@ -538,10 +558,10 @@ package or when debugging this package.\ +@@ -654,10 +675,10 @@ package or when debugging this package.\ # Misc BDB tuning options %__dbi_other mp_mmapsize=128Mb mp_size=1Mb @@ -103,7 +109,7 @@ #============================================================================== # ---- GPG/PGP/PGP5 signature macros. -@@ -840,7 +860,7 @@ package or when debugging this package.\ +@@ -969,7 +990,7 @@ package or when debugging this package.\ %_build_vendor %{_host_vendor} %_build_os %{_host_os} %_host @host@ @@ -112,9 +118,20 @@ %_host_cpu @host_cpu@ %_host_vendor @host_vendor@ %_host_os @host_os@ -@@ -1009,6 +1029,183 @@ done \ - %python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))") - %python_version %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])") +@@ -1095,7 +1116,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 ++%armb armv4b armv5b armv5teb + + #------------------------------------------------------------------------------ + # arch macro for 32-bit MIPS processors +@@ -1125,6 +1148,183 @@ package or when debugging this package.\ + # arch macro for all supported Alpha processors + %alpha alpha alphaev56 alphaev6 alphaev67 +# More useful perl macros (from Raul Dias <[email protected]>) +# @@ -294,20 +311,9 @@ +EOF + #------------------------------------------------------------------------------ - # arch macro for all Intel i?86 compatibile processors - # (Note: This macro (and it's analogues) will probably be obsoleted when -@@ -1019,7 +1216,9 @@ done \ - - #------------------------------------------------------------------------------ - # arch macro for all supported ARM processors --%arm armv3l armv4b armv4l armv4tl 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 -+%armb armv4b armv5b armv5teb - - #------------------------------------------------------------------------------ - # arch macro for 32-bit MIPS processors -@@ -1174,3 +1373,24 @@ end} + # arch macro for all supported PowerPC 64 processors + %power64 ppc64 ppc64p7 ppc64le +@@ -1257,3 +1457,24 @@ end} # \endverbatim #*/ ++++++ noprereqdeprec.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.390203743 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.394203556 +0100 @@ -1,15 +1,15 @@ ---- ./build/parsePreamble.c.orig 2014-02-20 14:51:56.798802270 +0000 -+++ ./build/parsePreamble.c 2014-02-20 14:53:27.617802110 +0000 -@@ -895,7 +895,7 @@ static struct PreambleRec_s const preamb - {RPMTAG_SUGGESTFLAGS, 0, 0, LEN_AND_STR("suggests")}, - {RPMTAG_SUPPLEMENTFLAGS, 0, 0, LEN_AND_STR("supplements")}, - {RPMTAG_ENHANCEFLAGS, 0, 0, LEN_AND_STR("enhances")}, +--- ./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_CONFLICTFLAGS, 0, 0, LEN_AND_STR("conflicts")}, - {RPMTAG_OBSOLETEFLAGS, 0, 0, LEN_AND_STR("obsoletes")}, + {RPMTAG_CONFLICTNAME, 0, 0, LEN_AND_STR("conflicts")}, + {RPMTAG_OBSOLETENAME, 0, 0, LEN_AND_STR("obsoletes")}, {RPMTAG_PREFIXES, 0, 0, LEN_AND_STR("prefixes")}, -@@ -904,7 +904,7 @@ static struct PreambleRec_s const preamb +@@ -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")}, ++++++ pythondistdeps.diff ++++++ --- ./scripts/pythondistdeps.py.orig 2018-01-02 10:03:28.273247676 +0000 +++ ./scripts/pythondistdeps.py 2018-01-02 10:03:41.527207759 +0000 @@ -1,4 +1,3 @@ -#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright 2010 Per Øyvind Karlsen <[email protected]> ++++++ remove-translations.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:18.450200934 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:18.454200747 +0100 @@ -5,7 +5,7 @@ rm -f $MO_NAME_NEW +# remove languages we do not yet support - but give out statistics -+find "$TOP_DIR/usr/share/locale/" -maxdepth 1 -type d | sed 's:'"$TOP_DIR"/usr/share/locale/'::; /^$/d' | while read dir; do ++test -d "$TOP_DIR/usr/share/locale/" && find "$TOP_DIR/usr/share/locale/" -maxdepth 1 -type d | sed 's:'"$TOP_DIR"/usr/share/locale/'::; /^$/d' | while read dir; do + if ! rpm -ql filesystem | egrep -q "/usr/share/locale/$dir"$; then + find $TOP_DIR/usr/share/locale/$dir -name *.mo | sed 's:'"$TOP_DIR"'::' | while read file; do + echo -n "removing translation $file: " @@ -14,7 +14,7 @@ + rm -rf $TOP_DIR/usr/share/locale/$dir + fi +done -+find $TOP_DIR/usr/share/help/ -maxdepth 1 -type d | sed 's:'"$TOP_DIR"/usr/share/help/'::; /^$/d' | while read dir; do ++test -d "$TOP_DIR/usr/share/help/" && find $TOP_DIR/usr/share/help/ -maxdepth 1 -type d | sed 's:'"$TOP_DIR"/usr/share/help/'::; /^$/d' | while read dir; do + if ! rpm -ql filesystem | egrep -q "/usr/share/help/$dir"$; then + echo "removing help translation /usr/share/help/$dir" + rm -rf $TOP_DIR/usr/share/help/$dir ++++++ rofs.diff ++++++ 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; ++++++ rpm-4.13.0.1.tar.bz2 -> rpm-4.14.0.tar.bz2 ++++++ ++++ 275677 lines of diff (skipped) ++++++ rpm-deptracking.patch ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:22.282021541 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:22.286021353 +0100 @@ -1,6 +1,6 @@ ---- ./macros.in.orig 2014-08-04 13:03:05.948860909 +0000 -+++ ./macros.in 2014-08-04 13:03:24.830775270 +0000 -@@ -885,7 +885,8 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex +--- ./macros.in.orig 2017-12-01 15:50:47.587969729 +0000 ++++ ./macros.in 2017-12-01 15:50:53.813951691 +0000 +@@ -1039,7 +1039,8 @@ package or when debugging this package.\ --localstatedir=%{_localstatedir} \\\ --sharedstatedir=%{_sharedstatedir} \\\ --mandir=%{_mandir} \\\ @@ -9,4 +9,4 @@ + --disable-dependency-tracking #------------------------------------------------------------------------------ - # The "make" analogue, hiding the _smp_mflags magic from specs + # Tested features of make ++++++ rpm-shorten-changelog.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:22.302020604 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:22.302020604 +0100 @@ -1,6 +1,6 @@ ---- ./build/pack.c.orig 2013-06-10 15:55:10.000000000 +0000 -+++ ./build/pack.c 2013-07-12 11:59:37.000000000 +0000 -@@ -540,6 +540,63 @@ static rpmRC checkPackages(char *pkgchec +--- ./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; } @@ -8,9 +8,9 @@ +{ + static int oneshot; + static int cuttime, minnum, maxnum; -+ int * times; -+ char ** names = 0, ** texts = 0; -+ int i, keep, count = 0; ++ rpm_count_t i, keep; ++ struct rpmtd_s timestd, namestd, textstd; ++ rpm_count_t count; + + if (!oneshot) { + char *binarychangelogtrim = rpmExpand("%{?_binarychangelogtrim}", NULL); @@ -35,9 +35,12 @@ + if (!cuttime && !minnum && !maxnum) { + return; + } -+ if (!headerGetEntry(h, RPMTAG_CHANGELOGTIME, NULL, (void **) ×, &count)) ++ ++ if (!headerGet(h, RPMTAG_CHANGELOGTIME, ×td, HEADERGET_MINMEM)) + return; ++ count = rpmtdCount(×td); + if ((!cuttime || count <= minnum) && (!maxnum || count <= maxnum)) { ++ rpmtdFreeData(×td); + return; + } + keep = count; @@ -45,26 +48,31 @@ + keep = maxnum; + if (cuttime) { + for (i = 0; i < keep; i++) { -+ if (i >= minnum && times[i] < cuttime) ++ uint32_t *tp = rpmtdNextUint32(×td); ++ if (i >= minnum && tp && *tp < cuttime) + break; + } + keep = i; + } -+ if (keep >= count) ++ if (keep >= count) { ++ rpmtdFreeData(×td); + return; -+ headerGetEntry(h, RPMTAG_CHANGELOGNAME, NULL, (void **) &names, &count); -+ headerGetEntry(h, RPMTAG_CHANGELOGTEXT, NULL, (void **) &texts, &count); -+ headerModifyEntry(h, RPMTAG_CHANGELOGTIME, RPM_INT32_TYPE, times, keep); -+ headerModifyEntry(h, RPMTAG_CHANGELOGNAME, RPM_STRING_ARRAY_TYPE, names, keep); -+ headerModifyEntry(h, RPMTAG_CHANGELOGTEXT, RPM_STRING_ARRAY_TYPE, texts, keep); -+ free(names); -+ free(texts); ++ } ++ headerGet(h, RPMTAG_CHANGELOGNAME, &namestd, HEADERGET_MINMEM); ++ headerGet(h, RPMTAG_CHANGELOGTEXT, &textstd, HEADERGET_MINMEM); ++ timestd.count = namestd.count = textstd.count = keep; ++ headerMod(h, ×td); ++ headerMod(h, &namestd); ++ headerMod(h, &textstd); ++ rpmtdFreeData(&textstd); ++ rpmtdFreeData(&namestd); ++ rpmtdFreeData(×td); +} + rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating) { rpmRC rc; -@@ -547,6 +604,7 @@ rpmRC packageBinaries(rpmSpec spec, cons +@@ -648,6 +713,7 @@ rpmRC packageBinaries(rpmSpec spec, cons Package pkg; char *pkglist = NULL; @@ -72,9 +80,9 @@ for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { char *fn; ---- ./build/parseChangelog.c.orig 2012-11-18 08:21:06.000000000 +0000 -+++ ./build/parseChangelog.c 2013-07-12 11:59:37.000000000 +0000 -@@ -183,6 +183,11 @@ static rpmRC addChangelog(Header h, ARGV +--- ./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 goto exit; } ++++++ rpmpopt.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:22.374017234 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:22.374017234 +0100 @@ -1,6 +1,6 @@ ---- ./rpmpopt.in.orig 2017-02-16 09:40:09.969649413 +0000 -+++ ./rpmpopt.in 2017-07-05 14:13:49.599735022 +0000 -@@ -100,12 +100,16 @@ Relocations : %|PREFIXES?{[%{PREFIXES} ] +--- ./rpmpopt.in.orig 2017-12-01 14:58:11.404041985 +0000 ++++ ./rpmpopt.in 2017-12-01 14:59:06.275882759 +0000 +@@ -101,7 +101,8 @@ Relocations : %|PREFIXES?{[%{PREFIXES} ] %|URL?{URL : %{URL}\n}|\ %|BUGURL?{Bug URL : %{BUGURL}\n}|\ Summary : %{SUMMARY}\n\ @@ -10,11 +10,3 @@ --POPTdesc=$"list descriptive information from package(s)" rpm alias --changelog --qf '[* %{CHANGELOGTIME:day} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]' \ - --POPTdesc=$"list change logs for this package" - -+rpm alias --changes --qf '[* %{CHANGELOGTIME:date} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]' \ -+ --POPTdesc=$"list changes for this package with full time stamps" -+ - rpm alias --xml --qf '[%{*:xml}\n]' \ - --POPTdesc=$"list metadata in xml" - ++++++ rpmqpack.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:22.386016671 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:22.390016485 +0100 @@ -1,9 +1,6 @@ -Provide rpmqpack, a fast way to list all installed packages are -check if some package is installed. This is a hack. - ---- ./Makefile.am.orig 2011-05-11 14:27:32.000000000 +0000 -+++ ./Makefile.am 2011-05-11 15:15:27.000000000 +0000 -@@ -170,6 +170,10 @@ rpmgraph_LDADD = lib/librpm.la rpmio/lib +--- ./Makefile.am.orig 2017-12-01 15:04:09.723014378 +0000 ++++ ./Makefile.am 2017-12-01 15:04:13.396003910 +0000 +@@ -187,6 +187,10 @@ rpmgraph_LDADD = lib/librpm.la rpmio/lib dist_bin_SCRIPTS = scripts/gendiff @@ -14,19 +11,19 @@ rpmconfig_DATA = rpmrc rpmrc: $(top_srcdir)/rpmrc.in @$(SED) \ ---- ./doc/Makefile.am.orig 2011-01-05 08:11:09.000000000 +0000 -+++ ./doc/Makefile.am 2011-05-11 15:16:24.000000000 +0000 +--- ./doc/Makefile.am.orig 2017-12-01 15:04:13.397003907 +0000 ++++ ./doc/Makefile.am 2017-12-01 15:04:42.681920389 +0000 @@ -8,7 +8,7 @@ EXTRA_DIST += $(man_man1_DATA) man_man8dir = $(mandir)/man8 - man_man8_DATA = rpm.8 rpmbuild.8 rpmdeps.8 rpmgraph.8 rpm2cpio.8 + man_man8_DATA = rpm.8 rpm-misc.8 rpmbuild.8 rpmdeps.8 rpmgraph.8 rpm2cpio.8 -man_man8_DATA += rpmdb.8 rpmkeys.8 rpmsign.8 rpmspec.8 +man_man8_DATA += rpmdb.8 rpmkeys.8 rpmsign.8 rpmspec.8 rpmqpack.8 + man_man8_DATA += rpm-plugin-systemd-inhibit.8 EXTRA_DIST += $(man_man8_DATA) - man_fr_man8dir = $(mandir)/fr/man8 ---- ./doc/rpmqpack.8.orig 2011-05-11 15:15:27.000000000 +0000 -+++ ./doc/rpmqpack.8 2011-05-11 15:15:27.000000000 +0000 +--- ./doc/rpmqpack.8.orig 2017-12-01 15:04:13.397003907 +0000 ++++ ./doc/rpmqpack.8 2017-12-01 15:04:13.397003907 +0000 @@ -0,0 +1,25 @@ +.TH RPMQPACK 8 "Mar 2002" +.SH NAME @@ -53,8 +50,8 @@ + +.SH AUTHOR +Michael Schroeder <[email protected]> ---- ./rpmqpack.c.orig 2011-05-11 15:15:27.000000000 +0000 -+++ ./rpmqpack.c 2011-05-11 15:15:27.000000000 +0000 +--- ./rpmqpack.c.orig 2017-12-01 15:04:13.398003904 +0000 ++++ ./rpmqpack.c 2017-12-01 15:04:13.398003904 +0000 @@ -0,0 +1,59 @@ +#include <sys/types.h> +#include <limits.h> ++++++ rpmrc.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:22.406015736 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:22.406015736 +0100 @@ -1,5 +1,5 @@ ---- ./rpmrc.in.orig 2016-10-21 09:44:00.345962071 +0000 -+++ ./rpmrc.in 2017-01-19 12:52:53.018348891 +0000 +--- ./rpmrc.in.orig 2017-10-05 10:04:57.571602038 +0000 ++++ ./rpmrc.in 2017-12-01 15:03:23.956144776 +0000 @@ -12,16 +12,16 @@ # "fat" binary with both archs, for Darwin optflags: fat -O2 -g -arch i386 -arch ppc @@ -54,7 +54,7 @@ optflags: hppa1.0 -O2 -g -mpa-risc-1-0 optflags: hppa1.1 -O2 -g -mpa-risc-1-0 optflags: hppa1.2 -O2 -g -mpa-risc-1-0 -@@ -74,10 +75,10 @@ optflags: armv4tl -O2 -g -march=armv4t +@@ -75,10 +76,10 @@ optflags: armv5tl -O2 -g -march=armv5t optflags: armv5tel -O2 -g -march=armv5te optflags: armv5tejl -O2 -g -march=armv5te optflags: armv6l -O2 -g -march=armv6 @@ -67,7 +67,7 @@ optflags: armv7hnl -O2 -g -march=armv7-a -mfloat-abi=hard -mfpu=neon optflags: m68k -O2 -g -fomit-frame-pointer -@@ -90,8 +91,8 @@ optflags: atariclone -O2 -g -fomit-frame +@@ -91,8 +92,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 -@@ -286,17 +287,17 @@ os_canon: MacOSX: macosx 21 +@@ -288,17 +289,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 -@@ -318,6 +319,7 @@ buildarchtranslate: sparc64v: sparc64 +@@ -320,6 +321,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 -@@ -378,6 +380,15 @@ buildarchtranslate: aarch64: aarch64 +@@ -381,6 +383,15 @@ buildarchtranslate: aarch64: aarch64 buildarchtranslate: riscv: riscv64 buildarchtranslate: riscv64: riscv64 @@ -128,7 +128,7 @@ ############################################################# # Architecture compatibility -@@ -442,14 +453,20 @@ arch_compat: mips64r6el: mipsr6el +@@ -445,15 +456,21 @@ arch_compat: mips64r6el: mipsr6el arch_compat: hppa2.0: hppa1.2 arch_compat: hppa1.2: hppa1.1 arch_compat: hppa1.1: hppa1.0 @@ -142,16 +142,17 @@ arch_compat: armv4b: noarch +arch_compat: armv7hl: armv7l arch_compat: armv7l: armv6l - arch_compat: armv6l: armv5tejl +arch_compat: armv6hl: armv6l + arch_compat: armv6l: armv5tejl arch_compat: armv5tejl: armv5tel --arch_compat: armv5tel: armv4tl -+arch_compat: armv5tel: armv5l + arch_compat: armv5tel: armv5tl +-arch_compat: armv5tl: armv4tl ++arch_compat: armv5tl: armv5l +arch_compat: armv5l: armv4tl arch_compat: armv4tl: armv4l arch_compat: armv4l: armv3l arch_compat: armv3l: noarch -@@ -471,7 +488,7 @@ arch_compat: i370: noarch +@@ -475,7 +492,7 @@ arch_compat: i370: noarch arch_compat: s390: noarch arch_compat: s390x: s390 noarch @@ -160,7 +161,7 @@ arch_compat: x86_64: amd64 em64t athlon noarch arch_compat: amd64: x86_64 em64t athlon noarch -@@ -574,7 +591,9 @@ buildarch_compat: mips64r6: noarch +@@ -578,7 +595,9 @@ buildarch_compat: mips64r6: noarch buildarch_compat: mips64r6el: noarch buildarch_compat: armv4b: noarch @@ -168,9 +169,9 @@ buildarch_compat: armv7l: armv6l +buildarch_compat: armv6hl: armv6l buildarch_compat: armv6l: armv5tejl - buildarch_compat: armv5tejl: armv5tel - buildarch_compat: armv5tel: armv4tl -@@ -589,7 +608,8 @@ buildarch_compat: armv6hl: noarch + buildarch_compat: armv5tejl: armv5tel armv5tl + buildarch_compat: armv5tel: armv4tl armv5tl +@@ -594,7 +613,8 @@ buildarch_compat: armv6hl: noarch buildarch_compat: hppa2.0: hppa1.2 buildarch_compat: hppa1.2: hppa1.1 buildarch_compat: hppa1.1: hppa1.0 ++++++ suspendlock.diff ++++++ --- /var/tmp/diff_new_pack.HFyao4/_old 2018-01-13 21:33:22.458013301 +0100 +++ /var/tmp/diff_new_pack.HFyao4/_new 2018-01-13 21:33:22.458013301 +0100 @@ -2,9 +2,9 @@ read access in scriptlets. Only needed for DB_PRIVATE (aka global) locking. ---- ./lib/backend/db3.c.orig 2017-01-19 15:31:32.166569447 +0000 -+++ ./lib/backend/db3.c 2017-01-19 15:32:29.239335811 +0000 -@@ -541,6 +541,46 @@ static void db3_dbSetFSync(rpmdb rdb, in +--- ./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 +@@ -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-01-19 15:31:32.166569447 +0000 -+++ ./lib/backend/dbi.h 2017-01-19 15:31:34.816559478 +0000 +--- ./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 @@ -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-01-19 15:31:32.162569461 +0000 -+++ ./lib/rpmdb.c 2017-01-19 15:31:34.817559474 +0000 -@@ -2706,6 +2706,12 @@ int rpmdbCtrl(rpmdb db, rpmdbCtrlOp ctrl +--- ./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 case RPMDB_CTRL_INDEXSYNC: dbctrl = DB_CTRL_INDEXSYNC; break; @@ -79,8 +79,8 @@ } return dbctrl ? dbCtrl(db, dbctrl) : 1; } ---- ./lib/rpmdb.h.orig 2016-10-03 08:08:36.582686286 +0000 -+++ ./lib/rpmdb.h 2017-01-19 15:31:34.818559471 +0000 +--- ./lib/rpmdb.h.orig 2017-10-05 10:04:57.035602138 +0000 ++++ ./lib/rpmdb.h 2017-12-01 14:27:23.748426197 +0000 @@ -35,7 +35,9 @@ typedef enum rpmdbCtrlOp_e { RPMDB_CTRL_UNLOCK_RO = 2, RPMDB_CTRL_LOCK_RW = 3, @@ -92,15 +92,17 @@ } rpmdbCtrlOp; /** \ingroup rpmdb ---- ./lib/transaction.c.orig 2016-10-21 09:44:00.309962086 +0000 -+++ ./lib/transaction.c 2017-01-19 15:31:34.818559471 +0000 -@@ -1425,15 +1425,18 @@ rpmRC runScript(rpmts ts, rpmte te, ARGV +--- ./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); + rpmdb rdb = rpmtsGetRdb(ts); - sfd = rpmtsNotify(ts, te, RPMCALLBACK_SCRIPT_START, stag, 0); + /* Fake up a transaction element for triggers from rpmdb */ + if (te == NULL) { +@@ -1468,10 +1469,12 @@ rpmRC runScript(rpmts ts, rpmte te, Head if (sfd == NULL) sfd = rpmtsScriptFd(ts); ++++++ transfiletriggerpostun.diff ++++++ 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) &&
