Changeset - 37ba9d32b143
[Not reviewed]
default
2 3 0
Nathan Brink (binki) - 15 years ago 2010-02-25 10:25:42
ohnobinki@ohnopublishing.net
Workaround to stop emacs's buildsystem from trying to access /usr/lib/crt0.o, et cetera for bug 306831. Remove old emacs versions.
(Portage version: 2.2_rc63-r1/hg/Linux x86_64, RepoMan options: --force)
(Unsigned Manifest commit)
5 files changed with 14 insertions and 308 deletions:
0 comments (0 inline, 0 general)
app-editors/emacs/Manifest
Show inline comments
 
-----BEGIN PGP SIGNED MESSAGE-----
 
Hash: SHA1
 

	
 
DIST emacs-18.59-linux22x-elf-glibc21.diff.gz 15671 RMD160 4fab87eead1a66d767d2334d31507695dcf7b4a8 SHA1 075f1c9cf86e9a10fb686ebd04a2f95d6e4c3972 SHA256 fb810d893938883d50a3a8d7c43fbeb1604d5454f760b8f1f700326c8ee659dd
 
DIST emacs-18.59-patches-4.tar.bz2 17690 RMD160 72d71f47616b51d3a82afd375585f614c0a188fb SHA1 c53d978d09e1ac326d0cdc094ff2b80ba102be48 SHA256 2172a28e5f7550e23f9aaa93281b1243e0c314dfe118e83864e09ec02aaef712
 
DIST emacs-18.59.tar.gz 2962652 RMD160 4976d0f0f34b6d54db6774d24a528f74a3bb20dc SHA1 15b25bf130e3eeb91f3eea8c01a3dec9aabf23cc SHA256 1e27e33f91984a91e9b4c1f21433f931aba03670960ecc147bb6d7b0de0f051e
 
DIST emacs-21.4-patches-9.tar.bz2 12452 RMD160 6060f5a2a342e1187c32a5a591b1523b02592d55 SHA1 221b6725b729f1c31816489a95ae94c9819f62df SHA256 b2acb9576b043e555714230f8e609b03c70b0a6e3a585db9b39dbf499e71d355
 
DIST emacs-21.4a.tar.gz 20403483 RMD160 c312e739935b56d08783bbfe97992297a363cb8a SHA1 cdb33731180fe4a912838af805dd35e3f55394d4 SHA256 1d50ddae117c48d689a3d772e390569edccfdc22168be0112d2093bd2d7c3216
 
DIST emacs-22.3-patches-3.tar.bz2 4257 RMD160 54be56231a1089de414419adbb25fec570b30bc8 SHA1 5d1b725d20b4cd6af51dc5475d5b254c771006bd SHA256 a437aab14692384f9d4cddf434971051ade4f87047dcfa56ec2563127d946ba9
 
DIST emacs-22.3.tar.gz 39587396 RMD160 a7eed5099d0cab25f34152f1b18b5c1b4e2e0746 SHA1 5e9b3e0205099a83be7198fd43ba1c9442a3feb0 SHA256 7bd9b719db8ee20c75ee0d256737f7fd2c0e2ea30a285a3afbfc32c856420d16
 
DIST emacs-23.1-patches-5.tar.bz2 3414 RMD160 2ec70b92fcb77d357edcd9e2da54fa33cfb527ac SHA1 a1d851fcd490118f6e2f16a67b94dd89de5cc2f1 SHA256 f81df36a8e69010bd81ddfda36393d9ca0da205a9717ffd8721dff47320b14b1
 
DIST emacs-23.1.tar.bz2 34382732 RMD160 e9b30bce2c174dde4dcfefb6068ae8648d59b251 SHA1 5f2d5dfcc17e7627ea752f675c605fe37c9c145c SHA256 2b35f4457c7a0ee9f9185579cc2890b43f129a112cf22500233489db7a24cb1c
 
DIST leim-21.4.tar.gz 3291433 RMD160 89e1108bfe06425a0d6b4d941f9c297551bafcca SHA1 dd63f9aca1a58d40d9d426dd410fb627230974f7 SHA256 db24946985dd644bfed18815d6e991dad27f8ab1fd5823dd6dc4eb8dcd04333b
 
