Gentoo Archives: gentoo-commits

From: Cyprien Nicolas <c.nicolas+gentoo@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/lisp:master commit in: app-admin/eselect-guile/files/, profiles/, dev-scheme/guile/files/, ...
Date: Wed, 31 Aug 2011 13:09:56
Message-Id: 8409eb91bf10a18080d33cb0c69797335f5aeec9.fulax@gentoo
1 commit: 8409eb91bf10a18080d33cb0c69797335f5aeec9
2 Author: Cyprien Nicolas (fulax) <c.nicolas+gentoo <AT> gmail <DOT> com>
3 AuthorDate: Wed Aug 31 12:52:41 2011 +0000
4 Commit: Cyprien Nicolas <c.nicolas+gentoo <AT> gmail <DOT> com>
5 CommitDate: Wed Aug 31 12:52:41 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/lisp.git;a=commit;h=8409eb91
7
8 dev-scheme/guile: Add SLOT support through app-admin/eselect-guile
9
10 ---
11 app-admin/eselect-guile/eselect-guile-1.0.ebuild | 30 +++
12 app-admin/eselect-guile/files/guile.eselect | 245 ++++++++++++++++++++
13 app-admin/eselect-guile/files/guile.eselect.5 | 94 ++++++++
14 app-admin/eselect-guile/metadata.xml | 5 +
15 .../guile/files/guile-1.8.8-fix_guile-config.patch | 14 ++
16 dev-scheme/guile/guile-1.8.8-r2.ebuild | 116 +++++++++
17 dev-scheme/guile/guile-2.0.1.ebuild | 17 +-
18 dev-scheme/guile/guile-999.ebuild | 22 ++-
19 profiles/categories | 1 +
20 profiles/package.mask | 2 +-
21 10 files changed, 535 insertions(+), 11 deletions(-)
22
23 diff --git a/app-admin/eselect-guile/eselect-guile-1.0.ebuild b/app-admin/eselect-guile/eselect-guile-1.0.ebuild
24 new file mode 100644
25 index 0000000..7c02ad4
26 --- /dev/null
27 +++ b/app-admin/eselect-guile/eselect-guile-1.0.ebuild
28 @@ -0,0 +1,30 @@
29 +# Copyright 1999-2011 Gentoo Foundation
30 +# Distributed under the terms of the GNU General Public License v2
31 +# $Header: $
32 +
33 +DESCRIPTION="Manage multiple Guile versions on one system"
34 +HOMEPAGE="http://www.gentoo.org/proj/en/lisp/scheme/"
35 +#SRC_URI="mirror://gentoo/${P}.tar.bz2"
36 +
37 +LICENSE="GPL-2"
38 +SLOT="0"
39 +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"
40 +IUSE=""
41 +
42 +# Versions prior to guile-1.8.8-r2 aren't properly slotted
43 +DEPEND=""
44 +RDEPEND=">=app-admin/eselect-1.2.6
45 + !<dev-scheme/guile-1.8.8-r1"
46 +
47 +src_install() {
48 + insinto /usr/share/eselect/modules
49 + doins "${FILESDIR}"/guile.eselect || die
50 + doman "${FILESDIR}"/guile.eselect.5 || die
51 + #dodoc ChangeLog || die
52 +}
53 +
54 +src_test() { :; }
55 +
56 +pkg_prerm() {
57 + eselect guile clean
58 +}
59
60 diff --git a/app-admin/eselect-guile/files/guile.eselect b/app-admin/eselect-guile/files/guile.eselect
61 new file mode 100644
62 index 0000000..992fd4a
63 --- /dev/null
64 +++ b/app-admin/eselect-guile/files/guile.eselect
65 @@ -0,0 +1,245 @@
66 +# Copyright 2005-2011 Gentoo Foundation
67 +# Distributed under the terms of the GNU General Public License v2
68 +# $Id: $
69 +#
70 +# DOCUMENTATION
71 +# Following actions possible
72 +# * show do_show()
73 +# * list do_list()
74 +# * set do_set()
75 +# * update do_update()
76 +# * clean do_clean()
77 +#
78 +# Behaviour:
79 +# do_show():
80 +# Checks if /usr/bin/guile is a link and if the target exists,
81 +# if yes, it outputs the currently linked Guile version.
82 +# If it is no symlink, the user is told so, the same if there is
83 +# no /usr/bin/guile or the target does not exist.
84 +# do_list(): List all available versions of GNU Guile
85 +# do_set(): Set a version to be target of the symlink.
86 +# do_update(): Set the target to the highest version available
87 +# (optionally: only if not set)
88 +# do_clean(): Remove all set symlinks (for pkg_prerm)
89 +
90 +DESCRIPTION="Manage /usr/bin/guile* versions"
91 +MAINTAINER="scheme@g.o"
92 +SVN_DATE='$Date: $'
93 +VERSION=$(svn_date_to_version "${SVN_DATE}")
94 +
95 +BINARYLIST="guile-snarf guile-config guile-tools guile"
96 +MANPAGELIST="guile"
97 +
98 +find_targets() {
99 + # Return the list of available Guile binaries
100 + local j
101 + for j in "${EROOT}"/usr/bin/guile-[0-9]*; do
102 + [[ -f ${j} ]] && basename ${j}
103 + done
104 +}
105 +
106 +remove_envfile() {
107 + # When cleaning symlinks this takes care of the info documentation settings
108 + rm -f "${EROOT}/etc/env.d/50guile"
109 +}
110 +
111 +# Define GUILE_LOAD_PATH environment variable in env file
112 +set_envfile() {
113 + echo "GUILE_LOAD_PATH=${EPREFIX}/usr/share/guile/$1" >"${EROOT}/etc/env.d/50guile"
114 + [[ -d ${EROOT}/usr/share/info/guile-$1 ]] || return 1
115 + echo "INFOPATH=${EPREFIX}/usr/share/info/guile-$1" >>"${EROOT}/etc/env.d/50guile"
116 +}
117 +
118 +remove_symlinks() {
119 + # Remove existing symlinks to binaries, man pages,
120 + # m4 file, and the env file (own function)
121 + local f
122 + for f in ${BINARYLIST}; do
123 + rm -f "${EROOT}/usr/bin/${f}"
124 + done
125 + for f in ${MANPAGELIST}; do
126 + rm -f "${EROOT}"/usr/share/man/man1/${f}.1*
127 + done
128 + rm -f "${EROOT}"/usr/share/aclocal/guile.m4
129 + remove_envfile
130 +}
131 +
132 +set_bin_symlinks() {
133 + # Set symlinks to binaries in /usr/bin/
134 + local target=${1} f
135 + for f in ${BINARYLIST}; do
136 + # set symlink only if target binary actually exists
137 + if [[ -f ${EROOT}/usr/bin/${f}-${target} ]]; then
138 + ln -s "${f}-${target}" "${EROOT}/usr/bin/${f}" || die \
139 + "Couldn't set ${f}-${target} ${EROOT}/usr/bin/${f} symlink"
140 + fi
141 + done
142 +}
143 +
144 +set_m4_symlinks() {
145 + # Set symlink to guile.m4
146 + local target=${1}
147 + if [[ -f ${EROOT}/usr/share/aclocal/guile-${target}.m4 ]]; then
148 + ln -s "guile-${target}.m4" "${EROOT}"/usr/share/aclocal/guile.m4 \
149 + || die "Couldn't set guile-${target}.m4 guile.m4 symlink"
150 + fi
151 +}
152 +
153 +set_man_symlinks() {
154 + # Set symlinks to man pages
155 + local target=${1} extension f i
156 + for f in ${MANPAGELIST}; do
157 + for i in "${EROOT}"/usr/share/man/man1/${f}-${target}.1*; do
158 + if [[ -f ${i} ]]; then
159 + # target file exists; determine compress extension
160 + extension=${i##*/${f}-${target}.1}
161 + ln -s "${f}-${target}.1${extension}" \
162 + "${EROOT}/usr/share/man/man1/${f}.1${extension}"
163 + fi
164 + done
165 + done
166 +}
167 +
168 +set_symlinks() {
169 + # Set symlinks to binaries and man pages, update info path
170 + local target=$1 targets major
171 + # target may be specified by its name or its index
172 + if is_number "${target}"; then
173 + # numeric index, find the target's name
174 + targets=( $(find_targets) )
175 + [[ ${target} -ge 1 && ${target} -le ${#targets[@]} ]] \
176 + || die -q "Number out of range: ${1}"
177 + target=${targets[target-1]}
178 + fi
179 +
180 + # is the target valid, i.e. does a Guile binary with this name exist?
181 + [[ -f ${EROOT}/usr/bin/${target} ]] \
182 + || die -q "Target \"${1}\" doesn't appear to be valid!"
183 +
184 + echo "Switching guile to ${target} ..."
185 + remove_symlinks || die -q "Couldn't remove existing symlink"
186 +
187 + major=${target#guile-}
188 + set_bin_symlinks "${major}"
189 + set_m4_symlinks "${major}"
190 + set_man_symlinks "${major}"
191 + set_envfile "${major}"
192 +
193 + # update /etc/profile.env from /etc/env.d files
194 + do_action env update noldconfig
195 +
196 + return 0
197 +}
198 +
199 +test_for_root() {
200 + # checks if the user has rights to modify /usr/bin/
201 + [[ -w ${EROOT}/usr/bin ]] || die -q "You need root privileges!"
202 +}
203 +
204 +### show action ###
205 +
206 +describe_show() {
207 + echo "Show the current target of the Guile symlink"
208 +}
209 +
210 +do_show() {
211 + [[ $# -gt 0 ]] && die -q "Too many parameters"
212 +
213 + write_list_start "Current target of Guile symlink:"
214 + if [[ -L ${EROOT}/usr/bin/guile && -e ${EROOT}/usr/bin/guile ]]; then
215 + write_kv_list_entry \
216 + "$(basename "$(readlink "${EROOT}/usr/bin/guile")")" ""
217 + elif [[ -e ${EROOT}/usr/bin/guile ]]; then
218 + write_kv_list_entry \
219 + "(not a symlink or target of symlink does not exist)" ""
220 + else
221 + write_kv_list_entry "(unset)" ""
222 + fi
223 +}
224 +
225 +### list action ###
226 +
227 +describe_list() {
228 + echo "List available Guile symlink targets"
229 +}
230 +
231 +do_list() {
232 + [[ $# -gt 0 ]] && die -q "Too many parameters"
233 +
234 + local i targets
235 + targets=( $(find_targets) )
236 +
237 + for (( i = 0; i < ${#targets[@]}; i++ )); do
238 + # Highlight the currently chosen version
239 + [[ ${targets[i]} = \
240 + $(basename "$(readlink "${EROOT}/usr/bin/guile")") ]] \
241 + && targets[i]=$(highlight_marker "${targets[i]}")
242 + done
243 + write_list_start "Available Guile symlink targets:"
244 + write_numbered_list -m "(none found)" "${targets[@]}"
245 +}
246 +
247 +### set action ###
248 +
249 +describe_set() {
250 + echo "Set a new Guile symlink"
251 +}
252 +
253 +describe_set_options() {
254 + echo "target : Target name or number (from 'list' action)"
255 +}
256 +
257 +describe_set_parameters() {
258 + echo "<target>"
259 +}
260 +
261 +do_set() {
262 + [[ -z $1 ]] && die -q "You didn't tell me what to set the symlink to"
263 + [[ $# -gt 1 ]] && die -q "Too many parameters"
264 + test_for_root
265 +
266 + if [[ -e ${EROOT}/usr/bin/guile && ! -L ${EROOT}/usr/bin/guile ]]; then
267 + die -q "${EROOT}/usr/bin/guile exists but is not a symlink"
268 + fi
269 +
270 + set_symlinks "${1}" || die -q "Couldn't set a new symlink"
271 +}
272 +
273 +### update action ###
274 +
275 +describe_update() {
276 + echo "Automatically update the Guile symlink"
277 +}
278 +
279 +describe_update_options() {
280 + echo "ifunset : Do not override currently set version"
281 +}
282 +
283 +do_update() {
284 + [[ -z $1 || $1 = ifunset || $1 = --if-unset ]] || die -q "Usage error"
285 + [[ $# -gt 1 ]] && die -q "Too many parameters"
286 + test_for_root
287 +
288 + if [[ -L ${EROOT}/usr/bin/guile ]]; then
289 + # this is not redundant: "update" is called in pkg_postrm() of guile
290 + # and should clean up any dead symlinks if no valid target exists
291 + remove_symlinks || die -q "Couldn't remove existing symlink"
292 + elif [[ -e ${EROOT}/usr/bin/guile ]]; then
293 + die -q "${EROOT}/usr/bin/guile exists but is not a symlink"
294 + fi
295 +
296 + local targets=( $(find_targets) )
297 + if [[ ${#targets[@]} -gt 0 ]]; then
298 + set_symlinks "${targets[${#targets[@]}-1]}" \
299 + || die -q "Couldn't set a new symlink"
300 + fi
301 +}
302 +
303 +### Clean action
304 +describe_clean() {
305 + echo "Remove any existing symlinks"
306 +}
307 +
308 +do_clean() {
309 + remove_symlinks
310 +}
311
312 diff --git a/app-admin/eselect-guile/files/guile.eselect.5 b/app-admin/eselect-guile/files/guile.eselect.5
313 new file mode 100644
314 index 0000000..6740cf4
315 --- /dev/null
316 +++ b/app-admin/eselect-guile/files/guile.eselect.5
317 @@ -0,0 +1,94 @@
318 +.\" Copyright 2007-2011 Gentoo Foundation
319 +.\" Distributed under the terms of the GNU General Public License v2
320 +.\" $Id: $
321 +.\"
322 +.TH guile.eselect 5 "August 2011" "Gentoo Linux" eselect
323 +.SH NAME
324 +guile.eselect \- The Guile management module for Gentoo's eselect
325 +.SH SYNOPSIS
326 +.B eselect guile
327 +.RB [ help | usage | version ]
328 +.br
329 +.B eselect guile list
330 +.br
331 +.B eselect guile set
332 +.I target
333 +.br
334 +.B eselect guile show
335 +.br
336 +.B eselect guile update
337 +.RB [ ifunset ]
338 +.SH DESCRIPTION
339 +.B eselect
340 +is Gentoo's configuration and management tool. It features modules
341 +that care for the individual administrative tasks.
342 +.SH ACTION: LIST
343 +.B eselect guile list
344 +.br
345 +List all installed Guile versions
346 +
347 +# eselect guile list
348 +.br
349 +Available Guile symlink targets:
350 +.br
351 + [1] guile-1.8
352 + [2] guile-2.0 *
353 +.SH ACTION: SET
354 +.B eselect guile set
355 +.I target
356 +.br
357 +Activate the selected Guile version.
358 +.I target
359 +can be either an identification number given by
360 +.B eselect guile list
361 +or the name of one installed version.
362 +.\" To avoid runtime issues with
363 +.\" incompatible byte-code from the previously selected Emacs version, run
364 +.\" .B emacs-updater -a rebuild
365 +.\" to remerge all needed packages.
366 +
367 +# eselect guile set 1
368 +.br
369 +Switching guile to guile-1.8 ...
370 +.SH ACTION: SHOW
371 +.B eselect guile show
372 +.br
373 +Print the currently activated Guile version.
374 +
375 +# eselect guile show
376 +.br
377 +Current target of Guile symlink:
378 +.br
379 + emacs-1.8
380 +.SH ACTION: UPDATE
381 +.B eselect guile update
382 +.RB [ ifunset ]
383 +.br
384 +Update the guile symlink to the last available version. If option
385 +.B ifunset
386 +is given, an existing implementation is not overridden.
387 +
388 +The update process consists in creating symlinks for guile's binaries,
389 +man page and aclocal.m4. It also generates an environment file.
390 +The symlinks concerns:
391 +.br
392 +* /usr/bin/guile and /usr/bin/guile-{config,snarf,tools} binaries;
393 +.br
394 +* /usr/share/aclocal/guile.m4;
395 +.br
396 +* guile(1) man page.
397 +.br
398 +The environment file (/etc/env.d/50guile) defines INFOPATH and
399 +GUILE_LOAD_PATH.
400 +
401 +# eselect guile update
402 +.br
403 +Switching guile to guile-2.0 ...
404 +.SH AUTHORS
405 +Christian Faulhammer <fauli@g.o>
406 +.br
407 +Ulrich Mueller <ulm@g.o>
408 +.SH SEE ALSO
409 +.BR eselect (1)
410 +.SH REVISION
411 +$Id: $
412
413 diff --git a/app-admin/eselect-guile/metadata.xml b/app-admin/eselect-guile/metadata.xml
414 new file mode 100644
415 index 0000000..6dc936c
416 --- /dev/null
417 +++ b/app-admin/eselect-guile/metadata.xml
418 @@ -0,0 +1,5 @@
419 +<?xml version="1.0" encoding="UTF-8"?>
420 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
421 +<pkgmetadata>
422 +<herd>scheme</herd>
423 +</pkgmetadata>
424
425 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
426 new file mode 100644
427 index 0000000..2b04426
428 --- /dev/null
429 +++ b/dev-scheme/guile/files/guile-1.8.8-fix_guile-config.patch
430 @@ -0,0 +1,14 @@
431 +diff -ruN 1/configure.in 2/configure.in
432 +--- 1/configure.in 2010-12-13 17:24:39.000000000 +0000
433 ++++ 2/configure.in 2011-04-29 11:53:39.000000000 +0000
434 +@@ -1522,8 +1522,8 @@
435 + #######################################################################
436 +
437 + dnl Tell guile-config what flags guile users should compile and link with.
438 +-GUILE_LIBS="$LDFLAGS $LIBS"
439 +-GUILE_CFLAGS="$CPPFLAGS $PTHREAD_CFLAGS"
440 ++GUILE_LIBS="$LIBS"
441 ++GUILE_CFLAGS="$PTHREAD_CFLAGS"
442 + AC_SUBST(GUILE_LIBS)
443 + AC_SUBST(GUILE_CFLAGS)
444 +
445
446 diff --git a/dev-scheme/guile/guile-1.8.8-r2.ebuild b/dev-scheme/guile/guile-1.8.8-r2.ebuild
447 new file mode 100644
448 index 0000000..ffac522
449 --- /dev/null
450 +++ b/dev-scheme/guile/guile-1.8.8-r2.ebuild
451 @@ -0,0 +1,116 @@
452 +# Copyright 1999-2011 Gentoo Foundation
453 +# Distributed under the terms of the GNU General Public License v2
454 +# $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 $
455 +
456 +EAPI=3
457 +inherit eutils autotools flag-o-matic elisp-common
458 +
459 +DESCRIPTION="Scheme interpreter"
460 +HOMEPAGE="http://www.gnu.org/software/guile/"
461 +SRC_URI="mirror://gnu/guile/${P}.tar.gz"
462 +
463 +LICENSE="LGPL-2.1"
464 +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"
465 +IUSE="networking +regex discouraged +deprecated emacs nls debug-freelist debug-malloc debug +threads"
466 +RESTRICT="!regex? ( test )"
467 +
468 +DEPEND="
469 + app-admin/eselect-guile
470 + >=dev-libs/gmp-4.1
471 + >=sys-devel/libtool-1.5.6
472 + sys-devel/gettext
473 + emacs? ( virtual/emacs )"
474 +RDEPEND="${DEPEND}"
475 +
476 +# Guile seems to contain some slotting support, /usr/share/guile/ is slotted,
477 +# but there are lots of collisions. Most in /usr/share/libguile. Therefore
478 +# I'm slotting this in the same slot as guile-1.6* for now.
479 +SLOT="12"
480 +MAJOR="1.8"
481 +
482 +src_prepare() {
483 + #
484 + epatch "${FILESDIR}/${P}-fix_guile-config.patch"
485 + eautoreconf
486 +}
487 +
488 +src_configure() {
489 + # see bug #178499
490 + filter-flags -ftree-vectorize
491 +
492 + #will fail for me if posix is disabled or without modules -- hkBst
493 + econf \
494 + --program-suffix="-${MAJOR}" \
495 + --infodir="${EPREFIX}"/usr/share/info/guile-${MAJOR} \
496 + --disable-error-on-warning \
497 + --disable-static \
498 + --enable-posix \
499 + $(use_enable networking) \
500 + $(use_enable regex) \
501 + $(use deprecated || use_enable discouraged) \
502 + $(use_enable deprecated) \
503 + $(use_enable emacs elisp) \
504 + $(use_enable nls) \
505 + --disable-rpath \
506 + $(use_enable debug-freelist) \
507 + $(use_enable debug-malloc) \
508 + $(use_enable debug guile-debug) \
509 + $(use_with threads) \
510 + --with-modules \
511 + EMACS=no
512 +}
513 +
514 +src_compile() {
515 + emake || die "make failed"
516 +
517 + # Above we have disabled the build system's Emacs support;
518 + # for USE=emacs we compile (and install) the files manually
519 + if use emacs; then
520 + cd emacs
521 + elisp-compile *.el || die
522 + fi
523 +}
524 +
525 +src_install() {
526 + einstall infodir="${ED}"/usr/share/info/guile-${MAJOR} || die "install failed"
527 +
528 + # Maybe there is a proper way to do this? Symlink handled by eselect
529 + mv "${ED}"/usr/share/aclocal/guile.m4 "${ED}"/usr/share/aclocal/guile-${MAJOR}.m4 || die "rename of guile.m4 failed"
530 +
531 + dodoc AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS || die
532 +
533 + # Now handled by app-admin/eselect-guile
534 + ## texmacs needs this, closing bug #23493
535 + #dodir /etc/env.d
536 + #echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > "${ED}"/etc/env.d/50guile
537 +
538 + # necessary for registering slib, see bug 206896
539 + keepdir /usr/share/guile/site
540 +
541 + if use emacs; then
542 + elisp-install ${PN} emacs/*.{el,elc} || die
543 + elisp-site-file-install "${FILESDIR}/50${PN}-gentoo.el" || die
544 + fi
545 +}
546 +
547 +pkg_postinst() {
548 + [ "${EROOT}" == "/" ] && pkg_config
549 + use emacs && elisp-site-regen
550 + eselect guile update ifunset
551 +}
552 +
553 +pkg_postrm() {
554 + use emacs && elisp-site-regen
555 + eselect guile update ifunset
556 +}
557 +
558 +pkg_config() {
559 + if has_version dev-scheme/slib; then
560 + einfo "Registering slib with guile"
561 + install_slib_for_guile
562 + fi
563 +}
564 +
565 +_pkg_prerm() {
566 + rm -f "${EROOT}"/usr/share/guile/site/slibcat
567 +}
568
569 diff --git a/dev-scheme/guile/guile-2.0.1.ebuild b/dev-scheme/guile/guile-2.0.1.ebuild
570 index 7400532..c5b130e 100644
571 --- a/dev-scheme/guile/guile-2.0.1.ebuild
572 +++ b/dev-scheme/guile/guile-2.0.1.ebuild
573 @@ -14,6 +14,7 @@ KEYWORDS="~amd64 ~x86"
574 IUSE="networking +regex +deprecated emacs nls debug-malloc debug +threads"
575
576 DEPEND="
577 + app-admin/eselect-guile
578 dev-libs/gmp
579 >=sys-devel/libtool-1.5.6
580 sys-devel/gettext
581 @@ -33,6 +34,8 @@ src_configure() {
582
583 #will fail for me if posix is disabled or without modules -- hkBst
584 econf \
585 + --program-suffix="-${MAJOR}" \
586 + --infodir="${EPREFIX}"/usr/share/info/guile-${MAJOR} \
587 --disable-error-on-warning \
588 --disable-static \
589 --enable-posix \
590 @@ -61,13 +64,17 @@ src_compile() {
591 }
592
593 src_install() {
594 - einstall || die "install failed"
595 + einstall infodir="${ED}"/usr/share/info/guile-${MAJOR} || die "install failed"
596 +
597 + # Maybe there is a proper way to do this? Symlink handled by eselect
598 + mv "${ED}"/usr/share/aclocal/guile.m4 "${ED}"/usr/share/aclocal/guile-${MAJOR}.m4 || die "rename of guile.m4 failed"
599
600 dodoc AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS || die
601
602 - # texmacs needs this, closing bug #23493
603 - dodir /etc/env.d
604 - echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > "${ED}"/etc/env.d/50guile
605 + # Replaced by app-admin/eselect-guile
606 + ## texmacs needs this, closing bug #23493
607 + #dodir /etc/env.d
608 + #echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > "${ED}"/etc/env.d/50guile
609
610 # necessary for registering slib, see bug 206896
611 keepdir /usr/share/guile/site
612 @@ -81,10 +88,12 @@ src_install() {
613 pkg_postinst() {
614 [ "${EROOT}" == "/" ] && pkg_config
615 use emacs && elisp-site-regen
616 + eselect guile update ifunset
617 }
618
619 pkg_postrm() {
620 use emacs && elisp-site-regen
621 + eselect guile update ifunset
622 }
623
624 pkg_config() {
625
626 diff --git a/dev-scheme/guile/guile-999.ebuild b/dev-scheme/guile/guile-999.ebuild
627 index 7cfd51f..9b9beaa 100644
628 --- a/dev-scheme/guile/guile-999.ebuild
629 +++ b/dev-scheme/guile/guile-999.ebuild
630 @@ -19,6 +19,7 @@ KEYWORDS=""
631 IUSE="networking +regex +deprecated emacs nls debug-malloc debug +threads"
632
633 DEPEND="
634 + app-admin/eselect-guile
635 dev-libs/gmp
636 >=sys-devel/libtool-1.5.6
637 sys-devel/gettext
638 @@ -29,8 +30,9 @@ DEPEND="
639 emacs? ( virtual/emacs )"
640 RDEPEND="${DEPEND}"
641
642 +# Not 2.2; File colisions with 2.0 on libguilereadline-v-18
643 SLOT="2"
644 -MAJOR="2.0"
645 +MAJOR="2.2"
646
647 src_prepare() {
648 # for live ebuilds
649 @@ -45,6 +47,8 @@ src_configure() {
650
651 #will fail for me if posix is disabled or without modules -- hkBst
652 econf \
653 + --program-suffix="-${MAJOR}" \
654 + --infodir="${EPREFIX}"/usr/share/info/guile-${MAJOR} \
655 --disable-error-on-warning \
656 --disable-static \
657 --enable-posix \
658 @@ -73,13 +77,17 @@ src_compile() {
659 }
660
661 src_install() {
662 - einstall || die "install failed"
663 + einstall infodir="${ED}"/usr/share/info/guile-${MAJOR} || die "install failed"
664 +
665 + # Maybe there is a proper way to do this? Symlink handled by eselect
666 + mv "${ED}"/usr/share/aclocal/guile.m4 "${ED}"/usr/share/aclocal/guile-${MAJOR}.m4 || die "rename of guile.m4 failed"
667
668 dodoc AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS || die
669
670 - # texmacs needs this, closing bug #23493
671 - dodir /etc/env.d
672 - echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > "${ED}"/etc/env.d/50guile
673 + # Replaced by app-admin/eselect-guile
674 + ## texmacs needs this, closing bug #23493
675 + #dodir /etc/env.d
676 + #echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > "${ED}"/etc/env.d/50guile
677
678 # necessary for registering slib, see bug 206896
679 keepdir /usr/share/guile/site
680 @@ -93,10 +101,12 @@ src_install() {
681 pkg_postinst() {
682 [ "${EROOT}" == "/" ] && pkg_config
683 use emacs && elisp-site-regen
684 + eselect guile update ifunset
685 }
686
687 pkg_postrm() {
688 use emacs && elisp-site-regen
689 + eselect guile update ifunset
690 }
691
692 pkg_config() {
693 @@ -108,4 +118,4 @@ pkg_config() {
694
695 _pkg_prerm() {
696 rm -f "${EROOT}"/usr/share/guile/site/slibcat
697 -}
698 \ No newline at end of file
699 +}
700
701 diff --git a/profiles/categories b/profiles/categories
702 index 63ff195..9b79c2c 100644
703 --- a/profiles/categories
704 +++ b/profiles/categories
705 @@ -1,3 +1,4 @@
706 +app-admin
707 app-emacs
708 dev-chicken
709 dev-lisp
710
711 diff --git a/profiles/package.mask b/profiles/package.mask
712 index bf32fd4..17f7395 100644
713 --- a/profiles/package.mask
714 +++ b/profiles/package.mask
715 @@ -6,5 +6,5 @@
716 # Known issues:
717 # - Broken emacs support (ulm has promised to look)
718 # - doesn't build when boehm-gc is built without threads
719 -# - no SLOTting yet!
720 +=dev-scheme/guile-1.8.8-r2
721 =dev-scheme/guile-2.0.1