diff options
author | 2024-02-28 19:46:47 -0600 | |
---|---|---|
committer | 2024-03-02 17:32:42 +0100 | |
commit | 800d509ac4529bd6952bed60247756bb7806abee (patch) | |
tree | 2e99cb8ad6015465ecbd8afe451884f88f87a904 /dev-scheme | |
parent | sys-process/atop: Stabilize 2.10.0-r1 ppc, #924906 (diff) | |
download | gentoo-800d509ac4529bd6952bed60247756bb7806abee.tar.gz gentoo-800d509ac4529bd6952bed60247756bb7806abee.tar.bz2 gentoo-800d509ac4529bd6952bed60247756bb7806abee.zip |
dev-scheme/mit-scheme: "modern" c fix
Use termcap/terminfo provided by ncurses instead of the included ancient
1980's termcap emulation complete with everyone's favorite 1980's flavor
of C.
Closes: https://bugs.gentoo.org/871507
Signed-off-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com>
Signed-off-by: Maciej Barć <xgqt@gentoo.org>
Diffstat (limited to 'dev-scheme')
-rw-r--r-- | dev-scheme/mit-scheme/mit-scheme-12.1-r1.ebuild | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/dev-scheme/mit-scheme/mit-scheme-12.1-r1.ebuild b/dev-scheme/mit-scheme/mit-scheme-12.1-r1.ebuild new file mode 100644 index 000000000000..785388a9f324 --- /dev/null +++ b/dev-scheme/mit-scheme/mit-scheme-12.1-r1.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs wrapper + +DESCRIPTION="Scheme interpreter, compiler, debugger and runtime library" +HOMEPAGE="https://www.gnu.org/software/mit-scheme/ + https://savannah.gnu.org/projects/mit-scheme/" +SRC_URI="https://ftp.gnu.org/gnu/${PN}/stable.pkg/${PV}/${P}-svm1-64le.tar.gz" +S="${S}"/src + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64" # Additionally arm64 is officially supported. +IUSE="blowfish gdbm gui postgres" + +BDEPEND=" + virtual/pkgconfig +" +# Use ncurses to avoid ancient emulated termcap from 1980's, bug #871507 +RDEPEND=" + sys-libs/ncurses + blowfish? ( dev-libs/openssl:= ) + gdbm? ( sys-libs/gdbm:= ) + gui? ( x11-libs/libX11 ) + postgres? ( dev-db/postgresql:* ) +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-11.2-no-Werror.patch + "${FILESDIR}"/${PN}-11.2-implicit-int.patch +) + +src_configure() { + local termcap + + # ncurses provides termcap via terminfo which is found in "tinfo" when + # installed as ncurses[tinfo] and in "ncurses" when installed as + # ncurses[-tinfo]. + if "$(tc-getPKG_CONFIG)" --exists tinfo ; then + termcap=tinfo + else + termcap=ncurses + fi + + local -a myconf=( + --disable-mcrypt + --with-termcap=${termcap} + $(use_enable blowfish) + $(use_enable gdbm) + $(use_enable gui edwin) + $(use_enable gui imail) + $(use_enable gui x11) + $(use_enable postgres pgsql) + $(use_with gui x) + ) + econf ${myconf[@]} +} + +src_compile() { + # Compile the "microcode" first, bug #879901 + emake -C microcode + + # Fails with multiple make-jobs, at least it compiles relatively fast. + emake -j1 +} + +# Tests that theoretically fail (still passes): +# microcode/test-flonum-except +# runtime/test-arith +# runtime/test-flonum +# runtime/test-flonum.bin +# runtime/test-flonum.com + +src_test() { + FAST=y emake check -j1 +} + +src_install() { + default + + # Create the edwin launcher. + use gui && make_wrapper mit-scheme-edwin "mit-scheme --edit" + + # Remove "scheme" symlink to not "discriminate" any other implementations. + rm "${ED}"/usr/bin/scheme || die + + # Remove libtool files. + find "${ED}" -type f -name "*.la" -delete || die +} |