[Glibc-bsd-devel] Re: comments on the FreeBSD packages

Nathan Hawkins utsl@quic.net
Mon, 14 Jul 2003 21:29:01 -0400


Robert Millan writes: 

> 
> [ CCing to glibc-bsd-devel@lists.alioth.debian.org ] 
> 
> Hi! 
> 
> Nathan, I'd like to make some comments/suggestions on the FreeBSD packages: 
> 
>  - how about making all of it into a single multi-binary package? it has
>    the advantage that it's less work for maintainance and we don't have
>    to worry about keeping interfaces in sync (e.g: program requiring features
>    in newer libc version, etc)

I did that before, but I found that you basically get a gigantic tarball, 
and it is a pain when doing new uploads, especially for minor upgrades. 
Also, rebuilding _everything_ takes forever. 

I plan to write up scripts to create the tarballs from CVS, so I can track
 -STABLE. :)  I also want to look into means to enable the use of multiple 
versions of the core utilities (i.e. ifconfig, mount, etc.), and have a 
binary wrapper that detects which kernel is running, and exec's the right 
binary. 

>  - i think we should have a separate /usr hierrachy for the FreeBSD stuff. Its
>    bin directory could contain things like:
>      - cc: you cross-compiler script, so we don't have to patch upstream
>        sources to replace cc with i386-freebsd-gcc

Actually, those patches are ridiculously easy to maintain. Look under the 
debian/ap directory. Those files are processed by a program called 
autopatch, which is usually in debian/mk, and autopatch recreates the diffs. 
It's nicely automated, and very painless.  So much so that I've been 
considering packaging autopatch. 

Also, I rather like being able to have FreeBSD stuff in /usr/bin. :) 

>      - uname: script that echoes "FreeBSD" on -s, and fallbacks to real uname
>        for any other options
 

IMHO, uname -s should be FreeBSD. uname -s on Linux is Linux, not GNU/Linux. 
Things that look at uname -s just simply should be changed, that's an awful 
way to do things. 

>      - yacc,lex,make: FreeBSD versions of the utils, so we don't have to patch
>        upstream sources (eg, s/make/fmake/g), and we can avoid kludges like
>        conflicting with byacc or pmake

Actually, the conflict with pmake was that pmake uses /usr/share/mk, and so 
does freebsd-make. I just haven't got round to doing anything about that. 
FWIW, freebsd-make mostly will build with pmake, but the share/mk directory 
doesn't. 

>    this way, you'd get a FreeBSD build environment by simply exporting a new
>    value to the PATH variable.

You can now, by setting CC=i386-freebsd-gcc. As for lex and yacc, these are 
actually flex and byacc, just forked slightly. Those problems may go away 
someday.  For now, it's not a very great hardship to use the 
freebsd-kbuildutils package. It has the alternate versions of flex and 
byacc. At some point, I'll figure out how to get them to install without 
conflicts. 

   ---Nathan