On Tue, Aug 09, 2005 at 12:02:18AM +0400, Alexey M. Tourbin wrote: > abiword - Lean and fast full-featured word processor > * Tue Jul 26 2005 Vital Khilko 2.3.4-alt1 > - 2.3.4 > * Wed Apr 06 2005 Vital Khilko 2.2.7-alt1 Последняя строчка соответствует предыдущему релизу. По-моему, это гораздо более информативно, чем "v1 -> v2", но, возможно, менее очевидно. > liferea - A RSS News Reader for GNOME > * Thu Aug 04 2005 Vital Khilko 0.9.5-alt1.1 > - 0.9.5 > * Wed Jul 27 2005 Vital Khilko 0.9.4-alt1.1 > - DBus support > * Wed Jul 27 2005 Vital Khilko 0.9.4-alt1 > - 0.9.4 > * Thu Jul 21 2005 Vital Khilko 0.9.2-alt1.1 > - DBus disabled > * Thu May 19 2005 Vital Khilko 0.9.2-alt1 Теперь также видны все промежуточные релизы, которые не попадали в сизиф. diff -u qa/qa-robot/packages:1.3 qa/qa-robot/packages:1.4 --- qa/qa-robot/packages:1.3 Fri Jul 29 21:18:04 2005 +++ qa/qa-robot/packages Mon Aug 8 14:28:31 2005 @@ -64,6 +64,26 @@ rpm_lastchange() { rpm -qp --lastchange -- "$@" |sed -ne \ 's/@\([[:alnum:]-]\+\)\.[[:alnum:]]\+>/@\1>/;/[[:alnum:]]/p'; } +rpm_changes_since() +{ + perl -MRPM::Header -Mstrict -l - "$@" <<'__EOF__' + my ($SVR, $f) = @ARGV; + tie my %hdr, "RPM::Header", $f or die "$f: $RPM::err\n"; + for my $i (0 .. $#{$hdr{CHANGELOGTIME}}) { + use Date::Format qw(time2str); + my $date = time2str("%a %b %d %Y", $hdr{CHANGELOGTIME}[$i]); + my $info = "* $date $hdr{CHANGELOGNAME}[$i]"; + $info =~ s/@([\w-]+)[.]\w+>/\@$1>/; + my $svr = (split " ", $hdr{CHANGELOGNAME}[$i])[-1]; + my $cmp = $svr =~ /^\w[:\w.-]*$/ ? 0+`rpmevrcmp $svr $SVR` : -1; + print $info; + print $hdr{CHANGELOGTEXT}[$i] if $cmp > 0 or $i == 0; + print "Note: changelog entry for $SVR was not found." if $cmp < 0; + last if $cmp <= 0; + } +__EOF__ +} + fmt_new() { subj="$subj +$1!" @@ -91,8 +111,7 @@ echo " $1 UPDATED $2"; echo while IFS=$'\t' read -r name SVR2 f0 SVR4 f; do rpm_summary "$SRPMS/$f" - echo "$SVR2 -> $SVR4" - rpm_lastchange "$SRPMS/$f" + rpm_changes_since "$SVR2" "$SRPMS/$f" echo done }