<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>
<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>
<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>
<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>
<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>
<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>
<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
+<URL: <a href="https://wiki.archlinux.org/index.php/Modalias">https://wiki.archlinux.org/index.php/Modalias</a> >,
+<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> >,
+<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> > and
+<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> >.
+
+<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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 < /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 <<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 <<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>
<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>
<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>
<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>
<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>
<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>
<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 <hostname>"
+ 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 <directory> <binary></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>
<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">
<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>
<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>
<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 <directory> <binary></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>
<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>
<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">
<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 <hostname>"
- 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 < /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 <<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 <<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>