And to celebrate the occasion I'll be looking back over the past year, recounting some of our many successes and also given a glimpse into the future - at least the way I see Exherbo's future.
But first I'd like to thank all the developers and users contributing in various ways to Exherbo. According to
https://www.ohloh.net/p/exherbo there've been 52 contributors so far but that's leaving out people contributing to Exherbo related repositories that Ohloh doesn't know about or contributing in ways not involving commits. My guess is that we have had 60+ committers during this first year which is very good indeed.
A big thank you to all of you - Exherbo wouldn't have been anywhere near as usable without your continued commitment.
State of ExherboAt this point I consider Exherbo very usable and quite stable. There're still major changes happening from time to time but usually the upgrade path can be easily explained in a few lines on the exherbo-dev mailing list.
As for packages we have supported KDE, Gnome, XFCE and Awesome on the desktop for a long time now. On the server side we have most of the usual suspects as well including the apache and lighttpd webservers, samba, exim, postfix, sendmail and so on.
Many people are likely still missing a couple of packages but that's easily solved using importare, writing your own exheres package or requesting it in the #exherbo IRC channel.
Many people have also started to test Exherbo after we started publishing Exherbo images for virtual machines. Just recently it became possible to easily build your own Exherbo images from scratch which will hopefully lead to lots of new ideas for Exherbo and make it easier to mold Exherbo to specific needs.
A year of accomplishmentsThere's been too many interesting things happening around Exherbo this past year to name them all but here's a mostly chronological list of major events. All these events have helped shape Exherbo one way or another.
June 7th 2007
Stephen Bennett sets up the exherbo-dev mailing list. Everything keeps happening on IRC.
August 5th 2007
The old goatoo repository is killed and everything is moved to the new arbor and exherbo repositories. We still live in the dark subversion age.
October 13th 2007
Importare is born, makes life much easier as we have very few packages at this point in time. As described on
http://ciaranm.wordpress.com/2008/05/20/managing-unpackaged-packages-or-whats-this-importare-thing/ importare is a paludis client allowing proper package installs, uninstalls and upgrades without an exheres. At a point where we still had very few packages beyond what's required for a base system install this had a big impact on Exherbo. Importare is as important today as it was a year ago as it allow to concentrate on widely used packages instead of spending time on more obscure packages.
July 5th 2007
Support for the Exheres format is added to Paludis. Officially it's described as a test EAPI used to play around with new ideas that might not be suited for Gentoo.
July 24th 2007
We solve the problem with colliding source tarball names by introducing arrows. This allows us to rename distribution files on mirrors and locally to include package versions for example.
December 7th 2007
We add a commits mailing list. This is a big help for reviewing commits and lots of bugs are caught this way.
Early January 2008
Our mascot Zebrapig is born.
January 31th 2008
We add src_prepare and src_configure phases to exheres-0. For many packages this helps us write much cleaner packages as it matches the stages of the build process much better than just having one big src_compile phase.
March 14th 2008
First draft of Exheres-for-smarties is committed. Exheres-for-smarties becomes our main technical document on the Exheres format and repository structure.
March 15th 2008
We add :* and := support to specify slot dependencies more precisely.
May 2008
We gain a new, much better default src_install implementation which was later followed up by revamping pretty much every default function as well as the various helper functions. We also switched from subversion to git and had the frst archived discussion of replacing categories - this is still a frequently discussed topic.
May 18th 2008
Announcing Exherbo on my blog
It took only an hour or two from my announcement being published to it hitting Slashdot, Digg and The Register to name but a few. The next several weeks was spend answering tons of questions and trying to resolve the worst misunderstandings.
May 23th 2008
We got tired of answering the same questions over and over so Ciaran wrote a quick install guide on
http://ciaranm.wordpress.com/2008/05/23/installing-and-configuring-exherbo/. This is of historical interest only but it was important at the time as it allowed us to get back to development for the most part. It's also interesting as a fairly accurate description of the state of Exherbo back then.
June 4th 2008
FOSS Aalborg takes place and I open with a talk describing the main ideas behind Exherbo, some of the bigger issues we want to solve and why I chose to start a new Linux distribution instead of joining an existing distribution. Much interest shown and it was quite encouraging for myself to present my ideas before a large crowd of technical people. The video of my talk is still available at
http://mirrors.dotsrc.org/blivklogere/foss_aalborg/2008/a_Linux_distribution_is_born--Bryan_Oestergaard--english--FOSS_Aalborg.mp4.
June 12th 2008
We add UnavailableRepository to Paludis and get a much better grip on the expanding number of package repositories. The script we use to build the package indexes for all the repositories hits Gentoo hard and we had to fiddle a bit with the updates before everybody was happy :)
August 17th 2008
My first "Exherbo goals" mail. This has become a series of mails where I describe the state of all the different ideas and features we're working on.
August 27th 2008
KDE 4.1.0 has landed! This marks the beginning of Exherbos KDE support and one of the more important milestones for desktop systems.
September 17th 2008
Markus Rothe announces his first PPC64 stage tarball. Markus ported Exherbo to PPC64 in fairly short time and is one of our many frequent contributors.
October 2nd 2008
Exherbo-cn, one of the early user managed repositories starts. It shows the strength of our distributed repository model by providing packages for Chinese support (fonts, input methods and so on). Exherbo-cn continues to be very active and one of the stronger parts of the community surrounding Exherbo.
October 4th 2008
The second day of the danish open source conference Open Source Days take place and I give a talk on my favorite subject - how we're rethinking Linux distributions and what it means to both developers and users. Unfortunately there's no video available of this talk.
Besides the talk we also had a fairly successful booth with plenty of visitors throughout the day. All in all a very good experience that I hope to repeat this year.
October 6th 2008
We add Unwritten repository support to Paludis and move all package requests from Bugzilla to unwritten so we can query them using paludis just like other packages.
January 26th 2009
Just in time for FOSDEM Ciaran adds AccountsRepository support to Paludis. Packages can now depend on users and groups just like they would depend on various libraries. We quickly proceed to kill enewuser and enewgroup usage.
February 7th 2009
I was invited to FOSDEM as a maintrack speaker and had a blast! I gave a talk on '10 cool things about Exherbo' where I presented some of the cool things we've done to improve the user and developer experience. The rest of the weekend I was constantly approached by people wanting to know more about Exherbo and it was definitely my best FOSDEM experience so far. Video from my talk is available at
http://video.fosdem.org/2009/maintracks/.
February 11th 2009
I reorganised our website and changed the build infrastructure to make it easier to maintain. The new website makes it much easier to find needed information and just as importantly it makes it quite easy to contribute updates and new content.
February 14th 2009
First mention that I can find of Sydbox, our future sandbox implementation written by Ali Polatel.
February 12th 2009
We add parametrised exlibs. This is quickly used to specify supported autotools versions, perl module authors and a host of other things making many exlibs much cleaner.
February 15th 2009
We add src_test_slow() phase for those packages that takes a ridiculous time to run their testsuites, often measured in hours. Users can control this with a build_option.
March 2nd 2009
Jonathan Dahan grabbed the chance and wrote an install guide for Exherbo as well as a short FAQ. This is the first major piece of user contributed documentation to the website.
March 3rd 2009
First virtual machine images are published and becomes quite popular. The images are all built manually which convinces me to start writing a script to build them.
March 19th 2009
We replace versionator by internal functions. This way we can take advantage of Paludis own version comparison primitives instead of trying to keep a bash script in sync.
April 14th 2009
First release of Sydbox by Ali Polatel. Sydbox is intended to replace Gentoo's sandbox implementation in Exherbo and should fix most if not all the shortcomings of the existing sandbox implementation. This is an important example of core code being contributed to Exherbo from a user and shows that there's really no distance between users and developers in Exherbo.
May 10th 2009
I published my script for automatic KVM image creation. Several bugfixes and general clean up of the script is offered over the next few days.
Future expectationsExherbo differs greatly from most other distributions and we don't really follow the normal pattern for distribution development. We have no release schedule for example - in fact we don't have any plans of a release at all!
That is not to say that a proper release might not happen but we'd need convincing arguments why a release is necessary before spending lots of time on it. So what do we do when we're not building new releases?
Small improvementsWell, most of our time is spend on what I consider small improvements. Much of the above list describe such improvements. Looked at individually they're interesting but rarely earth shattering. Based on this my predictions of what's to come is also going to be mostly about small but important things with a few bigger things thrown in as well.
Stable Exheres formatOne of the most obvious things are the ever evolving Exheres format. At some point we're going to define our first stable format exheres-1 and convert our repositories to that. Before that happens I'd like to see proper support for binary packages and multi-ABI though.
Binary packages already works but we need to fix various problems before using it more officially. For multi-ABI we have the design more or less pinned down but there's some pretty annoying implementation issues that we need to work out.
Build infrastructureWe already have some parts of the infrastructure needed to build various Exherbo blobs like KVM images for example but lots more is needed.
Right now we can build KVM images for x86 and amd64 in a fairly inflexible manner. We need to expand current scripts and write new scripts allowing us to automatically build binary packages, several different kinds of image files, flexible configuration of partitions and file systems. And while at it we need to expand all this to be able to build images for CDs and USB sticks as well.
The build infrastructure should also be able to easily build customised images and be used for more or less unrelated purposes such as tinderboxing.
New init systemThis is one of the more mysterious Exherbo projects but also one of the things that I'm most excited about personally. I've talked about it in public on several occasions so many of the basic ideas are already known. That said it's changed direction quite a bit and should be even more interesting when it's finally published.
Easier management of our distributed repository modelOur model of many Topic Repositories and Developer Repositories works fairly well as is but there's no doubt it can be improved further. Currently we want to implement a "repository of repositories" so you can install new repositories using paludis just like you install packages. As we continue to grow and refine our model I'm sure we're going to focus even more on this area and I'm looking forward to seeing what exciting ideas we're going to come up with in the future.
Better documentationThis is one area that haven't got a lot of focus so far. Our documentation mostly consists of Exheres-for-smarties and of course the paludis documentation. Lots of other areas needs to be documented and I'm hoping some users will step up to help with this important task.
Growing user communityThis one seems obvious at first but a large part of our users come to Exherbo because of the flexibility of the distribution and our strong focus on technical design of new features as well as the rapid development happening. This also means that many of our users actively participate in the development which is something I'm hoping to strengthen further as we go along.
It keeps the community very much alive and we seem quite capable of keeping the focus and direction of Exherbo despite having twice as many users contributing in the past year as there are official Exherbo developers.
New profilesOur current profiles aren't very flexible or useful. We have some vague idea of "mix-ins" allowing us to "mix" several different profiles like an amd64 profile + a KDE profile for example. The idea is fairly vague at this point but at some point we'll get much more flexible profiles allowing for easier maintenance and use.
The great unknownAnd perhaps the most exciting part of the future is the part that we can't foresee at all. The development rate have only increased since announcing Exherbo and we often get ideas from unexpected sources. Some of these ideas don't fit in very well with Exherbo and are quickly discarded but many ideas are used in one way or another. Usually that requires some molding to make the idea fit the rest of Exherbo properly which in turn might lead to new ideas.
This process of constantly exploring new ideas helps keep Exherbo at the forefront and definitely keeps it a fun project to work on.
Thank you all for being part of this project - Exherbo might be my baby but you're all helping it grow up and shaping it into something very exciting.