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