Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

prisma: fix dangling symlinks #381587

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

aqrln
Copy link
Member

@aqrln aqrln commented Feb 12, 2025

Make sure we don't leave dangling symlinks in $out when building prisma.

  1. We remove the original node_modules after buliding the packages to re-install the runtime dependencies without the dev dependencies. The way it was done was incorrect: only the root node_modules directory was removed but not the nested ones inside the packages. The follow-up pnpm install command didn't re-create or empty them and only created new files within, so we were left with tons of dangling symlinks from the first, full, pnpm install invocation.

  2. .pnpm/node_modules inside the root node_modules contains symlinks to each workspace member package. However, we don't copy every package to $out, so we need to clean up this directory to remove the references to the missing packages.

Fixes: #380427

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

Make sure we don't leave dangling symlinks in `$out` when building
`prisma`.

1. We remove the original `node_modules` after buliding the packages to
   re-install the runtime dependencies without the dev dependencies. The
   way it was done was incorrect: only the root `node_modules` directory
   was removed but not the nested ones inside the packages. The
   follow-up `pnpm install` command didn't re-create or empty them and
   only created new files within, so we were left with tons of dangling
   symlinks from the first, full, `pnpm install` invocation.

2. `.pnpm/node_modules` inside the root `node_modules` contains symlinks
   to each workspace member package. However, we don't copy every
   package to `$out`, so we need to clean up this directory to remove
   the references to the missing packages.

Fixes: NixOS#380427
@aqrln aqrln added 11.by: package-maintainer This PR was created by the maintainer of the package it changes 11.by: upstream-developer This issue or PR was created by the developer of packaged software 6.topic: nodejs 0.kind: build failure A package fails to build labels Feb 12, 2025
@aqrln aqrln mentioned this pull request Feb 12, 2025
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.kind: build failure A package fails to build 6.topic: nodejs 10.rebuild-darwin: 1-10 10.rebuild-linux: 1-10 11.by: package-maintainer This PR was created by the maintainer of the package it changes 11.by: upstream-developer This issue or PR was created by the developer of packaged software
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Build failure: Prisma
1 participant