gentoo-ebuilds/dev-lang/xsb/xsb-4.0.0-r4.ebuild
Sam James c3d9e65b97
dev-lang/xsb: fix --Wl,--dynamic-linker typo
Add some extra '|| die' while here. Eli actually fixed one typo in this
configure check already in 3e2a234b2b.

Bug: https://bugs.gentoo.org/870970
Signed-off-by: Sam James <sam@gentoo.org>
2025-09-14 08:33:00 +01:00

226 lines
4.6 KiB
Bash

# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PATCHSET_VER="3"
inherit autotools flag-o-matic java-pkg-opt-2
DESCRIPTION="XSB is a logic programming and deductive database system"
HOMEPAGE="https://xsb.sourceforge.net"
SRC_URI="https://downloads.sourceforge.net/xsb/XSB-$(ver_rs 1-3 -).tar.gz
https://dev.gentoo.org/~keri/distfiles/xsb/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
LICENSE="GPL-2 LGPL-2"
SLOT="0"
KEYWORDS="amd64"
IUSE="curl debug iodbc java mariadb mysql odbc pcre threads xml"
RDEPEND="curl? ( net-misc/curl )
iodbc? ( dev-db/libiodbc )
java? ( >=virtual/jdk-1.8:* )
mariadb? ( dev-db/mariadb-connector-c:= )
mysql? ( dev-db/mysql-connector-c:0= )
odbc? ( dev-db/unixODBC )
pcre? ( dev-libs/libpcre )
xml? ( dev-libs/libxml2:= )"
DEPEND="${RDEPEND}"
S="${WORKDIR}"/XSB
PATCHES=(
"${WORKDIR}/${PV}"
# https://bugs.gentoo.org/870970
# https://sourceforge.net/p/xsb/bugs/265/
"${FILESDIR}"/0001-modern-C-fix-for-implicit-int.patch
"${FILESDIR}"/xsb-4.0.0-gcc14-build-fix.patch
"${FILESDIR}"/xsb-4.0.0-gcc14-sql.patch
"${FILESDIR}"/xsb-4.0.0-ld-typo.patch
)
src_prepare() {
default
cd "${S}"/build || die
eautoconf
if use mariadb ; then
sed -i \
-e "s:mysqlclient:mariadb:" \
-e "s:mysql_config:mariadb_config:" \
"${S}"/packages/dbdrivers/mysql/configure \
"${S}"/packages/dbdrivers/mysql/mysql_driver_config.P
fi
find "${S}"/packages -name Installation_summary \
| xargs rm -f || die
}
src_configure() {
# -Werror=strict-aliasing, -Werror=lto-type-mismatch
# https://bugs.gentoo.org/855659
# https://sourceforge.net/p/xsb/bugs/264/
append-flags -fno-strict-aliasing
filter-lto
cd "${S}"/build || die
econf \
--prefix=/usr/$(get_libdir) \
--disable-optimization \
--disable-ccmpl \
--without-smodels \
$(use_with odbc) \
$(use_with iodbc) \
$(use_enable threads mt) \
$(use_enable debug)
if use curl ; then
cd "${S}"/packages/curl || die
econf
fi
if use mysql || use mariadb ; then
local impl=$(usex mariadb mariadb mysql)
cd "${S}"/packages/dbdrivers/mysql || die
econf \
--with-mysql-incdir=/usr/include/${impl}
fi
if use odbc ; then
cd "${S}"/packages/dbdrivers/odbc || die
econf
fi
if use pcre ; then
cd "${S}"/packages/pcre || die
econf
fi
if use xml ; then
cd "${S}"/packages/xpath || die
econf
fi
}
src_compile() {
cd "${S}"/build || die
default
# All XSB Packages are compiled using a single Prolog engine.
# Consequently they must all be compiled using a single make job.
cd "${S}"/packages || die
rm -f *.xwam
emake -j1
if use curl ; then
emake -j1 curl
emake -j1 sgml
if use xml ; then
emake -j1 xpath
fi
fi
if use mysql || use mariadb ; then
emake -j1 mysql
fi
if use odbc ; then
emake -j1 odbc
fi
if use pcre ; then
emake -j1 pcre
fi
}
src_install() {
cd "${S}"/build || die
default
local XSB_INSTALL_DIR=/usr/$(get_libdir)/xsb-${PV}
dosym ${XSB_INSTALL_DIR}/bin/xsb /usr/bin/xsb
cd "${S}"/packages || die
local PACKAGES=${XSB_INSTALL_DIR}/packages
insinto ${PACKAGES}
doins *.xwam
insinto ${PACKAGES}/chr
doins chr/*.xwam
insinto ${PACKAGES}/clpqr
doins clpqr/*.xwam
insinto ${PACKAGES}/gap
doins gap/*.xwam
insinto ${PACKAGES}/justify
doins justify/*.xwam
doins justify/*.H
insinto ${PACKAGES}/regmatch
doins regmatch/*.xwam
insinto ${PACKAGES}/regmatch/cc
doins regmatch/cc/*.H
insinto ${PACKAGES}/slx
doins slx/*.xwam
insinto ${PACKAGES}/wildmatch
doins wildmatch/*.xwam
insinto ${PACKAGES}/wildmatch/cc
doins wildmatch/cc/*.H
if use curl ; then
insinto ${PACKAGES}/curl
doins curl/*.xwam
insinto ${PACKAGES}/curl/cc
doins curl/cc/*.H
insinto ${PACKAGES}/sgml
doins sgml/*.xwam
insinto ${PACKAGES}/sgml/cc
doins sgml/cc/*.H
insinto ${PACKAGES}/sgml/cc/dtd
doins sgml/cc/dtd/*
if use xml ; then
insinto ${PACKAGES}/xpath
doins xpath/*xwam
insinto ${PACKAGES}/xpath/cc
doins xpath/cc/*.H
fi
fi
if use mysql || use mariadb || use odbc ; then
insinto ${PACKAGES}/dbdrivers
doins dbdrivers/*.xwam
doins dbdrivers/*.H
insinto ${PACKAGES}/dbdrivers/cc
doins dbdrivers/cc/*.H
if use mysql || use mariadb ; then
insinto ${PACKAGES}/dbdrivers/mysql
doins dbdrivers/mysql/*.xwam
insinto ${PACKAGES}/dbdrivers/mysql/cc
doins dbdrivers/mysql/cc/*.H
fi
if use odbc ; then
insinto ${PACKAGES}/dbdrivers/odbc
doins dbdrivers/odbc/*.xwam
insinto ${PACKAGES}/dbdrivers/odbc/cc
doins dbdrivers/odbc/cc/*.H
fi
fi
if use pcre ; then
insinto ${PACKAGES}/pcre
doins pcre/*.xwam
insinto ${PACKAGES}/pcre/cc
doins pcre/cc/*.H
fi
cd "${S}" || die
dodoc FAQ README
}