EBUILD emacs-18.59-r6.ebuild 2735 RMD160 1ed61abdb26747a06d675c0206fc713f9ad2a3e6 SHA1 f10bf46ae1a76d3e540505a3573e6580dc1e4609 SHA256 dd4f132c0fe076172fc5426a937697d966c36ffd9266f88ac353c81babd88e55
 
EBUILD emacs-21.4-r19.ebuild 5249 RMD160 37948b5917237c6ca7b148e6d36c5f10c9c6b205 SHA1 2f04b39e2e332b0b701beaeddfb941972b2e4e88 SHA256 8527a478c88151caf7b95fd799034c3f9d8f163bf55998c6d5a57ef7b14be59d
 
EBUILD emacs-22.3-r3.ebuild 7833 RMD160 c9f82bfcff4c7408ee5f579f43ab9a3f7d56bdec SHA1 0f7e8ed4eae680ef56306ce6eb372113a3d8cb27 SHA256 c193c8947ba893368dbf06c9781d8d466b434854c42f37e0028c3577734c2bcb
 
EBUILD emacs-23.1-r2.ebuild 9712 RMD160 be850522adf821e720b9539012b2fe0987d11170 SHA1 93e835258d58542e9f9e3610a2c1cab623d7477a SHA256 7d5a09f53e1f3dfee51885e9feb32235421df5bac033528b24f1339a3faa44a3
 
EBUILD emacs-22.3-r3.ebuild 8129 RMD160 15bfec54abdb6d36cbca167c590e0a73fa9035e4 SHA1 f0b06ab576477b6f8c215cc1f4130303ec291804 SHA256 610eb07869acf80da5e9fb569295eb2608c72c57d34715f582405a12ffba3f54
 
EBUILD emacs-23.1-r2.ebuild 10008 RMD160 2f7177f285dc89220be8e4ed44832af991d45329 SHA1 21ddce2b867682506bdfe49d2815c2f90475f262 SHA256 6022c2f0daeae0f8a7ac90c34dab9f4e9257b6b77ac05f4f4824abc128d601d0
 
MISC ChangeLog 52069 RMD160 94aafac9c7207d6300dcb6218cb8d906ddb0729b SHA1 d41f35d711437d2746b24a40c4d960464fc0ea5c SHA256 6495fc6dc6f57290981b39667fb68032ec932c38fbe1e15d4151215747768681
 
MISC metadata.xml 1652 RMD160 d5b841ffd970ae6338f01b56bc354004a78a13e8 SHA1 3f19193ed03a37bc67644966c839ea738b21c976 SHA256 fa53ed0bd63c3dd37877f11aa0ac7e3811da9db6c90437176ab60d76329f0cd7
 
-----BEGIN PGP SIGNATURE-----
 
Version: GnuPG v2.0.14 (GNU/Linux)
 

	
 
iEYEARECAAYFAkuBa28ACgkQOeoy/oIi7uzn+QCgx/Tu4O0WneAqrA5n1N8Miev1
 
U8MAn1RdCJEpVGMB7VckbaZXcFu6Qetn
 
=I/6T
 
-----END PGP SIGNATURE-----
app-editors/emacs/emacs-18.59-r6.ebuild
Show inline comments
 
deleted file
app-editors/emacs/emacs-21.4-r19.ebuild
Show inline comments
 
deleted file
app-editors/emacs/emacs-22.3-r3.ebuild
Show inline comments
 
# Copyright 1999-2010 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/app-editors/emacs/emacs-22.3-r3.ebuild,v 1.16 2010/01/25 18:43:47 armin76 Exp $
 

	
 
EAPI=2
 

	
 
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
 
	mirror://gentoo/${P}-patches-3.tar.bz2"
 

	
 
LICENSE="GPL-3 FDL-1.2 BSD as-is MIT"
 
SLOT="22"
 
KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd"
 
IUSE="alsa gif gtk gzip-el hesiod jpeg kerberos motif png sound source tiff toolkit-scroll-bars X Xaw3d +xpm"
 
RESTRICT="strip"
 

	
 
