From 6786d1b5e6f2280944acf2551eb6f919d1e3067e Mon Sep 17 00:00:00 2001 From: panxiaohe Date: Fri, 26 Mar 2021 17:23:47 +0800 Subject: [PATCH] delete unused patches and fix dependency --- ...ists-before-calling-genCpioAndHeader.patch | 256 ------------------ backport-Handle-XZ-in-uncompress-macro.patch | 27 -- rpm.spec | 11 +- 3 files changed, 9 insertions(+), 285 deletions(-) delete mode 100644 Generate-digest-lists-before-calling-genCpioAndHeader.patch delete mode 100644 backport-Handle-XZ-in-uncompress-macro.patch diff --git a/Generate-digest-lists-before-calling-genCpioAndHeader.patch b/Generate-digest-lists-before-calling-genCpioAndHeader.patch deleted file mode 100644 index 488c7c2..0000000 --- a/Generate-digest-lists-before-calling-genCpioAndHeader.patch +++ /dev/null @@ -1,256 +0,0 @@ -From 6b50298b38da203d4402855bf0caea61bcc5e8d6 Mon Sep 17 00:00:00 2001 -From: Roberto Sassu -Date: Wed, 12 Aug 2020 18:23:42 +0200 -Subject: [PATCH] Generate digest lists before calling genCpioListAndHeader() - ---- - build/files.c | 184 ++++++++++++++++++++++++++++++++++++++++---------- - 1 file changed, 148 insertions(+), 36 deletions(-) - -diff --git a/build/files.c b/build/files.c -index ab6938d8c..454ce23bf 100644 ---- a/build/files.c -+++ b/build/files.c -@@ -987,19 +987,149 @@ static int seenHardLink(FileRecords files, FileListRec flp, rpm_ino_t *fileid) - * @param pkg (sub) package - * @param isSrc pass 1 for source packages 0 otherwise - */ --static void genCpioListAndHeader(FileList fl, Package pkg, int isSrc) -+static void genDigestListInput(FileList fl, Package pkg, int isSrc) - { - FileListRec flp; - char buf[BUFSIZ]; - char file_info[BUFSIZ]; - char file_digest[128 * 2 + 1]; -+ int i; -+ uint32_t defaultalgo = PGPHASHALGO_MD5, digestalgo; -+ Header h = pkg->header; /* just a shortcut */ -+ -+ /* -+ * See if non-md5 file digest algorithm is requested. If not -+ * specified, quietly assume md5. Otherwise check if supported type. -+ */ -+ digestalgo = rpmExpandNumeric(isSrc ? "%{_source_filedigest_algorithm}" : -+ "%{_binary_filedigest_algorithm}"); -+ if (digestalgo == 0) { -+ digestalgo = defaultalgo; -+ } -+ -+ if (rpmDigestLength(digestalgo) == 0) { -+ rpmlog(RPMLOG_WARNING, -+ _("Unknown file digest algorithm %u, falling back to MD5\n"), -+ digestalgo); -+ digestalgo = defaultalgo; -+ } -+ -+ /* Sort the big list */ -+ if (fl->files.recs) { -+ qsort(fl->files.recs, fl->files.used, -+ sizeof(*(fl->files.recs)), compareFileListRecs); -+ } -+ -+ /* Generate the header. */ -+ for (i = 0, flp = fl->files.recs; i < fl->files.used; i++, flp++) { -+ /* Merge duplicate entries. */ -+ while (i < (fl->files.used - 1) && -+ rstreq(flp->cpioPath, flp[1].cpioPath)) { -+ -+ /* Two entries for the same file found, merge the entries. */ -+ /* Note that an %exclude is a duplication of a file reference */ -+ -+ /* file flags */ -+ flp[1].flags |= flp->flags; -+ -+ if (!(flp[1].flags & RPMFILE_EXCLUDE)) -+ rpmlog(RPMLOG_WARNING, _("File listed twice: %s\n"), -+ flp->cpioPath); -+ -+ /* file mode */ -+ if (S_ISDIR(flp->fl_mode)) { -+ if ((flp[1].specdFlags & (SPECD_DIRMODE | SPECD_DEFDIRMODE)) < -+ (flp->specdFlags & (SPECD_DIRMODE | SPECD_DEFDIRMODE))) -+ flp[1].fl_mode = flp->fl_mode; -+ } else { -+ if ((flp[1].specdFlags & (SPECD_FILEMODE | SPECD_DEFFILEMODE)) < -+ (flp->specdFlags & (SPECD_FILEMODE | SPECD_DEFFILEMODE))) -+ flp[1].fl_mode = flp->fl_mode; -+ } -+ -+ /* uid */ -+ if ((flp[1].specdFlags & (SPECD_UID | SPECD_DEFUID)) < -+ (flp->specdFlags & (SPECD_UID | SPECD_DEFUID))) -+ { -+ flp[1].fl_uid = flp->fl_uid; -+ flp[1].uname = flp->uname; -+ } -+ -+ /* gid */ -+ if ((flp[1].specdFlags & (SPECD_GID | SPECD_DEFGID)) < -+ (flp->specdFlags & (SPECD_GID | SPECD_DEFGID))) -+ { -+ flp[1].fl_gid = flp->fl_gid; -+ flp[1].gname = flp->gname; -+ } -+ -+ /* verify flags */ -+ if ((flp[1].specdFlags & (SPECD_VERIFY | SPECD_DEFVERIFY)) < -+ (flp->specdFlags & (SPECD_VERIFY | SPECD_DEFVERIFY))) -+ flp[1].verifyFlags = flp->verifyFlags; -+ -+ /* XXX to-do: language */ -+ -+ flp++; i++; -+ } -+ -+ /* Skip files that were marked with %exclude. */ -+ if (flp->flags & RPMFILE_EXCLUDE) -+ { -+ argvAdd(&pkg->fileExcludeList, flp->cpioPath); -+ continue; -+ } -+ -+ buf[0] = '\0'; -+ if (S_ISREG(flp->fl_mode) && !(flp->flags & RPMFILE_GHOST)) -+ (void) rpmDoDigest(digestalgo, flp->diskPath, 1, -+ (unsigned char *)buf); -+ headerPutString(h, RPMTAG_FILEDIGESTS, buf); -+ snprintf(file_digest, sizeof(file_digest), "%s", buf); -+ -+ if (check_fileList_bin_pkg && S_ISREG(flp->fl_mode) && -+ !(flp->flags & RPMFILE_GHOST)) { -+ appendStringBuf(check_fileList_bin_pkg, "path="); -+ appendStringBuf(check_fileList_bin_pkg, flp->diskPath); -+ snprintf(file_info, sizeof(file_info), -+ "|digestalgopgp=%d|digest=%s|mode=%d" -+ "|uname=%s|gname=%s|caps=%s\n", -+ digestalgo, file_digest, flp->fl_mode, -+ rpmstrPoolStr(fl->pool, flp->uname), -+ rpmstrPoolStr(fl->pool, flp->gname), flp->caps && -+ strlen(flp->caps) ? flp->caps : ""); -+ appendStringBuf(check_fileList_bin_pkg, file_info); -+ } -+ } -+ -+ if (genDigestList(pkg->header, fl, check_fileList_bin_pkg) > 0) -+ fl->processingFailed = 1; -+} -+ -+/** -+ * Add file entries to header. -+ * @todo Should directories have %doc/%config attributes? (#14531) -+ * @todo Remove RPMTAG_OLDFILENAMES, add dirname/basename instead. -+ * @param fl package file tree walk data -+ * @param pkg (sub) package -+ * @param isSrc pass 1 for source packages 0 otherwise -+ */ -+static void genCpioListAndHeader(FileList fl, Package pkg, int isSrc) -+{ -+ FileListRec flp; -+ char buf[BUFSIZ]; - int i, npaths = 0; - uint32_t defaultalgo = PGPHASHALGO_MD5, digestalgo; - rpm_loff_t totalFileSize = 0; - Header h = pkg->header; /* just a shortcut */ -- int override_date = 0, processed = 0; -+ int override_date = 0; - time_t source_date_epoch; - char *srcdate = getenv("SOURCE_DATE_EPOCH"); -+ struct rpmtd_s oldfiledigests; -+ -+ headerGet(h, RPMTAG_FILEDIGESTS, &oldfiledigests, HEADERGET_ALLOC); -+ headerDel(h, RPMTAG_FILEDIGESTS); -+ rpmtdInit(&oldfiledigests); - - /* Limit the maximum date to SOURCE_DATE_EPOCH if defined - * similar to the tar --clamp-mtime option -@@ -1067,9 +1197,8 @@ static void genCpioListAndHeader(FileList fl, Package pkg, int isSrc) - - pkg->dpaths = xmalloc((fl->files.used + 1) * sizeof(*pkg->dpaths)); - --process_files: - /* Generate the header. */ -- for (i = processed, flp = fl->files.recs + processed; i < fl->files.used; i++, flp++) { -+ for (i = 0, flp = fl->files.recs; i < fl->files.used; i++, flp++) { - rpm_ino_t fileid = flp - fl->files.recs; - - /* Merge duplicate entries. */ -@@ -1194,13 +1323,17 @@ process_files: - if (fl->haveCaps) { - headerPutString(h, RPMTAG_FILECAPS, flp->caps); - } -- -+ - buf[0] = '\0'; -- if (S_ISREG(flp->fl_mode) && !(flp->flags & RPMFILE_GHOST)) -- (void) rpmDoDigest(digestalgo, flp->diskPath, 1, -- (unsigned char *)buf); -- headerPutString(h, RPMTAG_FILEDIGESTS, buf); -- snprintf(file_digest, sizeof(file_digest), "%s", buf); -+ if (strstr(flp->diskPath, DIGEST_LIST_DIR) || !oldfiledigests.count) { -+ if (S_ISREG(flp->fl_mode) && !(flp->flags & RPMFILE_GHOST)) -+ (void) rpmDoDigest(digestalgo, flp->diskPath, 1, -+ (unsigned char *)buf); -+ headerPutString(h, RPMTAG_FILEDIGESTS, buf); -+ } else { -+ headerPutString(h, RPMTAG_FILEDIGESTS, -+ rpmtdNextString(&oldfiledigests)); -+ } - - buf[0] = '\0'; - if (S_ISLNK(flp->fl_mode)) { -@@ -1241,33 +1374,7 @@ process_files: - flp->flags &= PARSEATTR_MASK; - - headerPutUint32(h, RPMTAG_FILEFLAGS, &(flp->flags) ,1); -- -- if (!processed && check_fileList_bin_pkg && S_ISREG(flp->fl_mode) && -- !(flp->flags & RPMFILE_GHOST)) { -- appendStringBuf(check_fileList_bin_pkg, "path="); -- appendStringBuf(check_fileList_bin_pkg, flp->diskPath); -- snprintf(file_info, sizeof(file_info), -- "|digestalgopgp=%d|digest=%s|mode=%d" -- "|uname=%s|gname=%s|caps=%s\n", -- digestalgo, file_digest, flp->fl_mode, -- rpmstrPoolStr(fl->pool, flp->uname), -- rpmstrPoolStr(fl->pool, flp->gname), flp->caps && -- strlen(flp->caps) ? flp->caps : ""); -- appendStringBuf(check_fileList_bin_pkg, file_info); -- } -- } -- -- if (!processed) { -- if (genDigestList(pkg->header, fl, check_fileList_bin_pkg) > 0) { -- fl->processingFailed = 1; -- } else if (i < fl->files.used) { -- pkg->dpaths = xrealloc(pkg->dpaths, -- (fl->files.used + 1) * sizeof(*pkg->dpaths)); -- processed = i; -- goto process_files; -- } - } -- - pkg->dpaths[npaths] = NULL; - - if (totalFileSize < UINT32_MAX) { -@@ -1306,6 +1413,7 @@ process_files: - /* Binary packages with dirNames cannot be installed by legacy rpm. */ - (void) rpmlibNeedsFeature(pkg, "CompressedFileNames", "3.0.4-1"); - } -+ rpmtdFreeData(&oldfiledigests); - } - - static FileRecords FileRecordsFree(FileRecords files) -@@ -2776,6 +2884,10 @@ static rpmRC processPackageFiles(rpmSpec spec, rpmBuildPkgFlags pkgFlags, - if (checkHardLinks(&fl.files)) - (void) rpmlibNeedsFeature(pkg, "PartialHardlinkSets", "4.0.4-1"); - -+ genDigestListInput(&fl, pkg, 0); -+ if (fl.processingFailed) -+ goto exit; -+ - genCpioListAndHeader(&fl, pkg, 0); - - exit: --- -2.27.GIT - diff --git a/backport-Handle-XZ-in-uncompress-macro.patch b/backport-Handle-XZ-in-uncompress-macro.patch deleted file mode 100644 index 2e95ce9..0000000 --- a/backport-Handle-XZ-in-uncompress-macro.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3d63df622037796279514a4da3ddc6807a102c1d Mon Sep 17 00:00:00 2001 -From: Panu Matilainen -Date: Fri, 27 Mar 2009 14:11:43 +0200 -Subject: [PATCH] Handle XZ in %uncompress macro - should've been in commit - 8078d0ba24662308b10d9eb0f0da978584b7e757 - ---- - rpmio/macro.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/rpmio/macro.c b/rpmio/macro.c -index c55b9e2..32eb6ec 100644 ---- a/rpmio/macro.c -+++ b/rpmio/macro.c -@@ -981,6 +981,9 @@ doFoo(MacroBuf mb, int negate, const char * f, size_t fn, - case COMPRESSED_LZMA: - sprintf(be, "%%__lzma -dc %s", b); - break; -+ case COMPRESSED_XZ: -+ sprintf(be, "%%__xz -dc %s", b); -+ break; - } - b = be; - } else if (STREQ("getenv", f, fn)) { --- -1.8.3.1 - diff --git a/rpm.spec b/rpm.spec index 8ea3587..9eb6ae2 100644 --- a/rpm.spec +++ b/rpm.spec @@ -1,6 +1,6 @@ Name: rpm Version: 4.15.1 -Release: 22 +Release: 23 Summary: RPM Package Manager License: GPLv2+ URL: http://www.rpm.org/ @@ -83,7 +83,7 @@ BuildRequires: zlib-devel libzstd-devel xz-devel bzip2-devel libarchive-devel im BuildRequires: dbus-devel fakechroot elfutils-devel elfutils-libelf-devel ima-evm-utils BuildRequires: lua-devel libcap-devel libacl-devel libselinux-devel file-devel gettext-devel ncurses-devel BuildRequires: system-rpm-config gdb dwz -Requires: coreutils popt curl zstd libcap gnupg2 crontabs logrotate %{name}-libs +Requires: coreutils popt curl zstd libcap gnupg2 crontabs logrotate Obsoletes: %{name}-build-libs %{name}-sign-libs %{name}-sign %{name}-cron Provides: %{name}-build-libs %{name}-sign-libs %{name}-sign %{name}-cron Obsoletes: %{name}-plugin-selinux %{name}-plugin-syslog %{name}-plugin-systemd-inhibit %{name}-plugin-ima %{name}-plugin-prioreset @@ -99,6 +99,7 @@ The RPM Package Manager (RPM) is a powerful package management system capability %package libs Summary: Shared library of rpm 4.15 +Requires: %{name} = %{version}-%{release} %description libs Shared library of rpm 4.15. @@ -344,6 +345,12 @@ make check || (cat tests/rpmtests.log; exit 0) %{_mandir}/man1/gendiff.1* %changelog +* Fri Mar 26 2021 panxiaohe - 4.15.1-23 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:delete unused patches and fix dependency + * Thu Mar 25 2021 Anakin Zhang - 4.15.1-22 - Type:bugfix - ID:NA