On Mon, Aug 10, 2015 at 5:10 AM, Mark Kettenis <[email protected]> wrote: > Jan Engelhardt schreef op 2015-08-10 10:29: > >> On Monday 2015-08-10 02:38, Brent Cook wrote: >>>> >>>> On Aug 9, 2015, at 10:07 AM, Jan Engelhardt <[email protected]> wrote: >>>> >>>>> We have released LibreSSL 2.2.2, which will be arriving in the >>>>> LibreSSL directory of your local OpenBSD mirror soon. >>>> >>>> >>>> The .pc files in libressl-2.2.2 upset the package mechanisms at hand, in >>>> particular rpm, where ':' is used to denote the (ancient concept of) >>>> epochs. >>>> >>>> [ 99s] Invalid version (double separator ':'): 35:0:0: >>>> mingw32(pkg:libcrypto) = 35:0:0 >>>> [ 99s] mingw32(pkg:libssl) = 35:0:0 >>>> [ 99s] mingw32(pkg:libtls) = 6:0:0 >>>> [ 99s] mingw32(pkg:openssl) = 2.2.2 >>>> >>>> The version: field in .pc files is (still) supposed to be the >>>> package version number, not the ABI number, and this was not a problem >>>> in libressl <= 2.2.1. >>> >>> >>> Thanks for the note, Jan. >>> >>> Right or wrong, I'm fairly certain the format has not changed any time >>> recently, e.g. here is the libtls .pc file from 2.2.1: >> >> >> So it turns out rpm does not consider it an error, just a warning (but it >> is the first time the warning showed up on the last screenful, the one >> paid most attention to). >> >>> I'm not so sure that this should be the package version number though. >>> Can you >>> point to some further documentation here? >> >> >> pkg-config(1): "Version: >> This should be the most-specific-possible package version >> string." >> >> * x:0:0 is not specific enough, as it would not change when the ABI-API >> stays unmodified between two releases. >> >> * the observation that all other .pc files I happen to have installed >> on my machine right now (some 194) all match \d+(\.\d+)*
Thanks. That matches my observation too. > > Right. Brent, looks like you used the libtool version specification here, > which is (primarily) about encoding the ABI. But for pkg-config it's > the API that's important. Hence the tradition to simply use the package > version number here, since that will change (by definition) when the API > changes, but will also change when there are just some bug fixes (which > people might want to check for). Configure scripts will often contain > checks > for the package version number to be larger or equal (using pkg-config > --atleast-version) to some version that is known to have all features > required for building the software. > > So I think all the .pc files in LibreSSL should simply use the LibreSSL > version number (2.2.2) like the openssl.pc does. This does mean that > checking > for individual libraries in LibreSSL version 2.2.2 and older will probably > busted, but such is life. Not sure how the colon-separated version strings > interact with --atleast-version. Might be worth checking that out. The main exception I found was that ffmpeg encoded ABI rather than API in its .pc files too, but your explanations make sense to me. I'm happy that people are noticing issues like this now, since it means the files are getting some use :) I'll make the change for the next release. > Cheers, > > Mark > > P.S. OpenBSD still ships with .pc files that have 1.0.0 as the version > number. We might want to change that at some point, but this should be > coordinated with the ports people. > >
