exact version dependency for ocaml libraries

Anil Madhavapeddy avsm at macports.org
Thu Aug 19 07:04:30 PDT 2010


On 19 Feb 2010, at 20:33, Ryan Schmidt wrote:

> On Feb 19, 2010, at 04:49, Anil Madhavapeddy wrote:
> 
>> On 9 Feb 2010, at 00:15, Ryan Schmidt wrote:
>> 
>>> So, you'll have to manually increase the revision of the ocaml ports when the compiler version increases.
>> 
>> Does the revision have to be an integer, or will a string comparison do?
>> 
>> I was thinking of including the version of the OCaml port appended to the version of the library in question. That would guarantee binary compatibility, but I'm not sure how version comparisons would work in this situation.
>> 
>> e.g.
>> 
>> ocaml-3.11.1_2
>> caml-sqlite3-1.6.7-3.11.1_2
>> 
>> Or just bite the bullet and bump the whole set of revisions for all those dependent ports, argh :)
> 
> The revision has to be an integer, as does the epoch if you use it. But the version can be pretty much any string you want, if you want to include the ocaml version in there. For example, in dcraw and molden, we shove the release date into the version, too, since the developers of those software packages keep releasing new versions without changing the version number; looking at those portfiles might give you ideas.
> 
> I've also thought of doing the same for curl-ca-bundle. Its version number is the version of the curl source code (7.20.0), but it also downloads certdata.txt from Mozilla, a file whose version (currently 1.58) increases independently of curl's. So I considered giving curl-ca-bundle a version number like 7.20.0-1.58.
> 

I've finally gotten around to doing this, since OCaml-3.12 is out and all the dependent ports need checking. 

One question: what's the best way to figure out the current version of ocaml in the Portfile?

The obvious way is to do:

version             1.2.5-[exec ocamlc -version]

...but this fails if ocaml is not installed at the point the dependent port (in this case, caml-findlib) is installed.

I guess the other way is to hardcode the latest version of ocaml in the tree in the version number; can this be shared across all ocaml ports easily?

thanks
Anil



More information about the macports-dev mailing list