Hello community, here is the log from the commit of package release-compare for openSUSE:Factory checked in at 2020-08-28 21:21:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/release-compare (Old) and /work/SRC/openSUSE:Factory/.release-compare.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "release-compare" Fri Aug 28 21:21:43 2020 rev:2 rq:830269 version:0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/release-compare/release-compare.changes 2020-03-25 23:48:39.296046639 +0100 +++ /work/SRC/openSUSE:Factory/.release-compare.new.3399/release-compare.changes 2020-08-28 21:22:30.548357633 +0200 @@ -1,0 +2,15 @@ +Wed Aug 26 13:44:48 UTC 2020 - Adrian Schröter <adr...@suse.de> + +- write changelogs in UTF-8 encoding + +------------------------------------------------------------------- +Tue Aug 25 07:34:24 UTC 2020 - Adrian Schröter <adr...@suse.de> + +- speedup it a lot to avoid timeout errors + +------------------------------------------------------------------- +Wed Aug 19 09:13:35 UTC 2020 - Adrian Schröter <adr...@suse.de> + +- running based on .report instead of .packages files + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ release-compare.spec ++++++ --- /var/tmp/diff_new_pack.7IiIPr/_old 2020-08-28 21:22:31.036357870 +0200 +++ /var/tmp/diff_new_pack.7IiIPr/_new 2020-08-28 21:22:31.040357872 +0200 @@ -44,6 +44,9 @@ mkdir -p $RPM_BUILD_ROOT/usr/lib/build/ $RPM_BUILD_ROOT/%_defaultdocdir/%name install -m 0755 %SOURCE2 $RPM_BUILD_ROOT/usr/lib/build/ +%check +bash -n $RPM_BUILD_ROOT/usr/lib/build/obsgendiff || exit 1 + %files /usr/lib/build ++++++ obsgendiff ++++++ --- /var/tmp/diff_new_pack.7IiIPr/_old 2020-08-28 21:22:31.092357898 +0200 +++ /var/tmp/diff_new_pack.7IiIPr/_new 2020-08-28 21:22:31.092357898 +0200 @@ -25,41 +25,84 @@ out=/.build.packages/obsgendiff outreleased=/.build.packages/obsgendiff.released -echo "Running obsgendiff data differ..." +eol=$'\n' -# extract released obsgendiff aggregates -for obsgendiff in /.build.packages/SOURCES/*.obsgendiff; do - [ -e "$obsgendiff" ] || continue - mkdir -p "${outreleased}" - tar xfv "$obsgendiff" -C "${outreleased}" -done +echo "Running obsgendiff data differ..." # create changelogs based on the packaged rpms mkdir -p $out/{changelogs,disturl} -for packages in /.build.packages/KIWI/*.packages; do - cat "$packages" | while read line; do - IFS='|' read -r -a a <<< "$line" - name="${a[0]}" - rpm="${name}.rpm" - - # only the worker knows where it was downloaded from.... - file=`find /.build.packages/SOURCES/repos/ -name $rpm` - rpm -qp "$file" --changelog 2>/dev/null > $out/changelogs/${name} - rpm -qp "$file" --qf '%{DISTURL}\n' 2>/dev/null > $out/disturl/${name} +for report in /.build.packages/OTHER/*.report; do + + # skip source and debug media + [ "$report" = "${report/-Media2/}" ] || continue + [ "$report" = "${report/-Media3/}" ] || continue + + # find and extract right obsgendiff archive + oldobsgendiff=${report%.report}.obsgendiff + oldobsgendiff=/.build.packages/SOURCES/${oldobsgendiff##*/} + oldobsgendiff=`echo ${oldobsgendiff/-Build*-/-Build*-}` # find old build number + if [ -e "$oldobsgendiff" ]; then + echo "Extracting $oldobsgendiff" + mkdir -p "${outreleased}" + tar xf "$oldobsgendiff" -C "${outreleased}" + else + echo "WARNING no old obsgendiff found: $oldobsgendiff" + fi + + sed -n -e 's,.*<binary .*obs:\(//.*\)</binary>,\1,p' "$report" | while read disturl; do + + rpm="${disturl##*/}" + name="${rpm%-*}" + name="${name%-*}" + + # only the worker knows where it was downloaded from.... + # the disturl may contained a different build repo + file=`echo /.build.packages/SOURCES/repos/*/*/*/$rpm` + file="${file//${eol}*/}" # bash internal "head -n 1" + + LC_ALL=C.UTF-8 rpm -qp "$file" --changelog --nodigest --nosignature 2>/dev/null > $out/changelogs/${name} + echo "$disturl" > $out/disturl/${name} done # create archive - cd $out - gendiff=${packages%.packages}.obsgendiff - tar cfJ /.build.packages/OTHER/${gendiff##*/} * - cd - -done - -# create diff to released archive -# NOTE: it had to be published or it won't exist -if [ -d "${outreleased}" ]; then - diff -urN "${outreleased}/" "$out/" > /.build.packages/OTHER/changelog.diff -fi + pushd $out + gendiff=${report%.report}.obsgendiff + tar cfJ /.build.packages/OTHER/${gendiff##*/} . + popd + + # create diff to released archive + # NOTE: it had to be published or it won't exist + if [ -d "${outreleased}" ]; then + changelog=/.build.packages/OTHER/ChangeLog.${report##*/} + changelog=${changelog%.report}.txt + echo ""> $changelog + + # removed packages + echo "Removed packages">> $changelog + echo "================">> $changelog + echo "">> $changelog + + find "$outreleased/changelogs/" -type f | sort | sed "s,^$outreleased/changelogs/,," | while read file; do + [ -e "${out}/changelogs/$file" ] || echo " - ${file##*::}" >> $changelog + done + echo "">> $changelog + + # new packages + echo "New packages">> $changelog + echo "============">> $changelog + echo "">> $changelog + find "$out/changelogs/" -type f | sort | sed "s,^$out/changelogs/,," | while read file; do + [ -e "${outreleased}/changelogs/$file" ] || echo " - ${file##*::}" >> $changelog + done + echo "">> $changelog + + # changed packages + echo "Package updates">> $changelog + echo "===============">> $changelog + echo "">> $changelog + diff -ur "${outreleased}/changelogs/" "$out/changelogs/" | grep -v '^Only in ' | grep '^[+-]' | grep -v '^--- ' | sed 's,^+++ .*/\([^\t]*\).*$,\1,' >> $changelog + fi +done exit 0