aports/community/keycloak/APKBUILD
2025-06-01 23:34:17 +00:00

114 lines
4 KiB
Text

# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=keycloak
pkgver=26.2.5
pkgrel=0
pkgdesc="Open source identity and access management for modern applications and services"
url="https://www.keycloak.org"
# aarch64: blocked by outdated @ast-grep/napi
# armhf,armv7,ppc64le,riscv64,x86: blocked by openjdk17
# s390x: blocked by java-netty-transport-native
# loongarch64: blocked by maven
arch="noarch !aarch64 !armhf !armv7 !ppc64le !riscv64 !s390x !x86 !loongarch64"
license="Apache-2.0"
depends="
java-jre-headless
java-netty-transport-native
"
makedepends="
bash
maven
nodejs
npm
java-jdk
"
pkgusers="keycloak"
pkggroups="keycloak"
install="$pkgname.pre-install"
subpackages="$pkgname-openrc"
source="https://github.com/keycloak/keycloak/archive/$pkgver/keycloak-$pkgver.tar.gz
support-for-readonly-usr-share.patch
remove-deps.patch
keycloak.conf
$pkgname.initd
$pkgname.confd
$pkgname.logrotated
"
# net: fetches dependencies from Maven repositories
options="!check net"
# NOTE: Maven 3 dropped support for the M2_HOME variable.
export MAVEN_ARGS="--batch-mode -Duser.home=$srcdir/.home"
prepare() {
default_prepare
# Workaround for frontend-maven-plugin to use system-provided node and npm.
# https://github.com/eirslett/frontend-maven-plugin/issues/1089
mkdir -p node
cp -r /usr/lib/node_modules node/
ln -s /usr/bin/node node/
ln -s /usr/bin/npm node/
ln -s /usr/bin/npx node/
ln -s ../node js/
}
build() {
# NOTE: -Dskip.installnodenpm doesn't work, frontend-maven-plugin always
# downloads prebuilt node and npm, unless it's already present in the
# ./node directory and the version matches.
# -DskipProtoLock - see https://github.com/keycloak/keycloak/issues/37148
local mvn_opts="-DskipTests -DskipProtoLock=true -Dnode.version=$(node --version)"
cd quarkus
mvn -f ../pom.xml install $mvn_opts -DskipExamples -DskipTestsuite
mvn install $mvn_opts
tar -C dist -xf dist/target/keycloak-*.tar.gz
}
package() {
cd quarkus/dist/keycloak-*
local destdir="$pkgdir/usr/share/$pkgname"
local builddir="$(pwd)"
mkdir -p "$destdir"
cp -r bin lib providers themes version.txt "$destdir"/
rm -f "$destdir"/bin/*.bat
rm -f "$destdir"/bin/*.orig
cd "$pkgdir"
mkdir -p usr/bin
local i; for i in kc kcadm kcreg; do
ln -s ../share/$pkgname/bin/$i.sh usr/bin/$i
done
install -d -m755 -o keycloak -g keycloak \
var/lib/$pkgname
install -d -m750 -o keycloak -g keycloak \
var/lib/$pkgname/data \
var/log/$pkgname
mv "$destdir"/lib/quarkus "$destdir"/lib/quarkus.dist
ln -s /var/lib/$pkgname/lib/quarkus "$destdir"/lib/quarkus
install -d -m750 -o root -g keycloak etc/$pkgname
install -D -m640 -o keycloak -g keycloak -t etc/keycloak/ \
"$builddir"/conf/cache-ispn.xml \
"$srcdir"/keycloak.conf
install -D -m755 "$srcdir"/$pkgname.initd etc/init.d/$pkgname
install -D -m644 "$srcdir"/$pkgname.confd etc/conf.d/$pkgname
install -D -m644 "$srcdir"/$pkgname.logrotated etc/logrotate.d/$pkgname
}
sha512sums="
590adf8ad88b7cf994070deacbead37b93a9926279074e23b90a2caba6949cd36f06087953c3615bb40dc2c384eb309e5f56c03d7736184ad2a65a8ceddb017c keycloak-26.2.5.tar.gz
0444fb3848cb79086b650d2b893b6f8c40af1b351502b7ad749865ce584f38b6f2059fb5b71ddb27028f7e640fd1f0d50b3d5d3c68ee7b79692948c7d8cbc220 support-for-readonly-usr-share.patch
6041cfb2b26e8a787943c4308a13d77cfed2e42a9116c780287842dd6d4ae61087bed6922ffef9231cfafd424d3d7fab670d7de9ade1eeef8e5a5afa0fb426ed remove-deps.patch
c434d72ffa991d25d099cdec40f266f9f1c24ab7fc6b3b40a8d0d55c5df5ad8160cc7241b8c42e2a432978ca00e45aafc544564b7d8cefa207d0f6d9a1c5b7f9 keycloak.conf
900ff4769bb1cc76b709eef43c2368fbc34931db9df9a8c3c6a30c50935bb4e110df211717a319f50a609a11392aa9b52931f50a992b8147d556c701988504d6 keycloak.initd
46b8aa4ba438cbf1d59871b9dbdf849edc9a3247fd49a84b70d191025ef8cbd666d9c64e7586cd39af975228efe97bcfed4c4f6d15ef07de3fbafc6e526406d7 keycloak.confd
5fe5972a71c630e7335f6a73b10d7258dcbb0448f3a9dab2aac94fe9a4905c0cbb5ebbc4c74113696296e19a207fd019c72430ff53feab7255edce91ed89fd11 keycloak.logrotated
"