-
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
-(#585410 in nagios3-cgi,
-#584879 already fixed in
-enscript and #584861 in
-kdebase-workspace-data), and to get a more regular testing going on, I
-am working on a script to automate the test.
-
-
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).
-
-
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
-#566000 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
-known
-issue 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.
-
-
Anyway, back to the task at hand, testing upgrades. This test
-script, which I call upgrade-test for now, is doing the
-trick:
-
-
-#!/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
-
-
-
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
-
-
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
-
-
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.
+
Michael Biebl suggested to me on IRC, that I changed my automated
+upgrade testing of the
+Lenny
+Gnome and KDE Desktop to do apt-get autoremove 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:
+
+
This is for Gnome:
+
+
Installed using apt-get, missing with aptitude
+
+
+ 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
+
+
+
Installed using apt-get, removed with aptitude
+
+
+ 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
+
+
+
Installed using aptitude, missing with apt-get
+
+
+ gstreamer0.10-gnomevfs
+
+
+
Installed using aptitude, removed with apt-get
+
+
+[nothing]
+
+
+
This is for KDE:
+
+
Installed using apt-get, missing with aptitude
+
+
+ ksmserver
+
+
+
Installed using apt-get, removed with aptitude
+
+
+ kwin
+ network-manager-kde
+
+
+
Installed using aptitude, missing with apt-get
+
+
+ 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
+
+
+
Installed using aptitude, removed with apt-get
+
+
+ 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
+
+
+
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.