summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyprien Nicolas (fulax)2011-08-31 12:52:41 (GMT)
committerCyprien Nicolas (fulax)2011-08-31 12:52:41 (GMT)
commit8409eb91bf10a18080d33cb0c69797335f5aeec9 (patch)
tree4e6b580b4ed5d00846faf925864c61f831ad2b7a
parentb4f30c95c4e8af9b3be3a151ef7f2c3564011d20 (diff)
dev-scheme/guile: Add SLOT support through app-admin/eselect-guile
-rw-r--r--app-admin/eselect-guile/Manifest4
-rw-r--r--app-admin/eselect-guile/eselect-guile-1.0.ebuild30
-rw-r--r--app-admin/eselect-guile/files/guile.eselect245
-rw-r--r--app-admin/eselect-guile/files/guile.eselect.594
-rw-r--r--app-admin/eselect-guile/metadata.xml5
-rw-r--r--dev-scheme/guile/Manifest7
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-fix_guile-config.patch14
-rw-r--r--dev-scheme/guile/guile-1.8.8-r2.ebuild116
-rw-r--r--dev-scheme/guile/guile-2.0.1.ebuild17
-rw-r--r--dev-scheme/guile/guile-999.ebuild22
-rw-r--r--profiles/categories1
-rw-r--r--profiles/package.mask2
12 files changed, 544 insertions, 13 deletions
diff --git a/app-admin/eselect-guile/Manifest b/app-admin/eselect-guile/Manifest
new file mode 100644
index 0000000..ada59c7
--- /dev/null
+++ b/app-admin/eselect-guile/Manifest
@@ -0,0 +1,4 @@
+AUX guile.eselect 6618 RMD160 166ea2532e4dff03c6e4cd61b991785526559557 SHA1 713d4e423e560eabb8906cbd8162b251d5664595 SHA256 d8901c7f29fee9fa05761448b48eada58aeb9feef7ebc87de4b23c4bb9bfd59a
+AUX guile.eselect.5 2149 RMD160 75b9d428d3f5d626e0925c9feb0a00c9e962ee55 SHA1 01770c24437f53686fa0ffab555da1433b7f7445 SHA256 78215b525beef34208ff4737dca0704bedce55b046d5fe17a277e3b990915bf4
+EBUILD eselect-guile-1.0.ebuild 884 RMD160 5685ff68c9ede9238607e212e90d65e16d398183 SHA1 2299063255d32ce7239d9bcae0527d432bb44edb SHA256 7e74aea8f33417582cbde0bdfe265f44603e6f811b1af32e0896538b5c677223
+MISC metadata.xml 159 RMD160 de517ce4d7d6fd637855d92a257e2c94b8339f43 SHA1 f037b0d8dd3d592d04170d21a1a9b9c594541612 SHA256 61c7b86c8f64d194ff9e03f62b4007e0c69db2054d09e3ccdbbf6dbc0c78024b
diff --git a/app-admin/eselect-guile/eselect-guile-1.0.ebuild b/app-admin/eselect-guile/eselect-guile-1.0.ebuild
new file mode 100644
index 0000000..7c02ad4
--- /dev/null
+++ b/app-admin/eselect-guile/eselect-guile-1.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+DESCRIPTION="Manage multiple Guile versions on one system"
+HOMEPAGE="http://www.gentoo.org/proj/en/lisp/scheme/"
+#SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE=""
+
+# Versions prior to guile-1.8.8-r2 aren't properly slotted
+DEPEND=""
+RDEPEND=">=app-admin/eselect-1.2.6
+ !<dev-scheme/guile-1.8.8-r1"
+
+src_install() {
+ insinto /usr/share/eselect/modules
+ doins "${FILESDIR}"/guile.eselect || die
+ doman "${FILESDIR}"/guile.eselect.5 || die
+ #dodoc ChangeLog || die
+}
+
+src_test() { :; }
+
+pkg_prerm() {
+ eselect guile clean
+}
diff --git a/app-admin/eselect-guile/files/guile.eselect b/app-admin/eselect-guile/files/guile.eselect
new file mode 100644
index 0000000..992fd4a
--- /dev/null
+++ b/app-admin/eselect-guile/files/guile.eselect
@@ -0,0 +1,245 @@
+# Copyright 2005-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: $
+#
+# DOCUMENTATION
+# Following actions possible
+# * show do_show()
+# * list do_list()
+# * set do_set()
+# * update do_update()
+# * clean do_clean()
+#
+# Behaviour:
+# do_show():
+# Checks if /usr/bin/guile is a link and if the target exists,
+# if yes, it outputs the currently linked Guile version.
+# If it is no symlink, the user is told so, the same if there is
+# no /usr/bin/guile or the target does not exist.
+# do_list(): List all available versions of GNU Guile
+# do_set(): Set a version to be target of the symlink.
+# do_update(): Set the target to the highest version available
+# (optionally: only if not set)
+# do_clean(): Remove all set symlinks (for pkg_prerm)
+
+DESCRIPTION="Manage /usr/bin/guile* versions"
+MAINTAINER="scheme@gentoo.org"
+SVN_DATE='$Date: $'
+VERSION=$(svn_date_to_version "${SVN_DATE}")
+
+BINARYLIST="guile-snarf guile-config guile-tools guile"
+MANPAGELIST="guile"
+
+find_targets() {
+ # Return the list of available Guile binaries
+ local j
+ for j in "${EROOT}"/usr/bin/guile-[0-9]*; do
+ [[ -f ${j} ]] && basename ${j}
+ done
+}
+
+remove_envfile() {
+ # When cleaning symlinks this takes care of the info documentation settings
+ rm -f "${EROOT}/etc/env.d/50guile"
+}
+
+# Define GUILE_LOAD_PATH environment variable in env file
+set_envfile() {
+ echo "GUILE_LOAD_PATH=${EPREFIX}/usr/share/guile/$1" >"${EROOT}/etc/env.d/50guile"
+ [[ -d ${EROOT}/usr/share/info/guile-$1 ]] || return 1
+ echo "INFOPATH=${EPREFIX}/usr/share/info/guile-$1" >>"${EROOT}/etc/env.d/50guile"
+}
+
+remove_symlinks() {
+ # Remove existing symlinks to binaries, man pages,
+ # m4 file, and the env file (own function)
+ local f
+ for f in ${BINARYLIST}; do
+ rm -f "${EROOT}/usr/bin/${f}"
+ done
+ for f in ${MANPAGELIST}; do
+ rm -f "${EROOT}"/usr/share/man/man1/${f}.1*
+ done
+ rm -f "${EROOT}"/usr/share/aclocal/guile.m4
+ remove_envfile
+}
+
+set_bin_symlinks() {
+ # Set symlinks to binaries in /usr/bin/
+ local target=${1} f
+ for f in ${BINARYLIST}; do
+ # set symlink only if target binary actually exists
+ if [[ -f ${EROOT}/usr/bin/${f}-${target} ]]; then
+ ln -s "${f}-${target}" "${EROOT}/usr/bin/${f}" || die \
+ "Couldn't set ${f}-${target} ${EROOT}/usr/bin/${f} symlink"
+ fi
+ done
+}
+
+set_m4_symlinks() {
+ # Set symlink to guile.m4
+ local target=${1}
+ if [[ -f ${EROOT}/usr/share/aclocal/guile-${target}.m4 ]]; then
+ ln -s "guile-${target}.m4" "${EROOT}"/usr/share/aclocal/guile.m4 \
+ || die "Couldn't set guile-${target}.m4 guile.m4 symlink"
+ fi
+}
+
+set_man_symlinks() {
+ # Set symlinks to man pages
+ local target=${1} extension f i
+ for f in ${MANPAGELIST}; do
+ for i in "${EROOT}"/usr/share/man/man1/${f}-${target}.1*; do
+ if [[ -f ${i} ]]; then
+ # target file exists; determine compress extension
+ extension=${i##*/${f}-${target}.1}
+ ln -s "${f}-${target}.1${extension}" \
+ "${EROOT}/usr/share/man/man1/${f}.1${extension}"
+ fi
+ done
+ done
+}
+
+set_symlinks() {
+ # Set symlinks to binaries and man pages, update info path
+ local target=$1 targets major
+ # target may be specified by its name or its index
+ if is_number "${target}"; then
+ # numeric index, find the target's name
+ targets=( $(find_targets) )
+ [[ ${target} -ge 1 && ${target} -le ${#targets[@]} ]] \
+ || die -q "Number out of range: ${1}"
+ target=${targets[target-1]}
+ fi
+
+ # is the target valid, i.e. does a Guile binary with this name exist?
+ [[ -f ${EROOT}/usr/bin/${target} ]] \
+ || die -q "Target \"${1}\" doesn't appear to be valid!"
+
+ echo "Switching guile to ${target} ..."
+ remove_symlinks || die -q "Couldn't remove existing symlink"
+
+ major=${target#guile-}
+ set_bin_symlinks "${major}"
+ set_m4_symlinks "${major}"
+ set_man_symlinks "${major}"
+ set_envfile "${major}"
+
+ # update /etc/profile.env from /etc/env.d files
+ do_action env update noldconfig
+
+ return 0
+}
+
+test_for_root() {
+ # checks if the user has rights to modify /usr/bin/
+ [[ -w ${EROOT}/usr/bin ]] || die -q "You need root privileges!"
+}
+
+### show action ###
+
+describe_show() {
+ echo "Show the current target of the Guile symlink"
+}
+
+do_show() {
+ [[ $# -gt 0 ]] && die -q "Too many parameters"
+
+ write_list_start "Current target of Guile symlink:"
+ if [[ -L ${EROOT}/usr/bin/guile && -e ${EROOT}/usr/bin/guile ]]; then
+ write_kv_list_entry \
+ "$(basename "$(readlink "${EROOT}/usr/bin/guile")")" ""
+ elif [[ -e ${EROOT}/usr/bin/guile ]]; then
+ write_kv_list_entry \
+ "(not a symlink or target of symlink does not exist)" ""
+ else
+ write_kv_list_entry "(unset)" ""
+ fi
+}
+
+### list action ###
+
+describe_list() {
+ echo "List available Guile symlink targets"
+}
+
+do_list() {
+ [[ $# -gt 0 ]] && die -q "Too many parameters"
+
+ local i targets
+ targets=( $(find_targets) )
+
+ for (( i = 0; i < ${#targets[@]}; i++ )); do
+ # Highlight the currently chosen version
+ [[ ${targets[i]} = \
+ $(basename "$(readlink "${EROOT}/usr/bin/guile")") ]] \
+ && targets[i]=$(highlight_marker "${targets[i]}")
+ done
+ write_list_start "Available Guile symlink targets:"
+ write_numbered_list -m "(none found)" "${targets[@]}"
+}
+
+### set action ###
+
+describe_set() {
+ echo "Set a new Guile symlink"
+}
+
+describe_set_options() {
+ echo "target : Target name or number (from 'list' action)"
+}
+
+describe_set_parameters() {
+ echo "<target>"
+}
+
+do_set() {
+ [[ -z $1 ]] && die -q "You didn't tell me what to set the symlink to"
+ [[ $# -gt 1 ]] && die -q "Too many parameters"
+ test_for_root
+
+ if [[ -e ${EROOT}/usr/bin/guile && ! -L ${EROOT}/usr/bin/guile ]]; then
+ die -q "${EROOT}/usr/bin/guile exists but is not a symlink"
+ fi
+
+ set_symlinks "${1}" || die -q "Couldn't set a new symlink"
+}
+
+### update action ###
+
+describe_update() {
+ echo "Automatically update the Guile symlink"
+}
+
+describe_update_options() {
+ echo "ifunset : Do not override currently set version"
+}
+
+do_update() {
+ [[ -z $1 || $1 = ifunset || $1 = --if-unset ]] || die -q "Usage error"
+ [[ $# -gt 1 ]] && die -q "Too many parameters"
+ test_for_root
+
+ if [[ -L ${EROOT}/usr/bin/guile ]]; then
+ # this is not redundant: "update" is called in pkg_postrm() of guile
+ # and should clean up any dead symlinks if no valid target exists
+ remove_symlinks || die -q "Couldn't remove existing symlink"
+ elif [[ -e ${EROOT}/usr/bin/guile ]]; then
+ die -q "${EROOT}/usr/bin/guile exists but is not a symlink"
+ fi
+
+ local targets=( $(find_targets) )
+ if [[ ${#targets[@]} -gt 0 ]]; then
+ set_symlinks "${targets[${#targets[@]}-1]}" \
+ || die -q "Couldn't set a new symlink"
+ fi
+}
+
+### Clean action
+describe_clean() {
+ echo "Remove any existing symlinks"
+}
+
+do_clean() {
+ remove_symlinks
+}
diff --git a/app-admin/eselect-guile/files/guile.eselect.5 b/app-admin/eselect-guile/files/guile.eselect.5
new file mode 100644
index 0000000..6740cf4
--- /dev/null
+++ b/app-admin/eselect-guile/files/guile.eselect.5
@@ -0,0 +1,94 @@
+.\" Copyright 2007-2011 Gentoo Foundation
+.\" Distributed under the terms of the GNU General Public License v2
+.\" $Id: $
+.\"
+.TH guile.eselect 5 "August 2011" "Gentoo Linux" eselect
+.SH NAME
+guile.eselect \- The Guile management module for Gentoo's eselect
+.SH SYNOPSIS
+.B eselect guile
+.RB [ help | usage | version ]
+.br
+.B eselect guile list
+.br
+.B eselect guile set
+.I target
+.br
+.B eselect guile show
+.br
+.B eselect guile update
+.RB [ ifunset ]
+.SH DESCRIPTION
+.B eselect
+is Gentoo's configuration and management tool. It features modules
+that care for the individual administrative tasks.
+.SH ACTION: LIST
+.B eselect guile list
+.br
+List all installed Guile versions
+
+# eselect guile list
+.br
+Available Guile symlink targets:
+.br
+ [1] guile-1.8
+ [2] guile-2.0 *
+.SH ACTION: SET
+.B eselect guile set
+.I target
+.br
+Activate the selected Guile version.
+.I target
+can be either an identification number given by
+.B eselect guile list
+or the name of one installed version.
+.\" To avoid runtime issues with
+.\" incompatible byte-code from the previously selected Emacs version, run
+.\" .B emacs-updater -a rebuild
+.\" to remerge all needed packages.
+
+# eselect guile set 1
+.br
+Switching guile to guile-1.8 ...
+.SH ACTION: SHOW
+.B eselect guile show
+.br
+Print the currently activated Guile version.
+
+# eselect guile show
+.br
+Current target of Guile symlink:
+.br
+ emacs-1.8
+.SH ACTION: UPDATE
+.B eselect guile update
+.RB [ ifunset ]
+.br
+Update the guile symlink to the last available version. If option
+.B ifunset
+is given, an existing implementation is not overridden.
+
+The update process consists in creating symlinks for guile's binaries,
+man page and aclocal.m4. It also generates an environment file.
+The symlinks concerns:
+.br
+* /usr/bin/guile and /usr/bin/guile-{config,snarf,tools} binaries;
+.br
+* /usr/share/aclocal/guile.m4;
+.br
+* guile(1) man page.
+.br
+The environment file (/etc/env.d/50guile) defines INFOPATH and
+GUILE_LOAD_PATH.
+
+# eselect guile update
+.br
+Switching guile to guile-2.0 ...
+.SH AUTHORS
+Christian Faulhammer <fauli@gentoo.org>
+.br
+Ulrich Mueller <ulm@gentoo.org>
+.SH SEE ALSO
+.BR eselect (1)
+.SH REVISION
+$Id: $
diff --git a/app-admin/eselect-guile/metadata.xml b/app-admin/eselect-guile/metadata.xml
new file mode 100644
index 0000000..6dc936c
--- /dev/null
+++ b/app-admin/eselect-guile/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>scheme</herd>
+</pkgmetadata>
diff --git a/dev-scheme/guile/Manifest b/dev-scheme/guile/Manifest
index 612d1f9..842d717 100644
--- a/dev-scheme/guile/Manifest
+++ b/dev-scheme/guile/Manifest
@@ -1,4 +1,7 @@
AUX 50guile-gentoo.el 74 RMD160 e64895b1e48ca842f32301a2ac68ae099e25844e SHA1 ec3a8ab924b595fc5323eec7c33f938e9d26a911 SHA256 ad625c24e5bb48b001eb4a68d441f10037acf467f5f91f68106c538dbee965b5
+AUX guile-1.8.8-fix_guile-config.patch 494 RMD160 61fcb0ac730a44ef93df26bdd5e6e0ce3b1a2dbf SHA1 5e9132af1dd7ae7394851c1266b6a85419abca31 SHA256 08e4d837a663fc27b037e64f8dd89d89ababb3ed13f1e7845109a0f901f3b0c4
+DIST guile-1.8.8.tar.gz 3956654 RMD160 8ac185a72ad8394b14d5377549e5bbf02889faaa SHA1 548d6927aeda332b117f8fc5e4e82c39a05704f9 SHA256 c3471fed2e72e5b04ad133bbaaf16369e8360283679bcf19800bc1b381024050
DIST guile-2.0.1.tar.gz 6601636 RMD160 7b498f85221a0560978e836b8bc38eb313836bfc SHA1 3276a826f17a5edc0baf2eedc4821a771824141b SHA256 f1198caca27d9de23e9b1cbaf55cbde1915f8a6ee420e2971a6422f9693638d6
-EBUILD guile-2.0.1.ebuild 2321 RMD160 ff946aece738171e84f035159a5c8d4dc5873c37 SHA1 ecb3185baeb7fa784bebd86fbee09994839bd1ce SHA256 c1f85cd53c9125bce93c58362002664c5720feb82206c1acb69c7637b5256dba
-EBUILD guile-999.ebuild 2441 RMD160 dd5b66bd69caa140cb5a242ec9863fd515df13fd SHA1 3cac942e2168ce4512e819c128ef41b479e9c9f3 SHA256 6d6036ab9e29f25556d6ded82158e22f5760a5ba0cdc24aa9c0744d93913bcfc
+EBUILD guile-1.8.8-r2.ebuild 3237 RMD160 70499936053783ea0ab506870852c410bc896846 SHA1 1e9e81f3ab6ecf1df4160b376063165a37af9069 SHA256 3eb095ed8f5482208e662e1c000116254879a05b43e23249bf2c65056b0d378a
+EBUILD guile-2.0.1.ebuild 2773 RMD160 1edc1c88c805240c5165db351b768f3a39affe3f SHA1 8a4b768cdc073dee86d517c6e042e6f328e073a0 SHA256 a18e56fa2dd1b793ea0ecf871fb00ce33234299574b38f8a36704282a43e9eff
+EBUILD guile-999.ebuild 2954 RMD160 98b4cee9367c65dea0321b4785709699c92a8715 SHA1 230ec3940923e32c774cd38c50044e5be972107d SHA256 c8036a8052e16bd93955bd377ed2bbff76063c9340d0b1525c4a255f78efbeed
diff --git a/dev-scheme/guile/files/guile-1.8.8-fix_guile-config.patch b/dev-scheme/guile/files/guile-1.8.8-fix_guile-config.patch
new file mode 100644
index 0000000..2b04426
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-fix_guile-config.patch
@@ -0,0 +1,14 @@
+diff -ruN 1/configure.in 2/configure.in
+--- 1/configure.in 2010-12-13 17:24:39.000000000 +0000
++++ 2/configure.in 2011-04-29 11:53:39.000000000 +0000
+@@ -1522,8 +1522,8 @@
+ #######################################################################
+
+ dnl Tell guile-config what flags guile users should compile and link with.
+-GUILE_LIBS="$LDFLAGS $LIBS"
+-GUILE_CFLAGS="$CPPFLAGS $PTHREAD_CFLAGS"
++GUILE_LIBS="$LIBS"
++GUILE_CFLAGS="$PTHREAD_CFLAGS"
+ AC_SUBST(GUILE_LIBS)
+ AC_SUBST(GUILE_CFLAGS)
+
diff --git a/dev-scheme/guile/guile-1.8.8-r2.ebuild b/dev-scheme/guile/guile-1.8.8-r2.ebuild
new file mode 100644
index 0000000..ffac522
--- /dev/null
+++ b/dev-scheme/guile/guile-1.8.8-r2.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-scheme/guile/guile-1.8.8-r1.ebuild,v 1.10 2011/07/09 11:18:15 xarthisius Exp $
+
+EAPI=3
+inherit eutils autotools flag-o-matic elisp-common
+
+DESCRIPTION="Scheme interpreter"
+HOMEPAGE="http://www.gnu.org/software/guile/"
+SRC_URI="mirror://gnu/guile/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="networking +regex discouraged +deprecated emacs nls debug-freelist debug-malloc debug +threads"
+RESTRICT="!regex? ( test )"
+
+DEPEND="
+ app-admin/eselect-guile
+ >=dev-libs/gmp-4.1
+ >=sys-devel/libtool-1.5.6
+ sys-devel/gettext
+ emacs? ( virtual/emacs )"
+RDEPEND="${DEPEND}"
+
+# Guile seems to contain some slotting support, /usr/share/guile/ is slotted,
+# but there are lots of collisions. Most in /usr/share/libguile. Therefore
+# I'm slotting this in the same slot as guile-1.6* for now.
+SLOT="12"
+MAJOR="1.8"
+
+src_prepare() {
+ #
+ epatch "${FILESDIR}/${P}-fix_guile-config.patch"
+ eautoreconf
+}
+
+src_configure() {
+ # see bug #178499
+ filter-flags -ftree-vectorize
+
+ #will fail for me if posix is disabled or without modules -- hkBst
+ econf \
+ --program-suffix="-${MAJOR}" \
+ --infodir="${EPREFIX}"/usr/share/info/guile-${MAJOR} \
+ --disable-error-on-warning \
+ --disable-static \
+ --enable-posix \
+ $(use_enable networking) \
+ $(use_enable regex) \
+ $(use deprecated || use_enable discouraged) \
+ $(use_enable deprecated) \
+ $(use_enable emacs elisp) \
+ $(use_enable nls) \
+ --disable-rpath \
+ $(use_enable debug-freelist) \
+ $(use_enable debug-malloc) \
+ $(use_enable debug guile-debug) \
+ $(use_with threads) \
+ --with-modules \
+ EMACS=no
+}
+
+src_compile() {
+ emake || die "make failed"
+
+ # Above we have disabled the build system's Emacs support;
+ # for USE=emacs we compile (and install) the files manually
+ if use emacs; then
+ cd emacs
+ elisp-compile *.el || die
+ fi
+}
+
+src_install() {
+ einstall infodir="${ED}"/usr/share/info/guile-${MAJOR} || die "install failed"
+
+ # Maybe there is a proper way to do this? Symlink handled by eselect
+ mv "${ED}"/usr/share/aclocal/guile.m4 "${ED}"/usr/share/aclocal/guile-${MAJOR}.m4 || die "rename of guile.m4 failed"
+
+ dodoc AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS || die
+
+ # Now handled by app-admin/eselect-guile
+ ## texmacs needs this, closing bug #23493
+ #dodir /etc/env.d
+ #echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > "${ED}"/etc/env.d/50guile
+
+ # necessary for registering slib, see bug 206896
+ keepdir /usr/share/guile/site
+
+ if use emacs; then
+ elisp-install ${PN} emacs/*.{el,elc} || die
+ elisp-site-file-install "${FILESDIR}/50${PN}-gentoo.el" || die
+ fi
+}
+
+pkg_postinst() {
+ [ "${EROOT}" == "/" ] && pkg_config
+ use emacs && elisp-site-regen
+ eselect guile update ifunset
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+ eselect guile update ifunset
+}
+
+pkg_config() {
+ if has_version dev-scheme/slib; then
+ einfo "Registering slib with guile"
+ install_slib_for_guile
+ fi
+}
+
+_pkg_prerm() {
+ rm -f "${EROOT}"/usr/share/guile/site/slibcat
+}
diff --git a/dev-scheme/guile/guile-2.0.1.ebuild b/dev-scheme/guile/guile-2.0.1.ebuild
index 7400532..c5b130e 100644
--- a/dev-scheme/guile/guile-2.0.1.ebuild
+++ b/dev-scheme/guile/guile-2.0.1.ebuild
@@ -14,6 +14,7 @@ KEYWORDS="~amd64 ~x86"
IUSE="networking +regex +deprecated emacs nls debug-malloc debug +threads"
DEPEND="
+ app-admin/eselect-guile
dev-libs/gmp
>=sys-devel/libtool-1.5.6
sys-devel/gettext
@@ -33,6 +34,8 @@ src_configure() {
#will fail for me if posix is disabled or without modules -- hkBst
econf \
+ --program-suffix="-${MAJOR}" \
+ --infodir="${EPREFIX}"/usr/share/info/guile-${MAJOR} \
--disable-error-on-warning \
--disable-static \
--enable-posix \
@@ -61,13 +64,17 @@ src_compile() {
}
src_install() {
- einstall || die "install failed"
+ einstall infodir="${ED}"/usr/share/info/guile-${MAJOR} || die "install failed"
+
+ # Maybe there is a proper way to do this? Symlink handled by eselect
+ mv "${ED}"/usr/share/aclocal/guile.m4 "${ED}"/usr/share/aclocal/guile-${MAJOR}.m4 || die "rename of guile.m4 failed"
dodoc AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS || die
- # texmacs needs this, closing bug #23493
- dodir /etc/env.d
- echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > "${ED}"/etc/env.d/50guile
+ # Replaced by app-admin/eselect-guile
+ ## texmacs needs this, closing bug #23493
+ #dodir /etc/env.d
+ #echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > "${ED}"/etc/env.d/50guile
# necessary for registering slib, see bug 206896
keepdir /usr/share/guile/site
@@ -81,10 +88,12 @@ src_install() {
pkg_postinst() {
[ "${EROOT}" == "/" ] && pkg_config
use emacs && elisp-site-regen
+ eselect guile update ifunset
}
pkg_postrm() {
use emacs && elisp-site-regen
+ eselect guile update ifunset
}
pkg_config() {
diff --git a/dev-scheme/guile/guile-999.ebuild b/dev-scheme/guile/guile-999.ebuild
index 7cfd51f..9b9beaa 100644
--- a/dev-scheme/guile/guile-999.ebuild
+++ b/dev-scheme/guile/guile-999.ebuild
@@ -19,6 +19,7 @@ KEYWORDS=""
IUSE="networking +regex +deprecated emacs nls debug-malloc debug +threads"
DEPEND="
+ app-admin/eselect-guile
dev-libs/gmp
>=sys-devel/libtool-1.5.6
sys-devel/gettext
@@ -29,8 +30,9 @@ DEPEND="
emacs? ( virtual/emacs )"
RDEPEND="${DEPEND}"
+# Not 2.2; File colisions with 2.0 on libguilereadline-v-18
SLOT="2"
-MAJOR="2.0"
+MAJOR="2.2"
src_prepare() {
# for live ebuilds
@@ -45,6 +47,8 @@ src_configure() {
#will fail for me if posix is disabled or without modules -- hkBst
econf \
+ --program-suffix="-${MAJOR}" \
+ --infodir="${EPREFIX}"/usr/share/info/guile-${MAJOR} \
--disable-error-on-warning \
--disable-static \
--enable-posix \
@@ -73,13 +77,17 @@ src_compile() {
}
src_install() {
- einstall || die "install failed"
+ einstall infodir="${ED}"/usr/share/info/guile-${MAJOR} || die "install failed"
+
+ # Maybe there is a proper way to do this? Symlink handled by eselect
+ mv "${ED}"/usr/share/aclocal/guile.m4 "${ED}"/usr/share/aclocal/guile-${MAJOR}.m4 || die "rename of guile.m4 failed"
dodoc AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS || die
- # texmacs needs this, closing bug #23493
- dodir /etc/env.d
- echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > "${ED}"/etc/env.d/50guile
+ # Replaced by app-admin/eselect-guile
+ ## texmacs needs this, closing bug #23493
+ #dodir /etc/env.d
+ #echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > "${ED}"/etc/env.d/50guile
# necessary for registering slib, see bug 206896
keepdir /usr/share/guile/site
@@ -93,10 +101,12 @@ src_install() {
pkg_postinst() {
[ "${EROOT}" == "/" ] && pkg_config
use emacs && elisp-site-regen
+ eselect guile update ifunset
}
pkg_postrm() {
use emacs && elisp-site-regen
+ eselect guile update ifunset
}
pkg_config() {
@@ -108,4 +118,4 @@ pkg_config() {
_pkg_prerm() {
rm -f "${EROOT}"/usr/share/guile/site/slibcat
-} \ No newline at end of file
+}
diff --git a/profiles/categories b/profiles/categories
index 63ff195..9b79c2c 100644
--- a/profiles/categories
+++ b/profiles/categories
@@ -1,3 +1,4 @@
+app-admin
app-emacs
dev-chicken
dev-lisp
diff --git a/profiles/package.mask b/profiles/package.mask
index bf32fd4..17f7395 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -6,5 +6,5 @@
# Known issues:
# - Broken emacs support (ulm has promised to look)
# - doesn't build when boehm-gc is built without threads
-# - no SLOTting yet!
+=dev-scheme/guile-1.8.8-r2
=dev-scheme/guile-2.0.1