RDEPEND="sys-libs/ncurses
 
	>=app-admin/eselect-emacs-1.2
 
	net-libs/liblockfile
 
	hesiod? ( net-dns/hesiod )
 
	kerberos? ( virtual/krb5 )
 
	alsa? ( media-libs/alsa-lib )
 
	X? (
 
		x11-libs/libXmu
 
		x11-libs/libXt
 
		x11-misc/xbitmaps
 
		gif? ( media-libs/giflib )
 
		jpeg? ( media-libs/jpeg:0 )
 
		tiff? ( media-libs/tiff )
 
		png? ( media-libs/libpng )
 
		xpm? ( x11-libs/libXpm )
 
		gtk? ( x11-libs/gtk+:2 )
 
		!gtk? (
 
			Xaw3d? ( x11-libs/Xaw3d )
 
			!Xaw3d? ( motif? ( x11-libs/openmotif ) )
 
		)
 
	)"
 

	
 
DEPEND="${RDEPEND}
 
	alsa? ( dev-util/pkgconfig )
 
	X? ( gtk? ( dev-util/pkgconfig ) )
 
	gzip-el? ( app-arch/gzip )"
 

	
 
RDEPEND="${RDEPEND}
 
	!<app-editors/emacs-vcs-22.1
 
	>=app-emacs/emacs-common-gentoo-1[X?]"
 

	
 
# 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}"
 
SITEFILE="20${PN}-${SLOT}-gentoo.el"
 

	
 
src_prepare() {
 
	EPATCH_SUFFIX=patch epatch
 

	
 
	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"
 
	sed -i -e "s:/usr/lib/crtbegin.o:$(`tc-getCC` ${CFLAGS} -print-file-name=crtbegin.o):g" \
 
		-e "s:/usr/lib/crtend.o:$(`tc-getCC` ${CFLAGS} -print-file-name=crtend.o):g" \
 
		-e "s:/usr/lib/crtn.o:$(`tc-getCC` ${CFLAGS} -print-file-name=crtn.o):g" \
 
		-e "s:/usr/lib/crti.o:$(`tc-getCC` ${CFLAGS} -print-file-name=crti.o):g" \
 
		-e "s:/usr/lib/crt1.o:$(`tc-getCC` ${CFLAGS} -print-file-name=crt1.o):g" \
 
		src/m/amdx86-64.h src/s/gnu-linux.h src/s/freebsd.h || die "unable to fix amdx86-64.h and freebsd.h settings"
 

	
 
	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
 

	
 
	eautoreconf
 
}
 

	
 
src_configure() {
 
	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
 
			einfo "Configuring to build with GIMP Toolkit (GTK+)"
 
			myconf="${myconf} --with-x-toolkit=gtk"
 
		elif use Xaw3d; then
 
			einfo "Configuring to build with Xaw3d (Athena/Lucid) toolkit"
 
			myconf="${myconf} --with-x-toolkit=athena"
 
			myconf="${myconf} --without-gtk"
 
		elif use motif; then
 
			einfo "Configuring to build with Motif toolkit"
 
			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
 

	
 
		local f tk=
 
		for f in gtk Xaw3d motif; do
 
			use ${f} || continue
 
			[ "${tk}" ] \
 
				&& ewarn "USE flag \"${f}\" ignored (superseded by \"${tk}\")"
 
			tk="${tk}${tk:+ }${f}"
 
		done
 
	else
 
		myconf="${myconf} --without-x"
 
	fi
 

	
 
	myconf="${myconf} $(use_with hesiod)"
 
	myconf="${myconf} $(use_with kerberos) $(use_with kerberos kerberos5)"
 

	
 
	econf \
 
		--program-suffix=-emacs-${SLOT} \
 
		--infodir=/usr/share/info/emacs-${SLOT} \
 
		--without-carbon \
 
		${myconf} || die "econf emacs failed"
 
}
 

	
 
src_compile() {
 
	export SANDBOX_ON=0			# for the unbelievers, see Bug #131505
 
	emake CC="$(tc-getCC)" || die "emake failed"
 
}
 

	
 
