This week in Anaconda #6

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

This week’s entry covers building updated anaconda packages post-release, the UI redesign, and problems with the kickstart -noformat option.

Maintain

This first entry came up last week, but I ran out of space and got tired of typing so it got pushed off to this week’s report. bcl sent out a proposal for doing official anaconda updates for past releases. This is something that we’ve resisted in the past, with various degrees of success. We’ve also had the Fedora Unity guys help us with this from time to time.

The basic problem is that after a Fedora release, anaconda never gets updated though various other tools that anaconda does use do get updated. This isn’t a problem on most installation media because we never remake the media. It is, however, a problem for people doing livecd respins. What’ll happen is that anaconda will assume a particular library call for NetworkManager (just to pick on a component at random) that exists when the release happens, but changes in an update. Or something similar in udev. Or metacity. Or many other components. Then when you go to respin, it won’t work because anaconda’s never been updated to use the new function call.

Basically, bcl’s proposal is that over the course of a release, someone on the anaconda team (“Maintenance Release Manager”, as he calls it) will be responsible for backporting build fixes from master to the release branch, then doing an update. It’s also very important to note what his proposal is not. It’s not a way to get features into previous releases. It’s not a way to get every single bugfix backported. It’s not a way to get new official release media made. This is really only helpful to people doing respins.

I’m always a little skeptical of these proposals since they’ve come up so frequently and not gone anyway. I can see the need for it now (respins didn’t used to be a thing we did in Fedora), but no one wants to do updates because they’re hard and boring. Hopefully this has just been a case of people not being motivated enough and bcl will be able to turn this trend around. Good luck!

Interface

Our user interface redesign is in full swing, judging by the main thread started last week and the networking thread started this week. mizmo has been focusing on the syslinux boot screen over the past week and has some nice looking mockups ready.

Meanwhile, rvykydal posted another set of patches for configuring the network. This time, he’s trying to get the DVD installer to work more like the live CD installer by putting a panel in the DVD installer and running nm-applet out of there. I’m not sure how much traction those patches are going to get, but it’s an interesting idea and heads in the direction of bringing the two paths closer together.

As for me, I tossed out some comments on mizmo’s UI walkthroughs to explain why things are the way they are or where we can get rid of stuff entirely. For example, one idea I’ve got is killing the root password screen and setting up the first created user with sudo. It seems like a lot of other distributions are doing that these days.

Want even more UI? Check out Dustin Kirkland’s post on the matter. And if you’ve got any ideas, now is the time to jump in on anaconda-devel-list. Don’t wait until after the release to do your ranting. Help us out now while it’s still open to discussion.

Preserve

It wouldn’t be a week in anaconda without a partitioning problem. This time, it’s some weirdness with the kickstart –noformat option. Kickstart’s part, logvol, and raid commands all take a –noformat option that does exactly what it says: don’t format this mount point, but mount it anyway. This is useful if you’ve got a /home you don’t want reformatted but would like included in the finished system.

It’s also useful if you have really particular partitioning requirements. anaconda (and kickstart) don’t support every single option that mkfs, lvm tools, etc. take. This is on purpose, as they take a whole lot of options that would make for a UI nightmare. For those people, we suggest they make their partitioning layout in a kickstart %pre script and then use –noformat to preserve whatever they did. It works pretty well and everyone seems to be happy.

Unfortunately, sometimes we get people who have a previously installed / and they choose to not format it through –noformat or the UI checkbox. As you can expect, doing an install over top of that creates a giant mess and leads to really weird bug reports. So, dlehman has worked up a patch to prevent people from using an unformatted /. That’s good, oh except it breaks everything I just talked about in the previous paragraph.

dcantrell came up with a pretty good - if slightly complicated - proposal. His proposal basically involves a special %pre script option that would tell anaconda what mountpoint this script makes. Then, anaconda could check all –noformat lines against a list of things that must be formatted and then make sure there was a %pre script that generated them. While a little roundabout, this should take care of both cases above. No code yet, as we are still talking about the proposal.