On 15/2/2026 09:40, Bjarne D Mathiesen via macports-dev wrote:
Den 14.02.2026 kl. 10.55 skrev Joshua Root:
All the other types are implemented using one of those, usually regex.
They just pre-fill the livecheck.* variables in different ways. The
implementations for these can be found in the ports tree: <https://
github.com/macports/macports-ports/tree/master/_resources/port1.0/
livecheck>
I had a look at them - doesn't help me that much in understanding the
underlying process. I need some insight into the undelying algorithms;
eg a pointer to where in the MacPorts source code all the magic happens.
Sure, the relevant code is here:
<https://github.com/macports/macports-base/blob/v2.12.1/src/port1.0/portlivecheck.tcl#L151>
Eg., I can see, what the regex is - but how is it !!actually!! used ?!?
I can see, that some ${homepage}s refer to ftp file list, while other
refer to html pages.
It's not particularly sophisticated. A file is downloaded, and the regex
is applied to its contents. If the newest version matched by the regex
is the same as livecheck.version, the port is up to date. If not, it's
outdated (or the livecheck is defective if only older versions are matched).
For moddate and md5 it's even simpler, if the modification time of the
file is newer or the md5 doesn't match, the port is outdated.
- Josh