On Thu, Mar 12 2009, Russ Allbery wrote: > Manoj Srivastava <sriva...@debian.org> writes: > >> a) Run a upstream version check from cron, which mails me if there are >> new upstream versions of something I have. >> b) If there is a new upstream version, cd checked out dir >> 1. No munging required: use uscan --rename --verbose to get the >> latest source. >> 2. Munging needed. Run get-orig-source to get the latest upstream >> source via uscan; and munge it as needed to create the >> orig.tar.gz file > > Oh, okay, so your get-orig-source target would internally use uscan. How > do you tell from that what tarball it downloaded for an automated target? > Would you parse the output of uscan somehow?
OK. So here is a working setup: --8<---------------cut here---------------start------------->8--- [master]__> uscan --verbose --rename --repack --force-download -- Scanning for watchfiles in . -- Found watchfile in ./debian -- In debian/watch, processing watchfile line: opts=pasv,dversionmangle=s/\.ds// http://www.fvwm.org/download/ ftp://ftp.fvwm.org/pub/fvwm/version-2/fvwm-([\d\.]*)\.tar\.gz debian debian/uscan-repack -- Found the following matching hrefs: ftp://ftp.fvwm.org/pub/fvwm/version-2/fvwm-2.4.20.tar.gz ftp://ftp.fvwm.org/pub/fvwm/version-2/fvwm-2.5.27.tar.gz Newest version on remote site is 2.5.27, local version is 2.5.27.ds (mangled local version number 2.5.27) => Package is up to date Newest version on remote site is 2.5.27, local version is 2.5.27.ds (mangled local version number 2.5.27) => Forcing download as requested -- Downloading updated package fvwm-2.5.27.tar.gz -- Successfully downloaded updated package fvwm-2.5.27.tar.gz and renamed it as fvwm_2.5.27.orig.tar.gz -- Executing user specified script debian/uscan-repack --upstream-version 2.5.27 fvwm-2.5.27.tar.gz Starting to get ../fvwm_2.5.27.orig.tar.gz Munging ../fvwm_2.5.27.orig.tar.gz ==> ../fvwm_2.5.27.ds.orig.tar.gz ../fvwm_2.5.27.ds.orig.tar.gz created. -- Scan finished --8<---------------cut here---------------end--------------->8--- The session above demonstrates uscan looking for, and downloading, the latest version of fvwm sources. If I had passed in a --download-version option, it would have looked for a specific version to get. The watch file is: --8<---------------cut here---------------start------------->8--- version=3 opts=pasv,dversionmangle=s/\.ds// http://www.fvwm.org/download/ \ ftp://ftp.fvwm.org/pub/fvwm/version-2/fvwm-([\d\.]*)\.tar\.gz \ debian debian/uscan-repack --8<---------------cut here---------------end--------------->8--- This specifies pasv, specifies the local version mangling (I append a .ds to the upstream version), and send in a user specified script for manging. The script used for mangling is appended below. Given that we already have a tool that can download upstream sources, with or without mangling, and can be used by facilities outside of the unpacked Debian source package to determine if there was new versions and to download unmangled versions, is there any need to retain the get-orig-source target at all? I mean, this seldom implemented target is duplicating an existing and widely used facility in Debian; and removing the target from the policy will advance the laudable goal of stripping the policy of cruft. Admittedly, we could standardize on the name uscan-repack or something for the user specified script to use to mangle the upstream sources if needed, and that will allow automata to know what files to extract from the .dsc (debian/watch and debian/uscan-repack [please suggest a better name]), I think that should be adequate for the use case at hand. manoj #!/bin/sh # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA # This is heavily based on work done by Bernd Zeimetz, and has been # extended slightly. set -e #command --upstream-version version filename [ $# -eq 3 ] || exit 255 version="$2" filename="$3" echo >&2 '' echo >&2 " Starting to get ${filename} " # Unpack, and find the directory it unpacked into tar xfz ${filename} dir=`tar tfz ${filename} | head -1 | sed 's,/.*,,g'` # Package specific cleanups DIRS_TO_REMOVE=${dir}/debian FILES_TO_REMOVE=${filename} echo >&2 " Munging ${filename} ==> ${filename%%.orig.tar.gz}.ds.orig.tar.gz" rm -f ${FILES_TO_REMOVE} rm -rf ${DIRS_TO_REMOVE} # Any additional cleanup goes in here : echo '' # rename, repack, cleanup mv ${dir} ${dir}.ds.orig tar cf - ${dir}.ds.orig | gzip -9 > ${filename%%.orig.tar.gz}.ds.orig.tar.gz rm -rf ${dir}.ds.orig echo >&2 " ${filename%%.orig.tar.gz}.ds.orig.tar.gz created." -- "It might help if we ran the MBA's out of Washington." Admiral Grace Hopper Manoj Srivastava <sriva...@debian.org> <http://www.debian.org/~srivasta/> 1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C -- To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org