Testing a modified portgroup

Fred Wright fw at fwright.net
Sun Feb 11 05:12:35 UTC 2024

On Mon, 5 Feb 2024, Joshua Root wrote:

> On 5/2/2024 14:58, Austin Ziegler wrote:
>> I think I have found a bug in the golang portgroup, and I think I have an 
>> idea on how to fix it, but I'm not sure how to test such a modification.
> You'd make the change in your local copy of the ports tree and check that a 
> port affected by the bug now works correctly, and that some existing ports 
> still work correctly.

That's a nice theory, but it often doesn't work.  A while back, I tried 
doing something of that form, but my change was ignored.  My setup is that 
I have a sparse overlay of the ports tree, containing any locally modified 
files, listed ahead of the normal mirror location in sources.conf.  That 
works fine for testing port changes (as long as the complete directory for 
any modified port is in the overlay), but it didn't work for a PortGroup 
change.  Looking in debug mode, I could see that it was fetching the 
PortGroup from the usual mirror source, rather than from the local 
overlay.  At the time, I just gave up.

Later, I ran across some evidence that it chooses the PortGroup source 
based on the source of the port that's including it.  Since I wasn't 
modifying the including port, that explains the behavior, though it most 
certainly violates the principle of least surprise.  So it may be 
necessary to make a dummy change to the including Portfile to test a 
PortGroup change.

I'm not sure why MacPorts obsesses so much over the location of a Portfile 
rather than its content.  The insanely long build-tree paths differ not 
only based on whether the Portfile is local or not, but also based on 
which particular mirror was used to fetch it in the "published" case. 
Since some build and/or test procedures may choke on the long pathnames, 
and since even the length of the pathname is mirror-dependent, that means 
that in some cases the success of a build and/or test may depend on which 
mirror provided the Portfile.  Sheesh.

Fred Wright

More information about the macports-dev mailing list