{ inputs = { nixpkgs.url = "nixpkgs/nixos-23.05"; flake-utils.url = "github:numtide/flake-utils"; etherlab.url = "git+https://git.dripco.eu/nic/etherlab-nix"; }; outputs = { self, nixpkgs, flake-utils, etherlab, ... }: flake-utils.lib.eachSystem [ "x86_64-linux" "i686-linux" "aarch64-linux" ] (system: let pkgs = nixpkgs.legacyPackages.${system}; kernel = pkgs.linux_latest; # TODO pass kernel version to the flake, use overlays maybe ethercat = if system == "aarch64-linux" then etherlab.ethercat.override { kernel = pkgs.linuxKernel.kernels.linux_rpi4; master_device0 = "end0"; } else etherlab.packages.${system}.ethercat.override { inherit kernel; }; in { packages.default = pkgs.callPackage ./default.nix { inherit ethercat; }; packages.ec-controller = pkgs.callPackage ./default.nix { inherit ethercat; }; } ); }