diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2016-07-16 17:35:37 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2016-07-17 13:46:14 +0100 |
commit | 64e588df2a1ea4abc31c85f405f25b2f06d8f4ba (patch) | |
tree | 49cd1b14df6aaea3cb48fb3ef32077ecdcff85e7 | |
parent | 6f509d51d3adfab107ccbc78637cfc81e3b5059a (diff) |
quilt innards: Break out uilt_make_fake_dsc (nfc)
-rwxr-xr-x | dgit | 82 |
1 files changed, 44 insertions, 38 deletions
@@ -2949,6 +2949,49 @@ sub quilt_fixup_singlepatch ($$$) { commit_quilty_patch(); } +sub quilt_make_fake_dsc ($) { + my ($upstreamversion) = @_; + + my $fakeversion="$upstreamversion-~~DGITFAKE"; + + my $fakedsc=new IO::File 'fake.dsc', '>' or die $!; + print $fakedsc <<END or die $!; +Format: 3.0 (quilt) +Source: $package +Version: $fakeversion +Files: +END + + my $dscaddfile=sub { + my ($b) = @_; + + my $md = new Digest::MD5; + + my $fh = new IO::File $b, '<' or die "$b $!"; + stat $fh or die $!; + my $size = -s _; + + $md->addfile($fh); + print $fakedsc " ".$md->hexdigest." $size $b\n" or die $!; + }; + + quilt_fixup_linkorigs($upstreamversion, $dscaddfile); + + my @files=qw(debian/source/format debian/rules + debian/control debian/changelog); + foreach my $maybe (qw(debian/patches debian/source/options + debian/tests/control)) { + next unless stat_exists "../../../$maybe"; + push @files, $maybe; + } + + my $debtar= srcfn $fakeversion,'.debian.tar.gz'; + runcmd qw(env GZIP=-1n tar -zcf), "./$debtar", qw(-C ../../..), @files; + + $dscaddfile->($debtar); + close $fakedsc or die $!; +} + sub quilt_fixup_multipatch ($$$) { my ($clogp, $headref, $upstreamversion) = @_; @@ -3023,44 +3066,7 @@ sub quilt_fixup_multipatch ($$$) { # afterwards with dpkg-source --before-build. That lets us save a # tree object corresponding to .origs. - my $fakeversion="$upstreamversion-~~DGITFAKE"; - - my $fakedsc=new IO::File 'fake.dsc', '>' or die $!; - print $fakedsc <<END or die $!; -Format: 3.0 (quilt) -Source: $package -Version: $fakeversion -Files: -END - - my $dscaddfile=sub { - my ($b) = @_; - - my $md = new Digest::MD5; - - my $fh = new IO::File $b, '<' or die "$b $!"; - stat $fh or die $!; - my $size = -s _; - - $md->addfile($fh); - print $fakedsc " ".$md->hexdigest." $size $b\n" or die $!; - }; - - quilt_fixup_linkorigs($upstreamversion, $dscaddfile); - - my @files=qw(debian/source/format debian/rules - debian/control debian/changelog); - foreach my $maybe (qw(debian/patches debian/source/options - debian/tests/control)) { - next unless stat_exists "../../../$maybe"; - push @files, $maybe; - } - - my $debtar= srcfn $fakeversion,'.debian.tar.gz'; - runcmd qw(env GZIP=-1n tar -zcf), "./$debtar", qw(-C ../../..), @files; - - $dscaddfile->($debtar); - close $fakedsc or die $!; + quilt_make_fake_dsc($upstreamversion); my $splitbrain_cachekey; if (quiltmode_splitbrain()) { |