Some of the biggest problems I see in Fedora these days are the following:
Lack of direction
Since Fedora is a distribution for developers by developers in order to test out new technology, the main tree ends up being a hodge-podge of whatever each individual maintainer feels like working on. Unless there is an individual or small group of individuals that desires things to be a certain way, then you have to abide by those rules (take for example, no kmods in Fedora).
If Fedora had a better sense of what it should be doing it would polarize developers along the same path rather than everyone working for their own goals.
For example, I haven't seen any real ground-startling features for Fedora 7 or 8. Sure, Fedora 7 had "the merge", but that mostly was for maintainers benefit (arguably) and again was driven by very few people. For Fedora 8 one of the "big features" was supposed to be a rework of the init system, but that's again been pushed off. Instead we get features like "online desktop" and "NetworkManager". While these do improve user experience, they are very small nitches that don't involve developers for all of Fedora - just tiny groups of people. Everyone else is left to do whatever they want, so long as they don't piss off one of the groups that are in control.
Upgrades aren't supported - All hail Anaconda - the great
upgraderinstaller!Fedora (and RHEL/CentOS) needs to be able to upgrade online, using a tool like yum (or smart, or apt - I don't really care which tool it is - right now it seems smart could handle it better than yum). Most of the other distros can do this without problems (Gentoo, Ubuntu, Debian).
- No optional featuresets for packages - You have packages that either include the feature or do not.
I'm not sure how to fix the problems, but I do know that Fedora needs to make the following happen:
Make upgrades work - Even with Anaconda it wasn't possible to upgrade from FC-6 to F-7 without broken packages - an online upgrade would have arguable gone better, but it "wasn't supported". "yum upgrade" should work like "apt-get upgrade" between versions.
With the rolling release like we've been having the past couple versions, it's very easy for someone with an up-to-date release have newer packages than are available with the release of the next version.
Case in point: FC-6 had KDE 3.5.7, but F-7 shipped with KDE 3.5.6. Immediately after release 3.5.7 was available as an update for F-7, but an upgrade from FC-6 to F-7 wasn't supported due to libata changes (hda->sda). This stuff needs worked out so that you can update from one version to the next easily.
- Optional package features - Offer packages that can somehow enable/disable features based on what other packages are installed. Be able to install package foo that has either mysql or postgresql support, or both - even if they're compile flags. That is to say, if I have mysql currently installed, and I install foo, I get foo w/ mysql. Or if I try to install foo without mysql or postgresql, provide some way of saying that they can be supported if you install them.
Both of these problems are hard. They require coordination across all of the package maintainers. Perhaps they're features that could polarize the maintainers to a common goal and make Fedora better.
Delicious
Digg
Reddit
Technorati



The next question: what do you propose to do about it? :)
I would argue that Fedora doesn't lack direction; rather, you would prefer to see it moving in a different direction. Which is completely fair.
So what does "moving Fedora in a different direction" entail? You've got a number of options.
One of those options: run for the board of FESCO -- or even the Fedora Board itself. You're eligible for both. Throw your hat in the ring, make your case, and then if/when you get elected, argue passionately for change.
Another option, and one that's perhaps more useful: start a SIG (special interest group) around a feature that matters to you. Convince other productive developers that it's worth their time and energy to follow your lead. Think that more attention needs to be paid to "making upgrades work"? Start the "Fedora Upgrade SIG," whose *only job* is to run "yum upgrade" and catalogue and resolve all of the upgrade bugs. If you find enough people who agree with your goals, you can make it happen. Even if you don't succeed, you'll learn some pretty valuable lessons about how to lead people to a common goal.
So. Are you gonna drop the gauntlet like that, and then walk away? Or are you going to step up and make something happen? One choice will make you a de facto leader in the Fedora community. The other choice... not so much.
As I said, I don't have the answers. I don't have the experience with yum to make updates work flawlessly, and I don't have the experience with RPM to make optional features work.
As I said, I don't think Fedora is really moving in any direction. I've only been a maintainer with Fedora for several months, but most of what I've seen on the fedora-devel list has been bickering or criticism of other people's work or ideas. Very little "community building".
I agree that if I were in an ideal situation I wouldn't just be blogging about the problems I observe within Fedora; I would do exactly as you propose - start a SIG or join FESCO. As it is, I barely have time to keep up with the threads on fedora-devel and try to keep my two packages maintained. If someone were to help me "make time available for Fedora", that would entirely acceptable.
Sure it's only anecdotal evidence, but apt-get dist-upgrade worked for me every time I tried it. For some upgrades (FC1->FC2, FC6->F7) you better know what you're doing (FC6->F7 requires fixing /etc/fstab, /boot/grub/grub.conf and /boot/grub/device.map by hand for the new libata device names, FC1->FC2 required some manual fixes for the 2.4->2.6 kernel change, IIRC moving the 2.4 modprobe.conf out of the way was the most important fix), others just work.
The problem with upgrades has very little to do with yum itself, and everything to do with (a) bugs in individual packages, (b) policy decisions, and (c) just doing the grunt work of finding where everything is broken. It's mostly a QA problem, and QA problems in the community are about mobilizing people.
And "helping you make time available for Fedora"? Turns out that the more time *you* make for Fedora, the better the chance that someone will notice and make more time for you.
Thanks for the vote of confidence.
You're right; it probably is more of a QA problem than a yum problem.
Just the fact that I posted this article has gotten people talking on #fedora-devel, so I've mostly accomplished my goal (even if mostly between "apt-get upgrade is broken" and making anaconda work with a local upgrade cache).
"And "helping you make time available for Fedora"? Turns out that the more time *you* make for Fedora, the better the chance that someone will notice and make more time for you."
Thanks, I'm very aware of this. This was easier for me in the past when I had a day-job that I at least needed to support servers that ran Fedora/CentOS stuff. I'm definitely trying to find the time; so who knows - maybe by F9 I'll have gotten myself in a situation where I can help make changes.
I agree; I very commonly perform "yum upgrade"s online for my home servers as well. It's just too much of a pain to pull out a monitor and perform a CD-based upgrade at the console.
I just don't understand Fedora's infatuation with anaconda - my current view is that it just facilitates a way of providing "hacks" to "fix" the system that should probably just be in package pre/post updates (like the fstab fixes you mentioned).
The biggest problem is just that people don't want to support upgrades. Greg is probably right that if there was a driving force (eg, someone like me) to make it happen, people would come around. Otherwise there isn't the desire to make it go.
Hey Douglas,
I read that you had offered to help with the online updates in the fedora news article 105. So, I thought, this guy sounds pretty cool. I couldn't agree more with your comments and feel the same way. I've been a redhat/fedora user since redhat 7. I've spun more people to fedora than I can count and have just recently begun wondering what the Fedora team is up to. I was looking forward to the init updates and ended many good installs testing (QA'ing) initng, upstart...etc (the packages the fedora team had listed) just to find out that I seemed to be the only one in the Fedora community concerned about fixing the old Sys V init script start up. Which, IMHO, is like booting my first slackware install in the mid 90's and one too many views of the HPUX startup in a computer room consoles. Either way it was apparently too much work to actually utilize something that can even just use the current Sys V scripts. Seemed easy enough to me...but what do I know.
Enough of my ramblings... I have, fortunately, a few systems (frankenputers, as my wife puts it) that I could run test after test after test on and yet I don't really have the means of being able to convey that back, other than offering up my first born as collateral to the Fedora "Community". I found the email of a developer working on the gnome-system-monitor and offered a drop shadowed gnome foot of the side.png and never even heard a "no thanks" back. Of course I didn't follow the proper procedures for submitting a foot.
Well, if you so desire to participate more in the community, you have my vote. I really don't like Ubuntu tan and BSD daemons are too hard to play with...
It's the one thing that makes me think of going to Ubuntu or some other Debian-based distro every time upgrade time comes around. It has always annoyed me - ever since the Fedora 1 to Fedora 2 upgrade that upgrades are not officially supported.
Post new comment