<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.freebsd.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.freebsd.org/bugzilla/"
          
          maintainer="bugmeister@FreeBSD.org"
>

    <bug>
          <bug_id>293467</bug_id>
          
          <creation_ts>2026-02-26 16:50:17 +0000</creation_ts>
          <short_desc>Mk/Uses/java.mk: add support for JAVA_VERSION=default and JAVA_VERSION=latest</short_desc>
          <delta_ts>2026-03-27 15:45:09 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Ports &amp; Packages</product>
          <component>Package Infrastructure</component>
          <version>Latest</version>
          <rep_platform>Any</rep_platform>
          <op_sys>Any</op_sys>
          <bug_status>Closed</bug_status>
          <resolution>Overcome By Events</resolution>
          
          <see_also>https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289858</see_also>
    
    <see_also>https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272855</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>---</priority>
          <bug_severity>Affects Many People</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Marakasov">amdmi3</reporter>
          <assigned_to name="freebsd-java (Nobody)">java</assigned_to>
          <cc>ronald</cc>
    
    <cc>vvd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1409087</commentid>
    <comment_count>0</comment_count>
      <attachid>268380</attachid>
    <who name="Dmitry Marakasov">amdmi3</who>
    <bug_when>2026-02-26 16:50:17 +0000</bug_when>
    <thetext>Created attachment 268380
Patch

Currently, USES=java picks openjdk version inconsistently to what we do for other ecosystems, preferring ancient versions and ignoring value set in bsd.default-versions.mk. Apart from using outdated openjdk, this behavior tends to bring unnecessary numerous openjdk versions to the system (when many java ports with different JAVA_VERSION settings) and leaves maintainers wondering about which JAVA_VERSION to use.

This patch adds support for JAVA_VERSION=default (which translates the the version from bsd.default-version.mk or later) and JAVA_VERSION=latest (which translates to the latest available version).

This change is non-breaking and does not affect existing ports, but allows ports to gradually switch to JAVA_VERSION=default, which will reduce the assortment of required openjdk versions and bring in newer one. In the future I hope that we will switch to it by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409090</commentid>
    <comment_count>1</comment_count>
    <who name="Vladimir Druzenko">vvd</who>
    <bug_when>2026-02-26 17:13:18 +0000</bug_when>
    <thetext>Check this bug #289858.
IMHO, something like priority would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409092</commentid>
    <comment_count>2</comment_count>
    <who name="Vladimir Druzenko">vvd</who>
    <bug_when>2026-02-26 17:23:19 +0000</bug_when>
    <thetext>Also default java just updated to 21 in bug #272855.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409093</commentid>
    <comment_count>3</comment_count>
    <who name="Ronald Klop">ronald</who>
    <bug_when>2026-02-26 17:25:12 +0000</bug_when>
    <thetext>I like the idea of your change.
The JAVA_VERSION=latest seems a nice new feature to me.

What I don’t understand, how is JAVA_VERSION=default different from not setting JAVA_VERSION at all?

And do you have an example of “preferring ancient versions and ignoring value set in bsd.default-versions.mk”? I saw a port with JAVA_VERSION=17+ correctly choosing openjdk21 now 21 is the default.
https://www.freshports.org/astro/traccar/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409094</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry Marakasov">amdmi3</who>
    <bug_when>2026-02-26 17:35:01 +0000</bug_when>
    <thetext>I&apos;m generally against any logic which relies on which ports are installed - this makes behavior inconsistent between different port install orders and between ports and packages, and is still inconsistent to how we handle other ecosystems (and that we do by pinning exact version of e.g. python).

In fact, while my `JAVA_VERSION=default` equals to `JAVA_VERSION=${JAVA_DEFAULT}+` to stay closer to status quo where `X+` are used in most ports, IMO it would make more sense to pin specific version (`JAVA_VERSION=${JAVA_DEFAULT}`) as long as `JAVA_DEFAULT` is being reliably kept up to date.

