From eac69ec034c2007edd269606e7900fee4d478537 Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Thu, 9 Nov 2006 02:26:43 +0000 Subject: New version. --- eclass/common-lisp-common-3.eclass | 82 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 eclass/common-lisp-common-3.eclass (limited to 'eclass') diff --git a/eclass/common-lisp-common-3.eclass b/eclass/common-lisp-common-3.eclass new file mode 100644 index 000000000000..d36a3e5bce9f --- /dev/null +++ b/eclass/common-lisp-common-3.eclass @@ -0,0 +1,82 @@ +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/eclass/common-lisp-common-3.eclass,v 1.1 2006/11/09 02:26:43 mkennedy Exp $ +# +# Author Matthew Kennedy +# +# Sundry code common to many Common Lisp related ebuilds. Some +# implementation use the Portage time stamp hack to ensure their +# installed files have the right modification time relative to each +# other. + +inherit eutils + +CLSOURCEROOT=/usr/share/common-lisp/source/ +CLSYSTEMROOT=/usr/share/common-lisp/systems/ + +# Many of our Common Lisp ebuilds are either inspired by, or actually +# use packages and files from the Debian project's archives. + +do-debian-credits() { + docinto debian + for i in copyright README.Debian changelog; do + test -f $i && dodoc ${S}/debian/${i} + done + docinto . +} + +# BIG FAT HACK: Since the Portage emerge step kills file timestamp +# information, we need to compensate by ensuring all FASL files are +# more recent than their source files. + +# The following `impl-*-timestamp-hack' functions SHOULD NOT be used +# outside of this eclass. + +# Bug http://bugs.gentoo.org/show_bug.cgi?id=16162 should remove the +# need for this hack. + +impl-save-timestamp-hack() { + local impl=$1 + dodir /usr/share/${impl} + tar cpjf ${D}/usr/share/${impl}/portage-timestamp-compensate -C ${D}/usr/$(get_libdir)/${impl} . +} + +impl-restore-timestamp-hack() { + local impl=$1 + tar xjpfo /usr/share/${impl}/portage-timestamp-compensate -C /usr/$(get_libdir)/${impl} +} + +impl-remove-timestamp-hack() { + local impl=$1 + rm -rf /usr/$(get_libdir)/${impl} &>/dev/null || true +} + +standard-impl-postinst() { + local impl=$1 + case ${impl} in + cmucl|sbcl) + impl-restore-timestamp-hack ${impl} + ;; + *) + ;; + esac +} + +standard-impl-postrm() { + local impl=$1 impl_binary=$2 + if [ ! -x ${impl_binary} ]; then + case ${impl} in + cmucl|sbcl) + impl-remove-timestamp-hack ${impl} + ;; + *) + ;; + esac + rm -rf /var/cache/common-lisp-controller/*/${impl} + fi +} + +# Local Variables: *** +# mode: shell-script *** +# tab-width: 4 *** +# End: *** -- cgit v1.2.3-65-gdbad