ROSBUILDER(1)

πŸ’– ROSBUILDER β€” bestie edition πŸ’–

okay so real talk, this is rosbuilder(1) from section 1 of the manual, and she's the little engine that runs your ROS package build steps. Come sit with me, I got you 🫢


✨ NAME ✨

rosbuilder β€” bestie literally runs the right build commands for ROS packages, no cap πŸ‘‘


✨ SYNOPSIS ✨

rosbuilder [options]

that's it. that's the whole vibe check. 🌸


✨ DESCRIPTION ✨

So rosbuilder is not a "you, personally, in your free time" kind of tool β€” she gets invoked internally by the ros buildsystem. The way you actually use her is in your debian/rules, like this:

dh --buildsystem=ros

and she handles the rest. iconic behavior fr fr πŸ’…


✨ OPTIONS ✨

  • -h, --help β€” show this help message and exit. she's helpful AND pretty 😌
  • --sourcedir DIR β€” root directory of the source package 🌳
  • --search-depth N β€” caps how deep she'll dig when searching for packages recursively, max N directory levels (default: 2) πŸ”
  • --unlimited-search-depth β€” no cap on the depth. she's going ALL the way down, periodt πŸ’€
  • --builddir DIR β€” build directory πŸ—οΈ
  • --destdir DIR β€” install staging directory (default: debian/tmp) πŸ“¦
  • --install-prefix DIR β€” install prefix (default: /usr) πŸŽ€
  • --verbose β€” make verbose output. she will tell you EVERYTHING πŸ—£οΈ
  • --detect β€” detect if ROS packages are to be built πŸ‘€
  • --build-types β€” list detected build types πŸ“‹
  • --build-order β€” list packages in build order πŸ”’

✨ ENVIRONMENT ✨

You can customize how rosbuilder behaves by setting various environment variables in debian/rules. She's very adaptable, we love a flexible queen πŸ¦‹

⚠️ GIRL. listen. Remember to prefix your declarations with the export keyword, or the variables will not propagate to the environment properly. no export, no vibes. don't do this to yourself 😭

🌈 General behavior 🌈

  • ROS_DESTDIR β€” override the location for the staged installation 🏠
  • ROS_INSTALL_PREFIX β€” override the install prefix πŸ’«
  • ROS_IGNORE_TEST_RESULTS β€” do not fail the build if the dh_auto_test step fails for the listed packages. And if you set it to the special value 1, test failures for all packages will be ignored. forgiving icon behavior πŸ™ˆ
  • ROS_PYTHON_VERSION β€” set to 2 or 3 to force the respective Python version for the build 🐍
  • ROS_SKIP_PACKAGES β€” do not build the listed packages at all. bye bestie πŸ‘‹
  • ROS_SKIP_INSTALL β€” do not install in the listed packages. This is mostly useful for dedicated test packages πŸ§ͺ
  • ROS_SKIP_TESTS β€” skip tests for the listed packages. If set to the special value 1, all package tests will be skipped. This is equivalent to passing nocheck via DEB_BUILD_OPTIONS 😴

🌈 Customizing dh_auto_* 🌈

For the clean, configure, build, test, and install steps, there are hooks to run additional commands before and after each step. Also, either additional arguments can be passed to the dh_auto_* helpers, or the whole step can be replaced by a different command. So much power, use it responsibly πŸ’…

  • ROS_step_ARGS β€” pass additional arguments to a dh step. The placeholder step stands for one of CONFIGURE, BUILD, TEST, INSTALL, or CLEAN, all in upper-case. yes, uppercase, she's shouting πŸ—£οΈ
  • ROS_step_type_ARGS β€” pass additional arguments to a dh step, but only for packages with a particular build type. Known build types are AMENT_CMAKE, AMENT_PYTHON, CATKIN, and CMAKE 🎯
  • ROS_step_WRAPPER β€” wrap a dh step with another command, i.e., prepend the command line with the given command and its arguments. The wrapper command is expected to execute the remainder of its arguments. An example for a wrapper is xvfb-run, which can be used to run tests in a virtual X server. fancy πŸ–₯️✨
  • ROS_step_type_WRAPPER β€” wrap a dh step with another command, but only for a particular build type πŸŽ€
  • ROS_EXECUTE_BEFORE_step β€” execute additional commands before a dh step. The value is subject to some variable expansion (see below) and treated as shell command line 🐚
  • ROS_EXECUTE_AFTER_step β€” execute additional commands after a dh step 🐚
  • ROS_EXECUTE_BEFORE_step_type β€” execute additional commands before a dh step for packages of build type type 🎯
  • ROS_EXECUTE_AFTER_step_type β€” execute additional commands after a dh step for packages of build type type 🎯
  • ROS_EXECUTE_CUSTOM_step β€” replace the dh step by a custom shell command line. This will replace the entire command line, so any COMMAND_PREFIX will be ignored as well. full chaos mode, no takebacks πŸ’€
  • ROS_EXECUTE_CUSTOM_step_type β€” replace the dh step for packages of build type type by a custom shell command line. This will replace the entire command line, so any WRAPPER will be ignored as well. she said overlapping hooks? never heard of her πŸ’€

🌈 Variable expansions for shell command lines 🌈

rosbuilder supports a few placeholders in custom command lines. All values will be quoted as required to prevent spurious shell expansions. safety first, bestie πŸ”’

  • {dir} β€” the source directory of the currently processed ROS package πŸ“‚
  • {build_dir} β€” the temporary build directory of the currently processed ROS package πŸ—οΈ
  • {destdir} β€” the location for the staged installation πŸ“¦
  • {homedir} β€” the temporary directory that is used for ROS_HOME during building and testing 🏑
  • {package} β€” the name of the currently processed ROS package 🏷️
  • {package!id} β€” the sanitized package name, suitable for use as variable identifier 🧼
  • {version} β€” the version number of the currently processed ROS package πŸ”’
  • {build_type} β€” the build type of the currently processed ROS package 🧩
  • {prefix} β€” the install prefix 🌟

✨ AUTHOR ✨

The dh-ros helper and rosbuilder was written by Timo RΓΆhling for Debian. king behavior, we stan πŸ‘‘πŸ’–


✨ SEE ALSO ✨

  • debhelper(7) β€” go read it, she references it for a reason 🫢

and that's the whole page, bestie!! 🌈✨ this was ROSBUILDER(1) at version 0.15.0, and if you made it all the way down here you're genuinely the main character. go build something cute πŸŽ€πŸ’œ

πŸ“¦ where this page comes from
  • ubuntu stonking: dh-ros 0.15.0 Β· MIT
  • πŸ“œ the page's license: MIT
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms