tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: individual software releases for third parties
>> I don't see the point of avoiding autotools - {cross,} compiling on
>> a variety of architectures is precisely what it is designed to do.
I wrote a rant about why I don't like the "just shut up and drink the
nice ./configure koolaid" paradigm;
http://ftp.rodents-montreal.org/mouse/blah/2009-11-20-1.html for those
who are interested.
Most briefly, (a) it may be designed to do that, but it does not
actually do it (except, possibly, in a set of particular cases it's
been tested to do it in, or maybe by chance), and (b) it's a security
disaster in at least two respects.
> The right way to approach portability has never been tried: to
> construct a database of alternatives, keyed approximately by os,
> libc, and compiler version.
That's odd, that's pretty much what I thought I did for a few of the
programs I install:
(case A)
v=`uname -m`-`uname -r`
if [ -d ../patches.vers/$v ]; then
( cd ../patches.vers/$v ; find . -type f -print ) | sed -e 's;^./;;' |
while read fn
do
cat ../patches.vers/$v/$fn | sed -e
"s;@@LOCALROOT@@;$LOCALROOT;g" | patch $fn
rm -f $fn.orig
done
fi
(case B)
r=`uname -s`-`uname -r`
...
(cd ..; find patches-$r -type f -print) |
sed -e "s@/@ @" |
while read d f; do
patch $f < ../$d/$f
done
(case C)
k="`uname -m`/`uname -s`/`uname -r`"
case "$k" in
*/NetBSD/1.4T) opt=-O;;
*/NetBSD/1.6) opt=-O;;
*/NetBSD/2.0) opt=-O;;
*/NetBSD/2.1) opt=-O;;
*/NetBSD/3.0.1) opt=-O;;
*/NetBSD/3.1) opt=-O;;
i386/NetBSD/4.0.1) opt=-O2;;
macppc/NetBSD/4.0.1) opt=-O2;;
sparc/NetBSD/4.0.1) opt=-O2;;
i686/Linux/2.6.28-18-generic) opt=-O2;;
*) echo "Don't know optimization setting for $k" 1>&2
exit 1
;;
esac
(case C needs customization, so far, in only that one respect).
Perhaps this doesn't count or something.
/~\ The ASCII Mouse
\ / Ribbon Campaign
X Against HTML mouse%rodents-montreal.org@localhost
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B
Home |
Main Index |
Thread Index |
Old Index