summaryrefslogtreecommitdiff
path: root/dev-scheme/gauche
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-scheme/gauche
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-scheme/gauche')
-rw-r--r--dev-scheme/gauche/Manifest15
-rw-r--r--dev-scheme/gauche/files/gauche-0.9-ext-ldflags.patch11
-rw-r--r--dev-scheme/gauche/files/gauche-0.9-rfc.tls.patch12
-rw-r--r--dev-scheme/gauche/files/gauche-0.9.5-bsd.patch25
-rw-r--r--dev-scheme/gauche/files/gauche-0.9.5-libressl.patch19
-rw-r--r--dev-scheme/gauche/files/gauche-0.9.5-unicode.patch19
-rw-r--r--dev-scheme/gauche/files/gauche-ext-ldflags.patch11
-rw-r--r--dev-scheme/gauche/files/gauche-gauche.m4.patch18
-rw-r--r--dev-scheme/gauche/files/gauche-rfc.tls.patch12
-rw-r--r--dev-scheme/gauche/files/gauche-rpath.patch10
-rw-r--r--dev-scheme/gauche/files/gauche-xz-info.patch31
-rw-r--r--dev-scheme/gauche/gauche-0.9.5.ebuild60
-rw-r--r--dev-scheme/gauche/gauche-0.9.6.ebuild58
-rw-r--r--dev-scheme/gauche/metadata.xml26
14 files changed, 327 insertions, 0 deletions
diff --git a/dev-scheme/gauche/Manifest b/dev-scheme/gauche/Manifest
new file mode 100644
index 000000000000..746e2bc16b58
--- /dev/null
+++ b/dev-scheme/gauche/Manifest
@@ -0,0 +1,15 @@
+AUX gauche-0.9-ext-ldflags.patch 384 BLAKE2B 49b80ce3cdac634ba03dc51483ef692cd4ddfecdfd9da9880ddf76b13c49d4fc2c67ac0d7c99ec9636210d11ddb6f68eef3a605f22cf96fd35da47f1665f1e67 SHA512 e38f1c7bc2fa6a1f5f56e20f9818d7f52e98ba8c3e101b642441421f5194bc4223c862e20d3d731da632642dc44545974483459727bb184d9da9b9742504f34d
+AUX gauche-0.9-rfc.tls.patch 401 BLAKE2B 8cc1fca64ebaa0630b9e0f3862bbe4c167977b8a354df3b7f154ff4f1078344b381826f2eafece97825b3454069b09b53c07eea87720684b93897011bd3d79cd SHA512 5b2baafa052208c1843e7d05789bf8a10c63fbb48de66ca7e8b7450a5cb23c1c5641c34a8ff8ee525aa073de21b1f970ba4c310b2678dc1f81293e51c22de321
+AUX gauche-0.9.5-bsd.patch 714 BLAKE2B a52d2fa09af6895db8e605cfc4d88f1537e4f95c800c6c2637fc117c4602686015b85ccf69836b7d290ea3f75131bad0c2e18d405ce33abdc34b11d4f7c3b8f2 SHA512 416aa04f7f3aee310fd0e2c8073caa247e0fa84bb32f32ccadd125a17d26d4410554e2a6643493a3dbaa034fe07b54ae44f0f053238ea909b317551541431bac
+AUX gauche-0.9.5-libressl.patch 707 BLAKE2B ffe38d9ff4637b59786bf338bc918e4cfe8328eee124c1883e9963dcfb06b5b34255bcf3bf80ce911802b3553649e9f050694a75abd241abf6a4ec813f99f22a SHA512 98941e03fa4f96e26d6c0ff85f3e16bcd69aa5c77140e42de86556bfba87b83f340dd6be7e2f23e2d92433e46198cd500ed488546493cdb91c9e8ff13b457fa7
+AUX gauche-0.9.5-unicode.patch 700 BLAKE2B c88e724d483f04863cce892db65f66b6abf9b2d7333bc70b7040c4f6c79fbe7ebd9d135c2c7596f592d4da3a8e09f7324c7deafd2e7e17401f09c68bdf86bc2d SHA512 4c58e2c6fcb5b58f8c130fec7af4c0af187f54c186d6e54ee1787cb8dd4baab51f9dfd776d1d8adbd86da0be0e813f6a82322e7ec22eafda2c626637f14097f8
+AUX gauche-ext-ldflags.patch 384 BLAKE2B 57b7463086c0763413b8fda3d7688c6a61bd4456b3209a80b6eabed088e0c71eb5ae4c53b18fb0e6b7468ac03fe33f7884f265ab1ea998e8457b0ef126e6e841 SHA512 df42c5f25adc5a67ad049ab78aeaa4f565d18818dd6dfff5a64a78e9e3101595a4279d72e8f946e4f7da7be30f9f11c089c7f4a65d2eb2135980414c3d6e9cbb
+AUX gauche-gauche.m4.patch 592 BLAKE2B ae22e11c85fa4cbae7217a8b632041a9f4241023f38105e906035210bcd82604ac69bb36c5874c4662a32e0cb551a9f59cc96487096c12356f9ef19c6d25de79 SHA512 5082265340c6011d653f20de3a89f1eed1a48b896d521bb42aff1f748cafd3c60953c3b723ab9b053dcd941ed6b61f00f9f69a25f16db74d987228db2318ac68
+AUX gauche-rfc.tls.patch 408 BLAKE2B e4e41272e7b3a1393fc2e07ba90b9c883220447f0c4730e5bc1d268e1198b17a10374451323e181f5eae1e3d2793c8c708d0cc0365ebc2d8e82648804b0bc349 SHA512 457aebafad6fa5f3ad494bfb545e217d043b19c20929be2e067601ffb4b015bcf4654af9295758792c20ebb27dee9315f232a96d1154a56dd88d1baad015046f
+AUX gauche-rpath.patch 215 BLAKE2B 081374abd3272ae10b7614af92c8f16054c1eaa6fb636d9f6300589751197f9b19b706a4fe500e985c25ea250f9a2a2338d903094d9ca95c2622e618ea6ce9ed SHA512 1bda4c2e0bb3928d040eb07d56a9eb0aebd68e52bd0756160ef3eec46ba8c1869b8a37dbb798a712a59918d6bf77e7ca74ec38a4e2e30bb6417f967b5cdc8da6
+AUX gauche-xz-info.patch 1322 BLAKE2B f73447a306ec54ff372520c603adf2da46e1b71225a27d09af5c3ae8770431c5fef4d974cbf6e08fa1159807719c798680b18c7f624ec83b33d5ddf8688946f0 SHA512 22b6a37ea23bcba7e4ea4d09f26b069225cc36ef32dc0fbc865cfa4052765d0363811f693d6cc5cc8f3fdf355b93eec7c58934d18b2cb8079cadfd3b0cd4ffa4
+DIST Gauche-0.9.5.tgz 6458675 BLAKE2B ca7f1ad48841a2a6a98632980d8a4fe5065234de5c23835c24e633345ba77fd4d3610d073c00a8da00c1e794e22a74e493793d8fca4a7f3ed1a3161a29622f30 SHA512 6d853d734c7a56a86f0015b1bfef378803d6acc1e0405ed841eab5afc08d1edef736d85df10c86d75fd5fb6b2def684bb1f2095a019133b9f497192f5511197a
+DIST Gauche-0.9.6.tgz 6927530 BLAKE2B 9b32a0db4fc41e2b35331818850e7aa3c1ac5b1294c76caa053abe1ae2da20a0ac4424470ca94626108f996700d1b7e52f6f9e5c6f0a2326f7e6862880f48aa1 SHA512 1d8a7f56fd9ca183d6dce1dedadfaec7c7150c29540e5158f2a61977f7406d7d7a8ab753ef1912865a7d7e9a9e2fa845d86b2eb4c5e07a176f1c60276bc1908f
+EBUILD gauche-0.9.5.ebuild 1264 BLAKE2B 5431d4bca6b19bdaf5097abec31e4ac72799d79de9d694c26480ec0efb116038f4094459963d29612b1e0c85b5a7f20313000e8125fc4f4d8fe4df4dfef2363a SHA512 156a765380e68cbba229cb62423aceeefa040f9089e9059d3d2a02a6e5e2bf0c6abdada8372dca43493fa64148355922567afa00c9fbd6d68257a1eb17e0445f
+EBUILD gauche-0.9.6.ebuild 1218 BLAKE2B 651120d2c2c922f828632fb732c063cc06401d2cf51efd7852cff36e22de864d95ee814a9f2649429f9e782614a99d36cb302537a49f70913fcbf5bf083193ce SHA512 129e0c1e4e81f1d04f599196b8ad445893a7d67d4294d4e90b7046bbcf25f6555591f8f0f015d6e9cb28edef3d1d70693024db6dd233be04dae512e4c90bc2ae
+MISC metadata.xml 909 BLAKE2B faaf122e0b844cf34bb8b4417cc5e5728e37bcd14a4717d23e42770d6ce2c732724f46f48e01e32684f2f229ea560e2968c11e86473eba50c93dd1184d110cd5 SHA512 031f92387b4dec50e4b534d70c15e70b2a0f7e4ffa9e8a70a47ed9467bcbc4bc57b2210ff50b0e49c1ed73028d6eee4dfd28994cd8e23bdf041364f052e985de
diff --git a/dev-scheme/gauche/files/gauche-0.9-ext-ldflags.patch b/dev-scheme/gauche/files/gauche-0.9-ext-ldflags.patch
new file mode 100644
index 000000000000..b4aedef2a316
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-0.9-ext-ldflags.patch
@@ -0,0 +1,11 @@
+--- a/ext/Makefile.ext.in
++++ b/ext/Makefile.ext.in
+@@ -22,7 +22,7 @@
+ LIBS = $(XLIBS) @LIBS@
+ CFLAGS = @CFLAGS@ @SHLIB_SO_CFLAGS@ $(XCFLAGS)
+ CPPFLAGS = @CPPFLAGS@ $(XCPPFLAGS)
+-LDFLAGS = $(LOCAL_LFLAGS) $(XLDFLAGS) @SHLIB_SO_LDFLAGS@
++LDFLAGS = $(LOCAL_LFLAGS) $(XLDFLAGS) @LDFLAGS@ @SHLIB_SO_LDFLAGS@
+
+ # These are set by configure
+ DEFS = @DEFS@
diff --git a/dev-scheme/gauche/files/gauche-0.9-rfc.tls.patch b/dev-scheme/gauche/files/gauche-0.9-rfc.tls.patch
new file mode 100644
index 000000000000..1e5ef71b6c91
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-0.9-rfc.tls.patch
@@ -0,0 +1,12 @@
+--- a/ext/tls/ssltest-mod.scm
++++ b/ext/tls/ssltest-mod.scm
+@@ -53,7 +53,8 @@
+ ($ format #t "~a\n" $ regexp-replace-all* line
+ #/\.\.\/ssl\// srcpath-replace
+ #/openssl / kicker-replace
+- #/system/ "safe_system")))
++ #/system/ "safe_system"
++ #/(s_server) / "\\1 -4 ")))
+
+ (p "#include <errno.h>"
+ "int safe_system(const char *commands)"
diff --git a/dev-scheme/gauche/files/gauche-0.9.5-bsd.patch b/dev-scheme/gauche/files/gauche-0.9.5-bsd.patch
new file mode 100644
index 000000000000..615020df8dfe
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-0.9.5-bsd.patch
@@ -0,0 +1,25 @@
+commit da2ea76503e8f1784d0f0be26435d4c8e0d1b12f
+Author: Shiro Kawai <shiro@acm.org>
+Date: Sat Oct 15 11:44:28 2016 -1000
+
+ Avoid preprocessor symbols redefinition on OpenBSD
+
+ https://sourceforge.net/p/gauche/mailman/message/35429549/
+
+diff --git a/ext/net/gauche-net.h b/ext/net/gauche-net.h
+index d4f1dcd..decba64 100644
+--- a/ext/net/gauche-net.h
++++ b/ext/net/gauche-net.h
+@@ -362,8 +362,12 @@ extern ScmObj Scm_GetAddrinfo(const char *nodename,
+ struct addrinfo *hints);
+ extern ScmObj Scm_GetNameinfo(ScmSockAddr *addr, int flags);
+
++#ifndef NI_MAXHOST
+ #define NI_MAXHOST 1025
++#endif
++#ifndef NI_MAXSERV
+ #define NI_MAXSERV 32
++#endif
+
+ #endif /* HAVE_IPV6 */
+
diff --git a/dev-scheme/gauche/files/gauche-0.9.5-libressl.patch b/dev-scheme/gauche/files/gauche-0.9.5-libressl.patch
new file mode 100644
index 000000000000..7b4c839dccb8
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-0.9.5-libressl.patch
@@ -0,0 +1,19 @@
+commit c26a4836e767807dd8c98d280c4d9e742b759edd
+Author: Shiro Kawai <shiro@acm.org>
+Date: Sun Oct 9 02:04:19 2016 -1000
+
+ rfc.tls - Detect LibreSSL as well
+
+diff --git a/ext/tls/test.scm b/ext/tls/test.scm
+index 63a1d04..efbfbca 100644
+--- a/ext/tls/test.scm
++++ b/ext/tls/test.scm
+@@ -37,7 +37,7 @@
+ [(not gauche.os.windows)
+ (guard (e [(<process-abnormal-exit> e)
+ (no-openssl "couldn't run openssl command")])
+- (if-let1 m ($ #/OpenSSL\s+([\d\.]+\w*)/
++ (if-let1 m ($ #/(?:OpenSSL|LibreSSL)\s+([\d\.]+\w*)/
+ $ process-output->string `(,openssl-cmd "version"))
+ (let1 vers (m 1)
+ (unless (version>=? vers "1.0.1")
diff --git a/dev-scheme/gauche/files/gauche-0.9.5-unicode.patch b/dev-scheme/gauche/files/gauche-0.9.5-unicode.patch
new file mode 100644
index 000000000000..a87ca5d7c39c
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-0.9.5-unicode.patch
@@ -0,0 +1,19 @@
+commit d31eb5c02b65514e695b45c0c01cbd45a36bac4a
+Author: OOHASHI Daichi <dico.leque.comicron@gmail.com>
+Date: Thu Oct 20 10:48:17 2016 +0900
+
+ (char-general-category #\x20000) should be Lo
+
+diff --git a/src/gauche/char_utf_8.h b/src/gauche/char_utf_8.h
+index 082e764..5f92d13 100644
+--- a/src/gauche/char_utf_8.h
++++ b/src/gauche/char_utf_8.h
+@@ -294,7 +294,7 @@ static inline unsigned char Scm__LookupCharCategory(ScmChar ch)
+ {
+ if (ch == SCM_CHAR_INVALID || ch >= 0x10ffff) {
+ return SCM_CHAR_CATEGORY_Cn;
+- } else if (ch <= 0x20000) {
++ } else if (ch < 0x20000) {
+ return ucs_general_category_00000[ch];
+ } else {
+ return ucs_general_category_20000(ch);
diff --git a/dev-scheme/gauche/files/gauche-ext-ldflags.patch b/dev-scheme/gauche/files/gauche-ext-ldflags.patch
new file mode 100644
index 000000000000..a5a21532d1ee
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-ext-ldflags.patch
@@ -0,0 +1,11 @@
+--- a/ext/Makefile.ext.in
++++ b/ext/Makefile.ext.in
+@@ -22,7 +22,7 @@
+ LIBS = $(XLIBS) @LIBS@
+ CFLAGS = @CFLAGS@ @SHLIB_SO_CFLAGS@ $(XCFLAGS)
+ CPPFLAGS = @CPPFLAGS@ $(XCPPFLAGS)
+-LDFLAGS = $(LOCAL_LFLAGS) $(XLDFLAGS) @SHLIB_SO_LDFLAGS@
++LDFLAGS = $(LOCAL_LFLAGS) $(XLDFLAGS) @LDFLAGS@ @SHLIB_SO_LDFLAGS@
+ BUILD_GOSH_FLAGS =
+
+ # These are set by configure
diff --git a/dev-scheme/gauche/files/gauche-gauche.m4.patch b/dev-scheme/gauche/files/gauche-gauche.m4.patch
new file mode 100644
index 000000000000..1b9947cf5798
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-gauche.m4.patch
@@ -0,0 +1,18 @@
+--- a/m4/gauche.m4
++++ b/m4/gauche.m4
+@@ -103,13 +103,10 @@
+ AS_CASE(["$target"],
+ [i686-*], [I686OPT="-DUSE_I686_PREFETCH"])
+ AS_CASE(["$CC"],
+- [gcc*], [ dnl some systems may have gcc-2.95, gcc-3, etc.
++ [*gcc*], [ dnl some systems may have gcc-2.95, gcc-3, etc.
+ AS_CASE(["$target"],
+ [*mingw*], [],
+- [GCCOPT="-fomit-frame-pointer"])
+- AS_CASE(["$target"],
+- [i586-*], [GCCOPT="$GCCOPT -march=i586"],
+- [i686-*], [GCCOPT="$GCCOPT -march=i686"])])])
++ [GCCOPT="-fomit-frame-pointer"])])])
+ OPTFLAGS="$GCCOPT $I686OPT"
+ AC_SUBST(OPTFLAGS)
+ ])
diff --git a/dev-scheme/gauche/files/gauche-rfc.tls.patch b/dev-scheme/gauche/files/gauche-rfc.tls.patch
new file mode 100644
index 000000000000..cf570df0ed38
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-rfc.tls.patch
@@ -0,0 +1,12 @@
+--- a/ext/tls/ssltest-mod.scm
++++ b/ext/tls/ssltest-mod.scm
+@@ -53,7 +53,8 @@
+ ($ format #t "~a\n" $ regexp-replace-all* line
+ #/\.\.\/ssl\// srcpath-replace
+ #/openssl / kicker-replace
+- #/system\s*\(/ "safe_system(")))
++ #/system\s*\(/ "safe_system("
++ #/(s_server) / "\\1 -4 ")))
+
+ (p "#include <errno.h>"
+ "int safe_system(const char *commands)"
diff --git a/dev-scheme/gauche/files/gauche-rpath.patch b/dev-scheme/gauche/files/gauche-rpath.patch
new file mode 100644
index 000000000000..8774bac7be13
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-rpath.patch
@@ -0,0 +1,10 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -709,7 +709,6 @@
+ fi
+ if test "$RPATH_FLAG" != ""; then
+ RPATH_TMP=$RPATH_FLAG'`pwd`'
+- RPATH_REAL=$RPATH_FLAG'$(LIB_INSTALL_DIR)'
+ fi
+ fi
+ AC_SUBST(RPATH_FLAG)
diff --git a/dev-scheme/gauche/files/gauche-xz-info.patch b/dev-scheme/gauche/files/gauche-xz-info.patch
new file mode 100644
index 000000000000..e55f53606005
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-xz-info.patch
@@ -0,0 +1,31 @@
+--- a/lib/gauche/interactive/info.scm
++++ b/lib/gauche/interactive/info.scm
+@@ -137,7 +137,8 @@
+ :paths paths
+ :pred (^p (or (file-is-readable? p)
+ (file-is-readable? #"~|p|.gz")
+- (file-is-readable? #"~|p|.bz2"))))
++ (file-is-readable? #"~|p|.bz2")
++ (file-is-readable? #"~|p|.xz"))))
+ (errorf "couldn't find info file ~s in paths: ~s" *info-file* paths))
+ ))
+
+--- a/lib/text/info.scm
++++ b/lib/text/info.scm
+@@ -64,6 +64,7 @@
+
+ ;; Find bzip2 location
+ (define bzip2 (find-file-in-paths "bzip2"))
++(define xz (find-file-in-paths "xz"))
+
+ ;; Read an info file FILE, and returns a list of strings splitted by ^_ (#\u001f)
+ ;; If FILE is not found, look for compressed one.
+@@ -78,6 +79,8 @@
+ (close-input-port zp)))))]
+ [(and bzip2 (file-exists? #"~|file|.bz2"))
+ (with-input-from-process #"~bzip2 -c -d ~|file|.bz2" thunk)]
++ [(and xz (file-exists? #"~|file|.xz"))
++ (with-input-from-process #"~xz -c -d ~|file|.xz" thunk)]
+ [else (error "can't find info file" file)]))
+ (with-input-from-info
+ (lambda ()
diff --git a/dev-scheme/gauche/gauche-0.9.5.ebuild b/dev-scheme/gauche/gauche-0.9.5.ebuild
new file mode 100644
index 000000000000..2ace0a45f69b
--- /dev/null
+++ b/dev-scheme/gauche/gauche-0.9.5.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit autotools
+
+MY_P="${P^g}"
+
+DESCRIPTION="A Unix system friendly Scheme Interpreter"
+HOMEPAGE="http://practical-scheme.net/gauche/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tgz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha amd64 ia64 ~ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~x86-macos"
+IUSE="ipv6 libressl test"
+
+RDEPEND="sys-libs/gdbm"
+DEPEND="${RDEPEND}
+ test? (
+ !libressl? ( dev-libs/openssl:0 )
+ libressl? ( dev-libs/libressl )
+ )"
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-rpath.patch
+ "${FILESDIR}"/${PN}-gauche.m4.patch
+ "${FILESDIR}"/${PN}-xz-info.patch
+ "${FILESDIR}"/${PN}-0.9-ext-ldflags.patch
+ "${FILESDIR}"/${PN}-0.9-rfc.tls.patch
+ "${FILESDIR}"/${P}-bsd.patch
+ "${FILESDIR}"/${P}-libressl.patch
+ "${FILESDIR}"/${P}-unicode.patch
+)
+DOCS=( AUTHORS ChangeLog HACKING README )
+
+src_prepare() {
+ default
+ use ipv6 && sed -i "s/ -4//" ext/tls/ssltest-mod.scm
+
+ eautoconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable ipv6) \
+ --with-libatomic-ops=no \
+ --with-slib="${EPREFIX}"/usr/share/slib
+}
+
+src_test() {
+ emake -j1 -s check
+}
+
+src_install() {
+ emake DESTDIR="${D}" install-pkg install-doc
+ einstalldocs
+}
diff --git a/dev-scheme/gauche/gauche-0.9.6.ebuild b/dev-scheme/gauche/gauche-0.9.6.ebuild
new file mode 100644
index 000000000000..37e0c2b459d4
--- /dev/null
+++ b/dev-scheme/gauche/gauche-0.9.6.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit autotools
+
+MY_P="${P^g}"
+
+DESCRIPTION="A Unix system friendly Scheme Interpreter"
+HOMEPAGE="http://practical-scheme.net/gauche/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tgz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos"
+IUSE="ipv6 libressl mbedtls test"
+
+RDEPEND="sys-libs/gdbm
+ mbedtls? ( net-libs/mbedtls )"
+DEPEND="${RDEPEND}
+ test? (
+ !libressl? ( dev-libs/openssl:0 )
+ libressl? ( dev-libs/libressl:0 )
+ )"
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-gauche.m4.patch
+ "${FILESDIR}"/${PN}-ext-ldflags.patch
+ "${FILESDIR}"/${PN}-xz-info.patch
+ "${FILESDIR}"/${PN}-rfc.tls.patch
+)
+DOCS=( AUTHORS ChangeLog HACKING README )
+
+src_prepare() {
+ default
+ use ipv6 && sed -i "s/ -4//" ext/tls/ssltest-mod.scm
+
+ eautoconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable ipv6) \
+ --with-libatomic-ops=no \
+ --with-slib="${EPREFIX}"/usr/share/slib \
+ --with-tls=axtls$(usex mbedtls ',mbedtls' '')
+}
+
+src_test() {
+ emake -j1 -s check
+}
+
+src_install() {
+ emake DESTDIR="${D}" install-pkg install-doc
+ einstalldocs
+}
diff --git a/dev-scheme/gauche/metadata.xml b/dev-scheme/gauche/metadata.xml
new file mode 100644
index 000000000000..b56db088465d
--- /dev/null
+++ b/dev-scheme/gauche/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>hattya@gentoo.org</email>
+ <name>Akinori Hattori</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>scheme@gentoo.org</email>
+ <name>Gentoo Scheme Project</name>
+ </maintainer>
+ <longdescription>
+ Gauche is an R5RS Scheme implementation developed to be a handy script
+ interpreter, which allows programmers and system administrators to write
+ small to large scripts for their daily chores. Quick startup, built-in
+ system interface, native multilingual support are some of my goals.
+
+ Gauche runs on several Unix-like platforms.
+ </longdescription>
+ <use>
+ <flag name="mbedtls">Enable support for <pkg>net-libs/mbedtls</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">gauche</remote-id>
+ </upstream>
+</pkgmetadata>