Flox 1.19.4 is Released!
Important
If Flox reached 1.19.1 or 1.19.2 on your Mac through brew upgrade, a plain brew upgrade flox to 1.19.4 will still fail, because Homebrew runs the old release’s uninstall script first. Run the recovery script included below instead; it repairs the installation and upgrades Flox to the latest release available through Homebrew. The script uses sudo but shouldn’t be run as root, since brew refuses to run as root.
curl -fsSL https://github.com/flox/flox/releases/download/v1.19.4/recover-brew-upgrade.sh | sh
Important
If you build or publish packages with Nix expressions, this release changes two things. An existing v1 .flox/catalog.lock must be regenerated with flox build update-catalogs, and flox publish refuses shallow checkouts, so GitHub Actions using actions/checkout must set fetch-depth: 0.
Features
flox publishasks you to confirm a source lineage change before building, rather than after building and uploading.- Custom builds can select a default FloxHub authentication mode with
defaultAuthnMode. Builds without this option continue to default to token authentication. - Base catalog source builds use the nixpkgs host recorded in the lockfile. Public GitHub fetching remains compatible with existing cache entries.
nix profile install github:flox/floxand localnix developcan now substitute paths built by Flox CI fromcache.floxsdlc.com, tried after cache.nixos.org and cache.flox.dev. It uses the same trusted key as cache.flox.dev.
Changes
.flox/catalog.locknow uses format version 2. Nix expression operations that use an existing v1 lock requireflox build update-catalogs, and no automatic migration occurs.flox publishrequires a checked-out branch with an upstream, complete history and a revision contained in that upstream’s advertised tip. Shallow checkouts are refused, so GitHub Actions usingactions/checkoutmust setfetch-depth: 0.- If the remote branch has advanced and its tip is not in the local clone,
flox publishstops and asks you to rungit fetch <remote> <branch>, then retry. - Zsh and tcsh no longer auto-activate an environment for a
cdinside a subshell, such as(cd project && make), which matches bash. To run one command in another project’s environment, useflox activate -d project -- make.
Fixes
- Zsh and tcsh shells no longer lose their attachment to an auto-activated environment when a subshell changes directory, most commonly after tab-completing
cd ../…in zsh. This causedPID … is not attached to the activationerrors and could stop an environment’s services while the shell was still using it. flox containerizenow honours[options] cuda-detection. Previously CUDA detection was disabled in every containerized environment regardless of the manifest, so GPU workloads silently fell back to CPU.- Container images now contain real
/etc/passwdand/etc/groupfiles instead of symlinks into the Nix store. Images built previously could fail to start on containerd 2.2.0–2.2.7, and on 2.3.0–2.3.4 outside the overlay/bind fast path, withopen etc/passwd: path escapes from parent.
Thank you to our community contributions this release
hook.on-deactivateno longer runs whenhook.on-activatefailed. (@fzakaria)
Download Links
- DEB (x86_64-linux)
- DEB (aarch64-linux)
- RPM (x86_64-linux)
- RPM (aarch64-linux)
- OSX (x86_64-darwin)
- OSX (aarch64-darwin)
Note
You can find the SHA256 checksums for Flox 1.19.4 and SHA512 checksums for Flox 1.19.4 online.