{ inputs = { nix-ros-overlay.url = "github:lopsided98/nix-ros-overlay/develop"; nixpkgs.follows = "nix-ros-overlay/nixpkgs"; # IMPORTANT!!! }; outputs = { self, nix-ros-overlay, nixpkgs, }: nix-ros-overlay.inputs.flake-utils.lib.eachDefaultSystem (system: let applyDistroOverlay = rosOverlay: rosPackages: rosPackages // builtins.mapAttrs ( rosDistro: rosPkgs: if rosPkgs ? overrideScope then rosPkgs.overrideScope rosOverlay else rosPkgs ) rosPackages; rosDistroOverlays = self: super: { rosPackages = applyDistroOverlay (import ./overlay.nix) super.rosPackages; }; pythonOverlay = self: super: { pythonPackagesExtensions = super.pythonPackagesExtensions ++ [ ( python-final: python-prev: { rbs-assets-library = self.python3Packages.callPackage ./nix/repos/rbs-assets-library.nix { }; } ) ]; }; pkgs = import nixpkgs { inherit system; overlays = [ nix-ros-overlay.overlays.default rosDistroOverlays pythonOverlay ]; config.permittedInsecurePackages = [ "freeimage-3.18.0-unstable-2024-04-18" ]; }; zsh-autocompletions = pkgs.runCommand "ros-autocompletions" {} '' for dir in {bash-completion/completions,zsh/site-functions}; do mkdir -p $out/share/$dir for program in {ros2,colcon,rosidl}; do ${pkgs.python3.pkgs.argcomplete}/bin/register-python-argcomplete $program > $out/share/$dir/_$program done done ''; use_zsh = true; rosDistro = "jazzy"; in { legacyPackages = pkgs.rosPackages; packages = builtins.intersectAttrs (import ./overlay.nix null null) pkgs.rosPackages.${rosDistro}; checks = builtins.intersectAttrs (import ./overlay.nix null null) pkgs.rosPackages.${rosDistro}; devShells.default = pkgs.mkShell { name = "Robossembler ROS2"; packages = [ pkgs.colcon # ... other non-ROS packages (with pkgs.rosPackages.${rosDistro}; buildEnv { paths = [ ros-core rbs-bringup # Include simulation runtime rbs-runtime # robot package rbs-arm ]; }) ] ++ ( if use_zsh then [zsh-autocompletions pkgs.zsh] else [] ); shellHook = '' ${ if use_zsh then '' echo "Swithching to ZSH shell..." export SHELL=$(which zsh) exec zsh '' else '''' } nix store gc ''; }; }); nixConfig = { extra-substituters = ["https://ros.cachix.org" "https://robossembler.cachix.org" "https://cuda-maintainers.cachix.org"]; extra-trusted-public-keys = [ "ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=" "robossembler.cachix.org-1:56jBJHroRQSGpZFkW8XMquuzQTjAF/XTo6MogmBM7SQ=" "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" ]; }; }