![]() |
|
| Daemon News Ezine | BSD News | BSD Mall | BSD Support Forum | BSD Advocacy | BSD Updates |
Interview with Diego Pettenò, Gentoo/*BSD developer
By David Stanford <dstanford@daemonnews.org>"Gentoo/FreeBSD is a Unix-like operating system developed by Gentoo Linux developers in order to bring Gentoo Linux design principles such as Portage to the FreeBSD operating system. Gentoo/FreeBSD is part of the larger Gentoo/BSD project. The project is still in development, an almost working stage is currently present on Gentoo mirrors, and have installation instruction that allows to install a full Gentoo/FreeBSD system with help of #gentoo-bsd channel on freenode." There are currently three subprojects branched off of the root Gentoo/BSD project including Gentoo/FreeBSD (just mentioned), Gentoo/OpenBSD and Gentoo/NetBSD. According to Gentoo/BSD's site, the developers are also working on starting up a DragonFlyBSD (dfly) branch as well. For now though, the dfly port is "still unofficial" so DragonFly fans shouldn't get their hopes up just yet ;). After stumbling across the project just a few weeks ago, I decided I wanted to know a little more about it and thought DaemonNews readers would too. So I subscribed to the gentoo-bsd mailing list to see if I could flag down any developer willing to forfeit some spare time and fill me in on the project. Fortunately, it was hardly a day later when Diego Pettenò, one of the primary developers working on Gentoo/BSD, replied back. It was then that I asked if he would be willing to conduct an interview with me regarding Gentoo/BSD, and he kindly agreed. So here it is everyone, enjoy! --
Diego Pettenò: Hi, I'm one of the developers of Gentoo/BSD. In particular, I've been taking care of the Gentoo/FreeBSD project since last year. Other than myself, the active Gentoo/BSD team is composed of Stephen Bennet (spb), Michael Kohl (who handles user-level documentation), Karol Pasternak (lead of Gentoo/OpenBSD), Damian Florczyk (lead of Gentoo/NetBSD), Harald van Dijk (already a Gentoo Developer, now helping with Gentoo/NetBSD), and Benigno B. Junior, our latest recruit. The aim is to have a working system that uses the original kernel, system library and userland of FreeBSD, OpenBSD or NetBSD (depending on the project, of course) and using Gentoo's proper package management, init system and some of the administration facilities. Currently the work is spread between these three subprojects, but as Gentoo/FreeBSD has had a more constant effort spent on it in the past, it's currently the most advanced of them, at least in terms of baselayout and of alignment with Gentoo Linux. Currently the work is more or less focused on providing a working harness so that all the Gentoo/*BSD ports share as much as possible with the original Gentoo Linux (talking about package management, init system and day-to-day administration facilities), without having to modify the original sources too heavily. For Gentoo/FreeBSD and Gentoo/OpenBSD, there are already working stages that can be used by users to test the status of the projects. Gentoo/NetBSD has something too, but it's currently in a fluid state that makes difficult to release a snapshot of it. The work still needing to be done is quite a lot, anyway; GCC, binutils and, in general, the toolchain needs polishing, especially for OpenBSD, as many changes done by the BSD projects are not sent to the upstream developers. Also, the sources are mostly written for older versions of GCC and binutils (and flex for what involves FreeBSD), plus there are things that might need to be mitigated to find a compromise between the upstream BSD way and the Gentoo way of handling some things.
DP: The project started when Daniel Robbins (Gentoo's founder) was still actively involved in Gentoo development, with Grant Goodyear, Seemant Kulleen and Joshua Brindle; the original idea was to be able to choose a combination between GNU and BSD userlands, system libraries, and of Linux and BSD kernels. Grant started working on Gentoo/OpenBSD first and started the overlay that still survives for testing purposes, while Seemant and Joshua were planning the porting of BSD libc on Linux. After a while, the original aim showed to be difficult to reach, so the project stalled for a while until Otavio R. Piske and Stephen Bennett resumed the work at about the time of FreeBSD 5.1 release. Since then, up to last year with release 5.3, Gentoo/FreeBSD was an overlay on top of a minimal FreeBSD system, using the same toolchain as FreeBSD and overwriting only parts of its system. Then last year with release 5.4, we started replacing the whole FreeBSD system with the same utilities, but compiled directly via portage, and the first experimental stages were released. Also, for a while, Xorg started working fine (although the current 7.0 release is yet to be tested). After that, Damian started working on Gentoo/NetBSD while Robert (not yet a developer) tried starting a Gentoo/DragonFly port; Karol then restarted the work on Gentoo/OpenBSD almost entirely from scratch. At the moment Gentoo/FreeBSD is being merged into main portage, while Gentoo/OpenBSD and Gentoo/NetBSD are still in a fluid state that makes them unable to join the main tree yet.
DP: I don't like giving estimates, especially when it comes to release times. Last year when I joined we all thought that even experimental stages were too far away to think about them seriously, but in a couple of months the project started accelerating until the release of the stages during the summer. Right now I'm merging the Gentoo/FreeBSD part of the overlay in the main portage tree, and keywording the base packages so that we don't rely on packages not dropping the versions we need anymore (in case newer versions still need to be ported, usually the case for toolchain packages, for example). When this is done (I hope in less than a month), a new experimental stage will be released that will hopefully address most of the problems of the previous versions. Considering that most of the work for Gentoo/BSD is actually shared, as it's a general "de-GNU-ification" of ebuilds (portage and maintenance scripts), it shouldn't take much longer for the other ports to start with experimental stages. I think that their bigger problem is with the toolchain, as the vanilla versions of GCC and binutils have very little support for BSD operating systems. We had (and partially still have) a similar problem with Gentoo/FreeBSD, too, but luckily at least GCC seems to be fine, while binutils required a simple patch for 2.15 (and a forward port of it for 2.16, that I was luckily able to prepare and I'm trying to get upstream).
DP: The Gentoo/DragonFly is currently developed by a user, Robert Sebastian Gerus, so it has no official status yet. Although it shares most of the work with FreeBSD, having to cope with many common problems and patches, DragonFly support is complicated because there is little support for it in many major software projects, even if the FreeBSD code paths can work. Also, this is the case for GCC and binutils; the latter doesn't know about DragonFly at all, and the way it's built on original DragonFly BSD doesn't help to port the patches at all. Even libtool, which is a fundamental part of many libraries' build system, requires to be updated to support DragonFly's CHOST. Also, Robert has little time to handle this work load, so the current progress are alternatively fast and slow depending on his time, although portage does detect DragonFly correctly since version 2.1_pre5 and a few packages are already fixed.
DP: Of course there's always hope to attract more users :) But I'm afraid it won't be easy for core BSD users to get into Gentoo/BSD if they aren't already Gentoo Linux users, at least at the moment. Gentoo/BSD project is trying to bring Gentoo facilities and utilities on BSD systems, thus requires both knowledge of BSD userland (as it's mostly untouched from the original one) and of Gentoo utilities like Portage for package management or the miscellaneous gcc-config, binutils-config and eselect utilities. Although production-ready releases are probably still quite far off, I hope that Gentoo/BSD will allow a more transparent integration between Gentoo Linux and BSD systems, for example, in mixed environments. However, at the moment I want to be realistic: the only users that might be attracted to Gentoo/BSD are the curious and developers; people wanting to try it out because they find it interesting or funny, and people who want to improve software in general by merging patches with upstream.
DP: To be honest, I wasn't a FreeBSD user before I joined the Gentoo/FreeBSD project. I used it a couple of times, but never seriously. I used to use OpenBSD as my home gateway, but that was really a minimal use. I think the nearest thing to a BSD I used was Mac OS X. I currently only have a "vanilla" OpenBSD installation here (but it's no more than my home gateway), that I use to check behaviour when I don't want to bother other developers with minor details. But I'm mostly an exception, as many of the developers (not only the ones working on Gentoo/BSD, but also some other Gentoo developers) use FreeBSD, NetBSD or OpenBSD at work or home. Some of them are actually waiting to see what we're able to reach, as using Gentoo/BSD in a production environment is not a good idea at the moment. Defining a "preferred" OS is difficult as the ones using them at work are almost evenly distributed (maybe excluding DragonFly). Myself, I mostly use FreeBSD because I started the project there and I try to continue with it :)
DP: No, portage is intended to be a primary package manager, at least at its current status, although there are works in progress to use it as a secondary package manager. It's difficult to just use the Gentoo baselayout and other package managers. This is also due to some of the modifications we do when using our own baselayout; for example periodic(1) scripts are being replaced by simpler cron jobs using Gentoo Linux style rather than FreeBSD, and some things are being moved to /bin while they are in /usr/bin on original systems. Running ports or pkgsrc on Gentoo/BSD would require almost the same work required to get them working on Gentoo Linux, minus the requirement to patch the sources to support Linux itself. I would like if someday portage will handle dependencies of a parallel package, but this is quite a difficult objective, and right now I want to concentrate more on having it working as a primary package manager.
DP: Well at the moment we have a quite "flexible" installation method as we don't even have an actual Live CD to use and we just use FreeSBIE. Even the stage is not as clear as the ones for Gentoo Linux. I haven't paid too much attention to the installer yet, but it might not be that difficult to have it working after catalyst and the livecd are working. Thinking of it, it would be really interesting to have it working ;)
DP: I think the most important thing is communicating. It's difficult to not waste time when working in parallel without direct contact, but that seems to happen more than it should. All help is welcome, in all the projects - it can go from a simple test of the released stages to seeing if the documentation is still consistent (this helped Gentoo/FreeBSD a lot when the first stages were released, because as I was both the one preparing the stages and the one drafting the documentation, there was a huge list of details that were obvious for me but not for others), to helping with the toolchain patches, although this usually requires more technical knowledge (like BSD's mk and autotools knowledge, or C coding knowledge). We have an IRC channel on freenode (#gentoo-bsd) and the two gentoo-bsd and gentoo-alt mailing lists, although most of the coordination is being done on the channel. Also, users are invited to file bugs on http://bugs.gentoo.org/ when they find problems with ebuilds (and other places). From there it's easier to track down the specific problems and to forward them to the right people when it's needed.. and it also helps us to not forget about the bugs :)
DP: Thank you for the interview, I'm sorry for the long delays. I'd like to say to the people wanting to try Gentoo/FreeBSD that a new experimental stage will be available next week, with a working networking script and a few fixes from the last one, so everybody wanting to try it out should have less work to do than with the current stage. Also, I have to thank all the people helping with the project, not only the official developers but also all the users on #gentoo-bsd channel, Ignacio Arque-Latour who helped with the installation guide, and Marius Morawski, author of the daemonized "g" logo that we use as Gentoo/FreeBSD's logo. Finally, I'd like to give some personal advice to anyone who ever had a silly idea and saw it dismissed as pointless: don't leave anything untried. Gentoo/BSD is now mainly a work of stubbornness. Lots of people told us it was unrealizable to come to the state we're at now, but with effort we came here and we're going even further (I just fixed the routing support last night, for example). As silly as they [silly ideas] can be, there's always something good in trying new ways. Also, if they can't be better in every and all aspects, it's always worth a try. --
David Stanford- |