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... [2] https://archive.org/download/archlinux_pkg_jdk7-openjdk