My thoughts on Slackware, life and everything

OpenJDK11 has been added to my repository

For ages, I have had Java 7 and Java 8 packages in my repository. I compile these versions of Java from the OpenJDK sources and using the icedtea framework.

People have been asking about more recent versions of Java, in particular Java 11 and Java 17 are required more and more by software projects. So far, I have been hesitant, since icedtea still only supports Java 7 and 8. Writing a new build script from scratch is a lot of work and Java gives little reward.

Eventually, I have decided to build Java 11 packages regardless, main reason being that LibreOffice seems to need it to enable functionality in Base. Therefore expect the next update of my LibreOffice packages to have been compiled against OpenJDK11.

Note that I will not be creating separate JRE (Java Runtime Environment) packages. The JDK (Java Development Kit) is what you’ll get from me. It contains everything you need to compile and run Java programs. Don’t forget to logout and login again after installing openjdk11, since it installs a profile script which is sourced during login.

Packages are on slackware.com or on my NL or US mirror.

I took some inspiration from the SBo script maintained by Lenard Spencer, to save time, but in the end my script ended up quite different. I credited Lenard in my own script though.

$ java -version
openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8)
OpenJDK 64-Bit Server VM (build 11.0.16+8, mixed mode)
$ javac -version
javac 11.0.16

Now let’s see if I can stay op top of security updates… Andrew Hughes has been doing a stellar job of informing me about the icedtea releases that prompted me to update my openjdk/openjre packages.

