set -ex
+ok=true
l="$*"
[ -z "$l" ] && l="$(rpm -qla|perl -lne 'chomp;s/$/.rpmnew/;print if -f;')"
for base in $l;do
test ! -f $base.rej
test ! -f $base-orig
- # The old format should be converted by:
+ # The old `-orig' format should be converted by:
# rpm -qla|perl -lne 'chomp;s/$/-orig/;next if ! -e;$o=$_;$o=~s/-orig$//;$o=~tr{/}{-};$o="/root/rpmmerge/$o";die $o if -e $o;$_="mv -f '\''$_'\'' '\''$o'\''";system $_ and die "$_: $!";'
- orig="/root/rpmmerge/$(echo $base|tr / -)"
+ orig="/root/rpmmerge/$base"
if test ! -f $orig
then
continue
fi
- if diff -u $orig $base.rpmnew | patch -f $base
+ # Local changes present in new rpm?
+ if cmp -s $base $base.rpmnew
+ then
+ mv -f $base.rpmnew $base
+ cp -p $base $orig
+ continue
+ fi
+
+ if diff -u $orig $base.rpmnew | patch -N $base
then
test ! -f $base.rej
rm -f $base.orig
test -f $base.rej
mv -f $base.orig $base
rm -f $base.rej
- exit 1
+
+ #exit 1
+ ok=false
+ continue
done
-rpm -qac|perl -ne 'chomp;next if $_ eq "(contains no files)";next if m{^/var/lib/rpm/};next if ! -f $_;$o=$_;$o=~tr{/}{-};$o="/root/rpmmerge/$o";next if -e $o;system "cp -i -p '\''$_'\'' '\''$o'\''" and die "$_: $!";'
+if $ok
+then
+ mkdir -p /root/rpmmerge
+ rpm -qac|perl -ne 'chomp;next if $_ eq "(contains no files)";next if m{^/var/lib/rpm/};next if $_ eq "/usr/lib/locale/locale-archive";next if ! -f $_;$o=$_;$o="/root/rpmmerge/$o";next if -e $o;$od=$o;$od=~s{[^/]*$}{};system "mkdir -p '\''$od'\''" and die "dir $_: $!";system "cp -i -p '\''$_'\'' '\''$o'\''" and die "$_: $!";'
-echo OK
+ echo OK
+else
+ echo ERRORS
+ exit 1
+fi