diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-04 16:47:34 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-04 16:47:34 -0500 |
| commit | dda948891d3731927b821ce31f9d9a2d03ba20c5 (patch) | |
| tree | 99cd40be4cbb0606260da212cd81b8ab2db9da9b /dev-scheme | |
| parent | a3ceca1b4c0d9bdb550dc23f06ffbb5a8e033bc7 (diff) | |
| download | baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.gz baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.xz baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.zip | |
Adding metadata
Diffstat (limited to 'dev-scheme')
280 files changed, 10700 insertions, 0 deletions
diff --git a/dev-scheme/akku/Manifest b/dev-scheme/akku/Manifest new file mode 100644 index 000000000000..b40932b926b5 --- /dev/null +++ b/dev-scheme/akku/Manifest @@ -0,0 +1 @@ +DIST akku-v1.1.0.tar.bz2 415934 BLAKE2B 71bed28261307e0bff9f0c277795c8b6b4621d13385dc21290408ee189467b15a6e9cd607522b5881328ab8c9e99331e76846d7cf1e2c655b7591dc06294de22 SHA512 8eb61db9196ba95aa6f45acab609e2daf31d52245907ce49c2d2e2d34ee9b2da91baefd3bb2600d0e215bbcefc5e08a0f51555e362d726d7b1fc988215df6ad6 diff --git a/dev-scheme/akku/akku-1.1.0-r100.ebuild b/dev-scheme/akku/akku-1.1.0-r100.ebuild new file mode 100644 index 000000000000..e0757d0bb958 --- /dev/null +++ b/dev-scheme/akku/akku-1.1.0-r100.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="Language package manager for Scheme" +HOMEPAGE="https://akkuscm.org/" + +if [[ "${PV}" == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/akkuscm/${PN}.git" +else + SRC_URI="https://gitlab.com/akkuscm/${PN}/-/archive/v${PV}/${PN}-v${PV}.tar.bz2" + KEYWORDS="~amd64" + S="${WORKDIR}/${PN}-v${PV}" +fi + +LICENSE="GPL-3+" +SLOT="0" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +# tests require network access +RESTRICT="test" + +RDEPEND=" + ${GUILE_DEPS} + net-misc/curl[ssl] +" +DEPEND="${RDEPEND}" + +# Installs into its own path +# https://gitlab.com/akkuscm/akku/-/commit/d25da297fec2a2b16427359a2cbb0ec745dd8c58 +QA_PREBUILT="usr/*/${PN}/guile/*/site-ccache/*" + +src_prepare() { + guile_src_prepare + + eautoreconf +} + +src_compile() { + touch bootstrap.db || die + + guile_src_compile +} diff --git a/dev-scheme/akku/metadata.xml b/dev-scheme/akku/metadata.xml new file mode 100644 index 000000000000..8258c26ea6be --- /dev/null +++ b/dev-scheme/akku/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> + Akku.scm is a language package manager for Scheme. + It grabs hold of code and vigorously shakes it until it behaves properly. + - No complicated setup to point out where libraries are; Akku finds them! + - Separately declare dependencies and locked versions for your project. + - Convert R7RS libraries for use with Chez Scheme and other R6RS Scheme implementations. + - Numerous R6RS packages, as well as R7RS libraries mirrored from Snow. + </longdescription> + <upstream> + <bugs-to>https://gitlab.com/akkuscm/akku/-/issues</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/bigloo/Manifest b/dev-scheme/bigloo/Manifest new file mode 100644 index 000000000000..09866c145501 --- /dev/null +++ b/dev-scheme/bigloo/Manifest @@ -0,0 +1 @@ +DIST bigloo-4.5b.tar.gz 59015812 BLAKE2B 8dfa73da5ba50a2ec92adde7c9c3fc76841bc0702139238776af2c174099aab85ea28b5d2ec640b6d85f986759b63950f3cfa55e8ec2eb2e73930093b767c93d SHA512 7810f9895ea373f716cd2c93a7b1072d289e2b333632b5b4f293a6317f31a56d2b098790763e96c2d15ce212dafb45c70ec6a7941a344fb8c53a3ef3c6b67feb diff --git a/dev-scheme/bigloo/bigloo-4.5b-r1.ebuild b/dev-scheme/bigloo/bigloo-4.5b-r1.ebuild new file mode 100644 index 000000000000..e1175674a698 --- /dev/null +++ b/dev-scheme/bigloo/bigloo-4.5b-r1.ebuild @@ -0,0 +1,225 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit elisp-common flag-o-matic toolchain-funcs + +MY_PV="${PV/_p/-}" # e.g.: 4.4c_p4 -> 4.4c-4 +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Practical Scheme Compiler with many extensions" +HOMEPAGE="https://www-sop.inria.fr/indes/fp/Bigloo/index.html" +SRC_URI="ftp://ftp-sop.inria.fr/indes/fp/Bigloo/${MY_P}.tar.gz" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="alsa avahi emacs flac +gmp gpg gstreamer java libuv mp3 pulseaudio +sqlite" +REQUIRED_USE="flac? ( alsa ) mp3? ( alsa ) gstreamer? ( pulseaudio )" + +EMACS_DEPEND=" + emacs? ( >=app-editors/emacs-23.1:* ) +" +DEPEND=" + dev-libs/boehm-gc[threads] + dev-libs/libpcre2:= + dev-libs/libunistring:= + dev-libs/openssl:= + alsa? ( media-libs/alsa-lib ) + avahi? ( net-dns/avahi ) + flac? ( media-libs/flac:= ) + gmp? ( dev-libs/gmp:= ) + gpg? ( app-crypt/gnupg ) + gstreamer? ( + media-libs/gst-plugins-base:1.0= + media-libs/gstreamer:1.0= + ) + java? ( + app-arch/zip + virtual/jdk:* + ) + libuv? ( dev-libs/libuv:= ) + mp3? ( media-sound/mpg123 ) + pulseaudio? ( media-libs/libpulse ) + sqlite? ( dev-db/sqlite:3= ) +" +RDEPEND=" + ${DEPEND} + ${EMACS_DEPEND} + sys-devel/binutils + dev-debug/gdb +" +BDEPEND=" + ${EMACS_DEPEND} + sys-apps/texinfo +" + +PATCHES=( "${FILESDIR}/${P}-makefile.patch" ) + +DOCS=( ChangeLog README.md TODO.org ) +SITEFILE="50${PN}-gentoo.el" + +src_prepare() { + default + + sed -e "/^ar=/s|=|=\"$(tc-getAR)\"|" \ + -e "/^ranlib=/s|=|=\"$(tc-getRANLIB)\"|" \ + -i ./configure \ + || die + + sed "s|^ar |$(tc-getAR) |" -i ./autoconf/ranlib || die +} + +src_configure() { + # -Werror=lto-type-mismatch + # https://bugs.gentoo.org/858248 + # + # The code has various issues that make it look quite worrying to enable + # LTO, so I wouldn't risk it even if upstream fixes this one. Cannot even + # test compile the package due to bug #870481, bug #911667 + # + # It is also impossible to test from git if any of these are fixed, since + # you need a working version in order to compile from git. + filter-lto + + tc-export AR AS CC CPP CXX LD + export CFLAGS + export LDFLAGS + + local -a myconf=( + # Compilation + --as="$(tc-getAS)" + --cc="$(tc-getCC)" + --cflags="${CFLAGS}" + --cpicflags="-fPIC" + --cwarningflags="" + --ldflags="${LDFLAGS}" + --gclibdir=/usr/"$(get_libdir)" + # Installation directories + --prefix=/usr + --bindir=/usr/share/${PN}/bin + --docdir=/usr/share/doc/${PF} + --infodir=/usr/share/info + --libdir=/usr/"$(get_libdir)" + --mandir=/usr/share/man + # Custom internal components + --customgc=no + --customgmp=no + --customlibuv=no + --customunistring=no + --jvm=$(usex java) + --native=yes + --sharedbde=yes + --sharedcompiler=yes + --strip=no + # Libraries, Bigloo calls them APIs + --disable-phidget # not important for now, only in ::ros-overlay ? + --enable-calendar # iCalendar parser + --enable-crypto + --enable-csv # parsing CSV files + --enable-mail # IMAP protocol implementation + --enable-multimedia + --enable-packrat # packrat parser + --enable-phone + --enable-pkgcomp + --enable-pthread + --enable-srfi1 + --enable-srfi18 + --enable-ssl + --enable-text # BibTeX parser + --enable-upnp # Upnp protocol implementation + --enable-web # XML, CGI, and RSS parsers + $(use_enable alsa) + $(use_enable avahi) + $(use_enable flac wav) + $(use_enable flac) + $(use_enable gmp srfi27) + $(use_enable gmp) + $(use_enable gpg openpgp) + $(use_enable gstreamer) + $(use_enable libuv) + $(use_enable mp3 mpg123) + $(use_enable pulseaudio) + $(use_enable sqlite pkglib) + $(use_enable sqlite) + # GNU Emacs libraries + --bee=$(usex emacs full partial) + --emacs=$(usex emacs "${EMACS}" "no") + --lispdir=$(usex emacs "${SITELISP}/${PN}" "") + ) + ebegin "Configuring Bigloo with the following options: ${myconf[@]}" + sh ./configure "${myconf[@]}" + eend $? || die "configure script failed" + + # When Emacs version is too high (e.g. 28) bigloo will skip compiling + # and installing the Emacs support files. + # The file "bmacs/Makefile" lists all officially supported Emacs versions. + if use emacs ; then + sed "/^EMACSBRAND=/s|generic|emacs23|" -i Makefile.config || die + fi +} + +src_compile() { + emake -j1 + + emake -C bdl -j1 + emake -C bdb -j1 + emake -C cigloo -j1 + + use emacs && emake -C bmacs +} + +src_test() { + emake test +} + +src_install() { + emake DESTDIR="${D}" LN_S="ln -rs" install + emake DESTDIR="${D}" -C bdl install + emake DESTDIR="${D}" -C bdb install + emake DESTDIR="${D}" -C cigloo install + + # The ".sh" scripts set proper environment and library order for Bigloo, + # but programs (and the Bigloo Emacs library, "bee-mode") want "bigloo", + # not "bigloo.sh". To make programs work we install all executable files + # into "/usr/share/bigloo/bin", and then pick one by one for non-scripts: + # if a script with ".sh" extensions exists, then we link the script, + # not the picked executable to a binary name, otherwise link the binary. + mkdir -p "${D}"/usr/bin || die + pushd "${D}" >/dev/null || die + local bin bin_link + for bin in usr/share/${PN}/bin/* ; do + if [[ "${bin}" != *.sh ]] ; then + bin_link="usr/bin/$(basename "${bin}")" + + if [[ -f ${bin}.sh ]] ; then + ln -s ../../${bin}.sh "${bin_link}" || die + else + ln -s ../../${bin} "${bin_link}" || die + fi + fi + done + popd >/dev/null || die + + if use emacs ; then + emake DESTDIR="${D}" install-bee + + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + fi + + einstalldocs + + # Remove static libs, bug #890820, #891041, #933665 + find "${ED}" -name "*.a" -delete || die + find "${ED}" -name "*.la" -delete || die +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-scheme/bigloo/files/50bigloo-gentoo.el b/dev-scheme/bigloo/files/50bigloo-gentoo.el new file mode 100644 index 000000000000..9cac9f0f7d0f --- /dev/null +++ b/dev-scheme/bigloo/files/50bigloo-gentoo.el @@ -0,0 +1,2 @@ +(add-to-list 'load-path "@SITELISP@") +(autoload 'bee-mode "bee-mode" "Major mode for editing Bigloo code." t) diff --git a/dev-scheme/bigloo/files/bigloo-4.5b-makefile.patch b/dev-scheme/bigloo/files/bigloo-4.5b-makefile.patch new file mode 100644 index 000000000000..a9604c76c77d --- /dev/null +++ b/dev-scheme/bigloo/files/bigloo-4.5b-makefile.patch @@ -0,0 +1,36 @@ +diff -ru a/bdb/Makefile b/bdb/Makefile +--- a/bdb/Makefile 2024-06-05 17:06:40.098823516 -0000 ++++ b/bdb/Makefile 2024-06-05 17:06:45.520796235 -0000 +@@ -23,9 +23,14 @@ + #*---------------------------------------------------------------------*/ + #* Booting bdb on a bare system */ + #*---------------------------------------------------------------------*/ +-boot: +- @ (cd blib; $(MAKE) all) +- @ (cd bdb; $(MAKE) MODE=final mode) ++boot: blip-boot bdb-boot ++ ++blip-boot: ++ @ $(MAKE) -C bdb MODE=final mode ++ ++bdb-boot: blip-boot ++ @ $(MAKE) -C blib all ++ + + #*---------------------------------------------------------------------*/ + #* Populating bdb */ +diff -ru a/bdb/blib/Makefile b/bdb/blib/Makefile +--- a/bdb/blib/Makefile 2024-06-05 17:06:40.100823506 -0000 ++++ b/bdb/blib/Makefile 2024-06-05 17:07:40.738518401 -0000 +@@ -80,9 +80,11 @@ + #* The implicit rules */ + #*---------------------------------------------------------------------*/ + objs/%.o: %.scm ++ mkdir -p $(CLASS_DIR) + $(BIGLOO) -no-hello $(BDBFLAGS) -copt $(CPICFLAGS) $< -o $@ -c + + objs/%.o: %.c ++ mkdir -p $(CLASS_DIR) + $(CC) $(CFLAGS) $(CPICFLAGS) -I. -I $(LIB) $< -o $@ -c + + $(CLASS_DIR)/%.class: %.scm diff --git a/dev-scheme/bigloo/metadata.xml b/dev-scheme/bigloo/metadata.xml new file mode 100644 index 000000000000..9625b149c9ca --- /dev/null +++ b/dev-scheme/bigloo/metadata.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + Bigloo is a Scheme implementation devoted to one goal: enabling Scheme + based programming style where C(++) is usually required. + Bigloo attempts to make Scheme practical by offering features usually + presented by traditional programming languages but not offered by Scheme + and functional programming. Bigloo compiles Scheme modules. It delivers + small and fast stand alone binary executables. Bigloo enables full + connections between Scheme and C programs. + </longdescription> + <upstream> + <bugs-to>https://github.com/manuel-serrano/bigloo/issues/</bugs-to> + </upstream> + <use> + <flag name="avahi">Enable Avahi support</flag> + <flag name="gpg">Enable GPG support</flag> + <flag name="libuv">Enable libuv support</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/bytestructures/Manifest b/dev-scheme/bytestructures/Manifest new file mode 100644 index 000000000000..bdd6de92c25b --- /dev/null +++ b/dev-scheme/bytestructures/Manifest @@ -0,0 +1 @@ +DIST bytestructures-2.0.2.tar.gz 61510 BLAKE2B 01b9bff1d10703e224844540c1557a37ee5291657f2219d1f37dc1cba6965322b5db20a1a9f827cc9897819f297b623eb4ff095409d320a0fce2fd42eccf7562 SHA512 7bda0cf448c1777c0b9b0a30878020c8c29bffb216b209318aa87a82f4a74588ea9722cc86c4f273bd303fe82181c0e8420437b644632c2a9c24305a7c5a935e diff --git a/dev-scheme/bytestructures/bytestructures-2.0.2-r100.ebuild b/dev-scheme/bytestructures/bytestructures-2.0.2-r100.ebuild new file mode 100644 index 000000000000..1739ac8b7c62 --- /dev/null +++ b/dev-scheme/bytestructures/bytestructures-2.0.2-r100.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="Structured access to bytevector contents" +HOMEPAGE="https://github.com/TaylanUB/scheme-bytestructures/" +SRC_URI="https://github.com/TaylanUB/scheme-${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/scheme-${P}" + +LICENSE="LGPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND="${GUILE_DEPS}" +DEPEND="${RDEPEND}" + +src_prepare() { + guile_src_prepare + eautoreconf +} diff --git a/dev-scheme/bytestructures/metadata.xml b/dev-scheme/bytestructures/metadata.xml new file mode 100644 index 000000000000..8d181cd0df94 --- /dev/null +++ b/dev-scheme/bytestructures/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://github.com/TaylanUB/scheme-bytestructures</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/c-wrapper/Manifest b/dev-scheme/c-wrapper/Manifest new file mode 100644 index 000000000000..885d443f83a9 --- /dev/null +++ b/dev-scheme/c-wrapper/Manifest @@ -0,0 +1 @@ +DIST c-wrapper-0.6.1.tgz 843981 BLAKE2B af28cf60eebe0da32c90c030bfdae4457d20731c31220f7eaac33291ea1be104a7aab11fad0560fe6e3d36a5d3afafbd8795fddd633e0c26be226c29012afbc9 SHA512 a03a4d57d112d2c23dac3716bae081e3e6f02dcef261bd8dd518ed8519b43e28f9e61a36f7584b2bcb1762112c128d0b698cda422cc0c9d1190cbf7502ea04b0 diff --git a/dev-scheme/c-wrapper/c-wrapper-0.6.1-r2.ebuild b/dev-scheme/c-wrapper/c-wrapper-0.6.1-r2.ebuild new file mode 100644 index 000000000000..9addd53b433f --- /dev/null +++ b/dev-scheme/c-wrapper/c-wrapper-0.6.1-r2.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit autotools + +DESCRIPTION="Foreign function interface for C and Objective-C libraries" +HOMEPAGE="http://www.koguro.net/prog/c-wrapper/" +SRC_URI="http://www.koguro.net/prog/${PN}/${P}.tgz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="examples" + +RDEPEND="dev-scheme/gauche:= + dev-libs/libffi:=" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-closure.patch + "${FILESDIR}"/${PN}-gauche-abi-0.98.patch + "${FILESDIR}"/${PN}-gcc-5.patch + "${FILESDIR}"/${PN}-gentoo.patch + "${FILESDIR}"/${PN}-glibc-2.25.patch + "${FILESDIR}"/${PN}-info.patch + "${FILESDIR}"/${PN}-texinfo-6.7.patch + "${FILESDIR}"/${PN}-clang.patch + "${FILESDIR}"/${PN}-float128.patch + "${FILESDIR}"/${PN}-local-typedef.patch + "${FILESDIR}"/${PN}-extend-parser.patch +) +HTML_DOCS=( doc/${PN}-ref{e,j}.html ) + +src_prepare() { + default + eautoreconf +} + +src_test() { + emake -j1 -s check +} + +src_install() { + default + + if use examples; then + docompress -x /usr/share/doc/${PF}/examples + dodoc -r examples + fi +} diff --git a/dev-scheme/c-wrapper/c-wrapper-0.6.1-r3.ebuild b/dev-scheme/c-wrapper/c-wrapper-0.6.1-r3.ebuild new file mode 100644 index 000000000000..5b4ff185032a --- /dev/null +++ b/dev-scheme/c-wrapper/c-wrapper-0.6.1-r3.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit autotools + +DESCRIPTION="Foreign function interface for C and Objective-C libraries" +HOMEPAGE="http://www.koguro.net/prog/c-wrapper/" +SRC_URI="http://www.koguro.net/prog/${PN}/${P}.tgz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="examples" + +RDEPEND="dev-scheme/gauche:= + dev-libs/libffi:=" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-closure.patch + "${FILESDIR}"/${PN}-gauche-abi-0.98.patch + "${FILESDIR}"/${PN}-gcc-5.patch + "${FILESDIR}"/${PN}-gentoo.patch + "${FILESDIR}"/${PN}-glibc-2.25.patch + "${FILESDIR}"/${PN}-info.patch + "${FILESDIR}"/${PN}-texinfo-6.7.patch + "${FILESDIR}"/${PN}-clang.patch + "${FILESDIR}"/${PN}-float128.patch + "${FILESDIR}"/${PN}-local-typedef.patch + "${FILESDIR}"/${PN}-extend-parser.patch + "${FILESDIR}"/${PN}-gcc-15.patch +) +HTML_DOCS=( doc/${PN}-ref{e,j}.html ) + +src_prepare() { + default + eautoreconf +} + +src_test() { + emake -j1 -s check +} + +src_install() { + default + + if use examples; then + docompress -x /usr/share/doc/${PF}/examples + dodoc -r examples + fi +} diff --git a/dev-scheme/c-wrapper/files/c-wrapper-clang.patch b/dev-scheme/c-wrapper/files/c-wrapper-clang.patch new file mode 100644 index 000000000000..ba39e74df9cf --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-clang.patch @@ -0,0 +1,71 @@ +--- a/src/c-parser.c ++++ b/src/c-parser.c +@@ -1667,14 +1667,25 @@ + ScmObj Scm_ParseMacroCode(ScmObj in, ScmObj macro_list) + { + static ScmObj trigger_line = SCM_FALSE; ++ static ScmObj is_gcc = SCM_TRUE; + ScmObj line_str; + ScmObj rx; ++ int n = 0; ++ int i; + + /* skip the first line '# 1 "<stdin>"' */ + Scm_ReadLineUnsafe(SCM_PORT(in)); + + if (SCM_FALSEP(trigger_line)) { +- trigger_line = SCM_MAKE_STR_IMMUTABLE("# 1 \"<stdin>\""); ++ ScmObj gcc = Scm_GlobalVariableRef(SCM_FIND_MODULE(CPARSER_MODULE_NAME, TRUE), SCM_SYMBOL(SCM_INTERN("GCC")), 0); ++ if (SCM_INTP(Scm_StringScanRight(SCM_STRING(gcc), SCM_STRING(SCM_MAKE_STR_IMMUTABLE("gcc")), SCM_STRING_SCAN_INDEX))) { ++ trigger_line = SCM_MAKE_STR_IMMUTABLE("# 1 \"<stdin>\""); ++ } else if (SCM_INTP(Scm_StringScanRight(SCM_STRING(gcc), SCM_STRING(SCM_MAKE_STR_IMMUTABLE("clang")), SCM_STRING_SCAN_INDEX))) { ++ trigger_line = SCM_MAKE_STR_IMMUTABLE("# 1 \"<stdin>\" 2"); ++ is_gcc = SCM_FALSE; ++ } else { ++ Scm_Error("unknown compiler"); ++ } + } + + while (!SCM_EOFP(line_str = Scm_ReadLineUnsafe(SCM_PORT(in)))) { +@@ -1683,22 +1694,33 @@ + } + } + +- rx = Scm_RegComp(SCM_STRING(SCM_MAKE_STR_IMMUTABLE("^#\\s+\\d+\\s+\"<stdin>\"")), 0); ++ rx = Scm_RegComp(SCM_STRING(SCM_MAKE_STR_IMMUTABLE("^#\\s+(\\d+)\\s+\"<stdin>\"")), 0); + line_str = Scm_ReadLineUnsafe(SCM_PORT(in)); +- while (!SCM_EOFP(line_str)) { +- ScmObj body_str = line_str; ++ for (i = 1; !SCM_EOFP(line_str); i++) { ++ ScmObj body_str; ++ ScmObj rm; ++ if (i < n) { ++ body_str = SCM_MAKE_STR_IMMUTABLE(""); ++ goto parse; ++ } ++ body_str = line_str; + while (!SCM_EOFP(line_str = Scm_ReadLineUnsafe(SCM_PORT(in))) + && SCM_STRING_LENGTH(line_str) >= 13 + #ifdef SCM_REGEXP_MULTI_LINE +- && SCM_REGMATCHP(Scm_RegExec(SCM_REGEXP(rx), SCM_STRING(line_str), SCM_UNDEFINED, SCM_UNDEFINED))) { ++ && SCM_REGMATCHP(rm = Scm_RegExec(SCM_REGEXP(rx), SCM_STRING(line_str), SCM_UNDEFINED, SCM_UNDEFINED))) { + #else +- && SCM_REGMATCHP(Scm_RegExec(SCM_REGEXP(rx), SCM_STRING(line_str)))) { ++ && SCM_REGMATCHP(rm = Scm_RegExec(SCM_REGEXP(rx), SCM_STRING(line_str)))) { + #endif +- if (SCM_EOFP(line_str = Scm_ReadLineUnsafe(SCM_PORT(in)))) { +- Scm_Error("[bug] unexpected EOF while parsing macro body"); ++ if (SCM_TRUEP(is_gcc)) { ++ if (SCM_EOFP(line_str = Scm_ReadLineUnsafe(SCM_PORT(in)))) { ++ Scm_Error("[bug] unexpected EOF while parsing macro body"); ++ } ++ body_str = Scm_StringAppend2(SCM_STRING(body_str), SCM_STRING(line_str)); ++ } else { ++ n = SCM_INT_VALUE(Scm_StringToNumber(SCM_STRING(Scm_RegMatchSubstr(SCM_REGMATCH(rm), SCM_MAKE_INT(1))), 10, 0)); + } +- body_str = Scm_StringAppend2(SCM_STRING(body_str), SCM_STRING(line_str)); + } ++parse: + if (SCM_NULLP(macro_list)) { + Scm_Error("[bug] lost macro body"); + } else { diff --git a/dev-scheme/c-wrapper/files/c-wrapper-closure.patch b/dev-scheme/c-wrapper/files/c-wrapper-closure.patch new file mode 100644 index 000000000000..24be1d052fd7 --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-closure.patch @@ -0,0 +1,10 @@ +--- a/src/closure_alloc.c ++++ b/src/closure_alloc.c +@@ -100,6 +100,7 @@ + ++(node->n); + return; + } ++ node = node->next; + } + + node = malloc(sizeof(FreeNode)); diff --git a/dev-scheme/c-wrapper/files/c-wrapper-extend-parser.patch b/dev-scheme/c-wrapper/files/c-wrapper-extend-parser.patch new file mode 100644 index 000000000000..998938a2c428 --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-extend-parser.patch @@ -0,0 +1,142 @@ +https://aur.archlinux.org/cgit/aur.git/tree/14_extend_parser.patch?h=gauche-c-wrapper + +Description: Include __int128, make statements before delcarations in functions possible and add some workaround to load x86intrin.h successfully. +Author: Fabian Brosda <fabi3141@gmx.de> +Last-Update: 2020-07-10 + +--- a/lib/c-wrapper/c-parser.scm ++++ b/lib/c-wrapper/c-parser.scm +@@ -181,6 +181,26 @@ + ,@(reverse init-list) + ,@statements))) + ++(define-maybe (%COMPOUND-STATEMENT-WITH-DECLARATION-EXT statements-before declaration-list statements) ++ (let ((var-list '()) ++ (init-list '())) ++ (for-each (lambda (declaration) ++ (let* ((type (type-of declaration)) ++ (identifier (name-of declaration)) ++ (init-val (value-of declaration))) ++ ;; TODO: typedef in compound_statement is not supported ++ (push! var-list `(,identifier (make ,type))) ++ (when init-val ++ (push! init-list ++ `(set! ((with-module c-wrapper.c-ffi ref) ,identifier) ++ ,init-val))))) ++ declaration-list) ++ `(begin ++ ,@statements-before ++ (let* ,(reverse var-list) ++ ,@(reverse init-list) ++ ,@statements)))) ++ + (define-maybe (%REF-ARRAY v index) + `((with-module c-wrapper.c-ffi ref) ,v ,(%INT index))) + +--- a/src/c-grammar.scm ++++ b/src/c-grammar.scm +@@ -122,6 +122,7 @@ + (LPAREN expr RPAREN) : (%EXPR-IN-PARENS $2) + (LPAREN compound_statement RPAREN) : (%COMPOUND-STATEMENT $2) + (LPAREN type_name RPAREN LCBRA initializer_list RCBRA) : #f ++ (LPAREN type_name RPAREN LCBRA initializer_list COMMA RCBRA) : #f + (objc_message_expr) : $1 + (objc_selector_expr) : $1 + (objc_protocol_expr) : #f +@@ -474,8 +475,8 @@ + (LCBRA RCBRA) : (%COMPOUND-STATEMENT '(0)) + (LCBRA statement_list RCBRA) : (%COMPOUND-STATEMENT $2) + (LCBRA declaration_list RCBRA) : (%COMPOUND-STATEMENT '(0)) +- (LCBRA declaration_list statement_list RCBRA) +- : (%COMPOUND-STATEMENT-WITH-DECLARATION $2 $3) ++ (LCBRA declaration_list statement_list RCBRA) : (%COMPOUND-STATEMENT-WITH-DECLARATION $2 $3) ++ (LCBRA statement_list declaration_list statement_list RCBRA) : (%COMPOUND-STATEMENT-WITH-DECLARATION-EXT $2 $3 $4) + (error RCBRA) : #f + ) + +--- a/src/c-lex.c ++++ b/src/c-lex.c +@@ -361,6 +361,7 @@ + "void", + "_Bool", + "_Float128", ++ "__int128", + NULL, + }; + int i; +--- a/src/c-parser.c ++++ b/src/c-parser.c +@@ -104,6 +104,7 @@ + DEFINE_SYM(void); + DEFINE_SYM(_Bool); + DEFINE_SYM(_Float128); ++DEFINE_SYM(__int128); + DEFINE_SYM(__builtin_va_list); + DEFINE_SYM(U_struct); + DEFINE_SYM(U_union); +@@ -472,7 +473,9 @@ + } else if (SCM_EQ(car, SYM(_Bool))) { + SCM_RETURN(SYM(c_int)); + } else if (SCM_EQ(car, SYM(_Float128))) { + SCM_RETURN(SYM(c_double)); ++ } else if (SCM_EQ(car, SYM(__int128))) { ++ SCM_RETURN(SYM(c_longlong)); + } else if (SCM_EQ(car, SYM(__builtin_va_list))) { + SCM_RETURN(SCM_LIST2(SCM_LIST3(SYM(with_module), SYM(c_wrapper_c_ffi), SYM(ptr)), SYM(c_void))); + } else if (SCM_PAIRP(car) && SCM_EQ(SCM_CAR(car), SYM(U_struct))) { +@@ -1024,7 +1027,11 @@ + Scm_ParserAttributeClear(); + td_list = Scm_MakeTypeDeclList(type_spec_list, declarator_list); + SCM_FOR_EACH(pair, td_list) { +- Scm_ArgPoolAdd(SCM_TYPE_DECL_NAME(SCM_CAR(pair))); ++ // hack to avoid segfault when loading x86intrin.h ++ // TODO: why is this necessary? ++ if (!SCM_EQ(SCM_CAR(pair), SCM_FALSE)) { ++ Scm_ArgPoolAdd(SCM_TYPE_DECL_NAME(SCM_CAR(pair))); ++ } + } + + SCM_RETURN(td_list); +@@ -1865,6 +1872,7 @@ + INIT_SYM(void, "void"); + INIT_SYM(_Bool, "_Bool"); + INIT_SYM(_Float128, "_Float128"); ++ INIT_SYM(__int128, "__int128"); + INIT_SYM(__builtin_va_list, "__builtin_va_list"); + INIT_SYM(U_struct, "STRUCT"); + INIT_SYM(U_union, "UNION"); +--- a/testsuite/Makefile.in ++++ b/testsuite/Makefile.in +@@ -78,6 +78,7 @@ + $(GOSH) -I../src -I../lib stdio-test.scm >> test.log + $(GOSH) -I../src -I../lib math-test.scm >> test.log + $(GOSH) -I../src -I../lib local-typedef.scm >> test.log ++ $(GOSH) -I../src -I../lib stmt-decl.scm >> test.log + $(GOSH) -I../src -I../lib inline-test.scm >> test.log + $(GOSH) -I../src -I../lib fptr_array-test.scm >> test.log + $(GOSH) -I../src -I../lib array_qualifier-test.scm >> test.log +--- a/testsuite/stmt_decl.h ++++ b/testsuite/stmt_decl.h +@@ -0,0 +1,6 @@ ++void f(int arg1) ++{ ++ arg1 = 3; ++ double tmp = arg1; ++ return tmp; ++} +--- a/testsuite/stmt-decl.scm ++++ b/testsuite/stmt-decl.scm +@@ -0,0 +1,13 @@ ++;;; ++;;; Test include math.h ++;;; ++ ++(use gauche.test) ++ ++(test-start "test for statement before and after declaration in c function") ++(use c-wrapper) ++ ++(c-include "stmt_decl.h") ++ ++;; epilogue ++(test-end) diff --git a/dev-scheme/c-wrapper/files/c-wrapper-float128.patch b/dev-scheme/c-wrapper/files/c-wrapper-float128.patch new file mode 100644 index 000000000000..acd2f04407dd --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-float128.patch @@ -0,0 +1,79 @@ +https://aur.archlinux.org/cgit/aur.git/tree/12_float128.patch?h=gauche-c-wrapper + +Description: Workaround for usage of math.h including type _Float128 +Author: Fabian Brosda <fabi3141@gmx.de> +Last-Update: 2020-07-10 + +--- a/src/c-lex.c ++++ b/src/c-lex.c +@@ -360,6 +360,7 @@ + "double", + "void", + "_Bool", ++ "_Float128", + NULL, + }; + int i; +--- a/src/c-parser.c ++++ b/src/c-parser.c +@@ -103,6 +103,7 @@ + DEFINE_SYM(double); + DEFINE_SYM(void); + DEFINE_SYM(_Bool); ++DEFINE_SYM(_Float128); + DEFINE_SYM(__builtin_va_list); + DEFINE_SYM(U_struct); + DEFINE_SYM(U_union); +@@ -470,6 +471,8 @@ + SCM_RETURN(SYM(c_void)); + } else if (SCM_EQ(car, SYM(_Bool))) { + SCM_RETURN(SYM(c_int)); ++ } else if (SCM_EQ(car, SYM(_Float128))) { ++ SCM_RETURN(SYM(c_double)); + } else if (SCM_EQ(car, SYM(__builtin_va_list))) { + SCM_RETURN(SCM_LIST2(SCM_LIST3(SYM(with_module), SYM(c_wrapper_c_ffi), SYM(ptr)), SYM(c_void))); + } else if (SCM_PAIRP(car) && SCM_EQ(SCM_CAR(car), SYM(U_struct))) { +@@ -1859,6 +1862,7 @@ + INIT_SYM(double, "double"); + INIT_SYM(void, "void"); + INIT_SYM(_Bool, "_Bool"); ++ INIT_SYM(_Float128, "_Float128"); + INIT_SYM(__builtin_va_list, "__builtin_va_list"); + INIT_SYM(U_struct, "STRUCT"); + INIT_SYM(U_union, "UNION"); +--- a/testsuite/Makefile.in ++++ b/testsuite/Makefile.in +@@ -73,6 +73,7 @@ + $(GOSH) -I../src -I../lib cwrappertest.scm >> test.log + $(GOSH) -I../src -I../lib struct_in_union-test.scm >> test.log + $(GOSH) -I../src -I../lib stdio-test.scm >> test.log ++ $(GOSH) -I../src -I../lib math-test.scm >> test.log + $(GOSH) -I../src -I../lib inline-test.scm >> test.log + $(GOSH) -I../src -I../lib fptr_array-test.scm >> test.log + $(GOSH) -I../src -I../lib array_qualifier-test.scm >> test.log +--- a/testsuite/math-test.scm ++++ b/testsuite/math-test.scm +@@ -0,0 +1,23 @@ ++;;; ++;;; Test include math.h ++;;; ++ ++(use gauche.test) ++ ++(test-start "c-wrapper (include math.h)") ++(use c-wrapper) ++ ++(c-include "math.h") ++ ++(test "trunc" ++ 1.0 ++ (lambda () ++ (trunc 1.9))) ++ ++(test "pow" ++ 625.0 ++ (lambda () ++ (pow 5 4))) ++ ++;; epilogue ++(test-end) diff --git a/dev-scheme/c-wrapper/files/c-wrapper-gauche-abi-0.98.patch b/dev-scheme/c-wrapper/files/c-wrapper-gauche-abi-0.98.patch new file mode 100644 index 000000000000..6c9f0cb371b2 --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-gauche-abi-0.98.patch @@ -0,0 +1,62 @@ +--- a/src/c-ffi.c ++++ b/src/c-ffi.c +@@ -347,7 +347,11 @@ + } + sa = SCM_SLOT_ACCESSOR(SCM_CDR(p)); + if (0 <= sa->slotNumber) { ++#if !defined(GAUCHE_API_VERSION) || GAUCHE_API_VERSION < 98 + return SCM_FFI_TYPE_DATA(Scm_InstanceSlotRef(ctype, sa->slotNumber)); ++#else ++ return SCM_FFI_TYPE_DATA(Scm_InstanceSlotRef(ctype, sa->slotNumber, SCM_UNBOUND)); ++#endif + } else { + Scm_Error("wrong slot number: %d", sa->slotNumber); + } +--- a/src/c-lex.c ++++ b/src/c-lex.c +@@ -992,11 +992,6 @@ + SCM_RETURN(Scm_MakeInteger(v)); + } + +-ScmObj Scm_ReadStringLiteral() +-{ +- SCM_RETURN(read_string_literal()); +-} +- + ScmObj Scm_ReadCharacterConstant() + { + SCM_RETURN(read_character_constant()); +--- a/src/c-lex.h ++++ b/src/c-lex.h +@@ -78,7 +78,6 @@ + extern ScmObj Scm_IsForceIdentifierSet(ScmObj v); + extern ScmObj Scm_ReadIdentifier(ScmObj l); + extern ScmObj Scm_ReadOperator(ScmObj c); +-extern ScmObj Scm_ReadStringLiteral(); + extern ScmObj Scm_ReadCharacterConstant(); + extern ScmObj Scm_ReadOctalOrFlonum(ScmObj l); + extern ScmObj Scm_ReadDecimal(ScmObj l); +--- a/src/c-lexlib.stub ++++ b/src/c-lexlib.stub +@@ -40,7 +40,11 @@ + "if (nptr == endptr) {" + " SCM_RETURN(SCM_FALSE);" + "} else {" ++ "#if !defined(GAUCHE_API_VERSION) || GAUCHE_API_VERSION < 98" + " SCM_RETURN(Scm_MakeInteger64((ScmInt64) v));" ++ "#else" ++ " SCM_RETURN(Scm_MakeInteger64((int64_t) v));" ++ "#endif" + "}")) + + (define-cproc strtod (nptr::<const-cstring>) +@@ -136,9 +140,6 @@ + (define-cproc read-operator (c) + (call "Scm_ReadOperator")) + +-(define-cproc read-string-literal () +- (call "Scm_ReadStringLiteral")) +- + (define-cproc read-character-constant () + (call "Scm_ReadCharacterConstant")) + diff --git a/dev-scheme/c-wrapper/files/c-wrapper-gcc-15.patch b/dev-scheme/c-wrapper/files/c-wrapper-gcc-15.patch new file mode 100644 index 000000000000..9f6128b0c76c --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-gcc-15.patch @@ -0,0 +1,24 @@ +Fix build with GCC 15 + +https://bugs.gentoo.org/943982 + +--- a/src/c-lex.c ++++ b/src/c-lex.c +@@ -887,7 +887,7 @@ static inline int backslash(int c) + case 'x': + c1 = buffer_peek_char(); + if (is_hex_digit_char(c1)) { +- return readx(c1); ++ return readx(); + } else { + Scm_Error("\\x must be followed by hex-digit, but got '%c'", c1); + } +@@ -934,7 +934,7 @@ static inline int backslash(int c) + SCM_LIST1(SCM_MAKE_CHAR(c))); + return c; + } else { +- return buffer_read_char(c); ++ return buffer_read_char(); + } + } + } else { diff --git a/dev-scheme/c-wrapper/files/c-wrapper-gcc-5.patch b/dev-scheme/c-wrapper/files/c-wrapper-gcc-5.patch new file mode 100644 index 000000000000..46ab531b389a --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-gcc-5.patch @@ -0,0 +1,43 @@ +--- a/src/c-parser.c ++++ b/src/c-parser.c +@@ -1668,6 +1668,7 @@ + { + static ScmObj trigger_line = SCM_FALSE; + ScmObj line_str; ++ ScmObj rx; + + /* skip the first line '# 1 "<stdin>"' */ + Scm_ReadLineUnsafe(SCM_PORT(in)); +@@ -1682,7 +1683,22 @@ + } + } + +- while (!SCM_EOFP(line_str = Scm_ReadLineUnsafe(SCM_PORT(in)))) { ++ rx = Scm_RegComp(SCM_STRING(SCM_MAKE_STR_IMMUTABLE("^#\\s+\\d+\\s+\"<stdin>\"")), 0); ++ line_str = Scm_ReadLineUnsafe(SCM_PORT(in)); ++ while (!SCM_EOFP(line_str)) { ++ ScmObj body_str = line_str; ++ while (!SCM_EOFP(line_str = Scm_ReadLineUnsafe(SCM_PORT(in))) ++ && SCM_STRING_LENGTH(line_str) >= 13 ++#ifdef SCM_REGEXP_MULTI_LINE ++ && SCM_REGMATCHP(Scm_RegExec(SCM_REGEXP(rx), SCM_STRING(line_str), SCM_UNDEFINED, SCM_UNDEFINED))) { ++#else ++ && SCM_REGMATCHP(Scm_RegExec(SCM_REGEXP(rx), SCM_STRING(line_str)))) { ++#endif ++ if (SCM_EOFP(line_str = Scm_ReadLineUnsafe(SCM_PORT(in)))) { ++ Scm_Error("[bug] unexpected EOF while parsing macro body"); ++ } ++ body_str = Scm_StringAppend2(SCM_STRING(body_str), SCM_STRING(line_str)); ++ } + if (SCM_NULLP(macro_list)) { + Scm_Error("[bug] lost macro body"); + } else { +@@ -1690,7 +1706,7 @@ + macro_list = SCM_CDR(macro_list); + Scm_FilenameSet(SCM_CAAR(pos_name_args)); + Scm_LineNumberSet(SCM_INT_VALUE(SCM_CDAR(pos_name_args))); +- parse_macro_body(SCM_CADR(pos_name_args), SCM_CDDR(pos_name_args), line_str); ++ parse_macro_body(SCM_CADR(pos_name_args), SCM_CDDR(pos_name_args), body_str); + } + } + diff --git a/dev-scheme/c-wrapper/files/c-wrapper-gentoo.patch b/dev-scheme/c-wrapper/files/c-wrapper-gentoo.patch new file mode 100644 index 000000000000..e94d55fa0d21 --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-gentoo.patch @@ -0,0 +1,51 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -53,6 +53,7 @@ + + dnl Check for libraries + dnl Add your macro calls to check required libraries, if you have any. ++PKG_CHECK_MODULES([FFI], [libffi]) + + dnl Platform-dependent configuration. + AC_ARG_ENABLE(objc, [ --enable-objc turn on Objective-C support]) +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -20,9 +20,10 @@ + GAUCHE_PACKAGE = @GAUCHE_PACKAGE@ + INSTALL = @GAUCHE_INSTALL@ + +-CPPFLAGS = -I./libffi/include -DGAUCHE_API_0_8_8 @CPPFLAGS@ ++CPPFLAGS = -DGAUCHE_API_0_8_8 @FFI_CFLAGS@ @CPPFLAGS@ ++CFLAGS = @CFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = libffi/.libs/libffi.a @LIBS@ ++LIBS = @FFI_LIBS@ @LIBS@ + + YACC = @YACC@ + +@@ -38,7 +39,7 @@ + SCMFILES = + HEADERS = + +-TARGET = libffi/.libs/libffi.a $(ARCHFILES) ++TARGET = $(ARCHFILES) + GENERATED = libffi + CONFIG_GENERATED = libffi/Makefile Makefile cwcompile + +@@ -62,13 +63,13 @@ + cd libffi; $(MAKE) + + c-ffi.$(SOEXT): $(ffi_SRCS) +- $(GAUCHE_PACKAGE) compile --cppflags="$(CPPFLAGS)" --ldflags="$(LDFLAGS)" --libs="$(LIBS)" --verbose c-ffi $(ffi_SRCS) ++ $(GAUCHE_PACKAGE) compile --cppflags="$(CPPFLAGS)" --cflags="$(CFLAGS)" --ldflags="$(LDFLAGS)" --libs="$(LIBS)" --verbose c-ffi $(ffi_SRCS) + + c-lex.$(SOEXT): $(clex_SRCS) +- $(GAUCHE_PACKAGE) compile --cppflags="$(CPPFLAGS)" --ldflags="$(LDFLAGS)" --libs="$(LIBS)" --verbose c-lex $(clex_SRCS) ++ $(GAUCHE_PACKAGE) compile --cppflags="$(CPPFLAGS)" --cflags="$(CFLAGS)" --ldflags="$(LDFLAGS)" --libs="$(LIBS)" --verbose c-lex $(clex_SRCS) + + c-parser.$(SOEXT): $(cparser_SRCS) y.tab.c +- $(GAUCHE_PACKAGE) compile --cppflags="$(CPPFLAGS)" --ldflags="$(LDFLAGS)" --libs="$(LIBS) $(cparser_LIBS)" --verbose c-parser $(cparser_SRCS) ++ $(GAUCHE_PACKAGE) compile --cppflags="$(CPPFLAGS)" --cflags="$(CFLAGS)" --ldflags="$(LDFLAGS)" --libs="$(LIBS) $(cparser_LIBS)" --verbose c-parser $(cparser_SRCS) + + c-grammar.y: c-grammar.scm genyacc.scm + $(GOSH) genyacc.scm --outfile=c-grammar.y $< diff --git a/dev-scheme/c-wrapper/files/c-wrapper-glibc-2.25.patch b/dev-scheme/c-wrapper/files/c-wrapper-glibc-2.25.patch new file mode 100644 index 000000000000..0776b255bbac --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-glibc-2.25.patch @@ -0,0 +1,13 @@ +--- a/lib/c-wrapper/c-parser.scm ++++ b/lib/c-wrapper/c-parser.scm +@@ -1115,7 +1115,9 @@ + (raise e)))) + (call-with-gcc-io include-dirs headers options + (lambda (in out) +- (let ((macro-list (queue->list (macro-queue)))) ++ (let ((macro-list (filter (lambda (m) ++ (not (string-prefix? "__glibc_macro_warning" (car m)))) ++ (queue->list (macro-queue))))) + (for-each (lambda (macro-def) + (display (car macro-def) out) + (newline out)) diff --git a/dev-scheme/c-wrapper/files/c-wrapper-info.patch b/dev-scheme/c-wrapper/files/c-wrapper-info.patch new file mode 100644 index 000000000000..fed41c6aa2ec --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-info.patch @@ -0,0 +1,66 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -47,7 +47,6 @@ + AC_PROG_CC + AC_PROG_YACC + AC_CHECK_PROGS(MAKEINFO, makeinfo) +-AC_CHECK_PROGS(GZIP_PROGRAM, gzip) + AC_CHECK_PROGS(SED, sed) + AC_PATH_PROG([LDCONFIG], [ldconfig], [], [$PATH:/sbin:/usr/sbin]) + +--- a/doc/Makefile.in ++++ b/doc/Makefile.in +@@ -11,7 +11,6 @@ + GAUCHE_CONFIG = @GAUCHE_CONFIG@ + INSTALL = @GAUCHE_INSTALL@ + MAKEINFO = @MAKEINFO@ +-GZIP_PROGRAM = @GZIP_PROGRAM@ + + TEXIS = c-wrapper-ref.texi + +@@ -22,7 +21,7 @@ + all: info + + install: all +- if test -f c-wrapper-refe.info.gz -o -f c-wrapper-refj.info.gz; then \ ++ if test -f c-wrapper-refe.info -o -f c-wrapper-refj.info; then \ + for info in *.info*; do \ + $(INSTALL) -m 444 -T $(infodir) $$info; \ + done; \ +@@ -47,7 +46,7 @@ + + pdf : c-wrapper-refe.pdf + +-info : c-wrapper-refe.info.gz c-wrapper-refj.info.gz ++info : c-wrapper-refe.info c-wrapper-refj.info + + c-wrapper-refe.html : c-wrapper-refe.texi + texi2html -number c-wrapper-refe.texi +@@ -64,11 +63,9 @@ + c-wrapper-refe.texi : $(TEXIS) extract + $(GOSH) ./extract -en -o c-wrapper-refe.texi c-wrapper-ref.texi + +-c-wrapper-refe.info.gz : c-wrapper-refe.texi +- if test X$(MAKEINFO) != X -a X$(GZIP_PROGRAM) != X; then \ ++c-wrapper-refe.info : c-wrapper-refe.texi ++ if test X$(MAKEINFO) != X; then \ + $(MAKEINFO) --no-warn c-wrapper-refe.texi; \ +- rm -rf c-wrapper-refe.info*.gz; \ +- $(GZIP_PROGRAM) c-wrapper-refe.info; \ + fi + + c-wrapper-refj.html : c-wrapper-refj.texi +@@ -91,11 +88,9 @@ + c-wrapper-refj.texi : $(TEXIS) extract + $(GOSH) ./extract -jp -o c-wrapper-refj.texi c-wrapper-ref.texi + +-c-wrapper-refj.info.gz : c-wrapper-refj.texi +- if test X$(MAKEINFO) != X -a X$(GZIP_PROGRAM) != X; then \ ++c-wrapper-refj.info : c-wrapper-refj.texi ++ if test X$(MAKEINFO) != X; then \ + $(MAKEINFO) --no-warn c-wrapper-refj.texi; \ +- rm -rf c-wrapper-refj.info*.gz; \ +- $(GZIP_PROGRAM) c-wrapper-refj.info ; \ + fi + + clean: diff --git a/dev-scheme/c-wrapper/files/c-wrapper-local-typedef.patch b/dev-scheme/c-wrapper/files/c-wrapper-local-typedef.patch new file mode 100644 index 000000000000..70f4ffcf4cd4 --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-local-typedef.patch @@ -0,0 +1,149 @@ +https://aur.archlinux.org/cgit/aur.git/plain/13_local_typedef.patch?h=gauche-c-wrapper + +Description: Basic support for typedefs inside functions +Author: Fabian Brosda <fabi3141@gmx.de> +Last-Update: 2020-07-10 + +--- a/src/c-parser.c ++++ b/src/c-parser.c +@@ -594,6 +594,26 @@ + } + } + ++static void emit_typedef(ScmObj type_decl_list) ++{ ++ ScmObj p; ++ ++ SCM_FOR_EACH(p, type_decl_list) { ++ ScmObj v = SCM_CAR(p); ++ ScmObj ctype = SCM_TYPE_DECL_CTYPE(v); ++ ScmObj new_ctype = SCM_TYPE_DECL_NAME(v); ++ ScmObj sym = CParser_ctype2class_symbol(new_ctype); ++ ++ Scm_DefChunkDictSetTypename(new_ctype, ++ Scm_MakeDefChunk(SYM(S_typedef), ++ new_ctype, ++ SCM_LIST1(sym), ++ SCM_LIST3(SYM(S_define), sym, ctype))); ++ Scm_InstallType(new_ctype); ++ } ++} ++ ++ + ScmObj Scm_MakeTypeDecl(ScmObj type_spec_list, ScmObj declarator) + { + ScmObj lst = SCM_NIL; +@@ -612,6 +632,7 @@ + + SCM_FOR_EACH(pair, type_spec_list) { + if (SCM_EQ(SCM_CAR(pair), SYM(U_typedef))) { ++ emit_typedef(Scm_Cons(Scm_MakeTypeDecl(SCM_CDR(pair), declarator), lst)); + continue; + } + lst = Scm_Cons(SCM_CAR(pair), lst); +@@ -1542,25 +1563,6 @@ + SCM_RETURN(SCM_UNDEFINED); + } + +-static void emit_typedef(ScmObj type_decl_list) +-{ +- ScmObj p; +- +- SCM_FOR_EACH(p, type_decl_list) { +- ScmObj v = SCM_CAR(p); +- ScmObj ctype = SCM_TYPE_DECL_CTYPE(v); +- ScmObj new_ctype = SCM_TYPE_DECL_NAME(v); +- ScmObj sym = CParser_ctype2class_symbol(new_ctype); +- +- Scm_DefChunkDictSetTypename(new_ctype, +- Scm_MakeDefChunk(SYM(S_typedef), +- new_ctype, +- SCM_LIST1(sym), +- SCM_LIST3(SYM(S_define), sym, ctype))); +- Scm_InstallType(new_ctype); +- } +-} +- + static void emit_define_extern(ScmObj declaration) + { + ScmObj ctype = SCM_TYPE_DECL_CTYPE(declaration); +--- a/testsuite/local_typedef.c ++++ b/testsuite/local_typedef.c +@@ -0,0 +1,6 @@ ++#include "local_typedef.h" ++ ++int local_typedef(void) ++{ ++ return helper(); ++} +--- a/testsuite/local_typedef.h ++++ b/testsuite/local_typedef.h +@@ -0,0 +1,8 @@ ++extern int local_typedef(void); ++ ++int helper(void) ++{ ++ typedef int _my_type; ++ _my_type ret = 1; ++ return ret; ++} +--- a/testsuite/local-typedef.scm ++++ b/testsuite/local-typedef.scm +@@ -0,0 +1,19 @@ ++;;; ++;;; Test local typedefs ++;;; ++ ++(use gauche.test) ++ ++(test-start "c-wrapper (local typedefs)") ++(use c-wrapper) ++ ++(c-load-library "./local_typedef") ++(c-include "./local_typedef.h") ++ ++(test "local_typedef" ++ 1 ++ (lambda () ++ (local_typedef))) ++ ++;; epilogue ++(test-end) +--- a/testsuite/Makefile.in ++++ b/testsuite/Makefile.in +@@ -57,6 +57,9 @@ + fptr_array.$(DYLIBEXT): fptr_array.o + $(CC) $(LDFLAGS) $@ $< + ++local_typedef.$(DYLIBEXT): local_typedef.o ++ $(CC) $(LDFLAGS) $@ $< ++ + gcc_extension.$(DYLIBEXT): gcc_extension.o + $(CC) $(LDFLAGS) $@ $< + +@@ -65,7 +68,7 @@ + + check: $(CHECK_TARGET) + +-check-c: ffitest.$(DYLIBEXT) fptr_array.$(DYLIBEXT) gcc_extension.$(DYLIBEXT) ++check-c: ffitest.$(DYLIBEXT) fptr_array.$(DYLIBEXT) gcc_extension.$(DYLIBEXT) local_typedef.$(DYLIBEXT) + @rm -f test.log + $(GOSH) -I../src -I../lib attr-test.scm >> test.log + $(GOSH) -I../src -I../lib ffitest.scm >> test.log +@@ -74,6 +77,7 @@ + $(GOSH) -I../src -I../lib struct_in_union-test.scm >> test.log + $(GOSH) -I../src -I../lib stdio-test.scm >> test.log + $(GOSH) -I../src -I../lib math-test.scm >> test.log ++ $(GOSH) -I../src -I../lib local-typedef.scm >> test.log + $(GOSH) -I../src -I../lib inline-test.scm >> test.log + $(GOSH) -I../src -I../lib fptr_array-test.scm >> test.log + $(GOSH) -I../src -I../lib array_qualifier-test.scm >> test.log +@@ -83,7 +87,7 @@ + $(GOSH) -I../src -I../lib -I../objc objc-test.scm >> test.log + + clean : +- rm -rf core ffitest.$(DYLIBEXT) objc-test.$(DYLIBEXT) fptr_array.$(DYLIBEXT) gcc_extension.$(DYLIBEXT) *.o $(GENERATED) *~ test.log so_locations ++ rm -rf core ffitest.$(DYLIBEXT) objc-test.$(DYLIBEXT) fptr_array.$(DYLIBEXT) gcc_extension.$(DYLIBEXT) local_typedef.$(DYLIBEXT) *.o $(GENERATED) *~ test.log so_locations + + distclean : clean + rm -rf $(CONFIG_GENERATED) diff --git a/dev-scheme/c-wrapper/files/c-wrapper-texinfo-6.7.patch b/dev-scheme/c-wrapper/files/c-wrapper-texinfo-6.7.patch new file mode 100644 index 000000000000..97acd86470eb --- /dev/null +++ b/dev-scheme/c-wrapper/files/c-wrapper-texinfo-6.7.patch @@ -0,0 +1,34 @@ +--- a/doc/c-wrapper-ref.texi ++++ b/doc/c-wrapper-ref.texi +@@ -14,7 +14,7 @@ + @direntry + * c-wrapper reference: (c-wrapper-refj.info). A generic wrapper for C libraries. + @end direntry +-@documentencoding euc-jp ++@documentencoding UTF-8 + @c COMMON + @comment %**end of header + +--- a/doc/extract ++++ b/doc/extract +@@ -138,8 +138,6 @@ + ((en) (filter #/^@c EN$/ #/^@c JP$/)) + ((jp) (filter #/^@c JP$/ #/^@c EN$/)))) + +- (define outenc (if (eq? *lang* 'jp) 'euc-jp 'utf8)) +- + (unless (= (length a) 1) (usage)) + + (when (eq? *lang* 'jp) +@@ -148,9 +146,9 @@ + (with-input-from-file (car a) + (lambda () + (if *outfile* +- (with-output-to-file *outfile* do-it :encoding outenc) ++ (with-output-to-file *outfile* do-it :encoding 'utf8) + (let1 out (open-output-conversion-port +- (current-output-port) outenc) ++ (current-output-port) 'utf8) + (with-output-to-port out do-it) + (close-output-port out)))) + :encoding 'euc-jp) diff --git a/dev-scheme/c-wrapper/metadata.xml b/dev-scheme/c-wrapper/metadata.xml new file mode 100644 index 000000000000..5bb2dda1be44 --- /dev/null +++ b/dev-scheme/c-wrapper/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>hattya@gentoo.org</email> + <name>Akinori Hattori</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/chez-minikanren/Manifest b/dev-scheme/chez-minikanren/Manifest new file mode 100644 index 000000000000..adf548fe469f --- /dev/null +++ b/dev-scheme/chez-minikanren/Manifest @@ -0,0 +1 @@ +DIST chez-minikanren-2018.04.11.tar.gz 14068 BLAKE2B b3d8ca2499b37f085e34e59bfa47c7d2dc7869025b46c0ccee271556b4b3ed89e37a29374e3e78452041e88377ede7d751b81da0959e590d9b7be0adb72efc94 SHA512 39928df2548353917cfaaad37454ceb94db4c87ebbf8a1bd8e7ce3e32ed07a6660e9cc1aeb446e3b7abbc533e8cf24da1f3a2ce3c2efe9cc8c8ed1bd90b88278 diff --git a/dev-scheme/chez-minikanren/chez-minikanren-2018.04.11.ebuild b/dev-scheme/chez-minikanren/chez-minikanren-2018.04.11.ebuild new file mode 100644 index 000000000000..578cae7255d9 --- /dev/null +++ b/dev-scheme/chez-minikanren/chez-minikanren-2018.04.11.ebuild @@ -0,0 +1,44 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# NOTICE: miniKanren does not define a library interface :( +# so we will make a wrapper to load miniKanren... + +EAPI=8 + +COMMIT=2d50ec5002fe052f5c2f2d72530dcbeb8760fde8 +MY_PN=miniKanren + +inherit wrapper + +DESCRIPTION="Canonical miniKanren implementation (on Chez Scheme)" +HOMEPAGE="https://github.com/miniKanren/miniKanren" +SRC_URI="https://github.com/miniKanren/${MY_PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${MY_PN}-${COMMIT}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="source" +RESTRICT="strip" + +RDEPEND="dev-scheme/chez:=" +DEPEND="${RDEPEND}" + +MINIKANREN_HOME=/usr/lib/chezscheme/${MY_PN} + +src_compile() { + local s=( $( find . -name "*.scm" -exec printf "\"%s\" " {} + ) ) + local c="(import (chezscheme)) (for-each compile-library (list ${s[@]}))" + echo "${c}" | chezscheme --quiet --optimize-level 3 || die +} + +src_install() { + insinto ${MINIKANREN_HOME} + doins *.so + use source && doins *.scm + + make_wrapper ${MY_PN} "chezscheme mk.so" ${MINIKANREN_HOME} + + einstalldocs +} diff --git a/dev-scheme/chez-minikanren/metadata.xml b/dev-scheme/chez-minikanren/metadata.xml new file mode 100644 index 000000000000..494f2c831e8c --- /dev/null +++ b/dev-scheme/chez-minikanren/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + miniKanren is an embedded Domain Specific Language for logic programming. + The core miniKanren language is very simple, with only three logical + operators and one interface operator. + miniKanren is designed to be easily modified and extended; extensions + include Constraint Logic Programming, probabilistic logic programming, + nominal logic programming, and tabling. + </longdescription> + <upstream> + <bugs-to>https://github.com/miniKanren/miniKanren/issues</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/chez/Manifest b/dev-scheme/chez/Manifest new file mode 100644 index 000000000000..c04b3c2bb23d --- /dev/null +++ b/dev-scheme/chez/Manifest @@ -0,0 +1,3 @@ +DIST chez-10.3.0.tar.gz 9227320 BLAKE2B f801fd533b33d286ab816434bde702360be7098a368d1484e2cf768cdb95460e4c32dd65e6b0df0088b5925206ee2207eee139ad3cf6f576f1599f329d831617 SHA512 8b1a2a07f0ce478cfe4c63d9b057dcb93bc3dadcfd86b21548647f0e8a5a25a2eb44152113c2a401247e860b582e51a34cc7962fbca5051667e58ae949b15396 +DIST chez-10.4.0.tar.gz 9584467 BLAKE2B 19bfa4db922f53012c5025b8671e2e4c5443b17fbbc06218433fa67505e807082ac09134bc5a51cec0d68a8e9808bf428f6371421262a7e8c0752d12eeedba48 SHA512 bf91e68b2ad1cee202ab3fbe03f227a73ed5fc6afadf335e7d67d802c980763ef1e142f38145d169e338f698a0737ff34720daa25e61c8fd048adfc4c39fe31b +DIST chez-10.4.1.tar.gz 9584694 BLAKE2B b704bdeddac414f692aec989d1da95c58fdb7eef7a623e9d0dd89f631b3578a514fd76970e136af5bdd386fafdb1c5fcf9311a7bad977685a0985f6cf7073bcf SHA512 5e22ca5c0abfeed317b75ad6c96a37d9fea0db59f3c684f5dff613f9864018b5027f939c73a60d645e29702dcb51b665dca4871294e553f79679f14ae851a64f diff --git a/dev-scheme/chez/chez-10.3.0.ebuild b/dev-scheme/chez/chez-10.3.0.ebuild new file mode 100644 index 000000000000..109f19348d23 --- /dev/null +++ b/dev-scheme/chez/chez-10.3.0.ebuild @@ -0,0 +1,121 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a edo toolchain-funcs + +DESCRIPTION="A programming language based on R6RS" +HOMEPAGE="https://cisco.github.io/ChezScheme/ + https://github.com/cisco/ChezScheme/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/cisco/ChezScheme" +else + SRC_URI="https://github.com/cisco/ChezScheme/releases/download/v${PV}/csv${PV//a}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/csv${PV//a}" + + KEYWORDS="amd64 ~arm ~x86" +fi + +# Chez Scheme itself is Apache 2.0, but it vendors Nanopass and stex +# which are both MIT licensed. +LICENSE="Apache-2.0 MIT" +SLOT="0/${PV}" +IUSE="X +ncurses +threads" + +# "some output differs from expected", needs in-depth investigation. +# You may wish to investigate "make.out" test logfiles. +RESTRICT="test" + +RDEPEND=" + app-arch/lz4:= + sys-apps/util-linux + virtual/zlib:= + X? ( + x11-libs/libX11 + ) + ncurses? ( + sys-libs/ncurses:= + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +src_prepare() { + tc-export AR CC CXX LD RANLIB + + default + + if use ncurses ; then + local nclibs="\"$($(tc-getPKG_CONFIG) --libs ncurses)\"" + + sed -i "s|ncursesLib=-lncurses|ncursesLib=${nclibs}|g" configure || die + fi +} + +src_configure() { + # See official docs for translation guide. + # https://cisco.github.io/ChezScheme/release_notes/v10.0/release_notes.html + # "t" for threading + arch_map + "le" for Linux + local -A arch_map=( + [x86]=i3 + [amd64]=a6 + [arm64]=arm64 + [arm]=arm32 + [riscv]=rv64 + [loong]=la64 + [ppc]=ppc32 + ) + local machine="$(usex threads 't' '')${arch_map[${ARCH}]}le" + + lto-guarantee-fat + + local -a myconfargs=( + --machine="${machine}" + --libkernel + --nogzip-man-pages + + --installprefix="/usr" + --installbin="/usr/bin" + --installlib="/usr/$(get_libdir)" + --installman="/usr/share/man" + --installschemename="chezscheme" + --installpetitename="chezscheme-petite" + --installscriptname="chezscheme-script" + + $(usex threads '--threads' '') + $(usex ncurses '' '--disable-curses') + $(usex X '' '--disable-x11') + + AR="$(tc-getAR)" + CC="$(tc-getCC)" + LD="$(tc-getLD)" + RANLIB="$(tc-getRANLIB)" + STRIP="$(tc-getSTRIP)" + + CFLAGS+="${CFLAGS}" + CPPFLAGS+="${CPPFLAGS}" + LDFLAGS+="${LDFLAGS}" + + LZ4="$($(tc-getPKG_CONFIG) --libs liblz4)" + ZLIB="$($(tc-getPKG_CONFIG) --libs zlib)" + ) + edo sh ./configure "${myconfargs[@]}" +} + +src_install() { + # TempRoot == DESTDIR + sed -e "s|TempRoot=.*|TempRoot=${ED}|g" -i ./*/Mf-* || die + + emake install + strip-lto-bytecode + einstalldocs +} diff --git a/dev-scheme/chez/chez-10.4.0.ebuild b/dev-scheme/chez/chez-10.4.0.ebuild new file mode 100644 index 000000000000..4be2f1a206b1 --- /dev/null +++ b/dev-scheme/chez/chez-10.4.0.ebuild @@ -0,0 +1,121 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a edo toolchain-funcs + +DESCRIPTION="A programming language based on R6RS" +HOMEPAGE="https://cisco.github.io/ChezScheme/ + https://github.com/cisco/ChezScheme/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/cisco/ChezScheme" +else + SRC_URI="https://github.com/cisco/ChezScheme/releases/download/v${PV}/csv${PV//a}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/csv${PV//a}" + + KEYWORDS="~amd64 ~arm ~x86" +fi + +# Chez Scheme itself is Apache 2.0, but it vendors Nanopass and stex +# which are both MIT licensed. +LICENSE="Apache-2.0 MIT" +SLOT="0/${PV}" +IUSE="X +ncurses +threads" + +# "some output differs from expected", needs in-depth investigation. +# You may wish to investigate "make.out" test logfiles. +RESTRICT="test" + +RDEPEND=" + app-arch/lz4:= + sys-apps/util-linux + virtual/zlib:= + X? ( + x11-libs/libX11 + ) + ncurses? ( + sys-libs/ncurses:= + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +src_prepare() { + tc-export AR CC CXX LD RANLIB + + default + + if use ncurses ; then + local nclibs="\"$($(tc-getPKG_CONFIG) --libs ncurses)\"" + + sed -i "s|ncursesLib=-lncurses|ncursesLib=${nclibs}|g" configure || die + fi +} + +src_configure() { + # See official docs for translation guide. + # https://cisco.github.io/ChezScheme/release_notes/v10.0/release_notes.html + # "t" for threading + arch_map + "le" for Linux + local -A arch_map=( + [x86]=i3 + [amd64]=a6 + [arm64]=arm64 + [arm]=arm32 + [riscv]=rv64 + [loong]=la64 + [ppc]=ppc32 + ) + local machine="$(usex threads 't' '')${arch_map[${ARCH}]}le" + + lto-guarantee-fat + + local -a myconfargs=( + --machine="${machine}" + --libkernel + --nogzip-man-pages + + --installprefix="/usr" + --installbin="/usr/bin" + --installlib="/usr/$(get_libdir)" + --installman="/usr/share/man" + --installschemename="chezscheme" + --installpetitename="chezscheme-petite" + --installscriptname="chezscheme-script" + + $(usex threads '--threads' '') + $(usex ncurses '' '--disable-curses') + $(usex X '' '--disable-x11') + + AR="$(tc-getAR)" + CC="$(tc-getCC)" + LD="$(tc-getLD)" + RANLIB="$(tc-getRANLIB)" + STRIP="$(tc-getSTRIP)" + + CFLAGS+="${CFLAGS}" + CPPFLAGS+="${CPPFLAGS}" + LDFLAGS+="${LDFLAGS}" + + LZ4="$($(tc-getPKG_CONFIG) --libs liblz4)" + ZLIB="$($(tc-getPKG_CONFIG) --libs zlib)" + ) + edo sh ./configure "${myconfargs[@]}" +} + +src_install() { + # TempRoot == DESTDIR + sed -e "s|TempRoot=.*|TempRoot=${ED}|g" -i ./*/Mf-* || die + + emake install + strip-lto-bytecode + einstalldocs +} diff --git a/dev-scheme/chez/chez-10.4.1.ebuild b/dev-scheme/chez/chez-10.4.1.ebuild new file mode 100644 index 000000000000..4be2f1a206b1 --- /dev/null +++ b/dev-scheme/chez/chez-10.4.1.ebuild @@ -0,0 +1,121 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a edo toolchain-funcs + +DESCRIPTION="A programming language based on R6RS" +HOMEPAGE="https://cisco.github.io/ChezScheme/ + https://github.com/cisco/ChezScheme/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/cisco/ChezScheme" +else + SRC_URI="https://github.com/cisco/ChezScheme/releases/download/v${PV}/csv${PV//a}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/csv${PV//a}" + + KEYWORDS="~amd64 ~arm ~x86" +fi + +# Chez Scheme itself is Apache 2.0, but it vendors Nanopass and stex +# which are both MIT licensed. +LICENSE="Apache-2.0 MIT" +SLOT="0/${PV}" +IUSE="X +ncurses +threads" + +# "some output differs from expected", needs in-depth investigation. +# You may wish to investigate "make.out" test logfiles. +RESTRICT="test" + +RDEPEND=" + app-arch/lz4:= + sys-apps/util-linux + virtual/zlib:= + X? ( + x11-libs/libX11 + ) + ncurses? ( + sys-libs/ncurses:= + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +src_prepare() { + tc-export AR CC CXX LD RANLIB + + default + + if use ncurses ; then + local nclibs="\"$($(tc-getPKG_CONFIG) --libs ncurses)\"" + + sed -i "s|ncursesLib=-lncurses|ncursesLib=${nclibs}|g" configure || die + fi +} + +src_configure() { + # See official docs for translation guide. + # https://cisco.github.io/ChezScheme/release_notes/v10.0/release_notes.html + # "t" for threading + arch_map + "le" for Linux + local -A arch_map=( + [x86]=i3 + [amd64]=a6 + [arm64]=arm64 + [arm]=arm32 + [riscv]=rv64 + [loong]=la64 + [ppc]=ppc32 + ) + local machine="$(usex threads 't' '')${arch_map[${ARCH}]}le" + + lto-guarantee-fat + + local -a myconfargs=( + --machine="${machine}" + --libkernel + --nogzip-man-pages + + --installprefix="/usr" + --installbin="/usr/bin" + --installlib="/usr/$(get_libdir)" + --installman="/usr/share/man" + --installschemename="chezscheme" + --installpetitename="chezscheme-petite" + --installscriptname="chezscheme-script" + + $(usex threads '--threads' '') + $(usex ncurses '' '--disable-curses') + $(usex X '' '--disable-x11') + + AR="$(tc-getAR)" + CC="$(tc-getCC)" + LD="$(tc-getLD)" + RANLIB="$(tc-getRANLIB)" + STRIP="$(tc-getSTRIP)" + + CFLAGS+="${CFLAGS}" + CPPFLAGS+="${CPPFLAGS}" + LDFLAGS+="${LDFLAGS}" + + LZ4="$($(tc-getPKG_CONFIG) --libs liblz4)" + ZLIB="$($(tc-getPKG_CONFIG) --libs zlib)" + ) + edo sh ./configure "${myconfargs[@]}" +} + +src_install() { + # TempRoot == DESTDIR + sed -e "s|TempRoot=.*|TempRoot=${ED}|g" -i ./*/Mf-* || die + + emake install + strip-lto-bytecode + einstalldocs +} diff --git a/dev-scheme/chez/metadata.xml b/dev-scheme/chez/metadata.xml new file mode 100644 index 000000000000..f1d61ec07c3f --- /dev/null +++ b/dev-scheme/chez/metadata.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + Chez Scheme is both a programming language and an implementation + of that language, with supporting tools and documentation. + + As a superset of the language described in the Revised6 Report on + the Algorithmic Language Scheme (R6RS), Chez Scheme supports all + standard features of Scheme, including first-class procedures, + proper treatment of tail calls, continuations, user-defined + records, libraries, exceptions, and hygienic macro expansion. + + Chez Scheme also includes extensive support for interfacing with C + and other languages, support for multiple threads possibly running + on multiple cores, non-blocking I/O, and many other features. + </longdescription> + <upstream> + <bugs-to>https://github.com/cisco/ChezScheme/issues</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/chibi/Manifest b/dev-scheme/chibi/Manifest new file mode 100644 index 000000000000..6ac80d40c1fe --- /dev/null +++ b/dev-scheme/chibi/Manifest @@ -0,0 +1,3 @@ +DIST chibi-0.10.0.tar.gz 1148573 BLAKE2B 1435d5734bfc44b6d6ddafdb339eea659345eea0db0e9b227830d7a6b6b14d3655af10906e43b6f8abd7eb2b90596fcb5dcc024abd2cba123a184f66ffcd0961 SHA512 348c20468e3b3b084ed25d38860f1afdecfb06ad9ff9ceb178c36930c14aa66a78f48b881a8eda28a30498662e7c722938212ea77b1cea89834d1a4377f0f648 +DIST chibi-0.11.0.tar.gz 1228817 BLAKE2B aac54db3a323078323284e4d3e08f49637f4932d895801871a0d62e18b975bf7855c5db86985dfaf806696cd432160cae3dcde19fa63387c50842c73edf27b38 SHA512 00b56266398212a97603527ad1e4e56ac2a80ecdf0c13c5c41fe495a7af601bba3f00b7d36016284e76ab3d18e2c51bdb19a84523a158f50cec232ca950ac25d +DIST chibi-0.12.gh.tar.gz 1247167 BLAKE2B 98035e95ffafe6d1a63feeafdd151b21f66b0b1582f4ce72e4e072651c4622d1c5b69591879d3f590a31b2a23b6292790da5f1ec76fc1d7603dfbc20e28428f4 SHA512 eb02585c585df13abf442e30f3a06e8c1f9b7e603fb023614a73d96c7e6fdaa326bfde9ff03e6866aba57f1ae3a9b217b8df387050a335e5a165b401259fba53 diff --git a/dev-scheme/chibi/chibi-0.10.0.ebuild b/dev-scheme/chibi/chibi-0.10.0.ebuild new file mode 100644 index 000000000000..1a8b1cb4f3fe --- /dev/null +++ b/dev-scheme/chibi/chibi-0.10.0.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN=${PN}-scheme +MY_PV=0.10 # Release "0.10.0" tagged as "0.10" +MY_P=${MY_PN}-${MY_PV} + +inherit toolchain-funcs + +DESCRIPTION="Minimal Scheme implementation for use as an extension language" +HOMEPAGE="http://synthcode.com/scheme/chibi/" + +if [[ ${PV} == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/ashinn/${MY_PN}.git" +else + SRC_URI="https://github.com/ashinn/${MY_PN}/archive/${MY_PV}.tar.gz + -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}"/${MY_P} +fi + +LICENSE="BSD" +SLOT="0" + +src_configure() { + tc-export CC + + export PREFIX="${EPREFIX}/usr" + export LIBDIR="${EPREFIX}/usr/$(get_libdir)" + export SOLIBDIR="${EPREFIX}/usr/$(get_libdir)" + + # If "ldconfig" exists it is ran, overwrite it with "LDCONFIG" variable. + export LDCONFIG="0" +} + +src_install() { + default + + dosym ${MY_PN} /usr/bin/${PN} +} diff --git a/dev-scheme/chibi/chibi-0.11.0.ebuild b/dev-scheme/chibi/chibi-0.11.0.ebuild new file mode 100644 index 000000000000..fc7efc2b6524 --- /dev/null +++ b/dev-scheme/chibi/chibi-0.11.0.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +REAL_PN="${PN}-scheme" +REAL_PV="$(ver_cut 1-2)" +REAL_P="${REAL_PN}-${REAL_PV}" + +inherit toolchain-funcs + +DESCRIPTION="Minimal Scheme implementation for use as an extension language" +HOMEPAGE="http://synthcode.com/scheme/chibi/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/ashinn/${REAL_PN}.git" +else + SRC_URI="https://github.com/ashinn/${REAL_PN}/archive/${REAL_PV}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/${REAL_P}" + + KEYWORDS="~amd64 ~riscv ~x86" +fi + +LICENSE="BSD" +SLOT="0" + +src_configure() { + tc-export CC + + export PREFIX="${EPREFIX}/usr" + export LIBDIR="${EPREFIX}/usr/$(get_libdir)" + export SOLIBDIR="${EPREFIX}/usr/$(get_libdir)" + + # If "ldconfig" exists it is ran, overwrite it with "LDCONFIG" variable. + export LDCONFIG="0" +} + +src_install() { + default + + dosym "${REAL_PN}" "/usr/bin/${PN}" +} diff --git a/dev-scheme/chibi/chibi-0.12.ebuild b/dev-scheme/chibi/chibi-0.12.ebuild new file mode 100644 index 000000000000..a4b1ead15985 --- /dev/null +++ b/dev-scheme/chibi/chibi-0.12.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Minimal Scheme implementation for use as an extension language" +HOMEPAGE="http://synthcode.com/scheme/chibi/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/ashinn/${PN}-scheme" +else + SRC_URI="https://github.com/ashinn/${PN}-scheme/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz" + S="${WORKDIR}/${PN}-scheme-${PV}" + + KEYWORDS="~amd64 ~riscv ~x86" +fi + +LICENSE="BSD" +SLOT="0" + +src_install() { + cmake_src_install + dosym -r /usr/bin/${PN}{-scheme,} +} diff --git a/dev-scheme/chibi/chibi-9999.ebuild b/dev-scheme/chibi/chibi-9999.ebuild new file mode 100644 index 000000000000..a4b1ead15985 --- /dev/null +++ b/dev-scheme/chibi/chibi-9999.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Minimal Scheme implementation for use as an extension language" +HOMEPAGE="http://synthcode.com/scheme/chibi/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/ashinn/${PN}-scheme" +else + SRC_URI="https://github.com/ashinn/${PN}-scheme/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz" + S="${WORKDIR}/${PN}-scheme-${PV}" + + KEYWORDS="~amd64 ~riscv ~x86" +fi + +LICENSE="BSD" +SLOT="0" + +src_install() { + cmake_src_install + dosym -r /usr/bin/${PN}{-scheme,} +} diff --git a/dev-scheme/chibi/metadata.xml b/dev-scheme/chibi/metadata.xml new file mode 100644 index 000000000000..ad3308465f42 --- /dev/null +++ b/dev-scheme/chibi/metadata.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> + Chibi-Scheme is a very small library intended for use as an extension + and scripting language in C programs. In addition to support for + lightweight VM-based threads, each VM itself runs in an isolated heap + allowing multiple VMs to run simultaneously in different OS threads. + Despite the small size, Chibi-Scheme attempts to do The Right Thing. + The default settings include: + - a full numeric tower, with rational and complex numbers + - full and seamless Unicode support + - low-level and high-level hygienic macros + - an extensible module system + Specifically, the default repl language contains all bindings from R7RS + small, available explicitly as the (scheme small) library. The language + is built in layers, however - see the manual for instructions on + compiling with fewer features or requesting a smaller language + on startup. + </longdescription> + <upstream> + <bugs-to>https://github.com/ashinn/chibi-scheme/issues</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/chicken/Manifest b/dev-scheme/chicken/Manifest new file mode 100644 index 000000000000..01a563d2274c --- /dev/null +++ b/dev-scheme/chicken/Manifest @@ -0,0 +1,2 @@ +DIST chicken-5.3.0.tar.gz 4069549 BLAKE2B 7e1fb8c844542927eec53df751014f718b8c96fb6cf390d6464d7d55467c7320346be9ed05202b9c5c96548f274243ae52fead488981d7c207bec2c001db7cd7 SHA512 8fcc08a1ba44cde42c95820695a11858a3b7ff39a4b577bc5afb894c53513661aab2dc5b8e608e1d9d26648e314551052041626c4c8e519fcb9f8af324386e02 +DIST chicken-5.4.0.tar.gz 4109135 BLAKE2B 75dda6891992a7eeae8ac7624678c62c9aff61a712c9b8812b008f3369b11297019eaed259c28999a8e4f9aa587583cdef4284b5ada2bc971ef823ffa5508b35 SHA512 21f5dc4abcfce7be2d8eb6728061728a4a695ac88860e94e114c2bf2839a8a47bbdc368330913edc83d5b81b6b2499c608e47e6659fa7651c82d133abb7e4e3c diff --git a/dev-scheme/chicken/chicken-5.3.0.ebuild b/dev-scheme/chicken/chicken-5.3.0.ebuild new file mode 100644 index 000000000000..fcf8f6ba681e --- /dev/null +++ b/dev-scheme/chicken/chicken-5.3.0.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit toolchain-funcs + +DESCRIPTION="Scheme interpreter and native Scheme to C compiler" +HOMEPAGE="https://www.call-cc.org/" +SRC_URI="https://code.call-cc.org/releases/${PV}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 ~mips ppc ppc64 ~riscv x86" +IUSE="static-libs doc" + +RDEPEND="" +DEPEND="" + +src_prepare() { + default + + # because chicken's upstream is in the habit of using variables that + # portage also uses :( eg. $ARCH and $A + sed -i \ + -e "s/A\([[:space:]]*?=\|)\)/z&/" \ + -e "s/ARCH/z&/" \ + -e "/LICENSE /d" \ + Makefile.* {defaults,rules}.make || die + sed -i \ + -e "s|/lib|/$(get_libdir)|" \ + -e "s|\$(DATADIR)/doc|\$(SHAREDIR)/doc/${PF}|" \ + defaults.make || die + sed -i \ + -e "/\$(CHICKEN_DO_PROGRAM)\$(EXE):/,/^$/s/\(\$<\)/\$(LINKER_OPTIONS) \1/" \ + rules.make || die + + use doc || sed -i "/\$(SEP)manual/d" rules.make || die +} + +src_compile() { + emake -j1 \ + PLATFORM="linux" \ + PREFIX="${EPREFIX}/usr" \ + C_COMPILER="$(tc-getCC)" \ + C_COMPILER_OPTIMIZATION_OPTIONS="${CFLAGS}" \ + CXX_COMPILER="$(tc-getCXX)" \ + HOSTSYSTEM="${CBUILD}" \ + LINKER_OPTIONS="${LDFLAGS}" +} + +src_test() { + cd tests && ./runtests.sh || die +} + +src_install() { + emake -j1 \ + PLATFORM="linux" \ + PREFIX="${EPREFIX}/usr" \ + C_COMPILER="$(tc-getCC)" \ + C_COMPILER_OPTIMIZATION_OPTIONS="${CFLAGS}" \ + CXX_COMPILER="$(tc-getCXX)" \ + HOSTSYSTEM="${CBUILD}" \ + LINKER_OPTIONS="${LDFLAGS}" \ + DESTDIR="${D}" \ + install + einstalldocs + + use static-libs || find "${ED}" -name '*.a' -delete || die + + # let portage track this file (created later) + touch "${ED}"/usr/$(get_libdir)/${PN}/11/modules.db || die +} + +pkg_postinst() { + # create modules.db file in ${ROOT} + chicken-install -update-db || die +} diff --git a/dev-scheme/chicken/chicken-5.4.0.ebuild b/dev-scheme/chicken/chicken-5.4.0.ebuild new file mode 100644 index 000000000000..8893792dac78 --- /dev/null +++ b/dev-scheme/chicken/chicken-5.4.0.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Scheme interpreter and native Scheme to C compiler" +HOMEPAGE="https://www.call-cc.org/" +SRC_URI="https://code.call-cc.org/releases/${PV}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 ~mips ppc ppc64 ~riscv x86" +IUSE="static-libs doc" + +src_prepare() { + default + + # because chicken's upstream is in the habit of using variables that + # portage also uses :( eg. $ARCH and $A + sed -i \ + -e "s/A\([[:space:]]*?=\|)\)/z&/" \ + -e "s/ARCH/z&/" \ + -e "/LICENSE /d" \ + Makefile.* {defaults,rules}.make || die + + sed -i \ + -e "s|/lib|/$(get_libdir)|" \ + -e "s|\$(DATADIR)/doc|\$(SHAREDIR)/doc/${PF}|" \ + defaults.make || die + + sed -i \ + -e "/\$(CHICKEN_DO_PROGRAM)\$(EXE):/,/^$/s/\(\$<\)/\$(LINKER_OPTIONS) \1/" \ + rules.make || die + + use doc || sed -i "/\$(SEP)manual/d" rules.make || die +} + +src_compile() { + emake -j1 \ + PLATFORM="linux" \ + PREFIX="${EPREFIX}/usr" \ + C_COMPILER="$(tc-getCC)" \ + C_COMPILER_OPTIMIZATION_OPTIONS="${CFLAGS}" \ + CXX_COMPILER="$(tc-getCXX)" \ + HOSTSYSTEM="${CBUILD}" \ + LINKER_OPTIONS="${LDFLAGS}" +} + +src_test() { + cd tests && ./runtests.sh || die +} + +src_install() { + emake -j1 \ + PLATFORM="linux" \ + PREFIX="${EPREFIX}/usr" \ + C_COMPILER="$(tc-getCC)" \ + C_COMPILER_OPTIMIZATION_OPTIONS="${CFLAGS}" \ + CXX_COMPILER="$(tc-getCXX)" \ + HOSTSYSTEM="${CBUILD}" \ + LINKER_OPTIONS="${LDFLAGS}" \ + DESTDIR="${D}" \ + install + einstalldocs + use static-libs || find "${ED}" -name '*.a' -delete || die + + # let portage track this file (created later) + touch "${ED}"/usr/$(get_libdir)/${PN}/11/modules.db || die +} + +pkg_postinst() { + # create modules.db file in ${ROOT} + chicken-install -update-db || die +} diff --git a/dev-scheme/chicken/metadata.xml b/dev-scheme/chicken/metadata.xml new file mode 100644 index 000000000000..3e56b410a9ab --- /dev/null +++ b/dev-scheme/chicken/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + CHICKEN is a compiler for the Scheme programming language. CHICKEN + produces portable, efficient C, supports almost all of the current + Scheme language standard, the Revised^5 Report on the Algorithmic + Language Scheme (R5RS), and includes many enhancements and extensions. + CHICKEN runs on MacOS X, Windows, and many Unix flavours. + </longdescription> + <upstream> + <remote-id type="cpe">cpe:/a:call-cc:chicken</remote-id> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/cyclone/Manifest b/dev-scheme/cyclone/Manifest new file mode 100644 index 000000000000..2773ee76c5dd --- /dev/null +++ b/dev-scheme/cyclone/Manifest @@ -0,0 +1,2 @@ +DIST cyclone-0.35.0.tar.gz 3955837 BLAKE2B 436399bd3d6f2233d9b613e059131195419ca25f0dab80cac19b14accdceffe481af68ba127d2cb4b4cc1d357e102f7548a98cf2e6c055ecd1d9a3248164b94e SHA512 9aabae2bdcccdf6873780947c41a3230b80a3a5e93c9797cdfe278ba971e2b43320edab31349403a7fb14416c92216395d76af2415c33fb28f041ab867f2d716 +DIST cyclone-0.36.0.tar.gz 3967729 BLAKE2B e546023734adfd277699b686d984cd55b4b0053795fbb6fbe90e7e5db65b795ed7a758c8b7b4f6b67ad2e5f7a89bbc87f77e384863f2c4cecd2f4bc860559e52 SHA512 477534602baa4acbae0450e664617ad70302a79c552005741080c4e4d2993805ff1d25703bd2c43c82764a477a4b26fb4b88c8787a82e99fa5a6fc88d9f914f2 diff --git a/dev-scheme/cyclone/cyclone-0.35.0.ebuild b/dev-scheme/cyclone/cyclone-0.35.0.ebuild new file mode 100644 index 000000000000..23bf9fb347ee --- /dev/null +++ b/dev-scheme/cyclone/cyclone-0.35.0.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Cyclone is a self-hosting Scheme to C compiler +# cyclone-bootstrap is the Cyclone source transpiled by it to C. + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="R7RS Scheme to C compiler" +HOMEPAGE="http://justinethier.github.io/cyclone/" + +if [[ ${PV} == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/justinethier/${PN}-bootstrap.git" +else + SRC_URI="https://github.com/justinethier/${PN}-bootstrap/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~x86" + S="${WORKDIR}"/${PN}-bootstrap-${PV} +fi + +LICENSE="MIT" +SLOT="0" + +RDEPEND="dev-libs/concurrencykit" +DEPEND="${RDEPEND}" + +src_configure() { + export CYC_GCC_OPT_FLAGS="${CFLAGS}" + append-cflags -fPIC -Iinclude + append-ldflags -L. + tc-export AR CC RANLIB +} + +src_compile() { + local myopts=( + PREFIX="/usr" + CYC_GCC_OPT_FLAGS="${CYC_GCC_OPT_FLAGS}" + AR="$(tc-getAR)" + CC="$(tc-getCC)" + RANLIB="$(tc-getRANLIB)" + ) + emake "${myopts[@]}" +} + +src_test() { + emake LDFLAGS="" test +} + +src_install() { + emake PREFIX="/usr" DESTDIR="${D}" install + einstalldocs +} diff --git a/dev-scheme/cyclone/cyclone-0.36.0.ebuild b/dev-scheme/cyclone/cyclone-0.36.0.ebuild new file mode 100644 index 000000000000..c709f1965f91 --- /dev/null +++ b/dev-scheme/cyclone/cyclone-0.36.0.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Cyclone is a self-hosting Scheme to C compiler +# cyclone-bootstrap is the Cyclone source transpiled by it to C. + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="R7RS Scheme to C compiler" +HOMEPAGE="http://justinethier.github.io/cyclone/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/justinethier/${PN}-bootstrap.git" +else + SRC_URI="https://github.com/justinethier/${PN}-bootstrap/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-bootstrap-${PV}" + + KEYWORDS="~amd64 ~arm ~arm64 ~x86" +fi + +LICENSE="MIT" +SLOT="0" + +RDEPEND=" + dev-libs/concurrencykit +" +DEPEND=" + ${RDEPEND} +" + +src_configure() { + export CYC_GCC_OPT_FLAGS="${CFLAGS}" + + append-cflags -fPIC -Iinclude + append-ldflags -L. + tc-export AR CC RANLIB +} + +src_compile() { + local -a myopts=( + PREFIX="/usr" + CYC_GCC_OPT_FLAGS="${CYC_GCC_OPT_FLAGS}" + AR="$(tc-getAR)" + CC="$(tc-getCC)" + RANLIB="$(tc-getRANLIB)" + ) + emake "${myopts[@]}" +} + +src_test() { + emake LDFLAGS="" test +} + +src_install() { + emake PREFIX="/usr" DESTDIR="${D}" install + einstalldocs +} diff --git a/dev-scheme/cyclone/cyclone-9999.ebuild b/dev-scheme/cyclone/cyclone-9999.ebuild new file mode 100644 index 000000000000..c709f1965f91 --- /dev/null +++ b/dev-scheme/cyclone/cyclone-9999.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Cyclone is a self-hosting Scheme to C compiler +# cyclone-bootstrap is the Cyclone source transpiled by it to C. + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="R7RS Scheme to C compiler" +HOMEPAGE="http://justinethier.github.io/cyclone/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/justinethier/${PN}-bootstrap.git" +else + SRC_URI="https://github.com/justinethier/${PN}-bootstrap/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-bootstrap-${PV}" + + KEYWORDS="~amd64 ~arm ~arm64 ~x86" +fi + +LICENSE="MIT" +SLOT="0" + +RDEPEND=" + dev-libs/concurrencykit +" +DEPEND=" + ${RDEPEND} +" + +src_configure() { + export CYC_GCC_OPT_FLAGS="${CFLAGS}" + + append-cflags -fPIC -Iinclude + append-ldflags -L. + tc-export AR CC RANLIB +} + +src_compile() { + local -a myopts=( + PREFIX="/usr" + CYC_GCC_OPT_FLAGS="${CYC_GCC_OPT_FLAGS}" + AR="$(tc-getAR)" + CC="$(tc-getCC)" + RANLIB="$(tc-getRANLIB)" + ) + emake "${myopts[@]}" +} + +src_test() { + emake LDFLAGS="" test +} + +src_install() { + emake PREFIX="/usr" DESTDIR="${D}" install + einstalldocs +} diff --git a/dev-scheme/cyclone/metadata.xml b/dev-scheme/cyclone/metadata.xml new file mode 100644 index 000000000000..b73d91b83861 --- /dev/null +++ b/dev-scheme/cyclone/metadata.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + Cyclone Scheme is a brand-new compiler that allows real-world + application development using the R7RS Scheme Language standard. + We provide modern features and a stable system capable of generating + fast native binaries. + Cheney on the MTA is used by Cyclone's runtime to implement full tail + recursion, continuations, and generational garbage collection. + In addition, the Cheney on the MTA concept has been extended to allow + execution of multiple native threads. An on-the-fly garbage collector + is used to manage the second-generation heap and perform major + collections without "stopping the world". + </longdescription> + <upstream> + <bugs-to>https://github.com/justinethier/cyclone/issues</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/elk/Manifest b/dev-scheme/elk/Manifest new file mode 100644 index 000000000000..ed04a8553ef8 --- /dev/null +++ b/dev-scheme/elk/Manifest @@ -0,0 +1 @@ +DIST elk-3.99.8.tar.bz2 701206 BLAKE2B 93105702c2d8796fe0d1f7f4c1d0f4b128f01755d6f4366840978ed2224a2a3c27d261dc0cb6a3f8d0e199e9ba9c2ff1a5a61dbc5d593b122b40585c0fe631d8 SHA512 dd966bf6063b4e04c0947e56381cc9456ea81cf4ec66d04e80cb79485d39414f0b713520278a62fa4630068f245f33b28b08b5fd4a7defd0bcb20bf2eba4ed49 diff --git a/dev-scheme/elk/elk-3.99.8-r2.ebuild b/dev-scheme/elk/elk-3.99.8-r2.ebuild new file mode 100644 index 000000000000..218b1be74615 --- /dev/null +++ b/dev-scheme/elk/elk-3.99.8-r2.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Scheme implementation designed to be embeddable extension to C/C++ applications" +HOMEPAGE="http://sam.zoy.org/elk/" +SRC_URI="http://sam.zoy.org/elk/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" + +PATCHES=( + "${FILESDIR}"/${P}-implicit-int-incompat-ptr.patch + "${FILESDIR}"/${P}-implicit-function.patch + "${FILESDIR}"/${P}-c99-build-fix.patch +) + +src_configure() { + econf --disable-static +} + +src_compile() { + # parallel build is broken + emake -j1 +} + +# tests are run automatically during make and fail with default src_test +src_test() { + echo "Tests already run during compile" +} + +src_install() { + # parallel install is broken + emake -j1 DESTDIR="${D}" \ + docsdir="${EPREFIX}"/usr/share/doc/${PF} \ + examplesdir="${EPREFIX}"/usr/share/doc/${PF}/examples \ + install + einstalldocs + docompress -x /usr/share/doc/${PF} + + # no static archives + find "${D}" -name '*.la' -delete || die +} diff --git a/dev-scheme/elk/elk-3.99.8-r3.ebuild b/dev-scheme/elk/elk-3.99.8-r3.ebuild new file mode 100644 index 000000000000..49bf62511993 --- /dev/null +++ b/dev-scheme/elk/elk-3.99.8-r3.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic toolchain-funcs + +DESCRIPTION="Scheme implementation designed to be embeddable extension to C/C++ applications" +HOMEPAGE="http://sam.zoy.org/elk/" +SRC_URI="http://sam.zoy.org/elk/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" + +PATCHES=( + "${FILESDIR}"/${P}-implicit-int-incompat-ptr.patch + "${FILESDIR}"/${P}-implicit-function.patch + "${FILESDIR}"/${P}-c99-build-fix.patch + "${FILESDIR}"/${P}-makefile-ordering.patch + "${FILESDIR}"/${P}-fpurge.patch +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + #uses functional polymorphism, can't be ported to C23 + append-cflags -std=gnu17 + + econf --disable-static +} + +src_test() { + # gc test is noted flakey and always fails when build with clang + if tc-is-gcc; then + emake check + fi +} + +src_install() { + # parallel install is broken + emake -j1 DESTDIR="${D}" \ + docsdir="${EPREFIX}"/usr/share/doc/${PF} \ + examplesdir="${EPREFIX}"/usr/share/doc/${PF}/examples \ + install + einstalldocs + docompress -x /usr/share/doc/${PF} + + # no static archives + find "${D}" -name '*.la' -delete || die +} diff --git a/dev-scheme/elk/files/elk-3.99.8-c99-build-fix.patch b/dev-scheme/elk/files/elk-3.99.8-c99-build-fix.patch new file mode 100644 index 000000000000..d29ef92d911f --- /dev/null +++ b/dev-scheme/elk/files/elk-3.99.8-c99-build-fix.patch @@ -0,0 +1,33 @@ +https://bugs.gentoo.org/928675 +--- a/lib/xwidgets/xaw/list.c ++++ b/lib/xwidgets/xaw/list.c +@@ -2,15 +2,15 @@ + #include <X11/Xaw/List.h> + + +-static const char **Get_List (Object x) { ++static char **Get_List (Object x) { + register int i, n; + register char *s; +- register const char **l; ++ register char **l; + Alloca_Begin; + + Check_List (x); + n = Fast_Length (x); +- l = (const char **)XtMalloc ((n+1) * sizeof (char *)); ++ l = (char **)XtMalloc ((n+1) * sizeof (char *)); + for (i = 0; i < n; i++, x = Cdr (x)) { + Get_Strsym_Stack (Car (x), s); + l[i] = XtNewString (s); +--- a/include/extern.h ++++ b/include/extern.h +@@ -442,7 +442,7 @@ extern Object P_String_Fill (Object, Object); + extern Object P_Substringp (Object, Object); + extern Object P_CI_Substringp (Object, Object); + extern int String_Getc (Object); +-extern void String_Ungetc (Object, register int); ++extern void String_Ungetc (Object, int); + + /* Symbols, variables, frequently used Scheme objects + */ diff --git a/dev-scheme/elk/files/elk-3.99.8-fpurge.patch b/dev-scheme/elk/files/elk-3.99.8-fpurge.patch new file mode 100644 index 000000000000..d621a23d2f42 --- /dev/null +++ b/dev-scheme/elk/files/elk-3.99.8-fpurge.patch @@ -0,0 +1,36 @@ +Inspired by https://github.com/gentoo/gentoo/commit/cd306dc1d9273c423759a74166f9805ac8e8b5dd +Fix fpurge on musl +https://bugs.gentoo.org/936285 +--- a/configure.ac ++++ b/configure.ac +@@ -316,7 +316,7 @@ + # tiocflush use TIOCFLUSH ioctl from <sys/ioctl.h> + # tcflsh use TCFLSH ioctl from <termio.h> + # Leave the variable(s) empty if flushing is not supported. +-AC_CHECK_FUNCS(fpurge) ++AC_CHECK_DECLS(fpurge) + + AC_CACHE_CHECK([for BSD-style flushing], + [ac_cv_have_bsd_flush], +--- a/src/print.c ++++ b/src/print.c +@@ -205,7 +205,7 @@ + if (PORT(port)->flags & P_STRING) + return; + f = PORT(port)->file; +-#if defined(HAVE_FPURGE) ++#if HAVE_DELC_FPURGE + (void)fpurge (f); + #elif defined(HAVE_BSD_FLUSH) + f->_cnt = 0; +--- a/src/read.c ++++ b/src/read.c +@@ -144,7 +144,7 @@ + if (PORT(port)->flags & P_STRING) + return; + f = PORT(port)->file; +-#if defined(HAVE_FPURGE) ++#if HAVE_DECL_FPURGE + (void)fpurge (f); + #elif defined(HAVE_BSD_FLUSH) + f->_cnt = 0; diff --git a/dev-scheme/elk/files/elk-3.99.8-implicit-function.patch b/dev-scheme/elk/files/elk-3.99.8-implicit-function.patch new file mode 100644 index 000000000000..d08ab77be12f --- /dev/null +++ b/dev-scheme/elk/files/elk-3.99.8-implicit-function.patch @@ -0,0 +1,22 @@ +From 4fef651e27a4ea5bca02edfda4dc42201ab0985d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@gentoo.org> +Date: Sat, 23 Dec 2023 23:30:30 +0100 +Subject: [PATCH] add missing header file + +This fixes implicit-function-declaration error with modern compilers. + +diff --git a/src/proc.c b/src/proc.c +index c78134a..fed0978 100644 +--- a/src/proc.c ++++ b/src/proc.c +@@ -28,6 +28,7 @@ + * + * THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. + */ ++#include <string.h> + + #include "config.h" + +-- +2.43.0 + diff --git a/dev-scheme/elk/files/elk-3.99.8-implicit-int-incompat-ptr.patch b/dev-scheme/elk/files/elk-3.99.8-implicit-int-incompat-ptr.patch new file mode 100644 index 000000000000..24e91d0a5651 --- /dev/null +++ b/dev-scheme/elk/files/elk-3.99.8-implicit-int-incompat-ptr.patch @@ -0,0 +1,52 @@ +--- a/lib/misc/gdbm.c 2011-06-18 07:24:06.000000000 -0300 ++++ b/lib/misc/gdbm.c 2023-04-22 14:28:35.200400436 -0300 +@@ -103,7 +103,7 @@ + + extern gdbm_error gdbm_errno; + extern int errno; +-static char *gdbm_error_message = ""; ++static const char *gdbm_error_message = ""; + + static SYMDESCR RW_Syms[] = { + { "reader", GDBM_READER }, +@@ -144,7 +144,7 @@ + return TYPE(x) == T_Gdbm_fh ? True : False; + } + +-static void Fatal_Func (char *s) { ++static void Fatal_Func (const char *s) { + gdbm_error_message = s; + fprintf (stderr, "gdbm error: %s\n", s); + } +--- a/src/heap-gen.c 2011-06-18 07:24:06.000000000 -0300 ++++ b/src/heap-gen.c 2023-04-22 14:14:51.977052826 -0300 +@@ -872,7 +872,7 @@ + * determines whether the object is immutable. + */ + +-Object Alloc_Object (size, type, konst) { ++Object Alloc_Object (int size, int type, int konst) { + Object obj; + register addrarith_t s = /* size in words */ + ((size + sizeof(Object) - 1) / sizeof(Object)) + 1; +--- a/lib/xwidgets/xaw/list.c 2011-06-18 07:41:13.000000000 -0300 ++++ b/lib/xwidgets/xaw/list.c 2023-04-22 14:32:58.923738362 -0300 +@@ -2,14 +2,15 @@ + #include <X11/Xaw/List.h> + + +-static char **Get_List (Object x) { ++static const char **Get_List (Object x) { + register int i, n; +- register char *s, **l; ++ register char *s; ++ register const char **l; + Alloca_Begin; + + Check_List (x); + n = Fast_Length (x); +- l = (char **)XtMalloc ((n+1) * sizeof (char *)); ++ l = (const char **)XtMalloc ((n+1) * sizeof (char *)); + for (i = 0; i < n; i++, x = Cdr (x)) { + Get_Strsym_Stack (Car (x), s); + l[i] = XtNewString (s); diff --git a/dev-scheme/elk/files/elk-3.99.8-makefile-ordering.patch b/dev-scheme/elk/files/elk-3.99.8-makefile-ordering.patch new file mode 100644 index 000000000000..95fa97fb023a --- /dev/null +++ b/dev-scheme/elk/files/elk-3.99.8-makefile-ordering.patch @@ -0,0 +1,23 @@ +Fix ordering problems, allow parallel build. +https://bugs.gentoo.org/880349 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,6 +1,6 @@ + NULL = + +-SUBDIRS = include src lib scm doc examples test ++SUBDIRS = . include src lib scm doc examples test + DIST_SUBDIRS = $(SUBDIRS) + + EXTRA_DIST = \ +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -66,7 +66,7 @@ + $(NULL) + + bin_PROGRAMS = elk +-elk_LDADD = $(top_builddir)/src/libelk.la ++elk_LDADD = libelk.la + elk_SOURCES = main.c + + install-exec-hook: diff --git a/dev-scheme/elk/metadata.xml b/dev-scheme/elk/metadata.xml new file mode 100644 index 000000000000..0eaaf3e7cff4 --- /dev/null +++ b/dev-scheme/elk/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> +Elk is an implementation of the Scheme programming language. In contrast to existing, stand-alone Scheme systems Elk has been designed specifically as an embeddable, reusable extension language subsystem for applications written in C or C++. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/escm/Manifest b/dev-scheme/escm/Manifest new file mode 100644 index 000000000000..3e092238a832 --- /dev/null +++ b/dev-scheme/escm/Manifest @@ -0,0 +1 @@ +DIST escm-1.1.tar.gz 22344 BLAKE2B 4b1ee5a2e002cf0908c1cba58d39dc454cfcedcb11ff7f24344824947103d7670108263d210e020b7d0189f3745a002bb4345d8b50a9f334d89850baa30c9ae9 SHA512 7df97d8b9e7c4b46b412e3dd24a2b0b3f4028d45b1940d12b09f0801c93ab1868ef5c239d8f1bfb18d5c86f473aa543d9b735eb1f05b4bb3e4b17177d2ed9102 diff --git a/dev-scheme/escm/escm-1.1-r1.ebuild b/dev-scheme/escm/escm-1.1-r1.ebuild new file mode 100644 index 000000000000..409ac72ae7bf --- /dev/null +++ b/dev-scheme/escm/escm-1.1-r1.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit autotools toolchain-funcs + +DESCRIPTION="escm - Embedded Scheme Processor" +HOMEPAGE="https://practical-scheme.net/vault/escm.html" +SRC_URI="https://practical-scheme.net/vault/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +RDEPEND="|| ( + dev-scheme/gauche + dev-scheme/guile + )" +S="${WORKDIR}/${PN}" + +PATCHES=( "${FILESDIR}"/${PN}-headers.patch ) +HTML_DOCS=( ${PN}.html ) + +src_prepare() { + sed -i "6s/scm, snow/scm gosh, gosh/" configure.in + + default + mv configure.{in,ac} || die + eautoconf + tc-export CC +} + +src_install() { + dobin ${PN} + doman ${PN}.1 + einstalldocs +} diff --git a/dev-scheme/escm/files/escm-headers.patch b/dev-scheme/escm/files/escm-headers.patch new file mode 100644 index 000000000000..bf23008f801f --- /dev/null +++ b/dev-scheme/escm/files/escm-headers.patch @@ -0,0 +1,10 @@ +--- a/escm.c ++++ b/escm.c +@@ -28,6 +28,7 @@ + + #include <sys/types.h> + #include <stdio.h> ++#include <stdlib.h> + #include <unistd.h> + #include <stdarg.h> + #include <errno.h> diff --git a/dev-scheme/escm/metadata.xml b/dev-scheme/escm/metadata.xml new file mode 100644 index 000000000000..5bb2dda1be44 --- /dev/null +++ b/dev-scheme/escm/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>hattya@gentoo.org</email> + <name>Akinori Hattori</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/fibers/Manifest b/dev-scheme/fibers/Manifest new file mode 100644 index 000000000000..92ff7d3ebc3a --- /dev/null +++ b/dev-scheme/fibers/Manifest @@ -0,0 +1 @@ +DIST fibers-1.2.0_p20230522.tar.gz 108368 BLAKE2B 4d7b773d29b235c94a86b55e17d8cbf1544024e803a00681f46221483f9112da954befb612ba2ceaa185ec6992b049a9fb144f32331ab7699436d8e107de8b10 SHA512 1ea2a6a56bbae88244a3f606cef24087949b18aa931af4d98ee1212665a93cb107cc9f8a1d250b45954f76979002656eac002105e6b3b82c0422ddb9006602d9 diff --git a/dev-scheme/fibers/fibers-1.2.0_p20230522-r100.ebuild b/dev-scheme/fibers/fibers-1.2.0_p20230522-r100.ebuild new file mode 100644 index 000000000000..c27f6e424d58 --- /dev/null +++ b/dev-scheme/fibers/fibers-1.2.0_p20230522-r100.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +[[ ${PV} == *_p20230522 ]] && COMMIT=83712f630a976e3084329c9917c40bde19fcc7e5 + +DESCRIPTION="Lightweight concurrency facility for Guile Scheme" +HOMEPAGE="https://github.com/wingo/fibers/ + https://github.com/wingo/fibers/wiki/Manual/" +SRC_URI="https://github.com/wingo/${PN}/archive/${COMMIT}.tar.gz + -> ${P}.tar.gz" +S="${WORKDIR}"/${PN}-${COMMIT} + +LICENSE="LGPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND="${GUILE_DEPS}" +DEPEND="${RDEPEND}" + +src_prepare() { + guile_src_prepare + + eautoreconf +} + +src_configure() { + guile_foreach_impl econf --disable-Werror +} + +src_install() { + guile_src_install + + find "${ED}" -type f -name "*.la" -delete || die +} diff --git a/dev-scheme/fibers/metadata.xml b/dev-scheme/fibers/metadata.xml new file mode 100644 index 000000000000..357e3c5e3142 --- /dev/null +++ b/dev-scheme/fibers/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + Fibers is a Guile library that implements a a lightweight concurrency + facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber + is like a "goroutine" from the Go language: a lightweight thread-like + abstraction. Systems built with Fibers can scale up to millions of + concurrent fibers, tens of thousands of concurrent socket connections, and + many parallel cores. The Fibers library also provides Concurrent ML-like + channels for communication between fibers. + </longdescription> + <upstream> + <bugs-to>https://gitlab.com/wingo/fibers/-/issues/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/gambit/Manifest b/dev-scheme/gambit/Manifest new file mode 100644 index 000000000000..fcddabbd0329 --- /dev/null +++ b/dev-scheme/gambit/Manifest @@ -0,0 +1,2 @@ +DIST v4.9.6.tar.gz 16247420 BLAKE2B 7c328da57cd81304964a400895957d8c21cca546ad13bd4c03a13184fd8161199c91457211336643955413e4e1998a994c8ca406eb68f763f2d2e9c228691247 SHA512 25ec73aff81d71edfad16c7cf686b4eeb9e91b3f02dd24abd9772137a9f5d161e44477c95a2969b700e9694c4e5c859f4e866159e0c4d28484c1d6e377ddacf3 +DIST v4.9.7.tar.gz 16211736 BLAKE2B 81c7848dc07bae8b23c97942c581f75abbc40070e7e60453f7d303c4310d93177d03effd2ea68176aab3b75a66489d2a3d3a9f682a44f90b62fb9e8558e9e7b1 SHA512 b15a804a57f57e30ac4f46c19ad203a4c1312ffafb04322f6455e64f3266a4086851b26434e0cfdd0e527a94f013eda019d438fefa5e6e846794ec52bc80320e diff --git a/dev-scheme/gambit/files/50gambit-gentoo.el b/dev-scheme/gambit/files/50gambit-gentoo.el new file mode 100644 index 000000000000..2e8e196ba04d --- /dev/null +++ b/dev-scheme/gambit/files/50gambit-gentoo.el @@ -0,0 +1,10 @@ + +;;; gambit site-lisp configuration + +(add-to-list 'load-path "@SITELISP@") +(autoload 'gambit-inferior-mode "gambit" "Hook Gambit mode into cmuscheme.") +(autoload 'gambit-mode "gambit" "Hook Gambit mode into scheme.") + +;; (add-hook 'inferior-scheme-mode-hook (function gambit-inferior-mode)) +;; (add-hook 'scheme-mode-hook (function gambit-mode)) +;; (setq scheme-program-name "gsi -:t") diff --git a/dev-scheme/gambit/gambit-4.9.6.ebuild b/dev-scheme/gambit/gambit-4.9.6.ebuild new file mode 100644 index 000000000000..b8933a0b79f3 --- /dev/null +++ b/dev-scheme/gambit/gambit-4.9.6.ebuild @@ -0,0 +1,73 @@ +# Copyright 2022-2025 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit elisp-common + +# MY_PV="${PV//./_}" +# MY_P="${PN}-v${MY_PV}" + +DESCRIPTION="Gambit-C is a native Scheme to C compiler and interpreter" +HOMEPAGE="https://gambitscheme.org/" +SRC_URI="https://github.com/gambit/gambit/archive/refs/tags/v${PV}.tar.gz" +LICENSE="|| ( Apache-2.0 LGPL-2.1 )" +SLOT="0" +KEYWORDS="amd64 ~ppc64 x86 ~amd64-linux ~x86-linux" + +RDEPEND="ssl? ( + dev-libs/openssl:0= + + )" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + app-text/ghostscript-gpl + emacs? ( >=app-editors/emacs-23.1:* ) +" + +SITEFILE="50gambit-gentoo.el" + +IUSE="emacs ssl static" + +# S=${WORKDIR}/${PN}-${PV} + +src_configure() { + econf \ + $(use_enable !static shared) \ + $(use_enable ssl openssl) \ + --enable-gnu-gcc-specific-options \ + --enable-gnu-gcc-no-strict-aliasing \ + --enable-single-host \ + --disable-absolute-shared-libs \ + --enable-type-checking +} + +src_compile() { + emake bootstrap + + if use emacs; then + elisp-compile misc/*.el || die + fi +} + +src_test() { + cd tests || die + emake test{1..10} +} + +src_install() { + emake DESTDIR="${D}" install -j1 + dodoc doc/gambit.{pdf,ps,txt} + einstalldocs + + keepdir /usr/share/${PN} +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-scheme/gambit/gambit-4.9.7.ebuild b/dev-scheme/gambit/gambit-4.9.7.ebuild new file mode 100644 index 000000000000..b8933a0b79f3 --- /dev/null +++ b/dev-scheme/gambit/gambit-4.9.7.ebuild @@ -0,0 +1,73 @@ +# Copyright 2022-2025 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit elisp-common + +# MY_PV="${PV//./_}" +# MY_P="${PN}-v${MY_PV}" + +DESCRIPTION="Gambit-C is a native Scheme to C compiler and interpreter" +HOMEPAGE="https://gambitscheme.org/" +SRC_URI="https://github.com/gambit/gambit/archive/refs/tags/v${PV}.tar.gz" +LICENSE="|| ( Apache-2.0 LGPL-2.1 )" +SLOT="0" +KEYWORDS="amd64 ~ppc64 x86 ~amd64-linux ~x86-linux" + +RDEPEND="ssl? ( + dev-libs/openssl:0= + + )" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + app-text/ghostscript-gpl + emacs? ( >=app-editors/emacs-23.1:* ) +" + +SITEFILE="50gambit-gentoo.el" + +IUSE="emacs ssl static" + +# S=${WORKDIR}/${PN}-${PV} + +src_configure() { + econf \ + $(use_enable !static shared) \ + $(use_enable ssl openssl) \ + --enable-gnu-gcc-specific-options \ + --enable-gnu-gcc-no-strict-aliasing \ + --enable-single-host \ + --disable-absolute-shared-libs \ + --enable-type-checking +} + +src_compile() { + emake bootstrap + + if use emacs; then + elisp-compile misc/*.el || die + fi +} + +src_test() { + cd tests || die + emake test{1..10} +} + +src_install() { + emake DESTDIR="${D}" install -j1 + dodoc doc/gambit.{pdf,ps,txt} + einstalldocs + + keepdir /usr/share/${PN} +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-scheme/gambit/metadata.xml b/dev-scheme/gambit/metadata.xml new file mode 100644 index 000000000000..4b5404f5889e --- /dev/null +++ b/dev-scheme/gambit/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>dev@liguros.net</email> + <name>Development</name> + </maintainer> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/gauche-cdb/Manifest b/dev-scheme/gauche-cdb/Manifest new file mode 100644 index 000000000000..298f76195412 --- /dev/null +++ b/dev-scheme/gauche-cdb/Manifest @@ -0,0 +1 @@ +DIST Gauche-cdb-0.3.1.tar.gz 72048 BLAKE2B f4363ec9893e3f365c34965414620b46c08edcfdf5ed95a5934aeedd3af6e58f1cdedb7c4df90e95fa5a93ce3f95aeeb08fca0f3a440990d3383cd72bef8aa87 SHA512 c02629de9e96c561da0a928e2817056da27951a5ad988b7d105cc24aedd6d103001bf9dd4ae28c1729d701850d937a3134361c2ad83a4e1e51d565a95e8f1a68 diff --git a/dev-scheme/gauche-cdb/files/gauche-cdb-gauche-package.patch b/dev-scheme/gauche-cdb/files/gauche-cdb-gauche-package.patch new file mode 100644 index 000000000000..2f09f6c64c73 --- /dev/null +++ b/dev-scheme/gauche-cdb/files/gauche-cdb-gauche-package.patch @@ -0,0 +1,133 @@ +--- a/Makefile.in ++++ b/Makefile.in +@@ -10,76 +10,57 @@ + VPATH = $(srcdir) + + # These may be overridden by make invocators +-DESTDIR = +-OPTFLAGS = @OPTFLAGS@ +-CC = @CC@ +-LIBS = @LIBS@ +-CFLAGS = @CFLAGS@ +-CPPFLAGS = @CPPFLAGS@ # AC_LIB_LINKFLAGS adds to this.. +-LDFLAGS = @LDFLAGS@ +-INSTALL = @INSTALL@ +-INSTALL_TYPE = @INSTALL_TYPE@ +- +-# Set by configure +-GOSH = @GOSH@ +-GAUCHE_CONFIG = @GAUCHE_CONFIG@ ++DESTDIR = ++CFLAGS = @CFLAGS@ ++CPPFLAGS = @CPPFLAGS@ # AC_LIB_LINKFLAGS adds to this.. ++LDFLAGS = @LDFLAGS@ ++GOSH = "@GOSH@" ++GAUCHE_CONFIG = "@GAUCHE_CONFIG@" ++GAUCHE_PACKAGE = "@GAUCHE_PACKAGE@" ++INSTALL = "@GAUCHE_INSTALL@" ++ ++# Other parameters ++SOEXT = @SOEXT@ + OBJEXT = @OBJEXT@ +-DSOEXT = @SOEXT@ ++EXEEXT = @EXEEXT@ + +-MODULE = cdb ++# Module-specific stuff ++PACKAGE = cdb + +-ARCHFILES = $(MODULE).$(DSOEXT) +-SCMFILES = $(MODULE).scm ++ARCHFILES = $(PACKAGE).$(SOEXT) ++SCMFILES = $(PACKAGE).scm + HEADERS = + + TARGET = $(ARCHFILES) +-OBJS = $(MODULE)_head.$(OBJEXT) \ +- cdb.$(OBJEXT) \ +- $(MODULE)_tail.$(OBJEXT) +-GENERATED = cdb.c $(MODULE)_head.c $(MODULE)_tail.c ++GENERATED = + CONFIG_GENERATED = Makefile config.cache config.log config.status \ +- configure.lineno autom4te*.cache +- +-HEADER_INSTALL_DIR = $(DESTDIR)/`$(GAUCHE_CONFIG) --$(INSTALL_TYPE)incdir` +-SCM_INSTALL_DIR = $(DESTDIR)/`$(GAUCHE_CONFIG) --$(INSTALL_TYPE)libdir`/dbm +-ARCH_INSTALL_DIR = $(DESTDIR)/`$(GAUCHE_CONFIG) --$(INSTALL_TYPE)archdir` +- +-all : $(TARGET) +- +-.SUFFIXES: .o .stub ++ configure.lineno autom4te*.cache @PACKAGE_NAME@.gpd + +-.c.o: +- $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ ++HEADER_INSTALL_DIR = "$(DESTDIR)`$(GAUCHE_CONFIG) --siteincdir`" ++SCM_INSTALL_DIR = "$(DESTDIR)`$(GAUCHE_CONFIG) --sitelibdir`" ++ARCH_INSTALL_DIR = "$(DESTDIR)`$(GAUCHE_CONFIG) --sitearchdir`" + +-.stub.c: +- $(GOSH) genstub $< ++cdb_SRCS = cdb.stub ++cdb_LIBS = @LIBCDB@ + +-$(MODULE).$(DSOEXT): $(OBJS) +- $(CC) -Wl,-rpath -Wl,`gauche-config --sysarchdir` $(LDFLAGS) $(MODULE).$(DSOEXT) $(OBJS) $(LIBS) @LIBCDB@ ++all : $(TARGET) + +-$(MODULE)_head.c $(MODULE)_tail.c : +- $(GAUCHE_CONFIG) --fixup-extension $(MODULE) ++$(PACKAGE).$(SOEXT): $(cdb_SRCS) ++ $(GAUCHE_PACKAGE) compile --verbose --cppflags="$(CPPFLAGS)" --cflags="$(CFLAGS)" --ldflags="$(LDFLAGS)" --libs="$(cdb_LIBS)" $(PACKAGE) $(cdb_SRCS) + + check : all + @rm -f test.log + $(GOSH) -I. test.scm > test.log + + install : all +- if test ! -z "$(HEADERS)"; then \ +- $(INSTALL) -d $(HEADER_INSTALL_DIR); \ +- $(INSTALL) -m 444 $(HEADERS) $(HEADER_INSTALL_DIR); \ +- fi +- if test ! -z "$(SCMFILES)"; then \ +- $(INSTALL) -d $(SCM_INSTALL_DIR); \ +- $(INSTALL) -m 444 $(SCMFILES) $(SCM_INSTALL_DIR); \ +- fi +- if test ! -z "$(ARCHFILES)"; then \ +- $(INSTALL) -d $(ARCH_INSTALL_DIR); \ +- $(INSTALL) -m 555 $(ARCHFILES) $(ARCH_INSTALL_DIR); \ +- fi ++ $(INSTALL) -m 444 -T $(HEADER_INSTALL_DIR) $(HEADERS) ++ $(INSTALL) -m 444 -T $(SCM_INSTALL_DIR)/dbm $(SCMFILES) ++ $(INSTALL) -m 555 -T $(ARCH_INSTALL_DIR) $(ARCHFILES) ++ $(INSTALL) -m 444 -T $(SCM_INSTALL_DIR)/.packages @PACKAGE_NAME@.gpd + + clean : +- rm -rf core $(TARGET) $(OBJS) $(GENERATED) *~ test.log so_locations ++ $(GAUCHE_PACKAGE) compile --clean $(PACKAGE) $(cdb_SRCS) ++ rm -rf core $(TARGET) $(GENERATED) *~ test.log so_locations + + distclean : clean + rm -rf $(CONFIG_GENERATED) +--- a/configure.ac ++++ b/configure.ac +@@ -4,18 +4,11 @@ + AC_INIT(Gauche-cdb, 0.3.1) + AC_CONFIG_SRCDIR(cdb.stub) + +-AC_CANONICAL_SYSTEM +- + AC_GAUCHE_INIT_EXT +-AC_GAUCHE_INSTALL_TYPE(site) + AC_GAUCHE_CC +-AC_GAUCHE_FLAGS +- +-AC_PROG_INSTALL + + AC_LIB_LINKFLAGS(cdb) + +-AC_GAUCHE_FIX_LIBS +- ++AC_GAUCHE_MAKE_GPD + echo $PACKAGE_VERSION > VERSION + AC_OUTPUT(Makefile) diff --git a/dev-scheme/gauche-cdb/files/gauche-cdb-undefined-reference.patch b/dev-scheme/gauche-cdb/files/gauche-cdb-undefined-reference.patch new file mode 100644 index 000000000000..6b6619dc26ed --- /dev/null +++ b/dev-scheme/gauche-cdb/files/gauche-cdb-undefined-reference.patch @@ -0,0 +1,22 @@ +--- a/cdb.scm ++++ b/cdb.scm +@@ -60,7 +60,7 @@ + (unless (slot-bound? self 'path) + (error "path must be set to open cdb database")) + (when (cdb-file-of self) +- (errorf "cdb ~S already opened" cdb)) ++ (errorf "cdb ~s already opened" (cdb-file-of self))) + (let ((path (slot-ref self 'path)) + (rwmode (slot-ref self 'rw-mode))) + (case rwmode +--- a/cdb.stub ++++ b/cdb.stub +@@ -69,7 +69,7 @@ + + static void cdb_finalize(ScmObj obj, void *data) + { +- ScmCdb *cdb = SCM_CDB(cdb); ++ ScmCdb *cdb = SCM_CDB(obj); + switch (cdb->status) { + case OPEN_QUERY: + cdb_free(&cdb->cdb); close(cdb_fileno(&cdb->cdb)); diff --git a/dev-scheme/gauche-cdb/gauche-cdb-0.3.1-r1.ebuild b/dev-scheme/gauche-cdb/gauche-cdb-0.3.1-r1.ebuild new file mode 100644 index 000000000000..9c74be376a13 --- /dev/null +++ b/dev-scheme/gauche-cdb/gauche-cdb-0.3.1-r1.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit autotools + +MY_P="${P^g}" + +DESCRIPTION="CDB binding for Gauche" +HOMEPAGE="https://osdn.jp/projects/gauche/" +SRC_URI="mirror://sourceforge.jp/${PN%-*}/8407/${MY_P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +RDEPEND="dev-db/tinycdb + dev-scheme/gauche:=" +DEPEND="${RDEPEND}" +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-gauche-package.patch + "${FILESDIR}"/${PN}-undefined-reference.patch +) + +src_prepare() { + default + eautoreconf +} diff --git a/dev-scheme/gauche-cdb/metadata.xml b/dev-scheme/gauche-cdb/metadata.xml new file mode 100644 index 000000000000..5bb2dda1be44 --- /dev/null +++ b/dev-scheme/gauche-cdb/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>hattya@gentoo.org</email> + <name>Akinori Hattori</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/gauche-gl/Manifest b/dev-scheme/gauche-gl/Manifest new file mode 100644 index 000000000000..37ad78029887 --- /dev/null +++ b/dev-scheme/gauche-gl/Manifest @@ -0,0 +1 @@ +DIST Gauche-gl-0.6.tgz 1369790 BLAKE2B b077eeee7a2d64908b36e1d279a1131eef40e98104a983e581856320529207682d17e2c9577ff892c873492f4b78631d86a4c642b1e4f8ecd364acb4ee41482e SHA512 60f763ba832048f9932cabd2e8ce8595ba2a1f0b86f1212b1f6919d6b9b8ba33ed1076f119e53059ceac7f6e46a6ead3ba0e23cce81af3097355cd97b3b4b673 diff --git a/dev-scheme/gauche-gl/files/gauche-gl-0.6-cflags.patch b/dev-scheme/gauche-gl/files/gauche-gl-0.6-cflags.patch new file mode 100644 index 000000000000..c5c12f97f06f --- /dev/null +++ b/dev-scheme/gauche-gl/files/gauche-gl-0.6-cflags.patch @@ -0,0 +1,11 @@ +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -17,7 +17,7 @@ + # These are set by configure + # NB: cc and various flags must match the ones used to compile Gauche, + # so the make invocator shouldn't casually override them. +-CFLAGS = @DEFS@ @X_CFLAGS@ @GLUT_INCDIR@ @GLEW_INCDIR@ ++CFLAGS = @DEFS@ @CFLAGS@ @X_CFLAGS@ @GLUT_INCDIR@ @GLEW_INCDIR@ + LDFLAGS = @LDFLAGS@ + OBJEXT = @OBJEXT@ + SOEXT = @SOEXT@ diff --git a/dev-scheme/gauche-gl/files/gauche-gl-0.6-cg.patch b/dev-scheme/gauche-gl/files/gauche-gl-0.6-cg.patch new file mode 100644 index 000000000000..3c2b6014a804 --- /dev/null +++ b/dev-scheme/gauche-gl/files/gauche-gl-0.6-cg.patch @@ -0,0 +1,47 @@ +--- a/cg/Makefile.in ++++ b/cg/Makefile.in +@@ -17,8 +17,8 @@ + # These are set by configure + # NB: cc and various flags must match the ones used to compile Gauche, + # so the make invocator shouldn't casually override them. +-CFLAGS = @DEFS@ @CFLAGS@ @X_CFLAGS@ @GLUT_INCDIR@ -I../src +-LDFLAGS = -I../src @LDFLAGS@ ++CFLAGS = @DEFS@ @CFLAGS@ @X_CFLAGS@ @GLUT_INCDIR@ @CG_CFLAGS@ -I../src ++LDFLAGS = @LDFLAGS@ + OBJEXT = @OBJEXT@ + SOEXT = @SOEXT@ + OLIBS = @LIBS@ +--- a/cg/cg-lib.stub ++++ b/cg/cg-lib.stub +@@ -430,7 +430,6 @@ + ;; + ;; Cg/cg_profiles.h + ;; +-(define-enum CG_PROFILE_START) + (define-enum CG_PROFILE_UNKNOWN) + + (define-enum CG_PROFILE_VS_1_1) +@@ -443,8 +442,6 @@ + (define-enum CG_PROFILE_PS_2_0) + (define-enum CG_PROFILE_PS_2_X) + +-(define-enum CG_PROFILE_MAX) +- + ;; + ;; Cg/cg_errors.h + ;; +--- a/configure.ac ++++ b/configure.ac +@@ -46,10 +46,11 @@ + AC_HELP_STRING([--enable-cg], [Enable NVidia's Cg binding.]), [ + AC_DEFINE(HAVE_CG, 1) + ENABLE_CG=1 +- CG_LIBS="-lCgGL -lCg" ++ PKG_CHECK_MODULES([CG], [nvidia-cg-toolkit-gl]) + CG_SCM="cg/gl/cg.scm"; + ]) + AC_SUBST(ENABLE_CG) ++AC_SUBST(CG_CFLAGS) + AC_SUBST(CG_LIBS) + AC_SUBST(CG_SCM) + diff --git a/dev-scheme/gauche-gl/files/gauche-gl-0.6-info.patch b/dev-scheme/gauche-gl/files/gauche-gl-0.6-info.patch new file mode 100644 index 000000000000..663d6c17982c --- /dev/null +++ b/dev-scheme/gauche-gl/files/gauche-gl-0.6-info.patch @@ -0,0 +1,66 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -118,7 +118,6 @@ + + # Check for other programs. + AC_CHECK_PROGS(MAKEINFO, makeinfo) +-AC_CHECK_PROGS(GZIP_PROGRAM, gzip) + + # Check for libraries + +--- a/doc/Makefile.in ++++ b/doc/Makefile.in +@@ -12,7 +12,6 @@ + GAUCHE_CONFIG = "@GAUCHE_CONFIG@" + INSTALL = "@GAUCHE_INSTALL@" + MAKEINFO = "@MAKEINFO@" +-GZIP_PROGRAM = "@GZIP_PROGRAM@" + + # Manual page destination. + mandir = "$(DESTDIR)`$(GAUCHE_CONFIG) --mandir`" +@@ -21,7 +20,7 @@ + all: info + + install: all +- if test -f gauche-gl-refe.info.gz -o -f gauche-gl-refj.info.gz; then \ ++ if test -f gauche-gl-refe.info -o -f gauche-gl-refj.info; then \ + for info in *.info*; do \ + $(INSTALL) -m 444 -T $(infodir) $$info; \ + done; \ +@@ -46,7 +45,7 @@ + + pdf : gauche-gl-refe.pdf + +-info : gauche-gl-refe.info.gz gauche-gl-refj.info.gz ++info : gauche-gl-refe.info gauche-gl-refj.info + + gauche-gl-refe.html : gauche-gl-refe.texi + texi2html -number gauche-gl-refe.texi +@@ -63,11 +62,9 @@ + gauche-gl-refe.texi : gauche-gl-ref.texi extract + gosh ./extract -en -o gauche-gl-refe.texi gauche-gl-ref.texi + +-gauche-gl-refe.info.gz : gauche-gl-refe.texi +- if test "X$(MAKEINFO)" != X -a "X$(GZIP_PROGRAM)" != X; then \ ++gauche-gl-refe.info : gauche-gl-refe.texi ++ if test "X$(MAKEINFO)" != X; then \ + $(MAKEINFO) --no-warn gauche-gl-refe.texi; \ +- rm -rf gauche-gl-refe.info*.gz; \ +- $(GZIP_PROGRAM) gauche-gl-refe.info; \ + fi + + gauche-gl-refj.html : gauche-gl-refj.texi +@@ -85,11 +82,9 @@ + gauche-gl-refj.texi : gauche-gl-ref.texi extract + gosh ./extract -jp -o gauche-gl-refj.texi gauche-gl-ref.texi + +-gauche-gl-refj.info.gz : gauche-gl-refj.texi +- if test "X$(MAKEINFO)" != X -a "X$(GZIP_PROGRAM)" != X; then \ ++gauche-gl-refj.info : gauche-gl-refj.texi ++ if test "X$(MAKEINFO)" != X; then \ + $(MAKEINFO) --no-warn gauche-gl-refj.texi; \ +- rm -rf gauche-gl-refj.info*.gz; \ +- $(GZIP_PROGRAM) gauche-gl-refj.info ; \ + fi + + clean: diff --git a/dev-scheme/gauche-gl/files/gauche-gl-0.6-simple.viewer.patch b/dev-scheme/gauche-gl/files/gauche-gl-0.6-simple.viewer.patch new file mode 100644 index 000000000000..1f5cf8ecacf2 --- /dev/null +++ b/dev-scheme/gauche-gl/files/gauche-gl-0.6-simple.viewer.patch @@ -0,0 +1,25 @@ +From 723309ac3e7aa031e2ebd6c9b059d94e42006de3 Mon Sep 17 00:00:00 2001 +From: Shiro Kawai <shiro@acm.org> +Date: Sat, 9 Aug 2014 22:19:04 -1000 +Subject: [PATCH] Fix incorrect macro definition + +--- + lib/gl/simple/viewer.scm | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/gl/simple/viewer.scm b/lib/gl/simple/viewer.scm +index 857b8d7..9a464ce 100644 +--- a/lib/gl/simple/viewer.scm ++++ b/lib/gl/simple/viewer.scm +@@ -381,7 +381,7 @@ + (match opts + [() (set! default3-var proc)] + [(':perspective) (set! default3-var proc)] +- [(':orthographic) (set! default3-var proc)] ++ [(':orthographic) (set! default2-var proc)] + [(name) + (cond [(name->window name) => (^[win] (ref win'closure) 'key proc)] + [else +-- +2.0.3 + diff --git a/dev-scheme/gauche-gl/gauche-gl-0.6-r1.ebuild b/dev-scheme/gauche-gl/gauche-gl-0.6-r1.ebuild new file mode 100644 index 000000000000..9fe0846a7415 --- /dev/null +++ b/dev-scheme/gauche-gl/gauche-gl-0.6-r1.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit autotools + +MY_P="${P^g}" + +DESCRIPTION="OpenGL binding for Gauche" +HOMEPAGE="https://practical-scheme.net/gauche/" +SRC_URI="https://downloads.sourceforge.net/${PN%-*}/${MY_P}.tgz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ~ppc x86" +IUSE="cg examples" + +RDEPEND="dev-scheme/gauche:= + media-libs/freeglut + virtual/opengl + x11-libs/libXmu + cg? ( media-gfx/nvidia-cg-toolkit )" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${P}-simple.viewer.patch + "${FILESDIR}"/${P}-cflags.patch + "${FILESDIR}"/${P}-cg.patch + "${FILESDIR}"/${P}-info.patch +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + econf $(usex cg --enable-cg "") +} + +src_install() { + default + + if use examples; then + docompress -x /usr/share/doc/${PF}/examples + docinto examples + dodoc examples/*.scm + # install simple + dodoc -r examples/simple + # install glbook + dodoc -r examples/glbook + dodoc -r examples/images + # install slbook + dodoc -r examples/slbook + # install cg examples + use cg && dodoc -r examples/cg + fi +} diff --git a/dev-scheme/gauche-gl/metadata.xml b/dev-scheme/gauche-gl/metadata.xml new file mode 100644 index 000000000000..af5b8ec2dae9 --- /dev/null +++ b/dev-scheme/gauche-gl/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>hattya@gentoo.org</email> + <name>Akinori Hattori</name> + </maintainer> + <use> + <flag name="cg">Enable NVidia Cg binding</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/gauche-gtk/Manifest b/dev-scheme/gauche-gtk/Manifest new file mode 100644 index 000000000000..74e0710ffa0d --- /dev/null +++ b/dev-scheme/gauche-gtk/Manifest @@ -0,0 +1 @@ +DIST Gauche-gtk2-0.6.2.tgz 420027 BLAKE2B 9447abf3b5630440e1945ae332fcbdca6871985f71fd382bf0c6ca47f7bf3544923a0ebc5ee797e0250e533445dcbe4b2325b1b316ce634489ad8713d8a14a6d SHA512 ba4d91ba0066247040f7d795779f74eb453741240379b8148b9ab62aba53b9730399802b445fc44ec07d8f96d9c840c4cb6df2e5d5c430f394d111597ee82d28 diff --git a/dev-scheme/gauche-gtk/gauche-gtk-0.6.2.ebuild b/dev-scheme/gauche-gtk/gauche-gtk-0.6.2.ebuild new file mode 100644 index 000000000000..448b6183f46f --- /dev/null +++ b/dev-scheme/gauche-gtk/gauche-gtk-0.6.2.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +MY_P="${PN^g}2-${PV}" + +DESCRIPTION="GTK2 binding for Gauche" +HOMEPAGE="https://practical-scheme.net/gauche/" +SRC_URI="https://github.com/shirok/${PN^g}2/releases/download/release-${PV}/${MY_P}.tgz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ~ppc x86" +IUSE="examples" +RESTRICT="test" + +RDEPEND="dev-scheme/gauche:= + x11-libs/gtk+:2" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" +S="${WORKDIR}/${MY_P}" + +src_compile() { + emake stubs + emake +} + +src_install() { + default + + if use examples; then + docompress -x /usr/share/doc/${PF}/examples + docinto examples + dodoc examples/*.scm + # install gtk-tutorial + docinto examples/gtk-tutorial + dodoc examples/gtk-tutorial/* + fi +} diff --git a/dev-scheme/gauche-gtk/metadata.xml b/dev-scheme/gauche-gtk/metadata.xml new file mode 100644 index 000000000000..5bb2dda1be44 --- /dev/null +++ b/dev-scheme/gauche-gtk/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>hattya@gentoo.org</email> + <name>Akinori Hattori</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/gauche-kakasi/Manifest b/dev-scheme/gauche-kakasi/Manifest new file mode 100644 index 000000000000..8196304e5f08 --- /dev/null +++ b/dev-scheme/gauche-kakasi/Manifest @@ -0,0 +1 @@ +DIST Gauche-kakasi-0.1.tgz 56568 BLAKE2B 965c59918da2005b14c127ea23bf1b7e001809889a1caa9cde5af97b22ea23952dcc269e8860f37354e98264c659f222826cc6e3f7f9db49701c33c3e898246a SHA512 761fb704482f4e6705ca80b894b245391efee92d409e9438e59afae56d0b7d9907ed40ab3a5bcc3ec9f2a8115bdbc622c48eaec3b0ed38c99677bf1f9f0f7bed diff --git a/dev-scheme/gauche-kakasi/files/gauche-kakasi-gauche-package.patch b/dev-scheme/gauche-kakasi/files/gauche-kakasi-gauche-package.patch new file mode 100644 index 000000000000..ca2e3fd73da0 --- /dev/null +++ b/dev-scheme/gauche-kakasi/files/gauche-kakasi-gauche-package.patch @@ -0,0 +1,156 @@ +--- a/Makefile.in ++++ b/Makefile.in +@@ -10,58 +10,43 @@ + VPATH = $(srcdir) + + # These may be overridden by make invocators +-DESTDIR = +-OPTFLAGS = @OPTFLAGS@ +-CC = @CC@ +-LIBS = -lkakasi @LIBS@ +-CFLAGS = @CFLAGS@ @KAKASI_INCDIR@ $(OPTFLAGS) +-LDFLAGS = @LDFLAGS@ @KAKASI_LIBDIR@ +-INSTALL_TYPE = @INSTALL_TYPE@ +- +-# Set by configure +-GOSH = @GOSH@ +-GAUCHE_CONFIG = @GAUCHE_CONFIG@ +-OBJEXT = @OBJEXT@ +-DSOEXT = @SOEXT@ ++DESTDIR = ++CFLAGS = @CFLAGS@ @KAKASI_INCDIR@ ++CPPFLAGS = @CPPFLAGS@ ++LDFLAGS = @LDFLAGS@ @KAKASI_LIBDIR@ ++GOSH = "@GOSH@" ++GAUCHE_CONFIG = "@GAUCHE_CONFIG@" ++GAUCHE_PACKAGE = "@GAUCHE_PACKAGE@" ++INSTALL = "@GAUCHE_INSTALL@" + +-INSTALL = @GAUCHE_INSTALL@ ++# Other parameters ++SOEXT = @SOEXT@ ++OBJEXT = @OBJEXT@ ++EXEEXT = @EXEEXT@ + +-MODULE = kakasi ++# Module-specific stuff ++PACKAGE = kakasi + +-ARCHFILES = $(MODULE).$(DSOEXT) +-SCMFILES = text/$(MODULE).scm +-HEADERS = ++ARCHFILES = $(PACKAGE).$(SOEXT) ++SCMFILES = text/$(PACKAGE).scm ++HEADERS = + + TARGET = $(ARCHFILES) +-OBJS = kakasi_head.$(OBJEXT) \ +- kakasi.$(OBJEXT) \ +- kakasilib.$(OBJEXT) \ +- kakasi_tail.$(OBJEXT) +-GENERATED = kakasilib.$(OBJEXT) kakasi_head.c kakasi_tail.c ++GENERATED = + CONFIG_GENERATED = Makefile config.cache config.log config.status \ +- configure.lineno autom4te*.cache Gauche-kakasi.gpd +- +-HEADER_INSTALL_DIR = $(DESTDIR)`$(GAUCHE_CONFIG) --$(INSTALL_TYPE)incdir` +-SCM_INSTALL_DIR = $(DESTDIR)`$(GAUCHE_CONFIG) --$(INSTALL_TYPE)libdir` +-ARCH_INSTALL_DIR = $(DESTDIR)`$(GAUCHE_CONFIG) --$(INSTALL_TYPE)archdir` +- +-all : $(TARGET) +- +-.SUFFIXES: .o .stub ++ configure.lineno autom4te*.cache @PACKAGE_NAME@.gpd + +-.c.o: +- $(CC) $(CFLAGS) -c $< -o $@ ++HEADER_INSTALL_DIR = "$(DESTDIR)`$(GAUCHE_CONFIG) --siteincdir`" ++SCM_INSTALL_DIR = "$(DESTDIR)`$(GAUCHE_CONFIG) --sitelibdir`" ++ARCH_INSTALL_DIR = "$(DESTDIR)`$(GAUCHE_CONFIG) --sitearchdir`" + +-.stub.c: +- $(GOSH) genstub $< ++kakasi_SRCS = kakasi.c kakasilib.stub ++kakasi_LIBS = -lkakasi + +-kakasilib.c : kakasilib.stub +- +-$(MODULE).$(DSOEXT): $(OBJS) +- $(CC) -Wl,-rpath -Wl,`gauche-config --sysarchdir` $(LDFLAGS) $(MODULE).$(DSOEXT) $(OBJS) $(LIBS) ++all : $(TARGET) + +-$(MODULE)_head.c $(MODULE)_tail.c : +- $(GAUCHE_CONFIG) --fixup-extension $(MODULE) ++$(PACKAGE).$(SOEXT): $(kakasi_SRCS) ++ $(GAUCHE_PACKAGE) compile --verbose --cppflags="$(CPPFLAGS)" --cflags="$(CFLAGS)" --ldflags="$(LDFLAGS)" --libs="$(kakasi_LIBS)" $(PACKAGE) $(kakasi_SRCS) + + check : all + @rm -f test.log +@@ -71,10 +56,11 @@ + $(INSTALL) -m 444 -T $(HEADER_INSTALL_DIR) $(HEADERS) + $(INSTALL) -m 444 -T $(SCM_INSTALL_DIR) $(SCMFILES) + $(INSTALL) -m 555 -T $(ARCH_INSTALL_DIR) $(ARCHFILES) +- $(INSTALL) -m 444 -T $(SCM_INSTALL_DIR)/.packages Gauche-kakasi.gpd ++ $(INSTALL) -m 444 -T $(SCM_INSTALL_DIR)/.packages @PACKAGE_NAME@.gpd + + clean : +- rm -rf core $(TARGET) $(OBJS) $(GENERATED) *~ test.log so_locations ++ $(GAUCHE_PACKAGE) compile --clean $(PACKAGE) $(kakasi_SRCS) ++ rm -rf core $(TARGET) $(GENERATED) *~ test.log so_locations + + distclean : clean + rm -rf $(CONFIG_GENERATED) +--- a/configure.in ++++ b/configure.in +@@ -7,10 +7,6 @@ + + AC_PREREQ(2.54) + AC_INIT(Gauche-kakasi, 0.1, shiro@acm.org) +-dnl If you want to use the system name (OS, architecture, etc) in the +-dnl configure, uncomment the following line. In such a case, you need +-dnl to copy config.guess and config.sub from automake distribution. +-AC_CANONICAL_SYSTEM + + dnl Sets several Gauche-specific parameters. + AC_GAUCHE_INIT_EXT +@@ -27,16 +23,10 @@ + AC_SUBST(KAKASI_INCDIR) + AC_SUBST(KAKASI_LIBDIR) + +-dnl Sets the default value of INSTALL_TYPE macro. +-dnl You can set it either 'site' or 'sys'. Usually, user-provided +-dnl extensions are installed as 'site' category. +-AC_GAUCHE_INSTALL_TYPE(site) +- + dnl Get compiler parameters which Gauche has been compiled with. + dnl Do not use AC_PROG_CC. You need to compile and link with the + dnl same programs as gosh. + AC_GAUCHE_CC +-AC_GAUCHE_FLAGS + + dnl Check for other programs. + dnl Add your macro calls to check existence of programs, if you have any. +@@ -44,9 +34,9 @@ + dnl Check for libraries + dnl Add your macro calls to check required libraries, if you have any. + +-dnl Set LDFLAGS to generate dlopen-able extension. +-dnl This should come after all tests, or the tests that does link will fail. +-AC_GAUCHE_FIX_LIBS ++AC_SUBST(CFLAGS) ++AC_SUBST(CPPFLAGS) ++AC_SUBST(LDFLAGS) + + dnl Output + AC_GAUCHE_MAKE_GPD +--- a/kakasilib.stub ++++ b/kakasilib.stub +@@ -43,7 +43,7 @@ + SCM_RETURN(sr);") + + (define-cproc kakasi-close-kanwadict () +- (return <fixnum> "kakasi_close_kanwadict")) ++ "SCM_RETURN(SCM_MAKE_INT(kakasi_close_kanwadict()));") + + ;; Local variables: + ;; mode: scheme diff --git a/dev-scheme/gauche-kakasi/gauche-kakasi-0.1-r1.ebuild b/dev-scheme/gauche-kakasi/gauche-kakasi-0.1-r1.ebuild new file mode 100644 index 000000000000..eb3e30475151 --- /dev/null +++ b/dev-scheme/gauche-kakasi/gauche-kakasi-0.1-r1.ebuild @@ -0,0 +1,31 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit autotools + +MY_P="${P^g}" + +DESCRIPTION="Kakasi binding for Gauche" +HOMEPAGE="https://osdn.jp/projects/gauche/" +SRC_URI="https://downloads.sourceforge.net/${PN%-*}/${MY_P}.tgz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +RDEPEND=">=app-i18n/kakasi-2.3.4 + dev-scheme/gauche:=" +DEPEND="${RDEPEND}" +S="${WORKDIR}/${MY_P}" + +PATCHES=( "${FILESDIR}"/${PN}-gauche-package.patch ) + +src_prepare() { + default + + mv configure.{in,ac} || die + eautoreconf +} diff --git a/dev-scheme/gauche-kakasi/metadata.xml b/dev-scheme/gauche-kakasi/metadata.xml new file mode 100644 index 000000000000..5bb2dda1be44 --- /dev/null +++ b/dev-scheme/gauche-kakasi/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>hattya@gentoo.org</email> + <name>Akinori Hattori</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/gauche-mecab/Manifest b/dev-scheme/gauche-mecab/Manifest new file mode 100644 index 000000000000..0eed344b4395 --- /dev/null +++ b/dev-scheme/gauche-mecab/Manifest @@ -0,0 +1 @@ +DIST Gauche-mecab-1.0.2.tar.gz 12724 BLAKE2B 7e18910f5e45750b6fe3a916a0350071be97f0c860bdf27733639599ec2e302305887ae04b7239c9da90e0913bc2ba03626f105a0004bd3c7f087016b66cef63 SHA512 2d000a0c0f795af93e2728249e7ab339c19d388546d3a300d5960079b9bf360a23c7758867edaca4abb871329689372b645e27eb20bed139aeb997e4d7583c43 diff --git a/dev-scheme/gauche-mecab/gauche-mecab-1.0.2-r1.ebuild b/dev-scheme/gauche-mecab/gauche-mecab-1.0.2-r1.ebuild new file mode 100644 index 000000000000..064d573170a1 --- /dev/null +++ b/dev-scheme/gauche-mecab/gauche-mecab-1.0.2-r1.ebuild @@ -0,0 +1,20 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +MY_P="${P^g}" + +DESCRIPTION="MeCab binding for Gauche" +HOMEPAGE="https://github.com/shirok/Gauche-mecab" +SRC_URI="https://github.com/shirok/${PN^g}/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +RDEPEND="app-text/mecab + dev-scheme/gauche:=" +DEPEND="${RDEPEND}" +S="${WORKDIR}/${MY_P}" diff --git a/dev-scheme/gauche-mecab/metadata.xml b/dev-scheme/gauche-mecab/metadata.xml new file mode 100644 index 000000000000..5bb2dda1be44 --- /dev/null +++ b/dev-scheme/gauche-mecab/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>hattya@gentoo.org</email> + <name>Akinori Hattori</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/gauche-qdbm/Manifest b/dev-scheme/gauche-qdbm/Manifest new file mode 100644 index 000000000000..c10fff4fbeee --- /dev/null +++ b/dev-scheme/gauche-qdbm/Manifest @@ -0,0 +1 @@ +DIST Gauche-qdbm-0.2.tar.gz 73311 BLAKE2B d8937147368416ef17ca5e953d91a6e906f16e65b73c87d01515346c0be5e5bb3646e7b26a8847d4b29bcf7abd4e7114fdbfd74a122f5fd1cc6205768e1789eb SHA512 9286d22f1ad32f213c34670ca0a3fef4d43da8d7e0bed019cd5891400eb7337cd3adfb7cc788350e1f1ab535b87af0fa0a6096d33fa73da6049888ce0006e821 diff --git a/dev-scheme/gauche-qdbm/files/gauche-qdbm-gauche-package.patch b/dev-scheme/gauche-qdbm/files/gauche-qdbm-gauche-package.patch new file mode 100644 index 000000000000..0c74472113a0 --- /dev/null +++ b/dev-scheme/gauche-qdbm/files/gauche-qdbm-gauche-package.patch @@ -0,0 +1,147 @@ +--- a/Makefile.in ++++ b/Makefile.in +@@ -10,79 +10,57 @@ + VPATH = $(srcdir) + + # These may be overridden by make invocators +-DESTDIR = +-OPTFLAGS = @OPTFLAGS@ +-CC = @CC@ +-LIBS = @LIBS@ +-CFLAGS = @CFLAGS@ +-CPPFLAGS = @CPPFLAGS@ # AC_LIB_LINKFLAGS adds to this.. +-LDFLAGS = @LDFLAGS@ +-INSTALL = @INSTALL@ +-INSTALL_TYPE = @INSTALL_TYPE@ +- +-# Set by configure +-GOSH = @GOSH@ +-GAUCHE_CONFIG = @GAUCHE_CONFIG@ ++DESTDIR = ++CFLAGS = @CFLAGS@ ++CPPFLAGS = @CPPFLAGS@ # AC_LIB_LINKFLAGS adds to this.. ++LDFLAGS = @LDFLAGS@ ++GOSH = "@GOSH@" ++GAUCHE_CONFIG = "@GAUCHE_CONFIG@" ++GAUCHE_PACKAGE = "@GAUCHE_PACKAGE@" ++INSTALL = "@GAUCHE_INSTALL@" ++ ++# Other parameters ++SOEXT = @SOEXT@ + OBJEXT = @OBJEXT@ +-DSOEXT = @SOEXT@ ++EXEEXT = @EXEEXT@ + +-MODULE = qdbm ++# Module-specific stuff ++PACKAGE = qdbm + +-ARCHFILES = $(MODULE).$(DSOEXT) +-SCMFILES = $(MODULE).scm ++ARCHFILES = $(PACKAGE).$(SOEXT) ++SCMFILES = $(PACKAGE).scm + HEADERS = + + TARGET = $(ARCHFILES) +-OBJS = $(MODULE)_head.$(OBJEXT) \ +- qdbm.$(OBJEXT) \ +- depot.$(OBJEXT) \ +- $(MODULE)_tail.$(OBJEXT) +-GENERATED = depot.c $(MODULE)_head.c $(MODULE)_tail.c ++GENERATED = + CONFIG_GENERATED = Makefile config.cache config.log config.status \ +- configure.lineno autom4te*.cache +- +-HEADER_INSTALL_DIR = $(DESTDIR)/`$(GAUCHE_CONFIG) --$(INSTALL_TYPE)incdir` +-SCM_INSTALL_DIR = $(DESTDIR)/`$(GAUCHE_CONFIG) --$(INSTALL_TYPE)libdir`/dbm +-ARCH_INSTALL_DIR = $(DESTDIR)/`$(GAUCHE_CONFIG) --$(INSTALL_TYPE)archdir` +- +-all : $(TARGET) ++ configure.lineno autom4te*.cache @PACKAGE_NAME@.gpd + +-.SUFFIXES: .o .stub ++HEADER_INSTALL_DIR = "$(DESTDIR)`$(GAUCHE_CONFIG) --siteincdir`" ++SCM_INSTALL_DIR = "$(DESTDIR)`$(GAUCHE_CONFIG) --sitelibdir`" ++ARCH_INSTALL_DIR = "$(DESTDIR)`$(GAUCHE_CONFIG) --sitearchdir`" + +-.c.o: +- $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ ++qdbm_SRCS = qdbm.c depot.stub ++qdbm_LIBS = @LIBQDBM@ + +-.stub.c: +- $(GOSH) genstub $< +- +-depot.c : depot.stub +- +-$(MODULE).$(DSOEXT): $(OBJS) +- $(CC) -Wl,-rpath -Wl,`gauche-config --sysarchdir` $(LDFLAGS) $(MODULE).$(DSOEXT) $(OBJS) $(LIBS) @LIBQDBM@ ++all : $(TARGET) + +-$(MODULE)_head.c $(MODULE)_tail.c : +- $(GAUCHE_CONFIG) --fixup-extension $(MODULE) ++$(PACKAGE).$(SOEXT): $(qdbm_SRCS) ++ $(GAUCHE_PACKAGE) compile --verbose --cppflags="$(CPPFLAGS)" --cflags="$(CFLAGS)" --ldflags="$(LDFLAGS)" --libs="$(qdbm_LIBS)" $(PACKAGE) $(qdbm_SRCS) + + check : all + @rm -f test.log + $(GOSH) -I. test.scm > test.log + + install : all +- if test ! -z "$(HEADERS)"; then \ +- $(INSTALL) -d $(HEADER_INSTALL_DIR); \ +- $(INSTALL) -m 444 $(HEADERS) $(HEADER_INSTALL_DIR); \ +- fi +- if test ! -z "$(SCMFILES)"; then \ +- $(INSTALL) -d $(SCM_INSTALL_DIR); \ +- $(INSTALL) -m 444 $(SCMFILES) $(SCM_INSTALL_DIR); \ +- fi +- if test ! -z "$(ARCHFILES)"; then \ +- $(INSTALL) -d $(ARCH_INSTALL_DIR); \ +- $(INSTALL) -m 555 $(ARCHFILES) $(ARCH_INSTALL_DIR); \ +- fi ++ $(INSTALL) -m 444 -T $(HEADER_INSTALL_DIR) $(HEADERS) ++ $(INSTALL) -m 444 -T $(SCM_INSTALL_DIR)/dbm $(SCMFILES) ++ $(INSTALL) -m 555 -T $(ARCH_INSTALL_DIR) $(ARCHFILES) ++ $(INSTALL) -m 444 -T $(SCM_INSTALL_DIR)/.packages @PACKAGE_NAME@.gpd + + clean : +- rm -rf core $(TARGET) $(OBJS) $(GENERATED) *~ test.log so_locations ++ $(GAUCHE_PACKAGE) compile --clean $(PACKAGE) $(qdbm_SRCS) ++ rm -rf core $(TARGET) $(GENERATED) *~ test.log so_locations + + distclean : clean + rm -rf $(CONFIG_GENERATED) +--- a/configure.ac ++++ b/configure.ac +@@ -4,18 +4,11 @@ + AC_INIT(Gauche-qdbm, 0.2) + AC_CONFIG_SRCDIR(qdbm.c) + +-AC_CANONICAL_SYSTEM +- + AC_GAUCHE_INIT_EXT +-AC_GAUCHE_INSTALL_TYPE(site) + AC_GAUCHE_CC +-AC_GAUCHE_FLAGS +- +-AC_PROG_INSTALL + + AC_LIB_LINKFLAGS(qdbm) + +-AC_GAUCHE_FIX_LIBS +- ++AC_GAUCHE_MAKE_GPD + echo $PACKAGE_VERSION > VERSION + AC_OUTPUT(Makefile) +--- a/depot.stub ++++ b/depot.stub +@@ -219,7 +219,7 @@ + SCM_RETURN(SCM_MAKE_INT(r));") + + (define-cproc qdbm-dpprimenum (num::<fixnum>) +- (return <int> "dpprimenum")) ++ " SCM_RETURN(SCM_MAKE_INT(dpprimenum(num)));") + + (define-enum DP_OREADER) + (define-enum DP_OWRITER) diff --git a/dev-scheme/gauche-qdbm/files/gauche-qdbm-test.patch b/dev-scheme/gauche-qdbm/files/gauche-qdbm-test.patch new file mode 100644 index 000000000000..2153c8978feb --- /dev/null +++ b/dev-scheme/gauche-qdbm/files/gauche-qdbm-test.patch @@ -0,0 +1,13 @@ +--- a/test.scm ++++ b/test.scm +@@ -32,8 +32,8 @@ + (test* "qdbm-dpclosed?" #t (qdbm-dpclosed? qdbm)) + (test* "qdbm-dpremove" #t (qdbm-dpremove "test.dbm")) + +-(test* "qdbm-innerhash" -468784272 (qdbm-dpinnerhash "key")) +-(test* "qdbm-outerhash" -448645494 (qdbm-dpouterhash "key")) ++(test* "qdbm-innerhash" 604957552 (qdbm-dpinnerhash "key")) ++(test* "qdbm-outerhash" 625096330 (qdbm-dpouterhash "key")) + (test* "qdbm-primenum" 10223 (qdbm-dpprimenum 10000)) + + ;; The following is taken from ext/dbm/test.scm. diff --git a/dev-scheme/gauche-qdbm/files/gauche-qdbm-undefined-reference.patch b/dev-scheme/gauche-qdbm/files/gauche-qdbm-undefined-reference.patch new file mode 100644 index 000000000000..cf80940c97ef --- /dev/null +++ b/dev-scheme/gauche-qdbm/files/gauche-qdbm-undefined-reference.patch @@ -0,0 +1,11 @@ +--- a/qdbm.scm ++++ b/qdbm.scm +@@ -72,7 +72,7 @@ + (unless (slot-bound? self 'path) + (error "path must be set to open qdbm database")) + (when (qdbm-file-of self) +- (errorf "qdbm ~S already opened" qdbm)) ++ (errorf "qdbm ~s already opened" (qdbm-file-of self))) + (let* ((path (slot-ref self 'path)) + (rwmode (slot-ref self 'rw-mode)) + (omode (case rwmode diff --git a/dev-scheme/gauche-qdbm/gauche-qdbm-0.2-r1.ebuild b/dev-scheme/gauche-qdbm/gauche-qdbm-0.2-r1.ebuild new file mode 100644 index 000000000000..87ddea8a0b8d --- /dev/null +++ b/dev-scheme/gauche-qdbm/gauche-qdbm-0.2-r1.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit autotools + +MY_P="${P^g}" + +DESCRIPTION="QDBM binding for Gauche" +HOMEPAGE="https://osdn.jp/projects/gauche/" +SRC_URI="mirror://sourceforge.jp/${PN%-*}/6988/${MY_P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ~sparc x86" +IUSE="" + +RDEPEND="dev-db/qdbm + dev-scheme/gauche:=" +DEPEND="${RDEPEND}" +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-gauche-package.patch + "${FILESDIR}"/${PN}-test.patch + "${FILESDIR}"/${PN}-undefined-reference.patch +) + +src_prepare() { + default + eautoreconf +} diff --git a/dev-scheme/gauche-qdbm/metadata.xml b/dev-scheme/gauche-qdbm/metadata.xml new file mode 100644 index 000000000000..5bb2dda1be44 --- /dev/null +++ b/dev-scheme/gauche-qdbm/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>hattya@gentoo.org</email> + <name>Akinori Hattori</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/gauche/Manifest b/dev-scheme/gauche/Manifest new file mode 100644 index 000000000000..7996744b0f2d --- /dev/null +++ b/dev-scheme/gauche/Manifest @@ -0,0 +1,2 @@ +DIST Gauche-0.9.14.tgz 9352431 BLAKE2B cb747a16037167a95a543e324b53a48e3cb4dd372e9f6cc00603b7072b902c839248fbf3e9926360a2732fcf4bc0caa16a4ea1ad757e84d5d597ef4bdfa2592f SHA512 3dd9dc8627fe1c5e518731a17dd984120485b36d6c2bb2d0d54a8b5f6778f45efd02640abe4699466eec2eb18dd4474d9525848029468128974c13c615087662 +DIST Gauche-0.9.15.tgz 9444756 BLAKE2B 1b4cbc764ea3af78bc736ce9a8ff083318366fbf3197ebc5060222b8df93ed426ca4b3b90402cd604e110bcfa8fb46c0d4c5f35be39899cc89dc82a671372bf9 SHA512 fc246a9ba937eba642621a5707f0e7a02d62191749360b9b15e2563c9ceb13e18f236c736172d05c177df8b7220ff0e973f568aaf9eb92e92643af0823f0f865 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..a5c5455f1702 --- /dev/null +++ b/dev-scheme/gauche/files/gauche-gauche.m4.patch @@ -0,0 +1,27 @@ +--- 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) + ]) +@@ -150,7 +147,7 @@ + dnl + AC_DEFUN([AC_GAUCHE_MAKE_GPD], + [ +-GAUCHE_PACKAGE_CONFIGURE_ARGS=`echo "$ac_configure_args" | sed 's/@<:@\\"\`\$@:>@/\\\\&/g'` ++GAUCHE_PACKAGE_CONFIGURE_ARGS=`echo "$ac_configure_args" | sed 's/@<:@\$\\"\`@:>@/\\\\&/g'` + AC_MSG_NOTICE([creating ${PACKAGE_NAME}.gpd]) + $GAUCHE_PACKAGE make-gpd "$PACKAGE_NAME" \ + -version "$PACKAGE_VERSION" \ 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..5ca77a8d583d --- /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 +@@ -113,7 +113,8 @@ + :paths (get-info-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"))))) + + (define (handle-ambiguous-name entry-name) + (let* ([keys (map x->string (hash-table-keys (~ (get-info)'index)))] +--- a/lib/text/info.scm ++++ b/lib/text/info.scm +@@ -67,6 +67,7 @@ + + ;; Find bzip2 location + (define bzip2 (find-file-in-paths "bzip2")) ++(define xz (find-file-in-paths "xz")) + + (cond-expand + [gauche.sys.zlib] +@@ -90,6 +91,8 @@ + (with-input-from-process #"~gzip -c -d ~|file|.gz" thunk)])] + [(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 + (^[] diff --git a/dev-scheme/gauche/gauche-0.9.14.ebuild b/dev-scheme/gauche/gauche-0.9.14.ebuild new file mode 100644 index 000000000000..8ddb10e6996d --- /dev/null +++ b/dev-scheme/gauche/gauche-0.9.14.ebuild @@ -0,0 +1,61 @@ +# Copyright 2021-2024 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit autotools + +MY_P="${P^g}" +MY_P="${MY_P/_p/-p}" + +DESCRIPTION="A Unix system friendly Scheme Interpreter" +HOMEPAGE="https://practical-scheme.net/gauche/" +SRC_URI="https://github.com/shirok/${PN^g}/releases/download/release${PV//./_}/${MY_P}.tgz" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2)8" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="ipv6 test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-libs/libatomic_ops + sys-libs/gdbm + virtual/libcrypt:= + net-libs/mbedtls:= +" +DEPEND=" + ${RDEPEND} +" +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-ext-ldflags.patch + "${FILESDIR}"/${PN}-gauche.m4.patch + "${FILESDIR}"/${PN}-xz-info.patch +) +DOCS=( AUTHORS ChangeLog HACKING.adoc README.adoc ) + +src_prepare() { + default + use ipv6 && sed -i "s/ -4//" ext/tls/ssltest-mod.scm + + eautoconf +} + +src_configure() { + econf \ + $(use_enable ipv6) \ + --with-ca-bundle="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt \ + --with-libatomic-ops=yes \ + --with-slib="${EPREFIX}"/usr/share/slib \ + --with-tls=mbedtls +} + +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.15.ebuild b/dev-scheme/gauche/gauche-0.9.15.ebuild new file mode 100644 index 000000000000..8ddb10e6996d --- /dev/null +++ b/dev-scheme/gauche/gauche-0.9.15.ebuild @@ -0,0 +1,61 @@ +# Copyright 2021-2024 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit autotools + +MY_P="${P^g}" +MY_P="${MY_P/_p/-p}" + +DESCRIPTION="A Unix system friendly Scheme Interpreter" +HOMEPAGE="https://practical-scheme.net/gauche/" +SRC_URI="https://github.com/shirok/${PN^g}/releases/download/release${PV//./_}/${MY_P}.tgz" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2)8" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="ipv6 test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-libs/libatomic_ops + sys-libs/gdbm + virtual/libcrypt:= + net-libs/mbedtls:= +" +DEPEND=" + ${RDEPEND} +" +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-ext-ldflags.patch + "${FILESDIR}"/${PN}-gauche.m4.patch + "${FILESDIR}"/${PN}-xz-info.patch +) +DOCS=( AUTHORS ChangeLog HACKING.adoc README.adoc ) + +src_prepare() { + default + use ipv6 && sed -i "s/ -4//" ext/tls/ssltest-mod.scm + + eautoconf +} + +src_configure() { + econf \ + $(use_enable ipv6) \ + --with-ca-bundle="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt \ + --with-libatomic-ops=yes \ + --with-slib="${EPREFIX}"/usr/share/slib \ + --with-tls=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..8fc2c10acd9e --- /dev/null +++ b/dev-scheme/gauche/metadata.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>dev@liguros.net</email> + <name>Development</name> + </maintainer> + <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> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/goosh/Manifest b/dev-scheme/goosh/Manifest new file mode 100644 index 000000000000..91dde8e3f67d --- /dev/null +++ b/dev-scheme/goosh/Manifest @@ -0,0 +1 @@ +DIST goosh-1.3.tar.gz 43503 BLAKE2B 7bc3c907638320889ef2c871acd2e4e9fbd0fdb8e1a3655cb42cc92eea9fe28f01533ecff8e3efa4488dd5f0d2c9cdc6aa5ba7e333a9acb1d430633479c6cc80 SHA512 55fc3b83b5e711453886d6fd47e7e16df329ac7f294c704e3676f7266383fda6ad5e53c3f8a707a7746dd0ccd33647cc5137a73f516396079702df47919ede81 diff --git a/dev-scheme/goosh/goosh-1.3-r100.ebuild b/dev-scheme/goosh/goosh-1.3-r100.ebuild new file mode 100644 index 000000000000..26255f855987 --- /dev/null +++ b/dev-scheme/goosh/goosh-1.3-r100.ebuild @@ -0,0 +1,20 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit guile + +DESCRIPTION="Small process-control library for Guile" +HOMEPAGE="http://arglist.com/guile/" +SRC_URI="http://arglist.com/guile/${P}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~riscv x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND="${GUILE_DEPS}" +BDEPEND="${RDEPEND}" diff --git a/dev-scheme/goosh/metadata.xml b/dev-scheme/goosh/metadata.xml new file mode 100644 index 000000000000..21349e73544b --- /dev/null +++ b/dev-scheme/goosh/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>sci-chemistry@gentoo.org</email> + <name>Gentoo Chemistry Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-colorized/Manifest b/dev-scheme/guile-colorized/Manifest new file mode 100644 index 000000000000..6f434c2fa894 --- /dev/null +++ b/dev-scheme/guile-colorized/Manifest @@ -0,0 +1 @@ +DIST guile-colorized-0.1_p20191205.tar.bz2 15496 BLAKE2B a85fc44c3b6b8433362197a4f1da216ea99793673ee4592e6ea32178d2952d0f43f5a4e79304185d0c67b6dee668bf52d53970df97954a37650cd8b7770e7abd SHA512 4cd9833c70debf0086ba69252e1fb8b9fc33707ec1f3bb6dfb144d5a35db6f38e3af585cbc889936c8ebb38dea0f8808f483bd51ed1722c9b9df857d31a7cec7 diff --git a/dev-scheme/guile-colorized/guile-colorized-0.1_p20191205-r100.ebuild b/dev-scheme/guile-colorized/guile-colorized-0.1_p20191205-r100.ebuild new file mode 100644 index 000000000000..d8f4c69f42d0 --- /dev/null +++ b/dev-scheme/guile-colorized/guile-colorized-0.1_p20191205-r100.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit guile + +DESCRIPTION="Colorized REPL for GNU Guile" +HOMEPAGE="https://gitlab.com/NalaGinrut/guile-colorized/" + +if [[ "${PV}" == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/NalaGinrut/${PN}.git" +else + # Latest release (before this commit from 2019) was in 2015 + COMMIT_SHA="1625a79f0e31849ebd537e2a58793fb45678c58f" + SRC_URI="https://gitlab.com/NalaGinrut/${PN}/-/archive/${COMMIT_SHA}.tar.bz2 -> ${P}.tar.bz2" + KEYWORDS="~amd64" + S="${WORKDIR}/${PN}-${COMMIT_SHA}" +fi + +LICENSE="GPL-3" +SLOT="0" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND="${GUILE_DEPS}" +DEPEND="${RDEPEND}" + +src_install() { + my_install() { + local loadpath=$(${GUILE} -c '(display (string-append (car %load-path) "/ice-9"))') + mkdir -p "${SLOTTED_D}${loadpath}" || die + emake -C "${S}" TARGET="${SLOTTED_D}${loadpath}" install + } + guile_foreach_impl my_install + guile_merge_roots + guile_unstrip_ccache + + einstalldocs +} diff --git a/dev-scheme/guile-colorized/guile-colorized-9999.ebuild b/dev-scheme/guile-colorized/guile-colorized-9999.ebuild new file mode 100644 index 000000000000..d8f4c69f42d0 --- /dev/null +++ b/dev-scheme/guile-colorized/guile-colorized-9999.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit guile + +DESCRIPTION="Colorized REPL for GNU Guile" +HOMEPAGE="https://gitlab.com/NalaGinrut/guile-colorized/" + +if [[ "${PV}" == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/NalaGinrut/${PN}.git" +else + # Latest release (before this commit from 2019) was in 2015 + COMMIT_SHA="1625a79f0e31849ebd537e2a58793fb45678c58f" + SRC_URI="https://gitlab.com/NalaGinrut/${PN}/-/archive/${COMMIT_SHA}.tar.bz2 -> ${P}.tar.bz2" + KEYWORDS="~amd64" + S="${WORKDIR}/${PN}-${COMMIT_SHA}" +fi + +LICENSE="GPL-3" +SLOT="0" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND="${GUILE_DEPS}" +DEPEND="${RDEPEND}" + +src_install() { + my_install() { + local loadpath=$(${GUILE} -c '(display (string-append (car %load-path) "/ice-9"))') + mkdir -p "${SLOTTED_D}${loadpath}" || die + emake -C "${S}" TARGET="${SLOTTED_D}${loadpath}" install + } + guile_foreach_impl my_install + guile_merge_roots + guile_unstrip_ccache + + einstalldocs +} diff --git a/dev-scheme/guile-colorized/metadata.xml b/dev-scheme/guile-colorized/metadata.xml new file mode 100644 index 000000000000..162c06e3d069 --- /dev/null +++ b/dev-scheme/guile-colorized/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://gitlab.com/NalaGinrut/guile-colorized/-/issues</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-commonmark/Manifest b/dev-scheme/guile-commonmark/Manifest new file mode 100644 index 000000000000..f7934235bcda --- /dev/null +++ b/dev-scheme/guile-commonmark/Manifest @@ -0,0 +1 @@ +DIST guile-commonmark-0.1.2_pre20240803.tar.gz 81148 BLAKE2B 0468e49cb58da59bb2e4ea7d372abcc7d9cbc09d05156d9b276057f42b84cbeb7fbcd61b6f406e4e532f2e834682b943a7365de87a901b385daa582d6fa6c11d SHA512 3c89495f201421b9326b8fbb54b92e554136429f6e2817be5ed99a465ced36f63b2446b46760e4eb303bc03d5d630410492994e1cb593b9c803686d7811c4e3d diff --git a/dev-scheme/guile-commonmark/guile-commonmark-0.1.2_pre20240803.ebuild b/dev-scheme/guile-commonmark/guile-commonmark-0.1.2_pre20240803.ebuild new file mode 100644 index 000000000000..dc73ecc8f843 --- /dev/null +++ b/dev-scheme/guile-commonmark/guile-commonmark-0.1.2_pre20240803.ebuild @@ -0,0 +1,29 @@ +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit guile autotools + +MY_COMMIT=538ffea25ca69d9f3ee17033534ba03cc27ba468 + +DESCRIPTION="Implementation of CommonMark for Guile" +HOMEPAGE="https://github.com/OrangeShark/guile-commonmark" +SRC_URI="https://github.com/OrangeShark/${PN}/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${PN}-${MY_COMMIT}" + +LICENSE="LGPL-3+" +SLOT="0" +KEYWORDS="~amd64" +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND="${GUILE_DEPS}" +DEPEND="${RDEPEND}" + +src_prepare() { + default + + guile_src_prepare + eautoreconf +} diff --git a/dev-scheme/guile-commonmark/metadata.xml b/dev-scheme/guile-commonmark/metadata.xml new file mode 100644 index 000000000000..c0953777ef25 --- /dev/null +++ b/dev-scheme/guile-commonmark/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>arsen@gentoo.org</email> + <name>Arsen Arsenović</name> + </maintainer> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <description>Gentoo Scheme Project</description> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-config/Manifest b/dev-scheme/guile-config/Manifest new file mode 100644 index 000000000000..3eed67e46419 --- /dev/null +++ b/dev-scheme/guile-config/Manifest @@ -0,0 +1 @@ +DIST guile-config-0.5.1.tar.bz2 54872 BLAKE2B 79c5995410d2af1b4f542eca925a8130cbbfe6c6d58606cdb58e4f3863714f1f7803b253f367b30da1614cc2f86a038760764043e72c50972fb74ad71b8f9f21 SHA512 5f7bc95a4c010e14b28f72f980c003caa0b08cca3b5e927dfeb0ad8e6a0751fc51c22e21dee5c0aa1531bc5c40ee26f95960d342647f23db3d54de12518a431a diff --git a/dev-scheme/guile-config/guile-config-0.5.1-r100.ebuild b/dev-scheme/guile-config/guile-config-0.5.1-r100.ebuild new file mode 100644 index 000000000000..3b2f6ea9a42a --- /dev/null +++ b/dev-scheme/guile-config/guile-config-0.5.1-r100.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="Guile application configuration parsing library" +HOMEPAGE="https://gitlab.com/a-sassmannshausen/guile-config/" +SRC_URI="https://gitlab.com/a-sassmannshausen/${PN}/-/archive/${PV}/${P}.tar.bz2" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND="${GUILE_DEPS}" +DEPEND="${RDEPEND}" + +src_prepare() { + guile_src_prepare + eautoreconf +} diff --git a/dev-scheme/guile-config/metadata.xml b/dev-scheme/guile-config/metadata.xml new file mode 100644 index 000000000000..6ad13517c24c --- /dev/null +++ b/dev-scheme/guile-config/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + Guile Config is a library providing a declarative approach to application + configuration specification. The library provides clean configuration + declaration forms, and processors that take care of: configuration file + creation; configuration file parsing; command-line parameter parsing using + getopt-long; basic GNU command-line parameter generation (--help, --usage, + --version); automatic output generation for the above command-line + parameters. + </longdescription> + <upstream> + <bugs-to>https://gitlab.com/a-sassmannshausen/guile-config/-/issues/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-dbd-postgresql/Manifest b/dev-scheme/guile-dbd-postgresql/Manifest new file mode 100644 index 000000000000..9dc862140b2f --- /dev/null +++ b/dev-scheme/guile-dbd-postgresql/Manifest @@ -0,0 +1 @@ +DIST guile-dbi-2.1.9.tar.gz 90514 BLAKE2B f4adeb33636972c33f5bdb40c906713b35bec4b1d3afc9fbcd55d74d1d5a957b524bbefeb04e9e5ff1cd17e6a40e218d84220f8eaeeaee09bf67604fa1e87e18 SHA512 2f6ec4c792b487b2552eda06b3ee3e470ae0e603e30abafacfb597281a44c53838d7b16d447cf1ee35f9b994c5b0ed1bbf3497eb1e64e783017898e30d82d427 diff --git a/dev-scheme/guile-dbd-postgresql/guile-dbd-postgresql-2.1.9-r1.ebuild b/dev-scheme/guile-dbd-postgresql/guile-dbd-postgresql-2.1.9-r1.ebuild new file mode 100644 index 000000000000..988554fcb187 --- /dev/null +++ b/dev-scheme/guile-dbd-postgresql/guile-dbd-postgresql-2.1.9-r1.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 3-0 ) +inherit autotools guile + +DESCRIPTION="Guile DBI driver for PostgreSQL" +HOMEPAGE="https://github.com/opencog/guile-dbi/" +SRC_URI="https://github.com/opencog/guile-dbi/archive/guile-dbi-${PV}.tar.gz" +S="${WORKDIR}"/guile-dbi-guile-dbi-${PV}/${PN} + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + dev-db/postgresql:* + >=dev-scheme/guile-dbi-2.1.9[${GUILE_USEDEP}] +" +DEPEND="${RDEPEND}" + +src_prepare() { + guile_src_prepare + + eautoreconf +} + +src_install() { + guile_src_install + + find "${ED}" -type f -name "*.la" -delete || die +} diff --git a/dev-scheme/guile-dbd-postgresql/metadata.xml b/dev-scheme/guile-dbd-postgresql/metadata.xml new file mode 100644 index 000000000000..ef09edc20c51 --- /dev/null +++ b/dev-scheme/guile-dbd-postgresql/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://github.com/opencog/guile-dbi/issues/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-dbd-sqlite3/Manifest b/dev-scheme/guile-dbd-sqlite3/Manifest new file mode 100644 index 000000000000..9dc862140b2f --- /dev/null +++ b/dev-scheme/guile-dbd-sqlite3/Manifest @@ -0,0 +1 @@ +DIST guile-dbi-2.1.9.tar.gz 90514 BLAKE2B f4adeb33636972c33f5bdb40c906713b35bec4b1d3afc9fbcd55d74d1d5a957b524bbefeb04e9e5ff1cd17e6a40e218d84220f8eaeeaee09bf67604fa1e87e18 SHA512 2f6ec4c792b487b2552eda06b3ee3e470ae0e603e30abafacfb597281a44c53838d7b16d447cf1ee35f9b994c5b0ed1bbf3497eb1e64e783017898e30d82d427 diff --git a/dev-scheme/guile-dbd-sqlite3/guile-dbd-sqlite3-2.1.9-r1.ebuild b/dev-scheme/guile-dbd-sqlite3/guile-dbd-sqlite3-2.1.9-r1.ebuild new file mode 100644 index 000000000000..adb018799aa3 --- /dev/null +++ b/dev-scheme/guile-dbd-sqlite3/guile-dbd-sqlite3-2.1.9-r1.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 3-0 ) +inherit autotools guile + +DESCRIPTION="Guile DBI driver for SQLite" +HOMEPAGE="https://github.com/opencog/guile-dbi/" +SRC_URI="https://github.com/opencog/guile-dbi/archive/guile-dbi-${PV}.tar.gz" +S="${WORKDIR}"/guile-dbi-guile-dbi-${PV}/${PN} + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + dev-db/sqlite:3= + >=dev-scheme/guile-dbi-2.1.9[${GUILE_USEDEP}] +" +DEPEND="${RDEPEND}" + +src_prepare() { + guile_src_prepare + + eautoreconf +} + +src_install() { + guile_src_install + + find "${ED}" -type f -name "*.la" -delete || die +} diff --git a/dev-scheme/guile-dbd-sqlite3/metadata.xml b/dev-scheme/guile-dbd-sqlite3/metadata.xml new file mode 100644 index 000000000000..ef09edc20c51 --- /dev/null +++ b/dev-scheme/guile-dbd-sqlite3/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://github.com/opencog/guile-dbi/issues/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-dbi/Manifest b/dev-scheme/guile-dbi/Manifest new file mode 100644 index 000000000000..9dc862140b2f --- /dev/null +++ b/dev-scheme/guile-dbi/Manifest @@ -0,0 +1 @@ +DIST guile-dbi-2.1.9.tar.gz 90514 BLAKE2B f4adeb33636972c33f5bdb40c906713b35bec4b1d3afc9fbcd55d74d1d5a957b524bbefeb04e9e5ff1cd17e6a40e218d84220f8eaeeaee09bf67604fa1e87e18 SHA512 2f6ec4c792b487b2552eda06b3ee3e470ae0e603e30abafacfb597281a44c53838d7b16d447cf1ee35f9b994c5b0ed1bbf3497eb1e64e783017898e30d82d427 diff --git a/dev-scheme/guile-dbi/files/guile-dbi-2.1.9-find-correct-site-dir.patch b/dev-scheme/guile-dbi/files/guile-dbi-2.1.9-find-correct-site-dir.patch new file mode 100644 index 000000000000..c188465575b3 --- /dev/null +++ b/dev-scheme/guile-dbi/files/guile-dbi-2.1.9-find-correct-site-dir.patch @@ -0,0 +1,32 @@ +https://github.com/opencog/guile-dbi/commit/56e12dcab139c373dafccdd72fa2a140d82f3910 +https://github.com/opencog/guile-dbi/issues/6 +https://github.com/opencog/guile-dbi/issues/7 + +From 56e12dcab139c373dafccdd72fa2a140d82f3910 Mon Sep 17 00:00:00 2001 +From: Linas Vepstas <linas@linas.org> +Date: Mon, 17 Jul 2023 19:42:45 +0300 +Subject: [PATCH] Bug-fix for issues #6 and #7 + +Seems to work for me... +--- a/configure.ac ++++ b/configure.ac +@@ -53,13 +53,13 @@ LTDL_INIT + + # Checks for libraries. + PKG_CHECK_MODULES([GUILE], [guile-3.0]) +-#GUILE_PKG([3.0]) +-#GUILE_FLAGS +-#GUILE_SITE_DIR ++GUILE_PKG([3.0]) ++GUILE_FLAGS ++GUILE_SITE_DIR + #-- +-#CFLAGS="${CFLAGS} ${LTDLINCL} `$GUILECONFIG compile`" +-#LIBS="$LIBLTDL `$GUILECONFIG link`" +-#GUILE_SITE=`$GUILECONFIG info sitedir` ++CFLAGS="${CFLAGS} ${LTDLINCL} `$GUILE_CONFIG compile`" ++LIBS="$LIBLTDL `$GUILE_CONFIG link`" ++GUILE_SITE=`$GUILE_CONFIG info sitedir` + + # Check for makeinfo; avoid ugliness if not installed. + AC_CHECK_PROG(have_makeinfo,makeinfo,yes,no) diff --git a/dev-scheme/guile-dbi/guile-dbi-2.1.9.ebuild b/dev-scheme/guile-dbi/guile-dbi-2.1.9.ebuild new file mode 100644 index 000000000000..0356148ea666 --- /dev/null +++ b/dev-scheme/guile-dbi/guile-dbi-2.1.9.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 3-0 ) +inherit autotools guile + +DESCRIPTION="An SQL database interface for Guile" +HOMEPAGE="https://github.com/opencog/guile-dbi/" +SRC_URI="https://github.com/opencog/${PN}/archive/${P}.tar.gz" +S="${WORKDIR}"/${PN}-${P}/${PN} + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + dev-libs/libltdl +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/guile-dbi-2.1.9-find-correct-site-dir.patch +) + +src_prepare() { + guile_src_prepare + + eautoreconf +} + +src_install() { + guile_src_install + + find "${ED}" -type f -name "*.la" -delete || die +} diff --git a/dev-scheme/guile-dbi/metadata.xml b/dev-scheme/guile-dbi/metadata.xml new file mode 100644 index 000000000000..dd3c33a31bca --- /dev/null +++ b/dev-scheme/guile-dbi/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + guile-dbi is a library for Guile that provides a convenient interface to + SQL databases. Database programming with guile-dbi is generic in that the + same programming interface is presented regardless of which database system + is used. + </longdescription> + <upstream> + <bugs-to>https://github.com/opencog/guile-dbi/issues/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-gcrypt/Manifest b/dev-scheme/guile-gcrypt/Manifest new file mode 100644 index 000000000000..8f752af6b134 --- /dev/null +++ b/dev-scheme/guile-gcrypt/Manifest @@ -0,0 +1 @@ +DIST guile-gcrypt-0.4.0.tar.gz 56915 BLAKE2B 0b1ca0b23531f1dd28422798f235d15898ec67dd77fa08b52f9ccbfc9b9c1ed55abd1ec7cd15c9a129444e9d7411e24ef5b73ebc8547ca9e0408e7e5a552a200 SHA512 5dbb5ca9f00a607200c600d438f5d96db271a5e889f4e92d361793073ef618b1f731c3bc31dc39c7b939c2e9111da7905ed68845f55fe7fd24b064496e9d2677 diff --git a/dev-scheme/guile-gcrypt/guile-gcrypt-0.4.0-r100.ebuild b/dev-scheme/guile-gcrypt/guile-gcrypt-0.4.0-r100.ebuild new file mode 100644 index 000000000000..bfe2d620c882 --- /dev/null +++ b/dev-scheme/guile-gcrypt/guile-gcrypt-0.4.0-r100.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="Guile bindings of libgcrypt" +HOMEPAGE="https://notabug.org/cwebber/guile-gcrypt" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://notabug.org/cwebber/${PN}.git" +else + SRC_URI="https://notabug.org/cwebber/guile-gcrypt/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/${PN}" + + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="GPL-3" +SLOT="0" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + dev-libs/libgcrypt:0= +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +src_prepare() { + guile_src_prepare + eautoreconf +} diff --git a/dev-scheme/guile-gcrypt/metadata.xml b/dev-scheme/guile-gcrypt/metadata.xml new file mode 100644 index 000000000000..0b4e1c044e78 --- /dev/null +++ b/dev-scheme/guile-gcrypt/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://notabug.org/cwebber/guile-gcrypt</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-gi/Manifest b/dev-scheme/guile-gi/Manifest new file mode 100644 index 000000000000..58ec9ee423fc --- /dev/null +++ b/dev-scheme/guile-gi/Manifest @@ -0,0 +1 @@ +DIST guile-gi-0.3.2.tar.gz 350346 BLAKE2B 8680891e3a0854b2741a26847ad0f75262d83ba240caa6afc38765445477cd3d9b4abfecf0c2dc68b05c61efe6cdbde633c16d98cbb6db49e2727adfb83004c3 SHA512 88a58ac8c97a2bb0c9304183423b77831365706aafb9a98185a555b19783247aaf7bf80963a3b75090a9774a8360b3767583e8cdd8416fdad0d3c23973fb37c6 diff --git a/dev-scheme/guile-gi/files/guile-gi-0.3.2-function-cast.patch b/dev-scheme/guile-gi/files/guile-gi-0.3.2-function-cast.patch new file mode 100644 index 000000000000..74d325bf7c20 --- /dev/null +++ b/dev-scheme/guile-gi/files/guile-gi-0.3.2-function-cast.patch @@ -0,0 +1,89 @@ +https://bugs.gentoo.org/880955 + +Based on https://github.com/spk121/guile-gi/commit/94144d0beffa96bf62c03bc71b498b94dafacc46 + +--- a/src/gig_callback.c ++++ b/src/gig_callback.c +@@ -296,6 +296,12 @@ callback_binding_inner(struct callback_binding_args *args) + return (void *)1; + } + ++inline static void * ++callback_binding_inner_v(void *args) ++{ ++ return callback_binding_inner(args); ++} ++ + void + callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user_data) + { +@@ -314,7 +320,7 @@ callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user_d + if (scm_is_true(scm_fluid_ref(gig_callback_thread_fluid))) + callback_binding_inner(&args); + else { +- if (NULL == scm_with_guile(callback_binding_inner, &args)) ++ if (NULL == scm_with_guile(callback_binding_inner_v, &args)) + scm_c_eval_string("(quit EXIT_FAILURE)"); + } + } +@@ -365,6 +371,12 @@ c_callback_binding_inner(struct callback_binding_args *args) + return (void *)1; + } + ++inline static void * ++c_callback_binding_inner_v(void *args) ++{ ++ return c_callback_binding_inner(args); ++} ++ + void + c_callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user_data) + { +@@ -383,7 +395,7 @@ c_callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user + if (scm_is_true(scm_fluid_ref(gig_callback_thread_fluid))) + c_callback_binding_inner(&args); + else { +- if (NULL == scm_with_guile(c_callback_binding_inner, &args)) ++ if (NULL == scm_with_guile(c_callback_binding_inner_v, &args)) + scm_c_eval_string("(quit EXIT_FAILURE)"); + } + } +@@ -692,10 +704,16 @@ callback_free(GigCallback *gcb) + g_free(gcb); + } + ++inline static void ++callback_free_v(void *gcb) ++{ ++ callback_free(gcb); ++} ++ + static void + gig_fini_callback(void) + { + g_debug("Freeing callbacks"); +- g_slist_free_full(callback_list, (GDestroyNotify)callback_free); ++ g_slist_free_full(callback_list, (GDestroyNotify)callback_free_v); + callback_list = NULL; + } +--- a/src/gig_type_private.c ++++ b/src/gig_type_private.c +@@ -59,8 +59,14 @@ _boxed_funcs_free(GigBoxedFuncs *funcs) + g_free(funcs); + } + ++inline static void ++_boxed_funcs_free_v(void *funcs) ++{ ++ _boxed_funcs_free(funcs); ++} ++ + void + _free_boxed_funcs() + { +- g_slist_free_full(_boxed_funcs, (GDestroyNotify)_boxed_funcs_free); ++ g_slist_free_full(_boxed_funcs, (GDestroyNotify)_boxed_funcs_free_v); + } +-- +2.46.0 + diff --git a/dev-scheme/guile-gi/guile-gi-0.3.2-r100.ebuild b/dev-scheme/guile-gi/guile-gi-0.3.2-r100.ebuild new file mode 100644 index 000000000000..cbf905fc142b --- /dev/null +++ b/dev-scheme/guile-gi/guile-gi-0.3.2-r100.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit virtualx autotools guile + +DESCRIPTION="Bindings for GObject Introspection and libgirepository for Guile" +HOMEPAGE="https://spk121.github.io/guile-gi/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/spk121/${PN}.git" +else + SRC_URI="https://github.com/spk121/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64" +fi + +LICENSE="GPL-3" +SLOT="0" + +REQUIRED_USED="${GUILE_REQUIRED_USE}" + +DEPEND=" + ${GUILE_DEPS} + >=dev-libs/gobject-introspection-1.82.0-r2 + x11-libs/gtk+:3[introspection] +" +RDEPEND="${DEPEND}" +BDEPEND="sys-apps/texinfo" + +PATCHES=( + "${FILESDIR}"/guile-gi-0.3.2-function-cast.patch +) + +src_prepare() { + guile_src_prepare + + eautoreconf +} + +src_configure() { + guile_foreach_impl econf --enable-introspection=yes +} + +src_compile() { + my_compile() { + mkdir test || die + default + } + guile_foreach_impl my_compile +} + +src_test() { + guile_foreach_impl virtx default +} + +src_install() { + guile_src_install + + mv "${ED}"/usr/share/doc/${PN} "${ED}"/usr/share/doc/${PF} || die + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/dev-scheme/guile-gi/guile-gi-9999.ebuild b/dev-scheme/guile-gi/guile-gi-9999.ebuild new file mode 100644 index 000000000000..cbf905fc142b --- /dev/null +++ b/dev-scheme/guile-gi/guile-gi-9999.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit virtualx autotools guile + +DESCRIPTION="Bindings for GObject Introspection and libgirepository for Guile" +HOMEPAGE="https://spk121.github.io/guile-gi/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/spk121/${PN}.git" +else + SRC_URI="https://github.com/spk121/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64" +fi + +LICENSE="GPL-3" +SLOT="0" + +REQUIRED_USED="${GUILE_REQUIRED_USE}" + +DEPEND=" + ${GUILE_DEPS} + >=dev-libs/gobject-introspection-1.82.0-r2 + x11-libs/gtk+:3[introspection] +" +RDEPEND="${DEPEND}" +BDEPEND="sys-apps/texinfo" + +PATCHES=( + "${FILESDIR}"/guile-gi-0.3.2-function-cast.patch +) + +src_prepare() { + guile_src_prepare + + eautoreconf +} + +src_configure() { + guile_foreach_impl econf --enable-introspection=yes +} + +src_compile() { + my_compile() { + mkdir test || die + default + } + guile_foreach_impl my_compile +} + +src_test() { + guile_foreach_impl virtx default +} + +src_install() { + guile_src_install + + mv "${ED}"/usr/share/doc/${PN} "${ED}"/usr/share/doc/${PF} || die + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/dev-scheme/guile-gi/metadata.xml b/dev-scheme/guile-gi/metadata.xml new file mode 100644 index 000000000000..69f9b78c7052 --- /dev/null +++ b/dev-scheme/guile-gi/metadata.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> + This is a library for GNU Guile to create language bindings via GObject + Introspection. + Guile GI has two primary components: + - The gi scheme modules: guile modules that provide functionality to + dynamically generate Scheme API from GObject typelib files. + - libguile-gi.so or libguile-gi.dll: a compiled module that contains glue + code to interface with GObject. + To create bindings, use the use-typelibs syntax found in the (gi) library. + </longdescription> + <upstream> + <bugs-to>https://github.com/spk121/guile-gi/issues/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-git/Manifest b/dev-scheme/guile-git/Manifest new file mode 100644 index 000000000000..8b319a5028fe --- /dev/null +++ b/dev-scheme/guile-git/Manifest @@ -0,0 +1,3 @@ +DIST guile-git-v0.11.0.tar.bz2 110689 BLAKE2B 69b18276128de58bfe67f82380a9501acdee173c9db4ba3c38a559fc8d61f2219eb1ac26b37e0f4a8d64d9b4ed53370f69bb4234d340a48ae900f228f0a4401f SHA512 aa56bcdf6a631cd27983f2073a33830deb65c9141c724d79533e84a8d28dd6df087c14400e9250e9ef6e5dea06f2c4542991e2aa1b5283e9fe7e50d5a7555141 +DIST guile-git-v0.8.0.tar.bz2 100931 BLAKE2B 1f36be666eeca6d2e826582ea780eb7d7bad8b212b4848a8814aae5e21547657f5d46e163758beb21fb30e5fba2ba66f3fb96cc94f701e9f740cb78398d0a7b2 SHA512 cad6777a26f94d26b7967ff1a2619d19b773ace6332dda7c4ff3c355762d2d1f7740be3fdf34dc1fc91a2b2ad202f51865b3e4dd6574cd91a4f149d5c51c6b47 +DIST guile-git-v0.9.0.tar.bz2 103368 BLAKE2B e3ed7a9f1da66590443034f128f1ac73f84eb28d64b998bdecec5afd8abeb70f5b0529676f051e58ca844231708fb651b68653380ebd35f098a35055ca512f91 SHA512 42fbdbbf637b5b14cf4d8aa56e1b96dcc6e454f7d077fa2304ed44dc2485fe4c90557e2fb33220e3e8145a1fcb6ccd68cd4f40ff325386099c3232d9e373fc0b diff --git a/dev-scheme/guile-git/guile-git-0.11.0.ebuild b/dev-scheme/guile-git/guile-git-0.11.0.ebuild new file mode 100644 index 000000000000..4d31c7714db5 --- /dev/null +++ b/dev-scheme/guile-git/guile-git-0.11.0.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 3-0 ) + +inherit autotools guile + +DESCRIPTION="Guile bindings of git" +HOMEPAGE="https://gitlab.com/guile-git/guile-git/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://gitlab.com/${PN}/${PN}" +else + SRC_URI="https://gitlab.com/${PN}/${PN}/-/archive/v${PV}/${PN}-v${PV}.tar.bz2" + S="${WORKDIR}/${PN}-v${PV}" + + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="LGPL-3+" +SLOT="0" +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + >=dev-libs/libgit2-1.8.0:= + >=dev-scheme/bytestructures-2.0.2-r100[${GUILE_USEDEP}] +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +src_prepare() { + guile_src_prepare + + # network sandbox + ssh configuration + sed -i -e '/tests\/clone.scm/d' Makefile.am || die + + eautoreconf +} + +src_test() { + guile_foreach_impl emake VERBOSE="1" check +} diff --git a/dev-scheme/guile-git/guile-git-0.8.0-r1.ebuild b/dev-scheme/guile-git/guile-git-0.8.0-r1.ebuild new file mode 100644 index 000000000000..f7abd52f6920 --- /dev/null +++ b/dev-scheme/guile-git/guile-git-0.8.0-r1.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 3-0 ) + +inherit autotools guile + +DESCRIPTION="Guile bindings of git" +HOMEPAGE="https://gitlab.com/guile-git/guile-git/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://gitlab.com/${PN}/${PN}.git" +else + SRC_URI="https://gitlab.com/${PN}/${PN}/-/archive/v${PV}/${PN}-v${PV}.tar.bz2" + S="${WORKDIR}/${PN}-v${PV}" + + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="LGPL-3+" +SLOT="0" +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + >=dev-libs/libgit2-1.8.0:= + >=dev-scheme/bytestructures-2.0.2-r100[${GUILE_USEDEP}] +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +src_prepare() { + guile_src_prepare + + # network sandbox + ssh configuration + sed -i -e '/tests\/clone.scm/d' Makefile.am || die + + eautoreconf +} + +src_test() { + guile_foreach_impl emake VERBOSE="1" check +} diff --git a/dev-scheme/guile-git/guile-git-0.9.0-r1.ebuild b/dev-scheme/guile-git/guile-git-0.9.0-r1.ebuild new file mode 100644 index 000000000000..f7abd52f6920 --- /dev/null +++ b/dev-scheme/guile-git/guile-git-0.9.0-r1.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 3-0 ) + +inherit autotools guile + +DESCRIPTION="Guile bindings of git" +HOMEPAGE="https://gitlab.com/guile-git/guile-git/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://gitlab.com/${PN}/${PN}.git" +else + SRC_URI="https://gitlab.com/${PN}/${PN}/-/archive/v${PV}/${PN}-v${PV}.tar.bz2" + S="${WORKDIR}/${PN}-v${PV}" + + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="LGPL-3+" +SLOT="0" +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + >=dev-libs/libgit2-1.8.0:= + >=dev-scheme/bytestructures-2.0.2-r100[${GUILE_USEDEP}] +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +src_prepare() { + guile_src_prepare + + # network sandbox + ssh configuration + sed -i -e '/tests\/clone.scm/d' Makefile.am || die + + eautoreconf +} + +src_test() { + guile_foreach_impl emake VERBOSE="1" check +} diff --git a/dev-scheme/guile-git/metadata.xml b/dev-scheme/guile-git/metadata.xml new file mode 100644 index 000000000000..926103d603f8 --- /dev/null +++ b/dev-scheme/guile-git/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://gitlab.com/guile-git/guile-git</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-gnutls/Manifest b/dev-scheme/guile-gnutls/Manifest new file mode 100644 index 000000000000..c0823b087013 --- /dev/null +++ b/dev-scheme/guile-gnutls/Manifest @@ -0,0 +1 @@ +DIST guile-gnutls-4.0.1.tar.bz2 179830 BLAKE2B 34acf2c9550fc2bde239d4ec1a3be3b4875b5e9c281e148dfc879786667316e876071e1988727b0777919a8308160c54bee4f66a76eca0cd1941a85c646995d9 SHA512 d86501a3c3c55513f4da68c9b63bf2316a922f1bfcaf5830b0312d52ba6da09e3c3847ac37dff5236737c4ac06b157b6aaa1dabd837fb0f6b836f76f239d066f diff --git a/dev-scheme/guile-gnutls/guile-gnutls-4.0.1.ebuild b/dev-scheme/guile-gnutls/guile-gnutls-4.0.1.ebuild new file mode 100644 index 000000000000..760216855e33 --- /dev/null +++ b/dev-scheme/guile-gnutls/guile-gnutls-4.0.1.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="Guile-GnuTLS provides Guile bindings for the GnuTLS library" +HOMEPAGE="https://gnutls.gitlab.io/guile/manual/ + https://gitlab.com/gnutls/guile/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://gitlab.com/gnutls/guile.git" +else + SRC_URI="https://gitlab.com/gnutls/guile/-/archive/v${PV}/guile-v${PV}.tar.bz2 + -> ${P}.tar.bz2" + S="${WORKDIR}/guile-v${PV}" + + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="LGPL-2.1+" +SLOT="0" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + net-libs/gnutls:= +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +src_prepare() { + guile_src_prepare + eautoreconf +} + +src_configure() { + my_configure() { + # --disable-srp-authentication: bug #894050 + econf --disable-srp-authentication guile_snarf=${GUILESNARF} + } + guile_foreach_impl my_configure +} + +src_install() { + guile_src_install + + find "${ED}" -type f -name "*.la" -delete || die +} diff --git a/dev-scheme/guile-gnutls/metadata.xml b/dev-scheme/guile-gnutls/metadata.xml new file mode 100644 index 000000000000..9e22a197dbe9 --- /dev/null +++ b/dev-scheme/guile-gnutls/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <doc>https://gnutls.gitlab.io/guile/manual/</doc> + <bugs-to>https://gitlab.com/gnutls/guile/-/issues/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-hall/Manifest b/dev-scheme/guile-hall/Manifest new file mode 100644 index 000000000000..1218810edb91 --- /dev/null +++ b/dev-scheme/guile-hall/Manifest @@ -0,0 +1 @@ +DIST guile-hall-0.4.1.tar.bz2 52701 BLAKE2B 0e6e8f680d1b6e76116c44bd2322d2f2e1e167bae857277d528cffa13079aff6a4dc796fce52c3f46baa737824f711e827b6940d7a30e4c21890154c032db24e SHA512 a7c150cab6df7e181a9eabe8ace8b32c3e70529ee4b2fcd63f34fa193ce64695e6da7a25aafe5bb0c068696e2d5dd0698ad9d62ac559ec350dca7eda5444d10d diff --git a/dev-scheme/guile-hall/guile-hall-0.4.1-r101.ebuild b/dev-scheme/guile-hall/guile-hall-0.4.1-r101.ebuild new file mode 100644 index 000000000000..902464a9003f --- /dev/null +++ b/dev-scheme/guile-hall/guile-hall-0.4.1-r101.ebuild @@ -0,0 +1,31 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="Guile tooling to create and publish projects" +HOMEPAGE="https://gitlab.com/a-sassmannshausen/guile-hall/" +SRC_URI="https://gitlab.com/a-sassmannshausen/${PN}/-/archive/${PV}/${P}.tar.bz2" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + >=dev-scheme/guile-config-0.5.1-r100[${GUILE_USEDEP}] +" +DEPEND="${RDEPEND}" + +src_prepare() { + guile_src_prepare + + sed -i -e "s|@verbatiminclude |@verbatiminclude ${S}/|" doc/hall.texi || die + + eautoreconf +} diff --git a/dev-scheme/guile-hall/metadata.xml b/dev-scheme/guile-hall/metadata.xml new file mode 100644 index 000000000000..2c6071ee0837 --- /dev/null +++ b/dev-scheme/guile-hall/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + Hall is a command-line application and a set of Guile libraries that allow + you to quickly create and publish Guile projects. It allows you to + transparently support the GNU build system, manage a project hierarchy and + provides tight coupling to Guix. + </longdescription> + <upstream> + <bugs-to>https://gitlab.com/a-sassmannshausen/guile-hall/-/issues/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-json/Manifest b/dev-scheme/guile-json/Manifest new file mode 100644 index 000000000000..1c3d5a1bded1 --- /dev/null +++ b/dev-scheme/guile-json/Manifest @@ -0,0 +1 @@ +DIST guile-json-4.7.3.tar.gz 164453 BLAKE2B 4cc85677eaab3753f6e2a3b7aa93a6e98bfd11e4b54886b7ddd37f4ff9006bc2f62a36228ca2989a77fab2363e60cd44b1d3985eb884139e6e1a6e1eb1469d60 SHA512 d2d22cd3962e7379c2cbe0b9220ddeaa1989c22cd757577302490b269aa52e2d9e3174f1c9ed22ad68bc0c5a1bb82d2fee354b2888d84372eed613e15b9803d1 diff --git a/dev-scheme/guile-json/guile-json-4.7.3-r100.ebuild b/dev-scheme/guile-json/guile-json-4.7.3-r100.ebuild new file mode 100644 index 000000000000..545f1819973f --- /dev/null +++ b/dev-scheme/guile-json/guile-json-4.7.3-r100.ebuild @@ -0,0 +1,20 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit guile + +DESCRIPTION="JSON module for Guile" +HOMEPAGE="https://savannah.nongnu.org/projects/guile-json/" +SRC_URI="http://download.savannah.nongnu.org/releases/guile-json/${P}.tar.gz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND="${GUILE_DEPS}" +DEPEND="${RDEPEND}" diff --git a/dev-scheme/guile-json/metadata.xml b/dev-scheme/guile-json/metadata.xml new file mode 100644 index 000000000000..8e922f42c80a --- /dev/null +++ b/dev-scheme/guile-json/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-lib/Manifest b/dev-scheme/guile-lib/Manifest new file mode 100644 index 000000000000..e8eeffb05288 --- /dev/null +++ b/dev-scheme/guile-lib/Manifest @@ -0,0 +1,2 @@ +DIST guile-lib-0.2.7.tar.gz 451202 BLAKE2B d8420a718697611443a40af089aad6e1d48390e5bef764f84955beeec8d6346066547d73c30898b96e727d4f470df6a032438067240bba8b25058bc65b85d9fa SHA512 d27d1398f81172e4488c5ac5c2d076baeeeaa12fa19d83a87faf0767c255b79f8eb24438950da3865e797299be90f7dc1dcc964076d53df9cab5925a61ad0d1f +DIST guile-lib-0.2.8.1.tar.gz 461345 BLAKE2B 10fe6a3c93ffd09fd92ad43b7cdd5cf949e3f9f11ce2aebd3c28b5227345041ee4a15c8bf1bb26c5a12423fbde65e950707bd0f43ee5787e4fe2853c6c56f4f9 SHA512 655c559c19beb008016fb3f313184c0da83f6dad53987045648cdb84bbca05f839b1a31c3cd12727510f51511c7d248d16438d87113cf8e99134925a2ad64312 diff --git a/dev-scheme/guile-lib/files/guile-lib-0.2.8.1-guile3-primes.patch b/dev-scheme/guile-lib/files/guile-lib-0.2.8.1-guile3-primes.patch new file mode 100644 index 000000000000..bca9dd1e80ca --- /dev/null +++ b/dev-scheme/guile-lib/files/guile-lib-0.2.8.1-guile3-primes.patch @@ -0,0 +1,26 @@ +# Note that this patch requires >=guile-3, so we apply it conditionally. +# https://lists.gnu.org/archive/html/guile-devel/2024-05/msg00012.html +# +# Fix compile and test failures due to bitvector API change. +# https://bugs.gentoo.org/877785 +--- a/src/math/primes.scm 2024-05-23 19:26:16.757865343 -0400 ++++ b/src/math/primes.scm 2024-05-23 19:28:20.797358650 -0400 +@@ -114,7 +114,7 @@ + (set! prime:prime-sqr (* nexp nexp)) + (set! prime:sieve (make-bitvector nexp #f)) + (for-each (lambda (prime) +- (bitvector-set! prime:sieve prime #t)) ++ (bitvector-set-bit! prime:sieve prime)) + primes) + (set! prime:products (reverse (cons comp comps)))) + (else +@@ -132,7 +132,7 @@ + There is a slight chance, @code{(expt 2 (- prime:trials))}, that a + composite will return @code{#t}." + (set! n (abs n)) +- (cond ((< n (bitvector-length prime:sieve)) (bitvector-ref prime:sieve n)) ++ (cond ((< n (bitvector-length prime:sieve)) (bitvector-bit-set? prime:sieve n)) + ((even? n) #f) + ((primes-gcd? n prime:products) #f) + ((< n prime:prime-sqr) #t) + diff --git a/dev-scheme/guile-lib/guile-lib-0.2.7-r100.ebuild b/dev-scheme/guile-lib/guile-lib-0.2.7-r100.ebuild new file mode 100644 index 000000000000..ad310a603dfe --- /dev/null +++ b/dev-scheme/guile-lib/guile-lib-0.2.7-r100.ebuild @@ -0,0 +1,30 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit guile + +DESCRIPTION="An accumulation place for pure-scheme Guile modules" +HOMEPAGE="http://www.nongnu.org/guile-lib/" +SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRES_USE}" + +RDEPEND="${GUILE_DEPS}" +DEPEND="${RDEPEND}" + +src_prepare() { + guile_src_prepare + + sed -i -e 's/"guile"/(getenv "GUILE")/' unit-tests/os.process.scm || die +} + +src_configure() { + guile_foreach_impl econf --with-guile-site=yes +} diff --git a/dev-scheme/guile-lib/guile-lib-0.2.8.1.ebuild b/dev-scheme/guile-lib/guile-lib-0.2.8.1.ebuild new file mode 100644 index 000000000000..faa78a97f1a3 --- /dev/null +++ b/dev-scheme/guile-lib/guile-lib-0.2.8.1.ebuild @@ -0,0 +1,75 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# 2-2 could be made to work but a few tests fail and nobody seems +# to care about it (patches had no reply on ML). +GUILE_COMPAT=( 3-0 ) +inherit guile + +DESCRIPTION="An accumulation place for pure-scheme Guile modules" +HOMEPAGE="http://www.nongnu.org/guile-lib/" +SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRES_USE}" + +RDEPEND="${GUILE_DEPS}" +DEPEND="${RDEPEND}" + +src_prepare() { + guile_src_prepare + sed -i -e 's/"guile"/(getenv "GUILE")/' unit-tests/os.process.scm || die + guile_copy_sources + + # Only apply this patch for 3.0 (bug #877785) + if use guile_targets_3-0 ; then + cd "${WORKDIR}"/${P}-3.0 || die + eapply "${FILESDIR}"/${PN}-0.2.8.1-guile3-primes.patch + fi +} + +src_configure() { + _guile_configure() { + cd "${WORKDIR}"/${P}-${GUILE_CURRENT_VERSION} || die + ECONF_SOURCE="${WORKDIR}"/${P}-${GUILE_CURRENT_VERSION} + econf --with-guile-site=yes + } + + guile_foreach_impl _guile_configure +} + +src_compile() { + _guile_compile() { + cd "${WORKDIR}"/${P}-${GUILE_CURRENT_VERSION} || die + sed -i -e "s:exec guile:exec ${GUILE}:" doc/make-texinfo.scm || die + emake + } + + guile_foreach_impl _guile_compile +} + +src_test() { + _guile_test() { + cd "${WORKDIR}"/${P}-${GUILE_CURRENT_VERSION} || die + emake check + } + + guile_foreach_impl _guile_test +} + +src_install() { + _guile_install() { + cd "${WORKDIR}"/${P}-${GUILE_CURRENT_VERSION} || die + emake DESTDIR="${SLOTTED_D}" install + } + + einstalldocs + guile_foreach_impl _guile_install + guile_merge_roots + guile_unstrip_ccache +} diff --git a/dev-scheme/guile-lib/metadata.xml b/dev-scheme/guile-lib/metadata.xml new file mode 100644 index 000000000000..2aa492fd1f99 --- /dev/null +++ b/dev-scheme/guile-lib/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + Guile-Lib is intended as an accumulation place for pure-scheme Guile + modules, allowing for people to cooperate integrating their generic Guile + modules into a coherent library. Think "a down-scaled, limited-scope CPAN + for Guile". + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-libyaml/Manifest b/dev-scheme/guile-libyaml/Manifest new file mode 100644 index 000000000000..b8e2f7deeefe --- /dev/null +++ b/dev-scheme/guile-libyaml/Manifest @@ -0,0 +1 @@ +DIST guile-libyaml-20211124.tar.gz 6221 BLAKE2B 12e35af8495543f90289bd437d27177901f01090c66ba113d128258c7bd448513332698659b48438a92b75d78dcd686b7ffad66e7c7adb2374f504b1e29485ad SHA512 17e6eef46e412db7be877bf54dc59f4ddb3f2235bb54a33f79aa0e938ad65f5fd68fc4247e055ecde3de37d8d872ccda5f0205d5f546d97458890b0b97764d0d diff --git a/dev-scheme/guile-libyaml/guile-libyaml-20211124-r100.ebuild b/dev-scheme/guile-libyaml/guile-libyaml-20211124-r100.ebuild new file mode 100644 index 000000000000..8b6169d5bf4f --- /dev/null +++ b/dev-scheme/guile-libyaml/guile-libyaml-20211124-r100.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit edo guile + +[[ ${PV} == 20211124 ]] && COMMIT=2bdacb72a65ab63264b2edc9dac9692df7ec9b3e + +DESCRIPTION="Simple yaml module for Guile using the ffi-helper from nyacc" +HOMEPAGE="https://github.com/mwette/guile-libyaml/" +SRC_URI="https://github.com/mwette/${PN}/archive/${COMMIT}.tar.gz + -> ${P}.tar.gz" +S="${WORKDIR}"/${PN}-${COMMIT} + +LICENSE="LGPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + dev-libs/libyaml +" +DEPEND="${RDEPEND}" +BDEPEND="dev-scheme/guile-nyacc" + +src_compile() { + my_compile() { + guild() { + GUILE_LOAD_COMPILED_PATH="${BUILD_DIR}" GUILE_LOAD_PATH="${S}" edo "${GUILD}" "${@}" || die + } + # Generate bindings using NYACC + guild compile-ffi --no-exec "${S}"/yaml/libyaml.ffi + + # Compile modules + mkdir -p "${BUILD_DIR}"/ccache || die + guild compile -o "${BUILD_DIR}"/ccache/libyaml.go "${S}"/yaml/libyaml.scm + guild compile -o "${BUILD_DIR}"/ccache/yaml.go "${S}"/yaml.scm + } + + guile_foreach_impl my_compile +} + +src_install() { + my_install() { + local site_dir="$(${GUILE} -c '(display (%site-dir))')" + mkdir -p "${SLOTTED_D}/${site_dir}/yaml" || die + cp "${S}/yaml/libyaml.scm" "${SLOTTED_D}/${site_dir}/yaml/" || die + cp "${S}/yaml.scm" "${SLOTTED_D}/${site_dir}/" || die + + local site_ccache_dir="$(${GUILE} -c '(display (%site-ccache-dir))')" + mkdir -p "${SLOTTED_D}/${site_ccache_dir}/yaml" || die + cp "${BUILD_DIR}/ccache/libyaml.go" "${SLOTTED_D}/${site_ccache_dir}/yaml/" || die + cp "${BUILD_DIR}/ccache/yaml.go" "${SLOTTED_D}/${site_ccache_dir}/" || die + } + + guile_foreach_impl my_install + guile_merge_roots + guile_unstrip_ccache + + einstalldocs +} diff --git a/dev-scheme/guile-libyaml/metadata.xml b/dev-scheme/guile-libyaml/metadata.xml new file mode 100644 index 000000000000..615064cf8493 --- /dev/null +++ b/dev-scheme/guile-libyaml/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://github.com/mwette/guile-libyaml/issues</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-lzlib/Manifest b/dev-scheme/guile-lzlib/Manifest new file mode 100644 index 000000000000..39138247edb5 --- /dev/null +++ b/dev-scheme/guile-lzlib/Manifest @@ -0,0 +1 @@ +DIST guile-lzlib-0.0.2.tar.gz 13291 BLAKE2B 0f43292a4616cfb218e3a2cbc7ba5ebccc0825d8df9a0874a55764a0a0d2961c581689be1142d586ac6926d32fc9023b27905f52ed131057fac15ba69d7d0b41 SHA512 1cede0d0194b2a8839979600ce680850e6cc2405912dcc84265b1f920c4069e94a85e79de3d61e5e7ccabc8ad8719d3759e28b45c16e70cc7c696af40e09cf1a diff --git a/dev-scheme/guile-lzlib/guile-lzlib-0.0.2-r100.ebuild b/dev-scheme/guile-lzlib/guile-lzlib-0.0.2-r100.ebuild new file mode 100644 index 000000000000..8d4f27a9c2c6 --- /dev/null +++ b/dev-scheme/guile-lzlib/guile-lzlib-0.0.2-r100.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="GNU Guile library providing bindings to lzlib" +HOMEPAGE="https://notabug.org/guile-lzlib/guile-lzlib/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://notabug.org/${PN}/${PN}.git" +else + SRC_URI="https://notabug.org/${PN}/${PN}/archive/${PV}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/${PN}" + + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="GPL-3+" +SLOT="0" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + app-arch/lzlib +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +DOCS=( AUTHORS ChangeLog HACKING NEWS README.org ) + +src_prepare() { + guile_src_prepare + eautoreconf +} diff --git a/dev-scheme/guile-lzlib/metadata.xml b/dev-scheme/guile-lzlib/metadata.xml new file mode 100644 index 000000000000..4b64d2c6f96e --- /dev/null +++ b/dev-scheme/guile-lzlib/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://notabug.org/guile-lzlib/guile-lzlib/issues/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-ncurses/Manifest b/dev-scheme/guile-ncurses/Manifest new file mode 100644 index 000000000000..eb270fdf7a1d --- /dev/null +++ b/dev-scheme/guile-ncurses/Manifest @@ -0,0 +1 @@ +DIST guile-ncurses-3.1.tar.gz 921257 BLAKE2B 26ee97ac62ae7877ecf4cce9d798f7afadc98cbba914da1c802321bf83572e5bfe9775e6e3739bbe849cde9843998aca001b6753bde9d5fbb48c4d70133740f9 SHA512 c43264cfb0cc9fe658f7ddd53bb3dfc6c7636ecaf9b8f3f416d449e6463e38061faf419b43d91775dd9642a904055122e7992c16dea1532de6229fcfa68e292f diff --git a/dev-scheme/guile-ncurses/files/guile-ncurses-3.0-slibtool.patch b/dev-scheme/guile-ncurses/files/guile-ncurses-3.0-slibtool.patch new file mode 100644 index 000000000000..5c102fca6011 --- /dev/null +++ b/dev-scheme/guile-ncurses/files/guile-ncurses-3.0-slibtool.patch @@ -0,0 +1,38 @@ +commit 8c8327c8518508380bd68f52db19432b776833e5 +Author: orbea <orbea@riseup.net> +Date: Mon May 9 09:06:04 2022 -0700 + + build: Link with -ltinfow/-ltinfow to fix undefined references + +diff --git a/configure.ac b/configure.ac +index f194166..954d9b2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -200,6 +200,13 @@ AS_IF([test "$with_ncursesw" = check], + with_ncursesw=yes], + [AC_MSG_FAILURE([--with-ncursesw was given, but, test for ncursesw failed])])]) + ++AS_IF([test "$with_ncursesw" = yes], ++ [AC_SEARCH_LIBS([LINES], [tinfow], ++ [AC_DEFINE([HAVE_TINFOW], ++ [1], ++ [Define if you have libtinfow])], ++ [AC_MSG_FAILURE([--with-ncursesw was given, but, test for tinfow failed])])]) ++ + AS_IF([test "$with_ncursesw" = no], + [AC_SEARCH_LIBS([initscr], [ncurses], + [AC_DEFINE([HAVE_NCURSES], +@@ -207,6 +214,13 @@ AS_IF([test "$with_ncursesw" = no], + [Define if you have libncurses])], + [AC_MSG_FAILURE([the ncurses library was not found])])]) + ++AS_IF([test "$with_ncursesw" = no], ++ [AC_SEARCH_LIBS([LINES], [tinfo], ++ [AC_DEFINE([HAVE_TINFO], ++ [1], ++ [Define if you have libntinfo])], ++ [AC_MSG_FAILURE([the tinfo library was not found])])]) ++ + AM_CONDITIONAL([WIDE], [test "$with_ncursesw" = yes]) + + AC_MSG_NOTICE([checking for term.h]) diff --git a/dev-scheme/guile-ncurses/guile-ncurses-3.1-r100.ebuild b/dev-scheme/guile-ncurses/guile-ncurses-3.1-r100.ebuild new file mode 100644 index 000000000000..fb877bf6f978 --- /dev/null +++ b/dev-scheme/guile-ncurses/guile-ncurses-3.1-r100.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="Guile FFI to ncurses library for text-based console UI" +HOMEPAGE="https://www.gnu.org/software/guile-ncurses/" +SRC_URI="mirror://gnu/guile-ncurses/${P}.tar.gz" + +LICENSE="LGPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + dev-libs/boehm-gc + dev-libs/libatomic_ops + dev-libs/libunistring + sys-libs/ncurses:= +" +DEPEND="${RDEPEND}" +BDEPEND="sys-apps/texinfo" + +PATCHES=( + "${FILESDIR}"/${PN}-3.0-slibtool.patch # bug #843416 +) + +src_prepare() { + guile_src_prepare + + # Remove bad tests + # > In procedure list-ref: Wrong type argument in position 1: #f + local -a bad_tests=( + curs_attr_attr_off_underline + curs_attr_attr_on_blink + curs_attr_attr_on_bold + curs_attr_attr_on_dim + curs_attr_attr_on_invis + curs_attr_attr_on_protect + curs_attr_attr_on_reverse + curs_attr_attr_on_standout + curs_attr_attr_on_underline + curs_attr_attr_set + curs_attr_attr_set_normal + curs_attr_standend + curs_attr_standout + curs_bkgd_bkgd + curs_bkgd_bkgdset + termios_speed + ) + local bad_test + for bad_test in "${bad_tests[@]}" ; do + echo "#t" > test/${bad_test}.scm || die + done + + eautoreconf # 843560 +} + +src_test() { + guile_foreach_impl emake check +} + +src_install() { + guile_src_install + + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/dev-scheme/guile-ncurses/metadata.xml b/dev-scheme/guile-ncurses/metadata.xml new file mode 100644 index 000000000000..c463b5337171 --- /dev/null +++ b/dev-scheme/guile-ncurses/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + GNU Guile-Ncurses is a library for the Guile Scheme interpreter that + provides functions for creating text user interfaces. The text user + interface functionality is built on the ncurses libraries: curses, form, + panel, and menu. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-nyacc/Manifest b/dev-scheme/guile-nyacc/Manifest new file mode 100644 index 000000000000..15c0095e0139 --- /dev/null +++ b/dev-scheme/guile-nyacc/Manifest @@ -0,0 +1 @@ +DIST nyacc-1.06.7.tar.gz 1270540 BLAKE2B dfd5a961881126fbc285de0cb67cdfdadd14d1cb30c112da633ff776cd6d776658a2834c87c347a4020f9114516c4770247f54d71aada1731ca353a1c6210e1b SHA512 8e0c80a529a55742a7bd342deba8b450a8fef9201cf109f3416cead89ded8db53768a049ba3c9196f455e036645deb2e1b763889cb293068e486e6362c44aad5 diff --git a/dev-scheme/guile-nyacc/guile-nyacc-1.06.7-r101.ebuild b/dev-scheme/guile-nyacc/guile-nyacc-1.06.7-r101.ebuild new file mode 100644 index 000000000000..d336ca7979db --- /dev/null +++ b/dev-scheme/guile-nyacc/guile-nyacc-1.06.7-r101.ebuild @@ -0,0 +1,29 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit guile + +DESCRIPTION="Guile modules for generating parsers and lexical analyzers" +HOMEPAGE="http://www.nongnu.org/nyacc/" +SRC_URI="mirror://nongnu/nyacc/nyacc-${PV}.tar.gz" +S="${WORKDIR}/nyacc-${PV}" + +LICENSE="LGPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND=" + ${GUILE_DEPS} + >=dev-scheme/bytestructures-2.0.2-r100[${GUILE_USEDEP}] +" +DEPEND="${RDEPEND}" + +src_install() { + guile_src_install + + # Fix docs location + mv "${ED}"/usr/share/doc/nyacc "${ED}"/usr/share/doc/${PF} || die +} diff --git a/dev-scheme/guile-nyacc/metadata.xml b/dev-scheme/guile-nyacc/metadata.xml new file mode 100644 index 000000000000..9a66930acf10 --- /dev/null +++ b/dev-scheme/guile-nyacc/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + NYACC, for Not Yet Another Compiler Compiler, is set of guile modules for + generating parsers and lexical analyzers. It also provides sample parsers + and pretty-printers using SXML trees as an intermediate representation. + It provides a decent C parser and a `FFI Helper' tool to help create Guile + Scheme bindings for C-based libraries. + It provides (partially implemented) compilers based on above mentioned + parsers to allow execution with Guile as extension languages. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-reader/Manifest b/dev-scheme/guile-reader/Manifest new file mode 100644 index 000000000000..adf02596b0ac --- /dev/null +++ b/dev-scheme/guile-reader/Manifest @@ -0,0 +1 @@ +DIST guile-reader-0.6.3.tar.gz 691612 BLAKE2B 504152d3a194705435efa4e2d2b51fd1bc22a998161b09ef0157c13bf46ef593be0101d6b72e197818a8ba18406db0de518423a168d36f54616dfcd4e807f3b9 SHA512 0f9f47ee5f24ebb79894863ac96d63b0c7d2801020a212c59d11c7685ff4006a646be988a696a9b623dc0e0605f46d4a9a8680bfabd299878e41eab92e75efd5 diff --git a/dev-scheme/guile-reader/files/guile-reader-0.6.3-implicit-fn-decl.patch b/dev-scheme/guile-reader/files/guile-reader-0.6.3-implicit-fn-decl.patch new file mode 100644 index 000000000000..f09f3055c0a6 --- /dev/null +++ b/dev-scheme/guile-reader/files/guile-reader-0.6.3-implicit-fn-decl.patch @@ -0,0 +1,25 @@ +From d4ff9b9e4c64f7e60c95676ec74c49b12b20ad3b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@gentoo.org> +Date: Sat, 3 Aug 2024 18:28:51 +0200 +Subject: [PATCH 1/2] add missing include + +fixes an implicit function declaration +--- + src/compat.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/compat.c b/src/compat.c +index 943c7f9..9b15b31 100644 +--- a/src/compat.c ++++ b/src/compat.c +@@ -21,6 +21,7 @@ + #endif + + #include <libguile.h> ++#include <libguile/deprecation.h> + #include <compat.h> + #include <string.h> + #include <stdio.h> +-- +2.45.2 + diff --git a/dev-scheme/guile-reader/files/guile-reader-0.6.3-slot.patch b/dev-scheme/guile-reader/files/guile-reader-0.6.3-slot.patch new file mode 100644 index 000000000000..79df5bebb546 --- /dev/null +++ b/dev-scheme/guile-reader/files/guile-reader-0.6.3-slot.patch @@ -0,0 +1,66 @@ +From d75f6155c5ff58ac2b3fee311f7056e01b1b6981 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@aarsen.me> +Date: Sat, 3 Aug 2024 18:29:21 +0200 +Subject: [PATCH 2/2] use the guile extension directory for libguile-reader.so + +this directory is slotted, and so, allows parallel installation. +--- + configure.ac | 2 ++ + modules/Makefile.am | 3 ++- + modules/system/reader.in | 2 +- + src/Makefile.am | 2 +- + 4 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c34e4dd..2ddd308 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -114,6 +114,8 @@ fi + AC_PATH_PROGS([GUILD], [guild guile-tools]) + GUILE_SITE_DIR + ++AC_SUBST([guileextdir], ["${GUILE_EXTENSION}"]) ++ + clean_LIBS="$LIBS" + clean_CFLAGS="$CFLAGS" + LIBS="$LIBS $GUILE_LIBS" +diff --git a/modules/Makefile.am b/modules/Makefile.am +index 25f2499..b0d4fd4 100644 +--- a/modules/Makefile.am ++++ b/modules/Makefile.am +@@ -13,7 +13,8 @@ nobase_nodist_guilemodule_DATA = \ + + .in.scm: + $(AM_V_GEN)$(MKDIR_P) `dirname "$@"` ; \ +- $(SED) -e 's|[@]libdir[@]|$(libdir)|g' < "$<" > "$@.tmp" ; \ ++ $(SED) -e 's|[@]guileextdir[@]|$(guileextdir)|g' \ ++ < "$<" > "$@.tmp" ; \ + mv "$@.tmp" "$@" + + if HAVE_GUILE2 +diff --git a/modules/system/reader.in b/modules/system/reader.in +index fbef2ac..cd23ba7 100644 +--- a/modules/system/reader.in ++++ b/modules/system/reader.in +@@ -58,7 +58,7 @@ + + (define %libguile-reader + (string-append (or (getenv "GUILE_READER_LIBDIR") +- "@libdir@") ++ "@guileextdir@") + "/libguile-reader")) + + (load-extension %libguile-reader "scm_reader_init_bindings") +diff --git a/src/Makefile.am b/src/Makefile.am +index e029bac..71294c2 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -1,4 +1,4 @@ +-lib_LTLIBRARIES = libguile-reader.la ++guileext_LTLIBRARIES = libguile-reader.la + libguile_reader_la_SOURCES = reader.c token-readers.c reader-lib.c compat.c + libguile_reader_la_LDFLAGS = -module -version-info 1:0:0 $(GUILE_LDFLAGS) + +-- +2.45.2 + diff --git a/dev-scheme/guile-reader/guile-reader-0.6.3-r100.ebuild b/dev-scheme/guile-reader/guile-reader-0.6.3-r100.ebuild new file mode 100644 index 000000000000..34586edea1bc --- /dev/null +++ b/dev-scheme/guile-reader/guile-reader-0.6.3-r100.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit guile autotools + +DESCRIPTION="Simple framework for building readers for GNU Guile" +HOMEPAGE="https://www.nongnu.org/guile-reader/" +SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND="${GUILE_DEPS}" +DEPEND="${RDEPEND}" +BDEPEND="dev-util/gperf" + +PATCHES=( + "${FILESDIR}/${PN}-0.6.3-implicit-fn-decl.patch" + "${FILESDIR}/${PN}-0.6.3-slot.patch" +) + +src_prepare() { + default + + eautoreconf + + guile_bump_sources +} + +configure_one_src() { + local -x guile_snarf="${GUILESNARF}" + # We don't have lightning packaged and, naturally, guile-reader has + # no --with-... for it. Suppress the automagic. + econf \ + ac_cv_header_lightning_h=no +} + +src_configure() { + guile_foreach_impl configure_one_src +} + +compile_one_src() { + # Makefile appears to be missing seemingly all dependencies. + emake -j1 --shuffle=none +} + +src_compile() { + guile_foreach_impl compile_one_src +} + +src_install() { + guile_src_install + + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/dev-scheme/guile-reader/metadata.xml b/dev-scheme/guile-reader/metadata.xml new file mode 100644 index 000000000000..891ece5ef187 --- /dev/null +++ b/dev-scheme/guile-reader/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + Guile-Reader is a simple framework for building readers for GNU Guile. + The idea is to make it easy to build procedures that extend Guile's read + procedure. Readers supporting various syntax variants can easily be + written, possibly by re-using existing "token readers" of a standard Scheme + readers. For example, it is used to implement Skribilo's R5RS-derived + document syntax. + Guile-Reader's approach is similar to Common Lisp's "read table", but + hopefully more powerful and flexible (for instance, one may instantiate as + many readers as needed). + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-sqlite3/Manifest b/dev-scheme/guile-sqlite3/Manifest new file mode 100644 index 000000000000..58b3ed762e39 --- /dev/null +++ b/dev-scheme/guile-sqlite3/Manifest @@ -0,0 +1 @@ +DIST guile-sqlite3-0.1.3.tar.gz 25017 BLAKE2B 74d78592a7d87a66fe74bab49a5fbbabe66bc1f7967ef1323992a04cb4996f78759d2aa05827cad24298a9349fe0a24c94a0cfea54a9f09aeaef01c7dcc19d61 SHA512 1abc6646c775b4bf61d7f9f8a75d8ba4da2e67c9d85cd6a29c432acdb0ed68fcb6e7073693d06787d83c3ceb84bd512e71f53d18afeb0063e1cfc296b6873f79 diff --git a/dev-scheme/guile-sqlite3/guile-sqlite3-0.1.3-r100.ebuild b/dev-scheme/guile-sqlite3/guile-sqlite3-0.1.3-r100.ebuild new file mode 100644 index 000000000000..1346542b5b64 --- /dev/null +++ b/dev-scheme/guile-sqlite3/guile-sqlite3-0.1.3-r100.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="Guile bindings of sqlite3" +HOMEPAGE="https://notabug.org/guile-sqlite3/guile-sqlite3" +SRC_URI="https://notabug.org/guile-sqlite3/guile-sqlite3/archive/v${PV}.tar.gz + -> ${P}.tar.gz" +S="${WORKDIR}/${PN}" + +LICENSE="LGPL-3+ GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + dev-db/sqlite:3= +" +DEPEND="${RDEPEND}" + +src_prepare() { + guile_src_prepare + + # upstream tag on top of source tree. has no autogenerated files + eautoreconf +} diff --git a/dev-scheme/guile-sqlite3/metadata.xml b/dev-scheme/guile-sqlite3/metadata.xml new file mode 100644 index 000000000000..7da9fbde9d91 --- /dev/null +++ b/dev-scheme/guile-sqlite3/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://notabug.org/guile-sqlite3/guile-sqlite3</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-ssh/Manifest b/dev-scheme/guile-ssh/Manifest new file mode 100644 index 000000000000..0836c3f77fb9 --- /dev/null +++ b/dev-scheme/guile-ssh/Manifest @@ -0,0 +1,2 @@ +DIST guile-ssh-0.16.4.tar.gz 532702 BLAKE2B 47dd2fde37aa2047d836f464d567736208bfed8afee668bf76d35910a866b1c3e869f346b89b4fce7b747d5806a004933cd673851015f8d76afc61c06a398ad2 SHA512 1c70d4885a6f821c3018650d2537316de981ad5f76eadc51ed2c5dd51225e39e67ad1b979769b1b81a0f061ddeecd11d878b3844d9f8e78fdd0915e2f1a28838 +DIST guile-ssh-0.18.0.tar.gz 600133 BLAKE2B 5983c47e5fae7a8c5a9da64b196e0ef0ba5e1a42b32e290ab73cdbb784fadcc5a91e4c2aa3b408981cd5dd12ef1722f409d0788905b2d5e37bfd64d7da998479 SHA512 9e3758c9288e36fbaa8eb69f8f3e3536f5972c8ab8fe1c32b7e4c79d37b31d3a452b05e4849201d39d49e615ef054bfe4b6cee091de90c1c68952c8ebe2c8bc1 diff --git a/dev-scheme/guile-ssh/files/guile-ssh-0.16.2-tests.patch b/dev-scheme/guile-ssh/files/guile-ssh-0.16.2-tests.patch new file mode 100644 index 000000000000..071ef5add279 --- /dev/null +++ b/dev-scheme/guile-ssh/files/guile-ssh-0.16.2-tests.patch @@ -0,0 +1,18 @@ +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -23,15 +23,12 @@ if !CROSS_COMPILING + + SCM_TESTS = \ + log.scm \ +- version.scm \ +- server.scm \ + session.scm \ + client-server.scm \ + popen.scm \ + shell.scm \ + server-client.scm \ + sssh-ssshd.scm \ +- key.scm \ + tunnel.scm \ + dist.scm + diff --git a/dev-scheme/guile-ssh/files/guile-ssh-0.16.4-c23.patch b/dev-scheme/guile-ssh/files/guile-ssh-0.16.4-c23.patch new file mode 100644 index 000000000000..1e7502060b89 --- /dev/null +++ b/dev-scheme/guile-ssh/files/guile-ssh-0.16.4-c23.patch @@ -0,0 +1,33 @@ +https://bugs.gentoo.org/942958 +https://github.com/artyom-poptsov/guile-ssh/pull/43 + +From 30fc103c67f3bf6cd30b17379ba966b260cfa534 Mon Sep 17 00:00:00 2001 +From: Peter Tillemans <pti@snamellit.com> +Date: Wed, 18 Sep 2024 15:52:46 +0200 +Subject: [PATCH] fix compile error caused by bool identifier + +confusion of variable name with typename is now an error. +--- + libguile-ssh/session-func.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libguile-ssh/session-func.c b/libguile-ssh/session-func.c +index 7006b62..836cd27 100644 +--- a/libguile-ssh/session-func.c ++++ b/libguile-ssh/session-func.c +@@ -234,12 +234,12 @@ set_int32_opt (ssh_session session, int type, SCM value) + static inline int + set_bool_opt (ssh_session session, int type, SCM value) + { +- int32_t bool; ++ int32_t bool_value; + + SCM_ASSERT (scm_is_bool (value), value, SCM_ARG3, "session-set!"); + +- bool = scm_to_bool (value); +- return ssh_options_set (session, type, &bool); ++ bool_value = scm_to_bool (value); ++ return ssh_options_set (session, type, &bool_value); + } + + /* Convert VALUE to a socket file descriptor and pass it to diff --git a/dev-scheme/guile-ssh/guile-ssh-0.16.4-r100.ebuild b/dev-scheme/guile-ssh/guile-ssh-0.16.4-r100.ebuild new file mode 100644 index 000000000000..3202fdb834b5 --- /dev/null +++ b/dev-scheme/guile-ssh/guile-ssh-0.16.4-r100.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="Library providing access to the SSH protocol for GNU Guile" +HOMEPAGE="https://memory-heap.org/~avp/projects/guile-ssh/ + https://github.com/artyom-poptsov/guile-ssh/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/artyom-poptsov/${PN}.git" +else + SRC_URI="https://github.com/artyom-poptsov/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="GPL-3+" +SLOT="0" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + dev-libs/boehm-gc + dev-libs/libatomic_ops + net-libs/libssh:0=[server,sftp] +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO ) + +PATCHES=( + "${FILESDIR}/${PN}-0.16.2-tests.patch" + "${FILESDIR}/${PN}-0.16.4-c23.patch" +) + +src_prepare() { + guile_src_prepare + eautoreconf +} + +src_configure() { + my_configure() { + econf guile_snarf=${GUILESNARF} + } + guile_foreach_impl my_configure +} + +src_install() { + guile_src_install + + find "${ED}" -name "*.la" -delete || die +} diff --git a/dev-scheme/guile-ssh/guile-ssh-0.18.0.ebuild b/dev-scheme/guile-ssh/guile-ssh-0.18.0.ebuild new file mode 100644 index 000000000000..6946294843a7 --- /dev/null +++ b/dev-scheme/guile-ssh/guile-ssh-0.18.0.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="Library providing access to the SSH protocol for GNU Guile" +HOMEPAGE="https://memory-heap.org/~avp/projects/guile-ssh/ + https://github.com/artyom-poptsov/guile-ssh/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/artyom-poptsov/${PN}.git" +else + SRC_URI="https://github.com/artyom-poptsov/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="GPL-3+" +SLOT="0" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + dev-libs/boehm-gc + dev-libs/libatomic_ops + net-libs/libssh:0=[server,sftp] +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO ) + +PATCHES=( + "${FILESDIR}/${PN}-0.16.2-tests.patch" +) + +src_prepare() { + guile_src_prepare + eautoreconf +} + +src_configure() { + my_configure() { + econf guile_snarf=${GUILESNARF} + } + guile_foreach_impl my_configure +} + +src_install() { + guile_src_install + + find "${ED}" -name "*.la" -delete || die +} diff --git a/dev-scheme/guile-ssh/metadata.xml b/dev-scheme/guile-ssh/metadata.xml new file mode 100644 index 000000000000..2d07a14fce6b --- /dev/null +++ b/dev-scheme/guile-ssh/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://github.com/artyom-poptsov/guile-ssh/issues/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-zlib/Manifest b/dev-scheme/guile-zlib/Manifest new file mode 100644 index 000000000000..b45debe18ed0 --- /dev/null +++ b/dev-scheme/guile-zlib/Manifest @@ -0,0 +1 @@ +DIST guile-zlib-0.1.0.tar.gz 14652 BLAKE2B 10f0c4d312b07415f3846927a3a1d59aa62106bf0e4a4446ba6764486104053da544fc994491af6611154edb459bba7c55e79095695b90c28ce4237e24e3b98b SHA512 bf9201c7c01324a44ae86a673f4d1b92fd6f346d0be9d5a6390cc8be11d79d00a1cdee88c28ceb7fc5b99215198cf3ac368884381933e40babc85a21cbd300e3 diff --git a/dev-scheme/guile-zlib/files/guile-zlib-0.1.0-gentoo.patch b/dev-scheme/guile-zlib/files/guile-zlib-0.1.0-gentoo.patch new file mode 100644 index 000000000000..9d63512f8499 --- /dev/null +++ b/dev-scheme/guile-zlib/files/guile-zlib-0.1.0-gentoo.patch @@ -0,0 +1,13 @@ +Not upstreamable hack. Gentoo installs /usr/${libdir}/libz.so +linker script that redirects to /${libdir}/libz.so.1 + +Let's use ELF file directly. It also requires guile to support +direct loading and enforces >=guile-3. +--- a/zlib/config.scm.in ++++ b/zlib/config.scm.in +@@ -20,4 +20,4 @@ + #:export (%libz)) + + (define %libz +- "@LIBZ_LIBDIR@/libz") ++ "@LIBZ_LIBDIR@/libz.so.1") diff --git a/dev-scheme/guile-zlib/guile-zlib-0.1.0-r100.ebuild b/dev-scheme/guile-zlib/guile-zlib-0.1.0-r100.ebuild new file mode 100644 index 000000000000..faa0bbb5ef25 --- /dev/null +++ b/dev-scheme/guile-zlib/guile-zlib-0.1.0-r100.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 3-0 ) +inherit autotools guile + +DESCRIPTION="GNU Guile library providing bindings to zlib" +HOMEPAGE="https://notabug.org/guile-zlib/guile-zlib/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://notabug.org/${PN}/${PN}.git" +else + SRC_URI="https://notabug.org/${PN}/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/${PN}" + + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="GPL-3+" +SLOT="0" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + >=virtual/zlib-1.3-r4:= +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +DOCS=( AUTHORS ChangeLog HACKING NEWS README.org ) + +PATCHES=( "${FILESDIR}/${PN}-0.1.0-gentoo.patch" ) + +src_prepare() { + guile_src_prepare + + eautoreconf +} diff --git a/dev-scheme/guile-zlib/metadata.xml b/dev-scheme/guile-zlib/metadata.xml new file mode 100644 index 000000000000..3349d1a3e634 --- /dev/null +++ b/dev-scheme/guile-zlib/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://notabug.org/guile-zlib/guile-zlib/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile-zstd/Manifest b/dev-scheme/guile-zstd/Manifest new file mode 100644 index 000000000000..7a74cbe08c3a --- /dev/null +++ b/dev-scheme/guile-zstd/Manifest @@ -0,0 +1 @@ +DIST guile-zstd-0.1.1.tar.gz 21402 BLAKE2B 995034f977649b31308690a5a53372cb80274b6457b6b0344bc31f4451d00e61cc33b6ef890e8b7a75cb6a656e8db506a2390bc2c5d29552af7c68788a6388ee SHA512 23bd4b201a427eb02ae32bcd81d05adefcac3b4446dcb8a91d8ad2bed389d4ea92ffd81dfb6b3e7427b891fd25b7466ca53a97b1a943e390f13de977986fcad0 diff --git a/dev-scheme/guile-zstd/guile-zstd-0.1.1-r100.ebuild b/dev-scheme/guile-zstd/guile-zstd-0.1.1-r100.ebuild new file mode 100644 index 000000000000..093c50da4eda --- /dev/null +++ b/dev-scheme/guile-zstd/guile-zstd-0.1.1-r100.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit autotools guile + +DESCRIPTION="GNU Guile bindings to the zstd compression library" +HOMEPAGE="https://notabug.org/guile-zstd/guile-zstd/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://notabug.org/${PN}/${PN}.git" +else + SRC_URI="https://notabug.org/${PN}/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/${PN}" + + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="GPL-3+" +SLOT="0" + +REQUIRED_USED="${GUILE_REQUIRED_USE}" + +# In zstd-1.5.5-r1 library was moved back from "/lib" to "/usr/lib". +RDEPEND=" + ${GUILE_DEPS} + >=app-arch/zstd-1.5.5-r1 +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" + +DOCS=( AUTHORS ChangeLog NEWS README ) + +src_prepare() { + guile_src_prepare + eautoreconf +} diff --git a/dev-scheme/guile-zstd/metadata.xml b/dev-scheme/guile-zstd/metadata.xml new file mode 100644 index 000000000000..57d6109b6026 --- /dev/null +++ b/dev-scheme/guile-zstd/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <upstream> + <bugs-to>https://notabug.org/guile-zstd/guile-zstd/</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/guile/Manifest b/dev-scheme/guile/Manifest new file mode 100644 index 000000000000..f7eaa705405a --- /dev/null +++ b/dev-scheme/guile/Manifest @@ -0,0 +1,4 @@ +DIST guile-1.8.8.tar.gz 3956654 BLAKE2B 4820d635ac2c57526c0c03f3e0e6e4ac4276533ea8db15e6d1b759c33edec094a1a4bdc3e09ccae61f1b271d63565063746feea242a90c18cd575775444a42ef SHA512 ede6feb90cd419d8763feb8c5169275490a653919573c4dfced025b74cf591072b3a10ffb9a3f6ee3fe7b0a0956ffcf434e0859b421455c8349cea56bf427db0 +DIST guile-2.2.7.tar.xz 10881984 BLAKE2B e2b1fe7cb010371beaaf32f8f173397c90fd291ed7d5835b9d976f37fd133254841b4179bd1e1cd02e604c7befcab6c25f85d20ba0850f96978f7c32ca1fe6d8 SHA512 6f60b3489e26f5ff32b55c89316cdcdbf3ec1f4344726006e445f24098c922c50becdc748f1b66d2b271dc002e409ee6210bf85da779cee1f68c9111b3b5c543 +DIST guile-3.0.10.tar.xz 5802280 BLAKE2B 2b41f1afb282eb4672f5aca5b044f47a12509745f5580fc4a621e7555c8b884f92dc76bc78fbdf8a64d59cf1de65b230ce03b0a34bbcb77307a7c9453a277ac6 SHA512 8b58e6c70cd48af85a0b346fcdf488fd5ac8d8678181c9c469895bf6ddab909c415e471776fdcda3c234e00fae80bdd4518c17ff16cf8107a36d2990a4face1d +DIST guile-3.0.11.tar.xz 5874764 BLAKE2B 1212676f2a71f35e1faaa53db77a63b88be1734a3ec3944cbc7f906b7707881ed4e1a0cf4d64d5928cc10e7aa0f7fe7d5c127b856eab1069f4311c1a5210e8a3 SHA512 46066f627d1d98f32b8d30a9b95874da95c8a33f1f7a4a02d30b11b295dd58c9c0a9d3ab1a450f761c9637bb684d100ed3193055c3537f53ab59e4cb872a07a0 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..703e1fab9a48 --- /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
+
+--- a/doc/tutorial/guile-tut.texi 2010-12-14 06:24:39.000000000 +1300
++++ b/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-texinfo-6.7.patch b/dev-scheme/guile/files/guile-1.8.8-texinfo-6.7.patch new file mode 100644 index 000000000000..6be52017a8d2 --- /dev/null +++ b/dev-scheme/guile/files/guile-1.8.8-texinfo-6.7.patch @@ -0,0 +1,22 @@ +--- a/doc/ref/api-compound.texi.orig 2020-08-08 22:23:07.000000000 -0400 ++++ b/doc/ref/api-compound.texi 2020-08-08 22:23:33.000000000 -0400 +@@ -905,7 +905,7 @@ + @end deftypefn + + @deftypefn {C Function} {const SCM *} scm_vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp) +-Acquire a handle for the vector @var{vec} and return a pointer to the ++Acquire a handle for the vector @var{vec} and return a pointer to the + elements of it. This pointer can only be used to read the elements of + @var{vec}. When @var{vec} is not a vector, an error is signaled. The + handle mustr eventually be released with +--- a/doc/ref/guile.info-2.orig 2020-08-08 22:22:59.000000000 -0400 ++++ b/doc/ref/guile.info-2 2020-08-08 22:25:21.000000000 -0400 +@@ -4192,7 +4192,7 @@ + + -- C Function: const SCM * scm_vector_elements (SCM vec, + scm_t_array_handle *handle, size_t *lenp, ssize_t *incp) +- Acquire a handle for the vector VEC and return a pointer to the ++ Acquire a handle for the vector VEC and return a pointer to the + elements of it. This pointer can only be used to read the + elements of VEC. When VEC is not a vector, an error is signaled. + The handle mustr eventually be released with 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.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/files/guile-2.2.7-stack-up.patch b/dev-scheme/guile/files/guile-2.2.7-stack-up.patch new file mode 100644 index 000000000000..de291421c0be --- /dev/null +++ b/dev-scheme/guile/files/guile-2.2.7-stack-up.patch @@ -0,0 +1,17 @@ +This patch (dropping an obsolete extra parameter to grow_stack) landed post +2.2.7 and we're not likely to ever see a 2.2.8, as development has moved +on to 3.x now. + +https://bugs.gentoo.org/747049 +https://www.mail-archive.com/guile-devel@gnu.org/msg15502.html +--- a/libguile/continuations.c ++++ b/libguile/continuations.c +@@ -302,7 +302,7 @@ + + #if SCM_STACK_GROWS_UP + if (dst + continuation->num_stack_items >= &stack_top_element) +- grow_stack (cont, mra); ++ grow_stack (cont); + #else + dst -= continuation->num_stack_items; + if (dst <= &stack_top_element) diff --git a/dev-scheme/guile/files/guile-3.0-fix-32bit-BE.patch b/dev-scheme/guile/files/guile-3.0-fix-32bit-BE.patch new file mode 100644 index 000000000000..a4e575691293 --- /dev/null +++ b/dev-scheme/guile/files/guile-3.0-fix-32bit-BE.patch @@ -0,0 +1,30 @@ +https://bugs.gentoo.org/940650#c4 +https://bugs.debian.org/977223 +https://sources.debian.org/patches/guile-3.0/3.0.8-2/0009-Fix-32-bit-big-endian-builds-via-Oresolve-primitives.patch/ +--- a/configure.ac ++++ b/configure.ac +@@ -374,6 +374,8 @@ esac + AC_MSG_RESULT($SCM_PREBUILT_BINARIES) + AC_SUBST([SCM_PREBUILT_BINARIES]) + ++AM_CONDITIONAL([GUILE_32_BIT_BIG_ENDIAN], [test "$SCM_PREBUILT_BINARIES" = 32-bit-big-endian]) ++ + AC_HEADER_SYS_WAIT + AC_HEADER_DIRENT + +--- a/stage0/Makefile.am ++++ b/stage0/Makefile.am +@@ -22,7 +22,12 @@ + + + GUILE_WARNINGS = -W0 +-GUILE_OPTIMIZATIONS = -O1 ++if GUILE_32_BIT_BIG_ENDIAN ++GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps ++else ++GUILE_OPTIMIZATIONS = -O1 ++endif ++ + GUILE_BOOTSTRAP_STAGE = stage0 + + include $(top_srcdir)/am/bootstrap.am diff --git a/dev-scheme/guile/files/guile-3.0.10-backport-issue72913.patch b/dev-scheme/guile/files/guile-3.0.10-backport-issue72913.patch new file mode 100644 index 000000000000..0a4d84cfea31 --- /dev/null +++ b/dev-scheme/guile/files/guile-3.0.10-backport-issue72913.patch @@ -0,0 +1,394 @@ +https://bugs.gentoo.org/940650#c12 +https://issues.guix.gnu.org/72913 +https://git.savannah.gnu.org/cgit/guile.git/commit/?id=aff9ac968840e9c86719fb613bd2ed3c39b9905c + +From 605440d8021061a4ef8c18370783ef39f62c59b2 Mon Sep 17 00:00:00 2001 +From: Andy Wingo <wingo@pobox.com> +Date: Wed, 25 Sep 2024 17:23:06 +0200 +Subject: [PATCH 1/4] Fix fixpoint needed-bits computation in + specialize-numbers + +* module/language/cps/specialize-numbers.scm (next-power-of-two): Use +integer-length. No change. +(compute-significant-bits): Fix the fixpoint computation, which was +failing to complete in some cases with loops. +--- + module/language/cps/specialize-numbers.scm | 27 ++++++++-------------- + 1 file changed, 10 insertions(+), 17 deletions(-) + +diff --git a/module/language/cps/specialize-numbers.scm b/module/language/cps/specialize-numbers.scm +index 4ec88871c..12963cd71 100644 +--- a/module/language/cps/specialize-numbers.scm ++++ b/module/language/cps/specialize-numbers.scm +@@ -265,10 +265,7 @@ + (sigbits-intersect a (sigbits-intersect b c))) + + (define (next-power-of-two n) +- (let lp ((out 1)) +- (if (< n out) +- out +- (lp (ash out 1))))) ++ (ash 1 (integer-length n))) + + (define (range->sigbits min max) + (cond +@@ -310,18 +307,16 @@ + BITS indicating the significant bits needed for a variable. BITS may be + #f to indicate all bits, or a non-negative integer indicating a bitmask." + (let ((preds (invert-graph (compute-successors cps kfun)))) +- (let lp ((worklist (intmap-keys preds)) (visited empty-intset) +- (out empty-intmap)) ++ (let lp ((worklist (intmap-keys preds)) (out empty-intmap)) + (match (intset-prev worklist) + (#f out) + (label +- (let ((worklist (intset-remove worklist label)) +- (visited* (intset-add visited label))) ++ (let ((worklist (intset-remove worklist label))) + (define (continue out*) +- (if (and (eq? out out*) (eq? visited visited*)) +- (lp worklist visited out) ++ (if (eq? out out*) ++ (lp worklist out) + (lp (intset-union worklist (intmap-ref preds label)) +- visited* out*))) ++ out*))) + (define (add-def out var) + (intmap-add out var 0 sigbits-union)) + (define (add-defs out vars) +@@ -352,12 +347,10 @@ BITS indicating the significant bits needed for a variable. BITS may be + (($ $values args) + (match (intmap-ref cps k) + (($ $kargs _ vars) +- (if (intset-ref visited k) +- (fold (lambda (arg var out) +- (intmap-add out arg (intmap-ref out var) +- sigbits-union)) +- out args vars) +- out)) ++ (fold (lambda (arg var out) ++ (intmap-add out arg (intmap-ref out var (lambda (_) 0)) ++ sigbits-union)) ++ out args vars)) + (($ $ktail) + (add-unknown-uses out args)))) + (($ $call proc args) +-- +2.47.0 + + +From 6953fcb8d9b7d9d36bf36e83e80e24153d37e2a4 Mon Sep 17 00:00:00 2001 +From: Andy Wingo <wingo@pobox.com> +Date: Wed, 25 Sep 2024 17:24:51 +0200 +Subject: [PATCH 2/4] Fix boxing of non-fixnum negative u64 values + +* module/language/cps/specialize-numbers.scm (u64->fixnum/truncate): New +helper. +(specialize-operations): Fix specialized boxing of u64 values to +truncate possibly-negative values, to avoid confusing CSE. Fixes +https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71891. +--- + module/language/cps/specialize-numbers.scm | 21 ++++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +diff --git a/module/language/cps/specialize-numbers.scm b/module/language/cps/specialize-numbers.scm +index 12963cd71..e9761f0cb 100644 +--- a/module/language/cps/specialize-numbers.scm ++++ b/module/language/cps/specialize-numbers.scm +@@ -115,6 +115,13 @@ + (letk ks64 ($kargs ('s64) (s64) ,tag-body)) + (build-term + ($continue ks64 src ($primcall 'u64->s64 #f (u64)))))) ++(define (u64->fixnum/truncate cps k src u64 bits) ++ (with-cps cps ++ (letv truncated) ++ (let$ tag-body (u64->fixnum k src truncated)) ++ (letk ku64 ($kargs ('truncated) (truncated) ,tag-body)) ++ (build-term ++ ($continue ku64 src ($primcall 'ulogand/immediate bits (u64)))))) + (define-simple-primcall scm->u64) + (define-simple-primcall scm->u64/truncate) + (define-simple-primcall u64->scm) +@@ -473,7 +480,19 @@ BITS indicating the significant bits needed for a variable. BITS may be + (define (box-s64 result) + (if (fixnum-result? result) tag-fixnum s64->scm)) + (define (box-u64 result) +- (if (fixnum-result? result) u64->fixnum u64->scm)) ++ (call-with-values ++ (lambda () ++ (lookup-post-type types label result 0)) ++ (lambda (type min max) ++ (cond ++ ((and (type<=? type &exact-integer) ++ (<= 0 min max (target-most-positive-fixnum))) ++ u64->fixnum) ++ ((only-fixnum-bits-used? result) ++ (lambda (cps k src u64) ++ (u64->fixnum/truncate cps k src u64 (intmap-ref sigbits result)))) ++ (else ++ u64->scm))))) + (define (box-f64 result) + f64->scm) + +-- +2.47.0 + + +From b0559dbe88eb54e2bba4a82dd1f7e7c5b6de2f55 Mon Sep 17 00:00:00 2001 +From: Andy Wingo <wingo@pobox.com> +Date: Mon, 23 Sep 2024 15:57:23 +0200 +Subject: [PATCH 3/4] Narrow parameter of logand/immediate if no bits used + +* module/language/cps/specialize-numbers.scm (specialize-operations): +Narrow ulogand/immediate param according to used bits. +--- + module/language/cps/specialize-numbers.scm | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/module/language/cps/specialize-numbers.scm b/module/language/cps/specialize-numbers.scm +index e9761f0cb..262dee484 100644 +--- a/module/language/cps/specialize-numbers.scm ++++ b/module/language/cps/specialize-numbers.scm +@@ -1,6 +1,6 @@ + ;;; Continuation-passing style (CPS) intermediate language (IL) + +-;; Copyright (C) 2015-2021, 2023 Free Software Foundation, Inc. ++;; Copyright (C) 2015-2021,2023-2024 Free Software Foundation, Inc. + + ;;;; This library is free software; you can redistribute it and/or + ;;;; modify it under the terms of the GNU Lesser General Public +@@ -573,9 +573,11 @@ BITS indicating the significant bits needed for a variable. BITS may be + (specialize-unop cps k src op param a + (unbox-u64 a) (box-u64 result)))) + +- (('logand/immediate (? u64-result? ) param (? u64-operand? a)) ++ (('logand/immediate (? u64-result?) param (? u64-operand? a)) + (specialize-unop cps k src 'ulogand/immediate +- (logand param (1- (ash 1 64))) ++ (logand param ++ (or (intmap-ref sigbits result) -1) ++ (1- (ash 1 64))) + a + (unbox-u64 a) (box-u64 result))) + +-- +2.47.0 + + +From 51db308ec2107f9fb32a06004e7a0a3da6418ff6 Mon Sep 17 00:00:00 2001 +From: Andy Wingo <wingo@pobox.com> +Date: Thu, 26 Sep 2024 11:14:52 +0200 +Subject: [PATCH 4/4] Run sigbits fixpoint based on use/def graph, not cfg + +* module/language/cps/specialize-numbers.scm (sigbits-ref): New helper. +(invert-graph*): New helper. +(compute-significant-bits): When visiting a term changes computed +needed-bits for one of its definitions, we need to revisit the variables +that contributed to its result (the uses), because they might need more +bits as well. Previously we were doing this by enqueueing predecessors +to the term, which worked if the uses were defined in predecessors, or +if all defining terms were already in the worklist, which is the case +without loops. But with loops, when revisiting a term, you could see +that it causes sigbits to change, enqueue its predecessors, but then the +predecessors don't change anything and the fixpoint stops before +reaching the definitions of the variables we need. So instead we +compute the use-def graph and enqueue defs directly. +--- + module/language/cps/specialize-numbers.scm | 120 ++++++++++----------- + 1 file changed, 54 insertions(+), 66 deletions(-) + +diff --git a/module/language/cps/specialize-numbers.scm b/module/language/cps/specialize-numbers.scm +index 262dee484..ac63c8194 100644 +--- a/module/language/cps/specialize-numbers.scm ++++ b/module/language/cps/specialize-numbers.scm +@@ -286,6 +286,9 @@ + (and (type<=? type (logior &exact-integer &u64 &s64)) + (range->sigbits min max))))) + ++(define (sigbits-ref sigbits var) ++ (intmap-ref sigbits var (lambda (_) 0))) ++ + (define significant-bits-handlers (make-hash-table)) + (define-syntax-rule (define-significant-bits-handler + ((primop label types out def ...) param arg ...) +@@ -297,24 +300,42 @@ + (define-significant-bits-handler ((logand label types out res) param a b) + (let ((sigbits (sigbits-intersect3 (inferred-sigbits types label a) + (inferred-sigbits types label b) +- (intmap-ref out res (lambda (_) 0))))) ++ (sigbits-ref out res)))) + (intmap-add (intmap-add out a sigbits sigbits-union) + b sigbits sigbits-union))) + (define-significant-bits-handler ((logand/immediate label types out res) param a) + (let ((sigbits (sigbits-intersect3 (inferred-sigbits types label a) + param +- (intmap-ref out res (lambda (_) 0))))) ++ (sigbits-ref out res)))) + (intmap-add out a sigbits sigbits-union))) + + (define (significant-bits-handler primop) + (hashq-ref significant-bits-handlers primop)) + ++(define (invert-graph* defs) ++ "Given a graph LABEL->VAR..., return a graph VAR->LABEL.... Like the one ++in (language cps graphs), but different because it doesn't assume that ++the domain will be the same before and after." ++ (persistent-intmap ++ (intmap-fold (lambda (label vars out) ++ (intset-fold ++ (lambda (var out) ++ (intmap-add! out var (intset label) intset-union)) ++ vars ++ out)) ++ defs ++ empty-intmap))) ++ + (define (compute-significant-bits cps types kfun) + "Given the locally inferred types @var{types}, compute a map of VAR -> + BITS indicating the significant bits needed for a variable. BITS may be + #f to indicate all bits, or a non-negative integer indicating a bitmask." +- (let ((preds (invert-graph (compute-successors cps kfun)))) +- (let lp ((worklist (intmap-keys preds)) (out empty-intmap)) ++ (let ((cps (intmap-select cps (compute-function-body cps kfun)))) ++ ;; Label -> Var... ++ (define-values (defs uses) (compute-defs-and-uses cps)) ++ ;; Var -> Label... ++ (define defs-by-var (invert-graph* defs)) ++ (let lp ((worklist (intmap-keys cps)) (out empty-intmap)) + (match (intset-prev worklist) + (#f out) + (label +@@ -322,69 +343,36 @@ BITS indicating the significant bits needed for a variable. BITS may be + (define (continue out*) + (if (eq? out out*) + (lp worklist out) +- (lp (intset-union worklist (intmap-ref preds label)) ++ (lp (intset-fold ++ (lambda (use worklist) ++ (intset-union worklist (intmap-ref defs-by-var use))) ++ (intmap-ref uses label) ++ worklist) + out*))) +- (define (add-def out var) +- (intmap-add out var 0 sigbits-union)) +- (define (add-defs out vars) +- (match vars +- (() out) +- ((var . vars) (add-defs (add-def out var) vars)))) +- (define (add-unknown-use out var) ++ (define (add-unknown-use var out) + (intmap-add out var (inferred-sigbits types label var) + sigbits-union)) +- (define (add-unknown-uses out vars) +- (match vars +- (() out) +- ((var . vars) +- (add-unknown-uses (add-unknown-use out var) vars)))) ++ (define (default) ++ (intset-fold add-unknown-use (intmap-ref uses label) out)) + (continue + (match (intmap-ref cps label) +- (($ $kfun src meta self) +- (if self (add-def out self) out)) +- (($ $kargs names vars term) +- (let ((out (add-defs out vars))) +- (match term +- (($ $continue k src exp) +- (match exp +- ((or ($ $const) ($ $prim) ($ $fun) ($ $const-fun) +- ($ $code) ($ $rec)) +- ;; No uses, so no info added to sigbits. +- out) +- (($ $values args) +- (match (intmap-ref cps k) +- (($ $kargs _ vars) +- (fold (lambda (arg var out) +- (intmap-add out arg (intmap-ref out var (lambda (_) 0)) +- sigbits-union)) +- out args vars)) +- (($ $ktail) +- (add-unknown-uses out args)))) +- (($ $call proc args) +- (add-unknown-use (add-unknown-uses out args) proc)) +- (($ $callk label proc args) +- (let ((out (add-unknown-uses out args))) +- (if proc +- (add-unknown-use out proc) +- out))) +- (($ $calli args callee) +- (add-unknown-uses (add-unknown-use out callee) args)) +- (($ $primcall name param args) +- (let ((h (significant-bits-handler name))) +- (if h +- (match (intmap-ref cps k) +- (($ $kargs _ defs) +- (h label types out param args defs))) +- (add-unknown-uses out args)))))) +- (($ $branch kf kt src op param args) +- (add-unknown-uses out args)) +- (($ $switch kf kt src arg) +- (add-unknown-use out arg)) +- (($ $prompt k kh src escape? tag) +- (add-unknown-use out tag)) +- (($ $throw src op param args) +- (add-unknown-uses out args))))) +- (_ out))))))))) ++ (($ $kargs _ _ ($ $continue k _ ($ $primcall op param args))) ++ (match (significant-bits-handler op) ++ (#f (default)) ++ (h ++ (match (intmap-ref cps k) ++ (($ $kargs _ defs) ++ (h label types out param args defs)))))) ++ (($ $kargs _ _ ($ $continue k _ ($ $values args))) ++ (match (intmap-ref cps k) ++ (($ $kargs _ vars) ++ (fold (lambda (arg var out) ++ (intmap-add out arg (sigbits-ref out var) ++ sigbits-union)) ++ out args vars)) ++ (($ $ktail) ++ (default)))) ++ (_ (default)))))))))) + + (define (specialize-operations cps) + (define (u6-parameter? param) +@@ -416,7 +404,7 @@ BITS indicating the significant bits needed for a variable. BITS may be + (define (all-u64-bits-set? var) + (operand-in-range? var &exact-integer (1- (ash 1 64)) (1- (ash 1 64)))) + (define (only-fixnum-bits-used? var) +- (let ((bits (intmap-ref sigbits var))) ++ (let ((bits (sigbits-ref sigbits var))) + (and bits (= bits (logand bits (target-most-positive-fixnum)))))) + (define (fixnum-result? result) + (or (only-fixnum-bits-used? result) +@@ -429,7 +417,7 @@ BITS indicating the significant bits needed for a variable. BITS may be + min max + (target-most-positive-fixnum))))))) + (define (only-u64-bits-used? var) +- (let ((bits (intmap-ref sigbits var))) ++ (let ((bits (sigbits-ref sigbits var))) + (and bits (= bits (logand bits (1- (ash 1 64))))))) + (define (u64-result? result) + (or (only-u64-bits-used? result) +@@ -490,7 +478,7 @@ BITS indicating the significant bits needed for a variable. BITS may be + u64->fixnum) + ((only-fixnum-bits-used? result) + (lambda (cps k src u64) +- (u64->fixnum/truncate cps k src u64 (intmap-ref sigbits result)))) ++ (u64->fixnum/truncate cps k src u64 (sigbits-ref sigbits result)))) + (else + u64->scm))))) + (define (box-f64 result) +@@ -576,7 +564,7 @@ BITS indicating the significant bits needed for a variable. BITS may be + (('logand/immediate (? u64-result?) param (? u64-operand? a)) + (specialize-unop cps k src 'ulogand/immediate + (logand param +- (or (intmap-ref sigbits result) -1) ++ (or (sigbits-ref sigbits a) -1) + (1- (ash 1 64))) + a + (unbox-u64 a) (box-u64 result))) +-- +2.47.0 + diff --git a/dev-scheme/guile/files/guile-3.0.10-c23.patch b/dev-scheme/guile/files/guile-3.0.10-c23.patch new file mode 100644 index 000000000000..058a8bf35106 --- /dev/null +++ b/dev-scheme/guile/files/guile-3.0.10-c23.patch @@ -0,0 +1,32 @@ +https://bugs.gentoo.org/943712 +https://git.savannah.gnu.org/cgit/guile.git/commit/?id=c2e7d834c26dca39e0a2dc6784fc47814969817a + +From c2e7d834c26dca39e0a2dc6784fc47814969817a Mon Sep 17 00:00:00 2001 +From: Andy Wingo <wingo@pobox.com> +Date: Tue, 25 Jun 2024 09:30:21 +0200 +Subject: Fix compilation with C23 + +* libguile/jit.c (is_unreachable): Rename from "unreachable", which is +apparently a new reserved word in C23. +--- a/libguile/jit.c ++++ b/libguile/jit.c +@@ -370,7 +370,7 @@ set_register_state (scm_jit_state *j, uint32_t state) + } + + static uint32_t +-unreachable (scm_jit_state *j) ++is_unreachable (scm_jit_state *j) + { + return j->register_state & UNREACHABLE; + } +@@ -382,7 +382,7 @@ has_register_state (scm_jit_state *j, uint32_t state) + } + + #define ASSERT_HAS_REGISTER_STATE(state) \ +- ASSERT (unreachable (j) || has_register_state (j, state)); ++ ASSERT (is_unreachable (j) || has_register_state (j, state)); + + static void + record_gpr_clobber (scm_jit_state *j, jit_gpr_t r) +-- +cgit v1.2.3-70-g09d2 diff --git a/dev-scheme/guile/guile-1.8.8-r103.ebuild b/dev-scheme/guile/guile-1.8.8-r103.ebuild new file mode 100644 index 000000000000..a80d5cfacd6c --- /dev/null +++ b/dev-scheme/guile/guile-1.8.8-r103.ebuild @@ -0,0 +1,186 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic elisp-common + +DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions" +HOMEPAGE="https://www.gnu.org/software/guile/" +SRC_URI="mirror://gnu/guile/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-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= + virtual/libcrypt:= + readline? ( sys-libs/readline:0= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + sys-apps/texinfo + dev-build/libtool + emacs? ( >=app-editors/emacs-23.1:* ) +" +IDEPEND=" + app-eselect/eselect-guile +" + +PATCHES=( + "${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 + "${FILESDIR}"/${PN}-1.8.8-texinfo-6.7.patch +) + +DOCS=( AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS ) + +# Where to install data files. +GUILE_DATA="${EPREFIX}/usr/share/guile-data/${SLOT}" +GUILE_PCDIR="${EPREFIX}/usr/share/guile-data/${SLOT}/pkgconfig" +GUILE_INFODIR="${EPREFIX}"/usr/share/guile-data/"${SLOT}"/info + +src_prepare() { + default + + sed \ + -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g" \ + -e "/AM_PROG_CC_STDC/d" \ + -i guile-readline/configure.in || die + + mv "${S}"/configure.{in,ac} || die + mv "${S}"/guile-readline/configure.{in,ac} || die + + eautoreconf +} + +src_configure() { + # See bug #178499. filter-flags no longer works since the compiler + # will vectorize by default when optimizing. + append-flags -fno-tree-vectorize -fno-strict-aliasing + + #will fail for me if posix is disabled or without modules -- hkBst + myconf=( + --program-suffix="-${SLOT}" + --infodir="${GUILE_INFODIR}" + --includedir="${EPREFIX}/usr/include/guile/${SLOT}" + + --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 + ) + econf "${myconf[@]}" 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 +} + +# Akin to (and taken from) toolchain-autoconfs eclass +guile_slot_info() { + rm -f dir || die + + pushd "${D}/${GUILE_INFODIR}" >/dev/null || die + for f in *.info*; do + # Install convenience aliases for versioned Guile pages. + ln -s "$f" "${f/./-${SLOT}.}" || die + done + popd >/dev/null || die + + docompress "${GUILE_INFODIR}" +} + +src_install() { + default + + dodir "${GUILE_PCDIR}" + sed -e "/libdir/i bindir=${ESYSROOT}/usr/bin" \ + -e "/libguileinterface/a guile=\${bindir}/guile-${SLOT}" \ + -i "${ED}"/usr/$(get_libdir)/pkgconfig/guile-1.8.pc || die + mv "${ED}"/usr/$(get_libdir)/pkgconfig/guile-1.8.pc "${D}/${GUILE_PCDIR}"/guile-1.8.pc || die + + sed -i "1s/guile/guile-1.8/" "${ED}"/usr/bin/guile-config-1.8 || die + + for script in PROGRAM autofrisk doc-snarf generate-autoload punify \ + read-scheme-source scan-api snarf-guile-m4-docs use2dot \ + api-diff display-commentary frisk lint read-rfc822 \ + read-text-outline snarf-check-and-output-texi summarize-guile-TODO; do + sed "s/GUILE-guile/GUILE-guile-1.8/" \ + -i "${ED}"/usr/share/guile/1.8/scripts/${script}-1.8 || die + mv "${ED}"/usr/share/guile/1.8/scripts/${script}{-1.8,} || die + done + + mv "${ED}"/usr/share/aclocal/guile{,-"${SLOT}"}.m4 || die + find "${ED}" -name '*.la' -delete || die + + guile_slot_info + + local major="$(ver_cut 1 "${SLOT}")" + local minor="$(ver_cut 2 "${SLOT}")" + local idx="$((99999-(major*1000+minor)))" + newenvd - "50guile${idx}" <<-EOF + PKG_CONFIG_PATH="${GUILE_PCDIR}" + INFOPATH="${GUILE_INFODIR}" + EOF + + # necessary for registering slib, see bug 206896 + keepdir /usr/share/guile/site + + if use emacs; then + elisp-install ${PN}-${SLOT} emacs/*.{el,elc} + elisp-make-site-file "50${PN}-${SLOT}-gentoo.el" + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen + + if has_version app-eselect/eselect-guile; then + eselect guile update # Nonfatal + fi + return 0 +} + +pkg_postrm() { + use emacs && elisp-site-regen + + # A pkg_postinst for the replacing package will be called after. + if has_version app-eselect/eselect-guile \ + && ! [[ "${REPLACED_BY_VERSION}" ]]; then + eselect guile update # Nonfatal + fi + return 0 +} diff --git a/dev-scheme/guile/guile-2.2.7-r103.ebuild b/dev-scheme/guile/guile-2.2.7-r103.ebuild new file mode 100644 index 000000000000..b31baf77370d --- /dev/null +++ b/dev-scheme/guile/guile-2.2.7-r103.ebuild @@ -0,0 +1,136 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions" +HOMEPAGE="https://www.gnu.org/software/guile/" +SRC_URI="mirror://gnu/guile/${P}.tar.xz" + +LICENSE="LGPL-3+" +SLOT="$(ver_cut 1-2)" # See (guile)Parallel Installations. +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-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:= + dev-libs/libffi:= + dev-libs/libltdl:= + dev-libs/libunistring:0= + sys-libs/ncurses:0= + sys-libs/readline:0= + virtual/libcrypt:= + !dev-scheme/guile:12 +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + dev-build/libtool + sys-devel/gettext +" +IDEPEND=" + app-eselect/eselect-guile +" + +PATCHES=( + "${FILESDIR}/${PN}-2.2.3-gentoo-sandbox.patch" + "${FILESDIR}/${PN}-2.2.7-stack-up.patch" +) + +# guile generates ELF files without use of C or machine code +# It's a portage's false positive. bug #677600 +QA_PREBUILT='*[.]go' + +GUILE_INFODIR="${EPREFIX}"/usr/share/guile-data/"${SLOT}"/info + +DOCS=( GUILE-VERSION HACKING README ) + +src_configure() { + # see bug #676468 + mv prebuilt/32-bit-big-endian{,.broken} || die + + econf \ + --infodir="${GUILE_INFODIR}" \ + --program-suffix="-${SLOT}" \ + --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) +} + +# Akin to (and taken from) toolchain-autoconfs eclass +guile_slot_info() { + rm -f dir || die + + pushd "${D}/${GUILE_INFODIR}" >/dev/null || die + for f in *.info*; do + # Install convenience aliases for versioned Guile pages. + ln -s "$f" "${f/./-${SLOT}.}" || die + done + popd >/dev/null || die + + docompress "${GUILE_INFODIR}" +} + +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 + + find "${D}" -name '*.la' -delete || die + + # Move the pkg-config files to guile-data. In future versions, this + # should be handled by --with-pkgconfigdir (patch waiting on + # upstream). + local datadir=/usr/share/guile-data/"${SLOT}" + local pcdir="${EPREFIX}${datadir}"/pkgconfig + mkdir -p "${ED}${datadir}" || die + mv "${ED}"/usr/share/aclocal/guile{,-"${SLOT}"}.m4 || die + mv "${ED}"/usr/$(get_libdir)/pkgconfig/ \ + "${ED}/${pcdir}" || die + + guile_slot_info + + local major="$(ver_cut 1 "${SLOT}")" + local minor="$(ver_cut 2 "${SLOT}")" + local idx="$((99999-(major*1000+minor)))" + newenvd - "50guile${idx}" <<-EOF + PKG_CONFIG_PATH="${pcdir}" + INFOPATH="${GUILE_INFODIR}" + EOF +} + +pkg_postinst() { + if has_version app-eselect/eselect-guile; then + eselect guile update # Nonfatal + fi + return 0 +} + +pkg_postrm() { + # A pkg_postinst for the replacing package will be called after. + if has_version app-eselect/eselect-guile \ + && ! [[ "${REPLACED_BY_VERSION}" ]]; then + eselect guile update # Nonfatal + fi + return 0 +} diff --git a/dev-scheme/guile/guile-3.0.10-r103.ebuild b/dev-scheme/guile/guile-3.0.10-r103.ebuild new file mode 100644 index 000000000000..60118d036259 --- /dev/null +++ b/dev-scheme/guile/guile-3.0.10-r103.ebuild @@ -0,0 +1,149 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic + +DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions" +HOMEPAGE="https://www.gnu.org/software/guile/" +SRC_URI="mirror://gnu/guile/${P}.tar.xz" + +LICENSE="LGPL-3+" +SLOT="$(ver_cut 1-2)" # See (guile)Parallel Installations. +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" + +IUSE="debug debug-malloc +deprecated +jit +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:= + dev-libs/libffi:= + dev-libs/libatomic_ops + dev-libs/libunistring:= + sys-libs/ncurses:= + sys-libs/readline:= + virtual/libcrypt:= + !dev-scheme/guile:12 +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + dev-build/libtool + sys-devel/gettext +" +IDEPEND=" + app-eselect/eselect-guile +" + +# guile generates ELF files without use of C or machine code +# It's false positive. bug #677600 +QA_PREBUILT='*[.]go' + +DOCS=( ABOUT-NLS AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS ) + +PATCHES=( + "${FILESDIR}"/${PN}-2.2.3-gentoo-sandbox.patch + "${FILESDIR}/${PN}-3.0-fix-32bit-BE.patch" + "${FILESDIR}/${PN}-3.0.10-backport-issue72913.patch" + "${FILESDIR}/${PN}-3.0.10-c23.patch" +) + +# Where to install data files. +GUILE_DATA="${EPREFIX}/usr/share/guile-data/${SLOT}" +GUILE_PCDIR="${EPREFIX}/usr/share/guile-data/${SLOT}/pkgconfig" +GUILE_INFODIR="${GUILE_DATA}"/info + +src_prepare() { + default + + # Needed for fix-32bit-BE.patch + eautoreconf +} + +src_configure() { + # See bug #676468 (may be able to drop this if we adapt fix-32bit-BE.patch)? + mv prebuilt/32-bit-big-endian{,.broken} || die + + # bug #944029 + append-cflags -std=gnu17 + + local -a myconf=( + --program-suffix="-${SLOT}" + --infodir="${GUILE_INFODIR}" + --with-pkgconfigdir="${GUILE_PCDIR}" + + --disable-error-on-warning + --disable-rpath + --disable-lto + --enable-posix + --without-libgmp-prefix + --without-libiconv-prefix + --without-libintl-prefix + --without-libreadline-prefix + --without-libunistring-prefix + $(use_enable debug guile-debug) + $(use_enable debug-malloc) + $(use_enable deprecated) + $(use_enable jit) + $(use_enable networking) + $(use_enable nls) + $(use_enable regex) + $(use_with threads) + ) + + econf "${myconf[@]}" +} + +# Akin to (and taken from) toolchain-autoconfs eclass +guile_slot_info() { + rm -f dir || die + + pushd "${D}/${GUILE_INFODIR}" >/dev/null || die + for f in *.info*; do + # Install convenience aliases for versioned Guile pages. + ln -s "$f" "${f/./-${SLOT}.}" || die + done + popd >/dev/null || die + + docompress "${GUILE_INFODIR}" +} + +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 + + mv "${ED}"/usr/share/aclocal/guile{,-"${SLOT}"}.m4 || die + find "${ED}" -name '*.la' -delete || die + + guile_slot_info + + local major="$(ver_cut 1 "${SLOT}")" + local minor="$(ver_cut 2 "${SLOT}")" + local idx="$((99999-(major*1000+minor)))" + newenvd - "50guile${idx}" <<-EOF + PKG_CONFIG_PATH="${GUILE_PCDIR}" + INFOPATH="${GUILE_INFODIR}" + EOF +} + +pkg_postinst() { + if has_version app-eselect/eselect-guile; then + eselect guile update # Nonfatal + fi + return 0 +} + +pkg_postrm() { + # A pkg_postinst for the replacing package will be called after. + if has_version app-eselect/eselect-guile \ + && ! [[ "${REPLACED_BY_VERSION}" ]]; then + eselect guile update # Nonfatal + fi + return 0 +} diff --git a/dev-scheme/guile/guile-3.0.11.ebuild b/dev-scheme/guile/guile-3.0.11.ebuild new file mode 100644 index 000000000000..9590f17c8b9f --- /dev/null +++ b/dev-scheme/guile/guile-3.0.11.ebuild @@ -0,0 +1,147 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit autotools flag-o-matic + +DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions" +HOMEPAGE="https://www.gnu.org/software/guile/" +SRC_URI="mirror://gnu/guile/${P}.tar.xz" + +LICENSE="LGPL-3+" +SLOT="$(ver_cut 1-2)" # See (guile)Parallel Installations. +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" + +IUSE="debug debug-malloc +deprecated +jit +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:= + dev-libs/libffi:= + dev-libs/libatomic_ops + dev-libs/libunistring:= + sys-libs/ncurses:= + sys-libs/readline:= + virtual/libcrypt:= + !dev-scheme/guile:12 +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + dev-build/libtool + sys-devel/gettext +" +IDEPEND=" + app-eselect/eselect-guile +" + +# guile generates ELF files without use of C or machine code +# It's false positive. bug #677600 +QA_PREBUILT='*[.]go' + +DOCS=( ABOUT-NLS AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS ) + +PATCHES=( + "${FILESDIR}"/${PN}-2.2.3-gentoo-sandbox.patch + "${FILESDIR}/${PN}-3.0-fix-32bit-BE.patch" +) + +# Where to install data files. +GUILE_DATA="${EPREFIX}/usr/share/guile-data/${SLOT}" +GUILE_PCDIR="${EPREFIX}/usr/share/guile-data/${SLOT}/pkgconfig" +GUILE_INFODIR="${GUILE_DATA}"/info + +src_prepare() { + default + + # Needed for fix-32bit-BE.patch + eautoreconf +} + +src_configure() { + # See bug #676468 (may be able to drop this if we adapt fix-32bit-BE.patch)? + mv prebuilt/32-bit-big-endian{,.broken} || die + + # bug #944029 + append-cflags -std=gnu17 + + local -a myconf=( + --program-suffix="-${SLOT}" + --infodir="${GUILE_INFODIR}" + --with-pkgconfigdir="${GUILE_PCDIR}" + + --disable-error-on-warning + --disable-rpath + --disable-lto + --enable-posix + --without-libgmp-prefix + --without-libiconv-prefix + --without-libintl-prefix + --without-libreadline-prefix + --without-libunistring-prefix + $(use_enable debug guile-debug) + $(use_enable debug-malloc) + $(use_enable deprecated) + $(use_enable jit) + $(use_enable networking) + $(use_enable nls) + $(use_enable regex) + $(use_with threads) + ) + + econf "${myconf[@]}" +} + +# Akin to (and taken from) toolchain-autoconfs eclass +guile_slot_info() { + rm -f dir || die + + pushd "${D}/${GUILE_INFODIR}" >/dev/null || die + for f in *.info*; do + # Install convenience aliases for versioned Guile pages. + ln -s "$f" "${f/./-${SLOT}.}" || die + done + popd >/dev/null || die + + docompress "${GUILE_INFODIR}" +} + +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 + + mv "${ED}"/usr/share/aclocal/guile{,-"${SLOT}"}.m4 || die + find "${ED}" -name '*.la' -delete || die + + guile_slot_info + + local major="$(ver_cut 1 "${SLOT}")" + local minor="$(ver_cut 2 "${SLOT}")" + local idx="$((99999-(major*1000+minor)))" + newenvd - "50guile${idx}" <<-EOF + PKG_CONFIG_PATH="${GUILE_PCDIR}" + INFOPATH="${GUILE_INFODIR}" + EOF +} + +pkg_postinst() { + if has_version app-eselect/eselect-guile; then + eselect guile update # Nonfatal + fi + return 0 +} + +pkg_postrm() { + # A pkg_postinst for the replacing package will be called after. + if has_version app-eselect/eselect-guile \ + && ! [[ "${REPLACED_BY_VERSION}" ]]; then + eselect guile update # Nonfatal + fi + return 0 +} diff --git a/dev-scheme/guile/metadata.xml b/dev-scheme/guile/metadata.xml new file mode 100644 index 000000000000..6121512a8346 --- /dev/null +++ b/dev-scheme/guile/metadata.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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> + <upstream> + <doc>https://www.gnu.org/software/guile/manual/html_node/index.html</doc> + <remote-id type="cpe">cpe:/a:gnu:guile</remote-id> + </upstream> + <slots> + <slot name="3.0"> + Guile effective version 3.0. + </slot> + <slot name="2.2"> + Guile effective version 2.2. + </slot> + </slots> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/jscheme/Manifest b/dev-scheme/jscheme/Manifest new file mode 100644 index 000000000000..c745a871a15d --- /dev/null +++ b/dev-scheme/jscheme/Manifest @@ -0,0 +1 @@ +DIST jscheme-7.2.tgz 2507622 BLAKE2B a468b040c414cd570b2e6331a2aaaa73983da2abd570525532562ca9a4caaa4c1027f5f46abaa40d117bd04b584e6183162e3195bc559cceea30c3ea0bae2872 SHA512 48aa1ce806e2dd9bd6797dce6e6569787ad9072f728a39a37310ec5604afdb3fda4ad56a721336d0be9e3c985333ff9dd31cdb809c095d503f54a0f477adc3c7 diff --git a/dev-scheme/jscheme/jscheme-7.2-r2.ebuild b/dev-scheme/jscheme/jscheme-7.2-r2.ebuild new file mode 100644 index 000000000000..ef59f2a98e06 --- /dev/null +++ b/dev-scheme/jscheme/jscheme-7.2-r2.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit java-pkg-2 + +DESCRIPTION="A Scheme dialect with a simple Java interface called Javadot notation" +HOMEPAGE="https://jscheme.sourceforge.net/jscheme/main.html" +SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tgz" + +LICENSE="Apache-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc" + +DEPEND=">=virtual/jdk-1.6:*" +RDEPEND=">=virtual/jre-1.6 + ${DEPEND}" + +src_compile() { + sh bin/make || die "make failed" +} + +src_install() { + java-pkg_dojar lib/*.jar + java-pkg_dolauncher ${PN} --main jscheme.REPL + use doc && dodoc -r doc +} diff --git a/dev-scheme/jscheme/metadata.xml b/dev-scheme/jscheme/metadata.xml new file mode 100644 index 000000000000..d4b6f08287d9 --- /dev/null +++ b/dev-scheme/jscheme/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> + JScheme is a dialect of Scheme with a very simple interface to Java, called + the Javadot notation . This notation provides a transparent access to all + Java classes, constructors, methods, and fields on the classpath. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/kawa/Manifest b/dev-scheme/kawa/Manifest new file mode 100644 index 000000000000..b63b50b53002 --- /dev/null +++ b/dev-scheme/kawa/Manifest @@ -0,0 +1 @@ +DIST Kawa-3.1.1.tar.gz 3216501 BLAKE2B abaea589c33ec01c49df9b376b43330a1246832428d64da2eded9899b06fb32ac5875112749f94e55b1d75ad628535b71dc41b8d7e0edf62ea7baabd20b8b182 SHA512 557fe8cc2eb7bea1e18dcbb0e4df6d82ed17e02724d55889591141b8db02245378bb0cd27acfc73e452cfbc0d6d1cbc50dd27b325fa437778eca5ce8db4211be diff --git a/dev-scheme/kawa/files/kawa-3.1.1-configure.ac-single_AM_INIT_AUTOMAKE.patch b/dev-scheme/kawa/files/kawa-3.1.1-configure.ac-single_AM_INIT_AUTOMAKE.patch new file mode 100644 index 000000000000..d7ecb85434f1 --- /dev/null +++ b/dev-scheme/kawa/files/kawa-3.1.1-configure.ac-single_AM_INIT_AUTOMAKE.patch @@ -0,0 +1,17 @@ +Repeated calls to AM_INIT_AUTOMAKE made fatal in 1.16.5: +https://git.savannah.gnu.org/cgit/automake.git/commit/?id=f4a3a70f69e1dbccb6578f39ef47835098a04624. + +https://bugs.gentoo.org/818094 +https://bugs.gentoo.org/827973 + +--- a/bin/configure.ac ++++ b/bin/configure.ac +@@ -4,8 +4,6 @@ AM_INIT_AUTOMAKE([foreign]) + AM_MAINTAINER_MODE + AC_CANONICAL_HOST + +-AM_INIT_AUTOMAKE +- + AC_EXEEXT + AC_OBJEXT + diff --git a/dev-scheme/kawa/kawa-3.1.1-r3.ebuild b/dev-scheme/kawa/kawa-3.1.1-r3.ebuild new file mode 100644 index 000000000000..d664cf5cdb4d --- /dev/null +++ b/dev-scheme/kawa/kawa-3.1.1-r3.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +JAVA_PKG_IUSE="source" + +inherit autotools java-pkg-2 + +DESCRIPTION="Java-based Scheme system & Language Framework" +HOMEPAGE="https://www.gnu.org/software/kawa/ + https://gitlab.com/kashell/Kawa/" +SRC_URI="https://gitlab.com/kashell/${PN^}/-/archive/${PV}/${PN^}-${PV}.tar.gz" +S="${WORKDIR}"/${PN^}-${PV} + +LICENSE="MIT public-domain jemacs? ( GPL-2 ) krl? ( GPL-2 )" +SLOT="0" +KEYWORDS="amd64" +IUSE="+awt +frontend jemacs krl +sax servlets +swing +xml" +RESTRICT="test" # fails + +COMMON_DEPEND=" + frontend? ( sys-libs/readline:0 ) + sax? ( dev-java/sax:0 ) + servlets? ( dev-java/javax-servlet-api:3.0 ) +" +DEPEND=" + ${COMMON_DEPEND} + || ( virtual/jdk:11 virtual/jdk:1.8 ) +" +RDEPEND=" + ${COMMON_DEPEND} + >=virtual/jre-1.8 +" + +PATCHES=( "${FILESDIR}"/${PN}-${PV}-configure.ac-single_AM_INIT_AUTOMAKE.patch ) + +src_prepare() { + default + + java-pkg-2_src_prepare + eautoreconf +} + +src_configure() { + local -a myconf=( + $(use_enable frontend kawa-frontend) + $(use_enable jemacs) + $(use_enable krl brl) + $(use_enable xml) + $(use_with awt) + $(use_with sax sax2) + --with-java-source="$(java-pkg_get-source)" + ) + + if use jemacs && ! use swing; then + einfo "Although the swing USE flag is disabled you chose to enable jemacs," + einfo "so swing is enabled anyway." + myconf+=( "--with-swing" ) + else + myconf+=( "$(use_with swing)" ) + fi + if use servlets; then + myconf+=( + "--with-servlet=$(java-pkg_getjar javax-servlet-api-3.0 javax-servlet-api.jar)" + ) + fi + + econf "${myconf[@]}" +} + +src_compile() { + emake -j1 +} + +src_install() { + use source && java-pkg_dosrc ./kawa/* ./gnu/* + java-pkg_newjar ./lib/kawa.jar + + java-pkg_dolauncher "kawa" --main kawa.repl + java-pkg_dolauncher "qexo" --main kawa.repl --pkg_args \ "--xquery" + use servlets && + java-pkg_dolauncher "kawa-cgi-servlet" --main gnu.kawa.servlet.CGIServletWrapper + use jemacs && + java-pkg_dolauncher "jemacs" --main gnu.jemacs.lang.ELisp + + einstalldocs + doinfo doc/kawa.info* + cp doc/kawa.man doc/kawa.1 || die + cp doc/qexo.man doc/qexo.1 || die + doman doc/*.1 +} diff --git a/dev-scheme/kawa/metadata.xml b/dev-scheme/kawa/metadata.xml new file mode 100644 index 000000000000..ba0311d9161c --- /dev/null +++ b/dev-scheme/kawa/metadata.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> + Kawa is a full Scheme implementation. It implements almost all of R5RS, + plus some extensions. By default, symbols are case sensitive. It is + completely written in Java. Scheme functions and files are automatically + compiled into Java byte-codes. Kawa does some optimizations, and the + compiled code runs at reasonable speed. + </longdescription> + <use> + <flag name="awt">Assume AWT is available</flag> + <flag name="frontend">Build "kawa" front-end program using + <pkg>sys-libs/readline</pkg> + </flag> + <flag name="jemacs">Build JEmacs</flag> + <flag name="krl">Build BRL emulation and KRL</flag> + <flag name="sax">Assume SAX2 is available with <pkg>dev-java/sax</pkg> + </flag> + <flag name="servlets">Build support for generating servlets with + Java servletapi</flag> + <flag name="swing">Assume Swing is available</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/metadata.xml b/dev-scheme/metadata.xml new file mode 100644 index 000000000000..56199b3a5bb7 --- /dev/null +++ b/dev-scheme/metadata.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<catmetadata> + <longdescription lang="en"> + The dev-scheme category contains libraries and utilities relevant to the + Scheme programming language. + </longdescription> + <longdescription lang="de"> + Die Kategorie dev-scheme enthält Bibliotheken und Werkzeuge für die + Programmiersprache Scheme. + </longdescription> + <longdescription lang="es"> + La categorÃa dev-scheme contiene librerÃas y utilidades referentes al + lenguaje de programación Scheme. + </longdescription> + <longdescription lang="ja"> + dev-schemeカテゴリーã«ã¯Schemeプãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžã«é–¢é€£ã—ãŸãƒ©ã‚¤ãƒ–ラリー㨠+ ユーティリティãŒå«ã¾ã‚Œã¾ã™ã€‚ + </longdescription> + <longdescription lang="nl"> + De dev-scheme categorie bevat bibliotheken en hulpmiddelen voor het gebruik + van de programmeertaal Scheme. + </longdescription> + <longdescription lang="vi"> + Nhóm dev-scheme chứa các thư viện và tiện Ãch liên quan + đến ngôn ngữ láºp trình Scheme. + </longdescription> + <longdescription lang="it"> + La categoria dev-scheme contiene librerie e utilità per il linguaggio di + programmazione Scheme. + </longdescription> + <longdescription lang="pt"> + A categoria dev-scheme contém bibliotecas e utilitários + referentes à linguagem de programação Scheme. + </longdescription> + <longdescription lang="pl"> + Kategoria dev-scheme zawiera biblioteki i narzÄ™dzia zwiÄ…zane z jÄ™zykiem + programowania Scheme. + </longdescription> +</catmetadata> diff --git a/dev-scheme/mit-scheme/Manifest b/dev-scheme/mit-scheme/Manifest new file mode 100644 index 000000000000..7bfa01d36351 --- /dev/null +++ b/dev-scheme/mit-scheme/Manifest @@ -0,0 +1 @@ +DIST mit-scheme-12.1-svm1-64le.tar.gz 88542947 BLAKE2B 07278da41c250924ff833933b7015e865a4dc8feea11a4e1b1647818cacf03fc25878cbe0aca3a8cf08adad5487c0f7aa5e5beb111ed46d09e8473ee01490eca SHA512 07e49b0f3919ad4ed85696766697615dc1720b4278c61d4aa6c3a1a92966d1e6fc7c9c7ca7db395d4e4279c5464639c80503bf4f6a8e51d2e951edc85a453dc9 diff --git a/dev-scheme/mit-scheme/files/mit-scheme-11.2-implicit-int.patch b/dev-scheme/mit-scheme/files/mit-scheme-11.2-implicit-int.patch new file mode 100644 index 000000000000..545ec49494f2 --- /dev/null +++ b/dev-scheme/mit-scheme/files/mit-scheme-11.2-implicit-int.patch @@ -0,0 +1,19 @@ +--- a/lib/include/termcap.c ++++ b/lib/include/termcap.c +@@ -144,7 +144,7 @@ int bufsize = 128; + # define NULL 0 + #endif + +-static ++static void + memory_out () + { + write (2, "Virtual memory exhausted\n", 25); +@@ -328,6 +328,7 @@ tgetst1 (ptr, area) + + char PC; + ++void + tputs (string, nlines, outfun) + char *string; + int nlines; diff --git a/dev-scheme/mit-scheme/files/mit-scheme-11.2-no-Werror.patch b/dev-scheme/mit-scheme/files/mit-scheme-11.2-no-Werror.patch new file mode 100644 index 000000000000..5b156ddc7a15 --- /dev/null +++ b/dev-scheme/mit-scheme/files/mit-scheme-11.2-no-Werror.patch @@ -0,0 +1,21 @@ +index a9c3e6f..04f90b5 100755 +--- a/microcode/configure ++++ b/microcode/configure +@@ -5482,7 +5482,7 @@ if test x"${GCC}" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler $flag" >&5 + $as_echo_n "checking for compiler $flag... " >&6; } + SAVED_CFLAGS=${CFLAGS} +- CFLAGS="${SAVED_CFLAGS} ${flag} -Werror" ++ CFLAGS="${SAVED_CFLAGS} ${flag}" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -10751,7 +10751,7 @@ for base in ${OPTIONAL_BASES}; do + OPTIONAL_OBJECTS="${OPTIONAL_OBJECTS} ${base}.o" + done + +-CFLAGS="${CFLAGS} ${CFLAGS_WERROR}" ++CFLAGS="${CFLAGS}" + LIARC_CFLAGS="${LIARC_CFLAGS} ${CFLAGS_WNOERROR}" + + diff --git a/dev-scheme/mit-scheme/metadata.xml b/dev-scheme/mit-scheme/metadata.xml new file mode 100644 index 000000000000..c5dedfb0a721 --- /dev/null +++ b/dev-scheme/mit-scheme/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + MIT/GNU Scheme is an implementation of the Scheme programming language, + providing an interpreter, compiler, source-code debugger, integrated + Emacs-like editor, and a large runtime library. MIT/GNU Scheme is best + suited to programming large applications with a rapid development cycle. + </longdescription> + <use> + <flag name="blowfish">Compile with blowfish encryption support</flag> + </use> + <upstream> + <bugs-to>https://savannah.gnu.org/bugs/?group=mit-scheme</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> 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 +} diff --git a/dev-scheme/owl-lisp/Manifest b/dev-scheme/owl-lisp/Manifest new file mode 100644 index 000000000000..4834c67e0890 --- /dev/null +++ b/dev-scheme/owl-lisp/Manifest @@ -0,0 +1,2 @@ +DIST owl-v0.2.1.tar.bz2 456751 BLAKE2B 15447cc71b633a97f48086a986c8015f1bc5664b993faa7f4537878fefb805d824c49174ef5a225e4cc870bb4c5b8d256cb887c83eba58d67c64bf5db6d2d7f9 SHA512 b69296e9be60ea4e8103c8100de9d02d00fc50e13624c87c1c4a78852b58aea403459f8b4a2f88826630e7204d58d522b58df489ce194c04e9424186309f5c8e +DIST owl-v0.2.2.tar.bz2 457461 BLAKE2B 5817899d013d2a073fe914380ca64fbaa4a264c707199a41db79452878c3437c8b99c40fe1f0346968c09aad90955eacca255a09a8f9c41e7c495e67187a1cf7 SHA512 decb8b70603b8abeb37168f9f55434a5496248f6f7f7018ce3ca802d5a3f0736a05e74defb93cb8652513e76b15dac2494c401a7ce26e2024743ae333194825c diff --git a/dev-scheme/owl-lisp/files/owl-lisp-0.2.1-make-no-test.patch b/dev-scheme/owl-lisp/files/owl-lisp-0.2.1-make-no-test.patch new file mode 100644 index 000000000000..34a4b8ab2288 --- /dev/null +++ b/dev-scheme/owl-lisp/files/owl-lisp-0.2.1-make-no-test.patch @@ -0,0 +1,10 @@ +--- a/Makefile ++++ b/Makefile +@@ -49,7 +49,6 @@ c/ol.c: fasl/ol.fasl + bin/ol: c/ol.c + # compile the real owl repl binary + $(CC) $(CFLAGS) $(LDFLAGS) -o bin/olp $? +- CC="$(CC)" LDFLAGS="$(LDFLAGS)" CFLAGS="$(CFLAGS)" sh tests/run all bin/olp + test '!' -f $@ || mv $@ bin/ol-old + mv bin/olp $@ + diff --git a/dev-scheme/owl-lisp/metadata.xml b/dev-scheme/owl-lisp/metadata.xml new file mode 100644 index 000000000000..0fa19e6ed859 --- /dev/null +++ b/dev-scheme/owl-lisp/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> + Owl Lisp is a simple programming language. The main motivation for + writing it was to get a portable system for writing standalone + programs in a subjectively pleasant dialect of LISP, which in this + case means a minimal core language and runtime, purely functional + operation and support for asynchronous evaluation. + </longdescription> + <upstream> + <bugs-to>https://gitlab.com/owl-lisp/owl/-/issues</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/owl-lisp/owl-lisp-0.2.1.ebuild b/dev-scheme/owl-lisp/owl-lisp-0.2.1.ebuild new file mode 100644 index 000000000000..569d3b931745 --- /dev/null +++ b/dev-scheme/owl-lisp/owl-lisp-0.2.1.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Purely functional dialect of Scheme" +HOMEPAGE="https://haltp.org/posts/owl.html + https://gitlab.com/owl-lisp/owl/" + +if [[ "${PV}" == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/owl-lisp/owl.git" +else + SRC_URI="https://gitlab.com/owl-lisp/owl/-/archive/v${PV}/owl-v${PV}.tar.bz2" + KEYWORDS="~amd64" + S="${WORKDIR}/owl-v${PV}" +fi + +LICENSE="MIT" +SLOT="0" + +PATCHES=( "${FILESDIR}"/${PN}-0.2.1-make-no-test.patch ) + +src_prepare() { + default + + sed -i 's|make bin/vm|$(MAKE) bin/vm|g' "${S}"/Makefile || die + + # Skip "tests/char-ready.sh", "does not work in background subshell". + rm tests/char-ready.sh || die +} + +src_compile(){ + emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" owl +} + +src_install() { + exeinto /usr/bin + doexe "${S}"/bin/ol + newexe "${S}"/bin/vm ovm + + doman "${S}"/doc/*.1 + + einstalldocs +} diff --git a/dev-scheme/owl-lisp/owl-lisp-0.2.2.ebuild b/dev-scheme/owl-lisp/owl-lisp-0.2.2.ebuild new file mode 100644 index 000000000000..2d6148517bdf --- /dev/null +++ b/dev-scheme/owl-lisp/owl-lisp-0.2.2.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Purely functional dialect of Scheme" +HOMEPAGE="https://haltp.org/posts/owl.html + https://gitlab.com/owl-lisp/owl/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://gitlab.com/owl-lisp/owl.git" +else + SRC_URI="https://gitlab.com/owl-lisp/owl/-/archive/v${PV}/owl-v${PV}.tar.bz2" + S="${WORKDIR}/owl-v${PV}" + + KEYWORDS="~amd64" +fi + +LICENSE="MIT" +SLOT="0" + +PATCHES=( "${FILESDIR}/${PN}-0.2.1-make-no-test.patch" ) + +src_prepare() { + default + + sed -i 's|make bin/vm|$(MAKE) bin/vm|g' "${S}"/Makefile || die + + # Skip "tests/char-ready.sh", "does not work in background subshell". + rm tests/char-ready.sh || die +} + +src_compile(){ + emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" owl +} + +src_install() { + exeinto /usr/bin + doexe bin/ol + newexe bin/vm ovm + + doman doc/*.1 + + einstalldocs +} diff --git a/dev-scheme/owl-lisp/owl-lisp-9999.ebuild b/dev-scheme/owl-lisp/owl-lisp-9999.ebuild new file mode 100644 index 000000000000..b1789ff9873e --- /dev/null +++ b/dev-scheme/owl-lisp/owl-lisp-9999.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Purely functional dialect of Scheme" +HOMEPAGE="https://haltp.org/posts/owl.html + https://gitlab.com/owl-lisp/owl/" + +if [[ "${PV}" == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/owl-lisp/owl.git" +else + SRC_URI="https://gitlab.com/owl-lisp/owl/-/archive/v${PV}/owl-v${PV}.tar.bz2" + KEYWORDS="~amd64" + S="${WORKDIR}/owl-v${PV}" +fi + +LICENSE="MIT" +SLOT="0" + +PATCHES=( "${FILESDIR}"/${PN}-0.2.1-make-no-test.patch ) + +src_prepare() { + default + + # Skip "tests/char-ready.sh", "does not work in background subshell". + rm tests/char-ready.sh || die +} + +src_compile(){ + emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" owl +} + +src_install() { + exeinto /usr/bin + doexe "${S}"/bin/ol + newexe "${S}"/bin/vm ovm + + doman "${S}"/doc/*.1 + + einstalldocs +} diff --git a/dev-scheme/racket/Manifest b/dev-scheme/racket/Manifest new file mode 100644 index 000000000000..e9af57293d42 --- /dev/null +++ b/dev-scheme/racket/Manifest @@ -0,0 +1,8 @@ +DIST racket-8.16-src-builtpkgs.tgz 157879458 BLAKE2B a357c311d3a2ebf80e59ba53de74bca43fe0d6862fb02dbb20ff920cfe8608209cf0c37dd6692b83ee41cfb4f9ffce41aad6d5cb84e7f93d67a86e4f390a8fbf SHA512 dea12ce93312f9ff9b4da2071a7e4b386b2364d8512efe09c092750d72d89deedb432f14e7c03d1328b2d0555715773d095dfdd6cf5ee04e0cf558dc4e6a0fa4 +DIST racket-8.17-src-builtpkgs.tgz 158087574 BLAKE2B 6bc57ad530cb6b203ee1efef8de7357a3963d8529ab7605e28cf3312cdfe3c709294fbe9e594737998f332943f03d13864fe6f036f1e1f23d465f47c72a01371 SHA512 1fa4bf40e38b2e40cd2b83ed0972f88f74de7e4d108cdfa205c5e29cf59cb0ea54cb59d736b87216a2ab1509fc36ab9fa66e9f37d401015523abce00c1f412d8 +DIST racket-9.1-src-builtpkgs.tgz 161575256 BLAKE2B 7bc65200446b65b5801eb1c3ec0f11d4f4b4a3164588e4836405f7931d0131f74a3c966c88eeed581a2270fb9d6863aa96245e29236f2f87e3f497cc1f02e47c SHA512 6cbce471327fa3adac8bdac7ff3f7529205e0175bac367605e6c8ba55fd7f87bdfe52d633797a6868132daed37cb02470216d4c3e22c9ecef6fa9219531451fc +DIST racket-9.2-src-builtpkgs.tgz 163124367 BLAKE2B 3edb03782184856add67bddb5620743db8a93f0991aa4f3a02a271858558d094e26d3492828defe0ded0e778ee2a72e2cef10cf2b1b4112dddb5160378bebb08 SHA512 4765f6b69aad2ded29012fcc8c2ac05a4c7f1a04320119436b2101d39646f2f8facac3f502cc68d48643cd3f78bfca359725a76d3875fc1d80812f1069229a04 +DIST racket-minimal-8.16-src-builtpkgs.tgz 23517703 BLAKE2B 623c7d879e9d7300fe14926bc2302e635ea03a33b2f9125d0abec7c96eeae46836d9191677fef9843273a6cf3298eff8bf93a6a6519ef1a62eaa14ef1cdf6ebd SHA512 c3852cda6ad2edbb53a9a14841f4d2f2b6eaea54f12805e01758bc38e277406c9f2eb831a1a6d8f76782541031a25d70d4157a6eb9e14847d40ea34b46dc2cb8 +DIST racket-minimal-8.17-src-builtpkgs.tgz 23555413 BLAKE2B dcc71f5e45829b6a0c847241e073b97bb71c8658e5b454448d856d118f22279698645cb0a942119b2de336d0bfff76f8f6b71b2491a9e5f723bf02941e85c74a SHA512 f426d6bdc6fbb8aec96156e003d5d95a1e032468673aca0914be60e1f215417e7fb4e240762b93db74ffd928c4330ecd4467fd1b5f6f40abb12615ce94be8bb9 +DIST racket-minimal-9.1-src-builtpkgs.tgz 23823956 BLAKE2B b930d90fa484c8c2b2c569fa58a2c58b059f00f7c1b3041a0dad435aa817be6444c1693ddf39ca6239a72545fe29e5451b42335206e330123635fb0252b62ffd SHA512 50e0f5ed9f74b9667caa67be7cdd4e85d302886f91617773e4531d6f0f0553a5ffda4583514e5a2a19843ce649e84436d15d1c4f01aec526dfca359909ae48cd +DIST racket-minimal-9.2-src-builtpkgs.tgz 24142926 BLAKE2B 53a055f0024e9c9765c7474642ad353e0a3d32e9784b48f8a375cf6bb09a218f5b3e112ebd389385f2c60d7431bc788782f552d115595ac29ae1a3b79306c50b SHA512 d38b9e665db19f69173e2cf5403a7d87f8003eaf86581fafa9ed977293a16ffb7e6955f589ea21deb56a11f79f90b4f9a189be434364e2be35a7fb6d215bc358 diff --git a/dev-scheme/racket/files/racket-8.15-gcc15.patch b/dev-scheme/racket/files/racket-8.15-gcc15.patch new file mode 100644 index 000000000000..4e9ae88c22ea --- /dev/null +++ b/dev-scheme/racket/files/racket-8.15-gcc15.patch @@ -0,0 +1,21 @@ +https://bugs.gentoo.org/944149 +https://github.com/racket/racket/issues/5183 +https://github.com/racket/racket/commit/72b83f784ad1c6fb6ee3fb7b31df165bebfb21ed + +From 72b83f784ad1c6fb6ee3fb7b31df165bebfb21ed Mon Sep 17 00:00:00 2001 +From: Matthew Flatt <mflatt@racket-lang.org> +Date: Sun, 19 Jan 2025 11:03:31 -0700 +Subject: [PATCH] rktio: add missing signal-handler argument + +Closes #5183 +--- a/rktio/rktio_process.c ++++ b/rktio/rktio_process.c +@@ -390,7 +390,7 @@ void centralized_done_with_process_id(int pid, int in_group) + pthread_mutex_unlock(&child_wait_lock); + } + +-static void got_sigchld() ++static void got_sigchld(int ignored) + { + /* handle doesn't need to to anything, since sigwait() + in a thread does the work. */ diff --git a/dev-scheme/racket/metadata.xml b/dev-scheme/racket/metadata.xml new file mode 100644 index 000000000000..0dd1f02e32e0 --- /dev/null +++ b/dev-scheme/racket/metadata.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + Grow your Program - Racket's interactive mode encourages + experimentation, and quick scripts easily compose into larger + systems. Small scripts and large systems both benefit from native-code + JIT compilation. When a system gets too big to keep in your head, you + can add static types. Grow your Language - extend Racket whenever you + need to. Mold it to better suit your tasks without sacrificing + interoperability with existing libraries and without having to modify + the tool chain. When less is more, you can remove parts of a language or + start over and build a new one. Grow your Skills - whether you're just + starting out, want to know more about programming language applications + or models, looking to expand your horizons, or ready to dive into + research, Racket can help you become a better programmer and system + builder. + </longdescription> + <upstream> + <bugs-to>https://github.com/racket/racket/issues/</bugs-to> + <remote-id type="cpe">cpe:/a:racket-lang:racket</remote-id> + </upstream> + <use> + <flag name="chez"> + Build Racket on Chez (Racket CS) + </flag> + <flag name="futures"> + Enable racket/future library for fine-grained hardware parallelism + </flag> + <flag name="ncurses"> + Add ncurses support for expeditor (REPL expression editor) + </flag> + <flag name="places"> + Enable racket/place library for share-nothing parallelism and + message-passing communication. Compared to futures, places are + heavyweight, but they have a simpler performance model. + </flag> + <flag name="threads"> + Enable support for green threads + </flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/racket/racket-8.16.ebuild b/dev-scheme/racket/racket-8.16.ebuild new file mode 100644 index 000000000000..028f894f454c --- /dev/null +++ b/dev-scheme/racket/racket-8.16.ebuild @@ -0,0 +1,209 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit check-reqs desktop optfeature toolchain-funcs readme.gentoo-r1 + +DESCRIPTION="General purpose, multi-paradigm Lisp-Scheme programming language" +HOMEPAGE="https://racket-lang.org/ + https://github.com/racket/racket/" + +SRC_URI=" + minimal? ( https://download.racket-lang.org/installers/${PV}/${PN}-minimal-${PV}-src-builtpkgs.tgz ) + !minimal? ( https://download.racket-lang.org/installers/${PV}/${P}-src-builtpkgs.tgz ) +" +S="${WORKDIR}/${P}/src" + +# See https://blog.racket-lang.org/2019/11/completing-racket-s-relicensing-effort.html +LICENSE="|| ( MIT Apache-2.0 ) chez? ( Apache-2.0 ) !chez? ( LGPL-3 )" + +# Bytecode generated by Racket is not compatible between versions. +# The bytecode version should be denoted by SLOT, in most cases +# PV == SLOT but this has to be checked carefully and in cases +# where we use _p, _pre, etc it will have to be set manually. +SLOT="0/${PV}" + +KEYWORDS="amd64 ~arm ~ppc ppc64 x86" +IUSE="+chez +doc +futures iconv +jit minimal ncurses +places +threads" +# * "chez" - see bug #809785 re chez/threads +# * "iconv" - required for "doc" +REQUIRED_USE=" + chez? ( futures places ) futures? ( jit threads ) places? ( threads ) + doc? ( iconv ) +" + +RDEPEND=" + dev-db/sqlite:3 + dev-libs/libffi:= + ncurses? ( + sys-libs/ncurses:= + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + doc? ( + >=media-libs/libjpeg-turbo-3.0.3 + dev-libs/glib:2 + media-libs/fontconfig + x11-libs/cairo + x11-libs/pango + ) +" + +CHECKREQS_DISK_BUILD="1700M" +# "mred" and "mzscheme" are binaries generated by Racket, not CC +QA_FLAGS_IGNORED="usr/bin/mred usr/bin/mzscheme" + +DOC_CONTENTS=" +If you wish to use sys-libs/readline instead of dev-libs/libedit +for readline-like features in the Racket's REPL you can install +the package 'readline-gpl' using raco, Racket's package manager +https://pkgs.racket-lang.org/package/readline-gpl +" + +# Package database files (for pkg_preinst & pkg_config) +PKGDB=( + /usr/share/racket/info-cache.rktd + /usr/share/racket/links.rktd + /usr/share/racket/pkgs/pkgs.rktd +) + +PATCHES=( "${FILESDIR}/racket-8.15-gcc15.patch" ) + +src_prepare() { + # Prepare the environment. + unset PLTADDONDIR PLTCOLLECTS PLTCONFIGDIR PLTUSERHOME + + default + + # Remove bundled libffi. + rm -r "${S}/bc/foreign/libffi" \ + || die "failed to remove bundled libffi" +} + +src_configure() { + # Compilation of Zuo does not respect the autoconf configuration. + tc-export CC + + einfo "Configuring Zuo in ${S}/zuo" + pushd "${S}/zuo" >/dev/null || die + econf + popd >/dev/null || die + + einfo "Configuring Racket in ${S}" + # Libtool: + # According to vapier, we should use the bundled libtool + # such that we don't preclude cross-compile. + # Thus don't use --enable-lt=/usr/bin/libtool + # Backend: + # --enable-bc builds Racket w/o chez backend + # C Libraries: + # --enable-libs & --disable-shared is the way to build + # .a files that are needed to embed Racket into programs + # https://docs.racket-lang.org/inside/cs-embedding.html + local -a myconf=( + --disable-shared + --disable-strip + --docdir="${EPREFIX}/usr/share/doc/${PF}" + --enable-libs + $(usex chez "--enable-cs --enable-csonly" "--enable-bc --enable-bconly") + $(use_enable doc docs) + $(use_enable iconv) + $(use_enable ncurses curses) + ) + + # Some options are togglable only for the BC version (are forced in CS) + if ! use chez ; then + myconf+=( + --enable-float + --enable-foreign + --enable-gracket + --enable-libffi + $(use_enable futures) + $(use_enable jit) + $(use_enable places) + $(use_enable threads pthread) + ) + fi + + econf "${myconf[@]}" +} + +src_compile() { + # Compile Racket. + CC_FOR_BUILD="$(tc-getCC)" default + + # Recompile Zuo with optimizations. + emake -C zuo +} + +src_install() { + # Install Racket. + default + + # Install Zuo. + emake -C zuo DESTDIR="${ED}" install + + # raco needs decompressed files for packages doc installation, bug #662424 + if use doc ; then + docompress -x "/usr/share/doc/${PF}" + fi + + # Create missing desktop files and icon. + if ! use minimal ; then + newicon "${ED}/usr/share/racket/drracket-exe-icon.png" racket.png + + make_desktop_entry "gracket" "GRacket" "racket" "Development;Education;" + make_desktop_entry "plt-games" "PLT Games" "racket" "Education;Game;" + fi + + readme.gentoo_create_doc +} + +pkg_preinst() { + # If we are merging the same SLOT check if package + # database files exist and do not overwrite them + if has_version "${CATEGORY}/${PN}:${SLOT}" ; then + echo "We are installing the same SLOT: ${SLOT}" + + local rktd + for rktd in "${PKGDB[@]}" ; do + if [[ -f "${EROOT}/${rktd}" ]] && [[ -f "${ED}/${rktd}" ]] ; then + einfo "Keeping old file: ${rktd}" + + mv "${ED}/${rktd}" "${ED}/${rktd}.bak" \ + || die "failed to create a backup of ${rktd}" + + cp "${EROOT}/${rktd}" "${ED}/${rktd}" \ + || die "failed to create a copy of ${rktd}" + fi + done + fi +} + +get_outsiders() { + racket -l raco -- pkg show -i | grep 'link' | sed 's|link.*||g' +} + +pkg_postinst() { + # If we have any pkgs not included in Racket main distribution (outsiders), + # then we have to re-setup them or during installation other pkgs will want + # to recompile parts of "outsider" pkgs they depend upon (and fail). + local -a outsiders=( $(get_outsiders) ) + + if [[ -n "${outsiders[@]}" ]] ; then + ebegin "Running \"raco setup\" for outsider packages" + echo "Outsiders: ${outsiders[@]}" + + raco setup --all-users --force --no-docs --no-user --pkgs "${outsiders[@]}" + eend 0 # do not fail + fi + + optfeature "readline editing features in REPL" dev-libs/libedit + optfeature "generating PDF files using Scribble" dev-texlive/texlive-fontsextra + + readme.gentoo_print_elog +} diff --git a/dev-scheme/racket/racket-8.17.ebuild b/dev-scheme/racket/racket-8.17.ebuild new file mode 100644 index 000000000000..336c4bf9e357 --- /dev/null +++ b/dev-scheme/racket/racket-8.17.ebuild @@ -0,0 +1,211 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit check-reqs desktop dot-a optfeature toolchain-funcs readme.gentoo-r1 + +DESCRIPTION="General purpose, multi-paradigm Lisp-Scheme programming language" +HOMEPAGE="https://racket-lang.org/ + https://github.com/racket/racket/" + +SRC_URI=" + minimal? ( https://download.racket-lang.org/installers/${PV}/${PN}-minimal-${PV}-src-builtpkgs.tgz ) + !minimal? ( https://download.racket-lang.org/installers/${PV}/${P}-src-builtpkgs.tgz ) +" +S="${WORKDIR}/${P}/src" + +# See https://blog.racket-lang.org/2019/11/completing-racket-s-relicensing-effort.html +LICENSE="|| ( MIT Apache-2.0 ) chez? ( Apache-2.0 ) !chez? ( LGPL-3 )" + +# Bytecode generated by Racket is not compatible between versions. +# The bytecode version should be denoted by SLOT, in most cases +# PV == SLOT but this has to be checked carefully and in cases +# where we use _p, _pre, etc it will have to be set manually. +SLOT="0/${PV}" + +KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86" +IUSE="+chez +doc +futures iconv +jit minimal ncurses +places +threads" +# * "chez" - see bug #809785 re chez/threads +# * "iconv" - required for "doc" +REQUIRED_USE=" + chez? ( futures places ) futures? ( jit threads ) places? ( threads ) + doc? ( iconv ) +" + +RDEPEND=" + dev-db/sqlite:3 + dev-libs/libffi:= + ncurses? ( + sys-libs/ncurses:= + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + doc? ( + >=media-libs/libjpeg-turbo-3.0.3 + dev-libs/glib:2 + media-libs/fontconfig + x11-libs/cairo + x11-libs/pango + ) +" + +CHECKREQS_DISK_BUILD="1700M" + +# "mred" and "mzscheme" are binaries generated by Racket, not CC +QA_FLAGS_IGNORED="usr/bin/mred usr/bin/mzscheme" + +DOC_CONTENTS=" +If you wish to use sys-libs/readline instead of dev-libs/libedit +for readline-like features in the Racket's REPL you can install +the package 'readline-gpl' using raco, Racket's package manager +https://pkgs.racket-lang.org/package/readline-gpl +" + +# Package database files (for pkg_preinst & pkg_config) +PKGDB=( + /usr/share/racket/info-cache.rktd + /usr/share/racket/links.rktd + /usr/share/racket/pkgs/pkgs.rktd +) + +src_prepare() { + # Prepare the environment. + unset PLTADDONDIR PLTCOLLECTS PLTCONFIGDIR PLTUSERHOME + + default + + # Remove bundled libffi. + rm -r "${S}/bc/foreign/libffi" \ + || die "failed to remove bundled libffi" +} + +src_configure() { + # Compilation of Zuo does not respect the autoconf configuration. + tc-export CC + + einfo "Configuring Zuo in ${S}/zuo" + pushd "${S}/zuo" >/dev/null || die + econf + popd >/dev/null || die + + einfo "Configuring Racket in ${S}" + # Libtool: + # According to vapier, we should use the bundled libtool + # such that we don't preclude cross-compile. + # Thus don't use --enable-lt=/usr/bin/libtool + # Backend: + # --enable-bc builds Racket w/o chez backend + # C Libraries: + # --enable-libs & --disable-shared is the way to build + # .a files that are needed to embed Racket into programs + # https://docs.racket-lang.org/inside/cs-embedding.html + lto-guarantee-fat + local -a myconf=( + --disable-shared + --disable-strip + --docdir="${EPREFIX}/usr/share/doc/${PF}" + --enable-libs + $(usex chez "--enable-cs --enable-csonly" "--enable-bc --enable-bconly") + $(use_enable doc docs) + $(use_enable iconv) + $(use_enable ncurses curses) + ) + + # Some options are togglable only for the BC version (are forced in CS) + if ! use chez ; then + myconf+=( + --enable-float + --enable-foreign + --enable-gracket + --enable-libffi + $(use_enable futures) + $(use_enable jit) + $(use_enable places) + $(use_enable threads pthread) + ) + fi + + econf "${myconf[@]}" +} + +src_compile() { + # Compile Racket. + CC_FOR_BUILD="$(tc-getCC)" default + + # Recompile Zuo with optimizations. + emake -C zuo +} + +src_install() { + # Install Racket. + default + + # Install Zuo. + emake -C zuo DESTDIR="${ED}" install + + strip-lto-bytecode + + # raco needs decompressed files for packages doc installation, bug #662424 + if use doc ; then + docompress -x "/usr/share/doc/${PF}" + fi + + # Create missing desktop files and icon. + if ! use minimal ; then + newicon "${ED}/usr/share/racket/drracket-exe-icon.png" racket.png + + make_desktop_entry "gracket" "GRacket" "racket" "Development;Education;" + make_desktop_entry "plt-games" "PLT Games" "racket" "Education;Game;" + fi + + readme.gentoo_create_doc +} + +pkg_preinst() { + # If we are merging the same SLOT check if package + # database files exist and do not overwrite them + if has_version "${CATEGORY}/${PN}:${SLOT}" ; then + echo "We are installing the same SLOT: ${SLOT}" + + local rktd="" + for rktd in "${PKGDB[@]}" ; do + if [[ -f "${EROOT}/${rktd}" ]] && [[ -f "${ED}/${rktd}" ]] ; then + einfo "Keeping old file: ${rktd}" + + mv "${ED}/${rktd}" "${ED}/${rktd}.bak" \ + || die "failed to create a backup of ${rktd}" + + cp "${EROOT}/${rktd}" "${ED}/${rktd}" \ + || die "failed to create a copy of ${rktd}" + fi + done + fi +} + +get_outsiders() { + racket -l raco -- pkg show -i | grep 'link' | sed 's|link.*||g' +} + +pkg_postinst() { + # If we have any pkgs not included in Racket main distribution (outsiders), + # then we have to re-setup them or during installation other pkgs will want + # to recompile parts of "outsider" pkgs they depend upon (and fail). + local -a outsiders=( $(get_outsiders) ) + + if [[ -n "${outsiders[@]}" ]] ; then + ebegin "Running \"raco setup\" for outsider packages" + echo "Outsiders: ${outsiders[@]}" + + raco setup --all-users --force --no-docs --no-user --pkgs "${outsiders[@]}" + eend 0 # do not fail + fi + + optfeature "readline editing features in REPL" dev-libs/libedit + optfeature "generating PDF files using Scribble" dev-texlive/texlive-fontsextra + + readme.gentoo_print_elog +} diff --git a/dev-scheme/racket/racket-9.1.ebuild b/dev-scheme/racket/racket-9.1.ebuild new file mode 100644 index 000000000000..a8b42616beb8 --- /dev/null +++ b/dev-scheme/racket/racket-9.1.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit check-reqs desktop dot-a optfeature toolchain-funcs readme.gentoo-r1 + +DESCRIPTION="General purpose, multi-paradigm Lisp-Scheme programming language" +HOMEPAGE="https://racket-lang.org/ + https://github.com/racket/racket/" + +SRC_URI=" + minimal? ( https://download.racket-lang.org/installers/${PV}/${PN}-minimal-${PV}-src-builtpkgs.tgz ) + !minimal? ( https://download.racket-lang.org/installers/${PV}/${P}-src-builtpkgs.tgz ) +" +S="${WORKDIR}/${P}/src" + +# See https://blog.racket-lang.org/2019/11/completing-racket-s-relicensing-effort.html +LICENSE="|| ( MIT Apache-2.0 ) chez? ( Apache-2.0 ) !chez? ( LGPL-3 )" + +# Bytecode generated by Racket is not compatible between versions. +# The bytecode version should be denoted by SLOT, in most cases +# PV == SLOT but this has to be checked carefully and in cases +# where we use _p, _pre, etc it will have to be set manually. +SLOT="0/${PV}" + +KEYWORDS="amd64 ~arm ~ppc ~ppc64 ~x86" +IUSE="+chez +doc +futures iconv +jit minimal ncurses +places +threads" + +# * "chez" - see bug #809785 re chez/threads +# * "iconv" - required for "doc" +REQUIRED_USE=" + chez? ( futures places ) futures? ( jit threads ) places? ( threads ) + doc? ( iconv ) +" + +RDEPEND=" + dev-db/sqlite:3 + dev-libs/libffi:= + ncurses? ( + sys-libs/ncurses:= + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + doc? ( + >=media-libs/libjpeg-turbo-3.0.3 + dev-libs/glib:2 + media-libs/fontconfig + x11-libs/cairo + x11-libs/pango + ) +" + +CHECKREQS_DISK_BUILD="1700M" + +# "mred" and "mzscheme" are binaries generated by Racket, not CC +QA_FLAGS_IGNORED="usr/bin/mred usr/bin/mzscheme" + +DOC_CONTENTS="If you wish to use sys-libs/readline instead of dev-libs/libedit +for readline-like features in the Racket's REPL you can install +the package 'readline-gpl' using raco, Racket's package manager +https://pkgs.racket-lang.org/package/readline-gpl" + +# Package database files (for pkg_preinst & pkg_config) +PKGDB=( + /usr/share/racket/info-cache.rktd + /usr/share/racket/links.rktd + /usr/share/racket/pkgs/pkgs.rktd +) + +src_prepare() { + # Prepare the environment. + unset PLTADDONDIR PLTCOLLECTS PLTCONFIGDIR PLTUSERHOME + # Remove bundled libffi. + rm -r "${S}/bc/foreign/libffi" || die "failed to remove bundled libffi" + + default +} + +src_configure() { + # Compilation of Zuo does not respect the autoconf configuration. + tc-export CC + + lto-guarantee-fat + + einfo "Configuring Zuo in ${S}/zuo" + pushd "${S}/zuo" >/dev/null || die + econf + popd >/dev/null || die + + einfo "Configuring Racket in ${S}" + # Libtool: + # According to vapier, we should use the bundled libtool + # such that we don't preclude cross-compile. + # Thus don't use --enable-lt=/usr/bin/libtool + # Backend: + # --enable-bc builds Racket w/o chez backend + # C Libraries: + # --enable-libs & --disable-shared is the way to build + # .a files that are needed to embed Racket into programs + # https://docs.racket-lang.org/inside/cs-embedding.html + local -a myconf=( + --disable-shared + --disable-strip + --docdir="${EPREFIX}/usr/share/doc/${PF}" + --enable-libs + $(usex chez "--enable-cs --enable-csonly" "--enable-bc --enable-bconly") + $(use_enable doc docs) + $(use_enable iconv) + $(use_enable ncurses curses) + ) + # Some options are togglable only for the BC version (are forced in CS) + if ! use chez ; then + myconf+=( + --enable-float + --enable-foreign + --enable-gracket + --enable-libffi + $(use_enable futures) + $(use_enable jit) + $(use_enable places) + $(use_enable threads pthread) + ) + fi + econf "${myconf[@]}" +} + +src_compile() { + # Compile Racket. + CC_FOR_BUILD="$(tc-getCC)" default + + # Recompile Zuo with optimizations. + emake -C zuo +} + +src_install() { + # Install Racket. + default + + # Install Zuo. + emake -C zuo DESTDIR="${ED}" install + + strip-lto-bytecode + + # raco needs decompressed files for packages doc installation, bug #662424 + if use doc ; then + docompress -x "/usr/share/doc/${PF}" + fi + + # Create missing desktop files and icon. + if ! use minimal ; then + newicon "${ED}/usr/share/racket/drracket-exe-icon.png" racket.png + + make_desktop_entry "gracket" "GRacket" "racket" "Development;Education;" + make_desktop_entry "plt-games" "PLT Games" "racket" "Education;Game;" + fi + + readme.gentoo_create_doc +} + +pkg_preinst() { + # If we are merging the same SLOT check if the package database files + # (see "PKGDB" var) exist and do not overwrite them. + if has_version "${CATEGORY}/${PN}:${SLOT}" ; then + echo "We are installing the same SLOT: ${SLOT}" + + local rktd="" + for rktd in "${PKGDB[@]}" ; do + if [[ -f "${EROOT}/${rktd}" ]] && [[ -f "${ED}/${rktd}" ]] ; then + einfo "Keeping old file: ${rktd}" + + mv "${ED}/${rktd}" "${ED}/${rktd}.bak" \ + || die "failed to create a backup of ${rktd}" + + cp "${EROOT}/${rktd}" "${ED}/${rktd}" \ + || die "failed to create a copy of ${rktd}" + fi + done + fi +} + +get_outsiders() { + racket -l raco -- pkg show -i | grep 'link' | sed 's|link.*||g' +} + +pkg_postinst() { + # If we have any pkgs not included in Racket main distribution (outsiders), + # then we have to re-setup them or during installation other pkgs will want + # to recompile parts of "outsider" pkgs they depend upon (and fail). + local -a outsiders=( $(get_outsiders) ) + + if [[ -n "${outsiders[@]}" ]] ; then + ebegin "Running \"raco setup\" for outsider packages" + echo "Outsiders: ${outsiders[@]}" + + raco setup --all-users --force --no-docs --no-user --pkgs "${outsiders[@]}" + eend 0 # do not fail + fi + + optfeature "readline editing features in REPL" dev-libs/libedit + optfeature "generating PDF files using Scribble" dev-texlive/texlive-fontsextra + + readme.gentoo_print_elog +} diff --git a/dev-scheme/racket/racket-9.2.ebuild b/dev-scheme/racket/racket-9.2.ebuild new file mode 100644 index 000000000000..f0d1f8b3f8b9 --- /dev/null +++ b/dev-scheme/racket/racket-9.2.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit check-reqs desktop dot-a optfeature toolchain-funcs readme.gentoo-r1 + +DESCRIPTION="General purpose, multi-paradigm Lisp-Scheme programming language" +HOMEPAGE="https://racket-lang.org/ + https://github.com/racket/racket/" + +SRC_URI=" + minimal? ( https://download.racket-lang.org/installers/${PV}/${PN}-minimal-${PV}-src-builtpkgs.tgz ) + !minimal? ( https://download.racket-lang.org/installers/${PV}/${P}-src-builtpkgs.tgz ) +" +S="${WORKDIR}/${P}/src" + +# See https://blog.racket-lang.org/2019/11/completing-racket-s-relicensing-effort.html +LICENSE="|| ( MIT Apache-2.0 ) chez? ( Apache-2.0 ) !chez? ( LGPL-3 )" + +# Bytecode generated by Racket is not compatible between versions. +# The bytecode version should be denoted by SLOT, in most cases +# PV == SLOT but this has to be checked carefully and in cases +# where we use _p, _pre, etc it will have to be set manually. +SLOT="0/${PV}" + +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" +IUSE="+chez +doc +futures iconv +jit minimal ncurses +places +threads" + +# * "chez" - see bug #809785 re chez/threads +# * "iconv" - required for "doc" +REQUIRED_USE=" + chez? ( futures places ) futures? ( jit threads ) places? ( threads ) + doc? ( iconv ) +" + +RDEPEND=" + dev-db/sqlite:3 + dev-libs/libffi:= + ncurses? ( + sys-libs/ncurses:= + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + doc? ( + >=media-libs/libjpeg-turbo-3.0.3 + dev-libs/glib:2 + media-libs/fontconfig + x11-libs/cairo + x11-libs/pango + ) +" + +CHECKREQS_DISK_BUILD="1700M" + +# "mred" and "mzscheme" are binaries generated by Racket, not CC +QA_FLAGS_IGNORED="usr/bin/mred usr/bin/mzscheme" + +DOC_CONTENTS="If you wish to use sys-libs/readline instead of dev-libs/libedit +for readline-like features in the Racket's REPL you can install +the package 'readline-gpl' using raco, Racket's package manager +https://pkgs.racket-lang.org/package/readline-gpl" + +# Package database files (for pkg_preinst & pkg_config) +PKGDB=( + /usr/share/racket/info-cache.rktd + /usr/share/racket/links.rktd + /usr/share/racket/pkgs/pkgs.rktd +) + +src_prepare() { + # Prepare the environment. + unset PLTADDONDIR PLTCOLLECTS PLTCONFIGDIR PLTUSERHOME + # Remove bundled libffi. + rm -r "${S}/bc/foreign/libffi" || die "failed to remove bundled libffi" + + default +} + +src_configure() { + # Compilation of Zuo does not respect the autoconf configuration. + tc-export CC + + lto-guarantee-fat + + einfo "Configuring Zuo in ${S}/zuo" + pushd "${S}/zuo" >/dev/null || die + econf + popd >/dev/null || die + + einfo "Configuring Racket in ${S}" + # Libtool: + # According to vapier, we should use the bundled libtool + # such that we don't preclude cross-compile. + # Thus don't use --enable-lt=/usr/bin/libtool + # Backend: + # --enable-bc builds Racket w/o chez backend + # C Libraries: + # --enable-libs & --disable-shared is the way to build + # .a files that are needed to embed Racket into programs + # https://docs.racket-lang.org/inside/cs-embedding.html + local -a myconf=( + --disable-shared + --disable-strip + --docdir="${EPREFIX}/usr/share/doc/${PF}" + --enable-libs + $(usex chez "--enable-cs --enable-csonly" "--enable-bc --enable-bconly") + $(use_enable doc docs) + $(use_enable iconv) + $(use_enable ncurses curses) + ) + # Some options are togglable only for the BC version (are forced in CS) + if ! use chez ; then + myconf+=( + --enable-float + --enable-foreign + --enable-gracket + --enable-libffi + $(use_enable futures) + $(use_enable jit) + $(use_enable places) + $(use_enable threads pthread) + ) + fi + econf "${myconf[@]}" +} + +src_compile() { + # Compile Racket. + CC_FOR_BUILD="$(tc-getCC)" default + + # Recompile Zuo with optimizations. + emake -C zuo +} + +src_install() { + # Install Racket. + default + + # Install Zuo. + emake -C zuo DESTDIR="${ED}" install + + strip-lto-bytecode + + # raco needs decompressed files for packages doc installation, bug #662424 + if use doc ; then + docompress -x "/usr/share/doc/${PF}" + fi + + # Create missing desktop files and icon. + if ! use minimal ; then + newicon "${ED}/usr/share/racket/drracket-exe-icon.png" racket.png + + make_desktop_entry "gracket" "GRacket" "racket" "Development;Education;" + make_desktop_entry "plt-games" "PLT Games" "racket" "Education;Game;" + fi + + readme.gentoo_create_doc +} + +pkg_preinst() { + # If we are merging the same SLOT check if the package database files + # (see "PKGDB" var) exist and do not overwrite them. + if has_version "${CATEGORY}/${PN}:${SLOT}" ; then + echo "We are installing the same SLOT: ${SLOT}" + + local rktd="" + for rktd in "${PKGDB[@]}" ; do + if [[ -f "${EROOT}/${rktd}" ]] && [[ -f "${ED}/${rktd}" ]] ; then + einfo "Keeping old file: ${rktd}" + + mv "${ED}/${rktd}" "${ED}/${rktd}.bak" \ + || die "failed to create a backup of ${rktd}" + + cp "${EROOT}/${rktd}" "${ED}/${rktd}" \ + || die "failed to create a copy of ${rktd}" + fi + done + fi +} + +get_outsiders() { + racket -l raco -- pkg show -i | grep 'link' | sed 's|link.*||g' +} + +pkg_postinst() { + # If we have any pkgs not included in Racket main distribution (outsiders), + # then we have to re-setup them or during installation other pkgs will want + # to recompile parts of "outsider" pkgs they depend upon (and fail). + local -a outsiders=( $(get_outsiders) ) + + if [[ -n "${outsiders[@]}" ]] ; then + ebegin "Running \"raco setup\" for outsider packages" + echo "Outsiders: ${outsiders[@]}" + + raco setup --all-users --force --no-docs --no-user --pkgs "${outsiders[@]}" + eend 0 # do not fail + fi + + optfeature "readline editing features in REPL" dev-libs/libedit + optfeature "generating PDF files using Scribble" dev-texlive/texlive-fontsextra + + readme.gentoo_print_elog +} diff --git a/dev-scheme/sagittarius/Manifest b/dev-scheme/sagittarius/Manifest new file mode 100644 index 000000000000..f03bb01f673e --- /dev/null +++ b/dev-scheme/sagittarius/Manifest @@ -0,0 +1 @@ +DIST sagittarius-0.9.14.tar.gz 14906617 BLAKE2B a5e605e2c1676911ffbb9bb9b5c9a5b490cfea3c4790c46791c8c137de695ec924d9087f96e4f2b71c00da4acf79ef50367819b9ff294a5b1d70419276d85224 SHA512 5638f06c25a3a682a04504ee837d7b2707422474697de342d53c5f219d0996aee6ad7a1f0fc57d3934a1daddf46ac2963f38e714a41fd391cf5ddbb9e34be5c5 diff --git a/dev-scheme/sagittarius/files/sagittarius-0.9.14-compiler-flags.patch b/dev-scheme/sagittarius/files/sagittarius-0.9.14-compiler-flags.patch new file mode 100644 index 000000000000..3c4d7869d1aa --- /dev/null +++ b/dev-scheme/sagittarius/files/sagittarius-0.9.14-compiler-flags.patch @@ -0,0 +1,17 @@ +--- a/cmake/FixupCompilerFlags.cmake ++++ b/cmake/FixupCompilerFlags.cmake +@@ -45,14 +45,6 @@ + SET(CMAKE_CXX_FLAGS "-Wall ${CMAKE_CXX_FLAGS}") + #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshorten-64-to-32") + +- SET(CMAKE_C_FLAGS_DEBUG "-Og -fstack-protector-strong -fno-omit-frame-pointer ${CMAKE_C_FLAGS_DEBUG}") +- SET(CMAKE_CXX_FLAGS_DEBUG "-Og -fstack-protector-strong -fno-omit-frame-pointer ${CMAKE_CXX_FLAGS_DEBUG}") +- SET(CMAKE_C_FLAGS_RELEASE "-g ${CMAKE_C_FLAGS_RELEASE}") +- SET(CMAKE_CXX_FLAGS_RELEASE "-g ${CMAKE_CXX_FLAGS_RELEASE}") +- # left to right match, so append -O3 +- SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3") +- SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3") +- + # for some reason static library doesn't have this + # on x86_64 and is required. + # Solaris GCC (32 bit) doesn't have this either. so diff --git a/dev-scheme/sagittarius/metadata.xml b/dev-scheme/sagittarius/metadata.xml new file mode 100644 index 000000000000..5f33304011d5 --- /dev/null +++ b/dev-scheme/sagittarius/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/sagittarius/sagittarius-0.9.14.ebuild b/dev-scheme/sagittarius/sagittarius-0.9.14.ebuild new file mode 100644 index 000000000000..e77ea3538621 --- /dev/null +++ b/dev-scheme/sagittarius/sagittarius-0.9.14.ebuild @@ -0,0 +1,36 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake edo + +DESCRIPTION="R6RS/R7RS Scheme system." +HOMEPAGE="https://github.com/ktakashi/sagittarius-scheme" +SRC_URI="https://github.com/ktakashi/sagittarius-scheme/releases/download/v${PV}/${P}.tar.gz" +PATCHES=( "${FILESDIR}/${PN}-0.9.14-compiler-flags.patch" ) + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64" + +DEPEND=" + dev-libs/boehm-gc + dev-libs/libffi + dev-libs/openssl + virtual/zlib:= +" +RDEPEND="${DEPEND}" + +src_unpack() { + default + + # avoid running ldconfig + edo truncate -s0 "${S}"/cmake/CMakeLists.txt + + edo cd "${S}"/test/tests + # following tests always fail in sandbox + edo rm net/http-client.scm net/socket.scm rfc/websocket.scm + # following tests randomly(?!) fail + edo rm net/server.scm rfc/oauth2.scm rsa/pkcs/%3a12.scm security/keystore.scm +} diff --git a/dev-scheme/scm/Manifest b/dev-scheme/scm/Manifest new file mode 100644 index 000000000000..2f2bd4ca7f14 --- /dev/null +++ b/dev-scheme/scm/Manifest @@ -0,0 +1,2 @@ +DIST scm-5e6.zip 912968 BLAKE2B c059b49364abd25bb2335ad11f82791b96ac95aa9529b914396d08592e46e5aa5cba178b791fc96e3ea3066670c48bdd728609463bea398300b81d979fb304cb SHA512 897370f043401a7961eb1c2e22c951e2144505a1670e328e2c3eab33d52da83f195b873fb7cf8486f412ae52316cfc437c9f2da1432ade70f82eb0da12c2f852 +DIST scm-5f4.zip 938331 BLAKE2B d703ee9269aa1c536fab2bdc84adc862f184014a31d27700f688fd518b714fe8ec4b597cdd33a51ecdb0a7bd5998184a2c4af5f17c4347939d6c66086f1684e6 SHA512 519b75acb886ef5843068b5b5c6abd1520deac684ac5f96920e6321c6ecc2ca824071f6c23f26746a7922f816a8aabac38ad9126c0dbee903258442482ac83f0 diff --git a/dev-scheme/scm/files/scm-5.5.6-multiplefixes.patch b/dev-scheme/scm/files/scm-5.5.6-multiplefixes.patch new file mode 100644 index 000000000000..8636c47c7185 --- /dev/null +++ b/dev-scheme/scm/files/scm-5.5.6-multiplefixes.patch @@ -0,0 +1,81 @@ +diff -Naur scm.old//build.scm scm//build.scm +--- scm.old//build.scm 2009-08-03 15:35:57.000000000 -0300 ++++ scm//build.scm 2010-04-16 15:52:25.000000000 -0300 +@@ -540,7 +540,7 @@ + (graphics *unknown* "-I/usr/X11/include -DX11" "-lX11" + "/usr/X11/lib/libX11.sa" () ()) + (editline *unknown* "" "-lreadline" "/usr/lib/libreadline.a" () ()) +- (termcap *unknown* "" "-ltermcap" "/usr/lib/libtermcap.a" () ()) ++ (termcap *unknown* "" "-lncurses" "/usr/lib/libncurses.a" () ()) + (debug *unknown* "-g" "-g" #f () ()) + (socket *unknown* "" "" #f () ()) + (lib *unknown* "" "" #f () ("scmmain.c")) +diff -Naur scm.old//Makefile scm//Makefile +--- scm.old//Makefile 2009-08-03 15:38:21.000000000 -0300 ++++ scm//Makefile 2010-04-16 15:51:11.000000000 -0300 +@@ -178,18 +178,9 @@ + $(BUILD) -f udscm4.opt -o udscm4 -s $(IMPLPATH) + -rm $(ofiles) scmmain.o + dscm4: udscm4 $(ifiles) require.scm +- if [ -f /proc/sys/kernel/randomize_va_space -a\ +- "`cat /proc/sys/kernel/randomize_va_space`" != "0" ]; then {\ +- cat /proc/sys/kernel/randomize_va_space > randomize_va_space.tmp;\ +- echo 0 > /proc/sys/kernel/randomize_va_space;\ +- } fi + -rm -f slibcat implcat scm~ + -mv scm scm~ + echo "(quit)" | $(SETARCH) ./udscm4 -no-init-file -o scm +- if [ -f randomize_va_space.tmp ]; then {\ +- cat randomize_va_space.tmp > /proc/sys/kernel/randomize_va_space;\ +- rm randomize_va_space.tmp;\ +- } fi + + # dumpable R5RS interpreter + udscm5.opt: +@@ -199,20 +190,10 @@ + udscm5: $(cfiles) $(ufiles) $(hfiles) build.scm build udscm5.opt + $(BUILD) -f udscm5.opt -o udscm5 -s $(IMPLPATH) + -rm $(ofiles) scmmain.o +- strip udscm5 + dscm5: udscm5 $(ifiles) require.scm +- if [ -f /proc/sys/kernel/randomize_va_space -a\ +- "`cat /proc/sys/kernel/randomize_va_space`" != "0" ]; then {\ +- cat /proc/sys/kernel/randomize_va_space > randomize_va_space.tmp;\ +- echo 0 > /proc/sys/kernel/randomize_va_space;\ +- } fi + -rm -f slibcat implcat scm~ + -mv scm scm~ + echo "(quit)" | $(SETARCH) ./udscm5 -no-init-file -r5 -o scm +- if [ -f randomize_va_space.tmp ]; then {\ +- cat randomize_va_space.tmp > /proc/sys/kernel/randomize_va_space;\ +- rm randomize_va_space.tmp;\ +- } fi + $(MAKE) check + $(MAKE) checkmacro + +@@ -394,7 +375,7 @@ + PREVDOCS = prevdocs/ + html: $(htmldir)scm_toc.html $(htmldir)Xlibscm_toc.html $(htmldir)hobbit_toc.html + +-TEXI2HTML = /usr/local/bin/texi2html -split -verbose ++TEXI2HTML = /usr/bin/texi2html -split -verbose + + $(htmldir)scm_toc.html: Makefile $(texifiles) + ${TEXI2HTML} scm.texi +@@ -431,7 +412,7 @@ + + rpm_prefix=$(HOME)/rpmbuild/ + +-prefix = /usr/local/ ++prefix = /usr/ + exec_prefix = $(prefix) + # directory where `make install' will put executable. + bindir = $(exec_prefix)bin/ +@@ -498,7 +479,6 @@ + mkdir -p $(DESTDIR)$(bindir) + mkdir -p $(DESTDIR)$(man1dir) + -cp scm scmlit $(DESTDIR)$(bindir) +- -strip $(DESTDIR)$(bindir)scmlit + -cp scm.1 $(DESTDIR)$(man1dir) + mkdir -p $(DESTDIR)$(libscmdir) + test -f $(DESTDIR)$(libscmdir)require.scm || \ diff --git a/dev-scheme/scm/files/scm-5.5.6-ncurses.patch b/dev-scheme/scm/files/scm-5.5.6-ncurses.patch new file mode 100644 index 000000000000..59b353ebd88e --- /dev/null +++ b/dev-scheme/scm/files/scm-5.5.6-ncurses.patch @@ -0,0 +1,11 @@ +--- a/build.scm ++++ b/build.scm +@@ -565,7 +565,7 @@ + (regex linux "" "" #f () ()) + (graphics linux "-I/usr/include/X11 -DX11" "-L/usr/X11R6/lib -lX11" + "/usr/X11R6/lib/libX11.so" () ()) +- (curses linux "" "-lcurses" "/lib/libncurses.so" () ()) ++ (curses linux "" "-lncurses" "/lib/libncurses.so" () ()) + (nostart linux "" "" #f () ()) + (dump linux "" "" #f ("unexelf.c" "gmalloc.c") ()) + diff --git a/dev-scheme/scm/files/scm-5.5.6-respect-ldflags.patch b/dev-scheme/scm/files/scm-5.5.6-respect-ldflags.patch new file mode 100644 index 000000000000..a78e7ddb5d75 --- /dev/null +++ b/dev-scheme/scm/files/scm-5.5.6-respect-ldflags.patch @@ -0,0 +1,12 @@ +diff -ur b/Makefile a/Makefile +--- b/Makefile 2018-06-21 14:02:53.439716620 -0500 ++++ a/Makefile 2018-06-21 14:03:33.900568504 -0500 +@@ -111,7 +111,7 @@ + + # SCMLIT -- try making this first! + scmlit: $(ofiles) scmmain.o require.scm Makefile +- $(LD) -o scmlit $(ofiles) scmmain.o $(LIBS) ++ $(LD) $(LDFLAGS) -o scmlit $(ofiles) scmmain.o $(LIBS) + $(MAKE) checklit + scmflags.h: scmflags + scmflags:
\ No newline at end of file diff --git a/dev-scheme/scm/files/scm-5.6.4-QA.patch b/dev-scheme/scm/files/scm-5.6.4-QA.patch new file mode 100644 index 000000000000..8a1adae5bd14 --- /dev/null +++ b/dev-scheme/scm/files/scm-5.6.4-QA.patch @@ -0,0 +1,34 @@ +Removes stripping, prevents installation of compressed info files +https://bugs.gentoo.org/557322 +--- a/Makefile ++++ b/Makefile +@@ -376,7 +376,6 @@ + udscm4: $(cfiles) $(hfiles) build.scm build udscm4.opt + $(BUILD) -f udscm4.opt -o udscm4 -s $(IMPLPATH) + -rm $(ofiles) scmmain.o +- strip udscm4 + dscm4: udscm4 $(ifiles) require.scm + if [ -f /proc/sys/kernel/randomize_va_space -a\ + "`cat /proc/sys/kernel/randomize_va_space`" != "0" ]; then {\ +@@ -399,7 +398,6 @@ + udscm5: $(cfiles) $(ufiles) $(hfiles) build.scm build udscm5.opt + $(BUILD) -f udscm5.opt -o udscm5 -s $(IMPLPATH) + -rm $(ofiles) scmmain.o +- strip udscm5 + dscm5: udscm5 $(ifiles) require.scm + if [ -f /proc/sys/kernel/randomize_va_space -a\ + "`cat /proc/sys/kernel/randomize_va_space`" != "0" ]; then {\ +@@ -576,12 +574,10 @@ + + install-for-rpm: install-man install-lib install-infoz installdirs + $(INSTALL_PROGRAM) scm scmlit $(DESTDIR)$(bindir) +- -strip $(DESTDIR)$(bindir)scmlit + $(INSTALL_DATA) scm.h scmfig.h scmflags.h $(DESTDIR)$(includedir) + +-install: install-man install-lib install-infoz installdirs ++install: install-man install-lib install-info installdirs + $(INSTALL_PROGRAM) scm scmlit $(DESTDIR)$(bindir) +- -strip $(DESTDIR)$(bindir)scmlit + $(INSTALL_DATA) scm.h scmfig.h scmflags.h $(DESTDIR)$(includedir) + $(DESTDIR)$(bindir)scm -br new-catalog + diff --git a/dev-scheme/scm/files/scm-5.6.4-arrays.patch b/dev-scheme/scm/files/scm-5.6.4-arrays.patch new file mode 100644 index 000000000000..68bb6ef9a506 --- /dev/null +++ b/dev-scheme/scm/files/scm-5.6.4-arrays.patch @@ -0,0 +1,12 @@ +diff '--color=auto' -Naur scm.old/scl.c scm/scl.c +--- scm.old/scl.c 2026-04-18 21:41:05.718448466 +0300 ++++ scm/scl.c 2026-04-18 21:41:28.657818441 +0300 +@@ -953,7 +953,7 @@ + /* at this point, we have a legitimate floating point result */ + if (lead_sgn==-1) res = -res; + if (i==len) +-# ifdef SINGLES ++# if defined SINGLES && defined ARRAYS + return shrtp ? makflo(res) : makdbl(res, 0.0); + # else + return makdbl(res, 0.0); diff --git a/dev-scheme/scm/files/scm-5.6.4-c99.patch b/dev-scheme/scm/files/scm-5.6.4-c99.patch new file mode 100644 index 000000000000..49ae3057dade --- /dev/null +++ b/dev-scheme/scm/files/scm-5.6.4-c99.patch @@ -0,0 +1,107 @@ +Fixes up to -std=gnu17 +Fixes to signal handler, wrong function types, access to opaque +structs, passing char** to function expecting const char* const* +redeclaration of library functions with wrong signatures +https://bugs.gentoo.org/946129 +https://bugs.gentoo.org/946361 +--- a/scm.c ++++ b/scm.c +@@ -533,7 +533,7 @@ + static void init_sig1(scm_err, signo, handler) + int scm_err; + int signo; +- SIGRETTYPE (*handler)(); ++ SIGRETTYPE (*handler)(int); + { + int i = scm_err - SIGNAL_BASE; + ASRTER(i < NUM_SIGNALS, MAKINUM(i), OUTOFRANGE, "init_sig1"); +@@ -932,7 +932,6 @@ + extern char **environ; /* The Linux man page says this + declaration is necessary. */ + char s_getenv[] = "getenv"; +-char *getenv(); + SCM scm_getenv(nam) + SCM nam; + { +lendwin returns int, it's ignored in the callee of add_final +--- a/crs.c ++++ b/crs.c +@@ -387,5 +387,5 @@ + make_subr(s_mvwin, tc7_subr_3, lmvwin); + make_subr(s_box, tc7_subr_3, lbox); + add_feature("curses"); +- add_final(lendwin); ++ add_final((void (*)(void))lendwin); + } +--- a/scmmain.c ++++ b/scmmain.c +@@ -86,7 +86,8 @@ + const char **argv; + { + char *script_arg = 0; /* location of SCSH style script file or 0. */ +- char *implpath = 0, **nargv; ++ char *implpath = 0; ++ const char **nargv; + int nargc, iverbose = 0, buf0stdin; + SCM retval; + /* added by Dai Inukai 2001-03-21 */ +@@ -115,7 +116,7 @@ + fpspec = fpsetprec(FP_PE); /* IEEE 64 bit FP mantissa*/ + #endif + execpath = 0; /* even when dumped */ +- if ((nargv = script_process_argv(argc, argv))) { /* SCSH style scripts */ ++ if ((nargv = (const char **)script_process_argv(argc, argv))) { /* SCSH style scripts */ + script_arg = argv[2]; /* Save for scm_find_execpath() call */ + nargc = script_count_argv(nargv); + } +--- a/crs.c ++++ b/crs.c +@@ -250,7 +250,7 @@ + if (UNBNDP(arg)) arg = cur_outp; + ASRTER(NIMP(arg) && OPOUTPORTP(arg), arg, ARG1, s_owidth); + if (NIMP(*loc_stdscr)) { +- if (WINP(arg)) return MAKINUM(WIN(arg)->_maxx+1); ++ if (WINP(arg)) return MAKINUM(getmaxx(WIN(arg))+1); + else return MAKINUM(COLS); + } + return MAKINUM(80); +@@ -261,7 +261,7 @@ + if (UNBNDP(arg)) arg = cur_outp; + ASRTER(NIMP(arg) && OPOUTPORTP(arg), arg, ARG1, s_owidth); + if (NIMP(*loc_stdscr)) +- if (WINP(arg)) return MAKINUM(WIN(arg)->_maxy+1); ++ if (WINP(arg)) return MAKINUM(getmaxy(WIN(arg))+1); + else return MAKINUM(LINES); + return MAKINUM(24); + } +--- a/scm.c ++++ b/scm.c +@@ -154,7 +154,7 @@ + /* PROF_SIGNAL appears below because it is the last signal + defined in scm.h and in errmsgs in repl.c */ + static struct { +- int signo; SIGRETTYPE (*osig)(); SIGRETTYPE (*nsig)(); ++ int signo; SIGRETTYPE (*osig)(int); SIGRETTYPE (*nsig)(int); + } sigdesc[PROF_SIGNAL - SIGNAL_BASE + 1]; + + #define NUM_SIGNALS (sizeof(sigdesc)/sizeof(sigdesc[0])) +@@ -478,7 +478,7 @@ + #endif + + #ifdef SIGPIPE +-static SIGRETTYPE (*oldpipe) (); ++static SIGRETTYPE (*oldpipe) (int); + #endif + + int case_sensitize_symbols = 0; /* set to 8 to read case-sensitive symbols */ +--- a/posix.c ++++ b/posix.c +@@ -191,7 +191,7 @@ + ve[ 0] = makfrom0str(entry->gr_name); + ve[ 1] = makfrom0str(entry->gr_passwd); + ve[ 2] = ulong2num((unsigned long)entry->gr_gid); +- ve[ 3] = makfromstrs(-1, entry->gr_mem); ++ ve[ 3] = makfromstrs(-1, (const char * const *)entry->gr_mem); + return ans; + } + SCM l_setgr(arg) diff --git a/dev-scheme/scm/files/scm-5.6.4-ncurses.patch b/dev-scheme/scm/files/scm-5.6.4-ncurses.patch new file mode 100644 index 000000000000..7d9ec878d268 --- /dev/null +++ b/dev-scheme/scm/files/scm-5.6.4-ncurses.patch @@ -0,0 +1,16 @@ +https://bugs.gentoo.org/557322 +This is only way to make this compile with C99 and up: +Force cast one opaque pointer type to another. +--- a/crs.c ++++ b/crs.c +@@ -69,8 +69,8 @@ + bwaddch, + bwaddstr, + bwwrite, +- wrefresh, +- wgetch, ++ (int (*)(FILE *))wrefresh, ++ (int (*)(FILE *))wgetch, + freewindow}; + + SCM mkwindow(win) diff --git a/dev-scheme/scm/files/scm-5.6.4-ported-fixes.patch b/dev-scheme/scm/files/scm-5.6.4-ported-fixes.patch new file mode 100644 index 000000000000..2351e0b6c198 --- /dev/null +++ b/dev-scheme/scm/files/scm-5.6.4-ported-fixes.patch @@ -0,0 +1,116 @@ +Ported standard previous build fixes to new version. +Previous fixes remove stripping and add correct paths to gentoo +programs, made build system respect LDFLAGS. +And weird disablement of va randomization in kernel is also removed +Newly introduced fix to correct ordering of generated include file +https://bugs.gentoo.org/557322 +https://bugs.gentoo.org/883129 +--- a/build.scm ++++ b/build.scm +@@ -550,7 +550,7 @@ + (graphics *unknown* "-I/usr/X11/include -DX11" "-lX11" + "/usr/X11/lib/libX11.sa" () ()) + (editline *unknown* "" "-lreadline" "/usr/lib/libreadline.a" () ()) +- (termcap *unknown* "" "-ltermcap" "/usr/lib/libtermcap.a" () ()) ++ (termcap *unknown* "" "-lncurses" "/usr/lib/libncurses.a" () ()) + (debug *unknown* "-g" "-g" #f () ()) + (socket *unknown* "" "" #f () ()) + (lib *unknown* "" "" #f () ("scmmain.c")) +@@ -576,7 +576,7 @@ + (regex linux "" "" #f () ()) + (graphics linux "-I/usr/include/X11 -DX11" "-L/usr/X11R6/lib -lX11" + "/usr/X11R6/lib/libX11.so" () ()) +- (curses linux "" "-lcurses" "/lib/libncurses.so" () ()) ++ (curses linux "" "-lncurses" "/lib/libncurses.so" () ()) + (nostart linux "" "" #f () ()) + (dump linux "" "" #f ("unexelf.c" "gmalloc.c") ()) + +--- a/Makefile ++++ b/Makefile +@@ -34,7 +34,7 @@ + SCMEXE = ./scm$(EXE) + BUILD = ./build$(BAT) -hsystem + +-TEXI2HTML = /usr/local/bin/texi2html -split -verbose ++TEXI2HTML = /usr/bin/texi2html -split -verbose + TEXI2PDF = texi2pdf + VIEWPDF = evince + MAKEDEV = $(MAKE) -f $(HOME)/makefile.dev +@@ -305,7 +305,7 @@ + + # SCMLIT -- Make this first! + $(SCMLIT): $(ofiles) scmmain.o require.scm Makefile +- $(LD) -o scmlit $(ofiles) scmmain.o $(LIBS) ++ $(LD) $(LDFLAGS) -o scmlit $(ofiles) scmmain.o $(LIBS) + $(MAKE) checklit + scmflags.h: scmflags + scmflags: +Generate header before everything else. +@@ -316,7 +316,8 @@ + echo "#define CAUTIOUS" >> newflags.h + -if (cmp -s newflags.h scmflags.h) then rm newflags.h; \ + else mv newflags.h scmflags.h; fi ++$(cfiles): $(hfiles) scmflags.h + .c.o: + $(CC) -c $(CFLAGS) $< -o $@ + scm.o: scm.c scm.h scmfig.h scmflags.h patchlvl.h + scmmain.o: scmmain.c scm.h scmfig.h scmflags.h patchlvl.h +@@ -378,18 +378,9 @@ + -rm $(ofiles) scmmain.o + strip udscm4 + dscm4: udscm4 $(ifiles) require.scm +- if [ -f /proc/sys/kernel/randomize_va_space -a\ +- "`cat /proc/sys/kernel/randomize_va_space`" != "0" ]; then {\ +- cat /proc/sys/kernel/randomize_va_space > randomize_va_space.tmp;\ +- echo 0 > /proc/sys/kernel/randomize_va_space;\ +- } fi + -rm -f slibcat implcat scm~ + -mv scm scm~ + echo "(quit)" | $(SETARCH) ./udscm4 -no-init-file -o scm +- if [ -f randomize_va_space.tmp ]; then {\ +- cat randomize_va_space.tmp > /proc/sys/kernel/randomize_va_space;\ +- rm randomize_va_space.tmp;\ +- } fi + + # dumpable R5RS interpreter + udscm5.opt: +@@ -401,18 +392,9 @@ + -rm $(ofiles) scmmain.o + strip udscm5 + dscm5: udscm5 $(ifiles) require.scm +- if [ -f /proc/sys/kernel/randomize_va_space -a\ +- "`cat /proc/sys/kernel/randomize_va_space`" != "0" ]; then {\ +- cat /proc/sys/kernel/randomize_va_space > randomize_va_space.tmp;\ +- echo 0 > /proc/sys/kernel/randomize_va_space;\ +- } fi + -rm -f slibcat implcat scm~ + -mv scm scm~ + echo "(quit)" | $(SETARCH) ./udscm5 -no-init-file -r5 -o scm +- if [ -f randomize_va_space.tmp ]; then {\ +- cat randomize_va_space.tmp > /proc/sys/kernel/randomize_va_space;\ +- rm randomize_va_space.tmp;\ +- } fi + $(MAKE) checkmacro + + # R5RS interpreter for debugging with GDB. +@@ -447,7 +429,7 @@ + libscm.a: libscm.opt scm.h scmfig.h + $(BUILD) -t lib -f libscm.opt + libtest: libscm.a libtest.c +- $(LD) -o libtest libtest.c libscm.a -ldl -lm -lc ++ $(LD) $(LDFLAGS) -o libtest libtest.c libscm.a -ldl -lm -lc + ./libtest + + # DLLs for dynamic linking +@@ -558,12 +558,10 @@ + + install-for-rpm: install-man install-lib install-infoz installdirs + $(INSTALL_PROGRAM) scm scmlit $(DESTDIR)$(bindir) +- -strip $(DESTDIR)$(bindir)scmlit + $(INSTALL_DATA) scm.h scmfig.h scmflags.h $(DESTDIR)$(includedir) + + install: install-man install-lib install-infoz installdirs + $(INSTALL_PROGRAM) scm scmlit $(DESTDIR)$(bindir) +- -strip $(DESTDIR)$(bindir)scmlit + $(INSTALL_DATA) scm.h scmfig.h scmflags.h $(DESTDIR)$(includedir) + diff --git a/dev-scheme/scm/metadata.xml b/dev-scheme/scm/metadata.xml new file mode 100644 index 000000000000..114359516b8e --- /dev/null +++ b/dev-scheme/scm/metadata.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> +SCM is a Scheme implementation conforming to Revised5 Report on the Algorithmic Language Scheme and the IEEE P1178 specification. + </longdescription> + <use> + <flag name="arrays">Support for arrays, uniform-arrays and + uniform-vectors.</flag> + <flag name="bignums">Support for large precision integers.</flag> + <flag name="cautious">SCM will always check the number of arguments to + interpreted closures.</flag> + <flag name="dynamic-linking">Be able to load compiled files while + running.</flag> + <flag name="engineering-notation">Floats to display in engineering + notation (exponents always multiples of 3) instead of scientific + notation.</flag> + <flag name="gsubr">generalized c arguments: for arbitrary + (more then 11) arguments to C functions.</flag> + <flag name="inexact">Support for floating point numbers.</flag> + <flag name="ioext">Commonly available I/O extensions: line I/O, file + positioning, file delete and rename, and directory functions.</flag> + <flag name="libscm">Build and install libscm.a and related headers</flag> + <flag name="macro">C level support for hygienic and referentially + transparent macros (syntax-rules macros).</flag> + <flag name="regex">String regular expression matching.</flag> + <flag name="unix">Support for: nice, acct, lstat, readlink, symlink, + mknod and sync.</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/scm/scm-5.5.6-r4.ebuild b/dev-scheme/scm/scm-5.5.6-r4.ebuild new file mode 100644 index 000000000000..9f7449e28565 --- /dev/null +++ b/dev-scheme/scm/scm-5.5.6-r4.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Version magic thanks to masterdriverz and UberLord using bash array instead of tr +trarr="0abcdefghi" +MY_PV="$(ver_cut 1)${trarr:$(ver_cut 2):1}$(ver_cut 3)" +MY_P=${PN}-${MY_PV} + +inherit toolchain-funcs + +DESCRIPTION="SCM is a Scheme implementation from the author of slib" +HOMEPAGE="https://people.csail.mit.edu/jaffer/SCM.html" +SRC_URI="http://groups.csail.mit.edu/mac/ftpdir/scm/${MY_P}.zip" +S=${WORKDIR}/${PN} + +SLOT="0" +LICENSE="LGPL-3" +KEYWORDS="amd64 x86" +IUSE="arrays bignums cautious dynamic-linking engineering-notation gsubr inexact ioext libscm macro ncurses posix readline regex sockets unix" + +BDEPEND="app-arch/unzip" +DEPEND=">=dev-scheme/slib-3.1.5 + dev-util/cproto + ncurses? ( sys-libs/ncurses:0= ) + readline? ( sys-libs/libtermcap-compat )" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${P}-multiplefixes.patch + "${FILESDIR}"/${P}-ncurses.patch + "${FILESDIR}"/${P}-respect-ldflags.patch +) + +src_prepare() { + default + + sed \ + -e "s|\"gcc\"|\"$(tc-getCC)\"|g" \ + -e "s|\"ld\"|\"$(tc-getLD)\"|g" \ + -e "s|\"-shared\"|\"-shared ${LDFLAGS}\"|g" \ + -i ./build.scm || die +} + +src_compile() { + # SLIB is required to build SCM. + local slibpath="${EPREFIX}/usr/share/slib/" + if [ -n "$SCHEME_LIBRARY_PATH" ]; then + einfo "using SLIB $SCHEME_LIBRARY_PATH" + elif [ -d ${slibpath} ]; then + export SCHEME_LIBRARY_PATH=${slibpath} + fi + + einfo "Making scmlit" + emake -j1 CC=$(tc-getCC) scmlit clean + + einfo "Building scm" + local features="" + use arrays && features+="arrays" + use bignums && features+=" bignums" + use cautious && features+=" cautious" + use engineering-notation && features+=" engineering-notation" + use inexact && features+=" inexact" + use macro && features+=" macro" + + ( use readline || + use ncurses || + use regex || + use posix || + use ioext || + use gsubr || + use sockets || + use unix || + use dynamic-linking ) && features+=" dynamic-linking" + + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS} -L${EPREFIX}/$(get_libdir)" \ + -s "${EPREFIX}"/usr/$(get_libdir)/scm \ + -F ${features:="none"} \ + -h system \ + -o scm || die + + einfo "Building DLLs" + if use readline; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -h system \ + -F edit-line \ + -t dll || die + fi + if use ncurses ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -F curses \ + -h system \ + -t dll || die + fi + if use regex ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c rgx.c \ + -h system \ + -t dll || die + fi + if use gsubr ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c gsubr.c \ + -h system \ + -t dll || die + fi + if use ioext ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c ioext.c \ + -h system \ + -t dll || die + fi + if use posix; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c posix.c \ + -h system \ + -t dll || die + fi + if use sockets ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c socket.c \ + -h system \ + -t dll || die + fi + if use unix ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c unix.c \ + -h system \ + -t dll || die + fi + + if use libscm ; then + emake libscm.a + fi +} + +src_test() { + emake check +} + +src_install() { + emake DESTDIR="${D}" man1dir="${EPREFIX}"/usr/share/man/man1/ \ + install + + if use libscm; then + emake DESTDIR="${D}" libdir="${EPREFIX}"/usr/$(get_libdir)/ \ + installlib + fi + + doinfo scm.info + doinfo hobbit.info +} + +regen_catalog() { + einfo "Regenerating catalog..." + scm -e "(require 'new-catalog)" +} + +pkg_postinst() { + [[ -z ${ROOT} ]] && regen_catalog +} + +pkg_config() { + regen_catalog +} diff --git a/dev-scheme/scm/scm-5.6.4-r1.ebuild b/dev-scheme/scm/scm-5.6.4-r1.ebuild new file mode 100644 index 000000000000..36ac6f0026bc --- /dev/null +++ b/dev-scheme/scm/scm-5.6.4-r1.ebuild @@ -0,0 +1,194 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Version magic thanks to masterdriverz and UberLord using bash array instead of tr +trarr="0abcdefghi" +MY_PV="$(ver_cut 1)${trarr:$(ver_cut 2):1}$(ver_cut 3)" +MY_P=${PN}-${MY_PV} + +inherit toolchain-funcs flag-o-matic + +DESCRIPTION="SCM is a Scheme implementation from the author of slib" +HOMEPAGE="https://people.csail.mit.edu/jaffer/SCM.html" +SRC_URI="https://groups.csail.mit.edu/mac/ftpdir/scm/${MY_P}.zip" +S=${WORKDIR}/${PN} + +LICENSE="LGPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="arrays bignums cautious dynamic-linking engineering-notation gsubr inexact ioext macro ncurses posix readline regex sockets unix" + +REQUIRED_USE="bignums? ( arrays inexact )" + +BDEPEND="app-arch/unzip" +DEPEND=">=dev-scheme/slib-3.1.5 + dev-util/cproto + ncurses? ( sys-libs/ncurses:0= ) + readline? ( sys-libs/libtermcap-compat )" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${P}-ported-fixes.patch + "${FILESDIR}"/${P}-c99.patch + "${FILESDIR}"/${P}-QA.patch + "${FILESDIR}"/${P}-ncurses.patch + "${FILESDIR}"/${P}-arrays.patch +) + +src_prepare() { + default + + sed \ + -e "s|\"gcc\"|\"$(tc-getCC)\"|g" \ + -e "s|\"ld\"|\"$(tc-getLD)\"|g" \ + -e "s|\"-shared\"|\"-shared ${LDFLAGS}\"|g" \ + -i ./build.scm || die +} + +src_configure() { + append-cflags -std=gnu17 + ./configure \ + --prefix="${EPREFIX}"/usr \ + --mandir="${EPREFIX}"/usr/share/man \ + --infodir="${EPREFIX}"/usr/share/info \ + --datadir="${EPREFIX}"/usr/share \ + --sysconfdir="${EPREFIX}"/etc \ + --localstatedir="${EPREFIX}"/var/lib \ + --libdir="${EPREFIX}"/usr/$(get_libdir) \ + --docdir="${EPREFIX}"/usr/share/doc/${PF} \ + --htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \ + || die +} + +src_compile() { + # SLIB is required to build SCM. + local slibpath="${EPREFIX}/usr/share/slib/" + if [ -n "$SCHEME_LIBRARY_PATH" ]; then + einfo "using SLIB $SCHEME_LIBRARY_PATH" + elif [ -d ${slibpath} ]; then + export SCHEME_LIBRARY_PATH=${slibpath} + fi + + einfo "Making scmlit" + emake -j1 CC=$(tc-getCC) scmlit clean + + einfo "Building scm" + local features="" + use arrays && features+="arrays" + use bignums && features+=" bignums" + use cautious && features+=" cautious" + use engineering-notation && features+=" engineering-notation" + use inexact && features+=" inexact" + use macro && features+=" macro" + + ( use readline || + use ncurses || + use regex || + use posix || + use ioext || + use gsubr || + use sockets || + use unix || + use dynamic-linking ) && features+=" dynamic-linking" + + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS} -L${EPREFIX}/$(get_libdir)" \ + -s "${EPREFIX}"/usr/$(get_libdir)/scm \ + -F ${features:="none"} \ + -h system \ + -o scm || die + + einfo "Building DLLs" + if use readline; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -h system \ + -F edit-line \ + -t dll || die + fi + if use ncurses ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -F curses \ + -h system \ + -t dll || die + fi + if use regex ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c rgx.c \ + -h system \ + -t dll || die + fi + if use gsubr ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c gsubr.c \ + -h system \ + -t dll || die + fi + if use ioext ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c ioext.c \ + -h system \ + -t dll || die + fi + if use posix; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c posix.c \ + -h system \ + -t dll || die + fi + if use sockets ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c socket.c \ + -h system \ + -t dll || die + fi + if use unix ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c unix.c \ + -h system \ + -t dll || die + fi +} + +src_test() { + emake check +} + +src_install() { + emake -j1 DESTDIR="${D}" man1dir="${EPREFIX}"/usr/share/man/man1/ \ + install + + doinfo scm.info + doinfo hobbit.info +} + +regen_catalog() { + einfo "Regenerating catalog..." + scm -e "(require 'new-catalog)" +} + +pkg_postinst() { + [[ -z ${ROOT} ]] && regen_catalog +} + +pkg_config() { + regen_catalog +} diff --git a/dev-scheme/scm/scm-5.6.4.ebuild b/dev-scheme/scm/scm-5.6.4.ebuild new file mode 100644 index 000000000000..dabf9040d6f8 --- /dev/null +++ b/dev-scheme/scm/scm-5.6.4.ebuild @@ -0,0 +1,191 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Version magic thanks to masterdriverz and UberLord using bash array instead of tr +trarr="0abcdefghi" +MY_PV="$(ver_cut 1)${trarr:$(ver_cut 2):1}$(ver_cut 3)" +MY_P=${PN}-${MY_PV} + +inherit toolchain-funcs flag-o-matic + +DESCRIPTION="SCM is a Scheme implementation from the author of slib" +HOMEPAGE="https://people.csail.mit.edu/jaffer/SCM.html" +SRC_URI="https://groups.csail.mit.edu/mac/ftpdir/scm/${MY_P}.zip" +S=${WORKDIR}/${PN} + +LICENSE="LGPL-3" +SLOT="0" +KEYWORDS="amd64 ~x86" +IUSE="arrays bignums cautious dynamic-linking engineering-notation gsubr inexact ioext macro ncurses posix readline regex sockets unix" + +BDEPEND="app-arch/unzip" +DEPEND=">=dev-scheme/slib-3.1.5 + dev-util/cproto + ncurses? ( sys-libs/ncurses:0= ) + readline? ( sys-libs/libtermcap-compat )" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${P}-ported-fixes.patch + "${FILESDIR}"/${P}-c99.patch + "${FILESDIR}"/${P}-QA.patch + "${FILESDIR}"/${P}-ncurses.patch +) + +src_prepare() { + default + + sed \ + -e "s|\"gcc\"|\"$(tc-getCC)\"|g" \ + -e "s|\"ld\"|\"$(tc-getLD)\"|g" \ + -e "s|\"-shared\"|\"-shared ${LDFLAGS}\"|g" \ + -i ./build.scm || die +} + +src_configure() { + append-cflags -std=gnu17 + ./configure \ + --prefix="${EPREFIX}"/usr \ + --mandir="${EPREFIX}"/usr/share/man \ + --infodir="${EPREFIX}"/usr/share/info \ + --datadir="${EPREFIX}"/usr/share \ + --sysconfdir="${EPREFIX}"/etc \ + --localstatedir="${EPREFIX}"/var/lib \ + --libdir="${EPREFIX}"/usr/$(get_libdir) \ + --docdir="${EPREFIX}"/usr/share/doc/${PF} \ + --htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \ + || die +} + +src_compile() { + # SLIB is required to build SCM. + local slibpath="${EPREFIX}/usr/share/slib/" + if [ -n "$SCHEME_LIBRARY_PATH" ]; then + einfo "using SLIB $SCHEME_LIBRARY_PATH" + elif [ -d ${slibpath} ]; then + export SCHEME_LIBRARY_PATH=${slibpath} + fi + + einfo "Making scmlit" + emake -j1 CC=$(tc-getCC) scmlit clean + + einfo "Building scm" + local features="" + use arrays && features+="arrays" + use bignums && features+=" bignums" + use cautious && features+=" cautious" + use engineering-notation && features+=" engineering-notation" + use inexact && features+=" inexact" + use macro && features+=" macro" + + ( use readline || + use ncurses || + use regex || + use posix || + use ioext || + use gsubr || + use sockets || + use unix || + use dynamic-linking ) && features+=" dynamic-linking" + + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS} -L${EPREFIX}/$(get_libdir)" \ + -s "${EPREFIX}"/usr/$(get_libdir)/scm \ + -F ${features:="none"} \ + -h system \ + -o scm || die + + einfo "Building DLLs" + if use readline; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -h system \ + -F edit-line \ + -t dll || die + fi + if use ncurses ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -F curses \ + -h system \ + -t dll || die + fi + if use regex ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c rgx.c \ + -h system \ + -t dll || die + fi + if use gsubr ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c gsubr.c \ + -h system \ + -t dll || die + fi + if use ioext ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c ioext.c \ + -h system \ + -t dll || die + fi + if use posix; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c posix.c \ + -h system \ + -t dll || die + fi + if use sockets ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c socket.c \ + -h system \ + -t dll || die + fi + if use unix ; then + ./build \ + --compiler-options="${CFLAGS}" \ + --linker-options="${LDFLAGS}" \ + -c unix.c \ + -h system \ + -t dll || die + fi +} + +src_test() { + emake check +} + +src_install() { + emake -j1 DESTDIR="${D}" man1dir="${EPREFIX}"/usr/share/man/man1/ \ + install + + doinfo scm.info + doinfo hobbit.info +} + +regen_catalog() { + einfo "Regenerating catalog..." + scm -e "(require 'new-catalog)" +} + +pkg_postinst() { + [[ -z ${ROOT} ]] && regen_catalog +} + +pkg_config() { + regen_catalog +} diff --git a/dev-scheme/skribilo/Manifest b/dev-scheme/skribilo/Manifest new file mode 100644 index 000000000000..f98098f50dba --- /dev/null +++ b/dev-scheme/skribilo/Manifest @@ -0,0 +1 @@ +DIST skribilo-0.10.0.tar.gz 1535043 BLAKE2B 4bfa666f942150aa3d44bfea4a6d9bebcee1a48b7b5b04e0c13ff6f34150e0b9d633d13df27b2aaa4497d51050cd4ab5b5ac0fb5ffe7c1e3fbd66dc9242e5916 SHA512 97c4a08c83fb47759e9c8b83e53438561a77c41bfc655083938546f65be7e8a647d38bc3bf231996822ed1200915fd0691102c1e0d4c02fef499a9b99b2b844e diff --git a/dev-scheme/skribilo/files/50skribilo-gentoo.el b/dev-scheme/skribilo/files/50skribilo-gentoo.el new file mode 100644 index 000000000000..b6dc5061ebfd --- /dev/null +++ b/dev-scheme/skribilo/files/50skribilo-gentoo.el @@ -0,0 +1,3 @@ +(add-to-list 'load-path "@SITELISP@") +(autoload 'skribe-mode "skribe" + "Minor mode for editing Skribe sources." t) diff --git a/dev-scheme/skribilo/metadata.xml b/dev-scheme/skribilo/metadata.xml new file mode 100644 index 000000000000..7849ab58dffc --- /dev/null +++ b/dev-scheme/skribilo/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription> + Skribilo is a free document production tool that takes a structured + document representation as its input and renders that document in a variety + of output formats: HTML and Info for on-line browsing, and Lout and LaTeX + for high-quality hard copies. + The input document can use Skribilo's markup language to provide + information about the document's structure, which is similar to HTML or + LaTeX and does not require expertise. Alternatively, it can use a simpler, + "markup-less" format that borrows from Emacs' outline mode and from other + conventions used in emails, Usenet and text. + Lastly, Skribilo provides Guile Scheme APIs. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/skribilo/skribilo-0.10.0-r101.ebuild b/dev-scheme/skribilo/skribilo-0.10.0-r101.ebuild new file mode 100644 index 000000000000..77856f5c8695 --- /dev/null +++ b/dev-scheme/skribilo/skribilo-0.10.0-r101.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit elisp-common guile + +DESCRIPTION="Document production tool written in Guile Scheme" +HOMEPAGE="https://www.nongnu.org/skribilo/" +SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="emacs" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + app-text/ghostscript-gpl + media-gfx/imagemagick + + ${GUILE_DEPS} + >=dev-scheme/guile-lib-0.2.7-r100[${GUILE_USEDEP}] + >=dev-scheme/guile-reader-0.6.3-r100[${GUILE_USEDEP}] +" +DEPEND="${RDEPEND}" +BDEPEND="emacs? ( >=app-editors/emacs-23.1:* )" + +SITEFILE="50${PN}-gentoo.el" + +src_prepare() { + default + + # gnustep-base/gnustep-base installs /usr/bin/pl that isnt the unpackaged ploticus. + sed -i -e 's/for ac_prog in ploticus pl/for ac_prog in ploticus/' configure || die +} + +src_configure() { + if ! use emacs ; then + export EMACS="no" + export EMACSLOADPATH="/dev/null" + fi + + guile_foreach_impl econf +} + +src_compile() { + guile_src_compile + + use emacs && elisp-compile ./emacs/*.el +} + +src_install() { + guile_src_install + + # Link includes DESTDIR + for file in "${ED}"/usr/share/info/*.png; do + rm "${file}" || die + dosym ../doc/${PF}/html/$(basename ${file}) ${file##${ED}} + done + + if use emacs ; then + elisp-install ${PN} ./emacs/*.el{,c} + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + else + local emacsd="${D}"/usr/share/emacs + if [[ -d "${emacsd}" ]] ; then + einfo "Building without Emacs support but ${emacsd} found! Removing." + rm -r "${emacsd}" || die + fi + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-scheme/slib/Manifest b/dev-scheme/slib/Manifest new file mode 100644 index 000000000000..88a3ded3dbd4 --- /dev/null +++ b/dev-scheme/slib/Manifest @@ -0,0 +1 @@ +DIST slib-3c1.zip 1108203 BLAKE2B 86c38a6ce6936bd1e8b2e3f52fdd3e2e05ba1bb86a611aca7f66a5d65095c81774444459f23f47dd8d01c808ea40c2052d07587c73ffca010f50f5415b2beaf0 SHA512 a6559c3a58ebadfd9efa52391573af375ff142e21e3eface4df346ca7ba7a66a15883596a7a58f6d7f97143729de5022c04d864d90c8a1b3b158b23fbeac8911 diff --git a/dev-scheme/slib/files/50slib b/dev-scheme/slib/files/50slib new file mode 100644 index 000000000000..072862ed0b83 --- /dev/null +++ b/dev-scheme/slib/files/50slib @@ -0,0 +1 @@ +SCHEME_LIBRARY_PATH="/usr/share/slib/" diff --git a/dev-scheme/slib/files/slib-3.2.5-fix-paths.patch b/dev-scheme/slib/files/slib-3.2.5-fix-paths.patch new file mode 100644 index 000000000000..9a373c14d733 --- /dev/null +++ b/dev-scheme/slib/files/slib-3.2.5-fix-paths.patch @@ -0,0 +1,42 @@ +--- slib-3b5/~RScheme.init 2016-10-10 23:05:39.117046443 +0200 ++++ slib-3b5/RScheme.init 2016-10-10 23:06:47.242857550 +0200 +@@ -52,7 +52,7 @@ + ;; Use this path if your scheme does not support GETENV + ;; or if SCHEME_LIBRARY_PATH is not set. + (case (software-type) +- ((unix) "/usr/lib/slib/") ++ ((unix) "/usr/share/slib/") + ((vms) "lib$scheme:") + ((ms-dos) "C:\\SLIB\\") + (else ""))))) +--- slib-3b5/~gambit.init 2016-10-10 23:05:20.939634454 +0200 ++++ slib-3b5/gambit.init 2016-10-10 23:07:46.571968697 +0200 +@@ -38,7 +38,7 @@ + (let ((impl-path + (or (getenv "GAMBIT_IMPLEMENTATION_PATH") + (case (software-type) +- ((unix) "/usr/local/share/gambc/") ++ ((unix) "/usr/share/gambc/") + ((vms) "scheme$src:") + ((ms-dos) "C:\\scheme\\") + ((windows) "c:/scheme/") +@@ -65,7 +65,7 @@ + ;; Use this path if your scheme does not support GETENV + ;; or if SCHEME_LIBRARY_PATH is not set. + (case (software-type) +- ((unix) "/usr/local/lib/slib/") ++ ((unix) "/usr/share/slib/") + ((macos) (string-append (implementation-vicinity) "slib:")) + ((amiga) "dh0:scm/Library/") + ((vms) "lib$scheme:") +--- slib-3b5/~guile-2.init 2016-10-10 23:05:46.531807087 +0200 ++++ slib-3b5/guile-2.init 2016-10-10 23:08:00.154538349 +0200 +@@ -199,7 +199,7 @@ + (define implementation-vicinity + (cond ((getenv "GUILE_IMPLEMENTATION_PATH") + => (lambda (path) (lambda () path))) +- (else %site-dir))) ++ (else %library-dir))) + + ;;; (library-vicinity) should be defined to be the pathname of the + ;;; directory where files of Scheme library functions reside. diff --git a/dev-scheme/slib/metadata.xml b/dev-scheme/slib/metadata.xml new file mode 100644 index 000000000000..049fff87ac2e --- /dev/null +++ b/dev-scheme/slib/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> +SLIB is a portable scheme library meant to provide compatibiliy and +utility functions for all standard scheme implementations. + </longdescription> + <use> + <flag name="scm">Support for scm scheme implementation</flag> + <flag name="gambit">Support for gambit scheme implementation</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/slib/slib-3.3.1-r100.ebuild b/dev-scheme/slib/slib-3.3.1-r100.ebuild new file mode 100644 index 000000000000..16095c427b1a --- /dev/null +++ b/dev-scheme/slib/slib-3.3.1-r100.ebuild @@ -0,0 +1,124 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit guile + +#version magic thanks to masterdriverz and UberLord using bash array instead of tr +trarr="0abcdefghi" +MY_PV="$(ver_cut 1)${trarr:$(ver_cut 2):1}$(ver_cut 3)" + +DESCRIPTION="Portable Scheme library for all standard Scheme implementations" +HOMEPAGE="http://people.csail.mit.edu/jaffer/SLIB" +SRC_URI="http://groups.csail.mit.edu/mac/ftpdir/scm/${PN}-${MY_PV}.zip" +S="${WORKDIR}"/${PN} + +LICENSE="public-domain BSD" +SLOT="0" +KEYWORDS="~alpha amd64 ppc ~ppc64 ~sparc x86" +IUSE="gambit scm" +RESTRICT="mirror" +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND=" + ${GUILE_DEPS} + gambit? ( dev-scheme/gambit ) + scm? ( dev-scheme/scm ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + sys-apps/texinfo + app-arch/unzip +" + +DOCS=( ANNOUNCE COPYING FAQ README ChangeLog slib.{txt,html} ) + +PATCHES=( + "${FILESDIR}"/${PN}-3.2.5-fix-paths.patch +) + +src_configure() { + ./configure \ + --prefix=/usr \ + --libdir=/usr/share \ + || die +} + +src_compile() { + default + + makeinfo -o slib.txt --plaintext --force slib.texi || die + makeinfo -o slib.html --html --no-split --force slib.texi || die +} + +_new_catalog() { + if [[ ${1} != @(guile|scm) ]] ; then + echo -n "(load \"${ROOT}/usr/share/slib/${1}.init\")" || die + fi + echo " (require 'new-catalog) (slib:report-version)" || die +} + +guile_generate_catalog() { + # FIXME(arsen): we need to also compile the .go files.. + local gpath + gpath="${ED}/$(${GUILE} -c '(display (%library-dir))')" \ + || die "Could not determine the library directory" + local -x GUILE_IMPLEMENTATION_PATH="${gpath}" + + mkdir -p "${gpath}" || die + ln -sr "${ED}/usr/share/slib" "${GUILE_IMPLEMENTATION_PATH}/slib" \ + || die + "${GUILE}" --no-auto-compile \ + -L "${gpath}" \ + -c " + (use-modules (ice-9 slib)) + (require 'new-catalog) + " || die "Failed to generate catalogs for Guile" +} + +src_install() { + # core + insinto /usr/share/${PN} + doins *.{dat,init,ps,scm} + exeinto /usr/share/${PN} + doexe *.sh + + # bin + dodir /usr/bin/ + dosym -r /usr/share/${PN}/${PN}.sh /usr/bin/${PN} + + # env + doenvd "${FILESDIR}"/50slib + + # backwards compatibility + dodir /usr/lib/ + dosym -r /usr/share/${PN}/ /usr/lib/${PN} + + # docs + doinfo slib.info + doman slib.1 + einstalldocs + + local -x SCHEME_LIBRARY_PATH="${ED}"/usr/share/slib/ + + # catalogs + einfo "Updating implementation catalogs.." + guile_foreach_impl guile_generate_catalog + + # broken as for now + # if use elk ; then + # echo "$(_new_catalog elk)" | elk -l - + # fi + + if use gambit ; then + local -x GAMBIT_IMPLEMENTATION_PATH="${ED}"/usr/share/gambc/ + mkdir -p "${ED}"/usr/share/gambc || die + gsi -e "$(_new_catalog gambit)" || die + fi + + if use scm ; then + scm -e "$(_new_catalog scm)" || die + fi +} diff --git a/dev-scheme/stklos/Manifest b/dev-scheme/stklos/Manifest new file mode 100644 index 000000000000..ef6b944641b6 --- /dev/null +++ b/dev-scheme/stklos/Manifest @@ -0,0 +1,2 @@ +DIST stklos-2.10.tar.gz 10280638 BLAKE2B d08b3ca4422e497a4adba1d810c97af6cfa262443214127eb0c82bedb21885bc1dcea5cf8f13387a1bfaf9182a9590d9557368ee2840d5c11d4b15f5e0ffe427 SHA512 41981794bd2a8a600a03b543e87c02d1072c8dd3449704d6bb55586cc45e50c4654d8dd3f2b9ac1efc89cee41da8d3667b895d641ff1817a8d14944b1dcd66cd +DIST stklos-26.0.tar.gz 11437196 BLAKE2B cbf4e78add5d5d9189f9e0dbba58032b072e67cf3c25c584d1ed003f235d28f067d9747fa4159f2380969c3f30dafea40ee2e11e922a0a75c6d730b687a4912b SHA512 b29039eeec9410e9e3a7d0f0fc547ce0a6609c9fccf129e96cd790f9a4cc7768d58d8326d3e9eac0e0b269e9a98d48b3627b9c66e3ea8d43ff1586ff6cbb8527 diff --git a/dev-scheme/stklos/files/stklos-gentoo.patch b/dev-scheme/stklos/files/stklos-gentoo.patch new file mode 100644 index 000000000000..f45a44ae4347 --- /dev/null +++ b/dev-scheme/stklos/files/stklos-gentoo.patch @@ -0,0 +1,70 @@ +--- a/lib/Lalr.d/Makefile.am ++++ b/lib/Lalr.d/Makefile.am +@@ -33,7 +33,7 @@ + all: lalr.ostk calc + + install-sources: install +- mkdir -p $(schemedir) ++ mkdir -p $(DESTDIR)$(schemedir) + cp lalr.stk $(DESTDIR)$(schemedir) + + uninstall-hook: +--- a/lib/scheme/Makefile.am ++++ b/lib/scheme/Makefile.am +@@ -208,7 +208,7 @@ + @for i in $(SUBDIRS) ;do \ + (cd $$i && $(MAKE) install-sources)\ + done +- cp $(scheme_sources) $(schemedir) ++ cp $(scheme_sources) $(DESTDIR)$(schemedir) + + install-data-hook: + (cd regex && $(MAKE) install) +--- a/lib/scheme/vector/Makefile.am ++++ b/lib/scheme/vector/Makefile.am +@@ -130,8 +130,8 @@ + #====================================================================== + + install-sources: +- mkdir -p $(srfidir) +- cp $(srfi_sources) $(srfi_interm) $(srfidir) ++ mkdir -p $(DESTDIR)$(srfidir) ++ cp $(srfi_sources) $(srfi_interm) $(DESTDIR)$(srfidir) + + # we also clean the TAG.stk files -- $(srfi-interm) --, which are NOT + # srfi_OBJS (should not be installed with other objects): +--- a/lib/stklos/Makefile.am ++++ b/lib/stklos/Makefile.am +@@ -77,7 +77,7 @@ + + # ====================================================================== + install-sources: +- cp $(scheme_sources) $(schemedir) ++ cp $(scheme_sources) $(DESTDIR)$(schemedir) + + clean: + rm -f $(ALL_OBJS) *-incl.c *~ +--- a/lib/streams/Makefile.am ++++ b/lib/streams/Makefile.am +@@ -75,7 +75,7 @@ + + # ====================================================================== + install-sources: +- install $(scheme_sources) $(schemedir) ++ install $(scheme_sources) $(DESTDIR)$(schemedir) + + clean: + rm -f $(ALL_OBJS) *-incl.c *~ +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -108,8 +108,8 @@ + + + install-exec-hook: +- mv $(bindir)/stklos $(bindir)/stklos-@VERSION@ +- ln -s stklos-@VERSION@ $(bindir)/stklos ++ mv $(DESTDIR)$(bindir)/stklos $(DESTDIR)$(bindir)/stklos-@VERSION@ ++ ln -s stklos-@VERSION@ $(DESTDIR)$(bindir)/stklos + + + doc: $(DOCDB) diff --git a/dev-scheme/stklos/metadata.xml b/dev-scheme/stklos/metadata.xml new file mode 100644 index 000000000000..ee6d179e8d13 --- /dev/null +++ b/dev-scheme/stklos/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> + STklos is a free Scheme system supporting most of the languages + features defined in R5RS. The aim of this implementation is to + be fast as well as light. The implementation is based on an ad-hoc + Virtual Machine. STklos can also be compiled as a library and + embedded in an application. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/stklos/stklos-2.10.ebuild b/dev-scheme/stklos/stklos-2.10.ebuild new file mode 100644 index 000000000000..9927d7ecdb4d --- /dev/null +++ b/dev-scheme/stklos/stklos-2.10.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit autotools toolchain-funcs + +DESCRIPTION="Fast and light Scheme implementation" +HOMEPAGE="https://stklos.net/" +SRC_URI="https://${PN}.net/download/${P}.tar.gz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="threads" + +RDEPEND="dev-libs/boehm-gc[threads?] + dev-libs/gmp:= + dev-libs/libffi:= + dev-libs/libpcre2:=" +DEPEND="${RDEPEND}" + +PATCHES=( "${FILESDIR}"/${PN}-gentoo.patch ) +DOCS=( AUTHORS ChangeLog NEWS.md PACKAGES-USED {PORTING-NOTES,README}.md SUPPORTED-SRFIS ) + +src_prepare() { + default + + eautoreconf + export LD="$(tc-getCC)" + export STKLOS_CONFDIR="${T}"/.config/${PN} +} + +src_configure() { + econf \ + --datadir="${EPREFIX}"/usr/share/${PN}/${PV} \ + --libdir="${EPREFIX}"/usr/$(get_libdir)/${PN}/${PV} \ + --enable-threads=$(usex threads pthreads none) \ + --without-provided-bignum \ + --without-provided-ffi \ + --without-provided-gc \ + --without-provided-regexp +} + +src_compile() { + emake +} + +src_test() { + emake -j1 check +} + +src_install() { + default + einstalldocs +} diff --git a/dev-scheme/stklos/stklos-26.0.ebuild b/dev-scheme/stklos/stklos-26.0.ebuild new file mode 100644 index 000000000000..1cecdbcbad0e --- /dev/null +++ b/dev-scheme/stklos/stklos-26.0.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit autotools toolchain-funcs + +DESCRIPTION="Fast and light Scheme implementation" +HOMEPAGE="https://stklos.net/" +SRC_URI="https://${PN}.net/download/${P}.tar.gz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~x86" +IUSE="threads" + +RDEPEND="dev-libs/boehm-gc[threads?] + dev-libs/gmp:= + dev-libs/libffi:= + dev-libs/libpcre2:=" +DEPEND="${RDEPEND}" + +PATCHES=( "${FILESDIR}"/${PN}-gentoo.patch ) +DOCS=( AUTHORS ChangeLog NEWS.md PACKAGES-USED {PORTING-NOTES,README}.md SUPPORTED-SRFIS ) + +src_prepare() { + default + + eautoreconf + export LD="$(tc-getCC)" + export STKLOS_CONFDIR="${T}"/.config/${PN} +} + +src_configure() { + econf \ + --datadir="${EPREFIX}"/usr/share/${PN}/${PV} \ + --libdir="${EPREFIX}"/usr/$(get_libdir)/${PN}/${PV} \ + --enable-threads=$(usex threads pthreads none) \ + --without-provided-bignum \ + --without-provided-ffi \ + --without-provided-gc \ + --without-provided-regexp +} + +src_compile() { + emake -j1 +} + +src_test() { + emake -j1 check +} + +src_install() { + default + einstalldocs +} diff --git a/dev-scheme/tinyscheme/Manifest b/dev-scheme/tinyscheme/Manifest new file mode 100644 index 000000000000..c46b7446f81e --- /dev/null +++ b/dev-scheme/tinyscheme/Manifest @@ -0,0 +1 @@ +DIST tinyscheme-1.42.tar.gz 62156 BLAKE2B 9ebda4e0d90c37bb5e9b8275e67912daebe3786163bdb0b5ad06ad48bdd98934f9ce8679c0d259276fd4a8595522cb06d384498fe283314b782e29bf723af522 SHA512 54841dddd151042a976343409d5fcd778390bfddad50986d2a19120ec1eede54e2a3150100f5331abcacc222d8d547abde2b65a427c0353c2534b5f52918606c diff --git a/dev-scheme/tinyscheme/files/tinyscheme-makefile.patch b/dev-scheme/tinyscheme/files/tinyscheme-makefile.patch new file mode 100644 index 000000000000..b11afccacaa0 --- /dev/null +++ b/dev-scheme/tinyscheme/files/tinyscheme-makefile.patch @@ -0,0 +1,49 @@ +--- a/makefile ++++ b/makefile +@@ -18,8 +18,7 @@ + #AR= echo + + # Unix, generally +-CC = gcc -fpic -pedantic +-DEBUG=-g -Wall -Wno-char-subscripts -O ++#CC = $(CC) + Osuf=o + SOsuf=so + LIBsuf=a +@@ -27,12 +26,11 @@ + LIBPREFIX=lib + OUT = -o $@ + RM= -rm -f +-AR= ar crs ++#AR= $(AR) ++ARFLAGS = crs + + # Linux +-LD = gcc +-LDFLAGS = -shared +-DEBUG=-g -Wno-char-subscripts -O ++#LD = $(CC) + SYS_LIBS= -ldl -lm + PLATFORM_FEATURES= -DSUN_DL=1 + +@@ -71,16 +69,16 @@ + all: $(LIBTARGET) $(STATICLIBTARGET) scheme$(EXE_EXT) + + %.$(Osuf): %.c +- $(CC) -I. -c $(DEBUG) $(FEATURES) $(DL_FLAGS) $< ++ $(CC) -fpic $(CFLAGS) -I. -c $(FEATURES) $(DL_FLAGS) $< + + $(LIBTARGET): $(OBJS) +- $(LD) $(LDFLAGS) $(OUT) $(OBJS) $(SYS_LIBS) ++ $(CC) -shared $(LDFLAGS) -Wl,-soname=$@ -o $@ $(OUT) $(OBJS) $(SYS_LIBS) + + scheme$(EXE_EXT): $(OBJS) +- $(CC) -o $@ $(DEBUG) $(OBJS) $(SYS_LIBS) ++ $(CC) $(LDFLAGS) -o $@ $(OBJS) $(SYS_LIBS) + + $(STATICLIBTARGET): $(OBJS) +- $(AR) $@ $(OBJS) ++ $(AR) $(ARFLAGS) $@ $(OBJS) + + $(OBJS): scheme.h scheme-private.h opdefines.h + dynload.$(Osuf): dynload.h diff --git a/dev-scheme/tinyscheme/metadata.xml b/dev-scheme/tinyscheme/metadata.xml new file mode 100644 index 000000000000..82146782eb68 --- /dev/null +++ b/dev-scheme/tinyscheme/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> + TinyScheme is a lightweight Scheme interpreter that implements as large + a subset of R5RS as was possible without getting very large and + complicated. It is meant to be used as an embedded scripting + interpreter for other programs. As such, it does not offer IDEs or + extensive toolkits although it does sport a small top-level loop, + included conditionally. A lot of functionality in TinyScheme is + included conditionally, to allow developers freedom in balancing + features and footprint. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/tinyscheme/tinyscheme-1.42.ebuild b/dev-scheme/tinyscheme/tinyscheme-1.42.ebuild new file mode 100644 index 000000000000..7ce64dc1adf8 --- /dev/null +++ b/dev-scheme/tinyscheme/tinyscheme-1.42.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit multilib toolchain-funcs + +DESCRIPTION="Lightweight scheme interpreter" +HOMEPAGE="https://tinyscheme.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ppc x86" +IUSE="static-libs" + +RDEPEND="" +DEPEND="" + +PATCHES=( "${FILESDIR}"/${PN}-makefile.patch ) +DOCS=( CHANGES {Manual,MiniSCHEMETribute,hack}.txt ) + +src_compile() { + emake \ + AR="$(tc-getAR)" \ + CC="$(tc-getCC)" \ + LDFLAGS="${LDFLAGS}" +} + +src_install() { + local tslib=lib${PN}$(get_libname) + local tslibx=lib${PN}$(get_libname ${PV}) + + newbin scheme ${PN} + + newlib.so ${tslib} ${tslibx} + dosym ${tslibx} /usr/$(get_libdir)/${tslib} + use static-libs && dolib.a lib${PN}.a + einstalldocs + + # bug #328967 + insinto /usr/include + newins scheme.h ${PN}.h + + local INIT_DIR=/usr/share/${PN} + insinto ${INIT_DIR} + doins init.scm + dodir /etc/env.d + echo "TINYSCHEMEINIT=\"${EPREFIX}${INIT_DIR}/init.scm\"" >"${ED}"/etc/env.d/50${PN} +} diff --git a/dev-scheme/xdgdirs/Manifest b/dev-scheme/xdgdirs/Manifest new file mode 100644 index 000000000000..2a72b935b83d --- /dev/null +++ b/dev-scheme/xdgdirs/Manifest @@ -0,0 +1 @@ +DIST xdgdirs-2.2.tar.xz 359784 BLAKE2B 437d5a5840957c6e0482e38fcb8fa95c22e8d22001b26dd1c047d9c96e96c85fc47627880c9e92c1f5474c7c3bf61da29f8c9f28a4aa85b32d207ca29cf783dd SHA512 f57cf6e39e3c4ef7faa9034f9e42fb87a8398613f86a7d4f305810c9a845f649e56b754fc5a03fae41b368cd897527e9a8151eb16d1d91c6e4b170ba27bb1b11 diff --git a/dev-scheme/xdgdirs/metadata.xml b/dev-scheme/xdgdirs/metadata.xml new file mode 100644 index 000000000000..061ddab78bfb --- /dev/null +++ b/dev-scheme/xdgdirs/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>netmon@gentoo.org</email> + </maintainer> + <upstream> + <changelog>https://www.gnuvola.org/software/xdgdirs/NEWS</changelog> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/xdgdirs/xdgdirs-2.2-r100.ebuild b/dev-scheme/xdgdirs/xdgdirs-2.2-r100.ebuild new file mode 100644 index 000000000000..0dc3e304acd4 --- /dev/null +++ b/dev-scheme/xdgdirs/xdgdirs-2.2-r100.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +inherit guile-single + +DESCRIPTION="Displays names/values of XDG Basedir variables" +HOMEPAGE="https://www.gnuvola.org/software/xdgdirs/" +SRC_URI="https://www.gnuvola.org/software/xdgdirs/${P}.tar.xz" + +LICENSE="GPL-3+ FDL-1.3" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~x86" + +REQUIRED_USE="${GUILE_REQUIRED_USE}" + +RDEPEND="${GUILE_DEPS}" +DEPEND="${RDEPEND}" + +src_prepare() { + guile-single_src_prepare + + # fix shebang + sed -i -e "/exec/ s|guile|${GUILE}|" xdgdirs.in || die +} + +src_test() { + # breaks diffs for tests if not disabled + local -x GUILE_AUTO_COMPILE=0 + + emake check +} diff --git a/dev-scheme/ypsilon/Manifest b/dev-scheme/ypsilon/Manifest new file mode 100644 index 000000000000..e6b0e7a42b1d --- /dev/null +++ b/dev-scheme/ypsilon/Manifest @@ -0,0 +1 @@ +DIST ypsilon-0.9.6.update3.tar.gz 4555843 BLAKE2B 65cdf9d154dbe201967a0eea9b21b90f86eb7a88975bb9f4013f801ed28e6da09eb29a793287f0870f6b27f3e63594a79e7894a6a6780342223a728c229babb0 SHA512 9ea5e3e70481c538bcaf671feb7f764015fb44702bcec4e2873007e065bf48d7d9b0cfc8f9dcc51e0083b0bf5296fd8ac40a1f851d76019a18b21fa7e292ee89 diff --git a/dev-scheme/ypsilon/files/ypsilon-0.9.6_p3-asneeded.patch b/dev-scheme/ypsilon/files/ypsilon-0.9.6_p3-asneeded.patch new file mode 100644 index 000000000000..9ea4256de937 --- /dev/null +++ b/dev-scheme/ypsilon/files/ypsilon-0.9.6_p3-asneeded.patch @@ -0,0 +1,11 @@ +--- a/Makefile ++++ b/Makefile +@@ -126,7 +126,7 @@ + @mkdir -p -m755 $(HOME)/.ypsilon + + $(PROG): $(OBJS) +- $(CXX) $(LDFLAGS) $(LDLIBS) -o $@ $^ ++ $(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS) + + vm1.s: vm1.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) \ diff --git a/dev-scheme/ypsilon/files/ypsilon-0.9.6_p3-clang-cflags.patch b/dev-scheme/ypsilon/files/ypsilon-0.9.6_p3-clang-cflags.patch new file mode 100644 index 000000000000..8d2ce6ea796a --- /dev/null +++ b/dev-scheme/ypsilon/files/ypsilon-0.9.6_p3-clang-cflags.patch @@ -0,0 +1,23 @@ +https://bugs.gentoo.org/730692 + +From 8d5318ea079f53149ab87974a4ad9ed9c5c7fcf5 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Fri, 27 Aug 2021 03:58:34 +0100 +Subject: [PATCH] Drop flags Clang doesn't support + +In particular, -fno-crossjumping but the rest seem rather unnecessary. +--- a/Makefile ++++ b/Makefile +@@ -130,12 +130,10 @@ $(PROG): $(OBJS) + + vm1.s: vm1.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) \ +- -fno-reorder-blocks -fno-crossjumping -fno-align-labels -fno-align-loops -fno-align-jumps \ + -fverbose-asm -S src/vm1.cpp + + vm1.o: vm1.cpp + $(CXX) $(CXXFLAGS) $(CPPFLAGS) \ +- -fno-reorder-blocks -fno-crossjumping -fno-align-labels -fno-align-loops -fno-align-jumps \ + -c src/vm1.cpp + + install: all stdlib sitelib diff --git a/dev-scheme/ypsilon/metadata.xml b/dev-scheme/ypsilon/metadata.xml new file mode 100644 index 000000000000..8c5a893f6927 --- /dev/null +++ b/dev-scheme/ypsilon/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>scheme@gentoo.org</email> + <name>Gentoo Scheme Project</name> + </maintainer> + <longdescription lang="en"> + Ypsilon is the implementation of Scheme Programming Language, which conforms + to the latest standard R6RS. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-scheme/ypsilon/ypsilon-0.9.6_p3-r2.ebuild b/dev-scheme/ypsilon/ypsilon-0.9.6_p3-r2.ebuild new file mode 100644 index 000000000000..75550544e519 --- /dev/null +++ b/dev-scheme/ypsilon/ypsilon-0.9.6_p3-r2.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic toolchain-funcs + +MY_P="${P/_p/.update}" + +DESCRIPTION="R6RS-compliant Scheme implementation for real-time applications" +HOMEPAGE="http://www.littlewingpinball.com/doc/en/ypsilon" +SRC_URI="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/${PN}/${MY_P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="examples" + +RDEPEND="app-alternatives/cpio" +DEPEND="${RDEPEND}" +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${P}-asneeded.patch + "${FILESDIR}"/${P}-clang-cflags.patch +) + +src_prepare() { + default + + append-flags -pthread + # fix build with >=sys-devel/gcc-11, bug #787866 + sed -i "/^CPPFLAGS/s/=/= -DNO_TLS/" Makefile + + # -Werror=strict-aliasing + # https://bugs.gentoo.org/858257 + # + # There is an upstream update to 2.0.8 (lotta new versions!) but it changes + # way too much to trivially update. The issue may or may not be fixed. + # Before multiple other things bombed out, the erroring source file + # *seemed* to compile ok. + append-flags -fno-strict-aliasing + filter-lto +} + +src_compile() { + emake \ + PREFIX="${EPREFIX}/usr" \ + AS="$(tc-getAS)" \ + CXX="$(tc-getCXX)" \ + CXXFLAGS="${CXXFLAGS}" \ + LDFLAGS="${LDFLAGS}" +} + +src_install() { + emake \ + PREFIX="${EPREFIX}/usr" \ + DESTDIR="${D}" \ + install + + if use examples; then + docinto examples + dodoc example/* + fi +} |
