Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 97 lines 1.8 kB view raw
1{ 2 lib, 3 stdenvNoCC, 4 libsass, 5 nodejs, 6 pnpm_9, 7 fetchFromGitHub, 8 nixosTests, 9 vips, 10}: 11 12let 13 pinData = lib.importJSON ./pin.json; 14 15in 16 17stdenvNoCC.mkDerivation (finalAttrs: { 18 19 pname = "lemmy-ui"; 20 version = pinData.uiVersion; 21 22 src = 23 with finalAttrs; 24 fetchFromGitHub { 25 owner = "LemmyNet"; 26 repo = pname; 27 rev = version; 28 fetchSubmodules = true; 29 hash = pinData.uiHash; 30 }; 31 32 nativeBuildInputs = [ 33 nodejs 34 pnpm_9.configHook 35 ]; 36 37 buildInputs = [ 38 libsass 39 vips 40 ]; 41 42 extraBuildInputs = [ libsass ]; 43 pnpmDeps = pnpm_9.fetchDeps { 44 inherit (finalAttrs) pname version src; 45 fetcherVersion = 1; 46 hash = pinData.uiPNPMDepsHash; 47 }; 48 49 buildPhase = '' 50 runHook preBuild 51 52 pnpm build:prod 53 54 runHook postBuild 55 ''; 56 57 # installPhase = '' 58 # runHook preInstall 59 60 # mkdir -p $out/{bin,lib/${finalAttrs.pname}} 61 # mv {dist,node_modules} $out/lib/${finalAttrs.pname} 62 63 # runHook postInstall 64 65 # ''; 66 preInstall = '' 67 mkdir $out 68 cp -R ./dist $out 69 cp -R ./node_modules $out 70 ''; 71 72 preFixup = '' 73 find $out -name libvips-cpp.so.42 -print0 | while read -d $'\0' libvips; do 74 echo replacing libvips at $libvips 75 rm $libvips 76 ln -s ${lib.getLib vips}/lib/libvips-cpp.so.42 $libvips 77 done 78 ''; 79 80 distPhase = "true"; 81 82 passthru.updateScript = ./update.py; 83 passthru.tests.lemmy-ui = nixosTests.lemmy; 84 passthru.commit_sha = finalAttrs.src.rev; 85 86 meta = with lib; { 87 description = "Building a federated alternative to reddit in rust"; 88 homepage = "https://join-lemmy.org/"; 89 license = licenses.agpl3Only; 90 maintainers = with maintainers; [ 91 happysalada 92 billewanick 93 georgyo 94 ]; 95 inherit (nodejs.meta) platforms; 96 }; 97})