commit:     a6f6f061395b002f7612771fb0cc50e0280e91a8
Author:     Maciej Barć <xgqt <AT> protonmail <DOT> com>
AuthorDate: Mon Feb  1 01:57:55 2021 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
CommitDate: Mon Feb  1 03:41:52 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=a6f6f061

dev-scheme/gerbil: new pkg; add version 0.16 and 9999

Package-Manager: Portage-3.0.13, Repoman-3.0.2
Signed-off-by: Maciej Barć <xgqt <AT> protonmail.com>

 dev-scheme/gerbil/Manifest             |   1 +
 dev-scheme/gerbil/files/gerbil_home.sh |   6 ++
 dev-scheme/gerbil/gerbil-0.16.ebuild   | 112 +++++++++++++++++++++++++++++++
 dev-scheme/gerbil/gerbil-9999.ebuild   | 119 +++++++++++++++++++++++++++++++++
 dev-scheme/gerbil/metadata.xml         |  34 ++++++++++
 5 files changed, 272 insertions(+)

diff --git a/dev-scheme/gerbil/Manifest b/dev-scheme/gerbil/Manifest
new file mode 100644
index 00000000..d1147d68
--- /dev/null
+++ b/dev-scheme/gerbil/Manifest
@@ -0,0 +1 @@
+DIST gerbil-0.16.tar.gz 1715765 BLAKE2B 
74cd501b19c8f124f9478c73080e92c2ba0bf92e8cb9faa4cba492b2def8a61633897b67def4200e53962ccf22287f58cf7fdd33604104acc80bde12dd58b07c
 SHA512 
46782b4b71a3b437501b825f2f164e53b285d3a4cdba8f04485edaaa589d8500535c06a47a1464fc537ab7546413dde37c8d6a16a5e076a99ccf255905ed105d

diff --git a/dev-scheme/gerbil/files/gerbil_home.sh 
b/dev-scheme/gerbil/files/gerbil_home.sh
new file mode 100644
index 00000000..8e695985
--- /dev/null
+++ b/dev-scheme/gerbil/files/gerbil_home.sh
@@ -0,0 +1,6 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+
+GERBIL_HOME="${EPREFIX}/usr/share/gerbil"
+export GERBIL_HOME

