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


Reply via email to