dev-scheme/gerbil: add 0.16 and live

Signed-off-by: Maciej Barć <xgqt@gentoo.org>
This commit is contained in:
Maciej Barć 2021-11-28 22:37:10 +01:00
parent 3f813d7f5a
commit d6819a88db
No known key found for this signature in database
GPG Key ID: 031C9FE65BED714A
6 changed files with 268 additions and 0 deletions

View File

@ -0,0 +1 @@
DIST gerbil-0.16.tar.gz 1715765 BLAKE2B 74cd501b19c8f124f9478c73080e92c2ba0bf92e8cb9faa4cba492b2def8a61633897b67def4200e53962ccf22287f58cf7fdd33604104acc80bde12dd58b07c SHA512 46782b4b71a3b437501b825f2f164e53b285d3a4cdba8f04485edaaa589d8500535c06a47a1464fc537ab7546413dde37c8d6a16a5e076a99ccf255905ed105d

View File

@ -0,0 +1,6 @@
;;; gerbil site-lisp configuration
(add-to-list 'load-path "@SITELISP@")
(autoload 'gerbil-mode "gerbil-mode" nil t)
(add-to-list 'auto-mode-alist '("\\.ss\\'" . gerbil-mode))

View File

@ -0,0 +1 @@
GERBIL_HOME=/usr/share/gerbil

View File

@ -0,0 +1,114 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
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
S="${S}/src"
LICENSE="Apache-2.0 LGPL-2.1"
SLOT="0"
IUSE="emacs leveldb lmdb mysql +sqlite +xml yaml +zlib"
BDEPEND="dev-scheme/gambit"
RDEPEND="
dev-scheme/gambit
emacs? ( >=app-editors/emacs-23.1:* )
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 )
"
DEPEND="${RDEPEND}"
SITEFILE="70${PN}-gentoo.el"
src_prepare() {
# Just to be safe, because './configure --help' says:
# "Set default GERBIL_HOME (environment variable still overrides)"
unset GERBIL_HOME
unset GERBIL_PATH
# Verbose build process
export GAMBCOMP_VERBOSE="yes"
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() {
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
mv "${D}"/usr/share/${PN}/share/${PN}/TAGS "${D}"/usr/share/${PN}/TAGS || die
# Compile the 'gerbil-mode.el'
if use emacs; then
elisp-compile "${D}/usr/share/emacs/site-lisp/gerbil"/*.el ||
die "Failed to compile elisp files"
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
fi
# Create wrappers for gerbil executables in GERBIL_HOME (/usr/share/gerbil)
pushd "${D}"/usr/share/${PN}/bin >/dev/null || die
local gx_bin
for gx_bin in *; do
make_wrapper "${gx_bin}" "${EPREFIX}/usr/share/${PN}/bin/${gx_bin}"
done
popd >/dev/null || die
# Without this the programs compiled with gxc will break!
doenvd "${FILESDIR}/99${PN}"
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,114 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
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
S="${S}/src"
LICENSE="Apache-2.0 LGPL-2.1"
SLOT="0"
IUSE="emacs leveldb lmdb mysql +sqlite +xml yaml +zlib"
BDEPEND="dev-scheme/gambit"
RDEPEND="
dev-scheme/gambit
emacs? ( >=app-editors/emacs-23.1:* )
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 )
"
DEPEND="${RDEPEND}"
SITEFILE="70${PN}-gentoo.el"
src_prepare() {
# Just to be safe, because './configure --help' says:
# "Set default GERBIL_HOME (environment variable still overrides)"
unset GERBIL_HOME
unset GERBIL_PATH
# Verbose build process
export GAMBCOMP_VERBOSE="yes"
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() {
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
mv "${D}"/usr/share/${PN}/share/${PN}/TAGS "${D}"/usr/share/${PN}/TAGS || die
# Compile the 'gerbil-mode.el'
if use emacs; then
elisp-compile "${D}/usr/share/emacs/site-lisp/gerbil"/*.el ||
die "Failed to compile elisp files"
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
fi
# Create wrappers for gerbil executables in GERBIL_HOME (/usr/share/gerbil)
pushd "${D}"/usr/share/${PN}/bin >/dev/null || die
local gx_bin
for gx_bin in *; do
make_wrapper "${gx_bin}" "${EPREFIX}/usr/share/${PN}/bin/${gx_bin}"
done
popd >/dev/null || die
# Without this the programs compiled with gxc will break!
doenvd "${FILESDIR}/99${PN}"
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<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 Schemes (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>
<bugs-to>https://github.com/vyzo/gerbil</bugs-to>
<remote-id type="github">vyzo/gerbil</remote-id>
</upstream>
</pkgmetadata>