Skip to content

gz-sim: init Gazebo robotics simulator ecosystem#505237

Open
taylorhoward92 wants to merge 16 commits into
NixOS:masterfrom
taylorhoward92:add-gz-sim
Open

gz-sim: init Gazebo robotics simulator ecosystem#505237
taylorhoward92 wants to merge 16 commits into
NixOS:masterfrom
taylorhoward92:add-gz-sim

Conversation

@taylorhoward92
Copy link
Copy Markdown
Contributor

@taylorhoward92 taylorhoward92 commented Mar 31, 2026

Summary

Adds the full Gazebo Jetty robotics simulator stack:

  • Add 14 new packages for the Gazebo robotics simulator ecosystem:
    • gz-sim
    • gz-common
    • gz-fuel-tools
    • gz-gui
    • gz-math
    • gz-msgs
    • gz-physics
    • gz-plugin
    • gz-rendering
    • gz-sensors
    • gz-tools
    • gz-transport
    • sdformat
  • Update gz-cmake 5.0.0 → 5.1.0
  • Update gz-utils (make consistent with other Gazebo packages)

Depends on:

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Test plan

  • nix-build -A gz-sim builds full dependency tree on x86_64-linux, aarch64-linux, aarch64-darwin
  • nix-build -A <pkg>.passthru.tests.pkg-config for each library package
  • Run nixpkgs-review
  • Run gz sim CLI tool with GUI and headless rendering with various world files on x86_64-linux, aarch64-linux, aarch64-darwin
  • Use the C++ API to launch gazebo server and GUI with various world files on x86_64-linux, aarch64-linux, aarch64-darwin

@nixpkgs-ci nixpkgs-ci Bot added the 12.first-time contribution This PR is the author's first one; please be gentle! label Mar 31, 2026
@nixpkgs-ci nixpkgs-ci Bot added 8.has: package (new) This PR adds a new package 8.has: package (update) This PR updates a package to a newer version 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 8.has: maintainer-list (update) This PR changes `maintainers/maintainer-list.nix` labels Mar 31, 2026
@taylorhoward92 taylorhoward92 force-pushed the add-gz-sim branch 7 times, most recently from 7b901e6 to e0846f0 Compare April 7, 2026 10:00
@taylorhoward92 taylorhoward92 mentioned this pull request Apr 7, 2026
13 tasks
@taylorhoward92 taylorhoward92 force-pushed the add-gz-sim branch 8 times, most recently from 6130a55 to 0bbd0bf Compare April 9, 2026 11:02
@nixpkgs-ci nixpkgs-ci Bot added the 2.status: merge conflict This PR has merge conflicts with the target branch label Apr 9, 2026
@taylorhoward92 taylorhoward92 force-pushed the add-gz-sim branch 4 times, most recently from f243249 to 81fc503 Compare April 10, 2026 01:56
@nixpkgs-ci nixpkgs-ci Bot removed the 2.status: merge conflict This PR has merge conflicts with the target branch label Apr 10, 2026
@nixpkgs-ci nixpkgs-ci Bot requested a review from Guelakais April 18, 2026 04:49
@Guelakais
Copy link
Copy Markdown
Contributor

you have a duplication of #43275, #401753 and #432526 in your pr.

Comment on lines -55 to +56
passthru = {
# bulk updater selects wrong tag
skipBulkUpdates = true;
updateScript = nix-update-script {
extraArgs = [ "--version-regex=gz-cmake(.*)" ];
};
passthru.updateScript = nix-update-script {
extraArgs = [ "--version-regex=${versionPrefix}_([\\d\\.]+)" ];
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The proposed regex should allow the bulk updater to properly select just the semantic version from the repo tags.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok.

Comment on lines +105 to +112
passthru = {
tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
updateScript = nix-update-script {
extraArgs = [ "--version-regex=${versionPrefix}_([\\d\\.]+)" ];
};
};
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I'm not really sure what you mean? I have added a similar passthru for each package.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replication of #401753

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I missed this. I'll review your PR and can plan to remove gz-math from my PR. Ideally you could update from 9.0.0 to 9.1.0.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've left a review on your PR. If you're able to incorporate changes and get the PR merged I can depend on your gz-math package implementation.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

replication of #432725

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I missed this. I'll review your PR and can plan to remove gz-tools from my PR.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've also left a review on this PR. Once changes are incorporate the PR is merged I can depend on your gz-tools package implementation as well.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

replication of #432526

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a hard requirement for sdformat v15 or can you update to sdformat v16 (Jetty)? If you can update to v16 I'd be happy to review and help land your PR, and then I can remove sdformat from my PR.

Comment on lines +105 to +112
passthru = {
tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
updateScript = nix-update-script {
extraArgs = [ "--version-regex=${versionPrefix}_([\\d\\.]+)" ];
};
};
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I'm not really sure what you mean? I have added a similar passthru for each package.

@nixpkgs-ci nixpkgs-ci Bot requested a review from natsukium April 18, 2026 21:20
@nixpkgs-ci nixpkgs-ci Bot added the 6.topic: python Python is a high-level, general-purpose programming language. label Apr 18, 2026
@taylorhoward92 taylorhoward92 mentioned this pull request Apr 20, 2026
13 tasks
@taylorhoward92 taylorhoward92 force-pushed the add-gz-sim branch 3 times, most recently from 5ea33e3 to 8ae8d3a Compare April 25, 2026 11:10
taylorhoward92 and others added 5 commits May 20, 2026 20:54
Propagate gz-cmake, cli11, and spdlog so downstream gz-* packages can
find them. Add ctestCheckHook, pkg-config test, and nix-update-script.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Simulation Description Format parser used by Gazebo to load
robot and world models from .sdf files.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: python Python is a high-level, general-purpose programming language. 8.has: maintainer-list (update) This PR changes `maintainers/maintainer-list.nix` 8.has: package (new) This PR adds a new package 8.has: package (update) This PR updates a package to a newer version 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants