Foundations Team Weekly Report, 2009-07-22

Robbie Williamson robbie at
Sat Jul 25 11:20:30 BST 2009

== Present ==

 * RobbieWilliamson - chair
 * ColinWatson
 * EvanDandrea
 * JamesWestby
 * LarsWirzenius
 * MichaelVogt
 * MikeTerry
 * ScottJamesRemnant

== Apologies ==
 * MatthiasKlose - On Canonical OEM Rotation
 * MuharemHrnjadovic - On Holiday
 * SteveLangasek - Traveling to DebConf

== Agenda ==

 * Status Updates on
[[|Alpha 3
for Windows]] - Won't make Alpha 3 explicitly, but should be done this week.
- Done
Policy]] - Done
Installer Improvements]] - Done?
2.6 for Hardy]] - Done
Support in Landscape]] - Done
 * Sponsorship queue
 * Objectives - '''Deadline is ~+NEXT+~ Friday'''
 * Good news
 * AOB

== Activity reports ==

=== Colin Watson ===

=== Evan Dandrea ===
==== Ubiquity ====
 * Removed last-good-boot code.
 * Documented the release process in
 * Fixed one of the hundred papercuts, bug 154506 (renaming "Install" to
"Install $DISTRO $VERSION"), after clearing it with Jane.  Looked over
hundredpapercuts installer bugs, followed up to bug 380171.
 * Tracked down ubiquity contributors and kindly asked them to sign the
contributor agreement.  Made a plan with cjwatson to handle this better in the
future.  Started that by adding a note to asking potential contributors to
sign it.
 * Continued discussions with Thomas Hailey on the scary "no-format" warning in
 * Reviewed mterry's ubiquity plugins proposal.  Made a few comments, but it
largely looks good.
 * Fixed bug 401919 (the default hostname was always getting set to "ubuntu"
instead of "$user-desktop").
 * Fixed the mess I created in casper in support of renaming the Install icon.
Refined it further on a suggestion from Mario.
 * Fixed ubiquity trying to start the migration-assistant UI in Kubuntu.
 * Released two new versions of ubiquity.

==== Ubiquity Slideshow ====
 * Investigated modifications to the gettext code (merging all of the templates
to avoid duplicate strings).
 * Discussed the slideshow code at length with Dylan and mpt.
 * Wrote a MIR for pywebkitgtk:
 * Reviewed the slideshow code.
 * Wrote and merged code into ubiquity trunk to support the slideshow.

==== Windows usb-creator ====
 * Re-targeting to Monday, July 27th after a discussion with Robbie.
 * Created the wine-based test harness.  No more developing inside Windows.  Hooray.
 * Lots of work on the Windows frontend and backend code.
 * Lots of work on expanding winui to support the needed widgets, messages,
notifications, constants, and so on.
 * Ran headfirst into Windows not supporting loop mounted devices (ISO files in
this case) without a driver (VCdRom.sys) that I'm assuming we cannot
redistribute.  Suggestions welcome.
 * Code in lp:~usb-creator-hackers/usb-creator/cleanup.

=== James Westby ===
==== Distributed Development ====
  * > 50,000 branches imported.
  * Sent a progress update to ubuntu-devel answering some questions, and
pointing to documentation so people can try it out.
  * Fixed some import failures.
  * Waiting on feedback on needed bzr features for karmic goals, not looking
good to have them available.

==== Daily Builds ====
  * Fixed some outstanding issues in bzr-builder
  * Need another session fleshing out the above wiki page, then I can encourage
others to try it out.

==== Kerneloops ====
  * Split out submission in to a separate binary so that apport can submit from
a different machine from where the issue happens (something apport supports and
kernel doesn't).
  * Need to clean that up and test for submission upstream.
  * Figured out kernel-crasher (thanks Jim) to get some real testing.
  * Looked a bit deeper in to the apport side. I have a better idea of what
needs doing, but it may require more extensive changes than just modification of
the hook It depends how much we want to show the user about what is going on.

==== Distro Tasks ====
  * Archive-admin "half-day" on Monday.
  * A little sponsor review.
  * Some REVU reviews.
  * Pushed a consolekit with a logrotate file so that it doesn't get huge and
slow down GDM userlist. Still needs some work on GDM side, even with the
suggested consolekit changes I have.

=== Lars Wirzenius ===
 * Computer Janitor UI improvements.
   * Came up with a neat trick to have automatic signal/callback bindings
without having to specify method names in .glade.
 * Measured various approaches to using zsync or debdelta for downloading
updates and Packages files. Reports in ubuntu-devel at .
 * Preparations for Debconf, sprint travels.

=== Michael Vogt ===
==== AppCenter ====
 * code cleanup in g-a-i
 * add (incomplete) CategoriesView widget based on GtkIconView
 * Work on AppCenters new layout (lp:~mvo/gnome-app-install/mpt-gui)
 * performance analysis on g-a-i and searching
 * experiment with CustomTreeModel and xapian to make the search faster
 * expand custromtreemodel to icons

==== kernel-crashdump ====
 * add patch to makedumpfile to support amd64/2.6.31
 * upload new kexec-tools that explicitely call update-grub (there is no trigger
for grub2)
 * Debug why the crashkernel did not work, turned out be a bug in the kernel
crash commandline parser
 * Add workaround to grub2 for the crashkernel commandline parser
 * update wiki: CradhdumpRecipe
 * final testing, set to beta available

==== synaptic ====
 * Fix search bug in synaptic with xapian
 * upload new version
 * add better support to view manual installed packages with synaptic

==== gdebi ====
 * Bug work (triage/fixing)
 * Ported gdebi to gtkbuilder (from glade)
 * Fix gdebi bug when resolving dependencies that are available both virtual and
real (#373154)
 * Add GDEBI_DEBUG_LEVEL environment
 * Fix crash in gdebi (#355268)
 * Debug not set environment in gdebi, add workaround, report bug to vte
upstream (LP: #367959)
 * Rework the way the button image is set in gdebi  (LP: #345260 - I hope)
 * Debug strange gtkbuilder problem (GtkAboutDialog has get_name/set_name) and
that causes havoc - fix SimpleGladeApp for good
 * upload new 0.5.0

==== apt/python-apt ====
 * Review/merge python-apt branch by "sp"
 * Move my python-apt devel branch to (from people.c.c)
 * merge with the debian branch
 * apt branch review/merges from lp:~donkult/apt/sid, lp:~mvo/apt/mvo and the
debian branch (that took a bit)
 * cleanup in apt.cron.daily

==== alpha3 ====
 * Update command-not-found-data for alpha-3
 * Do not suggest apt-get in c-n-f it its not installed (#394842)
 * Apt ddtp package translations update
 * Review/update app-install-data-ubuntu (for alpha-3)
 * auto upgrade testing

==== misc ====
 * New ubuntu-system-service uploaded (polkit1 port)
 * Add patch for auto-rebooting with unattended-upgrades (#400018)
 * Analyize apt/dpkg failure in update-motd (#400462) with kirkland
 * Write dpkg patch that adds "--force-configure-bad" and send upstream (debian
 * Debug/fix software-properties problem when removing sources.list.d files
 * Ensure software-properties creates files with 0644 (#399709)
 * Work on the people.u.c -> people.c.c transitio
 * Review UpdateIssues wiki page (DUX team)
 * fix update-manager ChangelogViewer parser for certain http:// style urls
 * Work on update-on-shutdown spec and push to lp:~mvo/unattended-upgrades/gtk-ui

=== Mike Terry ===
==== Ubiquity ====
 * Looked into in-Ubiquity NetworkManager.  No suitable candidates. Would have
to split up network-manager-gnome or write our own.  This probably won't get
into Karmic
 * Fixed a last-minute OEM-config problem, with Mario's help.  I had left a bug
that affected oem-config-prepare workflows.
 * Fixed underlines on stock buttons.
 * Started working on plugin system, and converting standard pages to plugins.

=== Muharem Hrnjadovic ===
==== Package sets and archive permissions ====
  * Prepared the 3 branches that expose package set based permissions on the LP
API, went through the review process and landed them on
  * Package sets and distro series:
      - Prepared a branch that associates package sets and distro series and had
the db schema patch reviewed by stub.
      - Analysed the impacts of associating package sets and distro series and
summarised the potential solutions (
  * Tested the newly exposed archive permission methods on the LP API and found
a bug (LP #402108); prepared and landed release critical fix for it:

==== Distributed development ====
  * Analysis of scenarios where a debian packaging branch is to be merged into
an Ubuntu packaging branch, but the upstream branches for these are not
necessarily the same; resulting in upstream branch merges and potential
conflicts that typically do not concern an Ubuntu developer. Exploring an idea
of James' (

=== Scott James Remnant ===
==== Upstart ====

 * Fixed a bug with runlevel returning "N N" instead of "unknown"

 * Fixed a bug with runlevel not prefixing errors like "No such file or
   directory" with the utmp filename

 * Added missing Conflicts/Replaces/Provides for the upstart-job virtual

 * Upstart 0.6.1 released and uploaded to Ubuntu

 * Fixed assertion when stopping a job during its starting event

 * Fixed fork watching to not break on exec() prior to first fork()

 * Upstart 0.6.2 released and uploaded to Ubuntu

==== D-Bus ====

 * Updated to 1.2.16 release

 * Some major gardening of the bugs list

 * Debugged issues with D-Bus not building with its test cases for Colin
   Walters, caused by our use of -Wl,--as-needed.  Need to contribute
   feedback to him ( needs $(DBUS_TEST_LIBS) in

==== util-linux ====

 * Updated Debian and Ubuntu packages to 2.16 release.

 * Merged in changes from the stable/v2.15 branch back to master

 * Added the libuuid and uuidd package information from e2fsprogs

==== e2fsprogs ====

 * Updated to 1.41.8 release

 * Disabled building of libuuid and uuidd packages now they're built
   from util-linux

 * Sent patches upstream to disable building libblkid and libuuid by
   default, and alternate patches to make it optional in the packaging

 * Reverted Ted's system clock workaround in the package, sent the patch

 * Some major gardening of the bugs list

==== module-init-tools ====

 * Updated to 3.10

 * Gardened the bugs list

==== Boot Performance ====

 * Received the HDD-based Dell Mini 10v (named "sam")

 * Installed jaunty release, then installed jaunty updates,
   karmic alpha 2 and karmic 20090717 onto it

 * For each release created bootcharts and kernel bootgraphs, before and
   after running "profile"

 * Results on the usual wiki page

==== sreadahead ====

 * Applied for VCS import of sreadahead SVN trunk

 * Reviewed the sreadahead issues/bugs and patches on SVN trunk that
   haven't been part of a release yet

 * Rebased Ubuntu package onto new import

 * Ported the original kernel ftrace() patch for the open() syscall to
   TRACE_EVENT, submitted to the kernel team

   * Not upstream because there's much better work to provide
     tracepoints for all syscalls, which would likely supersede this

 * Fixed sreadahead to stop it compiling with -march=native all the time

 * Re-applied fix for man page section

 * Fixed sreadahead to stop profiling on receiving the TERM signal
   instead of USR1

 * Re-applied and improved --no-fork patch

 * Investigatory work for using sreadahead on HDD-based machines

   * wrote a Python script to reorder the sreadahead pack based on
     on-disk location rather than time order, also adjusting fragments
     as necessary

   * tried various combinations of pack; single pack file for boot and
     desktop; separate pack files for rcS, rc2 and desktop; separate
     pack for file rcS, combined for rc2 and desktop; separate pack
     files for rcS and rc2 only; combined pack file for rcS and rc2 only

     ||'''Packs'''        ||'''Time'''||
     ||rcS + rc2 + desktop||40s       ||
     ||rcS, rc2, desktop  ||43s       ||
     ||rcS, rc2 + desktop ||41s       ||
     ||rcS, rc2           ||44s       ||
     ||rcS + rc2          ||47s       ||

     The theoretical benefit of splitting the packs up is that
     sreadahead's profiler works by tracking open() syscalls and then
     using mincore() to see how much of the file is in the page cache
     when it finishes profiling

     Thus more packs means more checks in the page cache, so in theory
     more things loaded in advance

     The numbers suggest that there's no benefit here; the pack dumps
     also suggest the same amount of date is read in any case.

     The reason for the slowness of the separate desktop pack is that
     there's no way to perform this synchronously, so it happened in
     parallel with the desktop load and thus lost performance benefit

   * tried various patches to sreadahead; to make it stay in the
     foreground while performing readahead; to perform the work in a
     single thread; increasing I/O priority while running.

     ||'''Variant'''           ||'''sam'''||'''wing-commander''||
     || bg, multi-thread, SSD  ||40s      ||68s                ||
     || bg, multi-thread, HDD  ||40s      ||66s                ||
     || bg, single-thread, HDD ||40s      ||68s                ||
     || fg, single-thread, SSD ||43s      ||72s                ||
     || fg, multi-thread, HDD  ||43s      ||63s                ||
     || fg, single-thread, HDD ||40s      ||60s                ||

     The times didn't vary much for sam, but this isn't surprising
     because it's a fresh install and the drive is in pretty much the
     right order

     When tested on my laptop, the times get wider spread and shows that
     the "HDD optimised" pack and sreadahead code do make a difference
     when combined, but each optimisation on its own can be a bad thing

     ie. foreground with an SSD pack isn't worth it (makes sense, it's
     in time order so you're really just wasting time)

     ie. background with an HDD pack isn't worth it (makes sense, it's
     in on disk order so doing other things will ruin the effort)

     (For comparison, times with original readahead were 41s and 68s,
      so sreadahead is at least as good - but with a *much* better

 * These results support switching to use sreadahead on HDD as well as
   SDD, with a special HDD mode that changes the pack order.

=== Steve Langasek ===

More information about the ubuntu-devel mailing list