Performing a Slackware release upgrade with slackpkg

My office workstation recently went trough a Slackware release upgrade by following the excellent systemupgrade article from the Slackware Documentation Project. Personally I experienced a few snags along the way so I’ll add a few notes for future reference.

Kernel installation

After blacklisting the kernel packages I downloaded and installed the new kernel available with the Slackware 14.2 release. I did not notice however that a more recent kernel was available from the /patches directory.

As a consequence my kernel modules would fail to build when booting Slackware 14.2 as the installed kernel headers package did not match my running kernel.

Blacklisting 3rd party packages

I use a lot of packages from SlackBuilds.org and did blacklist these as suggested in the aforementioned article. However, the issue with this approach is that several (former) SBo packages have been added to the Slackware base installation. Because of this, blacklisting SBo will block Slackware stock packages from getting installed and upgraded. I believe the best approach here would be to blacklist SBo after performing the slackpkg upgrade-all step.

Post upgrade

After carefully merging new configuration files and removing packages no longer included with Slackware distribution, I rebooted into my brand new 14.2 release and was immediately greeted by a bunch of sinister looking error messages:

IMPORT{builtin}: 'hwdb --subsystem=$env{SUBSYSTEM}' unknown /lib/
IMPORT{builtin}: 'hwdb --subsystem=input --lookup-prefix=evdev:
unknown key 'RUN{builtin}' in /lib/udev/rules.d/60-evdev.rules
invalid rule '/lib/udev/rules.d/60-evdev.rules:8'

Eudev

I’m not exactly sure where I went wrong with the eudev upgrade as shown above, but reinstalling eudev and libgudev took care of that issue.

Nvidia

The Nvidia driver will rename and move Mesa libraries out of the way. Thankfully Nvidia keeps a log of its mischief so it’s easy enough to retrieve the library files needed for compiling (a few) third party applications.

grep "libEGL.la" /var/lib/nvidia/log
110: /usr/X11R6/lib64/libEGL.la

Dave, my mind is going

After removing the kernel blacklist entries I did one final slackpkg upgrade-all to rule them all, and was rewarded with a new generic kernel package. The subsequent reboot and kernel panic made it clear that I was no longer running my huge kernel (funny how that works).

Thank Bob I still had the old kernel from Slackware 14.1 installed and available. On the bright side: I’m now fully up to date on which symlinks the kernel install script replaces.