Bug 293549 - www/nyxt: Fails to build with lang/sbcl 2.6.2
Summary: www/nyxt: Fails to build with lang/sbcl 2.6.2
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Nuno Teixeira
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-03-02 18:29 UTC by Nuno Teixeira
Modified: 2026-03-03 14:37 UTC (History)
3 users (show)

See Also:


Attachments
poudriere log (121.88 KB, application/gzip)
2026-03-02 18:30 UTC, Nuno Teixeira
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nuno Teixeira freebsd_committer freebsd_triage 2026-03-02 18:29:21 UTC
Nyxt started failing on sbcl update to 2.6.2.
Any hints are welcome.

Thanks
Comment 1 Nuno Teixeira freebsd_committer freebsd_triage 2026-03-02 18:30:22 UTC
Created attachment 268486 [details]
poudriere log
Comment 2 Nuno Teixeira freebsd_committer freebsd_triage 2026-03-02 18:33:57 UTC
Pinging Shamaz and Krion to seek help :)
Comment 3 shamaz.mazum 2026-03-02 18:42:18 UTC
You need to update named-readtables

Pick this commit:

https://github.com/melisgl/named-readtables/commit/6eea56674442b884a4fee6ede4c8aad63541aa5b
Comment 4 Nuno Teixeira freebsd_committer freebsd_triage 2026-03-02 19:01:46 UTC
(In reply to shamaz.mazum from comment #3)

Thanks for extra fast support!

I see that another port has received same fix:
https://cgit.freebsd.org/ports/commit/?id=86c4c07cd9b9d03e158fe5cde75c57b0a2199f8f
Comment 5 Benjamin Takacs 2026-03-02 19:14:03 UTC
hm, why do these ports bundle their dependencies? As seen here that leads to duplicated effort to fix them. Dependencies should be converted into ports, so that the fix can be applied once.
Comment 6 commit-hook freebsd_committer freebsd_triage 2026-03-02 19:52:39 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=cbb7e1bddacd16c010c7e942845bff55fc48fd94

commit cbb7e1bddacd16c010c7e942845bff55fc48fd94
Author:     Shamaz Mazum <shamaz.mazum@gmail.com>
AuthorDate: 2026-03-02 19:50:32 +0000
Commit:     Nuno Teixeira <eduardo@FreeBSD.org>
CommitDate: 2026-03-02 19:51:36 +0000

    www/nyxt: Unbreak with SBCL >= 2.5.11

    PR:             293549

 www/nyxt/files/patch-sbcl262 (new) | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
Comment 7 Nuno Teixeira freebsd_committer freebsd_triage 2026-03-02 19:56:07 UTC
(In reply to Benjamin Takacs from comment #5)

You have a point in there and we should always follow the unbundle dependencies path.
Do you have any changes to do with www/nyxt and problably databases/pgloader3 so we can test?
Comment 8 Kirill Ponomarev freebsd_committer freebsd_triage 2026-03-02 20:01:25 UTC
(In reply to Benjamin Takacs from comment #5)
Both ports that bundle named-readtables (databases/pgloader3 and www/nyxt) are already fixed. No other ports in the tree appear to bundle this library, the rest either don't use it or pull it in as a separate port (e.g. editors/sly-named-readtables is an Emacs/SLY plugin unrelated to cruft.lisp). So I don't think there's much value in converting named-readtables into a standalone port at this point.
Comment 9 Kirill Ponomarev freebsd_committer freebsd_triage 2026-03-02 20:03:41 UTC
(In reply to Nuno Teixeira from comment #7)
FWIW I've checked the entire ports tree, only two ports bundle named-readtables: www/nyxt and databases/pgloader3. Both are already patched. The upstream named-readtables fix has been available since November 2025, so future versions of these ports will pick it up naturally.

Unbundling named-readtables into a separate port would require significant rework of both ports (especially nyxt with its source-with-submodules tarball) for a marginal benefit. I'd suggest we keep the current patches and let upstream handle it going forward.
Comment 10 shamaz.mazum 2026-03-02 20:11:50 UTC
(In reply to Benjamin Takacs from comment #5)

It's the same as with Rust crates.

Also you cannot just create ports for dependencies of a Common Lisp program, it does not work this way.
Comment 11 Nuno Teixeira freebsd_committer freebsd_triage 2026-03-02 21:00:08 UTC
Thanks all!
Committed.
Comment 12 Kirill Ponomarev freebsd_committer freebsd_triage 2026-03-03 08:03:09 UTC
(In reply to shamaz.mazum from comment #10)
yeah totally agree, Rust crates analogy is accurate: just as we use USES=cargo and bundle crates in distfiles rather than creating individual ports, CL dependencies are best kept bundled with the ports that use them. Nyxt alone pulls in 50+ ASDF systems so creating a port for each one would be a huge maintenance burden for a problem that was fixed in minutes
Comment 13 Benjamin Takacs 2026-03-03 13:37:54 UTC
(In reply to Kirill Ponomarev from comment #8)
named-readtables is only one example of a dependency that gets bundled here.

(In reply to shamaz.mazum from comment #10)
(In reply to Kirill Ponomarev from comment #12)

Yeah, rust crates have the same problem and should be fixed too. Rather than using that as an excuse to not fix the problem, we should look at others that also have that problem and fixed it.

For example Debian installs common lisp dependencies to /usr/share/common-lisp/source/ (and rust dependencies to /usr/share/cargo/registry/). I haven't yet looked what they had to do to fix asdf (and cargo), so that it uses dependencies installed on the system instead of requiring bundling them. And maintainance burden should stay about the same, as all maintainers of ports with bundled dependencies are de facto maintainers to those dependencies too.

What probably is a bit of an effort is creating those ports in the first place, but hopefully one can write a script for that.
Comment 14 Kirill Ponomarev freebsd_committer freebsd_triage 2026-03-03 14:37:22 UTC
(In reply to Benjamin Takacs from comment #13)
That's true, named-readtables is just one of many bundled dependencies. But as shamaz explained, you cannot simply create individual ports for asdf systems, it doesn't work that way without significant changes to how asdf resolves systems, similar to what Debian had to do with /usr/share/common-lisp/source/. FreeBSD doesn't have that infrastructure and building it for a handful of CL ports would be huge effort.

The fix here took minutes. If another bundled dependency breaks in the future, patching it will be equally straightforward