Created attachment 215882 [details]
Update to most recent version 8.2.0
Take maintainership for lang/swi-pl
update to most recent version 8.2.0
move to cmake/ninja build framework
^Triage: If there is a changelog or release notes URL available for this version, please add it to the URL field
Also, could you remove this commented line?:
# PORTREVISION= 1
And last thing, would it be possible to get a svn diff for the patch? shar files are recommended for new ports mainly :-)
Created attachment 215915 [details]
I just added an "svn diff" + added the changelog URL - please note that the changelog is dynamic, so in order to get the full picture one must change the origin version back to the previous version 7.6.4
(In reply to Nikolaj Thygesen from comment #2)
The prospect of doing the move to cmake was prohibitive. I appreciate you taking over the port.
I've been using swi-pl for a few years. Though I've changed the Makefile's USES readline to USES libedit, without adverse effect and honouring the intent of the BSD2CLAUSE licence. ;)
My version of swi-pl is CLI only, very bare bones and no X11 stuff as I use it to remotely manage servers. Would the details be of any use? (Perhaps a CLI only flavour?) :)
Thanks for the info. We likewise use it cli only; it seems xpce is falling from grace a bit :o) I'm also considering adding a config dialog later; right now we just want it updated to most recent release, since we got a few bugs fixed upstream.
There are pkg-plist issues:
====> Running Q/A tests (stage-qa)
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: lib/cmake/swipl/SWIPLConfig.cmake
Error: Orphaned: lib/cmake/swipl/SWIPLConfigVersion.cmake
Error: Orphaned: lib/cmake/swipl/SWIPLTargets-release.cmake
Error: Orphaned: lib/cmake/swipl/SWIPLTargets.cmake
Error: Orphaned: lib/swipl/library/win_menu.pl
Error: Orphaned: lib/swipl/swipl-win.rc
===> Checking for items in pkg-plist which are not in STAGEDIR
Error: Missing: lib/swipl/doc/packages/yaml.html
Error: Missing: lib/swipl/lib/%%ARCH%%-%%OS%%/uuid.so
Error: Missing: lib/swipl/lib/%%ARCH%%-%%OS%%/yaml4pl.so
Error: Missing: lib/swipl/library/uuid.pl
Error: Missing: lib/swipl/library/yaml.pl
===> Error: Plist issues found.
Would you mind having a look?
Sure thing - I will add all orphaned files to pkg-plist. What I don't understand is that after making the port, I can find all the five missing files in the proper places under "./work/stage" and "make install" completes successfully!? I don't know how to fix that.
(In reply to Nikolaj Thygesen from comment #6)
I can't :-)
I'm doing clean builds with poudriere:
root@12_1amd64-default:/wrkdirs/usr/ports/lang/swi-pl/work/stage # find . -name uuid.pl
root@12_1amd64-default:/wrkdirs/usr/ports/lang/swi-pl/work/stage # ls usr/local/lib/swipl/library/uu*.pl
ls: No match.
Maybe they are there from a previus build?
Tip: make makeplist does a pretty nice job generating pkg-plist files although _we need to always check_ the result :-)
Created attachment 216018 [details]
New svn diff
Fixed yaml + ossp-uuid issues
Added the generated .cmake files to pkg-plist
(In reply to Nikolaj Thygesen from comment #8)
The port does not build on i386
It might need BROKEN_i386:
src/libswipl.so.8.2.0: undefined reference to `__atomic_compare_exchange_8'
src/libswipl.so.8.2.0: undefined reference to `__atomic_fetch_add_8'
Created attachment 216063 [details]
Mark i386 broken
As suggested I mark i386 broken for now. I pretty much think I know what the issue is, but I need a little time to fix it. Interestingly this seems related to the "old" mips-brokenness, so perhaps this can eventually go away as well.
A commit references this bug:
Date: Tue Jun 30 16:35:54 UTC 2020
New revision: 540903
lang/swi-pl: update to 8.2.0 and update MAINTAINER
While here, mark BROKEN on i386 but keep the dependency condition for
when this builds again. (Possible duplicate of PR #242229)
Submitter takes maintainership
Submitted by: email@example.com
Committed with minor cosmetic changes.
Thanks for your work!
Created attachment 216127 [details]
Makefile diff for CLI only, reduced function
Indeed thank-you both :)
I have swi-pl version 8 running on both an i386 and amd64 jail on FreeBSD 12.1-STABLE.
Unfortunately I have port ncurses installed, so swi-pl links to both
libncurses.so.8 => /lib/libncurses.so.8 (0x8019d7000)
libncurses.so.6 => /usr/local/lib/libncurses.so.6 (0x801c9c000)
even when I have explicitly included USES+=ncurses:port. Please note that:
- /usr/local/lib/swipl/lib/amd64-freebsd/libswipl.so.8 brings in /lib/libncurses.so.8
- libedit brings in /usr/local/lib/libncurses.so.6
I have a very specific use for PROLOG so I've pruned the Makefile to my needs. From the included Makefile (for both) and the pkg-plist diff for the amd64, I am running swi-pl from a package as a CLI only application.
The i386 version doesn't seem to like tex files so I needed to make additional adjustments to those files (the Makefile change reflects this).
Preliminary testing on cputypes: c3-2, prescott and haswell are favourable.
Screen grab from within an i386 jail:
Welcome to SWI-Prolog (32 bits, version 8.2.0)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.
CMake built from "/var/ports/usr/ports/lang/swi-pl/work/.build"
For online help and background, visit https://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).
?- shell('uname -a').
FreeBSD b1.hs 12.1-STABLE FreeBSD 12.1-STABLE #0 r362474M: Mon Jun 22 22:41:35 AEST 2020 root@hathor:/usr/obj/prod/120109/D/K8/smallblocks/src/amd64.amd64/sys/hqdev-amd64-smp-vga i386
Changes to the pkg-plist for amd64 as a minimal system, required
for i in /xpce/d /readline/d /cql/d /odbc/d /simplex/d /rdf_diagram.pl/d /in_menu.pl/d /swipl.rc/d /swipl-win.rc/d ; do sed -i "" $i /usr/ports/lang/swi-pl/pkg-plist; done
Additional changes are required for i386 pkg-plist to build a package.
This port upgrade is very much appreciated.
If I understand you correctly, you would like to have the ability to disable certain features to get a leaner installation. This fits pretty well with my thoughts on having a config dialog, but first I would like to get everything to build on i386, which I hope to find time for today.