Opened 17 months ago

Last modified 17 months ago

#66285 new enhancement

Is it possible to hide ports that cannot be built on this Mac or OS?

Reported by: ballapete (Peter "Pete" Dyballa) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.0
Keywords: tiger, leopard Cc:
Port: MacPorts

Description (last modified by ballapete (Peter "Pete" Dyballa))

port -vd selfupdate on PPC Tiger, Mac OS X 10.4.11, delivers for many minutes reports that this or that port has all compilers unavailable or blacklisted. Can't this prety useless output be suppressed?

On the other hand port lists presumingly hundreds of ports that cannot be built, by whatever reason. Can't this list be suppressed?

port outdated lists xorg-server-devel although it cannot be upgraded. So it is not outdated, it has finished. Why is it listed and why is port trying to upgrade it when invoked as port upgrade outdated although it's not possible? If you can't do anything about it why do you mention it? And if completeness is a design goal: while not adding an extra verbose switch or simple -vv?

Change History (3)

comment:1 Changed 17 months ago by ballapete (Peter "Pete" Dyballa)

Description: modified (diff)

comment:2 Changed 17 months ago by reneeotten (Renee Otten)

perhaps the -q option will do what you want and suppress the output? Other than that I doubt any of these things will change and you might need to live with it on such an old system.

Last edited 17 months ago by reneeotten (Renee Otten) (previous) (diff)

comment:3 in reply to:  description Changed 17 months ago by ryandesign (Ryan Carsten Schmidt)

You've asked many questions in one ticket; I'll just reply to one of them for now.

Replying to ballapete:

port outdated lists xorg-server-devel although it cannot be upgraded. So it is not outdated, it has finished. Why is it listed and why is port trying to upgrade it when invoked as port upgrade outdated although it's not possible? If you can't do anything about it why do you mention it?

MacPorts base doesn't know anything more about the situation than what the portfile tells it. In this case, the portfile contains:

platform macosx {
    if {${os.major} < 13} {
        known_fail  yes
        pre-fetch {
            ui_error "$name requires macOS 10.9 or later.  Please use the xorg-server-legacy port instead."
            error "unsupported OS version"
        }
    }
}

Users of 10.8 and earlier should use the xorg-server-legacy port instead, but since that's just written as an error message, all MacPorts can do is print it for you. The port should be changed to set replaced_by xorg-server-legacy on 10.8 or earlier so that the replacement happens automatically for users.

I personally favor the portfile development strategy where a single port is used for all OS versions, and it changes what software version it installs depending on the OS version. But not everyone agrees with me.

In the more general case where a port simply requires a newer OS and no replacement is available for the older OS, MacPorts currently tells you a new version is available, but you can't upgrade to it. You're proposing that MacPorts base shouldn't tell you about. I'm not sure I agree with that. I suppose an argument could be made for that change. But I could just as easily see users then asking "Why didn't MacPorts tell me an update was available?" The way it is now, at least you're told and update is available and you're given the reason why you can't have it.

Note: See TracTickets for help on using tickets.