summaryrefslogtreecommitdiff
path: root/dev-lang/swi-prolog
diff options
context:
space:
mode:
authorigna_martinoli <ignamartinoli@protonmail.com>2025-07-28 06:11:12 -0300
committerMaciej Barć <xgqt@gentoo.org>2025-07-29 00:45:58 +0200
commita49e0c269a0215847c2c9c971c0cad05e4f34e96 (patch)
treeb5b78a1f683c05133ee26db90f20ca2ad365ea24 /dev-lang/swi-prolog
parent0e89e7e1d633fa1ea02f19c59b1900419751e5ff (diff)
downloadgentoo-a49e0c269a0215847c2c9c971c0cad05e4f34e96.tar.gz
gentoo-a49e0c269a0215847c2c9c971c0cad05e4f34e96.tar.bz2
gentoo-a49e0c269a0215847c2c9c971c0cad05e4f34e96.zip
dev-lang/swi-prolog: bump to 9.3.25; fix compilation errors
This bump fixes build failure with modern glibc due to signal handler type mismatch. Newer glibc headers enforce stricter function pointer types, causing older versions of this package to fail compilation. Upgrading resolves the issue. Closes: https://bugs.gentoo.org/946573 Signed-off-by: igna_martinoli <ignamartinoli@protonmail.com> Part-of: https://github.com/gentoo/gentoo/pull/43206 Closes: https://github.com/gentoo/gentoo/pull/43206 Signed-off-by: Maciej Barć <xgqt@gentoo.org>
Diffstat (limited to 'dev-lang/swi-prolog')
-rw-r--r--dev-lang/swi-prolog/Manifest1
-rw-r--r--dev-lang/swi-prolog/swi-prolog-9.3.25.ebuild166
2 files changed, 167 insertions, 0 deletions
diff --git a/dev-lang/swi-prolog/Manifest b/dev-lang/swi-prolog/Manifest
index 80307ba64351..85238c836b07 100644
--- a/dev-lang/swi-prolog/Manifest
+++ b/dev-lang/swi-prolog/Manifest
@@ -1 +1,2 @@
+DIST swipl-9.3.25.tar.gz 12428028 BLAKE2B 1e7f641709117b765a50460421654169133aabfc2b0459418bc8c6214a13bfffd5a369f21242730a8c4d456c1c20209adc9b42f92b96b06f9b3ccd58b1bf1649 SHA512 624ce3087ab3eea927beaf5475fcd8c20b5d85e948be3bedbe06e07849ae7e4be3e6f97e422f6da7a64d785f9836b6aa40830ab4957a1a1ce0515176b84d8a6b
DIST swipl-9.3.9.tar.gz 12302913 BLAKE2B fb657c58673a250a5a0563a2efd164b491eba15402c4442a0751f2fd3dd176337fc3f8eac828014c8341b852b6546a56c755fa0488daf211329bc8ff02fb67a5 SHA512 6e7247871b6379801b52df7da22d808dd823bc3f42ec1212bd3c3f61d0363dc05135ab389ea08143b99a8b3b356bfed52a749a32a45bb434d8aa6e3514c521b9
diff --git a/dev-lang/swi-prolog/swi-prolog-9.3.25.ebuild b/dev-lang/swi-prolog/swi-prolog-9.3.25.ebuild
new file mode 100644
index 000000000000..6c7426fca3c4
--- /dev/null
+++ b/dev-lang/swi-prolog/swi-prolog-9.3.25.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="swipl-${PV}"
+inherit cmake desktop flag-o-matic java-pkg-opt-2 toolchain-funcs xdg
+
+DESCRIPTION="Versatile implementation of the Prolog programming language"
+HOMEPAGE="https://www.swi-prolog.org/"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/SWI-Prolog/swipl-devel"
+else
+ SRC_URI="https://www.swi-prolog.org/download/devel/src/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+fi
+
+LICENSE="BSD-2"
+SLOT="0"
+IUSE="X archive berkdb +cli debug doc +gmp gui +ipc java minimal odbc pcre pgo ssl test yaml"
+RESTRICT="!test? ( test )"
+
+# See cmake/PackageSelection.cmake and cmake/DocDepends.cmake
+REQUIRED_USE="
+ doc? ( archive )
+ minimal? ( !archive !doc !ipc !ssl !test )
+"
+
+COMMON_DEPEND="
+ sys-libs/ncurses:=
+ sys-libs/zlib:=
+ virtual/libcrypt:=
+ X? (
+ media-libs/freetype:2
+ media-libs/fontconfig:1.0
+ media-libs/libjpeg-turbo:=
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXft
+ x11-libs/libXinerama
+ x11-libs/libXpm
+ x11-libs/libXt
+ )
+ archive? ( app-arch/libarchive:= )
+ berkdb? ( >=sys-libs/db-4:= )
+ cli? (
+ dev-libs/libedit
+ sys-libs/readline:=
+ )
+ gmp? ( dev-libs/gmp:0= )
+ gui? ( dev-qt/qtbase:6[gui,widgets] )
+ !minimal? ( dev-libs/ossp-uuid )
+ odbc? ( dev-db/unixODBC )
+ pcre? ( dev-libs/libpcre )
+ ssl? ( dev-libs/openssl:0= )
+ yaml? ( dev-libs/libyaml )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ java? ( >=virtual/jre-1.8:* )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ X? ( x11-base/xorg-proto )
+ java? (
+ >=virtual/jdk-1.8:*
+ test? ( dev-java/junit:4 )
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+
+ sed \
+ -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" \
+ -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" \
+ -i CMakeLists.txt || die
+
+ sed "s/ -Werror//g" \
+ -i cmake/GCCBuiltins.cmake \
+ -i cmake/Config.cmake \
+ -i packages/ssl/CMakeLists.txt || die
+
+ local ncurses_lib_flags=$($(tc-getPKG_CONFIG) --libs ncurses)
+ sed -i "/project(SWI-Prolog)/a set(CMAKE_REQUIRED_LIBRARIES \${CMAKE_REQUIRED_LIBRARIES} ${ncurses_lib_flags})" CMakeLists.txt || die
+ sed -i "s:\${CURSES_LIBRARIES}:${ncurses_lib_flags}:" src/CMakeLists.txt || die
+
+ java-pkg-opt-2_src_prepare
+ cmake_src_prepare
+}
+
+src_configure() {
+ # Lots of UB, see https://gcc.gnu.org/PR113521
+ filter-lto
+ append-flags -fno-strict-aliasing
+ use debug && append-flags -DO_DEBUG
+
+ if use pgo; then
+ CMAKE_BUILD_TYPE="PGO"
+ append-flags -Wno-error=coverage-mismatch
+ fi
+
+ local mycmakeargs=(
+ -DBUILD_TESTING=$(usex test)
+ -DINSTALL_DOCUMENTATION=$(usex doc)
+ -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
+ -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
+ -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
+ -DSWIPL_PACKAGES_BDB=$(usex berkdb)
+ -DSWIPL_PACKAGES_JAVA=$(usex java)
+ -DSWIPL_PACKAGES_ODBC=$(usex odbc)
+ -DSWIPL_PACKAGES_PCRE=$(usex pcre)
+ -DSWIPL_PACKAGES_QT=$(usex gui)
+ -DSWIPL_PACKAGES_SSL=$(usex ssl)
+ -DSWIPL_PACKAGES_TERM=$(usex cli)
+ -DSWIPL_PACKAGES_TIPC=$(usex ipc)
+ -DSWIPL_PACKAGES_X=$(usex X)
+ -DSWIPL_PACKAGES_YAML=$(usex yaml)
+ -DUSE_GMP=$(usex gmp)
+ -DUSE_TCMALLOC=OFF
+ )
+
+ if use test && use java; then
+ mycmakeargs+=( -DJUNIT_JAR="${ESYSROOT}"/usr/share/junit-4/lib/junit.jar )
+ fi
+
+ export XDG_CONFIG_DIRS="${HOME}"
+ export XDG_DATA_DIRS="${HOME}"
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ if use gui; then
+ doicon "${S}"/snap/gui/swipl.png
+ make_desktop_entry swipl-win "SWI-Prolog" swipl "Development"
+ fi
+}
+
+pkg_preinst() {
+ java-pkg-opt-2_pkg_preinst
+ use gui && xdg_pkg_preinst
+}
+
+pkg_postinst() {
+ use gui && xdg_pkg_postinst
+}
+
+pkg_postrm() {
+ use gui && xdg_pkg_postrm
+}