Re: Multiple topics
On Tue, Apr 09, 2002 at 11:26:56AM -0600, Joel Baker wrote:
> On Tue, Apr 09, 2002 at 11:47:10AM -0400, email@example.com wrote:
> > What I ran into with 5.0 was that there was a define that you set to
> > enable compiling with gcc 3.x, and there were some #ifdef's to make it
> > work. However, that define also enabled building gcc 3.x from the
> > FreeBSD source tree, and that failed. Looked like the changes for it
> > aren't quite finished merging in. That was only a week or two ago, so
> > I'd wait a little while yet.
> Fair enough. Waiting is fine, but knowing that it's a target is quite
My plan is to continue with 4-STABLE for a while, and try building CVS
snapshots of 5 every so often. Once I get one that builds ok, I'll have to
recompile with the new libc. I made a DBS-like package, so it's not too
hard to change over to -CURRENT.
I'm not in a real rush with it now, because -CURRENT is getting changed
rapidly, and I'm trying to concentrate on making a working Debian system.
What I'd like to do is get my system working well with -STABLE, and get
the base changes merged into Debian. Then playing around with -CURRENT
would make more sense to me.
Otherwise, I'm combining an unstable userland with an unstable libc and
kernel. That's just a bit too hard to debug.
> > These packages are pretty stable. I could upload source and binaries for
> > it, if you've got your machine taking uploads. :-)
> > The main trouble I've got with uploading is going through all the
> > packages I've built, and sorting out which ones needed patching, if it's
> > still necessary, and cleaning up patches where I can. I'm getting near the
> > point where I should just run an autobuilder.
> Autobuilders are good. I almost had one up for NetBSD, until I ran into
> problems I couldn't reconcile with system headers (fixed in -current, but
> I can't get that to work on my box, so...)
I've had a few headaches. Here are the major compatibility issues I've
1. getopt_long not in libc. Sometimes alloca, too. Some
Linux/Debian specific programs are not checking for
libiberty functions in configure.
2. unicode/iconv support not in libc. It seems to be missing
multibyte character support.
3. utmp is missing a lot of fields. I solved this by writing
a utmpx implementation.
4. shadow passwords. I'm writing a library that will hopefully
> > Hmm, no. I didn't spend much time on it. It was some libc function
> > missing, I think. That's usually the problem. The only reason I tried to
> > build it was because ash depends on it, but ash built fine with
> > FreeBSD's make. I had to have ash for makedev, because it won't work
> > with bash. So ash becomes a base package on FreeBSD, at least for 4.x. :(
> > At this point, I have a package I build from the FreeBSD source tree,
> > that contains all the programs I need to build that source. The circular
> > dependacy is a bit annoying, but that package solves a lot of headaches.
> > (Would you believe it requires the FreeBSD version of find in the
> > Makefiles?)
> Differing base packages, while annoying, can be dealt with (albeit with
> some effort, and it might be easier to try to convince FreeBSD to make it
> /bin/sh friendly, I don't know; Debian stuff is *supposed* to not use any
> bashisms, for example, in 'core' areas).
makedev is apparently incompatible with bash. ash works, and so does /bin/sh
from FreeBSD. I just used ash. In 5.0 that goes away, because of devfs,
so I'm not too worried about it.
> The problem is that, at least for me, I'm not trying to build - and don't
> really want present - the majority of the BSD userspace. It won't cooperate
> nicely with the Debian userspace, and it will utterly break a lot of things
> on the underside (the inverse of the 'needs FreeBSD find' - LOTS of things
> assume that they have the Debian-standard 'ls', 'find', etc - though at
> least for find, they need to be declaring a dependancy on the findutils
> Having a make-kpkg equivalent with tools to build a kernel (and, for us,
> libc and similar stuff) is not out of whack, but I'd say those need to be
> kept fairly separate. The BSD make stuff, on the other hand, is used in a
> LOT of stuff outside the kernel.
> Of course, that doesn't mean anything but the kernel makes use of the non-
> compatible extensions. Hrrrrf.
My solution was to make a directory /usr/bsd, and I put programs into
/usr/bsd/bin. It looks like this:
skaro:/# ls /usr/bsd/bin
byacc gcov kas kgdb kranlib make objformat xargs
colldef gensetdefs kc++filt kld kreadelf mk_cmds patch yacc
compile_et install kcc knm ksize mkdep sh yyfix
csh kaddr2line kcpp kobjcopy kstrings mknod tcsh
find kar kgasp kobjdump kstrip mktemp tsort
Everything in there was basically required by the FreeBSD Makefiles. When I
build FreeBSD, I put /usr/bsd/bin in the front of PATH, and it works
fine. (I also set CC=kcc, when building the kernel, because I haven't
been able to get it working with the Debian gcc and binutils yet. If
that gets fixed, a lot of that stuff can go away.)
Everything under that directory tree lives in a binary package, called
freebsd-buildutils. That package is built from the FreeBSD sources, and
is a build dependacy for those sources. That's not pleasant, but it
works well. If you want to rebuild the FreeBSD parts of the system, you
install that package.
To UNSUBSCRIBE, email to firstname.lastname@example.org
with a subject of "unsubscribe". Trouble? Contact email@example.com