version numbers for distribution builds? (original) (raw)

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Fri Oct 27 10:46:51 UTC 2017


On 2017-10-27 12:21, David Holmes wrote:

Adding build-dev.

David On 27/10/2017 9:13 AM, Matthias Klose wrote: On 27.10.2017 00:56, Matthias Klose wrote:

Hi,

I recently learned that I should configure an openjdk build with an empty -with-version-pre string, and with any package information stuffed into the --with-version-opt argument. --with-version-pre='' --with-version-opt='Debian-9.0.1+11-1' 9.0.1+11 is what I call the upstream version, directly derived from the tag in the mercurial repository.  The part after the dash is the packaging release and gets incremented when more than upload to the distribution is based on the same upstream version. However using that I get configure: WARNING: --with-version-opt value has been sanitized from 'Debian-9.0.1+11-1' to 'Debian-9.0.111-1' which makes the version string somehow cryptic.  Why is there a reason that the version string is mangled?  Is there a recommendation how to form the version for a source release? $ java -version openjdk version "9.0.1" OpenJDK Runtime Environment (build 9.0.1+0-Debian-9.0.111-1) OpenJDK 64-Bit Server VM (build 9.0.1+0-Debian-9.0.111-1, mixed mode) Omar suggested on irc to use --with-version-pre='' --with-version-build=11 --with-version-opt='Debian.1 however that will lead to 9.0.1+11-Debian.1, which doesn't match the package version either.  It looks like this whole versioning schema is only fit for upstream builds, and doesn't address any versioning in the downstream builds. Maybe I'm missing something, but how can I include the string Debian-9.0.1+11-1 into that build information? Unfortunately, you can't. JEP 223 specifices what a valid Java version string looks like: http://openjdk.java.net/jeps/223

I believe your intention is correct to add the distribution versioning to the "opt" part, but that is limited to containing ([-a-zA-Z0-9.]+) according to JEP 223, so it cannot contain a "+". (This is due to the fact that "+" has a special meaning as the build prefix, and without this restriction, version strings could become ambigious to parse.

If you want the full version number repeated in the opt string, I recommend replacing the "+" with a "-".

Otherwise I'd recommend Omar's suggestion. I believe that was the intention of the JEP 223 design. It will contain the version number of the JDK, the build number, and the additional (opt) part saying that this is a Debian build, with a Debian-specific version numbering of 1.

/Magnus

Matthias



More information about the jdk-dev mailing list