1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/erlang/erlang-12.2.3.ebuild,v 1.8 2008/07/21 12:33:36 aballier Exp $
inherit autotools elisp-common eutils flag-o-matic multilib versionator
# NOTE: If you need symlinks for binaries please tell maintainers or
# open up a bug to let it be created.
# erlang uses a really weird versioning scheme which caused quite a few problems
# already. Thus we do a slight modification converting all letters to digits to
# make it more sane (see e.g. #26420)
# the next line selects the right source.
MY_PV="R$(get_major_version)B-$(get_version_component_range 3)"
# ATTN!! Take care when processing the C, etc version!
MY_P=otp_src_${MY_PV}
DESCRIPTION="Erlang programming language, runtime environment, and large collection of libraries"
HOMEPAGE="http://www.erlang.org/"
SRC_URI="http://www.erlang.org/download/${MY_P}.tar.gz
doc? ( http://erlang.org/download/otp_doc_man_${MY_PV}.tar.gz
http://erlang.org/download/otp_doc_html_${MY_PV}.tar.gz )"
LICENSE="EPL"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd"
IUSE="doc emacs hipe java kpoll odbc smp sctp ssl tk"
RDEPEND=">=dev-lang/perl-5.6.1
ssl? ( >=dev-libs/openssl-0.9.7d )
emacs? ( virtual/emacs )
java? ( >=virtual/jdk-1.2 )
odbc? ( dev-db/unixODBC )"
DEPEND="${RDEPEND}
sctp? ( net-misc/lksctp-tools )
tk? ( dev-lang/tk )"
S="${WORKDIR}/${MY_P}"
SITEFILE=50${PN}-gentoo.el
src_unpack() {
unpack ${A}
cd "${S}"
use odbc || sed -i 's: odbc : :' lib/Makefile
# fixes bug 226063, reported and accepted upstream for R12B-4
epatch "${FILESDIR}"/${P}-glibc28.patch
# Fix build on Gentoo/FreeBSD, upstream once accepted it but restored previous behaviour
# because of failures on vanilla BSD
epatch "${FILESDIR}"/${P}-gethostbyname.patch
# make sure we only link ssl dynamically
# will not be integrated by upstream for various reasons
sed -i '/SSL_DYNAMIC_ONLY=/s:no:yes:' erts/configure #184419
if use hipe; then
ewarn
ewarn "You enabled High performance Erlang. Be aware that this extension"
ewarn "can break the compilation in many ways, especially on hardened systems."
ewarn "Don't cry, don't file bugs, just disable it! If you have fix, tell us."
ewarn
fi
eautoreconf
}
src_compile() {
use java || export JAVAC=false
econf \
--enable-threads \
$(use_enable sctp) \
$(use_enable hipe) \
$(use_with ssl) \
$(use_enable kpoll kernel-poll) \
$(use_enable smp smp-support) \
|| die "econf failed"
emake -j1 || die "emake failed"
if use emacs ; then
pushd lib/tools/emacs
elisp-compile *.el || die
popd
fi
}
extract_version() {
sed -n -e "/^$2 = \(.*\)$/s::\1:p" "${S}/$1/vsn.mk"
}
src_install() {
local ERL_LIBDIR=/usr/$(get_libdir)/erlang
local ERL_INTERFACE_VER=$(extract_version lib/erl_interface EI_VSN)
local ERL_ERTS_VER=$(extract_version erts VSN)
emake -j1 INSTALL_PREFIX="${D}" install || die "install failed"
dodoc AUTHORS README
dosym "${ERL_LIBDIR}/bin/erl" /usr/bin/erl
dosym "${ERL_LIBDIR}/bin/erlc" /usr/bin/erlc
dosym "${ERL_LIBDIR}/bin/ear" /usr/bin/ear
dosym "${ERL_LIBDIR}/bin/escript" /usr/bin/escript
dosym \
"${ERL_LIBDIR}/lib/erl_interface-${ERL_INTERFACE_VER}/bin/erl_call" \
/usr/bin/erl_call
dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam" /usr/bin/beam
## Remove ${D} from the following files
dosed "${ERL_LIBDIR}/bin/erl"
dosed "${ERL_LIBDIR}/bin/start"
grep -rle "${D}" "${D}/${ERL_LIBDIR}/erts-${ERL_ERTS_VER}" | xargs sed -i -e "s:${D}::g"
## Clean up the no longer needed files
rm "${D}/${ERL_LIBDIR}/Install"
if use doc ; then
for i in "${WORKDIR}"/man/man* ; do
dodir "${ERL_LIBDIR}/${i##${WORKDIR}}"
done
for file in "${WORKDIR}"/man/man*/*.[1-9]; do
# Man page processing tools expect a capitalized "SEE ALSO" section
# header, has been reported upstream, should be fixed in R12
sed -i -e 's,\.SH See Also,\.SH SEE ALSO,g' ${file}
# doman sucks so we can't use it
cp ${file} "${D}/${ERL_LIBDIR}"/man/man${file##*.}/
done
# extend MANPATH, so the normal man command can find it
# see bug 189639
dodir /etc/env.d/
echo "MANPATH=\"${ERL_LIBDIR}/man\"" > "${D}/etc/env.d/90erlang"
dohtml -A README,erl,hrl,c,h,kwc,info -r \
"${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-*
fi
if use emacs ; then
pushd "${S}"
elisp-install erlang lib/tools/emacs/*.{el,elc}
elisp-site-file-install "${FILESDIR}"/${SITEFILE}
popd
fi
# prepare erl for SMP, fixes bug #188112
use smp && sed -i -e 's:\(exec.*erlexec\):\1 -smp:' \
"${D}/${ERL_LIBDIR}/bin/erl"
}
pkg_postinst() {
use emacs && elisp-site-regen
elog
elog "If you need a symlink to one of Erlang's binaries,"
elog "please open a bug on http://bugs.gentoo.org/"
elog
elog "Gentoo's versioning scheme differs from the author's, so please refer to this version as ${MY_PV}"
elog
}
pkg_postrm() {
use emacs && elisp-site-regen
}
|