/[gentoo-x86]/eclass/elisp-common.eclass
Gentoo

Diff of /eclass/elisp-common.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.37 Revision 1.41
1# Copyright 1999-2008 Gentoo Foundation 1# Copyright 1999-2008 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/elisp-common.eclass,v 1.37 2008/03/07 08:19:19 ulm Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/elisp-common.eclass,v 1.41 2008/07/01 22:10:06 ulm Exp $
4# 4#
5# Copyright 2002-2004 Matthew Kennedy <mkennedy@gentoo.org> 5# Copyright 2002-2004 Matthew Kennedy <mkennedy@gentoo.org>
6# Copyright 2003 Jeremy Maitin-Shepard <jbms@attbi.com> 6# Copyright 2003 Jeremy Maitin-Shepard <jbms@attbi.com>
7# Copyright 2004-2005 Mamoru Komachi <usata@gentoo.org> 7# Copyright 2004-2005 Mamoru Komachi <usata@gentoo.org>
8# Copyright 2007-2008 Christian Faulhammer <opfer@gentoo.org> 8# Copyright 2007-2008 Christian Faulhammer <opfer@gentoo.org>
139# @DESCRIPTION: 139# @DESCRIPTION:
140# Name of package's site-init file. 140# Name of package's site-init file.
141SITEFILE=50${PN}-gentoo.el 141SITEFILE=50${PN}-gentoo.el
142 142
143EMACS=/usr/bin/emacs 143EMACS=/usr/bin/emacs
144# The following works for Emacs versions 18--23, don't change it. 144# The following works for Emacs versions 18-23, don't change it.
145EMACSFLAGS="-batch -q --no-site-file" 145EMACSFLAGS="-batch -q --no-site-file"
146 146
147# @FUNCTION: elisp-compile 147# @FUNCTION: elisp-compile
148# @USAGE: <list of elisp files> 148# @USAGE: <list of elisp files>
149# @DESCRIPTION: 149# @DESCRIPTION:
198# @FUNCTION: elisp-emacs-version 198# @FUNCTION: elisp-emacs-version
199# @DESCRIPTION: 199# @DESCRIPTION:
200# Output version of currently active Emacs. 200# Output version of currently active Emacs.
201 201
202elisp-emacs-version() { 202elisp-emacs-version() {
203 # The following will work for at least versions 18--23. 203 # The following will work for at least versions 18-23.
204 echo "(princ emacs-version)" >"${T}"/emacs-version.el 204 echo "(princ emacs-version)" >"${T}"/emacs-version.el
205 ${EMACS} ${EMACSFLAGS} -l "${T}"/emacs-version.el 205 ${EMACS} ${EMACSFLAGS} -l "${T}"/emacs-version.el
206 rm -f "${T}"/emacs-version.el 206 rm -f "${T}"/emacs-version.el
207} 207}
208 208
286# when generating the start-up file. 286# when generating the start-up file.
287 287
288elisp-site-regen() { 288elisp-site-regen() {
289 local i sf line obsolete 289 local i sf line obsolete
290 local -a sflist 290 local -a sflist
291 # Work around Paludis borkage: variable T is empty in pkg_postrm
291 local tmpdir=${T:-/tmp} 292 local tmpdir=${T:-$(mktemp -d)}
293
294 if [ ! -d "${ROOT}${SITELISP}" ]; then
295 eerror "Directory ${SITELISP} does not exist"
296 return 1
297 fi
292 298
293 if [ ! -e "${ROOT}${SITELISP}"/site-gentoo.el ] \ 299 if [ ! -e "${ROOT}${SITELISP}"/site-gentoo.el ] \
294 && [ ! -e "${ROOT}${SITELISP}"/site-start.el ]; then 300 && [ ! -e "${ROOT}${SITELISP}"/site-start.el ]; then
295 einfo "Creating default ${SITELISP}/site-start.el ..." 301 einfo "Creating default ${SITELISP}/site-start.el ..."
296 cat <<-EOF >"${tmpdir}"/site-start.el 302 cat <<-EOF >"${tmpdir}"/site-start.el
309 EOF 315 EOF
310 fi 316 fi
311 317
312 einfon "Regenerating ${SITELISP}/site-gentoo.el ..." 318 einfon "Regenerating ${SITELISP}/site-gentoo.el ..."
313 319
314 # remove auxiliary file 320 # remove any auxiliary file (from previous run)
315 rm -f "${ROOT}${SITELISP}"/00site-gentoo.el 321 rm -f "${ROOT}${SITELISP}"/00site-gentoo.el
316 322
317 # set nullglob option, there may be a directory without matching files 323 # set nullglob option, there may be a directory without matching files
318 local old_shopts=$(shopt -p nullglob) 324 local old_shopts=$(shopt -p nullglob)
319 shopt -s nullglob 325 shopt -s nullglob
387can be added by individual users to their initialisation files, or, 393can be added by individual users to their initialisation files, or,
388for greater flexibility, users can load individual package-specific 394for greater flexibility, users can load individual package-specific
389initialisation files from /usr/share/emacs/site-lisp/site-gentoo.d/. 395initialisation files from /usr/share/emacs/site-lisp/site-gentoo.d/.
390EOF 396EOF
391 echo 397 echo
392
393 if [ "${obsolete}" ]; then
394 while read line; do ewarn "${line}"; done <<-EOF
395 Site-initialisation files of Emacs packages are now installed in
396 /usr/share/emacs/site-lisp/site-gentoo.d/. You may consider using
397 /usr/sbin/emacs-updater to rebuild the installed Emacs packages.
398 However, the old location is still supported.
399 EOF
400 echo
401 fi
402 fi 398 fi
403 399
400 if [ "${obsolete}" ]; then
401 while read line; do ewarn "${line}"; done <<-EOF
402 Site-initialisation files of Emacs packages are now installed in
403 /usr/share/emacs/site-lisp/site-gentoo.d/. We strongly recommend
404 that you use /usr/sbin/emacs-updater to rebuild the installed
405 Emacs packages.
406 EOF
407 echo
408
404 # Kludge for backwards compatibility: During pkg_postrm, old versions 409 # Kludge for backwards compatibility: During pkg_postrm, old versions
405 # of this eclass (saved in the VDB) won't find packages' site-init files 410 # of this eclass (saved in the VDB) won't find packages' site-init
406 # in the new location. So we copy them to an auxiliary file that is 411 # files in the new location. So we copy them to an auxiliary file
407 # visible to old eclass versions. 412 # that is visible to old eclass versions.
408 for sf in "${sflist[@]}"; do 413 for sf in "${sflist[@]}"; do
409 [ "${sf%/*}" = "${ROOT}${SITELISP}/site-gentoo.d" ] \ 414 [ "${sf%/*}" = "${ROOT}${SITELISP}/site-gentoo.d" ] \
410 && cat "${sf}" >>"${ROOT}${SITELISP}"/00site-gentoo.el 415 && cat "${sf}" >>"${ROOT}${SITELISP}"/00site-gentoo.el
411 done 416 done
417 fi
412 418
413 # cleanup 419 # cleanup
414 rm -f "${tmpdir}"/site-{gentoo,start}.el 420 rm -f "${tmpdir}"/site-{gentoo,start}.el
415} 421}

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.41

  ViewVC Help
Powered by ViewVC 1.1.20