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 |