It is a given that an upgrade normally breaks something. Take, for instance, the upgrade of my laptop from Kubuntu 7.04 to Kubuntu 7.10. 7.04 didn’t play nice with my NVidia video card – it’s an older card, so the legacy driver was needed. To get things working, I ended up removing files and editing hidden files. 7.10 broke this hack, but once I grokked that, and did it the Right Way, it all worked fine.
As another example, take Yosemite Backup. Version 8.50-sp1 worked great on $work’s RedHat-based boxes, and with some hammering (libattr, libacl), worked great on the Gentoo boxes. I had to write a script to act as the init script (due to Gentoo’s use of runscript), but otherwise life was groovy.
Today I upgraded the RedHat-based boxes to 8.50-sp2, along with the Windows boxes. That part went fine, so I moved on to the Gentoo boxes, and found that things didn’t work fine. To be precise, the boot binary for Yosemite was complaining “Error 59: Service not found”. Mind boggling that. So, run strace against the boot binary. Wait, no strace. Emerge strace, run strace against the boot binary. Trawled through about 1000 lines of system calls, looking for a clue.
About an hour after I started looking, I found what looked to be harmless – the binary tried to call /etc/rc6.d/YTBackup. This won’t work on a Gentoo box, it plain doesn’t exist. A few symlinks later, and everything just worked. Given that tidbit, and the fact that the binary kept looking in /proc/ for the wrong pid, I think that SP2 has become more RedHat oriented, breaking compatibility with other Linux distributions as it does so. Time for a polite e-mail to Yosemite about that.