From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lisp/clisp/
Date: Sun, 27 Apr 2025 23:17:37 +0000 (UTC)	[thread overview]
Message-ID: <1745795768.59d228ffb9158a090306bf6aaca1b9599d6c1d6e.sam@gentoo> (raw)
commit:     59d228ffb9158a090306bf6aaca1b9599d6c1d6e
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 27 23:13:40 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Apr 27 23:16:08 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=59d228ff
dev-lisp/clisp: misc fixes
* Fix build w/ GCC 15 (bug #932564). I've only added a workaround for this
  as there's proper fixes upstream.
* Improve general style like:
** use an array for configure arguments and edo;
** use emake, not make || die (but pass -j1 as that was likely the
   intent here);
** more modern style for dependencies
* Fix USE=hyperspec doc path (bug #905704)
* Drop unnecessary slash (bug #905704)
Closes: https://bugs.gentoo.org/905704
Signed-off-by: Sam James <sam <AT> gentoo.org>
 dev-lisp/clisp/clisp-2.49.92-r2.ebuild | 166 +++++++++++++++++++++++++++++++++
 1 file changed, 166 insertions(+)
diff --git a/dev-lisp/clisp/clisp-2.49.92-r2.ebuild b/dev-lisp/clisp/clisp-2.49.92-r2.ebuild
new file mode 100644
index 000000000000..8573be8fc5fe
--- /dev/null
+++ b/dev-lisp/clisp/clisp-2.49.92-r2.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo flag-o-matic xdg-utils
+
+DESCRIPTION="Portable, bytecode-compiled implementation of Common Lisp"
+HOMEPAGE="https://clisp.sourceforge.io/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2+"
+SLOT="2/8"
+KEYWORDS="~alpha ~amd64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm threads +unicode +zlib"
+# "jit" disabled ATM
+
+RDEPEND="
+	>=dev-lisp/asdf-2.33-r3
+	virtual/libcrypt:=
+	virtual/libiconv
+	>=dev-libs/libsigsegv-2.10
+	>=dev-libs/ffcall-1.10
+	dbus? ( sys-apps/dbus )
+	fastcgi? ( dev-libs/fcgi )
+	gdbm? ( sys-libs/gdbm:0= )
+	gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6 )
+	postgres? ( >=dev-db/postgresql-8.0:* )
+	readline? ( >=sys-libs/readline-7.0:0= )
+	pcre? ( dev-libs/libpcre:3 )
+	svm? ( sci-libs/libsvm )
+	zlib? ( sys-libs/zlib )
+	X? ( x11-libs/libXpm )
+	hyperspec? ( dev-lisp/hyperspec )
+	berkdb? ( sys-libs/db:4.8 )
+"
+DEPEND="
+	${RDEPEND}
+	X? ( x11-base/xorg-proto )
+"
+BDEPEND="X? ( x11-misc/imake )"
+
+BUILDDIR="builddir"
+
+enable_modules() {
+	[[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument"
+
+	local m
+	for m in "$@" ; do
+		einfo "Enabling module $m"
+		myconf+=( --with-module=${m} )
+	done
+}
+
+src_prepare() {
+	# More than -O1 breaks alpha
+	if use alpha; then
+		sed -i -e 's/-O2//g' src/makemake.in || die
+	fi
+	eapply "${FILESDIR}"/"${P}"-after_glibc_cfree_bdb.patch
+	eapply_user
+
+	xdg_environment_reset
+}
+
+src_configure() {
+	# Not local so enable_modules() can use it
+	myconf=(
+		--prefix="${EPREFIX}"/usr
+		--libdir="${EPREFIX}"/usr/$(get_libdir)
+		--enable-portability
+		$(use_with readline)
+		$(use_with unicode)
+		--hyperspec=${CLHSROOT}
+	)
+
+	# Temporary workaround for bug #932564 with GCC 15
+	# This can be dropped with a new release.
+	append-flags -fno-tree-dce
+
+	# -Werror=lto-type-mismatch
+	# https://bugs.gentoo.org/856103
+	# https://gitlab.com/gnu-clisp/clisp/-/issues/49
+	filter-lto
+
+	# We need this to build on alpha
+	if use alpha; then
+		replace-flags -O? -O1
+	elif use x86; then
+		append-flags -falign-functions=4
+	fi
+
+	# built-in features
+	myconf+=(
+		--with-ffcall
+		--without-dynamic-modules
+	)
+
+	# There's a problem with jit_allocai function
+	#if use jit; then
+	#	myconf+=" --with-jitc=lightning"
+	#fi
+
+	if use threads; then
+		myconf+=( --with-threads=POSIX_THREADS )
+	fi
+
+	# modules not enabled:
+	#  * berkdb: must figure out a way to make the configure script pick up the
+	#            currect version of the library and headers
+	#  * dirkey: fails to compile, requiring windows.h, possibly wrong #ifdefs
+	#  * matlab, netica: not in portage
+	#  * oracle: can't install oracle-instantclient
+	#
+	# default modules
+	enable_modules rawsock
+	# optional modules
+	use elibc_glibc && enable_modules bindings/glibc
+	use X && enable_modules clx/new-clx
+	if use postgres; then
+		enable_modules postgresql
+		append-cppflags -I$(pg_config --includedir)
+	fi
+	if use berkdb; then
+		enable_modules berkeley-db
+		append-cppflags -I"${EPREFIX}"/usr/include/db4.8
+	fi
+	use dbus && enable_modules dbus
+	use fastcgi && enable_modules fastcgi
+	use gdbm && enable_modules gdbm
+	use gtk && enable_modules gtk2
+	use pcre && enable_modules pcre
+	use svm && enable_modules libsvm
+	use zlib && enable_modules zlib
+
+	if use hyperspec; then
+		CLHSROOT="file://${EPREFIX}/usr/share/hyperspec/HyperSpec/"
+	else
+		CLHSROOT="http://www.lispworks.com/reference/HyperSpec/"
+	fi
+
+	# configure chokes on --sysconfdir option
+	edo ./configure "${myconf[@]}" ${BUILDDIR}
+
+	IMPNOTES="file://${EPREFIX}/usr/share/doc/${PN}-${PVR}/html/impnotes.html"
+	sed -i "s,http://clisp.cons.org/impnotes/,${IMPNOTES},g" \
+		"${BUILDDIR}"/config.lisp || die "Cannot fix link to implementation notes"
+}
+
+src_compile() {
+	export VARTEXFONTS="${T}"/fonts
+	# parallel build fails
+	emake -C "${BUILDDIR}" -j1
+}
+
+src_install() {
+	pushd "${BUILDDIR}" || die
+	emake -j1 DESTDIR="${D}" prefix="${EPREFIX}"/usr install-bin
+	doman clisp.1
+	dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE
+	popd || die
+
+	dodoc doc/{CLOS-guide,LISP-tutorial}.txt
+	docinto html
+	dodoc doc/impnotes.{css,html} doc/regexp.html doc/clisp.png
+}
next             reply	other threads:[~2025-04-27 23:17 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-27 23:17 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-04-28  4:44 [gentoo-commits] repo/gentoo:master commit in: dev-lisp/clisp/ Sam James
2025-04-28  4:37 Sam James
2025-04-28  2:41 Sam James
2024-05-02  4:32 Sam James
2024-05-02  4:32 Sam James
2023-09-16 14:06 Ulrich Müller
2022-10-15 15:13 Sam James
2022-05-14 21:52 Jakov Smolić
2022-04-28 15:05 Jakov Smolić
2022-02-28  5:04 Sam James
2022-02-28  5:03 Sam James
2022-02-17 11:00 Jakov Smolić
2022-01-19  1:12 Sam James
2021-06-03 19:15 Sam James
2020-10-10 17:55 Pacho Ramos
2019-06-16 18:30 Ulrich Müller
2019-06-16 17:15 Tobias Klausmann
2019-06-14 15:01 Agostino Sarubbo
2019-06-14  9:26 Agostino Sarubbo
2019-06-14  9:25 Agostino Sarubbo
2019-06-14  9:18 Agostino Sarubbo
2018-10-16  9:18 Tobias Klausmann
2018-08-19 22:52 Patrice Clement
2018-08-19 22:52 Patrice Clement
2018-05-12  0:32 Matt Turner
2018-04-20  8:02 David Seifert
2018-03-28 14:47 José María Alonso
2018-03-25  1:30 Sergei Trofimovich
2018-03-18 18:04 David Seifert
2018-03-08  9:29 José María Alonso
2018-03-07 12:45 José María Alonso
2018-03-07  9:36 José María Alonso
2018-03-06 15:35 José María Alonso
2018-03-05 17:21 José María Alonso
2018-03-05 16:17 José María Alonso
2017-10-25 13:53 Andreas Hüttel
2017-10-24 18:47 Andreas Hüttel
2016-12-18  4:54 Andrey Grozin
2016-10-12 18:11 Pacho Ramos
2016-10-02  2:55 Andrey Grozin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox
  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):
  git send-email \
    --in-reply-to=1745795768.59d228ffb9158a090306bf6aaca1b9599d6c1d6e.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY
  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
  Be sure your reply has a Subject: header at the top and a blank line
  before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox