Debian Upgrade Marathon: 7 Wheezy

Jun. 18, 2025 [technology] [hardware] [history] [libre]

With enough road now behind us, I finally took it upon myself to make a clone of the Upgrade-Journey drive so that I can save scum if the need arises. Today we’re taking on Debian 7 Wheezy. The same Debian that formed the basis of Valve’s first-ever SteamOS release. Where the Debian project really began to hit its stride.

Wheezy launched not long after the ‘world IPv6 day’, and fittingly added support for the installer to work on IPv6-only environments. It was the year of Heartbleed and of the disclosures by Edward Snowden. The modest smattering of newbies that these events may have attracted to Linux would have found a Debian which still assumed the paradigm of the decade prior. Which, for today’s upgrade, makes for an excellent time capsule.

Upgrading from Squeeze to Wheezy

Aptitude was used to check any pending changes which found kde-base and several gnome packages waiting to be installed.

Verified that all packages are in an upgradable state. ✔

I dropped to terminal and pointed /etc/apt/sources.list to wheezy. Despite some sources suggesting archive.debian.org/debian-security/, I found that archive.debian.org/debian-archive/debian-security/ continues to work, still getting hits for both updates/main and updates/contrib repositories.

sudo apt-get update
Updating from new sources

Wheezy’s Linux kernel includes PAE to expand addressable memory above 4GB on 32 bit computers. Pentium 4 was the CPU family in my first PC, so I knew already that it makes use of PAE. But anyone unsure of it can check whether the extension is available with:

grep -q '^flags.*\bpae\b' /proc/cpuinfo && echo yes || echo no

yes

So no manual intervention is required for the currently installed linux-image-686 kernel. We then begin the upgrade.

sudo apt-get upgrade

Anyone paying close attention to the release notes would have seen that the new directives in the sudoers configuration file aren’t added automatically. They go on to recommend adding one’s existing sudoers to the sudoers conf directory.

mv /etc/sudoers /etc/sudoers.d/mychanges
mv /etc/sudoers.dpkg-new /etc/sudoers

Neglecting to read ahead, I simply opted to compare the difference between the new maintainer’s version and my own.

Prompt to configure the new sudoers config file

“[Replace] Configuration for ‘/etc/sudoers’?”

I used the diff option (D) to check that the main user is still listed before committing to use the maintainer’s version. Despite that, immediately upon checking elevated privileges I found that my ’traveler’ user is “not in the sudoers file”.

grep -e sudo /etc/group

Which showed the ’traveler’ user isn’t included in the sudo group. Well, thank goodness the root account is active because the installer all the way back in Sarge didn’t provide any option to disable the root account.

su root
usermod -a -G sudo traveler

Unfortunately, the session would need to be restarted and logged back in before this addition takes effect. And since we’re in the middle of a system upgrade, it would be best not to chance that. So, for now, we take the messier route and run visudo as the root acount to add the standard user back in before exiting from the root user.

traveler	ALL=(ALL:ALL) ALL

Which is probably over-privileged, but this can be tightened up at a later time. I attempted to proceed with the remainder of apt-get dist-upgrade which produced the first package conflict of this entire experiment. initscripts would break nfs-common.

Well, we’re not using network filesystems so we can blow that one away!

sudo apt-get remove nfs-common

Poof! Goodbye!



Attempt #2:

sudo apt-get dist-upgrade
Prompt to configure the display manager

I selected gdm3 as the default display manager because kdm with kde-base yet again found its way back onto this system.

“Should NTFS-3G be installed with ‘set uidroot’?”

No

“Restart services during package upgrades without asking?”

Yes

“Configuration file ‘/etc/default/rcS’?”

The package maintainer’s version got installed.

“PAM profiles to enable?:”

Yes to all (default)

“Configuration file ‘/lib/lirc/hardware.conf’?”

I installed the package maintainer’s version.

And the dist-upgrade completed to little fanfare.

Post-upgrade items, before rebooting

I compared the installed and running kernel versions:

uname -r

2.6.32-5-686

And then checked the installed kernels:

dpkg -l "linux-image*" | grep ^ii

We see linux-image-686-pae 3.2.102-1 which is indeed Wheezy’s version. ✔

And there remain no pending package additions or removals, according to apt-get. ✔

Wheezy probably had the fewest post-upgrade nails to hammer down out of all the upgrades we’ve done so far.

sudo reboot

Which arrived at a filesystem check that failed and necessitated restarting Upgrade-Journey again.

fsck running on first reboot

After which rebooting was all successful.

The GRUB menu with all the old kernel entries

As a point of interest, I would like to allow old kernels to accumulate. Normally this would have me worried that the /boot partition might not be large enough. du reports that 44MB of kernels reside there at the moment. But Upgrade-Journey’s /boot sits at root on the same partition so it should be fine anyway.

Post-upgrade items, after rebooting

sudo apt-get autoremove

Initiated the removal of 368 packages including OpenOffice, which has by now been replaced by LibreOffice 3.5, and other packages to remove regarding Gnome and KDE.

Impressions of Wheezy

Because an issue with X11 remained from our visit with Squeeze, Gnome 3.4.2 failed to load up the new Gnome 3 convergence desktop. The fallback mode resembles Gnome 2 classic while borrowing visual elements from Gnome’s new design conventions. It maintains a top and bottom bar, with collapsible menus and no full screen programs overview.

How this exercise would have looked had it remained on our trusty old Pentium 4

The X11 brokenness and audio brokenness is beginning to get in the way of capturing the feel of these historic releases. And, seeing as Wheezy was released in 2013, I think it’s nigh time for our imaginary user to finally upgrade their computer. Let’s cast off this crusty old Pentium 4 with its busted audio and its Intel eXtreme[ly bad] graphics in exchange for a fancy AMD Athlon II multicore 64 bit system.

The Upgrade-Journey storage drive moved to a new host.

I’d been waiting until after the drive UUID assignments had been sorted out before swapping the physical host. And this change will be important when we later configure multiarch in order to morph this x86 installation into x86_64.

Much better! Even though I select “GNOME” at the greeter, it still uses Gnome fallback. But that is okay, as I think it makes for a very nice bridge between Gnome 2 and Gnome 3 in this upgrade marathon.

Filetype Functionality Notes
All Audio Audio hardware issue confirmed and resolved. Was likely working as far back as Sarge.
MP4 Video 🗷 Segmentation fault. Totem 3.0.1
MP4 Video 🗷 ‘VLC does not support the audio or video format ‘hev1’’. VLC 2.0.3
Webm Video 🗷 Segmentation fault. Totem 3.0.1
Webm Video 🗷 ‘VLC does not support the audio or video format ‘undf’’. VLC 2.0.3
Web Mostly working now without certificate issues. Firefox-ESR 52.8.

If I understand correctly, Wheezy started out with IceWeasel 10 but, by EOL, had transitioned to Firefox ESR 52.8. This kind of incredible pace has to do with the rapidly accelerated release schedule that Mozilla adopted in order to compete with Chrome. Mozilla and Debian had finally resolved the branding dispute by the twilight days of Wheezy. There is even a menu entry to convert IceWeasel settings and extensions to Firefox ESR, along with a new Firefox ESR entry.

At version 52.8, it is the first in this marathon to feel like the familiar Firefox of today. And it actually establishes connections with HTTPS certs without much issue, making it feasible to use on the modern web if one were so inclined.

I actually remember using Firefox back when it used to look like this.

The cached PBS page renders… better than before.

Vimeo couldn’t load its web player. Do they even host videos anymore? It looks like Vimeo pivoted to a different business.

SuperTuxKart 0.7.3 continued to receive much love with a revamped menu system and new karts and tracks. It still had a cobbled-together home made vibe by 2013 standards, but definitely better polished.

Fun Factoids

Preliminary support for systemd was introduced in Wheezy as a ’tech preview’. I’d always thought that systemd was added only in the lead up to Jessie.

Debian briefly replaced ffmpeg with libav-tools, citing a release process more congruent with Debian’s.

It is here that Debian began using hardening options at build time.

AppArmor is introduced but disabled by default. I even remember having to go and supply boot arguments in GRUB to enable AppArmor as early as Debian Jessie, before it was enabled by default in Stretch.

PulseAudio is made official as the primary audio daemon.

Wheezy is where new installations would have gotten ext4 root filesystems, but we’re going to camp out on dusty old ext3 without even the full featureset and see what happens.

The Debian installer enabled WPA encrypted wireless links. Those rocking open source ath9k powered Qualcomm cards could have installed their Debian without having to load proprietary firmware and drivers.

Wheezy represents the last of the releases in this marathon to be new to me. The first Debian I’d used as a desktop OS had been Jessie.