diff --git a/dev-scheme/gerbil/gerbil-0.16.ebuild 
b/dev-scheme/gerbil/gerbil-0.16.ebuild
new file mode 100644
index 00000000..b5ddf8a9
--- /dev/null
+++ b/dev-scheme/gerbil/gerbil-0.16.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit elisp-common toolchain-funcs wrapper
+
+DESCRIPTION="Dialect of Scheme designed for Systems Programming"
+HOMEPAGE="
+       https://cons.io/
+       https://github.com/vyzo/gerbil
+"
+
+if [[ "${PV}" == *9999* ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/vyzo/${PN}.git";
+else
+       SRC_URI="https://github.com/vyzo/${PN}/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
+       KEYWORDS="~amd64"
+fi
+
+LICENSE="Apache-2.0 LGPL-2.1"
+SLOT="0"
+IUSE="emacs leveldb lmdb mysql +sqlite +xml yaml +zlib"
+
+BDEPEND="
+       emacs? ( >=app-editors/emacs-23.1:* )
+"
+DEPEND="
+       dev-scheme/gambit
+       leveldb? ( dev-libs/leveldb )
+       lmdb? ( dev-db/lmdb )
+       mysql? ( dev-db/mariadb:* )
+       sqlite? ( dev-db/sqlite )
+       xml? ( dev-libs/libxml2 )
+       yaml? ( dev-libs/libyaml )
+       zlib? ( sys-libs/zlib )
+"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${P}/src"
+
+src_configure() {
+       # Just to be safe, because './configure --help' says:
+       # "Set default GERBIL_HOME (environment variable still overrides)"
+       unset GERBIL_HOME
+
+       local myconf=(
+               $(use_enable leveldb)
+               $(use_enable lmdb)
+               $(use_enable mysql)
+               $(use_enable xml libxml)
+               $(use_enable yaml libyaml)
+               $(usex sqlite '' '--disable-sqlite')
+               $(usex zlib '' '--disable-zlib')
+               --prefix="${D}/usr/share/${PN}"
+       )
+       # This is not a standard 'configure' script!
+       gsi ./configure "${myconf[@]}" \
+               || die "Failed to configure using the 'configure' script"
+}
+
+src_compile() {
+       # The 'build.sh' script uses environment variables that are exported
+       # by portage, ie.: CFLAGS, LDFLAGS, ...
+       sh ./build.sh \
+               || die "Failed to compile using the 'build.sh' script"
+}
+
+src_install() {
+       mkdir -p "${D}/usr/share/${PN}" \
+               || die "Failed to make ${D}/usr/share/${PN} directory"
+       gsi ./install \
+               || die "Failed to install using the 'install' script"
+
+       sed -i "s|${D}|${EPREFIX}|g" "${D}/usr/share/${PN}/bin/gxc" \
+               || die "Failed to fix the 'gxc' executable script"
+
+       mv "${D}/usr/share/${PN}/share/emacs" "${D}/usr/share/emacs" \
+               || die "Failed to fix '/usr/share/emacs' install path"
+       mv "${D}/usr/share/${PN}/share/${PN}/TAGS" "${D}/usr/share/${PN}/TAGS" \
+               || die "Failed to fix '/usr/share/gerbil/TAGS' install path"
+
+       # Compile the 'gerbil-mode.el'
+       # FIXME: Doesn't autoload
+       if use emacs; then
+               pushd "${D}/usr/share/emacs/site-lisp/gerbil" || die
+               elisp-compile *.el || die
+               popd || die
+       fi
+
+       # Create wrappers for gerbil executables in GERBIL_HOME 
(/usr/share/gerbil)
+       pushd "${D}/usr/share/${PN}/bin" || die
+       local gx_bin
+       for gx_bin in *; do
+               make_wrapper "${gx_bin}" "env 
GERBIL_HOME=\"${EPREFIX}/usr/share/${PN}\" 
${EPREFIX}/usr/share/${PN}/bin/${gx_bin}"
+       done
+       popd || die
+
+       # Without this the programs compiled with gxc will break!
+       # FIXME: Patch gerbil to compile with te correct 'GERBIL_HOME'?
+       insinto "/etc/profile.d"
+       doins "${FILESDIR}/gerbil_home.sh"
+}
+
+pkg_postinst() {
+       use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+       use emacs && elisp-site-regen
+}

diff --git a/dev-scheme/gerbil/gerbil-9999.ebuild 
b/dev-scheme/gerbil/gerbil-9999.ebuild
new file mode 100644
index 00000000..831c6b68
--- /dev/null
+++ b/dev-scheme/gerbil/gerbil-9999.ebuild
@@ -0,0 +1,119 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit elisp-common toolchain-funcs wrapper
+
+DESCRIPTION="Dialect of Scheme designed for Systems Programming"
+HOMEPAGE="
+       https://cons.io/
+       https://github.com/vyzo/gerbil
+"
+
+if [[ "${PV}" == *9999* ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/vyzo/${PN}.git";
+else
+       SRC_URI="https://github.com/vyzo/${PN}/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
+       KEYWORDS="~amd64"
+fi
+
+LICENSE="Apache-2.0 LGPL-2.1"
+SLOT="0"
+IUSE="emacs leveldb lmdb mysql +sqlite +xml yaml +zlib"
+
+BDEPEND="
+       emacs? ( >=app-editors/emacs-23.1:* )
+"
+DEPEND="
+       dev-scheme/gambit
+       leveldb? ( dev-libs/leveldb )
+       lmdb? ( dev-db/lmdb )
+       mysql? ( dev-db/mariadb:* )
+       sqlite? ( dev-db/sqlite )
+       xml? ( dev-libs/libxml2 )
+       yaml? ( dev-libs/libyaml )
+       zlib? ( sys-libs/zlib )
+"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${P}/src"
+
+src_prepare() {
+       default
+
+       sed -i "s|gcc|$(tc-getCC)|g" ./build.sh || die "Failed to fix CC 
setting"
+       sed -i "s|-O2|${CFLAGS}|g" ./build.sh || die "Failed to fix CFLAGS 
setting"
+}
+
+src_configure() {
+       # Just to be safe, because './configure --help' says:
+       # "Set default GERBIL_HOME (environment variable still overrides)"
+       unset GERBIL_HOME
+
+       local myconf=(
+               $(use_enable leveldb)
+               $(use_enable lmdb)
+               $(use_enable mysql)
+               $(use_enable xml libxml)
+               $(use_enable yaml libyaml)
+               $(usex sqlite '' '--disable-sqlite')
+               $(usex zlib '' '--disable-zlib')
+               --prefix="${D}/usr/share/${PN}"
+       )
+       # This is not a standard 'configure' script!
+       gsi ./configure "${myconf[@]}" \
+               || die "Failed to configure using the 'configure' script"
+}
+
+src_compile() {
+       # The 'build.sh' script uses environment variables that are exported
+       # by portage, ie.: CFLAGS, LDFLAGS, ...
+       sh ./build.sh \
+               || die "Failed to compile using the 'build.sh' script"
+}
+
+src_install() {
+       mkdir -p "${D}/usr/share/${PN}" \
+               || die "Failed to make ${D}/usr/share/${PN} directory"
+       gsi ./install \
+               || die "Failed to install using the 'install' script"
+
+       sed -i "s|${D}|${EPREFIX}|g" "${D}/usr/share/${PN}/bin/gxc" \
+               || die "Failed to fix the 'gxc' executable script"
+
+       mv "${D}/usr/share/${PN}/share/emacs" "${D}/usr/share/emacs" \
+               || die "Failed to fix '/usr/share/emacs' install path"
+       mv "${D}/usr/share/${PN}/share/${PN}/TAGS" "${D}/usr/share/${PN}/TAGS" \
+               || die "Failed to fix '/usr/share/gerbil/TAGS' install path"
+
+       # Compile the 'gerbil-mode.el'
+       # FIXME: Doesn't autoload
+       if use emacs; then
+               pushd "${D}/usr/share/emacs/site-lisp/gerbil" || die
+               elisp-compile *.el || die
+               popd || die
+       fi
+
+       # Create wrappers for gerbil executables in GERBIL_HOME 
(/usr/share/gerbil)
+       pushd "${D}/usr/share/${PN}/bin" || die
+       local gx_bin
+       for gx_bin in *; do
+               make_wrapper "${gx_bin}" "env 
GERBIL_HOME=\"${EPREFIX}/usr/share/${PN}\" 
${EPREFIX}/usr/share/${PN}/bin/${gx_bin}"
+       done
+       popd || die
+
+       # Without this the programs compiled with gxc will break!
+       # FIXME: Patch gerbil to compile with te correct 'GERBIL_HOME'?
+       insinto "/etc/profile.d"
+       doins "${FILESDIR}/gerbil_home.sh"
+}
+
+pkg_postinst() {
+       use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+       use emacs && elisp-site-regen
+}

diff --git a/dev-scheme/gerbil/metadata.xml b/dev-scheme/gerbil/metadata.xml
new file mode 100644
index 00000000..6f63dff0
--- /dev/null
+++ b/dev-scheme/gerbil/metadata.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>x...@protonmail.com</email>
+               <name>Maciej Barć</name>
+       </maintainer>
+       <use>
+               <flag name="leveldb">
+                       Add support for using dev-libs/leveldb
+               </flag>
+               <flag name="lmdb">
+                       Add support for using dev-db/lmdb
+               </flag>
+               <flag name="yaml">
+                       Add support for yaml file format
+               </flag>
+       </use>
+       <longdescription lang="en">
+               Gerbil is an opinionated dialect of Scheme designed
+               for Systems Programming, with a state of the art macro
+               and module system on top of the Gambit runtime.
+               The macro system is based on quote-syntax, and provides
+               the full meta-syntactic tower with a native implementation
+               of syntax-case. It also provides a full-blown module system,
+               similar to PLT Scheme’s (Racket) modules. The main difference
+               from Racket is that Gerbil modules are single instantiation,
+               supporting high performance ahead of time compilation
+               and compiled macros.
+       </longdescription>
+       <upstream>
+               <remote-id type="github">vyzo/gerbil</remote-id>
+       </upstream>
+</pkgmetadata>

Reply via email to