On Mon, 2022-06-27 at 21:21 +0200, Florian Schmaus wrote:
> Thanks to Mike Gilbert (floppym) for valuable feedback.
> 
> Closes: https://bugs.gentoo.org/853928
> Closes: https://github.com/gentoo/gentoo/pull/26069
> Signed-off-by: Florian Schmaus <f...@gentoo.org>
> ---
>  eclass/java-vm-2.eclass | 30 ++++++++++++++++++++++++++++--
>  1 file changed, 28 insertions(+), 2 deletions(-)
> 
> diff --git a/eclass/java-vm-2.eclass b/eclass/java-vm-2.eclass
> index 8196b1cdc72a..dc0d87f4caf5 100644
> --- a/eclass/java-vm-2.eclass
> +++ b/eclass/java-vm-2.eclass
> @@ -25,6 +25,7 @@ RDEPEND="
>  "
>  DEPEND="${RDEPEND}"
>  BDEPEND="app-arch/unzip"
> +IDEPEND="app-eselect/eselect-java"

IDEPEND here will not do anything to current jdk source ebuilds.

openjdk source ebuilds are EAPI7 at the moment and can't be updated to
EAPI8 due to econf unconditionally passing '--disable-static'

configure: error: unrecognized options: --disable-static
configure exiting with result code 1

so befire IDEPEND works we either have to fix portage/EAPI8 econf, or
roll custom econf in source packages of jdk.

https://bugs.gentoo.org/814380 - looks like the following jdk
./configure option triggers it:

  --enable-static-build


>  
>  if [[ ${EAPI} == 6 ]]; then
>         DEPEND+=" ${BDEPEND}"
> @@ -88,14 +89,35 @@ java-vm-2_pkg_postinst() {
>         xdg_desktop_database_update
>  }
>  
> +# @FUNCTION: has_eselect_java-vm_update
> +# @INTERNAL
> +# @DESCRIPTION:
> +# Checks if an eselect-java version providing "eselect java-vm
> update"
> +# is available.
> +# @RETURN: 0 if >=app-eselect/eselect-java-0.5 is installed, 1
> otherwise.
> +has_eselect_java-vm_update() {
> +       local has_version_args="-b"
> +       if [[ ${EAPI} == 6 ]]; then
> +               has_version_args="--host-root"
> +       fi
> +
> +       has_version "${has_version_args}" ">=app-eselect/eselect-
> java-0.5"
> +}
>  
>  # @FUNCTION: java-vm-2_pkg_prerm
>  # @DESCRIPTION:
>  # default pkg_prerm
>  #
> -# Warn user if removing system-vm.
> +# Does nothing if eselect-java-0.5 or newer is available. 
> Otherwhise,
> +# warn user if removing system-vm.
>  
>  java-vm-2_pkg_prerm() {
> +       if has_eselect_java-vm_update; then
> +               # We will potentially switch to a new Java system VM
> in
> +               # pkg_postrm().
> +               return
> +       fi
> +
>         if [[ $(GENTOO_VM= java-config -f 2>/dev/null) == ${VMHANDLE}
> && -z ${REPLACED_BY_VERSION} ]]; then
>                 ewarn "It appears you are removing your system-vm!
> Please run"
>                 ewarn "\"eselect java-vm list\" to list available
> VMs, then use"
> @@ -108,10 +130,14 @@ java-vm-2_pkg_prerm() {
>  # @DESCRIPTION:
>  # default pkg_postrm
>  #
> -# Update mime database.
> +# Invoke "eselect java-vm update" if eselect-java 0.5, or newer, is
> +# available.  Also update the mime database.
>  
>  java-vm-2_pkg_postrm() {
>         xdg_desktop_database_update
> +       if has_eselect_java-vm_update; then
> +               eselect --root="${EROOT}" java-vm update
> +       fi
>  }
>  
>  


Reply via email to