porturls (was: Re: "port upgrade" error message usability)

Ryan Schmidt ryandesign at macports.org
Sun Jan 30 23:22:13 UTC 2022

On Jan 30, 2022, at 09:15, Joshua Root wrote:

> On 2022-1-30 21:12 , Ryan Schmidt wrote:
>> I'm actually not sure what kind of file MacPorts is expecting to find at such a URL. I tried just a Portfile and a gzip-compressed tarball containing a Portfile and files directory; neither worked. Maybe this feature just doesn't even work anymore. I'm not sure why MacPorts ever had this capability. MacPorts was probably designed in the early days to work on any kind of URL, and to transform local port names into file URLs internally, with the assumption that this flexibility might prove useful at some point, but I think it ended up not being needed.
> There were plans at one point for remote ports tree support so users wouldn't have to download the whole thing. Seems to still work fine for me:
> % tar -cvzf ~/Downloads/testport1.tgz testport1
> a testport1
> a testport1/Portfile
> % sudo port install file://${HOME}/Downloads/testport1.tgz
> --->  Fetching distfiles for testport1
> --->  Verifying checksums for testport1
> --->  Extracting testport1
> --->  Configuring testport1
> --->  Building testport1
> --->  Staging testport1 into destroot
> --->  Installing testport1 @1.1_0
> --->  Activating testport1 @1.1_0
> --->  Cleaning testport1

This is what I tried:

$ port info https://trac.macports.org/raw-attachment/ticket/37628/py-autopep8.tar.gz
--->  Fetching port https://trac.macports.org/raw-attachment/ticket/37628/py-autopep8.tar.gz
Can't map the URL 'https://trac.macports.org/raw-attachment/ticket/37628/py-autopep8.tar.gz' to a port description file ("couldn't change working directory to "/opt/local/var/macports/portdirs/py-autopep8.tar": no such file or directory").
Please verify that the directory and portfile syntax are correct.
Error: Can't open URL 'https://trac.macports.org/raw-attachment/ticket/37628/py-autopep8.tar.gz' as a port
Error: Improper expression syntax while processing parameters

After I do that, the tarball has been decompressed to /opt/local/var/macports/portdirs/py-autopep8 which I then have to delete manually.

Comparing with yours, I see that it does work if the extension is .tgz instead of .tar.gz. How strange. Even then, the directory is left in portdirs for me to clean up manually.

More information about the macports-dev mailing list