blob: 24401bada8dbb3266845720b513cf4501b36e6d4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
# 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.3 2015/03/27 10:18:25 ago 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="~alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
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
}
|