icedtea-sound and java9

Andrew Hughes gnu.andrew at redhat.com
Thu Nov 2 18:13:26 UTC 2017


On 2 November 2017 at 12:30, Fridrich Strba <fridrich.strba at suse.com> wrote:
> Hello, good people,
>
> Continuing in trying to make work stuff that worked with jdk8 and
> somehow does not so well with jdk9, I massacred icedtea-sound. The
> result is the attached patch. With it, one can build icedtea-sound.jar
> as a modular jar with jdk9 and I was able to merge it into the jdk by
> using this command:
>
> /usr/lib64/jvm/java-9-openjdk-9/bin/jlink --module-path
> /usr/lib64/jvm/java-9-openjdk-9/jmods:/home/fstrba/devel-cvs/icedtea-sound
> --add-modules
> "org.icedtea.sound,java.base,java.datatransfer,java.logging,java.activation,java.compiler,jdk.unsupported,java.rmi,java.transaction,java.xml,java.prefs,java.desktop,java.security.sasl,java.naming,java.corba,java.instrument,java.management,java.management.rmi,java.scripting,java.xml.ws.annotation,java.sql,java.sql.rowset,java.security.jgss,java.xml.crypto,java.se,java.xml.bind,jdk.httpserver,java.xml.ws,java.se.ee,java.smartcardio,jdk.accessibility,jdk.internal.vm.ci,jdk.management,jdk.internal.vm.compiler,jdk.aot,jdk.internal.jvmstat,jdk.attach,jdk.charsets,jdk.compiler,jdk.crypto.ec,jdk.crypto.cryptoki,jdk.dynalink,jdk.internal.ed,jdk.editpad,jdk.hotspot.agent,jdk.incubator.httpclient,jdk.internal.le,jdk.internal.opt,jdk.jartool,jdk.javadoc,jdk.jcmd,jdk.management.agent,jdk.jconsole,jdk.jdeps,jdk.jdwp.agent,jdk.jdi,jdk.jlink,jdk.jshell,jdk.jsobject,jdk.jstatd,jdk.localedata,jdk.naming.dns,jdk.naming.rmi,jdk.net,jdk.pack,jdk.security.jgss,jdk.policytool,jdk.rmic,jdk.scripting.nashorn,jdk.scripting.nashorn.shell,jdk.sctp,jdk.security.auth,jdk.xml.bind,jdk.xml.dom,jdk.xml.ws,jdk.zipfs"
> --output /home/fstrba/devel-cvs/icedtea-sound/new_jdk
>
> The resulting jdk9 in /home/fstrba/devel-cvs/icedtea-sound/new_jdk can
> run without problem a simple test application JavaSoundDemo that I found
> on web. I set the pulseaudio.debugLevel=Verbose, and it shows me that
> PulseAudioMixerProvider is running.
>
> the module list, I got it by sourcing the release file in the root of
> the jdk and composing it using the space-separated list in variable MODULES:
>
> NEWMODULES=org.icedtea.sound; for i in $MODULES; do
> NEWMODULES="$NEWMODULES,$i"; done; echo $NEWMODULES
>
> The attached patch is a bit overkeen, since I crafted it knowing that I
> will apply it only with java9, so it is detecting the jdk9's java_home
> and checks whether the jdk can build with source and target 9. Also, I
> removed any way to build with ecj, since we want a modular jar. Another
> thing is the deprecated javah tool: I modified the build so that the
> header files be generated using the javac's -h option.
>
> I don't know whether it interests anybody, but as usual, I don't want
> this kind of things rot on my disk only.
>
> Cheers
>
> Fridrich

Thanks for the patch. It's certainly interesting. I do think we could support
OpenJDK >= 9 without destroying support for earlier versions though. I'll
look into it when I get chance to look at 9 / IcedTea 4.x.

Are all those modules really necessary in the command above? That looks
horrible.

Thanks,
-- 
Andrew :)

Senior Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

Web Site: http://fuseyism.com
Twitter: https://twitter.com/gnu_andrew_java
PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04  C5A0 CFDA 0F9B 3596 4222


More information about the distro-pkg-dev mailing list