]> pere.pagekite.me Git - homepage.git/blobdiff - blog/tags/debian/index.html
Generated.
[homepage.git] / blog / tags / debian / index.html
index 2f7b06525375bcb32d842f3451e18ffa21059b5f..88312ac7b0978ac87fcf2916a83570fa27197bec 100644 (file)
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/The_sorry_state_of_multimedia_browser_plugins_in_Debian.html">The sorry state of multimedia browser plugins in Debian</a>
+        <a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">Welcome to the world, Isenkram!</a>
       </div>
       <div class="date">
-        25th November 2008
+        22nd January 2013
       </div>
       <div class="body">
-        <p>Recently I have spent some time evaluating the multimedia browser
-plugins available in Debian Lenny, to see which one we should use by
-default in Debian Edu.  We need an embedded video playing plugin with
-control buttons to pause or stop the video, and capable of streaming
-all the multimedia content available on the web.  The test results and
-notes are available on
-<a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">the
-Debian wiki</a>.  I was surprised how few of the plugins are able to
-fill this need.  My personal video player favorite, VLC, has a really
-bad plugin which fail on a lot of the test pages.  A lot of the MIME
-types I would expect to work with any free software player (like
-video/ogg), just do not work.  And simple formats like the
-audio/x-mplegurl format (m3u playlists), just isn't supported by the
-totem and vlc plugins.  I hope the situation will improve soon.  No
-wonder sites use the proprietary Adobe flash to play video.</p>
+        <p>Yesterday, I
+<a href="http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html">asked
+for testers</a> for my prototype for making Debian better at handling
+pluggable hardware devices, which I
+<a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">set
+out to create</a> earlier this month.  Several valuable testers showed
+up, and caused me to really want to to open up the development to more
+people.  But before I did this, I want to come up with a sensible name
+for this project.  Today I finally decided on a new name, and I have
+renamed the project from hw-support-handler to this new name.  In the
+process, I moved the source to git and made it available as a
+<a href="http://anonscm.debian.org/gitweb/?p=collab-maint/isenkram.git">collab-maint</a>
+repository in Debian.  The new name?  It is <strong>Isenkram</strong>.
+To fetch and build the latest version of the source, use</p>
 
-<p>For Lenny, we seem to end up with the mplayer plugin.  It seem to
-be the only one fitting our needs. :/</p>
+<pre>
+git clone http://anonscm.debian.org/git/collab-maint/isenkram.git
+cd isenkram && git-buildpackage -us -uc
+</pre>
 
-      </div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
-    <div class="entry">
-      <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Devcamp_brought_us_closer_to_the_Lenny_based_Debian_Edu_release.html">Devcamp brought us closer to the Lenny based Debian Edu release</a>
-      </div>
-      <div class="date">
-         7th December 2008
-      </div>
-      <div class="body">
-        <p>This weekend we had a small developer gathering for Debian Edu in
-Oslo.  Most of Saturday was used for the general assemly for the
-member organization, but the rest of the weekend I used to tune the
-LTSP installation.  LTSP now work out of the box on the 10-network.
-Acer Aspire One proved to be a very nice thin client, with both
-screen, mouse and keybard in a small box.  Was working on getting the
-diskless workstation setup configured out of the box, but did not
-finish it before the weekend was up.</p>
+<p>I have not yet adjusted all files to use the new name yet.  If you
+want to hack on the source or improve the package, please go ahead.
+But please talk to me first on IRC or via email before you do major
+changes, to make sure we do not step on each others toes. :)</p>
 
-<p>Did not find time to look at the 4 VGA cards in one box we got from
-the Brazilian group, so that will have to wait for the next
-development gathering.  Would love to have the Debian Edu installer
-automatically detect and configure a multiseat setup when it find one
-of these cards.</p>
+<p>If you wonder what 'isenkram' is, it is a Norwegian word for iron
+stuff, typically meaning tools, nails, screws, etc.  Typical hardware
+stuff, in other words.  I've been told it is the Norwegian variant of
+the German word eisenkram, for those that are familiar with that
+word.</p>
+
+<p><strong>Update 2013-01-26</strong>: Added -us -us to build
+instructions, to avoid confusing people with an error from the signing
+process.</p>
+
+<p><strong>Update 2013-01-27</strong>: Switch to HTTP URL for the git
+clone argument to avoid the need for authentication.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
         
         
       </div>
@@ -94,30 +79,89 @@ of these cards.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Endelig_er_Debian_Lenny_gitt_ut.html">Endelig er Debian Lenny gitt ut</a>
+        <a href="http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html">First prototype ready making hardware easier to use in Debian</a>
       </div>
       <div class="date">
-        15th February 2009
+        21st January 2013
       </div>
       <div class="body">
-        <p>Endelig er <a href="http://www.debian.org/">Debian</a>
-<a href="http://www.debian.org/News/2009/20090214">Lenny</a> gitt ut.
-Et langt steg videre for Debian-prosjektet, og en rekke nye
-programpakker blir nå tilgjengelig for de av oss som bruker den
-stabile utgaven av Debian.  Neste steg er nå å få
-<a href="http://www.skolelinux.org/">Skolelinux</a> /
-<a href="http://wiki.debian.org/DebianEdu/">Debian Edu</a> ferdig
-oppdatert for den nye utgaven, slik at en oppdatert versjon kan
-slippes løs på skolene.  Takk til alle debian-utviklerne som har
-gjort dette mulig.  Endelig er f.eks. fungerende avhengighetsstyrt
-bootsekvens tilgjengelig i stabil utgave, vha pakken
-<tt>insserv</tt>.</p>
+        <p>Early this month I set out to try to
+<a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">improve
+the Debian support for pluggable hardware devices</a>.  Now my
+prototype is working, and it is ready for a larger audience.  To test
+it, fetch the
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">source
+from the Debian Edu subversion repository</a>, build and install the
+package.  You might have to log out and in again activate the
+autostart script.</p>
+
+<p>The design is simple:</p>
+
+<ul>
+
+<li>Add desktop entry in /usr/share/autostart/ causing a program
+hw-support-handlerd to start when the user log in.</li>
+
+<li>This program listen for kernel events about new hardware (directly
+from the kernel like udev does), not using HAL dbus events as I
+initially did.</li>
+
+<li>When new hardware is inserted, look up the hardware modalias in
+the APT database, a database
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=markup">available
+via HTTP</a> and a database available as part of the package.</li>
+
+<li>If a package is mapped to the hardware in question, the package
+isn't installed yet and this is the first time the hardware was
+plugged in, show a desktop notification suggesting to install the
+package or packages.</li>
+
+<li>If the user click on the 'install package now' button, ask
+aptdaemon via the PackageKit API to install the requrired package.</li>
+
+<li>aptdaemon ask for root password or sudo password, and install the
+package while showing progress information in a window.</li>
+
+</ul>
+
+<p>I still need to come up with a better name for the system.  Here
+are some screen shots showing the prototype in action.  First the
+notification, then the password request, and finally the request to
+approve all the dependencies.  Sorry for the Norwegian Bokmål GUI.</p>
+
+<p><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-1-notification.png">
+<br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-2-password.png">
+<br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-3-dependencies.png">
+<br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-4-installing.png">
+<br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-5-installing-details.png" width="70%"></p>
+
+<p>The prototype still need to be improved with longer timeouts, but
+is already useful.  The database of hardware to package mappings also
+need more work.  It is currently compatible with the Ubuntu way of
+storing such information in the package control file, but could be
+changed to use other formats instead or in addition to the current
+method.  I've dropped the use of discover for this mapping, as the
+modalias approach is more flexible and easier to use on Linux as long
+as the Linux kernel expose its modalias strings directly.</p>
+
+<p><strong>Update 2013-01-21 16:50</strong>: Due to popular demand,
+here is the command required to check out and build the source: Use
+'<tt>svn checkout
+svn://svn.debian.org/debian-edu/trunk/src/hw-support-handler/; cd
+hw-support-handler; debuild</tt>'.  If you lack debuild, install the
+devscripts package.</p>
+
+<p><strong>Update 2013-01-23 12:00</strong>: The project is now
+renamed to Isenkram and the source moved from the Debian Edu
+subversion repository to a Debian collab-maint git repository.  See
+<a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">build
+instructions</a> for details.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
         
         
       </div>
@@ -126,50 +170,66 @@ bootsekvens tilgjengelig i stabil utgave, vha pakken
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">Time for new  LDAP schemas replacing RFC 2307?</a>
+        <a href="http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html">Thank you Thinkpad X41, for your long and trustworthy service</a>
       </div>
       <div class="date">
-        29th March 2009
+        19th January 2013
       </div>
       <div class="body">
-        <p>The state of standardized LDAP schemas on Linux is far from
-optimal.  There is RFC 2307 documenting one way to store NIS maps in
-LDAP, and a modified version of this normally called RFC 2307bis, with
-some modifications to be compatible with Active Directory.  The RFC
-specification handle the content of a lot of system databases, but do
-not handle DNS zones and DHCP configuration.</p>
+        <p>This Christmas my trusty old laptop died.  It died quietly and
+suddenly in bed.  With a quiet whimper, it went completely quiet and
+black.  The power button was no longer able to turn it on.  It was a
+IBM Thinkpad X41, and the best laptop I ever had.  Better than both
+Thinkpads X30, X31, X40, X60, X61 and X61S.  Far better than the
+Compaq I had before that.  Now I need to find a replacement.  To keep
+going during Christmas, I moved the one year old SSD disk to my old
+X40 where it fitted (only one I had left that could use it), but it is
+not a durable solution.
+
+<p>My laptop needs are fairly modest.  This is my wishlist from when I
+got a new one more than 10 years ago.  It still holds true.:)</p>
 
-<p>In <a href="http://www.skolelinux.org/">Debian Edu/Skolelinux</a>,
-we would like to store information about users, SMB clients/hosts,
-filegroups, netgroups (users and hosts), DHCP and DNS configuration,
-and LTSP configuration in LDAP.  These objects have a lot in common,
-but with the current LDAP schemas it is not possible to have one
-object per entity.  For example, one need to have at least three LDAP
-objects for a given computer, one with the SMB related stuff, one with
-DNS information and another with DHCP information.  The schemas
-provided for DNS and DHCP are impossible to combine into one LDAP
-object.  In addition, it is impossible to implement quick queries for
-netgroup membership, because of the way NIS triples are implemented.
-It just do not scale.  I believe it is time for a few RFC
-specifications to cleam up this mess.</p>
+<ul>
 
-<p>I would like to have one LDAP object representing each computer in
-the network, and this object can then keep the SMB (ie host key), DHCP
-(mac address/name) and DNS (name/IP address) settings in one place.
-It need to be efficently stored to make sure it scale well.</p>
+<li>Lightweight (around 1 kg) and small volume (preferably smaller
+  than A4).</li>
+<li>Robust, it will be in my backpack every day.</li>
+<li>Three button mouse and a mouse pin instead of touch pad.</li>
+<li>Long battery life time.  Preferable a week.</li>
+<li>Internal WIFI network card.</li>
+<li>Internal Twisted Pair network card.</li>
+<li>Some USB slots (2-3 is plenty)</li>
+<li>Good keyboard - similar to the Thinkpad.</li>
+<li>Video resolution at least 1024x768, with size around 12" (A4 paper
+size).</li>
+<li>Hardware supported by Debian Stable, ie the default kernel and
+  X.org packages.</li>
+<li>Quiet, preferably fan free (or at least not using the fan most of
+  the time).
 
-<p>I would also like to have a quick way to map from a user or
-computer and to the net group this user or computer is a member.</p>
+</ul>
 
-<p>Active Directory have done a better job than unix heads like myself
-in this regard, and the unix side need to catch up.  Time to start a
-new IETF work group?</p>
+<p>You will notice that there are no RAM and CPU requirements in the
+list.  The reason is simply that the specifications on laptops the
+last 10-15 years have been sufficient for my needs, and I have to look
+at other features to choose my laptop.  But are there still made as
+robust laptops as my X41?  The Thinkpad X60/X61 proved to be less
+robust, and Thinkpads seem to be heading in the wrong direction since
+Lenovo took over.  But I've been told that X220 and X1 Carbon might
+still be useful.</p>
+
+<p>Perhaps I should rethink my needs, and look for a pad with an
+external keyboard?  I'll have to check the
+<a href="http://www.linux-laptop.net/">Linux Laptops site</a> for
+well-supported laptops, or perhaps just buy one preinstalled from one
+of the vendors listed on the <a href="http://linuxpreloaded.com/">Linux
+Pre-loaded site</a>.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -178,33 +238,80 @@ new IETF work group?</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Returning_from_Skolelinux_developer_gathering.html">Returning from Skolelinux developer gathering</a>
+        <a href="http://people.skolelinux.org/pere/blog/How_to_find_a_browser_plugin_supporting_a_given_MIME_type.html">How to find a browser plugin supporting a given MIME type</a>
       </div>
       <div class="date">
-        29th March 2009
+        18th January 2013
       </div>
       <div class="body">
-        <p>I'm sitting on the train going home from this weekends Debian
-Edu/Skolelinux development gathering.  I got a bit done tuning the
-desktop, and looked into the dynamic service location protocol
-implementation avahi.  It look like it could be useful for us.  Almost
-30 people participated, and I believe it was a great environment to
-get to know the Skolelinux system.  Walter Bender, involved in the
-development of the Sugar educational platform, presented his stuff and
-also helped me improve my OLPC installation.  He also showed me that
-his Turtle Art application can be used in standalone mode, and we
-agreed that I would help getting it packaged for Debian.  As a
-standalone application it would be great for Debian Edu.  We also
-tried to get the video conferencing working with two OLPCs, but that
-proved to be too hard for us.  The application seem to need more work
-before it is ready for me.  I look forward to getting home and relax
-now. :)</p>
+        <p>Some times I try to figure out which Iceweasel browser plugin to
+install to get support for a given MIME type.  Thanks to
+<a href="https://wiki.ubuntu.com/MozillaTeam/Plugins">specifications
+done by Ubuntu</a> and Mozilla, it is possible to do this in Debian.
+Unfortunately, not very many packages provide the needed meta
+information, Anyway, here is a small script to look up all browser
+plugin packages announcing ther MIME support using this specification:</p>
+
+<pre>
+#!/usr/bin/python
+import sys
+import apt
+def pkgs_handling_mimetype(mimetype):
+    cache = apt.Cache()
+    cache.open(None)
+    thepkgs = []
+    for pkg in cache:
+        version = pkg.candidate
+        if version is None:
+            version = pkg.installed
+        if version is None:
+            continue
+        record = version.record
+        if not record.has_key('Npp-MimeType'):
+            continue
+        mime_types = record['Npp-MimeType'].split(',')
+        for t in mime_types:
+            t = t.rstrip().strip()
+            if t == mimetype:
+                thepkgs.append(pkg.name)
+    return thepkgs
+mimetype = "audio/ogg"
+if 1 < len(sys.argv):
+    mimetype = sys.argv[1]
+print "Browser plugin packages supporting %s:" % mimetype
+for pkg in pkgs_handling_mimetype(mimetype):
+    print "  %s" %pkg
+</pre>
+
+<p>It can be used like this to look up a given MIME type:</p>
+
+<pre>
+% ./apt-find-browserplug-for-mimetype 
+Browser plugin packages supporting audio/ogg:
+  gecko-mediaplayer
+% ./apt-find-browserplug-for-mimetype application/x-shockwave-flash
+Browser plugin packages supporting application/x-shockwave-flash:
+  browser-plugin-gnash
+%
+</pre>
+
+<p>In Ubuntu this mechanism is combined with support in the browser
+itself to query for plugins and propose to install the needed
+packages.  It would be great if Debian supported such feature too.  Is
+anyone working on adding it?</p>
+
+<p><strong>Update 2013-01-18 14:20</strong>: The Debian BTS
+request for icweasel support for this feature is
+<a href="http://bugs.debian.org/484010">#484010</a> from 2008 (and
+<a href="http://bugs.debian.org/698426">#698426</a> from today).  Lack
+of manpower and wish for a different design is the reason thus feature
+is not yet in iceweasel from Debian.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -213,43 +320,125 @@ now. :)</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Standardize_on_protocols_and_formats__not_vendors_and_applications.html">Standardize on protocols and formats, not vendors and applications</a>
+        <a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">What is the most supported MIME type in Debian?</a>
       </div>
       <div class="date">
-        30th March 2009
+        16th January 2013
       </div>
       <div class="body">
-        <p>Where I work at the University of Oslo, one decision stand out as a
-very good one to form a long lived computer infrastructure.  It is the
-simple one, lost by many in todays computer industry: Standardize on
-open network protocols and open exchange/storage formats, not applications.
-Applications come and go, while protocols and files tend to stay, and
-thus one want to make it easy to change application and vendor, while
-avoiding conversion costs and locking users to a specific platform or
-application.</p>
+        <p>The <a href="http://wiki.debian.org/AppStreamDebianProposal">DEP-11
+proposal to add AppStream information to the Debian archive</a>, is a
+proposal to make it possible for a Desktop application to propose to
+the user some package to install to gain support for a given MIME
+type, font, library etc. that is currently missing.  With such
+mechanism in place, it would be possible for the desktop to
+automatically propose and install leocad if some LDraw file is
+downloaded by the browser.</p>
+
+<p>To get some idea about the current content of the archive, I decided
+to write a simple program to extract all .desktop files from the
+Debian archive and look up the claimed MIME support there.  The result
+can be found on the
+<a href="http://ftp.skolelinux.org/pub/AppStreamTest">Skolelinux FTP
+site</a>.  Using the collected information, it become possible to
+answer the question in the title.  Here are the 20 most supported MIME
+types in Debian stable (Squeeze), testing (Wheezy) and unstable (Sid).
+The complete list is available from the link above.</p>
+
+<p><strong>Debian Stable:</strong></p>
 
-<p>This approach make it possible to replace the client applications
-independently of the server applications.  One can even allow users to
-use several different applications as long as they handle the selected
-protocol and format.  In the normal case, only one client application
-is recommended and users only get help if they choose to use this
-application, but those that want to deviate from the easy path are not
-blocked from doing so.</p>
+<pre>
+  count MIME type
+  ----- -----------------------
+     32 text/plain
+     30 audio/mpeg
+     29 image/png
+     28 image/jpeg
+     27 application/ogg
+     26 audio/x-mp3
+     25 image/tiff
+     25 image/gif
+     22 image/bmp
+     22 audio/x-wav
+     20 audio/x-flac
+     19 audio/x-mpegurl
+     18 video/x-ms-asf
+     18 audio/x-musepack
+     18 audio/x-mpeg
+     18 application/x-ogg
+     17 video/mpeg
+     17 audio/x-scpls
+     17 audio/ogg
+     16 video/x-ms-wmv
+</pre>
 
-<p>It also allow us to replace the server side without forcing the
-users to replace their applications, and thus allow us to select the
-best server implementation at any moment, when scale and resouce
-requirements change.</p>
+<p><strong>Debian Testing:</strong></p>
 
-<p>I strongly recommend standardizing - on open network protocols and
-open formats, but I would never recommend standardizing on a single
-application that do not use open network protocol or open formats.</p>
+<pre>
+  count MIME type
+  ----- -----------------------
+     33 text/plain
+     32 image/png
+     32 image/jpeg
+     29 audio/mpeg
+     27 image/gif
+     26 image/tiff
+     26 application/ogg
+     25 audio/x-mp3
+     22 image/bmp
+     21 audio/x-wav
+     19 audio/x-mpegurl
+     19 audio/x-mpeg
+     18 video/mpeg
+     18 audio/x-scpls
+     18 audio/x-flac
+     18 application/x-ogg
+     17 video/x-ms-asf
+     17 text/html
+     17 audio/x-musepack
+     16 image/x-xbitmap
+</pre>
+
+<p><strong>Debian Unstable:</strong></p>
+
+<pre>
+  count MIME type
+  ----- -----------------------
+     31 text/plain
+     31 image/png
+     31 image/jpeg
+     29 audio/mpeg
+     28 application/ogg
+     27 image/gif
+     26 image/tiff
+     26 audio/x-mp3
+     23 audio/x-wav
+     22 image/bmp
+     21 audio/x-flac
+     20 audio/x-mpegurl
+     19 audio/x-mpeg
+     18 video/x-ms-asf
+     18 video/mpeg
+     18 audio/x-scpls
+     18 application/x-ogg
+     17 audio/x-musepack
+     16 video/x-ms-wmv
+     16 video/x-msvideo
+</pre>
+
+<p>I am told that PackageKit can provide an API to access the kind of
+information mentioned in DEP-11.  I have not yet had time to look at
+it, but hope the PackageKit people in Debian are on top of these
+issues.</p>
+
+<p><strong>Update 2013-01-16 13:35</strong>: Updated numbers after
+discovering a typo in my script.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -258,25 +447,124 @@ application that do not use open network protocol or open formats.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/No_patch_is_not_better_than_a_useless_patch.html">No patch is not better than a useless patch</a>
+        <a href="http://people.skolelinux.org/pere/blog/Using_modalias_info_to_find_packages_handling_my_hardware.html">Using modalias info to find packages handling my hardware</a>
       </div>
       <div class="date">
-        28th April 2009
+        15th January 2013
       </div>
       <div class="body">
-        <p>Julien Blache
-<a href="http://blog.technologeek.org/2009/04/12/214">claim that no
-patch is better than a useless patch</a>.  I completely disagree, as a
-patch allow one to discuss a concrete and proposed solution, and also
-prove that the issue at hand is important enough for someone to spent
-time on fixing it.  No patch do not provide any of these positive
-properties.</p>
+        <p>Yesterday, I wrote about the
+<a href="http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html">modalias
+values provided by the Linux kernel</a> following my hope for
+<a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">better
+dongle support in Debian</a>.  Using this knowledge, I have tested how
+modalias values attached to package names can be used to map packages
+to hardware.  This allow the system to look up and suggest relevant
+packages when I plug in some new hardware into my machine, and replace
+discover and discover-data as the database used to map hardware to
+packages.</p>
+
+<p>I create a modaliases file with entries like the following,
+containing package name, kernel module name (if relevant, otherwise
+the package name) and globs matching the relevant hardware
+modalias.</p>
+
+<p><blockquote>
+Package: package-name
+<br>Modaliases: module(modaliasglob, modaliasglob, modaliasglob)</p>
+</blockquote></p>
+
+<p>It is fairly trivial to write code to find the relevant packages
+for a given modalias value using this file.</p>
+
+<p>An entry like this would suggest the video and picture application
+cheese for many USB web cameras (interface bus class 0E01):</p>
+
+<p><blockquote>
+Package: cheese
+<br>Modaliases: cheese(usb:v*p*d*dc*dsc*dp*ic0Eisc01ip*)</p>
+</blockquote></p>
+
+<p>An entry like this would suggest the pcmciautils package when a
+CardBus bridge (bus class 0607) PCI device is present:</p>
+
+<p><blockquote>
+Package: pcmciautils
+<br>Modaliases: pcmciautils(pci:v*d*sv*sd*bc06sc07i*)
+</blockquote></p>
+
+<p>An entry like this would suggest the package colorhug-client when
+plugging in a ColorHug with USB IDs 04D8:F8DA:</p>
+
+<p><blockquote>
+Package: colorhug-client
+<br>Modaliases: colorhug-client(usb:v04D8pF8DAd*)</p>
+</blockquote></p>
+
+<p>I believe the format is compatible with the format of the Packages
+file in the Debian archive.  Ubuntu already uses their Packages file
+to store their mappings from packages to hardware.</p>
+
+<p>By adding a XB-Modaliases: header in debian/control, any .deb can
+announce the hardware it support in a way my prototype understand.
+This allow those publishing packages in an APT source outside the
+Debian archive as well as those backporting packages to make sure the
+hardware mapping are included in the package meta information.  I've
+tested such header in the pymissile package, and its modalias mapping
+is working as it should with my prototype.  It even made it to Ubuntu
+Raring.</p>
+
+<p>To test if it was possible to look up supported hardware using only
+the shell tools available in the Debian installer, I wrote a shell
+implementation of the lookup code.  The idea is to create files for
+each modalias and let the shell do the matching.  Please check out and
+try the
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/hw-support-lookup?view=co">hw-support-lookup</a>
+shell script.  It run without any extra dependencies and fetch the
+hardware mappings from the Debian archive and the subversion
+repository where I currently work on my prototype.</p>
+
+<p>When I use it on a machine with a yubikey inserted, it suggest to
+install yubikey-personalization:</p>
+
+<p><blockquote>
+% ./hw-support-lookup
+<br>yubikey-personalization
+<br>%
+</blockquote></p>
+
+<p>When I run it on my Thinkpad X40 with a PCMCIA/CardBus slot, it
+propose to install the pcmciautils package:</p>
+
+<p><blockquote>
+% ./hw-support-lookup 
+<br>pcmciautils
+<br>%
+</blockquote></p>
+
+<p>If you know of any hardware-package mapping that should be added to
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=co">my
+database</a>, please tell me about it.</p>
+
+<p>It could be possible to generate several of the mappings between
+packages and hardware.  One source would be to look at packages with
+kernel modules, ie packages with *.ko files in /lib/modules/, and
+extract their modalias information.  Another would be to look at
+packages with udev rules, ie packages with files in
+/lib/udev/rules.d/, and extract their vendor/model information to
+generate a modalias matching rule.  I have not tested any of these to
+see if it work.</p>
+
+<p>If you want to help implementing a system to let us propose what
+packages to install when new hardware is plugged into a Debian
+machine, please send me an email or talk to me on
+<a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
         
         
       </div>
@@ -285,54 +573,265 @@ properties.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html">Two projects that have improved the quality of free software a lot</a>
+        <a href="http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html">Modalias strings - a practical way to map "stuff" to hardware</a>
       </div>
       <div class="date">
-         2nd May 2009
+        14th January 2013
       </div>
       <div class="body">
-        <p>There are two software projects that have had huge influence on the
-quality of free software, and I wanted to mention both in case someone
-do not yet know them.</p>
+        <p>While looking into how to look up Debian packages based on hardware
+information, to find the packages that support a given piece of
+hardware, I refreshed my memory regarding modalias values, and decided
+to document the details.  Here are my findings so far, also available
+in
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
+Debian Edu subversion repository</a>:
+
+<p><strong>Modalias decoded</strong></p>
+
+<p>This document try to explain what the different types of modalias
+values stands for.  It is in part based on information from
+&lt;URL: <a href="https://wiki.archlinux.org/index.php/Modalias">https://wiki.archlinux.org/index.php/Modalias</a> &gt;,
+&lt;URL: <a href="http://unix.stackexchange.com/questions/26132/how-to-assign-usb-driver-to-device">http://unix.stackexchange.com/questions/26132/how-to-assign-usb-driver-to-device</a> &gt;,
+&lt;URL: <a href="http://code.metager.de/source/history/linux/stable/scripts/mod/file2alias.c">http://code.metager.de/source/history/linux/stable/scripts/mod/file2alias.c</a> &gt; and
+&lt;URL: <a href="http://cvs.savannah.gnu.org/viewvc/dmidecode/dmidecode.c?root=dmidecode&view=markup">http://cvs.savannah.gnu.org/viewvc/dmidecode/dmidecode.c?root=dmidecode&view=markup</a> &gt;.
+
+<p>The modalias entries for a given Linux machine can be found using
+this shell script:</p>
 
-<p>The first one is <a href="http://valgrind.org/">valgrind</a>, a
-tool to detect and expose errors in the memory handling of programs.
-It is easy to use, all one need to do is to run 'valgrind program',
-and it will report any problems on stdout.  It is even better if the
-program include debug information.  With debug information, it is able
-to report the source file name and line number where the problem
-occurs.  It can report things like 'reading past memory block in file
-X line N, the memory block was allocated in file Y, line M', and
-'using uninitialised value in control logic'.  This tool has made it
-trivial to investigate reproducible crash bugs in programs, and have
-reduced the number of this kind of bugs in free software a lot.
+<pre>
+find /sys -name modalias -print0 | xargs -0 cat | sort -u
+</pre>
 
-<p>The second one is
-<a href="http://en.wikipedia.org/wiki/Coverity">Coverity</a> which is
-a source code checker.  It is able to process the source of a program
-and find problems in the logic without running the program.  It
-started out as the Stanford Checker and became well known when it was
-used to find bugs in the Linux kernel.  It is now a commercial tool
-and the company behind it is running
-<a href="http://www.scan.coverity.com/">a community service</a> for the
-free software community, where a lot of free software projects get
-their source checked for free.  Several thousand defects have been
-found and fixed so far.  It can find errors like 'lock L taken in file
-X line N is never released if exiting in line M', or 'the code in file
-Y lines O to P can never be executed'.  The projects included in the
-community service project have managed to get rid of a lot of
-reliability problems thanks to Coverity.</p>
+<p>The supported modalias globs for a given kernel module can be found
+using modinfo:</p>
 
-<p>I believe tools like this, that are able to automatically find
-errors in the source, are vital to improve the quality of software and
-make sure we can get rid of the crashing and failing software we are
-surrounded by today.</p>
+<pre>
+% /sbin/modinfo psmouse | grep alias:
+alias:          serio:ty05pr*id*ex*
+alias:          serio:ty01pr*id*ex*
+%
+</pre>
+
+<p><strong>PCI subtype</strong></p>
+
+<p>A typical PCI entry can look like this.  This is an Intel Host
+Bridge memory controller:</p>
+
+<p><blockquote>
+pci:v00008086d00002770sv00001028sd000001ADbc06sc00i00
+</blockquote></p>
+
+<p>This represent these values:</p>
+
+<pre>
+ v   00008086  (vendor)
+ d   00002770  (device)
+ sv  00001028  (subvendor)
+ sd  000001AD  (subdevice)
+ bc  06        (bus class)
+ sc  00        (bus subclass)
+ i   00        (interface)
+</pre>
+
+<p>The vendor/device values are the same values outputted from 'lspci
+-n' as 8086:2770.  The bus class/subclass is also shown by lspci as
+0600.  The 0600 class is a host bridge.  Other useful bus values are
+0300 (VGA compatible card) and 0200 (Ethernet controller).</p>
+
+<p>Not sure how to figure out the interface value, nor what it
+means.</p>
+
+<p><strong>USB subtype</strong></p>
+
+<p>Some typical USB entries can look like this.  This is an internal
+USB hub in a laptop:</p>
+
+<p><blockquote>
+usb:v1D6Bp0001d0206dc09dsc00dp00ic09isc00ip00
+</blockquote></p>
+
+<p>Here is the values included in this alias:</p>
+
+<pre>
+ v    1D6B  (device vendor)
+ p    0001  (device product)
+ d    0206  (bcddevice)
+ dc     09  (device class)
+ dsc    00  (device subclass)
+ dp     00  (device protocol)
+ ic     09  (interface class)
+ isc    00  (interface subclass)
+ ip     00  (interface protocol)
+</pre>
+
+<p>The 0900 device class/subclass means hub.  Some times the relevant
+class is in the interface class section.  For a simple USB web camera,
+these alias entries show up:</p>
+
+<p><blockquote>
+usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc01ip00
+<br>usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc02ip00
+<br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc01ip00
+<br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc02ip00
+</blockquote></p>
+
+<p>Interface class 0E01 is video control, 0E02 is video streaming (aka
+camera), 0101 is audio control device and 0102 is audio streaming (aka
+microphone).  Thus this is a camera with microphone included.</p>
+
+<p><strong>ACPI subtype</strong></p>
+
+<p>The ACPI type is used for several non-PCI/USB stuff.  This is an IR
+receiver in a Thinkpad X40:</p>
+
+<p><blockquote>
+acpi:IBM0071:PNP0511:
+</blockquote></p>
+
+<p>The values between the colons are IDs.</p>
+
+<p><strong>DMI subtype</strong></p>
+
+<p>The DMI table contain lots of information about the computer case
+and model.  This is an entry for a IBM Thinkpad X40, fetched from
+/sys/devices/virtual/dmi/id/modalias:</p>
+
+<p><blockquote>
+dmi:bvnIBM:bvr1UETB6WW(1.66):bd06/15/2005:svnIBM:pn2371H4G:pvrThinkPadX40:rvnIBM:rn2371H4G:rvrNotAvailable:cvnIBM:ct10:cvrNotAvailable:
+</blockquote></p>
+
+<p>The values present are</p>
+
+<pre>
+ bvn  IBM            (BIOS vendor)
+ bvr  1UETB6WW(1.66) (BIOS version)
+ bd   06/15/2005     (BIOS date)
+ svn  IBM            (system vendor)
+ pn   2371H4G        (product name)
+ pvr  ThinkPadX40    (product version)
+ rvn  IBM            (board vendor)
+ rn   2371H4G        (board name)
+ rvr  NotAvailable   (board version)
+ cvn  IBM            (chassis vendor)
+ ct   10             (chassis type)
+ cvr  NotAvailable   (chassis version)
+</pre>
+
+<p>The chassis type 10 is Notebook.  Other interesting values can be
+found in the dmidecode source:</p>
+
+<pre>
+  3 Desktop
+  4 Low Profile Desktop
+  5 Pizza Box
+  6 Mini Tower
+  7 Tower
+  8 Portable
+  9 Laptop
+ 10 Notebook
+ 11 Hand Held
+ 12 Docking Station
+ 13 All In One
+ 14 Sub Notebook
+ 15 Space-saving
+ 16 Lunch Box
+ 17 Main Server Chassis
+ 18 Expansion Chassis
+ 19 Sub Chassis
+ 20 Bus Expansion Chassis
+ 21 Peripheral Chassis
+ 22 RAID Chassis
+ 23 Rack Mount Chassis
+ 24 Sealed-case PC
+ 25 Multi-system
+ 26 CompactPCI
+ 27 AdvancedTCA
+ 28 Blade
+ 29 Blade Enclosing
+</pre>
+
+<p>The chassis type values are not always accurately set in the DMI
+table.  For example my home server is a tower, but the DMI modalias
+claim it is a desktop.</p>
+
+<p><strong>SerIO subtype</strong></p>
+
+<p>This type is used for PS/2 mouse plugs.  One example is from my
+test machine:</p>
+
+<p><blockquote>
+serio:ty01pr00id00ex00
+</blockquote></p>
+
+<p>The values present are</p>
+
+<pre>
+  ty  01  (type)
+  pr  00  (prototype)
+  id  00  (id)
+  ex  00  (extra)
+</pre>
+
+<p>This type is supported by the psmouse driver.  I am not sure what
+the valid values are.</p>
+
+<p><strong>Other subtypes</strong></p>
+
+<p>There are heaps of other modalias subtypes according to
+file2alias.c.  There is the rest of the list from that source: amba,
+ap, bcma, ccw, css, eisa, hid, i2c, ieee1394, input, ipack, isapnp,
+mdio, of, parisc, pcmcia, platform, scsi, sdio, spi, ssb, vio, virtio,
+vmbus, x86cpu and zorro.  I did not spend time documenting all of
+these, as they do not seem relevant for my intended use with mapping
+hardware to packages when new stuff is inserted during run time.</p>
+
+<p><strong>Looking up kernel modules using modalias values</strong></p>
+
+<p>To check which kernel modules provide support for a given modalias,
+one can use the following shell script:</p>
+
+<pre>
+  for id in $(find /sys -name modalias -print0 | xargs -0 cat | sort -u); do \
+    echo "$id" ; \
+    /sbin/modprobe --show-depends "$id"|sed 's/^/  /' ; \
+  done
+</pre>
+
+<p>The output can look like this (only the first few entries as the
+list is very long on my test machine):</p>
+
+<pre>
+  acpi:ACPI0003:
+    insmod /lib/modules/2.6.32-5-686/kernel/drivers/acpi/ac.ko 
+  acpi:device:
+  FATAL: Module acpi:device: not found.
+  acpi:IBM0068:
+    insmod /lib/modules/2.6.32-5-686/kernel/drivers/char/nvram.ko 
+    insmod /lib/modules/2.6.32-5-686/kernel/drivers/leds/led-class.ko 
+    insmod /lib/modules/2.6.32-5-686/kernel/net/rfkill/rfkill.ko 
+    insmod /lib/modules/2.6.32-5-686/kernel/drivers/platform/x86/thinkpad_acpi.ko 
+  acpi:IBM0071:PNP0511:
+    insmod /lib/modules/2.6.32-5-686/kernel/lib/crc-ccitt.ko 
+    insmod /lib/modules/2.6.32-5-686/kernel/net/irda/irda.ko 
+    insmod /lib/modules/2.6.32-5-686/kernel/drivers/net/irda/nsc-ircc.ko 
+  [...]
+</pre>
+
+<p>If you want to help implementing a system to let us propose what
+packages to install when new hardware is plugged into a Debian
+machine, please send me an email or talk to me on
+<a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
+
+<p><strong>Update 2013-01-15:</strong> Rewrite "cat $(find ...)" to
+"find ... -print0 | xargs -0 cat" to make sure it handle directories
+in /sys/ with space in them.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
         
         
       </div>
@@ -341,47 +840,36 @@ surrounded by today.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Kryptert_harddisk___naturligvis.html">Kryptert harddisk - naturligvis</a>
+        <a href="http://people.skolelinux.org/pere/blog/Moved_the_pymissile_Debian_packaging_to_collab_maint.html">Moved the pymissile Debian packaging to collab-maint</a>
       </div>
       <div class="date">
-         2nd May 2009
+        10th January 2013
       </div>
       <div class="body">
-        <p><a href="http://www.dagensit.no/trender/article1658676.ece">Dagens
-IT melder</a> at Intel hevder at det er dyrt å miste en datamaskin,
-når en tar tap av arbeidstid, fortrolige dokumenter,
-personopplysninger og alt annet det innebærer.  Det er ingen tvil om
-at det er en kostbar affære å miste sin datamaskin, og det er årsaken
-til at jeg har kryptert harddisken på både kontormaskinen og min
-bærbare.  Begge inneholder personopplysninger jeg ikke ønsker skal
-komme på avveie, den første informasjon relatert til jobben min ved
-Universitetet i Oslo, og den andre relatert til blant annet
-foreningsarbeide.  Kryptering av diskene gjør at det er lite
-sannsynlig at dophoder som kan finne på å rappe maskinene får noe ut
-av dem.  Maskinene låses automatisk etter noen minutter uten bruk,
-og en reboot vil gjøre at de ber om passord før de vil starte opp.
-Jeg bruker Debian på begge maskinene, og installasjonssystemet der
-gjør det trivielt å sette opp krypterte disker.  Jeg har LVM på toppen
-av krypterte partisjoner, slik at alt av datapartisjoner er kryptert.
-Jeg anbefaler alle å kryptere diskene på sine bærbare.  Kostnaden når
-det er gjort slik jeg gjør det er minimale, og gevinstene er
-betydelige.  En bør dog passe på passordet.  Hvis det går tapt, må
-maskinen reinstalleres og alt er tapt.</p>
-
-<p>Krypteringen vil ikke stoppe kompetente angripere som f.eks. kjøler
-ned minnebrikkene før maskinen rebootes med programvare for å hente ut
-krypteringsnøklene.  Kostnaden med å forsvare seg mot slike angripere
-er for min del høyere enn gevinsten.  Jeg tror oddsene for at
-f.eks. etteretningsorganisasjoner har glede av å titte på mine
-maskiner er minimale, og ulempene jeg ville oppnå ved å forsøke å
-gjøre det vanskeligere for angripere med kompetanse og ressurser er
-betydelige.</p>
+        <p>As part of my investigation on how to improve the support in Debian
+for hardware dongles, I dug up my old Mark and Spencer USB Rocket
+Launcher and updated the Debian package
+<a href="http://packages.qa.debian.org/pymissile">pymissile</a> to make
+sure udev will fix the device permissions when it is plugged in.  I
+also added a "Modaliases" header to test it in the Debian archive and
+hopefully make the package be proposed by jockey in Ubuntu when a user
+plug in his rocket launcher.  In the process I moved the source to a
+git repository under collab-maint, to make it easier for any DD to
+contribute.  <a href="http://code.google.com/p/pymissile/">Upstream</a>
+is not very active, but the software still work for me even after five
+years of relative silence.  The new git repository is not listed in
+the uploaded package yet, because I want to test the other changes a
+bit more before I upload the new version.  If you want to check out
+the new version with a .desktop file included, visit the
+<a href="http://anonscm.debian.org/gitweb/?p=collab-maint/pymissile.git">gitweb
+view</a> or use "<tt>git clone
+git://anonscm.debian.org/collab-maint/pymissile.git</tt>".</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
         
         
       </div>
@@ -390,26 +878,103 @@ betydelige.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/IDG_mener_linux_i_servermarkedet_vil_vokse_med_21__i_2009.html">IDG mener linux i servermarkedet vil vokse med 21% i 2009</a>
+        <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">Lets make hardware dongles easier to use in Debian</a>
       </div>
       <div class="date">
-         7th May 2009
+         9th January 2013
       </div>
       <div class="body">
-        <p>Kom over
-<a href="http://news.cnet.com/8301-13505_3-10216873-16.html">interessante
-tall</a> fra IDG om utviklingen av linuxservermarkedet.  Fikk meg til
-å tenke på antall tjenermaskiner ved Universitetet i Oslo der jeg
-jobber til daglig.  En rask opptelling forteller meg at vi har 490
-(61%) fysiske unix-tjener (mest linux men også noen solaris) og 196
-(25%) windowstjenere, samt 112 (14%) virtuelle unix-tjenere.  Med den
-bakgrunnskunnskapen kan jeg godt tro at IDG er inne på noe.</p>
+        <p>One thing that annoys me with Debian and Linux distributions in
+general, is that there is a great package management system with the
+ability to automatically install software packages by downloading them
+from the distribution mirrors, but no way to get it to automatically
+install the packages I need to use the hardware I plug into my
+machine.  Even if the package to use it is easily available from the
+Linux distribution.  When I plug in a LEGO Mindstorms NXT, it could
+suggest to automatically install the python-nxt, nbc and t2n packages
+I need to talk to it.  When I plug in a Yubikey, it could propose the
+yubikey-personalization package.  The information required to do this
+is available, but no-one have pulled all the pieces together.</p>
+
+<p>Some years ago, I proposed to
+<a href="http://lists.debian.org/debian-devel/2010/05/msg01206.html">use
+the discover subsystem to implement this</a>.  The idea is fairly
+simple:
+
+<ul>
+
+<li>Add a desktop entry in /usr/share/autostart/ pointing to a program
+  starting when a user log in.</li>
+
+<li>Set this program up to listen for kernel events emitted when new
+  hardware is inserted into the computer.</li>
+
+<li>When new hardware is inserted, look up the hardware ID in a
+  database mapping to packages, and take note of any non-installed
+  packages.</li>
+
+<li>Show a message to the user proposing to install the discovered
+  package, and make it easy to install it.</li>
+
+</ul>
+
+<p>I am not sure what the best way to implement this is, but my
+initial idea was to use dbus events to discover new hardware, the
+discover database to find packages and
+<a href="http://www.packagekit.org/">PackageKit</a> to install
+packages.</p>
+
+<p>Yesterday, I found time to try to implement this idea, and the
+draft package is now checked into
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
+Debian Edu subversion repository</a>.  In the process, I updated the
+<a href="http://packages.qa.debian.org/d/discover-data.html">discover-data</a>
+package to map the USB ids of LEGO Mindstorms and Yubikey devices to
+the relevant packages in Debian, and uploaded a new version
+2.2013.01.09 to unstable.  I also discovered that the current 
+<a href="http://packages.qa.debian.org/d/discover.html">discover</a>
+package in Debian no longer discovered any USB devices, because
+/proc/bus/usb/devices is no longer present.  I ported it to use
+libusb as a fall back option to get it working.  The fixed package
+version 2.1.2-6 is now in experimental (didn't upload it to unstable
+because of the freeze).</p>
+
+<p>With this prototype in place, I can insert my Yubikey, and get this
+desktop notification to show up (only once, the first time it is
+inserted):</p>
+
+<p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2013-01-09-hw-autoinstall.png"></p>
+
+<p>For this prototype to be really useful, some way to automatically
+install the proposed packages by pressing the "Please install
+program(s)" button should to be implemented.</p>
+
+<p>If this idea seem useful to you, and you want to help make it
+happen, please help me update the discover-data database with mappings
+from hardware to Debian packages.  Check if 'discover-pkginstall -l'
+list the package you would like to have installed when a given
+hardware device is inserted into your computer, and report bugs using
+reportbug if it isn't.  Or, if you know of a better way to provide
+such mapping, please let me know.</p>
+
+<p>This prototype need more work, and there are several questions that
+should be considered before it is ready for production use.  Is dbus
+the correct way to detect new hardware?  At the moment I look for HAL
+dbus events on the system bus, because that is the events I could see
+on my Debian Squeeze KDE desktop.  Are there better events to use?
+How should the user be notified?  Is the desktop notification
+mechanism the best option, or should the background daemon raise a
+popup instead?  How should packages be installed?  When should they
+not be installed?</p>
+
+<p>If you want to help getting such feature implemented in Debian,
+please send me an email. :)</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
         
         
       </div>
@@ -418,45 +983,32 @@ bakgrunnskunnskapen kan jeg godt tro at IDG er inne på noe.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/BSAs_p_stander_om_piratkopiering_m_ter_motstand.html">BSAs påstander om piratkopiering møter motstand</a>
+        <a href="http://people.skolelinux.org/pere/blog/New_IRC_channel_for_LEGO_designers_using_Debian.html">New IRC channel for LEGO designers using Debian</a>
       </div>
       <div class="date">
-        17th May 2009
+         2nd January 2013
       </div>
       <div class="body">
-        <p>Hvert år de siste årene har BSA, lobbyfronten til de store
-programvareselskapene som Microsoft og Apple, publisert en rapport der
-de gjetter på hvor mye piratkopiering påfører i tapte inntekter i
-ulike land rundt om i verden.  Resultatene er tendensiøse.  For noen
-dager siden kom
-<a href="http://global.bsa.org/globalpiracy2008/studies/globalpiracy2008.pdf">siste
-rapport</a>, og det er flere kritiske kommentarer publisert de siste
-dagene.  Et spesielt interessant kommentar fra Sverige,
-<a href="http://www.idg.se/2.1085/1.229795/bsa-hoftade-sverigesiffror">BSA
-höftade Sverigesiffror</a>, oppsummeres slik:</p>
-
-<blockquote>
-I sin senaste rapport slår BSA fast att 25 procent av all mjukvara i
-Sverige är piratkopierad. Det utan att ha pratat med ett enda svenskt
-företag. "Man bör nog kanske inte se de här siffrorna som helt
-exakta", säger BSAs Sverigechef John Hugosson.
-</blockquote>
-
-<p>Mon tro om de er like metodiske når de gjetter på andelen piratkopiering i Norge?  To andre kommentarer er <a
-href="http://www.vnunet.com/vnunet/comment/2242134/bsa-piracy-figures-shot-reality">BSA
-piracy figures need a shot of reality</a> og <a
-href="http://www.michaelgeist.ca/content/view/3958/125/">Does The WIPO
-Copyright Treaty Work?</a></p>
-
-<p>Fant lenkene via <a
-href="http://tech.slashdot.org/article.pl?sid=09/05/17/1632242">oppslag
-på Slashdot</a>.</p>
+        <p>During Christmas, I have worked a bit on the Debian support for
+<a href="http://mindstorms.lego.com/en-us/Default.aspx">LEGO Mindstorm
+NXT</a>.  My son and I have played a bit with my NXT set, and I
+discovered I had to build all the tools myself because none were
+already in Debian Squeeze.  If Debian support for LEGO is something
+you care about, please join me on the IRC channel
+<a href="irc://irc.debian.org/%23debian-lego">#debian-lego</a> (server
+irc.debian.org).  There is a lot that could be done to improve the
+Debian support for LEGO designers.  For example both CAD software
+and Mindstorm compilers are missing. :)</p>
+
+<p>Update 2012-01-03: A
+<a href="http://wiki.debian.org/LegoDesigners">project page</a>
+including links to Lego related packages is now available.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
         
         
       </div>
@@ -465,64 +1017,56 @@ på Slashdot</a>.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html">Debian boots quicker and quicker</a>
+        <a href="http://people.skolelinux.org/pere/blog/How_to_backport_bitcoin_qt_version_0_7_2_2_to_Debian_Squeeze.html">How to backport bitcoin-qt version 0.7.2-2 to Debian Squeeze</a>
       </div>
       <div class="date">
-        24th June 2009
+        25th December 2012
       </div>
       <div class="body">
-        <p>I spent Monday and tuesday this week in London with a lot of the
-people involved in the boot system on Debian and Ubuntu, to see if we
-could find more ways to speed up the boot system.  This was an Ubuntu
-funded
-<a href="https://wiki.ubuntu.com/FoundationsTeam/BootPerformance/DebianUbuntuSprint">developer
-gathering</a>. It was quite productive.  We also discussed the future
-of boot systems, and ways to handle the increasing number of boot
-issues introduced by the Linux kernel becoming more and more
-asynchronous and event base.  The Ubuntu approach using udev and
-upstart might be a good way forward.  Time will show.</p>
-
-<p>Anyway, there are a few ways at the moment to speed up the boot
-process in Debian.  All of these should be applied to get a quick
-boot:</p>
-
-<ul>
+        <p>Let me start by wishing you all marry Christmas and a happy new
+year!  I hope next year will prove to be a good year.</p>
+
+<p><a href="http://www.bitcoin.org/">Bitcoin</a>, the digital
+decentralised "currency" that allow people to transfer bitcoins
+between each other with minimal overhead, is a very interesting
+experiment.  And as I wrote a few days ago, the bitcoin situation in
+<a href="http://www.debian.org/">Debian</a> is about to improve a bit.
+The <a href="http://packages.qa.debian.org/bitcoin">new debian source
+package</a> (version 0.7.2-2) was uploaded yesterday, and is waiting
+in <a href="http://ftp-master.debian.org/new.html">the NEW queue</A>
+for one of the ftpmasters to approve the new bitcoin-qt package
+name.</p>
+
+<p>And thanks to the great work of Jonas and the rest of the bitcoin
+team in Debian, you can easily test the package in Debian Squeeze
+using the following steps to get a set of working packages:</p>
 
-<li>Use dash as /bin/sh.</li>
-
-<li>Disable the init.d/hwclock*.sh scripts and make sure the hardware
-   clock is in UTC.</li>
-
-<li>Install and activate the insserv package to enable
-   <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
-   based boot sequencing</a>, and enable concurrent booting.</li>
-
-</ul>
-
-These points are based on the Google summer of code work done by
-<a href="http://initscripts-ng.alioth.debian.org/soc2006-bootsystem/">Carlos
-Villegas</a>.
+<blockquote><pre>
+git clone git://git.debian.org/git/collab-maint/bitcoin
+cd bitcoin
+DEB_MAINTAINER_MODE=1 DEB_BUILD_OPTIONS=noupnp fakeroot debian/rules clean
+DEB_BUILD_OPTIONS=noupnp git-buildpackage --git-ignore-new
+</pre></blockquote>
 
-<p>Support for makefile-style concurrency during boot was uploaded to
-unstable yesterday.  When we tested it, we were able to cut 6 seconds
-from the boot sequence.  It depend on very correct dependency
-declaration in all init.d scripts, so I expect us to find edge cases
-where the dependences in some scripts are slightly wrong when we start
-using this.</p>
+<p>You might have to install some build dependencies as well.  The
+list of commands should give you two packages, bitcoind and
+bitcoin-qt, ready for use in a Squeeze environment.  Note that the
+client will download the complete set of bitcoin "blocks", which need
+around 5.6 GiB of data on my machine at the moment.  Make sure your
+~/.bitcoin/ directory have lots of spare room if you want to download
+all the blocks.  The client will warn if the disk is getting full, so
+there is not really a problem if you got too little room, but you will
+not be able to get all the features out of the client.</p>
 
-<p>On our IRC channel for this effort, #pkg-sysvinit, a new idea was
-introduced by Raphael Geissert today, one that could affect the
-startup speed as well.  Instead of starting some scripts concurrently
-from rcS.d/ and another set of scripts from rc2.d/, it would be
-possible to run a of them in the same process.  A quick way to test
-this would be to enable insserv and run 'mv /etc/rc2.d/S* /etc/rcS.d/;
-insserv'.  Will need to test if that work. :)</p>
+<p>As usual, if you use bitcoin and want to show your support of my
+activities, please send Bitcoin donations to my address
+<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -531,40 +1075,79 @@ insserv'.  Will need to test if that work. :)</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html">Taking over sysvinit development</a>
+        <a href="http://people.skolelinux.org/pere/blog/A_word_on_bitcoin_support_in_Debian.html">A word on bitcoin support in Debian</a>
       </div>
       <div class="date">
-        22nd July 2009
+        21st December 2012
       </div>
       <div class="body">
-        <p>After several years of frustration with the lack of activity from
-the existing sysvinit upstream developer, I decided a few weeks ago to
-take over the package and become the new upstream.  The number of
-patches to track for the Debian package was becoming a burden, and the
-lack of synchronization between the distribution made it hard to keep
-the package up to date.</p>
-
-<p>On the new sysvinit team is the SuSe maintainer Dr. Werner Fink,
-and my Debian co-maintainer Kel Modderman.  About 10 days ago, I made
-a new upstream tarball with version number 2.87dsf (for Debian, SuSe
-and Fedora), based on the patches currently in use in these
-distributions.  We Debian maintainers plan to move to this tarball as
-the new upstream as soon as we find time to do the merge.  Since the
-new tarball was created, we agreed with Werner at SuSe to make a new
-upstream project at <a href="http://savannah.nongnu.org/">Savannah</a>, and continue
-development there.  The project is registered and currently waiting
-for approval by the Savannah administrators, and as soon as it is
-approved, we will import the old versions from svn and continue
-working on the future release.</p>
-
-<p>It is a bit ironic that this is done now, when some of the involved
-distributions are moving to upstart as a syvinit replacement.</p>
+        <p>It has been a while since I wrote about
+<a href="http://www.bitcoin.org/">bitcoin</a>, the decentralised
+peer-to-peer based crypto-currency, and the reason is simply that I
+have been busy elsewhere.  But two days ago, I started looking at the
+state of <a href="http://packages.qa.debian.org/bitcoin">bitcoin in
+Debian</a> again to try to recover my old bitcoin wallet.  The package
+is now maintained by a
+<a href="https://alioth.debian.org/projects/pkg-bitcoin/">team of
+people</a>, and the grunt work had already been done by this team.  We
+owe a huge thank you to all these team members. :)
+But I was sad to discover that the bitcoin client is missing in
+Wheezy.  It is only available in Sid (and an outdated client from
+backports).  The client had several RC bugs registered in BTS blocking
+it from entering testing.  To try to help the team and improve the
+situation, I spent some time providing patches and triaging the bug
+reports.  I also had a look at the bitcoin package available from Matt
+Corallo in a
+<a href="https://launchpad.net/~bitcoin/+archive/bitcoin">PPA for
+Ubuntu</a>, and moved the useful pieces from that version into the
+Debian package.</p>
+
+<p>After checking with the main package maintainer Jonas Smedegaard on
+IRC, I pushed several patches into the collab-maint git repository to
+improve the package.  It now contains fixes for the RC issues (not from
+me, but fixed by Scott Howard), build rules for a Qt GUI client
+package, konqueror support for the bitcoin: URI and bash completion
+setup.  As I work on Debian Squeeze, I also created
+<a href="http://lists.alioth.debian.org/pipermail/pkg-bitcoin-devel/Week-of-Mon-20121217/000041.html">a
+patch to backport</a> the latest version.  Jonas is going to look at
+it and try to integrate it into the git repository before uploading a
+new version to unstable.
+
+<p>I would very much like bitcoin to succeed, to get rid of the
+centralized control currently exercised in the monetary system.  I
+find it completely unacceptable that the USA government is collecting
+transaction data for almost all international money transfers (most are done in USD and transaction logs shipped to the spooks), and
+that the major credit card companies can block legal money
+transactions to Wikileaks.  But for bitcoin to succeed, more people
+need to use bitcoins, and more people need to accept bitcoins when
+they sell products and services.  Improving the bitcoin support in
+Debian is a small step in the right direction, but not enough.
+Unfortunately the user experience when browsing the web and wanting to
+pay with bitcoin is still not very good.  The bitcoin: URI is a step
+in the right direction, but need to work in most or every browser in
+use.  Also the bitcoin-qt client is too heavy to fire up to do a
+quick transaction.  I believe there are other clients available, but
+have not tested them.</p>
+
+<p>My
+<a href="http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html">experiment
+with bitcoins</a> showed that at least some of my readers use bitcoin.
+I received 20.15 BTC so far on the address I provided in my blog two
+years ago, as can be
+<a href="http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">seen
+on the blockexplorer service</a>.  Thank you everyone for your
+donation.  The blockexplorer service demonstrates quite well that
+bitcoin is not quite anonymous and untracked. :) I wonder if the
+number of users have gone up since then.  If you use bitcoin and want
+to show your support of my activity, please send Bitcoin donations to
+the same address as last time,
+<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -573,29 +1156,34 @@ distributions are moving to upstart as a syvinit replacement.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html">Debian has switched to dependency based boot sequencing</a>
+        <a href="http://people.skolelinux.org/pere/blog/Git_repository_for_song_book_for_Computer_Scientists.html">Git repository for song book for Computer Scientists</a>
       </div>
       <div class="date">
-        27th July 2009
+         7th September 2012
       </div>
       <div class="body">
-        <p>Since this evening, with the upload of sysvinit version 2.87dsf-2,
-and the upload of insserv version 1.12.0-10 yesterday, Debian unstable
-have been migrated to using dependency based boot sequencing.  This
-conclude work me and others have been doing for the last three days.
-It feels great to see this finally part of the default Debian
-installation.  Now we just need to weed out the last few problems that
-are bound to show up, to get everything ready for Squeeze.</p>
+        <p>As I
+<a href="http://people.skolelinux.org/pere/blog/Song_book_for_Computer_Scientists.html">mentioned
+this summer</a>, I have created a Computer Science song book a few
+years ago, and today I finally found time to create a public
+<a href="https://gitorious.org/pere-cs-songbook/pere-cs-songbook">Gitorious
+repository for the project</a>.</p>
 
-<p>The next step is migrating /sbin/init from sysvinit to upstart, and
-fixing the more fundamental problem of handing the event based
-non-predictable kernel in the early boot.</p>
+<p>If you want to help out, please clone the source and submit patches
+to the HTML version.  To generate the PDF and PostScript version,
+please use prince XML, or let me know about a useful free software
+processor capable of creating a good looking PDF from the HTML.</p>
+
+<p>Want to sing?  You can still find the song book in HTML, PDF and
+PostScript formats at
+<a href="http://www.hungry.com/~pere/cs-songbook/">Petter's Computer
+Science Songbook</a>.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>.
         
         
       </div>
@@ -604,53 +1192,22 @@ non-predictable kernel in the early boot.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html">Parallellizing the boot in Debian Squeeze - ready for wider testing</a>
+        <a href="http://people.skolelinux.org/pere/blog/Gratulerer_med_19__rsdagen__Debian_.html">Gratulerer med 19-årsdagen, Debian!</a>
       </div>
       <div class="date">
-         6th May 2010
+        16th August 2012
       </div>
       <div class="body">
-        <p>These days, the init.d script dependencies in Squeeze are quite
-complete, so complete that it is actually possible to run all the
-init.d scripts in parallell based on these dependencies.  If you want
-to test your Squeeze system, make sure
-<a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
-based boot sequencing</a> is enabled, and add this line to
-/etc/default/rcS:</p>
-
-<blockquote><pre>
-CONCURRENCY=makefile
-</pre></blockquote>
-
-<p>That is it.  It will cause sysv-rc to use the startpar tool to run
-scripts in parallel using the dependency information stored in
-/etc/init.d/.depend.boot, /etc/init.d/.depend.start and
-/etc/init.d/.depend.stop to order the scripts.  Startpar is configured
-to try to start the kdm and gdm scripts as early as possible, and will
-start the facilities required by kdm or gdm as early as possible to
-make this happen.</p>
-
-<p>Give it a try, and see if you like the result.  If some services
-fail to start properly, it is most likely because they have incomplete
-init.d script dependencies in their startup script (or some of their
-dependent scripts have incomplete dependencies).  Report bugs and get
-the package maintainers to fix it. :)</p>
-
-<p>Running scripts in parallel could be the default in Debian when we
-manage to get the init.d script dependencies complete and correct.  I
-expect we will get there in Squeeze+1, if we get manage to test and
-fix the remaining issues.</p>
-
-<p>If you report any problems with dependencies in init.d scripts to
-the BTS, please usertag the report to get it to show up at
-<a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
-list of usertagged bugs related to this</a>.</p>
+        <p>I dag fyller
+<a href="http://www.debian.org/News/2012/20120813">Debian-prosjektet 19
+år</a>.  Jeg har fulgt det de siste 12 årene, og er veldig glad for å kunne
+si gratulerer med dagen, Debian!</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>.
         
         
       </div>
@@ -659,50 +1216,37 @@ list of usertagged bugs related to this</a>.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html">systemd, an interesting alternative to upstart</a>
+        <a href="http://people.skolelinux.org/pere/blog/Song_book_for_Computer_Scientists.html">Song book for Computer Scientists</a>
       </div>
       <div class="date">
-        13th May 2010
+        24th June 2012
       </div>
       <div class="body">
-        <p>The last few days a new boot system called
-<a href="http://www.freedesktop.org/wiki/Software/systemd">systemd</a>
-has been
-<a href="http://0pointer.de/blog/projects/systemd.html">introduced</a>
-
-to the free software world.  I have not yet had time to play around
-with it, but it seem to be a very interesting alternative to
-<a href="http://upstart.ubuntu.com/">upstart</a>, and might prove to be
-a good alternative for Debian when we are able to switch to an event
-based boot system.  Tollef is
-<a href="http://bugs.debian.org/580814">in the process</a> of getting
-systemd into Debian, and I look forward to seeing how well it work.  I
-like the fact that systemd handles init.d scripts with dependency
-information natively, allowing them to run in parallel where upstart
-at the moment do not.</p>
-
-<p>Unfortunately do systemd have the same problem as upstart regarding
-platform support.  It only work on recent Linux kernels, and also need
-some new kernel features enabled to function properly.  This means
-kFreeBSD and Hurd ports of Debian will need a port or a different boot
-system.  Not sure how that will be handled if systemd proves to be the
-way forward.</p>
+        <p>Many years ago, while studying Computer Science at the
+<a href="http://www.uit.no/">University of Tromsø</a>, I started
+collecting computer related songs for use at parties.  The original
+version was written in LaTeX, but a few years ago I got help from
+Håkon W. Lie, one of the inventors of W3C CSS, to convert it to HTML
+while keeping the ability to create a nice book in PDF format.  I have
+not had time to maintain the book for a while now, and guess I should
+put it up on some public version control repository where others can
+help me extend and update the book.  If anyone is volunteering to help
+me with this, send me an email.  Also let me know if there are songs
+missing in my book.</p>
 
-<p>In the mean time, based on the
-<a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
-on debian-devel@</a> regarding parallel booting in Debian, I have
-decided to enable full parallel booting as the default in Debian as
-soon as possible (probably this weekend or early next week), to see if
-there are any remaining serious bugs in the init.d dependencies.  A
-new version of the sysvinit package implementing this change is
-already in experimental.  If all go well, Squeeze will be released
-with parallel booting enabled by default.</p>
+<p>I have not mentioned the book on my blog so far, and it occured to
+me today that I really should let all my readers share the joys of
+singing out load about programming, computers and computer networks.
+Especially now that <a href="http://debconf12.debconf.org/">Debconf
+12</a> is about to start (and I am not going).  Want to sing?  Check
+out <a href="http://www.hungry.com/~pere/cs-songbook/">Petter's
+Computer Science Songbook</a>.
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>.
         
         
       </div>
@@ -711,209 +1255,198 @@ with parallel booting enabled by default.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html">Sitesummary tip: Listing MAC address of all clients</a>
+        <a href="http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html">Automatically upgrading server firmware on Dell PowerEdge</a>
       </div>
       <div class="date">
-        14th May 2010
+        21st November 2011
       </div>
       <div class="body">
-        <p>In the recent Debian Edu versions, the
-<a href="http://wiki.debian.org/DebianEdu/HowTo/SiteSummary">sitesummary
-system</a> is used to keep track of the machines in the school
-network.  Each machine will automatically report its status to the
-central server after boot and once per night.  The network setup is
-also reported, and using this information it is possible to get the
-MAC address of all network interfaces in the machines.  This is useful
-to update the DHCP configuration.</p>
+        <p>At work we have heaps of servers.  I believe the total count is
+around 1000 at the moment.  To be able to get help from the vendors
+when something go wrong, we want to keep the firmware on the servers
+up to date.  If the firmware isn't the latest and greatest, the
+vendors typically refuse to start debugging any problems until the
+firmware is upgraded.  So before every reboot, we want to upgrade the
+firmware, and we would really like everyone handling servers at the
+university to do this themselves when they plan to reboot a machine.
+For that to happen we at the unix server admin group need to provide
+the tools to do so.</p>
 
-<p>To give some idea how to use sitesummary, here is a one-liner to
-ist all MAC addresses of all machines reporting to sitesummary.  Run
-this on the collector host:</p>
+<p>To make firmware upgrading easier, I am working on a script to
+fetch and install the latest firmware for the servers we got.  Most of
+our hardware are from Dell and HP, so I have focused on these servers
+so far.  This blog post is about the Dell part.</P>
 
-<blockquote><pre>
-perl -MSiteSummary -e 'for_all_hosts(sub { print join(" ", get_macaddresses(shift)), "\n"; });'
-</pre></blockquote>
+<p>On the Dell FTP site I was lucky enough to find
+<a href="ftp://ftp.us.dell.com/catalog/Catalog.xml.gz">an XML file</a>
+with firmware information for all 11th generation servers, listing
+which firmware should be used on a given model and where on the FTP
+site I can find it.  Using a simple perl XML parser I can then
+download the shell scripts Dell provides to do firmware upgrades from
+within Linux and reboot when all the firmware is primed and ready to
+be activated on the first reboot.</p>
 
-<p>This will list all MAC addresses assosiated with all machine, one
-line per machine and with space between the MAC addresses.</p>
+<p>This is the Dell related fragment of the perl code I am working on.
+Are there anyone working on similar tools for firmware upgrading all
+servers at a site?  Please get in touch and lets share resources.</p>
 
-<p>To allow system administrators easier job at adding static DHCP
-addresses for hosts, it would be possible to extend this to fetch
-machine information from sitesummary and update the DHCP and DNS
-tables in LDAP using this information.  Such tool is unfortunately not
-written yet.</p>
+<p><pre>
+#!/usr/bin/perl
+use strict;
+use warnings;
+use File::Temp qw(tempdir);
+BEGIN {
+    # Install needed RHEL packages if missing
+    my %rhelmodules = (
+        'XML::Simple' => 'perl-XML-Simple',
+        );
+    for my $module (keys %rhelmodules) {
+        eval "use $module;";
+        if ($@) {
+            my $pkg = $rhelmodules{$module};
+            system("yum install -y $pkg");
+            eval "use $module;";
+        }
+    }
+}
+my $errorsto = 'pere@hungry.com';
 
-      </div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary</a>.
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
-    <div class="entry">
-      <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html">Parallellized boot is now the default in Debian/unstable</a>
-      </div>
-      <div class="date">
-        14th May 2010
-      </div>
-      <div class="body">
-        <p>Since this evening, parallel booting is the default in
-Debian/unstable for machines using dependency based boot sequencing.
-Apparently the testing of concurrent booting has been wider than
-expected, if I am to believe the
-<a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
-on debian-devel@</a>, and I concluded a few days ago to move forward
-with the feature this weekend, to give us some time to detect any
-remaining problems before Squeeze is frozen.  If serious problems are
-detected, it is simple to change the default back to sequential boot.
-The upload of the new sysvinit package also activate a new upstream
-version.</p>
+upgrade_dell();
 
-More information about
-<a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
-based boot sequencing</a> is available from the Debian wiki.  It is
-currently possible to disable parallel booting when one run into
-problems caused by it, by adding this line to /etc/default/rcS:</p>
+exit 0;
 
-<blockquote><pre>
-CONCURRENCY=none
-</pre></blockquote>
+sub run_firmware_script {
+    my ($opts, $script) = @_;
+    unless ($script) {
+        print STDERR "fail: missing script name\n";
+        exit 1
+    }
+    print STDERR "Running $script\n\n";
 
-<p>If you report any problems with dependencies in init.d scripts to
-the BTS, please usertag the report to get it to show up at
-<a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
-list of usertagged bugs related to this</a>.</p>
+    if (0 == system("sh $script $opts")) { # FIXME correct exit code handling
+        print STDERR "success: firmware script ran succcessfully\n";
+    } else {
+        print STDERR "fail: firmware script returned error\n";
+    }
+}
 
-      </div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
-    <div class="entry">
-      <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/More_flexible_firmware_handling_in_debian_installer.html">More flexible firmware handling in debian-installer</a>
-      </div>
-      <div class="date">
-        22nd May 2010
-      </div>
-      <div class="body">
-        <p>After a long break from debian-installer development, I finally
-found time today to return to the project.  Having to spend less time
-working dependency based boot in debian, as it is almost complete now,
-definitely helped freeing some time.</p>
+sub run_firmware_scripts {
+    my ($opts, @dirs) = @_;
+    # Run firmware packages
+    for my $dir (@dirs) {
+        print STDERR "info: Running scripts in $dir\n";
+        opendir(my $dh, $dir) or die "Unable to open directory $dir: $!";
+        while (my $s = readdir $dh) {
+            next if $s =~ m/^\.\.?/;
+            run_firmware_script($opts, "$dir/$s");
+        }
+        closedir $dh;
+    }
+}
 
-<p>A while back, I ran into a problem while working on Debian Edu.  We
-include some firmware packages on the Debian Edu CDs, those needed to
-get disk and network controllers working.  Without having these
-firmware packages available during installation, it is impossible to
-install Debian Edu on the given machine, and because our target group
-are non-technical people, asking them to provide firmware packages on
-an external medium is a support pain.  Initially, I expected it to be
-enough to include the firmware packages on the CD to get
-debian-installer to find and use them.  This proved to be wrong.
-Next, I hoped it was enough to symlink the relevant firmware packages
-to some useful location on the CD (tried /cdrom/ and
-/cdrom/firmware/).  This also proved to not work, and at this point I
-found time to look at the debian-installer code to figure out what was
-going to work.</p>
+sub download {
+    my $url = shift;
+    print STDERR "info: Downloading $url\n";
+    system("wget --quiet \"$url\"");
+}
 
-<p>The firmware loading code is in the hw-detect package, and a closer
-look revealed that it would only look for firmware packages outside
-the installation media, so the CD was never checked for firmware
-packages.  It would only check USB sticks, floppies and other
-"external" media devices.  Today I changed it to also look in the
-/cdrom/firmware/ directory on the mounted CD or DVD, which should
-solve the problem I ran into with Debian edu.  I also changed it to
-look in /firmware/, to make sure the installer also find firmware
-provided in the initrd when booting the installer via PXE, to allow us
-to provide the same feature in the PXE setup included in Debian
-Edu.</p>
+sub upgrade_dell {
+    my @dirs;
+    my $product = `dmidecode -s system-product-name`;
+    chomp $product;
 
-<p>To make sure firmware deb packages with a license questions are not
-activated without asking if the license is accepted, I extended
-hw-detect to look for preinst scripts in the firmware packages, and
-run these before activating the firmware during installation.  The
-license question is asked using debconf in the preinst, so this should
-solve the issue for the firmware packages I have looked at so far.</p>
+    if ($product =~ m/PowerEdge/) {
 
-<p>If you want to discuss the details of these features, please
-contact us on debian-boot@lists.debian.org.</p>
+        # on RHEL, these pacakges are needed by the firwmare upgrade scripts
+        system('yum install -y compat-libstdc++-33.i686 libstdc++.i686 libxml2.i686 procmail');
 
-      </div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
-    <div class="entry">
-      <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html">Parallellized boot seem to hold up well in Debian/testing</a>
-      </div>
-      <div class="date">
-        27th May 2010
-      </div>
-      <div class="body">
-        <p>A few days ago, parallel booting was enabled in Debian/testing.
-The feature seem to hold up pretty well, but three fairly serious
-issues are known and should be solved:
+        my $tmpdir = tempdir(
+            CLEANUP => 1
+            );
+        chdir($tmpdir);
+        fetch_dell_fw('catalog/Catalog.xml.gz');
+        system('gunzip Catalog.xml.gz');
+        my @paths = fetch_dell_fw_list('Catalog.xml');
+        # -q is quiet, disabling interactivity and reducing console output
+        my $fwopts = "-q";
+        if (@paths) {
+            for my $url (@paths) {
+                fetch_dell_fw($url);
+            }
+            run_firmware_scripts($fwopts, $tmpdir);
+        } else {
+            print STDERR "error: Unsupported Dell model '$product'.\n";
+            print STDERR "error: Please report to $errorsto.\n";
+        }
+        chdir('/');
+    } else {
+        print STDERR "error: Unsupported Dell model '$product'.\n";
+        print STDERR "error: Please report to $errorsto.\n";
+    }
+}
 
-<p><ul>
+sub fetch_dell_fw {
+    my $path = shift;
+    my $url = "ftp://ftp.us.dell.com/$path";
+    download($url);
+}
 
-<li>The wicd package seen to
-<a href="http://bugs.debian.org/508289">break NFS mounting</a> and
-<a href="http://bugs.debian.org/581586">network setup</a> when
-parallel booting is enabled.  No idea why, but the wicd maintainer
-seem to be on the case.</li>
+# Using ftp://ftp.us.dell.com/catalog/Catalog.xml.gz, figure out which
+# firmware packages to download from Dell.  Only work for Linux
+# machines and 11th generation Dell servers.
+sub fetch_dell_fw_list {
+    my $filename = shift;
 
-<li>The nvidia X driver seem to
-<a href="http://bugs.debian.org/583312">have a race condition</a>
-triggered more easily when parallel booting is in effect.  The
-maintainer is on the case.</li>
+    my $product = `dmidecode -s system-product-name`;
+    chomp $product;
+    my ($mybrand, $mymodel) = split(/\s+/, $product);
 
-<li>The sysv-rc package fail to properly enable dependency based boot
-sequencing (the shutdown is broken) when old file-rc users
-<a href="http://bugs.debian.org/575080">try to switch back</a> to
-sysv-rc.  One way to solve it would be for file-rc to create
-/etc/init.d/.legacy-bootordering, and another is to try to make
-sysv-rc more robust.  Will investigate some more and probably upload a
-workaround in sysv-rc to help those trying to move from file-rc to
-sysv-rc get a working shutdown.</li>
+    print STDERR "Finding firmware bundles for $mybrand $mymodel\n";
 
-</ul></p>
+    my $xml = XMLin($filename);
+    my @paths;
+    for my $bundle (@{$xml->{SoftwareBundle}}) {
+        my $brand = $bundle->{TargetSystems}->{Brand}->{Display}->{content};
+        my $model = $bundle->{TargetSystems}->{Brand}->{Model}->{Display}->{content};
+        my $oscode;
+        if ("ARRAY" eq ref $bundle->{TargetOSes}->{OperatingSystem}) {
+            $oscode = $bundle->{TargetOSes}->{OperatingSystem}[0]->{osCode};
+        } else {
+            $oscode = $bundle->{TargetOSes}->{OperatingSystem}->{osCode};
+        }
+        if ($mybrand eq $brand && $mymodel eq $model && "LIN" eq $oscode)
+        {
+            @paths = map { $_->{path} } @{$bundle->{Contents}->{Package}};
+        }
+    }
+    for my $component (@{$xml->{SoftwareComponent}}) {
+        my $componenttype = $component->{ComponentType}->{value};
 
-<p>All in all not many surprising issues, and all of them seem
-solvable before Squeeze is released.  In addition to these there are
-some packages with bugs in their dependencies and run level settings,
-which I expect will be fixed in a reasonable time span.</p>
+        # Drop application packages, only firmware and BIOS
+        next if 'APAC' eq $componenttype;
 
-<p>If you report any problems with dependencies in init.d scripts to
-the BTS, please usertag the report to get it to show up at
-<a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
-list of usertagged bugs related to this</a>.</p>
+        my $cpath = $component->{path};
+        for my $path (@paths) {
+            if ($cpath =~ m%/$path$%) {
+                push(@paths, $cpath);
+            }
+        }
+    }
+    return @paths;
+}
+</pre>
 
-<p>Update: Correct bug number to file-rc issue.</p>
+<p>The code is only tested on RedHat Enterprise Linux, but I suspect
+it could work on other platforms with some tweaking.  Anyone know a
+index like Catalog.xml is available from HP for HP servers?  At the
+moment I maintain a similar list manually and it is quickly getting
+outdated.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -922,41 +1455,77 @@ list of usertagged bugs related to this</a>.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html">KDM fail at boot with NVidia cards - and no one try to fix it?</a>
+        <a href="http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html">How is booting into runlevel 1 different from single user boots?</a>
       </div>
       <div class="date">
-         1st June 2010
+         4th August 2011
       </div>
       <div class="body">
-        <p>It is strange to watch how a bug in Debian causing KDM to fail to
-start at boot when an NVidia video card is used is handled.  The
-problem seem to be that the nvidia X.org driver uses a long time to
-initialize, and this duration is longer than kdm is configured to
-wait.</p>
+        <p>Wouter Verhelst have some
+<a href="http://grep.be/blog/en/retorts/pere_kubuntu_boot">interesting
+comments and opinions</a> on my blog post on
+<a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">the
+need to clean up /etc/rcS.d/ in Debian</a> and my blog post about
+<a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">the
+default KDE desktop in Debian</a>.  I only have time to address one
+small piece of his comment now, and though it best to address the
+misunderstanding he bring forward:</p>
 
-<p>I came across two bugs related to this issue,
-<a href="http://bugs.debian.org/583312">#583312</a> initially filed
-against initscripts and passed on to nvidia-glx when it became obvious
-that the nvidia drivers were involved, and
-<a href="http://bugs.debian.org/524751">#524751</a> initially filed against
-kdm and passed on to src:nvidia-graphics-drivers for unknown reasons.</p>
+<p><blockquote>
+Currently, a system admin has four options: [...] boot to a
+single-user system (by adding 'single' to the kernel command line;
+this runs rcS and rc1 scripts)
+</blockquote></p>
 
-<p>To me, it seem that no-one is interested in actually solving the
-problem nvidia video card owners experience and make sure the Debian
-distribution work out of the box for these users.  The nvidia driver
-maintainers expect kdm to be set up to wait longer, while kdm expect
-the nvidia driver maintainers to fix the driver to start faster, and
-while they wait for each other I guess the users end up switching to a
-distribution that work for them.  I have no idea what the solution is,
-but I am pretty sure that waiting for each other is not it.</p>
+<p>This make me believe Wouter believe booting into single user mode
+and booting into runlevel 1 is the same.  I am not surprised he
+believe this, because it would make sense and is a quite sensible
+thing to believe.  But because the boot in Debian is slightly broken,
+runlevel 1 do not work properly and it isn't the same as single user
+mode.  I'll try to explain what is actually happing, but it is a bit
+hard to explain.</p>
 
-<p>I wonder why we end up handling bugs this way.</p>
+<p>Single user mode is defined like this in /etc/inittab:
+"<tt>~~:S:wait:/sbin/sulogin</tt>".  This means the only thing that is
+executed in single user mode is sulogin.  Single user mode is a boot
+state "between" the runlevels, and when booting into single user mode,
+only the scripts in /etc/rcS.d/ are executed before the init process
+enters the single user state.  When switching to runlevel 1, the state
+is in fact not ending in runlevel 1, but it passes through runlevel 1
+and end up in the single user mode (see /etc/rc1.d/S03single, which
+runs "init -t1 S" to switch to single user mode at the end of runlevel
+1.  It is confusing that the 'S' (single user) init mode is not the
+mode enabled by /etc/rcS.d/ (which is more like the initial boot
+mode).</p>
+
+<p>This summary might make it clearer.  When booting for the first
+time into single user mode, the following commands are executed:
+"<tt>/etc/init.d/rc S; /sbin/sulogin</tt>".  When booting into
+runlevel 1, the following commands are executed: "<tt>/etc/init.d/rc
+S; /etc/init.d/rc 1; /sbin/sulogin</tt>".  A problem show up when
+trying to continue after visiting single user mode.  Not all services
+are started again as they should, causing the machine to end up in an
+unpredicatble state.  This is why Debian admins recommend rebooting
+after visiting single user mode.</p>
+
+<p>A similar problem with runlevel 1 is caused by the amount of
+scripts executed from /etc/rcS.d/.  When switching from say runlevel 2
+to runlevel 1, the services started from /etc/rcS.d/ are not properly
+stopped when passing through the scripts in /etc/rc1.d/, and not
+started again when switching away from runlevel 1 to the runlevels
+2-5.  I believe the problem is best fixed by moving all the scripts
+out of /etc/rcS.d/ that are not <strong>required</strong> to get a
+functioning single user mode during boot.</p>
+
+<p>I have spent several years investigating the Debian boot system,
+and discovered this problem a few years ago.  I suspect it originates
+from when sysvinit was introduced into Debian, a long time ago.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -965,50 +1534,61 @@ but I am pretty sure that waiting for each other is not it.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html">Sitesummary tip: Listing computer hardware models used at site</a>
+        <a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">What should start from /etc/rcS.d/ in Debian? - almost nothing</a>
       </div>
       <div class="date">
-         3rd June 2010
+        30th July 2011
       </div>
       <div class="body">
-        <p>When using sitesummary at a site to track machines, it is possible
-to get a list of the machine types in use thanks to the DMI
-information extracted from each machine.  The script to do so is
-included in the sitesummary package, and here is example output from
-the Skolelinux build servers:</p>
-
-<blockquote><pre>
-maintainer:~# /usr/lib/sitesummary/hardware-model-summary
-  vendor                    count
-  Dell Computer Corporation     1
-    PowerEdge 1750              1
-  IBM                           1
-    eserver xSeries 345 -[8670M1X]-     1
-  Intel                         2
-  [no-dmi-info]                 3
-maintainer:~#
-</pre></blockquote>
+        <p>In the Debian boot system, several packages include scripts that
+are started from /etc/rcS.d/.  In fact, there is a bite more of them
+than make sense, and this causes a few problems.  What kind of
+problems, you might ask.  There are at least two problems.  The first
+is that it is not possible to recover a machine after switching to
+runlevel 1.  One need to actually reboot to get the machine back to
+the expected state.  The other is that single user boot will sometimes
+run into problems because some of the subsystems are activated before
+the root login is presented, causing problems when trying to recover a
+machine from a problem in that subsystem.  A minor additional point is
+that moving more scripts out of rcS.d/ and into the other rc#.d/
+directories will increase the amount of scripts that can run in
+parallel during boot, and thus decrease the boot time.</p>
 
-<p>The quality of the report depend on the quality of the DMI tables
-provided in each machine.  Here there are Intel machines without model
-information listed with Intel as vendor and no model, and virtual Xen
-machines listed as [no-dmi-info].  One can add -l as a command line
-option to list the individual machines.</p>
+<p>So, which scripts should start from rcS.d/.  In short, only the
+scripts that _have_ to execute before the root login prompt is
+presented during a single user boot should go there.  Everything else
+should go into the numeric runlevels.  This means things like
+lm-sensors, fuse and x11-common should not run from rcS.d, but from
+the numeric runlevels.  Today in Debian, there are around 115 init.d
+scripts that are started from rcS.d/, and most of them should be moved
+out.  Do your package have one of them?  Please help us make single
+user and runlevel 1 better by moving it.</p>
 
-<p>A larger list is
-<a href="http://narvikskolen.no/sitesummary/">available from the the
-city of Narvik</a>, which uses Skolelinux on all their shools and also
-provide the basic sitesummary report publicly.  In their report there
-are ~1400 machines. I know they use both Ubuntu and Skolelinux on
-their machines, and as sitesummary is available in both distributions,
-it is trivial to get all of them to report to the same central
-collector.</p>
+<p>Scripts setting up the screen, keyboard, system partitions
+etc. should still be started from rcS.d/, but there is for example no
+need to have the network enabled before the single user login prompt
+is presented.</p>
+
+<p>As always, things are not so easy to fix as they sound.  To keep
+Debian systems working while scripts migrate and during upgrades, the
+scripts need to be moved from rcS.d/ to rc2.d/ in reverse dependency
+order, ie the scripts that nothing in rcS.d/ depend on can be moved,
+and the next ones can only be moved when their dependencies have been
+moved first.  This migration must be done sequentially while we ensure
+that the package system upgrade packages in the right order to keep
+the system state correct.  This will require some coordination when it
+comes to network related packages, but most of the packages with
+scripts that should migrate do not have anything in rcS.d/ depending
+on them.  Some packages have already been updated, like the sudo
+package, while others are still left to do.  I wish I had time to work
+on this myself, but real live constrains make it unlikely that I will
+find time to push this forward.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -1017,24 +1597,80 @@ collector.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html">A manual for standards wars...</a>
+        <a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">What is missing in the Debian desktop, or why my parents use Kubuntu</a>
       </div>
       <div class="date">
-         6th June 2010
+        29th July 2011
       </div>
       <div class="body">
-        <p>Via the
-<a href="http://feedproxy.google.com/~r/robweir/antic-atom/~3/QzU4RgoAGMg/weekly-links-10.html">blog
-of Rob Weir</a> I came across the very interesting essay named
-<a href="http://faculty.haas.berkeley.edu/shapiro/wars.pdf">The Art of
-Standards Wars</a> (PDF 25 pages).  I recommend it for everyone
-following the standards wars of today.</p>
+        <p>While at Debconf11, I have several times during discussions
+mentioned the issues I believe should be improved in Debian for its
+desktop to be useful for more people.  The use case for this is my
+parents, which are currently running Kubuntu which solve the
+issues.</p>
+
+<p>I suspect these four missing features are not very hard to
+implement.  After all, they are present in Ubuntu, so if we wanted to
+do this in Debian we would have a source.</p>
+
+<ol>
+
+<li><strong>Simple GUI based upgrade of packages.</strong> When there
+are new packages available for upgrades, a icon in the KDE status bar
+indicate this, and clicking on it will activate the simple upgrade
+tool to handle it.  I have no problem guiding both of my parents
+through the process over the phone.  If a kernel reboot is required,
+this too is indicated by the status bars and the upgrade tool.  Last
+time I checked, nothing with the same features was working in KDE in
+Debian.</li>
+
+<li><strong>Simple handling of missing Firefox browser
+plugins.</strong> When the browser encounter a MIME type it do not
+currently have a handler for, it will ask the user if the system
+should search for a package that would add support for this MIME type,
+and if the user say yes, the APT sources will be searched for packages
+advertising the MIME type in their control file (visible in the
+Packages file in the APT archive).  If one or more packages are found,
+it is a simple click of the mouse to add support for the missing mime
+type.  If the package require the user to accept some non-free
+license, this is explained to the user.  The entire process make it
+more clear to the user why something do not work in the browser, and
+make the chances higher for the user to blame the web page authors and
+not the browser for any missing features.</li>
+
+<li><strong>Simple handling of missing multimedia codec/format
+handlers.</strong> When the media players encounter a format or codec
+it is not supporting, a dialog pop up asking the user if the system
+should search for a package that would add support for it.  This
+happen with things like MP3, Windows Media or H.264.  The selection
+and installation procedure is very similar to the Firefox browser
+plugin handling.  This is as far as I know implemented using a
+gstreamer hook.  The end result is that the user easily get access to
+the codecs that are present from the APT archives available, while
+explaining more on why a given format is unsupported by Ubuntu.</li>
+
+<li><strong>Better browser handling of some MIME types.</strong> When
+displaying a text/plain file in my Debian browser, it will propose to
+start emacs to show it.  If I remember correctly, when doing the same
+in Kunbutu it show the file as a text file in the browser.  At least I
+know Opera will show text files within the browser.  I much prefer the
+latter behaviour.</li>
+
+</ol> 
+
+<p>There are other nice features as well, like the simplified suite
+upgrader, but given that I am the one mostly doing the dist-upgrade,
+it do not matter much.</p>
+
+<p>I really hope we could get these features in place for the next
+Debian release.  It would require the coordinated effort of several
+maintainers, but would make the end user experience a lot better.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
         
         
       </div>
@@ -1043,59 +1679,92 @@ following the standards wars of today.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html">Upstart or sysvinit - as init.d scripts see it</a>
+        <a href="http://people.skolelinux.org/pere/blog/Perl_modules_used_by_FixMyStreet_which_are_missing_in_Debian_Squeeze.html">Perl modules used by FixMyStreet which are missing in Debian/Squeeze</a>
       </div>
       <div class="date">
-         6th June 2010
+        26th July 2011
       </div>
       <div class="body">
-        <p>If Debian is to migrate to upstart on Linux, I expect some init.d
-scripts to migrate (some of) their operations to upstart job while
-keeping the init.d for hurd and kfreebsd.  The packages with such
-needs will need a way to get their init.d scripts to behave
-differently when used with sysvinit and with upstart.  Because of
-this, I had a look at the environment variables set when a init.d
-script is running under upstart, and when it is not.</p>
+        <p>The Norwegian <a href="http://www.fiksgatami.no/">FiksGataMi</A>
+site is build on Debian/Squeeze, and this platform was chosen because
+I am most familiar with Debian (being a Debian Developer for around 10
+years) because it is the latest stable Debian release which should get
+security support for a few years.</p>
 
-<p>With upstart, I notice these environment variables are set when a
-script is started from rcS.d/ (ignoring some irrelevant ones like
-COLUMNS):</p>
+<p>The web service is written in Perl, and depend on some perl modules
+that are missing in Debian at the moment.  It would be great if these
+modules were added to the Debian archive, allowing anyone to set up
+their own <a href="http://www.fixmystreet.com">FixMyStreet</a> clone
+in their own country using only Debian packages.  The list of modules
+missing in Debian/Squeeze isn't very long, and I hope the perl group
+will find time to package the 12 modules Catalyst::Plugin::SmartURI,
+Catalyst::Plugin::Unicode::Encoding, Catalyst::View::TT, Devel::Hide,
+Sort::Key, Statistics::Distributions, Template::Plugin::Comma,
+Template::Plugin::DateTime::Format, Term::Size::Any, Term::Size::Perl,
+URI::SmartURI and Web::Scraper to make the maintenance of FixMyStreet
+easier in the future.</p>
 
-<blockquote><pre>
-DEFAULT_RUNLEVEL=2
-previous=N
-PREVLEVEL=
-RUNLEVEL=
-runlevel=S
-UPSTART_EVENTS=startup
-UPSTART_INSTANCE=
-UPSTART_JOB=rc-sysinit
-</pre></blockquote>
+<p>Thanks to the great tools in Debian, getting the missing modules
+installed on my server was a simple call to 'cpan2deb Module::Name'
+and 'dpkg -i' to install the resulting package.  But this leave me
+with the responsibility of tracking security problems, which I really
+do not have time for.</p>
 
-<p>With sysvinit, these environment variables are set for the same
-script.</p>
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/A_Norwegian_FixMyStreet_have_kept_me_busy_the_last_few_weeks.html">A Norwegian FixMyStreet have kept me busy the last few weeks</a>
+      </div>
+      <div class="date">
+         3rd April 2011
+      </div>
+      <div class="body">
+        <p>Here is a small update for my English readers.  Most of my blog
+posts have been in Norwegian the last few weeks, so here is a short
+update in English.</p>
 
-<blockquote><pre>
-INIT_VERSION=sysvinit-2.88
-previous=N
-PREVLEVEL=N
-RUNLEVEL=S
-runlevel=S
-</pre></blockquote>
+<p>The kids still keep me too busy to get much free software work
+done, but I did manage to organise a project to get a Norwegian port
+of the British service
+<a href="http://www.fixmystreet.com/">FixMyStreet</a> up and running,
+and it has been running for a month now.  The entire project has been
+organised by me and two others.  Around Christmas we gathered sponsors
+to fund the development work.  In January I drafted a contract with
+<a href="http://www.mysociety.org/">mySociety</a> on what to develop,
+and in February the development took place.  Most of it involved
+converting the source to use GPS coordinates instead of British
+easting/northing, and the resulting code should be a lot easier to get
+running in any country by now.  The Norwegian
+<a href="http://www.fiksgatami.no/">FiksGataMi</a> is using
+<a href="http://www.openstreetmap.org/">OpenStreetmap</a> as the map
+source and the source for administrative borders in Norway, and
+support for this had to be added/fixed.</p>
 
-<p>The RUNLEVEL and PREVLEVEL environment variables passed on from
-sysvinit are not set by upstart.  Not sure if it is intentional or not
-to not be compatible with sysvinit in this regard.</p>
+<p>The Norwegian version went live March 3th, and we spent the weekend
+polishing the system before we announced it March 7th.  The system is
+running on a KVM instance of Debian/Squeeze, and has seen almost 3000
+problem reports in a few weeks.  Soon we hope to announce the Android
+and iPhone versions making it even easier to report problems with the
+public infrastructure.</p>
 
-<p>For scripts needing to behave differently when upstart is used,
-looking for the UPSTART_JOB environment variable seem to be a good
-choice.</p>
+<p>Perhaps something to consider for those of you in countries without
+such service?</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>.
         
         
       </div>
@@ -1104,137 +1773,88 @@ choice.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">Automatic upgrade testing from Lenny to Squeeze</a>
+        <a href="http://people.skolelinux.org/pere/blog/Using_NVD_and_CPE_to_track_CVEs_in_locally_maintained_software.html">Using NVD and CPE to track CVEs in locally maintained software</a>
       </div>
       <div class="date">
-        11th June 2010
+        28th January 2011
       </div>
       <div class="body">
-        <p>The last few days I have done some upgrade testing in Debian, to
-see if the upgrade from Lenny to Squeeze will go smoothly.  A few bugs
-have been discovered and reported in the process
-(<a href="http://bugs.debian.org/585410">#585410</a> in nagios3-cgi,
-<a href="http://bugs.debian.org/584879">#584879</a> already fixed in
-enscript and <a href="http://bugs.debian.org/584861">#584861</a> in
-kdebase-workspace-data), and to get a more regular testing going on, I
-am working on a script to automate the test.</p>
-
-<p>The idea is to create a Lenny chroot and use tasksel to install a
-Gnome or KDE desktop installation inside the chroot before upgrading
-it.  To ensure no services are started in the chroot, a policy-rc.d
-script is inserted.  To make sure tasksel believe it is to install a
-desktop on a laptop, the tasksel tests are replaced in the chroot
-(only acceptable because this is a throw-away chroot).</p>
-
-<p>A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade
-currently always fail because udev refuses to upgrade with the kernel
-in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade
-is created.  The bug report
-<a href="http://bugs.debian.org/566000">#566000</a> make me suspect
-this problem do not trigger in a chroot, but I touch the file anyway
-to make sure the upgrade go well.  Testing on virtual and real
-hardware have failed me because of udev so far, and creating this file
-do the trick in such settings anyway.  This is a
-<a href="http://www.linuxquestions.org/questions/debian-26/failed-dist-upgrade-due-to-udev-config_sysfs_deprecated-nonsense-804130/">known
-issue</a> and the current udev behaviour is intended by the udev
-maintainer because he lack the resources to rewrite udev to keep
-working with old kernels or something like that.  I really wish the
-udev upstream would keep udev backwards compatible, to avoid such
-upgrade problem, but given that they fail to do so, I guess
-documenting the way out of this mess is the best option we got for
-Debian Squeeze.</p>
-
-<p>Anyway, back to the task at hand, testing upgrades.  This test
-script, which I call <tt>upgrade-test</tt> for now, is doing the
-trick:</p>
-
-<blockquote><pre>
-#!/bin/sh
-set -ex
-
-if [ "$1" ] ; then
-    desktop=$1
-else
-    desktop=gnome
-fi
-
-from=lenny
-to=squeeze
-
-exec &lt; /dev/null
-unset LANG
-mirror=http://ftp.skolelinux.org/debian
-tmpdir=chroot-$from-upgrade-$to-$desktop
-fuser -mv .
-debootstrap $from $tmpdir $mirror
-chroot $tmpdir aptitude update
-cat > $tmpdir/usr/sbin/policy-rc.d &lt;&lt;EOF
-#!/bin/sh
-exit 101
-EOF
-chmod a+rx $tmpdir/usr/sbin/policy-rc.d
-exit_cleanup() {
-    umount $tmpdir/proc
-}
-mount -t proc proc $tmpdir/proc
-# Make sure proc is unmounted also on failure
-trap exit_cleanup EXIT INT
-
-chroot $tmpdir aptitude -y install debconf-utils
-
-# Make sure tasksel autoselection trigger.  It need the test scripts
-# to return the correct answers.
-echo tasksel tasksel/desktop multiselect $desktop | \
-    chroot $tmpdir debconf-set-selections
+        <p>The last few days I have looked at ways to track open security
+issues here at my work with the University of Oslo.  My idea is that
+it should be possible to use the information about security issues
+available on the Internet, and check our locally
+maintained/distributed software against this information.  It should
+allow us to verify that no known security issues are forgotten.  The
+CVE database listing vulnerabilities seem like a great central point,
+and by using the package lists from Debian mapped to CVEs provided by
+the testing security team, I believed it should be possible to figure
+out which security holes were present in our free software
+collection.</p>
 
-# Include the desktop and laptop task
-for test in desktop laptop ; do
-    echo > $tmpdir/usr/lib/tasksel/tests/$test &lt;&lt;EOF
-#!/bin/sh
-exit 2
-EOF
-    chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test
-done
+<p>After reading up on the topic, it became obvious that the first
+building block is to be able to name software packages in a unique and
+consistent way across data sources.  I considered several ways to do
+this, for example coming up with my own naming scheme like using URLs
+to project home pages or URLs to the Freshmeat entries, or using some
+existing naming scheme.  And it seem like I am not the first one to
+come across this problem, as MITRE already proposed and implemented a
+solution.  Enter the <a href="http://cpe.mitre.org/index.html">Common
+Platform Enumeration</a> dictionary, a vocabulary for referring to
+software, hardware and other platform components.  The CPE ids are
+mapped to CVEs in the <a href="http://web.nvd.nist.gov/">National
+Vulnerability Database</a>, allowing me to look up know security
+issues for any CPE name.  With this in place, all I need to do is to
+locate the CPE id for the software packages we use at the university.
+This is fairly trivial (I google for 'cve cpe $package' and check the
+NVD entry if a CVE for the package exist).</p>
 
-DEBIAN_FRONTEND=noninteractive
-DEBIAN_PRIORITY=critical
-export DEBIAN_FRONTEND DEBIAN_PRIORITY
-chroot $tmpdir tasksel --new-install
+<p>To give you an example.  The GNU gzip source package have the CPE
+name cpe:/a:gnu:gzip.  If the old version 1.3.3 was the package to
+check out, one could look up
+<a href="http://web.nvd.nist.gov/view/vuln/search?cpe=cpe%3A%2Fa%3Agnu%3Agzip:1.3.3">cpe:/a:gnu:gzip:1.3.3
+in NVD</a> and get a list of 6 security holes with public CVE entries.
+The most recent one is
+<a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0001">CVE-2010-0001</a>,
+and at the bottom of the NVD page for this vulnerability the complete
+list of affected versions is provided.</p>
 
-echo deb $mirror $to main > $tmpdir/etc/apt/sources.list
-chroot $tmpdir aptitude update
-touch $tmpdir/etc/udev/kernel-upgrade
-chroot $tmpdir aptitude -y dist-upgrade
-fuser -mv
-</pre></blockquote>
+<p>The NVD database of CVEs is also available as a XML dump, allowing
+for offline processing of issues.  Using this dump, I've written a
+small script taking a list of CPEs as input and list all CVEs
+affecting the packages represented by these CPEs.  One give it CPEs
+with version numbers as specified above and get a list of open
+security issues out.</p>
 
-<p>I suspect it would be useful to test upgrades with both apt-get and
-with aptitude, but I have not had time to look at how they behave
-differently so far.  I hope to get a cron job running to do the test
-regularly and post the result on the web.  The Gnome upgrade currently
-work, while the KDE upgrade fail because of the bug in
-kdebase-workspace-data</p>
+<p>Of course for this approach to be useful, the quality of the NVD
+information need to be high.  For that to happen, I believe as many as
+possible need to use and contribute to the NVD database.  I notice
+RHEL is providing
+<a href="https://www.redhat.com/security/data/metrics/rhsamapcpe.txt">a
+map from CVE to CPE</a>, indicating that they are using the CPE
+information.  I'm not aware of Debian and Ubuntu doing the same.</p>
 
-<p>I am not quite sure what kind of extract from the huge upgrade logs
-(KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog
-post, so I will refrain from trying.  I can report that for Gnome,
-aptitude report 760 packages upgraded, 448 newly installed, 129 to
-remove and 1 not upgraded and 1024MB need to be downloaded while for
-KDE the same numbers are 702 packages upgraded, 507 newly installed,
-193 to remove and 0 not upgraded and 1117MB need to be downloaded</p>
+<p>To get an idea about the quality for free software, I spent some
+time making it possible to compare the CVE database from Debian with
+the CVE database in NVD.  The result look fairly good, but there are
+some inconsistencies in NVD (same software package having several
+CPEs), and some inaccuracies (NVD not mentioning buggy packages that
+Debian believe are affected by a CVE).  Hope to find time to improve
+the quality of NVD, but that require being able to get in touch with
+someone maintaining it.  So far my three emails with questions and
+corrections have not seen any reply, but I hope contact can be
+established soon.</p>
 
-<p>I am very happy to notice that the Gnome desktop + laptop upgrade
-is able to migrate to dependency based boot sequencing and parallel
-booting without a hitch.  Was unsure if there were still bugs with
-packages failing to clean up their obsolete init.d script during
-upgrades, and no such problem seem to affect the Gnome desktop+laptop
-packages.</p>
+<p>An interesting application for CPEs is cross platform package
+mapping.  It would be useful to know which packages in for example
+RHEL, OpenSuSe and Mandriva are missing from Debian and Ubuntu, and
+this would be trivial if all linux distributions provided CPE entries
+for their packages.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
         
         
       </div>
@@ -1243,186 +1863,94 @@ packages.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html">Lenny->Squeeze upgrades, removals by apt and aptitude</a>
+        <a href="http://people.skolelinux.org/pere/blog/Which_module_is_loaded_for_a_given_PCI_and_USB_device_.html">Which module is loaded for a given PCI and USB device?</a>
       </div>
       <div class="date">
-        13th June 2010
+        23rd January 2011
       </div>
       <div class="body">
-        <p>My
-<a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">testing
-of Debian upgrades</a> from Lenny to Squeeze continues, and I've
-finally made the upgrade logs available from
-<a href="http://people.skolelinux.org/pere/debian-upgrade-testing/">http://people.skolelinux.org/pere/debian-upgrade-testing/</a>.
-I am now testing dist-upgrade of Gnome and KDE in a chroot using both
-apt and aptitude, and found their differences interesting.  This time
-I will only focus on their removal plans.</p>
+        <p>In the
+<a href="http://packages.qa.debian.org/discover-data">discover-data</a>
+package in Debian, there is a script to report useful information
+about the running hardware for use when people report missing
+information.  One part of this script that I find very useful when
+debugging hardware problems, is the part mapping loaded kernel module
+to the PCI device it claims.  It allow me to quickly see if the kernel
+module I expect is driving the hardware I am struggling with.  To see
+the output, make sure discover-data is installed and run
+<tt>/usr/share/bug/discover-data 3>&1</tt>.  The relevant output on
+one of my machines like this:</p>
 
-<p>After installing a Gnome desktop and the laptop task, apt-get wants
-to remove 72 packages when dist-upgrading from Lenny to Squeeze.  The
-surprising part is that it want to remove xorg and all
-xserver-xorg-video* drivers.  Clearly not a good choice, but I am not
-sure why.  When asking aptitude to do the same, it want to remove 129
-packages, but most of them are library packages I suspect are no
-longer needed.  Both of them want to remove bluetooth packages, which
-I do not know.  Perhaps these bluetooth packages are obsolete?</p>
+<pre>
+loaded modules:
+10de:03eb i2c_nforce2
+10de:03f1 ohci_hcd
+10de:03f2 ehci_hcd
+10de:03f0 snd_hda_intel
+10de:03ec pata_amd
+10de:03f6 sata_nv
+1022:1103 k8temp
+109e:036e bttv
+109e:0878 snd_bt87x
+11ab:4364 sky2
+</pre>
 
-<p>For KDE, apt-get want to remove 82 packages, among them kdebase
-which seem like a bad idea and xorg the same way as with Gnome. Asking
-aptitude for the same, it wants to remove 192 packages, none which are
-too surprising.</p>
+<p>The code in question look like this, slightly modified for
+readability and to drop the output to file descriptor 3:</p>
 
-<p>I guess the removal of xorg during upgrades should be investigated
-and avoided, and perhaps others as well.  Here are the complete list
-of planned removals.  The complete logs is available from the URL
-above.  Note if you want to repeat these tests, that the upgrade test
-for kde+apt-get hung in the tasksel setup because of dpkg asking
-conffile questions.  No idea why.  I worked around it by using
-'<tt>echo >> /proc/<em>pidofdpkg</em>/fd/0</tt>' to tell dpkg to
-continue.</p>
+<pre>
+if [ -d /sys/bus/pci/devices/ ] ; then
+    echo loaded pci modules:
+    (
+        cd /sys/bus/pci/devices/
+        for address in * ; do
+            if [ -d "$address/driver/module" ] ; then
+                module=`cd $address/driver/module ; pwd -P | xargs basename`
+                if grep -q "^$module " /proc/modules ; then
+                    address=$(echo $address |sed s/0000://)
+                    id=`lspci -n -s $address | tail -n 1 | awk '{print $3}'`
+                    echo "$id $module"
+                fi
+            fi
+        done
+    )
+    echo
+fi
+</pre>
 
-<p><b>apt-get gnome 72</b>
-<br>bluez-gnome cupsddk-drivers deskbar-applet gnome
-  gnome-desktop-environment gnome-network-admin gtkhtml3.14
-  iceweasel-gnome-support libavcodec51 libdatrie0 libgdl-1-0
-  libgnomekbd2 libgnomekbdui2 libmetacity0 libslab0 libxcb-xlib0
-  nautilus-cd-burner python-gnome2-desktop python-gnome2-extras
-  serpentine swfdec-mozilla update-manager xorg xserver-xorg
-  xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
-  xserver-xorg-input-kbd xserver-xorg-input-mouse
-  xserver-xorg-input-synaptics xserver-xorg-input-wacom
-  xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
-  xserver-xorg-video-ati xserver-xorg-video-chips
-  xserver-xorg-video-cirrus xserver-xorg-video-cyrix
-  xserver-xorg-video-dummy xserver-xorg-video-fbdev
-  xserver-xorg-video-glint xserver-xorg-video-i128
-  xserver-xorg-video-i740 xserver-xorg-video-imstt
-  xserver-xorg-video-intel xserver-xorg-video-mach64
-  xserver-xorg-video-mga xserver-xorg-video-neomagic
-  xserver-xorg-video-nsc xserver-xorg-video-nv
-  xserver-xorg-video-openchrome xserver-xorg-video-r128
-  xserver-xorg-video-radeon xserver-xorg-video-radeonhd
-  xserver-xorg-video-rendition xserver-xorg-video-s3
-  xserver-xorg-video-s3virge xserver-xorg-video-savage
-  xserver-xorg-video-siliconmotion xserver-xorg-video-sis
-  xserver-xorg-video-sisusb xserver-xorg-video-tdfx
-  xserver-xorg-video-tga xserver-xorg-video-trident
-  xserver-xorg-video-tseng xserver-xorg-video-v4l
-  xserver-xorg-video-vesa xserver-xorg-video-vga
-  xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9
-  xulrunner-1.9-gnome-support</p>
-
-<p><b>aptitude gnome 129</b>
-
-<br>bluez-gnome bluez-utils cpp-4.3 cupsddk-drivers dhcdbd
-  djvulibre-desktop finger gnome-app-install gnome-mount
-  gnome-network-admin gnome-spell gnome-vfs-obexftp
-  gnome-volume-manager gstreamer0.10-gnomevfs gtkhtml3.14 libao2
-  libavahi-compat-libdnssd1 libavahi-core5 libavcodec51 libbluetooth2
-  libcamel1.2-11 libcdio7 libcucul0 libcupsys2 libcurl3 libdatrie0
-  libdirectfb-1.0-0 libdvdread3 libedataserver1.2-9 libeel2-2.20
-  libeel2-data libepc-1.0-1 libepc-ui-1.0-1 libfaad0 libgail-common
-  libgd2-noxpm libgda3-3 libgda3-common libgdl-1-0 libgdl-1-common
-  libggz2 libggzcore9 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0
-  libgnomecups1.0-1 libgnomekbd2 libgnomekbdui2 libgnomeprint2.2-0
-  libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
-  libgnomevfs2-bin libgpod3 libgraphviz4 libgtkhtml2-0
-  libgtksourceview-common libgtksourceview1.0-0 libgucharmap6
-  libhesiod0 libicu38 libiw29 libkpathsea4 libltdl3 libmagick++10
-  libmagick10 libmalaga7 libmetacity0 libmtp7 libmysqlclient15off
-  libnautilus-burn4 libneon27 libnm-glib0 libnm-util0 libopal-2.2
-  libosp5 libparted1.8-10 libpoppler-glib3 libpoppler3 libpt-1.10.10
-  libpt-1.10.10-plugins-alsa libpt-1.10.10-plugins-v4l libraw1394-8
-  libsensors3 libslab0 libsmbios2 libsoup2.2-8 libssh2-1
-  libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1 libtotem-plparser10
-  libtrackerclient0 libxalan2-java libxalan2-java-gcj libxcb-xlib0
-  libxerces2-java libxerces2-java-gcj libxklavier12 libxtrap6
-  libxxf86misc1 libzephyr3 mysql-common nautilus-cd-burner
-  openoffice.org-writer2latex openssl-blacklist p7zip
-  python-4suite-xml python-eggtrayicon python-gnome2-desktop
-  python-gnome2-extras python-gtkhtml2 python-gtkmozembed
-  python-numeric python-sexy serpentine svgalibg1 swfdec-gnome
-  swfdec-mozilla totem-gstreamer update-manager wodim
-  xserver-xorg-video-cyrix xserver-xorg-video-imstt
-  xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
-  zip</p>
-
-<p><b>apt-get kde 82</b>
-
-<br>cupsddk-drivers karm kaudiocreator kcoloredit kcontrol kde kde-core
-  kdeaddons kdeartwork kdebase kdebase-bin kdebase-bin-kde3
-  kdebase-kio-plugins kdesktop kdeutils khelpcenter kicker
-  kicker-applets knewsticker kolourpaint konq-plugins konqueror korn
-  kpersonalizer kscreensaver ksplash libavcodec51 libdatrie0 libkiten1
-  libxcb-xlib0 quanta superkaramba texlive-base-bin xorg xserver-xorg
-  xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
-  xserver-xorg-input-kbd xserver-xorg-input-mouse
-  xserver-xorg-input-synaptics xserver-xorg-input-wacom
-  xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
-  xserver-xorg-video-ati xserver-xorg-video-chips
-  xserver-xorg-video-cirrus xserver-xorg-video-cyrix
-  xserver-xorg-video-dummy xserver-xorg-video-fbdev
-  xserver-xorg-video-glint xserver-xorg-video-i128
-  xserver-xorg-video-i740 xserver-xorg-video-imstt
-  xserver-xorg-video-intel xserver-xorg-video-mach64
-  xserver-xorg-video-mga xserver-xorg-video-neomagic
-  xserver-xorg-video-nsc xserver-xorg-video-nv
-  xserver-xorg-video-openchrome xserver-xorg-video-r128
-  xserver-xorg-video-radeon xserver-xorg-video-radeonhd
-  xserver-xorg-video-rendition xserver-xorg-video-s3
-  xserver-xorg-video-s3virge xserver-xorg-video-savage
-  xserver-xorg-video-siliconmotion xserver-xorg-video-sis
-  xserver-xorg-video-sisusb xserver-xorg-video-tdfx
-  xserver-xorg-video-tga xserver-xorg-video-trident
-  xserver-xorg-video-tseng xserver-xorg-video-v4l
-  xserver-xorg-video-vesa xserver-xorg-video-vga
-  xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9</p>
+<p>Similar code could be used to extract USB device module
+mappings:</p>
 
-<p><b>aptitude kde 192</b>
-<br>bluez-utils cpp-4.3 cupsddk-drivers cvs dcoprss dhcdbd
-  djvulibre-desktop dosfstools eyesapplet fifteenapplet finger gettext
-  ghostscript-x imlib-base imlib11 indi kandy karm kasteroids
-  kaudiocreator kbackgammon kbstate kcoloredit kcontrol kcron kdat
-  kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
-  kdebase-bin-kde3 kdebase-kio-plugins kdeedu-data
-  kdegraphics-kfile-plugins kdelirc kdemultimedia-kappfinder-data
-  kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
-  kdepim-kfile-plugins kdepim-kio-plugins kdeprint kdesktop kdessh
-  kdict kdnssd kdvi kedit keduca kenolaba kfax kfaxview kfouleggs
-  kghostview khelpcenter khexedit kiconedit kitchensync klatin
-  klickety kmailcvt kmenuedit kmid kmilo kmoon kmrml kodo kolourpaint
-  kooka korn kpager kpdf kpercentage kpf kpilot kpoker kpovmodeler
-  krec kregexpeditor ksayit ksim ksirc ksirtet ksmiletris ksmserver
-  ksnake ksokoban ksplash ksvg ksysv ktip ktnef kuickshow kverbos
-  kview kviewshell kvoctrain kwifimanager kwin kwin4 kworldclock
-  kxsldbg libakode2 libao2 libarts1-akode libarts1-audiofile
-  libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
-  libavahi-core5 libavc1394-0 libavcodec51 libbluetooth2
-  libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0 libdatrie0
-  libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
-  libgail-common libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0
-  libicu38 libiec61883-0 libindex0 libiw29 libk3b3 libkcal2b libkcddb1
-  libkdeedu3 libkdepim1a libkgantt0 libkiten1 libkleopatra1 libkmime2
-  libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
-  libksieve0 libktnef1 liblockdev1 libltdl3 libmagick10 libmimelib1c2a
-  libmozjs1d libmpcdec3 libneon27 libnm-util0 libopensync0 libpisock9
-  libpoppler-glib3 libpoppler-qt2 libpoppler3 libraw1394-8 libsmbios2
-  libssh2-1 libsuitesparse-3.1.0 libtalloc1 libtiff-tools
-  libxalan2-java libxalan2-java-gcj libxcb-xlib0 libxerces2-java
-  libxerces2-java-gcj libxtrap6 mpeglib networkstatus
-  openoffice.org-writer2latex pmount poster psutils quanta quanta-data
-  superkaramba svgalibg1 tex-common texlive-base texlive-base-bin
-  texlive-common texlive-doc-base texlive-fonts-recommended
-  xserver-xorg-video-cyrix xserver-xorg-video-imstt
-  xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
-  xulrunner-1.9</p>
+<pre>
+if [ -d /sys/bus/usb/devices/ ] ; then
+    echo loaded usb modules:
+    (
+        cd /sys/bus/usb/devices/
+        for address in * ; do
+            if [ -d "$address/driver/module" ] ; then
+                module=`cd $address/driver/module ; pwd -P | xargs basename`
+                if grep -q "^$module " /proc/modules ; then
+                    address=$(echo $address |sed s/0000://)
+                    id=$(lsusb -s $address | tail -n 1 | awk '{print $6}')
+                    if [ "$id" ] ; then
+                        echo "$id $module"
+                    fi
+                fi
+            fi
+        done
+    )
+    echo
+fi
+</pre>
 
+<p>This might perhaps be something to include in other tools as
+well.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -1431,121 +1959,103 @@ continue.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html">Calling tasksel like the installer, while still getting useful output</a>
+        <a href="http://people.skolelinux.org/pere/blog/How_to_test_if_a_laptop_is_working_with_Linux.html">How to test if a laptop is working with Linux</a>
       </div>
       <div class="date">
-        16th June 2010
+        22nd December 2010
       </div>
       <div class="body">
-        <p>A few times I have had the need to simulate the way tasksel
-installs packages during the normal debian-installer run.  Until now,
-I have ended up letting tasksel do the work, with the annoying problem
-of not getting any feedback at all when something fails (like a
-conffile question from dpkg or a download that fails), using code like
-this:
+        <p>The last few days I have spent at work here at the <a
+href="http://www.uio.no/">University of Oslo</a> testing if the new
+batch of computers will work with Linux.  Every year for the last few
+years the university have organised shared bid of a few thousand
+computers, and this year HP won the bid.  Two different desktops and
+five different laptops are on the list this year.  We in the UNIX
+group want to know which one of these computers work well with RHEL
+and Ubuntu, the two Linux distributions we currently handle at the
+university.</p>
 
-<blockquote><pre>
-export DEBIAN_FRONTEND=noninteractive
-tasksel --new-install
-</pre></blockquote>
+<p>My test method is simple, and I share it here to get feedback and
+perhaps inspire others to test hardware as well.  To test, I PXE
+install the OS version of choice, and log in as my normal user and run
+a few applications and plug in selected pieces of hardware.  When
+something fail, I make a note about this in the test matrix and move
+on.  If I have some spare time I try to report the bug to the OS
+vendor, but as I only have the machines for a short time, I rarely
+have the time to do this for all the problems I find.</p>
 
-This would invoke tasksel, let its automatic task selection pick the
-tasks to install, and continue to install the requested tasks without
-any output what so ever.
+<p>Anyway, to get to the point of this post.  Here is the simple tests
+I perform on a new model.</p>
 
-Recently I revisited this problem while working on the automatic
-package upgrade testing, because tasksel would some times hang without
-any useful feedback, and I want to see what is going on when it
-happen.  Then it occured to me, I can parse the output from tasksel
-when asked to run in test mode, and use that aptitude command line
-printed by tasksel then to simulate the tasksel run.  I ended up using
-code like this:
+<ul>
 
-<blockquote><pre>
-export DEBIAN_FRONTEND=noninteractive
-cmd="$(in_target tasksel -t --new-install | sed 's/debconf-apt-progress -- //')"
-$cmd
-</pre></blockquote>
+<li>Is PXE installation working?  I'm testing with RHEL6, Ubuntu Lucid
+and Ubuntu Maverik at the moment.  If I feel like it, I also test with
+RHEL5 and Debian Edu/Squeeze.</li>
 
-<p>The content of $cmd is typically something like "<tt>aptitude -q
---without-recommends -o APT::Install-Recommends=no -y install
-~t^desktop$ ~t^gnome-desktop$ ~t^laptop$ ~pstandard ~prequired
-~pimportant</tt>", which will install the gnome desktop task, the
-laptop task and all packages with priority standard , required and
-important, just like tasksel would have done it during
-installation.</p>
+<li>Is X.org working?  If the graphical login screen show up after
+installation, X.org is working.</li>
 
-<p>A better approach is probably to extend tasksel to be able to
-install packages without using debconf-apt-progress, for use cases
-like this.</p>
+<li>Is hardware accelerated OpenGL working?  Running glxgears (in
+package mesa-utils on Ubuntu) and writing down the frames per second
+reported by the program.</li>
 
-      </div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
-    <div class="entry">
-      <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html">Idea for a change to LDAP schemas allowing DNS and DHCP info to be combined into one object</a>
-      </div>
-      <div class="date">
-        24th June 2010
-      </div>
-      <div class="body">
-        <p>A while back, I
-<a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">complained
-about the fact</a> that it is not possible with the provided schemas
-for storing DNS and DHCP information in LDAP to combine the two sets
-of information into one LDAP object representing a computer.</p>
+<li>Is sound working?  With Gnome and KDE, a sound is played when
+logging in, and if I can hear this the test is successful.  If there
+are several audio exits on the machine, I try them all and check if
+the Gnome/KDE audio mixer can control where to send the sound.  I
+normally test this by playing
+<a href="http://www.nuug.no/aktiviteter/20101012-chef/ ">a HTML5
+video</a> in Firefox/Iceweasel.</li>
 
-<p>In the mean time, I discovered that a simple fix would be to make
-the dhcpHost object class auxiliary, to allow it to be combined with
-the dNSDomain object class, and thus forming one object for one
-computer when storing both DHCP and DNS information in LDAP.</p>
+<li>Is the USB subsystem working?  I test this by plugging in a USB
+memory stick and see if Gnome/KDE notices this.</li>
 
-<p>If I understand this correctly, it is not safe to do this change
-without also changing the assigned number for the object class, and I
-do not know enough about LDAP schema design to do that properly for
-Debian Edu.</p>
+<li>Is the CD/DVD player working?  I test this by inserting any CD/DVD
+I have lying around, and see if Gnome/KDE notices this.</li>
 
-<p>Anyway, for future reference, this is how I believe we could change
-the
-<a href="http://tools.ietf.org/html/draft-ietf-dhc-ldap-schema-00">DHCP
-schema</a> to solve at least part of the problem with the LDAP schemas
-available today from IETF.</p>
+<li>Is any built in camera working?  Test using cheese, and see if a
+picture from the v4l device show up.</li>
 
-<pre>
---- dhcp.schema    (revision 65192)
-+++ dhcp.schema    (working copy)
-@@ -376,7 +376,7 @@
- objectclass ( 2.16.840.1.113719.1.203.6.6
-        NAME 'dhcpHost'
-        DESC 'This represents information about a particular client'
--       SUP top
-+       SUP top AUXILIARY
-        MUST cn
-        MAY  (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption)
-        X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' 'dhcpGroup') )
-</pre>
+<li>Is bluetooth working?  Use the Gnome/KDE browsing tool to see if
+any bluetooth devices are discovered.  In my office, I normally see a
+few.</li>
 
-<p>I very much welcome clues on how to do this properly for Debian
-Edu/Squeeze.  We provide the DHCP schema in our debian-edu-config
-package, and should thus be free to rewrite it as we see fit.</p>
+<li>For laptops, is the SD or Compaq Flash reader working.  I have
+memory modules lying around, and stick them in and see if Gnome/KDE
+notice this.</li>
 
-<p>If you want to help out with implementing this for Debian Edu,
-please contact us on debian-edu@lists.debian.org.</p>
+<li>For laptops, is suspend/hibernate working?  I'm testing if the
+special button work, and if the laptop continue to work after
+resume.</li>
+
+<li>For laptops, is the extra buttons working, like audio level,
+adjusting background light, switching on/off external video output,
+switching on/off wifi, bluetooth, etc?  The set of buttons differ from
+laptop to laptop, so I just write down which are working and which are
+not.</li>
+
+<li>Some laptops have smart card readers, finger print readers,
+acceleration sensors etc.  I rarely test these, as I do not know how
+to quickly test if they are working or not, so I only document their
+existence.</li>
+
+</ul>
+
+<p>By now I suspect you are really curious what the test results are
+for the HP machines I am testing.  I'm not done yet, so I will report
+the test results later.  For now I can report that HP 8100 Elite work
+fine, and hibernation fail with HP EliteBook 8440p on Ubuntu Lucid,
+and audio fail on RHEL6.  Ubuntu Maverik worked with 8440p.  As you
+can see, I have most machines left to test.  One interesting
+observation is that Ubuntu Lucid has almost twice the frame rate than
+RHEL6 with glxgears.  No idea why.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -1554,48 +2064,94 @@ please contact us on debian-edu@lists.debian.org.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">LUMA, a very nice LDAP GUI</a>
+        <a href="http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html">Some thoughts on BitCoins</a>
       </div>
       <div class="date">
-        28th June 2010
+        11th December 2010
       </div>
       <div class="body">
-        <p>The last few days I have been looking into the status of the LDAP
-directory in Debian Edu, and in the process I started to miss a GUI
-tool to browse the LDAP tree.  The only one I was able to find in
-Debian/Squeeze and Lenny is
-<a href="http://luma.sourceforge.net/">LUMA</a>, which has proved to
-be a great tool to get a overview of the current LDAP directory
-populated by default in Skolelinux.  Thanks to it, I have been able to
-find empty and obsolete subtrees, misplaced objects and duplicate
-objects.  It will be installed by default in Debian/Squeeze.  If you
-are working with LDAP, give it a go. :)</p>
+        <p>As I continue to explore
+<a href="http://www.bitcoin.org/">BitCoin</a>, I've starting to wonder
+what properties the system have, and how it will be affected by laws
+and regulations here in Norway.  Here are some random notes.</p>
 
-<p>I did notice one problem with it I have not had time to report to
-the BTS yet.  There is no .desktop file in the package, so the tool do
-not show up in the Gnome and KDE menus, but only deep down in in the
-Debian submenu in KDE.  I hope that can be fixed before Squeeze is
-released.</p>
+<p>One interesting thing to note is that since the transactions are
+verified using a peer to peer network, all details about a transaction
+is known to everyone.  This means that if a BitCoin address has been
+published like I did with mine in my initial post about BitCoin, it is
+possible for everyone to see how many BitCoins have been transfered to
+that address.  There is even a web service to look at the details for
+all transactions.  There I can see that my address
+<a href="http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a>
+have received 16.06 Bitcoin, the
+<a href="http://blockexplorer.com/address/1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3">1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3</a>
+address of Simon Phipps have received 181.97 BitCoin and the address
+<a href="http://blockexplorer.com/address/1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt">1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt</A>
+of EFF have received 2447.38 BitCoins so far.  Thank you to each and
+every one of you that donated bitcoins to support my activity. The
+fact that anyone can see how much money was transfered to a given
+address make it more obvious why the BitCoin community recommend to
+generate and hand out a new address for each transaction.  I'm told
+there is no way to track which addresses belong to a given person or
+organisation without the person or organisation revealing it
+themselves, as Simon, EFF and I have done.</p>
 
-<p>I have not yet been able to get it to modify the tree yet.  I would
-like to move objects and remove subtrees directly in the GUI, but have
-not found a way to do that with LUMA yet.  So in the mean time, I use
-<a href="http://www.lichteblau.com/ldapvi/">ldapvi</a> for that.</p>
+<p>In Norway, and in most other countries, there are laws and
+regulations limiting how much money one can transfer across the border
+without declaring it.  There are money laundering, tax and accounting
+laws and regulations I would expect to apply to the use of BitCoin.
+If the Skolelinux foundation
+(<a href="http://linuxiskolen.no/slxdebianlabs/donations.html">SLX
+Debian Labs</a>) were to accept donations in BitCoin in addition to
+normal bank transfers like EFF is doing, how should this be accounted?
+Given that it is impossible to know if money can cross the border or
+not, should everything or nothing be declared?  What exchange rate
+should be used when calculating taxes?  Would receivers have to pay
+income tax if the foundation were to pay Skolelinux contributors in
+BitCoin?  I have no idea, but it would be interesting to know.</p>
 
-<p>If you have tips on other GUI tools for LDAP that might be useful
-in Debian Edu, please contact us on debian-edu@lists.debian.org.</p>
+<p>For a currency to be useful and successful, it must be trusted and
+accepted by a lot of users.  It must be possible to get easy access to
+the currency (as a wage or using currency exchanges), and it must be
+easy to spend it.  At the moment BitCoin seem fairly easy to get
+access to, but there are very few places to spend it.  I am not really
+a regular user of any of the vendor types currently accepting BitCoin,
+so I wonder when my kind of shop would start accepting BitCoins.  I
+would like to buy electronics, travels and subway tickets, not herbs
+and books. :) The currency is young, and this will improve over time
+if it become popular, but I suspect regular banks will start to lobby
+to get BitCoin declared illegal if it become popular.  I'm sure they
+will claim it is helping fund terrorism and money laundering (which
+probably would be true, as is any currency in existence), but I
+believe the problems should be solved elsewhere and not by blaming
+currencies.</p>
 
-<p>Update 2010-06-29: Ross Reedstrom tipped us about the
-<a href="http://packages.qa.debian.org/g/gq.html">gq</a> package as a
-useful GUI alternative.  It seem like a good tool, but is unmaintained
-in Debian and got a RC bug keeping it out of Squeeze.  Unless that
-changes, it will not be an option for Debian Edu based on Squeeze.</p>
+<p>The process of creating new BitCoins is called mining, and it is
+CPU intensive process that depend on a bit of luck as well (as one is
+competing against all the other miners currently spending CPU cycles
+to see which one get the next lump of cash).  The "winner" get 50
+BitCoin when this happen.  Yesterday I came across the obvious way to
+join forces to increase ones changes of getting at least some coins,
+by coordinating the work on mining BitCoins across several machines
+and people, and sharing the result if one is lucky and get the 50
+BitCoins.  Check out
+<a href="http://www.bluishcoder.co.nz/bitcoin-pool/">BitCoin Pool</a>
+if this sounds interesting.  I have not had time to try to set up a
+machine to participate there yet, but have seen that running on ones
+own for a few days have not yield any BitCoins througth mining
+yet.</p>
+
+<p>Update 2010-12-15: Found an <a
+href="http://inertia.posterous.com/reply-to-the-underground-economist-why-bitcoi">interesting
+criticism</a> of bitcoin.  Not quite sure how valid it is, but thought
+it was interesting to read.  The arguments presented seem to be
+equally valid for gold, which was used as a currency for many years.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
         
         
       </div>
@@ -1604,144 +2160,60 @@ changes, it will not be an option for Debian Edu based on Squeeze.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html">Lenny->Squeeze upgrades, apt vs aptitude with the Gnome desktop</a>
+        <a href="http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html">Now accepting bitcoins - anonymous and distributed p2p crypto-money</a>
       </div>
       <div class="date">
-         3rd July 2010
+        10th December 2010
       </div>
       <div class="body">
-        <p>Here is a short update on my <a
-href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">my
-Debian Lenny->Squeeze upgrade testing</a>.  Here is a summary of the
-difference for Gnome when it is upgraded by apt-get and aptitude.  I'm
-not reporting the status for KDE, because the upgrade crashes when
-aptitude try because of missing conflicts
-(<a href="http://bugs.debian.org/584861">#584861</a> and
-<a href="http://bugs.debian.org/585716">#585716</a>).</p>
-
-<p>At the end of the upgrade test script, dpkg -l is executed to get a
-complete list of the installed packages.  Based on this I see these
-differences when I did a test run today.  As usual, I do not really
-know what the correct set of packages would be, but thought it best to
-publish the difference.</p>
+        <p>With this weeks lawless
+<a href="http://www.salon.com/news/opinion/glenn_greenwald/2010/12/06/wikileaks/index.html">governmental
+attacks</a> on Wikileak and
+<a href="http://www.salon.com/technology/dan_gillmor/2010/12/06/war_on_speech">free
+speech</a>, it has become obvious that PayPal, visa and mastercard can
+not be trusted to handle money transactions.
+A blog post from
+<a href="http://webmink.com/2010/12/06/now-accepting-bitcoin/">Simon
+Phipps on bitcoin</a> reminded me about a project that a friend of
+mine mentioned earlier.  I decided to follow Simon's example, and get
+involved with <a href="http://www.bitcoin.org/">BitCoin</a>.  I got
+some help from my friend to get it all running, and he even handed me
+some bitcoins to get started.  I even donated a few bitcoins to Simon
+for helping me remember BitCoin.</p>
 
-<p>Installed using apt-get, missing with aptitude</p>
+<p>So, what is bitcoins, you probably wonder?  It is a digital
+crypto-currency, decentralised and handled using peer-to-peer
+networks.  It allows anonymous transactions and prohibits central
+control over the transactions, making it impossible for governments
+and companies alike to block donations and other transactions.  The
+source is free software, and while the key dependency wxWidgets 2.9
+for the graphical user interface is missing in Debian, the command
+line client builds just fine.  Hopefully Jonas
+<a href="http://bugs.debian.org/578157">will get the package into
+Debian</a> soon.</p>
 
-<blockquote><p>
-  at-spi cpp-4.3 finger gnome-spell gstreamer0.10-gnomevfs
-  libatspi1.0-0 libcupsys2 libeel2-data libgail-common libgdl-1-common
-  libgnomeprint2.2-data libgnomeprintui2.2-common libgnomevfs2-bin
-  libgtksourceview-common libpt-1.10.10-plugins-alsa
-  libpt-1.10.10-plugins-v4l libservlet2.4-java libxalan2-java
-  libxerces2-java openoffice.org-writer2latex openssl-blacklist p7zip
-  python-4suite-xml python-eggtrayicon python-gtkhtml2
-  python-gtkmozembed svgalibg1 xserver-xephyr zip
-</p></blockquote>
+<p>Bitcoins can be converted to other currencies, like USD and EUR.
+There are <a href="http://www.bitcoin.org/trade">companies accepting
+bitcoins</a> when selling services and goods, and there are even
+currency "stock" markets where the exchange rate is decided.  There
+are not many users so far, but the concept seems promising.  If you
+want to get started and lack a friend with any bitcoins to spare,
+you can even get
+<a href="https://freebitcoins.appspot.com/">some for free</a> (0.05
+bitcoin at the time of writing).  Use
+<a href="http://www.bitcoinwatch.com/">BitcoinWatch</a> to keep an eye
+on the current exchange rates.</p>
 
-<p>Installed using apt-get, removed with aptitude</p>
-
-<blockquote><p>
-  bluez-utils dhcdbd djvulibre-desktop epiphany-gecko
-  gnome-app-install gnome-mount gnome-vfs-obexftp gnome-volume-manager
-  libao2 libavahi-compat-libdnssd1 libavahi-core5 libbind9-50
-  libbluetooth2 libcamel1.2-11 libcdio7 libcucul0 libcurl3
-  libdirectfb-1.0-0 libdvdread3 libedata-cal1.2-6 libedataserver1.2-9
-  libeel2-2.20 libepc-1.0-1 libepc-ui-1.0-1 libexchange-storage1.2-3
-  libfaad0 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
-  libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
-  libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
-  libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtkhtml2-0
-  libgtksourceview1.0-0 libgucharmap6 libhesiod0 libicu38 libisccc50
-  libisccfg50 libiw29 libkpathsea4 libltdl3 liblwres50 libmagick++10
-  libmagick10 libmalaga7 libmtp7 libmysqlclient15off libnautilus-burn4
-  libneon27 libnm-glib0 libnm-util0 libopal-2.2 libosp5
-  libparted1.8-10 libpisock9 libpisync1 libpoppler-glib3 libpoppler3
-  libpt-1.10.10 libraw1394-8 libsensors3 libsmbios2 libsoup2.2-8
-  libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1
-  libtotem-plparser10 libtrackerclient0 libvoikko1 libxalan2-java-gcj
-  libxerces2-java-gcj libxklavier12 libxtrap6 libxxf86misc1 libzephyr3
-  mysql-common swfdec-gnome totem-gstreamer wodim
-</p></blockquote>
-
-<p>Installed using aptitude, missing with apt-get</p>
-
-<blockquote><p>
-  gnome gnome-desktop-environment hamster-applet python-gnomeapplet
-  python-gnomekeyring python-wnck rhythmbox-plugins xorg
-  xserver-xorg-input-all xserver-xorg-input-evdev
-  xserver-xorg-input-kbd xserver-xorg-input-mouse
-  xserver-xorg-input-synaptics xserver-xorg-video-all
-  xserver-xorg-video-apm xserver-xorg-video-ark xserver-xorg-video-ati
-  xserver-xorg-video-chips xserver-xorg-video-cirrus
-  xserver-xorg-video-dummy xserver-xorg-video-fbdev
-  xserver-xorg-video-glint xserver-xorg-video-i128
-  xserver-xorg-video-i740 xserver-xorg-video-mach64
-  xserver-xorg-video-mga xserver-xorg-video-neomagic
-  xserver-xorg-video-nouveau xserver-xorg-video-nv
-  xserver-xorg-video-r128 xserver-xorg-video-radeon
-  xserver-xorg-video-radeonhd xserver-xorg-video-rendition
-  xserver-xorg-video-s3 xserver-xorg-video-s3virge
-  xserver-xorg-video-savage xserver-xorg-video-siliconmotion
-  xserver-xorg-video-sis xserver-xorg-video-sisusb
-  xserver-xorg-video-tdfx xserver-xorg-video-tga
-  xserver-xorg-video-trident xserver-xorg-video-tseng
-  xserver-xorg-video-vesa xserver-xorg-video-vmware
-  xserver-xorg-video-voodoo
-</p></blockquote>
-
-<p>Installed using aptitude, removed with apt-get</p>
-
-<blockquote><p>
-  deskbar-applet xserver-xorg xserver-xorg-core
-  xserver-xorg-input-wacom xserver-xorg-video-intel
-  xserver-xorg-video-openchrome
-</p></blockquote>
-
-<p>I was told on IRC that the xorg-xserver package was
-<a href="http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git;a=commit;h=9c8080d06c457932d3bfec021c69ac000aa60120">changed
-in git</a> today to try to get apt-get to not remove xorg completely.
-No idea when it hits Squeeze, but when it does I hope it will reduce
-the difference somewhat.
-
-      </div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
-    <div class="entry">
-      <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html">jXplorer, a very nice LDAP GUI</a>
-      </div>
-      <div class="date">
-         9th July 2010
-      </div>
-      <div class="body">
-        <p>Since
-<a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">my
-last post</a> about available LDAP tools in Debian, I was told about a
-LDAP GUI that is even better than luma.  The java application
-<a href="http://jxplorer.org/">jXplorer</a> is claimed to be capable of
-moving LDAP objects and subtrees using drag-and-drop, and can
-authenticate using Kerberos.  I have only tested the Kerberos
-authentication, but do not have a LDAP setup allowing me to rewrite
-LDAP with my test user yet.  It is
-<a href="http://packages.qa.debian.org/j/jxplorer.html">available in
-Debian</a> testing and unstable at the moment.  The only problem I
-have with it is how it handle errors.  If something go wrong, its
-non-intuitive behaviour require me to go through some query work list
-and remove the failing query.  Nothing big, but very annoying.</p>
+<p>As an experiment, I have decided to set up bitcoind on one of my
+machines.  If you want to support my activity, please send Bitcoin
+donations to the address
+<b>15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</b>.  Thank you!</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
         
         
       </div>
@@ -1750,92 +2222,49 @@ and remove the failing query.  Nothing big, but very annoying.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html">Idea for storing LTSP configuration in LDAP</a>
+        <a href="http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html">Why isn't Debian Edu using VLC?</a>
       </div>
       <div class="date">
-        11th July 2010
+        27th November 2010
       </div>
       <div class="body">
-        <p>Vagrant mentioned on IRC today that ltsp_config now support
-sourcing files from /usr/share/ltsp/ltsp_config.d/ on the thin
-clients, and that this can be used to fetch configuration from LDAP if
-Debian Edu choose to store configuration there.</p>
-
-<p>Armed with this information, I got inspired and wrote a test module
-to get configuration from LDAP.  The idea is to look up the MAC
-address of the client in LDAP, and look for attributes on the form
-ltspconfigsetting=value, and use this to export SETTING=value to the
-LTSP clients.</p>
-
-<p>The goal is to be able to store the LTSP configuration attributes
-in a "computer" LDAP object used by both DNS and DHCP, and thus
-allowing us to store all information about a computer in one place.</p>
-
-<p>This is a untested draft implementation, and I welcome feedback on
-this approach.  A real LDAP schema for the ltspClientAux objectclass
-need to be written.  Comments, suggestions, etc?</p>
-
-<blockquote><pre>
-# Store in /opt/ltsp/$arch/usr/share/ltsp/ltsp_config.d/ldap-config
-#
-# Fetch LTSP client settings from LDAP based on MAC address
-#
-# Uses ethernet address as stored in the dhcpHost objectclass using
-# the dhcpHWAddress attribute or ethernet address stored in the
-# ieee802Device objectclass with the macAddress attribute.
-#
-# This module is written to be schema agnostic, and only depend on the
-# existence of attribute names.
-#
-# The LTSP configuration variables are saved directly using a
-# ltspConfig prefix and uppercasing the rest of the attribute name.
-# To set the SERVER variable, set the ltspConfigServer attribute.
-#
-# Some LDAP schema should be created with all the relevant
-# configuration settings.  Something like this should work:
-# 
-# objectclass ( 1.1.2.2 NAME 'ltspClientAux'
-#     SUP top
-#     AUXILIARY
-#     MAY ( ltspConfigServer $ ltsConfigSound $ ... )
-
-LDAPSERVER=$(debian-edu-ldapserver)
-if [ "$LDAPSERVER" ] ; then
-    LDAPBASE=$(debian-edu-ldapserver -b)
-    for MAC in $(LANG=C ifconfig |grep -i hwaddr| awk '{print $5}'|sort -u) ; do
-       filter="(|(dhcpHWAddress=ethernet $MAC)(macAddress=$MAC))"
-       ldapsearch -h "$LDAPSERVER" -b "$LDAPBASE" -v -x "$filter" | \
-           grep '^ltspConfig' | while read attr value ; do
-           # Remove prefix and convert to upper case
-           attr=$(echo $attr | sed 's/^ltspConfig//i' | tr a-z A-Z)
-           # bass value on to clients
-           eval "$attr=$value; export $attr"
-       done
-    done
-fi
-</pre></blockquote>
-
-<p>I'm not sure this shell construction will work, because I suspect
-the while block might end up in a subshell causing the variables set
-there to not show up in ltsp-config, but if that is the case I am sure
-the code can be restructured to make sure the variables are passed on.
-I expect that can be solved with some testing. :)</p>
+        <p>In the latest issue of Linux Journal, the readers choices were
+presented, and the winner among the multimedia player were VLC.
+Personally, I like VLC, and it is my player of choice when I first try
+to play a video file or stream.  Only if VLC fail will I drag out
+gmplayer to see if it can do better.  The reason is mostly the failure
+model and trust.  When VLC fail, it normally pop up a error message
+reporting the problem.  When mplayer fail, it normally segfault or
+just hangs.  The latter failure mode drain my trust in the program.<p>
 
-<p>If you want to help out with implementing this for Debian Edu,
-please contact us on debian-edu@lists.debian.org.</p>
+<p>But even if VLC is my player of choice, we have choosen to use
+mplayer in <a href="http://www.skolelinux.org/">Debian
+Edu/Skolelinux</a>.  The reason is simple.  We need a good browser
+plugin to play web videos seamlessly, and the VLC browser plugin is
+not very good.  For example, it lack in-line control buttons, so there
+is no way for the user to pause the video.  Also, when I
+<a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">last
+tested the browser plugins</a> available in Debian, the VLC plugin
+failed on several video pages where mplayer based plugins worked.  If
+the browser plugin for VLC was as good as the gecko-mediaplayer
+package (which uses mplayer), we would switch.</P>
 
-<p>Update 2010-07-17: I am aware of another effort to store LTSP
-configuration in LDAP that was created around year 2000 by
-<a href="http://www.pcxperience.com/thinclient/documentation/ldap.html">PC
-Xperience, Inc., 2000</a>.  I found its
-<a href="http://people.redhat.com/alikins/ltsp/ldap/">files</a> on a
-personal home page over at redhat.com.</p>
+<p>While VLC is a good player, its user interface is slightly
+annoying.  The most annoying feature is its inconsistent use of
+keyboard shortcuts.  When the player is in full screen mode, its
+shortcuts are different from when it is playing the video in a window.
+For example, space only work as pause when in full screen mode.  I
+wish it had consisten shortcuts and that space also would work when in
+window mode.  Another nice shortcut in gmplayer is [enter] to restart
+the current video.  It is very nice when playing short videos from the
+web and want to restart it when new people arrive to have a look at
+what is going on.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
         
         
       </div>
@@ -1844,75 +2273,1027 @@ personal home page over at redhat.com.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">Combining PowerDNS and ISC DHCP LDAP objects</a>
+        <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades_of_the_Gnome_and_KDE_desktop__now_with_apt_get_autoremove.html">Lenny->Squeeze upgrades of the Gnome and KDE desktop, now with apt-get autoremove</a>
       </div>
       <div class="date">
-        14th July 2010
+        22nd November 2010
       </div>
       <div class="body">
-        <p>For a while now, I have wanted to find a way to change the DNS and
-DHCP services in Debian Edu to use the same LDAP objects for a given
-computer, to avoid the possibility of having a inconsistent state for
-a computer in LDAP (as in DHCP but no DNS entry or the other way
-around) and make it easier to add computers to LDAP.</p>
-
-<p>I've looked at how powerdns and dhcpd is using LDAP, and using this
-information finally found a solution that seem to work.</p>
-
-<p>The old setup required three LDAP objects for a given computer.
-One forward DNS entry, one reverse DNS entry and one DHCP entry.  If
-we switch powerdns to use its strict LDAP method (ldap-method=strict
-in pdns-debian-edu.conf), the forward and reverse DNS entries are
-merged into one while making it impossible to transfer the reverse map
-to a slave DNS server.</p>
-
-<p>If we also replace the object class used to get the DNS related
-attributes to one allowing these attributes to be combined with the
-dhcphost object class, we can merge the DNS and DHCP entries into one.
-I've written such object class in the dnsdomainaux.schema file (need
-proper OIDs, but that is a minor issue), and tested the setup.  It
-seem to work.</p>
-
-<p>With this test setup in place, we can get away with one LDAP object
-for both DNS and DHCP, and even the LTSP configuration I suggested in
-an earlier email.  The combined LDAP object will look something like
-this:</p>
-
-<blockquote><pre>
-  dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
-  cn: hostname
-  objectClass: dhcphost
-  objectclass: domainrelatedobject
-  objectclass: dnsdomainaux
-  associateddomain: hostname.intern
-  arecord: 10.11.12.13
-  dhcphwaddress: ethernet 00:00:00:00:00:00
-  dhcpstatements: fixed-address hostname
-  ldapconfigsound: Y
-</pre></blockquote>
-
-<p>The DNS server uses the associateddomain and arecord entries, while
-the DHCP server uses the dhcphwaddress and dhcpstatements entries
-before asking DNS to resolve the fixed-adddress.  LTSP will use
-dhcphwaddress or associateddomain and the ldapconfig* attributes.</p>
+        <p>Michael Biebl suggested to me on IRC, that I changed my automated
+upgrade testing of the
+<a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
+Gnome and KDE Desktop</a> to do <tt>apt-get autoremove</tt> when using apt-get.
+This seem like a very good idea, so I adjusted by test scripts and
+can now present the updated result from today:</p>
 
-<p>I am not yet sure if I can get the DHCP server to look for its
-dhcphost in a different location, to allow us to put the objects
-outside the "DHCP Config" subtree, but hope to figure out a way to do
-that.  If I can't figure out a way to do that, we can still get rid of
-the hosts subtree and move all its content into the DHCP Config tree
-(which probably should be renamed to be more related to the new
-content.  I suspect cn=dnsdhcp,ou=services or something like that
-might be a good place to put it.</p>
+<p>This is for Gnome:</p>
 
-<p>If you want to help out with implementing this for Debian Edu,
-please contact us on debian-edu@lists.debian.org.</p>
+<p>Installed using apt-get, missing with aptitude</p>
+
+<blockquote><p>
+  apache2.2-bin
+  aptdaemon
+  baobab
+  binfmt-support
+  browser-plugin-gnash
+  cheese-common
+  cli-common
+  cups-pk-helper
+  dmz-cursor-theme
+  empathy
+  empathy-common
+  freedesktop-sound-theme
+  freeglut3
+  gconf-defaults-service
+  gdm-themes
+  gedit-plugins
+  geoclue
+  geoclue-hostip
+  geoclue-localnet
+  geoclue-manual
+  geoclue-yahoo
+  gnash
+  gnash-common
+  gnome
+  gnome-backgrounds
+  gnome-cards-data
+  gnome-codec-install
+  gnome-core
+  gnome-desktop-environment
+  gnome-disk-utility
+  gnome-screenshot
+  gnome-search-tool
+  gnome-session-canberra
+  gnome-system-log
+  gnome-themes-extras
+  gnome-themes-more
+  gnome-user-share
+  gstreamer0.10-fluendo-mp3
+  gstreamer0.10-tools
+  gtk2-engines
+  gtk2-engines-pixbuf
+  gtk2-engines-smooth
+  hamster-applet
+  libapache2-mod-dnssd
+  libapr1
+  libaprutil1
+  libaprutil1-dbd-sqlite3
+  libaprutil1-ldap
+  libart2.0-cil
+  libboost-date-time1.42.0
+  libboost-python1.42.0
+  libboost-thread1.42.0
+  libchamplain-0.4-0
+  libchamplain-gtk-0.4-0
+  libcheese-gtk18
+  libclutter-gtk-0.10-0
+  libcryptui0
+  libdiscid0
+  libelf1
+  libepc-1.0-2
+  libepc-common
+  libepc-ui-1.0-2
+  libfreerdp-plugins-standard
+  libfreerdp0
+  libgconf2.0-cil
+  libgdata-common
+  libgdata7
+  libgdu-gtk0
+  libgee2
+  libgeoclue0
+  libgexiv2-0
+  libgif4
+  libglade2.0-cil
+  libglib2.0-cil
+  libgmime2.4-cil
+  libgnome-vfs2.0-cil
+  libgnome2.24-cil
+  libgnomepanel2.24-cil
+  libgpod-common
+  libgpod4
+  libgtk2.0-cil
+  libgtkglext1
+  libgtksourceview2.0-common
+  libmono-addins-gui0.2-cil
+  libmono-addins0.2-cil
+  libmono-cairo2.0-cil
+  libmono-corlib2.0-cil
+  libmono-i18n-west2.0-cil
+  libmono-posix2.0-cil
+  libmono-security2.0-cil
+  libmono-sharpzip2.84-cil
+  libmono-system2.0-cil
+  libmtp8
+  libmusicbrainz3-6
+  libndesk-dbus-glib1.0-cil
+  libndesk-dbus1.0-cil
+  libopal3.6.8
+  libpolkit-gtk-1-0
+  libpt2.6.7
+  libpython2.6
+  librpm1
+  librpmio1
+  libsdl1.2debian
+  libsrtp0
+  libssh-4
+  libtelepathy-farsight0
+  libtelepathy-glib0
+  libtidy-0.99-0
+  media-player-info
+  mesa-utils
+  mono-2.0-gac
+  mono-gac
+  mono-runtime
+  nautilus-sendto
+  nautilus-sendto-empathy
+  p7zip-full
+  pkg-config
+  python-aptdaemon
+  python-aptdaemon-gtk
+  python-axiom
+  python-beautifulsoup
+  python-bugbuddy
+  python-clientform
+  python-coherence
+  python-configobj
+  python-crypto
+  python-cupshelpers
+  python-elementtree
+  python-epsilon
+  python-evolution
+  python-feedparser
+  python-gdata
+  python-gdbm
+  python-gst0.10
+  python-gtkglext1
+  python-gtksourceview2
+  python-httplib2
+  python-louie
+  python-mako
+  python-markupsafe
+  python-mechanize
+  python-nevow
+  python-notify
+  python-opengl
+  python-openssl
+  python-pam
+  python-pkg-resources
+  python-pyasn1
+  python-pysqlite2
+  python-rdflib
+  python-serial
+  python-tagpy
+  python-twisted-bin
+  python-twisted-conch
+  python-twisted-core
+  python-twisted-web
+  python-utidylib
+  python-webkit
+  python-xdg
+  python-zope.interface
+  remmina
+  remmina-plugin-data
+  remmina-plugin-rdp
+  remmina-plugin-vnc
+  rhythmbox-plugin-cdrecorder
+  rhythmbox-plugins
+  rpm-common
+  rpm2cpio
+  seahorse-plugins
+  shotwell
+  software-center
+  system-config-printer-udev
+  telepathy-gabble
+  telepathy-mission-control-5
+  telepathy-salut
+  tomboy
+  totem
+  totem-coherence
+  totem-mozilla
+  totem-plugins
+  transmission-common
+  xdg-user-dirs
+  xdg-user-dirs-gtk
+  xserver-xephyr
+</p></blockquote>
+
+<p>Installed using apt-get, removed with aptitude</p>
+
+<blockquote><p>
+  cheese
+  ekiga
+  eog
+  epiphany-extensions
+  evolution-exchange
+  fast-user-switch-applet
+  file-roller
+  gcalctool
+  gconf-editor
+  gdm
+  gedit
+  gedit-common
+  gnome-games
+  gnome-games-data
+  gnome-nettool
+  gnome-system-tools
+  gnome-themes
+  gnuchess
+  gucharmap
+  guile-1.8-libs
+  libavahi-ui0
+  libdmx1
+  libgalago3
+  libgtk-vnc-1.0-0
+  libgtksourceview2.0-0
+  liblircclient0
+  libsdl1.2debian-alsa
+  libspeexdsp1
+  libsvga1
+  rhythmbox
+  seahorse
+  sound-juicer
+  system-config-printer
+  totem-common
+  transmission-gtk
+  vinagre
+  vino
+</p></blockquote>
+
+<p>Installed using aptitude, missing with apt-get</p>
+
+<blockquote><p>
+  gstreamer0.10-gnomevfs
+</p></blockquote>
+
+<p>Installed using aptitude, removed with apt-get</p>
+
+<blockquote><p>
+[nothing]
+</p></blockquote>
+
+<p>This is for KDE:</p>
+
+<p>Installed using apt-get, missing with aptitude</p>
+
+<blockquote><p>
+  ksmserver
+</p></blockquote>
+
+<p>Installed using apt-get, removed with aptitude</p>
+
+<blockquote><p>
+  kwin
+  network-manager-kde
+</p></blockquote>
+
+<p>Installed using aptitude, missing with apt-get</p>
+
+<blockquote><p>
+  arts
+  dolphin
+  freespacenotifier
+  google-gadgets-gst
+  google-gadgets-xul
+  kappfinder
+  kcalc
+  kcharselect
+  kde-core
+  kde-plasma-desktop
+  kde-standard
+  kde-window-manager
+  kdeartwork
+  kdeartwork-emoticons
+  kdeartwork-style
+  kdeartwork-theme-icon
+  kdebase
+  kdebase-apps
+  kdebase-workspace
+  kdebase-workspace-bin
+  kdebase-workspace-data
+  kdeeject
+  kdelibs
+  kdeplasma-addons
+  kdeutils
+  kdewallpapers
+  kdf
+  kfloppy
+  kgpg
+  khelpcenter4
+  kinfocenter
+  konq-plugins-l10n
+  konqueror-nsplugins
+  kscreensaver
+  kscreensaver-xsavers
+  ktimer
+  kwrite
+  libgle3
+  libkde4-ruby1.8
+  libkonq5
+  libkonq5-templates
+  libnetpbm10
+  libplasma-ruby
+  libplasma-ruby1.8
+  libqt4-ruby1.8
+  marble-data
+  marble-plugins
+  netpbm
+  nuvola-icon-theme
+  plasma-dataengines-workspace
+  plasma-desktop
+  plasma-desktopthemes-artwork
+  plasma-runners-addons
+  plasma-scriptengine-googlegadgets
+  plasma-scriptengine-python
+  plasma-scriptengine-qedje
+  plasma-scriptengine-ruby
+  plasma-scriptengine-webkit
+  plasma-scriptengines
+  plasma-wallpapers-addons
+  plasma-widget-folderview
+  plasma-widget-networkmanagement
+  ruby
+  sweeper
+  update-notifier-kde
+  xscreensaver-data-extra
+  xscreensaver-gl
+  xscreensaver-gl-extra
+  xscreensaver-screensaver-bsod
+</p></blockquote>
+
+<p>Installed using aptitude, removed with apt-get</p>
+
+<blockquote><p>
+  ark
+  google-gadgets-common
+  google-gadgets-qt
+  htdig
+  kate
+  kdebase-bin
+  kdebase-data
+  kdepasswd
+  kfind
+  klipper
+  konq-plugins
+  konqueror
+  ksysguard
+  ksysguardd
+  libarchive1
+  libcln6
+  libeet1
+  libeina-svn-06
+  libggadget-1.0-0b
+  libggadget-qt-1.0-0b
+  libgps19
+  libkdecorations4
+  libkephal4
+  libkonq4
+  libkonqsidebarplugin4a
+  libkscreensaver5
+  libksgrd4
+  libksignalplotter4
+  libkunitconversion4
+  libkwineffects1a
+  libmarblewidget4
+  libntrack-qt4-1
+  libntrack0
+  libplasma-geolocation-interface4
+  libplasmaclock4a
+  libplasmagenericshell4
+  libprocesscore4a
+  libprocessui4a
+  libqalculate5
+  libqedje0a
+  libqtruby4shared2
+  libqzion0a
+  libruby1.8
+  libscim8c2a
+  libsmokekdecore4-3
+  libsmokekdeui4-3
+  libsmokekfile3
+  libsmokekhtml3
+  libsmokekio3
+  libsmokeknewstuff2-3
+  libsmokeknewstuff3-3
+  libsmokekparts3
+  libsmokektexteditor3
+  libsmokekutils3
+  libsmokenepomuk3
+  libsmokephonon3
+  libsmokeplasma3
+  libsmokeqtcore4-3
+  libsmokeqtdbus4-3
+  libsmokeqtgui4-3
+  libsmokeqtnetwork4-3
+  libsmokeqtopengl4-3
+  libsmokeqtscript4-3
+  libsmokeqtsql4-3
+  libsmokeqtsvg4-3
+  libsmokeqttest4-3
+  libsmokeqtuitools4-3
+  libsmokeqtwebkit4-3
+  libsmokeqtxml4-3
+  libsmokesolid3
+  libsmokesoprano3
+  libtaskmanager4a
+  libtidy-0.99-0
+  libweather-ion4a
+  libxklavier16
+  libxxf86misc1
+  okteta
+  oxygencursors
+  plasma-dataengines-addons
+  plasma-scriptengine-superkaramba
+  plasma-widget-lancelot
+  plasma-widgets-addons
+  plasma-widgets-workspace
+  polkit-kde-1
+  ruby1.8
+  systemsettings
+  update-notifier-common
+</p></blockquote>
+
+<p>Running apt-get autoremove made the results using apt-get and
+aptitude a bit more similar, but there are still quite a lott of
+differences.  I have no idea what packages should be installed after
+the upgrade, but hope those that do can have a look.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Migrating_Xen_virtual_machines_using_LVM_to_KVM_using_disk_images.html">Migrating Xen virtual machines using LVM to KVM using disk images</a>
+      </div>
+      <div class="date">
+        22nd November 2010
+      </div>
+      <div class="body">
+        <p>Most of the computers in use by the
+<a href="http://www.skolelinux.org/">Debian Edu/Skolelinux project</a>
+are virtual machines.  And they have been Xen machines running on a
+fairly old IBM eserver xseries 345 machine, and we wanted to migrate
+them to KVM on a newer Dell PowerEdge 2950 host machine.  This was a
+bit harder that it could have been, because we set up the Xen virtual
+machines to get the virtual partitions from LVM, which as far as I
+know is not supported by KVM.  So to migrate, we had to convert
+several LVM logical volumes to partitions on a virtual disk file.</p>
+
+<p>I found
+<a href="http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM">a
+nice recipe</a> to do this, and wrote the following script to do the
+migration.  It uses qemu-img from the qemu package to make the disk
+image, parted to partition it, losetup and kpartx to present the disk
+image partions as devices, and dd to copy the data.  I NFS mounted the
+new servers storage area on the old server to do the migration.</p>
+
+<pre>
+#!/bin/sh
+
+# Based on
+# http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM
+
+set -e
+set -x
+
+if [ -z "$1" ] ; then
+    echo "Usage: $0 &lt;hostname&gt;"
+    exit 1
+else
+    host="$1"
+fi
+
+if [ ! -e /dev/vg_data/$host-disk ] ; then
+    echo "error: unable to find LVM volume for $host"
+    exit 1
+fi
+
+# Partitions need to be a bit bigger than the LVM LVs.  not sure why.
+disksize=$( lvs --units m | grep $host-disk | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
+swapsize=$( lvs --units m | grep $host-swap | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
+totalsize=$(( ( $disksize + $swapsize ) ))
+
+img=$host.img
+#dd if=/dev/zero of=$img bs=1M count=$(( $disksize + $swapsize ))
+qemu-img create $img ${totalsize}MMaking room on the Debian Edu/Sqeeze DVD
+
+parted $img mklabel msdos
+parted $img mkpart primary linux-swap 0 $disksize
+parted $img mkpart primary ext2 $disksize $totalsize
+parted $img set 1 boot on
+
+modprobe dm-mod
+losetup /dev/loop0 $img
+kpartx -a /dev/loop0
+
+dd if=/dev/vg_data/$host-disk of=/dev/mapper/loop0p1 bs=1M
+fsck.ext3 -f /dev/mapper/loop0p1 || true
+mkswap /dev/mapper/loop0p2
+
+kpartx -d /dev/loop0
+losetup -d /dev/loop0
+</pre>
+
+<p>The script is perhaps so simple that it is not copyrightable, but
+if it is, it is licenced using GPL v2 or later at your discretion.</p>
+
+<p>After doing this, I booted a Debian CD in rescue mode in KVM with
+the new disk image attached, installed grub-pc and linux-image-686 and
+set up grub to boot from the disk image.  After this, the KVM machines
+seem to work just fine.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_and_KDE_desktop.html">Lenny->Squeeze upgrades, apt vs aptitude with the Gnome and KDE desktop</a>
+      </div>
+      <div class="date">
+        20th November 2010
+      </div>
+      <div class="body">
+        <p>I'm still running upgrade testing of the
+<a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
+Gnome and KDE Desktop</a>, but have not had time to spend on reporting the
+status.  Here is a short update based on a test I ran 20101118.</p>
+
+<p>I still do not know what a correct migration should look like, so I
+report any differences between apt and aptitude and hope someone else
+can see if anything should be changed.</p>
+
+<p>This is for Gnome:</p>
+
+<p>Installed using apt-get, missing with aptitude</p>
+
+<blockquote><p>
+  apache2.2-bin aptdaemon at-spi baobab binfmt-support
+  browser-plugin-gnash cheese-common cli-common cpp-4.3 cups-pk-helper
+  dmz-cursor-theme empathy empathy-common finger
+  freedesktop-sound-theme freeglut3 gconf-defaults-service gdm-themes
+  gedit-plugins geoclue geoclue-hostip geoclue-localnet geoclue-manual
+  geoclue-yahoo gnash gnash-common gnome gnome-backgrounds
+  gnome-cards-data gnome-codec-install gnome-core
+  gnome-desktop-environment gnome-disk-utility gnome-screenshot
+  gnome-search-tool gnome-session-canberra gnome-spell
+  gnome-system-log gnome-themes-extras gnome-themes-more
+  gnome-user-share gs-common gstreamer0.10-fluendo-mp3
+  gstreamer0.10-tools gtk2-engines gtk2-engines-pixbuf
+  gtk2-engines-smooth hal-info hamster-applet libapache2-mod-dnssd
+  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
+  libart2.0-cil libatspi1.0-0 libboost-date-time1.42.0
+  libboost-python1.42.0 libboost-thread1.42.0 libchamplain-0.4-0
+  libchamplain-gtk-0.4-0 libcheese-gtk18 libclutter-gtk-0.10-0
+  libcryptui0 libcupsys2 libdiscid0 libeel2-data libelf1 libepc-1.0-2
+  libepc-common libepc-ui-1.0-2 libfreerdp-plugins-standard
+  libfreerdp0 libgail-common libgconf2.0-cil libgdata-common libgdata7
+  libgdl-1-common libgdu-gtk0 libgee2 libgeoclue0 libgexiv2-0 libgif4
+  libglade2.0-cil libglib2.0-cil libgmime2.4-cil libgnome-vfs2.0-cil
+  libgnome2.24-cil libgnomepanel2.24-cil libgnomeprint2.2-data
+  libgnomeprintui2.2-common libgnomevfs2-bin libgpod-common libgpod4
+  libgtk2.0-cil libgtkglext1 libgtksourceview-common
+  libgtksourceview2.0-common libmono-addins-gui0.2-cil
+  libmono-addins0.2-cil libmono-cairo2.0-cil libmono-corlib2.0-cil
+  libmono-i18n-west2.0-cil libmono-posix2.0-cil
+  libmono-security2.0-cil libmono-sharpzip2.84-cil
+  libmono-system2.0-cil libmtp8 libmusicbrainz3-6
+  libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libopal3.6.8
+  libpolkit-gtk-1-0 libpt-1.10.10-plugins-alsa
+  libpt-1.10.10-plugins-v4l libpt2.6.7 libpython2.6 librpm1 librpmio1
+  libsdl1.2debian libservlet2.4-java libsrtp0 libssh-4
+  libtelepathy-farsight0 libtelepathy-glib0 libtidy-0.99-0
+  libxalan2-java libxerces2-java media-player-info mesa-utils
+  mono-2.0-gac mono-gac mono-runtime nautilus-sendto
+  nautilus-sendto-empathy openoffice.org-writer2latex
+  openssl-blacklist p7zip p7zip-full pkg-config python-4suite-xml
+  python-aptdaemon python-aptdaemon-gtk python-axiom
+  python-beautifulsoup python-bugbuddy python-clientform
+  python-coherence python-configobj python-crypto python-cupshelpers
+  python-cupsutils python-eggtrayicon python-elementtree
+  python-epsilon python-evolution python-feedparser python-gdata
+  python-gdbm python-gst0.10 python-gtkglext1 python-gtkmozembed
+  python-gtksourceview2 python-httplib2 python-louie python-mako
+  python-markupsafe python-mechanize python-nevow python-notify
+  python-opengl python-openssl python-pam python-pkg-resources
+  python-pyasn1 python-pysqlite2 python-rdflib python-serial
+  python-tagpy python-twisted-bin python-twisted-conch
+  python-twisted-core python-twisted-web python-utidylib python-webkit
+  python-xdg python-zope.interface remmina remmina-plugin-data
+  remmina-plugin-rdp remmina-plugin-vnc rhythmbox-plugin-cdrecorder
+  rhythmbox-plugins rpm-common rpm2cpio seahorse-plugins shotwell
+  software-center svgalibg1 system-config-printer-udev
+  telepathy-gabble telepathy-mission-control-5 telepathy-salut tomboy
+  totem totem-coherence totem-mozilla totem-plugins
+  transmission-common xdg-user-dirs xdg-user-dirs-gtk xserver-xephyr
+  zip
+</p></blockquote>
+
+Installed using apt-get, removed with aptitude
+
+<blockquote><p>
+  arj bluez-utils cheese dhcdbd djvulibre-desktop ekiga eog
+  epiphany-extensions epiphany-gecko evolution-exchange
+  fast-user-switch-applet file-roller gcalctool gconf-editor gdm gedit
+  gedit-common gnome-app-install gnome-games gnome-games-data
+  gnome-nettool gnome-system-tools gnome-themes gnome-utils
+  gnome-vfs-obexftp gnome-volume-manager gnuchess gucharmap
+  guile-1.8-libs hal libavahi-compat-libdnssd1 libavahi-core5
+  libavahi-ui0 libbind9-50 libbluetooth2 libcamel1.2-11 libcdio7
+  libcucul0 libcurl3 libdirectfb-1.0-0 libdmx1 libdvdread3
+  libedata-cal1.2-6 libedataserver1.2-9 libeel2-2.20 libepc-1.0-1
+  libepc-ui-1.0-1 libexchange-storage1.2-3 libfaad0 libgadu3
+  libgalago3 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
+  libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
+  libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
+  libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtk-vnc-1.0-0
+  libgtkhtml2-0 libgtksourceview1.0-0 libgtksourceview2.0-0
+  libgucharmap6 libhesiod0 libicu38 libisccc50 libisccfg50 libiw29
+  libjaxp1.3-java-gcj libkpathsea4 liblircclient0 libltdl3 liblwres50
+  libmagick++10 libmagick10 libmalaga7 libmozjs1d libmpfr1ldbl libmtp7
+  libmysqlclient15off libnautilus-burn4 libneon27 libnm-glib0
+  libnm-util0 libopal-2.2 libosp5 libparted1.8-10 libpisock9
+  libpisync1 libpoppler-glib3 libpoppler3 libpt-1.10.10 libraw1394-8
+  libsdl1.2debian-alsa libsensors3 libsexy2 libsmbios2 libsoup2.2-8
+  libspeexdsp1 libssh2-1 libsuitesparse-3.1.0 libsvga1
+  libswfdec-0.6-90 libtalloc1 libtotem-plparser10 libtrackerclient0
+  libvoikko1 libxalan2-java-gcj libxerces2-java-gcj libxklavier12
+  libxtrap6 libxxf86misc1 libzephyr3 mysql-common rhythmbox seahorse
+  sound-juicer swfdec-gnome system-config-printer totem-common
+  totem-gstreamer transmission-gtk vinagre vino w3c-dtd-xhtml wodim
+</p></blockquote>
+
+<p>Installed using aptitude, missing with apt-get</p>
+
+<blockquote><p>
+  gstreamer0.10-gnomevfs
+</p></blockquote>
+
+<p>Installed using aptitude, removed with apt-get</p>
+
+<blockquote><p>
+[nothing]
+</p></blockquote>
+
+<p>This is for KDE:</p>
+
+<p>Installed using apt-get, missing with aptitude</p>
+
+<blockquote><p>
+  autopoint bomber bovo cantor cantor-backend-kalgebra cpp-4.3 dcoprss
+  edict espeak espeak-data eyesapplet fifteenapplet finger gettext
+  ghostscript-x git gnome-audio gnugo granatier gs-common
+  gstreamer0.10-pulseaudio indi kaddressbook-plugins kalgebra
+  kalzium-data kanjidic kapman kate-plugins kblocks kbreakout kbstate
+  kde-icons-mono kdeaccessibility kdeaddons-kfile-plugins
+  kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
+  kdeedu kdeedu-data kdeedu-kvtml-data kdegames kdegames-card-data
+  kdegames-mahjongg-data kdegraphics-kfile-plugins kdelirc
+  kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
+  kdepim-kfile-plugins kdepim-kio-plugins kdessh kdetoys kdewebdev
+  kdiamond kdnssd kfilereplace kfourinline kgeography-data kigo
+  killbots kiriki klettres-data kmoon kmrml knewsticker-scripts
+  kollision kpf krosspython ksirk ksmserver ksquares kstars-data
+  ksudoku kubrick kweather libasound2-plugins libboost-python1.42.0
+  libcfitsio3 libconvert-binhex-perl libcrypt-ssleay-perl libdb4.6++
+  libdjvulibre-text libdotconf1.0 liberror-perl libespeak1
+  libfinance-quote-perl libgail-common libgsl0ldbl libhtml-parser-perl
+  libhtml-tableextract-perl libhtml-tagset-perl libhtml-tree-perl
+  libio-stringy-perl libkdeedu4 libkdegames5 libkiten4 libkpathsea5
+  libkrossui4 libmailtools-perl libmime-tools-perl
+  libnews-nntpclient-perl libopenbabel3 libportaudio2 libpulse-browse0
+  libservlet2.4-java libspeechd2 libtiff-tools libtimedate-perl
+  libunistring0 liburi-perl libwww-perl libxalan2-java libxerces2-java
+  lirc luatex marble networkstatus noatun-plugins
+  openoffice.org-writer2latex palapeli palapeli-data parley
+  parley-data poster psutils pulseaudio pulseaudio-esound-compat
+  pulseaudio-module-x11 pulseaudio-utils quanta-data rocs rsync
+  speech-dispatcher step svgalibg1 texlive-binaries texlive-luatex
+  ttf-sazanami-gothic
+</p></blockquote>
+
+<p>Installed using apt-get, removed with aptitude</p>
+
+<blockquote><p>
+  amor artsbuilder atlantik atlantikdesigner blinken bluez-utils cvs
+  dhcdbd djvulibre-desktop imlib-base imlib11 kalzium kanagram kandy
+  kasteroids katomic kbackgammon kbattleship kblackbox kbounce kbruch
+  kcron kdat kdemultimedia-kappfinder-data kdeprint kdict kdvi kedit
+  keduca kenolaba kfax kfaxview kfouleggs kgeography kghostview
+  kgoldrunner khangman khexedit kiconedit kig kimagemapeditor
+  kitchensync kiten kjumpingcube klatin klettres klickety klines
+  klinkstatus kmag kmahjongg kmailcvt kmenuedit kmid kmilo kmines
+  kmousetool kmouth kmplot knetwalk kodo kolf kommander konquest kooka
+  kpager kpat kpdf kpercentage kpilot kpoker kpovmodeler krec
+  kregexpeditor kreversi ksame ksayit kshisen ksig ksim ksirc ksirtet
+  ksmiletris ksnake ksokoban kspaceduel kstars ksvg ksysv kteatime
+  ktip ktnef ktouch ktron kttsd ktuberling kturtle ktux kuickshow
+  kverbos kview kviewshell kvoctrain kwifimanager kwin kwin4 kwordquiz
+  kworldclock kxsldbg libakode2 libarts1-akode libarts1-audiofile
+  libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
+  libavahi-core5 libavc1394-0 libbind9-50 libbluetooth2
+  libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0
+  libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
+  libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0 libicu38
+  libiec61883-0 libindex0 libisccc50 libisccfg50 libiw29
+  libjaxp1.3-java-gcj libk3b3 libkcal2b libkcddb1 libkdeedu3
+  libkdegames1 libkdepim1a libkgantt0 libkleopatra1 libkmime2
+  libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
+  libksieve0 libktnef1 liblockdev1 libltdl3 liblwres50 libmagick10
+  libmimelib1c2a libmodplug0c2 libmozjs1d libmpcdec3 libmpfr1ldbl
+  libneon27 libnm-util0 libopensync0 libpisock9 libpoppler-glib3
+  libpoppler-qt2 libpoppler3 libraw1394-8 librss1 libsensors3
+  libsmbios2 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90
+  libtalloc1 libxalan2-java-gcj libxerces2-java-gcj libxtrap6 lskat
+  mpeglib network-manager-kde noatun pmount tex-common texlive-base
+  texlive-common texlive-doc-base texlive-fonts-recommended tidy
+  ttf-dustin ttf-kochi-gothic ttf-sjfonts
+</p></blockquote>
+
+<p>Installed using aptitude, missing with apt-get</p>
+
+<blockquote><p>
+  dolphin kde-core kde-plasma-desktop kde-standard kde-window-manager
+  kdeartwork kdebase kdebase-apps kdebase-workspace
+  kdebase-workspace-bin kdebase-workspace-data kdeutils kscreensaver
+  kscreensaver-xsavers libgle3 libkonq5 libkonq5-templates libnetpbm10
+  netpbm plasma-widget-folderview plasma-widget-networkmanagement
+  xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra
+  xscreensaver-screensaver-bsod
+</p></blockquote>
+
+<p>Installed using aptitude, removed with apt-get</p>
+
+<blockquote><p>
+  kdebase-bin konq-plugins konqueror
+</p></blockquote>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html">Gnash buildbot slave and Debian kfreebsd</a>
+      </div>
+      <div class="date">
+        20th November 2010
+      </div>
+      <div class="body">
+        <p>Answering
+<a href="http://www.listware.net/201011/gnash-dev/67431-gnash-dev-buildbot-looking-for-slaves.html">the
+call from the Gnash project</a> for
+<a href="http://www.gnashdev.org:8010">buildbot</a> slaves to test the
+current source, I have set up a virtual KVM machine on the Debian
+Edu/Skolelinux virtualization host to test the git source on
+Debian/Squeeze.  I hope this can help the developers in getting new
+releases out more often.</p>
+
+<p>As the developers want less main-stream build platforms tested to,
+I have considered setting up a <a
+href="http://www.debian.org/ports/kfreebsd-gnu/">Debian/kfreebsd</a>
+machine as well.  I have also considered using the kfreebsd
+architecture in Debian as a file server in NUUG to get access to the 5
+TB zfs volume we currently use to store DV video.  Because of this, I
+finally got around to do a test installation of Debian/Squeeze with
+kfreebsd.  Installation went fairly smooth, thought I noticed some
+visual glitches in the cdebconf dialogs (black cursor left on the
+screen at random locations).  Have not gotten very far with the
+testing.  Noticed cfdisk did not work, but fdisk did so it was not a
+fatal problem.  Have to spend some more time on it to see if it is
+useful as a file server for NUUG.  Will try to find time to set up a
+gnash buildbot slave on the Debian Edu/Skolelinux this weekend.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Debian_in_3D.html">Debian in 3D</a>
+      </div>
+      <div class="date">
+         9th November 2010
+      </div>
+      <div class="body">
+        <p><img src="http://thingiverse-production.s3.amazonaws.com/renders/23/e0/c4/f9/2b/debswagtdose_preview_medium.jpg"></p>
+
+<p>3D printing is just great.  I just came across this Debian logo in
+3D linked in from
+<a href="http://blog.thingiverse.com/2010/11/09/participatory-branding/">the
+thingiverse blog</a>.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html">Software updates 2010-10-24</a>
+      </div>
+      <div class="date">
+        24th October 2010
+      </div>
+      <div class="body">
+        <p>Some updates.</p>
+
+<p>My <a href="http://pledgebank.com/gnash-avm2">gnash pledge</a> to
+raise money for the project is going well.  The lower limit of 10
+signers was reached in 24 hours, and so far 13 people have signed it.
+More signers and more funding is most welcome, and I am really curious
+how far we can get before the time limit of December 24 is reached.
+:)</p>
+
+<p>On the #gnash IRC channel on irc.freenode.net, I was just tipped
+about what appear to be a great code coverage tool capable of
+generating code coverage stats without any changes to the source code.
+It is called
+<a href="http://simonkagstrom.github.com/kcov/index.html">kcov</a>,
+and can be used using <tt>kcov &lt;directory&gt; &lt;binary&gt;</tt>.
+It is missing in Debian, but the git source built just fine in Squeeze
+after I installed libelf-dev, libdwarf-dev, pkg-config and
+libglib2.0-dev.  Failed to build in Lenny, but suspect that is
+solvable.  I hope kcov make it into Debian soon.</p>
+
+<p>Finally found time to wrap up the release notes for <a
+href="http://lists.debian.org/debian-edu-announce/2010/10/msg00002.html">a
+new alpha release of Debian Edu</a>, and just published the second
+alpha test release of the Squeeze based Debian Edu /
+<a href="http://www.skolelinux.org/">Skolelinux</a>
+release.  Give it a try if you need a complete linux solution for your
+school, including central infrastructure server, workstations, thin
+client servers and diskless workstations.  A nice touch added
+yesterday is RDP support on the thin client servers, for windows
+clients to get a Linux desktop on request.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Some_notes_on_Flash_in_Debian_and_Debian_Edu.html">Some notes on Flash in Debian and Debian Edu</a>
+      </div>
+      <div class="date">
+         4th September 2010
+      </div>
+      <div class="body">
+        <p>In the <a href="http://popcon.debian.org/unknown/by_vote">Debian
+popularity-contest numbers</a>, the adobe-flashplugin package the
+second most popular used package that is missing in Debian.  The sixth
+most popular is flashplayer-mozilla.  This is a clear indication that
+working flash is important for Debian users.  Around 10 percent of the
+users submitting data to popcon.debian.org have this package
+installed.</p>
+
+<p>In the report written by Lars Risan in August 2008
+(«<a href="http://wiki.skolelinux.no/Dokumentasjon/Rapporter?action=AttachFile&do=view&target=Skolelinux_i_bruk_rapport_1.0.pdf">Skolelinux
+i bruk – Rapport for Hurum kommune, Universitetet i Agder og
+stiftelsen SLX Debian Labs</a>»), one of the most important problems
+schools experienced with <a href="http://www.skolelinux.org/">Debian
+Edu/Skolelinux</a> was the lack of working Flash.  A lot of educational
+web sites require Flash to work, and lacking working Flash support in
+the web browser and the problems with installing it was perceived as a
+good reason to stay with Windows.</p>
+
+<p>I once saw a funny and sad comment in a web forum, where Linux was
+said to be the retarded cousin that did not really understand
+everything you told him but could work fairly well.  This was a
+comment regarding the problems Linux have with proprietary formats and
+non-standard web pages, and is sad because it exposes a fairly common
+understanding of whose fault it is if web pages that only work in for
+example Internet Explorer 6 fail to work on Firefox, and funny because
+it explain very well how annoying it is for users when Linux
+distributions do not work with the documents they receive or the web
+pages they want to visit.</p>
+
+<p>This is part of the reason why I believe it is important for Debian
+and Debian Edu to have a well working Flash implementation in the
+distribution, to get at least popular sites as Youtube and Google
+Video to working out of the box.  For Squeeze, Debian have the chance
+to include the latest version of Gnash that will make this happen, as
+the new release 0.8.8 was published a few weeks ago and is resting in
+unstable.  The new version work with more sites that version 0.8.7.
+The Gnash maintainers have asked for a freeze exception, but the
+release team have not had time to reply to it yet.  I hope they agree
+with me that Flash is important for the Debian desktop users, and thus
+accept the new package into Squeeze.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html">Circular package dependencies harms apt recovery</a>
+      </div>
+      <div class="date">
+        27th July 2010
+      </div>
+      <div class="body">
+        <p>I discovered this while doing
+<a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">automated
+testing of upgrades from Debian Lenny to Squeeze</a>.  A few packages
+in Debian still got circular dependencies, and it is often claimed
+that apt and aptitude should be able to handle this just fine, but
+some times these dependency loops causes apt to fail.</p>
+
+<p>An example is from todays
+<a href="http://people.skolelinux.org/~pere/debian-upgrade-testing//test-20100727-lenny-squeeze-kde-aptitude.txt">upgrade
+of KDE using aptitude</a>.  In it, a bug in kdebase-workspace-data
+causes perl-modules to fail to upgrade.  The cause is simple.  If a
+package fail to unpack, then only part of packages with the circular
+dependency might end up being unpacked when unpacking aborts, and the
+ones already unpacked will fail to configure in the recovery phase
+because its dependencies are unavailable.</p>
+
+<p>In this log, the problem manifest itself with this error:</p>
+
+<blockquote><pre>
+dpkg: dependency problems prevent configuration of perl-modules:
+ perl-modules depends on perl (>= 5.10.1-1); however:
+  Version of perl on system is 5.10.0-19lenny2.
+dpkg: error processing perl-modules (--configure):
+ dependency problems - leaving unconfigured
+</pre></blockquote>
+
+<p>The perl/perl-modules circular dependency is already
+<a href="http://bugs.debian.org/527917">reported as a bug</a>, and will
+hopefully be solved as soon as possible, but it is not the only one,
+and each one of these loops in the dependency tree can cause similar
+failures.  Of course, they only occur when there are bugs in other
+packages causing the unpacking to fail, but it is rather nasty when
+the failure of one package causes the problem to become worse because
+of dependency loops.</p>
+
+<p>Thanks to
+<a href="http://lists.debian.org/debian-devel/2010/06/msg00116.html">the
+tireless effort by Bill Allombert</a>, the number of circular
+dependencies
+<a href="http://debian.semistable.com/debgraph.out.html">left in Debian
+is dropping</a>, and perhaps it will reach zero one day. :)</p>
+
+<p>Todays testing also exposed a bug in
+<a href="http://bugs.debian.org/590605">update-notifier</a> and
+<a href="http://bugs.debian.org/590604">different behaviour</a> between
+apt-get and aptitude, the latter possibly caused by some circular
+dependency.  Reported both to BTS to try to get someone to look at
+it.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
         
         
       </div>
@@ -2184,60 +3565,231 @@ structural object class.
 
 <p><strong>Conclusion</strong></p>
 
-<p>The PowerDNS implementation seem to be very flexible when it come
-to which LDAP schemas to use.  While its "tree" mode is rigid when it
-come to the the LDAP structure, the "strict" mode is very flexible,
-allowing DNS objects to be stored anywhere under the base cn specified
-in the configuration.</p>
+<p>The PowerDNS implementation seem to be very flexible when it come
+to which LDAP schemas to use.  While its "tree" mode is rigid when it
+come to the the LDAP structure, the "strict" mode is very flexible,
+allowing DNS objects to be stored anywhere under the base cn specified
+in the configuration.</p>
+
+<p>The DHCP implementation on the other hand is very inflexible, both
+regarding which LDAP schemas to use and which LDAP structure to use.
+I guess one could implement ones own schema, as long as the
+objectclasses and attributes have the names used, but this do not
+really help when the DHCP subtree need to have a fairly fixed
+structure.</p>
+
+<p>Based on the observed behaviour, I suspect a LDAP structure like
+this might work for Debian Edu:</p>
+
+<blockquote><pre>
+ou=services
+  cn=machine-info (dhcpService) - dhcpServiceDN points here
+    cn=dhcp (dhcpServer)
+    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
+      cn=10.0.2.0 (dhcpSubnet)
+        cn=group1 (dhcpGroup/dhcpOptions)
+    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
+      cn=192.168.0.0 (dhcpSubnet)
+        cn=group1 (dhcpGroup/dhcpOptions)
+    ou=machines - PowerDNS base points here
+      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
+</pre></blockquote>
+
+<P>This is not tested yet.  If the DHCP server require the dhcpHost
+entries to be in the dhcpGroup subtrees, the entries can be stored
+there instead of a common machines subtree, and the PowerDNS base
+would have to be moved one level up to the machine-info subtree.</p>
+
+<p>The combined object under the machines subtree would look something
+like this:</p>
+    
+<blockquote><pre>
+dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
+dc: hostname
+objectClass: top
+objectClass: dhcpHost
+objectclass: domainrelatedobject
+objectclass: dnsDomainAux
+associateddomain: hostname.intern
+arecord: 10.11.12.13
+dhcpHWAddress: ethernet 00:00:00:00:00:00
+dhcpStatements: fixed-address hostname.intern
+</pre></blockquote>
+
+</p>One could even add the LTSP configuration associated with a given
+machine, as long as the required attributes are available in a
+auxiliary object class.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">Combining PowerDNS and ISC DHCP LDAP objects</a>
+      </div>
+      <div class="date">
+        14th July 2010
+      </div>
+      <div class="body">
+        <p>For a while now, I have wanted to find a way to change the DNS and
+DHCP services in Debian Edu to use the same LDAP objects for a given
+computer, to avoid the possibility of having a inconsistent state for
+a computer in LDAP (as in DHCP but no DNS entry or the other way
+around) and make it easier to add computers to LDAP.</p>
+
+<p>I've looked at how powerdns and dhcpd is using LDAP, and using this
+information finally found a solution that seem to work.</p>
+
+<p>The old setup required three LDAP objects for a given computer.
+One forward DNS entry, one reverse DNS entry and one DHCP entry.  If
+we switch powerdns to use its strict LDAP method (ldap-method=strict
+in pdns-debian-edu.conf), the forward and reverse DNS entries are
+merged into one while making it impossible to transfer the reverse map
+to a slave DNS server.</p>
+
+<p>If we also replace the object class used to get the DNS related
+attributes to one allowing these attributes to be combined with the
+dhcphost object class, we can merge the DNS and DHCP entries into one.
+I've written such object class in the dnsdomainaux.schema file (need
+proper OIDs, but that is a minor issue), and tested the setup.  It
+seem to work.</p>
+
+<p>With this test setup in place, we can get away with one LDAP object
+for both DNS and DHCP, and even the LTSP configuration I suggested in
+an earlier email.  The combined LDAP object will look something like
+this:</p>
+
+<blockquote><pre>
+  dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
+  cn: hostname
+  objectClass: dhcphost
+  objectclass: domainrelatedobject
+  objectclass: dnsdomainaux
+  associateddomain: hostname.intern
+  arecord: 10.11.12.13
+  dhcphwaddress: ethernet 00:00:00:00:00:00
+  dhcpstatements: fixed-address hostname
+  ldapconfigsound: Y
+</pre></blockquote>
+
+<p>The DNS server uses the associateddomain and arecord entries, while
+the DHCP server uses the dhcphwaddress and dhcpstatements entries
+before asking DNS to resolve the fixed-adddress.  LTSP will use
+dhcphwaddress or associateddomain and the ldapconfig* attributes.</p>
+
+<p>I am not yet sure if I can get the DHCP server to look for its
+dhcphost in a different location, to allow us to put the objects
+outside the "DHCP Config" subtree, but hope to figure out a way to do
+that.  If I can't figure out a way to do that, we can still get rid of
+the hosts subtree and move all its content into the DHCP Config tree
+(which probably should be renamed to be more related to the new
+content.  I suspect cn=dnsdhcp,ou=services or something like that
+might be a good place to put it.</p>
+
+<p>If you want to help out with implementing this for Debian Edu,
+please contact us on debian-edu@lists.debian.org.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html">Idea for storing LTSP configuration in LDAP</a>
+      </div>
+      <div class="date">
+        11th July 2010
+      </div>
+      <div class="body">
+        <p>Vagrant mentioned on IRC today that ltsp_config now support
+sourcing files from /usr/share/ltsp/ltsp_config.d/ on the thin
+clients, and that this can be used to fetch configuration from LDAP if
+Debian Edu choose to store configuration there.</p>
+
+<p>Armed with this information, I got inspired and wrote a test module
+to get configuration from LDAP.  The idea is to look up the MAC
+address of the client in LDAP, and look for attributes on the form
+ltspconfigsetting=value, and use this to export SETTING=value to the
+LTSP clients.</p>
 
-<p>The DHCP implementation on the other hand is very inflexible, both
-regarding which LDAP schemas to use and which LDAP structure to use.
-I guess one could implement ones own schema, as long as the
-objectclasses and attributes have the names used, but this do not
-really help when the DHCP subtree need to have a fairly fixed
-structure.</p>
+<p>The goal is to be able to store the LTSP configuration attributes
+in a "computer" LDAP object used by both DNS and DHCP, and thus
+allowing us to store all information about a computer in one place.</p>
 
-<p>Based on the observed behaviour, I suspect a LDAP structure like
-this might work for Debian Edu:</p>
+<p>This is a untested draft implementation, and I welcome feedback on
+this approach.  A real LDAP schema for the ltspClientAux objectclass
+need to be written.  Comments, suggestions, etc?</p>
 
 <blockquote><pre>
-ou=services
-  cn=machine-info (dhcpService) - dhcpServiceDN points here
-    cn=dhcp (dhcpServer)
-    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
-      cn=10.0.2.0 (dhcpSubnet)
-        cn=group1 (dhcpGroup/dhcpOptions)
-    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
-      cn=192.168.0.0 (dhcpSubnet)
-        cn=group1 (dhcpGroup/dhcpOptions)
-    ou=machines - PowerDNS base points here
-      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
+# Store in /opt/ltsp/$arch/usr/share/ltsp/ltsp_config.d/ldap-config
+#
+# Fetch LTSP client settings from LDAP based on MAC address
+#
+# Uses ethernet address as stored in the dhcpHost objectclass using
+# the dhcpHWAddress attribute or ethernet address stored in the
+# ieee802Device objectclass with the macAddress attribute.
+#
+# This module is written to be schema agnostic, and only depend on the
+# existence of attribute names.
+#
+# The LTSP configuration variables are saved directly using a
+# ltspConfig prefix and uppercasing the rest of the attribute name.
+# To set the SERVER variable, set the ltspConfigServer attribute.
+#
+# Some LDAP schema should be created with all the relevant
+# configuration settings.  Something like this should work:
+# 
+# objectclass ( 1.1.2.2 NAME 'ltspClientAux'
+#     SUP top
+#     AUXILIARY
+#     MAY ( ltspConfigServer $ ltsConfigSound $ ... )
+
+LDAPSERVER=$(debian-edu-ldapserver)
+if [ "$LDAPSERVER" ] ; then
+    LDAPBASE=$(debian-edu-ldapserver -b)
+    for MAC in $(LANG=C ifconfig |grep -i hwaddr| awk '{print $5}'|sort -u) ; do
+       filter="(|(dhcpHWAddress=ethernet $MAC)(macAddress=$MAC))"
+       ldapsearch -h "$LDAPSERVER" -b "$LDAPBASE" -v -x "$filter" | \
+           grep '^ltspConfig' | while read attr value ; do
+           # Remove prefix and convert to upper case
+           attr=$(echo $attr | sed 's/^ltspConfig//i' | tr a-z A-Z)
+           # bass value on to clients
+           eval "$attr=$value; export $attr"
+       done
+    done
+fi
 </pre></blockquote>
 
-<P>This is not tested yet.  If the DHCP server require the dhcpHost
-entries to be in the dhcpGroup subtrees, the entries can be stored
-there instead of a common machines subtree, and the PowerDNS base
-would have to be moved one level up to the machine-info subtree.</p>
+<p>I'm not sure this shell construction will work, because I suspect
+the while block might end up in a subshell causing the variables set
+there to not show up in ltsp-config, but if that is the case I am sure
+the code can be restructured to make sure the variables are passed on.
+I expect that can be solved with some testing. :)</p>
 
-<p>The combined object under the machines subtree would look something
-like this:</p>
-    
-<blockquote><pre>
-dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
-dc: hostname
-objectClass: top
-objectClass: dhcpHost
-objectclass: domainrelatedobject
-objectclass: dnsDomainAux
-associateddomain: hostname.intern
-arecord: 10.11.12.13
-dhcpHWAddress: ethernet 00:00:00:00:00:00
-dhcpStatements: fixed-address hostname.intern
-</pre></blockquote>
+<p>If you want to help out with implementing this for Debian Edu,
+please contact us on debian-edu@lists.debian.org.</p>
 
-</p>One could even add the LTSP configuration associated with a given
-machine, as long as the required attributes are available in a
-auxiliary object class.</p>
+<p>Update 2010-07-17: I am aware of another effort to store LTSP
+configuration in LDAP that was created around year 2000 by
+<a href="http://www.pcxperience.com/thinclient/documentation/ldap.html">PC
+Xperience, Inc., 2000</a>.  I found its
+<a href="http://people.redhat.com/alikins/ltsp/ldap/">files</a> on a
+personal home page over at redhat.com.</p>
 
       </div>
       <div class="tags">
@@ -2252,66 +3804,144 @@ auxiliary object class.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html">Circular package dependencies harms apt recovery</a>
+        <a href="http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html">jXplorer, a very nice LDAP GUI</a>
       </div>
       <div class="date">
-        27th July 2010
+         9th July 2010
       </div>
       <div class="body">
-        <p>I discovered this while doing
-<a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">automated
-testing of upgrades from Debian Lenny to Squeeze</a>.  A few packages
-in Debian still got circular dependencies, and it is often claimed
-that apt and aptitude should be able to handle this just fine, but
-some times these dependency loops causes apt to fail.</p>
+        <p>Since
+<a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">my
+last post</a> about available LDAP tools in Debian, I was told about a
+LDAP GUI that is even better than luma.  The java application
+<a href="http://jxplorer.org/">jXplorer</a> is claimed to be capable of
+moving LDAP objects and subtrees using drag-and-drop, and can
+authenticate using Kerberos.  I have only tested the Kerberos
+authentication, but do not have a LDAP setup allowing me to rewrite
+LDAP with my test user yet.  It is
+<a href="http://packages.qa.debian.org/j/jxplorer.html">available in
+Debian</a> testing and unstable at the moment.  The only problem I
+have with it is how it handle errors.  If something go wrong, its
+non-intuitive behaviour require me to go through some query work list
+and remove the failing query.  Nothing big, but very annoying.</p>
 
-<p>An example is from todays
-<a href="http://people.skolelinux.org/~pere/debian-upgrade-testing//test-20100727-lenny-squeeze-kde-aptitude.txt">upgrade
-of KDE using aptitude</a>.  In it, a bug in kdebase-workspace-data
-causes perl-modules to fail to upgrade.  The cause is simple.  If a
-package fail to unpack, then only part of packages with the circular
-dependency might end up being unpacked when unpacking aborts, and the
-ones already unpacked will fail to configure in the recovery phase
-because its dependencies are unavailable.</p>
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html">Lenny->Squeeze upgrades, apt vs aptitude with the Gnome desktop</a>
+      </div>
+      <div class="date">
+         3rd July 2010
+      </div>
+      <div class="body">
+        <p>Here is a short update on my <a
+href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">my
+Debian Lenny->Squeeze upgrade testing</a>.  Here is a summary of the
+difference for Gnome when it is upgraded by apt-get and aptitude.  I'm
+not reporting the status for KDE, because the upgrade crashes when
+aptitude try because of missing conflicts
+(<a href="http://bugs.debian.org/584861">#584861</a> and
+<a href="http://bugs.debian.org/585716">#585716</a>).</p>
 
-<p>In this log, the problem manifest itself with this error:</p>
+<p>At the end of the upgrade test script, dpkg -l is executed to get a
+complete list of the installed packages.  Based on this I see these
+differences when I did a test run today.  As usual, I do not really
+know what the correct set of packages would be, but thought it best to
+publish the difference.</p>
 
-<blockquote><pre>
-dpkg: dependency problems prevent configuration of perl-modules:
- perl-modules depends on perl (>= 5.10.1-1); however:
-  Version of perl on system is 5.10.0-19lenny2.
-dpkg: error processing perl-modules (--configure):
- dependency problems - leaving unconfigured
-</pre></blockquote>
+<p>Installed using apt-get, missing with aptitude</p>
 
-<p>The perl/perl-modules circular dependency is already
-<a href="http://bugs.debian.org/527917">reported as a bug</a>, and will
-hopefully be solved as soon as possible, but it is not the only one,
-and each one of these loops in the dependency tree can cause similar
-failures.  Of course, they only occur when there are bugs in other
-packages causing the unpacking to fail, but it is rather nasty when
-the failure of one package causes the problem to become worse because
-of dependency loops.</p>
+<blockquote><p>
+  at-spi cpp-4.3 finger gnome-spell gstreamer0.10-gnomevfs
+  libatspi1.0-0 libcupsys2 libeel2-data libgail-common libgdl-1-common
+  libgnomeprint2.2-data libgnomeprintui2.2-common libgnomevfs2-bin
+  libgtksourceview-common libpt-1.10.10-plugins-alsa
+  libpt-1.10.10-plugins-v4l libservlet2.4-java libxalan2-java
+  libxerces2-java openoffice.org-writer2latex openssl-blacklist p7zip
+  python-4suite-xml python-eggtrayicon python-gtkhtml2
+  python-gtkmozembed svgalibg1 xserver-xephyr zip
+</p></blockquote>
+
+<p>Installed using apt-get, removed with aptitude</p>
+
+<blockquote><p>
+  bluez-utils dhcdbd djvulibre-desktop epiphany-gecko
+  gnome-app-install gnome-mount gnome-vfs-obexftp gnome-volume-manager
+  libao2 libavahi-compat-libdnssd1 libavahi-core5 libbind9-50
+  libbluetooth2 libcamel1.2-11 libcdio7 libcucul0 libcurl3
+  libdirectfb-1.0-0 libdvdread3 libedata-cal1.2-6 libedataserver1.2-9
+  libeel2-2.20 libepc-1.0-1 libepc-ui-1.0-1 libexchange-storage1.2-3
+  libfaad0 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
+  libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
+  libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
+  libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtkhtml2-0
+  libgtksourceview1.0-0 libgucharmap6 libhesiod0 libicu38 libisccc50
+  libisccfg50 libiw29 libkpathsea4 libltdl3 liblwres50 libmagick++10
+  libmagick10 libmalaga7 libmtp7 libmysqlclient15off libnautilus-burn4
+  libneon27 libnm-glib0 libnm-util0 libopal-2.2 libosp5
+  libparted1.8-10 libpisock9 libpisync1 libpoppler-glib3 libpoppler3
+  libpt-1.10.10 libraw1394-8 libsensors3 libsmbios2 libsoup2.2-8
+  libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1
+  libtotem-plparser10 libtrackerclient0 libvoikko1 libxalan2-java-gcj
+  libxerces2-java-gcj libxklavier12 libxtrap6 libxxf86misc1 libzephyr3
+  mysql-common swfdec-gnome totem-gstreamer wodim
+</p></blockquote>
+
+<p>Installed using aptitude, missing with apt-get</p>
+
+<blockquote><p>
+  gnome gnome-desktop-environment hamster-applet python-gnomeapplet
+  python-gnomekeyring python-wnck rhythmbox-plugins xorg
+  xserver-xorg-input-all xserver-xorg-input-evdev
+  xserver-xorg-input-kbd xserver-xorg-input-mouse
+  xserver-xorg-input-synaptics xserver-xorg-video-all
+  xserver-xorg-video-apm xserver-xorg-video-ark xserver-xorg-video-ati
+  xserver-xorg-video-chips xserver-xorg-video-cirrus
+  xserver-xorg-video-dummy xserver-xorg-video-fbdev
+  xserver-xorg-video-glint xserver-xorg-video-i128
+  xserver-xorg-video-i740 xserver-xorg-video-mach64
+  xserver-xorg-video-mga xserver-xorg-video-neomagic
+  xserver-xorg-video-nouveau xserver-xorg-video-nv
+  xserver-xorg-video-r128 xserver-xorg-video-radeon
+  xserver-xorg-video-radeonhd xserver-xorg-video-rendition
+  xserver-xorg-video-s3 xserver-xorg-video-s3virge
+  xserver-xorg-video-savage xserver-xorg-video-siliconmotion
+  xserver-xorg-video-sis xserver-xorg-video-sisusb
+  xserver-xorg-video-tdfx xserver-xorg-video-tga
+  xserver-xorg-video-trident xserver-xorg-video-tseng
+  xserver-xorg-video-vesa xserver-xorg-video-vmware
+  xserver-xorg-video-voodoo
+</p></blockquote>
 
-<p>Thanks to
-<a href="http://lists.debian.org/debian-devel/2010/06/msg00116.html">the
-tireless effort by Bill Allombert</a>, the number of circular
-dependencies
-<a href="http://debian.semistable.com/debgraph.out.html">left in Debian
-is dropping</a>, and perhaps it will reach zero one day. :)</p>
+<p>Installed using aptitude, removed with apt-get</p>
 
-<p>Todays testing also exposed a bug in
-<a href="http://bugs.debian.org/590605">update-notifier</a> and
-<a href="http://bugs.debian.org/590604">different behaviour</a> between
-apt-get and aptitude, the latter possibly caused by some circular
-dependency.  Reported both to BTS to try to get someone to look at
-it.</p>
+<blockquote><p>
+  deskbar-applet xserver-xorg xserver-xorg-core
+  xserver-xorg-input-wacom xserver-xorg-video-intel
+  xserver-xorg-video-openchrome
+</p></blockquote>
+
+<p>I was told on IRC that the xorg-xserver package was
+<a href="http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git;a=commit;h=9c8080d06c457932d3bfec021c69ac000aa60120">changed
+in git</a> today to try to get apt-get to not remove xorg completely.
+No idea when it hits Squeeze, but when it does I hope it will reduce
+the difference somewhat.
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -2320,58 +3950,48 @@ it.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Some_notes_on_Flash_in_Debian_and_Debian_Edu.html">Some notes on Flash in Debian and Debian Edu</a>
+        <a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">LUMA, a very nice LDAP GUI</a>
       </div>
       <div class="date">
-         4th September 2010
+        28th June 2010
       </div>
       <div class="body">
-        <p>In the <a href="http://popcon.debian.org/unknown/by_vote">Debian
-popularity-contest numbers</a>, the adobe-flashplugin package the
-second most popular used package that is missing in Debian.  The sixth
-most popular is flashplayer-mozilla.  This is a clear indication that
-working flash is important for Debian users.  Around 10 percent of the
-users submitting data to popcon.debian.org have this package
-installed.</p>
+        <p>The last few days I have been looking into the status of the LDAP
+directory in Debian Edu, and in the process I started to miss a GUI
+tool to browse the LDAP tree.  The only one I was able to find in
+Debian/Squeeze and Lenny is
+<a href="http://luma.sourceforge.net/">LUMA</a>, which has proved to
+be a great tool to get a overview of the current LDAP directory
+populated by default in Skolelinux.  Thanks to it, I have been able to
+find empty and obsolete subtrees, misplaced objects and duplicate
+objects.  It will be installed by default in Debian/Squeeze.  If you
+are working with LDAP, give it a go. :)</p>
 
-<p>In the report written by Lars Risan in August 2008
-(«<a href="http://wiki.skolelinux.no/Dokumentasjon/Rapporter?action=AttachFile&do=view&target=Skolelinux_i_bruk_rapport_1.0.pdf">Skolelinux
-i bruk – Rapport for Hurum kommune, Universitetet i Agder og
-stiftelsen SLX Debian Labs</a>»), one of the most important problems
-schools experienced with <a href="http://www.skolelinux.org/">Debian
-Edu/Skolelinux</a> was the lack of working Flash.  A lot of educational
-web sites require Flash to work, and lacking working Flash support in
-the web browser and the problems with installing it was perceived as a
-good reason to stay with Windows.</p>
+<p>I did notice one problem with it I have not had time to report to
+the BTS yet.  There is no .desktop file in the package, so the tool do
+not show up in the Gnome and KDE menus, but only deep down in in the
+Debian submenu in KDE.  I hope that can be fixed before Squeeze is
+released.</p>
 
-<p>I once saw a funny and sad comment in a web forum, where Linux was
-said to be the retarded cousin that did not really understand
-everything you told him but could work fairly well.  This was a
-comment regarding the problems Linux have with proprietary formats and
-non-standard web pages, and is sad because it exposes a fairly common
-understanding of whose fault it is if web pages that only work in for
-example Internet Explorer 6 fail to work on Firefox, and funny because
-it explain very well how annoying it is for users when Linux
-distributions do not work with the documents they receive or the web
-pages they want to visit.</p>
+<p>I have not yet been able to get it to modify the tree yet.  I would
+like to move objects and remove subtrees directly in the GUI, but have
+not found a way to do that with LUMA yet.  So in the mean time, I use
+<a href="http://www.lichteblau.com/ldapvi/">ldapvi</a> for that.</p>
 
-<p>This is part of the reason why I believe it is important for Debian
-and Debian Edu to have a well working Flash implementation in the
-distribution, to get at least popular sites as Youtube and Google
-Video to working out of the box.  For Squeeze, Debian have the chance
-to include the latest version of Gnash that will make this happen, as
-the new release 0.8.8 was published a few weeks ago and is resting in
-unstable.  The new version work with more sites that version 0.8.7.
-The Gnash maintainers have asked for a freeze exception, but the
-release team have not had time to reply to it yet.  I hope they agree
-with me that Flash is important for the Debian desktop users, and thus
-accept the new package into Squeeze.</p>
+<p>If you have tips on other GUI tools for LDAP that might be useful
+in Debian Edu, please contact us on debian-edu@lists.debian.org.</p>
+
+<p>Update 2010-06-29: Ross Reedstrom tipped us about the
+<a href="http://packages.qa.debian.org/g/gq.html">gq</a> package as a
+useful GUI alternative.  It seem like a good tool, but is unmaintained
+in Debian and got a RC bug keeping it out of Squeeze.  Unless that
+changes, it will not be an option for Debian Edu based on Squeeze.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
         
         
       </div>
@@ -2380,74 +4000,60 @@ accept the new package into Squeeze.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html">Software updates 2010-10-24</a>
+        <a href="http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html">Idea for a change to LDAP schemas allowing DNS and DHCP info to be combined into one object</a>
       </div>
       <div class="date">
-        24th October 2010
+        24th June 2010
       </div>
       <div class="body">
-        <p>Some updates.</p>
+        <p>A while back, I
+<a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">complained
+about the fact</a> that it is not possible with the provided schemas
+for storing DNS and DHCP information in LDAP to combine the two sets
+of information into one LDAP object representing a computer.</p>
 
-<p>My <a href="http://pledgebank.com/gnash-avm2">gnash pledge</a> to
-raise money for the project is going well.  The lower limit of 10
-signers was reached in 24 hours, and so far 13 people have signed it.
-More signers and more funding is most welcome, and I am really curious
-how far we can get before the time limit of December 24 is reached.
-:)</p>
+<p>In the mean time, I discovered that a simple fix would be to make
+the dhcpHost object class auxiliary, to allow it to be combined with
+the dNSDomain object class, and thus forming one object for one
+computer when storing both DHCP and DNS information in LDAP.</p>
 
-<p>On the #gnash IRC channel on irc.freenode.net, I was just tipped
-about what appear to be a great code coverage tool capable of
-generating code coverage stats without any changes to the source code.
-It is called
-<a href="http://simonkagstrom.github.com/kcov/index.html">kcov</a>,
-and can be used using <tt>kcov &lt;directory&gt; &lt;binary&gt;</tt>.
-It is missing in Debian, but the git source built just fine in Squeeze
-after I installed libelf-dev, libdwarf-dev, pkg-config and
-libglib2.0-dev.  Failed to build in Lenny, but suspect that is
-solvable.  I hope kcov make it into Debian soon.</p>
+<p>If I understand this correctly, it is not safe to do this change
+without also changing the assigned number for the object class, and I
+do not know enough about LDAP schema design to do that properly for
+Debian Edu.</p>
 
-<p>Finally found time to wrap up the release notes for <a
-href="http://lists.debian.org/debian-edu-announce/2010/10/msg00002.html">a
-new alpha release of Debian Edu</a>, and just published the second
-alpha test release of the Squeeze based Debian Edu /
-<a href="http://www.skolelinux.org/">Skolelinux</a>
-release.  Give it a try if you need a complete linux solution for your
-school, including central infrastructure server, workstations, thin
-client servers and diskless workstations.  A nice touch added
-yesterday is RDP support on the thin client servers, for windows
-clients to get a Linux desktop on request.</p>
+<p>Anyway, for future reference, this is how I believe we could change
+the
+<a href="http://tools.ietf.org/html/draft-ietf-dhc-ldap-schema-00">DHCP
+schema</a> to solve at least part of the problem with the LDAP schemas
+available today from IETF.</p>
 
-      </div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>.
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
-    <div class="entry">
-      <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Debian_in_3D.html">Debian in 3D</a>
-      </div>
-      <div class="date">
-         9th November 2010
-      </div>
-      <div class="body">
-        <p><img src="http://thingiverse-production.s3.amazonaws.com/renders/23/e0/c4/f9/2b/debswagtdose_preview_medium.jpg"></p>
+<pre>
+--- dhcp.schema    (revision 65192)
++++ dhcp.schema    (working copy)
+@@ -376,7 +376,7 @@
+ objectclass ( 2.16.840.1.113719.1.203.6.6
+        NAME 'dhcpHost'
+        DESC 'This represents information about a particular client'
+-       SUP top
++       SUP top AUXILIARY
+        MUST cn
+        MAY  (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption)
+        X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' 'dhcpGroup') )
+</pre>
 
-<p>3D printing is just great.  I just came across this Debian logo in
-3D linked in from
-<a href="http://blog.thingiverse.com/2010/11/09/participatory-branding/">the
-thingiverse blog</a>.</p>
+<p>I very much welcome clues on how to do this properly for Debian
+Edu/Squeeze.  We provide the DHCP schema in our debian-edu-config
+package, and should thus be free to rewrite it as we see fit.</p>
+
+<p>If you want to help out with implementing this for Debian Edu,
+please contact us on debian-edu@lists.debian.org.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
         
         
       </div>
@@ -2456,41 +4062,59 @@ thingiverse blog</a>.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html">Gnash buildbot slave and Debian kfreebsd</a>
+        <a href="http://people.skolelinux.org/pere/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html">Calling tasksel like the installer, while still getting useful output</a>
       </div>
       <div class="date">
-        20th November 2010
+        16th June 2010
       </div>
       <div class="body">
-        <p>Answering
-<a href="http://www.listware.net/201011/gnash-dev/67431-gnash-dev-buildbot-looking-for-slaves.html">the
-call from the Gnash project</a> for
-<a href="http://www.gnashdev.org:8010">buildbot</a> slaves to test the
-current source, I have set up a virtual KVM machine on the Debian
-Edu/Skolelinux virtualization host to test the git source on
-Debian/Squeeze.  I hope this can help the developers in getting new
-releases out more often.</p>
+        <p>A few times I have had the need to simulate the way tasksel
+installs packages during the normal debian-installer run.  Until now,
+I have ended up letting tasksel do the work, with the annoying problem
+of not getting any feedback at all when something fails (like a
+conffile question from dpkg or a download that fails), using code like
+this:
 
-<p>As the developers want less main-stream build platforms tested to,
-I have considered setting up a <a
-href="http://www.debian.org/ports/kfreebsd-gnu/">Debian/kfreebsd</a>
-machine as well.  I have also considered using the kfreebsd
-architecture in Debian as a file server in NUUG to get access to the 5
-TB zfs volume we currently use to store DV video.  Because of this, I
-finally got around to do a test installation of Debian/Squeeze with
-kfreebsd.  Installation went fairly smooth, thought I noticed some
-visual glitches in the cdebconf dialogs (black cursor left on the
-screen at random locations).  Have not gotten very far with the
-testing.  Noticed cfdisk did not work, but fdisk did so it was not a
-fatal problem.  Have to spend some more time on it to see if it is
-useful as a file server for NUUG.  Will try to find time to set up a
-gnash buildbot slave on the Debian Edu/Skolelinux this weekend.</p>
+<blockquote><pre>
+export DEBIAN_FRONTEND=noninteractive
+tasksel --new-install
+</pre></blockquote>
+
+This would invoke tasksel, let its automatic task selection pick the
+tasks to install, and continue to install the requested tasks without
+any output what so ever.
+
+Recently I revisited this problem while working on the automatic
+package upgrade testing, because tasksel would some times hang without
+any useful feedback, and I want to see what is going on when it
+happen.  Then it occured to me, I can parse the output from tasksel
+when asked to run in test mode, and use that aptitude command line
+printed by tasksel then to simulate the tasksel run.  I ended up using
+code like this:
+
+<blockquote><pre>
+export DEBIAN_FRONTEND=noninteractive
+cmd="$(in_target tasksel -t --new-install | sed 's/debconf-apt-progress -- //')"
+$cmd
+</pre></blockquote>
+
+<p>The content of $cmd is typically something like "<tt>aptitude -q
+--without-recommends -o APT::Install-Recommends=no -y install
+~t^desktop$ ~t^gnome-desktop$ ~t^laptop$ ~pstandard ~prequired
+~pimportant</tt>", which will install the gnome desktop task, the
+laptop task and all packages with priority standard , required and
+important, just like tasksel would have done it during
+installation.</p>
+
+<p>A better approach is probably to extend tasksel to be able to
+install packages without using debconf-apt-progress, for use cases
+like this.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
         
         
       </div>
@@ -2499,225 +4123,180 @@ gnash buildbot slave on the Debian Edu/Skolelinux this weekend.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_and_KDE_desktop.html">Lenny->Squeeze upgrades, apt vs aptitude with the Gnome and KDE desktop</a>
+        <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html">Lenny->Squeeze upgrades, removals by apt and aptitude</a>
       </div>
       <div class="date">
-        20th November 2010
+        13th June 2010
       </div>
       <div class="body">
-        <p>I'm still running upgrade testing of the
-<a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
-Gnome and KDE Desktop</a>, but have not had time to spend on reporting the
-status.  Here is a short update based on a test I ran 20101118.</p>
-
-<p>I still do not know what a correct migration should look like, so I
-report any differences between apt and aptitude and hope someone else
-can see if anything should be changed.</p>
-
-<p>This is for Gnome:</p>
-
-<p>Installed using apt-get, missing with aptitude</p>
-
-<blockquote><p>
-  apache2.2-bin aptdaemon at-spi baobab binfmt-support
-  browser-plugin-gnash cheese-common cli-common cpp-4.3 cups-pk-helper
-  dmz-cursor-theme empathy empathy-common finger
-  freedesktop-sound-theme freeglut3 gconf-defaults-service gdm-themes
-  gedit-plugins geoclue geoclue-hostip geoclue-localnet geoclue-manual
-  geoclue-yahoo gnash gnash-common gnome gnome-backgrounds
-  gnome-cards-data gnome-codec-install gnome-core
-  gnome-desktop-environment gnome-disk-utility gnome-screenshot
-  gnome-search-tool gnome-session-canberra gnome-spell
-  gnome-system-log gnome-themes-extras gnome-themes-more
-  gnome-user-share gs-common gstreamer0.10-fluendo-mp3
-  gstreamer0.10-tools gtk2-engines gtk2-engines-pixbuf
-  gtk2-engines-smooth hal-info hamster-applet libapache2-mod-dnssd
-  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
-  libart2.0-cil libatspi1.0-0 libboost-date-time1.42.0
-  libboost-python1.42.0 libboost-thread1.42.0 libchamplain-0.4-0
-  libchamplain-gtk-0.4-0 libcheese-gtk18 libclutter-gtk-0.10-0
-  libcryptui0 libcupsys2 libdiscid0 libeel2-data libelf1 libepc-1.0-2
-  libepc-common libepc-ui-1.0-2 libfreerdp-plugins-standard
-  libfreerdp0 libgail-common libgconf2.0-cil libgdata-common libgdata7
-  libgdl-1-common libgdu-gtk0 libgee2 libgeoclue0 libgexiv2-0 libgif4
-  libglade2.0-cil libglib2.0-cil libgmime2.4-cil libgnome-vfs2.0-cil
-  libgnome2.24-cil libgnomepanel2.24-cil libgnomeprint2.2-data
-  libgnomeprintui2.2-common libgnomevfs2-bin libgpod-common libgpod4
-  libgtk2.0-cil libgtkglext1 libgtksourceview-common
-  libgtksourceview2.0-common libmono-addins-gui0.2-cil
-  libmono-addins0.2-cil libmono-cairo2.0-cil libmono-corlib2.0-cil
-  libmono-i18n-west2.0-cil libmono-posix2.0-cil
-  libmono-security2.0-cil libmono-sharpzip2.84-cil
-  libmono-system2.0-cil libmtp8 libmusicbrainz3-6
-  libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libopal3.6.8
-  libpolkit-gtk-1-0 libpt-1.10.10-plugins-alsa
-  libpt-1.10.10-plugins-v4l libpt2.6.7 libpython2.6 librpm1 librpmio1
-  libsdl1.2debian libservlet2.4-java libsrtp0 libssh-4
-  libtelepathy-farsight0 libtelepathy-glib0 libtidy-0.99-0
-  libxalan2-java libxerces2-java media-player-info mesa-utils
-  mono-2.0-gac mono-gac mono-runtime nautilus-sendto
-  nautilus-sendto-empathy openoffice.org-writer2latex
-  openssl-blacklist p7zip p7zip-full pkg-config python-4suite-xml
-  python-aptdaemon python-aptdaemon-gtk python-axiom
-  python-beautifulsoup python-bugbuddy python-clientform
-  python-coherence python-configobj python-crypto python-cupshelpers
-  python-cupsutils python-eggtrayicon python-elementtree
-  python-epsilon python-evolution python-feedparser python-gdata
-  python-gdbm python-gst0.10 python-gtkglext1 python-gtkmozembed
-  python-gtksourceview2 python-httplib2 python-louie python-mako
-  python-markupsafe python-mechanize python-nevow python-notify
-  python-opengl python-openssl python-pam python-pkg-resources
-  python-pyasn1 python-pysqlite2 python-rdflib python-serial
-  python-tagpy python-twisted-bin python-twisted-conch
-  python-twisted-core python-twisted-web python-utidylib python-webkit
-  python-xdg python-zope.interface remmina remmina-plugin-data
-  remmina-plugin-rdp remmina-plugin-vnc rhythmbox-plugin-cdrecorder
-  rhythmbox-plugins rpm-common rpm2cpio seahorse-plugins shotwell
-  software-center svgalibg1 system-config-printer-udev
-  telepathy-gabble telepathy-mission-control-5 telepathy-salut tomboy
-  totem totem-coherence totem-mozilla totem-plugins
-  transmission-common xdg-user-dirs xdg-user-dirs-gtk xserver-xephyr
-  zip
-</p></blockquote>
+        <p>My
+<a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">testing
+of Debian upgrades</a> from Lenny to Squeeze continues, and I've
+finally made the upgrade logs available from
+<a href="http://people.skolelinux.org/pere/debian-upgrade-testing/">http://people.skolelinux.org/pere/debian-upgrade-testing/</a>.
+I am now testing dist-upgrade of Gnome and KDE in a chroot using both
+apt and aptitude, and found their differences interesting.  This time
+I will only focus on their removal plans.</p>
 
-Installed using apt-get, removed with aptitude
+<p>After installing a Gnome desktop and the laptop task, apt-get wants
+to remove 72 packages when dist-upgrading from Lenny to Squeeze.  The
+surprising part is that it want to remove xorg and all
+xserver-xorg-video* drivers.  Clearly not a good choice, but I am not
+sure why.  When asking aptitude to do the same, it want to remove 129
+packages, but most of them are library packages I suspect are no
+longer needed.  Both of them want to remove bluetooth packages, which
+I do not know.  Perhaps these bluetooth packages are obsolete?</p>
 
-<blockquote><p>
-  arj bluez-utils cheese dhcdbd djvulibre-desktop ekiga eog
-  epiphany-extensions epiphany-gecko evolution-exchange
-  fast-user-switch-applet file-roller gcalctool gconf-editor gdm gedit
-  gedit-common gnome-app-install gnome-games gnome-games-data
-  gnome-nettool gnome-system-tools gnome-themes gnome-utils
-  gnome-vfs-obexftp gnome-volume-manager gnuchess gucharmap
-  guile-1.8-libs hal libavahi-compat-libdnssd1 libavahi-core5
-  libavahi-ui0 libbind9-50 libbluetooth2 libcamel1.2-11 libcdio7
-  libcucul0 libcurl3 libdirectfb-1.0-0 libdmx1 libdvdread3
-  libedata-cal1.2-6 libedataserver1.2-9 libeel2-2.20 libepc-1.0-1
-  libepc-ui-1.0-1 libexchange-storage1.2-3 libfaad0 libgadu3
-  libgalago3 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
-  libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
-  libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
-  libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtk-vnc-1.0-0
-  libgtkhtml2-0 libgtksourceview1.0-0 libgtksourceview2.0-0
-  libgucharmap6 libhesiod0 libicu38 libisccc50 libisccfg50 libiw29
-  libjaxp1.3-java-gcj libkpathsea4 liblircclient0 libltdl3 liblwres50
-  libmagick++10 libmagick10 libmalaga7 libmozjs1d libmpfr1ldbl libmtp7
-  libmysqlclient15off libnautilus-burn4 libneon27 libnm-glib0
-  libnm-util0 libopal-2.2 libosp5 libparted1.8-10 libpisock9
-  libpisync1 libpoppler-glib3 libpoppler3 libpt-1.10.10 libraw1394-8
-  libsdl1.2debian-alsa libsensors3 libsexy2 libsmbios2 libsoup2.2-8
-  libspeexdsp1 libssh2-1 libsuitesparse-3.1.0 libsvga1
-  libswfdec-0.6-90 libtalloc1 libtotem-plparser10 libtrackerclient0
-  libvoikko1 libxalan2-java-gcj libxerces2-java-gcj libxklavier12
-  libxtrap6 libxxf86misc1 libzephyr3 mysql-common rhythmbox seahorse
-  sound-juicer swfdec-gnome system-config-printer totem-common
-  totem-gstreamer transmission-gtk vinagre vino w3c-dtd-xhtml wodim
-</p></blockquote>
+<p>For KDE, apt-get want to remove 82 packages, among them kdebase
+which seem like a bad idea and xorg the same way as with Gnome. Asking
+aptitude for the same, it wants to remove 192 packages, none which are
+too surprising.</p>
 
-<p>Installed using aptitude, missing with apt-get</p>
+<p>I guess the removal of xorg during upgrades should be investigated
+and avoided, and perhaps others as well.  Here are the complete list
+of planned removals.  The complete logs is available from the URL
+above.  Note if you want to repeat these tests, that the upgrade test
+for kde+apt-get hung in the tasksel setup because of dpkg asking
+conffile questions.  No idea why.  I worked around it by using
+'<tt>echo >> /proc/<em>pidofdpkg</em>/fd/0</tt>' to tell dpkg to
+continue.</p>
 
-<blockquote><p>
-  gstreamer0.10-gnomevfs
-</p></blockquote>
+<p><b>apt-get gnome 72</b>
+<br>bluez-gnome cupsddk-drivers deskbar-applet gnome
+  gnome-desktop-environment gnome-network-admin gtkhtml3.14
+  iceweasel-gnome-support libavcodec51 libdatrie0 libgdl-1-0
+  libgnomekbd2 libgnomekbdui2 libmetacity0 libslab0 libxcb-xlib0
+  nautilus-cd-burner python-gnome2-desktop python-gnome2-extras
+  serpentine swfdec-mozilla update-manager xorg xserver-xorg
+  xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
+  xserver-xorg-input-kbd xserver-xorg-input-mouse
+  xserver-xorg-input-synaptics xserver-xorg-input-wacom
+  xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
+  xserver-xorg-video-ati xserver-xorg-video-chips
+  xserver-xorg-video-cirrus xserver-xorg-video-cyrix
+  xserver-xorg-video-dummy xserver-xorg-video-fbdev
+  xserver-xorg-video-glint xserver-xorg-video-i128
+  xserver-xorg-video-i740 xserver-xorg-video-imstt
+  xserver-xorg-video-intel xserver-xorg-video-mach64
+  xserver-xorg-video-mga xserver-xorg-video-neomagic
+  xserver-xorg-video-nsc xserver-xorg-video-nv
+  xserver-xorg-video-openchrome xserver-xorg-video-r128
+  xserver-xorg-video-radeon xserver-xorg-video-radeonhd
+  xserver-xorg-video-rendition xserver-xorg-video-s3
+  xserver-xorg-video-s3virge xserver-xorg-video-savage
+  xserver-xorg-video-siliconmotion xserver-xorg-video-sis
+  xserver-xorg-video-sisusb xserver-xorg-video-tdfx
+  xserver-xorg-video-tga xserver-xorg-video-trident
+  xserver-xorg-video-tseng xserver-xorg-video-v4l
+  xserver-xorg-video-vesa xserver-xorg-video-vga
+  xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9
+  xulrunner-1.9-gnome-support</p>
 
-<p>Installed using aptitude, removed with apt-get</p>
+<p><b>aptitude gnome 129</b>
 
-<blockquote><p>
-[nothing]
-</p></blockquote>
+<br>bluez-gnome bluez-utils cpp-4.3 cupsddk-drivers dhcdbd
+  djvulibre-desktop finger gnome-app-install gnome-mount
+  gnome-network-admin gnome-spell gnome-vfs-obexftp
+  gnome-volume-manager gstreamer0.10-gnomevfs gtkhtml3.14 libao2
+  libavahi-compat-libdnssd1 libavahi-core5 libavcodec51 libbluetooth2
+  libcamel1.2-11 libcdio7 libcucul0 libcupsys2 libcurl3 libdatrie0
+  libdirectfb-1.0-0 libdvdread3 libedataserver1.2-9 libeel2-2.20
+  libeel2-data libepc-1.0-1 libepc-ui-1.0-1 libfaad0 libgail-common
+  libgd2-noxpm libgda3-3 libgda3-common libgdl-1-0 libgdl-1-common
+  libggz2 libggzcore9 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0
+  libgnomecups1.0-1 libgnomekbd2 libgnomekbdui2 libgnomeprint2.2-0
+  libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
+  libgnomevfs2-bin libgpod3 libgraphviz4 libgtkhtml2-0
+  libgtksourceview-common libgtksourceview1.0-0 libgucharmap6
+  libhesiod0 libicu38 libiw29 libkpathsea4 libltdl3 libmagick++10
+  libmagick10 libmalaga7 libmetacity0 libmtp7 libmysqlclient15off
+  libnautilus-burn4 libneon27 libnm-glib0 libnm-util0 libopal-2.2
+  libosp5 libparted1.8-10 libpoppler-glib3 libpoppler3 libpt-1.10.10
+  libpt-1.10.10-plugins-alsa libpt-1.10.10-plugins-v4l libraw1394-8
+  libsensors3 libslab0 libsmbios2 libsoup2.2-8 libssh2-1
+  libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1 libtotem-plparser10
+  libtrackerclient0 libxalan2-java libxalan2-java-gcj libxcb-xlib0
+  libxerces2-java libxerces2-java-gcj libxklavier12 libxtrap6
+  libxxf86misc1 libzephyr3 mysql-common nautilus-cd-burner
+  openoffice.org-writer2latex openssl-blacklist p7zip
+  python-4suite-xml python-eggtrayicon python-gnome2-desktop
+  python-gnome2-extras python-gtkhtml2 python-gtkmozembed
+  python-numeric python-sexy serpentine svgalibg1 swfdec-gnome
+  swfdec-mozilla totem-gstreamer update-manager wodim
+  xserver-xorg-video-cyrix xserver-xorg-video-imstt
+  xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
+  zip</p>
 
-<p>This is for KDE:</p>
+<p><b>apt-get kde 82</b>
 
-<p>Installed using apt-get, missing with aptitude</p>
+<br>cupsddk-drivers karm kaudiocreator kcoloredit kcontrol kde kde-core
+  kdeaddons kdeartwork kdebase kdebase-bin kdebase-bin-kde3
+  kdebase-kio-plugins kdesktop kdeutils khelpcenter kicker
+  kicker-applets knewsticker kolourpaint konq-plugins konqueror korn
+  kpersonalizer kscreensaver ksplash libavcodec51 libdatrie0 libkiten1
+  libxcb-xlib0 quanta superkaramba texlive-base-bin xorg xserver-xorg
+  xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
+  xserver-xorg-input-kbd xserver-xorg-input-mouse
+  xserver-xorg-input-synaptics xserver-xorg-input-wacom
+  xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
+  xserver-xorg-video-ati xserver-xorg-video-chips
+  xserver-xorg-video-cirrus xserver-xorg-video-cyrix
+  xserver-xorg-video-dummy xserver-xorg-video-fbdev
+  xserver-xorg-video-glint xserver-xorg-video-i128
+  xserver-xorg-video-i740 xserver-xorg-video-imstt
+  xserver-xorg-video-intel xserver-xorg-video-mach64
+  xserver-xorg-video-mga xserver-xorg-video-neomagic
+  xserver-xorg-video-nsc xserver-xorg-video-nv
+  xserver-xorg-video-openchrome xserver-xorg-video-r128
+  xserver-xorg-video-radeon xserver-xorg-video-radeonhd
+  xserver-xorg-video-rendition xserver-xorg-video-s3
+  xserver-xorg-video-s3virge xserver-xorg-video-savage
+  xserver-xorg-video-siliconmotion xserver-xorg-video-sis
+  xserver-xorg-video-sisusb xserver-xorg-video-tdfx
+  xserver-xorg-video-tga xserver-xorg-video-trident
+  xserver-xorg-video-tseng xserver-xorg-video-v4l
+  xserver-xorg-video-vesa xserver-xorg-video-vga
+  xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9</p>
 
-<blockquote><p>
-  autopoint bomber bovo cantor cantor-backend-kalgebra cpp-4.3 dcoprss
-  edict espeak espeak-data eyesapplet fifteenapplet finger gettext
-  ghostscript-x git gnome-audio gnugo granatier gs-common
-  gstreamer0.10-pulseaudio indi kaddressbook-plugins kalgebra
-  kalzium-data kanjidic kapman kate-plugins kblocks kbreakout kbstate
-  kde-icons-mono kdeaccessibility kdeaddons-kfile-plugins
+<p><b>aptitude kde 192</b>
+<br>bluez-utils cpp-4.3 cupsddk-drivers cvs dcoprss dhcdbd
+  djvulibre-desktop dosfstools eyesapplet fifteenapplet finger gettext
+  ghostscript-x imlib-base imlib11 indi kandy karm kasteroids
+  kaudiocreator kbackgammon kbstate kcoloredit kcontrol kcron kdat
   kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
-  kdeedu kdeedu-data kdeedu-kvtml-data kdegames kdegames-card-data
-  kdegames-mahjongg-data kdegraphics-kfile-plugins kdelirc
+  kdebase-bin-kde3 kdebase-kio-plugins kdeedu-data
+  kdegraphics-kfile-plugins kdelirc kdemultimedia-kappfinder-data
   kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
-  kdepim-kfile-plugins kdepim-kio-plugins kdessh kdetoys kdewebdev
-  kdiamond kdnssd kfilereplace kfourinline kgeography-data kigo
-  killbots kiriki klettres-data kmoon kmrml knewsticker-scripts
-  kollision kpf krosspython ksirk ksmserver ksquares kstars-data
-  ksudoku kubrick kweather libasound2-plugins libboost-python1.42.0
-  libcfitsio3 libconvert-binhex-perl libcrypt-ssleay-perl libdb4.6++
-  libdjvulibre-text libdotconf1.0 liberror-perl libespeak1
-  libfinance-quote-perl libgail-common libgsl0ldbl libhtml-parser-perl
-  libhtml-tableextract-perl libhtml-tagset-perl libhtml-tree-perl
-  libio-stringy-perl libkdeedu4 libkdegames5 libkiten4 libkpathsea5
-  libkrossui4 libmailtools-perl libmime-tools-perl
-  libnews-nntpclient-perl libopenbabel3 libportaudio2 libpulse-browse0
-  libservlet2.4-java libspeechd2 libtiff-tools libtimedate-perl
-  libunistring0 liburi-perl libwww-perl libxalan2-java libxerces2-java
-  lirc luatex marble networkstatus noatun-plugins
-  openoffice.org-writer2latex palapeli palapeli-data parley
-  parley-data poster psutils pulseaudio pulseaudio-esound-compat
-  pulseaudio-module-x11 pulseaudio-utils quanta-data rocs rsync
-  speech-dispatcher step svgalibg1 texlive-binaries texlive-luatex
-  ttf-sazanami-gothic
-</p></blockquote>
-
-<p>Installed using apt-get, removed with aptitude</p>
-
-<blockquote><p>
-  amor artsbuilder atlantik atlantikdesigner blinken bluez-utils cvs
-  dhcdbd djvulibre-desktop imlib-base imlib11 kalzium kanagram kandy
-  kasteroids katomic kbackgammon kbattleship kblackbox kbounce kbruch
-  kcron kdat kdemultimedia-kappfinder-data kdeprint kdict kdvi kedit
-  keduca kenolaba kfax kfaxview kfouleggs kgeography kghostview
-  kgoldrunner khangman khexedit kiconedit kig kimagemapeditor
-  kitchensync kiten kjumpingcube klatin klettres klickety klines
-  klinkstatus kmag kmahjongg kmailcvt kmenuedit kmid kmilo kmines
-  kmousetool kmouth kmplot knetwalk kodo kolf kommander konquest kooka
-  kpager kpat kpdf kpercentage kpilot kpoker kpovmodeler krec
-  kregexpeditor kreversi ksame ksayit kshisen ksig ksim ksirc ksirtet
-  ksmiletris ksnake ksokoban kspaceduel kstars ksvg ksysv kteatime
-  ktip ktnef ktouch ktron kttsd ktuberling kturtle ktux kuickshow
-  kverbos kview kviewshell kvoctrain kwifimanager kwin kwin4 kwordquiz
-  kworldclock kxsldbg libakode2 libarts1-akode libarts1-audiofile
+  kdepim-kfile-plugins kdepim-kio-plugins kdeprint kdesktop kdessh
+  kdict kdnssd kdvi kedit keduca kenolaba kfax kfaxview kfouleggs
+  kghostview khelpcenter khexedit kiconedit kitchensync klatin
+  klickety kmailcvt kmenuedit kmid kmilo kmoon kmrml kodo kolourpaint
+  kooka korn kpager kpdf kpercentage kpf kpilot kpoker kpovmodeler
+  krec kregexpeditor ksayit ksim ksirc ksirtet ksmiletris ksmserver
+  ksnake ksokoban ksplash ksvg ksysv ktip ktnef kuickshow kverbos
+  kview kviewshell kvoctrain kwifimanager kwin kwin4 kworldclock
+  kxsldbg libakode2 libao2 libarts1-akode libarts1-audiofile
   libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
-  libavahi-core5 libavc1394-0 libbind9-50 libbluetooth2
-  libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0
+  libavahi-core5 libavc1394-0 libavcodec51 libbluetooth2
+  libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0 libdatrie0
   libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
-  libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0 libicu38
-  libiec61883-0 libindex0 libisccc50 libisccfg50 libiw29
-  libjaxp1.3-java-gcj libk3b3 libkcal2b libkcddb1 libkdeedu3
-  libkdegames1 libkdepim1a libkgantt0 libkleopatra1 libkmime2
+  libgail-common libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0
+  libicu38 libiec61883-0 libindex0 libiw29 libk3b3 libkcal2b libkcddb1
+  libkdeedu3 libkdepim1a libkgantt0 libkiten1 libkleopatra1 libkmime2
   libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
-  libksieve0 libktnef1 liblockdev1 libltdl3 liblwres50 libmagick10
-  libmimelib1c2a libmodplug0c2 libmozjs1d libmpcdec3 libmpfr1ldbl
-  libneon27 libnm-util0 libopensync0 libpisock9 libpoppler-glib3
-  libpoppler-qt2 libpoppler3 libraw1394-8 librss1 libsensors3
-  libsmbios2 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90
-  libtalloc1 libxalan2-java-gcj libxerces2-java-gcj libxtrap6 lskat
-  mpeglib network-manager-kde noatun pmount tex-common texlive-base
-  texlive-common texlive-doc-base texlive-fonts-recommended tidy
-  ttf-dustin ttf-kochi-gothic ttf-sjfonts
-</p></blockquote>
-
-<p>Installed using aptitude, missing with apt-get</p>
-
-<blockquote><p>
-  dolphin kde-core kde-plasma-desktop kde-standard kde-window-manager
-  kdeartwork kdebase kdebase-apps kdebase-workspace
-  kdebase-workspace-bin kdebase-workspace-data kdeutils kscreensaver
-  kscreensaver-xsavers libgle3 libkonq5 libkonq5-templates libnetpbm10
-  netpbm plasma-widget-folderview plasma-widget-networkmanagement
-  xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra
-  xscreensaver-screensaver-bsod
-</p></blockquote>
-
-<p>Installed using aptitude, removed with apt-get</p>
+  libksieve0 libktnef1 liblockdev1 libltdl3 libmagick10 libmimelib1c2a
+  libmozjs1d libmpcdec3 libneon27 libnm-util0 libopensync0 libpisock9
+  libpoppler-glib3 libpoppler-qt2 libpoppler3 libraw1394-8 libsmbios2
+  libssh2-1 libsuitesparse-3.1.0 libtalloc1 libtiff-tools
+  libxalan2-java libxalan2-java-gcj libxcb-xlib0 libxerces2-java
+  libxerces2-java-gcj libxtrap6 mpeglib networkstatus
+  openoffice.org-writer2latex pmount poster psutils quanta quanta-data
+  superkaramba svgalibg1 tex-common texlive-base texlive-base-bin
+  texlive-common texlive-doc-base texlive-fonts-recommended
+  xserver-xorg-video-cyrix xserver-xorg-video-imstt
+  xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
+  xulrunner-1.9</p>
 
-<blockquote><p>
-  kdebase-bin konq-plugins konqueror
-</p></blockquote>
 
       </div>
       <div class="tags">
@@ -2732,90 +4311,137 @@ Installed using apt-get, removed with aptitude
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Migrating_Xen_virtual_machines_using_LVM_to_KVM_using_disk_images.html">Migrating Xen virtual machines using LVM to KVM using disk images</a>
+        <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">Automatic upgrade testing from Lenny to Squeeze</a>
       </div>
       <div class="date">
-        22nd November 2010
+        11th June 2010
       </div>
       <div class="body">
-        <p>Most of the computers in use by the
-<a href="http://www.skolelinux.org/">Debian Edu/Skolelinux project</a>
-are virtual machines.  And they have been Xen machines running on a
-fairly old IBM eserver xseries 345 machine, and we wanted to migrate
-them to KVM on a newer Dell PowerEdge 2950 host machine.  This was a
-bit harder that it could have been, because we set up the Xen virtual
-machines to get the virtual partitions from LVM, which as far as I
-know is not supported by KVM.  So to migrate, we had to convert
-several LVM logical volumes to partitions on a virtual disk file.</p>
+        <p>The last few days I have done some upgrade testing in Debian, to
+see if the upgrade from Lenny to Squeeze will go smoothly.  A few bugs
+have been discovered and reported in the process
+(<a href="http://bugs.debian.org/585410">#585410</a> in nagios3-cgi,
+<a href="http://bugs.debian.org/584879">#584879</a> already fixed in
+enscript and <a href="http://bugs.debian.org/584861">#584861</a> in
+kdebase-workspace-data), and to get a more regular testing going on, I
+am working on a script to automate the test.</p>
 
-<p>I found
-<a href="http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM">a
-nice recipe</a> to do this, and wrote the following script to do the
-migration.  It uses qemu-img from the qemu package to make the disk
-image, parted to partition it, losetup and kpartx to present the disk
-image partions as devices, and dd to copy the data.  I NFS mounted the
-new servers storage area on the old server to do the migration.</p>
+<p>The idea is to create a Lenny chroot and use tasksel to install a
+Gnome or KDE desktop installation inside the chroot before upgrading
+it.  To ensure no services are started in the chroot, a policy-rc.d
+script is inserted.  To make sure tasksel believe it is to install a
+desktop on a laptop, the tasksel tests are replaced in the chroot
+(only acceptable because this is a throw-away chroot).</p>
 
-<pre>
-#!/bin/sh
+<p>A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade
+currently always fail because udev refuses to upgrade with the kernel
+in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade
+is created.  The bug report
+<a href="http://bugs.debian.org/566000">#566000</a> make me suspect
+this problem do not trigger in a chroot, but I touch the file anyway
+to make sure the upgrade go well.  Testing on virtual and real
+hardware have failed me because of udev so far, and creating this file
+do the trick in such settings anyway.  This is a
+<a href="http://www.linuxquestions.org/questions/debian-26/failed-dist-upgrade-due-to-udev-config_sysfs_deprecated-nonsense-804130/">known
+issue</a> and the current udev behaviour is intended by the udev
+maintainer because he lack the resources to rewrite udev to keep
+working with old kernels or something like that.  I really wish the
+udev upstream would keep udev backwards compatible, to avoid such
+upgrade problem, but given that they fail to do so, I guess
+documenting the way out of this mess is the best option we got for
+Debian Squeeze.</p>
 
-# Based on
-# http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM
+<p>Anyway, back to the task at hand, testing upgrades.  This test
+script, which I call <tt>upgrade-test</tt> for now, is doing the
+trick:</p>
 
-set -e
-set -x
+<blockquote><pre>
+#!/bin/sh
+set -ex
 
-if [ -z "$1" ] ; then
-    echo "Usage: $0 &lt;hostname&gt;"
-    exit 1
+if [ "$1" ] ; then
+    desktop=$1
 else
-    host="$1"
+    desktop=gnome
 fi
 
-if [ ! -e /dev/vg_data/$host-disk ] ; then
-    echo "error: unable to find LVM volume for $host"
-    exit 1
-fi
+from=lenny
+to=squeeze
 
-# Partitions need to be a bit bigger than the LVM LVs.  not sure why.
-disksize=$( lvs --units m | grep $host-disk | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
-swapsize=$( lvs --units m | grep $host-swap | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
-totalsize=$(( ( $disksize + $swapsize ) ))
+exec &lt; /dev/null
+unset LANG
+mirror=http://ftp.skolelinux.org/debian
+tmpdir=chroot-$from-upgrade-$to-$desktop
+fuser -mv .
+debootstrap $from $tmpdir $mirror
+chroot $tmpdir aptitude update
+cat > $tmpdir/usr/sbin/policy-rc.d &lt;&lt;EOF
+#!/bin/sh
+exit 101
+EOF
+chmod a+rx $tmpdir/usr/sbin/policy-rc.d
+exit_cleanup() {
+    umount $tmpdir/proc
+}
+mount -t proc proc $tmpdir/proc
+# Make sure proc is unmounted also on failure
+trap exit_cleanup EXIT INT
 
-img=$host.img
-#dd if=/dev/zero of=$img bs=1M count=$(( $disksize + $swapsize ))
-qemu-img create $img ${totalsize}MMaking room on the Debian Edu/Sqeeze DVD
+chroot $tmpdir aptitude -y install debconf-utils
 
-parted $img mklabel msdos
-parted $img mkpart primary linux-swap 0 $disksize
-parted $img mkpart primary ext2 $disksize $totalsize
-parted $img set 1 boot on
+# Make sure tasksel autoselection trigger.  It need the test scripts
+# to return the correct answers.
+echo tasksel tasksel/desktop multiselect $desktop | \
+    chroot $tmpdir debconf-set-selections
 
-modprobe dm-mod
-losetup /dev/loop0 $img
-kpartx -a /dev/loop0
+# Include the desktop and laptop task
+for test in desktop laptop ; do
+    echo > $tmpdir/usr/lib/tasksel/tests/$test &lt;&lt;EOF
+#!/bin/sh
+exit 2
+EOF
+    chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test
+done
 
-dd if=/dev/vg_data/$host-disk of=/dev/mapper/loop0p1 bs=1M
-fsck.ext3 -f /dev/mapper/loop0p1 || true
-mkswap /dev/mapper/loop0p2
+DEBIAN_FRONTEND=noninteractive
+DEBIAN_PRIORITY=critical
+export DEBIAN_FRONTEND DEBIAN_PRIORITY
+chroot $tmpdir tasksel --new-install
 
-kpartx -d /dev/loop0
-losetup -d /dev/loop0
-</pre>
+echo deb $mirror $to main > $tmpdir/etc/apt/sources.list
+chroot $tmpdir aptitude update
+touch $tmpdir/etc/udev/kernel-upgrade
+chroot $tmpdir aptitude -y dist-upgrade
+fuser -mv
+</pre></blockquote>
 
-<p>The script is perhaps so simple that it is not copyrightable, but
-if it is, it is licenced using GPL v2 or later at your discretion.</p>
+<p>I suspect it would be useful to test upgrades with both apt-get and
+with aptitude, but I have not had time to look at how they behave
+differently so far.  I hope to get a cron job running to do the test
+regularly and post the result on the web.  The Gnome upgrade currently
+work, while the KDE upgrade fail because of the bug in
+kdebase-workspace-data</p>
+
+<p>I am not quite sure what kind of extract from the huge upgrade logs
+(KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog
+post, so I will refrain from trying.  I can report that for Gnome,
+aptitude report 760 packages upgraded, 448 newly installed, 129 to
+remove and 1 not upgraded and 1024MB need to be downloaded while for
+KDE the same numbers are 702 packages upgraded, 507 newly installed,
+193 to remove and 0 not upgraded and 1117MB need to be downloaded</p>
 
-<p>After doing this, I booted a Debian CD in rescue mode in KVM with
-the new disk image attached, installed grub-pc and linux-image-686 and
-set up grub to boot from the disk image.  After this, the KVM machines
-seem to work just fine.</p>
+<p>I am very happy to notice that the Gnome desktop + laptop upgrade
+is able to migrate to dependency based boot sequencing and parallel
+booting without a hitch.  Was unsure if there were still bugs with
+packages failing to clean up their obsolete init.d script during
+upgrades, and no such problem seem to affect the Gnome desktop+laptop
+packages.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -2824,455 +4450,391 @@ seem to work just fine.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades_of_the_Gnome_and_KDE_desktop__now_with_apt_get_autoremove.html">Lenny->Squeeze upgrades of the Gnome and KDE desktop, now with apt-get autoremove</a>
+        <a href="http://people.skolelinux.org/pere/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html">Upstart or sysvinit - as init.d scripts see it</a>
       </div>
       <div class="date">
-        22nd November 2010
+         6th June 2010
       </div>
       <div class="body">
-        <p>Michael Biebl suggested to me on IRC, that I changed my automated
-upgrade testing of the
-<a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
-Gnome and KDE Desktop</a> to do <tt>apt-get autoremove</tt> when using apt-get.
-This seem like a very good idea, so I adjusted by test scripts and
-can now present the updated result from today:</p>
+        <p>If Debian is to migrate to upstart on Linux, I expect some init.d
+scripts to migrate (some of) their operations to upstart job while
+keeping the init.d for hurd and kfreebsd.  The packages with such
+needs will need a way to get their init.d scripts to behave
+differently when used with sysvinit and with upstart.  Because of
+this, I had a look at the environment variables set when a init.d
+script is running under upstart, and when it is not.</p>
 
-<p>This is for Gnome:</p>
+<p>With upstart, I notice these environment variables are set when a
+script is started from rcS.d/ (ignoring some irrelevant ones like
+COLUMNS):</p>
 
-<p>Installed using apt-get, missing with aptitude</p>
+<blockquote><pre>
+DEFAULT_RUNLEVEL=2
+previous=N
+PREVLEVEL=
+RUNLEVEL=
+runlevel=S
+UPSTART_EVENTS=startup
+UPSTART_INSTANCE=
+UPSTART_JOB=rc-sysinit
+</pre></blockquote>
 
-<blockquote><p>
-  apache2.2-bin
-  aptdaemon
-  baobab
-  binfmt-support
-  browser-plugin-gnash
-  cheese-common
-  cli-common
-  cups-pk-helper
-  dmz-cursor-theme
-  empathy
-  empathy-common
-  freedesktop-sound-theme
-  freeglut3
-  gconf-defaults-service
-  gdm-themes
-  gedit-plugins
-  geoclue
-  geoclue-hostip
-  geoclue-localnet
-  geoclue-manual
-  geoclue-yahoo
-  gnash
-  gnash-common
-  gnome
-  gnome-backgrounds
-  gnome-cards-data
-  gnome-codec-install
-  gnome-core
-  gnome-desktop-environment
-  gnome-disk-utility
-  gnome-screenshot
-  gnome-search-tool
-  gnome-session-canberra
-  gnome-system-log
-  gnome-themes-extras
-  gnome-themes-more
-  gnome-user-share
-  gstreamer0.10-fluendo-mp3
-  gstreamer0.10-tools
-  gtk2-engines
-  gtk2-engines-pixbuf
-  gtk2-engines-smooth
-  hamster-applet
-  libapache2-mod-dnssd
-  libapr1
-  libaprutil1
-  libaprutil1-dbd-sqlite3
-  libaprutil1-ldap
-  libart2.0-cil
-  libboost-date-time1.42.0
-  libboost-python1.42.0
-  libboost-thread1.42.0
-  libchamplain-0.4-0
-  libchamplain-gtk-0.4-0
-  libcheese-gtk18
-  libclutter-gtk-0.10-0
-  libcryptui0
-  libdiscid0
-  libelf1
-  libepc-1.0-2
-  libepc-common
-  libepc-ui-1.0-2
-  libfreerdp-plugins-standard
-  libfreerdp0
-  libgconf2.0-cil
-  libgdata-common
-  libgdata7
-  libgdu-gtk0
-  libgee2
-  libgeoclue0
-  libgexiv2-0
-  libgif4
-  libglade2.0-cil
-  libglib2.0-cil
-  libgmime2.4-cil
-  libgnome-vfs2.0-cil
-  libgnome2.24-cil
-  libgnomepanel2.24-cil
-  libgpod-common
-  libgpod4
-  libgtk2.0-cil
-  libgtkglext1
-  libgtksourceview2.0-common
-  libmono-addins-gui0.2-cil
-  libmono-addins0.2-cil
-  libmono-cairo2.0-cil
-  libmono-corlib2.0-cil
-  libmono-i18n-west2.0-cil
-  libmono-posix2.0-cil
-  libmono-security2.0-cil
-  libmono-sharpzip2.84-cil
-  libmono-system2.0-cil
-  libmtp8
-  libmusicbrainz3-6
-  libndesk-dbus-glib1.0-cil
-  libndesk-dbus1.0-cil
-  libopal3.6.8
-  libpolkit-gtk-1-0
-  libpt2.6.7
-  libpython2.6
-  librpm1
-  librpmio1
-  libsdl1.2debian
-  libsrtp0
-  libssh-4
-  libtelepathy-farsight0
-  libtelepathy-glib0
-  libtidy-0.99-0
-  media-player-info
-  mesa-utils
-  mono-2.0-gac
-  mono-gac
-  mono-runtime
-  nautilus-sendto
-  nautilus-sendto-empathy
-  p7zip-full
-  pkg-config
-  python-aptdaemon
-  python-aptdaemon-gtk
-  python-axiom
-  python-beautifulsoup
-  python-bugbuddy
-  python-clientform
-  python-coherence
-  python-configobj
-  python-crypto
-  python-cupshelpers
-  python-elementtree
-  python-epsilon
-  python-evolution
-  python-feedparser
-  python-gdata
-  python-gdbm
-  python-gst0.10
-  python-gtkglext1
-  python-gtksourceview2
-  python-httplib2
-  python-louie
-  python-mako
-  python-markupsafe
-  python-mechanize
-  python-nevow
-  python-notify
-  python-opengl
-  python-openssl
-  python-pam
-  python-pkg-resources
-  python-pyasn1
-  python-pysqlite2
-  python-rdflib
-  python-serial
-  python-tagpy
-  python-twisted-bin
-  python-twisted-conch
-  python-twisted-core
-  python-twisted-web
-  python-utidylib
-  python-webkit
-  python-xdg
-  python-zope.interface
-  remmina
-  remmina-plugin-data
-  remmina-plugin-rdp
-  remmina-plugin-vnc
-  rhythmbox-plugin-cdrecorder
-  rhythmbox-plugins
-  rpm-common
-  rpm2cpio
-  seahorse-plugins
-  shotwell
-  software-center
-  system-config-printer-udev
-  telepathy-gabble
-  telepathy-mission-control-5
-  telepathy-salut
-  tomboy
-  totem
-  totem-coherence
-  totem-mozilla
-  totem-plugins
-  transmission-common
-  xdg-user-dirs
-  xdg-user-dirs-gtk
-  xserver-xephyr
-</p></blockquote>
+<p>With sysvinit, these environment variables are set for the same
+script.</p>
+
+<blockquote><pre>
+INIT_VERSION=sysvinit-2.88
+previous=N
+PREVLEVEL=N
+RUNLEVEL=S
+runlevel=S
+</pre></blockquote>
+
+<p>The RUNLEVEL and PREVLEVEL environment variables passed on from
+sysvinit are not set by upstart.  Not sure if it is intentional or not
+to not be compatible with sysvinit in this regard.</p>
+
+<p>For scripts needing to behave differently when upstart is used,
+looking for the UPSTART_JOB environment variable seem to be a good
+choice.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html">A manual for standards wars...</a>
+      </div>
+      <div class="date">
+         6th June 2010
+      </div>
+      <div class="body">
+        <p>Via the
+<a href="http://feedproxy.google.com/~r/robweir/antic-atom/~3/QzU4RgoAGMg/weekly-links-10.html">blog
+of Rob Weir</a> I came across the very interesting essay named
+<a href="http://faculty.haas.berkeley.edu/shapiro/wars.pdf">The Art of
+Standards Wars</a> (PDF 25 pages).  I recommend it for everyone
+following the standards wars of today.</p>
 
-<p>Installed using apt-get, removed with aptitude</p>
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html">Sitesummary tip: Listing computer hardware models used at site</a>
+      </div>
+      <div class="date">
+         3rd June 2010
+      </div>
+      <div class="body">
+        <p>When using sitesummary at a site to track machines, it is possible
+to get a list of the machine types in use thanks to the DMI
+information extracted from each machine.  The script to do so is
+included in the sitesummary package, and here is example output from
+the Skolelinux build servers:</p>
 
-<blockquote><p>
-  cheese
-  ekiga
-  eog
-  epiphany-extensions
-  evolution-exchange
-  fast-user-switch-applet
-  file-roller
-  gcalctool
-  gconf-editor
-  gdm
-  gedit
-  gedit-common
-  gnome-games
-  gnome-games-data
-  gnome-nettool
-  gnome-system-tools
-  gnome-themes
-  gnuchess
-  gucharmap
-  guile-1.8-libs
-  libavahi-ui0
-  libdmx1
-  libgalago3
-  libgtk-vnc-1.0-0
-  libgtksourceview2.0-0
-  liblircclient0
-  libsdl1.2debian-alsa
-  libspeexdsp1
-  libsvga1
-  rhythmbox
-  seahorse
-  sound-juicer
-  system-config-printer
-  totem-common
-  transmission-gtk
-  vinagre
-  vino
-</p></blockquote>
+<blockquote><pre>
+maintainer:~# /usr/lib/sitesummary/hardware-model-summary
+  vendor                    count
+  Dell Computer Corporation     1
+    PowerEdge 1750              1
+  IBM                           1
+    eserver xSeries 345 -[8670M1X]-     1
+  Intel                         2
+  [no-dmi-info]                 3
+maintainer:~#
+</pre></blockquote>
 
-<p>Installed using aptitude, missing with apt-get</p>
+<p>The quality of the report depend on the quality of the DMI tables
+provided in each machine.  Here there are Intel machines without model
+information listed with Intel as vendor and no model, and virtual Xen
+machines listed as [no-dmi-info].  One can add -l as a command line
+option to list the individual machines.</p>
 
-<blockquote><p>
-  gstreamer0.10-gnomevfs
-</p></blockquote>
+<p>A larger list is
+<a href="http://narvikskolen.no/sitesummary/">available from the the
+city of Narvik</a>, which uses Skolelinux on all their shools and also
+provide the basic sitesummary report publicly.  In their report there
+are ~1400 machines. I know they use both Ubuntu and Skolelinux on
+their machines, and as sitesummary is available in both distributions,
+it is trivial to get all of them to report to the same central
+collector.</p>
 
-<p>Installed using aptitude, removed with apt-get</p>
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html">KDM fail at boot with NVidia cards - and no one try to fix it?</a>
+      </div>
+      <div class="date">
+         1st June 2010
+      </div>
+      <div class="body">
+        <p>It is strange to watch how a bug in Debian causing KDM to fail to
+start at boot when an NVidia video card is used is handled.  The
+problem seem to be that the nvidia X.org driver uses a long time to
+initialize, and this duration is longer than kdm is configured to
+wait.</p>
 
-<blockquote><p>
-[nothing]
-</p></blockquote>
+<p>I came across two bugs related to this issue,
+<a href="http://bugs.debian.org/583312">#583312</a> initially filed
+against initscripts and passed on to nvidia-glx when it became obvious
+that the nvidia drivers were involved, and
+<a href="http://bugs.debian.org/524751">#524751</a> initially filed against
+kdm and passed on to src:nvidia-graphics-drivers for unknown reasons.</p>
 
-<p>This is for KDE:</p>
+<p>To me, it seem that no-one is interested in actually solving the
+problem nvidia video card owners experience and make sure the Debian
+distribution work out of the box for these users.  The nvidia driver
+maintainers expect kdm to be set up to wait longer, while kdm expect
+the nvidia driver maintainers to fix the driver to start faster, and
+while they wait for each other I guess the users end up switching to a
+distribution that work for them.  I have no idea what the solution is,
+but I am pretty sure that waiting for each other is not it.</p>
+
+<p>I wonder why we end up handling bugs this way.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html">Parallellized boot seem to hold up well in Debian/testing</a>
+      </div>
+      <div class="date">
+        27th May 2010
+      </div>
+      <div class="body">
+        <p>A few days ago, parallel booting was enabled in Debian/testing.
+The feature seem to hold up pretty well, but three fairly serious
+issues are known and should be solved:
+
+<p><ul>
+
+<li>The wicd package seen to
+<a href="http://bugs.debian.org/508289">break NFS mounting</a> and
+<a href="http://bugs.debian.org/581586">network setup</a> when
+parallel booting is enabled.  No idea why, but the wicd maintainer
+seem to be on the case.</li>
+
+<li>The nvidia X driver seem to
+<a href="http://bugs.debian.org/583312">have a race condition</a>
+triggered more easily when parallel booting is in effect.  The
+maintainer is on the case.</li>
+
+<li>The sysv-rc package fail to properly enable dependency based boot
+sequencing (the shutdown is broken) when old file-rc users
+<a href="http://bugs.debian.org/575080">try to switch back</a> to
+sysv-rc.  One way to solve it would be for file-rc to create
+/etc/init.d/.legacy-bootordering, and another is to try to make
+sysv-rc more robust.  Will investigate some more and probably upload a
+workaround in sysv-rc to help those trying to move from file-rc to
+sysv-rc get a working shutdown.</li>
+
+</ul></p>
+
+<p>All in all not many surprising issues, and all of them seem
+solvable before Squeeze is released.  In addition to these there are
+some packages with bugs in their dependencies and run level settings,
+which I expect will be fixed in a reasonable time span.</p>
+
+<p>If you report any problems with dependencies in init.d scripts to
+the BTS, please usertag the report to get it to show up at
+<a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
+list of usertagged bugs related to this</a>.</p>
+
+<p>Update: Correct bug number to file-rc issue.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/More_flexible_firmware_handling_in_debian_installer.html">More flexible firmware handling in debian-installer</a>
+      </div>
+      <div class="date">
+        22nd May 2010
+      </div>
+      <div class="body">
+        <p>After a long break from debian-installer development, I finally
+found time today to return to the project.  Having to spend less time
+working dependency based boot in debian, as it is almost complete now,
+definitely helped freeing some time.</p>
+
+<p>A while back, I ran into a problem while working on Debian Edu.  We
+include some firmware packages on the Debian Edu CDs, those needed to
+get disk and network controllers working.  Without having these
+firmware packages available during installation, it is impossible to
+install Debian Edu on the given machine, and because our target group
+are non-technical people, asking them to provide firmware packages on
+an external medium is a support pain.  Initially, I expected it to be
+enough to include the firmware packages on the CD to get
+debian-installer to find and use them.  This proved to be wrong.
+Next, I hoped it was enough to symlink the relevant firmware packages
+to some useful location on the CD (tried /cdrom/ and
+/cdrom/firmware/).  This also proved to not work, and at this point I
+found time to look at the debian-installer code to figure out what was
+going to work.</p>
 
-<p>Installed using apt-get, missing with aptitude</p>
+<p>The firmware loading code is in the hw-detect package, and a closer
+look revealed that it would only look for firmware packages outside
+the installation media, so the CD was never checked for firmware
+packages.  It would only check USB sticks, floppies and other
+"external" media devices.  Today I changed it to also look in the
+/cdrom/firmware/ directory on the mounted CD or DVD, which should
+solve the problem I ran into with Debian edu.  I also changed it to
+look in /firmware/, to make sure the installer also find firmware
+provided in the initrd when booting the installer via PXE, to allow us
+to provide the same feature in the PXE setup included in Debian
+Edu.</p>
 
-<blockquote><p>
-  ksmserver
-</p></blockquote>
+<p>To make sure firmware deb packages with a license questions are not
+activated without asking if the license is accepted, I extended
+hw-detect to look for preinst scripts in the firmware packages, and
+run these before activating the firmware during installation.  The
+license question is asked using debconf in the preinst, so this should
+solve the issue for the firmware packages I have looked at so far.</p>
 
-<p>Installed using apt-get, removed with aptitude</p>
+<p>If you want to discuss the details of these features, please
+contact us on debian-boot@lists.debian.org.</p>
 
-<blockquote><p>
-  kwin
-  network-manager-kde
-</p></blockquote>
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html">Parallellized boot is now the default in Debian/unstable</a>
+      </div>
+      <div class="date">
+        14th May 2010
+      </div>
+      <div class="body">
+        <p>Since this evening, parallel booting is the default in
+Debian/unstable for machines using dependency based boot sequencing.
+Apparently the testing of concurrent booting has been wider than
+expected, if I am to believe the
+<a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
+on debian-devel@</a>, and I concluded a few days ago to move forward
+with the feature this weekend, to give us some time to detect any
+remaining problems before Squeeze is frozen.  If serious problems are
+detected, it is simple to change the default back to sequential boot.
+The upload of the new sysvinit package also activate a new upstream
+version.</p>
 
-<p>Installed using aptitude, missing with apt-get</p>
+More information about
+<a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
+based boot sequencing</a> is available from the Debian wiki.  It is
+currently possible to disable parallel booting when one run into
+problems caused by it, by adding this line to /etc/default/rcS:</p>
 
-<blockquote><p>
-  arts
-  dolphin
-  freespacenotifier
-  google-gadgets-gst
-  google-gadgets-xul
-  kappfinder
-  kcalc
-  kcharselect
-  kde-core
-  kde-plasma-desktop
-  kde-standard
-  kde-window-manager
-  kdeartwork
-  kdeartwork-emoticons
-  kdeartwork-style
-  kdeartwork-theme-icon
-  kdebase
-  kdebase-apps
-  kdebase-workspace
-  kdebase-workspace-bin
-  kdebase-workspace-data
-  kdeeject
-  kdelibs
-  kdeplasma-addons
-  kdeutils
-  kdewallpapers
-  kdf
-  kfloppy
-  kgpg
-  khelpcenter4
-  kinfocenter
-  konq-plugins-l10n
-  konqueror-nsplugins
-  kscreensaver
-  kscreensaver-xsavers
-  ktimer
-  kwrite
-  libgle3
-  libkde4-ruby1.8
-  libkonq5
-  libkonq5-templates
-  libnetpbm10
-  libplasma-ruby
-  libplasma-ruby1.8
-  libqt4-ruby1.8
-  marble-data
-  marble-plugins
-  netpbm
-  nuvola-icon-theme
-  plasma-dataengines-workspace
-  plasma-desktop
-  plasma-desktopthemes-artwork
-  plasma-runners-addons
-  plasma-scriptengine-googlegadgets
-  plasma-scriptengine-python
-  plasma-scriptengine-qedje
-  plasma-scriptengine-ruby
-  plasma-scriptengine-webkit
-  plasma-scriptengines
-  plasma-wallpapers-addons
-  plasma-widget-folderview
-  plasma-widget-networkmanagement
-  ruby
-  sweeper
-  update-notifier-kde
-  xscreensaver-data-extra
-  xscreensaver-gl
-  xscreensaver-gl-extra
-  xscreensaver-screensaver-bsod
-</p></blockquote>
+<blockquote><pre>
+CONCURRENCY=none
+</pre></blockquote>
 
-<p>Installed using aptitude, removed with apt-get</p>
+<p>If you report any problems with dependencies in init.d scripts to
+the BTS, please usertag the report to get it to show up at
+<a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
+list of usertagged bugs related to this</a>.</p>
 
-<blockquote><p>
-  ark
-  google-gadgets-common
-  google-gadgets-qt
-  htdig
-  kate
-  kdebase-bin
-  kdebase-data
-  kdepasswd
-  kfind
-  klipper
-  konq-plugins
-  konqueror
-  ksysguard
-  ksysguardd
-  libarchive1
-  libcln6
-  libeet1
-  libeina-svn-06
-  libggadget-1.0-0b
-  libggadget-qt-1.0-0b
-  libgps19
-  libkdecorations4
-  libkephal4
-  libkonq4
-  libkonqsidebarplugin4a
-  libkscreensaver5
-  libksgrd4
-  libksignalplotter4
-  libkunitconversion4
-  libkwineffects1a
-  libmarblewidget4
-  libntrack-qt4-1
-  libntrack0
-  libplasma-geolocation-interface4
-  libplasmaclock4a
-  libplasmagenericshell4
-  libprocesscore4a
-  libprocessui4a
-  libqalculate5
-  libqedje0a
-  libqtruby4shared2
-  libqzion0a
-  libruby1.8
-  libscim8c2a
-  libsmokekdecore4-3
-  libsmokekdeui4-3
-  libsmokekfile3
-  libsmokekhtml3
-  libsmokekio3
-  libsmokeknewstuff2-3
-  libsmokeknewstuff3-3
-  libsmokekparts3
-  libsmokektexteditor3
-  libsmokekutils3
-  libsmokenepomuk3
-  libsmokephonon3
-  libsmokeplasma3
-  libsmokeqtcore4-3
-  libsmokeqtdbus4-3
-  libsmokeqtgui4-3
-  libsmokeqtnetwork4-3
-  libsmokeqtopengl4-3
-  libsmokeqtscript4-3
-  libsmokeqtsql4-3
-  libsmokeqtsvg4-3
-  libsmokeqttest4-3
-  libsmokeqtuitools4-3
-  libsmokeqtwebkit4-3
-  libsmokeqtxml4-3
-  libsmokesolid3
-  libsmokesoprano3
-  libtaskmanager4a
-  libtidy-0.99-0
-  libweather-ion4a
-  libxklavier16
-  libxxf86misc1
-  okteta
-  oxygencursors
-  plasma-dataengines-addons
-  plasma-scriptengine-superkaramba
-  plasma-widget-lancelot
-  plasma-widgets-addons
-  plasma-widgets-workspace
-  polkit-kde-1
-  ruby1.8
-  systemsettings
-  update-notifier-common
-</p></blockquote>
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html">Sitesummary tip: Listing MAC address of all clients</a>
+      </div>
+      <div class="date">
+        14th May 2010
+      </div>
+      <div class="body">
+        <p>In the recent Debian Edu versions, the
+<a href="http://wiki.debian.org/DebianEdu/HowTo/SiteSummary">sitesummary
+system</a> is used to keep track of the machines in the school
+network.  Each machine will automatically report its status to the
+central server after boot and once per night.  The network setup is
+also reported, and using this information it is possible to get the
+MAC address of all network interfaces in the machines.  This is useful
+to update the DHCP configuration.</p>
 
-<p>Running apt-get autoremove made the results using apt-get and
-aptitude a bit more similar, but there are still quite a lott of
-differences.  I have no idea what packages should be installed after
-the upgrade, but hope those that do can have a look.</p>
+<p>To give some idea how to use sitesummary, here is a one-liner to
+ist all MAC addresses of all machines reporting to sitesummary.  Run
+this on the collector host:</p>
+
+<blockquote><pre>
+perl -MSiteSummary -e 'for_all_hosts(sub { print join(" ", get_macaddresses(shift)), "\n"; });'
+</pre></blockquote>
+
+<p>This will list all MAC addresses assosiated with all machine, one
+line per machine and with space between the MAC addresses.</p>
+
+<p>To allow system administrators easier job at adding static DHCP
+addresses for hosts, it would be possible to extend this to fetch
+machine information from sitesummary and update the DHCP and DNS
+tables in LDAP using this information.  Such tool is unfortunately not
+written yet.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary</a>.
         
         
       </div>
@@ -3281,49 +4843,50 @@ the upgrade, but hope those that do can have a look.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html">Why isn't Debian Edu using VLC?</a>
+        <a href="http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html">systemd, an interesting alternative to upstart</a>
       </div>
       <div class="date">
-        27th November 2010
+        13th May 2010
       </div>
       <div class="body">
-        <p>In the latest issue of Linux Journal, the readers choices were
-presented, and the winner among the multimedia player were VLC.
-Personally, I like VLC, and it is my player of choice when I first try
-to play a video file or stream.  Only if VLC fail will I drag out
-gmplayer to see if it can do better.  The reason is mostly the failure
-model and trust.  When VLC fail, it normally pop up a error message
-reporting the problem.  When mplayer fail, it normally segfault or
-just hangs.  The latter failure mode drain my trust in the program.<p>
+        <p>The last few days a new boot system called
+<a href="http://www.freedesktop.org/wiki/Software/systemd">systemd</a>
+has been
+<a href="http://0pointer.de/blog/projects/systemd.html">introduced</a>
 
-<p>But even if VLC is my player of choice, we have choosen to use
-mplayer in <a href="http://www.skolelinux.org/">Debian
-Edu/Skolelinux</a>.  The reason is simple.  We need a good browser
-plugin to play web videos seamlessly, and the VLC browser plugin is
-not very good.  For example, it lack in-line control buttons, so there
-is no way for the user to pause the video.  Also, when I
-<a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">last
-tested the browser plugins</a> available in Debian, the VLC plugin
-failed on several video pages where mplayer based plugins worked.  If
-the browser plugin for VLC was as good as the gecko-mediaplayer
-package (which uses mplayer), we would switch.</P>
+to the free software world.  I have not yet had time to play around
+with it, but it seem to be a very interesting alternative to
+<a href="http://upstart.ubuntu.com/">upstart</a>, and might prove to be
+a good alternative for Debian when we are able to switch to an event
+based boot system.  Tollef is
+<a href="http://bugs.debian.org/580814">in the process</a> of getting
+systemd into Debian, and I look forward to seeing how well it work.  I
+like the fact that systemd handles init.d scripts with dependency
+information natively, allowing them to run in parallel where upstart
+at the moment do not.</p>
 
-<p>While VLC is a good player, its user interface is slightly
-annoying.  The most annoying feature is its inconsistent use of
-keyboard shortcuts.  When the player is in full screen mode, its
-shortcuts are different from when it is playing the video in a window.
-For example, space only work as pause when in full screen mode.  I
-wish it had consisten shortcuts and that space also would work when in
-window mode.  Another nice shortcut in gmplayer is [enter] to restart
-the current video.  It is very nice when playing short videos from the
-web and want to restart it when new people arrive to have a look at
-what is going on.</p>
+<p>Unfortunately do systemd have the same problem as upstart regarding
+platform support.  It only work on recent Linux kernels, and also need
+some new kernel features enabled to function properly.  This means
+kFreeBSD and Hurd ports of Debian will need a port or a different boot
+system.  Not sure how that will be handled if systemd proves to be the
+way forward.</p>
+
+<p>In the mean time, based on the
+<a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
+on debian-devel@</a> regarding parallel booting in Debian, I have
+decided to enable full parallel booting as the default in Debian as
+soon as possible (probably this weekend or early next week), to see if
+there are any remaining serious bugs in the init.d dependencies.  A
+new version of the sysvinit package implementing this change is
+already in experimental.  If all go well, Squeeze will be released
+with parallel booting enabled by default.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
         
         
       </div>
@@ -3332,60 +4895,53 @@ what is going on.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html">Now accepting bitcoins - anonymous and distributed p2p crypto-money</a>
+        <a href="http://people.skolelinux.org/pere/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html">Parallellizing the boot in Debian Squeeze - ready for wider testing</a>
       </div>
       <div class="date">
-        10th December 2010
+         6th May 2010
       </div>
       <div class="body">
-        <p>With this weeks lawless
-<a href="http://www.salon.com/news/opinion/glenn_greenwald/2010/12/06/wikileaks/index.html">governmental
-attacks</a> on Wikileak and
-<a href="http://www.salon.com/technology/dan_gillmor/2010/12/06/war_on_speech">free
-speech</a>, it has become obvious that PayPal, visa and mastercard can
-not be trusted to handle money transactions.
-A blog post from
-<a href="http://webmink.com/2010/12/06/now-accepting-bitcoin/">Simon
-Phipps on bitcoin</a> reminded me about a project that a friend of
-mine mentioned earlier.  I decided to follow Simon's example, and get
-involved with <a href="http://www.bitcoin.org/">BitCoin</a>.  I got
-some help from my friend to get it all running, and he even handed me
-some bitcoins to get started.  I even donated a few bitcoins to Simon
-for helping me remember BitCoin.</p>
+        <p>These days, the init.d script dependencies in Squeeze are quite
+complete, so complete that it is actually possible to run all the
+init.d scripts in parallell based on these dependencies.  If you want
+to test your Squeeze system, make sure
+<a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
+based boot sequencing</a> is enabled, and add this line to
+/etc/default/rcS:</p>
 
-<p>So, what is bitcoins, you probably wonder?  It is a digital
-crypto-currency, decentralised and handled using peer-to-peer
-networks.  It allows anonymous transactions and prohibits central
-control over the transactions, making it impossible for governments
-and companies alike to block donations and other transactions.  The
-source is free software, and while the key dependency wxWidgets 2.9
-for the graphical user interface is missing in Debian, the command
-line client builds just fine.  Hopefully Jonas
-<a href="http://bugs.debian.org/578157">will get the package into
-Debian</a> soon.</p>
+<blockquote><pre>
+CONCURRENCY=makefile
+</pre></blockquote>
 
-<p>Bitcoins can be converted to other currencies, like USD and EUR.
-There are <a href="http://www.bitcoin.org/trade">companies accepting
-bitcoins</a> when selling services and goods, and there are even
-currency "stock" markets where the exchange rate is decided.  There
-are not many users so far, but the concept seems promising.  If you
-want to get started and lack a friend with any bitcoins to spare,
-you can even get
-<a href="https://freebitcoins.appspot.com/">some for free</a> (0.05
-bitcoin at the time of writing).  Use
-<a href="http://www.bitcoinwatch.com/">BitcoinWatch</a> to keep an eye
-on the current exchange rates.</p>
+<p>That is it.  It will cause sysv-rc to use the startpar tool to run
+scripts in parallel using the dependency information stored in
+/etc/init.d/.depend.boot, /etc/init.d/.depend.start and
+/etc/init.d/.depend.stop to order the scripts.  Startpar is configured
+to try to start the kdm and gdm scripts as early as possible, and will
+start the facilities required by kdm or gdm as early as possible to
+make this happen.</p>
 
-<p>As an experiment, I have decided to set up bitcoind on one of my
-machines.  If you want to support my activity, please send Bitcoin
-donations to the address
-<b>15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</b>.  Thank you!</p>
+<p>Give it a try, and see if you like the result.  If some services
+fail to start properly, it is most likely because they have incomplete
+init.d script dependencies in their startup script (or some of their
+dependent scripts have incomplete dependencies).  Report bugs and get
+the package maintainers to fix it. :)</p>
+
+<p>Running scripts in parallel could be the default in Debian when we
+manage to get the init.d script dependencies complete and correct.  I
+expect we will get there in Squeeze+1, if we get manage to test and
+fix the remaining issues.</p>
+
+<p>If you report any problems with dependencies in init.d scripts to
+the BTS, please usertag the report to get it to show up at
+<a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
+list of usertagged bugs related to this</a>.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -3394,94 +4950,29 @@ donations to the address
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html">Some thoughts on BitCoins</a>
+        <a href="http://people.skolelinux.org/pere/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html">Debian has switched to dependency based boot sequencing</a>
       </div>
       <div class="date">
-        11th December 2010
+        27th July 2009
       </div>
       <div class="body">
-        <p>As I continue to explore
-<a href="http://www.bitcoin.org/">BitCoin</a>, I've starting to wonder
-what properties the system have, and how it will be affected by laws
-and regulations here in Norway.  Here are some random notes.</p>
-
-<p>One interesting thing to note is that since the transactions are
-verified using a peer to peer network, all details about a transaction
-is known to everyone.  This means that if a BitCoin address has been
-published like I did with mine in my initial post about BitCoin, it is
-possible for everyone to see how many BitCoins have been transfered to
-that address.  There is even a web service to look at the details for
-all transactions.  There I can see that my address
-<a href="http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a>
-have received 16.06 Bitcoin, the
-<a href="http://blockexplorer.com/address/1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3">1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3</a>
-address of Simon Phipps have received 181.97 BitCoin and the address
-<a href="http://blockexplorer.com/address/1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt">1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt</A>
-of EFF have received 2447.38 BitCoins so far.  Thank you to each and
-every one of you that donated bitcoins to support my activity. The
-fact that anyone can see how much money was transfered to a given
-address make it more obvious why the BitCoin community recommend to
-generate and hand out a new address for each transaction.  I'm told
-there is no way to track which addresses belong to a given person or
-organisation without the person or organisation revealing it
-themselves, as Simon, EFF and I have done.</p>
-
-<p>In Norway, and in most other countries, there are laws and
-regulations limiting how much money one can transfer across the border
-without declaring it.  There are money laundering, tax and accounting
-laws and regulations I would expect to apply to the use of BitCoin.
-If the Skolelinux foundation
-(<a href="http://linuxiskolen.no/slxdebianlabs/donations.html">SLX
-Debian Labs</a>) were to accept donations in BitCoin in addition to
-normal bank transfers like EFF is doing, how should this be accounted?
-Given that it is impossible to know if money can across the border or
-not, should everything or nothing be declared?  What exchange rate
-should be used when calculating taxes?  Would receivers have to pay
-income tax if the foundation were to pay Skolelinux contributors in
-BitCoin?  I have no idea, but it would be interesting to know.</p>
-
-<p>For a currency to be useful and successful, it must be trusted and
-accepted by a lot of users.  It must be possible to get easy access to
-the currency (as a wage or using currency exchanges), and it must be
-easy to spend it.  At the moment BitCoin seem fairly easy to get
-access to, but there are very few places to spend it.  I am not really
-a regular user of any of the vendor types currently accepting BitCoin,
-so I wonder when my kind of shop would start accepting BitCoins.  I
-would like to buy electronics, travels and subway tickets, not herbs
-and books. :) The currency is young, and this will improve over time
-if it become popular, but I suspect regular banks will start to lobby
-to get BitCoin declared illegal if it become popular.  I'm sure they
-will claim it is helping fund terrorism and money laundering (which
-probably would be true, as is any currency in existence), but I
-believe the problems should be solved elsewhere and not by blaming
-currencies.</p>
-
-<p>The process of creating new BitCoins is called mining, and it is
-CPU intensive process that depend on a bit of luck as well (as one is
-competing against all the other miners currently spending CPU cycles
-to see which one get the next lump of cash).  The "winner" get 50
-BitCoin when this happen.  Yesterday I came across the obvious way to
-join forces to increase ones changes of getting at least some coins,
-by coordinating the work on mining BitCoins across several machines
-and people, and sharing the result if one is lucky and get the 50
-BitCoins.  Check out
-<a href="http://www.bluishcoder.co.nz/bitcoin-pool/">BitCoin Pool</a>
-if this sounds interesting.  I have not had time to try to set up a
-machine to participate there yet, but have seen that running on ones
-own for a few days have not yield any BitCoins througth mining
-yet.</p>
+        <p>Since this evening, with the upload of sysvinit version 2.87dsf-2,
+and the upload of insserv version 1.12.0-10 yesterday, Debian unstable
+have been migrated to using dependency based boot sequencing.  This
+conclude work me and others have been doing for the last three days.
+It feels great to see this finally part of the default Debian
+installation.  Now we just need to weed out the last few problems that
+are bound to show up, to get everything ready for Squeeze.</p>
 
-<p>Update 2010-12-15: Found an <a
-href="http://inertia.posterous.com/reply-to-the-underground-economist-why-bitcoi">interesting
-criticism</a> of bitcoin.  Not quite sure how valid it is, but thought
-it was interesting to read.  The arguments presented seem to be
-equally valid for gold, which was used as a currency for many years.</p>
+<p>The next step is migrating /sbin/init from sysvinit to upstart, and
+fixing the more fundamental problem of handing the event based
+non-predictable kernel in the early boot.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
         
         
       </div>
@@ -3490,103 +4981,106 @@ equally valid for gold, which was used as a currency for many years.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/How_to_test_if_a_laptop_is_working_with_Linux.html">How to test if a laptop is working with Linux</a>
+        <a href="http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html">Taking over sysvinit development</a>
       </div>
       <div class="date">
-        22nd December 2010
+        22nd July 2009
       </div>
       <div class="body">
-        <p>The last few days I have spent at work here at the <a
-href="http://www.uio.no/">University of Oslo</a> testing if the new
-batch of computers will work with Linux.  Every year for the last few
-years the university have organised shared bid of a few thousand
-computers, and this year HP won the bid.  Two different desktops and
-five different laptops are on the list this year.  We in the UNIX
-group want to know which one of these computers work well with RHEL
-and Ubuntu, the two Linux distributions we currently handle at the
-university.</p>
-
-<p>My test method is simple, and I share it here to get feedback and
-perhaps inspire others to test hardware as well.  To test, I PXE
-install the OS version of choice, and log in as my normal user and run
-a few applications and plug in selected pieces of hardware.  When
-something fail, I make a note about this in the test matrix and move
-on.  If I have some spare time I try to report the bug to the OS
-vendor, but as I only have the machines for a short time, I rarely
-have the time to do this for all the problems I find.</p>
-
-<p>Anyway, to get to the point of this post.  Here is the simple tests
-I perform on a new model.</p>
-
-<ul>
-
-<li>Is PXE installation working?  I'm testing with RHEL6, Ubuntu Lucid
-and Ubuntu Maverik at the moment.  If I feel like it, I also test with
-RHEL5 and Debian Edu/Squeeze.</li>
-
-<li>Is X.org working?  If the graphical login screen show up after
-installation, X.org is working.</li>
+        <p>After several years of frustration with the lack of activity from
+the existing sysvinit upstream developer, I decided a few weeks ago to
+take over the package and become the new upstream.  The number of
+patches to track for the Debian package was becoming a burden, and the
+lack of synchronization between the distribution made it hard to keep
+the package up to date.</p>
 
-<li>Is hardware accelerated OpenGL working?  Running glxgears (in
-package mesa-utils on Ubuntu) and writing down the frames per second
-reported by the program.</li>
+<p>On the new sysvinit team is the SuSe maintainer Dr. Werner Fink,
+and my Debian co-maintainer Kel Modderman.  About 10 days ago, I made
+a new upstream tarball with version number 2.87dsf (for Debian, SuSe
+and Fedora), based on the patches currently in use in these
+distributions.  We Debian maintainers plan to move to this tarball as
+the new upstream as soon as we find time to do the merge.  Since the
+new tarball was created, we agreed with Werner at SuSe to make a new
+upstream project at <a href="http://savannah.nongnu.org/">Savannah</a>, and continue
+development there.  The project is registered and currently waiting
+for approval by the Savannah administrators, and as soon as it is
+approved, we will import the old versions from svn and continue
+working on the future release.</p>
 
-<li>Is sound working?  With Gnome and KDE, a sound is played when
-logging in, and if I can hear this the test is successful.  If there
-are several audio exits on the machine, I try them all and check if
-the Gnome/KDE audio mixer can control where to send the sound.  I
-normally test this by playing
-<a href="http://www.nuug.no/aktiviteter/20101012-chef/ ">a HTML5
-video</a> in Firefox/Iceweasel.</li>
+<p>It is a bit ironic that this is done now, when some of the involved
+distributions are moving to upstart as a syvinit replacement.</p>
 
-<li>Is the USB subsystem working?  I test this by plugging in a USB
-memory stick and see if Gnome/KDE notices this.</li>
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html">Debian boots quicker and quicker</a>
+      </div>
+      <div class="date">
+        24th June 2009
+      </div>
+      <div class="body">
+        <p>I spent Monday and tuesday this week in London with a lot of the
+people involved in the boot system on Debian and Ubuntu, to see if we
+could find more ways to speed up the boot system.  This was an Ubuntu
+funded
+<a href="https://wiki.ubuntu.com/FoundationsTeam/BootPerformance/DebianUbuntuSprint">developer
+gathering</a>. It was quite productive.  We also discussed the future
+of boot systems, and ways to handle the increasing number of boot
+issues introduced by the Linux kernel becoming more and more
+asynchronous and event base.  The Ubuntu approach using udev and
+upstart might be a good way forward.  Time will show.</p>
 
-<li>Is the CD/DVD player working?  I test this by inserting any CD/DVD
-I have lying around, and see if Gnome/KDE notices this.</li>
+<p>Anyway, there are a few ways at the moment to speed up the boot
+process in Debian.  All of these should be applied to get a quick
+boot:</p>
 
-<li>Is any built in camera working?  Test using cheese, and see if a
-picture from the v4l device show up.</li>
+<ul>
 
-<li>Is bluetooth working?  Use the Gnome/KDE browsing tool to see if
-any bluetooth devices are discovered.  In my office, I normally see a
-few.</li>
+<li>Use dash as /bin/sh.</li>
 
-<li>For laptops, is the SD or Compaq Flash reader working.  I have
-memory modules lying around, and stick them in and see if Gnome/KDE
-notice this.</li>
+<li>Disable the init.d/hwclock*.sh scripts and make sure the hardware
+   clock is in UTC.</li>
 
-<li>For laptops, is suspend/hibernate working?  I'm testing if the
-special button work, and if the laptop continue to work after
-resume.</li>
+<li>Install and activate the insserv package to enable
+   <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
+   based boot sequencing</a>, and enable concurrent booting.</li>
 
-<li>For laptops, is the extra buttons working, like audio level,
-adjusting background light, switching on/off external video output,
-switching on/off wifi, bluetooth, etc?  The set of buttons differ from
-laptop to laptop, so I just write down which are working and which are
-not.</li>
+</ul>
 
-<li>Some laptops have smart card readers, finger print readers,
-acceleration sensors etc.  I rarely test these, as I do not know how
-to quickly test if they are working or not, so I only document their
-existence.</li>
+These points are based on the Google summer of code work done by
+<a href="http://initscripts-ng.alioth.debian.org/soc2006-bootsystem/">Carlos
+Villegas</a>.
 
-</ul>
+<p>Support for makefile-style concurrency during boot was uploaded to
+unstable yesterday.  When we tested it, we were able to cut 6 seconds
+from the boot sequence.  It depend on very correct dependency
+declaration in all init.d scripts, so I expect us to find edge cases
+where the dependences in some scripts are slightly wrong when we start
+using this.</p>
 
-<p>By now I suspect you are really curious what the test results are
-for the HP machines I am testing.  I'm not done yet, so I will report
-the test results later.  For now I can report that HP 8100 Elite work
-fine, and hibernation fail with HP EliteBook 8440p on Ubuntu Lucid,
-and audio fail on RHEL6.  Ubuntu Maverik worked with 8440p.  As you
-can see, I have most machines left to test.  One interesting
-observation is that Ubuntu Lucid has almost twice the frame rate than
-RHEL6 with glxgears.  No idea why.</p>
+<p>On our IRC channel for this effort, #pkg-sysvinit, a new idea was
+introduced by Raphael Geissert today, one that could affect the
+startup speed as well.  Instead of starting some scripts concurrently
+from rcS.d/ and another set of scripts from rc2.d/, it would be
+possible to run a of them in the same process.  A quick way to test
+this would be to enable insserv and run 'mv /etc/rc2.d/S* /etc/rcS.d/;
+insserv'.  Will need to test if that work. :)</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -3595,94 +5089,45 @@ RHEL6 with glxgears.  No idea why.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Which_module_is_loaded_for_a_given_PCI_and_USB_device_.html">Which module is loaded for a given PCI and USB device?</a>
+        <a href="http://people.skolelinux.org/pere/blog/BSAs_p_stander_om_piratkopiering_m_ter_motstand.html">BSAs påstander om piratkopiering møter motstand</a>
       </div>
       <div class="date">
-        23rd January 2011
+        17th May 2009
       </div>
       <div class="body">
-        <p>In the
-<a href="http://packages.qa.debian.org/discover-data">discover-data</a>
-package in Debian, there is a script to report useful information
-about the running hardware for use when people report missing
-information.  One part of this script that I find very useful when
-debugging hardware problems, is the part mapping loaded kernel module
-to the PCI device it claims.  It allow me to quickly see if the kernel
-module I expect is driving the hardware I am struggling with.  To see
-the output, make sure discover-data is installed and run
-<tt>/usr/share/bug/discover-data 3>&1</tt>.  The relevant output on
-one of my machines like this:</p>
-
-<pre>
-loaded modules:
-10de:03eb i2c_nforce2
-10de:03f1 ohci_hcd
-10de:03f2 ehci_hcd
-10de:03f0 snd_hda_intel
-10de:03ec pata_amd
-10de:03f6 sata_nv
-1022:1103 k8temp
-109e:036e bttv
-109e:0878 snd_bt87x
-11ab:4364 sky2
-</pre>
-
-<p>The code in question look like this, slightly modified for
-readability and to drop the output to file descriptor 3:</p>
-
-<pre>
-if [ -d /sys/bus/pci/devices/ ] ; then
-    echo loaded pci modules:
-    (
-        cd /sys/bus/pci/devices/
-        for address in * ; do
-            if [ -d "$address/driver/module" ] ; then
-                module=`cd $address/driver/module ; pwd -P | xargs basename`
-                if grep -q "^$module " /proc/modules ; then
-                    address=$(echo $address |sed s/0000://)
-                    id=`lspci -n -s $address | tail -n 1 | awk '{print $3}'`
-                    echo "$id $module"
-                fi
-            fi
-        done
-    )
-    echo
-fi
-</pre>
-
-<p>Similar code could be used to extract USB device module
-mappings:</p>
+        <p>Hvert år de siste årene har BSA, lobbyfronten til de store
+programvareselskapene som Microsoft og Apple, publisert en rapport der
+de gjetter på hvor mye piratkopiering påfører i tapte inntekter i
+ulike land rundt om i verden.  Resultatene er tendensiøse.  For noen
+dager siden kom
+<a href="http://global.bsa.org/globalpiracy2008/studies/globalpiracy2008.pdf">siste
+rapport</a>, og det er flere kritiske kommentarer publisert de siste
+dagene.  Et spesielt interessant kommentar fra Sverige,
+<a href="http://www.idg.se/2.1085/1.229795/bsa-hoftade-sverigesiffror">BSA
+höftade Sverigesiffror</a>, oppsummeres slik:</p>
 
-<pre>
-if [ -d /sys/bus/usb/devices/ ] ; then
-    echo loaded usb modules:
-    (
-        cd /sys/bus/usb/devices/
-        for address in * ; do
-            if [ -d "$address/driver/module" ] ; then
-                module=`cd $address/driver/module ; pwd -P | xargs basename`
-                if grep -q "^$module " /proc/modules ; then
-                    address=$(echo $address |sed s/0000://)
-                    id=$(lsusb -s $address | tail -n 1 | awk '{print $6}')
-                    if [ "$id" ] ; then
-                        echo "$id $module"
-                    fi
-                fi
-            fi
-        done
-    )
-    echo
-fi
-</pre>
+<blockquote>
+I sin senaste rapport slår BSA fast att 25 procent av all mjukvara i
+Sverige är piratkopierad. Det utan att ha pratat med ett enda svenskt
+företag. "Man bör nog kanske inte se de här siffrorna som helt
+exakta", säger BSAs Sverigechef John Hugosson.
+</blockquote>
 
-<p>This might perhaps be something to include in other tools as
-well.</p>
+<p>Mon tro om de er like metodiske når de gjetter på andelen piratkopiering i Norge?  To andre kommentarer er <a
+href="http://www.vnunet.com/vnunet/comment/2242134/bsa-piracy-figures-shot-reality">BSA
+piracy figures need a shot of reality</a> og <a
+href="http://www.michaelgeist.ca/content/view/3958/125/">Does The WIPO
+Copyright Treaty Work?</a></p>
+
+<p>Fant lenkene via <a
+href="http://tech.slashdot.org/article.pl?sid=09/05/17/1632242">oppslag
+på Slashdot</a>.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
         
         
       </div>
@@ -3691,88 +5136,75 @@ well.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Using_NVD_and_CPE_to_track_CVEs_in_locally_maintained_software.html">Using NVD and CPE to track CVEs in locally maintained software</a>
+        <a href="http://people.skolelinux.org/pere/blog/IDG_mener_linux_i_servermarkedet_vil_vokse_med_21__i_2009.html">IDG mener linux i servermarkedet vil vokse med 21% i 2009</a>
       </div>
       <div class="date">
-        28th January 2011
+         7th May 2009
       </div>
       <div class="body">
-        <p>The last few days I have looked at ways to track open security
-issues here at my work with the University of Oslo.  My idea is that
-it should be possible to use the information about security issues
-available on the Internet, and check our locally
-maintained/distributed software against this information.  It should
-allow us to verify that no known security issues are forgotten.  The
-CVE database listing vulnerabilities seem like a great central point,
-and by using the package lists from Debian mapped to CVEs provided by
-the testing security team, I believed it should be possible to figure
-out which security holes were present in our free software
-collection.</p>
-
-<p>After reading up on the topic, it became obvious that the first
-building block is to be able to name software packages in a unique and
-consistent way across data sources.  I considered several ways to do
-this, for example coming up with my own naming scheme like using URLs
-to project home pages or URLs to the Freshmeat entries, or using some
-existing naming scheme.  And it seem like I am not the first one to
-come across this problem, as MITRE already proposed and implemented a
-solution.  Enter the <a href="http://cpe.mitre.org/index.html">Common
-Platform Enumeration</a> dictionary, a vocabulary for referring to
-software, hardware and other platform components.  The CPE ids are
-mapped to CVEs in the <a href="http://web.nvd.nist.gov/">National
-Vulnerability Database</a>, allowing me to look up know security
-issues for any CPE name.  With this in place, all I need to do is to
-locate the CPE id for the software packages we use at the university.
-This is fairly trivial (I google for 'cve cpe $package' and check the
-NVD entry if a CVE for the package exist).</p>
-
-<p>To give you an example.  The GNU gzip source package have the CPE
-name cpe:/a:gnu:gzip.  If the old version 1.3.3 was the package to
-check out, one could look up
-<a href="http://web.nvd.nist.gov/view/vuln/search?cpe=cpe%3A%2Fa%3Agnu%3Agzip:1.3.3">cpe:/a:gnu:gzip:1.3.3
-in NVD</a> and get a list of 6 security holes with public CVE entries.
-The most recent one is
-<a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0001">CVE-2010-0001</a>,
-and at the bottom of the NVD page for this vulnerability the complete
-list of affected versions is provided.</p>
-
-<p>The NVD database of CVEs is also available as a XML dump, allowing
-for offline processing of issues.  Using this dump, I've written a
-small script taking a list of CPEs as input and list all CVEs
-affecting the packages represented by these CPEs.  One give it CPEs
-with version numbers as specified above and get a list of open
-security issues out.</p>
-
-<p>Of course for this approach to be useful, the quality of the NVD
-information need to be high.  For that to happen, I believe as many as
-possible need to use and contribute to the NVD database.  I notice
-RHEL is providing
-<a href="https://www.redhat.com/security/data/metrics/rhsamapcpe.txt">a
-map from CVE to CPE</a>, indicating that they are using the CPE
-information.  I'm not aware of Debian and Ubuntu doing the same.</p>
+        <p>Kom over
+<a href="http://news.cnet.com/8301-13505_3-10216873-16.html">interessante
+tall</a> fra IDG om utviklingen av linuxservermarkedet.  Fikk meg til
+å tenke på antall tjenermaskiner ved Universitetet i Oslo der jeg
+jobber til daglig.  En rask opptelling forteller meg at vi har 490
+(61%) fysiske unix-tjener (mest linux men også noen solaris) og 196
+(25%) windowstjenere, samt 112 (14%) virtuelle unix-tjenere.  Med den
+bakgrunnskunnskapen kan jeg godt tro at IDG er inne på noe.</p>
 
-<p>To get an idea about the quality for free software, I spent some
-time making it possible to compare the CVE database from Debian with
-the CVE database in NVD.  The result look fairly good, but there are
-some inconsistencies in NVD (same software package having several
-CPEs), and some inaccuracies (NVD not mentioning buggy packages that
-Debian believe are affected by a CVE).  Hope to find time to improve
-the quality of NVD, but that require being able to get in touch with
-someone maintaining it.  So far my three emails with questions and
-corrections have not seen any reply, but I hope contact can be
-established soon.</p>
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Kryptert_harddisk___naturligvis.html">Kryptert harddisk - naturligvis</a>
+      </div>
+      <div class="date">
+         2nd May 2009
+      </div>
+      <div class="body">
+        <p><a href="http://www.dagensit.no/trender/article1658676.ece">Dagens
+IT melder</a> at Intel hevder at det er dyrt å miste en datamaskin,
+når en tar tap av arbeidstid, fortrolige dokumenter,
+personopplysninger og alt annet det innebærer.  Det er ingen tvil om
+at det er en kostbar affære å miste sin datamaskin, og det er årsaken
+til at jeg har kryptert harddisken på både kontormaskinen og min
+bærbare.  Begge inneholder personopplysninger jeg ikke ønsker skal
+komme på avveie, den første informasjon relatert til jobben min ved
+Universitetet i Oslo, og den andre relatert til blant annet
+foreningsarbeide.  Kryptering av diskene gjør at det er lite
+sannsynlig at dophoder som kan finne på å rappe maskinene får noe ut
+av dem.  Maskinene låses automatisk etter noen minutter uten bruk,
+og en reboot vil gjøre at de ber om passord før de vil starte opp.
+Jeg bruker Debian på begge maskinene, og installasjonssystemet der
+gjør det trivielt å sette opp krypterte disker.  Jeg har LVM på toppen
+av krypterte partisjoner, slik at alt av datapartisjoner er kryptert.
+Jeg anbefaler alle å kryptere diskene på sine bærbare.  Kostnaden når
+det er gjort slik jeg gjør det er minimale, og gevinstene er
+betydelige.  En bør dog passe på passordet.  Hvis det går tapt, må
+maskinen reinstalleres og alt er tapt.</p>
 
-<p>An interesting application for CPEs is cross platform package
-mapping.  It would be useful to know which packages in for example
-RHEL, OpenSuSe and Mandriva are missing from Debian and Ubuntu, and
-this would be trivial if all linux distributions provided CPE entries
-for their packages.</p>
+<p>Krypteringen vil ikke stoppe kompetente angripere som f.eks. kjøler
+ned minnebrikkene før maskinen rebootes med programvare for å hente ut
+krypteringsnøklene.  Kostnaden med å forsvare seg mot slike angripere
+er for min del høyere enn gevinsten.  Jeg tror oddsene for at
+f.eks. etteretningsorganisasjoner har glede av å titte på mine
+maskiner er minimale, og ulempene jeg ville oppnå ved å forsøke å
+gjøre det vanskeligere for angripere med kompetanse og ressurser er
+betydelige.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
         
         
       </div>
@@ -3781,48 +5213,54 @@ for their packages.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/A_Norwegian_FixMyStreet_have_kept_me_busy_the_last_few_weeks.html">A Norwegian FixMyStreet have kept me busy the last few weeks</a>
+        <a href="http://people.skolelinux.org/pere/blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html">Two projects that have improved the quality of free software a lot</a>
       </div>
       <div class="date">
-         3rd April 2011
+         2nd May 2009
       </div>
       <div class="body">
-        <p>Here is a small update for my English readers.  Most of my blog
-posts have been in Norwegian the last few weeks, so here is a short
-update in English.</p>
+        <p>There are two software projects that have had huge influence on the
+quality of free software, and I wanted to mention both in case someone
+do not yet know them.</p>
 
-<p>The kids still keep me too busy to get much free software work
-done, but I did manage to organise a project to get a Norwegian port
-of the British service
-<a href="http://www.fixmystreet.com/">FixMyStreet</a> up and running,
-and it has been running for a month now.  The entire project has been
-organised by me and two others.  Around Christmas we gathered sponsors
-to fund the development work.  In January I drafted a contract with
-<a href="http://www.mysociety.org/">mySociety</a> on what to develop,
-and in February the development took place.  Most of it involved
-converting the source to use GPS coordinates instead of British
-easting/northing, and the resulting code should be a lot easier to get
-running in any country by now.  The Norwegian
-<a href="http://www.fiksgatami.no/">FiksGataMi</a> is using
-<a href="http://www.openstreetmap.org/">OpenStreetmap</a> as the map
-source and the source for administrative borders in Norway, and
-support for this had to be added/fixed.</p>
+<p>The first one is <a href="http://valgrind.org/">valgrind</a>, a
+tool to detect and expose errors in the memory handling of programs.
+It is easy to use, all one need to do is to run 'valgrind program',
+and it will report any problems on stdout.  It is even better if the
+program include debug information.  With debug information, it is able
+to report the source file name and line number where the problem
+occurs.  It can report things like 'reading past memory block in file
+X line N, the memory block was allocated in file Y, line M', and
+'using uninitialised value in control logic'.  This tool has made it
+trivial to investigate reproducible crash bugs in programs, and have
+reduced the number of this kind of bugs in free software a lot.
 
-<p>The Norwegian version went live March 3th, and we spent the weekend
-polishing the system before we announced it March 7th.  The system is
-running on a KVM instance of Debian/Squeeze, and has seen almost 3000
-problem reports in a few weeks.  Soon we hope to announce the Android
-and iPhone versions making it even easier to report problems with the
-public infrastructure.</p>
+<p>The second one is
+<a href="http://en.wikipedia.org/wiki/Coverity">Coverity</a> which is
+a source code checker.  It is able to process the source of a program
+and find problems in the logic without running the program.  It
+started out as the Stanford Checker and became well known when it was
+used to find bugs in the Linux kernel.  It is now a commercial tool
+and the company behind it is running
+<a href="http://www.scan.coverity.com/">a community service</a> for the
+free software community, where a lot of free software projects get
+their source checked for free.  Several thousand defects have been
+found and fixed so far.  It can find errors like 'lock L taken in file
+X line N is never released if exiting in line M', or 'the code in file
+Y lines O to P can never be executed'.  The projects included in the
+community service project have managed to get rid of a lot of
+reliability problems thanks to Coverity.</p>
 
-<p>Perhaps something to consider for those of you in countries without
-such service?</p>
+<p>I believe tools like this, that are able to automatically find
+errors in the source, are vital to improve the quality of software and
+make sure we can get rid of the crashing and failing software we are
+surrounded by today.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
         
         
       </div>
@@ -3831,42 +5269,70 @@ such service?</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Perl_modules_used_by_FixMyStreet_which_are_missing_in_Debian_Squeeze.html">Perl modules used by FixMyStreet which are missing in Debian/Squeeze</a>
+        <a href="http://people.skolelinux.org/pere/blog/No_patch_is_not_better_than_a_useless_patch.html">No patch is not better than a useless patch</a>
       </div>
       <div class="date">
-        26th July 2011
+        28th April 2009
       </div>
       <div class="body">
-        <p>The Norwegian <a href="http://www.fiksgatami.no/">FiksGataMi</A>
-site is build on Debian/Squeeze, and this platform was chosen because
-I am most familiar with Debian (being a Debian Developer for around 10
-years) because it is the latest stable Debian release which should get
-security support for a few years.</p>
+        <p>Julien Blache
+<a href="http://blog.technologeek.org/2009/04/12/214">claim that no
+patch is better than a useless patch</a>.  I completely disagree, as a
+patch allow one to discuss a concrete and proposed solution, and also
+prove that the issue at hand is important enough for someone to spent
+time on fixing it.  No patch do not provide any of these positive
+properties.</p>
 
-<p>The web service is written in Perl, and depend on some perl modules
-that are missing in Debian at the moment.  It would be great if these
-modules were added to the Debian archive, allowing anyone to set up
-their own <a href="http://www.fixmystreet.com">FixMyStreet</a> clone
-in their own country using only Debian packages.  The list of modules
-missing in Debian/Squeeze isn't very long, and I hope the perl group
-will find time to package the 12 modules Catalyst::Plugin::SmartURI,
-Catalyst::Plugin::Unicode::Encoding, Catalyst::View::TT, Devel::Hide,
-Sort::Key, Statistics::Distributions, Template::Plugin::Comma,
-Template::Plugin::DateTime::Format, Term::Size::Any, Term::Size::Perl,
-URI::SmartURI and Web::Scraper to make the maintenance of FixMyStreet
-easier in the future.</p>
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Standardize_on_protocols_and_formats__not_vendors_and_applications.html">Standardize on protocols and formats, not vendors and applications</a>
+      </div>
+      <div class="date">
+        30th March 2009
+      </div>
+      <div class="body">
+        <p>Where I work at the University of Oslo, one decision stand out as a
+very good one to form a long lived computer infrastructure.  It is the
+simple one, lost by many in todays computer industry: Standardize on
+open network protocols and open exchange/storage formats, not applications.
+Applications come and go, while protocols and files tend to stay, and
+thus one want to make it easy to change application and vendor, while
+avoiding conversion costs and locking users to a specific platform or
+application.</p>
 
-<p>Thanks to the great tools in Debian, getting the missing modules
-installed on my server was a simple call to 'cpan2deb Module::Name'
-and 'dpkg -i' to install the resulting package.  But this leave me
-with the responsibility of tracking security problems, which I really
-do not have time for.</p>
+<p>This approach make it possible to replace the client applications
+independently of the server applications.  One can even allow users to
+use several different applications as long as they handle the selected
+protocol and format.  In the normal case, only one client application
+is recommended and users only get help if they choose to use this
+application, but those that want to deviate from the easy path are not
+blocked from doing so.</p>
+
+<p>It also allow us to replace the server side without forcing the
+users to replace their applications, and thus allow us to select the
+best server implementation at any moment, when scale and resouce
+requirements change.</p>
+
+<p>I strongly recommend standardizing - on open network protocols and
+open formats, but I would never recommend standardizing on a single
+application that do not use open network protocol or open formats.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
         
         
       </div>
@@ -3875,80 +5341,33 @@ do not have time for.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">What is missing in the Debian desktop, or why my parents use Kubuntu</a>
+        <a href="http://people.skolelinux.org/pere/blog/Returning_from_Skolelinux_developer_gathering.html">Returning from Skolelinux developer gathering</a>
       </div>
       <div class="date">
-        29th July 2011
+        29th March 2009
       </div>
       <div class="body">
-        <p>While at Debconf11, I have several times during discussions
-mentioned the issues I believe should be improved in Debian for its
-desktop to be useful for more people.  The use case for this is my
-parents, which are currently running Kubuntu which solve the
-issues.</p>
-
-<p>I suspect these four missing features are not very hard to
-implement.  After all, they are present in Ubuntu, so if we wanted to
-do this in Debian we would have a source.</p>
-
-<ol>
-
-<li><strong>Simple GUI based upgrade of packages.</strong> When there
-are new packages available for upgrades, a icon in the KDE status bar
-indicate this, and clicking on it will activate the simple upgrade
-tool to handle it.  I have no problem guiding both of my parents
-through the process over the phone.  If a kernel reboot is required,
-this too is indicated by the status bars and the upgrade tool.  Last
-time I checked, nothing with the same features was working in KDE in
-Debian.</li>
-
-<li><strong>Simple handling of missing Firefox browser
-plugins.</strong> When the browser encounter a MIME type it do not
-currently have a handler for, it will ask the user if the system
-should search for a package that would add support for this MIME type,
-and if the user say yes, the APT sources will be searched for packages
-advertising the MIME type in their control file (visible in the
-Packages file in the APT archive).  If one or more packages are found,
-it is a simple click of the mouse to add support for the missing mime
-type.  If the package require the user to accept some non-free
-license, this is explained to the user.  The entire process make it
-more clear to the user why something do not work in the browser, and
-make the chances higher for the user to blame the web page authors and
-not the browser for any missing features.</li>
-
-<li><strong>Simple handling of missing multimedia codec/format
-handlers.</strong> When the media players encounter a format or codec
-it is not supporting, a dialog pop up asking the user if the system
-should search for a package that would add support for it.  This
-happen with things like MP3, Windows Media or H.264.  The selection
-and installation procedure is very similar to the Firefox browser
-plugin handling.  This is as far as I know implemented using a
-gstreamer hook.  The end result is that the user easily get access to
-the codecs that are present from the APT archives available, while
-explaining more on why a given format is unsupported by Ubuntu.</li>
-
-<li><strong>Better browser handling of some MIME types.</strong> When
-displaying a text/plain file in my Debian browser, it will propose to
-start emacs to show it.  If I remember correctly, when doing the same
-in Kunbutu it show the file as a text file in the browser.  At least I
-know Opera will show text files within the browser.  I much prefer the
-latter behaviour.</li>
-
-</ol> 
-
-<p>There are other nice features as well, like the simplified suite
-upgrader, but given that I am the one mostly doing the dist-upgrade,
-it do not matter much.</p>
-
-<p>I really hope we could get these features in place for the next
-Debian release.  It would require the coordinated effort of several
-maintainers, but would make the end user experience a lot better.</p>
+        <p>I'm sitting on the train going home from this weekends Debian
+Edu/Skolelinux development gathering.  I got a bit done tuning the
+desktop, and looked into the dynamic service location protocol
+implementation avahi.  It look like it could be useful for us.  Almost
+30 people participated, and I believe it was a great environment to
+get to know the Skolelinux system.  Walter Bender, involved in the
+development of the Sugar educational platform, presented his stuff and
+also helped me improve my OLPC installation.  He also showed me that
+his Turtle Art application can be used in standalone mode, and we
+agreed that I would help getting it packaged for Debian.  As a
+standalone application it would be great for Debian Edu.  We also
+tried to get the video conferencing working with two OLPCs, but that
+proved to be too hard for us.  The application seem to need more work
+before it is ready for me.  I look forward to getting home and relax
+now. :)</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
         
         
       </div>
@@ -3957,61 +5376,50 @@ maintainers, but would make the end user experience a lot better.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">What should start from /etc/rcS.d/ in Debian? - almost nothing</a>
+        <a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">Time for new  LDAP schemas replacing RFC 2307?</a>
       </div>
       <div class="date">
-        30th July 2011
+        29th March 2009
       </div>
       <div class="body">
-        <p>In the Debian boot system, several packages include scripts that
-are started from /etc/rcS.d/.  In fact, there is a bite more of them
-than make sense, and this causes a few problems.  What kind of
-problems, you might ask.  There are at least two problems.  The first
-is that it is not possible to recover a machine after switching to
-runlevel 1.  One need to actually reboot to get the machine back to
-the expected state.  The other is that single user boot will sometimes
-run into problems because some of the subsystems are activated before
-the root login is presented, causing problems when trying to recover a
-machine from a problem in that subsystem.  A minor additional point is
-that moving more scripts out of rcS.d/ and into the other rc#.d/
-directories will increase the amount of scripts that can run in
-parallel during boot, and thus decrease the boot time.</p>
+        <p>The state of standardized LDAP schemas on Linux is far from
+optimal.  There is RFC 2307 documenting one way to store NIS maps in
+LDAP, and a modified version of this normally called RFC 2307bis, with
+some modifications to be compatible with Active Directory.  The RFC
+specification handle the content of a lot of system databases, but do
+not handle DNS zones and DHCP configuration.</p>
 
-<p>So, which scripts should start from rcS.d/.  In short, only the
-scripts that _have_ to execute before the root login prompt is
-presented during a single user boot should go there.  Everything else
-should go into the numeric runlevels.  This means things like
-lm-sensors, fuse and x11-common should not run from rcS.d, but from
-the numeric runlevels.  Today in Debian, there are around 115 init.d
-scripts that are started from rcS.d/, and most of them should be moved
-out.  Do your package have one of them?  Please help us make single
-user and runlevel 1 better by moving it.</p>
+<p>In <a href="http://www.skolelinux.org/">Debian Edu/Skolelinux</a>,
+we would like to store information about users, SMB clients/hosts,
+filegroups, netgroups (users and hosts), DHCP and DNS configuration,
+and LTSP configuration in LDAP.  These objects have a lot in common,
+but with the current LDAP schemas it is not possible to have one
+object per entity.  For example, one need to have at least three LDAP
+objects for a given computer, one with the SMB related stuff, one with
+DNS information and another with DHCP information.  The schemas
+provided for DNS and DHCP are impossible to combine into one LDAP
+object.  In addition, it is impossible to implement quick queries for
+netgroup membership, because of the way NIS triples are implemented.
+It just do not scale.  I believe it is time for a few RFC
+specifications to cleam up this mess.</p>
 
-<p>Scripts setting up the screen, keyboard, system partitions
-etc. should still be started from rcS.d/, but there is for example no
-need to have the network enabled before the single user login prompt
-is presented.</p>
+<p>I would like to have one LDAP object representing each computer in
+the network, and this object can then keep the SMB (ie host key), DHCP
+(mac address/name) and DNS (name/IP address) settings in one place.
+It need to be efficently stored to make sure it scale well.</p>
 
-<p>As always, things are not so easy to fix as they sound.  To keep
-Debian systems working while scripts migrate and during upgrades, the
-scripts need to be moved from rcS.d/ to rc2.d/ in reverse dependency
-order, ie the scripts that nothing in rcS.d/ depend on can be moved,
-and the next ones can only be moved when their dependencies have been
-moved first.  This migration must be done sequentially while we ensure
-that the package system upgrade packages in the right order to keep
-the system state correct.  This will require some coordination when it
-comes to network related packages, but most of the packages with
-scripts that should migrate do not have anything in rcS.d/ depending
-on them.  Some packages have already been updated, like the sudo
-package, while others are still left to do.  I wish I had time to work
-on this myself, but real live constrains make it unlikely that I will
-find time to push this forward.</p>
+<p>I would also like to have a quick way to map from a user or
+computer and to the net group this user or computer is a member.</p>
+
+<p>Active Directory have done a better job than unix heads like myself
+in this regard, and the unix side need to catch up.  Time to start a
+new IETF work group?</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
         
         
       </div>
@@ -4020,77 +5428,30 @@ find time to push this forward.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html">How is booting into runlevel 1 different from single user boots?</a>
+        <a href="http://people.skolelinux.org/pere/blog/Endelig_er_Debian_Lenny_gitt_ut.html">Endelig er Debian Lenny gitt ut</a>
       </div>
       <div class="date">
-         4th August 2011
+        15th February 2009
       </div>
       <div class="body">
-        <p>Wouter Verhelst have some
-<a href="http://grep.be/blog/en/retorts/pere_kubuntu_boot">interesting
-comments and opinions</a> on my blog post on
-<a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">the
-need to clean up /etc/rcS.d/ in Debian</a> and my blog post about
-<a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">the
-default KDE desktop in Debian</a>.  I only have time to address one
-small piece of his comment now, and though it best to address the
-misunderstanding he bring forward:</p>
-
-<p><blockquote>
-Currently, a system admin has four options: [...] boot to a
-single-user system (by adding 'single' to the kernel command line;
-this runs rcS and rc1 scripts)
-</blockquote></p>
-
-<p>This make me believe Wouter believe booting into single user mode
-and booting into runlevel 1 is the same.  I am not surprised he
-believe this, because it would make sense and is a quite sensible
-thing to believe.  But because the boot in Debian is slightly broken,
-runlevel 1 do not work properly and it isn't the same as single user
-mode.  I'll try to explain what is actually happing, but it is a bit
-hard to explain.</p>
-
-<p>Single user mode is defined like this in /etc/inittab:
-"<tt>~~:S:wait:/sbin/sulogin</tt>".  This means the only thing that is
-executed in single user mode is sulogin.  Single user mode is a boot
-state "between" the runlevels, and when booting into single user mode,
-only the scripts in /etc/rcS.d/ are executed before the init process
-enters the single user state.  When switching to runlevel 1, the state
-is in fact not ending in runlevel 1, but it passes through runlevel 1
-and end up in the single user mode (see /etc/rc1.d/S03single, which
-runs "init -t1 S" to switch to single user mode at the end of runlevel
-1.  It is confusing that the 'S' (single user) init mode is not the
-mode enabled by /etc/rcS.d/ (which is more like the initial boot
-mode).</p>
-
-<p>This summary might make it clearer.  When booting for the first
-time into single user mode, the following commands are executed:
-"<tt>/etc/init.d/rc S; /sbin/sulogin</tt>".  When booting into
-runlevel 1, the following commands are executed: "<tt>/etc/init.d/rc
-S; /etc/init.d/rc 1; /sbin/sulogin</tt>".  A problem show up when
-trying to continue after visiting single user mode.  Not all services
-are started again as they should, causing the machine to end up in an
-unpredicatble state.  This is why Debian admins recommend rebooting
-after visiting single user mode.</p>
-
-<p>A similar problem with runlevel 1 is caused by the amount of
-scripts executed from /etc/rcS.d/.  When switching from say runlevel 2
-to runlevel 1, the services started from /etc/rcS.d/ are not properly
-stopped when passing through the scripts in /etc/rc1.d/, and not
-started again when switching away from runlevel 1 to the runlevels
-2-5.  I believe the problem is best fixed by moving all the scripts
-out of /etc/rcS.d/ that are not <strong>required</strong> to get a
-functioning single user mode during boot.</p>
-
-<p>I have spent several years investigating the Debian boot system,
-and discovered this problem a few years ago.  I suspect it originates
-from when sysvinit was introduced into Debian, a long time ago.</p>
+        <p>Endelig er <a href="http://www.debian.org/">Debian</a>
+<a href="http://www.debian.org/News/2009/20090214">Lenny</a> gitt ut.
+Et langt steg videre for Debian-prosjektet, og en rekke nye
+programpakker blir nå tilgjengelig for de av oss som bruker den
+stabile utgaven av Debian.  Neste steg er nå å få
+<a href="http://www.skolelinux.org/">Skolelinux</a> /
+<a href="http://wiki.debian.org/DebianEdu/">Debian Edu</a> ferdig
+oppdatert for den nye utgaven, slik at en oppdatert versjon kan
+slippes løs på skolene.  Takk til alle debian-utviklerne som har
+gjort dette mulig.  Endelig er f.eks. fungerende avhengighetsstyrt
+bootsekvens tilgjengelig i stabil utgave, vha pakken
+<tt>insserv</tt>.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>.
         
         
       </div>
@@ -4099,198 +5460,32 @@ from when sysvinit was introduced into Debian, a long time ago.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html">Automatically upgrading server firmware on Dell PowerEdge</a>
+        <a href="http://people.skolelinux.org/pere/blog/Devcamp_brought_us_closer_to_the_Lenny_based_Debian_Edu_release.html">Devcamp brought us closer to the Lenny based Debian Edu release</a>
       </div>
       <div class="date">
-        21st November 2011
+         7th December 2008
       </div>
       <div class="body">
-        <p>At work we have heaps of servers.  I believe the total count is
-around 1000 at the moment.  To be able to get help from the vendors
-when something go wrong, we want to keep the firmware on the servers
-up to date.  If the firmware isn't the latest and greatest, the
-vendors typically refuse to start debugging any problems until the
-firmware is upgraded.  So before every reboot, we want to upgrade the
-firmware, and we would really like everyone handling servers at the
-university to do this themselves when they plan to reboot a machine.
-For that to happen we at the unix server admin group need to provide
-the tools to do so.</p>
-
-<p>To make firmware upgrading easier, I am working on a script to
-fetch and install the latest firmware for the servers we got.  Most of
-our hardware are from Dell and HP, so I have focused on these servers
-so far.  This blog post is about the Dell part.</P>
-
-<p>On the Dell FTP site I was lucky enough to find
-<a href="ftp://ftp.us.dell.com/catalog/Catalog.xml.gz">an XML file</a>
-with firmware information for all 11th generation servers, listing
-which firmware should be used on a given model and where on the FTP
-site I can find it.  Using a simple perl XML parser I can then
-download the shell scripts Dell provides to do firmware upgrades from
-within Linux and reboot when all the firmware is primed and ready to
-be activated on the first reboot.</p>
-
-<p>This is the Dell related fragment of the perl code I am working on.
-Are there anyone working on similar tools for firmware upgrading all
-servers at a site?  Please get in touch and lets share resources.</p>
-
-<p><pre>
-#!/usr/bin/perl
-use strict;
-use warnings;
-use File::Temp qw(tempdir);
-BEGIN {
-    # Install needed RHEL packages if missing
-    my %rhelmodules = (
-        'XML::Simple' => 'perl-XML-Simple',
-        );
-    for my $module (keys %rhelmodules) {
-        eval "use $module;";
-        if ($@) {
-            my $pkg = $rhelmodules{$module};
-            system("yum install -y $pkg");
-            eval "use $module;";
-        }
-    }
-}
-my $errorsto = 'pere@hungry.com';
-
-upgrade_dell();
-
-exit 0;
-
-sub run_firmware_script {
-    my ($opts, $script) = @_;
-    unless ($script) {
-        print STDERR "fail: missing script name\n";
-        exit 1
-    }
-    print STDERR "Running $script\n\n";
-
-    if (0 == system("sh $script $opts")) { # FIXME correct exit code handling
-        print STDERR "success: firmware script ran succcessfully\n";
-    } else {
-        print STDERR "fail: firmware script returned error\n";
-    }
-}
-
-sub run_firmware_scripts {
-    my ($opts, @dirs) = @_;
-    # Run firmware packages
-    for my $dir (@dirs) {
-        print STDERR "info: Running scripts in $dir\n";
-        opendir(my $dh, $dir) or die "Unable to open directory $dir: $!";
-        while (my $s = readdir $dh) {
-            next if $s =~ m/^\.\.?/;
-            run_firmware_script($opts, "$dir/$s");
-        }
-        closedir $dh;
-    }
-}
-
-sub download {
-    my $url = shift;
-    print STDERR "info: Downloading $url\n";
-    system("wget --quiet \"$url\"");
-}
-
-sub upgrade_dell {
-    my @dirs;
-    my $product = `dmidecode -s system-product-name`;
-    chomp $product;
-
-    if ($product =~ m/PowerEdge/) {
-
-        # on RHEL, these pacakges are needed by the firwmare upgrade scripts
-        system('yum install -y compat-libstdc++-33.i686 libstdc++.i686 libxml2.i686 procmail');
-
-        my $tmpdir = tempdir(
-            CLEANUP => 1
-            );
-        chdir($tmpdir);
-        fetch_dell_fw('catalog/Catalog.xml.gz');
-        system('gunzip Catalog.xml.gz');
-        my @paths = fetch_dell_fw_list('Catalog.xml');
-        # -q is quiet, disabling interactivity and reducing console output
-        my $fwopts = "-q";
-        if (@paths) {
-            for my $url (@paths) {
-                fetch_dell_fw($url);
-            }
-            run_firmware_scripts($fwopts, $tmpdir);
-        } else {
-            print STDERR "error: Unsupported Dell model '$product'.\n";
-            print STDERR "error: Please report to $errorsto.\n";
-        }
-        chdir('/');
-    } else {
-        print STDERR "error: Unsupported Dell model '$product'.\n";
-        print STDERR "error: Please report to $errorsto.\n";
-    }
-}
-
-sub fetch_dell_fw {
-    my $path = shift;
-    my $url = "ftp://ftp.us.dell.com/$path";
-    download($url);
-}
-
-# Using ftp://ftp.us.dell.com/catalog/Catalog.xml.gz, figure out which
-# firmware packages to download from Dell.  Only work for Linux
-# machines and 11th generation Dell servers.
-sub fetch_dell_fw_list {
-    my $filename = shift;
-
-    my $product = `dmidecode -s system-product-name`;
-    chomp $product;
-    my ($mybrand, $mymodel) = split(/\s+/, $product);
-
-    print STDERR "Finding firmware bundles for $mybrand $mymodel\n";
-
-    my $xml = XMLin($filename);
-    my @paths;
-    for my $bundle (@{$xml->{SoftwareBundle}}) {
-        my $brand = $bundle->{TargetSystems}->{Brand}->{Display}->{content};
-        my $model = $bundle->{TargetSystems}->{Brand}->{Model}->{Display}->{content};
-        my $oscode;
-        if ("ARRAY" eq ref $bundle->{TargetOSes}->{OperatingSystem}) {
-            $oscode = $bundle->{TargetOSes}->{OperatingSystem}[0]->{osCode};
-        } else {
-            $oscode = $bundle->{TargetOSes}->{OperatingSystem}->{osCode};
-        }
-        if ($mybrand eq $brand && $mymodel eq $model && "LIN" eq $oscode)
-        {
-            @paths = map { $_->{path} } @{$bundle->{Contents}->{Package}};
-        }
-    }
-    for my $component (@{$xml->{SoftwareComponent}}) {
-        my $componenttype = $component->{ComponentType}->{value};
-
-        # Drop application packages, only firmware and BIOS
-        next if 'APAC' eq $componenttype;
-
-        my $cpath = $component->{path};
-        for my $path (@paths) {
-            if ($cpath =~ m%/$path$%) {
-                push(@paths, $cpath);
-            }
-        }
-    }
-    return @paths;
-}
-</pre>
+        <p>This weekend we had a small developer gathering for Debian Edu in
+Oslo.  Most of Saturday was used for the general assemly for the
+member organization, but the rest of the weekend I used to tune the
+LTSP installation.  LTSP now work out of the box on the 10-network.
+Acer Aspire One proved to be a very nice thin client, with both
+screen, mouse and keybard in a small box.  Was working on getting the
+diskless workstation setup configured out of the box, but did not
+finish it before the weekend was up.</p>
 
-<p>The code is only tested on RedHat Enterprise Linux, but I suspect
-it could work on other platforms with some tweaking.  Anyone know a
-index like Catalog.xml is available from HP for HP servers?  At the
-moment I maintain a similar list manually and it is quickly getting
-outdated.</p>
+<p>Did not find time to look at the 4 VGA cards in one box we got from
+the Brazilian group, so that will have to wait for the next
+development gathering.  Would love to have the Debian Edu installer
+automatically detect and configure a multiseat setup when it find one
+of these cards.</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp</a>.
         
         
       </div>
@@ -4299,37 +5494,36 @@ outdated.</p>
     
     <div class="entry">
       <div class="title">
-        <a href="http://people.skolelinux.org/pere/blog/Song_book_for_Computer_Scientists.html">Song book for Computer Scientists</a>
+        <a href="http://people.skolelinux.org/pere/blog/The_sorry_state_of_multimedia_browser_plugins_in_Debian.html">The sorry state of multimedia browser plugins in Debian</a>
       </div>
       <div class="date">
-        24th June 2012
+        25th November 2008
       </div>
       <div class="body">
-        <p>Many years ago, while studying Computer Science at the
-<a href="http://www.uit.no/">University of Tromsø</a>, I started
-collecting computer related songs for use at parties.  The original
-version was written in LaTeX, but a few years ago I got help from
-Håkon W. Lie, one of the inventors of W3C CSS, to convert it to HTML
-while keeping the ability to create a nice book in PDF format.  I have
-not had time to maintain the book for a while now, and guess I should
-put it up on some public version control repository where others can
-help me extend and update the book.  If anyone is volunteering to help
-me with this, send me an email.  Also let me know if there are songs
-missing in my book.</p>
+        <p>Recently I have spent some time evaluating the multimedia browser
+plugins available in Debian Lenny, to see which one we should use by
+default in Debian Edu.  We need an embedded video playing plugin with
+control buttons to pause or stop the video, and capable of streaming
+all the multimedia content available on the web.  The test results and
+notes are available on
+<a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">the
+Debian wiki</a>.  I was surprised how few of the plugins are able to
+fill this need.  My personal video player favorite, VLC, has a really
+bad plugin which fail on a lot of the test pages.  A lot of the MIME
+types I would expect to work with any free software player (like
+video/ogg), just do not work.  And simple formats like the
+audio/x-mplegurl format (m3u playlists), just isn't supported by the
+totem and vlc plugins.  I hope the situation will improve soon.  No
+wonder sites use the proprietary Adobe flash to play video.</p>
 
-<p>I have not mentioned the book on my blog so far, and it occured to
-me today that I really should let all my readers share the joys of
-singing out load about programming, computers and computer networks.
-Especially now that <a href="http://debconf12.debconf.org/">Debconf
-12</a> is about to start (and I am not going).  Want to sing?  Check
-out <a href="http://www.hungry.com/~pere/cs-songbook/">Petter's
-Computer Science Songbook</a>.
+<p>For Lenny, we seem to end up with the mplayer plugin.  It seem to
+be the only one fitting our needs. :/</p>
 
       </div>
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>.
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
         
         
       </div>
@@ -4344,6 +5538,13 @@ Computer Science Songbook</a>.
 <h2>Archive</h2>
 <ul>
 
+<li>2013
+<ul>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
+
+</ul></li>
+
 <li>2012
 <ul>
 
@@ -4359,7 +5560,17 @@ Computer Science Songbook</a>.
 
 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
 
-<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (3)</a></li>
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
 
 </ul></li>
 
@@ -4472,51 +5683,59 @@ Computer Science Songbook</a>.
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (2)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
+
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (5)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (12)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (55)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (69)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (106)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (118)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (9)</a></li>
 
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (7)</a></li>
+
  <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (137)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (175)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (16)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (5)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (10)</a></li>
+
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (9)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (29)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (32)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (16)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (5)</a></li>
+
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (17)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (4)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (6)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (21)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (183)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (219)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (134)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (148)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (3)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (6)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (30)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (41)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (48)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (61)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
 
@@ -4524,7 +5743,7 @@ Computer Science Songbook</a>.
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (4)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (6)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
 
@@ -4532,27 +5751,29 @@ Computer Science Songbook</a>.
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (23)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (28)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (1)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
+
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (39)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (34)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (1)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (5)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (4)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (12)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (10)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (6)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (7)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (30)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (35)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (1)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (24)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (26)</a></li>
 
 </ul>