On Mon, Jun 27, 2005 at 12:20:19PM +0200, Marc Haber wrote:
> I have to apologize. My advice was completely wrong, and the bug
> report is absolutely valid.
No need to apologize, it is not always easy to understand each other via
mail :-)
In the meantime I patched dpatch-get-origtargz to implement properly (I
hope) the path idea. Patch is attached both for the script and for the
manpage describing the new behaviour.
I left in place the DPGO_ORIGTARDIR as first attempt to find the
tarball, but of course it is now redundant. I suggest to mark it as
deprectated in the manpage (but I didn't do it by myself, it's up to
you).
The only aspect I'm not happy with is that the patched script "manually"
sources /etc/dpatch.conf and ~/.dpatch.conf while some scripts of the
dpatch suite (not all, though) uses a SYSCONFDIR instead of hard coded
"/etc" which is filled at compiler time using awk. I doubt it will be
ever a problem thought.
Cheers.
--
Stefano Zacchiroli -*- Computer Science PhD student @ Uny Bologna, Italy
[EMAIL PROTECTED],debian.org,bononia.it} -%- http://www.bononia.it/zack/
If there's any real truth it's that the entire multidimensional infinity
of the Universe is almost certainly being run by a bunch of maniacs. -!-
diff -ur dpatch-2.0.13.orig/scripts/dpatch-get-origtargz
dpatch-2.0.13/scripts/dpatch-get-origtargz
--- dpatch-2.0.13.orig/scripts/dpatch-get-origtargz 2005-06-26
15:29:31.000000000 +0200
+++ dpatch-2.0.13/scripts/dpatch-get-origtargz 2005-06-27 12:24:34.000000000
+0200
@@ -10,10 +10,14 @@
# Usage: dpatch-get-origtargz origtardir
+[[ -f /etc/dpatch.conf ]] && . /etc/dpatch.conf
+[[ -f ~/.dpatch.conf ]] && . ~/.dpatch.conf
+DPGO_ORIGTARPATH="${DPGO_ORIGTARPATH:-$conf_origtarpath}"
+
ORIGTARDIR="$1"
shift
if [ -z "$ORIGTARDIR" ] || [ -n "$1" ]; then
- echo >&2 "${DPFO_BASENAME}: Usage: dpat-find-origtargz <origtardir>"
+ echo >&2 "${DPFO_BASENAME}: Usage: dpatch-get-origtargz <origtardir>"
exit 1
fi
@@ -24,15 +28,26 @@
true
elif [ -f "${DPGO_ORIGTARDIR}/$ORIGTARGZ" ]; then
cp $(readlink -f "${DPGO_ORIGTARDIR}/$ORIGTARGZ") $ORIGTARDIR
-elif [ -f "../$ORIGTARGZ" ]; then
- cp $(readlink -f "../$ORIGTARGZ") $ORIGTARDIR
-elif [ -x $(which apt-get) ]; then
- if ! (cd $ORIGTARDIR && apt-get --tar-only source "$PACKAGENAME"); then
- if ! [ -f "${ORIGTARDIR}/$ORIGTARGZ" ]; then
- echo >&2 "${DPFO_BASENAME}: Error: apt-get source $PACKAGENAME delivered
wrong version of $ORIGTARGZ"
+elif [ ! -z "${DPGO_ORIGTARPATH}" ]; then
+ for dir in $(echo ${DPGO_ORIGTARPATH} | cut -d: -f 1- --output-delimiter='
'); do
+ dir=$(echo $dir | sed s+/*$++)
+ if [ -f "$dir/$ORIGTARGZ" ]; then
+ cp $(readlink -f "$dir/$ORIGTARGZ") $ORIGTARDIR
+ break
+ fi
+ done
+fi
+if [ ! -f "${ORIGTARDIR}/$ORIGTARGZ" ]; then # path and other methods failed,
try heuristics
+ if [ -f "../$ORIGTARGZ" ]; then
+ cp $(readlink -f "../$ORIGTARGZ") $ORIGTARDIR
+ elif [ -x $(which apt-get) ]; then
+ if ! (cd $ORIGTARDIR && apt-get --tar-only source "$PACKAGENAME"); then
+ if ! [ -f "${ORIGTARDIR}/$ORIGTARGZ" ]; then
+ echo >&2 "${DPFO_BASENAME}: Error: apt-get source $PACKAGENAME
delivered wrong version of $ORIGTARGZ"
+ fi
+ else
+ echo >&2 "${DPFO_BASENAME}: Error: apt-get source $PACKAGENAME failed"
fi
- else
- echo >&2 "${DPFO_BASENAME}: Error: apt-get source $PACKAGENAME failed"
fi
fi
diff -ur dpatch-2.0.13.orig/scripts/dpatch-get-origtargz.1
dpatch-2.0.13/scripts/dpatch-get-origtargz.1
--- dpatch-2.0.13.orig/scripts/dpatch-get-origtargz.1 2005-06-26
15:29:31.000000000 +0200
+++ dpatch-2.0.13/scripts/dpatch-get-origtargz.1 2005-06-27
12:11:08.000000000 +0200
@@ -17,11 +17,13 @@
.br
1) in the directory pointed to by \fBDPGO_ORIGTARDIR\fR,
.br
-2) in the parent directory of the current work directory,
+2) in all directories listed in the \fBorig tar path\fR,
.br
-3) on the Debian mirror configured into apt, and
+3) in the parent directory of the current work directory,
.br
-4) on the Internet, using the first URL found in debian/watch.
+4) on the Debian mirror configured into apt, and
+.br
+5) on the Internet, using the first URL found in debian/watch.
.br
If not, it tries to obtain the upstream tarball from a
@@ -29,8 +31,19 @@
repository configured, and finally, the internet server
pointed to by debian/watch.
+The \fBorig tar path\fR is a colon separated list of directories where
+upstream tarballs are looked for during step 2. It can either be set in
+dpatch configuration files with the \fBconf_origtarpath\fR variable
+(e.g. conf_origtarpath=/public/tarballs:../upstream) or using the
+\fBDPGO_ORIGTARPATH\fR environment variable (which overrides
+configuration files settings).
+
+.SH SEE ALSO
+\fIdpatch\fR(1)
+
.SH AUTHOR
dpatch\-get\-origtargz and this manual page was written by Marc Haber
-<[EMAIL PROTECTED]>.
+<[EMAIL PROTECTED]> and modified by Stefano Zacchiroli
+<[EMAIL PROTECTED]>.
.\" arch-tag: a8bdf178-9016-4721-a6b0-e5d492df89b7