The cl-ana_dot_makeres package was removed from imported.nix in
1314186018 (lispPackages: update from quickisp-2026-01-01) on staging.
The override added in bdd4fb5000 on master now references a
nonexistent package, causing an eval failure on staging-next.
In cl-ana.makeres, the fixed-mem-cache function uses
(setf (cdr (last cache)) (list id)) where cache can be nil (initial
state or after popping all elements). (last nil) returns nil, making
(setf (cdr nil) ...) undefined. SBCL 2.6.0's stricter type inference
catches this as a type conflict, causing COMPILE-FILE-ERROR.
Replace with nconc which handles the nil case correctly.
The antik source archive contains a documentation.pdf symlink pointing
to documentation/build/latex/Antik.pdf which doesn't exist, causing
the noBrokenSymlinks check to fail. Remove it in all five packages
built from this archive: antik, antik-base, foreign-array,
physical-dimension, and science-data.
SBCL commit 00eabf5 changed the readtable's base-char-macro-array to
store 0 instead of NIL for non-macro characters. Since (if 0 ...) is
truthy in Common Lisp, the named-readtables readtable iterator
incorrectly yields all characters, causing assertion failures in
check-reader-macro-conflict when packages like cl-interpol,
pythonic-string-reader, and antik-base merge readtables.
Apply upstream fix from melisgl/named-readtables@6eea566.
Methodology:
- `sed` to find and replace in pkgs/*
- exclude pkgs/top-level
- nixpkgs-review on x86_64-linux and aarch64-linux
- revert everything that doesn't build
- revert everything that doesn't launch [x86_64-linux]
- check upstream source whether the change makes sense [free software only]
sed -i 's/ webkitgtk\b/ webkitgtk_4_0/g' pkgs/**.nix
sed -i 's/(webkitgtk\b/(webkitgtk_4_0/g' pkgs/**.nix
sed -i 's/\.webkitgtk\b/.webkitgtk_4_0/g' pkgs/**.nix
webkitgtk is currently pointing to that specific ABI version but the
alias is going to start warning
In preparation for the deprecation of `stdenv.isX`.
These shorthands are not conducive to cross-compilation because they
hide the platforms.
Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way
One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059
There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.
```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```
Allow the macOS GLUT framework to be used automatically in many
cases. Packages that specifically search for freeglut or require its
additional APIs should still explicitly depend on it.
Deliberately skip the Haskell package set, which is mostly
automatically generated, and mupdf, which has its own fork of freeglut.
Full list of packages going from failure to build to build:
cl-charms libusb-ffi cl-fam jpeg-turbo vorbisfile-ffi png zmq
consfigurator cl-gss magicffi keystone capstone