src_install () {
 
	local i m
 

	
 
	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
 
	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
 
	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
 

	
 
	local c=";;"
 
	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]
 
		c=""
 
	fi
 

	
 
	sed 's/^X//' >"${SITEFILE}" <<-EOF
 
	X
 
	;;; ${PN}-${SLOT} site-lisp configuration
 
	X
 
	(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
 
	X  ${c}(setq find-function-C-source-directory
 
	X  ${c}      "/usr/share/emacs/${FULL_VERSION}/src")
 
	X  (let ((path (getenv "INFOPATH"))
 
	X	(dir "/usr/share/info/emacs-${SLOT}")
 
	X	(re "\\\\\`/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 "${SITEFILE}" || die
 

	
 
	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
 
	[ -d "${ROOT}"${infodir} ] || return	# may occur with FEATURES=noinfo
 
	einfo "Regenerating Info directory index in ${infodir} ..."
 
	rm -f "${ROOT}"${infodir}/dir{,.*}
 
	for f in "${ROOT}"${infodir}/*.info*; do
 
		[[ ${f##*/} != *[0-9].info* && -e ${f} ]] \
 
			&& install-info --info-dir="${ROOT}"${infodir} "${f}" &>/dev/null
 
	done
 
	rmdir "${ROOT}"${infodir} 2>/dev/null	# remove dir if it is empty
 
}
 

	
 
pkg_postinst() {
 
	local f
 
	for f in "${ROOT}"/var/lib/games/emacs/{snake,tetris}-scores; do
 
		[ -e "${f}" ] || touch "${f}"
 
	done
 

	
 
	elisp-site-regen
 
	emacs-infodir-rebuild
 
	eselect emacs update ifunset
 

	
 
	if use X; then
 
		echo
 
		elog "You need to install some fonts for Emacs."
 
		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 ifunset
 
}
app-editors/emacs/emacs-23.1-r2.ebuild
Show inline comments
 
# Copyright 1999-2010 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/app-editors/emacs/emacs-23.1-r2.ebuild,v 1.18 2010/02/21 17:20:23 ulm Exp $
 

	
 
EAPI=2
 

	
 
inherit autotools elisp-common eutils flag-o-matic
 

	
 
if [ "${PV##*.}" = "9999" ]; then
 
	ECVS_AUTH="pserver"
 
	ECVS_SERVER="cvs.savannah.gnu.org:/sources/emacs"
 
	ECVS_MODULE="emacs"
 
	ECVS_BRANCH="HEAD"
 
	ECVS_LOCALNAME="emacs"
 
	inherit cvs
 
	SRC_URI=""
 
	S="${WORKDIR}/${ECVS_LOCALNAME}"
 
else
 
	SRC_URI="mirror://gnu/emacs/${P}.tar.bz2
 
		mirror://gentoo/${P}-patches-5.tar.bz2"
 
	# 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}"
 
fi
 

	
 
DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
 
HOMEPAGE="http://www.gnu.org/software/emacs/"
 

	
 
LICENSE="GPL-3 FDL-1.3 BSD as-is MIT W3C unicode"
 
SLOT="23"
 
KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd"
 
IUSE="alsa dbus gif gpm gtk gzip-el hesiod jpeg kerberos m17n-lib motif png sound source svg tiff toolkit-scroll-bars X Xaw3d xft +xpm"
 
RESTRICT="strip"
 

	
 
RDEPEND="!=app-editors/emacs-vcs-23.0*
 
	!=app-editors/emacs-vcs-23.1.9999
 
	sys-libs/ncurses
 
	>=app-admin/eselect-emacs-1.2
 
	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
 
		gif? ( media-libs/giflib )
 
		jpeg? ( media-libs/jpeg:0 )
 
		png? ( media-libs/libpng )
 
		svg? ( >=gnome-base/librsvg-2.0 )
 
		tiff? ( media-libs/tiff )
 
		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? (
 
			Xaw3d? ( x11-libs/Xaw3d )
 
			!Xaw3d? ( motif? ( x11-libs/openmotif ) )
 
		)
 
	)"
 

	
 
DEPEND="${RDEPEND}
 
	dev-util/pkgconfig
 
	gzip-el? ( app-arch/gzip )"
 

	
 
RDEPEND="${RDEPEND}
 
	>=app-emacs/emacs-common-gentoo-1[X?]"
 

	
 
EMACS_SUFFIX="emacs-${SLOT}"
 
SITEFILE="20${PN}-${SLOT}-gentoo.el"
 

	
 
