├── .github └── workflows │ ├── ubuntu_20_04.yml │ └── ubuntu_22_04.yml ├── .gitmodules ├── Dockerfile ├── LICENSE ├── README.md ├── apt_install └── Dockerfile ├── build.sh ├── debian ├── Dockerfile ├── README.md ├── VERSION └── debian │ ├── README.Debian │ ├── README.source │ ├── changelog │ ├── control │ ├── copyright │ ├── manpage.1.ex │ ├── manpage.md.ex │ ├── manpage.sgml.ex │ ├── manpage.xml.ex │ ├── postinst.ex │ ├── postrm.ex │ ├── preinst.ex │ ├── prerm.ex │ ├── rosone-docs.docs │ ├── rosone.cron.d.ex │ ├── rosone.doc-base.ex │ ├── rosone.install │ ├── rules │ ├── salsa-ci.yml.ex │ ├── source │ └── format │ ├── upstream │ └── metadata.ex │ └── watch.ex ├── dependencies.sh ├── git_clone.sh └── ubuntu_2204 ├── Dockerfile ├── README.md ├── base_repos.yaml └── ignore.sh /.github/workflows/ubuntu_20_04.yml: -------------------------------------------------------------------------------- 1 | name: Ubuntu 20.04 Noetic ROS build from source 2 | 3 | on: 4 | push: 5 | workflow_dispatch: 6 | 7 | jobs: 8 | ubuntu2004and2204: 9 | runs-on: ubuntu-20.04 10 | # env: 11 | steps: 12 | - name: git clone git@github.com:lucasw/ros_from_src 13 | uses: actions/checkout@v2 14 | with: 15 | path: ros_from_src 16 | submodules: recursive 17 | 18 | - name: local apt dependencies 19 | run: | 20 | mkdir staging 21 | cd staging 22 | sudo ../ros_from_src/dependencies.sh 23 | 24 | - name: local git dependencies 25 | run: | 26 | cd staging 27 | # override rosconsole in 20.04 for log4cxx compatibility 28 | ROSCONSOLE=https://github.com/ros/rosconsole ../ros_from_src/git_clone.sh 29 | 30 | - name: local build 31 | run: | 32 | cd staging 33 | ../ros_from_src/build.sh 34 | 35 | - name: docker build from source 20.04 36 | run: | 37 | cd ros_from_src 38 | docker build --build-arg IMAGE=ubuntu:20.04 --build-arg ROSCONSOLE=https://github.com/ros/rosconsole --build-arg PYTHON_MINOR_VERSION=8 . -t ros2004 39 | 40 | - name: docker build from source 22.04 41 | run: | 42 | cd ros_from_src 43 | docker build --build-arg IMAGE=ubuntu:22.04 --build-arg PYTHON_MINOR_VERSION=10 . -t ros2204 44 | 45 | - name: docker build from source and debian 22.04 46 | run: | 47 | cd ros_from_src/ubuntu_2204 48 | docker build . -t ros_debian_2204 49 | -------------------------------------------------------------------------------- /.github/workflows/ubuntu_22_04.yml: -------------------------------------------------------------------------------- 1 | name: Ubuntu 22.04 build with debian ros packages along with source packages 2 | 3 | on: 4 | push: 5 | workflow_dispatch: 6 | 7 | concurrency: 8 | group: ${{ github.workflow }}-${{ github.ref }} 9 | cancel-in-progress: true 10 | 11 | jobs: 12 | ubuntu2204: 13 | strategy: 14 | fail-fast: false 15 | matrix: 16 | build_type: [install, devel] 17 | build_all: [minimal, full] 18 | 19 | runs-on: ubuntu-22.04 20 | # env: 21 | steps: 22 | - name: git clone ros_from_src 23 | uses: actions/checkout@v3 24 | with: 25 | path: other/src/ros_from_src 26 | 27 | - name: os version 28 | run: | 29 | lsb_release -a 30 | 31 | - name: apt update 32 | run: | 33 | sudo add-apt-repository universe 34 | sudo apt-get update 35 | 36 | - name: apt upgrade 37 | run: | 38 | echo "skip" 39 | # sudo apt-get upgrade 40 | 41 | - name: needrestart 42 | run: | 43 | sudo needrestart -v 44 | # sudo needrestart -r a 45 | # sudo systemctl restart packagekit 46 | # sudo systemctl restart php8.1-fpm 47 | # sudo systemctl restart ssh 48 | 49 | - name: apt library installs 1 50 | run: | 51 | sudo apt-get install -o Debug::pkgProblemResolver=true -yqq libunwind-dev 52 | dpkg -l | grep libunwind 53 | sudo apt-get install -o Debug::pkgProblemResolver=true -yqq libceres-dev 54 | sudo apt-get install -yqq devscripts dh-make 55 | 56 | - name: apt library installs 2 57 | run: | 58 | sudo apt-get install -yqq libgeographic-dev 59 | sudo apt-get install -yqq libgmock-dev libgoogle-glog-dev 60 | sudo apt-get install -yqq liborocos-bfl-dev 61 | sudo apt-get install -yqq libprotobuf-dev libprotoc-dev 62 | 63 | - name: apt library installs 3 64 | run: | 65 | sudo apt-get install -yqq libspnav-dev liburdfdom-dev 66 | sudo apt-get install -yqq libyaml-cpp-dev 67 | sudo apt-get install -yqq cython3 68 | sudo apt-get install -yqq freeglut3-dev 69 | sudo apt-get install -yqq libapriltag-dev 70 | sudo apt-get install -yqq libcgal-dev 71 | sudo apt-get install -yqq libfmt-dev 72 | sudo apt-get install -yqq libgsl-dev 73 | sudo apt-get install -yqq libhdf5-dev 74 | sudo apt-get install -yqq libturbojpeg0-dev 75 | sudo apt-get install -yqq libzmq3-dev 76 | sudo apt-get install -yqq ocl-icd-opencl-dev opencl-headers 77 | sudo apt-get install -yqq libopenvdb-dev 78 | 79 | - name: apt sdl installs 80 | run: | 81 | sudo apt-get install -o Debug::pkgProblemResolver=true -yqq libsdl2-* libsdl-image1.2-dev python3-sdl2 82 | sudo apt-get install -yqq frei0r-plugins-dev libfrei0r-ocaml-dev 83 | 84 | - name: apt video installs 85 | run: | 86 | sudo apt-get install -yqq libgst-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev 87 | sudo apt-get install -yqq libuvc-dev libv4l-dev 88 | 89 | - name: apt qt installs 90 | run: | 91 | sudo apt-get install -yqq libqt5svg5-dev libqt5websockets5-dev libqt5x11extras5-dev libqwt-qt5-dev 92 | sudo apt-get install -yqq libqtav-dev 93 | 94 | - name: apt tool installs 95 | run: | 96 | sudo apt-get install -yqq git 97 | sudo apt-get install -yqq vim curl jq 98 | sudo apt-get install -yqq python-is-python3 python3-venv 99 | 100 | - name: apt ros installs 101 | run: | 102 | sudo apt-get install -yqq ros-* 103 | sudo apt-get install -yqq catkin-lint 104 | sudo apt-get install -yqq libimage-view-dev 105 | sudo apt-get install -yqq libpcl-ros-dev 106 | sudo apt-get install -yqq python3-tf2-geometry-msgs 107 | 108 | - name: setup 109 | run: | 110 | mkdir -p other/src 111 | echo "DEST=$HOME/other/install" >> $GITHUB_ENV 112 | # echo "$DEST/bin" >> $GITHUB_PATH 113 | echo PYTHON_MAJOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f1` >> $GITHUB_ENV 114 | echo PYTHON_MINOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f2` >> $GITHUB_ENV 115 | 116 | - name: setup 2 117 | run: | 118 | echo "PATH=$PATH:$DEST/bin" >> $GITHUB_ENV 119 | echo "PYTHONPATH=$DEST/lib/python$PYTHON_MAJOR_VERSION.$PYTHON_MINOR_VERSION/site-packages/" >> $GITHUB_ENV 120 | echo "CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$DEST/lib/cmake" >> $GITHUB_ENV 121 | 122 | - name: check setup 123 | run: | 124 | echo $HOME 125 | echo $GITHUB_PATH 126 | echo $PATH 127 | echo $PYTHONPATH 128 | 129 | - name: git clone vcstool 130 | uses: actions/checkout@v3 131 | with: 132 | repository: dirk-thomas/vcstool 133 | path: other/src/vcstool 134 | 135 | - name: vcs 136 | run: | 137 | cd other/src 138 | cd vcstool 139 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 140 | vcs --help 141 | 142 | - name: git clone pycommon 143 | uses: actions/checkout@v3 144 | with: 145 | repository: osrf/osrf_pycommon 146 | path: other/src/osrf_pycommon 147 | 148 | - name: pycommon 149 | run: | 150 | cd other/src 151 | cd osrf_pycommon 152 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 153 | 154 | - name: git clone catkin tools 155 | uses: actions/checkout@v3 156 | with: 157 | repository: lucasw/catkin_tools 158 | path: other/src/catkin_tools 159 | ref: sanitize_cmake_prefix_path 160 | 161 | - name: catkin tools 162 | run: | 163 | cd other/src 164 | cd catkin_tools 165 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 166 | which catkin 167 | catkin --version 168 | 169 | - name: setup base_catkin_ws 170 | run: | 171 | mkdir -p ${{ matrix.build_type }}_base_catkin_ws/src 172 | cd ${{ matrix.build_type }}_base_catkin_ws/src 173 | ln -s ../../other/src/ros_from_src/ubuntu_2204/base_repos.yaml 174 | # need https instead of git@github 175 | sed -i 's/git@github.com:/https:\/\/github.com\//' base_repos.yaml 176 | ls -l 177 | vcs import --shallow < base_repos.yaml 178 | # show which versions were imported 179 | vcs export --exact 180 | # ignore repos that aren't yet building in 22.04 181 | ../../other/src/ros_from_src/ubuntu_2204/ignore.sh 182 | 183 | # the newer openvdb that doesn't have tbb error that the apt install version has 184 | - name: install build openvdb 185 | if: ${{ matrix.build_all == 'full' }} 186 | run: | 187 | mkdir -p other/build/openvdb 188 | cd other/build/openvdb 189 | cmake ../../../${{ matrix.build_type }}_base_catkin_ws/src/other/vdb/openvdb/ -DCMAKE_INSTALL_PREFIX=$DEST 190 | make -j3 # it's a slow build 191 | make install 192 | 193 | # TODO(lucasw) later have an entirely separately layer for the larger slow building packages 194 | - name: ignore large slow packages 195 | if: ${{ matrix.build_all == 'minimal' }} 196 | run: | 197 | cd ${{ matrix.build_type }}_base_catkin_ws/src 198 | 199 | touch other/PlotJuggler/CATKIN_IGNORE 200 | touch other/plotjuggler_msgs/CATKIN_IGNORE 201 | touch other/plotjuggler-ros-plugins/CATKIN_IGNORE 202 | 203 | touch other/jsk_common/CATKIN_IGNORE 204 | touch other/jsk_common_msgs/CATKIN_IGNORE 205 | touch other/jsk_recognition/CATKIN_IGNORE 206 | touch other/jsk_roseus/CATKIN_IGNORE 207 | touch other/jsk_visualization/CATKIN_IGNORE 208 | 209 | touch other/fiducials/CATKIN_IGNORE 210 | 211 | touch other/fuse/CATKIN_IGNORE 212 | 213 | touch other/lvr2/CATKIN_IGNORE 214 | touch other/mesh_tools/CATKIN_IGNORE 215 | 216 | touch other/rtabmap/CATKIN_IGNORE 217 | touch other/rtabmap_ros/CATKIN_IGNORE 218 | 219 | touch ros/grid_map/CATKIN_IGNORE 220 | 221 | touch other/anybotics/CATKIN_IGNORE 222 | touch other/octomap_mapping/CATKIN_IGNORE 223 | touch other/octomap_ros/CATKIN_IGNORE 224 | 225 | touch other/vdb/CATKIN_IGNORE 226 | 227 | - name: devel setup 228 | if: ${{ matrix.build_type == 'devel' }} 229 | run: | 230 | cd ${{ matrix.build_type }}_base_catkin_ws 231 | catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release -Wno-deprecated -Wno-dev -DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES=$DEST/include -DCMAKE_LIBRARY_PATH=$DEST/lib 232 | 233 | # TODO(lucasw) lvr2 not building in devel, but could build it 234 | # outside of catkin entirely and install to DEST 235 | touch src/other/lvr2/CATKIN_IGNORE 236 | touch src/other/mesh_tools/CATKIN_IGNORE 237 | 238 | - name: install setup 239 | if: ${{ matrix.build_type == 'install' }} 240 | run: | 241 | cd ${{ matrix.build_type }}_base_catkin_ws 242 | catkin config --install --cmake-args -DCMAKE_BUILD_TYPE=Release -Wno-deprecated -Wno-dev -DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES=$DEST/include -DCMAKE_LIBRARY_PATH=$DEST/lib 243 | 244 | # individual packages or sets of packages built separately 245 | # this first one sources last because nothing has been built yet 246 | - name: build qt_gui_core 247 | run: | 248 | cd ${{ matrix.build_type }}_base_catkin_ws 249 | catkin build --no-status qt_gui_core 250 | source ${{ matrix.build_type }}/setup.bash 251 | 252 | - name: build vdb mapping 253 | if: ${{ matrix.build_all == 'full' }} 254 | run: | 255 | cd ${{ matrix.build_type }}_base_catkin_ws 256 | source ${{ matrix.build_type }}/setup.bash 257 | catkin build --no-status vdb_mapping* --verbose 258 | 259 | - name: build fiducials 260 | if: ${{ matrix.build_all == 'full' }} 261 | run: | 262 | cd ${{ matrix.build_type }}_base_catkin_ws 263 | source ${{ matrix.build_type }}/setup.bash 264 | catkin build --no-status fiducials 265 | 266 | - name: build grid_map 267 | if: ${{ matrix.build_all == 'full' }} 268 | run: | 269 | cd ${{ matrix.build_type }}_base_catkin_ws 270 | source ${{ matrix.build_type }}/setup.bash 271 | catkin build --no-status grid_map* 272 | 273 | - name: build rtabmap_ros 274 | if: ${{ matrix.build_all == 'full' }} 275 | run: | 276 | cd ${{ matrix.build_type }}_base_catkin_ws 277 | source ${{ matrix.build_type }}/setup.bash 278 | catkin build --no-status rtabmap_ros 279 | 280 | - name: build joint_trajectory_controller 281 | run: | 282 | cd ${{ matrix.build_type }}_base_catkin_ws 283 | source ${{ matrix.build_type }}/setup.bash 284 | catkin build --no-status joint_trajectory_controller 285 | 286 | - name: test joint_trajectory_controller 287 | # TODO(lucasw) this test is slow, maybe don't do it at all 288 | if: ${{ (matrix.build_type == 'devel' && matrix.build_all == 'full') }} 289 | run: | 290 | cd ${{ matrix.build_type }}_base_catkin_ws 291 | source ${{ matrix.build_type }}/setup.bash 292 | catkin build joint_trajectory_controller --no-status --no-deps --catkin-make-args tests 293 | rostest joint_trajectory_controller joint_trajectory_controller.test 294 | # catkin test --no-status joint_trajectory_controller 295 | 296 | - name: test install joint_trajectory_controller 297 | if: ${{ (matrix.build_type == 'devel' && matrix.build_all == 'full') }} 298 | run: | 299 | cd ${{ matrix.build_type }}_base_catkin_ws 300 | source ${{ matrix.build_type }}/setup.bash 301 | catkin test --no-status joint_trajectory_controller 302 | 303 | - name: build plotjuggler 304 | if: ${{ matrix.build_all == 'full' }} 305 | run: | 306 | cd ${{ matrix.build_type }}_base_catkin_ws 307 | source ${{ matrix.build_type }}/setup.bash 308 | # Does building plotjuggler before plotjuggler_ros mess up in install? 309 | # catkin build --no-status plotjuggler 310 | catkin build --no-status plotjuggler_ros 311 | source ${{ matrix.build_type }}/setup.bash 312 | 313 | - name: build rviz 314 | run: | 315 | cd ${{ matrix.build_type }}_base_catkin_ws 316 | source ${{ matrix.build_type }}/setup.bash 317 | catkin build --no-status rviz 318 | source ${{ matrix.build_type }}/setup.bash 319 | 320 | - name: build rviz_map_plugin 321 | if: ${{ matrix.build_all == 'full' && matrix.build_type == 'install' }} 322 | run: | 323 | cd ${{ matrix.build_type }}_base_catkin_ws 324 | source ${{ matrix.build_type }}/setup.bash 325 | catkin build --no-status rviz_map_plugin 326 | 327 | - name: build jsk 328 | if: ${{ matrix.build_all == 'full' }} 329 | run: | 330 | cd ${{ matrix.build_type }}_base_catkin_ws 331 | source ${{ matrix.build_type }}/setup.bash 332 | catkin build --no-status jsk* 333 | 334 | - name: build fuse 335 | if: ${{ matrix.build_all == 'full' }} 336 | run: | 337 | cd ${{ matrix.build_type }}_base_catkin_ws 338 | source ${{ matrix.build_type }}/setup.bash 339 | catkin build --no-status fuse_models fuse_optimizers 340 | 341 | - name: build rest of ${{ matrix.build_type }}_base_catkin_ws 342 | run: | 343 | cd ${{ matrix.build_type }}_base_catkin_ws 344 | source ${{ matrix.build_type }}/setup.bash 345 | catkin build --no-status 346 | 347 | - name: tar up install_catkin_ws 348 | if: ${{ matrix.build_type == 'install' }} 349 | run: | 350 | tar cvzf install_catkin_ws_2204.tgz install_base_catkin_ws/install 351 | tar cvzf install_dest_2204.tgz $DEST 352 | ls -l 353 | 354 | - name: upload install_catkin_ws_2204.tgz 355 | if: ${{ matrix.build_type == 'install' }} 356 | uses: actions/upload-artifact@v4 357 | with: 358 | name: install_dest_2204_${{ matrix.build_all }} 359 | path: install_dest_2204.tgz 360 | 361 | - name: upload install_catkin_ws_2204.tgz 362 | if: ${{ matrix.build_type == 'install' }} 363 | uses: actions/upload-artifact@v4 364 | with: 365 | name: install_catkin_ws_2204__${{ matrix.build_all }} 366 | path: install_catkin_ws_2204.tgz 367 | 368 | - name: make a deb from the entirety of install_catkin_ws/install 369 | if: ${{ matrix.build_type == 'install' }} 370 | run: | 371 | cd other/src/ros_from_src/debian 372 | ln -s ../../../../install_base_catkin_ws/install 373 | dpkg-buildpackage -A -uc 374 | 375 | - name: upload .deb 376 | if: ${{ matrix.build_type == 'install' }} 377 | uses: actions/upload-artifact@v4 378 | with: 379 | name: install_catkin_ws_2204_${{ matrix.build_all }}.deb 380 | # TODO(lucasw) extract name from debian files, VERSION? 381 | path: other/src/ros_from_src/rosone_0.0.6-1_all.deb 382 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "core/catkin"] 2 | path = core/catkin 3 | url = git@github.com:ros/catkin 4 | [submodule "core/catkin_pkg"] 5 | path = core/catkin_pkg 6 | url = git@github.com:ros-infrastructure/catkin_pkg 7 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | ARG IMAGE=ubuntu:22.04 2 | FROM ${IMAGE} 3 | ARG IMAGE 4 | RUN echo ${IMAGE} 5 | 6 | ENV DEBIAN_FRONTEND="noninteractive" 7 | 8 | # be able to source files 9 | RUN rm /bin/sh && ln -s /bin/bash /bin/sh 10 | 11 | RUN apt-get update 12 | RUN apt-get install -y apt-utils 13 | 14 | # apt installs 15 | # TODO(lucasw) used to do these on separate layers but github actions has a layer limit? 16 | # it was failing later with 'ERROR: failed to solve: failed to prepare...max depth exceeded' 17 | RUN apt-get install -y build-essential bzip2 libbz2-dev cmake git libboost-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev libboost-thread-dev libfmt-dev libgpgme-dev libgtest-dev liblog4cxx-dev liblz4-dev lz4 libpoco-dev libtinyxml2-dev mawk coreutils python-is-python3 python3 python3-dev python3-empy python3-setuptools python3-yaml 18 | RUN apt-get update && apt-get install -yqq libgsl-dev wget libspnav-dev liburdfdom-dev libyaml-cpp-dev cython3 freeglut3-dev libapriltag-dev libcgal-dev libhdf5-dev libturbojpeg0-dev libzmq3-dev ocl-icd-opencl-dev opencl-headers 19 | 20 | ENV SRC=/src 21 | RUN mkdir $SRC -p 22 | ENV BUILD=/build 23 | RUN mkdir $BUILD -p 24 | ENV WS=/catkin_ws/src 25 | RUN mkdir $WS -p 26 | 27 | ENV DEST=/opt/ros/noetic 28 | 29 | # TODO(lucasw) this doesn't work in 20.04 because of log 30 | # --build-args ROSCONSOLE=https://github.com/ros-o/rosconsole 31 | ARG ROSCONSOLE=https://github.com/ros-o/rosconsole 32 | # ENV ROSCONSOLE=$ROSCONSOLE 33 | RUN echo $ROSCONSOLE 34 | 35 | # packages that need to be cmake installed, and are ros packages in a catkin workspace 36 | RUN mkdir $SRC/ros_from_src -p 37 | WORKDIR / 38 | COPY git_clone.sh $SRC/ros_from_src 39 | # WORKDIR $SRC/ros_from_src 40 | RUN ROS_CONSOLE=$ROSCONSOLE $SRC/ros_from_src/git_clone.sh 41 | 42 | # python installs 43 | 44 | RUN python --version | awk '{print $2}' | cut -d'.' -f1 45 | RUN python --version | awk '{print $2}' | cut -d'.' -f2 46 | # TODO(lucasw) these aren't working 47 | # RUN export PYTHON_MAJOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f1` 48 | # RUN export PYTHON_MINOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f2` 49 | # RUN PYTHON_MINOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f2` 50 | ARG PYTHON_MAJOR_VERSION=3 51 | ARG PYTHON_MINOR_VERSION=10 52 | ENV OPT_PYTHONPATH=$DEST/lib/python$PYTHON_MAJOR_VERSION.$PYTHON_MINOR_VERSION/site-packages/ 53 | RUN echo $PYTHONPATH 54 | ENV PYTHONPATH=$OPT_PYTHONPATH 55 | RUN echo $PYTHONPATH 56 | 57 | # catkin_pkg 58 | WORKDIR $SRC/catkin_pkg 59 | RUN pwd 60 | RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 61 | RUN ls -l $OPT_PYTHONPATH 62 | RUN ls -l $OPT_PYTHONPATH/catkin_pkg 63 | # RUN python -c "import sys; print(sys.path)" 64 | RUN python -c "import catkin_pkg; print(catkin_pkg.__version__)" 65 | RUN apt-get install -y python3-pyparsing 66 | RUN python -c "from catkin_pkg.package import parse_package" 67 | 68 | # osrf pycommon 69 | WORKDIR $SRC/osrf_pycommon 70 | # TODO(lucasw) install to $DEST 71 | RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 72 | 73 | # catkin tools 74 | WORKDIR $SRC/catkin_tools 75 | RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 76 | 77 | # cmake install 78 | RUN mkdir $BUILD/catkin -p 79 | WORKDIR $BUILD/catkin 80 | RUN cmake $WS/catkin -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF -DCATKIN_INSTALL_INTO_PREFIX_ROOT=true && make && make install 81 | RUN python -c "import catkin; print(catkin)" 82 | RUN ls -l $DEST/bin 83 | ENV PATH=$PATH:$DEST/bin 84 | 85 | # console_bridge 86 | RUN mkdir $BUILD/console_bridge -p 87 | WORKDIR $BUILD/console_bridge 88 | # RUN cmake ../../console_bridge -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib && make && make install 89 | RUN cmake $WS/console_bridge -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$DEST -DCMAKE_INSTALL_LIBDIR=lib 90 | RUN make 91 | RUN make install 92 | 93 | # cmake_modules 94 | WORKDIR $WS 95 | RUN mkdir $BUILD/cmake_modules -p 96 | RUN ls -l $DEST/lib 97 | WORKDIR $BUILD/cmake_modules 98 | RUN cmake $WS/cmake_modules -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF 99 | RUN make 100 | RUN make install 101 | 102 | # class_loader 103 | RUN mkdir $BUILD/class_loader -p 104 | RUN export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$DEST:$DEST/lib/cmake 105 | RUN ls -l $DEST 106 | RUN ls -l $DEST/share/cmake_modules/cmake/ 107 | WORKDIR $BUILD/class_loader 108 | RUN cmake $WS/class_loader -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF -Dcmake_modules_DIR=$DEST/share/cmake_modules/cmake/ 109 | RUN make 110 | RUN make install 111 | 112 | # ros_environment 113 | RUN mkdir $BUILD/ros_environment -p 114 | RUN pwd 115 | WORKDIR $BUILD/ros_environment 116 | RUN cmake $SRC/ros_environment -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF 117 | RUN make 118 | RUN make install 119 | 120 | # ros_pack 121 | RUN mkdir $BUILD/rospack -p 122 | WORKDIR $BUILD/rospack 123 | RUN cmake $WS/rospack -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF -Dcmake_modules_DIR=$DEST/share/cmake_modules/cmake/ 124 | RUN make 125 | RUN make install 126 | 127 | # genmsg 128 | RUN mkdir $BUILD/genmsg -p 129 | WORKDIR $BUILD/genmsg 130 | RUN cmake $WS/genmsg -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF 131 | RUN make 132 | RUN make install 133 | 134 | # roslib 135 | RUN mkdir $BUILD/roslib -p 136 | WORKDIR $BUILD/roslib 137 | RUN cmake $WS/ros/core/roslib -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF -Drospack_DIR=$DEST/share/rospack/cmake/ 138 | RUN make 139 | RUN make install 140 | 141 | # rosbuild 142 | RUN mkdir $BUILD/rosbuild -p 143 | WORKDIR $BUILD/rosbuild 144 | RUN cmake $WS/ros/core/rosbuild -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF # -Drospack_DIR=$DEST/share/rospack/cmake/ 145 | RUN make 146 | RUN make install 147 | 148 | RUN apt-get update 149 | RUN apt-get install -y python3-dateutil 150 | RUN apt-get install -y python3-docutils 151 | RUN export PATH=$PATH:/usr/local/bin 152 | RUN catkin --help 153 | 154 | RUN apt-get install -y python3-defusedxml 155 | RUN apt-get install -y python3-distro 156 | 157 | # ros packages, regular catkin build only for these 158 | WORKDIR $WS 159 | 160 | 161 | # runtime dependencies 162 | # rosbuild 163 | WORKDIR $SRC/rospkg 164 | RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 165 | 166 | WORKDIR $SRC/rosdistro 167 | RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 168 | 169 | # can be sudo in docker, but otherwise want git clone https://github.com/lucasw/rosdep --branch disable_root_etc_ros 170 | WORKDIR $SRC/rosdep 171 | RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 172 | RUN rosdep init 173 | # ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml]: 174 | RUN rosdep update || true 175 | 176 | # TODO(lucasw) already have a copy of this but needs to be in the workspace 177 | # RUN find / | grep setup.bash 178 | # RUN find / | grep catkin-config.cmake 179 | WORKDIR $WS/.. 180 | RUN source $DEST/setup.bash 181 | RUN catkin init 182 | RUN source $DEST/setup.bash && catkin config --install --cmake-args -DCMAKE_BUILD_TYPE=Release -Wno-deprecated 183 | # rospack list won't work by itself 184 | RUN source $DEST/setup.bash && rospack list 185 | 186 | # regular catkin build 187 | # RUN rosdep install --from-paths src --ignore-src -r -s # do a dry-run first 188 | # RUN rosdep install --from-paths src --ignore-src -r -y 189 | ENV CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$DEST:$DEST/lib/cmake 190 | RUN echo $CMAKE_PREFIX_PATH 191 | # TODO(lucasw) put this in WS to begin with 192 | RUN echo $ROS_PACKAGE_PATH 193 | RUN catkin build 194 | # rospack list won't work by itself 195 | RUN source install/setup.bash && rospack list 196 | 197 | RUN apt-get install python3-netifaces 198 | 199 | WORKDIR $WS/.. 200 | # TODO(lucasw) run tests 201 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2021, Lucas Walter 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ros_from_src 2 | 3 | Following these instructions is recommended for Ubuntu 22.04: [ubuntu_2204/README.md](ubuntu_2204/README.md) 4 | 5 | Otherwise to build ros entirely from source without using a PPA (or even the debian ros packages): 6 | 7 | git clone git@github.com:lucasw/ros_from_src.git 8 | mkdir build 9 | cd build 10 | # if Ubuntu 20.04 11 | # ROSCONSOLE=https://github.com/ros/rosconsole ../ros_from_src/git_clone.sh 12 | # if Ubuntu 22.04 or later 13 | ../ros_from_src/git_clone.sh 14 | # (take look at this script before running as sudo) 15 | sudo ../ros_from_src/dependencies.sh 16 | ../ros_from_src/build.sh 17 | 18 | The above should be similar to what is in the github action: .github/workflows/ubuntu_20_04.yaml 19 | 20 | export ROS_BUILD_DIR=$HOME/own/build/ros_from_src # or whatever 21 | export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$ROS_BUILD_DIR/ros/lib/cmake 22 | # make this python3.8 if python --version shows that to be your version 23 | export PYTHONPATH=$PYTHONPATH:$ROS_BUILD_DIR/ros/lib/python3.9/site-packages/ 24 | # source $ROS_BUILD_DIR/ros/setup.bash 25 | source $ROS_BUILD_DIR/catkin_ws/devel/setup.bash 26 | 27 | To build with docker and another ubuntu version: 28 | 29 | docker build --build-arg IMAGE=ubuntu:21.10 --build-arg ROSCONSOLE=https://github.com/ros/rosconsole --build-arg PYTHON_MINOR_VERSION=9 . -t ros2110 30 | 31 | Build with default Ubuntu 22.04 version: 32 | 33 | docker build . -t ros2204 34 | -------------------------------------------------------------------------------- /apt_install/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:20.04 2 | 3 | ENV DEBIAN_FRONTEND="noninteractive" 4 | 5 | # be able to source files 6 | RUN rm /bin/sh && ln -s /bin/bash /bin/sh 7 | 8 | RUN apt-get update -y 9 | RUN apt-get upgrade -y 10 | RUN apt-get install -y dpkg 11 | RUN apt-get install -y apt-utils 12 | 13 | RUN apt-get install -y curl 14 | RUN apt-get install -y gnupg2 15 | RUN apt-get install -y lsb-release 16 | 17 | # RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 18 | RUN sh -c "echo \"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main\" > /etc/apt/sources.list.d/ros-latest.list" 19 | # RUN curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add - 20 | RUN apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 21 | RUN apt-get update -y 22 | 23 | RUN apt-cache search osrf-pycommon 24 | RUN apt-cache search catkin-tools 25 | RUN apt-cache search catkin 26 | RUN apt-cache search osrf 27 | RUN apt-get install -y python3-osrf-pycommon 28 | RUN apt-get install -y python3-catkin-tools 29 | 30 | RUN apt-get install -y python3-catkin-pkg 31 | RUN apt-get install -y python3-rosdep 32 | RUN apt-get install -y python3-wstool 33 | RUN apt-get install -y ros-cmake-modules 34 | RUN apt-get install -y ros-$ROS_DISTRO-ros-base 35 | RUN source /opt/ros/$ROS_DISTRO/setup.bash 36 | RUN rosdep init 37 | # ERROR: cannot download default sources list from: 38 | # https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list 39 | # Website may be down. 40 | RUN rosdep update || true 41 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # exit on error 3 | set -e 4 | set -x 5 | 6 | # export PATH=$PATH:/usr/local/bin 7 | SRC=`pwd`/src 8 | echo $SRC 9 | mkdir -p $SRC 10 | 11 | BUILD=`pwd`/build 12 | echo $BUILD 13 | mkdir -p $BUILD 14 | 15 | WS=`pwd`/catkin_ws/src 16 | echo $WS 17 | mkdir -p $WS || true 18 | 19 | DEST=`pwd`/ros 20 | 21 | # python installs 22 | 23 | python --version | awk '{print $2}' | cut -d'.' -f1 24 | # TODO(lucasw) these aren't working 25 | PYTHON_MAJOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f1` 26 | PYTHON_MINOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f2` 27 | OPT_PYTHONPATH=$DEST/lib/python$PYTHON_MAJOR_VERSION.$PYTHON_MINOR_VERSION/site-packages/ 28 | echo $PYTHONPATH 29 | export PYTHONPATH=$PYTHONPATH:$OPT_PYTHONPATH 30 | echo PYTHONPATH=\$PYTHONPATH:$OPT_PYTHONPATH 31 | 32 | # catkin_pkg 33 | cd $SRC/catkin_pkg 34 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 35 | ls -l $OPT_PYTHONPATH 36 | ls -l $OPT_PYTHONPATH/catkin_pkg 37 | # python -c "import sys; print(sys.path)" 38 | python -c "import catkin_pkg; print(catkin_pkg.__version__)" 39 | python -c "from catkin_pkg.package import parse_package" 40 | 41 | 42 | # osrf pycommon 43 | cd $SRC/osrf_pycommon 44 | # TODO(lucasw) install to $DEST 45 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 46 | 47 | # catkin tools 48 | cd $SRC/catkin_tools 49 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 50 | 51 | # catkin install 52 | mkdir -p $BUILD/catkin 53 | cd $BUILD/catkin 54 | cmake $WS/catkin -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF -DCATKIN_INSTALL_INTO_PREFIX_ROOT=true && make && make install 55 | python -c "import catkin; print(catkin)" 56 | ls -l $DEST/bin 57 | PATH=$PATH:$DEST/bin 58 | 59 | # console_bridge 60 | mkdir -p $BUILD/console_bridge 61 | cd $BUILD/console_bridge 62 | # cmake ../../console_bridge -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib && make && make install 63 | cmake $WS/console_bridge -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$DEST -DCMAKE_INSTALL_LIBDIR=lib 64 | make 65 | make install 66 | 67 | # cmake_modules 68 | cd $WS 69 | mkdir -p $BUILD/cmake_modules 70 | ls -l $DEST/lib 71 | cd $BUILD/cmake_modules 72 | cmake $WS/cmake_modules -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF 73 | make 74 | make install 75 | 76 | # class_loader 77 | mkdir -p $BUILD/class_loader 78 | export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$DEST:$DEST/lib/cmake 79 | ls -l $DEST 80 | ls -l $DEST/share/cmake_modules/cmake/ 81 | cd $BUILD/class_loader 82 | cmake $WS/class_loader -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF -Dcmake_modules_DIR=$DEST/share/cmake_modules/cmake/ 83 | make 84 | make install 85 | 86 | # ros_environment 87 | mkdir -p $BUILD/ros_environment 88 | pwd 89 | cd $BUILD/ros_environment 90 | cmake $SRC/ros_environment -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF 91 | make 92 | make install 93 | 94 | # ros_pack 95 | mkdir -p $BUILD/rospack 96 | cd $BUILD/rospack 97 | cmake $WS/rospack -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF -Dcmake_modules_DIR=$DEST/share/cmake_modules/cmake/ 98 | make 99 | make install 100 | 101 | # genmsg 102 | mkdir -p $BUILD/genmsg 103 | cd $BUILD/genmsg 104 | cmake $WS/genmsg -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF -Dcmake_modules_DIR=$DEST/share/cmake_modules/cmake/ 105 | make 106 | make install 107 | 108 | # genpy 109 | mkdir -p $BUILD/genpy 110 | cd $BUILD/genpy 111 | cmake $WS/genpy -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF -Dcmake_modules_DIR=$DEST/share/cmake_modules/cmake/ 112 | make 113 | make install 114 | 115 | # roslib 116 | mkdir -p $BUILD/roslib 117 | cd $BUILD/roslib 118 | cmake $WS/ros/core/roslib -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF -Drospack_DIR=$DEST/share/rospack/cmake/ 119 | make 120 | make install 121 | 122 | # rosbuild 123 | mkdir -p $BUILD/rosbuild 124 | cd $BUILD/rosbuild 125 | cmake $WS/ros/core/rosbuild -DCATKIN_BUILD_BINARY_PACKAGE=ON -DCMAKE_INSTALL_PREFIX=$DEST -DPYTHON_EXECUTABLE=/usr/bin/python -DSETUPTOOLS_DEB_LAYOUT=OFF # -Drospack_DIR=$DEST/share/rospack/cmake/ 126 | make 127 | make install 128 | 129 | # rospkg 130 | cd $SRC/rospkg 131 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 132 | 133 | cd $SRC/rosdistro 134 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 135 | 136 | cd $SRC/rosdep 137 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 138 | rosdep init || true 139 | rosdep update 140 | 141 | # TODO(lucasw) already have a copy of this but needs to be in the workspace 142 | # find / | grep setup.bash 143 | # find / | grep catkin-config.cmake 144 | cd $WS/.. 145 | catkin init 146 | source $DEST/setup.bash 147 | catkin config 148 | rospack list 149 | 150 | # rosdep install --from-paths src --ignore-src -r -s # do a dry-run first 151 | # rosdep install --from-paths src --ignore-src -r -y 152 | CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$DEST:$DEST/lib/cmake 153 | echo $CMAKE_PREFIX_PATH 154 | # TODO(lucasw) put this in WS to begin with 155 | # TODO(lucasw) was this needed? Need a bunch of CATKIN_IGNOREs in every package/test dir to make it build 156 | # ln -s $SRC/ros $WS/ros 157 | catkin build --cmake-args -DCMAKE_BUILD_TYPE=Release -Wno-deprecated 158 | source devel/setup.bash 159 | rospack list 160 | # TODO(lucasw) run tests 161 | -------------------------------------------------------------------------------- /debian/Dockerfile: -------------------------------------------------------------------------------- 1 | # install all ros packages from debian, then install custom debian built from ros_from_src 2 | # cd ros_from_src # be one directory up from debian/ 3 | # docker build debian -t ros_from_src_ubuntu_2204 4 | ARG IMAGE=ubuntu:22.04 5 | FROM ${IMAGE} 6 | ARG IMAGE 7 | RUN echo ${IMAGE} 8 | 9 | ENV DEBIAN_FRONTEND="noninteractive" 10 | 11 | # be able to source files 12 | RUN rm /bin/sh && ln -s /bin/bash /bin/sh 13 | 14 | RUN apt-get update -y 15 | RUN apt-get upgrade -y 16 | RUN apt-get install -y apt-utils 17 | 18 | # apt installs 19 | RUN apt-get update && apt-get install -y git 20 | RUN apt-get install -y ros-* 21 | RUN apt-get install -y catkin-lint cython3 libapriltag-dev libceres-dev libfmt-dev libfrei0r-ocaml-dev libgmock-dev libgoogle-glog-dev libgst-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libimage-view-dev liborocos-bfl-dev libpcl-ros-dev libqt5svg5-dev libqt5websockets5-dev libqt5x11extras5-dev libqwt-qt5-dev libsdl-image1.2-dev libspnav-dev liburdfdom-dev libuvc-dev libv4l-dev libyaml-cpp-dev python-is-python3 python3-tf2-geometry-msgs python3-venv vim curl jq --fix-missing 22 | # not depended on by anything in the rosone deb but useful to already have for building other packages from src 23 | RUN apt-get install -y google-mock libdiagnostic-updater-dev libmuparser-dev libopenvdb-dev python3-geopy python3-open3d python3-pip python3-scipy 24 | # RUN apt-get install -y libgeographic-dev 25 | 26 | ################################################################################ 27 | # catkin and related setup 28 | # TODO(lucasw) there needs to be a deb made for just these packages, they aren't in the deb installed below 29 | ENV DEST=/opt/ros/base 30 | RUN mkdir $DEST -p 31 | ENV SRC=/opt/src 32 | RUN mkdir $SRC -p 33 | 34 | WORKDIR $SRC 35 | RUN python --version | awk '{print $2}' | cut -d'.' -f1 36 | RUN python --version | awk '{print $2}' | cut -d'.' -f2 37 | # TODO(lucasw) these aren't working 38 | # RUN export PYTHON_MAJOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f1` 39 | # RUN export PYTHON_MINOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f2` 40 | # RUN PYTHON_MINOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f2` 41 | ARG PYTHON_MAJOR_VERSION=3 42 | ARG PYTHON_MINOR_VERSION=10 43 | ENV OPT_PYTHONPATH=$DEST/lib/python$PYTHON_MAJOR_VERSION.$PYTHON_MINOR_VERSION/site-packages/ 44 | RUN echo $PYTHONPATH 45 | ENV PYTHONPATH=$OPT_PYTHONPATH 46 | RUN echo $PYTHONPATH 47 | ENV PATH=$DEST/bin:$PATH 48 | ################################################################################ 49 | 50 | # this deb isn't working right, env vars aren't set properly and rosrun doesn't work 51 | # for packages inside it 52 | # ARG DEB=rosone_0.0.6-1_all.deb 53 | # RUN echo ${DEB} 54 | # COPY rosone_0.0.6-1_all.deb . 55 | # COPY ${DEB} . 56 | # RUN dpkg -i ${DEB} 57 | # TODO(lucasw) this setup isn't doing much, have to set this manually 58 | # ENV ROS_PACKAGE_PATH=/opt/ros/one/share:/usr/share 59 | 60 | WORKDIR /opt/ros 61 | RUN apt-get install -yqq zip 62 | 63 | COPY install_dest_2204_full.zip . 64 | RUN unzip install_dest_2204_full.zip 65 | RUN tar xvf install_dest_2204.tgz 66 | # TODO(lucasw) zip up the install in a way that exclude the full path 67 | RUN mv home/runner/other/install/* $DEST 68 | RUN rm -rf home 69 | RUN rm install_dest_2204* 70 | 71 | RUN which catkin && catkin --help 72 | 73 | COPY install_catkin_ws_2204__full.zip . 74 | RUN unzip install_catkin_ws_2204__full.zip 75 | RUN tar xvf install_catkin_ws_2204.tgz 76 | RUN mv install_base_catkin_ws/install one 77 | RUN rmdir install_base_catkin_ws 78 | RUN rm install_catkin_ws* 79 | 80 | RUN du -sh /opt/ros 81 | RUN find /opt/ros | head -n 30 82 | RUN ls -l /usr/lib/x86_64-linux-gnu/libpython* 83 | RUN source /opt/ros/one/setup.bash && echo $ROS_PACKAGE_PATH && echo $PATH 84 | RUN source /opt/ros/one/setup.bash && rospack find pcl_ros 85 | -------------------------------------------------------------------------------- /debian/README.md: -------------------------------------------------------------------------------- 1 | # Ubuntu 22.04 setup 2 | 3 | ``` 4 | sudo apt install devscripts dh-make 5 | ``` 6 | 7 | ``` 8 | cd ~/install_base_catkin_ws 9 | catkin config -DCMAKE_BUILD_TYPE=Release -Wno-deprecated 10 | catkin build 11 | ``` 12 | 13 | https://stackoverflow.com/questions/10999948/how-to-include-a-directory-in-the-package-debuild 14 | -> "Edit: Example without using Makefile (if you are not going to build anything)" 15 | 16 | Create the debian folder: 17 | 18 | ``` 19 | cd ros_from_src/debian 20 | ln -s ~/install_base_catkin_ws/install 21 | dh_make -p rosone_0.0.6 -i --createorig 22 | ``` 23 | 24 | Had to make a bunch of manual edits after that, like set debian/rosone-dev.install to `install/*` 25 | 26 | touch debian/rosone.install 27 | ``` 28 | test/ /opt/ros/one 29 | ``` 30 | 31 | Build the .deb 32 | 33 | ``` 34 | cd ros_from_src/debian 35 | dpkg-buildpackage -A -uc 36 | ``` 37 | 38 | It creates a deb one directory up: 39 | 40 | ``` 41 | dpkg-deb -c ../rosone_0.0.6-1_all.deb 42 | drwxr-xr-x root/root 0 2023-09-03 15:30 ./ 43 | drwxr-xr-x root/root 0 2023-09-03 15:30 ./opt/ 44 | drwxr-xr-x root/root 0 2023-09-03 15:30 ./opt/ros/ 45 | drwxr-xr-x root/root 0 2023-09-03 15:30 ./opt/ros/one/ 46 | ... all the install/ files 47 | drwxr-xr-x root/root 0 2023-09-03 15:30 ./usr/ 48 | drwxr-xr-x root/root 0 2023-09-03 15:30 ./usr/share/ 49 | drwxr-xr-x root/root 0 2023-09-03 15:30 ./usr/share/doc/ 50 | drwxr-xr-x root/root 0 2023-09-03 15:30 ./usr/share/doc/rosone/ 51 | -rw-r--r-- root/root 167 2023-09-03 15:30 ./usr/share/doc/rosone/README.Debian 52 | -rw-r--r-- root/root 174 2023-09-03 15:30 ./usr/share/doc/rosone/changelog.Debian.gz 53 | -rw-r--r-- root/root 1898 2023-09-03 15:30 ./usr/share/doc/rosone/copyright 54 | drwxr-xr-x root/root 0 2023-09-03 15:30 ./usr/share/doc-base/ 55 | -rw-r--r-- root/root 504 2023-09-03 15:30 ./usr/share/doc-base/rosone.rosone 56 | ``` 57 | 58 | 59 | 60 | Is a recursive search and replace on /home/lucasw/install_base_catkin_ws/install to /opt/ros/oone needed? 61 | 62 | 63 | # Docker 64 | 65 | Test inside a docker container, having built the deb on the outside- but only works if using same ubuntu on the outside: 66 | 67 | ``` 68 | cd ros_from_src/debian 69 | # docker won't use this file if not in current directory 70 | cp ../rosone_0.0.6-1_all.deb . 71 | docker build . -t ros_from_src_ubuntu_2204 --build-arg IMAGE=ubuntu:22.04 72 | docker run -it --net host ros_from_src_ubuntu_2204 73 | roslaunch nodelet_tutorial_math plus.launch # or something else installed by the .deb 74 | ``` 75 | 76 | # Dockerhub 77 | 78 | https://hub.docker.com/r/lucasw0/ros_from_src_ubuntu_2204 79 | 80 | ``` 81 | FROM lucasw0/ros_from_src_ubuntu_2204:latest 82 | ``` 83 | -------------------------------------------------------------------------------- /debian/VERSION: -------------------------------------------------------------------------------- 1 | 0.0.6 2 | -------------------------------------------------------------------------------- /debian/debian/README.Debian: -------------------------------------------------------------------------------- 1 | rosone for Debian 2 | ---------------- 3 | 4 | 5 | 6 | -- lucasw Tue, 05 Sep 2023 12:31:11 -0700 7 | -------------------------------------------------------------------------------- /debian/debian/README.source: -------------------------------------------------------------------------------- 1 | rosone for Debian 2 | ---------------- 3 | 4 | 6 | 7 | 8 | 9 | -- lucasw Tue, 05 Sep 2023 12:31:11 -0700 10 | 11 | -------------------------------------------------------------------------------- /debian/debian/changelog: -------------------------------------------------------------------------------- 1 | rosone (0.0.6-1) UNRELEASED; urgency=medium 2 | 3 | * Updated ros packages, now have perception_pcl 4 | * hand-edited this changelog, this file needs to be updated to build this 5 | version 6 | 7 | -- lucasw Wed, 06 Mar 2024 7:00:00 -0700 8 | 9 | rosone (0.0.5-1) UNRELEASED; urgency=medium 10 | 11 | * Initial release. (Closes: #nnnn) 12 | 13 | -- lucasw Tue, 05 Sep 2023 12:31:11 -0700 14 | -------------------------------------------------------------------------------- /debian/debian/control: -------------------------------------------------------------------------------- 1 | Source: rosone 2 | Section: unknown 3 | Priority: optional 4 | Maintainer: Lucas Walter 5 | Rules-Requires-Root: no 6 | Build-Depends: 7 | debhelper-compat (= 13), 8 | Standards-Version: 4.6.2 9 | Homepage: 10 | #Vcs-Browser: https://salsa.debian.org/debian/rosone 11 | #Vcs-Git: https://salsa.debian.org/debian/rosone.git 12 | 13 | Package: rosone 14 | Architecture: all 15 | Depends: 16 | ${misc:Depends}, 17 | Description: 18 | 19 | -------------------------------------------------------------------------------- /debian/debian/copyright: -------------------------------------------------------------------------------- 1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Source: 3 | Upstream-Name: rosone 4 | Upstream-Contact: 5 | 6 | Files: 7 | * 8 | Copyright: 9 | 10 | 11 | License: 12 | 13 | 14 | . 15 | 16 | 17 | # If you want to use GPL v2 or later for the /debian/* files use 18 | # the following clauses, or change it to suit. Delete these two lines 19 | Files: 20 | debian/* 21 | Copyright: 22 | 2023 lucasw 23 | License: GPL-2+ 24 | This package is free software; you can redistribute it and/or modify 25 | it under the terms of the GNU General Public License as published by 26 | the Free Software Foundation; either version 2 of the License, or 27 | (at your option) any later version. 28 | . 29 | This package is distributed in the hope that it will be useful, 30 | but WITHOUT ANY WARRANTY; without even the implied warranty of 31 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 32 | GNU General Public License for more details. 33 | . 34 | You should have received a copy of the GNU General Public License 35 | along with this program. If not, see 36 | Comment: 37 | On Debian systems, the complete text of the GNU General 38 | Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". 39 | 40 | # Please also look if there are files or directories which have a 41 | # different copyright/license attached and list them here. 42 | # Please avoid picking licenses with terms that are more restrictive than the 43 | # packaged work, as it may make Debian's contributions unacceptable upstream. 44 | # 45 | # If you need, there are some extra license texts available in two places: 46 | # /usr/share/debhelper/dh_make/licenses/ 47 | # /usr/share/common-licenses/ 48 | -------------------------------------------------------------------------------- /debian/debian/manpage.1.ex: -------------------------------------------------------------------------------- 1 | .\" Hey, EMACS: -*- nroff -*- 2 | .\" (C) Copyright 2023 lucasw , 3 | .\" 4 | .\" First parameter, NAME, should be all caps 5 | .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection 6 | .\" other parameters are allowed: see man(7), man(1) 7 | .TH Rosone SECTION "September 5 2023" 8 | .\" Please adjust this date whenever revising the manpage. 9 | .\" 10 | .\" Some roff macros, for reference: 11 | .\" .nh disable hyphenation 12 | .\" .hy enable hyphenation 13 | .\" .ad l left justify 14 | .\" .ad b justify to both left and right margins 15 | .\" .nf disable filling 16 | .\" .fi enable filling 17 | .\" .br insert line break 18 | .\" .sp insert n+1 empty lines 19 | .\" for manpage-specific macros, see man(7) 20 | .SH NAME 21 | rosone \- program to do something 22 | .SH SYNOPSIS 23 | .B rosone 24 | .RI [ options ] " files" ... 25 | .br 26 | .B bar 27 | .RI [ options ] " files" ... 28 | .SH DESCRIPTION 29 | This manual page documents briefly the 30 | .B rosone 31 | and 32 | .B bar 33 | commands. 34 | .PP 35 | .\" TeX users may be more comfortable with the \fB\fP and 36 | .\" \fI\fP escape sequences to invode bold face and italics, 37 | .\" respectively. 38 | \fBrosone\fP is a program that... 39 | .SH OPTIONS 40 | These programs follow the usual GNU command line syntax, with long 41 | options starting with two dashes ('\-'). 42 | A summary of options is included below. 43 | For a complete description, see the Info files. 44 | .TP 45 | .B \-h, \-\-help 46 | Show summary of options. 47 | .TP 48 | .B \-v, \-\-version 49 | Show version of program. 50 | .SH SEE ALSO 51 | .BR bar (1), 52 | .BR baz (1). 53 | .br 54 | The programs are documented fully by 55 | .IR "The Rise and Fall of a Fooish Bar" , 56 | available via the Info system. 57 | -------------------------------------------------------------------------------- /debian/debian/manpage.md.ex: -------------------------------------------------------------------------------- 1 | % rosone(SECTION) | User Commands 2 | % 3 | % "September 5 2023" 4 | 5 | [comment]: # The lines above form a Pandoc metadata block. They must be 6 | [comment]: # the first ones in the file. 7 | [comment]: # See https://pandoc.org/MANUAL.html#metadata-blocks for details. 8 | 9 | [comment]: # pandoc -s -f markdown -t man package.md -o package.1 10 | [comment]: # 11 | [comment]: # A manual page package.1 will be generated. You may view the 12 | [comment]: # manual page with: nroff -man package.1 | less. A typical entry 13 | [comment]: # in a Makefile or Makefile.am is: 14 | [comment]: # 15 | [comment]: # package.1: package.md 16 | [comment]: # pandoc --standalone --from=markdown --to=man $< --output=$@ 17 | [comment]: # 18 | [comment]: # The pandoc binary is found in the pandoc package. Please remember 19 | [comment]: # that if you create the nroff version in one of the debian/rules 20 | [comment]: # file targets, such as build, you will need to include pandoc in 21 | [comment]: # your Build-Depends control field. 22 | 23 | [comment]: # Remove the lines starting with '[comment]:' in this file in order 24 | [comment]: # to avoid warning messages from pandoc. 25 | 26 | # NAME 27 | 28 | rosone - program to do something 29 | 30 | # SYNOPSIS 31 | 32 | **rosone** **-e** _this_ [**\-\-example=that**] [{**-e** | **\-\-example**} _this_] 33 | [{**-e** | **\-\-example**} {_this_ | _that_}] 34 | 35 | **rosone** [{**-h** | *\-\-help**} | {**-v** | **\-\-version**}] 36 | 37 | # DESCRIPTION 38 | 39 | This manual page documents briefly the **rosone** and **bar** commands. 40 | 41 | This manual page was written for the Debian distribution because the 42 | original program does not have a manual page. Instead, it has documentation 43 | in the GNU info(1) format; see below. 44 | 45 | **rosone** is a program that... 46 | 47 | # OPTIONS 48 | 49 | The program follows the usual GNU command line syntax, with long options 50 | starting with two dashes ('-'). A summary of options is included below. For 51 | a complete description, see the **info**(1) files. 52 | 53 | **-e** _this_, **\-\-example=**_that_ 54 | : Does this and that. 55 | 56 | **-h**, **\-\-help** 57 | : Show summary of options. 58 | 59 | **-v**, **\-\-version** 60 | : Show version of program. 61 | 62 | # FILES 63 | 64 | /etc/foo.conf 65 | : The system-wide configuration file to control the behaviour of 66 | rosone. See **foo.conf**(5) for further details. 67 | 68 | ${HOME}/.foo.conf 69 | : The per-user configuration file to control the behaviour of 70 | rosone. See **foo.conf**(5) for further details. 71 | 72 | # ENVIRONMENT 73 | 74 | **FOO_CONF** 75 | : If used, the defined file is used as configuration file (see also 76 | the section called “FILES”). 77 | 78 | # DIAGNOSTICS 79 | 80 | The following diagnostics may be issued on stderr: 81 | 82 | Bad configuration file. Exiting. 83 | : The configuration file seems to contain a broken configuration 84 | line. Use the **\-\-verbose** option, to get more info. 85 | 86 | **rosone** provides some return codes, that can be used in scripts: 87 | 88 | Code Diagnostic 89 | 0 Program exited successfully. 90 | 1 The configuration file seems to be broken. 91 | 92 | # BUGS 93 | 94 | The program is currently limited to only work with the foobar library. 95 | 96 | The upstream BTS can be found at http://bugzilla.foo.tld. 97 | 98 | # SEE ALSO 99 | 100 | **bar**(1), **baz**(1), **foo.conf**(5) 101 | 102 | The programs are documented fully by The Rise and Fall of a Fooish Bar 103 | available via the **info**(1) system. 104 | 105 | # AUTHOR 106 | 107 | lucasw 108 | : Wrote this manpage for the Debian system. 109 | 110 | # COPYRIGHT 111 | 112 | Copyright © 2007 lucasw 113 | 114 | This manual page was written for the Debian system (and may be used by 115 | others). 116 | 117 | Permission is granted to copy, distribute and/or modify this document under 118 | the terms of the GNU General Public License, Version 2 or (at your option) 119 | any later version published by the Free Software Foundation. 120 | 121 | On Debian systems, the complete text of the GNU General Public License 122 | can be found in /usr/share/common-licenses/GPL. 123 | 124 | [comment]: # Local Variables: 125 | [comment]: # mode: markdown 126 | [comment]: # End: 127 | -------------------------------------------------------------------------------- /debian/debian/manpage.sgml.ex: -------------------------------------------------------------------------------- 1 | manpage.1'. You may view 5 | the manual page with: 'docbook-to-man manpage.sgml | nroff -man | 6 | less'. A typical entry in a Makefile or Makefile.am is: 7 | 8 | manpage.1: manpage.sgml 9 | docbook-to-man $< > $@ 10 | 11 | 12 | The docbook-to-man binary is found in the docbook-to-man package. 13 | Please remember that if you create the nroff version in one of the 14 | debian/rules file targets (such as build), you will need to include 15 | docbook-to-man in your Build-Depends control field. 16 | 17 | --> 18 | 19 | 20 | FIRSTNAME"> 21 | SURNAME"> 22 | 23 | September 5 2023"> 24 | 26 | SECTION"> 27 | lucasw@unknown"> 28 | 29 | Rosone"> 30 | 31 | 32 | Debian"> 33 | GNU"> 34 | GPL"> 35 | ]> 36 | 37 | 38 | 39 |
40 | &dhemail; 41 |
42 | 43 | &dhfirstname; 44 | &dhsurname; 45 | 46 | 47 | 2003 48 | &dhusername; 49 | 50 | &dhdate; 51 |
52 | 53 | &dhucpackage; 54 | 55 | &dhsection; 56 | 57 | 58 | &dhpackage; 59 | 60 | program to do something 61 | 62 | 63 | 64 | &dhpackage; 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | DESCRIPTION 73 | 74 | This manual page documents briefly the 75 | &dhpackage; and bar 76 | commands. 77 | 78 | This manual page was written for the &debian; distribution 79 | because the original program does not have a manual page. 80 | Instead, it has documentation in the &gnu; 81 | Info format; see below. 82 | 83 | &dhpackage; is a program that... 84 | 85 | 86 | 87 | OPTIONS 88 | 89 | These programs follow the usual &gnu; command line syntax, 90 | with long options starting with two dashes ('-'). A summary of 91 | options is included below. For a complete description, see the 92 | Info files. 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | Show summary of options. 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | Show version of program. 109 | 110 | 111 | 112 | 113 | 114 | SEE ALSO 115 | 116 | bar (1), baz (1). 117 | 118 | The programs are documented fully by The Rise and 119 | Fall of a Fooish Bar available via the 120 | Info system. 121 | 122 | 123 | AUTHOR 124 | 125 | This manual page was written by &dhusername; &dhemail; for 126 | the &debian; system (and may be used by others). Permission is 127 | granted to copy, distribute and/or modify this document under 128 | the terms of the &gnu; General Public License, Version 2 any 129 | later version published by the Free Software Foundation. 130 | 131 | 132 | On Debian systems, the complete text of the GNU General Public 133 | License can be found in /usr/share/common-licenses/GPL. 134 | 135 | 136 | 137 |
138 | 139 | 155 | -------------------------------------------------------------------------------- /debian/debian/manpage.xml.ex: -------------------------------------------------------------------------------- 1 | 2 | .
will be generated. You may view the 15 | manual page with: nroff -man .
| less'. A typical entry 16 | in a Makefile or Makefile.am is: 17 | 18 | DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/docbook-xsl/manpages/docbook.xsl 19 | XP = xsltproc -''-nonet -''-param man.charmap.use.subset "0" 20 | 21 | manpage.1: manpage.xml 22 | $(XP) $(DB2MAN) $< 23 | 24 | The xsltproc binary is found in the xsltproc package. The XSL files are in 25 | docbook-xsl. A description of the parameters you can use can be found in the 26 | docbook-xsl-doc-* packages. Please remember that if you create the nroff 27 | version in one of the debian/rules file targets (such as build), you will need 28 | to include xsltproc and docbook-xsl in your Build-Depends control field. 29 | Alternatively use the xmlto command/package. That will also automatically 30 | pull in xsltproc and docbook-xsl. 31 | 32 | Notes for using docbook2x: docbook2x-man does not automatically create the 33 | AUTHOR(S) and COPYRIGHT sections. In this case, please add them manually as 34 | ... . 35 | 36 | To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections 37 | read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be 38 | found in the docbook-xsl-doc-html package. 39 | 40 | Validation can be done using: `xmllint -''-noout -''-valid manpage.xml` 41 | 42 | General documentation about man-pages and man-page-formatting: 43 | man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/ 44 | 45 | --> 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 56 | 57 | 59 | 60 | 61 | 62 | ]> 63 | 64 | 65 | 66 | &dhtitle; 67 | &dhpackage; 68 | 69 | 70 | &dhfirstname; 71 | &dhsurname; 72 | Wrote this manpage for the Debian system. 73 |
74 | &dhemail; 75 |
76 |
77 |
78 | 79 | 2007 80 | &dhusername; 81 | 82 | 83 | This manual page was written for the Debian system 84 | (and may be used by others). 85 | Permission is granted to copy, distribute and/or modify this 86 | document under the terms of the GNU General Public License, 87 | Version 2 or (at your option) any later version published by 88 | the Free Software Foundation. 89 | On Debian systems, the complete text of the GNU General Public 90 | License can be found in 91 | /usr/share/common-licenses/GPL. 92 | 93 |
94 | 95 | &dhucpackage; 96 | &dhsection; 97 | 98 | 99 | &dhpackage; 100 | program to do something 101 | 102 | 103 | 104 | &dhpackage; 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | this 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | this 122 | that 123 | 124 | 125 | 126 | 127 | &dhpackage; 128 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | DESCRIPTION 148 | This manual page documents briefly the 149 | &dhpackage; and bar 150 | commands. 151 | This manual page was written for the Debian distribution 152 | because the original program does not have a manual page. 153 | Instead, it has documentation in the GNU 154 | info 155 | 1 156 | format; see below. 157 | &dhpackage; is a program that... 158 | 159 | 160 | OPTIONS 161 | The program follows the usual GNU command line syntax, 162 | with long options starting with two dashes ('-'). A summary of 163 | options is included below. For a complete description, see the 164 | 165 | info 166 | 1 167 | files. 168 | 169 | 172 | 173 | 174 | 175 | 176 | Does this and that. 177 | 178 | 179 | 180 | 181 | 182 | 183 | Show summary of options. 184 | 185 | 186 | 187 | 188 | 189 | 190 | Show version of program. 191 | 192 | 193 | 194 | 195 | 196 | FILES 197 | 198 | 199 | /etc/foo.conf 200 | 201 | The system-wide configuration file to control the 202 | behaviour of &dhpackage;. See 203 | 204 | foo.conf 205 | 5 206 | for further details. 207 | 208 | 209 | 210 | ${HOME}/.foo.conf 211 | 212 | The per-user configuration file to control the 213 | behaviour of &dhpackage;. See 214 | 215 | foo.conf 216 | 5 217 | for further details. 218 | 219 | 220 | 221 | 222 | 223 | ENVIRONMENT 224 | 225 | 226 | FOO_CONF 227 | 228 | If used, the defined file is used as configuration 229 | file (see also ). 230 | 231 | 232 | 233 | 234 | 235 | DIAGNOSTICS 236 | The following diagnostics may be issued 237 | on stderr: 238 | 239 | 240 | Bad configuration file. Exiting. 241 | 242 | The configuration file seems to contain a broken configuration 243 | line. Use the option, to get more info. 244 | 245 | 246 | 247 | 248 | &dhpackage; provides some return codes, that can 249 | be used in scripts: 250 | 251 | Code 252 | Diagnostic 253 | 254 | 0 255 | Program exited successfully. 256 | 257 | 258 | 1 259 | The configuration file seems to be broken. 260 | 261 | 262 | 263 | 264 | 265 | BUGS 266 | The program is currently limited to only work 267 | with the foobar library. 268 | The upstreams BTS can be found 269 | at . 270 | 271 | 272 | SEE ALSO 273 | 274 | 275 | bar 276 | 1 277 | , 278 | baz 279 | 1 280 | , 281 | foo.conf 282 | 5 283 | 284 | The programs are documented fully by The Rise and 285 | Fall of a Fooish Bar available via the 286 | info 287 | 1 288 | system. 289 | 290 |
291 | 292 | -------------------------------------------------------------------------------- /debian/debian/postinst.ex: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for rosone. 3 | # 4 | # See: dh_installdeb(1). 5 | 6 | set -e 7 | 8 | # Summary of how this script can be called: 9 | # * 'configure' 10 | # * 'abort-upgrade' 11 | # * 'abort-remove' 'in-favour' 12 | # 13 | # * 'abort-remove' 14 | # * 'abort-deconfigure' 'in-favour' 15 | # 'removing' 16 | # 17 | # for details, see https://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package. 19 | 20 | 21 | case "$1" in 22 | configure) 23 | ;; 24 | 25 | abort-upgrade|abort-remove|abort-deconfigure) 26 | ;; 27 | 28 | *) 29 | echo "postinst called with unknown argument '$1'" >&2 30 | exit 1 31 | ;; 32 | esac 33 | 34 | # dh_installdeb will replace this with shell code automatically 35 | # generated by other debhelper scripts. 36 | 37 | #DEBHELPER# 38 | 39 | exit 0 40 | -------------------------------------------------------------------------------- /debian/debian/postrm.ex: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postrm script for rosone. 3 | # 4 | # See: dh_installdeb(1). 5 | 6 | set -e 7 | 8 | # Summary of how this script can be called: 9 | # * 'remove' 10 | # * 'purge' 11 | # * 'upgrade' 12 | # * 'failed-upgrade' 13 | # * 'abort-install' 14 | # * 'abort-install' 15 | # * 'abort-upgrade' 16 | # * 'disappear' 17 | # 18 | # for details, see https://www.debian.org/doc/debian-policy/ or 19 | # the debian-policy package. 20 | 21 | 22 | case "$1" in 23 | purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) 24 | ;; 25 | 26 | *) 27 | echo "postrm called with unknown argument '$1'" >&2 28 | exit 1 29 | ;; 30 | esac 31 | 32 | # dh_installdeb will replace this with shell code automatically 33 | # generated by other debhelper scripts. 34 | 35 | #DEBHELPER# 36 | 37 | exit 0 38 | -------------------------------------------------------------------------------- /debian/debian/preinst.ex: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # preinst script for rosone. 3 | # 4 | # See: dh_installdeb(1). 5 | 6 | set -e 7 | 8 | # Summary of how this script can be called: 9 | # * 'install' 10 | # * 'install' 11 | # * 'upgrade' 12 | # * 'abort-upgrade' 13 | # for details, see https://www.debian.org/doc/debian-policy/ or 14 | # the debian-policy package. 15 | 16 | 17 | case "$1" in 18 | install|upgrade) 19 | ;; 20 | 21 | abort-upgrade) 22 | ;; 23 | 24 | *) 25 | echo "preinst called with unknown argument '$1'" >&2 26 | exit 1 27 | ;; 28 | esac 29 | 30 | # dh_installdeb will replace this with shell code automatically 31 | # generated by other debhelper scripts. 32 | 33 | #DEBHELPER# 34 | 35 | exit 0 36 | -------------------------------------------------------------------------------- /debian/debian/prerm.ex: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # prerm script for rosone. 3 | # 4 | # See: dh_installdeb(1). 5 | 6 | set -e 7 | 8 | # Summary of how this script can be called: 9 | # * 'remove' 10 | # * 'upgrade' 11 | # * 'failed-upgrade' 12 | # * 'remove' 'in-favour' 13 | # * 'deconfigure' 'in-favour' 14 | # 'removing' 15 | # 16 | # for details, see https://www.debian.org/doc/debian-policy/ or 17 | # the debian-policy package. 18 | 19 | 20 | case "$1" in 21 | remove|upgrade|deconfigure) 22 | ;; 23 | 24 | failed-upgrade) 25 | ;; 26 | 27 | *) 28 | echo "prerm called with unknown argument '$1'" >&2 29 | exit 1 30 | ;; 31 | esac 32 | 33 | # dh_installdeb will replace this with shell code automatically 34 | # generated by other debhelper scripts. 35 | 36 | #DEBHELPER# 37 | 38 | exit 0 39 | -------------------------------------------------------------------------------- /debian/debian/rosone-docs.docs: -------------------------------------------------------------------------------- 1 | README.Debian 2 | README.source 3 | -------------------------------------------------------------------------------- /debian/debian/rosone.cron.d.ex: -------------------------------------------------------------------------------- 1 | # 2 | # Regular cron jobs for the rosone package. 3 | # 4 | 0 4 * * * root [ -x /usr/bin/rosone_maintenance ] && /usr/bin/rosone_maintenance 5 | -------------------------------------------------------------------------------- /debian/debian/rosone.doc-base.ex: -------------------------------------------------------------------------------- 1 | Document: rosone 2 | Title: Debian rosone Manual 3 | Author: 4 | Abstract: This manual describes what rosone is 5 | and how it can be used to 6 | manage online manuals on Debian systems. 7 | Section: unknown 8 | 9 | Format: debiandoc-sgml 10 | Files: /usr/share/doc/rosone/rosone.sgml.gz 11 | 12 | Format: postscript 13 | Files: /usr/share/doc/rosone/rosone.ps.gz 14 | 15 | Format: text 16 | Files: /usr/share/doc/rosone/rosone.text.gz 17 | 18 | Format: HTML 19 | Index: /usr/share/doc/rosone/html/index.html 20 | Files: /usr/share/doc/rosone/html/*.html 21 | -------------------------------------------------------------------------------- /debian/debian/rosone.install: -------------------------------------------------------------------------------- 1 | install/* /opt/ros/one 2 | -------------------------------------------------------------------------------- /debian/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | # See debhelper(7) (uncomment to enable). 4 | # Output every command that modifies files on the build system. 5 | #export DH_VERBOSE = 1 6 | 7 | 8 | # See FEATURE AREAS in dpkg-buildflags(1). 9 | #export DEB_BUILD_MAINT_OPTIONS = hardening=+all 10 | 11 | # See ENVIRONMENT in dpkg-buildflags(1). 12 | # Package maintainers to append CFLAGS. 13 | #export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic 14 | # Package maintainers to append LDFLAGS. 15 | #export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed 16 | 17 | 18 | %: 19 | dh $@ 20 | 21 | 22 | # dh_make generated override targets. 23 | # This is an example for Cmake (see ). 24 | #override_dh_auto_configure: 25 | # dh_auto_configure -- \ 26 | # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) 27 | -------------------------------------------------------------------------------- /debian/debian/salsa-ci.yml.ex: -------------------------------------------------------------------------------- 1 | # For more information on what jobs are run see: 2 | # https://salsa.debian.org/salsa-ci-team/pipeline 3 | # 4 | # To enable the jobs, go to your repository (at salsa.debian.org) 5 | # and click over Settings > CI/CD > Expand (in General pipelines). 6 | # In "CI/CD configuration file" write debian/salsa-ci.yml and click 7 | # in "Save Changes". The CI tests will run after the next commit. 8 | --- 9 | include: 10 | - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml 11 | - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml 12 | -------------------------------------------------------------------------------- /debian/debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /debian/debian/upstream/metadata.ex: -------------------------------------------------------------------------------- 1 | # Example file for upstream/metadata. 2 | # See https://wiki.debian.org/UpstreamMetadata for more info/fields. 3 | # Below an example based on a github project. 4 | 5 | # Bug-Database: https://github.com//rosone/issues 6 | # Bug-Submit: https://github.com//rosone/issues/new 7 | # Changelog: https://github.com//rosone/blob/master/CHANGES 8 | # Documentation: https://github.com//rosone/wiki 9 | # Repository-Browse: https://github.com//rosone 10 | # Repository: https://github.com//rosone.git 11 | -------------------------------------------------------------------------------- /debian/debian/watch.ex: -------------------------------------------------------------------------------- 1 | # Example watch control file for uscan. 2 | # Rename this file to "watch" and then you can run the "uscan" command 3 | # to check for upstream updates and more. 4 | # See uscan(1) for format. 5 | 6 | # Compulsory line, this is a version 4 file. 7 | version=4 8 | 9 | # PGP signature mangle, so foo.tar.gz has foo.tar.gz.sig. 10 | #opts="pgpsigurlmangle=s%$%.sig%" 11 | 12 | # HTTP site (basic). 13 | #http://example.com/downloads.html \ 14 | # files/rosone-([\d\.]+)\.tar\.gz 15 | 16 | # Uncomment to examine an FTP server. 17 | #ftp://ftp.example.com/pub/rosone-(.*)\.tar\.gz 18 | 19 | # SourceForge hosted projects. 20 | #http://sf.net/rosone/ rosone-(.*)\.tar\.gz 21 | 22 | # GitHub hosted projects. 23 | #opts="filenamemangle=s%(?:.*?)?v?(@ANY_VERSION@@ARCHIVE_EXT@)%@PACKAGE@-$1%" \ 24 | # https://github.com///tags \ 25 | # (?:.*?/)v?@ANY_VERSION@@ARCHIVE_EXT@ 26 | 27 | # GitLab hosted projects. 28 | #opts="filenamemangle=s%(?:.*?)?v?(@ANY_VERSION@@ARCHIVE_EXT@)%@PACKAGE@-$1%" \ 29 | # https://gitlab.com///-/tags \ 30 | # archive/v?@ANY_VERSION@/-v?\d\S*@ARCHIVE_EXT@ 31 | 32 | # PyPI. 33 | #https://pypi.debian.net/rosone/rosone-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) 34 | 35 | # Direct Git. 36 | #opts="mode=git" http://git.example.com/rosone.git \ 37 | # refs/tags/v([\d\.]+) 38 | -------------------------------------------------------------------------------- /dependencies.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # build apt installs 4 | apt-get update 5 | apt-get install -y build-essential 6 | apt-get install -y bzip2 libbz2-dev 7 | apt-get install -y cmake 8 | apt-get install -y coreutils 9 | apt-get install -y git 10 | apt-get install -y libboost-dev 11 | apt-get install -y libboost-filesystem-dev 12 | apt-get install -y libboost-program-options-dev 13 | apt-get install -y libboost-regex-dev 14 | apt-get install -y libboost-thread-dev 15 | apt-get install -y libfmt-dev 16 | apt-get install -y libgpgme-dev 17 | apt-get install -y libgtest-dev 18 | apt-get install -y liblog4cxx-dev 19 | apt-get install -y liblz4-dev lz4 20 | apt-get install -y libpoco-dev 21 | apt-get install -y libtinyxml2-dev 22 | apt-get install -y mawk 23 | apt-get install -y python-is-python3 24 | apt-get install -y python3 25 | apt-get install -y python3-dateutil 26 | apt-get install -y python3-dev 27 | apt-get install -y python3-docutils 28 | apt-get install -y python3-empy 29 | apt-get install -y python3-pyparsing 30 | apt-get install -y python3-setuptools 31 | apt-get install -y python3-yaml 32 | 33 | # runtime 34 | apt-get install -y python3-defusedxml 35 | apt-get install -y python3-distro 36 | apt-get install -y python3-netifaces 37 | 38 | apt-get install -y python3-pycryptodome 39 | apt-get install -y python3-gnupg 40 | 41 | # TODO(lucasw) get this from source later 42 | apt-get install -y python3-rosunit 43 | -------------------------------------------------------------------------------- /git_clone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # TODO(lucasw) replace the below with submodules 3 | # export PATH=$PATH:/usr/local/bin 4 | SRC=`pwd`/src 5 | echo $SRC 6 | mkdir $SRC -p 7 | WS=`pwd`/catkin_ws/src 8 | echo $WS 9 | mkdir $WS -p 10 | 11 | # TODO(lucasw) replace these git clones with vcs 12 | # packages that need to be cmake installed, and are ros packages in a catkin workspace 13 | cd $WS 14 | git clone https://github.com/ros/catkin 15 | git clone https://github.com/ros/console_bridge 16 | git clone https://github.com/ros/cmake_modules 17 | git clone https://github.com/ros-o/class_loader 18 | git clone https://github.com/ros/rospack 19 | git clone https://github.com/ros/genmsg 20 | 21 | # ros packages, regular catkin build only for these 22 | git clone https://github.com/ros/ros_comm 23 | git clone https://github.com/ros/roscpp_core 24 | git clone https://github.com/ros/ros_comm_msgs 25 | git clone https://github.com/ros/message_generation 26 | git clone https://github.com/ros/gencpp 27 | git clone https://github.com/jsk-ros-pkg/geneus 28 | git clone https://github.com/RethinkRobotics-opensource/gennodejs 29 | git clone https://github.com/ros/genlisp 30 | git clone https://github.com/ros/genpy 31 | git clone https://github.com/ros/std_msgs 32 | git clone https://github.com/ros/message_runtime 33 | git clone https://github.com/ros-o/pluginlib 34 | git clone https://github.com/ros/ros 35 | 36 | ROSCONSOLE1=${ROSCONSOLE:-https://github.com/ros-o/rosconsole} 37 | git clone $ROSCONSOLE1 38 | 39 | # pure python 40 | cd $SRC 41 | git clone https://github.com/ros-infrastructure/catkin_pkg 42 | git clone https://github.com/osrf/osrf_pycommon 43 | git clone https://github.com/catkin/catkin_tools 44 | 45 | # cmake installs 46 | git clone https://github.com/ros-o/ros_environment 47 | 48 | 49 | # runtime 50 | git clone https://github.com/ros-infrastructure/rospkg 51 | git clone https://github.com/ros-infrastructure/rosdistro 52 | git clone https://github.com/lucasw/rosdep --branch disable_root_etc_ros 53 | -------------------------------------------------------------------------------- /ubuntu_2204/Dockerfile: -------------------------------------------------------------------------------- 1 | # docker build . -t ros_from_src_ubuntu_2204 2 | ARG IMAGE=ubuntu:22.04 3 | FROM ${IMAGE} 4 | ARG IMAGE 5 | RUN echo ${IMAGE} 6 | 7 | ENV DEBIAN_FRONTEND="noninteractive" 8 | 9 | # be able to source files 10 | RUN rm /bin/sh && ln -s /bin/bash /bin/sh 11 | 12 | RUN apt-get update -yqq 13 | RUN apt-get upgrade -yqq 14 | RUN apt-get install -yqq apt-utils 15 | 16 | # apt installs 17 | RUN apt-get update && apt-get install -yqq git 18 | RUN apt-get update && apt-get install -yqq ros-* 19 | RUN apt-get update && apt-get install -yqq catkin-lint cython3 libapriltag-dev libceres-dev libfmt-dev libfrei0r-ocaml-dev libgeographic-dev libgmock-dev libgoogle-glog-dev libgst-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libimage-view-dev liborocos-bfl-dev libpcl-ros-dev libqt5svg5-dev libqt5websockets5-dev libqt5x11extras5-dev libqwt-qt5-dev libsdl-image1.2-dev libspnav-dev liburdfdom-dev libuvc-dev libv4l-dev libyaml-cpp-dev python-is-python3 python3-tf2-geometry-msgs python3-venv vim curl jq 20 | RUN apt-get update && apt-get install -yqq libgsl-dev wget freeglut3-dev libcgal-dev libhdf5-dev libturbojpeg0-dev libzmq3-dev 21 | RUN apt-get -y install ocl-icd-opencl-dev opencl-headers 22 | RUN apt-get -y install libopenvdb-dev 23 | 24 | ENV DEST=/opt/ros/base 25 | RUN mkdir $DEST -p 26 | ENV SRC=/opt/src 27 | RUN mkdir $SRC -p 28 | 29 | WORKDIR $SRC 30 | RUN git clone https://github.com/dirk-thomas/vcstool.git 31 | WORKDIR $SRC/vcstool 32 | RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 33 | 34 | WORKDIR $SRC 35 | RUN git clone https://github.com/osrf/osrf_pycommon.git 36 | WORKDIR $SRC/osrf_pycommon 37 | RUN ls -l 38 | RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 39 | 40 | WORKDIR $SRC 41 | RUN git clone https://github.com/lucasw/catkin_tools.git --branch sanitize_cmake_prefix_path 42 | WORKDIR $SRC/catkin_tools 43 | RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 44 | 45 | WORKDIR $SRC 46 | RUN python --version | awk '{print $2}' | cut -d'.' -f1 47 | RUN python --version | awk '{print $2}' | cut -d'.' -f2 48 | # TODO(lucasw) these aren't working 49 | # RUN export PYTHON_MAJOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f1` 50 | # RUN export PYTHON_MINOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f2` 51 | # RUN PYTHON_MINOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f2` 52 | ARG PYTHON_MAJOR_VERSION=3 53 | ARG PYTHON_MINOR_VERSION=10 54 | ENV OPT_PYTHONPATH=$DEST/lib/python$PYTHON_MAJOR_VERSION.$PYTHON_MINOR_VERSION/site-packages/ 55 | RUN echo $PYTHONPATH 56 | ENV PYTHONPATH=$OPT_PYTHONPATH 57 | RUN echo $PYTHONPATH 58 | 59 | ENV PATH=$DEST/bin:$PATH 60 | ENV CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$DEST/lib/cmake 61 | 62 | # WORKDIR $SRC 63 | # RUN git clone https://github.com/lucasw/ros_from_src.git 64 | WORKDIR $SRC/ros_from_src/ubuntu_2204 65 | COPY base_repos.yaml . 66 | # make git clone work through vcs without git credentials 67 | RUN sed -i 's/git@github.com:/https:\/\/github.com\//' base_repos.yaml 68 | 69 | # get packages and build 70 | ENV WS=/base_catkin_ws/src 71 | RUN mkdir $WS -p 72 | WORKDIR $WS 73 | RUN vcs import --shallow < $SRC/ros_from_src/ubuntu_2204/base_repos.yaml 74 | COPY ignore.sh $SRC/ros_from_src/ubuntu_2204/ 75 | RUN $SRC/ros_from_src/ubuntu_2204/ignore.sh 76 | RUN touch other/catkin_virtualenv/test_catkin_virtualenv_inherited/CATKIN_IGNORE 77 | RUN touch other/catkin_virtualenv/test_catkin_virtualenv_isolated/CATKIN_IGNORE 78 | 79 | RUN mkdir -p $HOME/other/build/openvdb 80 | WORKDIR other/build/openvdb 81 | RUN cmake $WS/other/vdb/openvdb/ -DCMAKE_INSTALL_PREFIX=$DEST 82 | RUN make -j2 # it's a slow build 83 | RUN make install 84 | 85 | # ENV ROS_DISTRO="noetic" 86 | RUN echo $CMAKE_PREFIX_PATH 87 | 88 | WORKDIR $WS/.. 89 | RUN catkin config --install --cmake-args -DCMAKE_BUILD_TYPE=Release -Wno-deprecated -Wno-dev -DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES=$DEST/include -DCMAKE_LIBRARY_PATH=$DEST/lib 90 | # split these up so can take advantage of docker layers, otherwise one failure 91 | # means a huge rebuild 92 | # RUN catkin build --no-status -j1 fuse_core 93 | # disabling this because it is too slow to build 94 | # RUN catkin build --no-status -j1 rtabmap_ros 95 | RUN catkin build --no-status -j1 vdb_mapping* 96 | RUN catkin build --no-status -j1 jsk_rviz_plugins 97 | RUN catkin build --no-status -j1 rviz 98 | RUN catkin build --no-status -j1 plotjuggler 99 | RUN catkin build --no-status -j1 rqt 100 | RUN catkin build --no-status -j1 octomap_server 101 | RUN catkin build --no-status -j1 libuvc_camera 102 | # RUN catkin build --no-status -j1 fuse_constraints 103 | RUN catkin build --no-status -j1 people_tracking_filter 104 | RUN catkin build --no-status -j1 laser_assembler 105 | RUN catkin build --no-status -j1 catkin_virtualenv 106 | RUN catkin build --no-status -j1 nmea_navsat_driver 107 | RUN catkin build --no-status -j1 grid_map_visualization 108 | RUN catkin build --no-status -j1 stereo_image_proc 109 | RUN catkin build --no-status -j1 jsk_topic_tools 110 | RUN catkin build --no-status -j1 jsk_interactive_marker 111 | # RUN catkin build --no-status -j1 test_catkin_virtualenv_inherited 112 | # RUN catkin build --no-status -j1 test_catkin_virtualenv_py3_isolated 113 | RUN catkin build --no-status -j1 114 | 115 | # rospack list won't work by itself 116 | # RUN source install/setup.bash && rospack list 117 | 118 | # TODO(lucasw) run more tests than this 119 | RUN catkin build joint_trajectory_controller --no-status --no-deps --catkin-make-args tests 120 | RUN ln -s /base_catkin_ws/install /opt/ros/one 121 | RUN ls -l /opt/ros/one 122 | # make 'source' work 123 | SHELL ["/bin/bash", "-c"] 124 | RUN source /opt/ros/one/setup.sh && rospack list 125 | # RUN source install/setup.sh && rostest joint_trajectory_controller joint_trajectory_controller.test 126 | -------------------------------------------------------------------------------- /ubuntu_2204/README.md: -------------------------------------------------------------------------------- 1 | Install many ros packages and dependencies of ros packages that will be built from source, from apt: 2 | 3 | 4 | ``` 5 | sudo apt install ros-* catkin-lint cython3 libapriltag-dev libceres-dev libfmt-dev libfrei0r-ocaml-dev libgeographic-dev libgmock-dev libgoogle-glog-dev libgst-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libimage-view-dev liborocos-bfl-dev libpcl-ros-dev libqt5svg5-dev libqt5websockets5-dev libqt5x11extras5-dev libqwt-qt5-dev libsdl-image1.2-dev libspnav-dev liburdfdom-dev libuvc-dev libv4l-dev libyaml-cpp-dev python-is-python3 python3-setuptools python3-tf2-geometry-msgs python3-venv vim curl git jq 6 | # 23.04 only: 7 | # sudo apt install libgeographiclib-dev 8 | ``` 9 | 10 | Put this into ~/.bashrc so that vcs and catkin_tools can be found (TODO(lucasw) make them install to ~/.local/... instead like pip user installs?) 11 | 12 | ``` 13 | export DEST=$HOME/other/install 14 | export PATH=$PATH:$DEST/bin 15 | 16 | PYTHON_MAJOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f1` 17 | PYTHON_MINOR_VERSION=`python --version | awk '{print $2}' | cut -d'.' -f2` 18 | export PYTHONPATH=$DEST/lib/python$PYTHON_MAJOR_VERSION.$PYTHON_MINOR_VERSION/site-packages/ 19 | ``` 20 | 21 | ``` 22 | mkdir -p ~/other/src 23 | cd ~/other/src 24 | git clone git@github.com:lucasw/ros_from_src --branch debianize 25 | ``` 26 | 27 | ``` 28 | export DEST=$HOME/other/install 29 | export PATH=$PATH:$DEST/bin 30 | ``` 31 | 32 | vcs is very useful for managing a large set of git repos: 33 | 34 | ``` 35 | cd ~/other/src 36 | # git clone git@github.com:dirk-thomas/vcstool.git 37 | git clone https://github.com/dirk-thomas/vcstool.git 38 | cd vcstool 39 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 40 | ``` 41 | 42 | osrf_pycommon is a dependency of catkin_tools 43 | ``` 44 | cd ~/other/src 45 | # git clone git@github.com:osrf/osrf_pycommon 46 | git clone https://github.com/osrf/osrf_pycommon 47 | cd osrf_pycommon 48 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 49 | ``` 50 | 51 | catkin_tools is needed to catkin build (but if catkin_make is preferred then this and osrf_pycommon isn't necessary) 52 | ``` 53 | cd ~/other/src 54 | # git clone git@github.com:lucasw/catkin_tools --branch sanitize_cmake_prefix_path 55 | git clone https://github.com/lucasw/catkin_tools --branch sanitize_cmake_prefix_path 56 | cd catkin_tools 57 | python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed 58 | ``` 59 | 60 | Download a bunch of repos that are not available in 22.04 through apt, some with modifications to build in 22.04 (mostly to avoid `boost::placeholders::_N` and bind.hpp warnings and errors, and building with C++17 to avoid log4cxx 0.12 build errors): 61 | 62 | ``` 63 | mkdir -p ~/base_catkin_ws/src 64 | cd ~/base_catkin_ws/src 65 | ln -s ~/other/src/ros_from_src/ubuntu_2204/base_repos.yaml 66 | 67 | # optional step needed if can't do git clone git@github... on this system 68 | sed -i 's/git@github.com:/https:\/\/github.com\//' base_repos.yaml 69 | 70 | vcs import --shallow < base_repos.yaml 71 | # ignore repos that aren't yet building in 22.04 72 | ~/other/src/ros_from_src/ubuntu_2204/ignore.sh 73 | ``` 74 | 75 | (modify base_repos.yaml as desired to get fewer packages, if more packages are needed they may need alterations to build properly) 76 | 77 | The following will take a while, if there are packages not desired it will be much faster to CATKIN_IGNORE or remove them unless they are dependencies of packages that are needed: 78 | 79 | ``` 80 | cd ~/base_catkin_ws 81 | catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release -Wno-deprecated 82 | catkin build 83 | source devel/setup.bash 84 | ``` 85 | 86 | TODO(lucasw) see if rosdep install works 87 | 88 | --- 89 | 90 | Optional 91 | 92 | Run the above in docker instead: 93 | ``` 94 | cd ros_from_src/ubuntu_2204 95 | docker build . -t ros_debian_2204 96 | ``` 97 | -------------------------------------------------------------------------------- /ubuntu_2204/base_repos.yaml: -------------------------------------------------------------------------------- 1 | repositories: 2 | clearpath/cpr_gazebo: 3 | type: git 4 | url: https://github.com/clearpathrobotics/cpr_gazebo.git 5 | version: noetic-devel 6 | clearpath/husky: 7 | type: git 8 | url: git@github.com:lucasw/husky 9 | version: roslint_fixes 10 | clearpath/moose: 11 | type: git 12 | url: git@github.com:lucasw/moose 13 | version: pluginlib_hpp 14 | clearpath/moose_simulator: 15 | type: git 16 | url: git@github.com:moose-cpr/moose_simulator.git 17 | version: master 18 | clearpath/warthog: 19 | type: git 20 | url: git@github.com:warthog-cpr/warthog 21 | version: kinetic-devel 22 | clearpath/warthog_simulator: 23 | type: git 24 | url: git@github.com:warthog-cpr/warthog_simulator.git 25 | version: melodic-devel 26 | extra/common_msgs: 27 | type: git 28 | url: git@github.com:ros/common_msgs.git 29 | version: noetic-devel 30 | extra/geometry: 31 | type: git 32 | url: git@github.com:ros-o/geometry.git 33 | version: obese-devel 34 | extra/laser_geometry: 35 | type: git 36 | url: git@github.com:ros-o/laser_geometry.git 37 | version: obese-devel 38 | extra/navigation_msgs: 39 | type: git 40 | url: git@github.com:ros-planning/navigation_msgs.git 41 | version: ros1 42 | extra/pcl_msgs: 43 | type: git 44 | url: git@github.com:ros-perception/pcl_msgs.git 45 | version: noetic-devel 46 | extra/perception_pcl: 47 | type: git 48 | url: git@github.com:ros-o/perception_pcl.git 49 | version: obese-devel 50 | extra/vision_opencv: 51 | type: git 52 | url: git@github.com:ros-perception/vision_opencv.git 53 | version: noetic 54 | greenzie/boustrophedon_planner: 55 | type: git 56 | url: git@github.com:lucasw/boustrophedon_planner 57 | version: cpp17 58 | lucasw/carbot: 59 | type: git 60 | url: git@github.com:lucasw/carbot 61 | version: master 62 | lucasw/dynamic_reconfigure_tools: 63 | type: git 64 | url: git@github.com:lucasw/dynamic_reconfigure_tools 65 | version: master 66 | lucasw/frei0r_image: 67 | type: git 68 | url: git@github.com:lucasw/frei0r_image 69 | version: master 70 | lucasw/image_manip: 71 | type: git 72 | url: git@github.com:lucasw/image_manip 73 | version: fix_zero_frame_rate 74 | lucasw/joy_feedback_ros: 75 | type: git 76 | url: git@github.com:lucasw/joy_feedback_ros 77 | version: master 78 | lucasw/nodelet_demo: 79 | type: git 80 | url: git@github.com:lucasw/nodelet_demo 81 | version: master 82 | lucasw/popcanbot: 83 | type: git 84 | url: git@github.com:lucasw/popcanbot 85 | version: master 86 | lucasw/ros1_lifecycle: 87 | type: git 88 | url: git@github.com:lucasw/ros1_lifecycle 89 | version: misc_fixes 90 | lucasw/ros_example: 91 | type: git 92 | url: git@github.com:lucasw/ros_example 93 | version: main 94 | lucasw/ros_system_monitor: 95 | type: git 96 | url: git@github.com:lucasw/ros_system_monitor 97 | version: chrony_monitor 98 | lucasw/rqt_file_dialog: 99 | type: git 100 | url: git@github.com:lucasw/rqt_file_dialog 101 | version: master 102 | lucasw/rqt_tf_echo: 103 | type: git 104 | url: git@github.com:lucasw/rqt_tf_echo.git 105 | version: master 106 | lucasw/rqt_topic_display: 107 | type: git 108 | url: git@github.com:lucasw/rqt_topic_display.git 109 | version: master 110 | lucasw/rviz_camera_stream: 111 | type: git 112 | url: git@github.com:lucasw/rviz_camera_stream 113 | version: noetic-devel 114 | lucasw/rviz_interactive_tf: 115 | type: git 116 | url: git@github.com:lucasw/rviz_interactive_tf 117 | version: master 118 | lucasw/rviz_lighting: 119 | type: git 120 | url: git@github.com:lucasw/rviz_lighting 121 | version: cpp17 122 | lucasw/rviz_ortho_view_controller: 123 | type: git 124 | url: git@github.com:lucasw/rviz_ortho_view_controller.git 125 | version: master 126 | lucasw/screengrab_ros: 127 | type: git 128 | url: git@github.com:lucasw/screengrab_ros 129 | version: master 130 | lucasw/signal_generator: 131 | type: git 132 | url: git@github.com:lucasw/signal_generator 133 | version: master 134 | lucasw/simple_sim_ros: 135 | type: git 136 | url: git@github.com:lucasw/simple_sim_ros 137 | version: master 138 | lucasw/tf_demo: 139 | type: git 140 | url: git@github.com:lucasw/tf_demo 141 | version: old_tf_to_new_tf 142 | lucasw/timer_test: 143 | type: git 144 | url: git@github.com:lucasw/timer_test 145 | version: master 146 | lucasw/topic_state: 147 | type: git 148 | url: git@github.com:lucasw/topic_state 149 | version: master 150 | lucasw/transform_point_cloud: 151 | type: git 152 | url: git@github.com:lucasw/transform_point_cloud.git 153 | version: master 154 | lucasw/v4l2ucp: 155 | type: git 156 | url: git@github.com:lucasw/v4l2ucp 157 | version: master 158 | lucasw/vimjay: 159 | type: git 160 | url: git@github.com:lucasw/vimjay 161 | version: eliminate_build_warnings 162 | opencv_apps: 163 | type: git 164 | url: git@github.com:ros-perception/opencv_apps.git 165 | version: indigo 166 | other/PlotJuggler: 167 | type: git 168 | url: git@github.com:facontidavide/PlotJuggler.git 169 | version: main 170 | other/anybotics/elevation_mapping: 171 | type: git 172 | url: git@github.com:ANYbotics/elevation_mapping.git 173 | version: master 174 | other/anybotics/kindr: 175 | type: git 176 | url: git@github.com:ANYbotics/kindr 177 | version: master 178 | other/anybotics/kindr_ros: 179 | type: git 180 | url: git@github.com:lucasw/kindr_ros 181 | version: cpp17 182 | other/anybotics/message_logger: 183 | type: git 184 | url: git@github.com:lucasw/message_logger 185 | version: line_endings 186 | other/anybotics/point_cloud_io: 187 | type: git 188 | url: git@github.com:ANYbotics/point_cloud_io 189 | version: master 190 | other/apriltag_ros: 191 | type: git 192 | url: git@github.com:AprilRobotics/apriltag_ros.git 193 | version: master 194 | other/camera_throttler_nodelets: 195 | type: git 196 | url: git@github.com:lucasw/camera_throttler_nodelets.git 197 | version: noetic_aggregated 198 | other/catkin_virtualenv: 199 | type: git 200 | url: git@github.com:locusrobotics/catkin_virtualenv.git 201 | version: master 202 | other/ddynamic_reconfigure: 203 | type: git 204 | url: git@github.com:ros-o/ddynamic_reconfigure 205 | version: obese-devel 206 | other/depthai-ros-examples: 207 | type: git 208 | url: git@github.com:luxonis/depthai-ros-examples.git 209 | version: main 210 | other/euslisp-release: 211 | type: git 212 | url: git@github.com:tork-a/euslisp-release.git 213 | version: release/melodic/euslisp 214 | other/ffmpeg_image_transport: 215 | type: git 216 | url: git@github.com:lucasw/ffmpeg_image_transport 217 | version: noetic_aggregated 218 | other/ffmpeg_image_transport_msgs: 219 | type: git 220 | url: git@github.com:daniilidis-group/ffmpeg_image_transport_msgs.git 221 | version: master 222 | other/fiducials: 223 | type: git 224 | url: git@github.com:lucasw/fiducials 225 | version: cmake_vision_msgs 226 | other/find-object: 227 | type: git 228 | url: git@github.com:lucasw/find-object.git 229 | version: master 230 | other/fuse: 231 | type: git 232 | url: git@github.com:lucasw/fuse 233 | version: cpp17 234 | other/geneus: 235 | type: git 236 | url: git@github.com:jsk-ros-pkg/geneus.git 237 | version: master 238 | other/graph_rviz_plugin: 239 | type: git 240 | url: git@github.com:lucasw/graph_rviz_plugin 241 | version: pluginlib_hpp 242 | other/hector_slam: 243 | type: git 244 | url: git@github.com:lucasw/hector_slam 245 | version: boost_placeholders 246 | other/jsk_common: 247 | type: git 248 | url: git@github.com:lucasw/jsk_common 249 | version: video_to_bag_features 250 | other/jsk_common_msgs: 251 | type: git 252 | url: git@github.com:lucasw/jsk_common_msgs 253 | version: master 254 | other/jsk_recognition: 255 | type: git 256 | url: git@github.com:lucasw/jsk_recognition 257 | version: pcl_vtk_isfinite 258 | other/jsk_roseus: 259 | type: git 260 | url: git@github.com:jsk-ros-pkg/jsk_roseus.git 261 | version: master 262 | other/jsk_visualization: 263 | type: git 264 | url: git@github.com:lucasw/jsk_visualization 265 | version: boost_placeholders 266 | other/libnabo: 267 | type: git 268 | url: git@github.com:ethz-asl/libnabo 269 | version: master 270 | other/lvr2: 271 | type: git 272 | url: git@github.com:lucasw/lvr2 273 | version: ros1_or_2 274 | other/marti_messages: 275 | type: git 276 | url: git@github.com:swri-robotics/marti_messages.git 277 | version: master 278 | other/mavros: 279 | type: git 280 | url: git@github.com:lucasw/mavros 281 | version: master 282 | other/mesh_tools: 283 | type: git 284 | url: git@github.com:lucasw/mesh_tools 285 | version: generate_mesh_geometry 286 | other/message_filters: 287 | type: git 288 | url: git@github.com:fkie/message_filters.git 289 | version: master 290 | other/nmea_navsat_driver: 291 | type: git 292 | url: git@github.com:ros-drivers/nmea_navsat_driver.git 293 | version: master 294 | other/nodelet_rosbag: 295 | type: git 296 | url: git@github.com:lucasw/nodelet_rosbag 297 | version: pluginlib_hpp 298 | other/octomap_mapping: 299 | type: git 300 | url: git@github.com:octomap/octomap_mapping.git 301 | version: kinetic-devel 302 | other/octomap_ros: 303 | type: git 304 | url: git@github.com:octomap/octomap_ros 305 | version: melodic-devel 306 | other/openni2_camera: 307 | type: git 308 | url: git@github.com:lucasw/openni2_camera.git 309 | version: subprocess_wtf_python3_7 310 | other/pal_statistics: 311 | type: git 312 | url: git@github.com:pal-robotics/pal_statistics.git 313 | version: kinetic-devel 314 | other/people: 315 | type: git 316 | url: git@github.com:wg-perception/people.git 317 | version: melodic 318 | other/pid: 319 | type: git 320 | url: git@github.com:lucasw/pid.git 321 | version: boost_placeholders 322 | other/plotjuggler-ros-plugins: 323 | type: git 324 | url: git@github.com:PlotJuggler/plotjuggler-ros-plugins.git 325 | version: main 326 | other/plotjuggler_msgs: 327 | type: git 328 | url: git@github.com:PlotJuggler/plotjuggler_msgs.git 329 | version: main 330 | other/point_cloud_converter: 331 | type: git 332 | url: git@github.com:pal-robotics-forks/point_cloud_converter.git 333 | version: hydro-devel 334 | other/ros_control_boilerplate: 335 | type: git 336 | url: git@github.com:lucasw/ros_control_boilerplate 337 | version: cpp17 338 | other/ros_numpy: 339 | type: git 340 | url: git@github.com:lucasw/ros_numpy.git 341 | version: collections_abc 342 | other/ros_rtsp: 343 | type: git 344 | url: git@github.com:lucasw/ros_rtsp 345 | version: pluginlib_hpp 346 | other/ros_type_introspection: 347 | type: git 348 | url: git@github.com:lucasw/ros_type_introspection.git 349 | version: build_2204 350 | other/rosbag_snapshot: 351 | type: git 352 | url: git@github.com:ros/rosbag_snapshot.git 353 | version: main 354 | other/rosboard: 355 | type: git 356 | url: git@github.com:dheera/rosboard.git 357 | version: main 358 | other/rosfmt: 359 | type: git 360 | url: git@github.com:lucasw/rosfmt 361 | version: build_2204 362 | other/rosmon: 363 | type: git 364 | url: git@github.com:lucasw/rosmon 365 | version: build_2204 366 | other/rosshow: 367 | type: git 368 | url: git@github.com:dheera/rosshow 369 | version: main 370 | other/rqt_ez_publisher: 371 | type: git 372 | url: git@github.com:lucasw/rqt_ez_publisher 373 | version: ubuntu2210 374 | other/rtabmap: 375 | type: git 376 | url: git@github.com:introlab/rtabmap.git 377 | version: master 378 | other/rtabmap_ros: 379 | type: git 380 | url: git@github.com:introlab/rtabmap_ros 381 | version: master 382 | other/static_transform_mux: 383 | type: git 384 | url: git@github.com:tradr-project/static_transform_mux.git 385 | version: master 386 | other/tf2_2d: 387 | type: git 388 | url: git@github.com:locusrobotics/tf2_2d.git 389 | version: devel 390 | other/turtlebot: 391 | type: git 392 | url: git@github.com:turtlebot/turtlebot 393 | version: melodic 394 | other/vdb/openvdb: 395 | type: git 396 | url: git@github.com:AcademySoftwareFoundation/openvdb.git 397 | version: master 398 | other/vdb/vdb_mapping: 399 | type: git 400 | url: git@github.com:lucasw/vdb_mapping 401 | version: min_range 402 | other/vdb/vdb_mapping_ros: 403 | type: git 404 | url: git@github.com:lucasw/vdb_mapping_ros 405 | version: rolling_window 406 | other/wu_ros_tools: 407 | type: git 408 | url: git@github.com:lucasw/wu_ros_tools 409 | version: kinetic 410 | ros/async_web_server_cpp: 411 | type: git 412 | url: git@github.com:lucasw/async_web_server_cpp.git 413 | version: ros1-develop 414 | ros/audio_common: 415 | type: git 416 | url: git@github.com:ros-drivers/audio_common.git 417 | version: master 418 | ros/camera_info_manager_py: 419 | type: git 420 | url: git@github.com:lucasw/camera_info_manager_py 421 | version: noetic-devel 422 | ros/common_tutorials: 423 | type: git 424 | url: git@github.com:lucasw/common_tutorials.git 425 | version: boost_placeholders 426 | ros/control_msgs: 427 | type: git 428 | url: git@github.com:ros-controls/control_msgs.git 429 | version: kinetic-devel 430 | ros/ddynamic_reconfigure_python: 431 | type: git 432 | url: git@github.com:pal-robotics/ddynamic_reconfigure_python 433 | version: master 434 | ros/diagnostics: 435 | type: git 436 | url: git@github.com:ros/diagnostics.git 437 | version: noetic-devel 438 | ros/dynamic_reconfigure: 439 | type: git 440 | url: git@github.com:lucasw/dynamic_reconfigure 441 | version: init_default_values 442 | ros/filters: 443 | type: git 444 | url: git@github.com:ros/filters.git 445 | version: noetic-devel 446 | ros/four_wheel_steering_msgs: 447 | type: git 448 | url: git@github.com:ros-drivers/four_wheel_steering_msgs.git 449 | version: master 450 | ros/gazebo_ros_demos: 451 | type: git 452 | url: git@github.com:lucasw/gazebo_ros_demos 453 | version: noetic-devel 454 | ros/gazebo_ros_pkgs: 455 | type: git 456 | url: git@github.com:lucasw/gazebo_ros_pkgs 457 | version: noetic_debug_plugins 458 | ros/geographic_info: 459 | type: git 460 | url: git@github.com:ros-geographic-info/geographic_info.git 461 | version: master 462 | ros/geometry2: 463 | type: git 464 | url: git@github.com:lucasw/geometry2 465 | version: noetic_aggregated 466 | ros/grid_map: 467 | type: git 468 | url: git@github.com:lucasw/grid_map 469 | version: tbb_2021 470 | ros/image_common: 471 | type: git 472 | url: git@github.com:lucasw/image_common 473 | version: ubuntu_2210 474 | ros/image_pipeline: 475 | type: git 476 | url: git@github.com:lucasw/image_pipeline 477 | version: rgb_in_depth_range 478 | ros/image_transport_plugins: 479 | type: git 480 | url: git@github.com:lucasw/image_transport_plugins 481 | version: enable_pub 482 | ros/joint_state_publisher: 483 | type: git 484 | url: git@github.com:lucasw/joint_state_publisher 485 | version: noetic_aggregated 486 | ros/joystick_drivers: 487 | type: git 488 | url: git@github.com:lucasw/joystick_drivers 489 | version: warn_not_error_if_no_joy 490 | ros/laser_assembler: 491 | type: git 492 | url: git@github.com:lucasw/laser_assembler 493 | version: noetic-devel 494 | ros/libuvc_ros: 495 | type: git 496 | url: git@github.com:lucasw/libuvc_ros.git 497 | version: boost_placeholders 498 | ros/media_export: 499 | type: git 500 | url: git@github.com:ros/media_export.git 501 | version: kinetic-devel 502 | ros/navigation: 503 | type: git 504 | url: git@github.com:lucasw/navigation 505 | version: lucasw_debug 506 | ros/nmea_msgs: 507 | type: git 508 | url: git@github.com:ros-drivers/nmea_msgs 509 | version: master 510 | ros/octomap_msgs: 511 | type: git 512 | url: git@github.com:OctoMap/octomap_msgs.git 513 | version: melodic-devel 514 | ros/realtime_tools: 515 | type: git 516 | url: git@github.com:ros-controls/realtime_tools.git 517 | version: noetic-devel 518 | ros/robot_localization: 519 | type: git 520 | url: git@github.com:lucasw/robot_localization 521 | version: boost_placeholders_cpp17 522 | ros/robot_state_publisher: 523 | type: git 524 | url: git@github.com:lucasw/robot_state_publisher 525 | version: robot_state_function 526 | ros/ros_comm: 527 | type: git 528 | url: git@github.com:lucasw/ros_comm 529 | version: salsa_noetic_aggregated 530 | ros/ros_control: 531 | type: git 532 | url: git@github.com:lucasw/ros_control 533 | version: acceleration_limits 534 | ros/ros_controllers: 535 | type: git 536 | url: git@github.com:lucasw/ros_controllers 537 | version: avoid_no_trajectory_defined 538 | ros/ros_tutorials: 539 | type: git 540 | url: git@github.com:lucasw/ros_tutorials.git 541 | version: boost_placeholders 542 | ros/rosconsole: 543 | type: git 544 | url: git@github.com:lucasw/rosconsole 545 | version: ubuntu_2210 546 | ros/roscpp_core: 547 | type: git 548 | url: git@github.com:lucasw/roscpp_core 549 | version: duration_out_of_dual_range 550 | ros/roslint: 551 | type: git 552 | url: git@github.com:lucasw/roslint 553 | version: roslint_rust 554 | ros/rospack: 555 | type: git 556 | url: git@github.com:lucasw/rospack 557 | version: salsa 558 | ros/rqt: 559 | type: git 560 | url: git@github.com:lucasw/rqt 561 | version: ubuntu_2210 562 | ros/rqt_bag: 563 | type: git 564 | url: git@github.com:lucasw/rqt_bag 565 | version: build_2204 566 | ros/rqt_console: 567 | type: git 568 | url: git@github.com:ros-visualization/rqt_console.git 569 | version: master 570 | ros/rqt_graph: 571 | type: git 572 | url: git@github.com:ros-visualization/rqt_graph.git 573 | version: master 574 | ros/rqt_logger_level: 575 | type: git 576 | url: git@github.com:ros-visualization/rqt_logger_level.git 577 | version: master 578 | ros/rqt_plot: 579 | type: git 580 | url: git@github.com:ros-visualization/rqt_plot.git 581 | version: master 582 | ros/rqt_reconfigure: 583 | type: git 584 | url: https://github.com/ros-visualization/rqt_reconfigure 585 | version: master 586 | ros/rqt_robot_monitor: 587 | type: git 588 | url: git@github.com:ros-visualization/rqt_robot_monitor.git 589 | version: ros1 590 | ros/rqt_robot_steering: 591 | type: git 592 | url: git@github.com:lucasw/rqt_robot_steering.git 593 | version: python310 594 | ros/rqt_tf_tree: 595 | type: git 596 | url: git@github.com:ros-visualization/rqt_tf_tree.git 597 | version: master 598 | ros/rviz: 599 | type: git 600 | url: git@github.com:lucasw/rviz.git 601 | version: misc_fixes 602 | ros/teleop_twist_joy: 603 | type: git 604 | url: git@github.com:lucasw/teleop_twist_joy 605 | version: cmp0115_cpp_extension 606 | ros/teleop_twist_keyboard: 607 | type: git 608 | url: git@github.com:ros-teleop/teleop_twist_keyboard.git 609 | version: master 610 | ros/twist_mux: 611 | type: git 612 | url: git@github.com:lucasw/twist_mux 613 | version: ubuntu2210 614 | ros/twist_mux_msgs: 615 | type: git 616 | url: git@github.com:ros-teleop/twist_mux_msgs 617 | version: melodic-devel 618 | ros/unique_identifier: 619 | type: git 620 | url: git@github.com:ros-geographic-info/unique_identifier.git 621 | version: master 622 | ros/urdf_geometry_parser: 623 | type: git 624 | url: git@github.com:ros-controls/urdf_geometry_parser.git 625 | version: kinetic-devel 626 | ros/urdf_parser_py: 627 | type: git 628 | url: git@github.com:ros/urdf_parser_py.git 629 | version: melodic-devel 630 | ros/usb_cam: 631 | type: git 632 | url: git@github.com:ros-drivers/usb_cam.git 633 | version: develop 634 | ros/video_stream_opencv: 635 | type: git 636 | url: git@github.com:lucasw/video_stream_opencv 637 | version: build_2204 638 | ros/view_controller_msgs: 639 | type: git 640 | url: git@github.com:ros-visualization/view_controller_msgs.git 641 | version: lunar-devel 642 | ros/vision_msgs: 643 | type: git 644 | url: git@github.com:ros-perception/vision_msgs.git 645 | version: noetic-devel 646 | ros/web_video_server: 647 | type: git 648 | url: git@github.com:lucasw/web_video_server 649 | version: boost_placeholders 650 | ros/xacro: 651 | type: git 652 | url: git@github.com:lucasw/xacro.git 653 | version: cleanup_roslint 654 | roso/control_toolbox: 655 | type: git 656 | url: git@github.com:ros-o/control_toolbox 657 | version: obese-devel 658 | roso/qt_gui_core: 659 | type: git 660 | url: git@github.com:lucasw/qt_gui_core 661 | version: ubuntu_2210 662 | roso/rosparam_shortcuts: 663 | type: git 664 | url: git@github.com:lucasw/rosparam_shortcuts 665 | version: cleanup_lint 666 | roso/rqt_image_view: 667 | type: git 668 | url: git@github.com:lucasw/rqt_image_view 669 | version: detection2d_image_view 670 | -------------------------------------------------------------------------------- /ubuntu_2204/ignore.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # These are ignored because they don't yet build in 22.04, need modifications, 3 | # or depend on gazebo 4 | touch ./clearpath/CATKIN_IGNORE 5 | touch ./clearpath/husky/husky_gazebo/CATKIN_IGNORE 6 | touch ./clearpath/moose_simulator/CATKIN_IGNORE 7 | touch ./clearpath/warthog_simulator/CATKIN_IGNORE 8 | touch ./greenzie/boustrophedon_planner/CATKIN_IGNORE 9 | touch ./other/anybotics/elevation_mapping/CATKIN_IGNORE 10 | touch ./other/catkin_virtualenv/test_catkin_virtualenv/CATKIN_IGNORE 11 | # touch ./other/catkin_virtualenv/test_catkin_virtualenv_python2/CATKIN_IGNORE 12 | touch ./other/depthai-ros-examples/CATKIN_IGNORE 13 | touch ./other/ffmpeg_image_transport/CATKIN_IGNORE 14 | touch ./other/ffmpeg_image_transport_msgs/CATKIN_IGNORE 15 | touch ./other/fiducials/aruco_gazebo/CATKIN_IGNORE 16 | touch ./other/jsk_common/jsk_rosbag_tools/CATKIN_IGNORE 17 | touch ./other/jsk_recognition/imagesift/CATKIN_IGNORE 18 | touch ./other/jsk_recognition/jsk_libfreenect2/CATKIN_IGNORE 19 | touch ./other/jsk_recognition/jsk_pcl_ros/CATKIN_IGNORE 20 | touch ./other/jsk_recognition/jsk_pcl_ros_utils/CATKIN_IGNORE 21 | touch ./other/jsk_recognition/jsk_perception/CATKIN_IGNORE 22 | touch ./other/jsk_recognition/sound_classification/CATKIN_IGNORE 23 | touch ./other/jsk_roseus/CATKIN_IGNORE 24 | touch ./other/jsk_roseus/roseus_msgs/CATKIN_IGNORE 25 | touch ./other/euslisp-release/CATKIN_IGNORE 26 | touch ./other/geneus/CATKIN_IGNORE 27 | # touch ./other/mesh_tools/mesh_msgs_hdf5/CATKIN_IGNORE 28 | # touch ./other/mesh_tools/hdf5_map_io/CATKIN_IGNORE 29 | # touch ./other/mesh_tools/rviz_map_plugin/CATKIN_IGNORE 30 | touch ./other/mavros/libmavconn/CATKIN_IGNORE 31 | touch ./other/mavros/mavros/CATKIN_IGNORE 32 | touch ./other/mavros/mavros_extras/CATKIN_IGNORE 33 | touch ./other/mavros/test_mavros/CATKIN_IGNORE 34 | touch ./other/openni2_camera/CATKIN_IGNORE 35 | touch ./other/people/face_detector/CATKIN_IGNORE 36 | touch ./other/people/leg_detector/CATKIN_IGNORE 37 | touch ./other/ros_rtsp/CATKIN_IGNORE 38 | touch ./other/pal_statistics/pal_statistics/CATKIN_IGNORE 39 | touch ./ros/gazebo_ros_demos/CATKIN_IGNORE 40 | touch ./ros/gazebo_ros_pkgs/CATKIN_IGNORE 41 | touch ./ros/joystick_drivers/ps3joy/CATKIN_IGNORE 42 | touch ./ros/joystick_drivers/wiimote/CATKIN_IGNORE 43 | touch ./ros/web_video_server/CATKIN_IGNORE 44 | --------------------------------------------------------------------------------