lol

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