On Jul 11, 2007, at 14:19, Simon Ruderich wrote:
"port livecheck installed" returns this:
apr seems to have been updated (port version: 1.2.9, new version: 1.2.8) Error: cannot check if apr-util was updated (regex didn't match) clearsilver seems to have been updated (port version: 0.10.4, new version: 0.10.2) Error: cannot check if db44 was updated (regex didn't match) Error: cannot check if gettext was updated (regex didn't match) Error: cannot check if libxml2 was updated (regex didn't match) Error: cannot check if libxslt was updated (regex didn't match) Error: cannot check if nano was updated (regex didn't match) Error: cannot check if ncurses was updated (regex didn't match) Error: cannot check if ncursesw was updated (regex didn't match) pcre seems to have been updated (port version: 7.1, new version: 7.2) Error: cannot check if perl5.8 was updated (regex didn't match) Error: cannot check if popt was updated (regex didn't match) Error: cannot check if readline was updated (regex didn't match)
1) Error: cannot check if apr-util was updated (regex didn't match)
is the message you get for ports that have not any livecheck configuration and for which the default does not work (the default being fetching on freshmeat I believe) either because the project is not declared on the default site either it has another name.
Oh ok, then the Portfile should be fixed. This would remove this problem.
2) pcre seems to have been updated (port version: 7.1, new version: 7.2)
That's a good message indicating that pcre may need to be updated...
3) apr seems to have been updated (port version: 1.2.9, new version: 1.2.8)
This happens if freshmeat has a project declared for this name but the page is not as up-to-date as the port. The problem is upstream (developper) does not change the project info on freshmeat at every release, blame them. Or the port maintainer may try to configure livecheck for it to fetch version on an up-to-date site. But since this feature is mostly useful for the port-maintainer, he may not need this to know when a port needs upgrading.
Ok, thanks for the info. Maybe "port livecheck" should check if the release number of the homepage is greater then the one in the Portfile and only then print a "needs update" message. What do you think?
If you read up on livecheck, you will see that it has many different modes of operation -- many places from which it can attempt to get a program's most recent version info -- be that sourceforge, freshmeat, the project's homepage, etc. Indeed, what you describe is one possible way livecheck can work -- provided the port author configures *how* to extract the current version number from that project's homepage, since everybody writes their web pages in a different way.
Emmanuel
Thanks for your answers, but I have still two questions.
"The aim of livecheck is to give the maintainers a quick information if the Portfile needs an update." Is this statement correct?
Yes, that's correct. livecheck is a feature meant to help port maintainers. Anybody else -- port users, for example -- may also use it, of course, but some maintainers may not have set up livecheck information for their ports, as you've seen. Maybe they're subscribed to a project's announce list, for example, so they learn about new versions of the project that way. In this way, you may run into ports where livecheck doesn't work and the maintainer doesn't care. They may accept patches, though, if you would like to figure out how to enable livecheck for that port and contribute it to the maintainer.
What is with the other "regex didn't match" messages for Portfiles which have a correct specification of the liveupdate. Is this a limitation of the regex or am I missing something (again).
It could mean that the project's homepage is offline. Or it could mean the livecheck specification was not in fact correct in the portfile, either because the port author made a mistake, or because MacPorts changed the way the livecheck information is interpreted, or because the project's homepage has changed in some way and a new livecheck needs to be written.