list of packages that are always compiled

Joshua Root jmr at macports.org
Tue Dec 27 03:06:21 UTC 2022


Richard L. Hamilton wrote:

> A plausible test case with the first of those (ffmpeg +nonfree) gave the expected result: return code 1, i.e. non-redistributable; and without the +nonfree variant, also gave the expected result of return code 0 (redistributable). That nicely shows that the results reflect the effects of dependency differences based on variant.
I should also point out for those who are unfamilar with it that 
port_binary_distributable.tcl has a -v option that will show the reason 
for non-distributability (technically only the first reason it finds; 
there can be multiple reasons):

./port_binary_distributable.tcl -v ffmpeg +gpl3
"ffmpeg" is not distributable because its license "GPL-3+" conflicts 
with license "GPL-2" of dependency "libvidstab"

> Does the behavior of those take into account configuration like a modified variants.conf (so the result aligns with what variants would be used if one did a port install)?
The two gists make no attempt to set any variants on the ports, so they 
will give results that apply only for the default variants. As you 
discovered, port_binary_distributable.tcl does apply variants given on 
the command line, but it doesn't have code to merge in the 
global_variations (as the variants requested via variants.conf are 
called). It would be possible to add this for all of the scripts with a 
little work.

> although both of the scripts that obtain the information for all ports are quite slow;
Yes, which is why storing the decision made by the buildbot is 
preferable to generating the information on demand. The 
all_distributable.tcl 
<https://gist.github.com/jmroot/f84c329919356bfb1ed2d8425f3cfebb#file-all_distributable-tcl> 
script is doing more work than it would take to regenerate the PortIndex 
from scratch, and the latter takes well over 20 minutes on my machine. 
On the other hand, all_bin_available.tcl 
<https://gist.github.com/jmroot/f524dcfe5fdadcd8b7a9c2e46151e0d4> is 
limited mainly by how fast the packages server responds, so changing it 
to use a mirror that is closer to you could help. A faster multithreaded 
implementation is left as an exercise for the reader. :-)

- Josh



More information about the macports-users mailing list