Summary: | dev-java/openjfx: next generation client application platform | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | gerion <gerion.entrup> |
Component: | [OLD] Java | Assignee: | Java team <java> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | aditsu, bribbers, carlphilippreh, dschridde+gentoobugs, gentoo, ikelos, joakim.tjernlund, jrmalaq, jscinoz, netbox253, orzel, phantom4, polynomial-c, sachse, sam, sven.koehler, t-mo, zmedico |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 565048 | ||
Attachments: | Hacky openjfx ebuild |
Description
gerion
2015-04-27 18:27:06 UTC
What is the progress with this bug? Here's the arch PKGBUILD: https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/java-openjfx (In reply to Rok Kralj from comment #1) > What is the progress with this bug? Here's the arch PKGBUILD: > > https://projects.archlinux.org/svntogit/packages.git/tree/trunk/ > PKGBUILD?h=packages/java-openjfx https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/java-openjfx#n49 The gradle binary shipped with OpenJFX gets called out of the blue. No, it's not a very good example of compiling a software from scratch and packaging it. This is required by swift-explorer (https://github.com/roikku/swift-explorer/issues/54) *** Bug 597928 has been marked as a duplicate of this bug. *** Hello, Can this be investigated? If it is a poor fit for Portage perhaps the OpenJDK/OpenJFX developers can be notified. OpenJFX was, last I was made aware, going to be included in Java 9. Cheers, R0b0t1 (In reply to R030t1 from comment #5) > Can this be investigated? If it is a poor fit for Portage perhaps the > OpenJDK/OpenJFX developers can be notified. It's not a priority at the moment, the overall packaging situation is in crisis. Most Java software is a poor fit for Portage. (In reply to R030t1 from comment #5) > OpenJFX was, last I was made aware, going to be included in Java 9. Oracle have been bundling it with their JRE for ages. I don't know if it is normally bundled with OpenJDK and I don't know whether IcedTea will handle it or simply point you to the upstream project. It would probably work better as a separate package. Here's how arch linux builds it: https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/java-openjfx It's built with gradle. Only a couple of gentoo ebuilds currently use gradle: https://gitweb.gentoo.org/repo/gentoo.git/tree/app-misc/freeplane/freeplane-1.5.18.ebuild https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-mathematics/geogebra/geogebra-5.0.339.0_p20170308-r1.ebuild (In reply to James Le Cuirot from comment #6) > > It's not a priority at the moment Best explanation of the the java situation > the overall packaging situation is in crisis. Because of people standing in others way. This is only a crisis on Gentoo as it does not exist else where. I have almost finished replacing every needed Java package in dev-java. It is not my fault that work was done outside of Gentoo. Or that Gentoo will not benefit. > Most Java software is a poor fit for Portage. Complete lies.... It is quite ideal in many ways. My Netbeans 9 build is tremendously simpler than upstreams. It is the result of non Java programmers etc doing the work on Gentoo. Most is quite trivial with proper eclasses etc. I showed that to other java programmers on netbeans dev list. Sadly portage is not really that much of an option to say replace maven, gradle etc. Though if portage could be adopted it could be a ideal build system for Java on all OS, replacing maven, gradle, ivy, etc. > I don't know if it isnormally bundled with OpenJDK Um... Yes you know for a fact it is not part of OpenJDK. Thus its name, OpenJavaFX. It was discussed in IRC many times.... > and I don't know whether IcedTea will handle it or simply point you to the upstream project. You have seen me talking to the icedteam maintainer several times in IRC about JavaFX. There are no plans. RedHat has no interest in JavaFX. They have no one working on OpenJavaFX. No one will package that outside of Gentoo as part of another project. It hasn't happened on Gentoo, because no one cares enough to that or other work. > It would probably work better as a separate package. That is the only way it will ever come about. gnu_andrew has never expressed interest of his own or his employer of adding OpenJFX to Icedtea. I have said many times why I do not consider IcedTea nor OpenJDK to be a replacement for Oracle as it is missing stuff. Maybe not stuff you use, but stuff Java programmers do use. I have apps in Swing and JavaFX, still porting some swing to JavaFX. Given the fact that no one spends their time on icedtea. That gnu_andrew is doing all work there. There will not be a icedtea:9 or openjdk:9 till gnu_andrew does that for Gentoo as he has done all others. The remaining work is much less and just refinement to get into tree. Not the core work. Thus no ETA for icedtea:9. Much less OpenJavaFX. I do not see OpenJavaFX ever happening for Gentoo. FYI EA builds for 10 are out that have JavaFX :) http://jdk.java.net/10/ (In reply to Zac Medico from comment #7) > Here's how arch linux builds it: > > https://git.archlinux.org/svntogit/packages.git/tree/trunk/ > PKGBUILD?h=packages/java-openjfx > > It's built with gradle. Which means it would need to be built without for Gentoo. > Only a couple of gentoo ebuilds currently use gradle: > > https://gitweb.gentoo.org/repo/gentoo.git/tree/app-misc/freeplane/freeplane- > 1.5.18.ebuild > https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-mathematics/geogebra/ > geogebra-5.0.339.0_p20170308-r1.ebuild Those are likely incorrect and/or did not have to use gradle. It is not always easy to package without Gradle Maven, or Ant, but very possible in most all situations. Usually trying to get gradle to work within portage can be more work and cause more issues. java-pkg-simple is the way to go. I am a few packages away from dropping use of ant entirely. There are a few corner cases that require additional work as gradle generates java files. But plenty of other things that generate Java code. Just requires some time and creativity. Though tends to be much better for the long run. Less to maintain and do after the fact, so time well spent upfront. *** Bug 651252 has been marked as a duplicate of this bug. *** Created attachment 560954 [details]
Hacky openjfx ebuild
Here is my hacky openjfx for java 8.
It requires FEATURES="-network-sandbox" as I cannot figure out how
to use system antlr etc. Suggestions welcome.
Now that Oracle changed their license for their JDK and JRE it would be really nice to have this in Gentoo. https://github.com/AdoptOpenJDK/openjdk-build/issues/577 some news here nothing specific yet, but looks like it's coming sooner or later. since building it via ebuild is a complete insanity, requires old libs and super fragile, I'd just use binary build from AdoptOpenJDK. (In reply to Georgy Yakovlev from comment #13) > https://github.com/AdoptOpenJDK/openjdk-build/issues/577 > > some news here > nothing specific yet, but looks like it's coming sooner or later. > > since building it via ebuild is a complete insanity, requires old libs and > super fragile, I'd just use binary build from AdoptOpenJDK. I suppose you looked at my ebuild here? At least it builds with antl-3.2 stringtemplate-3.2.1 and these are in Gentoo. Maybe you mean other libs? Getting gradle to use the system installed pkgs rather than downloading src is another story though. (In reply to Georgy Yakovlev from comment #13) > https://github.com/AdoptOpenJDK/openjdk-build/issues/577 > > some news here > nothing specific yet, but looks like it's coming sooner or later. > > since building it via ebuild is a complete insanity, requires old libs and > super fragile, I'd just use binary build from AdoptOpenJDK. "just use binary build from AdoptOpenJDK" ? Didn't know they had openjfx builds .. Anyhow, I don't think their binary builds are better than the one I have in the ebuild above as there the *.so libs are built against my JDK and all the other X11/GTK related libs I have installed. From that ebuild I get: qlist openjfx /etc/java-config-2/current-system-vm/man/man1/javapackager.1 /etc/java-config-2/current-system-vm/man/man1/javafxpackager.1 /etc/java-config-2/current-system-vm/man/ja_JP.UTF-8/man1/javapackager.1 /etc/java-config-2/current-system-vm/man/ja_JP.UTF-8/man1/javafxpackager.1 /etc/java-config-2/current-system-vm/lib/ant-javafx.jar /etc/java-config-2/current-system-vm/lib/packager.jar /etc/java-config-2/current-system-vm/lib/javafx-mx.jar /etc/java-config-2/current-system-vm/jre/lib/ext/jfxrt.jar /etc/java-config-2/current-system-vm/jre/lib/amd64/libjavafx_font_pango.so /etc/java-config-2/current-system-vm/jre/lib/amd64/libjavafx_font_freetype.so /etc/java-config-2/current-system-vm/jre/lib/amd64/libjavafx_iio.so /etc/java-config-2/current-system-vm/jre/lib/amd64/libglassgtk3.so /etc/java-config-2/current-system-vm/jre/lib/amd64/libglassgtk2.so /etc/java-config-2/current-system-vm/jre/lib/amd64/libglass.so /etc/java-config-2/current-system-vm/jre/lib/amd64/libprism_es2.so /etc/java-config-2/current-system-vm/jre/lib/amd64/libprism_sw.so /etc/java-config-2/current-system-vm/jre/lib/amd64/libprism_common.so /etc/java-config-2/current-system-vm/jre/lib/amd64/libjavafx_font.so /etc/java-config-2/current-system-vm/jre/lib/amd64/libdecora_sse.so /etc/java-config-2/current-system-vm/jre/lib/javafx.properties /etc/java-config-2/current-system-vm/jre/lib/jfxswt.jar /etc/java-config-2/current-system-vm/bin/javafxpackager /etc/java-config-2/current-system-vm/bin/javapackager And that seems to enough for most uses here. they don't, yet. read the github issue I've linked. they will have openjfx. as for posted ebuild - gradle downloaded everything for you, we can't do that in ::gentoo repo. there are too many issues to continue trying to build version 8 from source via ebuild. I'm giving up on openjfx:8 version 11 should be better, haven't tried yet. (In reply to Georgy Yakovlev from comment #16) > they don't, yet. > read the github issue I've linked. they will have openjfx. > > > as for posted ebuild - gradle downloaded everything for you, we can't do > that in ::gentoo repo. Yes, it does but there is an: --offline Execute the build without accessing network resources. But then gradle fails building as it cannot find the system installed JARs and I don't know how to pass that info to gradle/java. Any idea how to pass system antlr to gradle/java ? I think gradle now just expects all deps to be known by the jdk. > > there are too many issues to continue trying to build version 8 from source > via ebuild. > I'm giving up on openjfx:8 > > > version 11 should be better, haven't tried yet. I haven't tried yet either because we are still at java 8 but it still is gradle. I suspect the main diff is newer deps. The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=706f8aefe2cd3b48c7474dec3500e1650115aa4c commit 706f8aefe2cd3b48c7474dec3500e1650115aa4c Author: Georgy Yakovlev <gyakovlev@gentoo.org> AuthorDate: 2019-06-01 09:31:42 +0000 Commit: Georgy Yakovlev <gyakovlev@gentoo.org> CommitDate: 2019-06-01 11:34:59 +0000 dev-java/openjfx: new package Quick howto to get openjdk with integrated javafx 1) install openjdk-bin:11 2) install openjfx:11 3) install openjdk:11[javafx], it will pick up jfx libs 4) Optional: remove openjdk-bin:11 no need to unmask gentoo-vm flag Bug: https://bugs.gentoo.org/547918 Package-Manager: Portage-2.3.67, Repoman-2.3.13 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org> dev-java/openjfx/Manifest | 10 + .../openjfx/files/11/disable-buildSrc-tests.patch | 13 ++ .../openjfx/files/11/fix-build-on-gradle-5x.patch | 23 +++ .../openjfx/files/11/glibc-compatibility.patch | 15 ++ .../openjfx/files/11/respect-user-cflags.patch | 227 +++++++++++++++++++++ dev-java/openjfx/files/11/use-system-swt-jar.patch | 25 +++ dev-java/openjfx/metadata.xml | 19 ++ dev-java/openjfx/openjfx-11.0.3_p1.ebuild | 218 ++++++++++++++++++++ 8 files changed, 550 insertions(+) (In reply to Larry the Git Cow from comment #18) > The bug has been referenced in the following commit(s): > > https://gitweb.gentoo.org/repo/gentoo.git/commit/ > ?id=706f8aefe2cd3b48c7474dec3500e1650115aa4c > > commit 706f8aefe2cd3b48c7474dec3500e1650115aa4c > Author: Georgy Yakovlev <gyakovlev@gentoo.org> > AuthorDate: 2019-06-01 09:31:42 +0000 > Commit: Georgy Yakovlev <gyakovlev@gentoo.org> > CommitDate: 2019-06-01 11:34:59 +0000 > > dev-java/openjfx: new package > > Quick howto to get openjdk with integrated javafx > 1) install openjdk-bin:11 > 2) install openjfx:11 > 3) install openjdk:11[javafx], it will pick up jfx libs > 4) Optional: remove openjdk-bin:11 > > no need to unmask gentoo-vm flag I don't understand why do openjfx this complicated ? Now one also have to rebuild opensdk whenever openjfx is updated. Why not just install open jfx into openjdk directly? The files does not conflict, once could just view the various directories in openjdk as shared, much like /usr/lib. Installing into jdk only works for jdk:8 For me I tried to install it into openjdk:8 and openjdk:11. No javafx-binary is created or available. I followed this sequence: 1. Uninstall open oracle-packages 2a. install openjdk-bin:11 3a. install openjfx:11 4a. install openjdk:11[javafx] 2b. install openjdk-bin:8 3b. install openjfx:11 4b. install openjdk:8[javafx] None of the packages provides now javafx. and java-config only sees openjdk:8, not openjdk:11. So how to get javafx back working? > Quick howto to get openjdk with integrated javafx > 1) install openjdk-bin:11 > 2) install openjfx:11 > 3) install openjdk:11[javafx], it will pick up jfx libs > 4) Optional: remove openjdk-bin:11 > > no need to unmask gentoo-vm flag > unfortunately this work-around doesn't work with openjdk-bin-11.0.8_p10, openjdk-11.0.8_p10-r1 and openjfx-11.0.8_p2 anymore. i install openjdk-bin but it always fails trying to install openjfx: # eix -e openjdk-bin [I] dev-java/openjdk-bin Available versions: (8) 8.265_p01^s (11) (~)11.0.8_p10 {alsa cups doc examples +gentoo-vm headless-awt nsplugin selinux source webstart} Installed versions: 11.0.8_p10(11)(12:53:37 PM 08/17/2020)(alsa -cups -doc -gentoo-vm -headless-awt -nsplugin -selinux -source -webstart) Homepage: https://adoptopenjdk.net Description: Prebuilt Java JDK binaries provided by AdoptOpenJDK pc4 ~ # emerge -1 openjfx:11 Calculating dependencies... done! >>> Verifying ebuild manifests >>> Emerging (1 of 1) dev-java/openjfx-11.0.8_p2::gentoo >>> Failed to emerge dev-java/openjfx-11.0.8_p2, Log file: >>> '/var/log/portage/dev-java:openjfx-11.0.8_p2:20200817-105847.log' >>> Jobs: 0 of 1 complete, 1 failed Load avg: 0.12, 0.08, 0.06 * Package: dev-java/openjfx-11.0.8_p2 * Repository: gentoo * Maintainer: gyakovlev@gentoo.org java@gentoo.org * USE: abi_x86_64 amd64 cpu_flags_x86_sse2 elibc_glibc kernel_linux media userland_GNU * FEATURES: network-sandbox preserve-libs sandbox userpriv usersandbox * java-pkg_build-vm-from-handle: No vm found for handles: openjdk-11 openjdk-bin-11 * java-pkg_switch-vm: No VM found for handles: openjdk-11 openjdk-bin-11 * ERROR: dev-java/openjfx-11.0.8_p2::gentoo failed (setup phase): * java-pkg_switch-vm: Failed to determine VM for building * * Call stack: * ebuild.sh, line 125: Called pkg_setup * openjfx-11.0.8_p2.ebuild, line 120: Called java-pkg-2_pkg_setup * java-pkg-2.eclass, line 47: Called java-pkg_init * java-utils-2.eclass, line 2193: Called java-pkg_switch-vm * java-utils-2.eclass, line 2636: Called die * The specific snippet of code: * die "${FUNCNAME}: Failed to determine VM for building" * * If you need support, post the output of `emerge --info '=dev-java/openjfx-11.0.8_p2::gentoo'`, * the complete build log and the output of `emerge -pqv '=dev-java/openjfx-11.0.8_p2::gentoo'`. !!! When you file a bug report, please include the following information: GENTOO_VM= CLASSPATH="" JAVA_HOME="" JAVACFLAGS="" COMPILER="" and of course, the output of emerge --info =openjfx-11.0.8_p2 * The complete build log is located at '/var/log/portage/dev-java:openjfx-11.0.8_p2:20200817-105847.log'. * For convenience, a symlink to the build log is located at '/var/tmpfs/portage/dev-java/openjfx-11.0.8_p2/temp/build.log'. * The ebuild environment file is located at '/var/tmpfs/portage/dev-java/openjfx-11.0.8_p2/temp/die.env'. * Working directory: '/var/tmpfs/portage/dev-java/openjfx-11.0.8_p2/homedir' * S: '/var/tmpfs/portage/dev-java/openjfx-11.0.8_p2/work/rt-11.0.8+2' note: i can compile it but not without +gentoo-vm use flag The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4eda5ab2b3cb995c23c2af6b2b0397637c2b21f0 commit 4eda5ab2b3cb995c23c2af6b2b0397637c2b21f0 Author: Georgy Yakovlev <gyakovlev@gentoo.org> AuthorDate: 2020-09-19 01:10:05 +0000 Commit: Georgy Yakovlev <gyakovlev@gentoo.org> CommitDate: 2020-09-19 02:56:26 +0000 dev-java/openjfx: add openjfx8 Bug: https://bugs.gentoo.org/681828 Closes: https://bugs.gentoo.org/547918 Package-Manager: Portage-3.0.4, Repoman-3.0.1 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org> dev-java/openjfx/Manifest | 1 + .../8/0000-Fix-wait-call-in-PosixPlatform.patch | 14 ++ dev-java/openjfx/files/8/0001-Change-Lucene.patch | 79 +++++++++ .../openjfx/files/8/0001-don-t-force-msse.patch | 69 ++++++++ ...0002-Allow-build-to-work-on-newer-gradles.patch | 10 ++ ...-cast-between-incompatible-function-types.patch | 77 +++++++++ .../files/8/0004-Fix-Compilation-Flags.patch | 23 +++ .../files/8/0005-don-t-include-xlocale.h.patch | 25 +++ .../8/06-disable-architecture-verification.patch | 21 +++ ...07-disable-assembler-on-unsupported-archs.patch | 18 ++ dev-java/openjfx/files/8/10-javadoc-locale.patch | 21 +++ dev-java/openjfx/files/8/99-sysdeps.patch | 30 ++++ dev-java/openjfx/files/8/Wno-error.patch | 121 ++++++++++++++ .../openjfx/files/8/disable-online-repos.patch | 54 ++++++ dev-java/openjfx/files/8/respect_flags.patch | 22 +++ dev-java/openjfx/openjfx-8.202.ebuild | 185 +++++++++++++++++++++ 16 files changed, 770 insertions(+) Would it make sense for jfx:8 to default USE=media to on, so it matches jfx:11 ? (In reply to Joakim Tjernlund from comment #25) > Would it make sense for jfx:8 to default USE=media to on, so it matches > jfx:11 ? oh, I also use gradle 4.10.2 to build my version. Maybe you could too? BTW, now openjfx now depends on both antlr:0 and antlr:3, seems like one too many? media is not default because it contains very old gstreamer-lite code, it may start failing to build soon and is fragile-ish. I will probably need to backport some fixes myself later. but I already spent too much time on it, look at all those patches and ebuild, it's insane. I still can't believe I managed to make it build with system stuff. I haven't tried newer gradle, it's an easy change if it works and may be better in the long run, will test. as for double antlr - it's not a bogus requirement. try building without both =) gradle groovy files contained more info why, I don't remember right now. openjfx:11 also requires both antlrs, I just download some jars instead of using system one. but openjfx:8 uses everything system-built, except gradle. The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2feaf6caf827123788b3e1d1eacac2a6001f2d00 commit 2feaf6caf827123788b3e1d1eacac2a6001f2d00 Author: Georgy Yakovlev <gyakovlev@gentoo.org> AuthorDate: 2020-09-19 19:31:23 +0000 Commit: Georgy Yakovlev <gyakovlev@gentoo.org> CommitDate: 2020-09-19 19:32:39 +0000 dev-java/openjfx: add 8.999 version it's last tip version of publicly available openjfx-8 with security and reliability patches backported. it's possible to toggle avplugin build independently of media now, but it's still behind media useflag for now. also switched to gradle-4.10.3 patches taken from https://github.com/jschwartzenberg/openjfx8 Bug: https://bugs.gentoo.org/547918 Package-Manager: Portage-3.0.7, Repoman-3.0.1 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org> dev-java/openjfx/Manifest | 3 + dev-java/openjfx/files/8/don-t-force-msse.patch | 51 ++++++ dev-java/openjfx/openjfx-8.999.ebuild | 198 ++++++++++++++++++++++++ 3 files changed, 252 insertions(+) |