This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
I broke cygport
- From: Charles Wilson <cygwin at cwilson dot fastmail dot fm>
- To: Mailing List: CygWin-Apps <cygwin-apps at cygwin dot com>
- Date: Mon, 16 Oct 2006 22:57:42 -0400
- Subject: I broke cygport
I'm currently working on a bunch of release announcements for update
packages...but first things first:
One of those updates is
autoconf2.5-2.59 --> autoconf2.5-2.60
(yes, it's weird. But the received wisdom is that autoconf-2.60 is
considered a continuation of the 2.5x line of development.)
Anyway, the old autoconf2.5 package contained files like:
/usr/bin/autoconf-2.5x
/usr/bin/autoheader-2.5x
etc
However, that's not the way the linuxii do it. AND, since (in another
change) I switched the autoconf wrapper from the Red Hat perl script to
the gentoo bash script -- I felt it better to move closer to the linux
way. Therefore, the new autoconf2.5 package contains
/usr/bin/autoconf-2.60
/usr/bin/autoheader-2.60
etc
For most purposes, this is transparent. You run "autoconf" which is the
wrapper, and you get "the right" version. However, cygport explicitly
tests for the presence of "autoconf-2.5x" in $PATH.
This patch makes cygport's search a little smarter -- and it or
something like it is *required* if you want cygport to work after the
new autoconf is installed.
--
Chuck
--- cygport.orig 2006-10-16 22:16:59.953125000 -0400
+++ cygport 2006-10-16 22:13:52.078125000 -0400
@@ -216,13 +216,46 @@
}
# check for mandatory program, else error
+# Two forms:
+# (1) check_prog_req progran_name package
+# search for program_name in path. error if not found
+#
+# (2) check_prog_req progran_name package [alt_prog1 [alt_prog2 [ ...]]]
+# search in order for progran_name, alt_prog1, alt_prog2, ...
+# in path. If none found, error. Otherwise, echo name of
+# program found. Only call this variant inside shell escape
+# (backticks or $())
check_prog_req() {
local prog=${1};
- local pkg=${2:-${1}};
+ shift
+ local pkg=${1:-${prog}};
+ shift
if ! check_prog ${prog}
then
- error "${pkg} is required to build this package";
+ local found;
+ found="no"
+ while [ $(( $# > 0 )) ]
+ do
+ prog=${1}
+ if check_prog ${prog}
+ then
+ found="yes"
+ break
+ fi
+ shift
+ done
+ if [ "x${found}" != "xyes" ]
+ then
+ error "${pkg} is required to build this package";
+ else
+ echo "${prog}"
+ fi
+ else
+ if [ $(( $# > 0 )) ]
+ then
+ echo "${prog}"
+ fi
fi
return 0;
@@ -604,7 +637,10 @@
export WANT_AUTOMAKE;
/usr/bin/autoreconf-2.13 --force -i --verbose || error "autoreconf-2.13 failed"
else
- check_prog_req autoconf-2.5x autoconf2.5
+ local found_autoconf_prog;
+ local found_autoconf_ver;
+ found_autoconf_prog=$( check_prog_req autoconf-2.5x autoconf2.5 autoconf-2.60 )
+ found_autoconf_ver=${found_autoconf_prog##autoconf-}
export WANT_AUTOCONF=2.5;
export WANT_AUTOMAKE;
@@ -618,7 +654,8 @@
fi
done
- /usr/bin/autoreconf-2.5x --install --force --verbose || error "autoreconf-2.5x failed"
+ /usr/bin/autoreconf-${found_autoconf_ver} --install --force --verbose || \
+ error "autoreconf-${found_autoconf_ver} failed"
fi
if [ -f config.h.in ]