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 |