3 |
3 |
|
4 |
4 |
EAPI=8
|
5 |
5 |
|
6 |
|
inherit autotools elisp-common flag-o-matic readme.gentoo-r1
|
|
6 |
inherit autotools elisp-common readme.gentoo-r1 toolchain-funcs
|
|
7 |
|
|
8 |
if [[ ${PV##*.} = 9999 ]]; then
|
|
9 |
inherit git-r3
|
|
10 |
EGIT_REPO_URI="https://git.savannah.gnu.org/git/emacs.git"
|
|
11 |
EGIT_BRANCH="emacs-27"
|
|
12 |
EGIT_CHECKOUT_DIR="${WORKDIR}/emacs"
|
|
13 |
S="${EGIT_CHECKOUT_DIR}"
|
|
14 |
SLOT="${PV%%.*}-vcs"
|
|
15 |
else
|
|
16 |
# FULL_VERSION keeps the full version number, which is needed in
|
|
17 |
# order to determine some path information correctly for copy/move
|
|
18 |
# operations later on
|
|
19 |
FULL_VERSION="${PV%%_*}"
|
|
20 |
SRC_URI="mirror://gnu/emacs/${P}.tar.xz"
|
|
21 |
S="${WORKDIR}/emacs-${FULL_VERSION}"
|
|
22 |
# PV can be in any of the following formats:
|
|
23 |
# 27.1 released version (slot 27)
|
|
24 |
# 27.1_rc1 upstream release candidate (27)
|
|
25 |
# 27.0.9999 live ebuild (slot 27-vcs)
|
|
26 |
# 27.0.90 upstream prerelease snapshot (27-vcs)
|
|
27 |
# 27.0.50_pre20191223 snapshot by Gentoo developer (27-vcs)
|
|
28 |
if [[ ${PV} == *_pre* ]]; then
|
|
29 |
SRC_URI="https://dev.gentoo.org/~ulm/distfiles/${P}.tar.xz"
|
|
30 |
S="${WORKDIR}/emacs"
|
|
31 |
elif [[ ${PV//[0-9]} != "." ]]; then
|
|
32 |
SRC_URI="https://alpha.gnu.org/gnu/emacs/pretest/${PN}-${PV/_/-}.tar.xz"
|
|
33 |
fi
|
|
34 |
# Patchset from proj/emacs-patches.git
|
|
35 |
SRC_URI+=" https://dev.gentoo.org/~ulm/emacs/${P}-patches-6.tar.xz"
|
|
36 |
PATCHES=("${WORKDIR}/patch")
|
|
37 |
SLOT="${PV%%.*}"
|
|
38 |
[[ ${PV} == *.*.* ]] && SLOT+="-vcs"
|
|
39 |
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
|
|
40 |
fi
|
7 |
41 |
|
8 |
42 |
DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
|
9 |
43 |
HOMEPAGE="https://www.gnu.org/software/emacs/"
|
10 |
|
SRC_URI="mirror://gnu/emacs/${P}.tar.xz
|
11 |
|
https://dev.gentoo.org/~ulm/emacs/${P}-patches-5.tar.xz"
|
12 |
44 |
|
13 |
45 |
LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
|
14 |
|
SLOT="26"
|
15 |
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
|
16 |
|
IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif gpm gsettings gtk gui gzip-el imagemagick +inotify jpeg kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source ssl svg systemd +threads tiff toolkit-scroll-bars valgrind wide-int Xaw3d xft +xpm xwidgets zlib"
|
|
46 |
IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jpeg json kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source ssl svg systemd +threads tiff toolkit-scroll-bars valgrind wide-int Xaw3d xft +xpm xwidgets zlib"
|
|
47 |
RESTRICT="test"
|
17 |
48 |
|
18 |
49 |
RDEPEND="app-emacs/emacs-common[games?,gui(-)?]
|
19 |
50 |
sys-libs/ncurses:0=
|
... | ... | |
21 |
52 |
alsa? ( media-libs/alsa-lib )
|
22 |
53 |
dbus? ( sys-apps/dbus )
|
23 |
54 |
games? ( acct-group/gamestat )
|
|
55 |
gmp? ( dev-libs/gmp:0= )
|
24 |
56 |
gpm? ( sys-libs/gpm )
|
25 |
57 |
!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
|
|
58 |
json? ( dev-libs/jansson:= )
|
26 |
59 |
kerberos? ( virtual/krb5 )
|
27 |
60 |
lcms? ( media-libs/lcms:2 )
|
28 |
61 |
libxml2? ( >=dev-libs/libxml2-2.2.0 )
|
... | ... | |
54 |
87 |
xft? (
|
55 |
88 |
media-libs/fontconfig
|
56 |
89 |
media-libs/freetype
|
57 |
|
x11-libs/libXft
|
58 |
90 |
x11-libs/libXrender
|
59 |
91 |
cairo? ( >=x11-libs/cairo-1.12.18[X] )
|
|
92 |
!cairo? ( x11-libs/libXft )
|
|
93 |
harfbuzz? ( media-libs/harfbuzz:0= )
|
60 |
94 |
m17n-lib? (
|
61 |
95 |
>=dev-libs/libotf-0.9.4
|
62 |
96 |
>=dev-libs/m17n-lib-1.5.1
|
... | ... | |
94 |
128 |
DEPEND="${RDEPEND}
|
95 |
129 |
gui? ( !aqua? ( x11-base/xorg-proto ) )"
|
96 |
130 |
|
97 |
|
BDEPEND="virtual/pkgconfig
|
|
131 |
BDEPEND="sys-apps/texinfo
|
|
132 |
virtual/pkgconfig
|
98 |
133 |
gzip-el? ( app-arch/gzip )"
|
99 |
134 |
|
100 |
135 |
IDEPEND="app-eselect/eselect-emacs"
|
... | ... | |
103 |
138 |
|
104 |
139 |
EMACS_SUFFIX="emacs-${SLOT}"
|
105 |
140 |
SITEFILE="20${EMACS_SUFFIX}-gentoo.el"
|
106 |
|
# FULL_VERSION keeps the full version number, which is needed in
|
107 |
|
# order to determine some path information correctly for copy/move
|
108 |
|
# operations later on
|
109 |
|
FULL_VERSION="${PV%%_*}"
|
110 |
|
S="${WORKDIR}/emacs-${FULL_VERSION}"
|
111 |
|
PATCHES=("${WORKDIR}/patch")
|
112 |
141 |
|
113 |
142 |
src_prepare() {
|
|
143 |
if [[ ${PV##*.} = 9999 ]]; then
|
|
144 |
FULL_VERSION=$(sed -n 's/^AC_INIT([^,]*,[ \t]*\([^ \t,)]*\).*/\1/p' \
|
|
145 |
configure.ac)
|
|
146 |
[[ ${FULL_VERSION} ]] || die "Cannot determine current Emacs version"
|
|
147 |
einfo "Emacs branch: ${EGIT_BRANCH}"
|
|
148 |
einfo "Commit: ${EGIT_VERSION}"
|
|
149 |
einfo "Emacs version number: ${FULL_VERSION}"
|
|
150 |
[[ ${FULL_VERSION} =~ ^${PV%.*}(\..*)?$ ]] \
|
|
151 |
|| die "Upstream version number changed to ${FULL_VERSION}"
|
|
152 |
fi
|
|
153 |
|
114 |
154 |
default
|
115 |
155 |
|
116 |
156 |
# Fix filename reference in redirected man page
|
... | ... | |
120 |
160 |
}
|
121 |
161 |
|
122 |
162 |
src_configure() {
|
123 |
|
strip-flags
|
124 |
|
filter-flags -pie #526948
|
125 |
|
|
126 |
|
if use ia64; then
|
127 |
|
replace-flags "-O[2-9]" -O1 #325373
|
128 |
|
else
|
129 |
|
replace-flags "-O[3-9]" -O2
|
130 |
|
fi
|
131 |
|
|
132 |
163 |
local myconf
|
133 |
164 |
|
134 |
165 |
if use alsa; then
|
... | ... | |
162 |
193 |
if use xft; then
|
163 |
194 |
myconf+=" --with-xft"
|
164 |
195 |
myconf+=" $(use_with cairo)"
|
|
196 |
myconf+=" $(use_with harfbuzz)"
|
165 |
197 |
myconf+=" $(use_with m17n-lib libotf)"
|
166 |
198 |
myconf+=" $(use_with m17n-lib m17n-flt)"
|
167 |
199 |
else
|
... | ... | |
210 |
242 |
"USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
|
211 |
243 |
fi
|
212 |
244 |
|
|
245 |
if tc-is-cross-compiler; then
|
|
246 |
# Configure a CBUILD directory when cross-compiling to make tools
|
|
247 |
mkdir "${S}-build" && pushd "${S}-build" >/dev/null || die
|
|
248 |
ECONF_SOURCE="${S}" econf_build --without-all --without-x-toolkit
|
|
249 |
popd >/dev/null || die
|
|
250 |
# Don't try to execute the binary for dumping during the build
|
|
251 |
myconf+=" --with-dumping=none"
|
|
252 |
elif use m68k; then
|
|
253 |
# Workaround for https://debbugs.gnu.org/44531
|
|
254 |
myconf+=" --with-dumping=unexec"
|
|
255 |
else
|
|
256 |
myconf+=" --with-dumping=pdumper"
|
|
257 |
fi
|
|
258 |
|
213 |
259 |
econf \
|
214 |
260 |
--program-suffix="-${EMACS_SUFFIX}" \
|
215 |
261 |
--includedir="${EPREFIX}"/usr/include/${EMACS_SUFFIX} \
|
... | ... | |
220 |
266 |
--without-hesiod \
|
221 |
267 |
--without-pop \
|
222 |
268 |
--with-file-notification=$(usev inotify || usev gfile || echo no) \
|
|
269 |
--with-pdumper \
|
223 |
270 |
$(use_enable acl) \
|
224 |
271 |
$(use_with dbus) \
|
225 |
272 |
$(use_with dynamic-loading modules) \
|
226 |
273 |
$(use_with games gameuser ":gamestat") \
|
|
274 |
$(use_with gmp libgmp) \
|
227 |
275 |
$(use_with gpm) \
|
|
276 |
$(use_with json) \
|
228 |
277 |
$(use_with kerberos) $(use_with kerberos kerberos5) \
|
229 |
278 |
$(use_with lcms lcms2) \
|
230 |
279 |
$(use_with libxml2 xml2) \
|
... | ... | |
241 |
290 |
src_compile() {
|
242 |
291 |
export ac_cv_header_valgrind_valgrind_h=$(usex valgrind)
|
243 |
292 |
|
244 |
|
# Disable sandbox when dumping. For the unbelievers, see bug #131505
|
245 |
|
emake RUN_TEMACS="SANDBOX_ON=0 LD_PRELOAD= env ./temacs"
|
|
293 |
if tc-is-cross-compiler; then
|
|
294 |
# Build native tools for compiling lisp etc.
|
|
295 |
emake -C "${S}-build" src
|
|
296 |
emake lib # Cross-compile dependencies first for timestamps
|
|
297 |
# Save native build tools in the cross-directory
|
|
298 |
cp "${S}-build"/lib-src/make-{docfile,fingerprint} lib-src || die
|
|
299 |
# Specify the native Emacs to compile lisp
|
|
300 |
emake -C lisp all EMACS="${S}-build/src/emacs"
|
|
301 |
fi
|
|
302 |
|
|
303 |
emake
|
246 |
304 |
}
|
247 |
305 |
|
248 |
306 |
src_install() {
|
... | ... | |
348 |
406 |
\"${EPREFIX}/Applications/Gentoo\". You may want to copy or
|
349 |
407 |
symlink it into /Applications by yourself."
|
350 |
408 |
fi
|
|
409 |
tc-is-cross-compiler && DOC_CONTENTS+="\\n\\nEmacs did not write
|
|
410 |
a portable dump file due to being cross-compiled.
|
|
411 |
To create this file at run time, execute the following command:
|
|
412 |
\\n${EMACS_SUFFIX} --batch -Q --eval='(dump-emacs-portable
|
|
413 |
\"/usr/libexec/emacs/${FULL_VERSION}/${CHOST}/emacs.pdmp\")'"
|
351 |
414 |
readme.gentoo_create_doc
|
352 |
415 |
}
|
353 |
416 |
|