| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Header: /var/cvsroot/gentoo-x86/app-emacs/emacs-common-gentoo/emacs-common-gentoo-1.5.ebuild,v 1.10 2015/04/17 10:40:33 zlogene Exp $ |
| |
| EAPI=5 |
| |
| inherit elisp-common eutils fdo-mime gnome2-utils readme.gentoo user |
| |
| DESCRIPTION="Common files needed by all GNU Emacs versions" |
| HOMEPAGE="http://wiki.gentoo.org/wiki/Project:Emacs" |
| SRC_URI="http://dev.gentoo.org/~ulm/emacs/${P}.tar.xz" |
| |
| LICENSE="GPL-3+" |
| SLOT="0" |
| KEYWORDS="*" |
| IUSE="games X" |
| |
| PDEPEND="virtual/emacs" |
| |
| pkg_setup() { |
| use games && enewgroup gamestat 36 |
| } |
| |
| src_install() { |
| insinto "${SITELISP}" |
| doins subdirs.el |
| newins site-gentoo.el{,.orig} |
| |
| keepdir /etc/emacs |
| insinto /etc/emacs |
| doins site-start.el |
| |
| if use games; then |
| keepdir /var/games/emacs |
| fowners 0:gamestat /var/games/emacs |
| fperms g+w /var/games/emacs |
| fi |
| |
| if use X; then |
| local i |
| domenu emacs.desktop emacsclient.desktop || die |
| |
| pushd icons || die |
| newicon sink.png emacs-sink.png |
| newicon emacs_48.png emacs.png |
| newicon emacs22_48.png emacs22.png |
| for i in 16 24 32 48 128; do |
| newicon -s ${i} emacs_${i}.png emacs.png |
| done |
| for i in 16 24 32 48; do |
| newicon -s ${i} emacs22_${i}.png emacs22.png |
| done |
| doicon -s scalable emacs.svg |
| popd |
| |
| gnome2_icon_savelist |
| fi |
| |
| DOC_CONTENTS="All site initialisation for Gentoo-installed packages is |
| added to ${SITELISP}/site-gentoo.el. In order for this site |
| initialisation to be loaded for all users automatically, a default |
| site startup file /etc/emacs/site-start.el is installed. You are |
| responsible for maintenance of this file. |
| \n\nAlternatively, individual users can add the following command: |
| \n\n(require 'site-gentoo) |
| \n\nto their ~/.emacs initialisation files, or, for greater |
| flexibility, users may load single package-specific initialisation |
| files from the ${SITELISP}/site-gentoo.d/ directory." |
| readme.gentoo_create_doc |
| } |
| |
| site-start-modified-p() { |
| case $(cksum <"${EROOT}${SITELISP}/site-start.el") in |
| # checksums of auto-generated site-start.el files |
| "2098727038 349") return 1 ;; # elisp-common.eclass |
| "3626264063 355") return 1 ;; # emacs-common-gentoo-1.0 (cvs rev 1.1) |
| "3738455534 394") return 1 ;; # emacs-common-gentoo-1.0 (cvs rev 1.6) |
| "4199862847 394") return 1 ;; # emacs-common-gentoo-1.1 |
| "2547348044 394") return 1 ;; # emacs-common-gentoo-1.2 |
| "2214952934 397") return 1 ;; # emacs-common-gentoo-1.2-r1 |
| "3917799317 397") return 1 ;; # emacs-common-gentoo-1.2-r2 |
| *) return 0 ;; |
| esac |
| } |
| |
| pkg_preinst() { |
| # make sure that site-gentoo.el exists since site-start.el requires it |
| if [[ ! -d ${EROOT}${SITELISP} ]]; then |
| mv "${ED}${SITELISP}"/site-gentoo.el{.orig,} || die |
| else |
| elisp-site-regen |
| rm "${ED}${SITELISP}/site-gentoo.el.orig" || die |
| cp "${EROOT}${SITELISP}/site-gentoo.el" "${ED}${SITELISP}/" || die |
| fi |
| |
| if use games; then |
| local f |
| for f in /var/games/emacs/{snake,tetris}-scores; do |
| if [[ -e ${EROOT}${f} ]]; then |
| cp "${EROOT}${f}" "${ED}${f}" || die |
| elif [[ -e ${EROOT}/var/lib${f#/var} ]]; then |
| # backwards compatibility |
| cp "${EROOT}/var/lib${f#/var}" "${ED}${f}" || die |
| fi |
| touch "${ED}${f}" || die |
| chgrp gamestat "${ED}${f}" || die |
| chmod g+w "${ED}${f}" || die |
| done |
| |
| if [[ -d ${EROOT}/var/games && -z $(find "${EROOT}"/var/games \ |
| -maxdepth 0 -uid 0 -gid 0 -perm 755 -print) ]]; then |
| chown 0:0 "${EROOT}"/var/games || die |
| chmod 755 "${EROOT}"/var/games || die |
| fi |
| if has 1.4-r1 ${REPLACING_VERSIONS} \ |
| && [[ -d ${EROOT}/var/games/emacs ]]; then |
| elog "Updating owner and permissions of score file directory." |
| chown 0:gamestat "${EROOT}"/var/games/emacs || die |
| chmod 775 "${EROOT}"/var/games/emacs || die |
| fi |
| fi |
| |
| if [[ -e ${EROOT}${SITELISP}/site-start.el ]]; then |
| ewarn "The location of the site startup file for Emacs has changed to" |
| ewarn "/etc/emacs/site-start.el." |
| if site-start-modified-p; then |
| eerror "Locally modified ${SITELISP}/site-start.el file found." |
| eerror "If this file contains your own customisation, you should" |
| eerror "move it to /etc/emacs/. In any case, you must remove the" |
| eerror "file from the old location." |
| die "Cannot continue unless ${SITELISP}/site-start.el is removed." |
| else |
| ewarn "Removing the old ${SITELISP}/site-start.el file." |
| rm -f "${EROOT}${SITELISP}/site-start.el" |
| fi |
| fi |
| } |
| |
| pkg_postinst() { |
| if use X; then |
| fdo-mime_desktop_database_update |
| gnome2_icon_cache_update |
| fi |
| readme.gentoo_print_elog |
| } |
| |
| pkg_postrm() { |
| if use X; then |
| fdo-mime_desktop_database_update |
| gnome2_icon_cache_update |
| fi |
| } |