From 4602b28d81f75428174c563b9031ae25bc89ea5243b3d5c4e460e3d03928fb13 Mon Sep 17 00:00:00 2001 From: Olaf Hering Date: Tue, 6 Dec 2022 20:43:05 +0000 Subject: [PATCH] - Trim "PROVIDES" from source rpms (#59, bsc#1205998) OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/build-compare?expand=0&rev=300 --- build-compare.changes | 5 +++++ build-compare.spec | 2 +- functions.sh | 22 ++++++++++++++++++++-- same-build-result.sh | 2 +- 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/build-compare.changes b/build-compare.changes index 1f5eaa7..deb4318 100644 --- a/build-compare.changes +++ b/build-compare.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Nov 25 23:51:35 UTC 2022 - Stefan Brüns + +- Trim "PROVIDES" from source rpms (#59, bsc#1205998) + ------------------------------------------------------------------- Mon Sep 19 08:02:40 UTC 2022 - Dirk Müller diff --git a/build-compare.spec b/build-compare.spec index 8ca15d1..a649ea9 100644 --- a/build-compare.spec +++ b/build-compare.spec @@ -17,7 +17,7 @@ Name: build-compare -Version: 20220926T095347.40c240f +Version: 20221206T204012.bb70754 Release: 0 Summary: Build Result Compare Script License: GPL-2.0-or-later diff --git a/functions.sh b/functions.sh index f8e2684..266755e 100644 --- a/functions.sh +++ b/functions.sh @@ -122,6 +122,8 @@ QF_FILELIST="[%{FILENAMES} %{FILEFLAGS} %{FILESTATES} %{FILEMODES:octal} %{FILEU QF_CHECKSUM="[%{FILENAMES} %{FILEMD5S} %{FILEFLAGS}\n]\\n" +QF_SOURCERPM="%{SOURCERPM}\\n" + QF_ALL="\n___QF_NAME___\n${QF_NAME}\n___QF_NAME___\n" QF_ALL="$QF_ALL\n___QF_TAGS___\n${QF_TAGS}\n___QF_TAGS___\n" QF_ALL="$QF_ALL\n___QF_VER_REL___\n${QF_VER_REL}\n___QF_VER_REL___\n" @@ -130,6 +132,7 @@ QF_ALL="$QF_ALL\n___QF_PROVIDES___\n${QF_PROVIDES}\n___QF_PROVIDES___\n" QF_ALL="$QF_ALL\n___QF_SCRIPT___\n${QF_SCRIPT}\n___QF_SCRIPT___\n" QF_ALL="$QF_ALL\n___QF_FILELIST___\n${QF_FILELIST}\n___QF_FILELIST___\n" QF_ALL="$QF_ALL\n___QF_CHECKSUM___\n${QF_CHECKSUM}\n___QF_CHECKSUM___\n" +QF_ALL="$QF_ALL\n___QF_SOURCERPM___\n${QF_SOURCERPM}\n___QF_SOURCERPM___\n" } check_header() @@ -286,6 +289,17 @@ function set_regex() { name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.} } +# Trim a block starting with a keyword and ending with an empty line +# $1: enable +# $2: keyword +function trim_section() { + if test "${1}" -gt 0 ; then + sed -e "/^${2}$/,/^$/d" + else + cat + fi +} + # Compare just the rpm meta data of two rpms # Returns: # 0 in case of same content @@ -365,8 +379,12 @@ function cmp_rpm_meta () esac fi - get_value QF_PROVIDES $rpm_meta_old | trim_release_old | sort > $file1 - get_value QF_PROVIDES $rpm_meta_new | trim_release_new | sort > $file2 + # Built packages provide the sourcerpm, for the sourcerpm itself it is "(none)" + [ "x$(get_value QF_SOURCERPM $rpm_meta_new)" == "x(none)" ] && is_sourcerpm=1 || is_sourcerpm=0 + + # FIXME: PROVIDE needs to be handled independent from the other tags + get_value QF_PROVIDES $rpm_meta_old | trim_section ${is_sourcerpm} 'PROVIDE' | trim_release_old | sort > $file1 + get_value QF_PROVIDES $rpm_meta_new | trim_section ${is_sourcerpm} 'PROVIDE' | trim_release_new | sort > $file2 if ! comp_file PROVIDES $file1 $file2 $rpm_meta_old $rpm_meta_new; then rm -rf "$tmpdir" return 1 diff --git a/same-build-result.sh b/same-build-result.sh index b1d05d0..df212b0 100644 --- a/same-build-result.sh +++ b/same-build-result.sh @@ -95,7 +95,7 @@ if test ! -f "$nsrpm"; then fi echo "compare $osrpm $nsrpm" -if bash $SCMPSCRIPT "$osrpm" "$nsrpm" +if bash $SCMPSCRIPT $check_all "$osrpm" "$nsrpm" then : src.rpm identical else