|
|
Subscribe / Log in / New account

Episodes from the evolution of Fedora

The Fedora 7 release, due on May 24 (though it appears that schedule may slip a bit), marks the beginning of a new era for this distribution. As that release approaches, a number of issues have come up which merit some attention. Here's a review of some events in Fedora land.

One of the core developments in Fedora 7, so to speak, is the merging of the "Core" and "Extras" distributions. As of the next release, it is all simply "Fedora." Given the nearness of the release, one would have thought that this merger would have happened some time ago. As it happens, that merger is just being finished up now. Much of the ground work was done over the preceding months, leading up to the actual joining of the repositories, source management subsystems, and build systems happening now. As of this writing, the new source archives and build systems are up, but the flow of packages into the Rawhide distribution has not resumed.

There has been a small amount of concern voiced by a few maintainers of packages formerly found in Extras. In the good old days, they could post an updated package at any time and have it go right into the repository. Now that there is only one repository, the whole thing is currently frozen in the run-up to the release. How to work in the new, unified environment is still not entirely clear to all Extras package maintainers. Overall, though, the number of glitches from the merger appears to be small - so far. More information can be found in the draft post-merge FAQ.

Red Hat's distributions have long been known for including software which is not necessarily completely mature. Over the years, this company has pushed in bleeding-edge technologies like ELF binaries, glibc2, SELinux, and more; the end result has often been a combination of user pain and accelerated development of the code in question. Fedora is in many ways the true descendant of Red Hat Linux, and it continues the practice of packaging very new technologies. Some users are beginning to wonder if that practice has gone just a little too far this time, though.

The software in question is the Nouveau driver. This reverse-engineered code is an eventual replacement for the binary-only drivers supplied by NVIDIA. Someday, Nouveau will be the driver of choice for people with NVIDIA hardware, but today is not that day. The Nouveau driver is still in heavy development with a lot of problems to solve before it is ready for production use. But Fedora 7 includes it anyway so that people with an interest in trying out the new driver can do so.

Fedora 7 does not enable Nouveau for any system unless explicitly told to. In theory, anybody who turns it on should know what they are getting into; in practice, at least one user has already been burned by trying Nouveau in a situation where it did not work. So some voices have been heard to say that Nouveau has been included ahead of its time and should be removed. Fedora developers still want to include it, though:

It is turned off by default just like the new Intel xorg driver in FC6. That did help in users providing feedback when they turn it on manually. It fits our mission of progressing Free software. This is a important project. Anything that we can do to help is worth the effort.

Others say that a project as important as Nouveau should not be subjected to a tide of disappointed users who were lulled into trying the code before its time by their distributor.

Chances are that Nouveau will remain. There is one remaining issue, though: Nouveau is currently co-packaged with the stable "nv" driver that people are actually expected to use. So Nouveau cannot be updated without pushing out a new nv package. Given that Nouveau can be expected to evolve considerably over the life of Fedora 7, impediments to the packaging of updated versions seem like a bad idea. There is talk of splitting Nouveau into its own package, which seems like a more than reasonable way of solving this problem.

Finally, there is the issue of Python 2.5. That is the current version of the language, and the version which will be shipped with Fedora 7. The only problem is that the Zope content management system, which serves as the base for Plone (and others), does not work with this version of Python. So the current plan is for Fedora 7 to ship without Zope or the packages which depend on Zope.

Back in the days when Red Hat Linux fit on a single CD, a core component like Python would not have been updated until everything which depended on it was ready for the change. In fact, Red Hat Linux was glacially slow to move to Python 2 for just this reason. Fedora is a much larger distribution which lacks the same sort of firm central control, so it has become much harder to delay an update like this. And, unlike Debian, Fedora is unwilling to delay a distribution release until all such issues are worked out.

Some Zope users would like to see Fedora ship a "compat-python24" package so that Zope will continue to work. There is some opposition to this idea, though:

