summaryrefslogtreecommitdiff
path: root/app-editors/emacs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /app-editors/emacs
reinit the tree, so we can have metadata
Diffstat (limited to 'app-editors/emacs')
-rw-r--r--app-editors/emacs/Manifest23
-rw-r--r--app-editors/emacs/emacs-18.59-r11.ebuild148
-rw-r--r--app-editors/emacs/emacs-23.4-r15.ebuild346
-rw-r--r--app-editors/emacs/emacs-23.4-r16.ebuild346
-rw-r--r--app-editors/emacs/emacs-24.5-r3.ebuild344
-rw-r--r--app-editors/emacs/emacs-24.5-r4.ebuild344
-rw-r--r--app-editors/emacs/emacs-25.2-r1.ebuild358
-rw-r--r--app-editors/emacs/emacs-25.2.ebuild356
-rw-r--r--app-editors/emacs/emacs-25.3.ebuild356
-rw-r--r--app-editors/emacs/metadata.xml53
10 files changed, 2674 insertions, 0 deletions
diff --git a/app-editors/emacs/Manifest b/app-editors/emacs/Manifest
new file mode 100644
index 000000000000..12a68f70a246
--- /dev/null
+++ b/app-editors/emacs/Manifest
@@ -0,0 +1,23 @@
+DIST emacs-18.59-linux22x-elf-glibc21.diff.gz 15671 SHA256 fb810d893938883d50a3a8d7c43fbeb1604d5454f760b8f1f700326c8ee659dd SHA512 c6c6ea33850dadf08d68fff56fc6aacc80ad1aa36661260715d50b95438942d56e6244094427d50356cfe716f26559feb885254c436399bff7be639637d605b6 WHIRLPOOL cafaa0fb0d06058cac8e445a7a1b5cba145d23186477a9c681efdab8ca0f18a9675dec3a93851fd7138890701f83fab83300c28a548c8fc22478a0cfff95d5da
+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.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
+DIST emacs-25.3.tar.xz 42854740 SHA256 253ac5e7075e594549b83fd9ec116a9dc37294d415e2f21f8ee109829307c00b SHA512 1cce656451b6ca8502ebb229e88bd3ef48b7f9444a10eeac4ea43bd5491b2efacd641dfa35227a33362c3866493d3449cf1df81606563eef44bba0ed668e457f WHIRLPOOL 603ec6b203523a22556e48616b4a5ab227c32d3653ac4b713e6cb0357e3556964bc92a1818b417bbf9037cca7dac55935da9458dc3d29b3bb24d66157e74c8df
+EBUILD emacs-18.59-r11.ebuild 4147 SHA256 1fc23c3661811f3d30df44e296a1457aa2bab44c535999ae1dc0d397d8d67695 SHA512 fd953bf529ec8f3094fcfe1b22ba690efa419059ca2d01ca2246f13554463eb586ad402ca58f12a4dd00c347358365633e52f7191ce8989abf48dc0c2d7813ac WHIRLPOOL 84470de04c81a67b58d02ebea299d48c192403e58ecbb2f684ed10e46239ef6db5ff49fb3d59aa53c08b177e56f35019ac29848969ea317e79824aafd33a87c8
+EBUILD emacs-23.4-r15.ebuild 11217 SHA256 296ed49f7fe853fabe6d8dc55b4e093b4f98f2fb475fef8d64458eab69643c2b SHA512 a70cf6e0500f7b2a8b63d06340a60d99283a51e21bfd6954a0ed6cfbf0b5a12204f43c9b7c661022d8f147cb5c88f5a37f5f987ec36084abc3d584e809090bf3 WHIRLPOOL cf78e3fff39e93b98985e1ac6d6ee4411ab0d879794010dad144cc619afb6955f64e9db79e826ec61423fa19039fbcd22cb1f7de6a4afd0fd9f2fcd9db45adaf
+EBUILD emacs-23.4-r16.ebuild 11219 SHA256 99c1a858fd4ff1877eeba0a986b0eacef9e8dd6b034606af28d21df52ed6e1d8 SHA512 9f7c9e017fbdc13d69fbf802ee6a3900e0c816c8b6f472bed22e13b23e658d004efdaae84be010b3822a636653a009d41206d8ca4294e1fca5d5a7cb5d40dc6b WHIRLPOOL 891730bf39ec3736257bce4f9c4b6821cd552ad8d3c53b145c12d63c0e9bfafa1b52dae3944fd4411e0fccbadc4e25bdbcb03d3663d3f2b6ced59d8dc6e2f443
+EBUILD emacs-24.5-r3.ebuild 11048 SHA256 3a737f3afaa2784d6e87af64ecf60db8aac8b73d5699595eb21b583940137d67 SHA512 4a612329a0f585db081c9727632acae909db7741c7604b28fa36fca42539e4f44928a685d603bba7946d2c1a95db2a23513d55726eb15bff84d3773b34c92353 WHIRLPOOL 043f51cbfb72389ca538125766d852bf3cad8f1068e0633a9decefc93aaf8da82a80f094cae0dedac7e1ac131440f607e300d9a11224b3639fd6ef46335a97e3
+EBUILD emacs-24.5-r4.ebuild 11050 SHA256 0bb2aee6af100424b16fa8b23da4a9b04a40582b217932e074e31b4c1778d39d SHA512 44887a9b0715902f069734429bb253443c1ba555a729bcbc839ee61bf2e6e2bd53df181eace9cd0ba68aa8b6a34280583e3644656e2d7f6f3f5b6af2c598ea39 WHIRLPOOL 8d108af2e8d7e8d008fb02020738daaf76870b1d96c193ea5259076d4b29faa33bff86efeb363a32dda6a1483a645230b4f77e4fe2d6854c6906d7230bd0ae43
+EBUILD emacs-25.2-r1.ebuild 11534 SHA256 3ebc01217f850cb414b4daaff05a8f6e157ee1f7d27f6f43c9f22ddaefd04e07 SHA512 e29e7e2c3f8987843203799620099f3da70f89d7e44ad606f2b7f4ff7077333c7e783c3b327d735165b6d9e38e8f22a8eb635b8f412c53a7c9946e81467bf2e2 WHIRLPOOL 5458fae2212afe44629ffea3fad6194dc7e2b9b0b1b7c2e9446ac392ff0a5f004593a09e6bef4db557cc4e812b31af154c20833d6d6947b960d368e5200eb5c6
+EBUILD emacs-25.2.ebuild 11454 SHA256 3ae3b02fe763fa2015dd3c4224f6c3cc891cec0abd0a8553bdf5c1b9f68f3a55 SHA512 cd770b82b502e2ce1507345cb4e011f9df9a1b7243696dc5df1e705ec374e43917177e6cd7d215eb8426f1460b80b29c2bfb51a359c7fcb2c0a40bc51a3a1f84 WHIRLPOOL 8c055a2dcf880a3d486cefaaeef4ea4b68fafccb2007dcb1dda608c12c84977e02e8b6a8aa28ecf3ea958db6295c67d3b329f581b4b94b75ce1e1d175211afcb
+EBUILD emacs-25.3.ebuild 11457 SHA256 318604c373dc8ee9a157d8daa2ed7dc36167686d0feecb193dbd89e1de1449bb SHA512 c74f92d0c40d8cbb40c9b4d179ba40d94409eecdc397faa35e64f81ddc0fef88a86b2f2eb93795ad0eb0d613ceb1dfe290d641d9e1a4a7e94d33ffbe5dad2edc WHIRLPOOL 0dc2134fa1db3b02ca3f0698b3f92e02c8fe2c41d40fd17f62eb35c2a25536bc5724f5e8bfe509d7ab82d1595d419b9bac4a9c2bf84ed63ee52f906e0b2031b7
+MISC ChangeLog 12072 SHA256 cbbb16232ce5f7e640a63614a882cf80f25c86e6c47e693a5f6de8de093385ee SHA512 fb8e13e19fd88c032c01f2c248ffbab47947bb3c3b5e7e7c16ed6972515b850c30774c56493472ba9275e85e30c0b45d0b4aa77f5313b5a4a3a78633fdffa328 WHIRLPOOL 9c1c0ae2cdd9685a7476499b4a51cdb8236e923a50105745979e339e4c9264a8ee7bcf7376ac03d94b2a857421ee77e7b6db342c30ee0b546eaa40e5419dae71
+MISC ChangeLog-2015 93870 SHA256 0de5747f6d5fff7e3dfca0a37269e4c804d6ab3c9fdb34d39e51b650ce46117a SHA512 d41a91ed0454ab885df588edc8a7ee1b97faed64cd479dc12fadbb8056c36b81aabd43ea521171db511e7061ccbfbaec4c443924528dd1779147a4cf5537bf57 WHIRLPOOL c51fbaa8eae82fb02fc76683b2cdf0de65321b07fc1f5b9c2d929a605ac48ce7354f1d4fdc9a7bf1833e9e7280f4cd62e9130b94107b5860890d255ba1b14ea7
+MISC metadata.xml 2759 SHA256 7f568caaf3e715c1534bd7848b60e8234b4f082b665ba6769780dccdf9939b3e SHA512 748620c7f63f55d74bd758fbe21d3762d23e97b362aa356ea30e42efb5f297b1e1abf6b43f6ff1239db0d1732f0d514d49f354a3792d839437f7b29f5ea23b42 WHIRLPOOL 9eec021a8c2a2a8b7d79ff1d348699f051d6e7e54586445ab691632bf26155c4ec722ef0db6984efb0510e7e49537c4c421fb896c7d861da836d3bc6bfe85de2
diff --git a/app-editors/emacs/emacs-18.59-r11.ebuild b/app-editors/emacs/emacs-18.59-r11.ebuild
new file mode 100644
index 000000000000..abf7a53aa027
--- /dev/null
+++ b/app-editors/emacs/emacs-18.59-r11.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs flag-o-matic multilib
+
+DESCRIPTION="The extensible self-documenting text editor"
+HOMEPAGE="https://www.gnu.org/software/emacs/"
+SRC_URI="ftp://ftp.gnu.org/old-gnu/emacs/${P}.tar.gz
+ ftp://ftp.splode.com/pub/users/friedman/emacs/${P}-linux22x-elf-glibc21.diff.gz
+ https://dev.gentoo.org/~ulm/emacs/${P}-patches-9.tar.xz"
+
+LICENSE="GPL-1+ GPL-2+ BSD" #HPND
+SLOT="18"
+KEYWORDS="amd64 x86"
+IUSE="abi_x86_x32"
+
+RDEPEND=">=app-eselect/eselect-emacs-1.16
+ sys-libs/ncurses:0=
+ amd64? (
+ abi_x86_x32? ( >=sys-libs/ncurses-5.9-r3:0=[abi_x86_x32(-)?] )
+ !abi_x86_x32? ( >=sys-libs/ncurses-5.9-r3:0=[abi_x86_32(-)] )
+ )"
+# X? ( x11-libs/libX11[-xcb] )
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+PATCHES="../${P}-linux22x-elf-glibc21.diff ../patch"
+
+src_configure() {
+ # autoconf? What's autoconf? We are living in 1992. ;-)
+ local arch
+ case ${ARCH} in
+ amd64)
+ if use abi_x86_x32; then
+ arch=x86-x32
+ multilib_toolchain_setup x32
+ else
+ arch=intel386
+ multilib_toolchain_setup x86
+ fi
+ ;;
+ x86) arch=intel386 ;;
+ *) die "Architecture ${ARCH} not yet supported" ;;
+ esac
+ local cmd="s/\"s-.*\.h\"/\"s-linux.h\"/;s/\"m-.*\.h\"/\"m-${arch}.h\"/"
+ #use X && cmd="${cmd};s/.*\(#define HAVE_X_WINDOWS\).*/\1/"
+ sed -e "${cmd}" src/config.h-dist >src/config.h || die
+
+ cat <<-END >src/paths.h
+ #define PATH_LOADSEARCH "/usr/share/emacs/${PV}/lisp"
+ #define PATH_EXEC "/usr/share/emacs/${PV}/etc"
+ #define PATH_LOCK "/var/lib/emacs/lock/"
+ #define PATH_SUPERLOCK "/var/lib/emacs/lock/!!!SuperLock!!!"
+ END
+
+ sed -i -e "s:/usr/lib/\([^ ]*\).o:/usr/$(get_libdir)/\1.o:g" \
+ -e "s:-lncurses:$("$(tc-getPKG_CONFIG)" --libs ncurses):" \
+ src/s-linux.h || die
+
+ # -O3 and -finline-functions cause segmentation faults at run time.
+ filter-flags -finline-functions
+ replace-flags -O[3-9] -O2
+ strip-flags
+ # Quieten GCC 5. Feel free to submit a patch adding all those prototypes.
+ append-flags -Wno-implicit
+}
+
+src_compile() {
+ # Do not use the sandbox, or the dumped Emacs will be twice as large
+ export SANDBOX_ON=0
+ emake --jobs=1 \
+ CC="$(tc-getCC)" CFLAGS="${CFLAGS} -Demacs" \
+ LD="$(tc-getCC) -nostdlib" LDFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+ local basedir="/usr/share/emacs/${PV}" i
+
+ dodir ${basedir}
+ dodir /usr/share/man/man1
+ emake --jobs=1 \
+ LIBDIR="${D}"${basedir} \
+ BINDIR="${D}"/usr/bin \
+ MANDIR="${D}"/usr/share/man/man1 \
+ install
+
+ rmdir "${D}"${basedir}/lock || die
+ find "${D}"${basedir} -type f \( -name "*.c" -o -name ChangeLog \
+ -o -name COPYING ! -path "*/etc/COPYING" \) -exec rm "{}" + || die
+ fperms -R go-w ${basedir}
+
+ # remove duplicate DOC file
+ rm "${D}"${basedir}/etc/DOC || die
+
+ # move executables to the correct place
+ mv "${D}"/usr/bin/emacs{,-${SLOT}} || die
+ for i in etags ctags emacsclient; do
+ mv "${D}"/usr/bin/${i}{,-emacs-${SLOT}} || die
+ rm "${D}"${basedir}/etc/${i} || die
+ done
+
+ dodir /usr/libexec/emacs/${PV}
+ for i in wakeup digest-doc sorted-doc movemail cvtmail fakemail \
+ yow env server
+ do
+ mv "${D}"${basedir}/etc/${i} "${D}"/usr/libexec/emacs/${PV}/${i} || die
+ dosym ../../../../libexec/emacs/${PV}/${i} ${basedir}/etc/${i}
+ done
+ for i in test-distrib make-docfile; do
+ rm "${D}"${basedir}/etc/${i} || die
+ done
+
+ # move man page
+ mv "${D}"/usr/share/man/man1/emacs{,-${SLOT}}.1 || die
+
+ # move Info files
+ dodir /usr/share/info
+ mv "${D}"${basedir}/info "${D}"/usr/share/info/emacs-${SLOT} || die
+ dosym ../../info/emacs-${SLOT} "${basedir}"/info
+ docompress -x /usr/share/info
+
+ # move Info dir to avoid collisions with the dir file generated by portage
+ mv "${D}"/usr/share/info/emacs-${SLOT}/dir{,.orig} || die
+ touch "${D}"/usr/share/info/emacs-${SLOT}/.keepinfodir
+
+ dodir /var/lib/emacs
+ diropts -m0777
+ keepdir /var/lib/emacs/lock
+
+ dodoc README PROBLEMS
+}
+
+pkg_preinst() {
+ # move Info dir file to correct name
+ if [[ -d "${D}"/usr/share/info ]]; then
+ mv "${D}"/usr/share/info/emacs-${SLOT}/dir{.orig,} || die
+ fi
+}
+
+pkg_postinst() {
+ eselect emacs update ifunset
+}
+
+pkg_postrm() {
+ eselect emacs update ifunset
+}
diff --git a/app-editors/emacs/emacs-23.4-r15.ebuild b/app-editors/emacs/emacs-23.4-r15.ebuild
new file mode 100644
index 000000000000..34eef1e0b9d6
--- /dev/null
+++ b/app-editors/emacs/emacs-23.4-r15.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-20.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-23.4-r16.ebuild b/app-editors/emacs/emacs-23.4-r16.ebuild
new file mode 100644
index 000000000000..15369355c279
--- /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-r3.ebuild b/app-editors/emacs/emacs-24.5-r3.ebuild
new file mode 100644
index 000000000000..8157ba3ff267
--- /dev/null
+++ b/app-editors/emacs/emacs-24.5-r3.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-3.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-24.5-r4.ebuild b/app-editors/emacs/emacs-24.5-r4.ebuild
new file mode 100644
index 000000000000..a09a7c74e569
--- /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 000000000000..b2ad0adcb12d
--- /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
+}
diff --git a/app-editors/emacs/emacs-25.2.ebuild b/app-editors/emacs/emacs-25.2.ebuild
new file mode 100644
index 000000000000..1936a8777e52
--- /dev/null
+++ b/app-editors/emacs/emacs-25.2.ebuild
@@ -0,0 +1,356 @@
+# 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"
+
+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_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
+}
diff --git a/app-editors/emacs/emacs-25.3.ebuild b/app-editors/emacs/emacs-25.3.ebuild
new file mode 100644
index 000000000000..e2c75ebe4c4c
--- /dev/null
+++ b/app-editors/emacs/emacs-25.3.ebuild
@@ -0,0 +1,356 @@
+# 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"
+
+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_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
+}
diff --git a/app-editors/emacs/metadata.xml b/app-editors/emacs/metadata.xml
new file mode 100644
index 000000000000..61b88217833d
--- /dev/null
+++ b/app-editors/emacs/metadata.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>gnu-emacs@gentoo.org</email>
+ <name>Gentoo GNU Emacs project</name>
+</maintainer>
+<longdescription>
+ GNU Emacs is an extensible, customizable text editor - and more. At its core
+ is an interpreter for Emacs Lisp, a dialect of the Lisp programming language
+ with extensions to support text editing. The features of GNU Emacs include:
+ * Content-sensitive editing modes, including syntax coloring, for a variety
+ of file types including plain text, source code, and HTML.
+ * Complete built-in documentation, including a tutorial for new users.
+ * Full Unicode support for nearly all human languages and their scripts.
+ * Highly customizable, using Emacs Lisp code or a graphical interface.
+ * A large number of extensions that add other functionality, including a
+ project planner, mail and news reader, debugger interface, calendar, and
+ more. Many of these extensions are distributed with GNU Emacs; others are
+ available separately.
+</longdescription>
+<use>
+ <flag name="athena">Enable the MIT Athena widget set
+ (<pkg>x11-libs/libXaw</pkg>)</flag>
+ <flag name="dynamic-loading">Enable loading of dynamic libraries at
+ runtime</flag>
+ <flag name="games">Support shared score files for games</flag>
+ <flag name="gconf">Use <pkg>gnome-base/gconf</pkg> to read the system
+ font name</flag>
+ <flag name="gfile">Use gfile (<pkg>dev-libs/glib</pkg>) for file
+ notification</flag>
+ <flag name="gsettings">Use gsettings (<pkg>dev-libs/glib</pkg>) to read the
+ system font name</flag>
+ <flag name="gtk3">Prefer version 3 of the GIMP Toolkit to version 2
+ (<pkg>x11-libs/gtk+</pkg>)</flag>
+ <flag name="gzip-el">Compress bundled Emacs Lisp source</flag>
+ <flag name="hesiod">Enable support for <pkg>net-dns/hesiod</pkg></flag>
+ <flag name="imagemagick">Use <pkg>media-gfx/imagemagick</pkg> for image
+ processing</flag>
+ <flag name="libxml2">Use <pkg>dev-libs/libxml2</pkg> to parse XML instead
+ of the internal Lisp implementations</flag>
+ <flag name="pax_kernel">Enable building under a PaX enabled kernel</flag>
+ <flag name="source">Install C source files and make them available for
+ find-function</flag>
+ <flag name="toolkit-scroll-bars">Use the selected toolkit's scrollbars in
+ preference to Emacs' own scrollbars</flag>
+ <flag name="wide-int">Prefer wide Emacs integers (typically 62-bit).
+ This option has an effect only on architectures where "long" and
+ "long long" types have different size.</flag>
+ <flag name='xwidgets'>Enable use of GTK widgets in Emacs buffers
+ (requires GTK3)</flag>
+</use>
+</pkgmetadata>