src_prepare() {
 
	if [ "${PV##*.}" = "9999" ]; then
 
		FULL_VERSION=$(grep 'defconst[	 ]*emacs-version' lisp/version.el \
 
			| sed -e 's/^[^"]*"\([^"]*\)".*$/\1/')
 
		[ "${FULL_VERSION}" ] || die "Cannot determine current Emacs version"
 
		echo
 
		einfo "Emacs CVS branch: ${ECVS_BRANCH}"
 
		einfo "Emacs version number: ${FULL_VERSION}"
 
		[ "${FULL_VERSION%.*}" = ${PV%.*} ] \
 
			|| die "Upstream version number changed to ${FULL_VERSION}"
 
		echo
 
	else
 
		EPATCH_SUFFIX=patch epatch
 
	fi
 

	
 
	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"
 
	sed -i -e "s:/usr/lib/crtbegin.o:$(`tc-getCC` ${CFLAGS} -print-file-name=crtbegin.o):g" \
 
		-e "s:/usr/lib/crtend.o:$(`tc-getCC` ${CFLAGS} -print-file-name=crtend.o):g" \
 
		-e "s:/usr/lib/crtn.o:$(`tc-getCC` ${CFLAGS} -print-file-name=crtn.o):g" \
 
		-e "s:/usr/lib/crti.o:$(`tc-getCC` ${CFLAGS} -print-file-name=crti.o):g" \
 
		-e "s:/usr/lib/crt1.o:$(`tc-getCC` ${CFLAGS} -print-file-name=crt1.o):g" \
 
		src/m/amdx86-64.h src/s/gnu-linux.h src/s/freebsd.h || die "unable to fix amdx86-64.h and freebsd.h settings"
 

	
 
	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
 

	
 
	eautoreconf
 
}
 

	
 
src_configure() {
 
	ALLOWED_FLAGS=""
 
	strip-flags
 
	#unset LDFLAGS
 
	if use sh; then
 
		replace-flags -O[1-9] -O0		#262359
 
	else
 
		replace-flags -O[3-9] -O2
 
	fi
 

	
 
	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 gif) $(use_with jpeg)"
 
		myconf="${myconf} $(use_with png) $(use_with svg rsvg)"
 
		myconf="${myconf} $(use_with tiff) $(use_with xpm)"
 
		myconf="${myconf} $(use_with xft)"
 

	
 
		if use xft; then
 
			myconf="${myconf} $(use_with m17n-lib libotf)"
 
			myconf="${myconf} $(use_with m17n-lib m17n-flt)"
 
		else
 
			myconf="${myconf} --without-libotf --without-m17n-flt"
 
			use m17n-lib && ewarn \
 
				"USE flag \"m17n-lib\" has no effect because 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
 
		if use gtk; then
 
			einfo "Configuring to build with GIMP Toolkit (GTK+)"
 
			myconf="${myconf} --with-x-toolkit=gtk"
 
		elif use Xaw3d; then
 
			einfo "Configuring to build with Xaw3d (Athena/Lucid) toolkit"
 
			myconf="${myconf} --with-x-toolkit=athena"
 
		elif use motif; then
 
			einfo "Configuring to build with Motif toolkit"
 
			myconf="${myconf} --with-x-toolkit=motif"
 
		else
 
			einfo "Configuring to build with no toolkit"
 
			myconf="${myconf} --with-x-toolkit=no"
 
		fi
 

	
 
		local f tk=
 
		for f in gtk Xaw3d motif; do
 
			use ${f} || continue
 
			[ "${tk}" ] \
 
				&& ewarn "USE flag \"${f}\" ignored (superseded by \"${tk}\")"
 
			tk="${tk}${tk:+ }${f}"
 
		done
 
	else
 
		myconf="${myconf} --without-x"
 
	fi
 

	
 
	myconf="${myconf} $(use_with hesiod)"
 
	myconf="${myconf} $(use_with kerberos) $(use_with kerberos kerberos5)"
 
	myconf="${myconf} $(use_with gpm) $(use_with dbus)"
 

	
 
	econf \
 
		--program-suffix=-${EMACS_SUFFIX} \
 
		--infodir=/usr/share/info/${EMACS_SUFFIX} \
 
		${myconf} || die "econf emacs failed"
 
}
 

	
 
