Upgrading From Ubuntu Hoary To Breezy Preview

Here's a brief log of my apt-only upgrade process, with a few workarounds, for google and posterity. It certainly wasn't trivial, which is frustrating. (-- Justin Mason, Sep 28 2005)

Step 1. Read https://wiki.ubuntu.com/BreezyUpgrade . This is pretty standard stuff; edit /etc/apt/sources.list, change repos to the breezy repositories, then:

sudo apt-get update; sudo apt-get dist-upgrade

This goes through lots of downloads, then winds up with errors as follows:

(Reading database ... 211963 files and directories currently installed.)
Preparing to replace xorg-common 6.8.2-10.1 (using .../xorg-common_6.8.2-69_all.deb) ...
Can't locate File/Basename.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl /usr/local/lib/perl/5.8.3 /usr/local/share/perl/5.8.3 /usr/local/lib/perl/5.8.2 /usr/local/share/perl/5.8.2 .) at /usr/sbin/install-docs line 24.
BEGIN failed--compilation aborted at /usr/sbin/install-docs line 24.
dpkg: warning - old pre-removal script returned error exit status 2
dpkg - trying script from the new package instead ...
dpkg: error processing /var/cache/apt/archives/xorg-common_6.8.2-69_all.deb (--install):
 there is no script in the new version of the package - giving up
 System startup links for /etc/init.d/xorg-common already exist.
 * Setting up X server socket directory /tmp/.X11-unix...
   ...done.
 * Setting up ICE socket directory /tmp/.ICE-unix...
   ...done.
Errors were encountered while processing:
 /var/cache/apt/archives/xorg-common_6.8.2-69_all.deb
: exit=1 Sun Sep 25 12:45:52 PDT 2005; cd /home/jm/mp3
: jm 52...;                                           

Ouch! Attempting to remedy in any way via apt-get results in these alternative errors:

: exit=100 Sun Sep 25 12:40:26 PDT 2005; cd /home/jm/mp3
: jm 50...; sudo apt-get -f remove perl-doc perl-suid
Reading package lists... Done
Building dependency tree... Done
You might want to run `apt-get -f install' to correct these:
The following packages have unmet dependencies:
  libaspell-dev: Depends: libaspell15 (= 0.60.3-5) but 0.50.5-5 is to be installed
  libperl-dev: Depends: perl (= 5.8.7-5ubuntu1) but 5.8.4-6ubuntu1 is to be installed
  libperl5.8: Depends: perl-base (= 5.8.7-5ubuntu1) but 5.8.4-6ubuntu1 is to be installed
  perl-modules: Depends: perl (>= 5.8.7-1) but 5.8.4-6ubuntu1 is to be installed
  x-dev: Depends: x11proto-core-dev but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
: exit=100 Sun Sep 25 12:40:30 PDT 2005; cd /home/jm/mp3

Double ouch! It's clear that the apt-get upgrade process has failed due to a dependency issue. I eventually found this workaround would fix it:

: jm 71...; sudo dpkg -i /var/cache/apt/archives/{perl,libperl,libdb}*

This upgrades perl forcibly. Apt-get should have been able to figure out that this was a required first step, but could not. (I suspect this was a missing dependency on the Ubuntu X11 packages; bug reported here.)

Once that manual dpkg step completed, repeated calls to 'apt-get -f install' and 'dist-upgrade' were required to 'shake out' all the remaining dependency issues:

sudo apt-get -f install
sudo apt-get dist-upgrade
sudo apt-get -f install
sudo apt-get dist-upgrade
sudo apt-get -f install
sudo apt-get dist-upgrade
sudo apt-get -f install
sudo apt-get dist-upgrade

Post-Apt Upgrade Manual Steps

Reconfigured the fonts, as recommended by the wiki page above:

sudo dpkg-reconfigure fontconfig 

Removed a few packages I don't need any more:

sudo apt-get remove jpilot sane xsane gnome-blog sane-utils 

Stupid GNOME Assertion-Failures-That-Aren't

During the upgrading of GNOME packages, I noticed these repeated failed-assertions-du-jour that aren't really:

** (process:26097): CRITICAL **: egg_desktop_entries_add_group: assertion `egg_desktop_entries_lookup_group (entries, group_name) == NULL' failed

** (process:26097): CRITICAL **: egg_desktop_entries_add_group: assertion `egg_desktop_entries_lookup_group (entries, group_name) == NULL' failed

** (process:26097): CRITICAL **: egg_desktop_entries_add_group: assertion `egg_desktop_entries_lookup_group (entries, group_name) == NULL' failed

