Gentoo Archives: gentoo-commits

From: "Jakov Smolić" <jsmolic@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-editors/emacs/
Date: Sat, 31 Dec 2022 18:33:00
Message-Id: 1672511463.8b7bdc3f6f2e7f011e6dfca2016bdfcea699c137.jsmolic@gentoo
1 commit: 8b7bdc3f6f2e7f011e6dfca2016bdfcea699c137
2 Author: Jakov Smolić <jsmolic <AT> gentoo <DOT> org>
3 AuthorDate: Sat Dec 31 18:23:40 2022 +0000
4 Commit: Jakov Smolić <jsmolic <AT> gentoo <DOT> org>
5 CommitDate: Sat Dec 31 18:31:03 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8b7bdc3f
7
8 app-editors/emacs: drop 23.4-r23, 24.5-r13
9
10 Closes: https://bugs.gentoo.org/882347
11 Closes: https://bugs.gentoo.org/882349
12 Bug: https://bugs.gentoo.org/883687
13 Signed-off-by: Jakov Smolić <jsmolic <AT> gentoo.org>
14
15 app-editors/emacs/Manifest | 4 -
16 app-editors/emacs/emacs-23.4-r23.ebuild | 354 --------------------------------
17 app-editors/emacs/emacs-24.5-r13.ebuild | 346 -------------------------------
18 3 files changed, 704 deletions(-)
19
20 diff --git a/app-editors/emacs/Manifest b/app-editors/emacs/Manifest
21 index 384d9205a521..53713f6f72e0 100644
22 --- a/app-editors/emacs/Manifest
23 +++ b/app-editors/emacs/Manifest
24 @@ -1,9 +1,5 @@
25 DIST emacs-18.59-patches-15.tar.xz 34104 BLAKE2B 9d14004d5188ec0ffe11099ae1beb431adfe159d220fc1b6f1d0be67da19b88911b66a206386beee9498bdcaa48e40a185755734cad2d60927c79bc8ddf0fa7d SHA512 c82cd8e81acf63addd137716a60191b916ee9ac9f8176661be1e8dd0f347f63f8ca8bf9d4d225141499dcbf4c20444eb6526cc3a3912a2d4136fb2bd295e2c26
26 DIST emacs-18.59.tar.gz 2962652 BLAKE2B d617636daff41e672af2dcda26ec24b2495cf0a3e6373561ee26a2a922b7252c074dd6b79289d771853a4720c60f084f5726b904bf65989718173232ac874b0b SHA512 03ce565e346e89b7aacb1852f4783e8907f394de7da0c543b475cb038eb89b87f980d0f7ca1841b1d2108b20f211e95113c7214e4a33e5767a1827ff43173f33
27 -DIST emacs-23.4-patches-23.tar.xz 19932 BLAKE2B 941d939d1a66af162016eb7f4a34a3a6d19736ecbd06e2499ccb0bf8806b2b3583de324308698b00d0b47a3d0b8a046e5d5dcb2d681c2bba90ec40b58b4e9855 SHA512 83e2cef7ebe07fc69806d01946c6e96fa0e92b363e9c6531992593eeb29413518217fef05bba48729356af7d1326c3667748185aad971a625daccb803b2bfe58
28 -DIST emacs-23.4.tar.bz2 38646508 BLAKE2B 33dac5d27a63b7aab6b4053964a0ecf7f7939c7aea5af15103f2da7bd34fbb18dba7a1bf44cc4fcc2e3fb1439cdf7085d8dfc4b0005f5485748996e75ca6872d SHA512 def7a95ecaefae24d8102b96b1d575a23def1b11a8f0bb17b68f7913bd118e2ea4449a8feee76c1bd649f099b70419f0d494ddd9bb32b26f92720cda842b0296
29 -DIST emacs-24.5-patches-5.tar.xz 14796 BLAKE2B 3e097f9cdf96a8b0255ce69770f79259ac9bdddbf5aa77c381973e4348d0900ee6dc6ed4af26021811afbb14eff84bc2a370bc8e803d112476554d03b074ce66 SHA512 fe9f9c19ff760e61dcbf1828d4e9e2806c141b47372bdd736be8237183660a28e2ef86a97034d060e244ff81540a2503a1b47655ef84222fddacb3a87f0f34ae
30 -DIST emacs-24.5.tar.xz 39759804 BLAKE2B aec253528038686822d1f8ed9a52dff276789ef7744053fc9b6176fceba4d4d8684fe979cf97e756b3feaf734d2377baef81f5efaa5450930a4e94d9f3bca355 SHA512 89dee4c3aadb6e505c523f84c65b5e40e5bf28a586cc8a4518a59581c22972f942bb6f3c772df0d5b2685c3e78247c545c6bb2576e981d1ef0f9298c18ad1677
31 DIST emacs-25.3-patches-4.tar.xz 5164 BLAKE2B 30ef1e7ac6ee9a702678899cb27ea9c321eb0711d55917118ec99ea9e060e79bae179172d0a2dda5821c19902f6e0813e17ac71c198cd814c265838f96883b87 SHA512 ea487de3bb792386510c23c295441438c2fc4eae085fe9d41e5e16181fd4265c1d205b360ce977070a43343feeafac5b9392ea39414f2b170d7051f89ed58502
32 DIST emacs-25.3.tar.xz 42854740 BLAKE2B 4f4e2572bbef48b75c561497fc22046081e56099b6174725d79b15a5b16d5c886eaf8ff3f75cf561e989ebb092ab9e98ba7503e720a9db7560758b30d5116f23 SHA512 1cce656451b6ca8502ebb229e88bd3ef48b7f9444a10eeac4ea43bd5491b2efacd641dfa35227a33362c3866493d3449cf1df81606563eef44bba0ed668e457f
33 DIST emacs-26.3-patches-3.tar.xz 4160 BLAKE2B ae6fac12a2d2d35c31c895f1be9104b54c283cf4385d21e0ccd3825a3349d60495e441a5fa9f535d4b3d4c60da530ee036a475643cb11862f2a6e1bb44dc7deb SHA512 1edfdbbe6a97ffcdb17facc90336dd6f8d3d397bc95cf06fa170a4ca68e653226de8a5c2001d8dc3d3a0144d50421f2208c6fa3a816123ef952cb25df4aace49
34
35 diff --git a/app-editors/emacs/emacs-23.4-r23.ebuild b/app-editors/emacs/emacs-23.4-r23.ebuild
36 deleted file mode 100644
37 index 4de62f0dab7c..000000000000
38 --- a/app-editors/emacs/emacs-23.4-r23.ebuild
39 +++ /dev/null
40 @@ -1,354 +0,0 @@
41 -# Copyright 1999-2022 Gentoo Authors
42 -# Distributed under the terms of the GNU General Public License v2
43 -
44 -EAPI=8
45 -WANT_AUTOMAKE="none"
46 -
47 -inherit autotools elisp-common flag-o-matic readme.gentoo-r1 toolchain-funcs
48 -
49 -DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
50 -HOMEPAGE="https://www.gnu.org/software/emacs/"
51 -SRC_URI="mirror://gnu/emacs/${P}.tar.bz2
52 - https://dev.gentoo.org/~ulm/emacs/${P}-patches-23.tar.xz"
53 -
54 -LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
55 -SLOT="23"
56 -KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
57 -IUSE="alsa aqua athena dbus games gconf gif gpm gtk gui gzip-el jpeg kerberos livecd m17n-lib motif png sound source svg tiff toolkit-scroll-bars Xaw3d xft +xpm"
58 -
59 -RDEPEND="acct-group/mail
60 - app-emacs/emacs-common[games?,gui(-)?]
61 - net-libs/liblockfile
62 - sys-libs/ncurses:0=
63 - kerberos? ( virtual/krb5 )
64 - alsa? ( media-libs/alsa-lib )
65 - games? ( acct-group/gamestat )
66 - gpm? ( sys-libs/gpm )
67 - dbus? ( sys-apps/dbus )
68 - gui? ( !aqua? (
69 - x11-libs/libICE
70 - x11-libs/libSM
71 - x11-libs/libX11
72 - x11-misc/xbitmaps
73 - gconf? ( >=gnome-base/gconf-2.26.2 )
74 - gif? ( media-libs/giflib:0= )
75 - jpeg? ( media-libs/libjpeg-turbo:0= )
76 - png? ( >=media-libs/libpng-1.4:0= )
77 - svg? ( >=gnome-base/librsvg-2.0 )
78 - tiff? ( media-libs/tiff:= )
79 - xpm? ( x11-libs/libXpm )
80 - xft? (
81 - media-libs/fontconfig
82 - media-libs/freetype
83 - x11-libs/libXft
84 - x11-libs/libXrender
85 - m17n-lib? (
86 - >=dev-libs/libotf-0.9.4
87 - >=dev-libs/m17n-lib-1.5.1
88 - )
89 - )
90 - gtk? ( x11-libs/gtk+:2 )
91 - !gtk? (
92 - motif? (
93 - >=x11-libs/motif-2.3:0
94 - x11-libs/libXpm
95 - x11-libs/libXext
96 - x11-libs/libXmu
97 - x11-libs/libXt
98 - )
99 - !motif? (
100 - Xaw3d? (
101 - x11-libs/libXaw3d
102 - x11-libs/libXext
103 - x11-libs/libXmu
104 - x11-libs/libXt
105 - )
106 - !Xaw3d? ( athena? (
107 - x11-libs/libXaw
108 - x11-libs/libXext
109 - x11-libs/libXmu
110 - x11-libs/libXt
111 - ) )
112 - )
113 - )
114 - ) )"
115 -
116 -DEPEND="${RDEPEND}
117 - gui? ( !aqua? ( x11-base/xorg-proto ) )"
118 -
119 -BDEPEND="virtual/pkgconfig
120 - gzip-el? ( app-arch/gzip )"
121 -
122 -IDEPEND="app-eselect/eselect-emacs"
123 -
124 -RDEPEND+=" ${IDEPEND}"
125 -
126 -EMACS_SUFFIX="emacs-${SLOT}"
127 -SITEFILE="20${EMACS_SUFFIX}-gentoo.el"
128 -# FULL_VERSION keeps the full version number, which is needed in
129 -# order to determine some path information correctly for copy/move
130 -# operations later on
131 -FULL_VERSION="${PV%%_*}"
132 -S="${WORKDIR}/emacs-${FULL_VERSION}"
133 -PATCHES=("${WORKDIR}/patch")
134 -
135 -src_prepare() {
136 - default
137 -
138 - sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 \
139 - || die "unable to sed ctags.1"
140 -
141 - if ! use alsa; then
142 - # ALSA is detected even if not requested by its USE flag.
143 - # Suppress it by supplying pkg-config with a wrong library name.
144 - sed -i -e "/ALSA_MODULES=/s/alsa/DiSaBlEaLsA/" configure.in \
145 - || die "unable to sed configure.in"
146 - fi
147 - if ! use gzip-el; then
148 - # Emacs' build system automatically detects the gzip binary and
149 - # compresses el files. We don't want that so confuse it with a
150 - # wrong binary name
151 - sed -i -e "s/ gzip/ PrEvEnTcOmPrEsSiOn/" configure.in \
152 - || die "unable to sed configure.in"
153 - fi
154 -
155 - eautoreconf
156 - touch src/stamp-h.in || die
157 -}
158 -
159 -src_configure() {
160 - strip-flags
161 - filter-flags -fstrict-aliasing -pie
162 - append-flags $(test-flags -fno-strict-aliasing)
163 - append-ldflags $(test-flags -no-pie) #639568
164 -
165 - if use ia64; then
166 - replace-flags "-O[2-9]" -O1 #325373
167 - else
168 - replace-flags "-O[3-9]" -O2
169 - fi
170 -
171 - # Don't trigger a floating point exception for NaNs on alpha
172 - use alpha && append-flags -mieee
173 -
174 - local myconf
175 -
176 - if use alsa && ! use sound; then
177 - einfo "Although sound USE flag is disabled you chose to have alsa,"
178 - einfo "so sound is switched on anyway."
179 - myconf+=" --with-sound"
180 - else
181 - myconf+=" $(use_with sound)"
182 - fi
183 -
184 - if ! use gui; then
185 - einfo "Configuring to build without window system support"
186 - myconf+=" --without-x --without-ns"
187 - elif use aqua; then
188 - einfo "Configuring to build with Nextstep (Macintosh Cocoa) support"
189 - myconf+=" --with-ns --disable-ns-self-contained"
190 - myconf+=" --without-x"
191 - else
192 - myconf+=" --with-x --without-ns"
193 - myconf+=" $(use_with gconf)"
194 - myconf+=" $(use_with toolkit-scroll-bars)"
195 - myconf+=" $(use_with gif)"
196 - myconf+=" $(use_with jpeg)"
197 - myconf+=" $(use_with png)"
198 - myconf+=" $(use_with svg rsvg)"
199 - myconf+=" $(use_with tiff)"
200 - myconf+=" $(use_with xpm)"
201 -
202 - if use xft; then
203 - myconf+=" --with-xft"
204 - myconf+=" $(use_with m17n-lib libotf)"
205 - myconf+=" $(use_with m17n-lib m17n-flt)"
206 - else
207 - myconf+=" --without-xft"
208 - myconf+=" --without-libotf --without-m17n-flt"
209 - use m17n-lib && ewarn \
210 - "USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
211 - fi
212 -
213 - # GTK+ is the default toolkit if USE=gtk is chosen with other
214 - # possibilities. Emacs upstream thinks this should be standard
215 - # policy on all distributions
216 - local f
217 - if use gtk; then
218 - einfo "Configuring to build with GIMP Toolkit (GTK+)"
219 - myconf+=" --with-x-toolkit=gtk"
220 - for f in motif Xaw3d athena; do
221 - use ${f} && ewarn \
222 - "USE flag \"${f}\" has no effect if \"gtk\" is set."
223 - done
224 - elif use motif; then
225 - einfo "Configuring to build with Motif toolkit"
226 - myconf+=" --with-x-toolkit=motif"
227 - for f in Xaw3d athena; do
228 - use ${f} && ewarn \
229 - "USE flag \"${f}\" has no effect if \"motif\" is set."
230 - done
231 - elif use athena || use Xaw3d; then
232 - einfo "Configuring to build with Athena/Lucid toolkit"
233 - myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
234 - else
235 - einfo "Configuring to build with no toolkit"
236 - myconf+=" --with-x-toolkit=no"
237 - fi
238 - fi
239 -
240 - # According to configure, this option is only used for GNU/Linux
241 - # (x86_64 and s390). For Gentoo Prefix we have to explicitly spell
242 - # out the location because $(get_libdir) does not necessarily return
243 - # something that matches the host OS's libdir naming (e.g. RHEL).
244 - local crtdir=$($(tc-getCC) -print-file-name=crt1.o)
245 - crtdir=${crtdir%/*}
246 -
247 - econf \
248 - --program-suffix="-${EMACS_SUFFIX}" \
249 - --infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
250 - --localstatedir="${EPREFIX}"/var \
251 - --enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
252 - --with-crt-dir="${crtdir}" \
253 - --with-gameuser=":gamestat" \
254 - --without-hesiod \
255 - $(use_with kerberos) $(use_with kerberos kerberos5) \
256 - $(use_with gpm) \
257 - $(use_with dbus) \
258 - ${myconf}
259 -}
260 -
261 -src_compile() {
262 - # Disable sandbox when dumping. For the unbelievers, see bug #131505
263 - emake CC="$(tc-getCC)" \
264 - AR="$(tc-getAR) cq" \
265 - RANLIB="$(tc-getRANLIB)" \
266 - RUN_TEMACS="SANDBOX_ON=0 LD_PRELOAD= env ./temacs"
267 -}
268 -
269 -src_install() {
270 - emake DESTDIR="${D}" install
271 -
272 - rm "${ED}"/usr/bin/emacs-${FULL_VERSION}-${EMACS_SUFFIX} \
273 - || die "removing duplicate emacs executable failed"
274 - mv "${ED}"/usr/bin/emacs-${EMACS_SUFFIX} "${ED}"/usr/bin/${EMACS_SUFFIX} \
275 - || die "moving emacs executable failed"
276 -
277 - # move man pages to the correct place
278 - local m
279 - mv "${ED}"/usr/share/man/man1/{emacs,${EMACS_SUFFIX}}.1 \
280 - || die "moving emacs man page failed"
281 - for m in b2m ctags ebrowse emacsclient etags grep-changelog rcs-checkin; do
282 - mv "${ED}"/usr/share/man/man1/${m}{,-${EMACS_SUFFIX}}.1 \
283 - || die "moving ${m} man page failed"
284 - done
285 -
286 - # move info dir to avoid collisions with the dir file generated by portage
287 - mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{,.orig} \
288 - || die "moving info dir failed"
289 - touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
290 - docompress -x /usr/share/info/${EMACS_SUFFIX}/dir.orig
291 -
292 - # movemail must be setgid mail
293 - fowners root:mail /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
294 - fperms 2751 /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
295 -
296 - # avoid collision between slots, see bug #169033 e.g.
297 - rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el || die
298 - rm -rf "${ED}"/usr/share/{applications,icons} || die
299 - rm -rf "${ED}"/var || die
300 -
301 - # remove unused <version>/site-lisp dir
302 - rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp || die
303 -
304 - # remove COPYING file (except for etc/COPYING used by describe-copying)
305 - rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING || die
306 -
307 - local cdir
308 - if use source; then
309 - cdir="/usr/share/emacs/${FULL_VERSION}/src"
310 - insinto "${cdir}"
311 - # This is not meant to install all the source -- just the
312 - # C source you might find via find-function
313 - doins src/*.{c,h,m}
314 - doins -r src/{m,s}
315 - rm "${ED}"/usr/share/emacs/${FULL_VERSION}/src/Makefile.c || die
316 - rm "${ED}"/usr/share/emacs/${FULL_VERSION}/src/{m,s}/README || die
317 - elif has installsources ${FEATURES}; then
318 - cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
319 - fi
320 -
321 - sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF || die
322 - X
323 - ;;; ${EMACS_SUFFIX} site-lisp configuration
324 - X
325 - (when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
326 - Y (setq find-function-C-source-directory
327 - Y "${EPREFIX}${cdir}")
328 - X (let ((path (getenv "INFOPATH"))
329 - X (dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
330 - X (re "\\\\\`${EPREFIX}/usr/share\\\\>"))
331 - X (and path
332 - X ;; move Emacs Info dir before anything else in /usr/share
333 - X (let* ((p (cons nil (split-string path ":" t))) (q p))
334 - X (while (and (cdr q) (not (string-match re (cadr q))))
335 - X (setq q (cdr q)))
336 - X (setcdr q (cons dir (delete dir (cdr q))))
337 - X (setq Info-directory-list (prune-directory-list (cdr p)))))))
338 - EOF
339 - elisp-site-file-install "${T}/${SITEFILE}" || die
340 -
341 - dodoc README BUGS
342 -
343 - if use gui && use aqua; then
344 - dodir /Applications/Gentoo
345 - rm -rf "${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
346 - mv nextstep/Emacs.app \
347 - "${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
348 - fi
349 -
350 - local DOC_CONTENTS="You can set the version to be started by
351 - /usr/bin/emacs through the Emacs eselect module, which also
352 - redirects man and info pages. Therefore, several Emacs versions can
353 - be installed at the same time. \"man emacs.eselect\" for details.
354 - \\n\\nIf you upgrade from a previous major version of Emacs, then
355 - it is strongly recommended that you use app-admin/emacs-updater
356 - to rebuild all byte-compiled elisp files of the installed Emacs
357 - packages."
358 - if use gui; then
359 - DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
360 - Installing media-fonts/font-adobe-{75,100}dpi on the X server's
361 - machine would satisfy basic Emacs requirements under X11.
362 - See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
363 - for how to enable anti-aliased fonts."
364 - use aqua && DOC_CONTENTS+="\\n\\n${EMACS_SUFFIX^}.app is in
365 - \"${EPREFIX}/Applications/Gentoo\". You may want to copy or
366 - symlink it into /Applications by yourself."
367 - fi
368 - readme.gentoo_create_doc
369 -}
370 -
371 -pkg_preinst() {
372 - # move Info dir file to correct name
373 - if [[ -d ${ED}/usr/share/info ]]; then
374 - mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{.orig,} || die
375 - fi
376 -}
377 -
378 -pkg_postinst() {
379 - elisp-site-regen
380 - readme.gentoo_print_elog
381 -
382 - if use livecd; then
383 - # force an update of the emacs symlink for the livecd/dvd,
384 - # because some microemacs packages set it with USE=livecd
385 - eselect emacs update
386 - else
387 - eselect emacs update ifunset
388 - fi
389 -}
390 -
391 -pkg_postrm() {
392 - elisp-site-regen
393 - eselect emacs update ifunset
394 -}
395
396 diff --git a/app-editors/emacs/emacs-24.5-r13.ebuild b/app-editors/emacs/emacs-24.5-r13.ebuild
397 deleted file mode 100644
398 index 66e4123f84a5..000000000000
399 --- a/app-editors/emacs/emacs-24.5-r13.ebuild
400 +++ /dev/null
401 @@ -1,346 +0,0 @@
402 -# Copyright 1999-2022 Gentoo Authors
403 -# Distributed under the terms of the GNU General Public License v2
404 -
405 -EAPI=8
406 -
407 -inherit autotools elisp-common flag-o-matic readme.gentoo-r1
408 -
409 -DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
410 -HOMEPAGE="https://www.gnu.org/software/emacs/"
411 -SRC_URI="mirror://gnu/emacs/${P}.tar.xz
412 - https://dev.gentoo.org/~ulm/emacs/${P}-patches-5.tar.xz"
413 -
414 -LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
415 -SLOT="24"
416 -KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
417 -IUSE="acl alsa aqua athena dbus games gfile gif gpm gsettings gtk gui gzip-el imagemagick +inotify jpeg kerberos libxml2 livecd m17n-lib motif png selinux sound source ssl svg tiff toolkit-scroll-bars wide-int Xaw3d xft +xpm zlib"
418 -
419 -RDEPEND="acct-group/mail
420 - app-emacs/emacs-common[games?,gui(-)?]
421 - net-libs/liblockfile
422 - sys-libs/ncurses:0=
423 - acl? ( virtual/acl )
424 - alsa? ( media-libs/alsa-lib )
425 - dbus? ( sys-apps/dbus )
426 - games? ( acct-group/gamestat )
427 - gpm? ( sys-libs/gpm )
428 - !inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
429 - kerberos? ( virtual/krb5 )
430 - libxml2? ( >=dev-libs/libxml2-2.2.0 )
431 - selinux? ( sys-libs/libselinux )
432 - ssl? ( net-libs/gnutls:0= )
433 - zlib? ( sys-libs/zlib )
434 - gui? ( !aqua? (
435 - x11-libs/libICE
436 - x11-libs/libSM
437 - x11-libs/libX11
438 - x11-libs/libXext
439 - x11-libs/libXinerama
440 - x11-libs/libXrandr
441 - x11-misc/xbitmaps
442 - gsettings? ( >=dev-libs/glib-2.28.6 )
443 - gif? ( media-libs/giflib:0= )
444 - jpeg? ( media-libs/libjpeg-turbo:0= )
445 - png? ( >=media-libs/libpng-1.4:0= )
446 - svg? ( >=gnome-base/librsvg-2.0 )
447 - tiff? ( media-libs/tiff:= )
448 - xpm? ( x11-libs/libXpm )
449 - imagemagick? ( >=media-gfx/imagemagick-6.6.2:0= )
450 - xft? (
451 - media-libs/fontconfig
452 - media-libs/freetype
453 - x11-libs/libXft
454 - x11-libs/libXrender
455 - m17n-lib? (
456 - >=dev-libs/libotf-0.9.4
457 - >=dev-libs/m17n-lib-1.5.1
458 - )
459 - )
460 - gtk? ( x11-libs/gtk+:3 )
461 - !gtk? (
462 - motif? (
463 - >=x11-libs/motif-2.3:0
464 - x11-libs/libXpm
465 - x11-libs/libXmu
466 - x11-libs/libXt
467 - )
468 - !motif? (
469 - Xaw3d? (
470 - x11-libs/libXaw3d
471 - x11-libs/libXmu
472 - x11-libs/libXt
473 - )
474 - !Xaw3d? ( athena? (
475 - x11-libs/libXaw
476 - x11-libs/libXmu
477 - x11-libs/libXt
478 - ) )
479 - )
480 - )
481 - ) )"
482 -
483 -DEPEND="${RDEPEND}
484 - gui? ( !aqua? ( x11-base/xorg-proto ) )"
485 -
486 -BDEPEND="virtual/pkgconfig
487 - gzip-el? ( app-arch/gzip )"
488 -
489 -IDEPEND="app-eselect/eselect-emacs"
490 -
491 -RDEPEND+=" ${IDEPEND}"
492 -
493 -EMACS_SUFFIX="emacs-${SLOT}"
494 -SITEFILE="20${EMACS_SUFFIX}-gentoo.el"
495 -# FULL_VERSION keeps the full version number, which is needed in
496 -# order to determine some path information correctly for copy/move
497 -# operations later on
498 -FULL_VERSION="${PV%%_*}"
499 -S="${WORKDIR}/emacs-${FULL_VERSION}"
500 -PATCHES=("${WORKDIR}/patch")
501 -
502 -src_prepare() {
503 - default
504 -
505 - # Fix filename reference in redirected man page
506 - sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 \
507 - || die "unable to sed ctags.1"
508 -
509 - AT_M4DIR=m4 eautoreconf
510 - touch src/stamp-h.in || die
511 -}
512 -
513 -src_configure() {
514 - strip-flags
515 - filter-flags -pie #526948
516 - append-ldflags $(test-flags -no-pie) #639570
517 -
518 - if use ia64; then
519 - replace-flags "-O[2-9]" -O1 #325373
520 - else
521 - replace-flags "-O[3-9]" -O2
522 - fi
523 -
524 - # Don't trigger a floating point exception for NaNs on alpha
525 - use alpha && append-flags -mieee
526 -
527 - local myconf
528 -
529 - if use alsa; then
530 - use sound || ewarn \
531 - "USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
532 - myconf+=" --with-sound=alsa"
533 - else
534 - myconf+=" --with-sound=$(usex sound oss)"
535 - fi
536 -
537 - if ! use gui; then
538 - einfo "Configuring to build without window system support"
539 - myconf+=" --without-x --without-ns"
540 - elif use aqua; then
541 - einfo "Configuring to build with Nextstep (Macintosh Cocoa) support"
542 - myconf+=" --with-ns --disable-ns-self-contained"
543 - myconf+=" --without-x"
544 - else
545 - myconf+=" --with-x --without-ns"
546 - myconf+=" --without-gconf"
547 - myconf+=" $(use_with gsettings)"
548 - myconf+=" $(use_with toolkit-scroll-bars)"
549 - myconf+=" $(use_with gif)"
550 - myconf+=" $(use_with jpeg)"
551 - myconf+=" $(use_with png)"
552 - myconf+=" $(use_with svg rsvg)"
553 - myconf+=" $(use_with tiff)"
554 - myconf+=" $(use_with xpm)"
555 - myconf+=" $(use_with imagemagick)"
556 -
557 - if use xft; then
558 - myconf+=" --with-xft"
559 - myconf+=" $(use_with m17n-lib libotf)"
560 - myconf+=" $(use_with m17n-lib m17n-flt)"
561 - else
562 - myconf+=" --without-xft"
563 - myconf+=" --without-libotf --without-m17n-flt"
564 - use m17n-lib && ewarn \
565 - "USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
566 - fi
567 -
568 - local f line
569 - if use gtk; then
570 - einfo "Configuring to build with GIMP Toolkit (GTK+)"
571 - while read line; do ewarn "${line}"; done <<-EOF
572 - Your version of GTK+ will have problems with closing open
573 - displays. This is no problem if you just use one display, but
574 - if you use more than one and close one of them Emacs may crash.
575 - See <https://gitlab.gnome.org/GNOME/gtk/-/issues/221> and
576 - <https://gitlab.gnome.org/GNOME/gtk/-/issues/2315>.
577 - If you intend to use more than one display, then it is strongly
578 - recommended that you compile Emacs with the Athena/Lucid or the
579 - Motif toolkit instead.
580 - EOF
581 - myconf+=" --with-x-toolkit=gtk3"
582 - for f in motif Xaw3d athena; do
583 - use ${f} && ewarn \
584 - "USE flag \"${f}\" has no effect if \"gtk\" is set."
585 - done
586 - elif use motif; then
587 - einfo "Configuring to build with Motif toolkit"
588 - myconf+=" --with-x-toolkit=motif"
589 - for f in Xaw3d athena; do
590 - use ${f} && ewarn \
591 - "USE flag \"${f}\" has no effect if \"motif\" is set."
592 - done
593 - elif use athena || use Xaw3d; then
594 - einfo "Configuring to build with Athena/Lucid toolkit"
595 - myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
596 - else
597 - einfo "Configuring to build with no toolkit"
598 - myconf+=" --with-x-toolkit=no"
599 - fi
600 - fi
601 -
602 - econf \
603 - --program-suffix="-${EMACS_SUFFIX}" \
604 - --infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
605 - --localstatedir="${EPREFIX}"/var \
606 - --enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
607 - --with-gameuser=":gamestat" \
608 - --without-compress-install \
609 - --without-hesiod \
610 - --with-file-notification=$(usev inotify || usev gfile || echo no) \
611 - $(use_enable acl) \
612 - $(use_with dbus) \
613 - $(use_with gpm) \
614 - $(use_with kerberos) $(use_with kerberos kerberos5) \
615 - $(use_with libxml2 xml2) \
616 - $(use_with selinux) \
617 - $(use_with ssl gnutls) \
618 - $(use_with wide-int) \
619 - $(use_with zlib) \
620 - ${myconf}
621 -}
622 -
623 -src_compile() {
624 - # Disable sandbox when dumping. For the unbelievers, see bug #131505
625 - emake RUN_TEMACS="SANDBOX_ON=0 LD_PRELOAD= env ./temacs"
626 -}
627 -
628 -src_install() {
629 - emake DESTDIR="${D}" NO_BIN_LINK=t BLESSMAIL_TARGET= install
630 -
631 - mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} \
632 - || die "moving emacs executable failed"
633 - mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 \
634 - || die "moving emacs man page failed"
635 -
636 - # move info dir to avoid collisions with the dir file generated by portage
637 - mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{,.orig} \
638 - || die "moving info dir failed"
639 - touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
640 - docompress -x /usr/share/info/${EMACS_SUFFIX}/dir.orig
641 -
642 - # movemail must be setgid mail
643 - fowners root:mail /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
644 - fperms 2751 /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
645 -
646 - # avoid collision between slots, see bug #169033 e.g.
647 - rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el || die
648 - rm -rf "${ED}"/usr/share/{applications,icons} || die
649 - rm -rf "${ED}"/var || die
650 -
651 - # remove unused <version>/site-lisp dir
652 - rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp || die
653 -
654 - # remove COPYING file (except for etc/COPYING used by describe-copying)
655 - rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING || die
656 -
657 - if use gzip-el; then
658 - # compress .el files when a corresponding .elc exists
659 - find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
660 - -name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
661 - assert "gzip .el failed"
662 - fi
663 -
664 - local cdir
665 - if use source; then
666 - cdir="/usr/share/emacs/${FULL_VERSION}/src"
667 - insinto "${cdir}"
668 - # This is not meant to install all the source -- just the
669 - # C source you might find via find-function
670 - doins src/*.{c,h,m}
671 - elif has installsources ${FEATURES}; then
672 - cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
673 - fi
674 -
675 - sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF || die
676 - X
677 - ;;; ${EMACS_SUFFIX} site-lisp configuration
678 - X
679 - (when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
680 - Y (setq find-function-C-source-directory
681 - Y "${EPREFIX}${cdir}")
682 - X (let ((path (getenv "INFOPATH"))
683 - X (dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
684 - X (re "\\\\\`${EPREFIX}/usr/share\\\\>"))
685 - X (and path
686 - X ;; move Emacs Info dir before anything else in /usr/share
687 - X (let* ((p (cons nil (split-string path ":" t))) (q p))
688 - X (while (and (cdr q) (not (string-match re (cadr q))))
689 - X (setq q (cdr q)))
690 - X (setcdr q (cons dir (delete dir (cdr q))))
691 - X (setq Info-directory-list (prune-directory-list (cdr p)))))))
692 - EOF
693 - elisp-site-file-install "${T}/${SITEFILE}" || die
694 -
695 - dodoc README BUGS
696 -
697 - if use gui && use aqua; then
698 - dodir /Applications/Gentoo
699 - rm -rf "${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
700 - mv nextstep/Emacs.app \
701 - "${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
702 - fi
703 -
704 - local DOC_CONTENTS="You can set the version to be started by
705 - /usr/bin/emacs through the Emacs eselect module, which also
706 - redirects man and info pages. Therefore, several Emacs versions can
707 - be installed at the same time. \"man emacs.eselect\" for details.
708 - \\n\\nIf you upgrade from Emacs version 24.2 or earlier, then it is
709 - strongly recommended that you use app-admin/emacs-updater to rebuild
710 - all byte-compiled elisp files of the installed Emacs packages."
711 - if use gui; then
712 - DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
713 - Installing media-fonts/font-adobe-{75,100}dpi on the X server's
714 - machine would satisfy basic Emacs requirements under X11.
715 - See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
716 - for how to enable anti-aliased fonts."
717 - use aqua && DOC_CONTENTS+="\\n\\n${EMACS_SUFFIX^}.app is in
718 - \"${EPREFIX}/Applications/Gentoo\". You may want to copy or
719 - symlink it into /Applications by yourself."
720 - fi
721 - readme.gentoo_create_doc
722 -}
723 -
724 -pkg_preinst() {
725 - # move Info dir file to correct name
726 - if [[ -d ${ED}/usr/share/info ]]; then
727 - mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{.orig,} || die
728 - fi
729 -}
730 -
731 -pkg_postinst() {
732 - elisp-site-regen
733 - readme.gentoo_print_elog
734 -
735 - if use livecd; then
736 - # force an update of the emacs symlink for the livecd/dvd,
737 - # because some microemacs packages set it with USE=livecd
738 - eselect emacs update
739 - else
740 - eselect emacs update ifunset
741 - fi
742 -}
743 -
744 -pkg_postrm() {
745 - elisp-site-regen
746 - eselect emacs update ifunset
747 -}