Gentoo Archives: gentoo-dev

From: "Miroslav Šulc" <fordfrog@g.o>
To: "gentoo-dev@l.g.o" <gentoo-dev@l.g.o>
Subject: [gentoo-dev] unmasking java 11 on gentoo (for those that maintain packages where java is involved, either directly or conditionally)
Date: Wed, 14 Apr 2021 07:45:45
Message-Id: e9bfcf15-cde5-fc4f-7a61-a4a6c47a4f37@gentoo.org
1 hi guys,
2
3 we're still far from unmasking java 11 on gentoo, but i hope it will
4 happen, one day (or another...). currently there is one issue across the
5 whole gentoo tree that is a sure blocker and could and should be easily
6 resolved. as java 11 does not compile bytecode older than 1.6,
7 everything that specifies in deps virtual/(jdk|jre)-1.[2-5] will fail to
8 compile and run. these deps should be lifted up to
9 virtual/(jdk|jre)-1.8. also, packages that depend on
10 virtual/(jdk|jre)-1.[67] should be lifted up to 1.8 as that is the
11 lowest version that we support on gentoo and future versions of java
12 might drop support for 1.6 and 1.7 as well, but it's not a blocker for now.
13
14 just to get an idea how many ebuilds are affected, here's a short summary:
15
16 $ git --no-pager grep -Eho "virtual/(jre|jdk)-1.[2-7]" | sort | uniq -c
17       1 virtual/jdk-1.2
18       7 virtual/jdk-1.3
19      68 virtual/jdk-1.4
20     119 virtual/jdk-1.5
21     444 virtual/jdk-1.6
22     136 virtual/jdk-1.7
23       1 virtual/jre-1.2
24       7 virtual/jre-1.3
25      68 virtual/jre-1.4
26     124 virtual/jre-1.5
27     460 virtual/jre-1.6
28     113 virtual/jre-1.7
29
30 here's the list of all packages where java 1.5 or older is used:
31
32 $ git --no-pager grep -Elo "virtual/(jre|jdk)-1.[2-5]" | sed -E
33 "s%/[^/]+$%%g" | sort | uniq
34 app-accessibility/brltty
35 app-accessibility/freetts
36 app-crypt/jacksum
37 app-emacs/jde
38 app-misc/jitac
39 app-office/hourglass
40 app-text/hyperestraier
41 dev-db/db-je
42 dev-db/hsqldb
43 dev-db/qdbm
44 dev-java/ant-contrib
45 dev-java/ant-owanttask
46 dev-java/apple-java-extensions-bin
47 dev-java/apt-mirror
48 dev-java/aspectj
49 dev-java/avalon-framework
50 dev-java/bcel
51 dev-java/bnd-junit
52 dev-java/bndlib
53 dev-java/browserlauncher2
54 dev-java/bytelist
55 dev-java/cal10n
56 dev-java/cdegroot-db
57 dev-java/cldc-api
58 dev-java/codemodel
59 dev-java/commons-el
60 dev-java/commons-fileupload
61 dev-java/commons-lang
62 dev-java/commons-math
63 dev-java/commons-net
64 dev-java/commons-pool
65 dev-java/commons-validator
66 dev-java/dtdparser
67 dev-java/easymock-classextension
68 dev-java/ehcache
69 dev-java/ezmorph
70 dev-java/fastinfoset
71 dev-java/fscript
72 dev-java/glassfish-persistence
73 dev-java/gnu-classpath
74 dev-java/gson
75 dev-java/hamcrest-integration
76 dev-java/hawtjni-runtime
77 dev-java/helpgui
78 dev-java/higlayout
79 dev-java/htmlcleaner
80 dev-java/ical4j
81 dev-java/jansi
82 dev-java/jarbundler
83 dev-java/java-dep-check
84 dev-java/java-getopt
85 dev-java/javahelp
86 dev-java/java-service-wrapper
87 dev-java/javolution
88 dev-java/jaxen
89 dev-java/jbitcollider-core
90 dev-java/jboss-logmanager
91 dev-java/jcmdline
92 dev-java/jcodings
93 dev-java/jdbc2-stdext
94 dev-java/jdbm
95 dev-java/jebl
96 dev-java/jgoodies-looks
97 dev-java/jid3
98 dev-java/jinput
99 dev-java/jisp
100 dev-java/jlibeps
101 dev-java/jnr-ffi
102 dev-java/jnr-netdb
103 dev-java/joni
104 dev-java/jortho
105 dev-java/jreleaseinfo
106 dev-java/jstun
107 dev-java/jta
108 dev-java/junit-addons
109 dev-java/junrar
110 dev-java/jvmstat
111 dev-java/jvyamlb
112 dev-java/jzlib
113 dev-java/j2ssh
114 dev-java/ldapsdk
115 dev-java/libg
116 dev-java/libmatthew-java
117 dev-java/l2fprod-common
118 dev-java/miglayout
119 dev-java/minlog
120 dev-java/mockito
121 dev-java/msv
122 dev-java/nekohtml
123 dev-java/odfdom
124 dev-java/osgi-compendium
125 dev-java/osgi-enterprise-api
126 dev-java/osgi-foundation
127 dev-java/pdf-renderer
128 dev-java/picocontainer
129 dev-java/prefuse
130 dev-java/radeox
131 dev-java/resin-servlet-api
132 dev-java/sblim-cim-client
133 dev-java/skinlf
134 dev-java/slf4j-ext
135 dev-java/spymemcached
136 dev-java/squareness-jlf
137 dev-java/stax-ex
138 dev-java/stax2-api
139 dev-java/sun-httpserver-bin
140 dev-java/sun-jai-bin
141 dev-java/sun-jimi
142 dev-java/sun-jms
143 dev-java/sun-jmx
144 dev-java/swingx
145 dev-java/swt
146 dev-java/tagsoup
147 dev-java/tapestry
148 dev-java/validation-api
149 dev-java/werken-xpath
150 dev-java/wsdl4j
151 dev-java/xmlstreambuffer
152 dev-java/xom
153 dev-java/zeus-jscl
154 dev-lang/interprolog
155 dev-lang/R
156 dev-lang/xsb
157 dev-libs/OpenNI
158 dev-libs/OpenNI2
159 dev-lisp/abcl
160 dev-ruby/rjb
161 dev-tex/tex4ht
162 dev-util/android-sdk-update-manager
163 dev-util/jarwizard
164 dev-util/oprofile
165 games-board/domination
166 games-board/megamek
167 games-puzzle/pauker
168 java-virtuals/jmx
169 media-gfx/freewrl
170 media-gfx/graphviz
171 media-gfx/povtree
172 media-libs/libcaca
173 media-libs/libjpeg-turbo
174 media-libs/libpano13
175 media-libs/mlt
176 media-sound/entagged-tageditor
177 media-sound/protux
178 media-tv/channeleditor
179 media-video/projectx
180 net-analyzer/munin
181 net-analyzer/neti
182 net-dns/libidn
183 net-libs/NativeThread
184 net-misc/tigervnc
185 net-nds/jxplorer
186 sci-biology/amap
187 sci-libs/cdf
188 sci-libs/libsigrok
189 sci-libs/libsvm
190 sci-libs/plplot
191 sci-misc/netlogo-bin
192 sci-physics/jaxodraw
193 sci-physics/thepeg
194 sys-devel/gettext
195 sys-libs/db
196
197 i would like to ask you to revisit your packages where java 1.5 or lower
198 is specified and lift the restriction up to 1.8. you might want to do
199 the same for 1.7 and 1.8 or just leave it for the time when bumping the
200 package. you must do the update in a revbump, as it affects the format
201 of java (.jar) files generated and it would not be picked up if done
202 in-place and would cause an issue in the future that the existing java
203 files would not be supported at the runtime (if not recompiled) due to
204 an obsolete format.
205
206 the correct ways to specify the deps are those:
207
208 in case you want to support java 1.8 and newer
209 >=virtual/jdk-1.8:*
210 >=virtual/jre-1.8:*
211
212 in case the package does not work with java > 1.8 (still, i suggest we
213 first try to resolve the issue before we use this restriction as it
214 might cause some issues in the future)
215 virtual/jdk:1.8
216 virtual/jre:1.8
217
218 if, during the update to java 1.8, you come across an issue that you
219 would not be able to resolve, you can create a pr at github and assign
220 it to me, i will help you resolve that issue.
221
222 still, after unmasking java 11, there might be issues with compiling
223 those packages with java 11 (one of the cases might be that java 11 does
224 not provide some packages that java 8 does which can be resolved by
225 adding the missing deps that should be packaged separately, other might
226 be related to api changes). i suppose most of you won't want to bother
227 with setting up java 11 for compiling your packages and testing and
228 resolving that so imo we can for now just resolve the min java version
229 and once, when java 11 is unmasked, and should any issues pop up, you
230 can cc java team if not sure how to fix the issue and we can help to
231 resolve it.
232
233 for those that want to try java 11, here's what you need to do to unmask
234 java 11 for compilation on your systems:
235
236 # grep -r openjdk /etc/portage/*
237 /etc/portage/package.use/multi:dev-java/openjdk gentoo-vm
238 jvm_variant_client source
239 /etc/portage/package.use/multi:dev-java/openjdk-bin gentoo-vm source
240 /etc/portage/profile/package.use.mask/multi:dev-java/openjdk:11 -gentoo-vm
241 /etc/portage/profile/package.use.mask/multi:dev-java/openjdk-bin:11
242 -gentoo-vm
243
244 in fact, i have this setup for longer than i can remember (over a year
245 definitely) and i'm a java dev myself so probably have more java
246 packages on my systems than you do, and everything i need is working.
247
248
249 guys, thank you for your attention and have a nice day. should you have
250 any questions or need some clarifications, just let me know.
251
252
253 fordfrog

Replies