Don't Trip on the Red Carpet, Evolve with GNOME CVS

By: Michael Hall
Friday, February 23, 2001 09:00:10 AM EST
URL: http://www.linuxplanet.com/linuxplanet/previews/3040/1/

A Good Week for Compulsive Updaters

I bet there's a malady common to all Debian users, courtesy of the addictive simplicity of apt-get: it involves running apt-get update ten times a day looking to see if any of the archives have changed, heralding the arrival of something good, like a nagging bug that's been fixed, or the latest release of a closely watched program. It's a sickness, but when you have a sources.list that includes everything from Galeon's latest builds to Evolution to the ever-evolving KDE2 archives maintained by Ivan Moore, there's always a chance something's changed.

This last week has been a great one for GNOME watchers, and it provided plenty of opportunities for a lot of apt-getting. Last Saturday, GNOME 1.4's first beta release came out. Ximian had it packaged and ready to go in remarkably short time. A few days later, Ximian was at it again,rolling out Red Carpet 0.9, which we'll look at further along in this column.

GNOME 1.4 Beta One: Hold Your Horses and Give it a Week
GNOME 1.4 Beta One provided a lot of people with their first look at the upcoming 1.4 release, including the first chance a lot of people just following along have had to see Eazel's Nautilus running on their machine. There's a lot of interesting stuff to see in the release, but it's a good one to stay away from for the moment unless you're genuinely interested in helping the developers find bugs. I emphasize that last because this is a case where they're making a widespread release to get the word out, get some eyeballs trained on potential problems, and prime Bugzilla with some fodder. They aren't releasing a new stable version you can get work done with, so people approaching it should take stock of whether they want to download it out of a desire to help or a need to have the latest and greatest because it's there.

Sometimes helping out your favorite project by compulsively downloading the latest snapshot or refreshing your copy of the CVS tree of a favorite project is hard. It involves things breaking, or going wrong, or not working as billed, and this particular release is no exception. Though the version of gdm, the GNOME X display manager, that ships with the beta has a "GNOME Classic" option for using GNOME 1.2, there are a lot of core libraries that get updated for this beta, and some things break as a result.

Download this with your eyes open or, better yet, give it another week or two: a second beta that will likely take care of the worst of the bugs unearthed by the more adventurous is supposed to be making its way out in a week (February 28).

Opportunity knocks in the form of a broken library
This brings us around to another issue, preparatory to getting a long-deferred hands-on with Red Carpet, Ximian's package manager, which is the price you sometimes pay for following a lot of cutting-edge projects closely: mangled dependencies. The latest victim of this particular syndrome is Evolution.

Evolution and Red Carpet both depend on the gtkhtml library. Evolution, for instance, uses it in part to render HTML mail and in part for composition of messages. A version of gtkhtml was shipped out that broke elements of the library needed to compose messages in Evolution, leaving a lot of people curious about Red Carpet with a broken mail client to contend with.

By the time this hits the web, there's a chance the snapshots Ximian is shipping will have corrected the problem (they're reportedly moving their servers this week, contributing to a slowdown), but in case it doesn't, this is an excellent opportunity for the curious to learn a little about GNOME CVS, because all that's needed to get both Red Carpet up and running and restore Evolution to proper functionality is a build of gtkhtml from CVS.

The GNOME project has provided a page that teaches a little about how to use anonymous CVS to get the latest elements of the GNOME project. There's no point in replicating all the information that link provides, since it's clear and concise and even I can follow along. The thing to keep in mind is just that in order to have both Red Carpet and Evolution running alongside each other at this point, you want to get a copy of gtkhtml with cvs -z3 checkout gtkhtml once you've set the proper environmental variables. You'll need to build the library and replace the existing gtkhtml once you've installed Red Carpet, because most of the means for obtaining it will automate the installation of the newer, broken version of the library.

Building from CVS, just to provide one more caveat for newer users, isn't the same as building from a tarball. CVS builds involve using the autogen.sh script found in the package's directory and passing appropriate variables to it much as you would with a typical configure script found in source tarballs. In the case of building for GNOME packages, putting new builds in right place is key. You'll likely want to use the line:

./autogen.sh --prefix=/usr --sysconfdir=/etc

if you're building against a GNOME installation you downloaded as binary packages for your distribution.

You can probably install the library over the existing one Red Carpet will install, but if you can, force the removal of the package using either the dpkg -r --force-depends command or RPM's rpm -e --force. Your package manager may complain for a day or two, but it's tidier when it comes time to resync with whoever's providing your binary packages, because you'll be able to simply make uninstall the library you built from CVS and replace it with a normal binary package when the time's right without worry of cruft being left laying around in your directories.

Looking at Red Carpet

So, at long last, down to the big item for the week which is Red Carpet.

People who have been downloading and using Ximian's GNOME desktop distribution for a while are pretty familiar with both the GUI installer and update tool Ximian uses to ease acquisition of their software. Red Carpet is the next generation of these tools, designed to not only make getting the basic desktop easier but providing an easy-to-use method for handling all packages on a given machine. In addition, Red Carpet will eventually be used to deliver commercial software from Ximian partners.

Getting Red Carpet
Red Hat 6/7 users can get Red Carpet via the current Ximian Updater by pointing it at the Red Carpet mirror. Debian users can add the following line to /etc/apt/sources.list:

deb ftp://spidermonkey.ximian.com/pub/red-carpet/binary/debian-22-i386/ ./

