Newer
Older
# NOTE: Please do NOT upgrade to X.0 releases of Erlang, as they tend
# to have breaking changes which require the rest of the ecosystem to
# catch up with. If in doubt, do a test rebuild of community/elixir.
# Contributor: Michael Mason <ms13sp@gmail.com>
# Contributor: Gabriele Santomaggio <g.santomaggio@gmail.com>
# Contributor: Marlus Saraiva <marlus.saraiva@gmail.com>
# Contributor: Daniel Isaksen <d@duniel.no>
# Maintainer: Celeste <cielesti@protonmail.com>
maintainer="Celeste <cielesti@protonmail.com>"
pkgdesc="General-purpose programming language and runtime environment"
license="Apache-2.0"
makedepends="
autoconf
glu-dev
ncurses-dev
openssl-dev
perl
perl-dev
unixodbc-dev
wxwidgets-dev
zlib-dev
"
$pkgname-debugger:_mv_erlang_lib
$pkgname-dialyzer:_mv_erlang_lib
$pkgname-et:_mv_erlang_lib
$pkgname-megaco:_mv_erlang_lib
$pkgname-observer:_mv_erlang_lib
$pkgname-odbc:_mv_erlang_lib
$pkgname-reltool:_mv_erlang_lib
$pkgname-wx:_mv_erlang_lib
"
source="https://github.com/erlang/otp/releases/download/OTP-$pkgver/otp_src_$pkgver.tar.gz"
# Disable Java support (jinterface) on architectures that lack OpenJDK
case "$CTARGET_ARCH" in
x86|armhf|armv7|x86_64|aarch64|ppc64le|s390x)
makedepends="$makedepends openjdk8"
export PATH="/usr/lib/jvm/java-1.8-openjdk/bin:$PATH"
;;
*)
;;
esac
# 26.2.1-r0:
# - CVE-2023-48795
# it's a whole language runtime
export CFLAGS="$CFLAGS -O2 -D_BSD_SOURCE"
export CXXFLAGS="$CXXFLAGS -O2"
Daniel Isaksen
committed
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--host="$CHOST" \
--build="$CBUILD" \
--enable-threads \
--enable-shared-zlib \
Daniel Isaksen
committed
--enable-ssl=dynamic-ssl-lib
Daniel Isaksen
committed
check() {
ERL_TOP="$builddir" make release_tests
}
make DESTDIR="$pkgdir" \
DOC_TARGETS="chunks man" \
install \
install-docs
cd "$pkgdir"
rm -vr usr/lib/erlang/doc \
usr/lib/erlang/COPYRIGHT \
usr/lib/erlang/PR.template \
usr/lib/erlang/README.md
local lib=$(echo ${subpkgname#"$pkgname-"} | tr '-' '_')
depends="$pkgname=$pkgver-r$pkgrel"
debugger) depends="$pkgname-wx=$pkgver-r$pkgrel";;
dialyzer) depends="$pkgname-wx=$pkgver-r$pkgrel";;
et) depends="$pkgname-wx=$pkgver-r$pkgrel";;
megaco) depends="$pkgname-debugger=$pkgver-r$pkgrel $pkgname-et=$pkgver-r$pkgrel";;
observer) depends="$pkgname-et=$pkgver-r$pkgrel $pkgname-wx=$pkgver-r$pkgrel";;
reltool) depends="$pkgname-wx=$pkgver-r$pkgrel";;
wx) depends="$pkgname=$pkgver-r$pkgrel xauth terminus-font";;
mkdir -p "$subpkgdir"/usr/lib/erlang/lib
Daniel Isaksen
committed
rm -f "$pkgdir"/usr/lib/erlang/lib/$lib-*/src/*.erl
mv "$pkgdir"/usr/lib/erlang/lib/$lib-* "$subpkgdir"/usr/lib/erlang/lib/
Daniel Isaksen
committed
local i=''
depends="$pkgname=$pkgver-r$pkgrel $depends_dev"
pkgdesc="$pkgdesc (development files)"
Daniel Isaksen
committed
cd "$pkgdir"
local libdirs=usr/
[ -d lib/ ] && libdirs="lib/ $libdirs"
for i in usr/include usr/lib/pkgconfig usr/share/aclocal\
usr/share/gettext usr/bin/*-config \
usr/share/vala/vapi usr/share/gir-[0-9]* \
usr/share/qt*/mkspecs \
usr/lib/qt*/mkspecs \
usr/lib/cmake \
$(find . -name include -type d) \
$(find $libdirs -name '*.[acho]' \
-o -name '*.prl' 2>/dev/null); do
if [ -e "$pkgdir/$i" ] || [ -L "$pkgdir/$i" ]; then
d="$subpkgdir/${i%/*}" # dirname $i
mkdir -p "$d"
mv "$pkgdir/$i" "$d"
rmdir "$pkgdir/${i%/*}" 2>/dev/null || true
fi
done
Daniel Isaksen
committed
# move *.so links needed when linking the apps to -dev packages
for i in lib/*.so usr/lib/*.so; do
if [ -L "$i" ]; then
mkdir -p "$subpkgdir"/"${i%/*}"
mv "$i" "$subpkgdir/$i"
fi
done
}
doc() {
default_doc
pkgdesc="$pkgdesc (documentation chunks and man pages)"
amove usr/lib/erlang/*/info \
usr/lib/erlang/lib/*/doc \
usr/lib/erlang/lib/*/info \
usr/lib/erlang/man
# helper script to manually check the dependencies of subpackages
verifydeps() {
local _p
for _p in $subpackages; do
case $_p in
*:*) _p=${_p%:*};;
*) continue;;
esac
local _subdir="$pkgdir/../$_p"
local _pkginfo="$pkgdir/../.control.$_p"/.PKGINFO
msg "$_p"
grep '^depend =' $_pkginfo || true
find "$_subdir" -name '*.app' | while read -r _f; do
Daniel Isaksen
committed
done
e362ca88dab51ec5e5931630a3f4d283df0b863750e2607abc5c99120e12e8410bf3d77135fbacec09a811d82e545f135132cd570f543722bbb4d30c1ea068c2 otp_src_26.2.5.7.tar.gz