X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/c5c4e027ca1d6b2419928ea4f4d3313789f07f41..0eae61fd9783f8eadf6d9848106c6d24fb9ff838:/blog/index.rss diff --git a/blog/index.rss b/blog/index.rss index e18a2660f6..889423978a 100644 --- a/blog/index.rss +++ b/blog/index.rss @@ -6,6 +6,134 @@ http://people.skolelinux.org/pere/blog/ + + Automatic upgrade testing from Lenny to Squeeze + http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html + http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html + Fri, 11 Jun 2010 22:50:00 +0200 + +<p>The last few days I have done some upgrade testing in Debian, to +see if the upgrade from Lenny to Squeeze will go smoothly. A few bugs +have been discovered and reported in the process +(<a href="http://bugs.debian.org/585410">#585410</a> in nagios3-cgi, +<a href="http://bugs.debian.org/584879">#584879</a> already fixed in +enscript and <a href="http://bugs.debian.org/584861">#584861</a> in +kdebase-workspace-data), and to get a more regular testing going on, I +am working on a script to automate the test.</p> + +<p>The idea is to create a Lenny chroot and use tasksel to install a +Gnome or KDE desktop installation inside the chroot before upgrading +it. To ensure no services are started in the chroot, a policy-rc.d +script is inserted. To make sure tasksel believe it is to install a +desktop on a laptop, the tasksel tests are replaced in the chroot +(only acceptable because this is a throw-away chroot).</p> + +<p>A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade +currently always fail because udev refuses to upgrade with the kernel +in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade +is created. The bug report +<a href="http://bugs.debian.org/566000">#566000</a> make me suspect +this problem do not trigger in a chroot, but I touch the file anyway +to make sure the upgrade go well. Testing on virtual and real +hardware have failed me because of udev so far, and creating this file +do the trick in such settings anyway. This is a +<a href="http://www.linuxquestions.org/questions/debian-26/failed-dist-upgrade-due-to-udev-config_sysfs_deprecated-nonsense-804130/">known +issue</a> and the current udev behaviour is intended by the udev +maintainer because he lack the resources to rewrite udev to keep +working with old kernels or something like that. I really wish the +udev upstream would keep udev backwards compatible, to avoid such +upgrade problem, but given that they fail to do so, I guess +documenting the way out of this mess is the best option we got for +Debian Squeeze.</p> + +<p>Anyway, back to the task at hand, testing upgrades. This test +script, which I call <tt>upgrade-test</tt> for now, is doing the +trick:</p> + +<blockquote><pre> +#!/bin/sh +set -ex + +if [ "$1" ] ; then + desktop=$1 +else + desktop=gnome +fi + +from=lenny +to=squeeze + +exec &lt; /dev/null +unset LANG +mirror=http://ftp.skolelinux.org/debian +tmpdir=chroot-$from-upgrade-$to-$desktop +fuser -mv . +debootstrap $from $tmpdir $mirror +chroot $tmpdir aptitude update +cat > $tmpdir/usr/sbin/policy-rc.d &lt;&lt;EOF +#!/bin/sh +exit 101 +EOF +chmod a+rx $tmpdir/usr/sbin/policy-rc.d +exit_cleanup() { + umount $tmpdir/proc +} +mount -t proc proc $tmpdir/proc +# Make sure proc is unmounted also on failure +trap exit_cleanup EXIT INT + +chroot $tmpdir aptitude -y install debconf-utils + +# Make sure tasksel autoselection trigger. It need the test scripts +# to return the correct answers. +echo tasksel tasksel/desktop multiselect $desktop | \ + chroot $tmpdir debconf-set-selections + +# Include the desktop and laptop task +for test in desktop laptop ; do + echo > $tmpdir/usr/lib/tasksel/tests/$test &lt;&lt;EOF +#!/bin/sh +exit 2 +EOF + chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test +done + +DEBIAN_FRONTEND=noninteractive +DEBIAN_PRIORITY=critical +export DEBIAN_FRONTEND DEBIAN_PRIORITY +chroot $tmpdir tasksel --new-install + +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>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>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> + + + Skolelinux er laget for sentraldrifting, naturligvis http://people.skolelinux.org/pere/blog/Skolelinux_er_laget_for_sentraldrifting__naturligvis.html @@ -407,65 +535,5 @@ ser jeg mye korrespondanse mellom påtrykk og magnetstripe.</p> - - Pieces of the roaming laptop puzzle in Debian - http://people.skolelinux.org/pere/blog/Pieces_of_the_roaming_laptop_puzzle_in_Debian.html - http://people.skolelinux.org/pere/blog/Pieces_of_the_roaming_laptop_puzzle_in_Debian.html - Wed, 19 May 2010 19:00:00 +0200 - -<p>Today, the last piece of the puzzle for roaming laptops in Debian -Edu finally entered the Debian archive. Today, the new -<a href="http://packages.qa.debian.org/libp/libpam-mklocaluser.html">libpam-mklocaluser</a> -package was accepted. Two days ago, two other pieces was accepted -into unstable. The -<a href="http://packages.qa.debian.org/p/pam-python.html">pam-python</a> -package needed by libpam-mklocaluser, and the -<a href="http://packages.qa.debian.org/s/sssd.html">sssd</a> package -passed NEW on Monday. In addition, the -<a href="http://packages.qa.debian.org/libp/libpam-ccreds.html">libpam-ccreds</a> -package we need is in experimental (version 10-4) since Saturday, and -hopefully will be moved to unstable soon.</p> - -<p>This collection of packages allow for two different setups for -roaming laptops. The traditional setup would be using libpam-ccreds, -nscd and libpam-mklocaluser with LDAP or Kerberos authentication, -which should work out of the box if the configuration changes proposed -for nscd in <a href="http://bugs.debian.org/485282">BTS report -#485282</a> is implemented. The alternative setup is to use sssd with -libpam-mklocaluser to connect to LDAP or Kerberos and let sssd take -care of the caching of passwords and group information.</p> - -<p>I have so far been unable to get sssd to work with the LDAP server -at the University, but suspect the issue is some SSL/GnuTLS related -problem with the server certificate. I plan to update the Debian -package to version 1.2, which is scheduled for next week, and hope to -find time to make sure the next release will include both the -Debian/Ubuntu specific patches. Upstream is friendly and responsive, -and I am sure we will find a good solution.</p> - -<p>The idea is to set up the roaming laptops to authenticate using -LDAP or Kerberos and create a local user with home directory in /home/ -when a usre in LDAP logs in via KDM or GDM for the first time, and -cache the password for offline checking, as well as caching group -memberhips and other relevant LDAP information. The -libpam-mklocaluser package was created to make sure the local home -directory is in /home/, instead of /site/server/directory/ which would -be the home directory if pam_mkhomedir was used. To avoid confusion -with support requests and configuration, we do not want local laptops -to have users in a path that is used for the same users home directory -on the home directory servers.</p> - -<p>One annoying problem with gdm is that it do not show the PAM -message passed to the user from libpam-mklocaluser when the local user -is created. Instead gdm simply reject the login with some generic -message. The message is shown in kdm, ssh and login, so I guess it is -a bug in gdm. Have not investigated if there is some other message -type that can be used instead to get gdm to also show the message.</p> - -<p>If you want to help out with implementing this for Debian Edu, -please contact us on debian-edu@lists.debian.org.</p> - - -