From Fedora Project Wiki

< FWN‎ | Beats

(fwn #149 devel beat)
(four topics for FWN#150. spellchecked)
Line 1: Line 1:
{{Anchor|Developments}}
{{Anchor|Developments}}
== Developments ==
== Developments ==


Line 8: Line 7:
Contributing Writer: [[OisinFeeley|Oisin Feeley]]
Contributing Writer: [[OisinFeeley|Oisin Feeley]]


=== Splitting Up R ===
=== Resume from Suspend Problems with Intel i945 ===


[[TomCallaway|Tom Callaway]] alerted[1] the list that he intended to merge the <code>R-devel</code> package with the base <code>R</code>[2] package. Tom's motivation was that many complaints had been received from users who attempted to install extensions from the external CRAN[3] repository using R's built-in package system. "This doesn't work unless you have R-devel installed. The average R user is a professor or a student, and neither of them are going to necessarily possess the necessary Linux/Fedora knowledge to be able to understand why this doesn't work like the R documentation says it should." Tom recognized that this was a violation of the Fedora Packaging Guidelines[4] and that he was "[...] not entirely sure if I need FESCo or FPC approval to take this action, if so, this is my notice of requesting it. ;)"
[[PeterRobinson|Peter Robinson]] solicited[1] experiences with problems on netbooks in resuming from suspend from those using the latest <code>Intel-2.5.0</code>drivers. His problem suddenly manifested itself on a previously working <code>EeePC</code> 901: "It had worked previously and resumes OK but I get a black screen with a cursor and around that a square of garbled bits." Peter wondered what had changed recently in order to make suspend-resume stop working.


[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02240.html
[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02975.html


[2] R is an interpreted language based upon S and Scheme intended to be used for statistical computation: http://www.r-project.org/
Apparently similar failures were reported[2] by [[JonathonRoberts|Jonathon Roberts]] for a Dell Mini[3] ,[[TimLauridsen|Tim Lauridsen]] on a ThinkPad T60[4] and [[ChristophHoger|Christoph Hoger]][5] on a ThinkPad R61. Tim's problem seemed to be related to <code>compiz</code>.


[3] http://cran.r-project.org/
[2] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02977.html


[4] http://fedoraproject.org/wiki/Packaging/Guidelines
[3] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02977.html


[[EnricoScholz|Enrico Scholz]] suggested[5] instead: "[...] add it to comps.xml [or] move 'R' to Rcore, and add 'R' which depends on 'R-core' + 'R-devel"' which have the major advantage of not missing all of R-devel's dependencies. Tom accepted[6] these points because "[...] the suggested R/R-core/R-devel split instead [would allow users] to get everything with yum install R, it would meet the guidelines, and minimal installs with R can simply have R-core."
[4] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03005.html
 
[5] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03033.html
 
[[JeremyKatz|Jeremy Katz]] suggested[6] using the suspend quirks[7] , especially <code>vbepost</code>. [[MatthewGarret|Matthew Garret]] believed[8] this to be unnecessary as "i945 is perfectly capable of handling resume on its own in-kernel. The problem is more likely to be an excess of quirks interfering with that (or, alternatively, someone's broken the kernel)."
 
[6] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02981.html
[7] http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-index.html


[5] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02249.html
[8] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02992.html


[6] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02251.html
[[JesseBarnes|Jesse Barnes]] (of the Intel Open Source Technology Center[9]) asked whether suspend worked from the console using:
<code>echo mem > /sys/power/state</code>


[[JamesAntill|James Antill]] agreed that the general model of "foo-core + additions" was maintained by such a split but asked[7] "[...] why don't we just package more of the <code>R</code> modules so <code>CRAN</code> usage isn't a requirement?" [[JoséMatos|José Matos]] answered[8] that there were far too many R modules "[...] more than 1500 modules (the have been growing at an exponential rate in the last years). So while we would like to see more R packages in Fedora in are not even near to have a reasonable subset of R packaged." James worried[9] that "[...] you could use that argument a lot (there are probably still more unpackaged libc using things than packaged)." James showed that there were many more unpackaged users of libc than packaged using:
as this would indicate that there had been a regression in 2.5.0 as opposed to a kernel bug. [[MatthewGarrett|Matthew Garrett]] thought that Jesse's suggestion would not test the same suspend pathway and that it would be better to do a:
<pre>repoquery -whatrequires '*-devel' | \
  fgrep -v - '-devel-' | \
<pre>dbus-send --system --print-reply --dest=org.freedesktop.Hal \
  fgrep -v - '-static-'
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:0
</pre>
</pre>


[7] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02267.html
Matthew begged[10] "Please (please, please) don't attempt to add resume quirks for anything with Intel video hardware now. It's only hiding kernel bugs."


[8] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02272.html


[9] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02274.html
[9] http://software.intel.com/sites/oss/


The availability of a tool named <code>R2spec</code> to convert <code>R</code> package formats to rpm packages was mentioned[10] by [[MatthewSalzman|Matthew Salzman]]. Later threads which appeared in part only on @fedora-r-devel investigated the problem of languages implementing their own packaging systems. [[JoséMatos|José Matos]] played[11] Devil's Advocate with the remark that "[...] each language is building its own repository and packaging system in a sense we have lots of equivalents of (yum+rpm) for each language (perl, php, python, R, tex, ...) [but] for the system to be really useful it must use the least possible denominator (read the dumbest wins- pun intended ;-) )." José suggested that R2spec could also be tweaked to discover dependencies and include them in its generated spec files. It appeared[12] that Pierre-Yves had a "[...] small script to update the spec file when there is a new release of an already package R-library. This might be something that I should develop maybe a bit more now (especially since Bioconductor[12a] 2.3 has been released with R 2.8.0)"
[10] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00082.html


[10] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02288.html
=== Moving X from VT7 to VT1 ===


[11] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02301.html
A gigantic multi-thread flamewar consumed many list participants after [[WillWoods|Will Woods]] made sure[1] that everyone knew that in Rawhide "X HAS MOVED FROM VT7 TO VT1. GDM specifically starts X on tty1, and upstart does not start a getty on tty1 in runlevel 5." The reason behind this change was that the boot process no longer uses the old <code>RHGB</code> but instead a flicker-free and faster replacement named <code>Plymouth</code> (see Fedora Magazine[2] for a full explanation).


[12] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02306.html
Fuel for the fire was provided by the surprise experienced by many posters who solely followed @fedora-devel for their information. A perception that changes made for the purposes of improving the desktop experience were occurring at the expense of the traditional server experience also seemed to irritate many. This was despite the fact that, as [[DanNicholson|Dan Nicholson]] explained[3]: "Users who do not want a graphical boot set rc 3 as their default runlevel, and everything is the same as it always was with getty on tty1-6. If you then run startx, it will start on tty7. In rc 5, X is started on tty1 and getty is not. That's all there is to it."


[12a] Modules primarily for bioinformatics and genomics.
[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02422.html


=== Flinging Poo at libtool-2.2 ===
[2] http://fedoramagazine.wordpress.com/2008/10/21/interview-fedora-10s-better-startup/


A discussion on the future of <code>libtool</code> in Fedora is worth reporting although it is slightly older. [[OrionPoplawski|Orion Poplawski]] wondered[1] whether it was the correct time to integrate <code>libtool-2.2.X</code> into Fedora 11. [[BenjaminKosnik|Benjamin Kosnik]] wanted[2] it available in Fedora before <code>GCC</code> was bumped to <code>gcc-4.4.x</code> as that will depend on <code>libtool-2.2.6</code>.
[3] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02469.html


[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00467.html
In answer to a question from [[TillMaas|Till Maas]] it was confirmed[4] by [[FelixMiata|Felix Miata]] that if one "[...] rebooted into runlevel 3, logged in on tty1, did telinit 5, got kdm on vt7, switched to tty1, [then there was] a normal shell prompt following typical X startup messages, and kdm still on vt7 [.]"


[2] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00516.html


A possible need for FESCo approval was expressed[3] by [[KarstenHopp|Karsten Hopp]] as he was worried that "[...] it breaks up to 300 packages according to my mass rebuilds. I'm going to prepare a Wiki page with details about that." That prompted the first of several queries about the purpose and suitability of <code>libtool</code>. [[DavidWoodhouse|David Woodhouse]] asked[4] "[i]sn't the whole point of libtool that it should make things _easier_, not break huge swathes of packages whenever we change it? How about we fix those 300 packages by making them _not_ use libtool, rather than making them use the latest version?" [[ToshioKuratomi|Toshio Kuratomi]] thought[5] that "If the state of the art has advanced and there's a tool that can replace libtool so a developer can say `I want a shared library' and the tool builds it on all platforms then we could look into getting upstreams to switch but simply getting rid of libtool in favour of handcoding Makefiles to build shared libraries is a step in the wrong direction."
[4] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02478.html


[3] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00479.html
[[DanNicholson|Dan Nicholson]] also corrected[5] assumptions that the changes were made to improve boot speed with the information that it was to prevent the ugly flicker of VT switching during boot and asked "Why is it significant what tty any program runs on? Isn't the assumption that getty will be on tty1 just as faulty as the assumption X will be on tty7?" [[ShmuelSiegel|Shmuel Siegel]] gave[6] an answer which was repeated many times in the threads: "Because you are changing a user interface. What is going to happen when the user switches to tty1 and nothing happens? The basic logic of putting X on tty7 is to get it out of the way. Humans will use the lowest numbered ttys first. Besides breaking existing documentation, including advice on various forums, is not a good idea." [[BillNottingham|Bill Nottingham]] added[7] to Dan's rationle: "1) Reducing the amount of flicker and useless mode switching on startup is definitely a good thing 2) From a logical standpoint, the first tty should be for the most important user interaction. If you're booting in text mode, that's a getty. If you're booting with a GUI login... that's the GUI." [[CallumLerwick|Callum Lerwick]] and [[BrianWheeler|Brian Wheeler]] exchanged[8] details of the "vast improvement[s]" including removal of up to twelve seconds which resulted from the lack of monitor resync delays.


[4] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00730.html
[5] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02458.html


[5] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00737.html
[6] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02464.html


AdamJackson offered[6] that gcc was available on <code>Solaris</code>, <code>Windows</code>, <code>*BSD</code> and <code>OSX</code> with the conclusion "[m]st of the complexity in libtool (and autotools in general) is to support systems that simply are not worth supporting and that practically speaking don't exist anymore. I'm being slightly flip in saying 'gcc -shared' but really not by much. Honestly for any fringe platform the correct thing to do is port gcc/binutils/gmake first." There were many disagreements on this point and [[SamVarshavchik|Sam Varshavchik]] posted[7] a convincing potted summary of them: "There's much more to libtool then just building shared libraries. If you remove everything from libtool that supports ancient platforms, you'll still have quite a bit left. For example, libtool builds both shared and static libraries in parallel. That, alone, saves you from dealing with a massive hairball in your makefiles. Ask anyone who works on a large, complicated app, that links with its own shared libraries. The option to easily build a statically-linked version is quite invaluable, for debugging purposes."
[7] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02543.html


[6] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00744.html
[8] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02518.html


[7] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00791.html
[[GerdHoffman|Gerd Hoffman]] made[9] an interesting suggestion about how <code>Plymouth</code> could do a VT switch immediately after <code>KMS</code>[10] had entered graphics mode but before printing anything to screen. In the course of this he clarified that "The flicker / resync delay comes from the *mode switch*, not the *vt switch*. And, no, a vt switch does *not* imply a mode switch. The reason you'll have flicker today when switching from/to X11 is that X11 does a mode switch when you switch from/to the terminal X11 is running on." BillNottingham was skeptical but Gerd insisted [11] that his approach would work.


The practical experience of the MinGW project related[8] by DanielBerrange was also that gcc -shared was insuOEcient i[...] if you're trying to build for windows. The mingw32 work has only been made viable because libtool has basically taken care of the horrible shared library build process required by Windows.j Further details were supplied[9] at Adam's request and KevinKoAEer confirmed[10] that producing a DLL involved several complications. 
[9] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02623.html


[8] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00743.html
[10] Kernel Mode Setting: http://kerneltrap.org/node/8242


[9] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00755.html
[11] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02820.html  


[10] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00780.html
After [[TillMaas|Till Maas]] suggested "[...] the kernel should be patched to start booting graphically using tty7 and not tty1." [[BillNottingham|Bill Nottingham]] passed[12] on the idea as it would involve: "Having the kernel parse its own commandline for a runlevel (a concept that has nothing to do with the kernel, and doesn't even exist under some init systems) and then choosing to rearrange the tty init sequence based on that?" and in further discussion with [[MatthewWoehlke|Matthew Woehlke]] reiterated[13] "You're having the kernel operate on Fedora specific commandline options to start on a completely different tty, one that could be configured by anyone locally to do something else entirely. (Unless you do it in userspace, which means you jump away and then jump back for text mode, which...)" [[CaseyDahlin|Casey Dahlin]] modified[14] the idea to "[...] either offer a getty on tty7 (not too hard) or we could instead add a small API to the kernel that would allow remapping which F key went to which tty, so you could have ctrl+alt+f1 bring up tty7. That way we could remap things so the user got the correct behavior. We wouldn't have to actually /do/ this, but if the API were there, we can tell the people who care to go figure it out."


Discussion of alternatives veered[11] towards <code>CMake</code>. [[BradenMcDaniel|Braden McDaniel]] was unconvinced[12] that this was a realistic suggestion for replacing libtool in approximately three hundred upstream projects. [[KevinKofler|Kevin Kofler]] took[13] a detailed look at the problem and argued that attempting to "[...] convince the automake developers to use something other than libtool is pointless, because automake should also go away, it's at least as obsolete, buggy, unable to maintain backwards compatibility, annoying, a massive time waster at build time and a major PITA for developers to code with as libtool is. The whole autotools stack sucks. It always did, we just didn't have anything better. We now do, so why are people still using autotools?" His critique seemed convincing and he later added[14] that "CMake is used by all of KDE 4 [...]" and in an exchange with [[RichardJones|Richard W. M. Jones]] explained[15] that Gnulib was also not a good replacement for autotools: "[...] a "library" which works by copying itself into the source code of the project is a horribly broken concept."
[12] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02544.html


[11] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00780.html
[13] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02594.html


[12] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00775.html
[14] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02553.html


[13] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00799.html
[[WillWoods|Will Woods]] explained[15] how to revert the change, but this was contested[16] by [[DanNicholson|Dan Nicholson]] on the basis that the latest <code>gdm</code> does not support <code>FirstVT.</code> Dan provided an untested patch and explained that "[s]ince plymouth writes the /var/spool/gdm file on boot and then gdm removes it, any subsequent starts will put X on the first available VT, which is tty7 in the common configuration. With my patch, prefdm writes the file every time it's executed. I don't know if that's the correct behavior for all cases where prefdm would be run. I'm looking at upstream gdm right now, and FirstVT isn't respected. Looking at the rawhide patches, I don't see anything that would enable that functionality again."


[14] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg01017.html
[15] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02506.html


[15] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg01142.html
[16] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02516.html


LennartPoettering and RalfCorsepius were[16] suspicious of the attempt to replace autotools with CMake. Ralf argued that "Cmake is imake in new clothes and suffers from the same design flaws as imake did. It's only the limited set of requirements being used by the limited set of use cases it's proponents apply which lets them think 'cmake is better'." StephenSmoogen saw[17] a need to halt the conversation when he examined it from a human neuropsychology viewpoint: "So basically this conversation is a 'dead' conversation. People have their hairs on their necks up, [enough] testosterone pumping to put [out] 3 or 4 beards in a day, and are [on] to the flinging poo part. At this point, there is no way either side is going to say that Cmake is better at this, or Autotools is better than that. Wait a week, and see if one can bridge the gap with some diplomatic discourse[.]"
Later [[DaxKelson|Dax Kelson]] reopened[17] the thread with a list of objections which pointed out the negative impact upon documentation and user habit of the change. He garnered a good deal of support from many other respected contributors.


[16] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00954.html
[17] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02601.html
 
[17] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg01023.html
At the end of the thread [[BillNottingham|Bill Nottingham]] asked[18] the interesting question of why the change appeared to come as such a surprise given that it had been telegraphed in advance by a formal feature proposal[19] and had been implemented in rawhide: "Are people not running rawhide and the test releases? Are they not looking at features as they are proposed and being involved in the process? Are they just sitting around waiting to be outraged?" Dax rejoined[20] that it was not obvious from the documentation that there would be a side-effect which disturbed an expected convention.
 
[18] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02830.html


Later a new thread was started[18] by [[BradenMcDaniel|Braden McDaniel]] to recommend that <code>autoreconf</code> should be explicitly forbidden to be run by rpm packages. He explained that he saw the problems caused by running <code>autoreconf</code> or <code>libtoolize</code> as "[b]y running autoreconf, the RPM build becomes exposed to different versions of autoconf, automake, and libtool than were used by the upstream developer to create the upstream source package. Newer versions of these tools have the potential to introduce incompatibilities, breaking the RPM build. Rather than patching configure.[ac,in] and Makefile.am, a more resilient approach is to patch the configure script and Makefile.in files."[[ TillMaas|TillMaas]] added[19] a link to a wiki draft on the subject and suggested that "[...] one should run autoreconf locally and create a patch from this, that is then used within the spec." The conversation veered[20] into sharp disagreement as to whether autotool generated files should be treated similarly to "binary JARs (for which the packaging guidelines mandate that they have to be removed and rebuilt from source)" or this should be avoided in order to avoid "potential breakage". This issue seems destined to generate further disagreement.
[19] http://fedoraproject.org/wiki/Features/BetterStartup


[18] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00866.html
[20] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02853.html


[19] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00869.html
=== Fedora 11: POSIX File Capabilities ===


[20] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00970.html
[[PanuMatilainen|Panu Matilainen]] announced[1] that he had added file capability support to <code>rpm</code>. With kernel support for storing capabilities on filesystem since 2.6.24 and the most recent <code>libcap</code> he asked if now was the time to "[...] start considering moving away from SUID bits to capabilities, in Fedora 11 maybe?"


=== Livna Migration to RPM Fusion ===
SethVidal wondered how this would affect networked file systems and [[DavidQuigley|David Quigley]] answered[2] that "[...] capabilities are stored in xattrs they will run into the same problems that SELinux does. Labeled NFS is working to address this by providing a per file attribute through NFSv4 for extra security information."


Several of the third-party repositories external to the Fedora Project agreed some time ago to merge into a single new entity named "RPM Fusion"[1]. The current partners include Dribble, Freshrpms and Livna. [[ThorstenLeemhuis|Thorsten Leemhuis]] reported[2] that "[...] nearly all of livna's packages have been imported and build for RPM Fusion, but a few are still missing. So you should leave livna repos enabled for now if you want everything [.]" Thorsten explained the migration process in this post with the important details that "[...] all users that installed livna properly (e.g. by installing the livna-release package) and enabled the testing repos will now get RPM Fusion enabled automatically."
Another show-stopper was the erasure of file-based capabilities by <code>prelink</code>. It appeared[3] that there was a certain amount of desire to examine whether <code>prelink</code> might cause more trouble than it was worth on faster hardware. Prelink's problems also included incorrectly stripping <code>OCaml</code> binaries and preventing <code>rpm -V</code> from working correctly.


[1] http://rpmfusion.org
[[ColinWalters|Colin Walters]] noted[4] that the desktop team had "been moving the OS away from exec-based domain transitions to message passing (e.g. PolicyKit) for a variety of reasons. I think it might be worth considering introducing a rule actually in Fedora for "no new SUID/fcap binaries"[.]" [[SteveGrubb|Steve Grubb]] was worried[5] that this direction resulted in the introduction of another MAC system and that auditing from userspace was untrustworthy. Concern was also raised[6] by [[MichaelStone|Michael Stone]] on the affects on solid-state memory consumption.
 
[[SteveGrubb|Steve Grubb]] sought details on how rpm would work with kernels lacking file capabilities and wanted[7] to "start removing some of the setuid bits." He suggested[8] to [[ChrisAdams|Chris Adams]] that <code>tar</code> and <code>star</code> should be capable of storing these new extended attributes and that <code>aide</code> would be useful in tracking changes to them.


[2] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02367.html
[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02637.html


A suggestion was made[3] by [[NicolasMailhot|Nicolas Mailhot]] to either use the "modern proxyfriendly createrepo" or else "define http.caching=packages" in the yum repo files.
[2] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02849.html


[3] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02368.html
[3] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02923.html


Users who currently have the Livna repository enabled can transition to the new RPM Fusion repository by:
[4] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02729.html


<code>yum install rpmfusion-free-release rpmfusion-nonfree-release</code>
[5] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02809.html


=== Sbin Sanity Stays ===
[6] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02818.html


The latest FESCo meeting[1] logs record that the decision to add <code>/sbin</code> to each users <code>PATH</code> variable (see FWN#146[2]) will be kept until a working alternative for both non-root and root users is available. The brief deliberations indicate that FESCo members tended to manually add <code>/sbin</code> to their own paths and distilled the objections to the sole point of "".
[7] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02777.html


[[ThorstenLeemhuis|Thorsten Leemhuis]] was dismayed[3] and agreed with [[VilleSkyttä|Ville Skyttä]] that the change would[[4]] result in many confused users. Thorsten wished to "[...] help Ville and Matthew making a real solution, where sbin stays "root commands" only, and where package that are right now get into he search path for ordinary users (either with symlinks or by moving the binaries). But it's IMHO best for everyone if we do that for F11. Come on, we had /sbin not in the path for more then how many years, so what is one half year more (especially as everyone that dislikes it is used to enable it already)?"
[8] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02823.html


[[JonMasters|Jon Masters]] disagreed[5] on the basis that any script should be using an explicit and absolute binary location anyway: "If you're writing scripts and not explicitly calling out the binary location, then it's not surprising if your scripts break later. I know it's nice to always assume a particular PATH, but it's not good practice any more than including or not including sbin in the PATH to begin with." He also cautioned that most other distributions had made this change a long time ago and that "[...] everyone else is already laughing that Fedora didn't do this, so really it doesn't need to wait for yet another 1.5 years to get done :)"
=== Purging Unnecessary .la Files ===


[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02273.html
An apparent contravention of the packaging guidelines was noticed[1] by [[DebarshiRay|Debarshi Ray]] in the <code>dia</code> package. It contained <code>%{_libdir}/%{name}/*.la</code> files[2]. [[ColinWalters|Colin Walters]] was[3][4] enthusiastic about the idea of "not encourag[ing] the libtool agenda to redefine how shared libraries work on our platform." [[JerryJames|Jerry James]] found[5] that he had quite a number of them on his x86_64 machine.


[2] http://fedoraproject.org/wiki/FWN/Issue146#PATH:.2Fsbin.Tab.Confusion
[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03031.html


[3] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02294.html
[2] .la are libtool archive files: http://www.gnu.org/software/libtool/manual/html.node/index.html#Top


[4] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02180.html
[3] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03032.html


[5] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02296.html
[4] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03039.html


=== Packaging Webmin: Should it go in /opt ? ===
[5] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03038.html


[[AndyTheuninck|Andy Theuninck]] asked[1] for some help in "[...] trying to put a package together for webmin. It wants to install to libexec, but if I do that rpmlint (rightly) complains that there are non-executable text files. Perl files & HTML files are intermixed and separating them out would be a patching nightmare [...] as I read FHS /opt would be the most appropriate place [but] if I try to use /opt/webmin [then] rpmlint pitches a fit about using /opt."
[[DanNicholson|Dan Nicholson]] argued[6] that it would be best to convince libtool upstream to support some way to choose whether or not the library archives were installed at build time, but Colin was unrelenting and argued[7]: "Or alternatively convince the automake people that it shouldn't be in the business of software lifecycle management (make uninstall) any more than people should be coding/overriding build systems (make;make install) inside RPM spec files. This seems possible; probably worth trying to at least have an environment variable AUTOMAKE.OPTIONS = i-dont-need-uninstall."


[[ToshioKuratomi|Toshio Kuratomi]] quoted[2] the FHS[3:] "The FHS says: /opt is reserved for the installation of add-on application software packages. Anything packaged by Fedora is part of the system packaging rather than an addon so we stay out of /opt." He also suggested that separating the different files types and getting webmin's upstream[4] to accept patches to do this was a preferred path in the Fedora Project. Failing this it was possible to separate the files and symlink them to the upstream-enforced layout. Another useful link[5] to the Fedora Project's web application packaging guidelines in Toshio's post indicated that non-executable files might best be put into /usr/share. Andy seemed[6] to like the idea of "[m]oving as much as possible over to /usr/share and symlinking against the files that are actually needed[...]" as this would allow upstream to continue to support many OSes by the simple expedient of "sticking everything into a single directory."
[6] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03048.html


[[NicolasMailhot|Nicolas Mailhot]] disparaged[7] the use of /opt as "[...] he right place to dump messes and is good enough for ISVs with no ambitions but Fedora does not package messes [.]" [[CaseyDahlin|Casey Dahlin]] cautioned[8] Nicolas "Easy, he's here because he wants to do the right thing, and he's not upstream, so there's no reason to clueby4 him just yet" and went on to suggest a similar path to that above: "You might do what apache does and simply place the files where they go, then symlink them to a conf directory in /etc . You'd be doing it on a much larger scale than apache, but until you get upstream to suck less, you at least have a precedent for it (though doing it for apache hasn't particularly encouraged them to change their goofy-as-hell recommended file layout)."
[7] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03051.html


[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02289.html
[[DavidWoodhouse|David Woodhouse]] also wanted[8] to see the back of libtool "[...]you can just throw it away and forget it ever existed? I just write proper Makefiles, and if I ever _want_ to spend a couple of minutes watch some bizarre script trying to work out what type of FORTRAN compiler I have on my system, I can write myself a little bash script for that too[...]" but [[RichardJones|Richard W. M. Jones]] disagreed[9] sharply as he found it useful for building shared libraries on a wide variety of platforms. In response to [[ColinWalter|Colin Walters']] suggestion to build a hook in <code>RPM</code> to nuke <code>.la</code> files he stated[10] that they were essential for the <code>MinGW</code> packages.


[2] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02291.html
[8] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00019.html


[3] Filesystem Hierarchy Standard: http://www.pathname.com/fhs/
[9] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00024.html


[4] http://www.webmin.com/
[10] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00023.html


[5] http://fedoraproject.org/wiki/Packaging/Guidelines#Web.Applications
[[ToshioKuratomi|Toshio Kuratomi]] and [[MichaelSchwendt|Michael Schwendt]] discussed[11] how newer versions of <code>libltld</code> can work without missing <code>libtool archives</code> and that it was desirable to remove them because a "[...] private copy of a system library would be a violation of the Packaging Guidelines for security reasons [.]"


[6] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02327.html
[11] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00064.html


[7] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02297.html
[[RichardJones|Richard W. M. Jones]] decided[12] to do some testing to determine whether MinGW needed "[...] the *.la files for MinGW packages" or "[...] the .la files in MinGW packages[.]"


[8] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02300.html
[12] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00085.html

Revision as of 01:25, 3 November 2008

Developments

In this section the people, personalities and debates on the @fedora-devel mailing list are summarized.

Contributing Writer: Oisin Feeley

Resume from Suspend Problems with Intel i945

Peter Robinson solicited[1] experiences with problems on netbooks in resuming from suspend from those using the latest Intel-2.5.0drivers. His problem suddenly manifested itself on a previously working EeePC 901: "It had worked previously and resumes OK but I get a black screen with a cursor and around that a square of garbled bits." Peter wondered what had changed recently in order to make suspend-resume stop working.

[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02975.html

Apparently similar failures were reported[2] by Jonathon Roberts for a Dell Mini[3] ,Tim Lauridsen on a ThinkPad T60[4] and Christoph Hoger[5] on a ThinkPad R61. Tim's problem seemed to be related to compiz.

[2] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02977.html

[3] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02977.html

[4] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03005.html

[5] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03033.html

Jeremy Katz suggested[6] using the suspend quirks[7] , especially vbepost. Matthew Garret believed[8] this to be unnecessary as "i945 is perfectly capable of handling resume on its own in-kernel. The problem is more likely to be an excess of quirks interfering with that (or, alternatively, someone's broken the kernel)."

[6] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02981.html

[7] http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-index.html

[8] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02992.html

Jesse Barnes (of the Intel Open Source Technology Center[9]) asked whether suspend worked from the console using:

echo mem > /sys/power/state

as this would indicate that there had been a regression in 2.5.0 as opposed to a kernel bug. Matthew Garrett thought that Jesse's suggestion would not test the same suspend pathway and that it would be better to do a:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:0

Matthew begged[10] "Please (please, please) don't attempt to add resume quirks for anything with Intel video hardware now. It's only hiding kernel bugs."


[9] http://software.intel.com/sites/oss/

[10] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00082.html

Moving X from VT7 to VT1

A gigantic multi-thread flamewar consumed many list participants after Will Woods made sure[1] that everyone knew that in Rawhide "X HAS MOVED FROM VT7 TO VT1. GDM specifically starts X on tty1, and upstart does not start a getty on tty1 in runlevel 5." The reason behind this change was that the boot process no longer uses the old RHGB but instead a flicker-free and faster replacement named Plymouth (see Fedora Magazine[2] for a full explanation).

Fuel for the fire was provided by the surprise experienced by many posters who solely followed @fedora-devel for their information. A perception that changes made for the purposes of improving the desktop experience were occurring at the expense of the traditional server experience also seemed to irritate many. This was despite the fact that, as Dan Nicholson explained[3]: "Users who do not want a graphical boot set rc 3 as their default runlevel, and everything is the same as it always was with getty on tty1-6. If you then run startx, it will start on tty7. In rc 5, X is started on tty1 and getty is not. That's all there is to it."

[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02422.html

[2] http://fedoramagazine.wordpress.com/2008/10/21/interview-fedora-10s-better-startup/

[3] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02469.html

In answer to a question from Till Maas it was confirmed[4] by Felix Miata that if one "[...] rebooted into runlevel 3, logged in on tty1, did telinit 5, got kdm on vt7, switched to tty1, [then there was] a normal shell prompt following typical X startup messages, and kdm still on vt7 [.]"


[4] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02478.html

Dan Nicholson also corrected[5] assumptions that the changes were made to improve boot speed with the information that it was to prevent the ugly flicker of VT switching during boot and asked "Why is it significant what tty any program runs on? Isn't the assumption that getty will be on tty1 just as faulty as the assumption X will be on tty7?" Shmuel Siegel gave[6] an answer which was repeated many times in the threads: "Because you are changing a user interface. What is going to happen when the user switches to tty1 and nothing happens? The basic logic of putting X on tty7 is to get it out of the way. Humans will use the lowest numbered ttys first. Besides breaking existing documentation, including advice on various forums, is not a good idea." Bill Nottingham added[7] to Dan's rationle: "1) Reducing the amount of flicker and useless mode switching on startup is definitely a good thing 2) From a logical standpoint, the first tty should be for the most important user interaction. If you're booting in text mode, that's a getty. If you're booting with a GUI login... that's the GUI." Callum Lerwick and Brian Wheeler exchanged[8] details of the "vast improvement[s]" including removal of up to twelve seconds which resulted from the lack of monitor resync delays.

[5] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02458.html

[6] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02464.html

[7] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02543.html

[8] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02518.html

Gerd Hoffman made[9] an interesting suggestion about how Plymouth could do a VT switch immediately after KMS[10] had entered graphics mode but before printing anything to screen. In the course of this he clarified that "The flicker / resync delay comes from the *mode switch*, not the *vt switch*. And, no, a vt switch does *not* imply a mode switch. The reason you'll have flicker today when switching from/to X11 is that X11 does a mode switch when you switch from/to the terminal X11 is running on." BillNottingham was skeptical but Gerd insisted [11] that his approach would work.

[9] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02623.html

[10] Kernel Mode Setting: http://kerneltrap.org/node/8242

[11] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02820.html

After Till Maas suggested "[...] the kernel should be patched to start booting graphically using tty7 and not tty1." Bill Nottingham passed[12] on the idea as it would involve: "Having the kernel parse its own commandline for a runlevel (a concept that has nothing to do with the kernel, and doesn't even exist under some init systems) and then choosing to rearrange the tty init sequence based on that?" and in further discussion with Matthew Woehlke reiterated[13] "You're having the kernel operate on Fedora specific commandline options to start on a completely different tty, one that could be configured by anyone locally to do something else entirely. (Unless you do it in userspace, which means you jump away and then jump back for text mode, which...)" Casey Dahlin modified[14] the idea to "[...] either offer a getty on tty7 (not too hard) or we could instead add a small API to the kernel that would allow remapping which F key went to which tty, so you could have ctrl+alt+f1 bring up tty7. That way we could remap things so the user got the correct behavior. We wouldn't have to actually /do/ this, but if the API were there, we can tell the people who care to go figure it out."

[12] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02544.html

[13] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02594.html

[14] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02553.html

Will Woods explained[15] how to revert the change, but this was contested[16] by Dan Nicholson on the basis that the latest gdm does not support FirstVT. Dan provided an untested patch and explained that "[s]ince plymouth writes the /var/spool/gdm file on boot and then gdm removes it, any subsequent starts will put X on the first available VT, which is tty7 in the common configuration. With my patch, prefdm writes the file every time it's executed. I don't know if that's the correct behavior for all cases where prefdm would be run. I'm looking at upstream gdm right now, and FirstVT isn't respected. Looking at the rawhide patches, I don't see anything that would enable that functionality again."

[15] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02506.html

[16] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02516.html

Later Dax Kelson reopened[17] the thread with a list of objections which pointed out the negative impact upon documentation and user habit of the change. He garnered a good deal of support from many other respected contributors.

[17] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02601.html

At the end of the thread Bill Nottingham asked[18] the interesting question of why the change appeared to come as such a surprise given that it had been telegraphed in advance by a formal feature proposal[19] and had been implemented in rawhide: "Are people not running rawhide and the test releases? Are they not looking at features as they are proposed and being involved in the process? Are they just sitting around waiting to be outraged?" Dax rejoined[20] that it was not obvious from the documentation that there would be a side-effect which disturbed an expected convention.

[18] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02830.html

[19] http://fedoraproject.org/wiki/Features/BetterStartup

[20] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02853.html

Fedora 11: POSIX File Capabilities

Panu Matilainen announced[1] that he had added file capability support to rpm. With kernel support for storing capabilities on filesystem since 2.6.24 and the most recent libcap he asked if now was the time to "[...] start considering moving away from SUID bits to capabilities, in Fedora 11 maybe?"

SethVidal wondered how this would affect networked file systems and David Quigley answered[2] that "[...] capabilities are stored in xattrs they will run into the same problems that SELinux does. Labeled NFS is working to address this by providing a per file attribute through NFSv4 for extra security information."

Another show-stopper was the erasure of file-based capabilities by prelink. It appeared[3] that there was a certain amount of desire to examine whether prelink might cause more trouble than it was worth on faster hardware. Prelink's problems also included incorrectly stripping OCaml binaries and preventing rpm -V from working correctly.

Colin Walters noted[4] that the desktop team had "been moving the OS away from exec-based domain transitions to message passing (e.g. PolicyKit) for a variety of reasons. I think it might be worth considering introducing a rule actually in Fedora for "no new SUID/fcap binaries"[.]" Steve Grubb was worried[5] that this direction resulted in the introduction of another MAC system and that auditing from userspace was untrustworthy. Concern was also raised[6] by Michael Stone on the affects on solid-state memory consumption.

Steve Grubb sought details on how rpm would work with kernels lacking file capabilities and wanted[7] to "start removing some of the setuid bits." He suggested[8] to Chris Adams that tar and star should be capable of storing these new extended attributes and that aide would be useful in tracking changes to them.

[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02637.html

[2] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02849.html

[3] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02923.html

[4] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02729.html

[5] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02809.html

[6] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02818.html

[7] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02777.html

[8] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg02823.html

Purging Unnecessary .la Files

An apparent contravention of the packaging guidelines was noticed[1] by Debarshi Ray in the dia package. It contained %{_libdir}/%{name}/*.la files[2]. Colin Walters was[3][4] enthusiastic about the idea of "not encourag[ing] the libtool agenda to redefine how shared libraries work on our platform." Jerry James found[5] that he had quite a number of them on his x86_64 machine.

[1] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03031.html

[2] .la are libtool archive files: http://www.gnu.org/software/libtool/manual/html.node/index.html#Top

[3] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03032.html

[4] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03039.html

[5] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03038.html

Dan Nicholson argued[6] that it would be best to convince libtool upstream to support some way to choose whether or not the library archives were installed at build time, but Colin was unrelenting and argued[7]: "Or alternatively convince the automake people that it shouldn't be in the business of software lifecycle management (make uninstall) any more than people should be coding/overriding build systems (make;make install) inside RPM spec files. This seems possible; probably worth trying to at least have an environment variable AUTOMAKE.OPTIONS = i-dont-need-uninstall."

[6] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03048.html

[7] https://www.redhat.com/archives/fedora-devel-list/2008-October/msg03051.html

David Woodhouse also wanted[8] to see the back of libtool "[...]you can just throw it away and forget it ever existed? I just write proper Makefiles, and if I ever _want_ to spend a couple of minutes watch some bizarre script trying to work out what type of FORTRAN compiler I have on my system, I can write myself a little bash script for that too[...]" but Richard W. M. Jones disagreed[9] sharply as he found it useful for building shared libraries on a wide variety of platforms. In response to Colin Walters' suggestion to build a hook in RPM to nuke .la files he stated[10] that they were essential for the MinGW packages.

[8] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00019.html

[9] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00024.html

[10] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00023.html

Toshio Kuratomi and Michael Schwendt discussed[11] how newer versions of libltld can work without missing libtool archives and that it was desirable to remove them because a "[...] private copy of a system library would be a violation of the Packaging Guidelines for security reasons [.]"

[11] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00064.html

Richard W. M. Jones decided[12] to do some testing to determine whether MinGW needed "[...] the *.la files for MinGW packages" or "[...] the .la files in MinGW packages[.]"

[12] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg00085.html