The fix for this is to run the little-known app with a '-v' switch, and it'll tell you what files it's working on; you can then guess which file contains the lines that cause the assertion failures:

sudo update-desktop-database /usr/share/applications -v 
[...]
File '/usr/share/applications/freecell.desktop' lacks MimeType key

** (process:26097): CRITICAL **: egg_desktop_entries_add_group: assertion `egg_desktop_entries_lookup_group (entries, group_name) == NULL' failed

** (process:26097): CRITICAL **: egg_desktop_entries_add_group: assertion `egg_desktop_entries_lookup_group (entries, group_name) == NULL' failed

** (process:26097): CRITICAL **: egg_desktop_entries_add_group: assertion `egg_desktop_entries_lookup_group (entries, group_name) == NULL' failed
File '/usr/share/applications/mplayer.desktop' lacks MimeType key
[...]

Given that, it's one of either /usr/share/applications/freecell.desktop or /usr/share/applications/mplayer.desktop that was invalid. So, since I've never used menu entries for either, I just nuked both:

sudo rm /usr/share/applications/freecell.desktop /usr/share/applications/mplayer.desktop
sudo update-desktop-database /usr/share/applications -v 

And it seems fixed. Silly that this is an assertion failure, though. Typical GNOME ;)

And Back To The Upgrade

Eventually, dist-upgrade and -f install both report nothing to do. so it's time to install the metapackages for Ubuntu Desktop:

sudo apt-get install ubuntu-base ubuntu-desktop

This gives warnings about missing required packages; repeatedly add the packages it suggests until it succeeds. By the time it started working, I had:

sudo apt-get install ubuntu-base ubuntu-desktop ubuntu-minimal aptitude libsigc++-1.2-5c2

All proceeded fine.

Then as described in the wiki upgrade doc again:

sudo apt-get install xorg-driver-fglrx
sudo dpkg-reconfigure xserver-xorg

Rebooted to see how well that was working. It was still using the old kernel, for some reason, but I don't mind about that.

However I did have to add "ppp_mppe" to /etc/modules; otherwise VPN wasn't working! This is a regression.

Also, wine wasn't working; it appeared to have been apt-get removed during the upgrade. So:

sudo apt-get install wine

Wine apps had also lost their "virtual desktop" setting in the new version, so run winecfg and set "virtual desktop" to yes to fix this.

Kubuntu

Installing the Kubuntu packages, and recommendations from 'apt-get install':

sudo apt-get install kubuntu-desktop konq-speaker kdeartwork-emoticons \
                oooqs-kde

Once that's done, everything's complete.

Burning MP3s to CD

k3b split off their mp3 support during the hoary->breezy step, although this isn't clearly documented anywhere. I figured it out quickly enough once my attempt to burn a CD produced several "no way to decode file foo.mp3" error dialogs. Install the k3b-mp3 package, restart k3b and it works again. I would have said that k3b-mp3 should have become a requirement of the new kubuntu-desktop metapackage, for Breezy to avoid this bug.

Mind you, "works" is in brackets, as the CD I burned was unplayable for the most part on my car stereo. (I don't know why.)

Outstanding Issues

- The font hinter used in GNOME applications has changed. KDE apps, and Firefox, remain the same -- but GNOME font display quality seems significantly lower quality in its hinting of Verdana. I haven't been able to work out why.

- I haven't yet figured out why the new kernel didn't find its way into GRUB's menu.lst automatically. I don't particularly mind, however, as a kernel upgrade is still a painful task, due to the unpackaged kernel modules I'm using. (solved: I don't know what happened, but a later kernel upgrade from synaptic regenerated the list.)

- gstreamer has some major bugs in Breezy right now, with sound that breaks up under any kind of load, even moving the mouse between windows. There are workarounds -- search google for gstreamer alsa breezy bug and it should provide links to the Ubuntu BZ entries with workarounds in the comments.

- sawfish still gets stuck in a crash/restart/crash/restart/... loop if a GNOME or KDE app attempts to put an icon in the taskbar. This bug has been around since I started using Ubuntu at least, but I'm not surprised it's as yet unfixed; I may be the only sawfish user left. ;) (I'm still using it due to some kickass accessibility code that nobody has reimplemented in other WMs yet.) (UPDATE: now using kwin, so this is no longer an issue for me.)

UbuntuHoaryToBreezyUpgradeLog (last edited 2005-10-19 23:09:19 by c-24-127-183-241)