src_compile() {
 
	export SANDBOX_ON=0			# for the unbelievers, see Bug #131505
 
	if [ "${PV##*.}" = "9999" ]; then
 
		emake CC="$(tc-getCC)" bootstrap || die "make bootstrap failed"
 
		# cleanup, otherwise emacs will be dumped again in src_install
 
		(cd src; emake versionclean)
 
	fi
 
	emake CC="$(tc-getCC)" || die "emake failed"
 
}
 

	
 
src_install () {
 
	local i m
 

	
 
	emake install DESTDIR="${D}" || die "make install failed"
 

	
 
	rm "${D}"/usr/bin/emacs-${FULL_VERSION}-${EMACS_SUFFIX} \
 
		|| die "removing duplicate emacs executable failed"
 
	mv "${D}"/usr/bin/emacs-${EMACS_SUFFIX} "${D}"/usr/bin/${EMACS_SUFFIX} \
 
		|| die "moving Emacs executable failed"
 

	
 
	# move info documentation to the correct place
 
	for i in "${D}"/usr/share/info/${EMACS_SUFFIX}/*; do
 
		mv "${i}" "${i}.info" || die "mv info failed"
 
	done
 

	
 
	# move man pages to the correct place
 
	for m in "${D}"/usr/share/man/man1/* ; do
 
		mv "${m}" "${m%.1}-${EMACS_SUFFIX}.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 -rf "${D}"/usr/share/{applications,icons}
 
	rm "${D}"/var/lib/games/emacs/{snake,tetris}-scores
 
	keepdir /var/lib/games/emacs
 

	
 
	local c=";;"
 
	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]
 
		c=""
 
	fi
 

	
 
	sed 's/^X//' >"${SITEFILE}" <<-EOF
 
	X
 
	;;; ${PN}-${SLOT} site-lisp configuration
 
	X
 
	(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
 
	X  ${c}(setq find-function-C-source-directory
 
	X  ${c}      "/usr/share/emacs/${FULL_VERSION}/src")
 
	X  (let ((path (getenv "INFOPATH"))
 
	X	(dir "/usr/share/info/${EMACS_SUFFIX}")
 
	X	(re "\\\\\`/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 "${SITEFILE}" || die
 

	
 
	dodoc README BUGS || 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_SUFFIX} f
 
	[ -d "${ROOT}"${infodir} ] || return	# may occur with FEATURES=noinfo
 
	einfo "Regenerating Info directory index in ${infodir} ..."
 
	rm -f "${ROOT}"${infodir}/dir{,.*}
 
	for f in "${ROOT}"${infodir}/*.info*; do
 
		[[ ${f##*/} != *[0-9].info* && -e ${f} ]] \
 
			&& install-info --info-dir="${ROOT}"${infodir} "${f}" &>/dev/null
 
	done
 
	rmdir "${ROOT}"${infodir} 2>/dev/null	# remove dir if it is empty
 
}
 

	
 
pkg_postinst() {
 
	local f
 
	for f in "${ROOT}"/var/lib/games/emacs/{snake,tetris}-scores; do
 
		[ -e "${f}" ] || touch "${f}"
 
	done
 

	
 
	elisp-site-regen
 
	emacs-infodir-rebuild
 
	eselect emacs update ifunset
 

	
 
	if use X; then
 
		echo
 
		elog "You need to install some fonts for Emacs."
 
		elog "Installing media-fonts/font-adobe-{75,100}dpi on the X server's"
 
		elog "machine would satisfy basic Emacs requirements under X11."
 
		elog "See also http://www.gentoo.org/proj/en/lisp/emacs/xft.xml"
 
		elog "for how to enable anti-aliased fonts."
 
	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."
 
	echo
 
	elog "If you upgrade from a previous major version of Emacs, then it is"
 
	elog "strongly recommended that you use app-admin/emacs-updater to rebuild"
 
	elog "all byte-compiled elisp files of the installed Emacs packages."
 
}
 

	
 
pkg_postrm() {
 
	elisp-site-regen
 
	emacs-infodir-rebuild
 
	eselect emacs update ifunset
 
}
0 comments (0 inline, 0 general)