<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">My harfbuzz (on Monterey) was outdated. So I did this:<div class=""><br class=""></div><div class=""><div class="">port -v upgrade harfbuzz</div><div class="">--->  Computing dependencies for harfbuzz.</div><div class="">--->  Fetching archive for harfbuzz</div><div class="">--->  harfbuzz-8.4.0_0.darwin_21.x86_64.tbz2 doesn't seem to exist in /opt/local/var/macports/incoming/verified</div><div class="">--->  Attempting to fetch harfbuzz-8.4.0_0.darwin_21.x86_64.tbz2 from <a href="https://packages.macports.org/harfbuzz" class="">https://packages.macports.org/harfbuzz</a></div><div class="">[...]</div><div class=""><br class=""></div><div class="">The -v  generates relatively verbose (thus the "v")  messages. It can be combined with other options, and goes after "port" and before a command like "upgrade".</div><div class=""><br class=""></div><div class="">Note the name of the file it downloaded, which includes an architecture. This was an archive of precompiled port, already successfully built on the build servers. So of course it was very fast to install, no compiling needed, just deleting, unarchiving, copying files around, etc.</div><div class=""><br class=""></div><div class="">Not everything can be precompiled like that; for some things, incompatible licenses prevent distributing binaries (ffmpeg with the +nonfree option which gives more codecs, is like that); and a few ports may try to do processor model specific optimizations; maybe there are other reasons. Ports are also only pre-built for default variants; if you request different variants or have different default variants configured, there won't be binaries available. Binary builds sometimes fail on the build servers, and are not always equally available for all macOS versions. (IMO, build failures on the build servers ought to automatically generate tickets; that might mean more build problems would be fixed before users saw them; but maybe there's reasons that doesn't happen.)</div><div class=""><br class=""></div><div class="">The global option (goes after "port", like -v) "-b" will only install or upgrade if binaries are available. The global option "-s" will install from source even if they are available.</div><div class=""><br class=""></div><div>A URL like <a href="https://ports.macports.org/port/harfbuzz/builds/" class="">https://ports.macports.org/port/harfbuzz/builds/</a></div><div><br class=""></div><div>in your browser (but put in the port name you want in place of harfbuzz) will show what if anything is pre-built for that port. Other views are available, but don't ask me if there's one that shows everything pre-built for a specific macOS version; if there is one, I haven't found it. I'm just another user, not a maintainer, and not familiar with everything; I knew some of these things were possible, but had to dig a bit to be able to describe them.</div><div><br class=""><blockquote type="cite" class=""><div class="">On Apr 5, 2024, at 12:36, Riccardo Mottola <<a href="mailto:riccardo.mottola@libero.it" class="">riccardo.mottola@libero.it</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi Richard,<br class=""><br class="">last week I did a test and it worked, but it was not what I needed. Probably it was a port already in need to upgrade.<br class="">I have a system now where all ports are up-to-date (as of "port outdated").<br class=""><br class="">If I issue e.g.<br class=""><br class="">port -n upgrade --force --no-rev-upgrade gtk2<br class=""><br class=""><br class="">It takes it time to recompile gtk2... I actually see "Building gtk2" [* * *]<br class=""><br class="">If I do<br class=""><br class="">port -n upgrade --force --no-rev-upgrade harfbuzz<br class=""><br class=""><br class="">it completes in a matter of seconds... and the ol' MacBook isn't that fast :)<br class=""><br class="">I see cleaning, uninstalling, cleaning, installing activating, cleaning... but never configure/building!<br class="">Why?<br class=""><br class="">Regards,<br class="">Riccardo<br class=""><br class="">Richard L. Hamilton wrote:<br class=""><blockquote type="cite" class="">To explain:<br class=""><br class="">-n prevents rebuilding ports that the ports being upgraded (works with install too I suppose, but there should be no need for that) depend on; it may cause failure if they're not already installed and up-to-date<br class=""><br class="">--force forces upgrading even of a port that's current; but without the -n, that would apply to everything it depends on too, which is slow and might cause more problems (esp. if there are issues with any of the build tools used)<br class=""><br class="">--no-rev-upgrade because while the check for broken ports is usually good, it might get in the way in this sort of situation; and because one might be repeating the command one port at a time for more than one port (separate commands so it tries them all even if one fails), and since the check is a bit slow, that saves time<br class=""><br class="">This is rather far down the list of what one should try, because normally -n is not a good idea (although it can make sense to limit --force), and because ideally one would just do "port upgrade" and let it sort out what needs doing. But clearly it helps sometimes when things aren't right and you don't want to do more than necessary.<br class=""></blockquote><br class=""></div></div></blockquote></div><br class=""></div></body></html>