'ch' => \@changesopts,
'mergechanges' => \@mergechanges);
+our %opts_opt_cmdonly = ('gpg' => 1);
+
our $keyid;
our $debug = 0;
# > file begin changes
# [etc]
#
+# > param head HEAD
+#
# > want signed-tag
# [indicates that signed tag is wanted]
# < data-block NBYTES
# < data-end
# < files-end
#
-# > want signed-changes-dsc
-# < data-block NBYTES [transfer of signed changes]
-# [etc]
+# > want signed-dsc-changes
# < data-block NBYTES [transfer of signed dsc]
# [etc]
+# < data-block NBYTES [transfer of signed changes]
+# [etc]
# < files-end
#
# > complete
if ($sign) {
my @debsign_cmd = @debsign;
push @debsign_cmd, "-k$keyid" if defined $keyid;
+ push @debsign_cmd, "-p$pgp[0]" if $pgp[0] ne 'gpg';
push @debsign_cmd, $changesfile;
runcmd_ordryrun @debsign_cmd;
}
protocol_receive_file \*RO, $localpath;
}
+our %i_param;
+
+sub i_param ($) {
+ $_[0] =~ m/^(\S+) (.*)$/;
+ $i_param{$1} = $2;
+}
+
+our %i_wanted;
+
sub i_resp_want ($) {
my ($keyword) = @_;
+ die "$keyword ?" if $i_wanted{$keyword}++;
my @localpaths = i_method "i_want_", $keyword;
foreach my $localpath (@localpaths) {
protocol_send_file \*RI, $localpath;
return $dscfn;
}
+sub i_want_signed_tag {
+ defined $i_param{'head'} && defined $dscfn
+ or badproto \*RO, "sequencing error";
+ my $head = $i_param{'head'};
+ die if $head =~ m/[^0-9a-f]/ || $head !~ m/^../;
+
+ push_parse_dsc $i_dscfn, 'remote dsc',
+
+ push_mktag $head, $i_clogp, $i_tag,
+ $dsc, $i_dscfn,
+ 'remote.changes', 'remote changes',
+ 'tag.tag';
+
+ return 'tag.tag';
+}
+
+sub i_want_signed_dsc_changes {
+ rename "$i_dscfn.tmp","$i_dscfn" or die "$i_dscfn $!";
+ sign_changes 'remote.changes';
+ return ($i_dscfn, 'remote.changes');
+}
+
#---------- building etc. ----------
our $version;
push @ropts, $_;
$om->[0] = $2;
} elsif (m/^--(\w+):(.*)/s &&
+ !$opts_opt_cmdonly{$1} &&
($om = $opts_opt_map{$1})) {
push @ropts, $_;
push @$om, $2;