summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorȘtefan Talpalaru <stefantalpalaru@yahoo.com>2018-08-17 21:45:30 +0200
committerMichał Górny <mgorny@gentoo.org>2018-09-30 12:53:41 +0200
commit52b809031961e32051870ace639b4efd87234160 (patch)
treeb5f98c2ce9c1dc2654eb50b99e6f76db82721298
parent7825bb59cdfcc6f2c7209fb39b078a64bf37ba7e (diff)
downloadgentoo-52b809031961e32051870ace639b4efd87234160.tar.gz
gentoo-52b809031961e32051870ace639b4efd87234160.tar.xz
dev-lang/erlang: version bump to 21.1
I removed some deprecated configure options, properly (re-)added the "wxwidgets" USE flag - without automagic dependencies, added the "pgo" flag and made some USE flags enabled by default to match upstream's defaults. Most of the ebuild was refactored, after code reviews, with the more significant change being the replacement of two shell functions copied from an upstream build script with a call to a patched version of that script. When the "pgo" USE flag is enabled, distcc and ccache are disabled, to avoid a build failure due to a version mismatch in .gcda files that cannot be explained by different GCC versions. Closes: https://bugs.gentoo.org/653700 Closes: https://bugs.gentoo.org/658656 Signed-off-by: Ștefan Talpalaru <stefantalpalaru@yahoo.com> Signed-off-by: Michał Górny <mgorny@gentoo.org> Closes: https://github.com/gentoo/gentoo/pull/9357
-rw-r--r--dev-lang/erlang/Manifest3
-rw-r--r--dev-lang/erlang/erlang-21.1.ebuild161
-rw-r--r--dev-lang/erlang/files/erlang-custom-autoconf.patch14
-rw-r--r--dev-lang/erlang/metadata.xml27
4 files changed, 192 insertions, 13 deletions
diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest
index 9efbfa0c7fd..e3c0b5398af 100644
--- a/dev-lang/erlang/Manifest
+++ b/dev-lang/erlang/Manifest
@@ -3,10 +3,13 @@ DIST erlang-20.3.8.9.tar.gz 53514692 BLAKE2B 1afa37ff8cc462cb0cc719c49c2c10b2684
DIST erlang-20.3.8.tar.gz 53499006 BLAKE2B 0c38fb739a9c4f4b79533faea8c533f85c30d680081b5de96e70722a243d53b9317a26c7138a24a78cadd938777bd48a515484fffef2fdfd720819ab12bb8c0c SHA512 2ada142b47fdd0d1807a179e7cd3067e001f94682011436d33e503219a8a93495a187f8192fa2ebcdac48409e489b7b310d538779447981e6ba033a6dde12e1c
DIST erlang-21.0.2.tar.gz 52835517 BLAKE2B bf7e2e166236a7c0a3e3411889f163dce0d938c1a854a6c264c137b601587c4cd4d62d58d9a87cf925406272d6e3d6547e4403927adc8e901716289ee2164162 SHA512 ff736a6df92ac7feec7b9ebb1b6523d511a533d48e536f36aee20fa21b5a1dc33791065d45f6900bbbaa48b4ba80b57a306b416801456a5ac33468786dfb00b7
DIST erlang-21.0.9.tar.gz 52842736 BLAKE2B 57de5e94450a70d32eb46bff691be4d3679daa56bee4e9aa2aad156b9447ea5bbe1287b806c304115c0ac4a677b8a04fb23286e269c7e0516f60cebd5ef2b3c7 SHA512 01bc5ce8d5c76823af1a17d389f326509c4ade5add0b0e66830e2c6aec2c7d93906cbbf9fb6b454178bddfa1c96355d632e4c557ab6da2bbdb8c6b0e05d87ee8
+DIST erlang-21.1.tar.gz 53857079 BLAKE2B ae292f5e98d747a6afb5d82205dd33d55cb6e275e3ebc98a4dbc8378cfcb1ea64f83d5f2d2256fd7208c7fe553b47ff25edf2858287f5316cae50788f2175337 SHA512 9e118e902c33b8dd71266efb4cc4aeb0db0d8be8adb64ac85595a6507dc847b84e5444a9b5c5cbf46b560c885db9f4cd934c74de4aa2e1574785295ea0865348
DIST erlang_doc_html_20.3.tar.gz 33594990 BLAKE2B 34db68a5c3ae56f097474cc0b776971853d96c57d3d2e058a5db8998aad9c8d498610979a46155e8e935022f363c944f407c10c650fd35174cf1f50697ddf1de SHA512 4b280228fb9cbd9eb62db12ff9d6fad67d6855d0cdbc780839bbc95302ffd907c5b410e6f8519207db8850b753964571a9bf9df9eca53749f5b01d1b27dbc6d4
DIST erlang_doc_html_21.0.tar.gz 32501093 BLAKE2B 5c5bab831d4a86129cca41f8e82416d45a92e8ae29cd2223301633b46471783ee6bb8131d469cedcf0f655ea21879c475c61d0b9eefba9e12d78d0a803403a19 SHA512 8be300d9e502b7dcf8db4621d7c5c8981f47cbff851b30b33ef33871f737554eda73dacd179b64995fc45362c4dfd91e15ff659d2898f863465222176bfbff9f
+DIST erlang_doc_html_21.1.tar.gz 32692731 BLAKE2B a7fa8ebe1c876ab7eecd2dd46ffd4d288db6d308e0f131d53c26ee4b67a92cb6fcb89b6c880ef34df395c7ad61fcdc81eac32e0fcf7336be7d517263218146bc SHA512 0d659f55bfb01eecf140a310154724489ef56b6ccbe9ac30f6b053f598276721b80de7b5b3200707cf8a6e77b8854eae5453f655225f431fcc982550539f767f
DIST erlang_doc_man_20.3.tar.gz 1339710 BLAKE2B 00aba848940914b3d98f9500b8201b0679d7d63d066cee296c8fbb399f132340b989f3cdcdd6c45a46e432efdb7c40c39d8ab4f3dbd64570316d649efc9faed1 SHA512 22c398ce3b42c7ef8abec1db85745eeb4d8804bc679d40b6a786fdc40dc241e43b5551df5d1eccb3ca8d4a64b833bf6663e77044f4564bb49cf67c4b74c5ea25
DIST erlang_doc_man_21.0.tar.gz 1311959 BLAKE2B 70b049c6d7b8bbbb3bf77f7588ccf0eb937d5fe511968d47e1325dd01b48e986ae82804ffc88b750f0f7e2fe0482c0506ad060a6a84892eea61264aa2b003dd9 SHA512 611ac0b7cb2c0bc0bb6cd194dffe4f9d2c95bf38da033aa8c43d386a9bedf6f7d6fa8a95d340dbb57da2698602599c8e0501cbbdd735d6e5d35110aa9087dc79
+DIST erlang_doc_man_21.1.tar.gz 1317726 BLAKE2B 5e5c2b77a41da6ab9ae1264ba5824a9f3bda6d3b7a824b372e01356888db437ed9e45bf987d678aca3fd8d0f0e6dce25080c7a2aaa4e061936f1e6ac4717e843 SHA512 94c6191ba9f42bffeb398e865026fbc79f3b233389c7d471f0c680799aa3669e97ab5305cd53f26d6525aed33d738ebfc4eb79a8f1a0b29dc4b79a2a37a29a4f
DIST otp_doc_html_19.1.tar.gz 34624316 BLAKE2B e3a5edfe1645d58e4cbd6537c775190716eed7613610ddfa112692fdbace2077b1ccdf7df5987973d2ae4ef529e4ec45d44a240265157816e2a15dabe9232b83 SHA512 2c6448af0be4bf35427950aca82eac3aac7554575ba07a8ba8942c27e1eb668461fde00604c3be28fbaca8a1e28ee4861608e33a9c79bc951bb695f99b1c1ac8
DIST otp_doc_html_19.3.tar.gz 35818689 BLAKE2B 30118276fbd817b803ef20700fe2e71a8457645d00f8949b6d3175d92cb5c84d306e4de9899e2f5e0c562d8040dc22db35e1a0f2e314cf1a783794573b3ece59 SHA512 a70d2c470fa1dc0594b20af73ba36ccb7702b4192960e6fc0296738175215a43450f9bf558637f7f5e40757f7a15dcf4f1ae8a88515e211cd3c0fae45c5e1858
DIST otp_doc_html_20.2.tar.gz 33570484 BLAKE2B c47244a601ae780e5304aedbafbc84d514cb21852760c51384b197d8d37602d51448b7123f6205da9afd2c5d2158f518a122dd4d550ca2ff22d3425eb31b6cf7 SHA512 b481930066737cf0ae2496aa9bc0c865da46bd3985fe5ebcf51eb9383539a57ec364e1eed9d3916ba0953d837d0d5d37cfc129a995d4e2a9656846e75cda9397
diff --git a/dev-lang/erlang/erlang-21.1.ebuild b/dev-lang/erlang/erlang-21.1.ebuild
new file mode 100644
index 00000000000..4b6b149c124
--- /dev/null
+++ b/dev-lang/erlang/erlang-21.1.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+WX_GTK_VER="3.0"
+
+inherit autotools eapi7-ver elisp-common java-pkg-opt-2 systemd 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
+ http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
+IUSE="doc emacs +hipe java +kpoll libressl odbc pgo sctp ssl systemd tk +wxwidgets"
+
+RDEPEND="
+ sys-libs/ncurses:0
+ sys-libs/zlib
+ emacs? ( virtual/emacs )
+ java? ( >=virtual/jdk-1.8:* )
+ odbc? ( dev-db/unixODBC )
+ sctp? ( net-misc/lksctp-tools )
+ ssl? (
+ !libressl? ( >=dev-libs/openssl-0.9.7d:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )
+ systemd? ( sys-apps/systemd )
+ tk? ( dev-lang/tk:0 )
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
+"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+"
+
+S="${WORKDIR}/otp-OTP-${PV}"
+
+PATCHES=(
+ "${FILESDIR}/18.2.1-wx3.0.patch"
+ "${FILESDIR}/${PN}-20.3.2-dont-ignore-LDFLAGS.patch"
+ "${FILESDIR}/${PN}-add-epmd-pid-file-creation-for-openrc.patch"
+ "${FILESDIR}/${PN}-custom-autoconf.patch"
+)
+
+SITEFILE=50"${PN}"-gentoo.el
+
+src_prepare() {
+ default
+
+ ./otp_build autoconf
+ find -name configure.in -execdir mv '{}' configure.ac \; || die "find failed"
+ eautoreconf
+}
+
+src_configure() {
+ use wxwidgets && setup-wxwidgets
+
+ local myconf=(
+ --disable-builtin-zlib
+ $(use_enable hipe)
+ $(use_enable kpoll kernel-poll)
+ $(use_with java javac)
+ $(use_with odbc)
+ $(use_enable sctp)
+ $(use_with ssl)
+ $(use_with ssl ssl-rpath "no")
+ $(use_enable ssl dynamic-ssl-lib)
+ $(use_enable systemd)
+ $(use_enable pgo)
+ $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
+ --enable-threads
+ )
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ if use pgo; then
+ # disable distcc and ccache
+ export DISTCC_HOSTS=""
+ export CCACHE_DISABLE=1
+ fi
+
+ emake
+
+ 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="${ED}" install
+
+ if use doc ; then
+ local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" "${WORKDIR}"/doc/. "${WORKDIR}"/lib/. "${WORKDIR}"/erts-* )
+ 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 epmd
+ use systemd && systemd_dounit "${FILESDIR}"/epmd.service
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/erlang/files/erlang-custom-autoconf.patch b/dev-lang/erlang/files/erlang-custom-autoconf.patch
new file mode 100644
index 00000000000..5ae7b43ba28
--- /dev/null
+++ b/dev-lang/erlang/files/erlang-custom-autoconf.patch
@@ -0,0 +1,14 @@
+diff -ur otp-OTP-21.0.5.orig/otp_build otp-OTP-21.0.5/otp_build
+--- otp-OTP-21.0.5.orig/otp_build 2018-08-10 19:02:51.000000000 +0200
++++ otp-OTP-21.0.5/otp_build 2018-08-15 23:44:59.417191209 +0200
+@@ -1343,7 +1343,9 @@
+ do_lazy_configure "$@";
+ do_boot;;
+ autoconf)
+- do_autoconf;;
++ create_lib_configure_in
++ distribute_config_helpers
++ ;;
+ configure)
+ shift;
+ do_configure "$@";;
diff --git a/dev-lang/erlang/metadata.xml b/dev-lang/erlang/metadata.xml
index 9da736baffe..2f3f0770a55 100644
--- a/dev-lang/erlang/metadata.xml
+++ b/dev-lang/erlang/metadata.xml
@@ -1,17 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!-- maintainer-needed -->
- <use>
- <flag name="hipe">HIgh Performance Erlang extension</flag>
- <flag name="kpoll">Enable kernel polling support</flag>
- <flag name="compat-ethread">Enable compatibility with pre-pentium 4 CPUs in the ethread library.</flag>
- <flag name="dirty-schedulers">Enable dirty schedulers</flag>
- </use>
-<longdescription>
-Erlang is a programming language designed at the Ericsson
-Computer Science Laboratory. Open-source Erlang is being
-released to help encourage the spread of Erlang outside
-Ericsson.
-</longdescription>
+ <!--maintainer-needed-->
+ <use>
+ <flag name="compat-ethread">Enable compatibility with pre-pentium 4 CPUs in the ethread library.</flag>
+ <flag name="dirty-schedulers">Enable dirty schedulers</flag>
+ <flag name="hipe">HIgh Performance Erlang extension</flag>
+ <flag name="kpoll">Enable kernel polling support</flag>
+ <flag name="pgo">Build erts with profile-guided optimizations</flag>
+ </use>
+ <longdescription>
+ Erlang is a programming language designed at the Ericsson
+ Computer Science Laboratory. Open-source Erlang is being
+ released to help encourage the spread of Erlang outside
+ Ericsson.
+ </longdescription>
</pkgmetadata>