X-Git-Url: https://git.jankratochvil.net/?p=nethome.git;a=blobdiff_plain;f=bin%2Frpmmerge;h=9cf201a1bee02f617a2d5b64c1241c4e086fe24d;hp=87c22975956af51e878b65fdb7cd08c2173527f9;hb=8878c8b94e4368fc3ff259d369aeb4965edb68dc;hpb=d55b43feddb89b315bc434aa4c80ad4c33d4cb14 diff --git a/bin/rpmmerge b/bin/rpmmerge index 87c2297..9cf201a 100755 --- a/bin/rpmmerge +++ b/bin/rpmmerge @@ -1,26 +1,35 @@ #! /bin/sh # $Id$ + set -ex -for base in "$@";do +l="$*" +[ -z "$l" ] && l="$(rpm -qla|perl -lne 'chomp;s/$/.rpmnew/;print if -f;')" +for base in $l;do base=`echo $base|sed 's/[.]rpmnew$//'` test -f $base test -f $base.rpmnew test ! -f $base.orig test ! -f $base.rej - if test ! -f $base-orig + test ! -f $base-orig + # The old 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 / -)" + + if test ! -f $orig then cmp $base $base.rpmnew mv -f $base.rpmnew $base continue fi - if diff -u $base-orig $base.rpmnew | patch -f $base + if diff -u $orig $base.rpmnew | patch -f $base then test ! -f $base.rej rm -f $base.orig - mv -f $base.rpmnew $base-orig + mv -f $base.rpmnew $orig continue fi test -f $base.orig @@ -29,4 +38,7 @@ for base in "$@";do rm -f $base.rej exit 1 done + +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=~tr{/}{-};$o="/root/rpmmerge/$o";next if -e $o;system "cp -i -p '\''$_'\'' '\''$o'\''" and die "$_: $!";' + echo OK