A Look forward to Fedora 12 (Constantine)

So, they’ve named Fedora 12 Constantine. Both Constantine and Leonidas are towns in Township in St. Joseph County, Michigan. There is going to be much more to the new Fedora than just a fancy pants new name, so lets look at the accepted features. It needs to be noted that since Fedora has hit the feature freeze stage new features will not be added (except in an exception :P) but may be dropped.

Better Webcam Support

If you’re like me and have a webcam that sends a jpeg (or even worse, a proprietary compression) stream from the sensor through USB then you’ll like this one. The kernel guys have been adamant that JPEG decompression should not be in the kernel. This makes it hard to present a common interface to userspace, as the stream could come in several different formats. To fix this problem drivers are having their decompression code moved out of the kernel and into a new library, called libv4l.  libv4l presents a common interface for all the webcams it supports to applications, this includes v4l1 and v4l2 webcams. This feature also involves porting applications (like cheese, ekiga and amsn) to this new library.

DebugInfo Filesystem

Currently should you want to debug a package in Fedora you have to install the often large -debuginfo packages. For example the kernel-debuginfo package is usually around 300Mb compressed. When installed this figure can inflate to up to 400Mb. With enough debug packages installed this can quickly fill your system. Even if you install a debuginfo package often the whole package isn’t required, for example installing the kernel debug information just to write SystemTap scripts or to debug a single module. This feature allows debug information to be installed when required and only what is required. This is most useful when users are reporting bugs, as their machines can resolve the addresses in the backtraces on the fly as bugs are reported. This means we get better bug reports, which leads to easier fixes, which leads to more time, which leads to more features and who doesn’t want more features?

DisplayPort Support

DisplayPort is a new type of connector that was designed to replace DVI and VGA. Designed by the people at the Video Electronics Standards Association (VESA), like its predecessors it is royalty royalty free. It is going to be extremely important for laptops, which will most likely switch to it because it uses less power and DVI and LVDS. Adding support for DisplayPort will be more complicated than others but most of the work will be able to be shared (by putting in Xorg or the kernel).

Dracut

Currently when a Red Hat system boots, it loads the initrd, and starts nash. Nash isn’t really a shell its just enough to get load the correct drivers and to finally load init. To rebuild your initrd (to include an extra drive for example) you use a tool called mkinird. These tools are maintained by Red Hat and they have done the bulk of the development work. A better approach would be to have a common set of tools to build Linux ramdisk images that can be used across many distributions. That is basically what Dracut is, and this feature is about moving Fedora to these new tools.

Empathy

GNOME dropped Pidgin and now heralds Empathy as the official instant messenger application. Empathy includes not only instant messaging, but also voice and video chat. It can connect and voice/video chat to Google Talk and other XMPP/Jabber users. Another awesome advantage with Empathy is that it includes an API to allow other applications to check your status online. Empathy will enhance the Linux Desktop experience and provide an instant messaging experience that Pidgin simply can’t.

LibLVM

Should you currently want to write a program that creates, removes or alters in any way the LVM setup of the machine your only option is to exec the command line tools, and parse the output. While this approach does work (anaconda and system-config-lvm currently work this way) it isn’t perfect. What is really needed is somebody to come along and write a library to directly interface with LVM that works in an object oriented fashion. This library is currently being written for Fedora 12 and according to the project pages it is 25% complete.

Multiseat

With the current economy saving money is as important as ever. Multiseat will allow you to plug two keyboards, mice and monitors into the same computer and allow each to work independently. This effectively allows two (or more) users per computer, saving you from buying two PCs. The last time this support was available was Fedora 8 but it was dropped in order to use the new GDM, ConsoleKit and X.

NetworkManager Improvements

When I first used NetworkManager I hated it, and I immediately disabled it and rolled back to the network service. The second time I used it things went a little better, but I still ended up disabling it. In Fedora 10 NetworkManager worked flawlessly for me and I discovered that NetworkManager was previously working as well as it could with a poorly written wireless driver. Yes, NetworkManager has copped a lot of flak recently but its constantly improving and some of its problems are caused by dodgy drivers. This feature (actually two on the Fedora 12 features page) focuses on getting system connections working (the ones in /etc/sysconfig) and IPV6 support.

NFS Client IPV6

At the moment IPV6 roll outs across enterprises are happening, but not at a fast rate. There is a lack of support for many applications and the nfs client is included, yet Solaris has had support for NFS over IPV6 for years. This adds one more application to the slowly growing list of applications that support pure IPV6.

PolicyKit 1.0

PolicyKit is a tool kit designed to allow applications to request escalated privileges, for example the time/date control panel can request access to set the system time or the shutdown dialog can request permissions to log out other users prior to shutdown. Unfortunately the current PolicyKit design is not flexible enough. Fortunately it’s been redesigned and now the new improved PolicyKit is ready to take over. It now includes a plugin API and you can change exactly what admin authentication means.

Systemtap static probes

So if you haven’t heard of SystemTap you soon will, I’ve got a post on it coming up shortly, but for the moment just think Dtrace for Linux. Anyway, SystemTap lets you monitor the performance of your machine and your applications in ways that you define. For example I can monitor how many reads Firefox makes while sitting idle on my system (quite a lot actually) but at the moment I can’t monitor how many hits firefox gets in its cache, or how fast queries to its built in SQLlite database are. If static probes were inserted into Firefox at these particular points then I could, and this feature focuses on getting static probes into postgresql, xorg-x11-server, openjdk, tcl and finally firefox.

XZ RPM Payloads

XZ is the new version of LZMA which offeres better compression at faster rates. This means that RPMs in Fedora will be smaller and will be able to be downloaded quicker. This feature will mean that more RPMS can fit on each DVD (or CD) allowing a bigger distribution on the same media. This feature will also help users on slower connections who are currently using deltarpms as now the deltarpms will be even smaller.

x86 Improvements

The Processor world is constantly moving forward, making new processors and dropping old ones on the floor. Fedora is also moving forward, and its come time to drop support for some older processors so we can optimise for the newer ones. So the proposal is that for Fedora 12 i586 support be dropped and packages be optimised for the i686 architecture. For me personally this means that my extremely old HP Desktop will no longer run Fedora, but at 800MHz and with 256Mb of RAM I should probably be retiring it soon anyway.

Random Thought: Which distro has the highest version number? RHEL is at 5.4, Ubuntu is at 9.04, Fedora is at 11, Gentoo is 2009.0 and Mandriva is at 2009.1. So I guess Mandriva wins 😀

Edit (20/7/2009): According to the Fedora 12 Features pages many many new features have been added. A repost will follow in a few weeks.

Edit (6/8/2009): You’ll find the current feature list in my new post titled Fedora 12 (Constantine) Features.