This week in Anaconda #4

Posted on November 5, 2010 by Chris Lumens in work.

The biggest news this week is that Fedora 14 finally escaped from its holding cell into the wild. Congratulations to everyone who put in so much time on this release! I’ve summarized the relevant anaconda F13->F14 changes on the changes wiki page. As you can see, it’s largely internal stuff or tweaks around the edges. Lots of old crud got removed too. You can also see the changes from F14 to rawhide.

Releases are always kind of weird for me. By the time everyone else starts playing with the final release, I’ve already been working on the next one for a month or two. The bugs and quirks of F14 anaconda already seem so long ago. It’s just me, but I find it strange that people are still using install.img when I’ve had that killed for weeks.

libarchive is better than whatever we’ve got

A long battle in anaconda has been replacing our own implementations of things with whatever the rest of the system uses. I keep thinking we’re pretty close to done, but we keep finding more stuff that can go. This week, dcantrell proposed removing our own cpio code, since libarchive can do all that for us. It hasn’t been pushed yet but I expect to see it in pretty soon. This is just another example of how we can add features in a release and still shrink the code size. The result is fewer places where something can go wrong.

yum variables in kickstart

If you’ve ever looked at the yum repo config files, you have seen this:

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch

The $releasever and $basearch variables are substituted in by yum when it processes the config files. This keeps them nice and generic, so every release and architecture can get the same ones. Unfortunately, you can’t use the same trick in your kickstart files as was pointed out on kickstart list this week. As of this moment, we don’t have it tracked down quite yet but it should be fairly easy to solve.

We already have code to substitute $releasever, and we should be able to figure out $basearch too. And while we can probably use yum to figure that second part out, we’re on our own for the releasever. That’s because yum checks the version of the installed system-release package, and there’s no rpmdb in the installation environment to check. But still, this has all the makings of a problem where we have all the pieces, we just need to hook them up correctly.

This is also a great example of a problem identified by a user that we’re able to solve once we are made aware of it. I’ll let you know next week how it turns out.

What else?

Is there anything in particular that’s happened in anaconda recently you’d like to know more about? Something that just doesn’t make sense or needs a better explanation? Let me know. This isn’t a solicitation for bug reports - we get enough of those already - but for something that could benefit from discussion.