diff options
Diffstat (limited to 'dev-lang/erlang')
-rw-r--r-- | dev-lang/erlang/Manifest | 3 | ||||
-rw-r--r-- | dev-lang/erlang/erlang-26.0.ebuild | 174 |
2 files changed, 177 insertions, 0 deletions
diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest index 68c317f27eb1..781941551332 100644 --- a/dev-lang/erlang/Manifest +++ b/dev-lang/erlang/Manifest @@ -4,11 +4,14 @@ DIST erlang-25.1.2.tar.gz 59975596 BLAKE2B d86e90f121cc1252301b88ce3551a9f4085aa DIST erlang-25.2.2.tar.gz 60014706 BLAKE2B 07727608699c264d24a6208c936694f084850651682a587b7f38b7ee2965850541dec3a3edf1e36f7571d2be4ed3b9eb89572a2591951b5e856ec64af3e38edf SHA512 e93f5b7079f9cf1e00528587a8fc96ed5b4a29b6b329a38e238341f79d98f20f811548875fbaf137fd64b38d5950989e885a2293680475a0b7198307eef1de4a DIST erlang-25.2.3.tar.gz 60022013 BLAKE2B ad890fab56e126cda89a05ba5de906db9c573a9118cad365d2c429f47631d8edf0fe7762805286facb71077358df461de88896f92abe524b88568ce0c4d6b8ee SHA512 aa51ebcb9c4977ebd695d416488fc8ac94e7d19b962f6d470c5e6377151781ed6c50319eeb2cbbac75438d9f759302d1e48d2c2118ec86063a33a22ed8651f27 DIST erlang-25.3.tar.gz 60060354 BLAKE2B c18beb1aa00f88ac303ce2488da6973cd63b4cb3c611d9ee93bdb8a522fa068bfab2307448d085e40c7c6e1b300a1d2b72f0626e8fd236c84617ff031afcb569 SHA512 cf104918917e33db250b48aaad3c098899739358035d764ea2ee1fc9ba7937504190752163ce8430bdbfc576ce2c2533d4f50fc8f0994ff155e3df188a8db99e +DIST erlang-26.0.tar.gz 61355457 BLAKE2B 4f5abc04b794d2b2b9e27e20be9197a7c81113607a5ca2605c189212eef70db55eee5120eca36426a2c16237f576751605cdc943c7c2f070d68c6cca6585c46b SHA512 732e259f2018102b62a5d8076953a6a78d3e1f1714edde2c306fe863e5377b9a7f87052e03e92df93eea270a608b29ab4e22d5841d1314f9a532dac4aeff5436 DIST erlang_doc_html_25.0.tar.gz 37051192 BLAKE2B 2d79ccb3b850b199de0a7da83c6358b9f3cf63826aeddb54307640129c1f96689200895c3c3ec52f503362945e7c6083a7317cd4ea57dc7d6772844801843c74 SHA512 6ce8423705f86fb2cd403e9c51089d7b2569ba93498f9143b5dbac85eb10b403c4bc948f8a68e55c40116cdd9a93f050bb037f94fc3c8651175d9065d2c598be DIST erlang_doc_html_25.1.tar.gz 37197742 BLAKE2B 432e89471cfbf15ba35507f66958df559e38d5a4be1b4fe07e2abdaaacc1642dd9e55c2d67ce893fa108c38e25929cb58fb4de2474ec69273222b3ef0a7e0a5d SHA512 3e39f505030a3d0422b4a79f31a2af830eeff5076c3dddeafd336d0a91a4ac895a92a17cf5b4f6265d0a4b150c0548ecd0cc38174ce0488a5328e16307eaedc3 DIST erlang_doc_html_25.2.tar.gz 37090722 BLAKE2B d2169d11266a2a252b9b4d6523275a8e31e059e5c2ded868992d657c311ca85ee5c6d25b22798a55c9d2c142dbbc9d65438ae3ce98a5607696e09e18e63bb845 SHA512 25356288c605aad8ae17f39a3c9c27f2afd0630b177a554193354a79c19b9ec3cfaeefedf89760ba90c6b86674e59fab9aee7278ff134522793dad39012b8780 DIST erlang_doc_html_25.3.tar.gz 37134864 BLAKE2B 86af9f6eacccbdc8e66e1407a29bc70620052f5968f4378df751f89795f98898a057c2e187553e5b938b5a9cc55a223fedb9bc2936cb3ade5f444e05a810f7d0 SHA512 d469f6088a20a840687ceed66b3d4ef3bf9446a00ea490f6bb14e5ec8a0b642ac0ff14243010e45483e9d4d33742525916d05ec93e171fe9f5e0dfbac3733837 +DIST erlang_doc_html_26.0.tar.gz 37434137 BLAKE2B 0a1bd0f4966d90cc5aaa8852b280204d81271af0449a019399dfcbeab4b2427a91fa57e1dafe24c55ee1a7abf5f52c019ca7454f7c2ca8dbe604d60ef437a4e0 SHA512 c11cf064808bee3a9e8334ee597daadfff397bd700622c80affa8df127a53de3cb5685c3338fa6d28b5c7a5c171379e0289f557dc3fc6ab0459ada757219ce3e DIST erlang_doc_man_25.0.tar.gz 1711510 BLAKE2B 743efa8edbeeb99e37e227c1e5e3be1825a391007e1c220ba22163c528edda8941b1dca0951cc02aff016dda0d52f3a6ff4fdbbbe279ce067c7a1993997ce6b4 SHA512 c6b6490961228893253e11d5bb88cbd30ba2cb1c13819a85db6699b437f0327fb55962accb6b602a4ec5ffc423882205d05873b064fb3e4c52950a423706fb09 DIST erlang_doc_man_25.1.tar.gz 1714586 BLAKE2B b37b03f60d662d02018515de5ca16b3891a32c5ebc1bd1cc72ac17aadd409c3c5084898f1605d4a8aa579ebce4b5a8f75a39fa90e5fc4d233b2f7e9b8121768d SHA512 4194779c8975234ad8f693bbe43c9eefd2d954ed7fec493493c4a6a9028b58fd55ce6479a113d863bd91ff4732b88c4b8cae3e3a16846add5c7af6616317f595 DIST erlang_doc_man_25.2.tar.gz 1717206 BLAKE2B 26649d878b09e975949ddf1a981b345fd9cbdf8d3f35af5067c9273a60a7ec1c7216d63acc438dd59310560022c22b2ac7fbf4cd7b7947811ad8e1d185cf6b2f SHA512 939c6d61c360b71690e509f02f39061f0cfcb8c63c99a0255010503c89123aa59ccdd2cfdc1c055735f579e01c566083a48fe8cec5c467e447978fafda7a0aef DIST erlang_doc_man_25.3.tar.gz 1719335 BLAKE2B d3d91e5920648ddb5b8375c969586b904d743f1d60acbefddd98577bd11b82246a2f149fdaa8ff1d16e8efc9f3793ce1dbc61efc9bc28c68f50919460d1e8e24 SHA512 9f2e6c4e4a39dd41deb6a2d7b7a04dd374f110bf776c8d08f3139265a8fa00e7c9420e2d2c406231a8d2748bdc65ca7e40ef1d4b9bfe6b06f52a24881ee8747d +DIST erlang_doc_man_26.0.tar.gz 1742307 BLAKE2B cd52b6e148fd45a1a1b427fa9dccdb7127082f0cfc23a850c519a9dc9e6cc7e0fca3894433d44dcad27e2a8123626b09d86b7f581e503d977f0977ef62a574d8 SHA512 9e3fc06667e633fd1c90f57d86159cbbdbb6105719e3c1ab6733e5190aa48b8c8fbf735172e5763b6893e89a56ec13c0afcdf6c6505de739312b37ff246ed113 diff --git a/dev-lang/erlang/erlang-26.0.ebuild b/dev-lang/erlang/erlang-26.0.ebuild new file mode 100644 index 000000000000..c3fa924e7389 --- /dev/null +++ b/dev-lang/erlang/erlang-26.0.ebuild @@ -0,0 +1,174 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +WX_GTK_VER="3.0-gtk3" + +inherit elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets + +# NOTE: If you need symlinks for binaries please tell maintainers or +# open up a bug to let it be created. + +UPSTREAM_V="$(ver_cut 1-2)" + +DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)" +HOMEPAGE="https://www.erlang.org/" +SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz + https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz + doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )" + +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 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets" + +RDEPEND=" + acct-group/epmd + acct-user/epmd + sys-libs/ncurses:0 + sys-libs/zlib + emacs? ( >=app-editors/emacs-23.1:* ) + 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? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] ) +" +DEPEND="${RDEPEND} + dev-lang/perl +" + +S="${WORKDIR}/otp-OTP-${PV}" + +PATCHES=( + "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch + "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch + "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887 +) + +SITEFILE=50"${PN}"-gentoo.el + +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 +} + +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_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 + + if use doc ; then + emake docs DOC_TARGETS=chunks + fi + + if use emacs ; then + pushd lib/tools/emacs &>/dev/null || die + elisp-compile *.el + popd &>/dev/null || die + fi +} + +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 + + 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_ + + if use emacs ; then + elisp-install erlang lib/tools/emacs/*.{el,elc} + sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \ + "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die + elisp-site-file-install "${T}/${SITEFILE}" + fi + + 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" +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} |