Skip to content

Instantly share code, notes, and snippets.

@guymers
Last active October 22, 2025 05:39
Show Gist options
  • Select an option

  • Save guymers/8626436bffe04cc4514c260387da7d54 to your computer and use it in GitHub Desktop.

Select an option

Save guymers/8626436bffe04cc4514c260387da7d54 to your computer and use it in GitHub Desktop.
AUR graalvm-jdk-ce-bin
THIS_JDK='graalvm-ce'
fix_default() {
if [ ! -x /usr/bin/java ]; then
/usr/bin/archlinux-java unset
echo ""
else
/usr/bin/archlinux-java get
fi
}
post_install() {
default=$(fix_default)
case ${default} in
"")
/usr/bin/archlinux-java set ${THIS_JDK}
;;
${THIS_JDK})
# Nothing
;;
*)
echo "Default Java environment is already set to '${default}'"
echo "See 'archlinux-java help' to change it"
;;
esac
if [ ! -f /etc/ssl/certs/java/cacerts ]; then
/usr/bin/update-ca-trust
fi
}
post_upgrade() {
default=$(fix_default)
if [ -z "${default}" ]; then
/usr/bin/archlinux-java set ${THIS_JDK}
fi
if [ ! -f /etc/ssl/certs/java/cacerts ]; then
/usr/bin/update-ca-trust
fi
}
pre_remove() {
if [ "x$(fix_default)" = "x${THIS_JDK}" ]; then
# Check JRE is still available
if [ -x /usr/lib/jvm/${THIS_JDK}/bin/java ]; then
/usr/bin/archlinux-java unset
fi
fi
}
_javaver=25
pkgver="${_javaver}.0.1"
_graalver="${pkgver}+8.1"
pkgrel=1
pkgname="graalvm-jdk-ce-bin"
pkgdesc="GraalVM is a high-performance JDK designed to accelerate Java application performance while consuming fewer resources."
arch=('aarch64' 'x86_64')
url='https://www.graalvm.org/'
license=('custom')
depends=(
'java-environment-common>=3'
'java-runtime-common>=3'
'ca-certificates-utils'
)
provides=(
"java-environment=21"
"java-environment=${_javaver}"
"java-runtime=${_javaver}"
"java-runtime-headless=${_javaver}"
)
install="$pkgname.install"
source_x86_64=("https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-${pkgver}/graalvm-community-jdk-${pkgver}_linux-x64_bin.tar.gz")
source_aarch64=("https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-${pkgver}/graalvm-community-jdk-${pkgver}_linux-aarch64_bin.tar.gz")
sha256sums_x86_64=('01e39fe1a87f28b842a3e4e3b77be9b544dca3a58fa6e93b924a6106c8bac7fb')
sha256sums_aarch64=('7aa0b9935a80e67f37c6025678393dbd123bb6f2226811decbc1a13093fc8ae2')
_jdkname="graalvm-ce"
_jvmdir="/usr/lib/jvm/${_jdkname}"
package() {
cd "graalvm-community-openjdk-${_graalver}"
install -dm 755 "${pkgdir}/${_jvmdir}"
cp -a -t "${pkgdir}/${_jvmdir}/" *
# Conf
install -dm 755 "${pkgdir}/etc"
cp -r conf "${pkgdir}/etc/${_jdkname}"
rm -r "${pkgdir}/${_jvmdir}/conf"
ln -s "/etc/${_jdkname}" "${pkgdir}/${_jvmdir}/conf"
# Legal
install -dm 755 "${pkgdir}/usr/share/licenses"
cp -r legal "${pkgdir}/usr/share/licenses/${_jdkname}"
rm -r "${pkgdir}/${_jvmdir}/legal"
ln -s "/usr/share/licenses/${_jdkname}" "${pkgdir}/${_jvmdir}/legal"
# Link JKS keystore from ca-certificates-utils
rm -f "${pkgdir}/${_jvmdir}/lib/security/cacerts"
ln -sf /etc/ssl/certs/java/cacerts "${pkgdir}/${_jvmdir}/lib/security/cacerts"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment