public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:eapi7-ver commit in: app-editors/emacs/
@ 2017-09-11 17:55 Ulrich Müller
  0 siblings, 0 replies; 2+ messages in thread
From: Ulrich Müller @ 2017-09-11 17:55 UTC (permalink / raw
  To: gentoo-commits

commit:     c99582a94a64f100abf9c97eb9970468e31906bf
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 11 17:54:50 2017 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Sep 11 17:54:50 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c99582a9

app-editors/emacs: Fix security vulnerability in enriched mode.

Bug: 630680
Package-Manager: Portage-2.3.8, Repoman-2.3.3

 app-editors/emacs/Manifest              |   3 +
 app-editors/emacs/emacs-23.4-r16.ebuild | 346 ++++++++++++++++++++++++++++++
 app-editors/emacs/emacs-24.5-r4.ebuild  | 344 ++++++++++++++++++++++++++++++
 app-editors/emacs/emacs-25.2-r1.ebuild  | 358 ++++++++++++++++++++++++++++++++
 4 files changed, 1051 insertions(+)

diff --git a/app-editors/emacs/Manifest b/app-editors/emacs/Manifest
index 69481c41f97..620f2b9507a 100644
--- a/app-editors/emacs/Manifest
+++ b/app-editors/emacs/Manifest
@@ -2,8 +2,11 @@ DIST emacs-18.59-linux22x-elf-glibc21.diff.gz 15671 SHA256 fb810d893938883d50a3a
 DIST emacs-18.59-patches-9.tar.xz 21380 SHA256 69411c57b20850e8aab1e20614437f9a836c2ddf47c46a833d0262c138fa3270 SHA512 595a4a7a4052c3b3325e4d4952eed24c98d3dd62b7ce89bd149f046552e2dd67ec3e720b7559fbc086b06a667c992bccc60201ef53b263dbd0fc96cbcdceee38 WHIRLPOOL 23f803d940c35fe9519fe7169e6bca7012c2d2db2246dec121fba37e8dbf39f411a9e579a9cbd4193562da72b9ac226286ad687877ccadd7cb78ea7eb615ab3f
 DIST emacs-18.59.tar.gz 2962652 SHA256 1e27e33f91984a91e9b4c1f21433f931aba03670960ecc147bb6d7b0de0f051e SHA512 03ce565e346e89b7aacb1852f4783e8907f394de7da0c543b475cb038eb89b87f980d0f7ca1841b1d2108b20f211e95113c7214e4a33e5767a1827ff43173f33 WHIRLPOOL 5e98e71518f665e2a8278afe54e0ace6d7fdd9df23ff0a3354ffc1d5cc25cd21b0dd4d82766fcb436d4f24e9291c933295e956e1ffea43cfeedf915175763be6
 DIST emacs-23.4-patches-20.tar.xz 18544 SHA256 3ea6d9211b03ee5566674bf1ae3d4032c0921234c1612af66407e880f7e52749 SHA512 cf98090327a1963625b91149d8ff66e9ec4dc8c0bb1054eee138429b5c0d39c2a4662ae5425d7f06e7e69a17d28353f163ca38f6fe786d10def8e143f8a6b1d6 WHIRLPOOL ac3283271d71dc43595fc95dd8930e5888ef7d22cbd19c4701206ebc5aaac8178f462b789a058bb3ae6c9a17c63c0f2a16185708c4517566de50fc035298fe31
+DIST emacs-23.4-patches-21.tar.xz 19604 SHA256 b8974eab444e90b2327a3023e7c385df1a7c0e5c583a675ef3cf5f1730174535 SHA512 135eda432de64200797456d594f7de811275a7adf792d10a1c3a51ca4bbbbaa3a2c682b9fd577c4d93fbce967ca08d4ac47eb45f031477c3e44c69c14d5d5b48 WHIRLPOOL 0f746ca161861c128a9d15bc7590954c5a6242c1af495bc65e9bb9c1da3a536ca92755660d0b719155bdb3d3ad18b0d14d820e271c566c97428ea4221b76adce
 DIST emacs-23.4.tar.bz2 38646508 SHA256 26576f9e664397c729f78f5ffcd092969251988461896fe8793062346ee988b9 SHA512 def7a95ecaefae24d8102b96b1d575a23def1b11a8f0bb17b68f7913bd118e2ea4449a8feee76c1bd649f099b70419f0d494ddd9bb32b26f92720cda842b0296 WHIRLPOOL 2384c3f63ff153c3975e373334d6021d46b23ad3cab448ed2e1180501236453a61d13bf1dfbb2e6075bb141dd8511d85f77e37c763b39769f98de48eacc56f3b
 DIST emacs-24.5-patches-3.tar.xz 12500 SHA256 4927e037141c0c242d0d6d3aa7dfde140faae361aa556e6ded64b7ab26819f07 SHA512 9bddca3d4a67b57ca03c26fbca378def345592a95c40e868fc47fd9944ed0f750bc30f3a4d588a8a0b4c90daa6c9ed63b56182e8d2d87b4c8d849bf834ead1cc WHIRLPOOL c16cbfda1040b205ced4c1ed120aad6f65285fb315ce89dc936e6a357fbc8f9215fb178b696d2a914c53c6869384f0b1b56fcb6b84c5438f026101b4989de6c5
+DIST emacs-24.5-patches-4.tar.xz 13632 SHA256 3b2d7c2034711d114494745780b6521150aa0c524966cbaceeb8d4d053dcbdd3 SHA512 569c3a55aaf1102c0bae4ab25ee06372763cd2de8a54e26b3eefd54e585cf90b53c8ffe1ca48eb4fd312a340380fd3f2fcdb584697814bf429129b48fa56ffb5 WHIRLPOOL 1855ac4178faafcc2d86141e023ff2626246c87e7ff2e7bfbaf9a989e9a48d2767acb9f7af99924cd7db04d34913a42764490831b7b45a34bcd131999180ff28
 DIST emacs-24.5.tar.xz 39759804 SHA256 dd47d71dd2a526cf6b47cb49af793ec2e26af69a0951cc40e43ae290eacfc34e SHA512 89dee4c3aadb6e505c523f84c65b5e40e5bf28a586cc8a4518a59581c22972f942bb6f3c772df0d5b2685c3e78247c545c6bb2576e981d1ef0f9298c18ad1677 WHIRLPOOL 3d9f8fb840f4c846246e642369f967ba0ec357c7cf718ed865523a3cd39605ba14b8c15fc9ae3f076c27e5b6e41fcb681d15f1c6ffc5934430c0a2bf47c233a3
 DIST emacs-25.1.tar.xz 42498944 SHA256 19f2798ee3bc26c95dca3303e7ab141e7ad65d6ea2b6945eeba4dbea7df48f33 SHA512 67442b9027869c44430e1d4c3e92e74601e667c9aef7e3da16f20a562b5e3fa8c64efdd4b4055919550523093d32eac73c094b644f6573fed41b4e0938668922 WHIRLPOOL 77cf4e126580634ec5aa2d2252a5d3334b6880a2abc32c54543b8df1a7dc9687bf41c54994044be7517b397bcfc2fc1094286ff4c05a7d6f64a8ef8376a4abfb
+DIST emacs-25.2-patches-1.tar.xz 2104 SHA256 ea0ba1cf1fb06eb76907cc034acb440af1147bdc0fa849ba8185d016fe58e4ff SHA512 45c666ba6332c8fb60a925c6af9c0da113f46055159d931feddb99ce19b2a03e0101b3a4d671fe699cd5f33fd58a25791bfb8b16e20f463e5d304902ee24854a WHIRLPOOL 97c49266b7be18f028ae939dbdcfd3933637770506f108fcd9d08fa33c63f376fbb6fe520e42ec28adb6d4527c298173bffe596af774748946a3d8a130aa90f7
 DIST emacs-25.2.tar.xz 46900336 SHA256 59b55194c9979987c5e9f1a1a4ab5406714e80ffcfd415cc6b9222413bc073fa SHA512 2485d5ccd58ecc953cbd2458bdfa45e3c9a6ddfdb1b93c72b957a0da2460d4e42092905e039e8f5bac337ea1ecb9ac404b28702a363323ee5813b30032ebf00c WHIRLPOOL 98de8ad164cf65b21e5fbfdbd7fcee84da32e3de66715d2f03f3c4d03cfa68d49aff2124e5da331282bb5fd9c2b2fbac4ddfd0985e907d2354994c783dddd83f

diff --git a/app-editors/emacs/emacs-23.4-r16.ebuild b/app-editors/emacs/emacs-23.4-r16.ebuild
new file mode 100644
index 00000000000..0fb6928c337
--- /dev/null
+++ b/app-editors/emacs/emacs-23.4-r16.ebuild
@@ -0,0 +1,346 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+WANT_AUTOMAKE="none"
+
+inherit autotools elisp-common flag-o-matic multilib readme.gentoo-r1
+
+DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
+HOMEPAGE="https://www.gnu.org/software/emacs/"
+SRC_URI="mirror://gnu/emacs/${P}.tar.bz2
+	https://dev.gentoo.org/~ulm/emacs/${P}-patches-21.tar.xz"
+
+LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
+SLOT="23"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="alsa aqua athena dbus games gconf gif gpm gtk gzip-el hesiod jpeg kerberos livecd m17n-lib motif pax_kernel png sound source svg tiff toolkit-scroll-bars X Xaw3d xft +xpm"
+REQUIRED_USE="?? ( aqua X )"
+
+RDEPEND="sys-libs/ncurses:0=
+	>=app-eselect/eselect-emacs-1.16
+	>=app-emacs/emacs-common-gentoo-1.5[games?,X?]
+	net-libs/liblockfile
+	hesiod? ( net-dns/hesiod )
+	kerberos? ( virtual/krb5 )
+	alsa? ( media-libs/alsa-lib )
+	gpm? ( sys-libs/gpm )
+	dbus? ( sys-apps/dbus )
+	X? (
+		x11-libs/libXmu
+		x11-libs/libXt
+		x11-misc/xbitmaps
+		gconf? ( >=gnome-base/gconf-2.26.2 )
+		gif? ( media-libs/giflib:0= )
+		jpeg? ( virtual/jpeg:0= )
+		png? ( >=media-libs/libpng-1.4:0= )
+		svg? ( >=gnome-base/librsvg-2.0 )
+		tiff? ( media-libs/tiff:0 )
+		xpm? ( x11-libs/libXpm )
+		xft? (
+			media-libs/fontconfig
+			media-libs/freetype
+			x11-libs/libXft
+			m17n-lib? (
+				>=dev-libs/libotf-0.9.4
+				>=dev-libs/m17n-lib-1.5.1
+			)
+		)
+		gtk? ( x11-libs/gtk+:2 )
+		!gtk? (
+			motif? ( >=x11-libs/motif-2.3:0 )
+			!motif? (
+				Xaw3d? ( x11-libs/libXaw3d )
+				!Xaw3d? ( athena? ( x11-libs/libXaw ) )
+			)
+		)
+	)"
+
+DEPEND="${RDEPEND}
+	alsa? ( virtual/pkgconfig )
+	dbus? ( virtual/pkgconfig )
+	X? ( virtual/pkgconfig )
+	gzip-el? ( app-arch/gzip )
+	pax_kernel? ( sys-apps/attr )"
+
+RDEPEND="${RDEPEND}
+	!<app-editors/emacs-vcs-${PV}"
+
+EMACS_SUFFIX="${PN/emacs/emacs-${SLOT}}"
+SITEFILE="20${PN}-${SLOT}-gentoo.el"
+# FULL_VERSION keeps the full version number, which is needed in
+# order to determine some path information correctly for copy/move
+# operations later on
+FULL_VERSION="${PV%%_*}"
+S="${WORKDIR}/emacs-${FULL_VERSION}"
+
+src_prepare() {
+	eapply ../patch
+	eapply_user
+
+	sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 \
+		|| die "unable to sed ctags.1"
+
+	if ! use alsa; then
+		# ALSA is detected even if not requested by its USE flag.
+		# Suppress it by supplying pkg-config with a wrong library name.
+		sed -i -e "/ALSA_MODULES=/s/alsa/DiSaBlEaLsA/" configure.in \
+			|| die "unable to sed configure.in"
+	fi
+	if ! use gzip-el; then
+		# Emacs' build system automatically detects the gzip binary and
+		# compresses el files. We don't want that so confuse it with a
+		# wrong binary name
+		sed -i -e "s/ gzip/ PrEvEnTcOmPrEsSiOn/" configure.in \
+			|| die "unable to sed configure.in"
+	fi
+
+	mv configure.in configure.ac || die
+	eautoreconf
+	touch src/stamp-h.in || die
+}
+
+src_configure() {
+	strip-flags
+	filter-flags -fstrict-aliasing -pie
+	append-flags $(test-flags -fno-strict-aliasing)
+
+	if use sh; then
+		replace-flags "-O[1-9]" -O0		#262359
+	elif use ia64; then
+		replace-flags "-O[2-9]" -O1		#325373
+	else
+		replace-flags "-O[3-9]" -O2
+	fi
+
+	local myconf
+
+	if use alsa && ! use sound; then
+		einfo "Although sound USE flag is disabled you chose to have alsa,"
+		einfo "so sound is switched on anyway."
+		myconf+=" --with-sound"
+	else
+		myconf+=" $(use_with sound)"
+	fi
+
+	if use X; then
+		myconf+=" --with-x --without-ns"
+		myconf+=" $(use_with gconf)"
+		myconf+=" $(use_with toolkit-scroll-bars)"
+		myconf+=" $(use_with gif)"
+		myconf+=" $(use_with jpeg)"
+		myconf+=" $(use_with png)"
+		myconf+=" $(use_with svg rsvg)"
+		myconf+=" $(use_with tiff)"
+		myconf+=" $(use_with xpm)"
+
+		if use xft; then
+			myconf+=" --with-xft"
+			myconf+=" $(use_with m17n-lib libotf)"
+			myconf+=" $(use_with m17n-lib m17n-flt)"
+		else
+			myconf+=" --without-xft"
+			myconf+=" --without-libotf --without-m17n-flt"
+			use m17n-lib && ewarn \
+				"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
+		fi
+
+		# GTK+ is the default toolkit if USE=gtk is chosen with other
+		# possibilities. Emacs upstream thinks this should be standard
+		# policy on all distributions
+		local f
+		if use gtk; then
+			einfo "Configuring to build with GIMP Toolkit (GTK+)"
+			myconf+=" --with-x-toolkit=gtk"
+			for f in motif Xaw3d athena; do
+				use ${f} && ewarn \
+					"USE flag \"${f}\" has no effect if \"gtk\" is set."
+			done
+		elif use motif; then
+			einfo "Configuring to build with Motif toolkit"
+			myconf+=" --with-x-toolkit=motif"
+			for f in Xaw3d athena; do
+				use ${f} && ewarn \
+					"USE flag \"${f}\" has no effect if \"motif\" is set."
+			done
+		elif use athena || use Xaw3d; then
+			einfo "Configuring to build with Athena/Lucid toolkit"
+			myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
+		else
+			einfo "Configuring to build with no toolkit"
+			myconf+=" --with-x-toolkit=no"
+		fi
+	elif use aqua; then
+		einfo "Configuring to build with Nextstep (Cocoa) support"
+		myconf+=" --with-ns --disable-ns-self-contained"
+		myconf+=" --without-x"
+	else
+		myconf+=" --without-x --without-ns"
+	fi
+
+	# Save version information in the Emacs binary. It will be available
+	# in variable "system-configuration-options".
+	myconf+=" GENTOO_PACKAGE=${CATEGORY}/${PF}"
+
+	# According to configure, this option is only used for GNU/Linux
+	# (x86_64 and s390). For Gentoo Prefix we have to explicitly spell
+	# out the location because $(get_libdir) does not necessarily return
+	# something that matches the host OS's libdir naming (e.g. RHEL).
+	local crtdir=$($(tc-getCC) -print-file-name=crt1.o)
+	crtdir=${crtdir%/*}
+
+	econf \
+		--program-suffix="-${EMACS_SUFFIX}" \
+		--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
+		--localstatedir="${EPREFIX}"/var \
+		--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
+		--with-crt-dir="${crtdir}" \
+		--with-gameuser=":gamestat" \
+		$(use_with hesiod) \
+		$(use_with kerberos) $(use_with kerberos kerberos5) \
+		$(use_with gpm) \
+		$(use_with dbus) \
+		${myconf}
+}
+
+src_compile() {
+	export SANDBOX_ON=0			# for the unbelievers, see Bug #131505
+	emake CC="$(tc-getCC)" \
+		AR="$(tc-getAR) cq" \
+		RANLIB="$(tc-getRANLIB)"
+}
+
+src_install () {
+	emake DESTDIR="${D}" install
+
+	rm "${ED}"/usr/bin/emacs-${FULL_VERSION}-${EMACS_SUFFIX} \
+		|| die "removing duplicate emacs executable failed"
+	mv "${ED}"/usr/bin/emacs-${EMACS_SUFFIX} "${ED}"/usr/bin/${EMACS_SUFFIX} \
+		|| die "moving emacs executable failed"
+
+	# move man pages to the correct place
+	local m
+	mv "${ED}"/usr/share/man/man1/{emacs,${EMACS_SUFFIX}}.1 \
+		|| die "moving emacs man page failed"
+	for m in b2m ctags ebrowse emacsclient etags grep-changelog rcs-checkin; do
+		mv "${ED}"/usr/share/man/man1/${m}{,-${EMACS_SUFFIX}}.1 \
+			|| die "moving ${m} man page failed"
+	done
+
+	# move info dir to avoid collisions with the dir file generated by portage
+	mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{,.orig} \
+		|| die "moving info dir failed"
+	touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
+	docompress -x /usr/share/info/${EMACS_SUFFIX}/dir.orig
+
+	# avoid collision between slots, see bug #169033 e.g.
+	rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el
+	rm -rf "${ED}"/usr/share/{applications,icons}
+	rm -rf "${ED}"/var
+
+	# remove unused <version>/site-lisp dir
+	rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp
+
+	# remove COPYING file (except for etc/COPYING used by describe-copying)
+	rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING
+
+	local cdir
+	if use source; then
+		cdir="/usr/share/emacs/${FULL_VERSION}/src"
+		insinto "${cdir}"
+		# This is not meant to install all the source -- just the
+		# C source you might find via find-function
+		doins src/*.{c,h,m}
+		doins -r src/{m,s}
+		rm "${ED}"/usr/share/emacs/${FULL_VERSION}/src/Makefile.c
+		rm "${ED}"/usr/share/emacs/${FULL_VERSION}/src/{m,s}/README
+	elif has installsources ${FEATURES}; then
+		cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
+	fi
+
+	sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF
+	X
+	;;; ${PN}-${SLOT} site-lisp configuration
+	X
+	(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
+	Y  (setq find-function-C-source-directory
+	Y	"${EPREFIX}${cdir}")
+	X  (let ((path (getenv "INFOPATH"))
+	X	(dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
+	X	(re "\\\\\`${EPREFIX}/usr/share/info\\\\>"))
+	X    (and path
+	X	 ;; move Emacs Info dir before anything else in /usr/share/info
+	X	 (let* ((p (cons nil (split-string path ":" t))) (q p))
+	X	   (while (and (cdr q) (not (string-match re (cadr q))))
+	X	     (setq q (cdr q)))
+	X	   (setcdr q (cons dir (delete dir (cdr q))))
+	X	   (setq Info-directory-list (prune-directory-list (cdr p)))))))
+	EOF
+	elisp-site-file-install "${T}/${SITEFILE}" || die
+
+	dodoc README BUGS
+
+	if use aqua; then
+		dodir /Applications/Gentoo
+		rm -rf "${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app
+		mv nextstep/Emacs.app \
+			"${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app || die
+	fi
+
+	DOC_CONTENTS="You can set the version to be started by /usr/bin/emacs
+		through the Emacs eselect module, which also redirects man and info
+		pages. Therefore, several Emacs versions can be installed at the
+		same time. \"man emacs.eselect\" for details.
+		\\n\\nIf you upgrade from a previous major version of Emacs, then
+		it is strongly recommended that you use app-admin/emacs-updater
+		to rebuild all byte-compiled elisp files of the installed Emacs
+		packages."
+	use X && DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
+		Installing media-fonts/font-adobe-{75,100}dpi on the X server's
+		machine would satisfy basic Emacs requirements under X11.
+		See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
+		for how to enable anti-aliased fonts."
+	use aqua && DOC_CONTENTS+="\\n\\nEmacs${EMACS_SUFFIX#emacs}.app is in
+		\"${EPREFIX}/Applications/Gentoo\". You may want to copy or symlink
+		it into /Applications by yourself."
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	# move Info dir file to correct name
+	local infodir=/usr/share/info/${EMACS_SUFFIX} f
+	if [[ -f ${ED}${infodir}/dir.orig ]]; then
+		mv "${ED}"${infodir}/dir{.orig,} || die "moving info dir failed"
+	elif [[ -d "${ED}"${infodir} ]]; then
+		# this should not happen in EAPI 4
+		ewarn "Regenerating Info directory index in ${infodir} ..."
+		rm -f "${ED}"${infodir}/dir{,.*}
+		for f in "${ED}"${infodir}/*; do
+			if [[ ${f##*/} != *-[0-9]* && -e ${f} ]]; then
+				install-info --info-dir="${ED}"${infodir} "${f}" \
+					|| die "install-info failed"
+			fi
+		done
+	fi
+}
+
+pkg_postinst() {
+	elisp-site-regen
+	readme.gentoo_print_elog
+
+	if use livecd; then
+		# force an update of the emacs symlink for the livecd/dvd,
+		# because some microemacs packages set it with USE=livecd
+		eselect emacs update
+	elif [[ $(readlink "${EROOT}"/usr/bin/emacs) = ${EMACS_SUFFIX} ]]; then
+		# refresh symlinks in case any installed files have changed
+		eselect emacs set ${EMACS_SUFFIX}
+	else
+		eselect emacs update ifunset
+	fi
+}
+
+pkg_postrm() {
+	elisp-site-regen
+	eselect emacs update ifunset
+}

diff --git a/app-editors/emacs/emacs-24.5-r4.ebuild b/app-editors/emacs/emacs-24.5-r4.ebuild
new file mode 100644
index 00000000000..332305b7294
--- /dev/null
+++ b/app-editors/emacs/emacs-24.5-r4.ebuild
@@ -0,0 +1,344 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools elisp-common eutils flag-o-matic multilib readme.gentoo-r1
+
+DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
+HOMEPAGE="https://www.gnu.org/software/emacs/"
+SRC_URI="mirror://gnu/emacs/${P}.tar.xz
+	https://dev.gentoo.org/~ulm/emacs/${P}-patches-4.tar.xz"
+
+LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
+SLOT="24"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="acl alsa aqua athena dbus games gconf gfile gif gpm gsettings gtk +gtk3 gzip-el hesiod imagemagick +inotify jpeg kerberos libxml2 livecd m17n-lib motif pax_kernel png selinux sound source ssl svg tiff toolkit-scroll-bars wide-int X Xaw3d xft +xpm zlib"
+REQUIRED_USE="?? ( aqua X )"
+
+RDEPEND="sys-libs/ncurses:0=
+	>=app-eselect/eselect-emacs-1.16
+	>=app-emacs/emacs-common-gentoo-1.5[games?,X?]
+	net-libs/liblockfile
+	acl? ( virtual/acl )
+	alsa? ( media-libs/alsa-lib )
+	dbus? ( sys-apps/dbus )
+	gpm? ( sys-libs/gpm )
+	hesiod? ( net-dns/hesiod )
+	!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
+	kerberos? ( virtual/krb5 )
+	libxml2? ( >=dev-libs/libxml2-2.2.0 )
+	selinux? ( sys-libs/libselinux )
+	ssl? ( net-libs/gnutls:0= )
+	zlib? ( sys-libs/zlib )
+	X? (
+		x11-libs/libXmu
+		x11-libs/libXt
+		x11-misc/xbitmaps
+		gconf? ( >=gnome-base/gconf-2.26.2 )
+		gsettings? ( >=dev-libs/glib-2.28.6 )
+		gif? ( media-libs/giflib:0= )
+		jpeg? ( virtual/jpeg:0= )
+		png? ( >=media-libs/libpng-1.4:0= )
+		svg? ( >=gnome-base/librsvg-2.0 )
+		tiff? ( media-libs/tiff:0 )
+		xpm? ( x11-libs/libXpm )
+		imagemagick? ( >=media-gfx/imagemagick-6.6.2:0= )
+		xft? (
+			media-libs/fontconfig
+			media-libs/freetype
+			x11-libs/libXft
+			m17n-lib? (
+				>=dev-libs/libotf-0.9.4
+				>=dev-libs/m17n-lib-1.5.1
+			)
+		)
+		gtk? (
+			gtk3? ( x11-libs/gtk+:3 )
+			!gtk3? ( x11-libs/gtk+:2 )
+		)
+		!gtk? (
+			motif? ( >=x11-libs/motif-2.3:0 )
+			!motif? (
+				Xaw3d? ( x11-libs/libXaw3d )
+				!Xaw3d? ( athena? ( x11-libs/libXaw ) )
+			)
+		)
+	)"
+
+DEPEND="${RDEPEND}
+	virtual/pkgconfig
+	gzip-el? ( app-arch/gzip )
+	pax_kernel? ( sys-apps/attr )"
+
+RDEPEND="${RDEPEND}
+	!<app-editors/emacs-vcs-${PV}"
+
+EMACS_SUFFIX="${PN/emacs/emacs-${SLOT}}"
+SITEFILE="20${PN}-${SLOT}-gentoo.el"
+# FULL_VERSION keeps the full version number, which is needed in
+# order to determine some path information correctly for copy/move
+# operations later on
+FULL_VERSION="${PV%%_*}"
+S="${WORKDIR}/emacs-${FULL_VERSION}"
+
+src_prepare() {
+	eapply ../patch
+	eapply_user
+
+	# Fix filename reference in redirected man page
+	sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 \
+		|| die "unable to sed ctags.1"
+
+	AT_M4DIR=m4 eautoreconf
+	touch src/stamp-h.in || die
+}
+
+src_configure() {
+	strip-flags
+	filter-flags -pie					#526948
+
+	if use sh; then
+		replace-flags "-O[1-9]" -O0		#262359
+	elif use ia64; then
+		replace-flags "-O[2-9]" -O1		#325373
+	else
+		replace-flags "-O[3-9]" -O2
+	fi
+
+	local myconf
+
+	if use alsa; then
+		use sound || ewarn \
+			"USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
+		myconf+=" --with-sound=alsa"
+	else
+		myconf+=" --with-sound=$(usex sound oss)"
+	fi
+
+	if use X; then
+		myconf+=" --with-x --without-ns"
+		myconf+=" $(use_with gconf)"
+		myconf+=" $(use_with gsettings)"
+		myconf+=" $(use_with toolkit-scroll-bars)"
+		myconf+=" $(use_with gif)"
+		myconf+=" $(use_with jpeg)"
+		myconf+=" $(use_with png)"
+		myconf+=" $(use_with svg rsvg)"
+		myconf+=" $(use_with tiff)"
+		myconf+=" $(use_with xpm)"
+		myconf+=" $(use_with imagemagick)"
+
+		if use xft; then
+			myconf+=" --with-xft"
+			myconf+=" $(use_with m17n-lib libotf)"
+			myconf+=" $(use_with m17n-lib m17n-flt)"
+		else
+			myconf+=" --without-xft"
+			myconf+=" --without-libotf --without-m17n-flt"
+			use m17n-lib && ewarn \
+				"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
+		fi
+
+		local f line
+		if use gtk; then
+			einfo "Configuring to build with GIMP Toolkit (GTK+)"
+			while read line; do ewarn "${line}"; done <<-EOF
+				Your version of GTK+ will have problems with closing open
+				displays. This is no problem if you just use one display, but
+				if you use more than one and close one of them Emacs may crash.
+				See <https://bugzilla.gnome.org/show_bug.cgi?id=85715>.
+				If you intend to use more than one display, then it is strongly
+				recommended that you compile Emacs with the Athena/Lucid or the
+				Motif toolkit instead.
+			EOF
+			myconf+=" --with-x-toolkit=$(usex gtk3 gtk3 gtk2)"
+			for f in motif Xaw3d athena; do
+				use ${f} && ewarn \
+					"USE flag \"${f}\" has no effect if \"gtk\" is set."
+			done
+		elif use motif; then
+			einfo "Configuring to build with Motif toolkit"
+			myconf+=" --with-x-toolkit=motif"
+			for f in Xaw3d athena; do
+				use ${f} && ewarn \
+					"USE flag \"${f}\" has no effect if \"motif\" is set."
+			done
+		elif use athena || use Xaw3d; then
+			einfo "Configuring to build with Athena/Lucid toolkit"
+			myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
+		else
+			einfo "Configuring to build with no toolkit"
+			myconf+=" --with-x-toolkit=no"
+		fi
+	elif use aqua; then
+		einfo "Configuring to build with Nextstep (Cocoa) support"
+		myconf+=" --with-ns --disable-ns-self-contained"
+		myconf+=" --without-x"
+	else
+		myconf+=" --without-x --without-ns"
+	fi
+
+	# Save version information in the Emacs binary. It will be available
+	# in variable "system-configuration-options".
+	myconf+=" GENTOO_PACKAGE=${CATEGORY}/${PF}"
+
+	econf \
+		--program-suffix="-${EMACS_SUFFIX}" \
+		--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
+		--localstatedir="${EPREFIX}"/var \
+		--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
+		--with-gameuser=":gamestat" \
+		--without-compress-install \
+		--with-file-notification=$(usev inotify || usev gfile || echo no) \
+		$(use_enable acl) \
+		$(use_with dbus) \
+		$(use_with gpm) \
+		$(use_with hesiod) \
+		$(use_with kerberos) $(use_with kerberos kerberos5) \
+		$(use_with libxml2 xml2) \
+		$(use_with selinux) \
+		$(use_with ssl gnutls) \
+		$(use_with wide-int) \
+		$(use_with zlib) \
+		${myconf}
+}
+
+src_compile() {
+	export SANDBOX_ON=0			# for the unbelievers, see Bug #131505
+	emake
+}
+
+src_install () {
+	emake DESTDIR="${D}" NO_BIN_LINK=t install
+
+	mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} \
+		|| die "moving emacs executable failed"
+	mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 \
+		|| die "moving emacs man page failed"
+
+	# move info dir to avoid collisions with the dir file generated by portage
+	mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{,.orig} \
+		|| die "moving info dir failed"
+	touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
+	docompress -x /usr/share/info/${EMACS_SUFFIX}/dir.orig
+
+	# avoid collision between slots, see bug #169033 e.g.
+	rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el
+	rm -rf "${ED}"/usr/share/{applications,icons}
+	rm -rf "${ED}"/var
+
+	# remove unused <version>/site-lisp dir
+	rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp
+
+	# remove COPYING file (except for etc/COPYING used by describe-copying)
+	rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING
+
+	if use gzip-el; then
+		# compress .el files when a corresponding .elc exists
+		find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
+			-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
+		assert "gzip .el failed"
+	fi
+
+	local cdir
+	if use source; then
+		cdir="/usr/share/emacs/${FULL_VERSION}/src"
+		insinto "${cdir}"
+		# This is not meant to install all the source -- just the
+		# C source you might find via find-function
+		doins src/*.{c,h,m}
+	elif has installsources ${FEATURES}; then
+		cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
+	fi
+
+	sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF
+	X
+	;;; ${PN}-${SLOT} site-lisp configuration
+	X
+	(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
+	Y  (setq find-function-C-source-directory
+	Y	"${EPREFIX}${cdir}")
+	X  (let ((path (getenv "INFOPATH"))
+	X	(dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
+	X	(re "\\\\\`${EPREFIX}/usr/share/info\\\\>"))
+	X    (and path
+	X	 ;; move Emacs Info dir before anything else in /usr/share/info
+	X	 (let* ((p (cons nil (split-string path ":" t))) (q p))
+	X	   (while (and (cdr q) (not (string-match re (cadr q))))
+	X	     (setq q (cdr q)))
+	X	   (setcdr q (cons dir (delete dir (cdr q))))
+	X	   (setq Info-directory-list (prune-directory-list (cdr p)))))))
+	EOF
+	elisp-site-file-install "${T}/${SITEFILE}" || die
+
+	dodoc README BUGS
+
+	if use aqua; then
+		dodir /Applications/Gentoo
+		rm -rf "${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app
+		mv nextstep/Emacs.app \
+			"${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app || die
+	fi
+
+	DOC_CONTENTS="You can set the version to be started by /usr/bin/emacs
+		through the Emacs eselect module, which also redirects man and info
+		pages. Therefore, several Emacs versions can be installed at the
+		same time. \"man emacs.eselect\" for details.
+		\\n\\nIf you upgrade from Emacs version 24.2 or earlier, then it is
+		strongly recommended that you use app-admin/emacs-updater to rebuild
+		all byte-compiled elisp files of the installed Emacs packages."
+	use X && DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
+		Installing media-fonts/font-adobe-{75,100}dpi on the X server's
+		machine would satisfy basic Emacs requirements under X11.
+		See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
+		for how to enable anti-aliased fonts."
+	use aqua && DOC_CONTENTS+="\\n\\nEmacs${EMACS_SUFFIX#emacs}.app is in
+		\"${EPREFIX}/Applications/Gentoo\". You may want to copy or symlink
+		it into /Applications by yourself."
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	# move Info dir file to correct name
+	local infodir=/usr/share/info/${EMACS_SUFFIX} f
+	if [[ -f ${ED}${infodir}/dir.orig ]]; then
+		mv "${ED}"${infodir}/dir{.orig,} || die "moving info dir failed"
+	elif [[ -d "${ED}"${infodir} ]]; then
+		# this should not happen in EAPI 4
+		ewarn "Regenerating Info directory index in ${infodir} ..."
+		rm -f "${ED}"${infodir}/dir{,.*}
+		for f in "${ED}"${infodir}/*; do
+			if [[ ${f##*/} != *-[0-9]* && -e ${f} ]]; then
+				install-info --info-dir="${ED}"${infodir} "${f}" \
+					|| die "install-info failed"
+			fi
+		done
+	fi
+}
+
+pkg_postinst() {
+	elisp-site-regen
+
+	local pvr
+	for pvr in ${REPLACING_VERSIONS}; do
+		[[ ${pvr%%[-_]*} = 24.[12] ]] && FORCE_PRINT_ELOG=1
+	done
+	readme.gentoo_print_elog
+
+	if use livecd; then
+		# force an update of the emacs symlink for the livecd/dvd,
+		# because some microemacs packages set it with USE=livecd
+		eselect emacs update
+	elif [[ $(readlink "${EROOT}"/usr/bin/emacs) = ${EMACS_SUFFIX} ]]; then
+		# refresh symlinks in case any installed files have changed
+		eselect emacs set ${EMACS_SUFFIX}
+	else
+		eselect emacs update ifunset
+	fi
+}
+
+pkg_postrm() {
+	elisp-site-regen
+	eselect emacs update ifunset
+}

diff --git a/app-editors/emacs/emacs-25.2-r1.ebuild b/app-editors/emacs/emacs-25.2-r1.ebuild
new file mode 100644
index 00000000000..aebdea0f7fe
--- /dev/null
+++ b/app-editors/emacs/emacs-25.2-r1.ebuild
@@ -0,0 +1,358 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit elisp-common flag-o-matic multilib readme.gentoo-r1
+
+DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
+HOMEPAGE="https://www.gnu.org/software/emacs/"
+SRC_URI="mirror://gnu/emacs/${P}.tar.xz
+	https://dev.gentoo.org/~ulm/emacs/${P}-patches-1.tar.xz"
+
+LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
+SLOT="25"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gconf gfile gif gpm gsettings gtk +gtk3 gzip-el hesiod imagemagick +inotify jpeg kerberos libxml2 livecd m17n-lib motif pax_kernel png selinux sound source ssl svg tiff toolkit-scroll-bars wide-int X Xaw3d xft +xpm xwidgets zlib"
+REQUIRED_USE="?? ( aqua X )"
+
+RDEPEND="sys-libs/ncurses:0=
+	>=app-eselect/eselect-emacs-1.16
+	>=app-emacs/emacs-common-gentoo-1.5[games?,X?]
+	net-libs/liblockfile
+	acl? ( virtual/acl )
+	alsa? ( media-libs/alsa-lib )
+	dbus? ( sys-apps/dbus )
+	gpm? ( sys-libs/gpm )
+	hesiod? ( net-dns/hesiod )
+	!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
+	kerberos? ( virtual/krb5 )
+	libxml2? ( >=dev-libs/libxml2-2.2.0 )
+	selinux? ( sys-libs/libselinux )
+	ssl? ( net-libs/gnutls:0= )
+	zlib? ( sys-libs/zlib )
+	X? (
+		x11-libs/libXmu
+		x11-libs/libXt
+		x11-misc/xbitmaps
+		gconf? ( >=gnome-base/gconf-2.26.2 )
+		gsettings? ( >=dev-libs/glib-2.28.6 )
+		gif? ( media-libs/giflib:0= )
+		jpeg? ( virtual/jpeg:0= )
+		png? ( >=media-libs/libpng-1.4:0= )
+		svg? ( >=gnome-base/librsvg-2.0 )
+		tiff? ( media-libs/tiff:0 )
+		xpm? ( x11-libs/libXpm )
+		imagemagick? ( >=media-gfx/imagemagick-6.6.2:0= )
+		xft? (
+			media-libs/fontconfig
+			media-libs/freetype
+			x11-libs/libXft
+			cairo? ( >=x11-libs/cairo-1.12.18 )
+			m17n-lib? (
+				>=dev-libs/libotf-0.9.4
+				>=dev-libs/m17n-lib-1.5.1
+			)
+		)
+		gtk? (
+			xwidgets? (
+				x11-libs/gtk+:3
+				net-libs/webkit-gtk:3=
+			)
+			!xwidgets? (
+				gtk3? ( x11-libs/gtk+:3 )
+				!gtk3? ( x11-libs/gtk+:2 )
+			)
+		)
+		!gtk? (
+			motif? ( >=x11-libs/motif-2.3:0 )
+			!motif? (
+				Xaw3d? ( x11-libs/libXaw3d )
+				!Xaw3d? ( athena? ( x11-libs/libXaw ) )
+			)
+		)
+	)"
+
+DEPEND="${RDEPEND}
+	virtual/pkgconfig
+	gzip-el? ( app-arch/gzip )
+	pax_kernel? ( sys-apps/attr )"
+
+RDEPEND="${RDEPEND}
+	!<app-editors/emacs-vcs-${PV}"
+
+EMACS_SUFFIX="${PN/emacs/emacs-${SLOT}}"
+SITEFILE="20${PN}-${SLOT}-gentoo.el"
+# FULL_VERSION keeps the full version number, which is needed in
+# order to determine some path information correctly for copy/move
+# operations later on
+FULL_VERSION="${PV%%_*}"
+S="${WORKDIR}/emacs-${FULL_VERSION}"
+
+src_prepare() {
+	eapply ../patch
+	eapply_user
+
+	# Fix filename reference in redirected man page
+	sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 \
+		|| die "unable to sed ctags.1"
+
+	#AT_M4DIR=m4 eautoreconf
+	#touch src/stamp-h.in || die
+}
+
+src_configure() {
+	strip-flags
+	filter-flags -pie					#526948
+
+	if use sh; then
+		replace-flags "-O[1-9]" -O0		#262359
+	elif use ia64; then
+		replace-flags "-O[2-9]" -O1		#325373
+	else
+		replace-flags "-O[3-9]" -O2
+	fi
+
+	local myconf
+
+	if use alsa; then
+		use sound || ewarn \
+			"USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
+		myconf+=" --with-sound=alsa"
+	else
+		myconf+=" --with-sound=$(usex sound oss)"
+	fi
+
+	if use X; then
+		myconf+=" --with-x --without-ns"
+		myconf+=" $(use_with gconf)"
+		myconf+=" $(use_with gsettings)"
+		myconf+=" $(use_with toolkit-scroll-bars)"
+		myconf+=" $(use_with gif)"
+		myconf+=" $(use_with jpeg)"
+		myconf+=" $(use_with png)"
+		myconf+=" $(use_with svg rsvg)"
+		myconf+=" $(use_with tiff)"
+		myconf+=" $(use_with xpm)"
+		myconf+=" $(use_with imagemagick)"
+
+		if use xft; then
+			myconf+=" --with-xft"
+			myconf+=" $(use_with cairo)"
+			myconf+=" $(use_with m17n-lib libotf)"
+			myconf+=" $(use_with m17n-lib m17n-flt)"
+		else
+			myconf+=" --without-xft"
+			myconf+=" --without-cairo"
+			myconf+=" --without-libotf --without-m17n-flt"
+			use cairo && ewarn \
+				"USE flag \"cairo\" has no effect if \"xft\" is not set."
+			use m17n-lib && ewarn \
+				"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
+		fi
+
+		local f line
+		if use gtk; then
+			einfo "Configuring to build with GIMP Toolkit (GTK+)"
+			while read line; do ewarn "${line}"; done <<-EOF
+				Your version of GTK+ will have problems with closing open
+				displays. This is no problem if you just use one display, but
+				if you use more than one and close one of them Emacs may crash.
+				See <https://bugzilla.gnome.org/show_bug.cgi?id=85715>.
+				If you intend to use more than one display, then it is strongly
+				recommended that you compile Emacs with the Athena/Lucid or the
+				Motif toolkit instead.
+			EOF
+			if use xwidgets; then
+				myconf+=" --with-x-toolkit=gtk3 --with-xwidgets"
+			else
+				myconf+=" --with-x-toolkit=$(usex gtk3 gtk3 gtk2)"
+				myconf+=" --without-xwidgets"
+			fi
+			for f in motif Xaw3d athena; do
+				use ${f} && ewarn \
+					"USE flag \"${f}\" has no effect if \"gtk\" is set."
+			done
+		elif use motif; then
+			einfo "Configuring to build with Motif toolkit"
+			myconf+=" --with-x-toolkit=motif"
+			for f in Xaw3d athena; do
+				use ${f} && ewarn \
+					"USE flag \"${f}\" has no effect if \"motif\" is set."
+			done
+		elif use athena || use Xaw3d; then
+			einfo "Configuring to build with Athena/Lucid toolkit"
+			myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
+		else
+			einfo "Configuring to build with no toolkit"
+			myconf+=" --with-x-toolkit=no"
+		fi
+		! use gtk && use xwidgets && ewarn \
+			"USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
+	elif use aqua; then
+		einfo "Configuring to build with Nextstep (Cocoa) support"
+		myconf+=" --with-ns --disable-ns-self-contained"
+		myconf+=" --without-x"
+	else
+		myconf+=" --without-x --without-ns"
+	fi
+
+	# Save version information in the Emacs binary. It will be available
+	# in variable "system-configuration-options".
+	myconf+=" GENTOO_PACKAGE=${CATEGORY}/${PF}"
+
+	econf \
+		--program-suffix="-${EMACS_SUFFIX}" \
+		--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
+		--localstatedir="${EPREFIX}"/var \
+		--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
+		--with-gameuser=":gamestat" \
+		--without-compress-install \
+		--with-file-notification=$(usev inotify || usev gfile || echo no) \
+		$(use_enable acl) \
+		$(use_with dbus) \
+		$(use_with dynamic-loading modules) \
+		$(use_with gpm) \
+		$(use_with hesiod) \
+		$(use_with kerberos) $(use_with kerberos kerberos5) \
+		$(use_with libxml2 xml2) \
+		$(use_with selinux) \
+		$(use_with ssl gnutls) \
+		$(use_with wide-int) \
+		$(use_with zlib) \
+		${myconf}
+}
+
+src_compile() {
+	export SANDBOX_ON=0			# for the unbelievers, see Bug #131505
+	emake
+}
+
+src_install () {
+	emake DESTDIR="${D}" NO_BIN_LINK=t install
+
+	mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} \
+		|| die "moving emacs executable failed"
+	mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 \
+		|| die "moving emacs man page failed"
+
+	# move info dir to avoid collisions with the dir file generated by portage
+	mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{,.orig} \
+		|| die "moving info dir failed"
+	touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
+	docompress -x /usr/share/info/${EMACS_SUFFIX}/dir.orig
+
+	# avoid collision between slots, see bug #169033 e.g.
+	rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el
+	rm -rf "${ED}"/usr/share/{appdata,applications,icons}
+	rm -rf "${ED}"/var
+
+	# remove unused <version>/site-lisp dir
+	rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp
+
+	# remove COPYING file (except for etc/COPYING used by describe-copying)
+	rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING
+
+	if use gzip-el; then
+		# compress .el files when a corresponding .elc exists
+		find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
+			-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
+		assert "gzip .el failed"
+	fi
+
+	local cdir
+	if use source; then
+		cdir="/usr/share/emacs/${FULL_VERSION}/src"
+		insinto "${cdir}"
+		# This is not meant to install all the source -- just the
+		# C source you might find via find-function
+		doins src/*.{c,h,m}
+	elif has installsources ${FEATURES}; then
+		cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
+	fi
+
+	sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF
+	X
+	;;; ${PN}-${SLOT} site-lisp configuration
+	X
+	(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
+	Y  (setq find-function-C-source-directory
+	Y	"${EPREFIX}${cdir}")
+	X  (let ((path (getenv "INFOPATH"))
+	X	(dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
+	X	(re "\\\\\`${EPREFIX}/usr/share/info\\\\>"))
+	X    (and path
+	X	 ;; move Emacs Info dir before anything else in /usr/share/info
+	X	 (let* ((p (cons nil (split-string path ":" t))) (q p))
+	X	   (while (and (cdr q) (not (string-match re (cadr q))))
+	X	     (setq q (cdr q)))
+	X	   (setcdr q (cons dir (delete dir (cdr q))))
+	X	   (setq Info-directory-list (prune-directory-list (cdr p)))))))
+	EOF
+	elisp-site-file-install "${T}/${SITEFILE}" || die
+
+	dodoc README BUGS CONTRIBUTE
+
+	if use aqua; then
+		dodir /Applications/Gentoo
+		rm -rf "${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app
+		mv nextstep/Emacs.app \
+			"${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app || die
+	fi
+
+	DOC_CONTENTS="You can set the version to be started by /usr/bin/emacs
+		through the Emacs eselect module, which also redirects man and info
+		pages. Therefore, several Emacs versions can be installed at the
+		same time. \"man emacs.eselect\" for details.
+		\\n\\nIf you upgrade from Emacs version 24.2 or earlier, then it is
+		strongly recommended that you use app-admin/emacs-updater to rebuild
+		all byte-compiled elisp files of the installed Emacs packages."
+	use X && DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
+		Installing media-fonts/font-adobe-{75,100}dpi on the X server's
+		machine would satisfy basic Emacs requirements under X11.
+		See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
+		for how to enable anti-aliased fonts."
+	use aqua && DOC_CONTENTS+="\\n\\nEmacs${EMACS_SUFFIX#emacs}.app is in
+		\"${EPREFIX}/Applications/Gentoo\". You may want to copy or symlink
+		it into /Applications by yourself."
+	readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+	# move Info dir file to correct name
+	local infodir=/usr/share/info/${EMACS_SUFFIX} f
+	if [[ -f ${ED}${infodir}/dir.orig ]]; then
+		mv "${ED}"${infodir}/dir{.orig,} || die "moving info dir failed"
+	elif [[ -d "${ED}"${infodir} ]]; then
+		# this should not happen in EAPI 4
+		ewarn "Regenerating Info directory index in ${infodir} ..."
+		rm -f "${ED}"${infodir}/dir{,.*}
+		for f in "${ED}"${infodir}/*; do
+			if [[ ${f##*/} != *-[0-9]* && -e ${f} ]]; then
+				install-info --info-dir="${ED}"${infodir} "${f}" \
+					|| die "install-info failed"
+			fi
+		done
+	fi
+}
+
+pkg_postinst() {
+	elisp-site-regen
+	readme.gentoo_print_elog
+
+	if use livecd; then
+		# force an update of the emacs symlink for the livecd/dvd,
+		# because some microemacs packages set it with USE=livecd
+		eselect emacs update
+	elif [[ $(readlink "${EROOT}"/usr/bin/emacs) = ${EMACS_SUFFIX} ]]; then
+		# refresh symlinks in case any installed files have changed
+		eselect emacs set ${EMACS_SUFFIX}
+	else
+		eselect emacs update ifunset
+	fi
+}
+
+pkg_postrm() {
+	elisp-site-regen
+	eselect emacs update ifunset
+}


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] repo/gentoo:eapi7-ver commit in: app-editors/emacs/
@ 2017-09-11 18:24 Ulrich Müller
  0 siblings, 0 replies; 2+ messages in thread