That said, it doesn&apos;t look that these patches are conflicting - my patch is about choosing a version range (effecively limiting it from below), and a patch from 289858 is about picking a version in that range.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409095</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry Marakasov">amdmi3</who>
    <bug_when>2026-02-26 17:37:09 +0000</bug_when>
    <thetext>(In reply to Ronald Klop from comment #3)
&gt; What I don’t understand, how is JAVA_VERSION=default different from not setting &gt; JAVA_VERSION at all?

Not setting JAVA_VERSION at all currently equals to 8+, which picks openjdk8 if no newer one is installed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409096</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry Marakasov">amdmi3</who>
    <bug_when>2026-02-26 17:41:56 +0000</bug_when>
    <thetext>&gt; And do you have an example of “preferring ancient versions and ignoring value set in bsd.default-versions.mk”? I saw a port with JAVA_VERSION=17+ correctly choosing openjdk21 now 21 is the default.

Oh, that seem to have changed just a moment ago.

&gt; Also default java just updated to 21 in bug #272855.

Not sure if either patch is needed any more.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268380</attachid>
            <date>2026-02-26 16:50:17 +0000</date>
            <delta_ts>2026-02-26 16:50:17 +0000</delta_ts>
            <desc>Patch</desc>
            <filename>latest-java.patch</filename>
            <type>text/plain</type>
            <size>2612</size>
            <attacher name="Dmitry Marakasov">amdmi3</attacher>
            
              <data encoding="base64">Y29tbWl0IGI0YjBhMjEyMzlmYzhiOGViN2Y0Mzg5MzNmZjhlNDc2ZTlhNGJkYzMKQXV0aG9yOiBE
bWl0cnkgTWFyYWthc292IDxhbWRtaTNARnJlZUJTRC5vcmc+CkRhdGU6ICAgVHVlIEZlYiAyNCAy
Mzo0MDo1MSAyMDI2ICswMzAwCgogICAgTWsvVXNlcy9qYXZhLm1rOiBTdXBwb3J0IGRlZmF1bHQg
YW5kIGxhdGVzdCBhcyBKQVZBX1ZFUlNJT04KCmRpZmYgLS1naXQgQ0hBTkdFUyBDSEFOR0VTCmlu
ZGV4IDIyMDEwZDQ5MmFhNi4uOGJhOGEwZDk0Zjc1IDEwMDY0NAotLS0gQ0hBTkdFUworKysgQ0hB
TkdFUwpAQCAtMTAsNiArMTAsMTUgQEAgaW4gdGhlIHJlbGVhc2Ugbm90ZXMgYW5kL29yIHBsYWNl
ZCBpbnRvIFVQREFUSU5HLgogCiBBbGwgcG9ydHMgY29tbWl0dGVycyBhcmUgYWxsb3dlZCB0byBj
b21taXQgdG8gdGhpcyBmaWxlLgogCisyMDI2MDIyNjoKK0FVVEhPUjogYW1kbWkzQEZyZWVCU0Qu
b3JnCisKKyAgSkFWQV9WRVJTSU9OIG5vdyBhbGxvd3MgImRlZmF1bHQiIGFuZCAibGF0ZXN0IiBz
ZXR0aW5ncy4KKyAgTWFpbnRhaW5lcnMgYXJlIGVuY291cmFnZWQgdG8gc3dpdGNoIHRoZWlyIHBv
cnRzIHRvICJkZWZhdWx0IgorICB1bmxlc3Mgc3BlY2lmaWMgb2xkZXIgb3IgbmV3ZXIgdmVyc2lv
biBpcyByZXF1aXJlZCwgdG8gYXZvaWQKKyAgcG9ydHMgZnJvbSB1c2luZyB1bm5lY2Vzc2FyeSBv
bGQgamF2YSB2ZXJzaW9uLCBhbmQgdW5uZWNlc3NhcnkKKyAgYnJpbmdpbmcgbXVsdGlwbGUgdmVy
c2lvbnMgb2Ygb3Blbmpkay4KKwogMjAyNTExMTE6CiBBVVRIT1I6IGtpd2lARnJlZUJTRC5vcmcK
IApkaWZmIC0tZ2l0IE1rL1VzZXMvamF2YS5tayBNay9Vc2VzL2phdmEubWsKaW5kZXggZjM5YWQw
MjlmODRkLi4zNWU1NmZhMDFhZjAgMTAwNjQ0Ci0tLSBNay9Vc2VzL2phdmEubWsKKysrIE1rL1Vz
ZXMvamF2YS5tawpAQCAtMjksOCArMjksMTEgQEAKICMKICMgSkFWQV9WRVJTSU9OCQlMaXN0IG9m
IHNwYWNlLXNlcGFyYXRlZCBzdWl0YWJsZSBqYXZhIHZlcnNpb25zIGZvciB0aGUKICMJCQlwb3J0
LiBBbiBvcHRpb25hbCAiKyIgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IGEgcmFuZ2Ugb2YKLSMJCQl2
ZXJzaW9ucy4gKGFsbG93ZWQgdmFsdWVzOiA4WytdIDExWytdIDE3WytdCi0jCQkJMjBbK10gMjFb
K10gMjJbK10gMjNbK10gMjRbK10gMjVbK10pCisjCQkJdmVyc2lvbnMuIEFsdGVybmF0aXZlbHks
IGEga2V5d29yZCAiZGVmYXVsdCIgdG8gdXNlCisjCQkJZGVmYXVsdCB2ZXJzaW9uIGZyb20gYnNk
LmRlZmF1bHQtdmVyc2lvbi5tayAob3IgbGF0ZXIpIG9yCisjCQkJImxhdGVzdCIgdG8gdXNlIHRo
ZSBsYXRlc3QgYXZhaWxhYmxlIHZlcnNpb24uIChhbGxvd2VkCisjCQkJdmFsdWVzOiBkZWZhdWx0
IGxhdGVzdCA4WytdIDExWytdIDE3WytdIDIwWytdIDIxWytdIDIyWytdCisjCQkJMjNbK10gMjRb
K10gMjVbK10pCiAjCiAjIEpBVkFfT1MJCUxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIHN1aXRhYmxl
IEpESyBwb3J0IG9wZXJhdGluZyBzeXN0ZW1zCiAjCQkJZm9yIHRoZSBwb3J0LiAoYWxsb3dlZCB2
YWx1ZXM6IG5hdGl2ZSBsaW51eCkKQEAgLTI3NSw3ICsyNzgsNyBAQCBjaGVjay1tYWtldmFyczo6
CiAjIEVycm9yIGNoZWNraW5nOiBKQVZBX1ZFUlNJT04KIC4gIGlmIGRlZmluZWQoSkFWQV9WRVJT
SU9OKQogLiAgICBpZiAhZGVmaW5lZChfSkFWQV9WRVJTSU9OX0xJU1RfUkVHRVhQKQotX0pBVkFf
VkVSU0lPTl9MSVNUX1JFR0VYUD0JJHtfSkFWQV9WRVJTSU9OX0xJU1Q6Qy9cKy9cXCsvOnRzfH0K
K19KQVZBX1ZFUlNJT05fTElTVF9SRUdFWFA9CSR7X0pBVkFfVkVSU0lPTl9MSVNUOkMvXCsvXFwr
Lzp0c3x9fGxhdGVzdHxkZWZhdWx0CiAuICAgIGVuZGlmCiAKIGNoZWNrLW1ha2V2YXJzOjoKQEAg
LTMxMCw3ICszMTMsMTEgQEAgY2hlY2stbWFrZXZhcnM6OgogIyBKREsgZGVwZW5kZW5jeSBzZXR0
aW5nCiAuCQl1bmRlZiBfSkFWQV9QT1JUU19JTlNUQUxMRUQKIC4JCXVuZGVmIF9KQVZBX1BPUlRT
X1BPU1NJQkxFCi0uICBpZiBkZWZpbmVkKEpBVkFfVkVSU0lPTikKKy4gIGlmIGRlZmluZWQoSkFW
QV9WRVJTSU9OKSAmJiAke0pBVkFfVkVSU0lPTn0gPT0gImxhdGVzdCIKK19KQVZBX1ZFUlNJT049
CSR7X19KQVZBX1ZFUlNJT05fTElTVDpPcm46WzFdfQorLiAgZWxpZiBkZWZpbmVkKEpBVkFfVkVS
U0lPTikgJiYgJHtKQVZBX1ZFUlNJT059ID09ICJkZWZhdWx0IgorX0pBVkFfVkVSU0lPTj0JJHtK
QVZBX0RFRkFVTFQ6Uy8kLysvOlMvXjgrLzggMTErLzpTL14xMSsvMTEgMTcrLzpTL14xNysvMTcg
MjArLzpTL14yMCsvMjAgMjErLzpTL14yMSsvMjEgMjIrLzpTL14yMisvMjIgMjMrLzpTL14yMysv
MjMgMjQrLzpTL14yNCsvMjQgMjUrLzpTL14yNSsvMjUvfQorLiAgZWxpZiBkZWZpbmVkKEpBVkFf
VkVSU0lPTikKIF9KQVZBX1ZFUlNJT049CSR7SkFWQV9WRVJTSU9OOlMvXjgrLzggMTErLzpTL14x
MSsvMTEgMTcrLzpTL14xNysvMTcgMjArLzpTL14yMCsvMjAgMjErLzpTL14yMSsvMjEgMjIrLzpT
L14yMisvMjIgMjMrLzpTL14yMysvMjMgMjQrLzpTL14yNCsvMjQgMjUrLzpTL14yNSsvMjUvfQog
LiAgZWxzZQogX0pBVkFfVkVSU0lPTj0JJHtfX0pBVkFfVkVSU0lPTl9MSVNUfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>