Re: Package java-environment-common-3-5 installs incorrect symlinks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Tue Apr 9, 2024 at 10:13 PM CEST, Wouffy The Dog wrote:
> Hello, I was cleaning my machine, trying to find broken symlinks. I scanned
> my `/bin` directory with `find -L /bin/ -type l -ls`, and it found broken
> links installed by `java-environment-common` (`pacman -Qqo /bin/javah` for
> example). Is it the case for some of you?

Hi,

I also have these files, and every other arch user with
java-environment-common and/or java-runtime-common installed.

/usr/bin/schemagen -> /usr/lib/jvm/default/bin/schemagen
/usr/bin/tnameserv -> /usr/lib/jvm/default-runtime/bin/tnameserv
/usr/bin/rmid -> /usr/lib/jvm/default-runtime/bin/rmid
/usr/bin/javah -> /usr/lib/jvm/default/bin/javah
/usr/bin/xjc -> /usr/lib/jvm/default/bin/xjc
/usr/bin/rmic -> /usr/lib/jvm/default/bin/rmic
/usr/bin/unpack200 -> /usr/lib/jvm/default-runtime/bin/unpack200
/usr/bin/servertool -> /usr/lib/jvm/default-runtime/bin/servertool
/usr/bin/wsimport -> /usr/lib/jvm/default/bin/wsimport
/usr/bin/wsgen -> /usr/lib/jvm/default/bin/wsgen
/usr/bin/pack200 -> /usr/lib/jvm/default-runtime/bin/pack200
/usr/bin/orbd -> /usr/lib/jvm/default-runtime/bin/orbd

(all broken symlinks in /usr/bin, /bin links to /usr/bin)

In the PKGBUILD for the pkgbase java-common [1] we find

package_java-runtime-common () {
...
  # Official list of binaries that Java headless runtime packages MUST provide
  # This list is based on Arch Linux' default Java implementation: "OpenJDK 7 Icedtea"
  for b in \
    java keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200;
  do
    ln -s /usr/lib/jvm/default-runtime/bin/${b} "${pkgdir}/usr/bin/${b}"
  done
}

and

package_java-environment-common() {
...
  install -d "${pkgdir}/usr/bin"
  # Official list of supplementary binaries that Java environment packages MUST provide
  # This list is based on Arch Linux' default Java implementation: "OpenJDK 7 Icedtea"
  for b in \
    jar jarsigner javac javadoc javah javap jcmd \
    jconsole jdb jinfo jmap jps jstack jstat \
    jstatd rmic schemagen serialver wsgen wsimport xjc;
  do
    ln -s /usr/lib/jvm/default/bin/${b} "${pkgdir}/usr/bin/${b}"
  done
}

so it seems these binaries are mandatory for java 7.

What I find more curious is that no package from the repos provides
these binaries, pacman -F does not return anything for any of these packages.
My guess is that these files were available in the removed java 7 package.

And looking it up in the archive [2] proved my guess true,
/usr/lib/jvm/java-7-openjdk/bin/schemagen
was available in jdk7-openjdk.

(note that /usr/lib/jvm/default is also just a symlink)

I conclude that java-common seems to be outdated :)

Best regards
tippfehlr


[1] https://gitlab.archlinux.org/archlinux/packaging/packages/java-common/-/blob/main/PKGBUILD
[2] https://archive.org/download/archlinux_pkg_jdk7-openjdk

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux