Gentoo Archives: gentoo-dev

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

Replies