From: Ulrich Müller @ 2017-09-11 18:24 UTC (permalink / raw
  To: gentoo-commits

commit:     bd1cdf64535cfcca6ae19e6aa8097ec3e7351cfc
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 11 18:23:49 2017 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Sep 11 18:23:49 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bd1cdf64

Revert "app-editors/emacs: Fix security vulnerability in enriched mode."

This reverts commit c99582a94a64f100abf9c97eb9970468e31906bf.

 app-editors/emacs/Manifest              |   3 -
 app-editors/emacs/emacs-23.4-r16.ebuild | 346 ------------------------------
 app-editors/emacs/emacs-24.5-r4.ebuild  | 344 ------------------------------
 app-editors/emacs/emacs-25.2-r1.ebuild  | 358 --------------------------------
 4 files changed, 1051 deletions(-)

diff --git a/app-editors/emacs/Manifest b/app-editors/emacs/Manifest
index 620f2b9507a..69481c41f97 100644
--- a/app-editors/emacs/Manifest
+++ b/app-editors/emacs/Manifest
@@ -2,11 +2,8 @@ DIST emacs-18.59-linux22x-elf-glibc21.diff.gz 15671 SHA256 fb810d893938883d50a3a
 DIST emacs-18.59-patches-9.tar.xz 21380 SHA256 69411c57b20850e8aab1e20614437f9a836c2ddf47c46a833d0262c138fa3270 SHA512 595a4a7a4052c3b3325e4d4952eed24c98d3dd62b7ce89bd149f046552e2dd67ec3e720b7559fbc086b06a667c992bccc60201ef53b263dbd0fc96cbcdceee38 WHIRLPOOL 23f803d940c35fe9519fe7169e6bca7012c2d2db2246dec121fba37e8dbf39f411a9e579a9cbd4193562da72b9ac226286ad687877ccadd7cb78ea7eb615ab3f
 DIST emacs-18.59.tar.gz 2962652 SHA256 1e27e33f91984a91e9b4c1f21433f931aba03670960ecc147bb6d7b0de0f051e SHA512 03ce565e346e89b7aacb1852f4783e8907f394de7da0c543b475cb038eb89b87f980d0f7ca1841b1d2108b20f211e95113c7214e4a33e5767a1827ff43173f33 WHIRLPOOL 5e98e71518f665e2a8278afe54e0ace6d7fdd9df23ff0a3354ffc1d5cc25cd21b0dd4d82766fcb436d4f24e9291c933295e956e1ffea43cfeedf915175763be6
 DIST emacs-23.4-patches-20.tar.xz 18544 SHA256 3ea6d9211b03ee5566674bf1ae3d4032c0921234c1612af66407e880f7e52749 SHA512 cf98090327a1963625b91149d8ff66e9ec4dc8c0bb1054eee138429b5c0d39c2a4662ae5425d7f06e7e69a17d28353f163ca38f6fe786d10def8e143f8a6b1d6 WHIRLPOOL ac3283271d71dc43595fc95dd8930e5888ef7d22cbd19c4701206ebc5aaac8178f462b789a058bb3ae6c9a17c63c0f2a16185708c4517566de50fc035298fe31
-DIST emacs-23.4-patches-21.tar.xz 19604 SHA256 b8974eab444e90b2327a3023e7c385df1a7c0e5c583a675ef3cf5f1730174535 SHA512 135eda432de64200797456d594f7de811275a7adf792d10a1c3a51ca4bbbbaa3a2c682b9fd577c4d93fbce967ca08d4ac47eb45f031477c3e44c69c14d5d5b48 WHIRLPOOL 0f746ca161861c128a9d15bc7590954c5a6242c1af495bc65e9bb9c1da3a536ca92755660d0b719155bdb3d3ad18b0d14d820e271c566c97428ea4221b76adce
 DIST emacs-23.4.tar.bz2 38646508 SHA256 26576f9e664397c729f78f5ffcd092969251988461896fe8793062346ee988b9 SHA512 def7a95ecaefae24d8102b96b1d575a23def1b11a8f0bb17b68f7913bd118e2ea4449a8feee76c1bd649f099b70419f0d494ddd9bb32b26f92720cda842b0296 WHIRLPOOL 2384c3f63ff153c3975e373334d6021d46b23ad3cab448ed2e1180501236453a61d13bf1dfbb2e6075bb141dd8511d85f77e37c763b39769f98de48eacc56f3b
 DIST emacs-24.5-patches-3.tar.xz 12500 SHA256 4927e037141c0c242d0d6d3aa7dfde140faae361aa556e6ded64b7ab26819f07 SHA512 9bddca3d4a67b57ca03c26fbca378def345592a95c40e868fc47fd9944ed0f750bc30f3a4d588a8a0b4c90daa6c9ed63b56182e8d2d87b4c8d849bf834ead1cc WHIRLPOOL c16cbfda1040b205ced4c1ed120aad6f65285fb315ce89dc936e6a357fbc8f9215fb178b696d2a914c53c6869384f0b1b56fcb6b84c5438f026101b4989de6c5
-DIST emacs-24.5-patches-4.tar.xz 13632 SHA256 3b2d7c2034711d114494745780b6521150aa0c524966cbaceeb8d4d053dcbdd3 SHA512 569c3a55aaf1102c0bae4ab25ee06372763cd2de8a54e26b3eefd54e585cf90b53c8ffe1ca48eb4fd312a340380fd3f2fcdb584697814bf429129b48fa56ffb5 WHIRLPOOL 1855ac4178faafcc2d86141e023ff2626246c87e7ff2e7bfbaf9a989e9a48d2767acb9f7af99924cd7db04d34913a42764490831b7b45a34bcd131999180ff28
 DIST emacs-24.5.tar.xz 39759804 SHA256 dd47d71dd2a526cf6b47cb49af793ec2e26af69a0951cc40e43ae290eacfc34e SHA512 89dee4c3aadb6e505c523f84c65b5e40e5bf28a586cc8a4518a59581c22972f942bb6f3c772df0d5b2685c3e78247c545c6bb2576e981d1ef0f9298c18ad1677 WHIRLPOOL 3d9f8fb840f4c846246e642369f967ba0ec357c7cf718ed865523a3cd39605ba14b8c15fc9ae3f076c27e5b6e41fcb681d15f1c6ffc5934430c0a2bf47c233a3
 DIST emacs-25.1.tar.xz 42498944 SHA256 19f2798ee3bc26c95dca3303e7ab141e7ad65d6ea2b6945eeba4dbea7df48f33 SHA512 67442b9027869c44430e1d4c3e92e74601e667c9aef7e3da16f20a562b5e3fa8c64efdd4b4055919550523093d32eac73c094b644f6573fed41b4e0938668922 WHIRLPOOL 77cf4e126580634ec5aa2d2252a5d3334b6880a2abc32c54543b8df1a7dc9687bf41c54994044be7517b397bcfc2fc1094286ff4c05a7d6f64a8ef8376a4abfb
-DIST emacs-25.2-patches-1.tar.xz 2104 SHA256 ea0ba1cf1fb06eb76907cc034acb440af1147bdc0fa849ba8185d016fe58e4ff SHA512 45c666ba6332c8fb60a925c6af9c0da113f46055159d931feddb99ce19b2a03e0101b3a4d671fe699cd5f33fd58a25791bfb8b16e20f463e5d304902ee24854a WHIRLPOOL 97c49266b7be18f028ae939dbdcfd3933637770506f108fcd9d08fa33c63f376fbb6fe520e42ec28adb6d4527c298173bffe596af774748946a3d8a130aa90f7
 DIST emacs-25.2.tar.xz 46900336 SHA256 59b55194c9979987c5e9f1a1a4ab5406714e80ffcfd415cc6b9222413bc073fa SHA512 2485d5ccd58ecc953cbd2458bdfa45e3c9a6ddfdb1b93c72b957a0da2460d4e42092905e039e8f5bac337ea1ecb9ac404b28702a363323ee5813b30032ebf00c WHIRLPOOL 98de8ad164cf65b21e5fbfdbd7fcee84da32e3de66715d2f03f3c4d03cfa68d49aff2124e5da331282bb5fd9c2b2fbac4ddfd0985e907d2354994c783dddd83f

diff --git a/app-editors/emacs/emacs-23.4-r16.ebuild b/app-editors/emacs/emacs-23.4-r16.ebuild
deleted file mode 100644
index 0fb6928c337..00000000000
--- a/app-editors/emacs/emacs-23.4-r16.ebuild
+++ /dev/null
@@ -1,346 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-WANT_AUTOMAKE="none"
-
-inherit autotools elisp-common flag-o-matic multilib readme.gentoo-r1
-
-DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
-HOMEPAGE="https://www.gnu.org/software/emacs/"
-SRC_URI="mirror://gnu/emacs/${P}.tar.bz2
-	https://dev.gentoo.org/~ulm/emacs/${P}-patches-21.tar.xz"
-
-LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
-SLOT="23"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
-IUSE="alsa aqua athena dbus games gconf gif gpm gtk gzip-el hesiod jpeg kerberos livecd m17n-lib motif pax_kernel png sound source svg tiff toolkit-scroll-bars X Xaw3d xft +xpm"
-REQUIRED_USE="?? ( aqua X )"
-
-RDEPEND="sys-libs/ncurses:0=
-	>=app-eselect/eselect-emacs-1.16
-	>=app-emacs/emacs-common-gentoo-1.5[games?,X?]
-	net-libs/liblockfile
-	hesiod? ( net-dns/hesiod )
-	kerberos? ( virtual/krb5 )
-	alsa? ( media-libs/alsa-lib )
-	gpm? ( sys-libs/gpm )
-	dbus? ( sys-apps/dbus )
-	X? (
-		x11-libs/libXmu
-		x11-libs/libXt
-		x11-misc/xbitmaps
-		gconf? ( >=gnome-base/gconf-2.26.2 )
-		gif? ( media-libs/giflib:0= )
-		jpeg? ( virtual/jpeg:0= )
-		png? ( >=media-libs/libpng-1.4:0= )
-		svg? ( >=gnome-base/librsvg-2.0 )
-		tiff? ( media-libs/tiff:0 )
-		xpm? ( x11-libs/libXpm )
-		xft? (
-			media-libs/fontconfig
-			media-libs/freetype
-			x11-libs/libXft
-			m17n-lib? (
-				>=dev-libs/libotf-0.9.4
-				>=dev-libs/m17n-lib-1.5.1
-			)
-		)
-		gtk? ( x11-libs/gtk+:2 )
-		!gtk? (
-			motif? ( >=x11-libs/motif-2.3:0 )
-			!motif? (
-				Xaw3d? ( x11-libs/libXaw3d )
-				!Xaw3d? ( athena? ( x11-libs/libXaw ) )
-			)
-		)
-	)"
-
-DEPEND="${RDEPEND}
-	alsa? ( virtual/pkgconfig )
-	dbus? ( virtual/pkgconfig )
-	X? ( virtual/pkgconfig )
-	gzip-el? ( app-arch/gzip )
-	pax_kernel? ( sys-apps/attr )"
-
-RDEPEND="${RDEPEND}
-	!<app-editors/emacs-vcs-${PV}"
-
-EMACS_SUFFIX="${PN/emacs/emacs-${SLOT}}"
-SITEFILE="20${PN}-${SLOT}-gentoo.el"
-# FULL_VERSION keeps the full version number, which is needed in
-# order to determine some path information correctly for copy/move
-# operations later on
-FULL_VERSION="${PV%%_*}"
-S="${WORKDIR}/emacs-${FULL_VERSION}"
-
-src_prepare() {
-	eapply ../patch
-	eapply_user
-
-	sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 \
-		|| die "unable to sed ctags.1"
-
-	if ! use alsa; then
-		# ALSA is detected even if not requested by its USE flag.
-		# Suppress it by supplying pkg-config with a wrong library name.
-		sed -i -e "/ALSA_MODULES=/s/alsa/DiSaBlEaLsA/" configure.in \
-			|| die "unable to sed configure.in"
-	fi
-	if ! use gzip-el; then
-		# Emacs' build system automatically detects the gzip binary and
-		# compresses el files. We don't want that so confuse it with a
-		# wrong binary name
-		sed -i -e "s/ gzip/ PrEvEnTcOmPrEsSiOn/" configure.in \
-			|| die "unable to sed configure.in"
-	fi
-
-	mv configure.in configure.ac || die
-	eautoreconf
-	touch src/stamp-h.in || die
-}
-
-src_configure() {
-	strip-flags
-	filter-flags -fstrict-aliasing -pie
-	append-flags $(test-flags -fno-strict-aliasing)
-
-	if use sh; then
-		replace-flags "-O[1-9]" -O0		#262359
-	elif use ia64; then
-		replace-flags "-O[2-9]" -O1		#325373
-	else
-		replace-flags "-O[3-9]" -O2
-	fi
-
-	local myconf
-
-	if use alsa && ! use sound; then
-		einfo "Although sound USE flag is disabled you chose to have alsa,"
-		einfo "so sound is switched on anyway."
-		myconf+=" --with-sound"
-	else
-		myconf+=" $(use_with sound)"
-	fi
-
-	if use X; then
-		myconf+=" --with-x --without-ns"
-		myconf+=" $(use_with gconf)"
-		myconf+=" $(use_with toolkit-scroll-bars)"
-		myconf+=" $(use_with gif)"
-		myconf+=" $(use_with jpeg)"
-		myconf+=" $(use_with png)"
-		myconf+=" $(use_with svg rsvg)"
-		myconf+=" $(use_with tiff)"
-		myconf+=" $(use_with xpm)"
-
-		if use xft; then
-			myconf+=" --with-xft"
-			myconf+=" $(use_with m17n-lib libotf)"
-			myconf+=" $(use_with m17n-lib m17n-flt)"
-		else
-			myconf+=" --without-xft"
-			myconf+=" --without-libotf --without-m17n-flt"
-			use m17n-lib && ewarn \
-				"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
-		fi
-
-		# GTK+ is the default toolkit if USE=gtk is chosen with other
-		# possibilities. Emacs upstream thinks this should be standard
-		# policy on all distributions
-		local f
-		if use gtk; then
-			einfo "Configuring to build with GIMP Toolkit (GTK+)"
-			myconf+=" --with-x-toolkit=gtk"
-			for f in motif Xaw3d athena; do
-				use ${f} && ewarn \
-					"USE flag \"${f}\" has no effect if \"gtk\" is set."
-			done
-		elif use motif; then
-			einfo "Configuring to build with Motif toolkit"
-			myconf+=" --with-x-toolkit=motif"
-			for f in Xaw3d athena; do
-				use ${f} && ewarn \
-					"USE flag \"${f}\" has no effect if \"motif\" is set."
-			done
-		elif use athena || use Xaw3d; then
-			einfo "Configuring to build with Athena/Lucid toolkit"
-			myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
-		else
-			einfo "Configuring to build with no toolkit"
-			myconf+=" --with-x-toolkit=no"
-		fi
-	elif use aqua; then
-		einfo "Configuring to build with Nextstep (Cocoa) support"
-		myconf+=" --with-ns --disable-ns-self-contained"
-		myconf+=" --without-x"
-	else
-		myconf+=" --without-x --without-ns"
-	fi
-
-	# Save version information in the Emacs binary. It will be available
-	# in variable "system-configuration-options".
-	myconf+=" GENTOO_PACKAGE=${CATEGORY}/${PF}"
-
-	# According to configure, this option is only used for GNU/Linux
-	# (x86_64 and s390). For Gentoo Prefix we have to explicitly spell
-	# out the location because $(get_libdir) does not necessarily return
-	# something that matches the host OS's libdir naming (e.g. RHEL).
-	local crtdir=$($(tc-getCC) -print-file-name=crt1.o)
-	crtdir=${crtdir%/*}
-
-	econf \
-		--program-suffix="-${EMACS_SUFFIX}" \
-		--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
-		--localstatedir="${EPREFIX}"/var \
-		--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
-		--with-crt-dir="${crtdir}" \
-		--with-gameuser=":gamestat" \
-		$(use_with hesiod) \
-		$(use_with kerberos) $(use_with kerberos kerberos5) \
-		$(use_with gpm) \
-		$(use_with dbus) \
-		${myconf}
-}
-
-src_compile() {
-	export SANDBOX_ON=0			# for the unbelievers, see Bug #131505
-	emake CC="$(tc-getCC)" \
-		AR="$(tc-getAR) cq" \
-		RANLIB="$(tc-getRANLIB)"
-}
-
-src_install () {
-	emake DESTDIR="${D}" install
-
-	rm "${ED}"/usr/bin/emacs-${FULL_VERSION}-${EMACS_SUFFIX} \
-		|| die "removing duplicate emacs executable failed"
-	mv "${ED}"/usr/bin/emacs-${EMACS_SUFFIX} "${ED}"/usr/bin/${EMACS_SUFFIX} \
-		|| die "moving emacs executable failed"
-
-	# move man pages to the correct place
-	local m
-	mv "${ED}"/usr/share/man/man1/{emacs,${EMACS_SUFFIX}}.1 \
-		|| die "moving emacs man page failed"
-	for m in b2m ctags ebrowse emacsclient etags grep-changelog rcs-checkin; do
-		mv "${ED}"/usr/share/man/man1/${m}{,-${EMACS_SUFFIX}}.1 \
-			|| die "moving ${m} man page failed"
-	done
-
-	# move info dir to avoid collisions with the dir file generated by portage
-	mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{,.orig} \
-		|| die "moving info dir failed"
-	touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
-	docompress -x /usr/share/info/${EMACS_SUFFIX}/dir.orig
-
-	# avoid collision between slots, see bug #169033 e.g.
-	rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el
-	rm -rf "${ED}"/usr/share/{applications,icons}
-	rm -rf "${ED}"/var
-
-	# remove unused <version>/site-lisp dir
-	rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp
-
-	# remove COPYING file (except for etc/COPYING used by describe-copying)
-	rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING
-
-	local cdir
-	if use source; then
-		cdir="/usr/share/emacs/${FULL_VERSION}/src"
-		insinto "${cdir}"
-		# This is not meant to install all the source -- just the
-		# C source you might find via find-function
-		doins src/*.{c,h,m}
-		doins -r src/{m,s}
-		rm "${ED}"/usr/share/emacs/${FULL_VERSION}/src/Makefile.c
-		rm "${ED}"/usr/share/emacs/${FULL_VERSION}/src/{m,s}/README
-	elif has installsources ${FEATURES}; then
-		cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
-	fi
-
-	sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF
-	X
-	;;; ${PN}-${SLOT} site-lisp configuration
-	X
-	(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
-	Y  (setq find-function-C-source-directory
-	Y	"${EPREFIX}${cdir}")
-	X  (let ((path (getenv "INFOPATH"))
-	X	(dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
-	X	(re "\\\\\`${EPREFIX}/usr/share/info\\\\>"))
-	X    (and path
-	X	 ;; move Emacs Info dir before anything else in /usr/share/info
-	X	 (let* ((p (cons nil (split-string path ":" t))) (q p))
-	X	   (while (and (cdr q) (not (string-match re (cadr q))))
-	X	     (setq q (cdr q)))
-	X	   (setcdr q (cons dir (delete dir (cdr q))))
-	X	   (setq Info-directory-list (prune-directory-list (cdr p)))))))
-	EOF
-	elisp-site-file-install "${T}/${SITEFILE}" || die
-
-	dodoc README BUGS
-
-	if use aqua; then
-		dodir /Applications/Gentoo
-		rm -rf "${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app
-		mv nextstep/Emacs.app \
-			"${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app || die
-	fi
-
-	DOC_CONTENTS="You can set the version to be started by /usr/bin/emacs
-		through the Emacs eselect module, which also redirects man and info
-		pages. Therefore, several Emacs versions can be installed at the
-		same time. \"man emacs.eselect\" for details.
-		\\n\\nIf you upgrade from a previous major version of Emacs, then
-		it is strongly recommended that you use app-admin/emacs-updater
-		to rebuild all byte-compiled elisp files of the installed Emacs
-		packages."
-	use X && DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
-		Installing media-fonts/font-adobe-{75,100}dpi on the X server's
-		machine would satisfy basic Emacs requirements under X11.
-		See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
-		for how to enable anti-aliased fonts."
-	use aqua && DOC_CONTENTS+="\\n\\nEmacs${EMACS_SUFFIX#emacs}.app is in
-		\"${EPREFIX}/Applications/Gentoo\". You may want to copy or symlink
-		it into /Applications by yourself."
-	readme.gentoo_create_doc
-}
-
-pkg_preinst() {
-	# move Info dir file to correct name
-	local infodir=/usr/share/info/${EMACS_SUFFIX} f
-	if [[ -f ${ED}${infodir}/dir.orig ]]; then
-		mv "${ED}"${infodir}/dir{.orig,} || die "moving info dir failed"
-	elif [[ -d "${ED}"${infodir} ]]; then
-		# this should not happen in EAPI 4
-		ewarn "Regenerating Info directory index in ${infodir} ..."
-		rm -f "${ED}"${infodir}/dir{,.*}
-		for f in "${ED}"${infodir}/*; do
-			if [[ ${f##*/} != *-[0-9]* && -e ${f} ]]; then
-				install-info --info-dir="${ED}"${infodir} "${f}" \
-					|| die "install-info failed"
-			fi
-		done
-	fi
-}
-
-pkg_postinst() {
-	elisp-site-regen
-	readme.gentoo_print_elog
-
-	if use livecd; then
-		# force an update of the emacs symlink for the livecd/dvd,
-		# because some microemacs packages set it with USE=livecd
-		eselect emacs update
-	elif [[ $(readlink "${EROOT}"/usr/bin/emacs) = ${EMACS_SUFFIX} ]]; then
-		# refresh symlinks in case any installed files have changed
-		eselect emacs set ${EMACS_SUFFIX}
-	else
-		eselect emacs update ifunset
-	fi
-}
-
-pkg_postrm() {
-	elisp-site-regen
-	eselect emacs update ifunset
-}

