mirror of
https://git.yoctoproject.org/poky
synced 2026-07-16 15:57:04 +00:00
build-compare: 2015.02.10 -> 2019.08.14
* Removed the following patches which are already merged by upstream: 0001-Add-support-for-deb-and-ipk-packaging.patch Rename-rpm-check.sh-to-pkg-diff.sh.patch functions.sh-improve-deb-and-ipk-checking.patch functions.sh-remove-space-at-head.patch functions.sh-run-rpm-once-to-make-it-faster.patch pkg-diff.sh-check-for-fifo-named-pipe.patch pkg-diff.sh-check_single_file-return-at-once-when-sa.patch pkg-diff.sh-remove-space-in-the-end-for-ftype.patch * Rebased Ignore-DWARF-sections.patch This version is very outstanding when compare binary packages, e.g.: PRSERV_HOST = "localhost:0" INHERIT += "packagefeed-stability" PACKAGE_CLASSES = "package_ipk $ bitbake opkg $ find tmp/deploy/ipk >/tmp/ipk_1 Add a "bbnote 'hello'" to autotools.bbclass' autotools_do_configure. * BEFORE the upgrading, the result is: $ diff /tmp/ipk_1 /tmp/ipk_2 -Nur | diffstat ipk_2 | 1570 +++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 785 insertions(+), 785 deletions(-) * AFTER the upgrading, the result is: $ bitbake opkg $ find tmp/deploy/ipk >/tmp/ipk_2 $ diff /tmp/ipk_1 /tmp/ipk_2 -Nur No output And if we really modifed a recipe such as opkg, then it would show that it is changed. For a full world build AFTER the upgrading: $ diff /tmp/ipk_6 /tmp/ipk_7 -Nur | diffstat ipk_7 | 2090 +++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 1045 insertions(+), 1045 deletions(-) There are 10968 packages in totall, 1045 ones have been changed, so we can still improve it in the future. (From OE-Core rev: 4c77fdfc0b3b31105a4dfd1a4634f8464b52d933) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
2cd5daffe0
commit
35c8b87b1c
@@ -6,22 +6,14 @@ LICENSE = "GPLv2"
|
|||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
|
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
|
||||||
|
|
||||||
SRC_URI = "git://github.com/openSUSE/build-compare.git \
|
SRC_URI = "git://github.com/openSUSE/build-compare.git \
|
||||||
file://Rename-rpm-check.sh-to-pkg-diff.sh.patch;striplevel=1 \
|
|
||||||
file://Ignore-DWARF-sections.patch;striplevel=1 \
|
file://Ignore-DWARF-sections.patch;striplevel=1 \
|
||||||
file://0001-Add-support-for-deb-and-ipk-packaging.patch \
|
|
||||||
file://functions.sh-remove-space-at-head.patch \
|
|
||||||
file://functions.sh-run-rpm-once-to-make-it-faster.patch \
|
|
||||||
file://pkg-diff.sh-check-for-fifo-named-pipe.patch \
|
|
||||||
file://pkg-diff.sh-check_single_file-return-at-once-when-sa.patch \
|
|
||||||
file://pkg-diff.sh-remove-space-in-the-end-for-ftype.patch \
|
|
||||||
file://functions.sh-improve-deb-and-ipk-checking.patch \
|
|
||||||
"
|
"
|
||||||
|
|
||||||
# Date matches entry in build-compare.changes and date of SRCREV.
|
# Date matches entry in build-compare.changes and date of SRCREV.
|
||||||
#
|
#
|
||||||
SRCREV = "c5352c054c6ef15735da31b76d6d88620f4aff0a"
|
SRCREV = "4dfa207660776cae120afa4353aec7f1f2a998d2"
|
||||||
PE = "1"
|
PE = "1"
|
||||||
PV = "2015.02.10+git${SRCPV}"
|
PV = "2019.08.14+git${SRCPV}"
|
||||||
UPSTREAM_CHECK_COMMITS = "1"
|
UPSTREAM_CHECK_COMMITS = "1"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|||||||
-64
@@ -1,64 +0,0 @@
|
|||||||
From 02dbc7e3478e409d6f5e3e1c53daddf8838be999 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Paul Eggleton <paul.eggleton@linux.intel.com>
|
|
||||||
Date: Tue, 1 Sep 2015 12:04:33 +0100
|
|
||||||
Subject: [PATCH] Add support for deb and ipk packaging
|
|
||||||
|
|
||||||
Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10]
|
|
||||||
|
|
||||||
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
|
|
||||||
---
|
|
||||||
functions.sh | 15 +++++++++++++++
|
|
||||||
pkg-diff.sh | 6 ++++++
|
|
||||||
2 files changed, 21 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/functions.sh b/functions.sh
|
|
||||||
index 06079df..85c9003 100644
|
|
||||||
--- a/functions.sh
|
|
||||||
+++ b/functions.sh
|
|
||||||
@@ -85,6 +85,13 @@ function unpackage()
|
|
||||||
CPIO_OPTS="--extract --unconditional --preserve-modification-time --make-directories --quiet"
|
|
||||||
rpm2cpio $file | cpio ${CPIO_OPTS}
|
|
||||||
;;
|
|
||||||
+ *.ipk|*.deb)
|
|
||||||
+ ar x $file
|
|
||||||
+ tar xf control.tar.gz
|
|
||||||
+ rm control.tar.gz
|
|
||||||
+ tar xf data.tar.gz
|
|
||||||
+ rm data.tar.gz
|
|
||||||
+ ;;
|
|
||||||
esac
|
|
||||||
popd 1>/dev/null
|
|
||||||
}
|
|
||||||
@@ -255,4 +262,12 @@ function cmp_spec ()
|
|
||||||
rm $file1 $file2
|
|
||||||
return $RES
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+function adjust_controlfile() {
|
|
||||||
+ cat $1/control | sed '/^Version: /d' > $1/control.fixed
|
|
||||||
+ mv $1/control.fixed $1/control
|
|
||||||
+ cat $2/control | sed '/^Version: /d' > $2/control.fixed
|
|
||||||
+ mv $2/control.fixed $2/control
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
# vim: tw=666 ts=2 et
|
|
||||||
diff --git a/pkg-diff.sh b/pkg-diff.sh
|
|
||||||
index 0f1fa76..3cf10aa 100644
|
|
||||||
--- a/pkg-diff.sh
|
|
||||||
+++ b/pkg-diff.sh
|
|
||||||
@@ -138,6 +138,12 @@ echo "Extracting packages"
|
|
||||||
unpackage $oldpkg $dir/old
|
|
||||||
unpackage $newpkg $dir/new
|
|
||||||
|
|
||||||
+case $oldpkg in
|
|
||||||
+ *.deb|*.ipk)
|
|
||||||
+ adjust_controlfile $dir/old $dir/new
|
|
||||||
+ ;;
|
|
||||||
+esac
|
|
||||||
+
|
|
||||||
# files is set in cmp_spec for rpms, so if RES is empty we should assume
|
|
||||||
# it wasn't an rpm and pick all files for comparison.
|
|
||||||
if [ -z $RES ]; then
|
|
||||||
--
|
|
||||||
2.1.0
|
|
||||||
|
|
||||||
@@ -23,18 +23,15 @@ Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/pkg-diff.sh b/pkg-diff.sh
|
diff --git a/pkg-diff.sh b/pkg-diff.sh
|
||||||
index 56035c1..0f1fa76 100755
|
index 9c2125e..b0d77c8 100755
|
||||||
--- a/pkg-diff.sh
|
--- a/pkg-diff.sh
|
||||||
+++ b/pkg-diff.sh
|
+++ b/pkg-diff.sh
|
||||||
@@ -658,7 +658,7 @@ check_single_file()
|
@@ -851,7 +851,7 @@ check_single_file()
|
||||||
echo "" >$file1
|
echo "" >$file1
|
||||||
echo "" >$file2
|
echo "" >$file2
|
||||||
# Don't compare .build-id and .gnu_debuglink sections
|
# Don't compare .build-id, .gnu_debuglink and .gnu_debugdata sections
|
||||||
- sections="$(objdump -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" | tr "\n" " ")"
|
- sections="$($OBJDUMP -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" -e "\.gnu_debugdata" | tr "\n" " ")"
|
||||||
+ sections="$(objdump -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" -e "\.debug_abbrev" -e "\.debug_aranges" -e "\.debug_frame" -e "\.debug_info" -e "\.debug_line" -e "\.debug_loc" -e "\.debug_macinfo" -e "\.debug_pubnames" -e "\.debug_pubtypes" -e "\.debug_ranges" -e "\.debug_str" | tr "\n" " ")"
|
+ sections="$($OBJDUMP -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" -e "\.gnu_debugdata" -e "\.debug_abbrev" -e "\.debug_aranges" -e "\.debug_frame" -e "\.debug_info" -e "\.debug_line" -e "\.debug_loc" -e "\.debug_macinfo" -e "\.debug_pubnames" -e "\.debug_pubtypes" -e "\.debug_ranges" -e "\.debug_str" | tr "\n" " ")"
|
||||||
for section in $sections; do
|
for section in $sections; do
|
||||||
objdump -s -j $section old/$file | sed "s,^old/,," > $file1
|
$OBJDUMP -s -j $section old/$file | sed "s,^old/,," > $file1
|
||||||
objdump -s -j $section new/$file | sed "s,^new/,," > $file2
|
$OBJDUMP -s -j $section new/$file | sed "s,^new/,," > $file2
|
||||||
--
|
|
||||||
1.9.3
|
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
-117
@@ -1,117 +0,0 @@
|
|||||||
From b4eb7fde10318162bd2d02b9017ef51746752a91 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
Date: Thu, 14 Jul 2016 23:14:21 -0700
|
|
||||||
Subject: [PATCH 4/4] functions.sh: improve deb and ipk checking
|
|
||||||
|
|
||||||
* The deb and ipk's depends version string is like:
|
|
||||||
Depends: libc6 (>= 2.24)
|
|
||||||
Update trim_release_old and trim_release_new to match the bracket in
|
|
||||||
the end ")".
|
|
||||||
|
|
||||||
* The deb's data tarball now is .tar.xz, and ipk's is .tar.gz.
|
|
||||||
|
|
||||||
* Update adjust_controlfile() to make ituse trim_release_old and
|
|
||||||
trim_release_new.
|
|
||||||
|
|
||||||
Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10]
|
|
||||||
|
|
||||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
---
|
|
||||||
functions.sh | 45 ++++++++++++++++++++++++++++-----------------
|
|
||||||
1 file changed, 28 insertions(+), 17 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/functions.sh b/functions.sh
|
|
||||||
index aa572f9..fe493ba 100755
|
|
||||||
--- a/functions.sh
|
|
||||||
+++ b/functions.sh
|
|
||||||
@@ -78,7 +78,7 @@ check_header()
|
|
||||||
function trim_release_old()
|
|
||||||
{
|
|
||||||
sed -e "
|
|
||||||
- /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g}
|
|
||||||
+ /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\|$version_release_old_regex_l)\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g}
|
|
||||||
s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_old_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g
|
|
||||||
s/^ *//g
|
|
||||||
"
|
|
||||||
@@ -86,7 +86,7 @@ function trim_release_old()
|
|
||||||
function trim_release_new()
|
|
||||||
{
|
|
||||||
sed -e "
|
|
||||||
- /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g}
|
|
||||||
+ /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\|$version_release_new_regex_l)\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g}
|
|
||||||
s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_new_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g
|
|
||||||
s/^ *//g
|
|
||||||
"
|
|
||||||
@@ -133,8 +133,8 @@ function unpackage()
|
|
||||||
ar x $file
|
|
||||||
tar xf control.tar.gz
|
|
||||||
rm control.tar.gz
|
|
||||||
- tar xf data.tar.gz
|
|
||||||
- rm data.tar.gz
|
|
||||||
+ tar xf data.tar.[xg]z
|
|
||||||
+ rm data.tar.[xg]z
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
popd 1>/dev/null
|
|
||||||
@@ -164,6 +164,22 @@ function get_value()
|
|
||||||
sed -n -e "/^___${1}___/,/^___${1}___/p" $2 | sed -e "/^___${1}___/d"
|
|
||||||
}
|
|
||||||
|
|
||||||
+# Set version_release_old_regex_s, version_release_old_regex_l and
|
|
||||||
+# name_ver_rel_old_regex_l, also the new ones.
|
|
||||||
+function set_regex() {
|
|
||||||
+ # Remember to quote the . which is in release
|
|
||||||
+ # Short version without B_CN
|
|
||||||
+ version_release_old_regex_s=${version_release_old%.*}
|
|
||||||
+ version_release_old_regex_s=${version_release_old_regex_s//./\\.}
|
|
||||||
+ version_release_new_regex_s=${version_release_new%.*}
|
|
||||||
+ version_release_new_regex_s=${version_release_new_regex_s//./\\.}
|
|
||||||
+ # Long version with B_CNT
|
|
||||||
+ version_release_old_regex_l=${version_release_old//./\\.}
|
|
||||||
+ version_release_new_regex_l=${version_release_new//./\\.}
|
|
||||||
+ name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.}
|
|
||||||
+ name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.}
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
# Compare just the rpm meta data of two rpms
|
|
||||||
# Returns:
|
|
||||||
# 0 in case of same content
|
|
||||||
@@ -194,17 +210,7 @@ function cmp_spec ()
|
|
||||||
version_release_old="$(get_value QF_VER_REL $spec_old)"
|
|
||||||
name_ver_rel_old="$(get_value QF_NAME_VER_REL $spec_old)"
|
|
||||||
|
|
||||||
- # Remember to quote the . which is in release
|
|
||||||
- # Short version without B_CN
|
|
||||||
- version_release_old_regex_s=${version_release_old%.*}
|
|
||||||
- version_release_old_regex_s=${version_release_old_regex_s//./\\.}
|
|
||||||
- version_release_new_regex_s=${version_release_new%.*}
|
|
||||||
- version_release_new_regex_s=${version_release_new_regex_s//./\\.}
|
|
||||||
- # Long version with B_CNT
|
|
||||||
- version_release_old_regex_l=${version_release_old//./\\.}
|
|
||||||
- version_release_new_regex_l=${version_release_new//./\\.}
|
|
||||||
- name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.}
|
|
||||||
- name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.}
|
|
||||||
+ set_regex
|
|
||||||
|
|
||||||
# Check the whole spec file at first, return 0 immediately if the
|
|
||||||
# are the same.
|
|
||||||
@@ -285,9 +291,14 @@ function cmp_spec ()
|
|
||||||
}
|
|
||||||
|
|
||||||
function adjust_controlfile() {
|
|
||||||
- cat $1/control | sed '/^Version: /d' > $1/control.fixed
|
|
||||||
+ version_release_old="`sed -ne 's/^Version: \(.*\)/\1/p' $1/control`"
|
|
||||||
+ name_ver_rel_old="`sed -n -e 's/^Package: \(.*\)/\1/p' $1/control`-`sed -n -e 's/^Version: \(.*\)/\1/p' $1/control`"
|
|
||||||
+ version_release_new="`sed -ne 's/^Version: \(.*\)/\1/p' $2/control`"
|
|
||||||
+ name_ver_rel_new="`sed -n -e 's/^Package: \(.*\)/\1/p' $2/control`-`sed -n -e 's/^Version: \(.*\)/\1/p' $2/control`"
|
|
||||||
+ set_regex
|
|
||||||
+ cat $1/control | trim_release_old > $1/control.fixed
|
|
||||||
mv $1/control.fixed $1/control
|
|
||||||
- cat $2/control | sed '/^Version: /d' > $2/control.fixed
|
|
||||||
+ cat $2/control | trim_release_new > $2/control.fixed
|
|
||||||
mv $2/control.fixed $2/control
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.9.0
|
|
||||||
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
From 402a821e604f280e62c34bf4d40c6d1b4c6c892d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
Date: Mon, 4 Jul 2016 20:11:33 -0700
|
|
||||||
Subject: [PATCH] functions.sh: remove space at head
|
|
||||||
|
|
||||||
The command like:
|
|
||||||
rpm -qp --nodigest --nosignature --qf '<foo> [%{REQUIRENAME}\n]\n'
|
|
||||||
^^space
|
|
||||||
|
|
||||||
The space will be printed, and will impact the check result, so remove it.
|
|
||||||
|
|
||||||
Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/9]
|
|
||||||
|
|
||||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
---
|
|
||||||
functions.sh | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/functions.sh b/functions.sh
|
|
||||||
index 85c9003..b1069d2 100644
|
|
||||||
--- a/functions.sh
|
|
||||||
+++ b/functions.sh
|
|
||||||
@@ -26,6 +26,7 @@ function trim_release_old()
|
|
||||||
sed -e "
|
|
||||||
/\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g}
|
|
||||||
s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_old_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g
|
|
||||||
+ s/^ *//g
|
|
||||||
"
|
|
||||||
}
|
|
||||||
function trim_release_new()
|
|
||||||
@@ -33,6 +34,7 @@ function trim_release_new()
|
|
||||||
sed -e "
|
|
||||||
/\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g}
|
|
||||||
s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_new_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g
|
|
||||||
+ s/^ *//g
|
|
||||||
"
|
|
||||||
}
|
|
||||||
# Get single directory or filename with long or short release string
|
|
||||||
--
|
|
||||||
2.9.0
|
|
||||||
|
|
||||||
-361
@@ -1,361 +0,0 @@
|
|||||||
From f34d632c427b1e1570ef9136454fc01d8c9f10a6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
Date: Thu, 7 Jul 2016 19:34:09 -0700
|
|
||||||
Subject: [PATCH] functions.sh: run rpm once to make it faster
|
|
||||||
|
|
||||||
The rpm tool is a heavy process, it ran 16 (or 17 for kernel)
|
|
||||||
"rpm -qp" times when the pkgs are identical, now we only run
|
|
||||||
"rpm -qp --qf <all we need>" twice (one is for old pkg, and one is for
|
|
||||||
new), save the results to spec_old and spec_new, then use sed command to
|
|
||||||
get what we need later, this can make it 75% faster when the pkgs are
|
|
||||||
identical. Here is the rough data on my host Ubuntu 14.04.4, 32 cores
|
|
||||||
CPU and 128G mem:
|
|
||||||
* When the pkgs are identical:
|
|
||||||
- Before the patch: 1s
|
|
||||||
- After the patch: 0.26s
|
|
||||||
I compare the whole spec firstly, and return 0 if they are the same,
|
|
||||||
or go on checking one by one if not, without this, it would be 0.46s,
|
|
||||||
the gain is great when there are lot of packages, usually, we have
|
|
||||||
more than 10,000 rpms to compare.
|
|
||||||
|
|
||||||
* When the pkgs are different:
|
|
||||||
That depends on where is the different, if the different is at the
|
|
||||||
comparing rpmtags stage:
|
|
||||||
- Before the patch: 0.26s
|
|
||||||
- After the patch: 0.29s
|
|
||||||
Increased 0.03s, but if the different is happend later than comparing
|
|
||||||
rpmtags, it will save time.
|
|
||||||
|
|
||||||
Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/9]
|
|
||||||
|
|
||||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
---
|
|
||||||
functions.sh | 245 ++++++++++++++++++++++++++++++++---------------------------
|
|
||||||
1 file changed, 132 insertions(+), 113 deletions(-)
|
|
||||||
mode change 100644 => 100755 functions.sh
|
|
||||||
|
|
||||||
diff --git a/functions.sh b/functions.sh
|
|
||||||
old mode 100644
|
|
||||||
new mode 100755
|
|
||||||
index b1069d2..aa572f9
|
|
||||||
--- a/functions.sh
|
|
||||||
+++ b/functions.sh
|
|
||||||
@@ -10,9 +10,63 @@
|
|
||||||
|
|
||||||
RPM="rpm -qp --nodigest --nosignature"
|
|
||||||
|
|
||||||
-check_header()
|
|
||||||
+# Name, Version, Release
|
|
||||||
+QF_NAME="%{NAME}"
|
|
||||||
+QF_VER_REL="%{VERSION}-%{RELEASE}"
|
|
||||||
+QF_NAME_VER_REL="%{NAME}-%{VERSION}-%{RELEASE}"
|
|
||||||
+
|
|
||||||
+# provides destroy this because at least the self-provide includes the
|
|
||||||
+# -buildnumber :-(
|
|
||||||
+QF_PROVIDES="[%{PROVIDENAME} %{PROVIDEFLAGS} %{PROVIDEVERSION}\\n]\\n"
|
|
||||||
+QF_PROVIDES="$QF_PROVIDES [%{REQUIRENAME} %{REQUIREFLAGS} %{REQUIREVERSION}\\n]\\n"
|
|
||||||
+QF_PROVIDES="$QF_PROVIDES [%{CONFLICTNAME} %{CONFLICTFLAGS} %{CONFLICTVERSION}\\n]\\n"
|
|
||||||
+QF_PROVIDES="$QF_PROVIDES [%{OBSOLETENAME} %{OBSOLETEFLAGS} %{OBSOLETEVERSION}\\n]\\n"
|
|
||||||
+
|
|
||||||
+# don't look at RELEASE, it contains our build number
|
|
||||||
+QF_TAGS="%{NAME} %{VERSION} %{EPOCH}\\n"
|
|
||||||
+QF_TAGS="$QF_TAGS %{SUMMARY}\\n%{DESCRIPTION}\\n"
|
|
||||||
+# the DISTURL tag can be used as checkin ID
|
|
||||||
+QF_TAGS="$QF_TAGS %{VENDOR} %{DISTRIBUTION} %{DISTURL}"
|
|
||||||
+QF_TAGS="$QF_TAGS %{LICENSE} %{LICENSE}\\n"
|
|
||||||
+QF_TAGS="$QF_TAGS %{GROUP} %{URL} %{EXCLUDEARCH} %{EXCLUDEOS} %{EXCLUSIVEARCH}\\n"
|
|
||||||
+QF_TAGS="$QF_TAGS %{EXCLUSIVEOS} %{RPMVERSION} %{PLATFORM}\\n"
|
|
||||||
+QF_TAGS="$QF_TAGS %{PAYLOADFORMAT} %{PAYLOADCOMPRESSOR} %{PAYLOADFLAGS}\\n"
|
|
||||||
+
|
|
||||||
+# XXX We also need to check the existence (but not the content (!))
|
|
||||||
+# of SIGGPG (and perhaps the other SIG*)
|
|
||||||
+# XXX We don't look at triggers
|
|
||||||
+QF_TAGS="$QF_TAGS [%{VERIFYSCRIPTPROG} %{VERIFYSCRIPT}]\\n"
|
|
||||||
+# Only the first ChangeLog entry; should be enough
|
|
||||||
+QF_TAGS="$QF_TAGS %{CHANGELOGTIME} %{CHANGELOGNAME} %{CHANGELOGTEXT}\\n"
|
|
||||||
+
|
|
||||||
+# scripts, might contain release number
|
|
||||||
+QF_SCRIPT="[%{PREINPROG} %{PREIN}\\n]\\n[%{POSTINPROG} %{POSTIN}\\n]\\n[%{PREUNPROG} %{PREUN}\\n]\\n[%{POSTUNPROG} %{POSTUN}\\n]\\n"
|
|
||||||
+
|
|
||||||
+# Now the files. We leave out mtime and size. For normal files
|
|
||||||
+# the size will influence the MD5 anyway. For directories the sizes can
|
|
||||||
+# differ, depending on which file system the package was built. To not
|
|
||||||
+# have to filter out directories we simply ignore all sizes.
|
|
||||||
+# Also leave out FILEDEVICES, FILEINODES (depends on the build host),
|
|
||||||
+# FILECOLORS, FILECLASS (normally useful but file output contains mtimes),
|
|
||||||
+# FILEDEPENDSX and FILEDEPENDSN.
|
|
||||||
+# Also FILELANGS (or?)
|
|
||||||
+QF_FILELIST="[%{FILENAMES} %{FILEFLAGS} %{FILESTATES} %{FILEMODES:octal} %{FILEUSERNAME} %{FILEGROUPNAME} %{FILERDEVS} %{FILEVERIFYFLAGS} %{FILELINKTOS}\n]\\n"
|
|
||||||
+# ??? what to do with FILEPROVIDE and FILEREQUIRE?
|
|
||||||
+
|
|
||||||
+QF_CHECKSUM="[%{FILENAMES} %{FILEMD5S} %{FILEFLAGS}\n]\\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"
|
|
||||||
+QF_ALL="$QF_ALL\n___QF_NAME_VER_REL___\n${QF_NAME_VER_REL}\n___QF_NAME_VER_REL___\n"
|
|
||||||
+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"
|
|
||||||
+
|
|
||||||
+check_header()
|
|
||||||
{
|
|
||||||
- $RPM --qf "$QF" "$1"
|
|
||||||
+ $RPM --qf "$1" "$2"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Trim version-release string:
|
|
||||||
@@ -47,18 +101,6 @@ function grep_release_new()
|
|
||||||
grep -E "(/boot|/lib/modules|/lib/firmware|/usr/src)/[^/]+(${version_release_new_regex_l}(\$|[^/]+\$)|${version_release_new_regex_s}(\$|[^/]+\$))"
|
|
||||||
}
|
|
||||||
|
|
||||||
-function check_provides()
|
|
||||||
-{
|
|
||||||
- local pkg=$1
|
|
||||||
- # provides destroy this because at least the self-provide includes the
|
|
||||||
- # -buildnumber :-(
|
|
||||||
- QF="[%{PROVIDENAME} %{PROVIDEFLAGS} %{PROVIDEVERSION}\\n]\\n"
|
|
||||||
- QF="$QF [%{REQUIRENAME} %{REQUIREFLAGS} %{REQUIREVERSION}\\n]\\n"
|
|
||||||
- QF="$QF [%{CONFLICTNAME} %{CONFLICTFLAGS} %{CONFLICTVERSION}\\n]\\n"
|
|
||||||
- QF="$QF [%{OBSOLETENAME} %{OBSOLETEFLAGS} %{OBSOLETEVERSION}\\n]\\n"
|
|
||||||
- check_header "$pkg"
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
#usage unpackage <file> $dir
|
|
||||||
# Unpack files in directory $dir
|
|
||||||
# like /usr/bin/unpackage - just for one file and with no options
|
|
||||||
@@ -98,6 +140,30 @@ function unpackage()
|
|
||||||
popd 1>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
+# Run diff command on the files
|
|
||||||
+# $1: printed info
|
|
||||||
+# $2: file1
|
|
||||||
+# $3: file2
|
|
||||||
+function comp_file()
|
|
||||||
+{
|
|
||||||
+ echo "comparing $1"
|
|
||||||
+ if ! diff -au $2 $3; then
|
|
||||||
+ if test -z "$check_all"; then
|
|
||||||
+ rm $2 $3 $spec_old $spec_new
|
|
||||||
+ return 1
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
+ return 0
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+# Get var's value from specfile.
|
|
||||||
+# $1: var name
|
|
||||||
+# $2: specfile
|
|
||||||
+function get_value()
|
|
||||||
+{
|
|
||||||
+ sed -n -e "/^___${1}___/,/^___${1}___/p" $2 | sed -e "/^___${1}___/d"
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
# Compare just the rpm meta data of two rpms
|
|
||||||
# Returns:
|
|
||||||
# 0 in case of same content
|
|
||||||
@@ -107,56 +173,29 @@ function unpackage()
|
|
||||||
function cmp_spec ()
|
|
||||||
{
|
|
||||||
local RES
|
|
||||||
- local file1 file2
|
|
||||||
+ local file_old file_new
|
|
||||||
local f
|
|
||||||
local sh=$1
|
|
||||||
local oldrpm=$2
|
|
||||||
local newrpm=$3
|
|
||||||
|
|
||||||
- QF="%{NAME}"
|
|
||||||
-
|
|
||||||
- # don't look at RELEASE, it contains our build number
|
|
||||||
- QF="$QF %{VERSION} %{EPOCH}\\n"
|
|
||||||
- QF="$QF %{SUMMARY}\\n%{DESCRIPTION}\\n"
|
|
||||||
- QF="$QF %{VENDOR} %{DISTRIBUTION} %{DISTURL}"
|
|
||||||
- QF="$QF %{LICENSE} %{LICENSE}\\n"
|
|
||||||
- QF="$QF %{GROUP} %{URL} %{EXCLUDEARCH} %{EXCLUDEOS} %{EXCLUSIVEARCH}\\n"
|
|
||||||
- QF="$QF %{EXCLUSIVEOS} %{RPMVERSION} %{PLATFORM}\\n"
|
|
||||||
- QF="$QF %{PAYLOADFORMAT} %{PAYLOADCOMPRESSOR} %{PAYLOADFLAGS}\\n"
|
|
||||||
-
|
|
||||||
-
|
|
||||||
- # XXX We also need to check the existence (but not the content (!))
|
|
||||||
- # of SIGGPG (and perhaps the other SIG*)
|
|
||||||
-
|
|
||||||
- # XXX We don't look at triggers
|
|
||||||
-
|
|
||||||
- QF="$QF [%{VERIFYSCRIPTPROG} %{VERIFYSCRIPT}]\\n"
|
|
||||||
-
|
|
||||||
- # Only the first ChangeLog entry; should be enough
|
|
||||||
- QF="$QF %{CHANGELOGTIME} %{CHANGELOGNAME} %{CHANGELOGTEXT}\\n"
|
|
||||||
-
|
|
||||||
- file1=`mktemp`
|
|
||||||
- file2=`mktemp`
|
|
||||||
-
|
|
||||||
- check_header $oldrpm > $file1
|
|
||||||
- check_header $newrpm > $file2
|
|
||||||
-
|
|
||||||
- # the DISTURL tag can be used as checkin ID
|
|
||||||
- #echo "$QF"
|
|
||||||
- echo "comparing rpmtags"
|
|
||||||
- if ! diff -au $file1 $file2; then
|
|
||||||
- if test -z "$check_all"; then
|
|
||||||
- rm $file1 $file2
|
|
||||||
- return 1
|
|
||||||
- fi
|
|
||||||
- fi
|
|
||||||
-
|
|
||||||
+ file_old=`mktemp`
|
|
||||||
+ file_new=`mktemp`
|
|
||||||
+ spec_old=`mktemp`
|
|
||||||
+ spec_new=`mktemp`
|
|
||||||
+
|
|
||||||
+ check_header "$QF_ALL" $oldrpm > $spec_old
|
|
||||||
+ check_header "$QF_ALL" $newrpm > $spec_new
|
|
||||||
+
|
|
||||||
+ name_new="$(get_value QF_NAME $spec_new)"
|
|
||||||
+ version_release_new="$(get_value QF_VER_REL $spec_new)"
|
|
||||||
+ name_ver_rel_new="$(get_value QF_NAME_VER_REL $spec_new)"
|
|
||||||
+
|
|
||||||
+ version_release_old="$(get_value QF_VER_REL $spec_old)"
|
|
||||||
+ name_ver_rel_old="$(get_value QF_NAME_VER_REL $spec_old)"
|
|
||||||
+
|
|
||||||
# Remember to quote the . which is in release
|
|
||||||
- version_release_old=$($RPM --qf "%{VERSION}-%{RELEASE}" "$oldrpm")
|
|
||||||
- version_release_new=$($RPM --qf "%{VERSION}-%{RELEASE}" "$newrpm")
|
|
||||||
- name_ver_rel_old=$($RPM --qf "%{NAME}-%{VERSION}-%{RELEASE}" "$oldrpm")
|
|
||||||
- name_ver_rel_new=$($RPM --qf "%{NAME}-%{VERSION}-%{RELEASE}" "$newrpm")
|
|
||||||
- # Short version without B_CNT
|
|
||||||
+ # Short version without B_CN
|
|
||||||
version_release_old_regex_s=${version_release_old%.*}
|
|
||||||
version_release_old_regex_s=${version_release_old_regex_s//./\\.}
|
|
||||||
version_release_new_regex_s=${version_release_new%.*}
|
|
||||||
@@ -166,10 +205,27 @@ function cmp_spec ()
|
|
||||||
version_release_new_regex_l=${version_release_new//./\\.}
|
|
||||||
name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.}
|
|
||||||
name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.}
|
|
||||||
+
|
|
||||||
+ # Check the whole spec file at first, return 0 immediately if the
|
|
||||||
+ # are the same.
|
|
||||||
+ cat $spec_old | trim_release_old > $file_old
|
|
||||||
+ cat $spec_new | trim_release_new > $file_new
|
|
||||||
+ echo "comparing the whole specfile"
|
|
||||||
+ if diff -au $spec_old $spec_new; then
|
|
||||||
+ if test -z "$check_all"; then
|
|
||||||
+ rm $file_old $file_new $spec_old $spec_new
|
|
||||||
+ return 0
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ get_value QF_TAGS $spec_old > $file_old
|
|
||||||
+ get_value QF_TAGS $spec_new > $file_new
|
|
||||||
+ comp_file rpmtags $file_old $file_new || return 1
|
|
||||||
+
|
|
||||||
# This might happen when?!
|
|
||||||
echo "comparing RELEASE"
|
|
||||||
if [ "${version_release_old%.*}" != "${version_release_new%.*}" ] ; then
|
|
||||||
- case $($RPM --qf '%{NAME}' "$newrpm") in
|
|
||||||
+ case $name_new in
|
|
||||||
kernel-*)
|
|
||||||
# Make sure all kernel packages have the same %RELEASE
|
|
||||||
echo "release prefix mismatch"
|
|
||||||
@@ -181,71 +237,34 @@ function cmp_spec ()
|
|
||||||
*) ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
-
|
|
||||||
- check_provides $oldrpm | trim_release_old | sort > $file1
|
|
||||||
- check_provides $newrpm | trim_release_new | sort > $file2
|
|
||||||
-
|
|
||||||
- echo "comparing PROVIDES"
|
|
||||||
- if ! diff -au $file1 $file2; then
|
|
||||||
- if test -z "$check_all"; then
|
|
||||||
- rm $file1 $file2
|
|
||||||
- return 1
|
|
||||||
- fi
|
|
||||||
- fi
|
|
||||||
|
|
||||||
- # scripts, might contain release number
|
|
||||||
- QF="[%{PREINPROG} %{PREIN}\\n]\\n[%{POSTINPROG} %{POSTIN}\\n]\\n[%{PREUNPROG} %{PREUN}\\n]\\n[%{POSTUNPROG} %{POSTUN}\\n]\\n"
|
|
||||||
- check_header $oldrpm | trim_release_old > $file1
|
|
||||||
- check_header $newrpm | trim_release_new > $file2
|
|
||||||
+ get_value QF_PROVIDES $spec_old | trim_release_old | sort > $file_old
|
|
||||||
+ get_value QF_PROVIDES $spec_new | trim_release_new | sort > $file_new
|
|
||||||
+ comp_file PROVIDES $file_old $file_new || return 1
|
|
||||||
+
|
|
||||||
+ get_value QF_SCRIPT $spec_old | trim_release_old > $file_old
|
|
||||||
+ get_value QF_SCRIPT $spec_new | trim_release_new > $file_new
|
|
||||||
+ comp_file scripts $file_old $file_new || return 1
|
|
||||||
|
|
||||||
- echo "comparing scripts"
|
|
||||||
- if ! diff -au $file1 $file2; then
|
|
||||||
- if test -z "$check_all"; then
|
|
||||||
- rm $file1 $file2
|
|
||||||
- return 1
|
|
||||||
- fi
|
|
||||||
- fi
|
|
||||||
-
|
|
||||||
# First check the file attributes and later the md5s
|
|
||||||
-
|
|
||||||
- # Now the files. We leave out mtime and size. For normal files
|
|
||||||
- # the size will influence the MD5 anyway. For directories the sizes can
|
|
||||||
- # differ, depending on which file system the package was built. To not
|
|
||||||
- # have to filter out directories we simply ignore all sizes.
|
|
||||||
- # Also leave out FILEDEVICES, FILEINODES (depends on the build host),
|
|
||||||
- # FILECOLORS, FILECLASS (normally useful but file output contains mtimes),
|
|
||||||
- # FILEDEPENDSX and FILEDEPENDSN.
|
|
||||||
- # Also FILELANGS (or?)
|
|
||||||
- QF="[%{FILENAMES} %{FILEFLAGS} %{FILESTATES} %{FILEMODES:octal} %{FILEUSERNAME} %{FILEGROUPNAME} %{FILERDEVS} %{FILEVERIFYFLAGS} %{FILELINKTOS}\n]\\n"
|
|
||||||
- # ??? what to do with FILEPROVIDE and FILEREQUIRE?
|
|
||||||
-
|
|
||||||
- check_header $oldrpm | trim_release_old > $file1
|
|
||||||
- check_header $newrpm | trim_release_new > $file2
|
|
||||||
-
|
|
||||||
- echo "comparing filelist"
|
|
||||||
- if ! diff -au $file1 $file2; then
|
|
||||||
- if test -z "$check_all"; then
|
|
||||||
- rm $file1 $file2
|
|
||||||
- return 1
|
|
||||||
- fi
|
|
||||||
- fi
|
|
||||||
-
|
|
||||||
+ get_value QF_FILELIST $spec_old | trim_release_old > $file_old
|
|
||||||
+ get_value QF_FILELIST $spec_new | trim_release_new > $file_new
|
|
||||||
+ comp_file filelist $file_old $file_new || return 1
|
|
||||||
+
|
|
||||||
# now the md5sums. if they are different, we check more detailed
|
|
||||||
# if there are different filenames, we will already have aborted before
|
|
||||||
# file flag 64 means "ghost", filter those out.
|
|
||||||
- QF="[%{FILENAMES} %{FILEMD5S} %{FILEFLAGS}\n]\\n"
|
|
||||||
- check_header $oldrpm |grep -v " 64$"| trim_release_old > $file1
|
|
||||||
- check_header $newrpm |grep -v " 64$"| trim_release_new > $file2
|
|
||||||
-
|
|
||||||
+ get_value QF_CHECKSUM $spec_old | grep -v " 64$" | trim_release_old > $file_old
|
|
||||||
+ get_value QF_CHECKSUM $spec_new | grep -v " 64$" | trim_release_new > $file_new
|
|
||||||
RES=2
|
|
||||||
# done if the same
|
|
||||||
echo "comparing file checksum"
|
|
||||||
- if cmp -s $file1 $file2; then
|
|
||||||
+ if cmp -s $file_old $file_new; then
|
|
||||||
RES=0
|
|
||||||
fi
|
|
||||||
-
|
|
||||||
+
|
|
||||||
# Get only files with different MD5sums
|
|
||||||
- files=`diff -U0 $file1 $file2 | fgrep -v +++ | grep ^+ | cut -b2- | awk '{print $1}'`
|
|
||||||
+ files=`diff -U0 $file_old $file_new | fgrep -v +++ | grep ^+ | cut -b2- | awk '{print $1}'`
|
|
||||||
|
|
||||||
if test -f "$sh"; then
|
|
||||||
echo "creating rename script"
|
|
||||||
@@ -261,7 +280,7 @@ function cmp_spec ()
|
|
||||||
done >> "${sh}"
|
|
||||||
fi
|
|
||||||
#
|
|
||||||
- rm $file1 $file2
|
|
||||||
+ rm $file_old $file_new
|
|
||||||
return $RES
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.9.0
|
|
||||||
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
From a78fe4f792a9ac9f4d364e836c8855f48561d6f2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
Date: Thu, 14 Jul 2016 19:52:18 -0700
|
|
||||||
Subject: [PATCH 3/4] pkg-diff.sh: check for fifo(named pipe)
|
|
||||||
|
|
||||||
Otherwise "cmp -s fifo1 fifo2" will wait for inputing forever.
|
|
||||||
|
|
||||||
Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10]
|
|
||||||
|
|
||||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
---
|
|
||||||
pkg-diff.sh | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/pkg-diff.sh b/pkg-diff.sh
|
|
||||||
index 5dd3a38..1f353aa 100644
|
|
||||||
--- a/pkg-diff.sh
|
|
||||||
+++ b/pkg-diff.sh
|
|
||||||
@@ -735,6 +735,13 @@ check_single_file()
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
+ fifo*pipe*)
|
|
||||||
+ ftype_new="`/usr/bin/file new/$file | sed -e 's@^[^:]\+:[[:blank:]]*@@' -e 's@[[:blank:]]*$@@'`"
|
|
||||||
+ if [ "$ftype_new" = "$ftype" ]; then
|
|
||||||
+ return 0
|
|
||||||
+ fi
|
|
||||||
+ return 1
|
|
||||||
+ ;;
|
|
||||||
*)
|
|
||||||
if ! diff_two_files; then
|
|
||||||
return 1
|
|
||||||
--
|
|
||||||
2.9.0
|
|
||||||
|
|
||||||
-37
@@ -1,37 +0,0 @@
|
|||||||
From 657983ef9ca8f8354172682e17408c4f6b5bc667 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
Date: Thu, 14 Jul 2016 19:46:08 -0700
|
|
||||||
Subject: [PATCH 1/4] pkg-diff.sh: check_single_file(): return at once when
|
|
||||||
same
|
|
||||||
|
|
||||||
If the two files are the same, return at once, this can save a lot of
|
|
||||||
time when there are archives inside archives.
|
|
||||||
|
|
||||||
Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10]
|
|
||||||
|
|
||||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
---
|
|
||||||
pkg-diff.sh | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/pkg-diff.sh b/pkg-diff.sh
|
|
||||||
index 3cf10aa..402d4a4 100644
|
|
||||||
--- a/pkg-diff.sh
|
|
||||||
+++ b/pkg-diff.sh
|
|
||||||
@@ -293,6 +293,13 @@ check_compressed_file()
|
|
||||||
check_single_file()
|
|
||||||
{
|
|
||||||
local file="$1"
|
|
||||||
+
|
|
||||||
+ # If the two files are the same, return at once.
|
|
||||||
+ if [ -f old/$file -a -f new/$file ]; then
|
|
||||||
+ if cmp -s old/$file new/$file; then
|
|
||||||
+ return 0
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
case $file in
|
|
||||||
*.spec)
|
|
||||||
sed -i -e "s,Release:.*$release1,Release: @RELEASE@," old/$file
|
|
||||||
--
|
|
||||||
2.9.0
|
|
||||||
|
|
||||||
-32
@@ -1,32 +0,0 @@
|
|||||||
From 836a6783df9c582a834fca239f227063a5687715 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
Date: Thu, 14 Jul 2016 19:49:12 -0700
|
|
||||||
Subject: [PATCH 2/4] pkg-diff.sh: remove space in the end for ftype
|
|
||||||
|
|
||||||
Versions of file like 5.14 returns a " " in the end, for example:
|
|
||||||
ftype="directory ", but we need ftype="directory", remove the space to
|
|
||||||
fix the problem.
|
|
||||||
|
|
||||||
Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10]
|
|
||||||
|
|
||||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
|
||||||
---
|
|
||||||
pkg-diff.sh | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/pkg-diff.sh b/pkg-diff.sh
|
|
||||||
index 402d4a4..5dd3a38 100644
|
|
||||||
--- a/pkg-diff.sh
|
|
||||||
+++ b/pkg-diff.sh
|
|
||||||
@@ -633,7 +633,7 @@ check_single_file()
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
- ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'`
|
|
||||||
+ ftype=`/usr/bin/file old/$file | sed -e 's@^[^:]\+:[[:blank:]]*@@' -e 's@[[:blank:]]*$@@'`
|
|
||||||
case $ftype in
|
|
||||||
PE32\ executable*Mono\/\.Net\ assembly*)
|
|
||||||
echo "PE32 Mono/.Net assembly: $file"
|
|
||||||
--
|
|
||||||
2.9.0
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user