From 73f467849e8c4749bedbf9cad742d2708287480b Mon Sep 17 00:00:00 2001 From: Jerry James Date: Tue, 9 Dec 2025 06:39:56 -0700 Subject: [PATCH] Version 10.0.0 - Drop upstreamed C23 patch - Add patch to properly detect the secure_getenv function - Figure the License fields out all over again - Rename swi-prolog-nox to swi-prolog-cli - Combine swi-prolog-x into swi-prolog-win --- licenses.txt | 221 +++++++++++++++++ pl.spec | 401 +++++++++++++++---------------- sources | 3 +- swipl-10.0.0-secure-getenv.patch | 13 + swipl-9.2.9-c23.patch | 11 - 5 files changed, 424 insertions(+), 225 deletions(-) create mode 100644 licenses.txt create mode 100644 swipl-10.0.0-secure-getenv.patch delete mode 100644 swipl-9.2.9-c23.patch diff --git a/licenses.txt b/licenses.txt new file mode 100644 index 0000000..bab9088 --- /dev/null +++ b/licenses.txt @@ -0,0 +1,221 @@ +The swipl project is released under the BSD-2-Clause license. Exceptions are +noted below. The status of each file is indicated with the following codes: + +BD = in the swi-prolog-bdb package +CL = in the swi-prolog-cli package +CP = in the swi-prolog-core-packages package +CR = in the swi-prolog-core package +DC = in the swi-prolog-doc package +FL = in the swi-prolog-full package +JV = in the swi-prolog-java pacakge +MN = in the main package, swi-prolog +NP = not packaged; these files do not influence the package License field +OD = in the swi-prolog-odbc package +TS = in the swi-prolog-test package +WN = in the swi-prolog-win package + +bcrypt-Solar-Designer +--------------------- +CL packages/ssl/crypt_blowfish.{c,h} + +Beerware +-------- +CP packages/clib/md5passwd.c + +Brian-Gladman-3-Clause OR GPL-1.0-or-later +------------------------------------------ +CP packages/clib/sha1/brg_endian.h +CP packages/clib/sha1/brg_types.h +CP packages/clib/sha1/hmac.{c,h} +CP packages/clib/sha1/pwd2key.{c,h} +CP packages/clib/sha1/sha* +CR src/pl-termhash.{c,h} + +BSD-2-Clause AND BSD-3-Clause +----------------------------- +CL packages/libedit/libedit4pl.c + +BSD-2-Clause AND FBM AND HPND-Pbmplus +------------------------------------- +WN packages/xpce/src/img/gifwrite.c + +BSD-2-Clause AND GPL-2.0-or-later +--------------------------------- +TS src/Tests/core/test_coroutining.pl + +BSD-2-Clause AND IJG +-------------------- +WN packages/xpce/src/img/jdatadst.c +WN packages/xpce/src/img/jdatasrc.c + +BSD-2-Clause AND LicenseRef-Fedora-Public-Domain +------------------------------------------------ +CR library/aggregate.pl +WN packages/xpce/src/gra/colour.c + +BSD-2-Clause AND MIT +-------------------- +CP packages/http/http_stream.pl +CP packages/http/multipart.c + +BSD-2-Clause AND Unicode-DFS-2016 +--------------------------------- +CR library/blocks.pl + +BSD-2-Clause OR Artistic-2.0 +---------------------------- +CP library/ugraphs.pl + +BSD-3-Clause +------------ +CP packages/clib/bsd-crypt.c +NP packages/libedit/libedit/* +NP packages/odbc/cmake/FindODBC.cmake +NP packages/protobufs/interop/google/protobuf/unittest* +CL packages/tipc/tipcutils/tipc-config.c +NP packages/xpce/cmake/FindFontConfig.cmake +CR src/libbf/mersenne-twister.{c,h} + +CC-BY-SA-3.0 +------------ +DC man/main.doc +WN packages/xpce/man/course/doc.doc +WN packages/xpce/man/info/titlepage.def + +dtoa +---- +CR src/os/dtoa.c + +Free for non-commercial use +--------------------------- +NP bench/unify.pl (removed from tarball) +NP bench/simple_analyzer.pl (removed from tarball) + +GFDL-1.3-no-invariants-or-later +------------------------------- +CP packages/sweep/sweep.texi + +GPL-1.0-or-later OR Artistic-1.0-Perl +------------------------------------- +CP packages/nlp/double_metaphone.c + +GPL-2.0-or-later +---------------- +NP repackage.sh (not included in the upstream tarball) +NP packages/xpce/man/info/texinfo.tex + +GPL-2.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain +----------------------------------------------------------------------------- +WN packages/xpce/src/gnu/getdate.c + +GPL-2.0-or-later with SWI-exception +----------------------------------- +CP packages/clpqr/* +CP packages/http/http_server_health.pl +TS src/Tests/compile/test_autoload.pl +TS tests/library/test_pio.pl + +GPL-3.0-or-later +---------------- +CP packages/sweep/emacs-module.h + +Knuth-CTAN +---------- +DC man/name.bst +WN packages/xpce/TeX/name.bst + +LGPL-2.0-only +------------- +NP cmake/TestSignalType.cmake + +LGPL-2.0-or-later +----------------- +CP packages/nlp/isub.c + +LGPL-2.1-or-later +----------------- +TS src/Tests/core/test_arith.pl +TS src/Tests/core/test_bips.pl +TS src/Tests/core/test_dcg.pl +TS src/Tests/core/test_sort.pl +TS src/Tests/core/test_subsumes.pl + +LicenseRef-Fedora-Public-Domain +------------------------------- +NP bench/programs/derive.pl +NP bench/programs/divide10.pl +NP bench/programs/eval.pl +NP bench/programs/fib.pl +NP bench/programs/log10.pl +NP bench/programs/nreverse.pl +NP bench/programs/ops8.pl +NP bench/programs/qsort.pl +NP bench/programs/queens_clpfd.pl +NP bench/programs/query.pl +NP bench/programs/serialise.pl +NP bench/programs/sieve.pl +NP bench/programs/times10.pl +CR library/dialect/bim.pl +NP packages/clib/demo/* +NP packages/cpp/likes.cpp +NP packages/http/examples/demo_body.pl +NP packages/http/examples/demo_daemon.pl +CP packages/semweb/murmur.{c,h} +NP packages/ssl/https.pl +NP packages/stomp/examples/* +NP packages/swipy/tests/russel.pl +WN packages/xpce/man/course/bib.pl +WN packages/xpce/man/course/fam.pl +WN packages/xpce/man/course/ftp.pl +WN packages/xpce/man/course/learner.pl +WN packages/xpce/man/course/lib/prompt.pl +WN packages/xpce/man/info/dialog.pl +WN packages/xpce/man/info/which.pl +WN packages/xpce/man/info/window.pl +WN packages/xpce/man/reference/class/image.doc +WN packages/xpce/man/userguide/examples/graphedit.pl +WN packages/xpce/src/gnu/getdate-source.y +WN packages/xpce/src/gnu/y.tab +NP scripts/swipl-bt +CR src/pl-hash.{c,h} +CR src/libtai/* +NP src/tools/functions.pm +NP src/tools/update-deps + +LPPL-1.3c +--------- +DC man/bk9.clo +DC man/swipl.cls + +MIT +--- +NP bench/programs/chat_parser.pl +NP packages/http/web/js/jquery* +CP packages/mqi/python/* +NP packages/pcre/cmake/FindPCRE.cmake +NP packages/swipy/test_xsb_janus.pl +NP packages/swipy/xsb_tests/* +CR src/libbf/cutils.{c,h} +CR src/libbf/libbf.{c,h} + +MIT AND Unicode-DFS-2015 +------------------------ +CP packages/utf8proc/* + +Spencer-99 AND TCL AND PostgreSQL +--------------------------------- +WN packages/xpce/src/rgx/* + +W3C +--- +CP packages/sgml/DTD/* + +X11 +--- +NP packages/xpce/deps/xpm/* + +Zlib +---- +CP packages/clib/md5.{c,h} +CP packages/semweb/md5.{c,h} +CR src/minizip/* diff --git a/pl.spec b/pl.spec index 8c71abf..322ecbd 100644 --- a/pl.spec +++ b/pl.spec @@ -2,18 +2,19 @@ %global swipl_arch %{_target_cpu}-linux Name: pl -Version: 9.2.9 +Version: 10.0.0 Release: %autorelease Summary: ISO/Edinburgh-style Prolog interpreter +# For the license breakdown, see licenses.txt, Source2 License: BSD-2-Clause URL: https://www.swi-prolog.org/ VCS: git:https://github.com/SWI-Prolog/swipl.git # Source0: %%{url}download/stable/src/swipl-%%{version}.tar.gz # To create the repackaged archive, use ./repackage.sh %%{version} Source0: swipl-%{version}_repackaged.tar.gz -Source1: %{url}download/xpce/doc/userguide/userguide.html.tgz -Source2: repackage.sh +Source1: repackage.sh +Source2: licenses.txt # Use JNI for Java binding Patch0: swipl-8.2.1-Fix-JNI.patch # Upstream installation paths differ from distribution ones @@ -24,9 +25,8 @@ Patch2: swipl-8.2.0-unbundle-libstemmer.patch Patch3: swipl-9.2.7-inclpr-math.patch # Use zlib-ng directly rather than via the zlib compatibility interface Patch4: swipl-9.2.9-zlib-ng.patch -# Adapt to changed semantics of "type f();" in C23 -# https://github.com/SWI-Prolog/swipl/pull/33 -Patch5: swipl-9.2.9-c23.patch +# Fix detection of the secure_getenv function +Patch5: swipl-10.0.0-secure-getenv.patch # See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} @@ -37,59 +37,56 @@ BuildRequires: findutils BuildRequires: gcc-c++ BuildRequires: ninja-build # Base -BuildRequires: gmp-devel +BuildRequires: cmake(zlib-ng) BuildRequires: libatomic BuildRequires: pkgconfig -BuildRequires: pkgconfig(libedit) +BuildRequires: pkgconfig(gmp) BuildRequires: pkgconfig(libpcre2-posix) BuildRequires: pkgconfig(libtcmalloc) BuildRequires: pkgconfig(ncurses) BuildRequires: pkgconfig(readline) # archive BuildRequires: pkgconfig(libarchive) -# http -BuildRequires: js-jquery -# XPCE -BuildRequires: pkgconfig(fontconfig) -BuildRequires: pkgconfig(freetype2) -BuildRequires: pkgconfig(libjpeg) -BuildRequires: pkgconfig(x11) -BuildRequires: pkgconfig(xext) -BuildRequires: pkgconfig(xft) -BuildRequires: pkgconfig(xinerama) -BuildRequires: pkgconfig(xpm) -BuildRequires: pkgconfig(xrandr) -BuildRequires: pkgconfig(xt) -BuildRequires: texinfo-tex # bdb BuildRequires: libdb-devel -# mqi / swiplserver -BuildRequires: python3-devel -# ODBC -BuildRequires: pkgconfig(odbc) -# SSL -BuildRequires: openssl -BuildRequires: pkgconfig(openssl) +# crypt +BuildRequires: libxcrypt-devel +# http +BuildRequires: js-jquery # jpl %ifarch %{java_arches} BuildRequires: java-25-devel BuildRequires: mvn(junit:junit) BuildRequires: mvn(org.hamcrest:hamcrest) %endif +# mqi / swiplserver +BuildRequires: python3-devel # nlp BuildRequires: libstemmer-devel +# ODBC +BuildRequires: pkgconfig(odbc) +# SSL +BuildRequires: openssl +BuildRequires: pkgconfig(openssl) # sweep BuildRequires: emacs-devel +# term +BuildRequires: pkgconfig(libedit) # uuid BuildRequires: pkgconfig(ossp-uuid) # win -BuildRequires: pkgconfig(Qt6) +BuildRequires: cmake(Qt6) +# XPCE +BuildRequires: cmake(SDL3) +BuildRequires: cmake(SDL3_image) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(xpm) +BuildRequires: texinfo-tex # yaml BuildRequires: pkgconfig(yaml-0.1) -# zlib -BuildRequires: pkgconfig(zlib-ng) -# crypt -BuildRequires: libxcrypt-devel # Doc building # Gated to Fedora as EL is currently missing tex(a4wide.sty) @@ -99,8 +96,7 @@ BuildRequires: tex(a4wide.sty) BuildRequires: tex(tabulary.sty) %endif -%global _desc %{expand: -SWI-Prolog is a fast and powerful ISO/Edinburgh-style Prolog compiler with a +%global _desc %{expand:SWI-Prolog is a fast and powerful ISO/Edinburgh-style Prolog compiler with a rich set of built-in predicates. It offers a fast, robust and small environment which enables substantial applications to be developed with it. @@ -112,57 +108,17 @@ SWI-Prolog additionally offers: * Unbounted integer and rational number arithmetic * Multithreading support * A powerful C/C++ interface -* GNU Readline interface -} +* GNU Readline interface} -%description %_desc - -# Not compiled into a binary package: -#External: repackage.sh GPL-2.0-or-later -#bench/ Various licenses -#packages/RDF/configure FSFUL -#packages/clib/configure FSFUL -#packagfes/clib/demo/ Public Domain -#packages/clpqr/.fileheader GPL-2.0-or-later with SWI exception -#packages/clpqr/configure FSFUL -#packages/cpp/configure FSFUL -#packages/http/examples/ LicenseRef-Fedora-Public-Domain -#packages/http/web/js/jquery* MIT -#packages/nlp/configure FSFUL -#packages/pcre/cmake/FindPCRE.cmake MIT -#packages/protobufs/configure FSFUL -#packages/sgml/configure FSFUL -#packages/ssl/configure FSFUL -#packages/ssl/https.pl LicenseRef-Fedora-Public-Domain -#packages/stomp/examples/ LicenseRef-Fedora-Public-Domain -#packages/swipy/tests/ LicenseRef-Fedora-Public-Domain -#packages/utf8proc/LICENSE MIT AND Unicode-DFS-2015 -#packages/utf8proc/data_generator.rb MIT AND Unicode-DFS-2015 -#packages/utf8proc/ruby/gem/LICENSE MIT AND Unicode-DFS-2015 -#packages/xpce/TeX/name.bst LicenseRef-Bibtex -#packages/xpce/deps/xpm/ X11 -#packages/xpce/src/configure FSFUL -#packages/xpce/src/msw/simx.h SGI-B-2.0 -#packages/xpce/src/msw/xpm.h SGI-B-2.0 -#packages/zlib/configure FSFUL -#scripts/swipl-bt LicenseRef-Fedora-Public-Domain -#src/libbf/cutils.c MIT -#src/libbf/cutils.h MIT -#src/libbf/libbf.c MIT -#src/libbf/libbf.h MIT -#src/tools/functions.pm LicenseRef-Fedora-Public-Domain -#src/tools/update-deps LicenseRef-Fedora-Public-Domain -# Removed from repackaged tar ball, see -# : -#bench/unify.pl Free for non-commercial -#bench/simple_analyzer.pl Free for non-commercial +%description +%_desc %package -n swi-prolog Summary: ISO/Edinburgh-style Prolog interpreter BuildArch: noarch Requires: swi-prolog-doc = %{version}-%{release} -Requires: swi-prolog-nox = %{version}-%{release} -Requires: swi-prolog-x = %{version}-%{release} +Requires: swi-prolog-cli = %{version}-%{release} +Requires: swi-prolog-win = %{version}-%{release} # This can be removed when F45 reaches EOL Obsoletes: pl < 9.2.9-2 @@ -172,7 +128,9 @@ Provides: pl-devel = %{version}-%{release} Obsoletes: pl-compat-yap-devel < 9.2.9-2 Provides: pl-compat-yap-devel = %{version}-%{release} -%description -n swi-prolog %_desc +%description -n swi-prolog +%_desc + This is a metapackage, which installs the SWI-Prolog suite, except Java, ODBC, Berkeley DB support and tests. @@ -185,26 +143,25 @@ Requires: swi-prolog-java = %{version}-%{release} Requires: swi-prolog-odbc = %{version}-%{release} Requires: swi-prolog-win = %{version}-%{release} -%description -n swi-prolog-full %_desc +%description -n swi-prolog-full +%_desc + This is a metapackage, which installs the full SWI-Prolog suite, except tests. %package -n swi-prolog-core # NOTE: There is no swi-prolog-core-devel package. Instead, the header files # and other development files are included in this package. It is a Prolog # compiler, and therefore is a development package itself. -# -# The project as a whole is distributed under the BSD-2-Clause license. -# These files carry different licenses: -# library/aggregate.pl BSD-2-Clause AND LicenseRef-Fedora-Public-Domain -# library/dialect/bim.pl LicenseRef-Fedora-Public-Domain -# library/unicode/blocks.pl BSD-2-Clause AND Unicode-DFS-2016 -# src/libbf/mersenne-twister.c BSD-3-Clause -# src/libbf/mersenne-twister.h BSD-3-Clause -# src/libtai/ LicenseRef-Fedora-Public-Domain -# src/minizip/ Zlib -# src/os/dtoa.c dtoa -# src/pl-hash.{c,h} LicenseRef-Fedora-Public-Domain -License: BSD-2-Clause AND BSD-3-Clause AND LicenseRef-Fedora-Public-Domain AND Unicode-DFS-2016 AND Zlib AND dtoa +License: %{shrink: + BSD-2-Clause AND + (Brian-Gladman-3-Clause OR GPL-1.0-or-later) AND + BSD-3-Clause AND + dtoa AND + LicenseRef-Fedora-Public-Domain AND + MIT AND + Unicode-DFS-2016 AND + Zlib + } Summary: ISO/Edinburgh-style Prolog interpreter - core system Recommends: swi-prolog-bdb%{?_isa} = %{version}-%{release} Recommends: swi-prolog-core-packages%{?_isa} = %{version}-%{release} @@ -215,35 +172,29 @@ Recommends: swi-prolog-odbc%{?_isa} = %{version}-%{release} # Old version of minizip is bundled Provides: bundled(minizip) = 1.3.1 -%description -n swi-prolog-core %_desc +%description -n swi-prolog-core +%_desc + This package contains the core SWI-Prolog system. %package -n swi-prolog-core-packages -# The project as a whole is distributed under the BSD-2-Clause license. -# These files carry different licenses: -# library/ugraphs.pl BSD-2-Clause OR Artistic-2.0 -# packages/clib/bsd-crypt.c BSD-3-Clause -# packages/clib/md5.{c,h} Zlib -# packages/clib/md5passwd.c Beerware -# packages/clib/sha1/ Brian-Gladman-3-Clause OR GPL-1.0+ -# packages/clpqr/ GPL-2.0-or-later with SWI-exception -# packages/http/http_server_health.pl GPL-2.0-or-later with SWI-exception -# packages/http/http_stream.pl BSD-2-Clause AND MIT -# packages/http/multipart.c BSD-2-Clause AND MIT -# packages/mqi/python/ MIT -# packages/nlp/double_metaphone.c GPL-1.0-or-later OR Artistic-1.0-Perl -# packages/nlp/isub.c LGPL-2.0-or-later -# packages/protobufs/interop/google/ BSD-3-Clause -# packages/semweb/md5.{c,h} Zlib -# packages/semweb/murmur.{c,h} LicenseRef-Fedora-Public-Domain -# packages/sgml/DTD/ W3C -# packages/sweep/emacs-module.h GPL-3.0-or-later -# packages/sweep/sweep.texi GFDL-1.3-no-invariants-or-later -# packages/utf8proc/ MIT AND Unicode-DFS-2015 -# -# Note that packages/redis/redis.pl was relicensed. It contains a note about -# the former license (MIT), but is no longer distributed under that license. -License: BSD-2-Clause AND (Brian-Gladman-3-Clause OR GPL-1.0-or-later) AND (BSD-2-Clause OR Artistic-2.0) AND BSD-3-Clause AND Beerware AND GFDL-1.3-no-invariants-or-later AND (GPL-1.0-or-later OR Artistic-1.0-Perl) AND GPL-2.0-or-later with SWI-exception AND GPL-3.0-or-later AND LGPL-2.0-or-later AND LicenseRef-Fedora-Public-Domain AND MIT AND Unicode-DFS-2015 AND W3C AND Zlib +License: %{shrink: + BSD-2-Clause AND + Beerware AND + (Brian-Gladman-3-Clause OR GPL-1.0-or-later) AND + (BSD-2-Clause OR Artistic-2.0) AND + BSD-3-Clause AND + GFDL-1.3-no-invariants-or-later AND + (GPL-1.0-or-later OR Artistic-1.0-Perl) AND + GPL-2.0-or-later WITH SWI-exception AND + GPL-3.0-or-later AND + LGPL-2.0-or-later AND + LicenseRef-Fedora-Public-Domain AND + MIT AND + Unicode-DFS-2016 AND + W3C AND + Zlib + } Summary: ISO/Edinburgh-style Prolog interpreter - core packages Requires: swi-prolog-core%{?_isa} = %{version}-%{release} Requires: js-jquery @@ -257,16 +208,18 @@ Recommends: swi-prolog-odbc%{?_isa} = %{version}-%{release} # See https://fedoraproject.org/wiki/Bundled_Libraries_Virtual_Provides Provides: bundled(md5-deutsch) -%description -n swi-prolog-core-packages %_desc +# An old version of ut8proc is bundled, not fully compatible with the 2.x +# versions available in Fedora +Provides: bundled(utf8proc) = 1.1.6 + +%description -n swi-prolog-core-packages +%_desc + This package contains the core SWI-Prolog packages. -%package -n swi-prolog-nox -# The project as a whole is distributed under the BSD-2-Clause license. -# These files carry different licenses: -# packages/ssl/crypt_blowfish.{c,h} bcrypt-Solar-Designer -# packages/tipc/tipcutils/tipc-config.c BSD-3-Clause +%package -n swi-prolog-cli License: BSD-2-Clause AND BSD-3-Clause AND bcrypt-Solar-Designer -Summary: ISO/Edinburgh-style Prolog interpreter - without X support +Summary: ISO/Edinburgh-style Prolog interpreter - command line interface Requires: swi-prolog-core%{?_isa} = %{version}-%{release} Requires: swi-prolog-core-packages%{?_isa} = %{version}-%{release} Recommends: swi-prolog-bdb%{?_isa} = %{version}-%{release} @@ -274,31 +227,46 @@ Recommends: swi-prolog-doc = %{version}-%{release} Recommends: swi-prolog-java%{?_isa} = %{version}-%{release} Recommends: swi-prolog-odbc%{?_isa} = %{version}-%{release} -%description -n swi-prolog-nox %_desc -This package contains a SWI-Prolog installation without GUI components. +# This can be removed when F47 reaches EOL +Obsoletes: swi-prolog-nox < 10.0.0 +Provides: swi-prolog-nox = %{version}-%{release} -%package -n swi-prolog-x -# The project as a whole is distributed under the BSD-2-Clause license. -# These files carry different licenses: -# packages/xpce/man/course CC-BY-SA-3.0 -# packages/xpce/man/info CC-BY-SA-3.0 -# packages/xpce/src/gnu/getdate.c LicenseRef-Fedora-Public-Domain AND -# GPL-2.0-or-later WITH Bison-exception-2.2 -# packages/xpce/src/gnu/getdate-source.y LicenseRef-Fedora-Public-Domain -# packages/xpce/src/gnu/y.tab LicenseRef-Fedora-Public-Domain -# packages/xpce/src/img/gifwrite.c BSD-2-Clause AND FBM AND HPND-Pbmplus -# packages/xpce/src/img/jdatadst.c BSD-2-Clause AND IJG -# packages/xpce/src/rgx/ Spencer-99 AND TCL AND PostgreSQL -# packages/xpce/src/x11/xdnd.{c,h} LGPL-2.0-or-later -License: BSD-2-Clause AND CC-BY-SA-3.0 AND FBM AND GPL-2.0-or-later WITH Bison-exception-2.2 AND HPND-Pbmplus AND IJG AND LGPL-2.0-or-later AND LicenseRef-Fedora-Public-Domain AND PostgreSQL AND Spencer-99 AND TCL -Summary: ISO/Edinburgh-style Prolog interpreter - with X support -Requires: swi-prolog-nox%{?_isa} = %{version}-%{release} +%description -n swi-prolog-cli +%_desc + +This package contains a SWI-Prolog installation with a command line interface +but no GUI components. + +%package -n swi-prolog-win +License: %{shrink: + BSD-2-Clause AND + CC-BY-SA-3.0 AND + FBM AND + GPL-2.0-or-later WITH Bison-exception-2.2 AND + HPND-Pbmplus AND + IJG AND + Knuth-CTAN AND + LicenseRef-Fedora-Public-Domain AND + PostgreSQL AND + Spencer-99 AND + TCL + } +Summary: ISO/Edinburgh-style Prolog interpreter - with GUI support +Requires: swi-prolog-cli%{?_isa} = %{version}-%{release} +Requires: hicolor-icon-theme +Requires: shared-mime-info%{?_isa} # This can be removed when F45 reaches EOL Obsoletes: pl-xpce < 9.2.9-2 Provides: pl-xpce = %{version}-%{release} -%description -n swi-prolog-x %_desc +# This can be removed when F47 reaches EOL +Obsoletes: swi-prolog-x < 10.0.0 +Provides: swi-prolog-x = %{version}-%{release} + +%description -n swi-prolog-win +%_desc + This package contains XPCE, an object-oriented symbolic programming environment for user interfaces. Although XPCE was designed to be language-independent, it has gained the most popularity with Prolog. XPCE @@ -312,7 +280,7 @@ follows a rather unique approach for developing GUI applications, as follows: %ifarch %{java_arches} %package -n swi-prolog-java Summary: Bidirectional interface between SWI-Prolog and Java -Requires: swi-prolog-nox%{?_isa} = %{version}-%{release} +Requires: swi-prolog-cli%{?_isa} = %{version}-%{release} Requires: java-25-headless Requires: javapackages-tools @@ -320,7 +288,9 @@ Requires: javapackages-tools Obsoletes: pl-jpl < 9.2.9-2 Provides: pl-jpl = %{version}-%{release} -%description -n swi-prolog-java %_desc +%description -n swi-prolog-java +%_desc + This package provides JPL, a library using the SWI-Prolog foreign interface and the Java Native Interface to provide a bidirectional interface between Java and Prolog. Prolog can be embedded in Java, and Java can be embedded in @@ -329,13 +299,15 @@ Prolog. It provides a reentrant bidirectional interface in both cases. %package -n swi-prolog-odbc Summary: SWI-Prolog ODBC interface -Requires: swi-prolog-nox%{?_isa} = %{version}-%{release} +Requires: swi-prolog-cli%{?_isa} = %{version}-%{release} # This can be removed when F45 reaches EOL Obsoletes: pl-odbc < 9.2.9-2 Provides: pl-odbc = %{version}-%{release} -%description -n swi-prolog-odbc %_desc +%description -n swi-prolog-odbc +%_desc + The value of RDMS for Prolog is often overestimated, as Prolog itself can manage substantial amounts of data. Nevertheless a Prolog/RDMS interface provides advantages if data is already provided in an RDMS, data must be @@ -352,23 +324,21 @@ constraint. %package -n swi-prolog-bdb Summary: SWI-Prolog Berkeley DB interface -Requires: swi-prolog-nox%{?_isa} = %{version}-%{release} +Requires: swi-prolog-cli%{?_isa} = %{version}-%{release} + +%description -n swi-prolog-bdb +%_desc -%description -n swi-prolog-bdb %_desc This package provides a foreign language extension to the Berkeley DB (libdb) embedded database. %package -n swi-prolog-doc -# The project as a whole is distributed under the BSD-2-Clause license. -# These files carry different licenses: -# man/bk9.co LPPL-1.3a+ -# man/main.doc CC-BY-SA-3.0 -# man/name.bst Knuth-CTAN -# man/swipl.cls LPPL-1.3a+ -# The PDF of the manual contains embedded fonts with these licenses: -# CM: Knuth-CTAN -# Nimbus: AGPL-3.0-only -License: BSD-2-Clause AND AGPL-3.0-only AND CC-BY-SA-3.0 AND Knuth-CTAN AND LPPL-1.3a+ +License: %{shrink: + BSD-2-Clause AND + CC-BY-SA-3.0 AND + Knuth-CTAN AND + LPPL-1.3c + } Summary: Documentation and examples for SWI-Prolog BuildArch: noarch Requires: swi-prolog-core = %{version}-%{release} @@ -377,38 +347,36 @@ Requires: swi-prolog-core = %{version}-%{release} Obsoletes: pl-doc < 9.2.9-2 Provides: pl-doc = %{version}-%{release} -%description -n swi-prolog-doc %_desc +%description -n swi-prolog-doc +%_desc + This package provides documentation and examples. %package -n swi-prolog-test -# The project as a whole is distributed under the BSD-2-Clause license. -# These files carry different licenses: -# src/Tests/compile/test_autoload.pl GPL-2.0-or-later WITH SWI-exception -# src/Tests/core/test_arith.pl LGPL-2.1-or-later -# src/Tests/core/test_coroutining.pl BSD-2-Clause AND GPL-2.0-or-later -License: BSD-2-Clause AND GPL-2.0-or-later AND GPL-2.0-or-later WITH SWI-exception AND LGPL-2.1-or-later +License: %{shrink: + BSD-2-Clause AND + GPL-2.0-or-later AND + GPL-2.0-or-later WITH SWI-exception AND + LGPL-2.1-or-later + } Summary: Tests and checks for SWI-Prolog BuildArch: noarch -Requires: swi-prolog-nox = %{version}-%{release} +Requires: swi-prolog-cli = %{version}-%{release} + +%description -n swi-prolog-test +%_desc -%description -n swi-prolog-test %_desc This package provides a set of prepared tests and checks for installed SWI-Prolog systems. This package is intended for SWI-Prolog development and is of no use for ordinary users. If you are not sure if you need this package, you do not. -%package -n swi-prolog-win -Summary: SWI-Prolog GUI interface -Requires: swi-prolog-core%{?_isa} = %{version}-%{release} - -%description -n swi-prolog-win %_desc -This package provides a Qt-based GUI for SWI-Prolog. - %prep %global docdir doc-install %autosetup -N -n swipl-%{version} %patch -P0 -p1 -b .jni %autopatch -p1 -m1 +cp -p %{SOURCE2} . %conf # Fix the installation path on 64-bit systems @@ -418,16 +386,6 @@ if [ "%{_lib}" = "lib64" ]; then -i cmake/LocationsPostPorts.cmake fi -# Unpack the XPCE user guide -mkdir %{docdir}-xpce -pushd %{docdir}-xpce -tar -xzf %{SOURCE1} -mv UserGuide xpce-UserGuide -popd - -# Get the Java config sources -cp -p %{SOURCE2} . - # Adjustments to take into account the new location of JNI stuff sed -i 's#LIBDIR#%{_libdir}#g' packages/jpl/jpl.pl sed -i.jni -e 's#LIBDIR#"%{_libdir}/swipl-jpl"#g' packages/jpl/src/main/java/org/jpl7/JPL.java @@ -437,12 +395,15 @@ sed -i.jni -e 's#LIBDIR#"%{_libdir}/swipl-jpl"#g' packages/jpl/src/main/java/org cp -p packages/jpl/jpl.pl packages/jpl/jpl.pl.install cp -p packages/jpl/jpl.pl.jni packages/jpl/jpl.pl +# Do not use the bundled libedit +rm -fr packages/libedit/libedit + # Do not use the bundled libstemmer rm -fr packages/nlp/libstemmer_c # Do not use the bundled texinfo.tex rm packages/xpce/man/info/texinfo.tex -ln -s %{_texmf}/tex/texinfo/texinfo.tex packages/xpce/man/info +ln -s %{_texmf_main}/tex/texinfo/texinfo.tex packages/xpce/man/info # Avoid a clash on doc names cp -p customize/README.md README-customize.md @@ -471,6 +432,7 @@ export DISABLE_PKGS="jpl" -DSWIPL_INSTALL_IN_LIB:BOOL=ON \ -DSWIPL_INSTALL_IN_SHARE:BOOL=ON \ -DSWIPL_VERSIONED_DIR:BOOL=OFF \ + -DSYSTEM_LIBEDIT:BOOL=ON \ -DUSE_TCMALLOC:BOOL=ON \ -G Ninja @@ -500,19 +462,18 @@ chmod 0755 \ %{buildroot}%{_datadir}/swipl/doc/packages/examples/protobufs/interop/test_write.py \ %{buildroot}%{_datadir}/swipl/doc/packages/examples/stomp/server-loop.sh \ %{buildroot}%{_libdir}/swipl/customize/edit \ - %{buildroot}%{_libdir}/swipl/library/dialect/sicstus/swipl-lfr.pl \ - %{buildroot}%{_libdir}/swipl/test/Tests/xsb/delay_tests/*.sh \ - %{buildroot}%{_libdir}/swipl/test/Tests/xsb/ptq/*.sh \ - %{buildroot}%{_libdir}/swipl/test/Tests/xsb/wfs_tests/*.sh + %{buildroot}%{_libdir}/swipl/test/xsb/delay_tests/*.sh \ + %{buildroot}%{_libdir}/swipl/test/xsb/ptq/*.sh \ + %{buildroot}%{_libdir}/swipl/test/xsb/wfs_tests/*.sh # Some XPCE files do not get installed cp -p packages/xpce/man/*.1 %{buildroot}%{_mandir}/man1 cp -a packages/xpce/man/course %{buildroot}%{_libdir}/swipl/xpce/man # Let LaTeX know about the style file -mkdir -p %{buildroot}%{_texmf}/tex/latex/swi-prolog +mkdir -p %{buildroot}%{_texmf_main}/tex/latex/swi-prolog ln -s %{_libdir}/swipl/library/ext/pldoc/pldoc/pldoc.sty \ - %{buildroot}%{_texmf}/tex/latex/swi-prolog/pldoc.sty + %{buildroot}%{_texmf_main}/tex/latex/swi-prolog/pldoc.sty # Install the sweep info file mkdir -p %{buildroot}%{_infodir} @@ -548,8 +509,22 @@ cd - rm %{buildroot}%{_libdir}/swipl/{LICENSE,README.md} rm %{buildroot}%{_libdir}/swipl/customize/README.md rm %{buildroot}%{_libdir}/swipl/lib/swiplserver/LICENSE -rm %{buildroot}%{_libdir}/swipl/test/Tests/xsb/.gitignore -rm %{buildroot}%{_libdir}/swipl/xpce/man/course/.gitignore +find %{buildroot}%{_libdir} -name .gitignore -delete + +# Move the desktop files to where we really want them +mkdir -p %{buildroot}%{_datadir}/applications +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/64x64/apps +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/96x96/apps +mkdir -p %{buildroot}%{_datadir}/mime/packages +mv %{buildroot}%{_libdir}/swipl/desktop/*.desktop \ + %{buildroot}%{_datadir}/applications +mv %{buildroot}%{_libdir}/swipl/desktop/swipl.png \ + %{buildroot}%{_datadir}/icons/hicolor/64x64/apps +mv %{buildroot}%{_libdir}/swipl/desktop/swipl-cli.png \ + %{buildroot}%{_datadir}/icons/hicolor/96x96/apps +mv %{buildroot}%{_libdir}/swipl/desktop/prolog-mime.xml \ + %{buildroot}%{_datadir}/mime/packages +rmdir %{buildroot}%{_libdir}/swipl/desktop # Link duplicates %fdupes %{buildroot}%{_datadir}/swipl @@ -567,12 +542,13 @@ cp -p packages/jpl/jpl.pl.install packages/jpl/jpl.pl %files -n swi-prolog-full %files -n swi-prolog-core -%license LICENSE +%license LICENSE licenses.txt %doc README.md README-customize.md %{_bindir}/swipl %{_bindir}/swipl-ld %{_libdir}/cmake/swipl/ %dir %{_libdir}/swipl/ +%{_libdir}/swipl/ABI %dir %{_libdir}/swipl/bin/ %{_libdir}/swipl/bin/swipl.home %dir %{_libdir}/swipl/bin/%{swipl_arch}/ @@ -600,7 +576,7 @@ cp -p packages/jpl/jpl.pl.install packages/jpl/jpl.pl %{_libdir}/swipl/library/theme/ %{_libdir}/swipl/library/unicode/ %{_libdir}/swipl/swipl.home -%{_libdir}/libswipl.so.9* +%{_libdir}/libswipl.so.10{,.*} %{_libdir}/libswipl.so %{_mandir}/man1/swipl* %{_datadir}/pkgconfig/swipl.pc @@ -665,6 +641,7 @@ cp -p packages/jpl/jpl.pl.install packages/jpl/jpl.pl %{_libdir}/swipl/library/ext/clpqr %{_libdir}/swipl/library/ext/http/ %{_libdir}/swipl/library/ext/inclpr/ +%{_libdir}/swipl/library/ext/json/ %{_libdir}/swipl/library/ext/ltx2htm/ %{_libdir}/swipl/library/ext/mqi/ %{_libdir}/swipl/library/ext/nlp/ @@ -685,30 +662,36 @@ cp -p packages/jpl/jpl.pl.install packages/jpl/jpl.pl %{_libdir}/swipl/library/http/ %{_libdir}/swipl/library/protobufs/ %{_libdir}/swipl/library/semweb/ -%{_texmf}/tex/latex/swi-prolog/ +%{_texmf_main}/tex/latex/swi-prolog/ -%files -n swi-prolog-nox +%files -n swi-prolog-cli %{_libdir}/swipl/app/ %{_libdir}/swipl/lib/%{swipl_arch}/archive4pl.so %{_libdir}/swipl/lib/%{swipl_arch}/crypto4pl.so %{_libdir}/swipl/lib/%{swipl_arch}/libedit4pl.so %{_libdir}/swipl/lib/%{swipl_arch}/pcre4pl.so -%{_libdir}/swipl/lib/%{swipl_arch}/readline4pl.so %{_libdir}/swipl/lib/%{swipl_arch}/ssl4pl.so %{_libdir}/swipl/lib/%{swipl_arch}/tipc.so %{_libdir}/swipl/lib/%{swipl_arch}/yaml4pl.so %{_libdir}/swipl/library/ext/archive/ %{_libdir}/swipl/library/ext/libedit/ %{_libdir}/swipl/library/ext/pcre/ -%{_libdir}/swipl/library/ext/readline/ %{_libdir}/swipl/library/ext/ssl/ %{_libdir}/swipl/library/ext/tipc/ %{_libdir}/swipl/library/ext/yaml/ -%files -n swi-prolog-x +%files -n swi-prolog-win %doc packages/xpce/{CUSTOMISE,EXTENDING,README}.md +%{_bindir}/swipl-win +%{_datadir}/applications/swipl.desktop +%{_datadir}/applications/swipl-win.desktop +%{_datadir}/icons/hicolor/64x64/apps/swipl.png +%{_datadir}/icons/hicolor/96x96/apps/swipl-cli.png +%{_datadir}/mime/packages/prolog-mime.xml +%{_libdir}/swipl/bin/%{swipl_arch}/swipl-win %{_libdir}/swipl/lib/%{swipl_arch}/pl2xpce.so %{_libdir}/swipl/swipl.rc +%{_libdir}/swipl/swipl-win.rc %{_libdir}/swipl/xpce/ %{_mandir}/man1/xpce-client.1* @@ -742,11 +725,5 @@ cp -p packages/jpl/jpl.pl.install packages/jpl/jpl.pl %files -n swi-prolog-test %{_libdir}/swipl/test/ -%files -n swi-prolog-win -%doc packages/swipl-win/README.md -%{_bindir}/swipl-win -%{_libdir}/swipl/bin/%{swipl_arch}/swipl-win -%{_libdir}/swipl/swipl-win.rc - %changelog %autochangelog diff --git a/sources b/sources index 03aeff4..b17c9c0 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (userguide.html.tgz) = baa16d8f06a666e77ef45aaf7708e877710bfcb8fc0fb519bc70c54619c45def2d2ab4feaa0f1a1875b2a2270e8907551b63582da1b4beaa5b50f013a41d7ab9 -SHA512 (swipl-9.2.9_repackaged.tar.gz) = 57f0e043c6f0985106c68a2bba3a558ee3eb19ecaa145d5968d963da005f3d1fe0ef62ba43f299b067bda3bb6e4212a9e121926a4d8452df9aa8cbbecf6b27e2 +SHA512 (swipl-10.0.0_repackaged.tar.gz) = d8f85ceed3ccfcc7b44535d3384bc8fd9ddaff1dce5405382433328e2b873a52a232bab7dfee5adc28882413b03da623565f2dfb312fede13e316545d96c31ee diff --git a/swipl-10.0.0-secure-getenv.patch b/swipl-10.0.0-secure-getenv.patch new file mode 100644 index 0000000..d0e6869 --- /dev/null +++ b/swipl-10.0.0-secure-getenv.patch @@ -0,0 +1,13 @@ +--- swipl-10.0.0/packages/libedit/libedit/src/CMakeLists.txt.orig 2025-11-30 01:13:23.000000000 -0700 ++++ swipl-10.0.0/packages/libedit/libedit/src/CMakeLists.txt 2025-12-05 15:40:03.894414328 -0700 +@@ -116,7 +116,10 @@ check_symbol_exists(unvis "vis.h" HAVE_U + check_symbol_exists(endpwent "pwd.h" HAVE_ENDPWENT) + check_symbol_exists(getpwuid_r "pwd.h" HAVE_GETPW_R_POSIX) + check_symbol_exists(isascii "ctype.h" HAVE_ISASCII) ++set(OLD_CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}) ++list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE) + check_symbol_exists(secure_getenv "stdlib.h" HAVE_SECURE_GETENV) ++set(CMAKE_REQUIRED_DEFINITIONS ${OLD_CMAKE_REQUIRED_DEFINITIONS}) + check_symbol_exists(wcsdup "wchar.h" HAVE_WCSDUP) + + include(CheckIncludeFile) diff --git a/swipl-9.2.9-c23.patch b/swipl-9.2.9-c23.patch deleted file mode 100644 index 4ca03ad..0000000 --- a/swipl-9.2.9-c23.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- swipl-9.2.9/src/SWI-Prolog.h.orig 2024-12-20 02:46:40.000000000 -0700 -+++ swipl-9.2.9/src/SWI-Prolog.h 2025-01-18 11:04:45.028193615 -0700 -@@ -209,7 +209,7 @@ typedef _PLS(PL_local_data) *PL_engine_t - typedef uintptr_t PL_atomic_t; /* same a word */ - typedef uintptr_t foreign_t; /* return type of foreign functions */ - typedef wchar_t pl_wchar_t; /* Prolog wide character */ --#ifdef __cplusplus -+#if defined(__cplusplus) || __STDC_VERSION__ > 201710L - typedef void * pl_function_t; /* pass function as void* */ - #else - typedef foreign_t (*pl_function_t)(); /* foreign language functions */