Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions home-manager/packages/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,8 @@ with pkgs;
keychain
libiconv
libsecret
nspr
nss
opencode
openssl
openssl.dev
Expand Down
4 changes: 2 additions & 2 deletions home-manager/programs/bash/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
export CGO_LDFLAGS="-L${pkgs.icu.out}/lib''${CGO_LDFLAGS:+ $CGO_LDFLAGS}"

# Native libraries for bun-installed packages (e.g. @oh-my-pi/pi-natives, sharp, keytar)
export LD_LIBRARY_PATH="${lib.optionalString pkgs.stdenv.isLinux "${pkgs.alsa-lib}/lib:"}${pkgs.glib.out}/lib:${pkgs.libsecret}/lib:${pkgs.stdenv.cc.cc.lib}/lib:${pkgs.zlib}/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH="${lib.optionalString pkgs.stdenv.isLinux "${pkgs.alsa-lib}/lib:"}${pkgs.glib.out}/lib:${pkgs.libsecret}/lib:${pkgs.nspr}/lib:${pkgs.nss}/lib:${pkgs.stdenv.cc.cc.lib}/lib:${pkgs.zlib}/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

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.

Likely-insufficient library set for Playwright Chromium (latent)

Adding nspr and nss here resolves the immediate libnspr4.so / libnss3.so errors called out in the PR description, but Playwright's downloaded Chromium binary usually pulls in additional runtime deps that are still missing from this LD_LIBRARY_PATH:

  • libatk-1.0.so.0 (atk)
  • libatk-bridge-2.0.so.0 (at-spi2-atk)
  • libcups.so.2 (cups)
  • libdbus-1.so.3 (dbus)
  • libdrm.so.2 (libdrm)
  • libgbm.so.1 (mesa)
  • libxkbcommon.so.0 (libxkbcommon)
  • libgtk-3.so.0 (gtk3, headed mode only)

Once Chromium loads NSS successfully it will typically fail on the next missing library. You can verify with ldd node_modules/playwright-core/.local-browsers/chromium-*/chrome-linux/chrome | grep 'not found' on a Linux host.

Cleaner alternative: pkgs.playwright-driver.browsers bundles a working Chromium with all system deps and is usually what nixpkgs users reach for. If you want to keep the LD_LIBRARY_PATH approach, add the packages above so the fix is complete for typical launch() / page.goto flows.

The same comment applies to programs/bash/default.nix:124, programs/zsh/default.nix:54, and programs/fish/default.nix:33.

fi

# Go configuration
Expand Down Expand Up @@ -121,7 +121,7 @@
export CGO_LDFLAGS="-L${pkgs.icu.out}/lib''${CGO_LDFLAGS:+ $CGO_LDFLAGS}"

# Native libraries for bun-installed packages (e.g. @oh-my-pi/pi-natives, sharp, keytar)
export LD_LIBRARY_PATH="${lib.optionalString pkgs.stdenv.isLinux "${pkgs.alsa-lib}/lib:"}${pkgs.glib.out}/lib:${pkgs.libsecret}/lib:${pkgs.stdenv.cc.cc.lib}/lib:${pkgs.zlib}/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH="${lib.optionalString pkgs.stdenv.isLinux "${pkgs.alsa-lib}/lib:"}${pkgs.glib.out}/lib:${pkgs.libsecret}/lib:${pkgs.nspr}/lib:${pkgs.nss}/lib:${pkgs.stdenv.cc.cc.lib}/lib:${pkgs.zlib}/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
fi

# Source .bashrc for login shells to get PATH and other settings
Expand Down
2 changes: 1 addition & 1 deletion home-manager/programs/fish/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
set -gx CGO_LDFLAGS "-L${pkgs.icu.out}/lib $CGO_LDFLAGS"

# Native libraries for bun-installed packages (e.g. @oh-my-pi/pi-natives, sharp, keytar)
set -gx LD_LIBRARY_PATH ${lib.optionalString pkgs.stdenv.isLinux ''"${pkgs.alsa-lib}/lib"''} "${pkgs.glib.out}/lib" "${pkgs.libsecret}/lib" "${pkgs.stdenv.cc.cc.lib}/lib" "${pkgs.zlib}/lib" $LD_LIBRARY_PATH
set -gx LD_LIBRARY_PATH ${lib.optionalString pkgs.stdenv.isLinux ''"${pkgs.alsa-lib}/lib"''} "${pkgs.glib.out}/lib" "${pkgs.libsecret}/lib" "${pkgs.nspr}/lib" "${pkgs.nss}/lib" "${pkgs.stdenv.cc.cc.lib}/lib" "${pkgs.zlib}/lib" $LD_LIBRARY_PATH
end

# Go configuration
Expand Down
2 changes: 1 addition & 1 deletion home-manager/programs/zsh/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
export CGO_LDFLAGS="-L${pkgs.icu.out}/lib''${CGO_LDFLAGS:+ $CGO_LDFLAGS}"

# Native libraries for bun-installed packages (e.g. @oh-my-pi/pi-natives, sharp, keytar)
export LD_LIBRARY_PATH="${lib.optionalString pkgs.stdenv.isLinux "${pkgs.alsa-lib}/lib:"}${pkgs.glib.out}/lib:${pkgs.libsecret}/lib:${pkgs.stdenv.cc.cc.lib}/lib:${pkgs.zlib}/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH="${lib.optionalString pkgs.stdenv.isLinux "${pkgs.alsa-lib}/lib:"}${pkgs.glib.out}/lib:${pkgs.libsecret}/lib:${pkgs.nspr}/lib:${pkgs.nss}/lib:${pkgs.stdenv.cc.cc.lib}/lib:${pkgs.zlib}/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
fi

# Define aliases in .zshenv so non-interactive zsh invocations can use them.
Expand Down
Loading