Keep in mind that installation of Red Carpet will, for the moment, break current snapshots of Evolution you may have on your machine, requiring installation of gtkhtml as detailed earlier in this column.

Red Carpet expects to find either Red Hat 6/7 or a Debian system in place. It didn't work on a Progeny Debian machine, which is based largely on Debian's Woody release, but did work on a Potato-based system.

Channel Surfing
Red Carpet describes the groupings of packages it presents as "channels". Users can subscribe to several possible channels at this point. On a Debian machine, the available channels included the Ximian GNOME desktop, Evolution snapshots, the Red Carpet release itself, and the Debian archives.

By subscribing to a channel, users can keep abreast of a specific project or collection of files. Once subscribed, Red Carpet downloads status information on the packages in a given channel at startup and notifies users of how many updates exist and how large a download they represent.

The channel concept is handy because it gives Red Carpet a certain level of versatility. It's possible to settle for simple package management for a vanilla installation by subscribing only to the basics, such as Ximian's GNOME desktop and the distribution's basic archive. For users who feel like following projects under heavy development, such as Evolution, adding a channel for that project makes for a painless way to keep up with the project without missing out on the latest developments because they're buried in with the more mundane basic packages. On the flipside, all those interesting bleeding-edge projects won't distract from the potentially more important business of keeping track of security updates and bug fixes for essential packages.

Using Red Carpet
Upon selecting a channel, users are presented with install and remove options. Selecting the install option presents a list of all the available packages in a given channel. The list is cleanly presented, showing the package name, the available version, and its size. In the preferences, there's a very nice option for selecting "pretty package names." Ximian has taken the time to provide easy-to-understand names for many packages with sometimes-obscure names. "xsane" for instance, changes to "Graphical Scanner Program (xsane)" under the naming scheme.

In addition to the clearer package names, a small information icon can be clicked by each package that presents a more verbose description of what the package does.

After the user selects packages for installation, Red Carpet presents a screen that provides some information on the downloads required. In addition to delivering the packages, Red Carpet also tracks and draws in any package dependencies and handles conflicts by notifying the user of any required removals. This is similar in practice to Debian's dselect or apt-get, or tools like gnorpm, but the process is much simpler than dselect (since there are fewer options) and presents a little cleaner interface than gnorpm. Red Carpet also takes the additional hand-holding step of warning that removing packages is a sometimes-risky proposition.

Getting the file for installation involves four stages:

  • Downloading
  • Verifying
  • Installing
  • Configuring
During download, users who access the 'net via modem or working in similarly bandwidth-constrained situations have the option to pause the file transfer. According to Ximian, it's possible to pause the download and disconnect from the 'net entirely in order to place a phone call, for instance, and then reconnect and resume the transfer.

The verification stage allows Red Carpet to compare cryptographic signatures on the packages to ensure they come from a reliable source, and it offers a warning if a package is unsigned/unverifiable. The usefulness for this in eventual commercial applications seems clear.

The installation and configuration stages involve unpacking the files in question and presenting dialog boxes for any configuration options. When I installed the gnome-pilot package, for instance, was presented with a small window prompting for the serial port on which our Pilot was connected.

Uninstalling packages was also simple: users select which packages should come off the system, Red Carpet checks for broken dependencies and handles the removal.

In addition to adding and removing packages and summarizing availability, Red Carpet offers a "news" page that provides brief headlines and information from Ximian which are downloaded at startup. The news page could turn Red Carpet into a really useful conduit for information about what's going on with Ximian and GNOME in general if Ximian chooses to keep the news feed updated. The thought of being able to check in on the latest by firing up a relatively small application as opposed to a full-blown web browser is a pleasant one, especially since that application then provides a streamlined means to acting on the information by downloading new stuff or updating existing packages on the spot.

Wrapping up on Red Carpet

And that's Red Carpet in a nutshell: you subscribe to a channel, pick some packages, get a little more information if you need, and download stuff. A simple enough process.

A lot of users may question the need for a tool like this. After all, there's always the aforementioned gnorpm or dselect to handle package management. In at least dselect's case, Red Carpet actually provides a little less fine-grained control.

The most obvious application is for the likely target audience: new users who want to maintain their machines with minimal hassle. Red Carpet presents a clean, easy-to-understand interface that reduces the task of keeping a system up-to-date to a simple process. Veteran Debian users may not be as impressed with the dependency/conflict resolution as users of RPM-based distros, but new users of all distributions who haven't learned their way around some of the less ergonomic hangups of their package management tools will find some relief here.

More experienced users who like to follow specific projects will also find some use for Red Carpet. Though it's always easy to add a line to /etc/apt/sources.list, that doesn't provide a way to discriminate on the source of incoming updates or provide much information on what's new. Red Carpet allows users to keep an eye on a rapidly-progressing project like Evolution and remain aware of where package updates are coming from.

Finally, Red Carpet is also going to serve as a conduit for commercial software. Even if the US is going to remain "Modem Nation" for the foreseeable future (55% of us will still be using dialup connections in 2004, according to one study floating around out there), the gradual introduction of consumer broadband will make this sort of 'net based distribution model more and more attractive.

Though Red Carpet is still officially a beta product, it ran smoothly and did everything as advertised without a single crash or hang. Ximian's done a great job of producing a simple, easy-to-use tool that provides a great way to enjoy the wealth of software available under Linux without becoming too immersed in packaging system arcana. It's well worth downloading and trying out.

Copyright Jupitermedia Corp. All Rights Reserved.