summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2007-11-25 17:13:09 +0000
committerUlrich Müller <ulm@gentoo.org>2007-11-25 17:13:09 +0000
commitf7067c5c25306199e180efa27d4597a9599801ba (patch)
tree3141535a9a7b62f02742741f907c64e32d3e931b /app-editors
parentAdd built_with_use check for avahi dbus support. (diff)
downloadhistorical-f7067c5c25306199e180efa27d4597a9599801ba.tar.gz
historical-f7067c5c25306199e180efa27d4597a9599801ba.tar.bz2
historical-f7067c5c25306199e180efa27d4597a9599801ba.zip
Correctly format integer values, patch from upstream CVS.
Package-Manager: portage-2.1.3.19
Diffstat (limited to 'app-editors')
-rw-r--r--app-editors/emacs/ChangeLog11
-rw-r--r--app-editors/emacs/Manifest33
-rw-r--r--app-editors/emacs/emacs-21.4-r14.ebuild194
-rw-r--r--app-editors/emacs/emacs-22.1-r3.ebuild246
-rw-r--r--app-editors/emacs/files/digest-emacs-21.4-r149
-rw-r--r--app-editors/emacs/files/digest-emacs-22.1-r33
-rw-r--r--app-editors/emacs/files/emacs-22.1-format-int.patch79
7 files changed, 567 insertions, 8 deletions
diff --git a/app-editors/emacs/ChangeLog b/app-editors/emacs/ChangeLog
index 467a436b1913..9988a8fabad8 100644
--- a/app-editors/emacs/ChangeLog
+++ b/app-editors/emacs/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for app-editors/emacs
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-editors/emacs/ChangeLog,v 1.208 2007/11/22 21:57:27 ulm Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-editors/emacs/ChangeLog,v 1.209 2007/11/25 17:13:08 ulm Exp $
+
+*emacs-22.1-r3 (25 Nov 2007)
+*emacs-21.4-r14 (25 Nov 2007)
+
+ 25 Nov 2007; Ulrich Mueller <ulm@gentoo.org>
+ +files/emacs-22.1-format-int.patch, +emacs-21.4-r14.ebuild,
+ +emacs-22.1-r3.ebuild:
+ Correctly format integer values, SuSE bug 342158. Patch from upstream CVS,
+ partially backported to Emacs 21.
22 Nov 2007; Ulrich Mueller <ulm@gentoo.org> emacs-22.1-r2.ebuild:
Fix alsa dependency, thanks Flameeyes for pointing this out.
diff --git a/app-editors/emacs/Manifest b/app-editors/emacs/Manifest
index dcdff360aea2..47ce3ee49da2 100644
--- a/app-editors/emacs/Manifest
+++ b/app-editors/emacs/Manifest
@@ -13,6 +13,10 @@ AUX emacs-22.1-disable_alsa_detection.patch 1573 RMD160 e41972bc7c8c6ce80128046e
MD5 4d8a875faa61af1fa4d5fd31d85ad5d5 files/emacs-22.1-disable_alsa_detection.patch 1573
RMD160 e41972bc7c8c6ce80128046ee134acc7903fef2b files/emacs-22.1-disable_alsa_detection.patch 1573
SHA256 afab81ebc4ac289c6f2ff4cd93f3f10a29bed3e55d463b337ab8711f6ff8cfcc files/emacs-22.1-disable_alsa_detection.patch 1573
+AUX emacs-22.1-format-int.patch 3078 RMD160 525a4fbac24e2d97c6267655c36c06438f941a87 SHA1 397220a5b57f25a0271c1a4cc45c10f25d5f6703 SHA256 4632460b86af84ee0a826fa1dd228dcc9e763cfde9a8615e8c03655241e2a8fd
+MD5 c90238868fbd7ef8eeaf5993c8b2a9c5 files/emacs-22.1-format-int.patch 3078
+RMD160 525a4fbac24e2d97c6267655c36c06438f941a87 files/emacs-22.1-format-int.patch 3078
+SHA256 4632460b86af84ee0a826fa1dd228dcc9e763cfde9a8615e8c03655241e2a8fd files/emacs-22.1-format-int.patch 3078
AUX emacs-22.1-freebsd-sparc.patch 475 RMD160 a8e6e3f2bc014979fd269a027835a65520c12417 SHA1 71c6d9ee3b3e5149a33d440373a212b56fbd064c SHA256 43584ea923e6c7221e69d1d6a14d55d386565c5decd067a62acc58af522c803b
MD5 33cdd958f1be433095a69bff6be18148 files/emacs-22.1-freebsd-sparc.patch 475
RMD160 a8e6e3f2bc014979fd269a027835a65520c12417 files/emacs-22.1-freebsd-sparc.patch 475
@@ -30,6 +34,7 @@ DIST emacs-18.59-patches.tar.bz2 16592 RMD160 87410388441f3dabfb300154a7e3f2ee50
DIST emacs-18.59.tar.gz 2962652 RMD160 4976d0f0f34b6d54db6774d24a528f74a3bb20dc SHA1 15b25bf130e3eeb91f3eea8c01a3dec9aabf23cc SHA256 1e27e33f91984a91e9b4c1f21433f931aba03670960ecc147bb6d7b0de0f051e
DIST emacs-21-files.tar.bz2 900 RMD160 71b4a7b6d6b2f47a087fdb54381513b82fb97411 SHA1 04d909e88eb56378d09e6c10ed21e22c01525609 SHA256 3d7c5b2ca8b11d3cd2dd9ea22b90867471de34552e4d1bae11206d18031f6ab2
DIST emacs-21-patches.tar.bz2 8891 RMD160 ca0a44cc0d6e81fb245eb4f6069dd49550a9c55f SHA1 592c47434288a5c3672110acf4f36ab2072c19ae SHA256 456af3ed5bcfa99af3fd67c281e391ca1b67599aed0cfd470adca8b34240d914
+DIST emacs-21.4-patches-1.tar.bz2 9598 RMD160 a838e9d49fbc23e2c7f000a96fca06f0e347ab47 SHA1 ef15a55f94fc01e99cc386273bebdfe363efe15c SHA256 75c8a3d9f420e9ab3f426b39b0f73299a22d399415cbd4190dfda63b6e65f3a1
DIST emacs-21.4-patches.tar.bz2 9434 RMD160 fe05c6a0fd8b7c8d610d8992e8125446926f750e SHA1 81fe49207325c867a7184b23ad6976e6720e1bb4 SHA256 238986441bec629ffd810a74700b2c8276e4b1e42a71fa614a9f2eab839d6ca3
DIST emacs-21.4a.tar.gz 20403483 RMD160 c312e739935b56d08783bbfe97992297a363cb8a SHA1 cdb33731180fe4a912838af805dd35e3f55394d4 SHA256 1d50ddae117c48d689a3d772e390569edccfdc22168be0112d2093bd2d7c3216
DIST emacs-22.1.tar.gz 38172226 RMD160 da5360871db8b1d473ff7f0b0937ee6c278c0b19 SHA1 327664173eabe5db49d4e7e4a4b1794577af902e SHA256 1ec43bef7127e572f92d7c3a846951cf8e263e27445c62c867035f94681c3ed0
@@ -46,6 +51,10 @@ EBUILD emacs-21.4-r13.ebuild 5558 RMD160 ec9ede8479a4f6f72cecbe27215b6b04e707bcb
MD5 e53689f8ee6aa1725ee32feca5bb9eac emacs-21.4-r13.ebuild 5558
RMD160 ec9ede8479a4f6f72cecbe27215b6b04e707bcbd emacs-21.4-r13.ebuild 5558
SHA256 cc71a272dc0c7ca22ae9d26cc1b993fbdfeba60ce8f27978829a8d041b65c3eb emacs-21.4-r13.ebuild 5558
+EBUILD emacs-21.4-r14.ebuild 5568 RMD160 727727bb1ab84f672fab64a42583814f4cad5a45 SHA1 c637136cfebfa628200f7f23c8b5df2f9c364f0a SHA256 cb7ff1f33f668089bb9b317f3cc2426894af766e1d31262e3ec99ccde5a8a15e
+MD5 4c1793405e3d870165d666381abfe963 emacs-21.4-r14.ebuild 5568
+RMD160 727727bb1ab84f672fab64a42583814f4cad5a45 emacs-21.4-r14.ebuild 5568
+SHA256 cb7ff1f33f668089bb9b317f3cc2426894af766e1d31262e3ec99ccde5a8a15e emacs-21.4-r14.ebuild 5568
EBUILD emacs-21.4-r4.ebuild 4598 RMD160 ca4f3078763d21b3331e7b54ef64b18d4df93f38 SHA1 72bc7a649fea5948bacdf432d9d600313ef069b9 SHA256 a6b910d89d85c84a0dd0a5953fee402aa35dc4933cf43253f9bf6e2f19e1e306
MD5 c4c94ad71b79a9c5865fe1d2c7520b05 emacs-21.4-r4.ebuild 4598
RMD160 ca4f3078763d21b3331e7b54ef64b18d4df93f38 emacs-21.4-r4.ebuild 4598
@@ -58,10 +67,14 @@ EBUILD emacs-22.1-r2.ebuild 7674 RMD160 60d836351fcd110e7654d59713179f8ebcfcdd5d
MD5 68f598626b6b7e839d959fff2ffc01e6 emacs-22.1-r2.ebuild 7674
RMD160 60d836351fcd110e7654d59713179f8ebcfcdd5d emacs-22.1-r2.ebuild 7674
SHA256 3735f7e0b8bb2540c7c20e9106ab61b5e6daabc47f8319064a7196935e11b706 emacs-22.1-r2.ebuild 7674
-MISC ChangeLog 30836 RMD160 6b7217ee275fb7708595f4140952136f0b5baf7c SHA1 05d13fb0c897c07c44262d1d01d89fc2f65e35fe SHA256 cf5482ff8244b3446521845aa5cea3327c12d6f629bed674dfbd3004d06dc14a
-MD5 040a2f029c022276eedfa2e881eb011b ChangeLog 30836
-RMD160 6b7217ee275fb7708595f4140952136f0b5baf7c ChangeLog 30836
-SHA256 cf5482ff8244b3446521845aa5cea3327c12d6f629bed674dfbd3004d06dc14a ChangeLog 30836
+EBUILD emacs-22.1-r3.ebuild 7725 RMD160 b3f171597cf36c504c426fa6dc087c2a07ff9f22 SHA1 0ce445de11c5d81f839801ee88b963358fbc3a8e SHA256 d954fd48a65d1c3f3c60a173f5c35dd2a86bddda54095c7d0848848fedf2981e
+MD5 0683391c6590d2a815dbd95e08f690e6 emacs-22.1-r3.ebuild 7725
+RMD160 b3f171597cf36c504c426fa6dc087c2a07ff9f22 emacs-22.1-r3.ebuild 7725
+SHA256 d954fd48a65d1c3f3c60a173f5c35dd2a86bddda54095c7d0848848fedf2981e emacs-22.1-r3.ebuild 7725
+MISC ChangeLog 31144 RMD160 3c02632f2ecfe8ae0f276c163fbe67e58b278392 SHA1 63bb985a2dba674a49489b37611362f3ad0bb244 SHA256 02edff471b2aee4437365f8293d4ff3b5cc410269b2fcab74eb15321bb3e73d1
+MD5 a9c0b98a94f6481d1f72fcee94f82534 ChangeLog 31144
+RMD160 3c02632f2ecfe8ae0f276c163fbe67e58b278392 ChangeLog 31144
+SHA256 02edff471b2aee4437365f8293d4ff3b5cc410269b2fcab74eb15321bb3e73d1 ChangeLog 31144
MISC metadata.xml 158 RMD160 415d172437ca754d24fc5ab186ba8e77934d96e4 SHA1 61f6eff9729cd87a725c2a70c81aca4270a17fc4 SHA256 1393bdef3a74343fdb40a112c7096a1af16f67e7a43413250de28dfe73810eab
MD5 fcd33d07e4ee719b01157946734f4fe8 metadata.xml 158
RMD160 415d172437ca754d24fc5ab186ba8e77934d96e4 metadata.xml 158
@@ -75,6 +88,9 @@ SHA256 92435bb0f281ed6635d5c18928331c73fcfac2ab62762eb8aa88275a0a7fe4db files/di
MD5 e0499fcca7b5a9c46b70ebc1b81a2b6c files/digest-emacs-21.4-r13 726
RMD160 acf9851c610825aaa83316151398c141266073b3 files/digest-emacs-21.4-r13 726
SHA256 a8da1c47d6b3fe196f74db410b6bbfbd96ddb1eb2c2c360fc04bd4eff457ec71 files/digest-emacs-21.4-r13 726
+MD5 50e6f1905f9ccf5d52888c5e338f200a files/digest-emacs-21.4-r14 732
+RMD160 f76a8752d2842c86f4f25ddb3229ba9abb61bebb files/digest-emacs-21.4-r14 732
+SHA256 4c8798c4118a57e1895e18f6fd9ac27fdad6ff1e93aa75147d954b8c8793dd61 files/digest-emacs-21.4-r14 732
MD5 83632aac65f7a273244d059fe1078245 files/digest-emacs-21.4-r4 958
RMD160 5978e60fdbe353bdc3e07f3568fcb0c281b4a46b files/digest-emacs-21.4-r4 958
SHA256 f982f9350410ec80f097275982dc87df4f0d4bec244378e9fd9be5c5c69bf5bc files/digest-emacs-21.4-r4 958
@@ -84,10 +100,13 @@ SHA256 f982f9350410ec80f097275982dc87df4f0d4bec244378e9fd9be5c5c69bf5bc files/di
MD5 8c64069c07b5fdaf75a4679bad002334 files/digest-emacs-22.1-r2 238
RMD160 503cb2e6877f461b2adf972a8bbef02e81eb79ef files/digest-emacs-22.1-r2 238
SHA256 fade317ca7642c607422c8f3a829728969542fe5996e6ec5015fdea0bccf64e4 files/digest-emacs-22.1-r2 238
+MD5 8c64069c07b5fdaf75a4679bad002334 files/digest-emacs-22.1-r3 238
+RMD160 503cb2e6877f461b2adf972a8bbef02e81eb79ef files/digest-emacs-22.1-r3 238
+SHA256 fade317ca7642c607422c8f3a829728969542fe5996e6ec5015fdea0bccf64e4 files/digest-emacs-22.1-r3 238
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
-iD8DBQFHRftkOeoy/oIi7uwRAkSAAJ4m6UXJ/wCYt9D+OOWA3M5fRYO0awCgyZxI
-o6jonrcaVnml/lWbaXGZYc8=
-=WUJp
+iD8DBQFHSa0/Oeoy/oIi7uwRAkIHAKCRhixrYQXLQ4C1ELbInoHnS5RtyACcCArL
+9q2SVszMiSR9jCw9+Rxu7BU=
+=gS/F
-----END PGP SIGNATURE-----
diff --git a/app-editors/emacs/emacs-21.4-r14.ebuild b/app-editors/emacs/emacs-21.4-r14.ebuild
new file mode 100644
index 000000000000..8631b2338623
--- /dev/null
+++ b/app-editors/emacs/emacs-21.4-r14.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-editors/emacs/emacs-21.4-r14.ebuild,v 1.1 2007/11/25 17:13:08 ulm Exp $
+
+WANT_AUTOCONF="2.1"
+
+inherit flag-o-matic eutils toolchain-funcs autotools
+
+DESCRIPTION="An incredibly powerful, extensible text editor"
+HOMEPAGE="http://www.gnu.org/software/emacs/"
+SRC_URI="mirror://gnu/emacs/${P}a.tar.gz
+ mirror://gentoo/${P}-patches-1.tar.bz2
+ leim? ( mirror://gnu/emacs/leim-${PV}.tar.gz )"
+
+LICENSE="GPL-2 FDL-1.1 BSD"
+SLOT="21"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="X Xaw3d leim lesstif motif nls sendmail"
+
+RDEPEND="sys-libs/ncurses
+ X? (
+ x11-libs/libXext
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXmu
+ x11-libs/libXpm
+ x11-misc/emacs-desktop
+ >=media-libs/giflib-4.1.0.1b
+ >=media-libs/jpeg-6b-r2
+ >=media-libs/tiff-3.5.5-r3
+ >=media-libs/libpng-1.2.1
+ Xaw3d? ( x11-libs/Xaw3d )
+ motif? (
+ lesstif? ( x11-libs/lesstif )
+ !lesstif? ( >=x11-libs/openmotif-2.1.30 )
+ )
+ )
+ sendmail? ( virtual/mta )
+ >=app-admin/eselect-emacs-0.7-r1"
+
+DEPEND="${RDEPEND}
+ X? ( x11-misc/xbitmaps )"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ sed -i \
+ -e "s:/usr/lib/crtbegin.o:$(`tc-getCC` -print-file-name=crtbegin.o):g" \
+ -e "s:/usr/lib/crtend.o:$(`tc-getCC` -print-file-name=crtend.o):g" \
+ "${S}"/src/s/freebsd.h || die "unable to sed freebsd.h settings"
+
+ EPATCH_SUFFIX=patch epatch
+
+ # install emacsclient.1 man page (#165466)
+ sed -i -e "s/for page in emacs/& emacsclient/" Makefile.in || die
+
+ # This will need to be updated for X-Compilation
+ sed -i -e "s:/usr/lib/\([^ ]*\).o:/usr/$(get_libdir)/\1.o:g" \
+ "${S}/src/s/gnu-linux.h" || die
+}
+
+src_compile() {
+ export SANDBOX_ON=0
+
+ # -fstack-protector gets internal compiler error at xterm.c (bug 33265)
+ filter-flags -fstack-protector
+
+ # emacs doesn't handle LDFLAGS properly (bug #77430 and bug #65002)
+ unset LDFLAGS
+
+ # ever since GCC 3.2
+ replace-flags -O[3-9] -O2
+
+ # -march is known to cause signal 6 on some environment
+ filter-flags "-march=*"
+
+ eautoconf
+
+ local myconf
+ use nls || myconf="${myconf} --disable-nls"
+ if use X ; then
+ if use motif && use lesstif; then
+ append-ldflags -L/usr/X11R6/lib/lesstif -R/usr/X11R6/lib/lesstif
+ append-cppflags -I/usr/X11R6/include/lesstif
+ fi
+ myconf="${myconf}
+ --with-x
+ --with-xpm
+ --with-jpeg
+ --with-tiff
+ --with-gif
+ --with-png"
+ if use Xaw3d ; then
+ myconf="${myconf} --with-x-toolkit=athena"
+ elif use motif ; then
+ myconf="${myconf} --with-x-toolkit=motif"
+ else
+ # do not build emacs with any toolkit, bug 35300
+ myconf="${myconf} --with-x-toolkit=no"
+ fi
+ else
+ myconf="${myconf} --without-x"
+ fi
+ econf ${myconf} || die "econf failed"
+ emake CC="$(tc-getCC)" || die "emake failed"
+
+ einfo "Recompiling patched lisp files..."
+ (cd lisp; emake recompile) || die "emake recompile failed"
+ (cd src; emake versionclean)
+ emake CC="$(tc-getCC)" || die "die emake failed"
+}
+
+src_install() {
+ einstall || die "einstall failed"
+ for i in "${D}"/usr/bin/* ; do
+ mv ${i} ${i}-emacs-${SLOT} || die "mv ${i} failed"
+ done
+ mv "${D}"/usr/bin/emacs{-emacs,}-${SLOT} || die "mv emacs failed"
+ rm "${D}"/usr/bin/emacs-${PV}-emacs-${SLOT}
+
+ einfo "Fixing info documentation..."
+ mkdir "${T}/emacs-${SLOT}"
+ mv "${D}/usr/share/info/dir" "${T}"
+ for i in "${D}"/usr/share/info/*
+ do
+ mv ${i} "${T}"/emacs-${SLOT}/${i##*/}.info
+ done
+ mv "${T}/emacs-${SLOT}" "${D}/usr/share/info"
+ mv "${T}/dir" "${D}/usr/share/info/emacs-${SLOT}"
+
+ einfo "Fixing manpages..."
+ for m in "${D}"/usr/share/man/man1/* ; do
+ mv ${m} ${m%.1}-emacs-${SLOT}.1 || die "mv ${m} failed"
+ done
+
+ # avoid collision between slots
+ rm "${D}"/usr/share/emacs/site-lisp/subdirs.el
+
+ einfo "Fixing permissions..."
+ find "${D}" -perm 664 |xargs chmod -f 644 2>/dev/null
+ find "${D}" -type d |xargs chmod -f 755 2>/dev/null
+
+ keepdir /usr/share/emacs/${PV}/leim
+ keepdir /usr/share/emacs/site-lisp
+
+ dodoc BUGS ChangeLog README
+}
+
+emacs-infodir-rebuild() {
+ # Depending on the Portage version, the Info dir file is compressed
+ # or removed. It is only rebuilt by Portage if our directory is in
+ # INFOPATH, which is not guaranteed. So we rebuild it ourselves.
+
+ local infodir=/usr/share/info/emacs-${SLOT} f
+ einfo "Regenerating Info directory index in ${infodir} ..."
+ rm -f "${ROOT}"${infodir}/dir{,.*}
+ for f in "${ROOT}"${infodir}/*.info*; do
+ [[ ${f##*/} == *[0-9].info* ]] \
+ || install-info --info-dir="${ROOT}"${infodir} ${f} &>/dev/null
+ done
+ echo
+}
+
+pkg_postinst() {
+ test -f "${ROOT}"/usr/share/emacs/site-lisp/subdirs.el ||
+ cp "${ROOT}"/usr/share/emacs{/${PV},}/site-lisp/subdirs.el
+
+ emacs-infodir-rebuild
+
+ if [[ $(readlink "${ROOT}"/usr/bin/emacs) == emacs.emacs-${SLOT}* ]]; then
+ # transition from pre-eselect revision
+ eselect emacs set emacs-${SLOT}
+ else
+ eselect emacs update --if-unset
+ fi
+
+ if ! use sendmail && ! has_version "virtual/mta"; then
+ elog "You disabled sendmail support for Emacs. If you later install"
+ elog "a MTA then you will need to recompile Emacs. See Bug #11104."
+ fi
+ if use X; then
+ elog "You need to install some fonts for Emacs. Under monolithic"
+ elog "XFree86/Xorg you typically had such fonts installed by default."
+ elog "With modular Xorg, you will have to perform this step yourself."
+ elog "Installing media-fonts/font-adobe-{75,100}dpi on the X server's"
+ elog "machine would satisfy basic Emacs requirements under X11."
+ fi
+}
+
+pkg_postrm() {
+ emacs-infodir-rebuild
+ eselect emacs update --if-unset
+}
diff --git a/app-editors/emacs/emacs-22.1-r3.ebuild b/app-editors/emacs/emacs-22.1-r3.ebuild
new file mode 100644
index 000000000000..80b24535f5a0
--- /dev/null
+++ b/app-editors/emacs/emacs-22.1-r3.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-editors/emacs/emacs-22.1-r3.ebuild,v 1.1 2007/11/25 17:13:08 ulm Exp $
+
+WANT_AUTOCONF="2.5"
+WANT_AUTOMAKE="latest"
+
+inherit autotools elisp-common eutils flag-o-matic
+
+DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
+HOMEPAGE="http://www.gnu.org/software/emacs/"
+SRC_URI="mirror://gnu/emacs/${P}.tar.gz"
+
+LICENSE="GPL-2 FDL-1.2 BSD"
+SLOT="22"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
+IUSE="alsa gif gtk gzip-el hesiod jpeg motif png spell sound source tiff toolkit-scroll-bars X Xaw3d xpm"
+RESTRICT="strip"
+
+X_DEPEND="x11-libs/libXmu x11-libs/libXt x11-misc/xbitmaps"
+
+RDEPEND="!<app-editors/emacs-cvs-22.1
+ sys-libs/ncurses
+ >=app-admin/eselect-emacs-0.7-r1
+ sys-libs/zlib
+ hesiod? ( net-dns/hesiod )
+ spell? ( || ( app-text/ispell app-text/aspell ) )
+ alsa? ( media-libs/alsa-lib )
+ X? (
+ $X_DEPEND
+ x11-misc/emacs-desktop
+ gif? ( media-libs/giflib )
+ jpeg? ( media-libs/jpeg )
+ tiff? ( media-libs/tiff )
+ png? ( media-libs/libpng )
+ xpm? ( x11-libs/libXpm )
+ gtk? ( =x11-libs/gtk+-2* )
+ !gtk? (
+ Xaw3d? ( x11-libs/Xaw3d )
+ !Xaw3d? (
+ motif? ( virtual/motif )
+ )
+ )
+ )"
+
+DEPEND="${RDEPEND}
+ gzip-el? ( app-arch/gzip )"
+
+# 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}"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ sed -i -e "s:/usr/lib/crtbegin.o:$(`tc-getCC` -print-file-name=crtbegin.o):g" \
+ -e "s:/usr/lib/crtend.o:$(`tc-getCC` -print-file-name=crtend.o):g" \
+ "${S}"/src/s/freebsd.h || die "unable to sed freebsd.h settings"
+ 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
+
+ epatch "${FILESDIR}/${P}-Xaw3d-headers.patch"
+ epatch "${FILESDIR}/${P}-freebsd-sparc.patch"
+ epatch "${FILESDIR}/${P}-oldxmenu-qa.patch"
+ epatch "${FILESDIR}/${P}-backup-buffer.patch"
+ epatch "${FILESDIR}/${P}-hack-local-variables.patch"
+ epatch "${FILESDIR}/${P}-format-int.patch"
+ # ALSA is detected and used even if not requested by the USE=alsa flag.
+ # So remove the automagic check
+ use alsa || epatch "${FILESDIR}/${P}-disable_alsa_detection.patch"
+
+ eautoreconf
+}
+
+src_compile() {
+ export SANDBOX_ON=0 # for the unbelievers, see Bug #131505
+ ALLOWED_FLAGS=""
+ strip-flags
+ unset LDFLAGS
+ replace-flags -O[3-9] -O2
+ sed -i -e "s/-lungif/-lgif/g" configure* src/Makefile* || die
+
+ local myconf
+
+ if use alsa && ! use sound; then
+ echo
+ einfo "Although sound USE flag is disabled you chose to have alsa,"
+ einfo "so sound is switched on anyway."
+ echo
+ myconf="${myconf} --with-sound"
+ else
+ myconf="${myconf} $(use_with sound)"
+ fi
+
+ if use X; then
+ myconf="${myconf} --with-x"
+ myconf="${myconf} $(use_with toolkit-scroll-bars)"
+ myconf="${myconf} $(use_with jpeg) $(use_with tiff)"
+ myconf="${myconf} $(use_with gif) $(use_with png)"
+ myconf="${myconf} $(use_with xpm)"
+
+ # GTK+ is the default toolkit if USE=gtk is chosen with other
+ # possibilities. Emacs upstream thinks this should be standard
+ # policy on all distributions
+ if use gtk; then
+ echo
+ einfo "Configuring to build with GTK support, disabling all other toolkits"
+ echo
+ myconf="${myconf} --with-x-toolkit=gtk"
+ elif use Xaw3d; then
+ einfo "Configuring to build with Xaw3d(athena) support"
+ myconf="${myconf} --with-x-toolkit=athena"
+ myconf="${myconf} --without-gtk"
+ elif use motif; then
+ einfo "Configuring to build with motif toolkit support"
+ myconf="${myconf} --with-x-toolkit=motif"
+ myconf="${myconf} --without-gtk"
+ else
+ einfo "Configuring to build with no toolkit"
+ myconf="${myconf} --with-x-toolkit=no"
+ myconf="${myconf} --without-gtk"
+ fi
+ else
+ myconf="${myconf} --without-x"
+ fi
+
+ myconf="${myconf} $(use_with hesiod)"
+
+ econf \
+ --program-suffix=-emacs-${SLOT} \
+ --infodir=/usr/share/info/emacs-${SLOT} \
+ --without-carbon \
+ ${myconf} || die "econf emacs failed"
+
+ emake CC="$(tc-getCC)" || die "emake failed"
+
+ einfo "Recompiling patched lisp files..."
+ (cd lisp; emake recompile) || die "emake recompile failed"
+ (cd src; emake versionclean)
+ emake CC="$(tc-getCC)" || die "emake failed"
+}
+
+src_install () {
+ emake install DESTDIR="${D}" || die "make install failed"
+
+ rm "${D}"/usr/bin/emacs-${FULL_VERSION}-emacs-${SLOT} \
+ || die "removing duplicate emacs executable failed"
+ mv "${D}"/usr/bin/emacs-emacs-${SLOT} "${D}"/usr/bin/emacs-${SLOT} \
+ || die "moving Emacs executable failed"
+
+ # move info documentation to the correct place
+ einfo "Fixing info documentation ..."
+ for i in "${D}"/usr/share/info/emacs-${SLOT}/*; do
+ mv ${i} ${i}.info || die "mv info failed"
+ done
+
+ # move man pages to the correct place
+ einfo "Fixing manpages ..."
+ for m in "${D}"/usr/share/man/man1/* ; do
+ mv ${m} ${m%.1}-emacs-${SLOT}.1 || die "mv man failed"
+ done
+
+ # avoid collision between slots, see bug #169033 e.g.
+ rm "${D}"/usr/share/emacs/site-lisp/subdirs.el
+ rm "${D}"/var/lib/games/emacs/{snake,tetris}-scores
+ keepdir /var/lib/games/emacs/
+
+ if use source; then
+ insinto /usr/share/emacs/${FULL_VERSION}/src
+ # This is not meant to install all the source -- just the
+ # C source you might find via find-function
+ doins src/*.[ch]
+ sed 's/^X//' >00${PN}-${SLOT}-gentoo.el <<-EOF
+
+ ;;; ${PN}-${SLOT} site-lisp configuration
+
+ (if (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
+ X (setq find-function-C-source-directory
+ X "/usr/share/emacs/${FULL_VERSION}/src"))
+ EOF
+ elisp-site-file-install 00${PN}-${SLOT}-gentoo.el
+ fi
+
+ dodoc AUTHORS BUGS CONTRIBUTE README || die "dodoc failed"
+}
+
+emacs-infodir-rebuild() {
+ # Depending on the Portage version, the Info dir file is compressed
+ # or removed. It is only rebuilt by Portage if our directory is in
+ # INFOPATH, which is not guaranteed. So we rebuild it ourselves.
+
+ local infodir=/usr/share/info/emacs-${SLOT} f
+ einfo "Regenerating Info directory index in ${infodir} ..."
+ rm -f "${ROOT}"${infodir}/dir{,.*}
+ for f in "${ROOT}"${infodir}/*.info*; do
+ [[ ${f##*/} == *[0-9].info* ]] \
+ || install-info --info-dir="${ROOT}"${infodir} ${f} &>/dev/null
+ done
+ echo
+}
+
+pkg_postinst() {
+ test -f "${ROOT}"/usr/share/emacs/site-lisp/subdirs.el ||
+ cp "${ROOT}"/usr/share/emacs{/${FULL_VERSION},}/site-lisp/subdirs.el
+
+ local f
+ for f in "${ROOT}"/var/lib/games/emacs/{snake,tetris}-scores; do
+ test -e ${f} || touch ${f}
+ done
+
+ elisp-site-regen
+ emacs-infodir-rebuild
+
+ if [[ $(readlink "${ROOT}"/usr/bin/emacs) == emacs.emacs-${SLOT}* ]]; then
+ # transition from pre-eselect revision
+ eselect emacs set emacs-${SLOT}
+ else
+ eselect emacs update --if-unset
+ fi
+
+ if use X; then
+ elog "You need to install some fonts for Emacs. Under monolithic"
+ elog "XFree86/Xorg you typically had such fonts installed by default."
+ elog "With modular Xorg, you will have to perform this step yourself."
+ elog "Installing media-fonts/font-adobe-{75,100}dpi on the X server's"
+ elog "machine would satisfy basic Emacs requirements under X11."
+ fi
+
+ echo
+ elog "You can set the version to be started by /usr/bin/emacs through"
+ elog "the Emacs eselect module, which also redirects man and info pages."
+ elog "Therefore, several Emacs versions can be installed at the same time."
+ elog "\"man emacs.eselect\" for details."
+}
+
+pkg_postrm() {
+ elisp-site-regen
+ emacs-infodir-rebuild
+ eselect emacs update --if-unset
+}
diff --git a/app-editors/emacs/files/digest-emacs-21.4-r14 b/app-editors/emacs/files/digest-emacs-21.4-r14
new file mode 100644
index 000000000000..f6cb42383cb8
--- /dev/null
+++ b/app-editors/emacs/files/digest-emacs-21.4-r14
@@ -0,0 +1,9 @@
+MD5 59359e85b1b43f60a7c59cf01496dd2a emacs-21.4-patches-1.tar.bz2 9598
+RMD160 a838e9d49fbc23e2c7f000a96fca06f0e347ab47 emacs-21.4-patches-1.tar.bz2 9598
+SHA256 75c8a3d9f420e9ab3f426b39b0f73299a22d399415cbd4190dfda63b6e65f3a1 emacs-21.4-patches-1.tar.bz2 9598
+MD5 8f9d97cbd126121bd5d97e5e31168a87 emacs-21.4a.tar.gz 20403483
+RMD160 c312e739935b56d08783bbfe97992297a363cb8a emacs-21.4a.tar.gz 20403483
+SHA256 1d50ddae117c48d689a3d772e390569edccfdc22168be0112d2093bd2d7c3216 emacs-21.4a.tar.gz 20403483
+MD5 32938cb5a7505d995a1e835639d19707 leim-21.4.tar.gz 3291433
+RMD160 89e1108bfe06425a0d6b4d941f9c297551bafcca leim-21.4.tar.gz 3291433
+SHA256 db24946985dd644bfed18815d6e991dad27f8ab1fd5823dd6dc4eb8dcd04333b leim-21.4.tar.gz 3291433
diff --git a/app-editors/emacs/files/digest-emacs-22.1-r3 b/app-editors/emacs/files/digest-emacs-22.1-r3
new file mode 100644
index 000000000000..44943fdbcd94
--- /dev/null
+++ b/app-editors/emacs/files/digest-emacs-22.1-r3
@@ -0,0 +1,3 @@
+MD5 6949df37caec2d7a2e0eee3f1b422726 emacs-22.1.tar.gz 38172226
+RMD160 da5360871db8b1d473ff7f0b0937ee6c278c0b19 emacs-22.1.tar.gz 38172226
+SHA256 1ec43bef7127e572f92d7c3a846951cf8e263e27445c62c867035f94681c3ed0 emacs-22.1.tar.gz 38172226
diff --git a/app-editors/emacs/files/emacs-22.1-format-int.patch b/app-editors/emacs/files/emacs-22.1-format-int.patch
new file mode 100644
index 000000000000..851bcb91f4d9
--- /dev/null
+++ b/app-editors/emacs/files/emacs-22.1-format-int.patch
@@ -0,0 +1,79 @@
+2007-11-15 Andreas Schwab <schwab@suse.de>
+
+ * editfns.c (Fformat): Correctly format EMACS_INT values. Also
+ take precision into account when formatting an integer.
+
+--- src/editfns.c 8 Aug 2007 07:49:19 -0000 1.439.2.3
++++ src/editfns.c 16 Nov 2007 00:18:55 -0000 1.439.2.8
+@@ -3543,8 +3543,10 @@ usage: (format STRING &rest OBJECTS) */
+ precision[n+1] = 10 * precision[n+1] + *format - '0';
+ }
+
+- if (format - this_format_start + 1 > longest_format)
+- longest_format = format - this_format_start + 1;
++ /* Extra +1 for 'l' that we may need to insert into the
++ format. */
++ if (format - this_format_start + 2 > longest_format)
++ longest_format = format - this_format_start + 2;
+
+ if (format == end)
+ error ("Format string ends in middle of format specifier");
+@@ -3605,7 +3607,7 @@ usage: (format STRING &rest OBJECTS) */
+ && *format != 'i' && *format != 'X' && *format != 'c')
+ error ("Invalid format operation %%%c", *format);
+
+- thissize = 30;
++ thissize = 30 + (precision[n] > 0 ? precision[n] : 0);
+ if (*format == 'c')
+ {
+ if (! SINGLE_BYTE_CHAR_P (XINT (args[n]))
+@@ -3803,23 +3805,35 @@ usage: (format STRING &rest OBJECTS) */
+ format - this_format_start);
+ this_format[format - this_format_start] = 0;
+
+- if (INTEGERP (args[n]))
++ if (format[-1] == 'e' || format[-1] == 'f' || format[-1] == 'g')
++ sprintf (p, this_format, XFLOAT_DATA (args[n]));
++ else
+ {
+- if (format[-1] == 'd')
+- sprintf (p, this_format, XINT (args[n]));
+- /* Don't sign-extend for octal or hex printing. */
++ if (sizeof (EMACS_INT) > sizeof (int))
++ {
++ /* Insert 'l' before format spec. */
++ this_format[format - this_format_start]
++ = this_format[format - this_format_start - 1];
++ this_format[format - this_format_start - 1] = 'l';
++ this_format[format - this_format_start + 1] = 0;
++ }
++
++ if (INTEGERP (args[n]))
++ {
++ if (format[-1] == 'd')
++ sprintf (p, this_format, XINT (args[n]));
++ /* Don't sign-extend for octal or hex printing. */
++ else
++ sprintf (p, this_format, XUINT (args[n]));
++ }
++ else if (format[-1] == 'd')
++ /* Maybe we should use "%1.0f" instead so it also works
++ for values larger than MAXINT. */
++ sprintf (p, this_format, (EMACS_INT) XFLOAT_DATA (args[n]));
+ else
+- sprintf (p, this_format, XUINT (args[n]));
++ /* Don't sign-extend for octal or hex printing. */
++ sprintf (p, this_format, (EMACS_UINT) XFLOAT_DATA (args[n]));
+ }
+- else if (format[-1] == 'e' || format[-1] == 'f' || format[-1] == 'g')
+- sprintf (p, this_format, XFLOAT_DATA (args[n]));
+- else if (format[-1] == 'd')
+- /* Maybe we should use "%1.0f" instead so it also works
+- for values larger than MAXINT. */
+- sprintf (p, this_format, (EMACS_INT) XFLOAT_DATA (args[n]));
+- else
+- /* Don't sign-extend for octal or hex printing. */
+- sprintf (p, this_format, (EMACS_UINT) XFLOAT_DATA (args[n]));
+
+ if (p > buf
+ && multibyte