commit:     47bad21c79c7886701279312dc6923538dd12fd2
Author:     Yuan Liao <liaoyuan <AT> gmail <DOT> com>
AuthorDate: Wed Mar 16 18:22:19 2022 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Wed May 11 19:51:03 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=47bad21c

dev-java/icedtea-web: EAPI 8, restrict build VM to 1.8

- java-pkg-2.eclass is inherited to set up JDK 8 as the build VM
  properly, so a JAVA_HOME that points to JDK 8 is always passed to the
  ./configure script regardless of the eselect-java system VM setting.

- The 'itw-modularjdk.args' file is now installed to an FHS-compliant
  path to allow the programs from this package to be run with JRE 9+.
  These programs are compatible with JRE 9+ under the condition that
  this file is installed.  The file is required for integration with the
  Java Platform Module System introduced in Java 9.

- README.gentoo is updated to convey the USE="-headless-awt" requirement
  for any JRE used to run those programs.  This seems to be a
  runtime-only requirement, as using a JDK with this USE flag disabled
  would not cause any build errors during testing.

Bug: https://bugs.gentoo.org/659174
Bug: https://bugs.gentoo.org/698582
Bug: https://bugs.gentoo.org/783027
Bug: https://bugs.gentoo.org/831895
Signed-off-by: Yuan Liao <liaoyuan <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/24610
Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 dev-java/icedtea-web/files/README.gentoo-r3      |  16 +++
 dev-java/icedtea-web/icedtea-web-1.8.8-r1.ebuild | 118 +++++++++++++++++++++++
 2 files changed, 134 insertions(+)

diff --git a/dev-java/icedtea-web/files/README.gentoo-r3 
b/dev-java/icedtea-web/files/README.gentoo-r3
new file mode 100644
index 000000000000..fc199f3c50f2
--- /dev/null
+++ b/dev-java/icedtea-web/files/README.gentoo-r3
@@ -0,0 +1,16 @@
+Browser plugin
+--------------
+
+The IcedTea browser plugin (NPPlugin) is no longer available,
+as modern browsers no longer support this plugin format.
+
+JVM selection
+-------------
+
+By default, Web Start uses the JVM
+selected via eselect environment variable.
+Note that this doesn't have to be an IcedTea. Openjdk will also work.
+Also note that the selected JVM must have been installed with the
+'headless-awt' USE flag *disabled*.
+The choice can be overridden using the itweb-settings program.
+Simply blank out the field to restore the default behaviour.

diff --git a/dev-java/icedtea-web/icedtea-web-1.8.8-r1.ebuild 
b/dev-java/icedtea-web/icedtea-web-1.8.8-r1.ebuild
new file mode 100644
index 000000000000..238bb9080267
--- /dev/null
+++ b/dev-java/icedtea-web/icedtea-web-1.8.8-r1.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+README_GENTOO_SUFFIX="-r3"
+CRATES="dunce-0.1.1"
+
+inherit autotools bash-completion-r1 cargo java-pkg-2 readme.gentoo-r1 
xdg-utils
+
+DESCRIPTION="FOSS Java browser plugin and Web Start implementation"
+HOMEPAGE="https://github.com/AdoptOpenJDK/IcedTea-Web";
+SRC_URI="https://github.com/AdoptOpenJDK/${PN}/archive/${P}.tar.gz
+       $(cargo_crate_uris ${CRATES})"
+LICENSE="GPL-2 GPL-2-with-linking-exception LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="doc"
+
+# tests require ton of java deps we don't have packaged/working
+# but rust tests pass.
+RESTRICT="test"
+
+BDEPEND="
+       app-arch/zip
+       sys-devel/bc
+       virtual/pkgconfig
+       virtual/rust
+       doc? ( sys-devel/bc )
+"
+
+# Build within Portage using JDK 11+ (also presumably 9+) fails during
+# src_configure:
+#      configure: error: sun.security.util.SecurityConstants not found.
+#
+# When upstream's build instructions are executed outside Portage using
+# JDK 11+, ./configure also fails, though a different error pops up:
+#      configure: error: sun.applet.AppletImageRef not found.
+#
+# If even the upstream build instructions fail outside Portage with JDK 11+,
+# then it is very unlikely that the build issue within Portage is fixable.
+# The upstream has moved forward to development of 2.0.0 and 3.0.0 versions,
+# so they might no longer be interested in fixing the legacy 1.x versions.
+#
+# The 'sun.applet.AppletImageRef not found' issue has been reported to
+# FreeBSD <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=248197#c2>,
+# and some efforts there to fix the issue were unsuccessful.  They seem
+# to have ended up with restricting Java version to 8
+# <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244976#c17>.
+#
+# Thus, the build VM version is restricted to 1.8 here.
+DEPEND="
+       virtual/jdk:1.8
+"
+
+RDEPEND="
+       >=app-eselect/eselect-java-0.2.0
+       >=virtual/jre-1.8:*
+"
+
+S="${WORKDIR}/IcedTea-Web-${P}"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+src_prepare() {
+       eapply_user
+       sed -i 's/JAVADOC_OPTS=/\0-Xdoclint:none /g' Makefile.am || die
+       eautoreconf
+       cargo_gen_config
+}
+
+src_configure() {
+       xdg_environment_reset
+       # some functionality (tagsoup rhino) is disabled, because dev-java is
+       # unmaintained and a lot of things simply does not build anymore.
+       # native plugins also disabled, modern browsers no longer support it.
+       # modularjdk-file and the 'itw-modularjdk.args' file controlled by it
+       # are required to run this package's programs using JRE 9+.
+       local myconf=(
+               --disable-native-plugin
+               --program-transform-name='s/^javaws$/itweb-javaws/'
+               --with-jdk-home="$(java-config -O)"
+               --with-modularjdk-file="${EPREFIX}/usr/share/${PN}/"
+               --with-itw-libs=DISTRIBUTION
+               --without-rhino
+               --without-tagsoup
+               $(use_enable doc docs)
+       )
+       unset _JAVA_OPTIONS
+       export bashcompdir="$(get_bashcompdir)" # defaults to /etc if not found 
in pkg-config
+       export CARGO_HOME="${ECARGO_HOME}"
+       CONFIG_SHELL="${EPREFIX}/bin/bash" econf "${myconf[@]}"
+}
+
+src_compile() {
+       # races in makefile
+       emake -j1 #nowarn
+}
+
+src_install() {
+       default
+       rename -v '.bash' '' 
"${ED}/usr/share/bash-completion/completions/"*.bash || die
+       rename -v 'javaws' 'itweb-javaws' "${ED}/usr/share/man/man1/"javaws.1* 
|| die
+       mv -v 
"${ED}/usr/share/bash-completion/completions/"{javaws,itweb-javaws} || die
+       sed -i 's/javaws/itweb-javaws/g' \
+               "${ED}/usr/share/bash-completion/completions/itweb-javaws" || 
die
+
+       readme.gentoo_create_doc
+}
+
+src_test() {
+       # we want to override cargo.eclass' src_test
+       :
+}
+
+pkg_postinst() {
+       readme.gentoo_print_elog
+}

Reply via email to