diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fec6fc1..4dd37f2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,6 +18,11 @@ general-packages: inherit: default: [before_script, image] script: + # Gazebo security freeimage-unstable-2021-11-01’ is marked as insecure + # /nix/store/28gcncrir6wd8n6n762y92lbm632cxcy-gazebo-sim + # └───/nix/store/bw3nx4nrvwbnj9b6hdg4p0iyxnakqca8-gz-common5-5.4.2 + # └───/nix/store/hwr0f25hiqv1pjnqyg0sp1gv9grb198b-freeimage-unstable-2021-11-01 + - export NIXPKGS_ALLOW_INSECURE=1 - cachix watch-exec robossembler -- nix develop .#all --impure -c echo "General Packages is BUILT" ros-packages: diff --git a/flake.lock b/flake.lock index 4c7879f..ed81be7 100644 --- a/flake.lock +++ b/flake.lock @@ -1,6 +1,21 @@ { "nodes": { "flake-utils": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { "inputs": { "systems": "systems" }, @@ -18,7 +33,67 @@ "type": "github" } }, + "gazebo": { + "inputs": { + "flake-utils": [ + "ros-flake", + "flake-utils" + ], + "nixgl": "nixgl", + "nixpkgs": [ + "ros-flake", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1711612492, + "narHash": "sha256-QEz9HZCth8kxz8nrqZ9/hhomAfSW6E0ngmoIb00NXQ8=", + "owner": "movefasta", + "repo": "gazebo-sim-overlay", + "rev": "4f1c3c115b55795ec7d7af43d0b16f7ef18dcc44", + "type": "github" + }, + "original": { + "owner": "movefasta", + "repo": "gazebo-sim-overlay", + "type": "github" + } + }, + "nixgl": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1685908677, + "narHash": "sha256-E4zUPEUFyVWjVm45zICaHRpfGepfkE9Z2OECV9HXfA4=", + "owner": "guibou", + "repo": "nixGL", + "rev": "489d6b095ab9d289fe11af0219a9ff00fe87c7c5", + "type": "github" + }, + "original": { + "owner": "guibou", + "repo": "nixGL", + "type": "github" + } + }, "nixpkgs": { + "locked": { + "lastModified": 1660551188, + "narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "441dc5d512153039f19ef198e662e4f3dbb9fd65", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { "locked": { "lastModified": 1712307699, "narHash": "sha256-/PzHcPvBvJeZTY9JCEtbNljYLecwggveHQ2oHPlTycA=", @@ -34,7 +109,7 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_3": { "locked": { "lastModified": 1707268954, "narHash": "sha256-2en1kvde3cJVc3ZnTy8QeD2oKcseLFjYPLKhIGDanQ0=", @@ -56,14 +131,15 @@ "ros-flake", "flake-utils" ], - "nixpkgs": "nixpkgs", + "gazebo": "gazebo", + "nixpkgs": "nixpkgs_2", "ros-flake": "ros-flake" } }, "ros-flake": { "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_2" + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1711215320, diff --git a/flake.nix b/flake.nix index 5e8e25a..dd15bcd 100644 --- a/flake.nix +++ b/flake.nix @@ -4,15 +4,26 @@ nixpkgs.url = "github:NixOS/nixpkgs?ref=master"; flake-utils.follows = "ros-flake/flake-utils"; ros-flake.url = "github:lopsided98/nix-ros-overlay?ref=develop"; + gazebo = { + url = "github:movefasta/gazebo-sim-overlay"; + inputs.flake-utils.follows = "ros-flake/flake-utils"; + inputs.nixpkgs.follows = "ros-flake/nixpkgs"; + + # Transitive inputs "not in registry" https://github.com/NixOS/nix/issues/5790 + # inputs.nixgl.inputs.nixpkgs.follows = "ros-flake/nixpkgs"; + # inputs.nixgl.inputs.flake-utils.follows = "ros-flake/flake-utils"; + }; }; - outputs = { self, nixpkgs, ros-flake, flake-utils }: + outputs = { self, nixpkgs, ros-flake, gazebo, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let - pkgs = nixpkgs.legacyPackages.${system}.extend overlay; + # pkgs = nixpkgs.legacyPackages.${system}.extend overlay; ros = ros-flake.legacyPackages.${system}; + pkgs = import nixpkgs { inherit system; overlays = [ overlay gazebo.overlays.default ]; }; + overlay = final: prev: { # -- PLACEHOLDER for overlay # freecad = prev.freecad.overrideAttrs @@ -139,6 +150,8 @@ devShells.ci = pkgs.mkShell { buildInputs = [ pkgs.jq ]; }; + devShells.gazebo = gazebo.devShells.${system}.default; + devShells.ros = pkgs.mkShell { buildInputs = (with humble-overrided; [ @@ -173,7 +186,7 @@ image-transport cv-bridge example-interfaces - ]) ++ (with pkgs; [ nlohmann_json glog lua5_3_compat ]); + ]) ++ (with pkgs; [ nlohmann_json glog lua5_3_compat gazebo_sim ]); RMW_IMPLEMENTATION = "rmw_fastrtps_dynamic_cpp"; };