-<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
-
-# 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
-
-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>
+<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>