summaryrefslogtreecommitdiff
path: root/dev-scheme/guile
diff options
context:
space:
mode:
Diffstat (limited to 'dev-scheme/guile')
-rw-r--r--dev-scheme/guile/Manifest23
-rw-r--r--dev-scheme/guile/files/50guile-gentoo.el1
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-fix_guile-config.patch14
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-gcc46.patch39
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-gcc5.patch15
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-gtexinfo-5.patch15
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-makeinfo-5.patch71
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-mkdir-mask.patch35
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-readline.patch34
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-sandbox.patch15
-rw-r--r--dev-scheme/guile/files/guile-1.8.8-tinfo.patch15
-rw-r--r--dev-scheme/guile/files/guile-2-snarf.patch47
-rw-r--r--dev-scheme/guile/files/guile-2.0.14-darwin.patch38
-rw-r--r--dev-scheme/guile/files/guile-2.0.14-ia64-fix-crash-thread-context-switch.patch63
-rw-r--r--dev-scheme/guile/files/guile-2.2.3-gentoo-sandbox.patch10
-rw-r--r--dev-scheme/guile/guile-1.8.8-r3.ebuild118
-rw-r--r--dev-scheme/guile/guile-2.0.13-r2.ebuild80
-rw-r--r--dev-scheme/guile/guile-2.0.14-r3.ebuild86
-rw-r--r--dev-scheme/guile/guile-2.2.3.ebuild73
-rw-r--r--dev-scheme/guile/metadata.xml21
20 files changed, 813 insertions, 0 deletions
diff --git a/dev-scheme/guile/Manifest b/dev-scheme/guile/Manifest
new file mode 100644
index 000000000000..561e67d5b378
--- /dev/null
+++ b/dev-scheme/guile/Manifest
@@ -0,0 +1,23 @@
+AUX 50guile-gentoo.el 38 BLAKE2B e96c6cf48d1522d89450e11d339c76210c672377208b56951791b83c6ef22b2c872d313084e199dd5d7b533a99106a87dbc7f15b5ee6126f71bf5f2e84165ffa SHA512 5c00bcabe2d7cc03013dc7a54b2c653940c08098ca5646d7c73624cb1ca04376ae9dcf88a7166b1925c69f0c5d192d90f6bd790fdef8ed8c3b0f9d163c987da5
+AUX guile-1.8.8-fix_guile-config.patch 494 BLAKE2B e7cf0fe161b83e0561c0eac26889c407ed7fba41a79944a1fe060881e31217c40554f1bcc708940102b80dbf27edf3ba8de58850889bb9e3707166e04195f01d SHA512 3ef2bcb31d5b80dfa2f23b8802b98af713230e59aafe773ca3fd847fbdc7759ebb2d19cead1b6b362a6fa504dfff0c2036d5359aa82b601d664eb2a49a98c970
+AUX guile-1.8.8-gcc46.patch 1004 BLAKE2B 6680d9f6a5207078dac634d4504c0b4b7502a2f49dac089d8f5251d8d8cdcc37e408d0f446389ad0fc908ce7ea801ae3c1af59d7b03dd19f3ce7d1175e97ea68 SHA512 0ace93548dde387c344e13f083d79227cd09506e0cf58ac0892f25c43bfcefe9071e83912b921fba120262884fa92aaabe4d07f8337d89b6da73f0f2c077dcfa
+AUX guile-1.8.8-gcc5.patch 575 BLAKE2B a8766ca3eaf808ad4547312a11d203422be21e647a0b089c5709e5f747e6c5136a80dc521c118506086b4a7808aa3301e315420262923604a2bf5819a6d637ef SHA512 844a585679f8d1cbdbe9c4c7c5feb21ebca095a522d75db264c0f4c244153a1435a01647955fc98a0743fec48aeac28c1570dbce78bfd026544addba945a1cee
+AUX guile-1.8.8-gtexinfo-5.patch 460 BLAKE2B 895480608683caf27dda3d4e92b4c82ecde1a6d27e9e37de445fdf9665cbb432759d75b5cb0340ed9a15d2c3175b48647989bdaebe659c1a1104c221bb43c07e SHA512 19185a96bb6dcf7f1cac1908633d65d8cb673148469553cce4099256d05a94688834a61ddc0a18957f9fe253fffb2821817b4b29a4a604e8c152debb6e3323a6
+AUX guile-1.8.8-makeinfo-5.patch 2361 BLAKE2B 3720979563cba33c9d5058d070717e6c433b1c1e3e0e41a34d83179f1c2ae5bb5cb8a1a445d0da52f714aea18418d492a482d1dcf11ffe689c092a50d8f0191a SHA512 a69ed6cf2fd87c6f3d61cc914eed960fcdebaa151778b1ecf04f1774e6dddf07d17bf90fb3243a08e8c231e391843201d0ba26debedef33199d8dd75f8cbcd09
+AUX guile-1.8.8-mkdir-mask.patch 1300 BLAKE2B 941f4fdeafc769fe6d41b2303f7dc3f7972d5c40cae6c09bf1532171827ac3e284bf812276e0d9b7c276fe8312b306fcef9010b69d3d2dd5d13593e11be904e0 SHA512 e02fa50af16fb545b26560064cc7adb19caf523691dfb22044c1e01fe9c98c42804c3d13ac28d65cb61bf7667fb0f1d4aa703949cea321d382b871abd083454e
+AUX guile-1.8.8-readline.patch 953 BLAKE2B e08c20d919b3659f8f4b2bcee26b12d43f2b942c1b12859cacb5ab813fe2aa8790b29cbb694b9c75851d28a7c96e3296345d8c2261175ce6b71a4bd65eec6f1a SHA512 e86e6e7f035f9ff9d541b44987d7cb0e5a1f80f62b7b4a112dc933f5831b90a33b506c6601165e957a3973c38ca56d0e84eafaa76c78ae5db26d7887669f1443
+AUX guile-1.8.8-sandbox.patch 514 BLAKE2B d47f7a6ffc4e67cec738e963ff2ec7c3bfa600992cb49eee6fff248d340811695905a02907ddb8444b6a1d6c8541af1824b0348bbf8230f4e3dba6d4317dad32 SHA512 6786c4c8254ebf0dbfe69402f4781151fcecec0fad8b282b831cb0300721ef22b8c11d4feecbe30643e3783d488c53e3f1158c0b0c76f6beda15fd7c0d6515db
+AUX guile-1.8.8-tinfo.patch 450 BLAKE2B 0dcf1728e30034f1e612d666b07cdbf2147dbbe8151a23479d1519f4bc55a0fcf83c37e545592c2a2fb7c7426f026ae3fac0f08d3a36248cd8b27c3d9ae8a618 SHA512 0ea33680a57b1adb0821bd00cd73955e8c2fd5f31c4bd20a291c3e4fbb6a3dd9e2f4977b135f05fa3e2b65b1f5e0f5253db642e7b0b0fcd2e78ff8b6dd1cf37a
+AUX guile-2-snarf.patch 1274 BLAKE2B e9efdd1e14560579131ecff748add4f97de730678e6f766681be72f95bf99ab36edd8bc7279701084d13f3fa762968af814760bcf9b8778c73c956c282bb3c93 SHA512 49d015b08d0bcf5d27aa43d4a595b2ccb4366dffe0f5d159162c8c7747fb9fdbe84056a737f3c81a6e39281d91109bfa4aa98c85dd0e757c17ab668a1dd46f24
+AUX guile-2.0.14-darwin.patch 1026 BLAKE2B 9193732cfb74931f7bf8e9b55c5c9dd2621ef6271c8d18190e0ed94d90decde85272f271bbbe7d3c4dd0dd509e51fae3f7f0af42872a0b9ebb87396c9e69a9d2 SHA512 151d19f171656105d87336f81dd8c34273d07a3e88aa03ac5ca8d640c79ab317a90ef06097858bf627e4666fba747faea45237c73e7bc6462d19d8f0d1904d53
+AUX guile-2.0.14-ia64-fix-crash-thread-context-switch.patch 2426 BLAKE2B 5b2073a3780794e9466d8e5434ab98a91a821408ab792abbfaf61d09c95e113b99746b0da850115b4534bda00b1313cef5bb9b08c90c8bf9a04c81b1eb78faa3 SHA512 082f98ac4ee2f40dd3762006bf5c43022088b2286c9a8d63ae9e234d3c8527f3afcfba8076e0c8578e7fbed257294db6ce1a4513661b89f821579dc121d449ae
+AUX guile-2.2.3-gentoo-sandbox.patch 361 BLAKE2B 997d4cec108f302f34b42c59c78d420c858f964b8587bed523d95fadedbf9981dd9c196934299413db9c23e940a4b88e798e4fff65cdea1507968494338313ba SHA512 450f44cbd2b3f0c7c02963c35e58e8d0e4a7192239993215b69713d8a1109692ab1e153efe685c27681069477a56e7bc52b34ebd8717a2c8695be8c6b8abe673
+DIST guile-1.8.8.tar.gz 3956654 BLAKE2B 4820d635ac2c57526c0c03f3e0e6e4ac4276533ea8db15e6d1b759c33edec094a1a4bdc3e09ccae61f1b271d63565063746feea242a90c18cd575775444a42ef SHA512 ede6feb90cd419d8763feb8c5169275490a653919573c4dfced025b74cf591072b3a10ffb9a3f6ee3fe7b0a0956ffcf434e0859b421455c8349cea56bf427db0
+DIST guile-2.0.13.tar.gz 7808173 BLAKE2B e1d59356173b54595512c0322ac596ccf46f5668467f3ccc59ba9fdf41bb0b035827da173175e9389448cabef05997fb170baf2897ac4a9dddc4064d6af2b53b SHA512 79fd5fda5064331eb687934ec3eaf07943f5b23bd05fbce23ab5ee3698864250b33746e33b8f074692b56f7b428dac42ed5d3f5b9dc17d171aa6dfadc1625b00
+DIST guile-2.0.14.tar.gz 7823099 BLAKE2B e7fa5a4ca19dc4adfcc151350b0ed4e211b8470b0d12f65451697a818c3139a4a5992a019bd213114748230cb15ec755d1af70d42b901230854915c0ee7b05de SHA512 d69c9bdf589fedcc227f3203012f6ed11c327cef3a0147d8e016fe276abecdb4272625efe1d0c7aa68219fe8f29bbced44089a4b479e4eafe01976c6b2b83633
+DIST guile-2.2.3.tar.gz 17266587 BLAKE2B 68751b881bca53e7ab04038483aa8c5a689978d1017e4c944a8142e301e2e13d5ffd2aba73f7b0aa27efd84d068558b96a88452d1e0b79dc04db1921e22a621d SHA512 31df17d28177badf63e1eb0d0d64e6a4d2abe64d4d5e69d8ff33a24dfb10abd25109ea9abfa86f5ff303b43665eb5b8127927f683f3b16139c5b3dc99f06f6fd
+EBUILD guile-1.8.8-r3.ebuild 3106 BLAKE2B 1f080be08e9d7f69292edfc990466c5c89bd8d312889f798c23c9f29e4d3a689c62288aa669cf09111ae639680bcfb38e509a79cfc44b5151be33b6e433d35d1 SHA512 e83ecd2c5939e940a0b7203bb9e1cdb0e38dac1533d3652155fcfbaaa5009cc243859c800214e4aa0512efba87ccaa08f451fda236dfa3cf7f26897b1f9cfcb8
+EBUILD guile-2.0.13-r2.ebuild 2107 BLAKE2B 1bb3fbed942d57a410549298d16e933c1daaa0c06d167e53ed8ccd6c1b584ffd72bfba09ba066053497b561977514585612d83d3f46784521dbe04140e6f73f2 SHA512 ba403bede09718d687930d77d8bec64cd16c93531de0234fc4b4fcd2711b97cde63af1b5d1c7a65dbd7619cca94b4923388ac85528ee6fba0615a10f1addd8e8
+EBUILD guile-2.0.14-r3.ebuild 2243 BLAKE2B 55335cd62d01e3054d24e92258c8c18fae754fa143d8f2b07c38a543344c24ee50a03f9a12b6978c86ce9fd369a666380c759ffac34714dc68dd439cac0af0d4 SHA512 0a2f1c77ac08995c1a60596c634178795c9c3bac2140bf3aa131cc1d89dc2230483b7b05e7afed220217904e3eee488201069cdd4a6181a5e0aa6e6ce8fa7947
+EBUILD guile-2.2.3.ebuild 2016 BLAKE2B 2ae8537a627d4880c93f7a317de57c001685bb1cdc7a07aed1c2b81e01b11b029ee364b0ccc28893ce23236ad7a48fdc1aec8738a7ffc5bf10ac5f77ab867393 SHA512 ddeb74589c283bcd2d767c2670ec57f9d67477f3dbdbb8dcc40dfa8c68c5de7f73616f03e979b2292e91cff4fb05e89b33f319e42387006a120d2199054a7da1
+MISC metadata.xml 1040 BLAKE2B ea7db45fc50b1b17b90948224837643278741aa84fe75e7d3fa3716711060f8aef189124d4491238aa0a72c4e0364d940fcf5d38fb4a178ff0ac7c7039138751 SHA512 6c44b82f0c361f23d377e34fd88249c4e601b215c1bb183afb8cac27bf105b314d5138877b05bf3144a3c60f5b240e4e76ca3fabf151e1182cc913825a093cf3
diff --git a/dev-scheme/guile/files/50guile-gentoo.el b/dev-scheme/guile/files/50guile-gentoo.el
new file mode 100644
index 000000000000..431f7e90ae73
--- /dev/null
+++ b/dev-scheme/guile/files/50guile-gentoo.el
@@ -0,0 +1 @@
+(add-to-list 'load-path "@SITELISP@")
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 000000000000..2b04426ebd96
--- /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/files/guile-1.8.8-gcc46.patch b/dev-scheme/guile/files/guile-1.8.8-gcc46.patch
new file mode 100644
index 000000000000..b06a0e59eb14
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-gcc46.patch
@@ -0,0 +1,39 @@
+Backported upstream patch to fix SIGSEGV with gcc-4.6
+
+http://git.savannah.gnu.org/cgit/guile.git/commit/?h=branch_release-1-8&id=62bc1072c19e81bb0f9e42a5034e7ab8c27d3b94
+https://bugs.gentoo.org/show_bug.cgi?id=424475
+--- a/configure.in
++++ b/configure.in
+@@ -1199,23 +1199,20 @@
+ AC_RUN_IFELSE([AC_LANG_SOURCE(
+ [AC_INCLUDES_DEFAULT
+ int
+-find_stack_direction ()
++find_stack_direction (int *addr, int depth)
+ {
+- static char *addr = 0;
+- auto char dummy;
+- if (addr == 0)
+- {
+- addr = &dummy;
+- return find_stack_direction ();
+- }
+- else
+- return (&dummy > addr) ? 1 : -1;
++ int dir, dummy = 0;
++ if (! addr)
++ addr = &dummy;
++ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
++ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
++ return dir + dummy;
+ }
+
+ int
+-main ()
++main (int argc, char **argv)
+ {
+- return find_stack_direction () < 0;
++ return find_stack_direction (0, argc + !argv + 20) < 0;
+ }])],
+ [SCM_I_GSC_STACK_GROWS_UP=1],
+ [],
diff --git a/dev-scheme/guile/files/guile-1.8.8-gcc5.patch b/dev-scheme/guile/files/guile-1.8.8-gcc5.patch
new file mode 100644
index 000000000000..742ea0ba9de2
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-gcc5.patch
@@ -0,0 +1,15 @@
+Preprocessor changes in GCC 5 cause guile-snarf to output garbage.
+
+https://bugs.gentoo.org/560736
+
+--- a/libguile/guile-snarf.in
++++ b/libguile/guile-snarf.in
+@@ -50,7 +50,7 @@
+ ## Apparently, AIX's preprocessor is unhappy if you try to #include an
+ ## empty file.
+ echo "/* cpp arguments: $@ */" ;
+- ${cpp} -DSCM_MAGIC_SNARF_INITS -DSCM_MAGIC_SNARFER "$@" > ${temp} && cpp_ok_p=true
++ ${cpp} -P -DSCM_MAGIC_SNARF_INITS -DSCM_MAGIC_SNARFER "$@" > ${temp} && cpp_ok_p=true
+ grep "^ *\^ *\^" ${temp} | sed -e "s/^ *\^ *\^//" -e "s/\^\ *:\ *\^.*/;/"
+ }
+
diff --git a/dev-scheme/guile/files/guile-1.8.8-gtexinfo-5.patch b/dev-scheme/guile/files/guile-1.8.8-gtexinfo-5.patch
new file mode 100644
index 000000000000..d7fbda15c101
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-gtexinfo-5.patch
@@ -0,0 +1,15 @@
+$NetBSD: patch-doc_tutorial_guile-tut.texi,v 1.1 2013/11/30 07:06:25 dsainty Exp $
+
+Compatibility with gtexinfo 5.2
+
+--- doc/tutorial/guile-tut.texi 2010-12-14 06:24:39.000000000 +1300
++++ doc/tutorial/guile-tut.texi 2013-11-30 19:44:28.304575529 +1300
+@@ -446,7 +446,7 @@
+ Schemer} from that list.}
+
+
+-@subsection Hello World
++@section Hello World
+ @cindex hello world
+
+ Our first program is the typical Scheme "hello world" program. Put the \ No newline at end of file
diff --git a/dev-scheme/guile/files/guile-1.8.8-makeinfo-5.patch b/dev-scheme/guile/files/guile-1.8.8-makeinfo-5.patch
new file mode 100644
index 000000000000..9f3a02c18c65
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-makeinfo-5.patch
@@ -0,0 +1,71 @@
+From 937da0f2604ea208ec56517c5a41e582f316a246 Mon Sep 17 00:00:00 2001
+From: Cyprien Nicolas <cyp@fulax.fr>
+Date: Thu, 18 Apr 2013 23:45:23 +0200
+Subject: [PATCH] Fix texinfo files for makeinfo-5.1
+
+---
+ doc/ref/api-options.texi | 2 +-
+ doc/ref/api-utility.texi | 2 +-
+ doc/ref/fdl.texi | 2 +-
+ doc/ref/gh.texi | 4 ++--
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/doc/ref/api-options.texi b/doc/ref/api-options.texi
+index 7b7a6e0..6ce7291 100644
+--- a/doc/ref/api-options.texi
++++ b/doc/ref/api-options.texi
+@@ -377,9 +377,9 @@ configure @emph{reading}, @emph{printing}, @emph{debugging} or
+ * User level options interfaces::
+ * Reader options::
+ * Printing options::
+-* Debugger options::
+ * Evaluator options::
+ * Evaluator trap options::
++* Debugger options::
+ * Examples of option use::
+ @end menu
+
+diff --git a/doc/ref/api-utility.texi b/doc/ref/api-utility.texi
+index 4a90212..9a4f3cc 100644
+--- a/doc/ref/api-utility.texi
++++ b/doc/ref/api-utility.texi
+@@ -657,7 +657,7 @@ Return 1 if @var{x} is a Scheme-level hook, 0 otherwise.
+ @end deftypefn
+
+
+-@subsubsection Handling Scheme-level hooks from C code
++@subsubheading Handling Scheme-level hooks from C code
+
+ Here is an example of how to handle Scheme-level hooks from C code using
+ the above functions.
+diff --git a/doc/ref/fdl.texi b/doc/ref/fdl.texi
+index 17fe148..4866055 100644
+--- a/doc/ref/fdl.texi
++++ b/doc/ref/fdl.texi
+@@ -408,7 +408,7 @@ as a draft) by the Free Software Foundation.
+ @end enumerate
+
+ @page
+-@appendixsubsec ADDENDUM: How to use this License for your documents
++@appendixsec ADDENDUM: How to use this License for your documents
+
+ To use this License in a document you have written, include a copy of
+ the License in the document and put the following copyright and
+diff --git a/doc/ref/gh.texi b/doc/ref/gh.texi
+index 95dfd92..bbd3af1 100644
+--- a/doc/ref/gh.texi
++++ b/doc/ref/gh.texi
+@@ -995,8 +995,8 @@ These correspond to the Scheme @code{(cons a b)} and @code{(list l0 l1
+
+ @deftypefun SCM gh_car (SCM @var{obj})
+ @deftypefunx SCM gh_cdr (SCM @var{obj})
+-@dots{}
+-
++@deftypefunx SCM gh_c[ad][ad]r (SCM @var{obj})
++@deftypefunx SCM gh_c[ad][ad][ad]r (SCM @var{obj})
+ @deftypefunx SCM gh_c[ad][ad][ad][ad]r (SCM @var{obj})
+ These correspond to the Scheme @code{(caadar ls)} procedures etc @dots{}
+ @end deftypefun
+--
+1.8.2.1
+
diff --git a/dev-scheme/guile/files/guile-1.8.8-mkdir-mask.patch b/dev-scheme/guile/files/guile-1.8.8-mkdir-mask.patch
new file mode 100644
index 000000000000..7d1c703835f1
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-mkdir-mask.patch
@@ -0,0 +1,35 @@
+--- a/libguile/filesys.c 2016-11-05 15:03:52.131894648 +0100
++++ b/libguile/filesys.c 2016-11-05 15:07:13.275894481 +0100
+@@ -791,24 +791,18 @@
+ SCM_DEFINE (scm_mkdir, "mkdir", 1, 1, 0,
+ (SCM path, SCM mode),
+ "Create a new directory named by @var{path}. If @var{mode} is omitted\n"
+- "then the permissions of the directory file are set using the current\n"
+- "umask. Otherwise they are set to the decimal value specified with\n"
+- "@var{mode}. The return value is unspecified.")
++ "then the permissions of the directory are set to @code{#o777}\n"
++ "masked with the current umask (@pxref{Processes, @code{umask}}).\n"
++ "Otherwise they are set to the value specified with @var{mode}.\n"
++ "The return value is unspecified.")
+ #define FUNC_NAME s_scm_mkdir
+ {
+ int rv;
+- mode_t mask;
++ mode_t c_mode;
+
+- if (SCM_UNBNDP (mode))
+- {
+- mask = umask (0);
+- umask (mask);
+- STRING_SYSCALL (path, c_path, rv = mkdir (c_path, 0777 ^ mask));
+- }
+- else
+- {
+- STRING_SYSCALL (path, c_path, rv = mkdir (c_path, scm_to_uint (mode)));
+- }
++ c_mode = SCM_UNBNDP (mode) ? 0777 : scm_to_uint (mode);
++
++ STRING_SYSCALL (path, c_path, rv = mkdir (c_path, c_mode));
+ if (rv != 0)
+ SCM_SYSERROR;
+ return SCM_UNSPECIFIED;
diff --git a/dev-scheme/guile/files/guile-1.8.8-readline.patch b/dev-scheme/guile/files/guile-1.8.8-readline.patch
new file mode 100644
index 000000000000..68f64c528a4b
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-readline.patch
@@ -0,0 +1,34 @@
+Make guile-readline optional
+
+https://bugs.gentoo.org/392553
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -24,7 +24,7 @@
+ #
+ AUTOMAKE_OPTIONS = 1.10
+
+-SUBDIRS = oop libguile ice-9 guile-config guile-readline emacs \
++SUBDIRS = oop libguile ice-9 guile-config @GUILE_READLINE@ emacs \
+ scripts srfi doc examples test-suite benchmark-suite lang am
+
+ bin_SCRIPTS = guile-tools
+--- a/configure.in
++++ b/configure.in
+@@ -57,7 +57,15 @@ AH_TOP(/*GUILE_CONFIGURE_COPYRIGHT*/)
+ #
+ #--------------------------------------------------------------------
+
+-AC_CONFIG_SUBDIRS(guile-readline)
++GUILE_READLINE=
++AC_ARG_ENABLE([readline],
++ [AS_HELP_STRING([--disable-readline],
++ [disable building guile-readline])],
++ if test "x$enable_readline" != xno; then
++ AC_CONFIG_SUBDIRS([guile-readline])
++ GUILE_READLINE="guile-readline"
++ fi)
++AC_SUBST([GUILE_READLINE])
+
+ #--------------------------------------------------------------------
+
diff --git a/dev-scheme/guile/files/guile-1.8.8-sandbox.patch b/dev-scheme/guile/files/guile-1.8.8-sandbox.patch
new file mode 100644
index 000000000000..70d752fdae97
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-sandbox.patch
@@ -0,0 +1,15 @@
+Prevent sandbox violation when installing
+
+https://bugs.gentoo.org/521546
+
+--- a/guile-config/Makefile.am
++++ b/guile-config/Makefile.am
+@@ -39,8 +39,3 @@ guile-config: guile-config.in ${top_builddir}/libguile/libpath.h
+ -e s:@-GUILE_VERSION-@:${GUILE_VERSION}:
+ chmod +x guile-config.tmp
+ mv guile-config.tmp guile-config
+-
+-## Get rid of any copies of the configuration script under the old
+-## name, so people don't end up running ancient copies of it.
+-install-exec-local:
+- rm -f ${bindir}/build-guile
diff --git a/dev-scheme/guile/files/guile-1.8.8-tinfo.patch b/dev-scheme/guile/files/guile-1.8.8-tinfo.patch
new file mode 100644
index 000000000000..6c4d0116246e
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-tinfo.patch
@@ -0,0 +1,15 @@
+With ncurses[tinfo] tgoto will be in libtinfo
+
+https://bugs.gentoo.org/539316
+
+--- a/guile-readline/configure.in
++++ b/guile-readline/configure.in
+@@ -33,7 +33,7 @@ if test "$MINGW32" = "yes" ; then
+ fi
+ AC_SUBST(EXTRA_DEFS)
+
+-for termlib in ncurses curses termcap terminfo termlib ; do
++for termlib in ncurses curses termcap terminfo termlib tinfo ; do
+ AC_CHECK_LIB(${termlib}, tgoto,
+ [LIBS="-l${termlib} $LIBS"; break])
+ done
diff --git a/dev-scheme/guile/files/guile-2-snarf.patch b/dev-scheme/guile/files/guile-2-snarf.patch
new file mode 100644
index 000000000000..c6ab5cd48cd6
--- /dev/null
+++ b/dev-scheme/guile/files/guile-2-snarf.patch
@@ -0,0 +1,47 @@
+From f775ab3654357fcaad294b95efb0b1c16de1eda8 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Sun, 19 Feb 2017 22:58:40 +0000
+Subject: guile-snarf: skip -g* arguments to avoid build failure
+
+* libguile/guile-snarf.in: skip -g* arguments to avoid failure on
+ -ggdb3.
+
+Bug: https://bugs.gentoo.org/608190
+Bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25803
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+---
+ libguile/guile-snarf.in | 16 ++++++++++++++--
+ 1 file changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/libguile/guile-snarf.in b/libguile/guile-snarf.in
+index 47bbc04..22dc1d3 100644
+--- a/libguile/guile-snarf.in
++++ b/libguile/guile-snarf.in
+@@ -95,10 +95,22 @@ if [ x"$CPP" = x ] ; then cpp="@CPP@" ; else cpp="$CPP" ; fi
+
+ trap "rm -rf $tempdir" 0 1 2 15
+
++# filter out -g* flags from commandline
++# as some flags like -ggdb3 cause CPP
++
++cpp_args=""
++for arg in "$@"
++do
++ case "$arg" in
++ -g*) ;; # skip debug flag
++ *) cpp_args="$cpp_args $arg" ;;
++ esac
++done
++
+ if [ ! "$outfile" = "-" ] ; then
+- modern_snarf "$@" > $outfile
++ modern_snarf $cpp_args > $outfile
+ else
+- modern_snarf "$@"
++ modern_snarf $cpp_args
+ fi
+
+ # zonk outfile if errors occurred
+--
+cgit v1.0-41-gc330
+
diff --git a/dev-scheme/guile/files/guile-2.0.14-darwin.patch b/dev-scheme/guile/files/guile-2.0.14-darwin.patch
new file mode 100644
index 000000000000..17741ae352c2
--- /dev/null
+++ b/dev-scheme/guile/files/guile-2.0.14-darwin.patch
@@ -0,0 +1,38 @@
+fix compilation on Darwin
+
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24862#23
+https://bugs.gentoo.org/show_bug.cgi?id=612338
+
+--- guile-2.0.14/libguile/filesys.c
++++ guile-2.0.14/libguile/filesys.c
+@@ -1486,6 +1486,9 @@
+ mode_bits = scm_i_mode_bits (mode);
+ }
+
++#ifdef __APPLE__
++ open_flags &= O_APPEND|O_SHLOCK|O_EXLOCK|O_CLOEXEC;
++#endif
+ SCM_SYSCALL (rv = mkostemp (c_tmpl, open_flags));
+ if (rv == -1)
+ SCM_SYSERROR;
+--- guile-2.0.14/libguile/stime.c
++++ guile-2.0.14/libguile/stime.c
+@@ -830,6 +830,10 @@
+
+ #ifdef HAVE_POSIX_CPUTIME
+ {
++#ifdef __APPLE__
++ if (clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &posix_run_time_base) == 0)
++ get_internal_run_time = get_internal_run_time_posix_timer;
++#else
+ clockid_t dummy;
+
+ /* Only use the _POSIX_CPUTIME clock if it's going to work across
+@@ -839,6 +843,7 @@
+ get_internal_run_time = get_internal_run_time_posix_timer;
+ else
+ errno = 0;
++#endif
+ }
+ #endif /* HAVE_POSIX_CPUTIME */
+ #endif /* HAVE_CLOCKTIME */
diff --git a/dev-scheme/guile/files/guile-2.0.14-ia64-fix-crash-thread-context-switch.patch b/dev-scheme/guile/files/guile-2.0.14-ia64-fix-crash-thread-context-switch.patch
new file mode 100644
index 000000000000..c2f136ddd104
--- /dev/null
+++ b/dev-scheme/guile/files/guile-2.0.14-ia64-fix-crash-thread-context-switch.patch
@@ -0,0 +1,63 @@
+From f92888853439a8ded221f3423865c78de2a96a14 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Sun, 5 Nov 2017 09:30:45 +0000
+Subject: ia64: Fix crash in thread context switch.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes <https://bugs.gnu.org/29151> and <https://bugs.gentoo.org/613986>.
+
+Backtrace looks like that:
+
+ Program terminated with signal SIGSEGV, Segmentation fault.
+ #0 0x200000000014a5c0 in scm_ia64_longjmp (JB=0x6000000000817020, VAL=1) at continuations.c:372
+ 372 t->pending_rbs_continuation->backing_store,
+ [Current thread is 1 (Thread 0x2000000000049340 (LWP 8190))]
+ (gdb) bt
+ #0 0x200000000014a5c0 in scm_ia64_longjmp (JB=0x6000000000817020, VAL=1) at continuations.c:372
+ #1 0x2000000000148e00 in scm_c_abort (vm=0x60000000000edea0, tag=0x6000000000795ba0, n=0, argv=0x60000fffff7f0ce0, cookie=-1) at control.c:239
+ #2 0x2000000000149070 in scm_at_abort (tag=0x6000000000795ba0, args=0x304) at control.c:258
+ (gdb) print t
+ $2 = (scm_i_thread *) 0x6000000000068000
+ (gdb) print t->pending_rbs_continuation
+ $3 = (scm_t_contregs *) 0xffeb
+
+The problem here is the value of 't->pending_rbs_continuation' pointer.
+It's supposed to poin to a register stack pointer or be NULL if not yet
+backed up.
+
+The problem is it is never initialized to NULL at creation time and
+contained garbage on stack. Sometimes people are lucky and have zeros
+on stack and guile works. But sometimes there is something and guile
+crashes.
+
+The fix is trivial: initialize 'pending_rbs_continuation = NULL'
+at thread registration time (the same way other threads are registered).
+
+Reported-by: Matt Turner
+
+* libguile/threads.c (guilify_self_1): Initialize pending_rbs_continuation
+to avoid crash on ia64.
+
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+Signed-off-by: Ludovic Courtès <ludo@gnu.org>
+---
+ libguile/threads.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libguile/threads.c b/libguile/threads.c
+index 9ceb5b8..770f62c 100644
+--- a/libguile/threads.c
++++ b/libguile/threads.c
+@@ -395,6 +395,7 @@ guilify_self_1 (struct GC_stack_base *base, int needs_unregister)
+ t.base = base->mem_base;
+ #ifdef __ia64__
+ t.register_backing_store_base = base->reg_base;
++ t.pending_rbs_continuation = 0;
+ #endif
+ t.continuation_root = SCM_EOL;
+ t.continuation_base = t.base;
+--
+cgit v1.0-41-gc330
+
diff --git a/dev-scheme/guile/files/guile-2.2.3-gentoo-sandbox.patch b/dev-scheme/guile/files/guile-2.2.3-gentoo-sandbox.patch
new file mode 100644
index 000000000000..1cded2d2c924
--- /dev/null
+++ b/dev-scheme/guile/files/guile-2.2.3-gentoo-sandbox.patch
@@ -0,0 +1,10 @@
+diff --git a/test-suite/standalone/test-out-of-memory b/test-suite/standalone/test-out-of-memory
+index 2216512..0ed6079 100755
+--- a/test-suite/standalone/test-out-of-memory
++++ b/test-suite/standalone/test-out-of-memory
+@@ -5,2 +5,5 @@ exec guile -q -s "$0" "$@"
+
++; Gentoo's sandbox does not handle OOM gracefully
++(exit 77)
++
+ (unless (defined? 'setrlimit)
diff --git a/dev-scheme/guile/guile-1.8.8-r3.ebuild b/dev-scheme/guile/guile-1.8.8-r3.ebuild
new file mode 100644
index 000000000000..c2740abb37d5
--- /dev/null
+++ b/dev-scheme/guile/guile-1.8.8-r3.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils autotools flag-o-matic elisp-common
+
+DESCRIPTION="Scheme interpreter"
+HOMEPAGE="https://www.gnu.org/software/guile/"
+SRC_URI="mirror://gnu/guile/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="debug debug-freelist debug-malloc +deprecated discouraged emacs networking nls readline +regex +threads"
+
+RESTRICT="!regex? ( test )"
+
+RDEPEND="
+ >=dev-libs/gmp-4.1:0=
+ dev-libs/libltdl:0=
+ sys-devel/gettext
+ sys-libs/ncurses:0=
+ emacs? ( virtual/emacs )
+ readline? ( sys-libs/readline:0= )"
+DEPEND="${RDEPEND}
+ sys-apps/texinfo
+ sys-devel/libtool"
+
+# 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/8"
+MAJOR="1.8"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-fix_guile-config.patch" \
+ "${FILESDIR}/${P}-gcc46.patch" \
+ "${FILESDIR}/${P}-gcc5.patch" \
+ "${FILESDIR}/${P}-makeinfo-5.patch" \
+ "${FILESDIR}/${P}-gtexinfo-5.patch" \
+ "${FILESDIR}/${P}-readline.patch" \
+ "${FILESDIR}/${P}-tinfo.patch" \
+ "${FILESDIR}/${P}-sandbox.patch" \
+ "${FILESDIR}/${P}-mkdir-mask.patch"
+
+ sed \
+ -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g" \
+ -e "/AM_PROG_CC_STDC/d" \
+ -i guile-readline/configure.in || die
+
+ epatch_user
+
+ mv "${S}"/configure.{in,ac} || die
+ mv "${S}"/guile-readline/configure.{in,ac} || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # see bug #178499
+ filter-flags -ftree-vectorize
+
+ #will fail for me if posix is disabled or without modules -- hkBst
+ econf \
+ --disable-error-on-warning \
+ --disable-static \
+ --enable-posix \
+ $(use_enable networking) \
+ $(use_enable readline) \
+ $(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
+
+ # 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 || die
+ elisp-compile *.el || die
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS
+
+ # texmacs needs this, closing bug #23493
+ dodir /etc/env.d
+ echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > "${ED}"/etc/env.d/50guile || die
+
+ # 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() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-scheme/guile/guile-2.0.13-r2.ebuild b/dev-scheme/guile/guile-2.0.13-r2.ebuild
new file mode 100644
index 000000000000..037cc1595b2b
--- /dev/null
+++ b/dev-scheme/guile/guile-2.0.13-r2.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit flag-o-matic autotools
+
+DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions"
+HOMEPAGE="https://www.gnu.org/software/guile/"
+SRC_URI="mirror://gnu/guile/${P}.tar.gz"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+LICENSE="LGPL-3+"
+IUSE="debug debug-malloc +deprecated +networking +nls +regex +threads" # upstream recommended +networking +nls
+# emacs useflag removal not working
+
+# workaround for bug 596322
+REQUIRED_USE="regex"
+
+RDEPEND="
+ >=dev-libs/boehm-gc-7.0:=[threads?]
+ dev-libs/gmp:=
+ virtual/libffi
+ dev-libs/libltdl:=
+ dev-libs/libunistring:0=
+ sys-devel/libtool
+ sys-libs/ncurses:0=
+ sys-libs/readline:0="
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ sys-apps/texinfo
+ sys-devel/gettext"
+
+SLOT="12/22" # subslot is soname version
+MAJOR="2.0"
+
+DOCS=( GUILE-VERSION HACKING README )
+
+PATCHES=( "${FILESDIR}/${PN}-2-snarf.patch" )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ # see bug #178499
+ filter-flags -ftree-vectorize
+
+ econf \
+ --disable-error-on-warning \
+ --disable-rpath \
+ --enable-posix \
+ --without-libgmp-prefix \
+ --without-libiconv-prefix \
+ --without-libintl-prefix \
+ --without-libltdl-prefix \
+ --without-libreadline-prefix \
+ --without-libunistring-prefix \
+ $(use_enable debug guile-debug) \
+ $(use_enable debug-malloc) \
+ $(use_enable deprecated) \
+ $(use_enable networking) \
+ $(use_enable nls) \
+ $(use_enable regex) \
+ $(use_with threads)
+}
+
+src_install() {
+ default
+
+ # From Novell
+ # https://bugzilla.novell.com/show_bug.cgi?id=874028#c0
+ dodir /usr/share/gdb/auto-load/$(get_libdir)
+ mv "${ED}"/usr/$(get_libdir)/libguile-*-gdb.scm "${ED}"/usr/share/gdb/auto-load/$(get_libdir) || die
+
+ # necessary for registering slib, see bug 206896
+ keepdir /usr/share/guile/site
+
+ # Dark magic necessary for some deps
+ dosym libguile-2.0.so /usr/$(get_libdir)/libguile.so
+}
diff --git a/dev-scheme/guile/guile-2.0.14-r3.ebuild b/dev-scheme/guile/guile-2.0.14-r3.ebuild
new file mode 100644
index 000000000000..7e73e36e14d0
--- /dev/null
+++ b/dev-scheme/guile/guile-2.0.14-r3.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit flag-o-matic autotools ltprune
+
+DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions"
+HOMEPAGE="https://www.gnu.org/software/guile/"
+SRC_URI="mirror://gnu/guile/${P}.tar.gz"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+LICENSE="LGPL-3+"
+IUSE="debug debug-malloc +deprecated +networking +nls +regex +threads" # upstream recommended +networking +nls
+# emacs useflag removal not working
+
+# workaround for bug 596322
+REQUIRED_USE="regex"
+
+RDEPEND="
+ >=dev-libs/boehm-gc-7.0:=[threads?]
+ dev-libs/gmp:=
+ virtual/libffi
+ dev-libs/libltdl:=
+ dev-libs/libunistring:0=
+ sys-devel/libtool
+ sys-libs/ncurses:0=
+ sys-libs/readline:0="
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ sys-apps/texinfo
+ sys-devel/gettext"
+
+SLOT="12/22" # subslot is soname version
+MAJOR="2.0"
+
+DOCS=( GUILE-VERSION HACKING README )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2-snarf.patch"
+ "${FILESDIR}/${P}-darwin.patch"
+ "${FILESDIR}/${P}-ia64-fix-crash-thread-context-switch.patch"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ # see bug #178499
+ filter-flags -ftree-vectorize
+
+ econf \
+ --disable-error-on-warning \
+ --disable-rpath \
+ --disable-static \
+ --enable-posix \
+ --without-libgmp-prefix \
+ --without-libiconv-prefix \
+ --without-libintl-prefix \
+ --without-libltdl-prefix \
+ --without-libreadline-prefix \
+ --without-libunistring-prefix \
+ $(use_enable debug guile-debug) \
+ $(use_enable debug-malloc) \
+ $(use_enable deprecated) \
+ $(use_enable networking) \
+ $(use_enable nls) \
+ $(use_enable regex) \
+ $(use_with threads)
+}
+
+src_install() {
+ default
+ prune_libtool_files
+
+ # From Novell
+ # https://bugzilla.novell.com/show_bug.cgi?id=874028#c0
+ dodir /usr/share/gdb/auto-load/$(get_libdir)
+ mv "${ED}"/usr/$(get_libdir)/libguile-*-gdb.scm "${ED}"/usr/share/gdb/auto-load/$(get_libdir) || die
+
+ # necessary for registering slib, see bug 206896
+ keepdir /usr/share/guile/site
+
+ # Dark magic necessary for some deps
+ dosym libguile-2.0.so /usr/$(get_libdir)/libguile.so
+}
diff --git a/dev-scheme/guile/guile-2.2.3.ebuild b/dev-scheme/guile/guile-2.2.3.ebuild
new file mode 100644
index 000000000000..895f6d9e02bc
--- /dev/null
+++ b/dev-scheme/guile/guile-2.2.3.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic
+
+MAJOR="2.2"
+DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions"
+HOMEPAGE="https://www.gnu.org/software/guile/"
+SRC_URI="mirror://gnu/guile/${P}.tar.gz"
+
+LICENSE="LGPL-3+"
+SLOT="12/2.2-1" # libguile-2.2.so.1 => 2.2-1
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="debug debug-malloc +deprecated +networking +nls +regex +threads" # upstream recommended +networking +nls
+REQUIRED_USE="regex" # workaround for bug 596322
+RESTRICT="strip"
+
+RDEPEND="
+ >=dev-libs/boehm-gc-7.0:=[threads?]
+ dev-libs/gmp:=
+ virtual/libffi
+ dev-libs/libltdl:=
+ dev-libs/libunistring:0=
+ sys-devel/libtool
+ sys-libs/ncurses:0=
+ sys-libs/readline:0="
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ sys-apps/texinfo
+ sys-devel/gettext"
+
+PATCHES=( "${FILESDIR}/${P}-gentoo-sandbox.patch" )
+DOCS=( GUILE-VERSION HACKING README )
+
+src_configure() {
+ # see bug #178499
+ filter-flags -ftree-vectorize
+
+ econf \
+ --disable-error-on-warning \
+ --disable-rpath \
+ --disable-static \
+ --enable-posix \
+ --without-libgmp-prefix \
+ --without-libiconv-prefix \
+ --without-libintl-prefix \
+ --without-libltdl-prefix \
+ --without-libreadline-prefix \
+ --without-libunistring-prefix \
+ $(use_enable debug guile-debug) \
+ $(use_enable debug-malloc) \
+ $(use_enable deprecated) \
+ $(use_enable networking) \
+ $(use_enable nls) \
+ $(use_enable regex) \
+ $(use_with threads)
+}
+
+src_install() {
+ default
+
+ # From Novell
+ # https://bugzilla.novell.com/show_bug.cgi?id=874028#c0
+ dodir /usr/share/gdb/auto-load/$(get_libdir)
+ mv "${ED}"/usr/$(get_libdir)/libguile-*-gdb.scm "${ED}"/usr/share/gdb/auto-load/$(get_libdir) || die
+
+ # necessary for registering slib, see bug 206896
+ keepdir /usr/share/guile/site
+
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/dev-scheme/guile/metadata.xml b/dev-scheme/guile/metadata.xml
new file mode 100644
index 000000000000..02c7884936bb
--- /dev/null
+++ b/dev-scheme/guile/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>scheme@gentoo.org</email>
+ <name>Gentoo Scheme Project</name>
+ </maintainer>
+ <longdescription lang="en">
+Guile is a library designed to help programmers create flexible applications. Using Guile in an application allows programmers to write plug-ins, or modules (there are many names, but the concept is essentially the same) and users to use them to have an application fit their needs.
+ </longdescription>
+ <use>
+ <flag name="debug-freelist">Include garbage collector freelist debugging
+ code</flag>
+ <flag name="debug-malloc">Include malloc debugging code</flag>
+ <flag name="deprecated">Enable deprecated features</flag>
+ <flag name="discouraged"> (implied by deprecated) enable merely discouraged
+ features</flag>
+ <flag name="networking">Include networking interfaces</flag>
+ <flag name="regex"> Include regular expression interfaces</flag>
+ </use>
+</pkgmetadata>