diff --git a/app-editors/emacs/emacs-24.5-r4.ebuild b/app-editors/emacs/emacs-24.5-r4.ebuild
deleted file mode 100644
index 332305b7294..00000000000
--- a/app-editors/emacs/emacs-24.5-r4.ebuild
+++ /dev/null
@@ -1,344 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools elisp-common eutils flag-o-matic multilib readme.gentoo-r1
-
-DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
-HOMEPAGE="https://www.gnu.org/software/emacs/"
-SRC_URI="mirror://gnu/emacs/${P}.tar.xz
-	https://dev.gentoo.org/~ulm/emacs/${P}-patches-4.tar.xz"
-
-LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
-SLOT="24"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="acl alsa aqua athena dbus games gconf gfile gif gpm gsettings gtk +gtk3 gzip-el hesiod imagemagick +inotify jpeg kerberos libxml2 livecd m17n-lib motif pax_kernel png selinux sound source ssl svg tiff toolkit-scroll-bars wide-int X Xaw3d xft +xpm zlib"
-REQUIRED_USE="?? ( aqua X )"
-
-RDEPEND="sys-libs/ncurses:0=
-	>=app-eselect/eselect-emacs-1.16
-	>=app-emacs/emacs-common-gentoo-1.5[games?,X?]
-	net-libs/liblockfile
-	acl? ( virtual/acl )
-	alsa? ( media-libs/alsa-lib )
-	dbus? ( sys-apps/dbus )
-	gpm? ( sys-libs/gpm )
-	hesiod? ( net-dns/hesiod )
-	!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
-	kerberos? ( virtual/krb5 )
-	libxml2? ( >=dev-libs/libxml2-2.2.0 )
-	selinux? ( sys-libs/libselinux )
-	ssl? ( net-libs/gnutls:0= )
-	zlib? ( sys-libs/zlib )
-	X? (
-		x11-libs/libXmu
-		x11-libs/libXt
-		x11-misc/xbitmaps
-		gconf? ( >=gnome-base/gconf-2.26.2 )
-		gsettings? ( >=dev-libs/glib-2.28.6 )
-		gif? ( media-libs/giflib:0= )
-		jpeg? ( virtual/jpeg:0= )
-		png? ( >=media-libs/libpng-1.4:0= )
-		svg? ( >=gnome-base/librsvg-2.0 )
-		tiff? ( media-libs/tiff:0 )
-		xpm? ( x11-libs/libXpm )
-		imagemagick? ( >=media-gfx/imagemagick-6.6.2:0= )
-		xft? (
-			media-libs/fontconfig
-			media-libs/freetype
-			x11-libs/libXft
-			m17n-lib? (
-				>=dev-libs/libotf-0.9.4
-				>=dev-libs/m17n-lib-1.5.1
-			)
-		)
-		gtk? (
-			gtk3? ( x11-libs/gtk+:3 )
-			!gtk3? ( x11-libs/gtk+:2 )
-		)
-		!gtk? (
-			motif? ( >=x11-libs/motif-2.3:0 )
-			!motif? (
-				Xaw3d? ( x11-libs/libXaw3d )
-				!Xaw3d? ( athena? ( x11-libs/libXaw ) )
-			)
-		)
-	)"
-
-DEPEND="${RDEPEND}
-	virtual/pkgconfig
-	gzip-el? ( app-arch/gzip )
-	pax_kernel? ( sys-apps/attr )"
-
-RDEPEND="${RDEPEND}
-	!<app-editors/emacs-vcs-${PV}"
-
-EMACS_SUFFIX="${PN/emacs/emacs-${SLOT}}"
-SITEFILE="20${PN}-${SLOT}-gentoo.el"
-# FULL_VERSION keeps the full version number, which is needed in
-# order to determine some path information correctly for copy/move
-# operations later on
-FULL_VERSION="${PV%%_*}"
-S="${WORKDIR}/emacs-${FULL_VERSION}"
-
-src_prepare() {
-	eapply ../patch
-	eapply_user
-
-	# Fix filename reference in redirected man page
-	sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 \
-		|| die "unable to sed ctags.1"
-
-	AT_M4DIR=m4 eautoreconf
-	touch src/stamp-h.in || die
-}
-
-src_configure() {
-	strip-flags
-	filter-flags -pie					#526948
-
-	if use sh; then
-		replace-flags "-O[1-9]" -O0		#262359
-	elif use ia64; then
-		replace-flags "-O[2-9]" -O1		#325373
-	else
-		replace-flags "-O[3-9]" -O2
-	fi
-
-	local myconf
-
-	if use alsa; then
-		use sound || ewarn \
-			"USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
-		myconf+=" --with-sound=alsa"
-	else
-		myconf+=" --with-sound=$(usex sound oss)"
-	fi
-
-	if use X; then
-		myconf+=" --with-x --without-ns"
-		myconf+=" $(use_with gconf)"
-		myconf+=" $(use_with gsettings)"
-		myconf+=" $(use_with toolkit-scroll-bars)"
-		myconf+=" $(use_with gif)"
-		myconf+=" $(use_with jpeg)"
-		myconf+=" $(use_with png)"
-		myconf+=" $(use_with svg rsvg)"
-		myconf+=" $(use_with tiff)"
-		myconf+=" $(use_with xpm)"
-		myconf+=" $(use_with imagemagick)"
-
-		if use xft; then
-			myconf+=" --with-xft"
-			myconf+=" $(use_with m17n-lib libotf)"
-			myconf+=" $(use_with m17n-lib m17n-flt)"
-		else
-			myconf+=" --without-xft"
-			myconf+=" --without-libotf --without-m17n-flt"
-			use m17n-lib && ewarn \
-				"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
-		fi
-
-		local f line
-		if use gtk; then
-			einfo "Configuring to build with GIMP Toolkit (GTK+)"
-			while read line; do ewarn "${line}"; done <<-EOF
-				Your version of GTK+ will have problems with closing open
-				displays. This is no problem if you just use one display, but
-				if you use more than one and close one of them Emacs may crash.
-				See <https://bugzilla.gnome.org/show_bug.cgi?id=85715>.
-				If you intend to use more than one display, then it is strongly
-				recommended that you compile Emacs with the Athena/Lucid or the
-				Motif toolkit instead.
-			EOF
-			myconf+=" --with-x-toolkit=$(usex gtk3 gtk3 gtk2)"
-			for f in motif Xaw3d athena; do
-				use ${f} && ewarn \
-					"USE flag \"${f}\" has no effect if \"gtk\" is set."
-			done
-		elif use motif; then
-			einfo "Configuring to build with Motif toolkit"
-			myconf+=" --with-x-toolkit=motif"
-			for f in Xaw3d athena; do
-				use ${f} && ewarn \
-					"USE flag \"${f}\" has no effect if \"motif\" is set."
-			done
-		elif use athena || use Xaw3d; then
-			einfo "Configuring to build with Athena/Lucid toolkit"
-			myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
-		else
-			einfo "Configuring to build with no toolkit"
-			myconf+=" --with-x-toolkit=no"
-		fi
-	elif use aqua; then
-		einfo "Configuring to build with Nextstep (Cocoa) support"
-		myconf+=" --with-ns --disable-ns-self-contained"
-		myconf+=" --without-x"
-	else
-		myconf+=" --without-x --without-ns"
-	fi
-
-	# Save version information in the Emacs binary. It will be available
-	# in variable "system-configuration-options".
-	myconf+=" GENTOO_PACKAGE=${CATEGORY}/${PF}"
-
-	econf \
-		--program-suffix="-${EMACS_SUFFIX}" \
-		--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
-		--localstatedir="${EPREFIX}"/var \
-		--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
-		--with-gameuser=":gamestat" \
-		--without-compress-install \
-		--with-file-notification=$(usev inotify || usev gfile || echo no) \
-		$(use_enable acl) \
-		$(use_with dbus) \
-		$(use_with gpm) \
-		$(use_with hesiod) \
-		$(use_with kerberos) $(use_with kerberos kerberos5) \
-		$(use_with libxml2 xml2) \
-		$(use_with selinux) \
-		$(use_with ssl gnutls) \
-		$(use_with wide-int) \
-		$(use_with zlib) \
-		${myconf}
-}
-
-src_compile() {
-	export SANDBOX_ON=0			# for the unbelievers, see Bug #131505
-	emake
-}
-
-src_install () {
-	emake DESTDIR="${D}" NO_BIN_LINK=t install
-
-	mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} \
-		|| die "moving emacs executable failed"
-	mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 \
-		|| die "moving emacs man page failed"
-
-	# move info dir to avoid collisions with the dir file generated by portage
-	mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{,.orig} \
-		|| die "moving info dir failed"
-	touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
-	docompress -x /usr/share/info/${EMACS_SUFFIX}/dir.orig
-
-	# avoid collision between slots, see bug #169033 e.g.
-	rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el
-	rm -rf "${ED}"/usr/share/{applications,icons}
-	rm -rf "${ED}"/var
-
-	# remove unused <version>/site-lisp dir
-	rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp
-
-	# remove COPYING file (except for etc/COPYING used by describe-copying)
-	rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING
-
-	if use gzip-el; then
-		# compress .el files when a corresponding .elc exists
-		find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
-			-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
-		assert "gzip .el failed"
-	fi
-
-	local cdir
-	if use source; then
-		cdir="/usr/share/emacs/${FULL_VERSION}/src"
-		insinto "${cdir}"
-		# This is not meant to install all the source -- just the
-		# C source you might find via find-function
-		doins src/*.{c,h,m}
-	elif has installsources ${FEATURES}; then
-		cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
-	fi
-
-	sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF
-	X
-	;;; ${PN}-${SLOT} site-lisp configuration
-	X
-	(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
-	Y  (setq find-function-C-source-directory
-	Y	"${EPREFIX}${cdir}")
-	X  (let ((path (getenv "INFOPATH"))
-	X	(dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
-	X	(re "\\\\\`${EPREFIX}/usr/share/info\\\\>"))
-	X    (and path
-	X	 ;; move Emacs Info dir before anything else in /usr/share/info
-	X	 (let* ((p (cons nil (split-string path ":" t))) (q p))
-	X	   (while (and (cdr q) (not (string-match re (cadr q))))
-	X	     (setq q (cdr q)))
-	X	   (setcdr q (cons dir (delete dir (cdr q))))
-	X	   (setq Info-directory-list (prune-directory-list (cdr p)))))))
-	EOF
-	elisp-site-file-install "${T}/${SITEFILE}" || die
-
-	dodoc README BUGS
-
-	if use aqua; then
-		dodir /Applications/Gentoo
-		rm -rf "${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app
-		mv nextstep/Emacs.app \
-			"${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app || die
-	fi
-
-	DOC_CONTENTS="You can set the version to be started by /usr/bin/emacs
-		through the Emacs eselect module, which also redirects man and info
-		pages. Therefore, several Emacs versions can be installed at the
-		same time. \"man emacs.eselect\" for details.
-		\\n\\nIf you upgrade from Emacs version 24.2 or earlier, then it is
-		strongly recommended that you use app-admin/emacs-updater to rebuild
-		all byte-compiled elisp files of the installed Emacs packages."
-	use X && DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
-		Installing media-fonts/font-adobe-{75,100}dpi on the X server's
-		machine would satisfy basic Emacs requirements under X11.
-		See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
-		for how to enable anti-aliased fonts."
-	use aqua && DOC_CONTENTS+="\\n\\nEmacs${EMACS_SUFFIX#emacs}.app is in
-		\"${EPREFIX}/Applications/Gentoo\". You may want to copy or symlink
-		it into /Applications by yourself."
-	readme.gentoo_create_doc
-}
-
-pkg_preinst() {
-	# move Info dir file to correct name
-	local infodir=/usr/share/info/${EMACS_SUFFIX} f
-	if [[ -f ${ED}${infodir}/dir.orig ]]; then
-		mv "${ED}"${infodir}/dir{.orig,} || die "moving info dir failed"
-	elif [[ -d "${ED}"${infodir} ]]; then
-		# this should not happen in EAPI 4
-		ewarn "Regenerating Info directory index in ${infodir} ..."
-		rm -f "${ED}"${infodir}/dir{,.*}
-		for f in "${ED}"${infodir}/*; do
-			if [[ ${f##*/} != *-[0-9]* && -e ${f} ]]; then
-				install-info --info-dir="${ED}"${infodir} "${f}" \
-					|| die "install-info failed"
-			fi
-		done
-	fi
-}
-
-pkg_postinst() {
-	elisp-site-regen
-
-	local pvr
-	for pvr in ${REPLACING_VERSIONS}; do
-		[[ ${pvr%%[-_]*} = 24.[12] ]] && FORCE_PRINT_ELOG=1
-	done
-	readme.gentoo_print_elog
-
-	if use livecd; then
-		# force an update of the emacs symlink for the livecd/dvd,
-		# because some microemacs packages set it with USE=livecd
-		eselect emacs update
-	elif [[ $(readlink "${EROOT}"/usr/bin/emacs) = ${EMACS_SUFFIX} ]]; then
-		# refresh symlinks in case any installed files have changed
-		eselect emacs set ${EMACS_SUFFIX}
-	else
-		eselect emacs update ifunset
-	fi
-}
-
-pkg_postrm() {
-	elisp-site-regen
-	eselect emacs update ifunset
-}

