summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNHOrus <jy6x2b32pie9@yahoo.com>2024-06-05 18:58:08 +0400
committerMaciej Barć <xgqt@gentoo.org>2024-06-05 21:33:34 +0200
commita251f84a66c98413f0d15ad7e8d0f37250f67c00 (patch)
tree8c5952e3bbf156705064d0535781e230b759b7d9 /dev-scheme
parentdev-ml/bin_prot: fix deps (diff)
downloadgentoo-a251f84a66c98413f0d15ad7e8d0f37250f67c00.tar.gz
gentoo-a251f84a66c98413f0d15ad7e8d0f37250f67c00.tar.bz2
gentoo-a251f84a66c98413f0d15ad7e8d0f37250f67c00.zip
dev-scheme/bigloo: add 4.5b
Upstream fixed implicit declaration bug. There are some broken build dependencies that prevent parallel compiles in bdb subfolder. They are fixed in patch. Sed in configure file left space where no space is needed - so autoconfig was running when it wasn't intended to, and assignment of actual ar ranlib variables executed them as commands instead Manually pointed configure to location of GC library Gstreamer can't be build without enabling pulseaudio, noted that in USE flags Bug: https://bugs.gentoo.org/927163 Bug: https://bugs.gentoo.org/924857 Bug: https://bugs.gentoo.org/870481 Bug: https://bugs.gentoo.org/911667 Signed-off-by: NHOrus <jy6x2b32pie9@yahoo.com> Signed-off-by: Maciej Barć <xgqt@gentoo.org>
Diffstat (limited to 'dev-scheme')
-rw-r--r--dev-scheme/bigloo/Manifest1
-rw-r--r--dev-scheme/bigloo/bigloo-4.5b.ebuild224
-rw-r--r--dev-scheme/bigloo/files/bigloo-4.5b-makefile.patch36
3 files changed, 261 insertions, 0 deletions
diff --git a/dev-scheme/bigloo/Manifest b/dev-scheme/bigloo/Manifest
index 6062892e41ae..38d248088c61 100644
--- a/dev-scheme/bigloo/Manifest
+++ b/dev-scheme/bigloo/Manifest
@@ -1 +1,2 @@
DIST bigloo-4.4c-4.tar.gz 47714106 BLAKE2B f30775cfa3e29f781f31dc5ec80087712504ffab528a911e2a29746562b6179b03cbfc63a45ddf337b2424fbfa476005ffed67674a75b4629ab70459c47147a6 SHA512 b1a7f7f610303dbbd7339ac4f80679b07d1bf5304865fe61f28bd5af8205f1a5c2b5b3edb1c47a0409a6392a2242d2adde1f5129b026b6a7ee022b8f5faec157
+DIST bigloo-4.5b.tar.gz 59015812 BLAKE2B 8dfa73da5ba50a2ec92adde7c9c3fc76841bc0702139238776af2c174099aab85ea28b5d2ec640b6d85f986759b63950f3cfa55e8ec2eb2e73930093b767c93d SHA512 7810f9895ea373f716cd2c93a7b1072d289e2b333632b5b4f293a6317f31a56d2b098790763e96c2d15ce212dafb45c70ec6a7941a344fb8c53a3ef3c6b67feb
diff --git a/dev-scheme/bigloo/bigloo-4.5b.ebuild b/dev-scheme/bigloo/bigloo-4.5b.ebuild
new file mode 100644
index 000000000000..15820af36235
--- /dev/null
+++ b/dev-scheme/bigloo/bigloo-4.5b.ebuild
@@ -0,0 +1,224 @@
+# 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
+"
+
+DOCS=( ChangeLog README.md TODO.org )
+SITEFILE="50${PN}-gentoo.el"
+
+PATCHES="${FILESDIR}/${P}-makefile.patch"
+
+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
+ find "${ED}" -name "*.a" -delete || die
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
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