[vlc-devel] [PATCH 2/5] bootstrap: check: allow pass for multiple versions

Robert Mourning robedmo.git at gmail.com
Thu Jun 1 01:05:11 CEST 2017

On Wed, May 31, 2017 at 7:52 AM, Jean-Baptiste Kempf <jb at videolan.org> wrote:
> Hello,
> On Wed, 31 May 2017, at 01:56, Robert Mourning wrote:
>> Allows passing multiple version arguments to the "check" function.
>> Each argument is checked according to previous rules (specified version
>> or newer, match major version exactly). Multiple major versions can
>> be configured to pass, each requiring a minimum minor version.
>> Adds version 3.1.0 to the "protoc" check, in addition to the existing
>> 2.6.0. Since version 3.1.0 is built if the check fails, versions
>> >= 3.1.0 should pass.
> I don't see where the need is.
> If you accept anything above 2.6.0, then 3.1.0 should work.

"check" currently requires the major version to match exactly. This behavior was
introduced in commit ee5fad6a354d4fde1bb98f715e0455c603599554 specifically
to force a 2.x version of protoc to be used, even if 3.x was installed
on the system.
At the time, protoc 2.6.1 was installed if the version check failed.

However, a bit over a month later the protoc version installed if the
check fails was
changed from 2.6.1 to 3.1.0 (commit 1e93312fabccb54253d7aa522843764c7269236b).

Any time after the latter commit, anyone with a 2.x protoc of at least
2.6.0 installed
on their system would pass the check and use that version to build, while anyone
with either no protoc or any other version (including 3.x) installed
would have failed
the check, causing 3.1.0 to be downloaded and built. Since this has
gone unchanged
for almost 6 months now I assume either version is sufficient.

I believe the ability to require an exact major version is useful for
the reasons given
in the former referenced commit, which is why I kept this behavior in tact when
evaluating each version argument passed to "check". However, in some cases it
is also useful to allow multiple major versions to pass to prevent unnecessary
download/build of tools; protoc seems to be one example.

More information about the vlc-devel mailing list