diff --git a/app-editors/emacs/emacs-25.2-r1.ebuild b/app-editors/emacs/emacs-25.2-r1.ebuild
deleted file mode 100644
index aebdea0f7fe..00000000000
--- a/app-editors/emacs/emacs-25.2-r1.ebuild
+++ /dev/null
@@ -1,358 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit elisp-common flag-o-matic multilib readme.gentoo-r1
-
-DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
-HOMEPAGE="https://www.gnu.org/software/emacs/"
-SRC_URI="mirror://gnu/emacs/${P}.tar.xz
-	https://dev.gentoo.org/~ulm/emacs/${P}-patches-1.tar.xz"
-
-LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
-SLOT="25"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gconf gfile gif gpm gsettings gtk +gtk3 gzip-el hesiod imagemagick +inotify jpeg kerberos libxml2 livecd m17n-lib motif pax_kernel png selinux sound source ssl svg tiff toolkit-scroll-bars wide-int X Xaw3d xft +xpm xwidgets zlib"
-REQUIRED_USE="?? ( aqua X )"
-
-RDEPEND="sys-libs/ncurses:0=
-	>=app-eselect/eselect-emacs-1.16
-	>=app-emacs/emacs-common-gentoo-1.5[games?,X?]
-	net-libs/liblockfile
-	acl? ( virtual/acl )
-	alsa? ( media-libs/alsa-lib )
-	dbus? ( sys-apps/dbus )
-	gpm? ( sys-libs/gpm )
-	hesiod? ( net-dns/hesiod )
-	!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
-	kerberos? ( virtual/krb5 )
-	libxml2? ( >=dev-libs/libxml2-2.2.0 )
-	selinux? ( sys-libs/libselinux )
-	ssl? ( net-libs/gnutls:0= )
-	zlib? ( sys-libs/zlib )
-	X? (
-		x11-libs/libXmu
-		x11-libs/libXt
-		x11-misc/xbitmaps
-		gconf? ( >=gnome-base/gconf-2.26.2 )
-		gsettings? ( >=dev-libs/glib-2.28.6 )
-		gif? ( media-libs/giflib:0= )
-		jpeg? ( virtual/jpeg:0= )
-		png? ( >=media-libs/libpng-1.4:0= )
-		svg? ( >=gnome-base/librsvg-2.0 )
-		tiff? ( media-libs/tiff:0 )
-		xpm? ( x11-libs/libXpm )
-		imagemagick? ( >=media-gfx/imagemagick-6.6.2:0= )
-		xft? (
-			media-libs/fontconfig
-			media-libs/freetype
-			x11-libs/libXft
-			cairo? ( >=x11-libs/cairo-1.12.18 )
-			m17n-lib? (
-				>=dev-libs/libotf-0.9.4
-				>=dev-libs/m17n-lib-1.5.1
-			)
-		)
-		gtk? (
-			xwidgets? (
-				x11-libs/gtk+:3
-				net-libs/webkit-gtk:3=
-			)
-			!xwidgets? (
-				gtk3? ( x11-libs/gtk+:3 )
-				!gtk3? ( x11-libs/gtk+:2 )
-			)
-		)
-		!gtk? (
-			motif? ( >=x11-libs/motif-2.3:0 )
-			!motif? (
-				Xaw3d? ( x11-libs/libXaw3d )
-				!Xaw3d? ( athena? ( x11-libs/libXaw ) )
-			)
-		)
-	)"
-
-DEPEND="${RDEPEND}
-	virtual/pkgconfig
-	gzip-el? ( app-arch/gzip )
-	pax_kernel? ( sys-apps/attr )"
-
-RDEPEND="${RDEPEND}
-	!<app-editors/emacs-vcs-${PV}"
-
-EMACS_SUFFIX="${PN/emacs/emacs-${SLOT}}"
-SITEFILE="20${PN}-${SLOT}-gentoo.el"
-# FULL_VERSION keeps the full version number, which is needed in
-# order to determine some path information correctly for copy/move
-# operations later on
-FULL_VERSION="${PV%%_*}"
-S="${WORKDIR}/emacs-${FULL_VERSION}"
-
-src_prepare() {
-	eapply ../patch
-	eapply_user
-
-	# Fix filename reference in redirected man page
-	sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 \
-		|| die "unable to sed ctags.1"
-
-	#AT_M4DIR=m4 eautoreconf
-	#touch src/stamp-h.in || die
-}
-
-src_configure() {
-	strip-flags
-	filter-flags -pie					#526948
-
-	if use sh; then
-		replace-flags "-O[1-9]" -O0		#262359
-	elif use ia64; then
-		replace-flags "-O[2-9]" -O1		#325373
-	else
-		replace-flags "-O[3-9]" -O2
-	fi
-
-	local myconf
-
-	if use alsa; then
-		use sound || ewarn \
-			"USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
-		myconf+=" --with-sound=alsa"
-	else
-		myconf+=" --with-sound=$(usex sound oss)"
-	fi
-
-	if use X; then
-		myconf+=" --with-x --without-ns"
-		myconf+=" $(use_with gconf)"
-		myconf+=" $(use_with gsettings)"
-		myconf+=" $(use_with toolkit-scroll-bars)"
-		myconf+=" $(use_with gif)"
-		myconf+=" $(use_with jpeg)"
-		myconf+=" $(use_with png)"
-		myconf+=" $(use_with svg rsvg)"
-		myconf+=" $(use_with tiff)"
-		myconf+=" $(use_with xpm)"
-		myconf+=" $(use_with imagemagick)"
-
-		if use xft; then
-			myconf+=" --with-xft"
-			myconf+=" $(use_with cairo)"
-			myconf+=" $(use_with m17n-lib libotf)"
-			myconf+=" $(use_with m17n-lib m17n-flt)"
-		else
-			myconf+=" --without-xft"
-			myconf+=" --without-cairo"
-			myconf+=" --without-libotf --without-m17n-flt"
-			use cairo && ewarn \
-				"USE flag \"cairo\" has no effect if \"xft\" is not set."
-			use m17n-lib && ewarn \
-				"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
-		fi
-
-		local f line
-		if use gtk; then
-			einfo "Configuring to build with GIMP Toolkit (GTK+)"
-			while read line; do ewarn "${line}"; done <<-EOF
-				Your version of GTK+ will have problems with closing open
-				displays. This is no problem if you just use one display, but
-				if you use more than one and close one of them Emacs may crash.
-				See <https://bugzilla.gnome.org/show_bug.cgi?id=85715>.
-				If you intend to use more than one display, then it is strongly
-				recommended that you compile Emacs with the Athena/Lucid or the
-				Motif toolkit instead.
-			EOF
-			if use xwidgets; then
-				myconf+=" --with-x-toolkit=gtk3 --with-xwidgets"
-			else
-				myconf+=" --with-x-toolkit=$(usex gtk3 gtk3 gtk2)"
-				myconf+=" --without-xwidgets"
-			fi
-			for f in motif Xaw3d athena; do
-				use ${f} && ewarn \
-					"USE flag \"${f}\" has no effect if \"gtk\" is set."
-			done
-		elif use motif; then
-			einfo "Configuring to build with Motif toolkit"
-			myconf+=" --with-x-toolkit=motif"
-			for f in Xaw3d athena; do
-				use ${f} && ewarn \
-					"USE flag \"${f}\" has no effect if \"motif\" is set."
-			done
-		elif use athena || use Xaw3d; then
-			einfo "Configuring to build with Athena/Lucid toolkit"
-			myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
-		else
-			einfo "Configuring to build with no toolkit"
-			myconf+=" --with-x-toolkit=no"
-		fi
-		! use gtk && use xwidgets && ewarn \
-			"USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
-	elif use aqua; then
-		einfo "Configuring to build with Nextstep (Cocoa) support"
-		myconf+=" --with-ns --disable-ns-self-contained"
-		myconf+=" --without-x"
-	else
-		myconf+=" --without-x --without-ns"
-	fi
-
-	# Save version information in the Emacs binary. It will be available
-	# in variable "system-configuration-options".
-	myconf+=" GENTOO_PACKAGE=${CATEGORY}/${PF}"
-
-	econf \
-		--program-suffix="-${EMACS_SUFFIX}" \
-		--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
-		--localstatedir="${EPREFIX}"/var \
-		--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
-		--with-gameuser=":gamestat" \
-		--without-compress-install \
-		--with-file-notification=$(usev inotify || usev gfile || echo no) \
-		$(use_enable acl) \
-		$(use_with dbus) \
-		$(use_with dynamic-loading modules) \
-		$(use_with gpm) \
-		$(use_with hesiod) \
-		$(use_with kerberos) $(use_with kerberos kerberos5) \
-		$(use_with libxml2 xml2) \
-		$(use_with selinux) \
-		$(use_with ssl gnutls) \
-		$(use_with wide-int) \
-		$(use_with zlib) \
-		${myconf}
-}
-
-src_compile() {
-	export SANDBOX_ON=0			# for the unbelievers, see Bug #131505
-	emake
-}
-
-src_install () {
-	emake DESTDIR="${D}" NO_BIN_LINK=t install
-
-	mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} \
-		|| die "moving emacs executable failed"
-	mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 \
-		|| die "moving emacs man page failed"
-
-	# move info dir to avoid collisions with the dir file generated by portage
-	mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{,.orig} \
-		|| die "moving info dir failed"
-	touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
-	docompress -x /usr/share/info/${EMACS_SUFFIX}/dir.orig
-
-	# avoid collision between slots, see bug #169033 e.g.
-	rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el
-	rm -rf "${ED}"/usr/share/{appdata,applications,icons}
-	rm -rf "${ED}"/var
-
-	# remove unused <version>/site-lisp dir
-	rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp
-
-	# remove COPYING file (except for etc/COPYING used by describe-copying)
-	rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING
-
-	if use gzip-el; then
-		# compress .el files when a corresponding .elc exists
-		find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
-			-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
-		assert "gzip .el failed"
-	fi
-
-	local cdir
-	if use source; then
-		cdir="/usr/share/emacs/${FULL_VERSION}/src"
-		insinto "${cdir}"
-		# This is not meant to install all the source -- just the
-		# C source you might find via find-function
-		doins src/*.{c,h,m}
-	elif has installsources ${FEATURES}; then
-		cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
-	fi
-
-	sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF
-	X
-	;;; ${PN}-${SLOT} site-lisp configuration
-	X
-	(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
-	Y  (setq find-function-C-source-directory
-	Y	"${EPREFIX}${cdir}")
-	X  (let ((path (getenv "INFOPATH"))
-	X	(dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
-	X	(re "\\\\\`${EPREFIX}/usr/share/info\\\\>"))
-	X    (and path
-	X	 ;; move Emacs Info dir before anything else in /usr/share/info
-	X	 (let* ((p (cons nil (split-string path ":" t))) (q p))
-	X	   (while (and (cdr q) (not (string-match re (cadr q))))
-	X	     (setq q (cdr q)))
-	X	   (setcdr q (cons dir (delete dir (cdr q))))
-	X	   (setq Info-directory-list (prune-directory-list (cdr p)))))))
-	EOF
-	elisp-site-file-install "${T}/${SITEFILE}" || die
-
-	dodoc README BUGS CONTRIBUTE
-
-	if use aqua; then
-		dodir /Applications/Gentoo
-		rm -rf "${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app
-		mv nextstep/Emacs.app \
-			"${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app || die
-	fi
-
-	DOC_CONTENTS="You can set the version to be started by /usr/bin/emacs
-		through the Emacs eselect module, which also redirects man and info
-		pages. Therefore, several Emacs versions can be installed at the
-		same time. \"man emacs.eselect\" for details.
-		\\n\\nIf you upgrade from Emacs version 24.2 or earlier, then it is
-		strongly recommended that you use app-admin/emacs-updater to rebuild
-		all byte-compiled elisp files of the installed Emacs packages."
-	use X && DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
-		Installing media-fonts/font-adobe-{75,100}dpi on the X server's
-		machine would satisfy basic Emacs requirements under X11.
-		See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
-		for how to enable anti-aliased fonts."
-	use aqua && DOC_CONTENTS+="\\n\\nEmacs${EMACS_SUFFIX#emacs}.app is in
-		\"${EPREFIX}/Applications/Gentoo\". You may want to copy or symlink
-		it into /Applications by yourself."
-	readme.gentoo_create_doc
-}
-
-pkg_preinst() {
-	# move Info dir file to correct name
-	local infodir=/usr/share/info/${EMACS_SUFFIX} f
-	if [[ -f ${ED}${infodir}/dir.orig ]]; then
-		mv "${ED}"${infodir}/dir{.orig,} || die "moving info dir failed"
-	elif [[ -d "${ED}"${infodir} ]]; then
-		# this should not happen in EAPI 4
-		ewarn "Regenerating Info directory index in ${infodir} ..."
-		rm -f "${ED}"${infodir}/dir{,.*}
-		for f in "${ED}"${infodir}/*; do
-			if [[ ${f##*/} != *-[0-9]* && -e ${f} ]]; then
-				install-info --info-dir="${ED}"${infodir} "${f}" \
-					|| die "install-info failed"
-			fi
-		done
-	fi
-}
-
-pkg_postinst() {
-	elisp-site-regen
-	readme.gentoo_print_elog
-
-	if use livecd; then
-		# force an update of the emacs symlink for the livecd/dvd,
-		# because some microemacs packages set it with USE=livecd
-		eselect emacs update
-	elif [[ $(readlink "${EROOT}"/usr/bin/emacs) = ${EMACS_SUFFIX} ]]; then
-		# refresh symlinks in case any installed files have changed
-		eselect emacs set ${EMACS_SUFFIX}
-	else
-		eselect emacs update ifunset
-	fi
-}
-
-pkg_postrm() {
-	elisp-site-regen
-	eselect emacs update ifunset
-}


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-09-11 18:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-11 17:55 [gentoo-commits] repo/gentoo:eapi7-ver commit in: app-editors/emacs/ Ulrich Müller
  -- strict thread matches above, loose matches on Subject: below --
2017-09-11 18:24 Ulrich Müller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox