News and Editorials
July 2, 2007
This article was contributed by Donnie Berkholz
Package management is one of the key defining characteristics of a
distribution. The question of where package management is going should be of
interest to anyone involved with a distribution or administering a
Unix-based box of any sort. In many distributions, package management
appears to have reached a near standstill. For example, the RPM format has
hardly changed in years. In Gentoo, however, ongoing development of package
management is so popular that three separate, actively developed package
managers exist.
Over the past couple of years, many developers have grown increasingly
unsatisfied with Gentoo's default package manager, Portage. Portage is a
high-level interface to Gentoo's package format, a series of scripts called
ebuilds. Unfortunately, Portage wasn't planned out in the first place, and
features have been added ad hoc over the course of many years. Today, it's
extremely difficult to add features to Portage or interface with it because
there are complex interdependencies and a pretty much nonexistent
API. Consequently, two groups of developers decided to start fresh with two
separate projects: paludis and pkgcore.
Paludis is implemented in C++ and bash, with a C++ API and an optional
Ruby scripting API. One of the
biggest features that Portage lacks but Paludis supports is the ability to
remove all unused dependencies of a package when removing that
package. Also, it has a much more flexible configuration system,
user-definable hooks into the build process, user-defined sets of packages,
and clean support for multiple repositories. In Portage, secondary
repositories (called "overlays") are second-class citizens. Furthermore, Paludis
added a number of features Gentoo developers have been requesting for years
that add flexibility to how dependencies can be specified. Paludis contains
a number of modules, including:
- paludis—package installation, removal, and queries
- contrarius—a client for building cross-compiling toolchains
- inquisitio—a package searching client
- qualudis—a quality assurance tool for ebuilds
- adjutrix—a tool for architecture teams
Paludis includes experimental Portage support as of the end of March. This
means you can try it out without wasting time migrating config files over,
which significantly lowers its barrier to adoption.
Pkgcore is implemented in Python, the same language as Portage, with a few
time-critical modules in C. It was designed so that there's no reason it has
to be Gentoo-specific—it could easily support other package
formats. Its philosophy is to maintain complete backwards compatibility with
Portage while recoding it in a clean, maintainable, extensible fashion. Some
of the code written for Pkgcore has been pulled back into Portage, such as
the cache-handling code. Its 0.3 release finally reached a point of
usability because it added frontends with comprehensible output—one
that mirrors Portage and another that mirrors Paludis. Despite being in
Python, it runs shockingly fast—it is a good example that not all
programs written in high-level languages need be slow. The Pkgcore API is also viewable online. Some
of the utilities Pkgcore includes are:
- pmerge—package merging and unmerging
- pmaint—repository maintenance: syncing, etc.
- pquery—package searching
- pcheck—QA checker for ebuilds
A couple of interesting features Pkgcore has are N-parent inheritance of
eclasses (a Portage feature that allows inheritance to be used in bash code)
and an ebuild daemon. The daemon has a number of benefits including
near-linear scaling to multiple processors for some tasks—Pkgcore's
home page cites ~90% scaling on a quad Pentium 3. And of course, one benefit
over Paludis is that you don't need to use the occasionally less-than-speedy
g++ to compile it.
Pkgcore and Paludis seem fairly well-matched in the features
department. They both support sets, the additional dependency flexibility,
integrated checking for security vulnerabilities, and Portage's on-disk
format. Another useful feature they both support is the ability to restrict
packages to install based on their licenses. This gives users the choice of
how free they want their installations to be, from FSF-compliant to packed
with proprietary. Both projects have active teams working on them of between
5 and 10 developers each. In comparison, Portage is primarily maintained by
potential masochist Zac Medico—a glance through the ChangeLog showed
that he was the only committer since January.
The advent of multiple package managers accelerated Gentoo's need to adopt a
formal Package Manager Specification. In the past, new features or breaks in
backwards compatibility in Portage simply forced a wait of roughly 6 months,
at which point it was assumed that nobody was using those old Portage
versions anymore. Problems with that should be readily apparent. When new
package managers came along, additional questions came up of which aspects
of ebuild behavior were intrinsic behavior and which were Portage-specific
details. With only one implementation and no spec, it's hard to draw a line.
Together, these two developments motivated creation of an Ebuild API or
EAPI. The current generation will be EAPI=0, which is being documented in a
formal specification. Once this spec is done, Gentoo will have a process in
place for dealing with ebuilds using new features and for dealing with
breaks in compatibility via setting in each ebuild the EAPI that ebuild
supports. This will enable near-instant use of new features that Gentoo
developers have already been awaiting for years as well as agreement upon
how all these package managers must act in common and where they have
flexibility to be different.
Comments (13 posted)
New Releases
Slackware 12.0 has
been released.
"
Well folks, it's that time to announce a new stable Slackware
release again. So, without further ado, announcing Slackware version 12.0!
Since we've moved to supporting the 2.6 kernel series exclusively (and
fine-tuned the system to get the most out of it), we feel that Slackware
12.0 has many improvements over our last release (Slackware 11.0) and is a
must-have upgrade for any Slackware user."
Comments (15 posted)
The Ubuntu project has announced the release of Gutsy Gibbon Tribe 2,
which is a pre-release of Ubuntu 7.10.
"
Tribe 2 is the second in a series of milestone CD images that will be
released throughout the Gutsy development cycle. The Tribe images are known
to be reasonably free of show-stopper CD build or installer bugs, while
representing a very recent snapshot of Gutsy."
Full Story (comments: none)
Distribution News
Voting is open for the Fedora Board elections in which 3 of the 9 seats
will be chosen. The candidates are Christopher Aillon, Dennis Gilmore, Bob
Jensen, Brian Pepple, Jef Spaleta and Rahul Sundaram. Voting will end at
Jul 8 23:59:59 UTC and anyone who has signed the Fedora CLA (ie: is in
cla_done in the Fedora Account System) is eligible to vote.
Full Story (comments: none)
Fedora Core 5 has gone into retirement. No further updates will be issued
for FC5 or FE5. Fedora developers will now focus their attention on the
development of F8 and maintenance of Fedora 7.
Full Story (comments: none)
Nominations are open for the Gentoo Council and will remain throughout
July. Voting will be open during August. Only Gentoo developers may be
nominated or vote.
Full Story (comments: none)
The xmms package in Debian may be removed from the archive, along with many
plugins. Click below for the rationale and complete list of packages
involved.
Full Story (comments: none)
Debian's unstable branch is undergoing a transition to GCC 4.2. "
GCC
4.2 was released on May 13 and has been in unstable since roughly that
time. The default version of gfortran was recently switched to 4.2 and the
Debian GCC maintainers would like to move to 4.2 as the default compiler in
unstable for all architectures and for all languages with the exception of
Java (which will follow later). This message describes the plan to make
this transition possible."
Full Story (comments: none)
New Distributions
Fluxbuntu is a LPAE-standard compliant,
Ubuntu-based distribution. It is lightweight, swift and efficient. These
features support the Fluxbuntu Linux Project's Goal of running on a wide
range of mobile devices and computers (low-end & high-end). According
to the
Release
Schedule the first test release is expected to coincide with the Gutsy
Tribe 3 release on July 19. ["LPAE" appears to stand for "lightweight,
productive, agile, and efficient" - we had to look it up too.]
Comments (none posted)
Distribution Newsletters
The Debian Weekly News for July 3, 2007 covers CD and DVD covers for Debian
4.0, Alioth has been upgraded to etch, Kurt Gramlich announced a Skolelinux
Youngster Meeting on July 20th to 26th in Chemnitz, Germany, Call for
Papers for LVEE-2007, interviews with Sam Hocevar, a collection of Debian
Art, removing PHP4, Release Team Meeting Results, and much more.
Full Story (comments: none)
Issue 94 of the Fedora Weekly News is out with the latest information on
the Fedora distribution.
Full Story (comments: none)
The second issue of
Full Circle Magazine, the independent magazine for the Ubuntu community,
is online. Topics include:
Flavour of the Month - Kubuntu,
How-To - Ubuntu on the Intel Mac Mini, Virtual Private Networking,
Learning Scribus Part 2 and Ubuntu for your Grandma!, Review - System 76
Darter, Top 5 - Widgets and MyDesktop, MyPC and more!
Comments (none posted)
The
DistroWatch
Weekly for July 2, 2007 is out. "
The release of the General
Public Licence version 3 and the new Linux edition of Google Desktop were
the primary generators of headlines on most Linux news sites during the
past week. In contrast, all was quiet on the distribution development
front, with only Dreamlinux, Scientific Linux and a few minor projects
announcing new stable releases. But don't despair; this week's DistroWatch
Weekly is still packed with interesting topics, including an interview with
Clement Lefebvre from Linux Mint, a rebuttal by John Murga from the Puppy
Linux forums, and information about some other interesting news of the
week, such as the new PC-BSD LiveCD and the latest version of the GNU/Linux
distro timeline. And if you are looking for something to test and play with
during the slow months of July and August, don't miss the new distributions
section which presents no fewer than 6 (six!) new distro projects that were
submitted to DistroWatch last week."
Comments (none posted)
Distribution meetings
Ian Jackson has written a DebConf 7 trip report. "
Mako gave a
fantastic feelgood talk about how Debian is really interesting to all sorts
of people from outside the direct field of computing, like sociologists,
lawyers, voting reform advocates, etc. It made us all proud to be part of
Debian, and of course gave us an insight into how what we do affects the
world at large."
Full Story (comments: none)
Newsletters and articles of interest
DesktopLinux
takes a quick
look at the release of Scientific Linux 4.5. "
The Scientific
Linux project last week announced the release of Scientific Linux 4.5, an
install-only distribution rebuilt from source code for Red Hat Enterprise
Linux 4. It features a 2.6.18 kernel, GNOME default desktop, multilingual
support, and Xen paravirtual guest capabilities."
Comments (none posted)
Distribution reviews
Linux.com
reviews Yoper
3.0. "
Yoper claims to be a high-performance Linux distribution
optimized for newer processors. It incorporates components from other
distros, but its packages have been built from scratch to provide enhanced
performance. I tested a beta of Yoper 3.0 on my desktop a year ago and was
so impressed that when 3.0 was released this month, I installed it on my
new Hewlett-Packard Pavilion dv6105 notebook. Using it, however, left me
disappointed."
Comments (none posted)
TuxMachines
reviews
TinyMe, a scaled down version of PCLinuxOS 2007. "
TinyME might make
a good start for a server as all the important LAMP packages are in the
PCLOS repositories as well. One doesn't need all the extra goodies that
come with the big desktops these days for a server and LXDE would be good
for those that like graphical server tools such as webmin. I didn't have
an older computer handy on which to test it, but I imagine it would be
great for it. PCLOS developers build support for about everything into
their kernels and LXDE only requires a Pentium II and 128 MB ram if one
wishes to use like Firefox or OpenOffice.org. It is said that LXDE alone
can run in as little as 64 MB ram."
Comments (none posted)
Page editor: Rebecca Sobol
Next page: Development>>