nixpkgs/pkgs/by-name/se/seerr/package.nix
Antoine du Hamel e33448f6f3
pnpm: switch to nodejs-slim
(cherry picked from commit 36b6c90e6b)

Fixed conflicts with taler-wallet-core and openclaw.
2026-06-10 12:07:48 +02:00

102 lines
2.1 KiB
Nix

{
lib,
fetchPnpmDeps,
pnpmConfigHook,
pnpm_10,
fetchFromGitHub,
stdenv,
makeWrapper,
nodejs-slim_22,
python3,
python3Packages,
sqlite,
nix-update-script,
nixosTests,
}:
let
nodejs-slim = nodejs-slim_22;
pnpm = pnpm_10.override { inherit nodejs-slim; };
in
stdenv.mkDerivation (finalAttrs: {
pname = "seerr";
version = "3.2.0";
src = fetchFromGitHub {
owner = "seerr-team";
repo = "seerr";
tag = "v${finalAttrs.version}";
hash = "sha256-rZ4o0ccfQjZBzWItEEFfxVi/cNO3HWnoDeNGpQ94H6E=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherVersion = 3;
hash = "sha256-j/qMS792IFr0Cn/cFUargHSOTw4vz79kr58XhJVikBQ=";
};
buildInputs = [ sqlite ];
nativeBuildInputs = [
python3
python3Packages.distutils
nodejs-slim
makeWrapper
pnpmConfigHook
pnpm
];
preBuild = ''
export npm_config_nodedir=${nodejs-slim}
pushd node_modules
pnpm rebuild bcrypt sqlite3
popd
'';
buildPhase = ''
runHook preBuild
pnpm build
CI=true pnpm prune --prod --ignore-scripts
rm -rf .next/cache
# Clean up broken symlinks left behind by `pnpm prune`
# https://github.com/pnpm/pnpm/issues/3645
find node_modules -xtype l -delete
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share
cp -r -t $out/share .next node_modules dist public package.json seerr-api.yml
runHook postInstall
'';
postInstall = ''
mkdir -p $out/bin
makeWrapper '${nodejs-slim}/bin/node' "$out/bin/seerr" \
--add-flags "$out/share/dist/index.js" \
--chdir "$out/share" \
--set NODE_ENV production
'';
passthru = {
inherit (nixosTests) seerr;
updateScript = nix-update-script { };
};
meta = {
description = "Open-source media request and discovery manager for Jellyfin, Plex, and Emby";
homepage = "https://github.com/seerr-team/seerr";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
camillemndn
fallenbagel
];
platforms = lib.platforms.linux;
mainProgram = "seerr";
};
})