Hi, Let me propose a new generic mangle rule: qx/script/
This mangles by feeding the target $string into the STDIN of script in the debian directory and reading its STDOUT back into the target $string. This works somewhat like a Perl command thus I used qx as the initiating command. $script = qx"debian/script"; This is applicable to all mangle rules :-) including pagemangle I proposed in https://bugs.debian.org/797787 Message #15. (Disregard the old patch in Message #5 and #10) The exact patch will be posted there later. At least this and pagemangle facilitate users to setup a watch file for the following bug reports: #451051 Please support parsing .lsm files #458789 Please allow framework for using external scripts #614802 watch file syntax for taking version from timestamp ==> The last one needs a new mangling rule after the download. This is a very generic tool to address many random feature requests which devscripts maintainer can not be keeping up with. I just made a proof of concept code snippet which changes the start of uscan safe_replace($$) as follows: --------- sub safe_replace($$) { my ($in, $pat) = @_; $pat =~ s/^\s*(.*?)\s*$/$1/; $pat =~ /^(s|tr|y|qx)(.)/; my ($op, $sep) = ($1, $2 || ''); my $esc = "\Q$sep\E"; my ($parsed_ok, $regexp, $replacement, $flags); if ($op eq 'qx') { my $input = $$in; my $output; # script name: [a-zA-Z0-9][-_a-zA-Z0-9]* (any quotation dropped) $pat =~ s/^qx[^-_a-zA-Z0-9]*([a-zA-Z0-9][-_a-zA-Z0-9]*)[^-_a-zA-Z0-9]*$/debian\/$1/; if ( -x $pat) { spawn(exec => $pat, from_string => \$input, to_string => \$output, wait_child => 1); $$in = $output; return 1; } else { print STDERR "$progname warning: missing executable $pat: $!\n"; return 0; } } elsif ($sep eq '{' or $sep eq '(' or $sep eq '[' or $sep eq '<') { ... --------- So we can use this as: opts="pagemangle=qx/script/;suffix=+dfsg1;dversionmangle=s/+dfsg\d*$//" ... There are relatively strict limitations to the script name for the safe operation. This uses Dpkg::IPC and I tested the above code in a mock code environment and works nicely. Regards, Osamu