Yesterday I started to improve a couple of watch files in our
repository:
* first I changed all URLs pointing to
http://mirrors.kernel.org/cpan/modules/by-module/ ... because of
the timeouts this server has
* then I changed the URLs containing /authors/ because they don't
match anymore if the maintainer of a module changes
For all changed URLs I've used the dist-based scheme, which is also
used by current dh-make-perl:
http://search.cpan.org/dist/Module-Name/ .*/Module-Name-([[:digit:]].*)\.tar\.gz
At that point I saw that there are quite a lot of watch files
referring to URLs with /by-authors/, and I decided to spend my time
on scripting the changes instead of manually fixing them all :)
What I've done (with the help of dam, Tincho and SquOnk on irc) is to
extend the packagecheck script (in svn under /scripts/qa); the new
test kicks in if the URL in debian/watch doesn't match
search.cpan.org/dist and then changes any cpan-related URL to the
above mentioned scheme. This affects /by-module/ URLs as well. [0]
Some questions before I actually run the script:
* Are there any general objections against using the newer scheme for
the URLs or changing many watch files?
* Is the current approach to create the version regex sane?
* What shall we do about the "trailing part" ('debian uupdate' or
similar)? It's hardly used, and I'd personally prefer to remove it
to get more consistency but there might be others who actually
like/use it.
* Any other comments?
As always: Please feel free to improve/rewrite/.. the script!
Cheers,
gregor
[0]
Currently the stanza reads:
# 6) watchfile
if [ -e $TRUNK/$p/debian/watch ] && ! grep search\.cpan\.org/dist/ $TRUNK/$p/debian/watch >/dev/null; then
echo "$p: trying to change URL in debian/watch"
if perl -i -e "my \$changed=1; while(<>){ \$changed=0 if s{^(?:ht|f)tp://.*cpan.+/(\S+)-(?:\S+)(\s.+)?$}{http://search.cpan.org/dist/\$1/ .*/\$1-v?([\\\\d._]+)(?:\\\\.tar\\\\.gz|\\\\.tgz)\$2}; print;} exit \$changed" $TRUNK/$p/debian/watch ; then
perl -pi -e "s;^version=2;version=3;" $TRUNK/$p/debian/watch
MSG_WATCH="debian/watch: use dist-based URL."
CHANGED=1
fi
fi
--
.''`. http://info.comodo.priv.at/ | gpg key ID: 0x00F3CFE4
: :' : debian: the universal operating system - http://www.debian.org/
`. `' member of https://www.vibe.at/ | how to reply: http://got.to/quote/
`- NP: Pink Floyd: In The Flesh
Attachment:
signature.asc
Description: Digital signature