Skip to content

upgrade nixpkgs to fix gcloud crash on MacOS 27 - #7600

Merged
stephencompall-DA merged 8 commits into
mainfrom
s11/macos-27-gcloud-nixpkgs
Oct 6, 2026
Merged

stephencompall-DA merged 8 commits into
mainfrom
s11/macos-27-gcloud-nixpkgs

Conversation

@stephencompall-DA

@stephencompall-DA stephencompall-DA commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Deal with NixOS/nixpkgs#541367 on MacOS 27:

$ gcloud --version
Assertion failed: (trampoline_handle), function ffi_trampoline_table_alloc_block_invoke, file closures.c, line 258.
Abort trap: 6

Fixes #7615.

Extra tests

  • cluster_test
  • upgrade_test (like Bump nix #6102) If it fails, compare it with a dummy-PR baseline as 6102 did with test deploy job #6485
  • macOS 27 on aarch64-darwin:
    • direnv reload
    • gcloud --version works
    • python3 -c 'import ctypes' works
    • make cluster/helm/test passes; Bump nix #6102's workaround had macOS-specific variants, so the upstream fix needs checking on darwin
    • sbt --client works
  • macOS 26 or older: check the same
    • direnv reload
    • gcloud --version works
    • python3 -c 'import ctypes' works
    • make cluster/helm/test passes; Bump nix #6102's workaround had macOS-specific variants, so the upstream fix needs checking on darwin
    • sbt --client works
  • aarch64-linux

Most notable upgrades

package old version new version
circleci-cli 0.1.38646 1.0.48571
google-cloud-sdk 570.0.0 583.0.0
helm 4.2.1 4.3.0
kubectl 1.36.2 1.37.1
nodejs 24.15.0 24.20.0
pre-commit 4.5.1 4.6.2
pulumi CLI 3.246.0 3.261.0
python3 3.13.13 3.14.7
sbt launcher 1.12.11 2.0.9

Full upgrade list

From scripts/nixpkgs-version-changes.sh

package old version new version
auth0-cli 1.31.0 1.32.0
circleci-cli 0.1.38646 1.0.48571
curl 8.20.0 8.22.0
deno 2.8.3 2.9.6
docker 29.5.3 29.8.1
gh 2.95.0 2.101.0
git 2.54.0 2.55.0
google-cloud-sdk 570.0.0 583.0.0
grpcurl 1.9.3 1.9.4
helm 4.2.1 4.3.0
hub - 2.14.2-unstable-2022-12-01
hub-unstable 2022-12-01 -
istioctl 1.30.1 1.30.3
jq 1.8.1 1.8.2
k6 2.0.0 2.2.0
kubectl 1.36.2 1.37.1
nix 2.34.7+1 2.34.8
nodejs 24.15.0 24.20.0
postgresql 14.23 14.24
pre-commit 4.5.1 4.6.2
pulumi 3.246.0 3.261.0
python3 3.13.13 3.14.7
python3-aiohttp 3.13.5 3.14.3
python3-colorlog 6.10.1 6.12.0
python3-datadog 0.52.1 0.54.0
python3-flask 3.1.2 3.1.3
python3-gitpython 3.1.50 3.1.58
python3-google-cloud-bigquery 3.40.0 3.41.0
python3-google-cloud-storage 3.10.1 3.12.0
python3-junit2html 31.1.3 31.1.4
python3-pip 25.3 26.1.2
python3-pulumi 3.192.0 3.263.0
python3-pydantic 2.12.5 2.13.4
python3-pyjwt 2.12.1 2.13.0
python3-regex 2026.4.4 2026.7.11
python3-requests 2.33.1 2.34.2
python3-rich 14.3.3 15.0.0
ripgrep 15.1.0 15.2.0
rsync 3.4.1 3.5.0
ruff 0.15.17 0.16.8
sbt 1.12.11 2.0.9
skopeo 1.23.0 1.24.1
tmux 3.6a 3.7c
which 2.23 2.25
xxd-tinyxxd 1.3.15 1.3.16

Pull Request Checklist

Cluster Testing

  • If a cluster test is required, comment /cluster_test on this PR to request it, and ping someone with access to the DA-internal system to approve it.
  • If an upgrade test is required, comment /upgrade_test on this PR to request it, and ping someone with access to the DA-internal system to approve it.
  • If a hard-migration test is required (from the latest release), comment /hdm_test on this PR to request it, and ping someone with access to the DA-internal system to approve it.
  • If a logical synchronizer upgrade test is required (from canton-3.5), comment /lsu_test on this PR to request it, and ping someone with access to the DA-internal system to approve it.

PR Guidelines

  • Include any change that might be observable by our partners or affect their deployment in the release notes.
  • Specify fixed issues with Fixes #n, and mention issues worked on using #n
  • Include a screenshot for frontend-related PRs - see README or use your favorite screenshot tool

Merge Guidelines

  • Make the git commit message look sensible when squash-merging on GitHub (most likely: just copy your PR description).

Deal with NixOS/nixpkgs#541367 on MacOS 27:

    $ gcloud --version
    Assertion failed: (trampoline_handle), function ffi_trampoline_table_alloc_block_invoke, file closures.c, line 258.
    Abort trap: 6

- update to NixOS/nixpkgs@b6c8664
  - the latest nixpkgs-unstable ref there at time of writing
- remove #6102 workaround for helm-unittest

Assisted-by: Copilot:gpt-6-astra
Signed-off-by: Stephen Compall <stephen.compall@digitalasset.com>
Avoid these errors in direnv load, introduced in NixOS/nixpkgs#518407:

    trace: evaluation warning: stdenv.isDarwin is deprecated, use stdenv.hostPlatform.isDarwin instead
    trace: evaluation warning: stdenv.isAarch64 is deprecated, use stdenv.hostPlatform.isAarch64 instead

Assisted-by: Copilot:gpt-6-astra
Signed-off-by: Stephen Compall <stephen.compall@digitalasset.com>
Show the package version changes in the nix dev shell between the
merge-base with origin/main and the working tree, for the current
system, e.g. to review a nixpkgs bump.

Assisted-by: Claude:claude-5.5-opus
Signed-off-by: Stephen Compall <stephen.compall@digitalasset.com>
The firefox-157.0 wrapper in NixOS/nixpkgs@b6c8664
does not build on aarch64-linux, and is not on cache.nixos.org:

    error: output '/nix/store/9n53j9xnff4l259qm822a31qbh9qdzhb-firefox-157.0' is not allowed to refer to the following paths:
             /nix/store/99zij8qfs8wzbb2njrj18ys8hpnrcj3p-gcc-wrapper-16.2.0

- update to NixOS/nixpkgs@f45c6f0
  - the previous nixpkgs-unstable ref, with firefox 156.0.1 cached for
    aarch64-linux and x86_64-linux
  - still includes the darwin.libffi fix NixOS/nixpkgs@3f92b69

Assisted-by: Claude:claude-5.5-opus
Signed-off-by: Stephen Compall <stephen.compall@digitalasset.com>
@stephencompall-DA stephencompall-DA linked an issue Oct 2, 2026 that may be closed by this pull request
@stephencompall-DA
stephencompall-DA force-pushed the s11/macos-27-gcloud-nixpkgs branch from 98bcc79 to edee634 Compare October 2, 2026 17:00
npm 11.19.0, bundled with nodejs 24.20.0 from the nixpkgs bump, prints a
warning for every dependency install script not listed in the new
package.json `allowScripts` field, which fails the sbt output check:

    npm warn install-scripts 2 packages have install scripts not yet covered by allowScripts:
    npm warn install-scripts   msw@2.7.3 (postinstall: node -e "try{require('./config/scripts/postinstall')}catch(e){}")
    npm warn install-scripts   openapi-ts-client@3.6.0-SNAPSHOT (prepare: npm run build)

These scripts still run (only `false` entries skip them), so approve the
ones we already rely on, by name and not version, with
`npm install-scripts approve --no-allow-scripts-pin --all`. That command
refuses to run in a workspace member, so the token-standard entry for
the canton-json-api-v2 client that `npm ci` in token-standard/cli builds
is written by hand in the same form.

Assisted-by: Claude:claude-5.5-opus
Signed-off-by: Stephen Compall <stephen.compall@digitalasset.com>
Firefox 156 from the nixpkgs bump breaks two things in the frontend tests:

- BiDi browsingContext.domContentLoaded events now carry a userContext
  field, which NavigationInfo.fromJson did not expect:

      Caused by: scala.MatchError: userContext (of class java.lang.String)

  Skip fields we don't read instead.
- Navigating to a URL without a scheme is rejected; Firefox 152 treated
  it as http:

      org.openqa.selenium.UnsupportedCommandException: Navigation to "scan.localhost:4000" is not allowed in this context

  Use http:// URLs in the two docker-compose tests that did this.

Assisted-by: Claude:claude-5.5-opus
Signed-off-by: Stephen Compall <stephen.compall@digitalasset.com>

@martinflorian-da martinflorian-da left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! In case you find no one at DA with an old Mac OS version you could also try asking on #splice-contributions-external

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider documenting this on some (potentially internal) README or at least making it known via Slack that this exists now. Surely helpful for future debugging.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure. 859cc84

- suggested by @martinflorian-da; thanks

Signed-off-by: Stephen Compall <stephen.compall@digitalasset.com>

@ray-roestenburg-da ray-roestenburg-da left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tried on macOS 26, everything works.

@stephencompall-DA
stephencompall-DA merged commit 09e61f5 into main Oct 6, 2026
72 checks passed
@stephencompall-DA
stephencompall-DA deleted the s11/macos-27-gcloud-nixpkgs branch October 6, 2026 18:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

gcloud crashes on MacOS 27

3 participants