On Feb 5, 2021, at 13:00, Ken Cunningham wrote:

> With no plan, we’ll just keep getting more and more of these.

I'm not aware of a huge influx of these, but I'm also not really paying 
attention to the PR queue. And I'm not intending to get drawn into this 
discussion of binary ports again.


> <https://github.com/macports/macports-ports/pull/9936>
> 
> This kind of port just repackages the DMG into many tgz archives.
> 
> It’s wasteful. People want them.
> 
> What we should have instead of this is some kinda tech that
> 
> 1. downloads the DMG
> 2. installs the app
> 3. records some way of uninstalling everything

MacPorts already does all these things... The submitted Portfile works fine, 
presumably. There's no need to reinvent the existing MacPorts functionality 
that does all these things.


> What we have instead is a repackaging of the DMG into many, identical, 
> system-specific archive bundles.
> 
> Yuk.

If your objection is that we waste server space storing several copies of the 
same thing, then we could invent a new way for a portfile to indicate that it 
does not want binary archives stored on the server. It could be a new separate 
keyword or a new pseudo license type, like we already have for "nomirror" which 
tells the buildbot not to mirror the distfiles.

A port like the one we're talking about in the above PR could set e.g. "license 
GPL-2 nopackage", and buildbot could be modified to understand that this means 
that it should not upload the packages.

MacPorts base would still try to download the nonexistent package. MacPorts 
base currently does not use license values except to display to the user and 
has no idea if a port is distributable. Distributability is handled by a 
separate script. It should be integrated into base so that base can know if 
something could have been distributed, and if it could not have, then it 
shouldn't even try to download it. https://trac.macports.org/ticket/60315

We might also want to modify the MacPorts base command line "-b" binary only 
mode to allow installing these "nopackage" ports rather than error out as it 
would currently do.

If the few steps like disabling the configure and build phases and adding the 
hypothetical "nopackage" to the license line are too much work for a portfile 
submitter to do, a portgroup could be created that does those things. But you 
have often complained about "magic" portgroups doing things you didn't know 
about or didn't expect, so there is something to be said for ports doing what 
they need to do explicitly, when it's not so many steps, and when it's not 
always the same steps needing to be done. For example, surely each port will 
still need to specify what the archs of the binary files are, what license 
they're under, what type of distfile it is and where it is, and which files 
inside needs to be copied where.

Reply via email to