#! /usr/bin/perl # $Id$ use strict; use warnings; sub readfile($) { my($filename)=@_; local *F; open F,$filename or die "open \"$filename\": $!"; my $F=do { local $/; ; } or die "read \"$filename\": $!"; close F or die "close \"$filename\": $!"; return $F; } sub writefile($$) { my($filename,$content)=@_; local *F; open F,">".$filename or die "create \"$filename\": $!"; print F $content or die "write \"$filename\": $!"; close F or die "close \"$filename\": $!"; } my $spec=readfile "./libunwind.spec"; sub define_get($) { my($name)=@_; my $r=($spec=~/^[%]define\s+\Q$name\E\s+(\S+)\s*$/m)[0] or die $name; return $r; } my $frysksnap=define_get "frysksnap"; my $upstreamsnap=define_get "upstreamsnap"; my $patch="./libunwind-snap-${upstreamsnap}-frysk${frysksnap}.patch"; die $patch if !-e $patch; my $content=readfile 'cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/frysk'." rdiff -ko -r libunwind-20$upstreamsnap -r libunwind-0_99-0_1_frysk$frysksnap -u frysk-imports/libunwind|"; 1 while $content=~s{^([^-+].*|--- |\Q+++\E )frysk-imports/(libunwind/)}{$1$2}mg; writefile $patch,$content; print "OK\n";