Planet Fedora
In this section the people, personalities and debates on the @fedora-devel mailing list are summarized.
Contributing Writer: Oisin Feeley
Kerneloops for SELinux
The last furore[1] over SELinux contained a positive contribution from StewartAdam, who proposed[2] to improve the interaction between users and SELinux by means of a "kerneloops-like plugin [which] would allow for statistics on where denials occur most and that way the policy could be modified accordingly." DanWalsh commented[3] that JohnDennis had written the setroubleshoot tool[4] to include the ability to send messages to an upstream collector. Dan was worried that he would be chosen as "the upstream infrastructure to handle all the messages" but optimistic that "the XML data [could be] run through some tools to see if the AVC was fixed by a newer version of policy". RobinNorwood thought[5] this would be easily solved using TurboGears[6] and Stewart concurred[7].
[1] http://fedoraproject.org/wiki/FWN/Issue133#SELinux.Eats.Babies.2C.Confines.Wives.2C.Gives.Birth
[2] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01081.html
[3] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01085.html
[4] The setroubleshootd daemon listens for AVC denials and passes them through a series of plugins to analyze the audits and report what has been prevented. Suggestions are made on how to fix denials. On the client side sealert provides either a GUI or plain CLI interface which can connect to either the local machine or to a remote setroubleshootd. The daemon can be configured to send email alerts. Making changes to system policy can be done in a variety of ways. The aforementioned sealert often suggests a simple CLI sequence to run. The older CLI audit2allow and audit2why tools respectively generate fixes based on the audit logs and explain them. semanage allows changes to be made on the fly to SELinux policies and system-config-selinux also allows boolean selection among pre-written policy options and the easy changes of ports or filecontexts.
[5] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01087.html
[6] A web framework written in Python which is widely used in Fedora Project infrastructure.
[7] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01093.html
A substantial chunk of the rest of the discussion hovered around the topic of whether some button(s) should be added to make it easier for the user to ignore the problem. Similar ideas had been floated (see AlanCox's and JamesMorris's comments in FWN#133, ref 7&8 [8]) earlier and AhmedKamal made[9] a good summary of them. He suggested that an AVC denial would present two buttons: "AutoFix" would try to enact the recommended fix stored in the database; and an "Exempt" button which would allow the offending application to run unrestricted. The latter especially was intended to prevent users from just switching off SELinux entirely. ArthurPemberton and StewartAdam thought[10] that this was exactly the wrong approach, with Arthur being reminded of MS Vista users automatically clicking "allow" and Stewart commenting "The idea of this is to get users to report what's going wrong and get it fixed in the policy instead of exempt/disable which defeats the purpose and trains the user to hit "Exempt" without reading anything." Ahmed took the point and made the modification that the "Exempt" button would only work once-per-launch. He argued this would allow the user to get work done but still preserve the incentive to get the problem fixed. DaveAirlie appeared[11] somewhat upset at the idea, arguing that this was "NO NO NO ... DOING IT WRONG."! Taking a cue from the implicit messages of the iMac vs. Windows television advertisements and the successful model of kerneloops he insisted that users should "[never be involved] in the mess other than asking for opt-in [...] The user is not going to have a freaking clue wtf exempting means." Instead he suggested that pinging a remote server to ask for an updated policy would be superior.
[8] http://fedoraproject.org/wiki/FWN/Issue133#SELinux.Eats.Babies.2C.Confines.Wives.2C.Gives.Birth
[9] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01089.html
[10] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01092.html
[11] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01101.html
Replying specifically to the idea of an "Exempt" DanWalsh noted[12] that there were such policies (called "permissive domains") now available in Rawhide. He went on to restate the problem that "Teaching people to press a button to tell SELinux to disable protection [because of AVCs that don't really block anything will get them to disable it when a real attack comes along." Instead the SELinux developers are concentrating on eliminating many of the false AVCs and one of the recent changes towards this end is the addition of a new access permission "open". JamesMorris added[13] that he had written about this work, as implemented by EricParis, in his livejournal: "Until now, opening a file under SELinux invoked the same permission checks as the intended operation on the file, such as read, write, execute and append. There was no separate "open" check: opening a file for write, for example, was considered by SELinux policy as equivalent to actually writing to the file. Experience has shown that this approach is not ideal for handling cases such as IO redirection via the shell, because policy writers cannot usefully guess where users will send redirected output."
[12] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01091.html
[13] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01170.html
DanWalsh, in response to questions from ArthurPemberton, listed[14] the private information contained in an AVC denial as "Hostname, filename, potentially username, rpm information. What apps they are running."
[14] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01132.html
Dan was also concerned that any new upstream reporting only occurred when setroubleshoot had been unable to find a suggested fix in its database. He reported that many bugzilla entries filed against him appeared to indicate that users did not even attempt the actions indicated as potential fixes by setroubleshoot. ArjanvandeVen suggested[15] that setroubleshoot should just make those changes. DavidTimms wondered whether suggesting such "let this happen anyway" actions to users should be considered risky and not dissimilar to Ahmed's "Exempt" and "FixMe" buttons. He also listed several means by which he considered SELinux could be improved. DanWalsh replied[16] that many of these desired capabilities were already present in SELinux but appeared to ignore the behavioral similarities argued by David.
In response to further questions from ArthurPemberton it seemed[17] that the preferred mode for such a tool would be to suggest installation of any available updated policies either via PackageKit offering to install them or a "yum update".
[15] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01193.html
[16] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01138.html
[17] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01151.html
Process Wakeups and Energy Efficiency
UlrichDrepper posted[1] a systemtap script which revealed a list of applications which cause wakeups due to timeouts. He noted that "Programs should be woken based on events. They shouldn't poll data (which is what usually happens after a timeout)" and requested that package maintainers for the programs in the list try to help solve the issue. The Flash npviewer was clearly the worst offender. The creator of the PowerTOP program, ArjanvandeVen wondered[2] why this work could not have been done using PowerTOP.
[1] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00921.html
[2] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00931.html
MatthewGarrett thought[3] that polling was inevitable for many applications but that the Glib timer function g_timeout_add_seconds[4], which allows a function to be called at repeated intervals until it is automatically destroyed, could be used to do this at low frequency. It turned out[5] that this was exactly the approach which ArjanvandeVen had taken. HaraldHoyer thought that this was non-ideal as it did not sync globally and while Matthew agreed that kernel support would be needed DavidWoodhouse speculated[6] that tackling the problem per-thread instead of per-event might be possible.
[3] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00938.html
[4] http://library.gnome.org/devel/glib/stable/glib-The-Main-Event-Loop.html#g-timeoutadd-seconds
[5] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00962.html
[6] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00968.html
NilsPhilippsen added[7] that it should be possible to use IMAP IDLE to fix mail clients and servers that polled too frequently.
[7] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01032.html
RichardHughes quickly jumped[8] in to report a fix for his PackageKit problem but was less sanguine that GNOME Power Manager could be fixed quite so easily, although there was an expectation that Xorg would fix things by sending out a notification of changed DPMS state.
[8] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00948.html
DanielBerrange provided[9] some evidence that the apparent problem with libvirtd was actually due to DBus sending unrequested signals every six seconds. When DanWilliams took a look[10] at NetworkManager's contributions and explained some problems were due to the ipw2200 drivers waking up all WEXT listeners every four seconds and others were due to the presence of bogus rfkill switch events in HAL Daniel connected[11] the dots and said "Ahhh, so that's probably what's causing /usr/libexec/hal-ipw-killswitch-linux to be run every 6 seconds, which in turns causes any app connected to DBus system bus to be send a signal every 6 seconds and thus causes all the hits against libvirtd - and a fair number of other apps in that list too." DanWilliams responded that it was possible, but that it might be worth checking to see if D-Bus signal filtering was being done properly. The forthcoming 2.6.27 kernel was also said to contain the appropriate patches for rfkill which would help solve the problem.
[9] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00973.html
[10] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00976.html
[11] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00978.html
Problems with PulseAudio were guessed by LennartPoettering to be due to the aforementioned Flash player npviewer opening audio streams and never closing them which in turn caused PulseAudio to keep the device open. Again there was a promise of future improvement as Lennart mentioned that the version of PulseAudio in rawhide should not generate any wakeups when completely idle.
It would seem that Ulrich's initiative may yield some useful improvements.
Nodoka Notification Theme a Fedora 10 Feature
MartinSourada asked[1] for help determining whether his plan to provide a beautiful new notification theme for Fedora 10 counted as a "Feature" (see FWN#135 "New RPM Sparks Exploded Source Debate refs 10-20 for recent discussion of the Feature process.) The notification daemons are responsible for popping up small, dismissable windows informing the user that certain events have occurred[2][3].
[1] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00842.html
[2] http://freedesktop.org/wiki/Specifications/systemtray-spec
[3] http://developer.gnome.org/doc/guides/platform-overview/platformoverview.html#notification-area
Martin stated that the public test release had been available for three months and no issues had been reported. He explained how to obtain the new theme from Koji and how to make it available to the system. After encouragement from RahulSundaram that such a visible change should be considered a feature Martin created a feature[4] page in the wiki. Further feedback from Rahul resulted[5] in the addition of screenshots and a Test Plan section.
[4] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00901.html
[5] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00908.html
WillWoods wrote[6] a concise and informative overview of what was expected from Test Plans.
[6] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00912.html
Mono Beta
PaulJohnson announced[1] that a new beta of mono was about to hit the servers and would probably break a number of things. Also of note was the change of license to MIT for Mono-2.0.
[1] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01123.html
DavidNielsen was excited and wondered if this would be pushed into Fedora 8 and Fedora 9 once any obvious breakage had been fixed. BillNottingham did not think 2 that "breaking the entire ABI and licensing of mono in released distros is a *good* thing. Especially Fedora 8." David expressed the advantages of pushing out one big update with a completely revamped stack to which WillWoods replied[3] that it made more sense to wait for Fedora 10's release in three months' time. David returned[4] to the idea that "having the same Mono throughout our releases is easier to maintain [and] pushing newer versions of the stack will enable us to support applications more widely across the stack." He suggested shipping a Fedora 9 preview release and drew a parallel to the situation with KDE-4.1 and their QT libraries. KevinKoffler disputed[5] the parallel as "Qt-4.4 and KDE-4.1 aren't breaking binary compatibility[.]"
[2] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01156.html
[3] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01158.html
[4] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01160.html
[5] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01163.html
PaulJohnson explained[6] that until all the breakage had subsided only Rawhide would see the new beta "To me, rawhide is there for exactly this purpose - a testing ground to see how much is broken before pushing to stable." JeffSpaleta wondered[7] what the purpose of "updates-testing" was in that case.
[6] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01189.html
[7] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01195.html
Policy On Non-Responsive Maintainers
The issue of non-responsive maintainers was aired[1] when PatriceDumas suggested a new policy designed to force maintainers to answer "easy fix" bugs or orphan packages. While Patrice worried that it might look rude he emphasized that the intent was to spread co-maintainership and obtain quicker bugfixes. While most contributors acknowledged the intent behind this they saw myriad problems.
[1] https://www.redhat.com/archives/fedora-devel-list/2008-July/thread.html#00796
EricSandeen quickly raised[2] the problem of defining an "easy bug". AndrewBartlett thought[3] that this was potentially just "a stick to hit a stressed developer with - and surely developers under external stresses, who do not maintain Fedora packages as their day, job will be the ones most likely to have this stick waved at them. Their re-action may not be the one they or you want in the short and long term."
[2] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00745.html
[3] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00845.html
The issue of whether or not a fix had to, or could be, determined as correct was also seen[4] as a problem by BillNottingham and JesseKeating.
A very detailed and thoughtful response from MichaelSchwendt to MatejCepl outlined[5] the problem of increasing the volume of bureaucracy and email dealt with by maintainers. It's worth reading to understand the stresses mentioned by other posters including AdamJackson and NigelJones who described[6] typical volumes of email which they faced. Adam added that anyone was welcome to help him fix bugs. Michael suggested instead that there be "a policy for package maintainers to respond to specially marked tickets from fellow fedora contributors in a timely manner. And if that results in tickets which are still not answered, timeout periods can be applied and give contributors the opportunity to prepare a test update (and only a test update!)." JesseKeating liked[7] the idea and added that SIG meetings could help to triage bugs.
[4] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00894.html
[5] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00937.html
[6] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00856.html
[7] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00939.html
HansdeGoede thought[8] that it would be better to address the problem of how to allow others to help make easy fixes. He argued that it ought to be possible to use ACLs to allow "easy fixes" to be committed by anyone with CVS extras permissions if a developer has allowed it. Patrice replied[9] that the cases which he was concerned about were not owned by maintainers who would allow such changes.
[8] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00757.html
[9] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00764.html
Another voice against too much bureaucracy was that of RichardHughes who queried[10] "Surely the maintainer in question knows the package well enough to decide whether to merge patches? For instance, I might push a patch upstream and hold off applying it to fedora as it's trivial and will get updated at the next version bump of my package in a few weeks" to which KevinPage replied that there were examples where the timeframe was closer to numerous months. JeffSpaleta pushed[11] the idea of putting "packages under the purview of maintainer teams who are comfortable working with each other and care about the packages in question regardless of who the primary owner of a package is. SIGs are the obvious construct here[.]"
[10] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01004.html
[11] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01008.html
Refinement of the policy was carried out between RahulSundaram and ToshioKuratomi. Toshio wanted[12] to make it possible for a co-maintainer to be added in egregious cases to help ease the burden on the original maintainer.
[12] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00918.html
The emphasis on orphaning packages aggressively over a short time-period was questioned[13] by DanielBerrange. He suggested that adding co-maintainers would be a better strategy. RichardJones added[14] the disturbing spectre of "Wikipedia-style deletionism" occurring.
[13] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00946.html
[14] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg00982.html
Some balance was added by a post made[15] by KevinPage which conveyed the perspective of frustrated bugzilla posters who find their easy fixes ignored. Kevin explained his experience with trying to get his patches applied and wondered whether it was a consequence of the new emphasis on pushing bugfixes upstream. He finished with "One conclusion from this thread is that it's accepted that some maintainers don't follow bugzilla. Not condoned, but accepted as a reality. That's clearly incompatible with asking users to report their problems in bugzilla."
[15] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01005.html