diff --git a/README.md b/README.md index d69518d..6bbdaa5 100644 --- a/README.md +++ b/README.md @@ -16,16 +16,8 @@ From the indexes you create overlays which then make the Arduino packages and li nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-utils.url = "github:numtide/flake-utils"; arduino-nix.url = "github:bouk/arduino-nix"; - arduino-library-index = { - url = "github:bouk/arduino-indexes/library_index"; - flake = false; - }; - arduino-package-index = { - url = "github:bouk/arduino-indexes/package_index"; - flake = false; - }; - arduino-package-rp2040-index = { - url = "github:bouk/arduino-indexes/package_rp2040_index"; + arduino-index = { + url = "github:bouk/arduino-indexes"; flake = false; }; }; @@ -35,17 +27,15 @@ From the indexes you create overlays which then make the Arduino packages and li nixpkgs, flake-utils, arduino-nix, - arduino-package-index, - arduino-package-rp2040-index, - arduino-library-index, + arduino-index, ... }@attrs: let overlays = [ (arduino-nix.overlay) - (arduino-nix.mkArduinoPackageOverlay (arduino-package-index + "/package_index.json")) - (arduino-nix.mkArduinoPackageOverlay (arduino-package-rp2040-index + "/package_rp2040_index.json")) - (arduino-nix.mkArduinoLibraryOverlay (arduino-library-index + "/library_index.json")) + (arduino-nix.mkArduinoPackageOverlay (arduino-index + "/index/package_index.json")) + (arduino-nix.mkArduinoPackageOverlay (arduino-index + "/index/package_rp2040_index.json")) + (arduino-nix.mkArduinoLibraryOverlay (arduino-index + "/index/library_index.json")) (arduino-nix.mkArduinoPackageOverlay (pkgs.fetchurl { url = "https://raw.githubusercontent.com/espressif/arduino-esp32/8bae7e23376c6087a55e46456049ae6d73b72e16/package_esp32_index.json"; hash = "sha256-0kvZeRDtE/JKJes86omyN4cf4HWfX68P7xPfE+BvTC8="; diff --git a/lib.nix b/lib.nix index 562153a..e165e00 100644 --- a/lib.nix +++ b/lib.nix @@ -27,9 +27,11 @@ with builtins; rec { else if system == "i686-darwin" then lib.findFirst ({host, ...}: (match "i[3456]86-apple-darwin.*" host) != null) null systems else if system == "aarch64-linux" then - lib.findFirst ({host, ...}: (match "(aarch64|arm64)-linux-gnu" host) != null) null systems + # tools.go uses regexp.MatchString which will also return true for substring matches, so we add a .* to the regex + lib.findFirst ({host, ...}: (match "(aarch64|arm64)-linux-gnu.*" host) != null) null systems else if system == "x86_64-linux" then - lib.findFirst ({host, ...}: (match "x86_64-.*linux-gnu" host) != null) null systems + # also add a .* to the regex here though it is not necessary in the current dataset (March 2024) + lib.findFirst ({host, ...}: (match "x86_64-.*linux-gnu.*" host) != null) null systems else null; convertHash = hash: let m = (match "(SHA-256|SHA-1|MD5):(.*)" hash); diff --git a/libraries.nix b/libraries.nix index bfd2c28..c82f548 100644 --- a/libraries.nix +++ b/libraries.nix @@ -19,7 +19,7 @@ let runHook postInstall ''; nativeBuildInputs = [ pkgs.unzip ]; - src = fetchurl ({ + src = pkgs.fetchurl ({ url = url; } // (convertHash checksum)); }; diff --git a/packages.nix b/packages.nix index 4bc3a71..fc7c973 100644 --- a/packages.nix +++ b/packages.nix @@ -26,7 +26,7 @@ let cp -R * "$out/$dirName/" ''; nativeBuildInputs = [ pkgs.unzip ]; - src = fetchurl ({ + src = pkgs.fetchurl ({ url = system.url; } // (convertHash system.checksum)); }; @@ -58,7 +58,7 @@ let runHook postInstall ''; nativeBuildInputs = [ pkgs.unzip ]; - src = fetchurl ({ + src = pkgs.fetchurl ({ url = url; } // (convertHash checksum)); }; diff --git a/wrap-arduino-cli.nix b/wrap-arduino-cli.nix index 05a1bee..8ff9a7d 100644 --- a/wrap-arduino-cli.nix +++ b/wrap-arduino-cli.nix @@ -22,6 +22,9 @@ let (pkgs.writeTextDir "package_index.json" (builtins.toJSON {packages = [];})) (pkgs.writeTextDir "library_index.json" (builtins.toJSON {libraries = [];})) ]; + postBuild = '' + mkdir -p $out/staging + ''; }; in pkgs.runCommand "arduino-cli-wrapped" {