For a while now, the OLPC Sugar OS has been a derivative project based off of Fedora Core 6 and existing within Red Hat's own build infrastructures and repositories. With the advent of Fedora 7 and the merge of Core and Extras it now makes sense to tightly integrate the OLPC OS project under the Fedora umbrella to allow for easier community participation as well as more aligned development goals that will benefit both projects.
This initiative involves a meeting of the minds on a few issues and can serve as a template for participation of other high level projects within Fedora. The first is OLPC's usage of the Fedora infrastructure in the case of build servers, version control repositories and OLPC member access as co-maintainers to certain base packages. The second is the creation of a separate OLPC development repository for packages that don't make sense in Fedora or are not yet stable and conforming to Fedora release schedules. While we could set up our own structure we believe it better to be part of the Fedora infrastructure as it encourages participants to move towards integration into Fedora proper at a later date.
Another issue is future development philosophy which we hope will lead to a more modular Fedora allowing it to become the basis of more projects from embedded to large servers without having to fork and maintain separate packages just because they are not fine grained enough (for instance gnome-vfs' insistence on bringing in the whole GNOME desktop).
Below we discuss our proposed actions for integration with Fedora 7 and future thoughts about how we wish to participate in Fedora 8 development.
Fedora 7 OLPC Rebase
File:OlpcFedoraPartnership fc6tof7olpcmove.ods This OpenOffice Spreadsheet] contains a detailed summary of packages currently forked from Fedora Core 6 which OLPC uses. It lists actions for integration and rebasing on Fedora 7. The actions field lists a couple of different actions we can take with each package:
- Keep means we can keep using the current version in F7
- Update means the F7 version should be updated to a new stable version
- Fork means the package is unstable or changing rapidly and we should put it into the OLPC repository
- Add means the package is stable enough to add to Fedora but is not currently in Fedora
At any point if we need a destabilizing change we will fork the package but if it is just bugfixes we will be able to contribute them back to Fedora, sharing the burden with other maintainers.
Fedora 8 Plans
There are two goals which OLPC would like to see reached or move towards in Fedora 8. These are pushing new technologies such as TUBES!!! into Fedora proper and fixing the dependency issues which cause small libraries to balloon into megs worth of unnecessary dependencies.
New technology is constantly being developed within OLPC which leapfrogs current generation Desktop in terms of innovative functionality. Mesh enabled applications, collaborative functionality out of the box and sandboxed download and run applications are a few things we would like to see added to future Fedora builds.
Dependencies are a necessary evil for allowing people to easily install applications without having to know every piece that is needed to make them run. Unfortunately over the years dependencies in our repositories have become a messy web of links that don't always make sense. The Fedora package reviews have gone a long way to fixing this but there are other things that need to be done to make the issue go away.
One of the biggest problems is derivative linking where an application requires a library that requires another library. In the case of gnome-vfs2 it has an ORBit2 requirement not because it itself uses ORBit2 but because it requires GConf2 which then requires ORBit2. We however have a drop in replacement for GConf called GConf-dbus which replaces the deprecated ORBit interface with a D-Bus one. Unfortunately gnome-vfs2 still requires ORBit2 even if it doesn't use it. Right now this requires we fork the gnome-vfs2 package in a clean environment so that it does not pick up the ORBit2 and other unwanted dependencies. This is a waste of resources since now two versions of gnome-vfs2 need to be maintained even though code-wise they are both identical.
We would like to help work with upstream and Fedora to fix this issue and find a way to reduce the number of hard dependencies packages have while still making it easy to yum install an application and have it work without further interaction.
Benefits to Fedora
- More developers working on cutting edge technologies which can be used for future Fedora development
- Developers can spread the load maintaining base packages
- Outside input from developers coming from a slightly different angle can only make Fedora stronger
- Making Fedora a flexible base for third party development
- Builds a tighter community around Fedora
- It's, you know, for kids
Benefits to OLPC
- use of the Fedora cvs and build infrastructure
- common goals mean less work
- one place to get secure RPMs for Sugar instead of the hodge podge of repositories we have right now
- more eyes on our packages means more potential contributors and better packages
The move has been approved by FESCo. Below is the status of individual packages needed for the move:
Packages that need updating in F7
|dhcp||anycast support patch needed||Built|
Packages that need to be branched into olpc-2 and updated
|SDL_mixer||Same as F7 with timidity++ turned off||Built|
|gnome-vfs2||same as F7 compiled against GConf-dbus||Built|
|totem||Same as F7, compiled against GConf-dbus||Needs xulrunner|
|wpa_supplicant||0.5.7||We can use the F7 version for now|
|gstreamer-plugins-base||Same as F7 with olpc spec||Built|
|gstreamer-plugins-good||Same as F7 with olpc spec||Built|
|kernel||OLPC's stable git branch||Branched|
Packages that need to be added into F7
|libertas-usb8388-firmware||5.220.10.p5||Need to figure out firmware policy|
|matchbox-window-manager||1.1||Request to push filed|
Packages that need to be added into olpc-2
|olpc-artwork||0.33||Built. Now sugar-artwork.|
|dbench (split off from olpc-utils)||3.04||Request Filed|