diff --git a/flake.nix b/flake.nix index b155a6d..c93d463 100644 --- a/flake.nix +++ b/flake.nix @@ -36,8 +36,11 @@ let isDrv = lib.isDerivation pkg; isAttrs = lib.isAttrs pkg; + isSameSystem = lib.meta.availableOn pkgs.stdenv.hostPlatform pkg; in - if isDrv then + if !isSameSystem then + [ ] + else if isDrv then [ (lib.nameValuePair name pkg) ] @@ -48,14 +51,32 @@ flatPackages = builtins.listToAttrs ( lib.lists.flatten (lib.mapAttrsToList (name: pkg: recursePackage name pkg) scope) ); - workingPackages = lib.filterAttrs (_: pkg: !pkg.meta.broken) self.packages.${system}; + workingPackages = lib.filterAttrs (_: pkg: !pkg.meta.broken) flatPackages; + + recursePackageSets = + pkg: + let + isDrv = lib.isDerivation pkg; + isAttrs = lib.isAttrs pkg; + isSameSystem = lib.meta.availableOn pkgs.stdenv.hostPlatform pkg; + in + if isDrv && isSameSystem then + pkg + else if isAttrs then + lib.mapAttrs (_: subPkg: recursePackageSets subPkg) pkg + else + null; + + # Recursively filter out nulls and remove overrides (probably a btter way to do this but it works for now) + packageSets = lib.filterAttrsRecursive (k: v: v != null && k != "override") ( + lib.mapAttrs (name: pkg: recursePackageSets pkg) scope + ); in { + inherit packageSets; inherit flatPackages; inherit pkgs; - packages = lib.filterAttrs ( - _: pkg: lib.isDerivation pkg && (lib.meta.availableOn pkgs.stdenv.hostPlatform pkg) - ) scope; + packages = packageSets; checks = lib.mapAttrs' (n: lib.nameValuePair "package-${n}") workingPackages; } ); diff --git a/pkgs/by-name/at/ath-tools/tools/ath12k-tools.nix b/pkgs/by-name/at/ath-tools/ath12k-tools.nix similarity index 100% rename from pkgs/by-name/at/ath-tools/tools/ath12k-tools.nix rename to pkgs/by-name/at/ath-tools/ath12k-tools.nix diff --git a/pkgs/by-name/at/ath-tools/package.nix b/pkgs/by-name/at/ath-tools/package.nix index 4fd5381..8a8b410 100644 --- a/pkgs/by-name/at/ath-tools/package.nix +++ b/pkgs/by-name/at/ath-tools/package.nix @@ -13,10 +13,6 @@ let hash = "sha256-iE4lqyr3zmLcgFnsrDvQ/CKUV15ijqmIbUIs9sgMECg="; }; in -lib.packagesFromDirectoryRecursive { - inherit callPackage newScope; - directory = ./tools; -} -# lib.makeScope newScope (self: { -# ath12k-tools = self.callPackage ./ath12k-tools.nix { inherit src; }; -# }) +lib.makeScope newScope (self: { + ath12k-tools = self.callPackage ./ath12k-tools.nix { inherit src; }; +}) diff --git a/pkgs/by-name/x1/x1e80100-firmware/package.nix b/pkgs/by-name/x1/x1e80100-firmware/package.nix index 81aa358..5744b4c 100644 --- a/pkgs/by-name/x1/x1e80100-firmware/package.nix +++ b/pkgs/by-name/x1/x1e80100-firmware/package.nix @@ -34,10 +34,10 @@ stdenv.mkDerivation ( tree ]; unpackPhase = '' - msiextract -C . $src + msiextract -C . "$src" ''; buildPhase = '' - mkdir -p $out/lib/firmware/qcom/x1e80100/microsoft/Romulus + mkdir -p "$out/lib/firmware/qcom/x1e80100/microsoft/Romulus" for file in ${lib.concatStringsSep " " fw_files}; do echo -e "\tSearching for $file..." fw_path=$(find . -type f -name "$file" -print | head -n 1) @@ -48,7 +48,7 @@ stdenv.mkDerivation ( exit 1 fi done - cp $out/lib/firmware/qcom/x1e80100/microsoft/Romulus/qcdxkmsuc8380.mbn $out/lib/firmware/qcom/x1e80100/microsoft/qcdxkmsuc8380.mbn + cp "$out/lib/firmware/qcom/x1e80100/microsoft/Romulus/qcdxkmsuc8380.mbn" "$out/lib/firmware/qcom/x1e80100/microsoft/qcdxkmsuc8380.mbn" ''; meta = { platforms = [ "aarch64-linux" ];