From Fedora Project Wiki

< FWN‎ | Beats

m (move URL out to new reference/citation pair)
No edit summary
Line 7: Line 7:
Contributing Writer: [[:User:OisinFeeley|Oisin Feeley]]
Contributing Writer: [[:User:OisinFeeley|Oisin Feeley]]


=== How Maintainers Can Help Reduce XULRunner Breakage ===
=== Solving the Unsynchronized Release of Package Dependencies ===


The recent breakage of many packages which depend on xulrunner (see FWN#136 "XULRunner Security Update Breakage Stimulates Bodhi Discussion"[1]) was addressed[2] in a post by [[WillWoods|Will Woods]]. Will reported that a QA meeting involving [[ChristopherAillon|Christopher Aillon]] (caillon), as <code>Firefox/XULRunner</code> maintainer, had investigated the problem and produced an explanation and some recommendations for other package maintainers. As Christopher was unavailable for a week Will was relaying the information in the hope that some fixes could be made in his absence.
A problem often experienced by users of "add-on" packages[1] is that dependency resolution will fail during a simple <code>yum update</code> when the official Fedora repositories release an update to the base packages on which these add-ons depend. ThorstenLeemhuis explained[2] that as add-on packages have a strict dependency on the base packages for which they were built and updates are not available at exactly the same time on all mirrors there is no ideal point in time for the add-on to be released. Thorsten's RFC was careful to point out that the problem did not only affect ''kmods'', but also plugins for ''audacious'', ''xine'' and ''k3b'' and that the resulting dependency resolution failures occurred both when the add-on was visible to ''yum'' before the base package and vice versa. The two possible solutions envisioned by Thorsten included either ''yum'' being modified "to be taught to do a second look at the right place to find what's needed" or the third-party repositories to include the updated base packages along with the updated add-on. Thorsten feared that this latter option of "shipping non-free kernel modules and the GPLed kernels in one repo might [make] some people yell license violation."


[1] http://fedoraproject.org/wiki/FWN/LatestIssue#XULRunner.Security.Update.Breakage.Stimulates.Bodhi.Discussion
[1] Such packages are hosted by "third-party" repositories, which are run independently of the Fedora Project. The packages, while highly useful for many Fedora users, are deemed to be legally non-distributable due to the laws of the U.S.A.


[2] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01682.html
[2] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00041.html


The reason that some xulrunner-dependent packages were affected and others not was that ''xulrunner'' provides both a stable API <code>gecko-devel</code> and an unstable API <code>gecko-devel-unstable</code>. Will noted that <code>BuildRequires</code> of ''xulrunner-devel'' or ''xulrunner-devel-unstable'' should no longer be used and instead that gecko equivalents should replace them.
A report of daily failures of this type occurring for Rawhide without any complicating third-party repository was posted[3] by [[JohnEllson|John Ellson]]. He gave two examples from his current machine. The first was a missing dependency error:


Packages using the stable API were unaffected by the update of <code>xulrunner</code>. Will stated that "[t]he unstable API could change at any time, so if your app is using the unstable API it must be rebuilt *every time* <code>xulrunner</code> is updated." It was recommended that packages that used the stable API should use the following in their specfiles:<pre>
<pre>$ yum update phonon*
Requires: gecko-libs >= 1.9
Error: Missing Dependency: phonon = 4.2.0-1.fc10 is needed by package phonon-backend-gstreamer-4.2.0-1.fc10.x86.64 (installed)
BuildRequires: gecko-devel >= 1.9
</pre>
</pre>
and that those using the unstable API should use:
 
<pre>
and the second was a file conflict error:
%define gecko_ver 1.9.0.1
 
Requires: gecko-libs = %{gecko_ver}
<pre>$ yum update digikam*
BuildRequires: gecko-devel-unstable = %{gecko_ver}
Transaction Check Error: file /usr/share/icons/oxygen/128x128/apps/digikam.png from install of digikam-0.10.0-0.1.beta2.fc10.x86.64 conflicts with file from package oxygen-icon-theme-4.1.0-1.fc10.noarch
</pre>
</pre>


Lastly an important request was made of package maintainers: "if your package uses the <code>-unstable</code> API, please send caillon redhat com a note, and *please* consider adding him to the ACL (or opening it entirely). He keeps tabs on all packages requiring the unstable API so they can all be rebuilt for each security update."
[3] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00044.html
 
John wished that ''yum'' would skip updating all rpms which produce conflicts with currently installed rpms whether or not they are third-party or otherwise, especially as neither of these issues had been flagged in the appropriately dated "Rawhide report". A good deal of the remainder of thread was devoted to replying to this post instead of to Thorsten's RFC. The first response came[4] from MichaelSchwendt and made the point that the first error was probably due to an incorrect "Obsoletes" tag in the !code?phonon-backend-gst!/code? that is supposed to replace <code>phonon-backend-gstreamer</code>. The script which checks for broken dependencies in Rawhide cannot detect this as the <code>phonon-backend-gstreamer</code> is not visible to it. Michael addressed the second error with the point that conflicts are entirely different from dependency issues and are not checked. RexDieter, as package maintainer, quickly fixed both of the problems and in doing so demonstrated that users filing bug reports can be an effective part of the current process. Thorsten also emphasized[5] that the two errors posted by JohnEllson were entirely different from each other and that the conflict was a bug best dealt with by user reports. He further argued that it was impossible for the Rawhide dependency checker script to examine the contents of users' hard disks. All that the script can do is examine the current contents of Rawhide and as the <code>phonon-backend-gstreamer</code> was long gone it could not test a theoretical update from it. [[MichaelSchwendt|Michael Schwendt]] later added[6] that although his own "repoclosure" script developed for the old "Extras" repository had been able to take account of "obsolete binary [packages] from the previous compose [...] because in Extras we've had up to two pkg releases in the repo[sitory ...] the Rawhide report is like a fresh install of only the latest [package] releases, and one can only hope that there are enough testers who find and report the additional update/upgrade problems." Michael claimed[7] that as the FedoraProject policy on file conflicts was "half-hearted" he was uninterested in shouldering the burden of running the script himself. He also noted that [[FlorianLaRoche|Florian La Roche]] had a script for determining conflicts between files and symlinks.
 
[4] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00045.html
 
[5] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00046.html
 
[6] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00097.html
 
[7] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00048.html
 
During this discussion JohnEllson was unimpressed[8] with the theoretical reasons as to why he was seeing these problems and requested that even if it were not possible to do such checks on the server "[j]ust have yum on the client recover gracefully from these and skip over them."
 
[8] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00047.html
 
Similarly [[DavidTimms|David Timms]] wondered[9] if the original problem stated in the RFC could be solved by using the yum option <code>--skip-broken</code> if it were made to select only those packages which were: available, non-conflicting, non-dependency-breaking and actually downloadable.Thorsten restated[10] his belief that this was effectively hiding the problem instead of fixing it and would result in users being unaware that important updates were blocked solely due to a manually installed problem RPM. Instead he suggested setting a window of time during which updates with broken dependencies would be ignored and then finally reported as errors. [[SethVidal|Seth Vidal]] corrected[11] the impression that "skip broken" was a plugin to ''yum'' (it is now a core option) and while agreeing that "a tool to detect all these issues is worth discussing, not sure how we catch all possible conflicts, though" seemed to confuse Thorsten's window of time with checking the actual package creation filestamp. JesseKeating also appeared[12] to fall prey to this confusion and like Seth pointed out the problem of queued packages sitting in repositories before being released. To clear this confusion up Thorsten posted[13] a more detailed explanation which emphasized that the times being examined were relative to the client-side's first encountering of the problem and made no reference to the build-date or publication date of the package itself. The advantage of Thorsten's seventy-two hour window scheme is that it gives packagers a grace period in which to correct the problem and at the end of that the same situation prevails as now, namely that the update will fail and users will notice and report the errors.


[[BradenMcDaniel|Braden McDaniel]] wondered[3] why the same headers, but with different pathnames, were provided by <code>xulrunner-devel-unstable</code> and <code>xulrunner-devel</code> and Ville-PekkaVainio had[4] the same question.
[9] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00049.html


[3] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01684.html
[10] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00099.html


In response to the suggested BuildRequires [[DouglasWarner|Douglas Warner]] requested[5] that a <code>Provides: gecko-libs-api = 1.9</code> be added to <code>xulrunner</code> so that dependent packages would break if <code>xulrunner</code> were bumped to a new version which was not compatible: "For example, I can't do: <code>Requires: gecko-libs < 2.0</code> Because I'm not guaranteed that the next version will *be* 2.0 (it might be 1.10, for example)." [[RexDieter|Rex Dieter]] independently came[6] to the same conclusion. [[DenisLeroy|Denis Leroy]] begged[7] that <code>xulrunner</code> would use "libtool-style soname versions like all other libraries in Fedora? So we don't need to add the version numbers in the spec file in the first place." Denis thought that <code>xulrunner</code> would fail a standard Fedora package review.
[11] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00150.html


[4] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01686.html
[12] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00153.html


=== NEVR Again ===
[13] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00154.html


Another report detailing broken upgrade paths was posted[1] by [[JesseKeating|Jesse Keating]]'s script (see FWN#136 "Broken Upgrade Paths Due to NEVR"[2]). This time it reported those packages which failed the path "f8-final -> dist-f8-updates -> dist-f8-updates-testing -> dist-f9-updates -> dist-f9-updates-testing -> dist-f10" and seventy-eight packages were listed. Also included as per last week's discussion was an ordering of the list per-builder as opposed to per-owner. Jesse requested[3] feedback from recipients of the automated email warnings if problems are encountered.
=== Firefox Mouse Woes ===


[1] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01525.html
MarkG reported[1] that ''Firefox'' did not respond to the scroll wheel on GNU/Linux in the same way in which it did on Microsoft Windows. He had intended to file a bugzilla report, but due to the outage (see this same FWN#138 "Bugzilla Overhauled") was merely posting to @fedora-devel. The basic point made in what MarkG chose to frame as an RFC was that he expected the middle mouse button when clicked to allow him to scroll the page but that "[w]hen you press it on linux in firefox you get ... nothing[.]" He suggested that a simple change of the<code>firefox-fedora-default-prefs.js</code> to <code>pref("general.autoScroll", true);</code> by the Fedora maintainer would achieve this goal and noted that currently it is possible for a user to achieve the same end by navigating to the URI <code>about: config</code> and filtering <code>general.autoScroll</code> and changing its boolean to "true". MarkG also noted in support of his argument that "Ubuntu" had made such a change.


[2] http://fedoraproject.org/wiki/FWN/LatestIssue#Broken.Upgrade.Paths.Due.to.NEVR
[1] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00053.html


[3] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01526.html
A correction was made[2] by [[IgnacioVazquezAbrams--Ignacio Vazquez-Abrams]] to the effect that clicking the middle mouse button brought one to the "URL stored in the clipboard." He also pointed out that the environment in which the middle-click was made was important and that Firefox was doing the correct thing by following the Windows' environment preference of autoscrolling and the *nix environment preference of pasting from the clipboard. At this point the thread should probably have stopped but instead descended into a morass of personal preferences and insults. Nevertheless there were a couple of points worth noting.


[[StephenWarren|Stephen Warren]] was concerned[4] that the upgrade path did not include the GA release of dist-f9: "Shouldn't dist-f9-final (or whatever the correct name is) be inserted in this path list between dist-f8-updates-testing and dist-f9- updates?" This led to an interesting exchange with [[KevinKofler|Kevin Kofler]] who argued[5] that the converse should be expected and it was desirable that updates to Fedora 8 would have higher EVRs than the packages which were released for "dist-f9". Stephen argued[6] that it would make it easier to backport fixes if bumping of the release number rather than the version number were preferred and suggested changing what he understood to be Fedora's policies. KevinKofler disagreed[7] both with Stephen's description of current Fedora practices and also with his desire to reduce version bumps. He listed several situations in which these bumps would be useful and suggested that it was such version upgrades which uniquely distinguished Fedora from Debian "stable" or Red Hat EL.
[2] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00054.html


[4] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01527.html
[[NaheemZaffar--Naheem Zaffar]] thought[3] that while pasting was well and good it was not so nice to have the pasted URL automatically replacing the current page. [[RuiMiguelSilvaSeabra|Rui Miguel Silva Seabra]] provided[4] a fix for this with


[5] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01529.html
<code>about:config -> browser.tabs.opentabfor.middleClick</code>.
[3] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00108.html


[6] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01539.html
[4] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00109.html


[7] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01553.html
A type of closure to the thread was obtained when [[ToddZullinger|Todd Zullinger]] posted[5] that a likely result of making such changes would merely be to "get the opposite RFC from anyone who is used to the *nix behavior and wonders why Firefox is scrolling instead of pasting the clipboard contents as we'd expect. :)" and he speculated that "Ubuntu" had diverged from upstream.


The possibility that simultaneous updates would be released to all branches was discussed[8] by [[KevinKofler|Kevin Kofler]] and [[JesseKeating|Jesse Keating]]. Although Jesse thought this was a corner case and that it was best to let the maintainer decide Kevin was motivated[9] to write a patch as it was in his experience a common problem. Kevin thought that if Jesse wanted to avoid spamming maintainers with bogus reports then his patch would remove about thirty-nine percent of the volume. Jesse was grateful and excused[10] himself from looking at the patch for a week due to the pressure of releasing the alpha of Fedora 10.
[5] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00058.html


[8] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01572.html
=== Bugzilla Overhauled ===


[9] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01574.html
As commented in several threads this week (e.g. this FWN#138 "Firefox Mouse Woes") Bugzilla was down for maintenance. This was due to upgrades of the OS on the servers and a move from the venerable ''bugzilla-2.18'' to ''bugzilla-3.2''. The original announcement[1] was posted on several lists and detailed the planned outage and the changes to ''bugzilla'' which included user-interface enhancements, AJAX optimizations for searching and displaying bugs and an XMLRPC API.


[10] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01595.html
[1] http://www.mail-archive.com/fedora-announce-list@redhat.com/msg01372.html


[5] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01685.html
The announcement and the reminder[2] that this would all happen on 2nd August requested that those using the API pointed their scripts to the test server https://partner-bugzilla.redhat.com to ensure that the new system was indeed backwards compatible.


[6] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01728.html
[2] http://www.mail-archive.com/fedora-devel-announce@redhat.com/msg00194.html


[7] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01708.html
A brief thread on @fedora-devel was started[3] when [[GilboaDavara|Gilboa Davara]] noticed that attempting to file a bug resulted in the JavaScript hanging and Firefox offering to retry or stop the script. This experience was confirmed by several other posters who noted that hitting "Continue" and waiting seemed to work. [[PaulFrields--Paul Frields]] speculated[4] that it was the population of the component list which was slow.


=== Slimming Down Java by Sub-Packaging AOT ===
[3] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00175.html


A request to separate out the AOT[1] parts of Java packages into sub-packages was made[2] by [[CaolanMcNamara|Caolan McNamara]]. He estimated that it would be possible to remove circa 45 Mb (in /usr/lib/gcj) as OpenJDK tended to be installed anyway due to the web plugin.
[4] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00178.html


[1] AOT stands for Ahead-Of-Time. This refers to the static compilation of the program to produce native code which runs without the potential run-time performance hit imposed by JIT. JIT stands for Just-In-Time and refers to dynamic compilation of each method of a Java program immediately before execution. Although there are techniques to speed up JIT, by identifying "hot" frequently called methods and caching them[2a], in general it is believed to be sub-optimal for GUI-based programs.
=== Feature Proposal: Provers ===


[2] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01763.html
An interesting proposal to include a bunch of tools for automated theorem proving was mooted[1] by [[User:dwheeler|David A. Wheeler]]. The bundle of tools, listed in David's post, would ease the task of increasing the reliability of software in some specific cases and are often used (see paper by David[2]) to perform assurance for safety and security on other programs. David argued that these tools, which are variously Formal Methods Tools, Key Provers and Solvers should be considered as a "Feature" for Fedora 10 as they needed some integration and had not previously been packaged for Fedora. Some of the methods enabled by these tools are being used by the OpenSuSE distribution to speed up dependency solving of RPM packages.


[2a] http://en.wikipedia.org/wiki/HotSpot
[1] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00263.html


[[AndrewHaley|Andrew Haley]] and [[AndrewOverholt|Andrew Overholt]] expressed[3] skepticism that users would realize that they needed the ''gcj'' AOT-compiled code in order to get good performance. [[AndrewOverholt|Andrew Overholt]] stated "one of the reasons we didn't do this to begin with was because RPM has no notion of Suggests or Recommends like dpkg does. Debian went this route, but I've seen reports of people not realizing they needed to install the associated -gcj package."
[2] http://www.dwheeler.com/essays/high-assurance-Floss.html


[3] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01769.html
[[User:JarodWilson|Jarod Wilson]] was uncertain[3] that the case for calling "just a collection of new packages" a Feature had been made. After further support from [[PatriceDumas|Patrice Dumas]], [[CaseyDahlin|Casey Dahlin]] and [[PaulFrields|Paul Frields]] an explanation was posted[4] by [[ToshioKuratomi|Toshio Kuratomi]] that the determination is made in part by the presentation of why and how some packages are useful to a hypothetical end user: "just saying Fedora has a collection of provers isn't a Feature. But saying, in Fedora 10 we've made an effort to include foo, bar, baz important provers for Target Audience so they can find all the tools they need to do X Type of Work. Similarly, `We've done work so that foo and bar can import and export the same file format', or other work to show how we're making the user experience better would make a stronger case for a feature." Similarly Jarod provided[5] links to the Fedora Project wiki to support his case that not enough had been done to explain why the programs were a cohesive collection dedicated to a particular end use case although he admitted "I suppose perhaps this falls under "noteworthy enough to call out in the release notes", depending on who you ask. I'm still not sold yet."


The advantages of maintaining both AOT and JIT compilation were argued[4] by [[ColinWalters|Colin Walters]]. Among the reasons listed by Colin for keeping a JIT were: "many apps will continue to load code at runtime from sources that are not Fedora. Think unpackaged Eclipse plugins for just a start" and that "[a] JIT also has a lot more interesting information than a normal AOT model. Hotspot does a lot of cool things there." Colin suggested that "profile driven optimizations",based on work done in 2001 by JanHubicka (SuSE), [[RichardHenderson|Richard Henderson]] (Red Hat) and AndreasJaeger (SuSE), might be a way to improve the performance of JITted programs. On the other hand he recognized that AOT compilation was useful "because having Hotspot re-profile and recompile the Eclipse core on everyone's computer is a bit of a waste." Colin followed up[5] with a putative infrastructure plan involving modifying Koji to create a new repository of optimized versions of select applications and a YUM plugin which feeds HotSpot profile data from individuals back to a central server which in turn is used to further optimize the compilations. [[JeffSpaleta|Jeff Spaleta]] wanted[6] to know if this new repository would be disabled by default. [[ToshioKuratomi|Toshio Kuratomi]] was concerned[7] that Koji should maintain its ability to create a precisely audited build.
[3] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00265.html


[4] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01774.html
[4] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00298.html


[5] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01775.html
[5] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00301.html


[6] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01792.html
RahulSundaram wanted[6] a classification of packaging difficulty added as he had examined several on the package wishlist and found them "a large amount of pain to package." [[VasileGaburici|Vasile Gaburici]] suggested calling the packages "Theorem Proving Tools" in order to broaden the category a bit. He also suggested[7] including ''gap'' and ''twelf''. Suggestions to include other packages were forthcoming from [[MilesSavin|Miles Savin]] for ''Agda2'' and [[RichardJones|Richard Jones]] for ''CIL'', a C-parser and static-analysis tool. Richard included a link[8] to a nice analysis of ''libvirt'' performed with CIL. [[AndrewOverholt|Andrew Overholt]] noted[9] that ''sat4j'' was already packaged in Fedora.


[7] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01795.html
[6] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00264.html


=== Rawhide Network Breakage Due to Wireless Drivers ===
[7] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00267.html


A puzzled [[RichardJones|Richard Jones]] asked[1] if anyone else had experienced bizarre networking failures apparently due to DNS lookup failures for web browsers but not for command line tools. Several confirmations were posted and [[DanWilliams | Dan Williams]] warned[2] that "all mac80211-based drivers (b43, b43-legacy, iwl3945, iwl4965, ath5k, rt2x00)" were broken due to upstream patching of multiqueue functionality.
[8] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00288.html
 
[1] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01788.html


[2] https://www.redhat.com/archives/fedora-devel-list/2008-July/msg01801.html
[9] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00293.html
 
[[RalfEtzinger | Ralf Etzinger]] asked[3] if failure to associate with an Access Point was one of those expected pieces of "random weirdness." In response to a follow-up question from [[MichaelSolberg|Michael Solberg]] about a failure to associate using ''kernel-2.6.25.10-47.fc8'' Dan added[4] that only Rawhide kernels should be affected.


[3] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00000.html
=== rpmgrok Announced ===


[4] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00008.html
Red Hat's [[DavidMalcolm|David Malcolm]] announced[1] ''rpmgrok'', a web-based tool to allow users to track program information across an entire distribution, yet without having a complete install tree. The tracked information includes all symbols in binaries, RPM manifests, shared objects, meta-information about rpms and more. He pointed interested parties to his test prototype[2].


=== Possible Slippage of Fedora 10 Alpha? ===
[1] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00221.html


A brief note from [[JesseKeating|Jesse Keating]] on Friday requested[1] an IRC meeting with spin owners, QA, Kernel and other concerned parties to discuss the problem that "split media"[2] was not working currently. As the Alpha release is scheduled[3] for August 5th it seems as though there is little time to solve this problem.
[2] http://publictest7.fedoraproject.org/rpmgrok


[1] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00005.html
All this information is obtained by analyzing the actually built rpms and storing the results in a database. David requested that anyone interested in coding, sysadmin and UI design get involved and provided a link to the ''git'' repository and the information that it was built upon ''TurboGears'' and ''SQLAlchemy''.


[2] The ability to break a set of RPM packages into media images to be used by <code>anaconda</code> during installation is a difficult one.  Currently it is handled by the <code>pungi</code> module https://hosted.fedoraproject.org/pungi/wiki/PungiDocs/PungiDocs
Enthusiasm for the "Errors and warnings from rpmlint" was expressed[3] by [[AxelThimm|Axel Thimm]] because he could imagine that someone that's say an expert on "invalid-desktopfile" issues could now dig into this much easier. Very nice!", but upon further feedback[4] from [[MamoruTasaka|Mamoru Tasaka]] and [[VilleSkyttä|Ville Skyttä]] it appeared that some work needed to be done to ensure that ''rpmlint'' was being used correctly. In any case this looks like a very promising and useful tool.


[3] http://fedoraproject.org/wiki/Releases/10/Schedule
[3] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00228.html


In an aside Jesse referred to the problem that the "Alphas" are currently hidden away from the general community and that he would like to address this at a subsequent ReleaseEngineering meeting.
[4] https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00242.html

Revision as of 19:45, 9 August 2008

Developments

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

Contributing Writer: Oisin Feeley

Solving the Unsynchronized Release of Package Dependencies

A problem often experienced by users of "add-on" packages[1] is that dependency resolution will fail during a simple yum update when the official Fedora repositories release an update to the base packages on which these add-ons depend. ThorstenLeemhuis explained[2] that as add-on packages have a strict dependency on the base packages for which they were built and updates are not available at exactly the same time on all mirrors there is no ideal point in time for the add-on to be released. Thorsten's RFC was careful to point out that the problem did not only affect kmods, but also plugins for audacious, xine and k3b and that the resulting dependency resolution failures occurred both when the add-on was visible to yum before the base package and vice versa. The two possible solutions envisioned by Thorsten included either yum being modified "to be taught to do a second look at the right place to find what's needed" or the third-party repositories to include the updated base packages along with the updated add-on. Thorsten feared that this latter option of "shipping non-free kernel modules and the GPLed kernels in one repo might [make] some people yell license violation."

[1] Such packages are hosted by "third-party" repositories, which are run independently of the Fedora Project. The packages, while highly useful for many Fedora users, are deemed to be legally non-distributable due to the laws of the U.S.A.

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

A report of daily failures of this type occurring for Rawhide without any complicating third-party repository was posted[3] by John Ellson. He gave two examples from his current machine. The first was a missing dependency error:

$ yum update phonon*
Error: Missing Dependency: phonon = 4.2.0-1.fc10 is needed by package phonon-backend-gstreamer-4.2.0-1.fc10.x86.64 (installed)

and the second was a file conflict error:

$ yum update digikam*
Transaction Check Error: file /usr/share/icons/oxygen/128x128/apps/digikam.png from install of digikam-0.10.0-0.1.beta2.fc10.x86.64 conflicts with file from package oxygen-icon-theme-4.1.0-1.fc10.noarch

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

John wished that yum would skip updating all rpms which produce conflicts with currently installed rpms whether or not they are third-party or otherwise, especially as neither of these issues had been flagged in the appropriately dated "Rawhide report". A good deal of the remainder of thread was devoted to replying to this post instead of to Thorsten's RFC. The first response came[4] from MichaelSchwendt and made the point that the first error was probably due to an incorrect "Obsoletes" tag in the !code?phonon-backend-gst!/code? that is supposed to replace phonon-backend-gstreamer. The script which checks for broken dependencies in Rawhide cannot detect this as the phonon-backend-gstreamer is not visible to it. Michael addressed the second error with the point that conflicts are entirely different from dependency issues and are not checked. RexDieter, as package maintainer, quickly fixed both of the problems and in doing so demonstrated that users filing bug reports can be an effective part of the current process. Thorsten also emphasized[5] that the two errors posted by JohnEllson were entirely different from each other and that the conflict was a bug best dealt with by user reports. He further argued that it was impossible for the Rawhide dependency checker script to examine the contents of users' hard disks. All that the script can do is examine the current contents of Rawhide and as the phonon-backend-gstreamer was long gone it could not test a theoretical update from it. Michael Schwendt later added[6] that although his own "repoclosure" script developed for the old "Extras" repository had been able to take account of "obsolete binary [packages] from the previous compose [...] because in Extras we've had up to two pkg releases in the repo[sitory ...] the Rawhide report is like a fresh install of only the latest [package] releases, and one can only hope that there are enough testers who find and report the additional update/upgrade problems." Michael claimed[7] that as the FedoraProject policy on file conflicts was "half-hearted" he was uninterested in shouldering the burden of running the script himself. He also noted that Florian La Roche had a script for determining conflicts between files and symlinks.

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

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

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

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

During this discussion JohnEllson was unimpressed[8] with the theoretical reasons as to why he was seeing these problems and requested that even if it were not possible to do such checks on the server "[j]ust have yum on the client recover gracefully from these and skip over them."

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

Similarly David Timms wondered[9] if the original problem stated in the RFC could be solved by using the yum option --skip-broken if it were made to select only those packages which were: available, non-conflicting, non-dependency-breaking and actually downloadable.Thorsten restated[10] his belief that this was effectively hiding the problem instead of fixing it and would result in users being unaware that important updates were blocked solely due to a manually installed problem RPM. Instead he suggested setting a window of time during which updates with broken dependencies would be ignored and then finally reported as errors. Seth Vidal corrected[11] the impression that "skip broken" was a plugin to yum (it is now a core option) and while agreeing that "a tool to detect all these issues is worth discussing, not sure how we catch all possible conflicts, though" seemed to confuse Thorsten's window of time with checking the actual package creation filestamp. JesseKeating also appeared[12] to fall prey to this confusion and like Seth pointed out the problem of queued packages sitting in repositories before being released. To clear this confusion up Thorsten posted[13] a more detailed explanation which emphasized that the times being examined were relative to the client-side's first encountering of the problem and made no reference to the build-date or publication date of the package itself. The advantage of Thorsten's seventy-two hour window scheme is that it gives packagers a grace period in which to correct the problem and at the end of that the same situation prevails as now, namely that the update will fail and users will notice and report the errors.

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

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

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

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

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

Firefox Mouse Woes

MarkG reported[1] that Firefox did not respond to the scroll wheel on GNU/Linux in the same way in which it did on Microsoft Windows. He had intended to file a bugzilla report, but due to the outage (see this same FWN#138 "Bugzilla Overhauled") was merely posting to @fedora-devel. The basic point made in what MarkG chose to frame as an RFC was that he expected the middle mouse button when clicked to allow him to scroll the page but that "[w]hen you press it on linux in firefox you get ... nothing[.]" He suggested that a simple change of thefirefox-fedora-default-prefs.js to pref("general.autoScroll", true); by the Fedora maintainer would achieve this goal and noted that currently it is possible for a user to achieve the same end by navigating to the URI about: config and filtering general.autoScroll and changing its boolean to "true". MarkG also noted in support of his argument that "Ubuntu" had made such a change.

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

A correction was made[2] by IgnacioVazquezAbrams--Ignacio Vazquez-Abrams to the effect that clicking the middle mouse button brought one to the "URL stored in the clipboard." He also pointed out that the environment in which the middle-click was made was important and that Firefox was doing the correct thing by following the Windows' environment preference of autoscrolling and the *nix environment preference of pasting from the clipboard. At this point the thread should probably have stopped but instead descended into a morass of personal preferences and insults. Nevertheless there were a couple of points worth noting.

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

NaheemZaffar--Naheem Zaffar thought[3] that while pasting was well and good it was not so nice to have the pasted URL automatically replacing the current page. Rui Miguel Silva Seabra provided[4] a fix for this with

about:config -> browser.tabs.opentabfor.middleClick.

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

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

A type of closure to the thread was obtained when Todd Zullinger posted[5] that a likely result of making such changes would merely be to "get the opposite RFC from anyone who is used to the *nix behavior and wonders why Firefox is scrolling instead of pasting the clipboard contents as we'd expect. :)" and he speculated that "Ubuntu" had diverged from upstream.

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

Bugzilla Overhauled

As commented in several threads this week (e.g. this FWN#138 "Firefox Mouse Woes") Bugzilla was down for maintenance. This was due to upgrades of the OS on the servers and a move from the venerable bugzilla-2.18 to bugzilla-3.2. The original announcement[1] was posted on several lists and detailed the planned outage and the changes to bugzilla which included user-interface enhancements, AJAX optimizations for searching and displaying bugs and an XMLRPC API.

[1] http://www.mail-archive.com/fedora-announce-list@redhat.com/msg01372.html

The announcement and the reminder[2] that this would all happen on 2nd August requested that those using the API pointed their scripts to the test server https://partner-bugzilla.redhat.com to ensure that the new system was indeed backwards compatible.

[2] http://www.mail-archive.com/fedora-devel-announce@redhat.com/msg00194.html

A brief thread on @fedora-devel was started[3] when Gilboa Davara noticed that attempting to file a bug resulted in the JavaScript hanging and Firefox offering to retry or stop the script. This experience was confirmed by several other posters who noted that hitting "Continue" and waiting seemed to work. PaulFrields--Paul Frields speculated[4] that it was the population of the component list which was slow.

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

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

Feature Proposal: Provers

An interesting proposal to include a bunch of tools for automated theorem proving was mooted[1] by David A. Wheeler. The bundle of tools, listed in David's post, would ease the task of increasing the reliability of software in some specific cases and are often used (see paper by David[2]) to perform assurance for safety and security on other programs. David argued that these tools, which are variously Formal Methods Tools, Key Provers and Solvers should be considered as a "Feature" for Fedora 10 as they needed some integration and had not previously been packaged for Fedora. Some of the methods enabled by these tools are being used by the OpenSuSE distribution to speed up dependency solving of RPM packages.

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

[2] http://www.dwheeler.com/essays/high-assurance-Floss.html

Jarod Wilson was uncertain[3] that the case for calling "just a collection of new packages" a Feature had been made. After further support from Patrice Dumas, Casey Dahlin and Paul Frields an explanation was posted[4] by Toshio Kuratomi that the determination is made in part by the presentation of why and how some packages are useful to a hypothetical end user: "just saying Fedora has a collection of provers isn't a Feature. But saying, in Fedora 10 we've made an effort to include foo, bar, baz important provers for Target Audience so they can find all the tools they need to do X Type of Work. Similarly, `We've done work so that foo and bar can import and export the same file format', or other work to show how we're making the user experience better would make a stronger case for a feature." Similarly Jarod provided[5] links to the Fedora Project wiki to support his case that not enough had been done to explain why the programs were a cohesive collection dedicated to a particular end use case although he admitted "I suppose perhaps this falls under "noteworthy enough to call out in the release notes", depending on who you ask. I'm still not sold yet."

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

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

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

RahulSundaram wanted[6] a classification of packaging difficulty added as he had examined several on the package wishlist and found them "a large amount of pain to package." Vasile Gaburici suggested calling the packages "Theorem Proving Tools" in order to broaden the category a bit. He also suggested[7] including gap and twelf. Suggestions to include other packages were forthcoming from Miles Savin for Agda2 and Richard Jones for CIL, a C-parser and static-analysis tool. Richard included a link[8] to a nice analysis of libvirt performed with CIL. Andrew Overholt noted[9] that sat4j was already packaged in Fedora.

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

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

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

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

rpmgrok Announced

Red Hat's David Malcolm announced[1] rpmgrok, a web-based tool to allow users to track program information across an entire distribution, yet without having a complete install tree. The tracked information includes all symbols in binaries, RPM manifests, shared objects, meta-information about rpms and more. He pointed interested parties to his test prototype[2].

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

[2] http://publictest7.fedoraproject.org/rpmgrok

All this information is obtained by analyzing the actually built rpms and storing the results in a database. David requested that anyone interested in coding, sysadmin and UI design get involved and provided a link to the git repository and the information that it was built upon TurboGears and SQLAlchemy.

Enthusiasm for the "Errors and warnings from rpmlint" was expressed[3] by Axel Thimm because he could imagine that someone that's say an expert on "invalid-desktopfile" issues could now dig into this much easier. Very nice!", but upon further feedback[4] from Mamoru Tasaka and Ville Skyttä it appeared that some work needed to be done to ensure that rpmlint was being used correctly. In any case this looks like a very promising and useful tool.

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

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