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