os.major etc. on Linux

René J.V. Bertin rjvbertin at gmail.com
Thu May 12 02:44:34 PDT 2016


Hi,

As you may know, I've been making a few local changes to "base" and setting up my ports so I can use MacPorts on my Linux systems too, mostly as a convenient means for installing KF5 applications on my KDE4 desktop (and testing any of my patches I'm submitting upstream on KDE's main platform).

I had a bit of a nasty surprise the other day, when I first booted a Linux4 kernel rather than the 3.1x one I'd been using. All my ports were marked outdated because the kernel version is assumed to be linked to an overal system version like it is on OS X.

AFAIK that's not relevant on Linux; the SDKs with which MacPorts and (the vast majority of) its ports are concerned, the "userland", don't change when you boot a 4 or 3 kernel. Booting back into a 2.x kernel might have more implications, but IIRC that depends a lot on the patches and kernel config you apply (which of course doesn't show up in the kernel version number).

As a workaround (and way to avoid having to rebuild and reinstall everything) I simply hardcoded os.major to 3 in my install, and that hasn't caused any issues whatsoever, like one would expect.

I know there's a reason why "base" has basic support for Linux, but is it necessary to use the (major) OS version number the same way it's used on OS X?

R.


More information about the macports-dev mailing list