From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id B11EB1382C5 for ; Wed, 14 Apr 2021 07:45:45 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 7AF6AE0961; Wed, 14 Apr 2021 07:45:40 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 1C6B2E0891 for ; Wed, 14 Apr 2021 07:45:40 +0000 (UTC) To: "gentoo-dev@lists.gentoo.org" From: =?UTF-8?Q?Miroslav_=c5=a0ulc?= Subject: [gentoo-dev] unmasking java 11 on gentoo (for those that maintain packages where java is involved, either directly or conditionally) Message-ID: Date: Wed, 14 Apr 2021 09:45:30 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.9.1 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Archives-Salt: c1c4da84-67e2-4089-a1e3-369c368fd492 X-Archives-Hash: 71ec6a505f3245496d343c506ad21717 hi guys, we're still far from unmasking java 11 on gentoo, but i hope it will happen, one day (or another...). currently there is one issue across the whole gentoo tree that is a sure blocker and could and should be easily resolved. as java 11 does not compile bytecode older than 1.6, everything that specifies in deps virtual/(jdk|jre)-1.[2-5] will fail to compile and run. these deps should be lifted up to virtual/(jdk|jre)-1.8. also, packages that depend on virtual/(jdk|jre)-1.[67] should be lifted up to 1.8 as that is the lowest version that we support on gentoo and future versions of java might drop support for 1.6 and 1.7 as well, but it's not a blocker for now. just to get an idea how many ebuilds are affected, here's a short summary: $ git --no-pager grep -Eho "virtual/(jre|jdk)-1.[2-7]" | sort | uniq -c       1 virtual/jdk-1.2       7 virtual/jdk-1.3      68 virtual/jdk-1.4     119 virtual/jdk-1.5     444 virtual/jdk-1.6     136 virtual/jdk-1.7       1 virtual/jre-1.2       7 virtual/jre-1.3      68 virtual/jre-1.4     124 virtual/jre-1.5     460 virtual/jre-1.6     113 virtual/jre-1.7 here's the list of all packages where java 1.5 or older is used: $ git --no-pager grep -Elo "virtual/(jre|jdk)-1.[2-5]" | sed -E "s%/[^/]+$%%g" | sort | uniq app-accessibility/brltty app-accessibility/freetts app-crypt/jacksum app-emacs/jde app-misc/jitac app-office/hourglass app-text/hyperestraier dev-db/db-je dev-db/hsqldb dev-db/qdbm dev-java/ant-contrib dev-java/ant-owanttask dev-java/apple-java-extensions-bin dev-java/apt-mirror dev-java/aspectj dev-java/avalon-framework dev-java/bcel dev-java/bnd-junit dev-java/bndlib dev-java/browserlauncher2 dev-java/bytelist dev-java/cal10n dev-java/cdegroot-db dev-java/cldc-api dev-java/codemodel dev-java/commons-el dev-java/commons-fileupload dev-java/commons-lang dev-java/commons-math dev-java/commons-net dev-java/commons-pool dev-java/commons-validator dev-java/dtdparser dev-java/easymock-classextension dev-java/ehcache dev-java/ezmorph dev-java/fastinfoset dev-java/fscript dev-java/glassfish-persistence dev-java/gnu-classpath dev-java/gson dev-java/hamcrest-integration dev-java/hawtjni-runtime dev-java/helpgui dev-java/higlayout dev-java/htmlcleaner dev-java/ical4j dev-java/jansi dev-java/jarbundler dev-java/java-dep-check dev-java/java-getopt dev-java/javahelp dev-java/java-service-wrapper dev-java/javolution dev-java/jaxen dev-java/jbitcollider-core dev-java/jboss-logmanager dev-java/jcmdline dev-java/jcodings dev-java/jdbc2-stdext dev-java/jdbm dev-java/jebl dev-java/jgoodies-looks dev-java/jid3 dev-java/jinput dev-java/jisp dev-java/jlibeps dev-java/jnr-ffi dev-java/jnr-netdb dev-java/joni dev-java/jortho dev-java/jreleaseinfo dev-java/jstun dev-java/jta dev-java/junit-addons dev-java/junrar dev-java/jvmstat dev-java/jvyamlb dev-java/jzlib dev-java/j2ssh dev-java/ldapsdk dev-java/libg dev-java/libmatthew-java dev-java/l2fprod-common dev-java/miglayout dev-java/minlog dev-java/mockito dev-java/msv dev-java/nekohtml dev-java/odfdom dev-java/osgi-compendium dev-java/osgi-enterprise-api dev-java/osgi-foundation dev-java/pdf-renderer dev-java/picocontainer dev-java/prefuse dev-java/radeox dev-java/resin-servlet-api dev-java/sblim-cim-client dev-java/skinlf dev-java/slf4j-ext dev-java/spymemcached dev-java/squareness-jlf dev-java/stax-ex dev-java/stax2-api dev-java/sun-httpserver-bin dev-java/sun-jai-bin dev-java/sun-jimi dev-java/sun-jms dev-java/sun-jmx dev-java/swingx dev-java/swt dev-java/tagsoup dev-java/tapestry dev-java/validation-api dev-java/werken-xpath dev-java/wsdl4j dev-java/xmlstreambuffer dev-java/xom dev-java/zeus-jscl dev-lang/interprolog dev-lang/R dev-lang/xsb dev-libs/OpenNI dev-libs/OpenNI2 dev-lisp/abcl dev-ruby/rjb dev-tex/tex4ht dev-util/android-sdk-update-manager dev-util/jarwizard dev-util/oprofile games-board/domination games-board/megamek games-puzzle/pauker java-virtuals/jmx media-gfx/freewrl media-gfx/graphviz media-gfx/povtree media-libs/libcaca media-libs/libjpeg-turbo media-libs/libpano13 media-libs/mlt media-sound/entagged-tageditor media-sound/protux media-tv/channeleditor media-video/projectx net-analyzer/munin net-analyzer/neti net-dns/libidn net-libs/NativeThread net-misc/tigervnc net-nds/jxplorer sci-biology/amap sci-libs/cdf sci-libs/libsigrok sci-libs/libsvm sci-libs/plplot sci-misc/netlogo-bin sci-physics/jaxodraw sci-physics/thepeg sys-devel/gettext sys-libs/db i would like to ask you to revisit your packages where java 1.5 or lower is specified and lift the restriction up to 1.8. you might want to do the same for 1.7 and 1.8 or just leave it for the time when bumping the package. you must do the update in a revbump, as it affects the format of java (.jar) files generated and it would not be picked up if done in-place and would cause an issue in the future that the existing java files would not be supported at the runtime (if not recompiled) due to an obsolete format. the correct ways to specify the deps are those: in case you want to support java 1.8 and newer >=virtual/jdk-1.8:* >=virtual/jre-1.8:* in case the package does not work with java > 1.8 (still, i suggest we first try to resolve the issue before we use this restriction as it might cause some issues in the future) virtual/jdk:1.8 virtual/jre:1.8 if, during the update to java 1.8, you come across an issue that you would not be able to resolve, you can create a pr at github and assign it to me, i will help you resolve that issue. still, after unmasking java 11, there might be issues with compiling those packages with java 11 (one of the cases might be that java 11 does not provide some packages that java 8 does which can be resolved by adding the missing deps that should be packaged separately, other might be related to api changes). i suppose most of you won't want to bother with setting up java 11 for compiling your packages and testing and resolving that so imo we can for now just resolve the min java version and once, when java 11 is unmasked, and should any issues pop up, you can cc java team if not sure how to fix the issue and we can help to resolve it. for those that want to try java 11, here's what you need to do to unmask java 11 for compilation on your systems: # grep -r openjdk /etc/portage/* /etc/portage/package.use/multi:dev-java/openjdk gentoo-vm jvm_variant_client source /etc/portage/package.use/multi:dev-java/openjdk-bin gentoo-vm source /etc/portage/profile/package.use.mask/multi:dev-java/openjdk:11 -gentoo-vm /etc/portage/profile/package.use.mask/multi:dev-java/openjdk-bin:11 -gentoo-vm in fact, i have this setup for longer than i can remember (over a year definitely) and i'm a java dev myself so probably have more java packages on my systems than you do, and everything i need is working. guys, thank you for your attention and have a nice day. should you have any questions or need some clarifications, just let me know. fordfrog