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
signature.asc
Description: PGP signature
