Hopelessly outdated install?
ryandesign at macports.org
Sat Aug 29 00:31:45 UTC 2020
On Aug 28, 2020, at 13:00, Brian T. Carcich wrote:
> I am a consultant
> - I have used Macports, but am by no means an expert
> - with only SSH-only access,
> - root access (via sudo)
> - brought in to build a particular X-windows app on this Mac
> - Motif (libXm) is one missing piece of the puzzle (at least)
> - the app builds elsewhere with little trouble, including my ancient AirBook, but I have that in my hot little hands
> Darwin 16.7.0 ca. June, 2017, x86_64-apple-darwin16.7.0
> Xcode version [gcc --version]: Apple LLVM version 9.0.0 (clang-900-0.39.2)
> Macports version: 1.9.2, under /opt/local/*/macports/
> - 13 ports total
If you're running MacPorts 1.9.2, that's very out of date. We released MacPorts 2.0.0 on July 21, 2011 and the current version is 2.6.3. MacPorts is designed under the expectation that you will keep up to date by running "sudo port selfupdate" and "sudo port upgrade outdated" occasionally, but certainly at least once a year. We remove some port upgrade paths after they have been in place for one year, so waiting longer than that will result in some upgrade failures that you'll have to puzzle out on your own or ask us about later.
It is our intention that "sudo port selfupdate" should be able to upgrade you from old versions of MacPorts base to newer ones, but we certainly would not have tested upgrading from a version that old and it is possible that something in the selfupdate upgrade process has broken for such use cases.
You should always be able to bypass selfupdate problems and upgrade to the latest version by downloading the latest MacPorts installer package for your OS version from https://distfiles.macports.org/MacPorts/ and running it. You can run installer packages from the command line using the "installer" command. (Read "man installer".) You should still manually update all conf files under /opt/local/etc/macports.
What's more concerning is that you're running macOS 10.12, but you're using a version of MacPorts base that dates from a time when the latest version of Mac OS X was 10.6. This should never have worked.
Is it possible that you installed your ports while you were using Mac OS X 10.6 and later upgraded to macOS 10.12? Hoping this was working all the way back in MacPorts 1.9.2, you can check if that's the case by running the following command, showing you all ports that were installed while not on Darwin 16:
port -v installed | grep -v 'darwin 16'
If it shows any such ports, then after upgrading MacPorts base you should upgrade them (if they're outdated) or rebuild them (if not outdated).
Normally I would refer you to:
but you mentioned that uninstalling all ports would be difficult due to a MacPorts-provided ssh daemon.
> So far ...
> Finally got [selfupdate] to finish by changing rsync_dir in macports.conf
> - per https://trac.macports.org/ticket/53414
> - but it still says "base version 1.9.2 installed," and "Warning: No version file found, please rerun selfupdate," and "MacPorts base is probably trunk or a release candidate"
> - [-d selfupdate] fails to parse 11 of the 13 ports
> [upgrade outdated] yields "Error: Unable to open port: invalid command name 'port::register_callback'"
> - nothing useful from The Google so far
> - [-d] output below
Don't bother trying to troubleshoot any port upgrade failures with a MacPorts base version that old. Our ports collection is written with the assumption that you are using the latest MacPorts base. Upgrade base first. For example, "port::register_callback" is a procedure that wasn't added to MacPorts base until version 2.2.0, and some port or portgroup is using it now, but naturally MacPorts 1.9.2 wouldn't know about it.
> My question
> My gut feel is that this is a hopelessly outdated installation of Macports. Rather than shaving the yak and googling as each new problem crops up, is it reasonable to consider removing whatever Macport is there and starting over? I am not even confident that the [uninstall] option would work.
It is always possible to uninstall, if you want to; instructions are here:
> N.B. [uninstall] is not a solution if the SSH daemon is a Macport, as I would lose access.
> Or do I need someone local to the machine to poke around from the GUI or RDP?
> Thanks in advance,
> Brian Carcich
> Output of [-d ugrade outdated]
> ncursesw (5.8_0 is installed; the port was not found in the port index)
> DEBUG: epoch: in tree: 0 installed: 0
> DEBUG: gmp 6.2.0_1 exists in the ports tree
> DEBUG: gmp 5.0.1_1 is the latest installed
> DEBUG: gmp 5.0.1_1 is active
> DEBUG: Merging existing variants '' into variants
> DEBUG: new fully merged portvariants:
> DEBUG: Changing to port directory: /opt/local/var/macports/sources/
> DEBUG: OS darwin/16.7.0 (Mac OS X 11.2) arch i386
That's certainly curious output, since Darwin 16.7.0 is actually macOS 10.12, not 11.2. But there could have been bugs in the way that MacPorts dealt with newer macOS version numbers which was addressed in newer versions of MacPorts.
More information about the macports-users