Okay I spent the day working on this new init system based on current baselayout’s trunk. The result is that now the init system mostly works on FreeBSD with almost full features support.
The important things like networking works, at least for the main features (static IP address, dhcp through dhclient), lo0 is also started mostly fine. I get quite a few problems with failures in routes handling because the route command is different from Linux’s and I didn’t have time to investigate its parameters right.
The bad thing is the init sequence is a bit too verbose, the fsck output is quite complex. Another problem is that localmount throws an error to me because it can’t resolve the name “enterprise” I use for my main box (which is in the fstab).
I committed the changes in the porting branch so all the code is available for who wants to mess with it (of course it’s a devs-only SVN right now). Don’t start thinking that it works flawlessy yet, I’ll have to hack on it a bit more.
Was funny when I fixed some of the start issues, and then when bootmisc started it deleted ld-elf.so.hints and the system stopped booting 🙂
Anyway, now the main blocker is still GCC’s specs, although Benigno provided me another patch, to eutils this time, that should solve the last problems with the build process of GCC, in particular the crt1.o deletion on install.
Unfortunately also udhcp is not portable under *BSD, and porting it seems to be a bit more difficult than porting dhcpcd. Anyway dhclient for now should be enough, it also follow the same package that is provided by FreeBSD base system, that makes it a good solution, I hope 🙂
Anyway, time to wait for GCC to compile to see if BBJ’s patch works, then it’s time to look at what it’s still missing in Gentoo/FreeBSD 6.0 checklist…