DæmonNews: News and views for the BSD community

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>

For those of you who don't know (and I'm sure there are many), Gentoo/BSD is a relatively unheard-of project with aims of merging both Gentoo Linux and the BSD systems respectively into one operating system. The project, which is sponsored by Gentoo Linux, has goals of creating a hybrid operating system using BSD underlyings, such as the kernel and system libraries, with Gentoo's portage system (package manager), administration facilities and design principles integrated on top. Wikipedia.org has a particulary well worded introduction of Gentoo/FreeBSD listed on their website:

"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!

--


David Stanford: First, I'd like to thank you Diego for taking time out of your day to answer some of our questions. Second, would briefly inform of us of your involvement in the Gentoo/*BSD project and give us some background information on it and what some of its goals are?

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.


DS: I think many BSD and Gentoo Linux fans will be wondering when and how the project got started. I know you have not been with the project since its inception, but could you shed some light on this from what you have gathered from the other Gentoo/BSD developers?

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.


DS: You mentioned that Gentoo/FreeBSD is currently the furthest along, as it was more consistently worked on than either Gentoo/OpenBSD or Gentoo/NetBSD. About how long do you expect it will be until an ‘official’ release is ready of Gentoo/FreeBSD? Do you feel the other two subprojects are still a long way off from official releases?

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).


DS: I noticed that there also seems to be a DragonFly BSD port (dfly) which is currently being considered for development. Could you give us any additional information on the status of this port?

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.


DS: Is there a hope that the project will attract some BSD fans and introduce them into the Gentoo world? What kind of users do you think will most benefit from Gentoo/BSD?

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.


DS: I would imagine that being a Gentoo/BSD developer requires quite a bit of knowledge of the interworkings of BSD systems. Outside of the Gentoo/BSD project, do you or any of the other developers use BSD systems during your daily activities? If so, do you have a preferred BSD OS?

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 :)


DS: Will users be able to choose which package management system they would like to use on Gentoo/BSD systems (i.e. ports on Gentoo/FreeBSD or pkgsrc on Gentoo/NetBSD rather than portage)? Can they use both simultaneously?

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.


DS: Prior to the release of Gentoo Linux 2006.0, and the new LiveCD Installer, it was considered by many that installing Gentoo Linux was a daunting task. Are there plans for eventually developing an installer for the Gentoo/BSD's or will installing a Gentoo/BSD the traditional way be the only option?

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 ;)


DS: What advice would you give users interested in contributing to the project?

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 :)


DS: Diego, again, let me say thank you for your time. Is there anything you would like to add or mention to the readers?

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-
I would like to give a big thanks to Diego Pettenò for interviewing with us. More information on the Gentoo/BSD proect can be found on their website. If you are interested in contributing to Gentoo/*BSD, you can do so by visiting their Gentoo/ALT Contributor's Guide page.

Google
Web daemonnews.org

More Articles
  • Installing BSD on IBM Netvista S40 - Part 1: FreeBSD Installation
  • Interview with Jan Schaumann
  • Interview with Theo de Raadt
  • Book Review: Virtualization with VMware ESX Server
  • Editorial: Not Quite Dead Yet
  • The Design of OpenBGPd
  • Interview with der Mouse
  • Letter to Steve Jobs
  • Interview with Manuel Bouyer on Xen
  • Apple and Open Source
  • BSDCan 2006
  • BSD Certification Survey Results
  • Lab in a Box
  • Ike Notes on BSDCan 2005
  • BSDCan 2005 Photos

  • Advertisements

    BSD News
  • First alpha version of MirOS Live/Install CD
  • OpenBSD Developer Blog: todd: T1 art(4)
  • Response to Slashdot Posting of "A Brief History of Apple Open Source Efforts"
  • Submit A News Item
  • GNU RCS being replaced with OpenRCS in OpenBSD
  • John Baldwin on FreeBSD
  • Card reader for FreeBSD
  • OpenBSD Developer Blog: marco: OpenBSD Funding
  • Interview with Peter Hofer from DesktopBSD
  • OS Virtulization on Intel based Macs
  • Sendmail may turn tools over to open source
  • Gregory Magnusson on Using BSD
  • Interview with Devon O'Dell and Jason Dixon



  • Author maintains all copyrights on this article.
    Images and layout Copyright © 1998-2006 Dæmon News. All Rights Reserved.