As the python maintainer, I am *STRONGLY* opposed to a compat-python24 package. Because at the end of the day, bug reports will get filed against the wrong python package (because end-users aren't going to know or case). Security problems are still going to end up having to be dealt with and likely through me because the CVE will originally get filed against python and no one will think about compat-python.

Jeremy Katz, the maintainer quoted above, would like to see a rule allowing a package maintainer to veto the addition of older "compat" packages so that they could avoid having to deal with these sorts of problems.

He seems likely to win this particular argument, meaning that there will probably be no Python 2.4 in Fedora 7. The implication is that interested people will end up creating a set of Zope and Python 2.4 packages for Fedora 7 and hosting them on a third-party server somewhere. It will be a small amount of extra hassle for affected users, but that can be worked around. The issue of security support (crucially important for a complex, network-facing system like Zope) should be considered by anybody wanting to run this code, however.

There have been suggestions that the maintainer of the Zope package should undertake the task of making it work with the version of Python found in Fedora 7:

I believe very strongly that it _is_ the package maintainer's job to work with upstream code to make it work with Fedora, and this kind of thing _is_ a packaging issue.

There's a reason we have Fedora package maintainers instead of just automatically pulling in upstream tarballs and building them with rpmbuild -ta. It's because the role of the package maintainer is to make the package a _part_ of Fedora -- that's what makes Fedora a coherent distribution and not just a semi-random collection of packages.

In this view, making Zope work with Fedora's version of Python is much like making it work with SELinux or Fedora's init scripts setup - just part of the job of making a package for the distribution. Once again, this role was probably easier to carry out back in the single-disk days. In any case, the current Fedora Zope maintainer is not going to port Zope to Python 2.5 - that is apparently a rather large job.

This, too, will pass, and Fedora 8 may well be able to welcome Zope back into the fold. In the mean time, though, the Fedora developers are trying to figure out just how their distribution should react to issues like this. As Fedora evolves and becomes more open to the community, it will have to better define its policies and set them down so that developers know what to expect.


to post comments

Why is Zope a big deal?

Posted May 10, 2007 1:33 UTC (Thu) by wtogami (subscriber, #32325) [Link] (3 responses)

Hi, Fedora developer here, with my own personal opinion on the Zope matter.

This Zope thing is unnecessarily overblown. Zope is a server-side application. It is perfectly reasonable for users to use Zope either on FC6 (which is supported until beyond the release of F8), or better yet RHEL5 or CentOS5 which may be much better suited for long-term Zope usage.

Fedora's goal is different from RHEL or CentOS.
Fedora's primary goal:
Rapid Progress of FOSS

Holding the release of Fedora 7 due to Zope or creating a non-trivial extra maintenance burden in providing compat-python24 and an arbitrary amount of compat-python24 modules hinders Fedora in the pursuit of progress.

Similarly, criticism of including Nouveau is overblown. Disabled-by-default means we get safety by default. Meanwhile we make it easy for testing and progress of Nouveau to happen. I suppose splitting it out into its own package is a good idea. We should also have better documentation describing *how* to safely test nouveau and back out if it fails.

One legitimate case of bleeding edge danger is the iwl3945 driver currently in the rawhide kernel. It has been getting better lately, but works poorly for most users, while causing nasty system-wide problems (I/O device freakout, ops, panic) for some people. Currently that driver *is* enabled by default in rawhide. We are considering disabling or removing it before F7 if we cannot make it at least safe (if not functional) to users by default.

overblown

Posted May 10, 2007 3:55 UTC (Thu) by mattdm (subscriber, #18) [Link]

Yeah, there does seem to be some hyperbole here. The article says "one user has already been burned by trying Nouveau" -- but the link goes to someone who tried the LiveCD and found it didn't work with Nouveau on their system, not someone who found it unexpectedly destroyed their monitor or caused them to lose data. In other words, a pretty minor "burn".

Why is Zope a big deal?

Posted May 10, 2007 20:00 UTC (Thu) by jospoortvliet (guest, #33164) [Link] (1 responses)

I applaud fedora (and Red Hat) for their effort to propell the development
of FOSS. There are risks, but I think the good effects surpass the risks.
Imho it was a good choice to include the new driver and python etc...

Why is Zope a big deal?

Posted May 12, 2007 0:36 UTC (Sat) by fyodor (guest, #3481) [Link]

Hear! Hear! I run Fedora on my 3 most important machines, and I'm also glad to see these changes. I don't want Fedora to go overboard with experimental code which might destabilize my system, but the Nouveau (off by default) and Python 2.5 changes seem eminently reasonable.

-Fyodor

Episodes from the evolution of Fedora

Posted May 10, 2007 3:24 UTC (Thu) by vlima (guest, #4405) [Link] (5 responses)

Then there is the new pata/ide drivers. None of the test releases I've tried has even booted... Bugzilla #227207.

Episodes from the evolution of Fedora

Posted May 10, 2007 14:15 UTC (Thu) by jengelh (guest, #33263) [Link] (3 responses)

While SUSE has success with libata... go figure.

Episodes from the evolution of Fedora

Posted May 10, 2007 16:40 UTC (Thu) by JoeBuck (subscriber, #2330) [Link] (2 responses)

But does SUSE work on vlima's system? The problem seems to affect his particular CDROM device, but not others.

Episodes from the evolution of Fedora

Posted May 10, 2007 20:36 UTC (Thu) by vlima (guest, #4405) [Link] (1 responses)

The install cd for opensuse 10.2 uses the old ide driver on my laptop.
Iow. they're cheating. :)

Episodes from the evolution of Fedora

Posted May 10, 2007 20:50 UTC (Thu) by jengelh (guest, #33263) [Link]

I was implying 10.3alpha. libata is only seriously used for SATA in 10.2.

Episodes from the evolution of Fedora

Posted May 27, 2007 6:46 UTC (Sun) by abans (guest, #45451) [Link]

I use last development kernel (2.6.21-1.3149.fc7), have this such problem too.

Fedora is a *development* distribution

Posted May 10, 2007 7:43 UTC (Thu) by addw (guest, #1771) [Link] (1 responses)

The whole purpose of Fedora is to test/debug/... packages that are destined to end up in the RedHat distro. It is done in public and with the lable ''distribution'' to encourage people to use/test it in a wide variety of situations/hardware, etc.

So plone is broken, well it will get fixed eventually and python_2.5/phone combination will be fit to use in RedHat 6 (or whatever). This is as it should be.

I never cease to be amazed at the people who run serious production servers on Fedora. Why do this ? We all know that Fedora is leading edge and that things break occasionally; we also know that Fedora is not really maintained for many years.

If you want to run a production box install RedHat Enterprise (or CentOS if you want the free equivalent)[**]. It is rare that you need the absolute latest version of something for your server and once it is installed and working you want to just leave it alone other than applying the latest security/... patches.

Me ? I run Fedora on my laptop & development box; CentOS on my main server & RedHat or CentOS on customers' machines.

[**] Or Debian, SuSE, ... if you prefer one of those just-as-good environments.

Fedora is a *development* distribution

Posted May 10, 2007 12:10 UTC (Thu) by mattdm (subscriber, #18) [Link]

The whole purpose of Fedora is to test/debug/... packages that are destined to end up in the RedHat distro.

Not quite true. That's only one part of Fedora's purpose (even from Red Hat's point of view).

Episodes from the evolution of Fedora

Posted May 10, 2007 20:23 UTC (Thu) by tseaver (guest, #1544) [Link] (2 responses)

The fact that Zope can't be run after compiling with Python 2.5 is
due to a combination of factors, some of which are easier to work around
than others:

- APIs have been removed in Python 2.5, often without any kind of
deprecation process (the 'OverflowWarning' exception type, for
instance, is just gone in 2.5, yet using it produced no warnings at
all under 2.4).

Those issues are mostly minor, and might even be in the purview of a
package maintainer to patch away (if they were the whole problem, then
Zope itself would have already added the forward-compatibility).

Some issues, however, are likely too hard to fix as a package maintainer:

- The underlying API for C-based extension types now asserts on
Zope's ExtensionClass, which is noted in the module headers as the
original inspiration for the abstract object stuff in Python. Again,
there is absolutely no clue when building / running Zope under Python
2.4 that anything will break.

- The implications of Python's new AST-based compiler for Zope's
"untrusted code" security model are unknown. Evaluating them
requires fairly deep knowledge of the Python internals *and* a
willingness to think hard about how they might be exploited by
malicious (or wrong-headed) code in templates and through-the-web
scripts.

This last issue is the one that the Zope community had expected to be
the problem; the unintended backward-compatibility issues are just icing
on the cake.

Episodes from the evolution of Fedora

Posted May 10, 2007 20:25 UTC (Thu) by tseaver (guest, #1544) [Link] (1 responses)

I'll note as well that there is a Google Summer of Code project this year
aimed at getting Zope to work with Python 2.5, so this problem is likely
short-lived.

Episodes from the evolution of Fedora

Posted Oct 29, 2008 23:53 UTC (Wed) by brouhaha (subscriber, #1698) [Link]

And after 17 months, including Summer of Code 2007 and 2008, there still isn't a release of either Zope 2 or Zope 3 that works with Python 2.5. :-(

I know, it's open source so if I don't like it I should fix it myself rather than complaining. But life's too short, so my solution was to stop using Zope.

No, Python2 was delayed due to GPL-incompatibility problems.

Posted May 11, 2007 2:16 UTC (Fri) by dwheeler (guest, #1216) [Link] (2 responses)

No, I think Python 2's introduction was delayed because of GPL-incompatibility concerns. <a href="http://mail.python.org/pipermail/python-dev/2001-February...">
Here's a sample post of discussions about Python 2 licensing</a>
(not specific to Red Hat in this case, but you can see that it WAS an issue.

maybe but...

Posted May 17, 2007 22:26 UTC (Thu) by gvy (guest, #11981) [Link]

IIRC they couldn't get Anaconda that easy onto 2.x too.

No, Python2 was delayed due to GPL-incompatibility problems.

Posted May 22, 2007 17:24 UTC (Tue) by k8to (guest, #15413) [Link]

Python2's introduction was delayed long after these concerns were resolved. The "problem" window persisted for six months or so, but Red Hat shipped out of date pythons for 3-4 years.

It was anaconda, and the principle anaconda developer having departed.

Episodes from the evolution of Fedora

Posted May 11, 2007 20:36 UTC (Fri) by joey (guest, #328) [Link] (1 responses)

Weird comment about Debian in this article. After all, Debian didn't delay any release waiting for everything to work with one version of python; it instead packages multiple co-existing versions and allows holdouts that don't work with the newest version to run using an older version. There's was a lot of infrastructure work done by Debian (and Ubuntu) developers to support this.

Kind of a shame that LWN tends to fall back to the old standby of ragging on Debian's release cycle when it could instead just discuss how Debian has already solved the problem.

Otherwise interesting article.

Episodes from the evolution of Fedora

Posted May 22, 2007 17:27 UTC (Tue) by k8to (guest, #15413) [Link]

*shrug*, I read the text as a description of a philosophy, that of resolving all important issues prior to ship. As a Debian user I certainly appreciate that.

The problem, to my mind, isn't so much the slow cycles but the stale software in the slow cycles. Maybe that's just a symptom. Testing still doesn't run on my now 10 month old hardware. Luckily I am empowered to address this problem myself.


Copyright © 2007, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds