commit: efb1d4b1f78aac24825988b9306ae7459cc545a5 Author: Patrick Lauer <patrick <AT> gentoo <DOT> org> AuthorDate: Sat Aug 23 05:17:59 2025 +0000 Commit: Patrick Lauer <patrick <AT> gentoo <DOT> org> CommitDate: Sat Aug 23 05:32:51 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=efb1d4b1
dev-lang/erlang: add 28.0.2 Signed-off-by: Patrick Lauer <patrick <AT> gentoo.org> dev-lang/erlang/Manifest | 1 + dev-lang/erlang/erlang-28.0.2.ebuild | 167 +++++++++++++++++++++++++++++++++++ 2 files changed, 168 insertions(+) diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest index 68b8776332c9..ea48e50e1f0c 100644 --- a/dev-lang/erlang/Manifest +++ b/dev-lang/erlang/Manifest @@ -1,6 +1,7 @@ DIST erlang-26.2.1.tar.gz 62435848 BLAKE2B 4e257c73de868b5bbd213a66ece60f29e5231845c5f40b17876b8f042c20ba89bced920ffdbb2a44b890b920d8a147b0a0cb4a2bce66a51e49b720ee794c06c9 SHA512 f4fa0d11ecbd99ca5ef4421abb78ef2aba8ea0f8d19e4aed991c2afcc42bb057a37ae34a416b050fd7ed8ca39ba7cc8b3619ff371bc09f56dfd5b523988a8f8c DIST erlang-26.2.4.tar.gz 62476971 BLAKE2B f3acfb05a569ce0b4cfd9d9a30ac4840845cc285691294c2ff2776c45812b9046d3453700150912128c385458a3afba7dc54ab773611d46de31b4d2744fcdaf6 SHA512 2fa385b5ec93810c984f31e22757fe8614087191adf0f99376702bd15a316237f8abc1b65d40a302d3919cd28afe65fb4086e39638c6c39af165c0c1ee6fb51d DIST erlang-27.2.tar.gz 62210841 BLAKE2B 2f5d664eadb1866f6b2c5874704a3e6ab8181f2f465805f710c2643acb09b94cfaf8aa679df60be2ef048f54f8485c3e552fcc12b7f5d2cf4a87a72edb5bc47c SHA512 dd64bf6c997cd2c201afdc693b3766468d9dad86ced46d3701da3858cac57e056148f5e45bfbccf8a92d3a55640a7f46ea4f5184ffc3b9f227bec3c3dfb41ab0 +DIST erlang-28.0.2.tar.gz 63871146 BLAKE2B f95cc92efd81dd3cb8e2e91b975db7ab45e42d6efc5e241317ed5a74625a209a77398f04a031c9e8cb1d21b7456606d3f6bff720a541927d338bd79cc8c283eb SHA512 48c74dd47091f86aee5b8aa453e0e610c0c8be23da43a49f30caad76fa6d8ed3e2a4744e8895669c0884162cafb355c497f23438e28bc36d2ea79b2c39b45cc2 DIST erlang-28.0.tar.gz 63814863 BLAKE2B 6ca8c34a48980dfb24b13e9306505a759978eca1a80444014e8a362344a7ebcc95b621873abeee229ea6beb476c35a054ca96cd36ff24462d94c4adfcedd0084 SHA512 bd13bd5ee753ad4277905c0868fca8d8058fae30e1570d115eed3b133058e0d755204b9984d3826fe24cdc7fec617d4d4a86bd28f51c7b70bef2242fdb00ccb6 DIST erlang_doc_html_26.2.tar.gz 37572819 BLAKE2B c9e5dcaf4a282063a58883fc63adb14e4448333e07994542fdf6dfb29cf4c782f3b7a33b4b6543ffa64b2ce9f40fa9482ca798181bd84e00ebaf5a3223d300d4 SHA512 846f42666d190c9c2b4c11048e842f921d2bc9767483b6f54095c3aba0cbea9a0fbe06daac4c4837b371f9653346660704ea957fd9fbb6606e4274897042abaa DIST erlang_doc_html_27.2.tar.gz 29949824 BLAKE2B f8c32698ff446095742ada9b4a67ce3fe5009bfa99973f7c2826e421f9228544e94493dc3b9f661a2288b8e347329efedfa8b1a113085a4db28ba23c73648bd1 SHA512 51f5b33ffe7abc3cca7cde8170cdd6257c628c9d733b0c3fc6a2fecc9515ee39e618f1925e4300de7f055de73665a43d1953225a90504ed732b5b22df3237b53 diff --git a/dev-lang/erlang/erlang-28.0.2.ebuild b/dev-lang/erlang/erlang-28.0.2.ebuild new file mode 100644 index 000000000000..07e568f23bcf --- /dev/null +++ b/dev-lang/erlang/erlang-28.0.2.ebuild @@ -0,0 +1,167 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +WX_GTK_VER="3.2-gtk3" + +inherit autotools flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets + +UPSTREAM_V="$(ver_cut 1-2)" + +DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)" +HOMEPAGE="https://www.erlang.org/ https://github.com/erlang/otp" +SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz + https://github.com/${PN}/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz + -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz + doc? ( https://github.com/${PN}/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz + -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )" +S="${WORKDIR}"/otp-OTP-${PV} + +LICENSE="Apache-2.0" +# We use this subslot because Compiled HiPE Code can be loaded on the exact +# same build of ERTS that was used when compiling the code. See +# http://erlang.org/doc/system_principles/misc.html for more information. +SLOT="0/${PV}" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="doc java +kpoll odbc sctp ssl systemd tk wxwidgets" + +RDEPEND=" + acct-group/epmd + acct-user/epmd + sys-libs/ncurses:0 + sys-libs/zlib + java? ( >=virtual/jdk-1.8:* ) + odbc? ( dev-db/unixODBC ) + sctp? ( net-misc/lksctp-tools ) + ssl? ( >=dev-libs/openssl-0.9.7d:0= ) + systemd? ( sys-apps/systemd ) + wxwidgets? ( + dev-libs/glib:2 + x11-libs/wxGTK:${WX_GTK_VER}=[X,opengl] + virtual/glu + ) +" +DEPEND="${RDEPEND} + dev-lang/perl +" + +PATCHES=( + "${FILESDIR}"/${PN}-27.0-dont-ignore-LDFLAGS.patch + "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch +) + +SITEFILE=50"${PN}"-gentoo.el + +QA_CONFIG_IMPL_DECL_SKIP=( + # FreeBSD & OpenBSD + pthread_set_name_np +) + +src_prepare() { + default + + tc-export AR CPP CXX LD + + # bug #797886: erlang's VM does unsafe casts for ints + # to pointers and back. This breaks on gcc-11 -flto. + append-flags -fno-strict-aliasing + + # Ensure that we use erl_interface's libei.a, and not the system + # libei.so from dev-libs/libei. Bug #912888. + sed -i 's/-lei$/-l:libei.a/' \ + "${S}"/lib/odbc/c_src/Makefile.in || die + (cd "${S}"/lib/odbc && + eautoconf -B "${S}"/make/autoconf && + eautoheader -B "${S}"/make/autoconf) || die +} + +src_configure() { + use wxwidgets && setup-wxwidgets + + local myconf=( + --disable-builtin-zlib + + # don't search for static zlib + --with-ssl-zlib=no + + $(use_enable kpoll kernel-poll) + $(use_with java javac) + $(use_with odbc) + $(use_enable sctp) + $(use_with ssl ssl) + $(use_enable ssl dynamic-ssl-lib) + $(use_enable systemd) + $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null") + ) + econf "${myconf[@]}" +} + +src_compile() { + emake + use doc && emake docs DOC_TARGETS=chunks +} + +extract_version() { + local path="$1" + local var_name="$2" + sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed" +} + +src_install() { + local erl_libdir_rel="$(get_libdir)/erlang" + local erl_libdir="/usr/${erl_libdir_rel}" + local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)" + local erl_erts_ver="$(extract_version erts VSN)" + local my_manpath="/usr/share/${PN}/man" + + [[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version" + [[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version" + + emake INSTALL_PREFIX="${D}" install + + if use doc ; then + emake INSTALL_PREFIX="${D}" install-docs DOC_TARGETS=chunks + + # Note: we explicitly install docs into: + # /usr/share/doc/${PF}/{doc,lib,erts-*} + # To maintain that layout we gather everything in 'html-docs'. + # See bug #684376. + mkdir html-docs || die + mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die + local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. ) + docompress -x /usr/share/doc/${PF} + else + local DOCS=("README.md") + fi + + einstalldocs + + dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl + dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc + dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript + dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call + dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp + + ## Clean up the no longer needed files + rm "${ED}/${erl_libdir}/Install" || die + + # Bug #922743 + docompress "${my_manpath}" + + insinto "${my_manpath}" + doins -r "${WORKDIR}"/man/* + # extend MANPATH, so the normal man command can find it + # see bug 189639 + newenvd - "90erlang" <<-_EOF_ + MANPATH="${my_manpath}" + _EOF_ + + newinitd "${FILESDIR}"/epmd.init-r3 epmd + use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service +} + +src_test() { + # Only run a subset of tests to test that everything was built + # successfully, otherwise we will be here for a long time. + emake kernel_test ARGS="-suite os_SUITE" +}
