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

Reply via email to