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
 


Reply via email to