muon: use two-stage build, only use needed srcs

Had to work around an issue with the fetchFromSourcehut fetcher. #441478

winston 5a64c863 1992ee89

+14 -20
+8 -14
pkgs/by-name/mu/muon/package.nix
··· 28 28 pname = "muon" + lib.optionalString embedSamurai "-embedded-samurai"; 29 29 version = "0.5.0"; 30 30 31 - srcs = builtins.attrValues finalAttrs.passthru.srcs; 31 + srcs = builtins.attrValues (lib.filterAttrs (_: v: v.use or true) finalAttrs.passthru.srcsAttrs); 32 32 33 33 sourceRoot = "muon-src"; 34 34 ··· 93 93 muonEnable = lib.mesonEnable; 94 94 muonOption = lib.mesonOption; 95 95 96 + bootstrapFlags = lib.optionalString (!embedSamurai) "CFLAGS=\"$CFLAGS -DBOOTSTRAP_NO_SAMU\""; 96 97 # see `muon options -a` to see built-in options 97 98 cmdlineForMuon = lib.concatStringsSep " " [ 98 99 (muonOption "prefix" (placeholder "out")) ··· 115 116 '' 116 117 runHook preBuild 117 118 118 - ${ 119 - lib.optionalString (!embedSamurai) "CFLAGS=\"$CFLAGS -DBOOTSTRAP_NO_SAMU\"" 120 - } ./bootstrap.sh stage-1 121 - 119 + ${bootstrapFlags} ./bootstrap.sh stage-1 122 120 ./stage-1/muon-bootstrap setup ${cmdlineForMuon} stage-2 123 121 ${lib.optionalString embedSamurai "./stage-1/muon-bootstrap"} samu ${cmdlineForSamu} -C stage-2 124 - 125 - ./stage-2/muon setup ${cmdlineForMuon} stage-3 126 - ${lib.optionalString embedSamurai "./stage-2/muon"} samu ${cmdlineForSamu} -C stage-3 127 122 128 123 runHook postBuild 129 124 ''; ··· 147 142 checkPhase = '' 148 143 runHook preCheck 149 144 150 - ${lib.optionalString ( 151 - stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64 152 - ) "NIX_BUILD_CORES=1"} 153 - ./stage-3/muon -C stage-3 test -d dots -S -j$NIX_BUILD_CORES 145 + ./stage-2/muon -C stage-2 test -d dots -S -j$NIX_BUILD_CORES 154 146 155 147 runHook postCheck 156 148 ''; ··· 158 150 installPhase = '' 159 151 runHook preInstall 160 152 161 - stage-3/muon -C stage-3 install 153 + stage-2/muon -C stage-2 install 162 154 163 155 runHook postInstall 164 156 ''; 165 157 166 - passthru.srcs = { 158 + passthru.srcsAttrs = { 167 159 muon-src = fetchFromSourcehut { 168 160 name = "muon-src"; 169 161 owner = "~lattis"; ··· 177 169 owner = "muon-build"; 178 170 rev = "1017b3413601044fb41ad04977445e68a80e8181"; 179 171 hash = "sha256-aFpyJFIqybLNKhm/kyfCjYylj7DE6muI1+OUh4Cq4WY="; 172 + passthru.use = buildDocs; 180 173 }; 181 174 meson-tests = fetchFromGitHub { 182 175 name = "meson-tests"; ··· 184 177 owner = "muon-build"; 185 178 rev = "db92588773a24f67cda2f331b945825ca3a63fa7"; 186 179 hash = "sha256-z4Fc1lr/m2MwIwhXJwoFWpzeNg+udzMxuw5Q/zVvpSM="; 180 + passthru.use = finalAttrs.doCheck; 187 181 }; 188 182 }; 189 183
+6 -6
pkgs/by-name/mu/muon/update.nix
··· 16 16 ]; 17 17 18 18 text = '' 19 - REPO=$(nix-instantiate --raw --eval -E "with import ./. {}; muon.passthru.srcs.muon-src.meta.homepage") 19 + REPO=$(nix-instantiate --raw --eval -E "with import ./. {}; muon.srcsAttrs.muon-src.meta.homepage") 20 20 MUON_VERSION=$(list-git-tags --url="$REPO" | tail -1) 21 21 22 22 update-source-version "muon" \ 23 23 "$MUON_VERSION" \ 24 24 --version-key=version \ 25 - --source-key=passthru.srcs.muon-src 25 + --source-key=srcsAttrs.muon-src 26 26 update-source-version "muon" \ 27 27 "$(curl -s "$REPO/blob/$MUON_VERSION/subprojects/meson-docs.wrap" | grep -oP "revision = \K.+$")" \ 28 - --version-key=passthru.srcs.meson-docs.rev \ 29 - --source-key=passthru.srcs.meson-docs 28 + --version-key=srcsAttrs.meson-docs.rev \ 29 + --source-key=srcsAttrs.meson-docs 30 30 update-source-version "muon" \ 31 31 "$(curl -s "$REPO/blob/$MUON_VERSION/subprojects/meson-tests.wrap" | grep -oP "revision = \K.+$")" \ 32 - --version-key=passthru.srcs.meson-tests.rev \ 33 - --source-key=passthru.srcs.meson-tests 32 + --version-key=srcsAttrs.meson-tests.rev \ 33 + --source-key=srcsAttrs.meson-tests 34 34 ''; 35 35 })