12 Comments

  1. Jen

    Awesome, thanks!

  2. Gustavo Brondani Schenkel

    Hi Eric, are you thinking in build the icedtea-web 1.8 version against openjdk8? Yours are still on 1.7

    • alienbob

      Hi Gustavo,
      Yes, it’s a good idea to refresh that old package. I’ll upload it later today, I just finished testing with my openjdk (Java 8) and openjdk11 packages.

  3. Marco

    Hee Erik,

    Er staan wat dodgy pingback links hierboven mijn reply.
    Ben je gehackt? 😉

    Groet, Marco

    • alienbob

      Nee dat was gewoon ik die niet goed had opgelet, de twee SPAM links zijn nu verwijderd.

  4. Eduardo

    Hi Eric. Thanks for this!
    I can report that your openjdk11 works without issues on OmegaT (my most used Java app). Thanks for this!

  5. Antonio

    Dear Sir,

    I downloaded packages but I have older version?
    firebird-1.5 optiplex-790 [Thu Sep 15] 02:59 $ java -version
    openjdk version “1.8.0_345”
    OpenJDK Runtime Environment (IcedTea 3.24.0) (Slackware)
    OpenJDK 64-Bit Server VM (build 25.345-b01, mixed mode)
    firebird-1.5 optiplex-790 [Thu Sep 15] 03:01 $ javac -version
    javac 1.8.0_345
    firebird-1.5 optiplex-790 [Thu Sep 15] 03:02 $
    Do I update to java11? or it is still ok to run 1.8.0_345 ?

    I want to ask a question regarding an opensource package called firebird-emu. It is a Ti-NSpire calculator emulator. website(https://github.com/nspire-emus/firebird/releases/tag/v1.5) I have tried compiling from source and have failed at it. Is there a way to generate a SlackBuild for it so that one can build a Slackware package for it? Thank you for all of your help. Thanks Antonio

    • alienbob

      Hi Antonio,

      You can either use Java 8 or Java 11. If your applications work with Java 8, there is no reason to upgrade to Java 11. I will keep providing (security) updates for both versions.

      As for firebird; I have no idea.

  6. Andrew Hughes

    Congratulations on a successful build of OpenJDK 11! I’ve seen your posts about your IcedTea builds in the past, and did wonder whether you had plans to support later versions (or already did)

    I’ve been in two minds about IcedTea releases for later JDK versions for some time. We do actually have Git branches for everything up to the upcoming 19, but they are just being used to house the tapset and desktop files at the moment, which are needed by the Fedora & RHEL builds but are not upstream.

    When we started IcedTea back in 2007, it was the only way to build OpenJDK in a completely FOSS environment and the only place with the usual autoconf build tools and public source code version control. OpenJDK releases at the time were basically bundles thrown over the wall by Sun, which couldn’t be built without binary plugs. Those plugs had to be replaced to get OpenJDK into Fedora and RHEL, which is where IcedTea came in.

    A lot has changed since then. Primarily, OpenJDK adopted Mercurial in late 2007 and has now moved to all the source code being managed on GitHub. A new build system was adopted for OpenJDK 8 and later, following the IcedTea lead in using autoconf.

    This has made wrapping OpenJDK 8 in IcedTea often feel like it is creating more work rather than easing things. With 7 and earlier, there was no configuration stage in the upstream build, so you need to know all sorts of make variables to manage the build. As you’ve seen with 11, things now work with the usual configure switches, just like IcedTea.

    I thus haven’t felt a push to do an IcedTea for later versions, particularly as it then means new releases every quarter which don’t provide much beyond what’s upstream. Now that upstream is a lot more welcoming of patches (and indeed, Red Hat actually maintain 8u & 11u upstream, and also support SAP on 17u), there is no reason to have something like IcedTea around to house such patches. This wasn’t the case when 8u / IcedTea 3 was released, but has really changed with Oracle’s adoption of the shorter six-month release cycle.

    If I do a release at all, it will likely be to aid bootstrapping, which I feel is still the main stumbling block. How did you build OpenJDK 11? Did you have to build 9 & 10 first? I do think there’s perhaps still a niche for someone wanting to install JDK 11 but only having a JDK 8 install, but it’s small because so much of the Java community is happy to pick up binaries for someone, rather than build the JDK from source.

    Feel free to get in touch if I can be of any help with packaging 11 (or later versions). The security updates happen on a regular cycle which is documented on Oracle’s website – https://www.oracle.com/security-alerts/ – and all JDKs get updates together, so if you see an update for IcedTea 3 / OpenJDK 8, you’ll need to be updating 11u as well. The next date is 2022-10-18.

    Incidentally, Azul just resigned from maintaining OpenJDK 7, so I’ll be doing one final release of IcedTea 2 this month and then finishing there. I don’t plan to try and do the security backports for it just in IcedTea!

    • alienbob

      Hi Andrew,

      OpenJDK11 needed a “JDK minus one” to bootstrap it, so I had to use a binary JDK10 provided by linuxfromscratch. That was unfortunate, but I did not know how to build a OpenJDK10 using my icedtea-based OpenjDK8. Probably was not going to be possible unless trying a JDK9 as intermediate? I should try if that is possible.
      I am very grateful for the effort you have been putting into icedtea all these past years – it has allowed me to support Slackware with solid OpenJDK 7 and 8 releases strictly on the heels of your security updates. And I am still updating my JDK 7 and 8 packages every time I get notified through the mailing list about a new icedtea.
      Java11 for Slackware is what people have been asking about a lot lately, and I have resisted this until LibreOffice lost functionality because of a lack of JDK11. I noticed all the branches in icedtea’s repository supporting the newer Java versions and wondered whether there would ever be a formal release, but now you provided the answer. I take it that the existence of icedtea has been instrumental in making the newer Java releases easier to build from source.

      And thanks for letting me know that the OpenJDK7 support is coming to an end. I doubt that there are still many people using it, so I will build new packages based on your last icedtea-2 and then retire them on the next security update.

  7. Adriano Valerio Lincoln Frare

    I am follow problem
    root@unraid:/boot/extra# installpkg openjdk11-11.0.20_8-i586-1alien.txz
    Verifying package openjdk11-11.0.20_8-i586-1alien.txz.
    Installing package openjdk11-11.0.20_8-i586-1alien.txz:
    PACKAGE DESCRIPTION:
    # openjdk11 (Java Platform Standard Edition Development Kit)
    #
    # openjdk11 is an open source implementation of the Java Platform,
    # Standard Edition, release 11.
    # The Java SDK software includes tools for developing, testing, and
    # running programs written in the Java programming language. This
    # package contains the Open Source version of the JDK, which holds
    # everything you need to run Java(TM).
    #
    # See also: https://openjdk.org/
    #
    Executing install script for openjdk11-11.0.20_8-i586-1alien.txz.
    Package openjdk11-11.0.20_8-i586-1alien.txz installed.
    root@unraid:/boot/extra# java
    bash: /usr/lib/java/bin/java: cannot execute: required file not found
    root@unraid:/boot/extra# java -version
    bash: /usr/lib/java/bin/java: cannot execute: required file not found
    root@unraid:/boot/extra#

    • alienbob

      You installed a 32bit Java package. Are you certain that the Unraid you are running is a 32bit OS?
      Also, Unraid is based on Slackware but I assume that it is not 100% compatible. If your OS is indeed 32bit, the error message “required file not found” may indicate that the location of your linker is different from Slackware.
      What does this command return, and is that an existing binary on your system:
      $ patchelf –print-interpreter /usr/lib/java/bin/java
      On my 32bit Slackware, it returns “/lib/ld-linux.so.2” which is a symlink to /lib/ld-2.33.so.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2024 Alien Pastures

Theme by Anders NorenUp ↑