From 2223b38447d10b74921f7abad0f1f0a19437ba07 Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Fri, 11 Apr 2025 15:03:10 -0400 Subject: [PATCH 01/12] Copy jammy setup scripts to noble --- scripts/package/linux/ubuntu/noble/package | 45 ++++++++++++ scripts/setup/linux/ubuntu/noble/Dockerfile | 20 ++++++ .../setup/linux/ubuntu/noble/install_prereqs | 68 +++++++++++++++++++ 3 files changed, 133 insertions(+) create mode 100755 scripts/package/linux/ubuntu/noble/package create mode 100644 scripts/setup/linux/ubuntu/noble/Dockerfile create mode 100755 scripts/setup/linux/ubuntu/noble/install_prereqs diff --git a/scripts/package/linux/ubuntu/noble/package b/scripts/package/linux/ubuntu/noble/package new file mode 100755 index 00000000..42e2e761 --- /dev/null +++ b/scripts/package/linux/ubuntu/noble/package @@ -0,0 +1,45 @@ +#!/bin/bash + +# This file is part of libbot2. +# +# libbot2 is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# libbot2 is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +# License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with libbot2. If not, see . + +# This script will start a docker container that contains the requirements to +# build libbot2 (except LCM which is built as part of this process). It will +# then copy a script in the docker container that has been start, and run that +# script which builds and packages LCM, builds and packages libbot2, and copy +# the 2 deb archives in the current working directory before stopping and +# removing the docker container. + +set -euxo pipefail + +readonly timestamp=$(date -u +%Y%m%d) + +rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb + +docker build --tag libbot2-jammy-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/jammy/ +docker run --detach --name libbot2-jammy --tty libbot2-jammy-prereqs +trap 'docker stop libbot2-jammy && docker rm libbot2-jammy' EXIT +docker cp "$(git rev-parse --show-toplevel)" libbot2-jammy:/tmp/libbot2 +docker exec libbot2-jammy /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" +docker cp libbot2-jammy:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . +docker cp libbot2-jammy:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . + +# Test package +docker run --detach --name libbot2-jammy-test --tty ubuntu:22.04 +trap 'docker stop libbot2-jammy libbot2-jammy-test && docker rm libbot2-jammy libbot2-jammy-test' EXIT +docker cp lcm_1.4.0-gabdd8a2_amd64.deb libbot2-jammy-test:/tmp +docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-jammy-test:/tmp +docker cp "$(git rev-parse --show-toplevel)" libbot2-jammy-test:/tmp/libbot2 +docker exec libbot2-jammy-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/setup/linux/ubuntu/noble/Dockerfile b/scripts/setup/linux/ubuntu/noble/Dockerfile new file mode 100644 index 00000000..c291ef7e --- /dev/null +++ b/scripts/setup/linux/ubuntu/noble/Dockerfile @@ -0,0 +1,20 @@ +# This file is part of libbot2. +# +# libbot2 is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# libbot2 is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +# License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with libbot2. If not, see . + +FROM ubuntu:22.04 +COPY ./install_prereqs /tmp/install_prereqs +RUN /tmp/install_prereqs \ + && rm -rf /var/lib/apt/lists/* \ + && rm -f /tmp/install_prereqs diff --git a/scripts/setup/linux/ubuntu/noble/install_prereqs b/scripts/setup/linux/ubuntu/noble/install_prereqs new file mode 100755 index 00000000..bfcab386 --- /dev/null +++ b/scripts/setup/linux/ubuntu/noble/install_prereqs @@ -0,0 +1,68 @@ +#!/bin/bash + +# This file is part of libbot2. +# +# libbot2 is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# libbot2 is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +# License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with libbot2. If not, see . + +set -euo pipefail + +if [[ "${EUID}" -ne 0 ]]; then + echo 'This script must be run as root' >&2 + exit 1 +fi + +export DEBIAN_FRONTEND=noninteractive + +apt-get -qq update || (sleep 15; apt-get -qq update) +apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ + lsb-release + +if [[ "$(lsb_release -cs)" != 'jammy' ]]; then + echo 'This script requires Ubuntu 22.04 (Focal)' >&2 + exit 2 +fi + +apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ + build-essential \ + ca-certificates \ + default-jdk \ + doxygen \ + file \ + freeglut3-dev \ + git \ + gnupg \ + libglib2.0-dev \ + libgtk-3-dev \ + libjpeg8-dev \ + libpng-dev \ + libxmu-dev \ + pkg-config \ + python3-dev \ + python3-gi \ + python3-numpy \ + python3-scipy \ + wget \ + zlib1g-dev + +wget -qO- https://apt.kitware.com/keys/kitware-archive-latest.asc \ + | gpg --dearmor > /etc/apt/trusted.gpg.d/kitware.gpg + +echo 'deb https://apt.kitware.com/ubuntu/ jammy main' \ + > /etc/apt/sources.list.d/kitware.list + +apt-get -qq update || (sleep 15; apt-get -qq update) +apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ + cmake + +# TODO: Install a compatible version of LCM. From 6d2b43179aebfe5b1cc551e40a5f7ab53ef94e2e Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Fri, 11 Apr 2025 15:37:41 -0400 Subject: [PATCH 02/12] updated noble scripts to reference correct version of ubuntu --- scripts/package/linux/ubuntu/noble/package | 26 +++++++++---------- scripts/setup/linux/ubuntu/noble/Dockerfile | 2 +- .../setup/linux/ubuntu/noble/install_prereqs | 6 ++--- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/scripts/package/linux/ubuntu/noble/package b/scripts/package/linux/ubuntu/noble/package index 42e2e761..0cef8520 100755 --- a/scripts/package/linux/ubuntu/noble/package +++ b/scripts/package/linux/ubuntu/noble/package @@ -28,18 +28,18 @@ readonly timestamp=$(date -u +%Y%m%d) rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb -docker build --tag libbot2-jammy-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/jammy/ -docker run --detach --name libbot2-jammy --tty libbot2-jammy-prereqs -trap 'docker stop libbot2-jammy && docker rm libbot2-jammy' EXIT -docker cp "$(git rev-parse --show-toplevel)" libbot2-jammy:/tmp/libbot2 -docker exec libbot2-jammy /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-jammy:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . -docker cp libbot2-jammy:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . +docker build --tag libbot2-noble-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/noble/ +docker run --detach --name libbot2-noble --tty libbot2-noble-prereqs +trap 'docker stop libbot2-noble && docker rm libbot2-noble' EXIT +docker cp "$(git rev-parse --show-toplevel)" libbot2-noble:/tmp/libbot2 +docker exec libbot2-noble /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" +docker cp libbot2-noble:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . +docker cp libbot2-noble:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . # Test package -docker run --detach --name libbot2-jammy-test --tty ubuntu:22.04 -trap 'docker stop libbot2-jammy libbot2-jammy-test && docker rm libbot2-jammy libbot2-jammy-test' EXIT -docker cp lcm_1.4.0-gabdd8a2_amd64.deb libbot2-jammy-test:/tmp -docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-jammy-test:/tmp -docker cp "$(git rev-parse --show-toplevel)" libbot2-jammy-test:/tmp/libbot2 -docker exec libbot2-jammy-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" +docker run --detach --name libbot2-noble-test --tty ubuntu:24.04 +trap 'docker stop libbot2-noble libbot2-noble-test && docker rm libbot2-noble libbot2-noble-test' EXIT +docker cp lcm_1.4.0-gabdd8a2_amd64.deb libbot2-noble-test:/tmp +docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-noble-test:/tmp +docker cp "$(git rev-parse --show-toplevel)" libbot2-noble-test:/tmp/libbot2 +docker exec libbot2-noble-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/setup/linux/ubuntu/noble/Dockerfile b/scripts/setup/linux/ubuntu/noble/Dockerfile index c291ef7e..e39aeb04 100644 --- a/scripts/setup/linux/ubuntu/noble/Dockerfile +++ b/scripts/setup/linux/ubuntu/noble/Dockerfile @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with libbot2. If not, see . -FROM ubuntu:22.04 +FROM ubuntu:24.04 COPY ./install_prereqs /tmp/install_prereqs RUN /tmp/install_prereqs \ && rm -rf /var/lib/apt/lists/* \ diff --git a/scripts/setup/linux/ubuntu/noble/install_prereqs b/scripts/setup/linux/ubuntu/noble/install_prereqs index bfcab386..85369640 100755 --- a/scripts/setup/linux/ubuntu/noble/install_prereqs +++ b/scripts/setup/linux/ubuntu/noble/install_prereqs @@ -28,8 +28,8 @@ apt-get -qq update || (sleep 15; apt-get -qq update) apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ lsb-release -if [[ "$(lsb_release -cs)" != 'jammy' ]]; then - echo 'This script requires Ubuntu 22.04 (Focal)' >&2 +if [[ "$(lsb_release -cs)" != 'noble' ]]; then + echo 'This script requires Ubuntu 24.04 (Noble)' >&2 exit 2 fi @@ -58,7 +58,7 @@ apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends ins wget -qO- https://apt.kitware.com/keys/kitware-archive-latest.asc \ | gpg --dearmor > /etc/apt/trusted.gpg.d/kitware.gpg -echo 'deb https://apt.kitware.com/ubuntu/ jammy main' \ +echo 'deb https://apt.kitware.com/ubuntu/ noble main' \ > /etc/apt/sources.list.d/kitware.list apt-get -qq update || (sleep 15; apt-get -qq update) From c3d6d1535502a1d155dd4efccfcfcff0a756d337 Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Sun, 13 Apr 2025 23:16:05 -0400 Subject: [PATCH 03/12] WIP Updated LCM references to 1.5.1 --- cmake/cpack.cmake | 2 +- scripts/package/linux/ubuntu/bionic/package | 6 +++--- scripts/package/linux/ubuntu/common/build.sh | 16 ++++++++-------- scripts/package/linux/ubuntu/common/test.sh | 4 ++-- scripts/package/linux/ubuntu/focal/package | 6 +++--- scripts/package/linux/ubuntu/jammy/package | 6 +++--- scripts/package/linux/ubuntu/noble/package | 6 +++--- scripts/setup/linux/ubuntu/noble/install_prereqs | 1 + 8 files changed, 24 insertions(+), 23 deletions(-) diff --git a/cmake/cpack.cmake b/cmake/cpack.cmake index c038e52c..1df3f07c 100644 --- a/cmake/cpack.cmake +++ b/cmake/cpack.cmake @@ -62,7 +62,7 @@ set(CPACK_SOURCE_STRIP_FILES OFF) # Debian specific set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${MACHINE_ARCH}) set(CPACK_DEBIAN_PACKAGE_RELEASE ${PACKAGE_RELEASE_VERSION}) -set(CPACK_DEBIAN_PACKAGE_DEPENDS "lcm (>=1.4.0), default-jre | java8-runtime, freeglut3, libc6, libgcc1, libglib2.0-0, libglu1-mesa, libgtk-3-0, libice6, libjpeg8, libopengl0, libpng16-16, libsm6, libstdc++6, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxmu6, libxt6, python3, python3-gi, python3-numpy, python3-scipy, zlib1g") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "lcm (>=1.5.1), default-jre | java8-runtime, freeglut3, libc6, libgcc1, libglib2.0-0, libglu1-mesa, libgtk-3-0, libice6, libjpeg8, libopengl0, libpng16-16, libsm6, libstdc++6, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxmu6, libxt6, python3, python3-gi, python3-numpy, python3-scipy, zlib1g") set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CPACK_PACKAGE_HOMEPAGE_URL}") set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_PACKAGE_VENDOR} ") diff --git a/scripts/package/linux/ubuntu/bionic/package b/scripts/package/linux/ubuntu/bionic/package index cfeeeacd..763d96fa 100755 --- a/scripts/package/linux/ubuntu/bionic/package +++ b/scripts/package/linux/ubuntu/bionic/package @@ -26,20 +26,20 @@ set -euxo pipefail readonly timestamp=$(date -u +%Y%m%d) -rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb +rm -f lcm_1.5.1-3d60029_amd64.deb libbot2_0.0.1.*-1_amd64.deb docker build --tag libbot2-bionic-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/bionic/ docker run --detach --name libbot2-bionic --tty libbot2-bionic-prereqs trap 'docker stop libbot2-bionic && docker rm libbot2-bionic' EXIT docker cp "$(git rev-parse --show-toplevel)" libbot2-bionic:/tmp/libbot2 docker exec libbot2-bionic /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-bionic:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . +docker cp libbot2-bionic:/tmp/lcm_1.5.1-3d60029_amd64.deb . docker cp libbot2-bionic:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . # Test package docker run --detach --name libbot2-bionic-test --tty ubuntu:18.04 trap 'docker stop libbot2-bionic libbot2-bionic-test && docker rm libbot2-bionic libbot2-bionic-test' EXIT -docker cp lcm_1.4.0-gabdd8a2_amd64.deb libbot2-bionic-test:/tmp +docker cp lcm_1.5.1-3d60029_amd64.deb libbot2-bionic-test:/tmp docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-bionic-test:/tmp docker cp "$(git rev-parse --show-toplevel)" libbot2-bionic-test:/tmp/libbot2 docker exec libbot2-bionic-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/package/linux/ubuntu/common/build.sh b/scripts/package/linux/ubuntu/common/build.sh index 08b9ad28..fe4bbc61 100755 --- a/scripts/package/linux/ubuntu/common/build.sh +++ b/scripts/package/linux/ubuntu/common/build.sh @@ -38,7 +38,7 @@ pushd /tmp git clone --config advice.detachedHead=false https://github.com/lcm-proj/lcm.git pushd lcm -git checkout abdd8a292fcaf6e331f0449778e275890e12811a +git checkout v1.5.1 cat << 'EOF' > lcm-cmake.patch diff --git a/lcm-cmake/cpack.cmake b/lcm-cmake/cpack.cmake @@ -81,13 +81,13 @@ cmake -DBUILD_SHARED_LIBS:BOOL=ON \ -DCMAKE_CXX_FLAGS:STRING="$(dpkg-buildflags --get CXXFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ -DCMAKE_C_FLAGS:STRING="$(dpkg-buildflags --get CFLAGS) $(dpkg-buildflags --get CPPFLAGS) -Wno-deprecated-declarations" \ -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(dpkg-buildflags --get LDFLAGS)" \ - -DCPACK_DEBIAN_PACKAGE_VERSION:STRING=1.4.0 \ - -DCPACK_DEBIAN_PACKAGE_RELEASE:STRING=gabdd8a2 \ + -DCPACK_DEBIAN_PACKAGE_VERSION:STRING=1.5.1 \ + -DCPACK_DEBIAN_PACKAGE_RELEASE:STRING=3d60029 \ -DCPACK_DEBIAN_PACKAGE_MAINTAINER:STRING="Kitware " \ - -DCPACK_PACKAGING_INSTALL_PREFIX:PATH=/opt/lcm/1.4.0 \ + -DCPACK_PACKAGING_INSTALL_PREFIX:PATH=/opt/lcm/1.5.1 \ -DCMAKE_C_FLAGS:STRING=-Wl,-rpath,\$ORIGIN/../lib \ -DCMAKE_CXX_FLAGS:STRING=-Wl,-rpath,\$ORIGIN/../lib \ - -DCMAKE_INSTALL_PREFIX:PATH=/opt/lcm/1.4.0 \ + -DCMAKE_INSTALL_PREFIX:PATH=/opt/lcm/1.5.1 \ -DLCM_ENABLE_EXAMPLES:BOOL=OFF \ -DLCM_ENABLE_TESTS:BOOL=OFF \ -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 \ @@ -95,7 +95,7 @@ cmake -DBUILD_SHARED_LIBS:BOOL=ON \ make cpack -G DEB popd -mv lcm-build/packages/lcm_1.4.0-gabdd8a2_amd64.deb lcm_1.4.0-gabdd8a2_amd64.deb +mv lcm-build/packages/lcm_1.5.1-3d60029_amd64.deb lcm_1.5.1-3d60029_amd64.deb rm -rf lcm-build # Install the package instead of running `make install`. This @@ -103,7 +103,7 @@ rm -rf lcm-build # is built and its package is installed. This is necessary because # some scripts such as `bot-spy` rely on `lcm-spy` and its path # is hardcoded at compile time. -dpkg -i lcm_1.4.0-gabdd8a2_amd64.deb +dpkg -i lcm_1.5.1-3d60029_amd64.deb # Configure, compile, and package libbot2 mkdir libbot2-build @@ -112,7 +112,7 @@ cmake -DPACKAGE_LIBBOT2:BOOL=ON \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_CXX_FLAGS:STRING="$(dpkg-buildflags --get CXXFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ -DCMAKE_C_FLAGS:STRING="$(dpkg-buildflags --get CFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ - -DCMAKE_PREFIX_PATH:PATH=/opt/lcm/1.4.0 \ + -DCMAKE_PREFIX_PATH:PATH=/opt/lcm/1.5.1 \ -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(dpkg-buildflags --get LDFLAGS)" \ -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 \ ${repo_dir} diff --git a/scripts/package/linux/ubuntu/common/test.sh b/scripts/package/linux/ubuntu/common/test.sh index fac4f7b3..645db4fa 100755 --- a/scripts/package/linux/ubuntu/common/test.sh +++ b/scripts/package/linux/ubuntu/common/test.sh @@ -31,7 +31,7 @@ pushd /tmp export DEBIAN_FRONTEND=noninteractive apt-get update -qq apt-get install --no-install-recommends -y devscripts gdebi -gdebi -n lcm_1.4.0-gabdd8a2_amd64.deb +gdebi -n lcm_1.5.1-3d60029_amd64.deb gdebi -n "libbot2_0.0.1.${timestamp}-1_amd64.deb" popd @@ -78,7 +78,7 @@ for i in /opt/libbot2/"0.0.1.${timestamp}"/lib/liblcmtypes_bot2-*.a; do done # Test python modules -export PYTHONPATH=${PYTHONPATH:+${PYTHONPATH}:}/opt/libbot2/"0.0.1.${timestamp}"/lib/python3/dist-packages:/opt/lcm/1.4.0/lib/python3/dist-packages +export PYTHONPATH=${PYTHONPATH:+${PYTHONPATH}:}/opt/libbot2/"0.0.1.${timestamp}"/lib/python3/dist-packages:/opt/lcm/1.5.1/lib/python3/dist-packages readonly python_modules=(lcm bot_procman bot_param bot_log2mat bot_lcmgl bot_frames bot_core) for i in "${python_modules[@]}";do diff --git a/scripts/package/linux/ubuntu/focal/package b/scripts/package/linux/ubuntu/focal/package index 1bdf37bd..563f3f51 100755 --- a/scripts/package/linux/ubuntu/focal/package +++ b/scripts/package/linux/ubuntu/focal/package @@ -26,20 +26,20 @@ set -euxo pipefail readonly timestamp=$(date -u +%Y%m%d) -rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb +rm -f lcm_1.5.1-3d60029_amd64.deb libbot2_0.0.1.*-1_amd64.deb docker build --tag libbot2-focal-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/focal/ docker run --detach --name libbot2-focal --tty libbot2-focal-prereqs trap 'docker stop libbot2-focal && docker rm libbot2-focal' EXIT docker cp "$(git rev-parse --show-toplevel)" libbot2-focal:/tmp/libbot2 docker exec libbot2-focal /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-focal:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . +docker cp libbot2-focal:/tmp/lcm_1.5.1-3d60029_amd64.deb . docker cp libbot2-focal:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . # Test package docker run --detach --name libbot2-focal-test --tty ubuntu:20.04 trap 'docker stop libbot2-focal libbot2-focal-test && docker rm libbot2-focal libbot2-focal-test' EXIT -docker cp lcm_1.4.0-2_amd64gabdd8a2_amd64.deb libbot2-focal-test:/tmp +docker cp lcm_1.5.1-2_amd643d60029_amd64.deb libbot2-focal-test:/tmp docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-focal-test:/tmp docker cp "$(git rev-parse --show-toplevel)" libbot2-focal-test:/tmp/libbot2 docker exec libbot2-focal-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/package/linux/ubuntu/jammy/package b/scripts/package/linux/ubuntu/jammy/package index 42e2e761..b818f0f8 100755 --- a/scripts/package/linux/ubuntu/jammy/package +++ b/scripts/package/linux/ubuntu/jammy/package @@ -26,20 +26,20 @@ set -euxo pipefail readonly timestamp=$(date -u +%Y%m%d) -rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb +rm -f lcm_1.5.1-3d60029_amd64.deb libbot2_0.0.1.*-1_amd64.deb docker build --tag libbot2-jammy-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/jammy/ docker run --detach --name libbot2-jammy --tty libbot2-jammy-prereqs trap 'docker stop libbot2-jammy && docker rm libbot2-jammy' EXIT docker cp "$(git rev-parse --show-toplevel)" libbot2-jammy:/tmp/libbot2 docker exec libbot2-jammy /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-jammy:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . +docker cp libbot2-jammy:/tmp/lcm_1.5.1-3d60029_amd64.deb . docker cp libbot2-jammy:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . # Test package docker run --detach --name libbot2-jammy-test --tty ubuntu:22.04 trap 'docker stop libbot2-jammy libbot2-jammy-test && docker rm libbot2-jammy libbot2-jammy-test' EXIT -docker cp lcm_1.4.0-gabdd8a2_amd64.deb libbot2-jammy-test:/tmp +docker cp lcm_1.5.1-3d60029_amd64.deb libbot2-jammy-test:/tmp docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-jammy-test:/tmp docker cp "$(git rev-parse --show-toplevel)" libbot2-jammy-test:/tmp/libbot2 docker exec libbot2-jammy-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/package/linux/ubuntu/noble/package b/scripts/package/linux/ubuntu/noble/package index 0cef8520..7b51fdf4 100755 --- a/scripts/package/linux/ubuntu/noble/package +++ b/scripts/package/linux/ubuntu/noble/package @@ -26,20 +26,20 @@ set -euxo pipefail readonly timestamp=$(date -u +%Y%m%d) -rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb +rm -f lcm_1.5.1-3d60029_amd64.deb libbot2_0.0.1.*-1_amd64.deb docker build --tag libbot2-noble-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/noble/ docker run --detach --name libbot2-noble --tty libbot2-noble-prereqs trap 'docker stop libbot2-noble && docker rm libbot2-noble' EXIT docker cp "$(git rev-parse --show-toplevel)" libbot2-noble:/tmp/libbot2 docker exec libbot2-noble /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-noble:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . +docker cp libbot2-noble:/tmp/lcm_1.5.1-3d60029_amd64.deb . docker cp libbot2-noble:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . # Test package docker run --detach --name libbot2-noble-test --tty ubuntu:24.04 trap 'docker stop libbot2-noble libbot2-noble-test && docker rm libbot2-noble libbot2-noble-test' EXIT -docker cp lcm_1.4.0-gabdd8a2_amd64.deb libbot2-noble-test:/tmp +docker cp lcm_1.5.1-3d60029_amd64.deb libbot2-noble-test:/tmp docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-noble-test:/tmp docker cp "$(git rev-parse --show-toplevel)" libbot2-noble-test:/tmp/libbot2 docker exec libbot2-noble-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/setup/linux/ubuntu/noble/install_prereqs b/scripts/setup/linux/ubuntu/noble/install_prereqs index 85369640..0cc4cbf7 100755 --- a/scripts/setup/linux/ubuntu/noble/install_prereqs +++ b/scripts/setup/linux/ubuntu/noble/install_prereqs @@ -45,6 +45,7 @@ apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends ins libglib2.0-dev \ libgtk-3-dev \ libjpeg8-dev \ + libpcre3-dev \ libpng-dev \ libxmu-dev \ pkg-config \ From ba7803f8cca8ad2e3de20e1fd7e1067dc92a7a50 Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Mon, 14 Apr 2025 12:32:18 -0400 Subject: [PATCH 04/12] Removed lcm build logic in favor of using apt package --- scripts/package/linux/ubuntu/common/build.sh | 74 ------------------- scripts/package/linux/ubuntu/common/test.sh | 3 +- scripts/package/linux/ubuntu/noble/package | 4 - .../setup/linux/ubuntu/noble/install_prereqs | 4 + 4 files changed, 5 insertions(+), 80 deletions(-) diff --git a/scripts/package/linux/ubuntu/common/build.sh b/scripts/package/linux/ubuntu/common/build.sh index fe4bbc61..9bf5ec15 100755 --- a/scripts/package/linux/ubuntu/common/build.sh +++ b/scripts/package/linux/ubuntu/common/build.sh @@ -32,79 +32,6 @@ else readonly timestamp=$1 fi -pushd /tmp -# LCM is built and package as part of this process as there is no -# official LCM package. -git clone --config advice.detachedHead=false https://github.com/lcm-proj/lcm.git - -pushd lcm -git checkout v1.5.1 - -cat << 'EOF' > lcm-cmake.patch -diff --git a/lcm-cmake/cpack.cmake b/lcm-cmake/cpack.cmake -index 253ab64..52b1c7b 100644 ---- a/lcm-cmake/cpack.cmake -+++ b/lcm-cmake/cpack.cmake -@@ -1,6 +1,3 @@ --# Package release version --set(PACKAGE_RELEASE_VERSION 1) -- - # Default CPack generators - set(CPACK_GENERATOR TGZ STGZ) - -@@ -57,12 +54,11 @@ set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}-${PAC - set(CPACK_STRIP_FILES ON) - - # DEB specific CPack config --set(CPACK_DEBIAN_PACKAGE_RELEASE ${PACKAGE_RELEASE_VERSION}) - set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) - set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/lcm-proj/lcm") - set(CPACK_DEBIAN_PACKAGE_SECTION "devel") --set(CPACK_DEBIAN_PACKAGE_DEPENDS "libglib2.0-0, libpcre3") -+set(CPACK_DEBIAN_PACKAGE_DEPENDS "default-jre | java8-runtime, libc6, libgcc1, libglib2.0-0, libpcre3, libstdc++6, python3") - - message(STATUS "CPack: Packages will be placed under ${CPACK_PACKAGE_DIRECTORY}") - -EOF -git apply lcm-cmake.patch -rm -f lcm-cmake.patch -popd - -mkdir lcm-build -pushd lcm-build - -# Forces the package to be installed in /opt/lcm/ -# to be consistent with the fact these packages are not "official". -cmake -DBUILD_SHARED_LIBS:BOOL=ON \ - -DCMAKE_BUILD_TYPE:STRING=Release \ - -DCMAKE_CXX_FLAGS:STRING="$(dpkg-buildflags --get CXXFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ - -DCMAKE_C_FLAGS:STRING="$(dpkg-buildflags --get CFLAGS) $(dpkg-buildflags --get CPPFLAGS) -Wno-deprecated-declarations" \ - -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(dpkg-buildflags --get LDFLAGS)" \ - -DCPACK_DEBIAN_PACKAGE_VERSION:STRING=1.5.1 \ - -DCPACK_DEBIAN_PACKAGE_RELEASE:STRING=3d60029 \ - -DCPACK_DEBIAN_PACKAGE_MAINTAINER:STRING="Kitware " \ - -DCPACK_PACKAGING_INSTALL_PREFIX:PATH=/opt/lcm/1.5.1 \ - -DCMAKE_C_FLAGS:STRING=-Wl,-rpath,\$ORIGIN/../lib \ - -DCMAKE_CXX_FLAGS:STRING=-Wl,-rpath,\$ORIGIN/../lib \ - -DCMAKE_INSTALL_PREFIX:PATH=/opt/lcm/1.5.1 \ - -DLCM_ENABLE_EXAMPLES:BOOL=OFF \ - -DLCM_ENABLE_TESTS:BOOL=OFF \ - -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 \ - ../lcm -make -cpack -G DEB -popd -mv lcm-build/packages/lcm_1.5.1-3d60029_amd64.deb lcm_1.5.1-3d60029_amd64.deb -rm -rf lcm-build - -# Install the package instead of running `make install`. This -# ensures that LCM is installed in the same location when libbot2 -# is built and its package is installed. This is necessary because -# some scripts such as `bot-spy` rely on `lcm-spy` and its path -# is hardcoded at compile time. -dpkg -i lcm_1.5.1-3d60029_amd64.deb - # Configure, compile, and package libbot2 mkdir libbot2-build pushd libbot2-build @@ -112,7 +39,6 @@ cmake -DPACKAGE_LIBBOT2:BOOL=ON \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_CXX_FLAGS:STRING="$(dpkg-buildflags --get CXXFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ -DCMAKE_C_FLAGS:STRING="$(dpkg-buildflags --get CFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ - -DCMAKE_PREFIX_PATH:PATH=/opt/lcm/1.5.1 \ -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(dpkg-buildflags --get LDFLAGS)" \ -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 \ ${repo_dir} diff --git a/scripts/package/linux/ubuntu/common/test.sh b/scripts/package/linux/ubuntu/common/test.sh index 645db4fa..85a2580a 100755 --- a/scripts/package/linux/ubuntu/common/test.sh +++ b/scripts/package/linux/ubuntu/common/test.sh @@ -31,7 +31,6 @@ pushd /tmp export DEBIAN_FRONTEND=noninteractive apt-get update -qq apt-get install --no-install-recommends -y devscripts gdebi -gdebi -n lcm_1.5.1-3d60029_amd64.deb gdebi -n "libbot2_0.0.1.${timestamp}-1_amd64.deb" popd @@ -78,7 +77,7 @@ for i in /opt/libbot2/"0.0.1.${timestamp}"/lib/liblcmtypes_bot2-*.a; do done # Test python modules -export PYTHONPATH=${PYTHONPATH:+${PYTHONPATH}:}/opt/libbot2/"0.0.1.${timestamp}"/lib/python3/dist-packages:/opt/lcm/1.5.1/lib/python3/dist-packages +export PYTHONPATH=${PYTHONPATH:+${PYTHONPATH}:}/opt/libbot2/"0.0.1.${timestamp}"/lib/python3/dist-packages readonly python_modules=(lcm bot_procman bot_param bot_log2mat bot_lcmgl bot_frames bot_core) for i in "${python_modules[@]}";do diff --git a/scripts/package/linux/ubuntu/noble/package b/scripts/package/linux/ubuntu/noble/package index 7b51fdf4..cc9674c5 100755 --- a/scripts/package/linux/ubuntu/noble/package +++ b/scripts/package/linux/ubuntu/noble/package @@ -26,20 +26,16 @@ set -euxo pipefail readonly timestamp=$(date -u +%Y%m%d) -rm -f lcm_1.5.1-3d60029_amd64.deb libbot2_0.0.1.*-1_amd64.deb - docker build --tag libbot2-noble-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/noble/ docker run --detach --name libbot2-noble --tty libbot2-noble-prereqs trap 'docker stop libbot2-noble && docker rm libbot2-noble' EXIT docker cp "$(git rev-parse --show-toplevel)" libbot2-noble:/tmp/libbot2 docker exec libbot2-noble /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-noble:/tmp/lcm_1.5.1-3d60029_amd64.deb . docker cp libbot2-noble:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . # Test package docker run --detach --name libbot2-noble-test --tty ubuntu:24.04 trap 'docker stop libbot2-noble libbot2-noble-test && docker rm libbot2-noble libbot2-noble-test' EXIT -docker cp lcm_1.5.1-3d60029_amd64.deb libbot2-noble-test:/tmp docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-noble-test:/tmp docker cp "$(git rev-parse --show-toplevel)" libbot2-noble-test:/tmp/libbot2 docker exec libbot2-noble-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/setup/linux/ubuntu/noble/install_prereqs b/scripts/setup/linux/ubuntu/noble/install_prereqs index 0cc4cbf7..bc7ef907 100755 --- a/scripts/setup/linux/ubuntu/noble/install_prereqs +++ b/scripts/setup/linux/ubuntu/noble/install_prereqs @@ -45,14 +45,18 @@ apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends ins libglib2.0-dev \ libgtk-3-dev \ libjpeg8-dev \ + liblcm-dev \ + liblcm-java \ libpcre3-dev \ libpng-dev \ libxmu-dev \ pkg-config \ python3-dev \ python3-gi \ + python3-lcm \ python3-numpy \ python3-scipy \ + python3-setuptools \ wget \ zlib1g-dev From 5ad8333dd73e5bea03dd6b359cb6f9736a24e650 Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Mon, 14 Apr 2025 16:19:08 -0400 Subject: [PATCH 05/12] Revert "Removed lcm build logic in favor of using apt package" This reverts commit ba7803f8cca8ad2e3de20e1fd7e1067dc92a7a50. --- scripts/package/linux/ubuntu/common/build.sh | 74 +++++++++++++++++++ scripts/package/linux/ubuntu/common/test.sh | 3 +- scripts/package/linux/ubuntu/noble/package | 4 + .../setup/linux/ubuntu/noble/install_prereqs | 4 - 4 files changed, 80 insertions(+), 5 deletions(-) diff --git a/scripts/package/linux/ubuntu/common/build.sh b/scripts/package/linux/ubuntu/common/build.sh index 9bf5ec15..fe4bbc61 100755 --- a/scripts/package/linux/ubuntu/common/build.sh +++ b/scripts/package/linux/ubuntu/common/build.sh @@ -32,6 +32,79 @@ else readonly timestamp=$1 fi +pushd /tmp +# LCM is built and package as part of this process as there is no +# official LCM package. +git clone --config advice.detachedHead=false https://github.com/lcm-proj/lcm.git + +pushd lcm +git checkout v1.5.1 + +cat << 'EOF' > lcm-cmake.patch +diff --git a/lcm-cmake/cpack.cmake b/lcm-cmake/cpack.cmake +index 253ab64..52b1c7b 100644 +--- a/lcm-cmake/cpack.cmake ++++ b/lcm-cmake/cpack.cmake +@@ -1,6 +1,3 @@ +-# Package release version +-set(PACKAGE_RELEASE_VERSION 1) +- + # Default CPack generators + set(CPACK_GENERATOR TGZ STGZ) + +@@ -57,12 +54,11 @@ set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}-${PAC + set(CPACK_STRIP_FILES ON) + + # DEB specific CPack config +-set(CPACK_DEBIAN_PACKAGE_RELEASE ${PACKAGE_RELEASE_VERSION}) + set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/lcm-proj/lcm") + set(CPACK_DEBIAN_PACKAGE_SECTION "devel") +-set(CPACK_DEBIAN_PACKAGE_DEPENDS "libglib2.0-0, libpcre3") ++set(CPACK_DEBIAN_PACKAGE_DEPENDS "default-jre | java8-runtime, libc6, libgcc1, libglib2.0-0, libpcre3, libstdc++6, python3") + + message(STATUS "CPack: Packages will be placed under ${CPACK_PACKAGE_DIRECTORY}") + +EOF +git apply lcm-cmake.patch +rm -f lcm-cmake.patch +popd + +mkdir lcm-build +pushd lcm-build + +# Forces the package to be installed in /opt/lcm/ +# to be consistent with the fact these packages are not "official". +cmake -DBUILD_SHARED_LIBS:BOOL=ON \ + -DCMAKE_BUILD_TYPE:STRING=Release \ + -DCMAKE_CXX_FLAGS:STRING="$(dpkg-buildflags --get CXXFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ + -DCMAKE_C_FLAGS:STRING="$(dpkg-buildflags --get CFLAGS) $(dpkg-buildflags --get CPPFLAGS) -Wno-deprecated-declarations" \ + -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(dpkg-buildflags --get LDFLAGS)" \ + -DCPACK_DEBIAN_PACKAGE_VERSION:STRING=1.5.1 \ + -DCPACK_DEBIAN_PACKAGE_RELEASE:STRING=3d60029 \ + -DCPACK_DEBIAN_PACKAGE_MAINTAINER:STRING="Kitware " \ + -DCPACK_PACKAGING_INSTALL_PREFIX:PATH=/opt/lcm/1.5.1 \ + -DCMAKE_C_FLAGS:STRING=-Wl,-rpath,\$ORIGIN/../lib \ + -DCMAKE_CXX_FLAGS:STRING=-Wl,-rpath,\$ORIGIN/../lib \ + -DCMAKE_INSTALL_PREFIX:PATH=/opt/lcm/1.5.1 \ + -DLCM_ENABLE_EXAMPLES:BOOL=OFF \ + -DLCM_ENABLE_TESTS:BOOL=OFF \ + -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 \ + ../lcm +make +cpack -G DEB +popd +mv lcm-build/packages/lcm_1.5.1-3d60029_amd64.deb lcm_1.5.1-3d60029_amd64.deb +rm -rf lcm-build + +# Install the package instead of running `make install`. This +# ensures that LCM is installed in the same location when libbot2 +# is built and its package is installed. This is necessary because +# some scripts such as `bot-spy` rely on `lcm-spy` and its path +# is hardcoded at compile time. +dpkg -i lcm_1.5.1-3d60029_amd64.deb + # Configure, compile, and package libbot2 mkdir libbot2-build pushd libbot2-build @@ -39,6 +112,7 @@ cmake -DPACKAGE_LIBBOT2:BOOL=ON \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_CXX_FLAGS:STRING="$(dpkg-buildflags --get CXXFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ -DCMAKE_C_FLAGS:STRING="$(dpkg-buildflags --get CFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ + -DCMAKE_PREFIX_PATH:PATH=/opt/lcm/1.5.1 \ -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(dpkg-buildflags --get LDFLAGS)" \ -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 \ ${repo_dir} diff --git a/scripts/package/linux/ubuntu/common/test.sh b/scripts/package/linux/ubuntu/common/test.sh index 85a2580a..645db4fa 100755 --- a/scripts/package/linux/ubuntu/common/test.sh +++ b/scripts/package/linux/ubuntu/common/test.sh @@ -31,6 +31,7 @@ pushd /tmp export DEBIAN_FRONTEND=noninteractive apt-get update -qq apt-get install --no-install-recommends -y devscripts gdebi +gdebi -n lcm_1.5.1-3d60029_amd64.deb gdebi -n "libbot2_0.0.1.${timestamp}-1_amd64.deb" popd @@ -77,7 +78,7 @@ for i in /opt/libbot2/"0.0.1.${timestamp}"/lib/liblcmtypes_bot2-*.a; do done # Test python modules -export PYTHONPATH=${PYTHONPATH:+${PYTHONPATH}:}/opt/libbot2/"0.0.1.${timestamp}"/lib/python3/dist-packages +export PYTHONPATH=${PYTHONPATH:+${PYTHONPATH}:}/opt/libbot2/"0.0.1.${timestamp}"/lib/python3/dist-packages:/opt/lcm/1.5.1/lib/python3/dist-packages readonly python_modules=(lcm bot_procman bot_param bot_log2mat bot_lcmgl bot_frames bot_core) for i in "${python_modules[@]}";do diff --git a/scripts/package/linux/ubuntu/noble/package b/scripts/package/linux/ubuntu/noble/package index cc9674c5..7b51fdf4 100755 --- a/scripts/package/linux/ubuntu/noble/package +++ b/scripts/package/linux/ubuntu/noble/package @@ -26,16 +26,20 @@ set -euxo pipefail readonly timestamp=$(date -u +%Y%m%d) +rm -f lcm_1.5.1-3d60029_amd64.deb libbot2_0.0.1.*-1_amd64.deb + docker build --tag libbot2-noble-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/noble/ docker run --detach --name libbot2-noble --tty libbot2-noble-prereqs trap 'docker stop libbot2-noble && docker rm libbot2-noble' EXIT docker cp "$(git rev-parse --show-toplevel)" libbot2-noble:/tmp/libbot2 docker exec libbot2-noble /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" +docker cp libbot2-noble:/tmp/lcm_1.5.1-3d60029_amd64.deb . docker cp libbot2-noble:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . # Test package docker run --detach --name libbot2-noble-test --tty ubuntu:24.04 trap 'docker stop libbot2-noble libbot2-noble-test && docker rm libbot2-noble libbot2-noble-test' EXIT +docker cp lcm_1.5.1-3d60029_amd64.deb libbot2-noble-test:/tmp docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-noble-test:/tmp docker cp "$(git rev-parse --show-toplevel)" libbot2-noble-test:/tmp/libbot2 docker exec libbot2-noble-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/setup/linux/ubuntu/noble/install_prereqs b/scripts/setup/linux/ubuntu/noble/install_prereqs index bc7ef907..0cc4cbf7 100755 --- a/scripts/setup/linux/ubuntu/noble/install_prereqs +++ b/scripts/setup/linux/ubuntu/noble/install_prereqs @@ -45,18 +45,14 @@ apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends ins libglib2.0-dev \ libgtk-3-dev \ libjpeg8-dev \ - liblcm-dev \ - liblcm-java \ libpcre3-dev \ libpng-dev \ libxmu-dev \ pkg-config \ python3-dev \ python3-gi \ - python3-lcm \ python3-numpy \ python3-scipy \ - python3-setuptools \ wget \ zlib1g-dev From d187101dc0b45dd955d7ceeae5a23fd7a2098113 Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Mon, 14 Apr 2025 16:19:15 -0400 Subject: [PATCH 06/12] Revert "WIP Updated LCM references to 1.5.1" This reverts commit c3d6d1535502a1d155dd4efccfcfcff0a756d337. --- cmake/cpack.cmake | 2 +- scripts/package/linux/ubuntu/bionic/package | 6 +++--- scripts/package/linux/ubuntu/common/build.sh | 16 ++++++++-------- scripts/package/linux/ubuntu/common/test.sh | 4 ++-- scripts/package/linux/ubuntu/focal/package | 6 +++--- scripts/package/linux/ubuntu/jammy/package | 6 +++--- scripts/package/linux/ubuntu/noble/package | 6 +++--- scripts/setup/linux/ubuntu/noble/install_prereqs | 1 - 8 files changed, 23 insertions(+), 24 deletions(-) diff --git a/cmake/cpack.cmake b/cmake/cpack.cmake index 1df3f07c..c038e52c 100644 --- a/cmake/cpack.cmake +++ b/cmake/cpack.cmake @@ -62,7 +62,7 @@ set(CPACK_SOURCE_STRIP_FILES OFF) # Debian specific set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${MACHINE_ARCH}) set(CPACK_DEBIAN_PACKAGE_RELEASE ${PACKAGE_RELEASE_VERSION}) -set(CPACK_DEBIAN_PACKAGE_DEPENDS "lcm (>=1.5.1), default-jre | java8-runtime, freeglut3, libc6, libgcc1, libglib2.0-0, libglu1-mesa, libgtk-3-0, libice6, libjpeg8, libopengl0, libpng16-16, libsm6, libstdc++6, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxmu6, libxt6, python3, python3-gi, python3-numpy, python3-scipy, zlib1g") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "lcm (>=1.4.0), default-jre | java8-runtime, freeglut3, libc6, libgcc1, libglib2.0-0, libglu1-mesa, libgtk-3-0, libice6, libjpeg8, libopengl0, libpng16-16, libsm6, libstdc++6, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxmu6, libxt6, python3, python3-gi, python3-numpy, python3-scipy, zlib1g") set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CPACK_PACKAGE_HOMEPAGE_URL}") set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_PACKAGE_VENDOR} ") diff --git a/scripts/package/linux/ubuntu/bionic/package b/scripts/package/linux/ubuntu/bionic/package index 763d96fa..cfeeeacd 100755 --- a/scripts/package/linux/ubuntu/bionic/package +++ b/scripts/package/linux/ubuntu/bionic/package @@ -26,20 +26,20 @@ set -euxo pipefail readonly timestamp=$(date -u +%Y%m%d) -rm -f lcm_1.5.1-3d60029_amd64.deb libbot2_0.0.1.*-1_amd64.deb +rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb docker build --tag libbot2-bionic-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/bionic/ docker run --detach --name libbot2-bionic --tty libbot2-bionic-prereqs trap 'docker stop libbot2-bionic && docker rm libbot2-bionic' EXIT docker cp "$(git rev-parse --show-toplevel)" libbot2-bionic:/tmp/libbot2 docker exec libbot2-bionic /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-bionic:/tmp/lcm_1.5.1-3d60029_amd64.deb . +docker cp libbot2-bionic:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . docker cp libbot2-bionic:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . # Test package docker run --detach --name libbot2-bionic-test --tty ubuntu:18.04 trap 'docker stop libbot2-bionic libbot2-bionic-test && docker rm libbot2-bionic libbot2-bionic-test' EXIT -docker cp lcm_1.5.1-3d60029_amd64.deb libbot2-bionic-test:/tmp +docker cp lcm_1.4.0-gabdd8a2_amd64.deb libbot2-bionic-test:/tmp docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-bionic-test:/tmp docker cp "$(git rev-parse --show-toplevel)" libbot2-bionic-test:/tmp/libbot2 docker exec libbot2-bionic-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/package/linux/ubuntu/common/build.sh b/scripts/package/linux/ubuntu/common/build.sh index fe4bbc61..08b9ad28 100755 --- a/scripts/package/linux/ubuntu/common/build.sh +++ b/scripts/package/linux/ubuntu/common/build.sh @@ -38,7 +38,7 @@ pushd /tmp git clone --config advice.detachedHead=false https://github.com/lcm-proj/lcm.git pushd lcm -git checkout v1.5.1 +git checkout abdd8a292fcaf6e331f0449778e275890e12811a cat << 'EOF' > lcm-cmake.patch diff --git a/lcm-cmake/cpack.cmake b/lcm-cmake/cpack.cmake @@ -81,13 +81,13 @@ cmake -DBUILD_SHARED_LIBS:BOOL=ON \ -DCMAKE_CXX_FLAGS:STRING="$(dpkg-buildflags --get CXXFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ -DCMAKE_C_FLAGS:STRING="$(dpkg-buildflags --get CFLAGS) $(dpkg-buildflags --get CPPFLAGS) -Wno-deprecated-declarations" \ -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(dpkg-buildflags --get LDFLAGS)" \ - -DCPACK_DEBIAN_PACKAGE_VERSION:STRING=1.5.1 \ - -DCPACK_DEBIAN_PACKAGE_RELEASE:STRING=3d60029 \ + -DCPACK_DEBIAN_PACKAGE_VERSION:STRING=1.4.0 \ + -DCPACK_DEBIAN_PACKAGE_RELEASE:STRING=gabdd8a2 \ -DCPACK_DEBIAN_PACKAGE_MAINTAINER:STRING="Kitware " \ - -DCPACK_PACKAGING_INSTALL_PREFIX:PATH=/opt/lcm/1.5.1 \ + -DCPACK_PACKAGING_INSTALL_PREFIX:PATH=/opt/lcm/1.4.0 \ -DCMAKE_C_FLAGS:STRING=-Wl,-rpath,\$ORIGIN/../lib \ -DCMAKE_CXX_FLAGS:STRING=-Wl,-rpath,\$ORIGIN/../lib \ - -DCMAKE_INSTALL_PREFIX:PATH=/opt/lcm/1.5.1 \ + -DCMAKE_INSTALL_PREFIX:PATH=/opt/lcm/1.4.0 \ -DLCM_ENABLE_EXAMPLES:BOOL=OFF \ -DLCM_ENABLE_TESTS:BOOL=OFF \ -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 \ @@ -95,7 +95,7 @@ cmake -DBUILD_SHARED_LIBS:BOOL=ON \ make cpack -G DEB popd -mv lcm-build/packages/lcm_1.5.1-3d60029_amd64.deb lcm_1.5.1-3d60029_amd64.deb +mv lcm-build/packages/lcm_1.4.0-gabdd8a2_amd64.deb lcm_1.4.0-gabdd8a2_amd64.deb rm -rf lcm-build # Install the package instead of running `make install`. This @@ -103,7 +103,7 @@ rm -rf lcm-build # is built and its package is installed. This is necessary because # some scripts such as `bot-spy` rely on `lcm-spy` and its path # is hardcoded at compile time. -dpkg -i lcm_1.5.1-3d60029_amd64.deb +dpkg -i lcm_1.4.0-gabdd8a2_amd64.deb # Configure, compile, and package libbot2 mkdir libbot2-build @@ -112,7 +112,7 @@ cmake -DPACKAGE_LIBBOT2:BOOL=ON \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_CXX_FLAGS:STRING="$(dpkg-buildflags --get CXXFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ -DCMAKE_C_FLAGS:STRING="$(dpkg-buildflags --get CFLAGS) $(dpkg-buildflags --get CPPFLAGS)" \ - -DCMAKE_PREFIX_PATH:PATH=/opt/lcm/1.5.1 \ + -DCMAKE_PREFIX_PATH:PATH=/opt/lcm/1.4.0 \ -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(dpkg-buildflags --get LDFLAGS)" \ -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 \ ${repo_dir} diff --git a/scripts/package/linux/ubuntu/common/test.sh b/scripts/package/linux/ubuntu/common/test.sh index 645db4fa..fac4f7b3 100755 --- a/scripts/package/linux/ubuntu/common/test.sh +++ b/scripts/package/linux/ubuntu/common/test.sh @@ -31,7 +31,7 @@ pushd /tmp export DEBIAN_FRONTEND=noninteractive apt-get update -qq apt-get install --no-install-recommends -y devscripts gdebi -gdebi -n lcm_1.5.1-3d60029_amd64.deb +gdebi -n lcm_1.4.0-gabdd8a2_amd64.deb gdebi -n "libbot2_0.0.1.${timestamp}-1_amd64.deb" popd @@ -78,7 +78,7 @@ for i in /opt/libbot2/"0.0.1.${timestamp}"/lib/liblcmtypes_bot2-*.a; do done # Test python modules -export PYTHONPATH=${PYTHONPATH:+${PYTHONPATH}:}/opt/libbot2/"0.0.1.${timestamp}"/lib/python3/dist-packages:/opt/lcm/1.5.1/lib/python3/dist-packages +export PYTHONPATH=${PYTHONPATH:+${PYTHONPATH}:}/opt/libbot2/"0.0.1.${timestamp}"/lib/python3/dist-packages:/opt/lcm/1.4.0/lib/python3/dist-packages readonly python_modules=(lcm bot_procman bot_param bot_log2mat bot_lcmgl bot_frames bot_core) for i in "${python_modules[@]}";do diff --git a/scripts/package/linux/ubuntu/focal/package b/scripts/package/linux/ubuntu/focal/package index 563f3f51..1bdf37bd 100755 --- a/scripts/package/linux/ubuntu/focal/package +++ b/scripts/package/linux/ubuntu/focal/package @@ -26,20 +26,20 @@ set -euxo pipefail readonly timestamp=$(date -u +%Y%m%d) -rm -f lcm_1.5.1-3d60029_amd64.deb libbot2_0.0.1.*-1_amd64.deb +rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb docker build --tag libbot2-focal-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/focal/ docker run --detach --name libbot2-focal --tty libbot2-focal-prereqs trap 'docker stop libbot2-focal && docker rm libbot2-focal' EXIT docker cp "$(git rev-parse --show-toplevel)" libbot2-focal:/tmp/libbot2 docker exec libbot2-focal /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-focal:/tmp/lcm_1.5.1-3d60029_amd64.deb . +docker cp libbot2-focal:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . docker cp libbot2-focal:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . # Test package docker run --detach --name libbot2-focal-test --tty ubuntu:20.04 trap 'docker stop libbot2-focal libbot2-focal-test && docker rm libbot2-focal libbot2-focal-test' EXIT -docker cp lcm_1.5.1-2_amd643d60029_amd64.deb libbot2-focal-test:/tmp +docker cp lcm_1.4.0-2_amd64gabdd8a2_amd64.deb libbot2-focal-test:/tmp docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-focal-test:/tmp docker cp "$(git rev-parse --show-toplevel)" libbot2-focal-test:/tmp/libbot2 docker exec libbot2-focal-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/package/linux/ubuntu/jammy/package b/scripts/package/linux/ubuntu/jammy/package index b818f0f8..42e2e761 100755 --- a/scripts/package/linux/ubuntu/jammy/package +++ b/scripts/package/linux/ubuntu/jammy/package @@ -26,20 +26,20 @@ set -euxo pipefail readonly timestamp=$(date -u +%Y%m%d) -rm -f lcm_1.5.1-3d60029_amd64.deb libbot2_0.0.1.*-1_amd64.deb +rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb docker build --tag libbot2-jammy-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/jammy/ docker run --detach --name libbot2-jammy --tty libbot2-jammy-prereqs trap 'docker stop libbot2-jammy && docker rm libbot2-jammy' EXIT docker cp "$(git rev-parse --show-toplevel)" libbot2-jammy:/tmp/libbot2 docker exec libbot2-jammy /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-jammy:/tmp/lcm_1.5.1-3d60029_amd64.deb . +docker cp libbot2-jammy:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . docker cp libbot2-jammy:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . # Test package docker run --detach --name libbot2-jammy-test --tty ubuntu:22.04 trap 'docker stop libbot2-jammy libbot2-jammy-test && docker rm libbot2-jammy libbot2-jammy-test' EXIT -docker cp lcm_1.5.1-3d60029_amd64.deb libbot2-jammy-test:/tmp +docker cp lcm_1.4.0-gabdd8a2_amd64.deb libbot2-jammy-test:/tmp docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-jammy-test:/tmp docker cp "$(git rev-parse --show-toplevel)" libbot2-jammy-test:/tmp/libbot2 docker exec libbot2-jammy-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/package/linux/ubuntu/noble/package b/scripts/package/linux/ubuntu/noble/package index 7b51fdf4..0cef8520 100755 --- a/scripts/package/linux/ubuntu/noble/package +++ b/scripts/package/linux/ubuntu/noble/package @@ -26,20 +26,20 @@ set -euxo pipefail readonly timestamp=$(date -u +%Y%m%d) -rm -f lcm_1.5.1-3d60029_amd64.deb libbot2_0.0.1.*-1_amd64.deb +rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb docker build --tag libbot2-noble-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/noble/ docker run --detach --name libbot2-noble --tty libbot2-noble-prereqs trap 'docker stop libbot2-noble && docker rm libbot2-noble' EXIT docker cp "$(git rev-parse --show-toplevel)" libbot2-noble:/tmp/libbot2 docker exec libbot2-noble /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-noble:/tmp/lcm_1.5.1-3d60029_amd64.deb . +docker cp libbot2-noble:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . docker cp libbot2-noble:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . # Test package docker run --detach --name libbot2-noble-test --tty ubuntu:24.04 trap 'docker stop libbot2-noble libbot2-noble-test && docker rm libbot2-noble libbot2-noble-test' EXIT -docker cp lcm_1.5.1-3d60029_amd64.deb libbot2-noble-test:/tmp +docker cp lcm_1.4.0-gabdd8a2_amd64.deb libbot2-noble-test:/tmp docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-noble-test:/tmp docker cp "$(git rev-parse --show-toplevel)" libbot2-noble-test:/tmp/libbot2 docker exec libbot2-noble-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/setup/linux/ubuntu/noble/install_prereqs b/scripts/setup/linux/ubuntu/noble/install_prereqs index 0cc4cbf7..85369640 100755 --- a/scripts/setup/linux/ubuntu/noble/install_prereqs +++ b/scripts/setup/linux/ubuntu/noble/install_prereqs @@ -45,7 +45,6 @@ apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends ins libglib2.0-dev \ libgtk-3-dev \ libjpeg8-dev \ - libpcre3-dev \ libpng-dev \ libxmu-dev \ pkg-config \ From 361d7c2a2c954053530db18c2ff7326861916234 Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Mon, 14 Apr 2025 16:44:35 -0400 Subject: [PATCH 07/12] Patch in minimum CMake of 3.10 --- scripts/package/linux/ubuntu/common/build.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scripts/package/linux/ubuntu/common/build.sh b/scripts/package/linux/ubuntu/common/build.sh index 08b9ad28..b16c60c7 100755 --- a/scripts/package/linux/ubuntu/common/build.sh +++ b/scripts/package/linux/ubuntu/common/build.sh @@ -69,6 +69,21 @@ index 253ab64..52b1c7b 100644 EOF git apply lcm-cmake.patch rm -f lcm-cmake.patch + +# Patch lcm to use a higher supported minimum version of CMake +cat << 'EOF' > CMakeLists.patch +diff --git a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,2 +1,2 @@ +-cmake_minimum_required(VERSION 3.1) ++cmake_minimum_required(VERSION 3.10) + +EOF +git apply CMakeLists.patch +rm -f CMakeLists.patch + +# Last patch applied, exit ``/tmp`` popd mkdir lcm-build From 77ad567335358287c7d26a56e0448653d226bc5c Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Mon, 14 Apr 2025 17:00:27 -0400 Subject: [PATCH 08/12] Add patches to work with dated cmake --- scripts/package/linux/ubuntu/common/build.sh | 27 +++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/scripts/package/linux/ubuntu/common/build.sh b/scripts/package/linux/ubuntu/common/build.sh index b16c60c7..988e7aaf 100755 --- a/scripts/package/linux/ubuntu/common/build.sh +++ b/scripts/package/linux/ubuntu/common/build.sh @@ -62,7 +62,7 @@ index 253ab64..52b1c7b 100644 set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/lcm-proj/lcm") set(CPACK_DEBIAN_PACKAGE_SECTION "devel") -set(CPACK_DEBIAN_PACKAGE_DEPENDS "libglib2.0-0, libpcre3") -+set(CPACK_DEBIAN_PACKAGE_DEPENDS "default-jre | java8-runtime, libc6, libgcc1, libglib2.0-0, libpcre3, libstdc++6, python3") ++set(CPACK_DEBIAN_PACKAGE_DEPENDS "default-jre | java8-runtime, libc6, libgcc1, libglib2.0-0, libpcre2-8-0, libstdc++6, python3") message(STATUS "CPack: Packages will be placed under ${CPACK_PACKAGE_DIRECTORY}") @@ -83,6 +83,31 @@ EOF git apply CMakeLists.patch rm -f CMakeLists.patch +# Address compatibility issues with Py_TYPE() +cat << 'EOF' > lcm-python.patch +diff --git a/lcm-python/module.c b/lcm-python/module.c +--- a/lcm-python/module.c ++++ b/lcm-python/module.c +@@ -44,6 +44,11 @@ + PyObject *m; ++ ++ // Define Py_SET_TYPE if not available (for older Python compatibility) ++ #if !defined(Py_SET_TYPE) ++ #define Py_SET_TYPE(obj, type) ((Py_TYPE(obj) = (type)), (void)0) ++ #endif + ++ Py_SET_TYPE(&pylcmeventlog_type, &PyType_Type); ++ Py_SET_TYPE(&pylcm_type, &PyType_Type); ++ Py_SET_TYPE(&pylcm_subscription_type, &PyType_Type); +- Py_TYPE(&pylcmeventlog_type) = &PyType_Type; +- Py_TYPE(&pylcm_type) = &PyType_Type; +- Py_TYPE(&pylcm_subscription_type) = &PyType_Type; + + MOD_DEF(m, "_lcm", lcmmod_doc, lcmmod_methods); +EOF +git apply lcm-python.patch +rm -f lcm-python.patch + # Last patch applied, exit ``/tmp`` popd From f3ea39f913d2a23541cab5ecabd16353076ea19f Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Tue, 15 Apr 2025 14:50:20 -0400 Subject: [PATCH 09/12] added python3-setuptools --- scripts/setup/linux/ubuntu/noble/install_prereqs | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/setup/linux/ubuntu/noble/install_prereqs b/scripts/setup/linux/ubuntu/noble/install_prereqs index 85369640..0d0ecb10 100755 --- a/scripts/setup/linux/ubuntu/noble/install_prereqs +++ b/scripts/setup/linux/ubuntu/noble/install_prereqs @@ -52,6 +52,7 @@ apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends ins python3-gi \ python3-numpy \ python3-scipy \ + python3-setuptools \ wget \ zlib1g-dev From ea9666294eea7847041a115f88dc0cd48de5d126 Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Tue, 15 Apr 2025 15:25:06 -0400 Subject: [PATCH 10/12] Updated fatal error version of CMake from 3.1 to 3.5 --- README.md | 2 +- bot2-core/README.md | 4 ++-- bot2-core/cmake/bot2-core-config.cmake.in | 6 +++--- bot2-frames/README.md | 4 ++-- bot2-frames/cmake/bot2-frames-config.cmake.in | 6 +++--- bot2-frames/cmake/modules/3.6/FindPkgConfig.cmake | 6 +++--- bot2-lcm-utils/README.md | 4 ++-- bot2-lcm-utils/cmake/bot2-lcm-utils-config.cmake.in | 6 +++--- bot2-lcmgl/README.md | 4 ++-- bot2-lcmgl/cmake/bot2-lcmgl-config.cmake.in | 6 +++--- bot2-lcmgl/cmake/modules/3.6/FindPkgConfig.cmake | 6 +++--- bot2-param/README.md | 4 ++-- bot2-param/cmake/bot2-param-config.cmake.in | 6 +++--- bot2-procman/README.md | 4 ++-- bot2-procman/cmake/bot2-procman-config.cmake.in | 6 +++--- bot2-vis/README.md | 4 ++-- bot2-vis/cmake/bot2-vis-config.cmake.in | 6 +++--- bot2-vis/cmake/modules/3.6/FindPkgConfig.cmake | 6 +++--- bot2-vis/src/bot_vis/glm_util.c | 2 +- bot2-vis/src/bot_vis/glmimg.c | 2 +- bot2-vis/src/bot_vis/glmimg_jpg.c | 2 +- bot2-vis/src/bot_vis/glmimg_png.c | 2 +- cmake/libbot2-config.cmake.in | 6 +++--- 23 files changed, 52 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index 6ac5ff5f..a09a21ce 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ make install CMakeLists.txt: ```cmake -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # ... diff --git a/bot2-core/README.md b/bot2-core/README.md index 4ef393fa..6d9a33e0 100644 --- a/bot2-core/README.md +++ b/bot2-core/README.md @@ -10,7 +10,7 @@ a variety of robotics platforms. ## Required Dependencies * C/C++ compiler that supports C++98 and C99 (Clang or GCC recommended) -* CMake 3.10 and above (build and install) or 3.1 and above (use) +* CMake 3.10 and above (build and install) or 3.5 and above (use) * GLib 2.32 and above * LCM 1.4 and above * Linux or POSIX-compliant operating system (macOS Mojave 10.14 and above or @@ -39,7 +39,7 @@ make install CMakeLists.txt: ```cmake -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # ... diff --git a/bot2-core/cmake/bot2-core-config.cmake.in b/bot2-core/cmake/bot2-core-config.cmake.in index 1eb1b7f3..560a096a 100644 --- a/bot2-core/cmake/bot2-core-config.cmake.in +++ b/bot2-core/cmake/bot2-core-config.cmake.in @@ -20,15 +20,15 @@ along with @PROJECT_NAME@. If not, see . @PACKAGE_INIT@ -if(CMAKE_VERSION VERSION_LESS 3.1) +if(CMAKE_VERSION VERSION_LESS 3.5) message(FATAL_ERROR - "CMake 3.1 or higher is required to use @PROJECT_NAME@. " + "CMake 3.5 or higher is required to use @PROJECT_NAME@. " "You are running version ${CMAKE_VERSION}." ) endif() cmake_policy(PUSH) -cmake_policy(VERSION 3.1) +cmake_policy(VERSION 3.5) set(CMAKE_IMPORT_FILE_VERSION 1) if(CMAKE_VERSION VERSION_LESS 3.9) diff --git a/bot2-frames/README.md b/bot2-frames/README.md index 23922588..544bca65 100644 --- a/bot2-frames/README.md +++ b/bot2-frames/README.md @@ -53,7 +53,7 @@ coordinate_frames { * bot2-core * bot2-param * C/C++ compiler that supports C++98 and C99 (Clang or GCC recommended) -* CMake 3.10 and above (build and install) or 3.1 and above (use) +* CMake 3.10 and above (build and install) or 3.5 and above (use) * GLib and GObject 2.32 and above * LCM 1.4 and above * Linux or POSIX-compliant operating system (macOS Mojave 10.14 and above or @@ -86,7 +86,7 @@ make install CMakeLists.txt: ```cmake -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # ... diff --git a/bot2-frames/cmake/bot2-frames-config.cmake.in b/bot2-frames/cmake/bot2-frames-config.cmake.in index fc98c4a7..280b6492 100644 --- a/bot2-frames/cmake/bot2-frames-config.cmake.in +++ b/bot2-frames/cmake/bot2-frames-config.cmake.in @@ -20,15 +20,15 @@ along with @PROJECT_NAME@. If not, see . @PACKAGE_INIT@ -if(CMAKE_VERSION VERSION_LESS 3.1) +if(CMAKE_VERSION VERSION_LESS 3.5) message(FATAL_ERROR - "CMake 3.1 or higher is required to use @PROJECT_NAME@. " + "CMake 3.5 or higher is required to use @PROJECT_NAME@. " "You are running version ${CMAKE_VERSION}." ) endif() cmake_policy(PUSH) -cmake_policy(VERSION 3.1) +cmake_policy(VERSION 3.5) set(CMAKE_IMPORT_FILE_VERSION 1) set(USE_BOT_VIS @USE_BOT_VIS@) diff --git a/bot2-frames/cmake/modules/3.6/FindPkgConfig.cmake b/bot2-frames/cmake/modules/3.6/FindPkgConfig.cmake index fa8d9097..fc4c164b 100644 --- a/bot2-frames/cmake/modules/3.6/FindPkgConfig.cmake +++ b/bot2-frames/cmake/modules/3.6/FindPkgConfig.cmake @@ -146,7 +146,7 @@ macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cma set(${_no_cmake_path} 1) set(${_no_cmake_environment_path} 1) endif() - elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.1) + elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.5) set(${_no_cmake_path} 1) set(${_no_cmake_environment_path} 1) endif() @@ -516,7 +516,7 @@ endmacro() When the ``QUIET`` argument is set, no status messages will be printed. - By default, if :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or + By default, if :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.5 or later, or if :variable:`PKG_CONFIG_USE_CMAKE_PREFIX_PATH` is set, the :variable:`CMAKE_PREFIX_PATH`, :variable:`CMAKE_FRAMEWORK_PATH`, and :variable:`CMAKE_APPBUNDLE_PATH` cache and environment variables will @@ -683,7 +683,7 @@ endmacro() cache and environment variables to ``pkg-config`` search path. If this variable is not set, this behavior is enabled by default if - :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or later, disabled + :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.5 or later, disabled otherwise. #]========================================] diff --git a/bot2-lcm-utils/README.md b/bot2-lcm-utils/README.md index f777d042..da42d069 100644 --- a/bot2-lcm-utils/README.md +++ b/bot2-lcm-utils/README.md @@ -7,7 +7,7 @@ ## Required Dependencies * C/C++ compiler that supports C++98 and C99 (Clang or GCC recommended) -* CMake 3.10 and above (build and install) or 3.1 and above (use) +* CMake 3.10 and above (build and install) or 3.5 and above (use) * GLib 2.32 and above * LCM 1.4 and above * Linux or POSIX-compliant operating system (macOS Mojave 10.14 and above or @@ -36,7 +36,7 @@ make install CMakeLists.txt: ```cmake -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # ... diff --git a/bot2-lcm-utils/cmake/bot2-lcm-utils-config.cmake.in b/bot2-lcm-utils/cmake/bot2-lcm-utils-config.cmake.in index a7040bbb..de546bd1 100644 --- a/bot2-lcm-utils/cmake/bot2-lcm-utils-config.cmake.in +++ b/bot2-lcm-utils/cmake/bot2-lcm-utils-config.cmake.in @@ -20,15 +20,15 @@ along with @PROJECT_NAME@. If not, see . @PACKAGE_INIT@ -if(CMAKE_VERSION VERSION_LESS 3.1) +if(CMAKE_VERSION VERSION_LESS 3.5) message(FATAL_ERROR - "CMake 3.1 or higher is required to use @PROJECT_NAME@. " + "CMake 3.5 or higher is required to use @PROJECT_NAME@. " "You are running version ${CMAKE_VERSION}." ) endif() cmake_policy(PUSH) -cmake_policy(VERSION 3.1) +cmake_policy(VERSION 3.5) set(CMAKE_IMPORT_FILE_VERSION 1) if(CMAKE_VERSION VERSION_LESS 3.9) diff --git a/bot2-lcmgl/README.md b/bot2-lcmgl/README.md index d841f9a6..84058f00 100644 --- a/bot2-lcmgl/README.md +++ b/bot2-lcmgl/README.md @@ -16,7 +16,7 @@ OpenGL libraries, and only require LCM. * bot2-core * C/C++ compiler that supports C++98 and C99 (Clang or GCC recommended) -* CMake 3.10 and above (build and install) or 3.1 and above (use) +* CMake 3.10 and above (build and install) or 3.5 and above (use) * GLib and GObject 2.32 and above * LCM 1.4 and above * Linux or POSIX-compliant operating system (macOS Mojave 10.14 and above or @@ -50,7 +50,7 @@ make install CMakeLists.txt: ```cmake -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # ... diff --git a/bot2-lcmgl/cmake/bot2-lcmgl-config.cmake.in b/bot2-lcmgl/cmake/bot2-lcmgl-config.cmake.in index 59840bf7..75144414 100644 --- a/bot2-lcmgl/cmake/bot2-lcmgl-config.cmake.in +++ b/bot2-lcmgl/cmake/bot2-lcmgl-config.cmake.in @@ -20,15 +20,15 @@ along with @PROJECT_NAME@. If not, see . @PACKAGE_INIT@ -if(CMAKE_VERSION VERSION_LESS 3.1) +if(CMAKE_VERSION VERSION_LESS 3.5) message(FATAL_ERROR - "CMake 3.1 or higher is required to use @PROJECT_NAME@. " + "CMake 3.5 or higher is required to use @PROJECT_NAME@. " "You are running version ${CMAKE_VERSION}." ) endif() cmake_policy(PUSH) -cmake_policy(VERSION 3.1) +cmake_policy(VERSION 3.5) set(CMAKE_IMPORT_FILE_VERSION 1) set(USE_BOT_VIS @USE_BOT_VIS@) diff --git a/bot2-lcmgl/cmake/modules/3.6/FindPkgConfig.cmake b/bot2-lcmgl/cmake/modules/3.6/FindPkgConfig.cmake index fa8d9097..fc4c164b 100644 --- a/bot2-lcmgl/cmake/modules/3.6/FindPkgConfig.cmake +++ b/bot2-lcmgl/cmake/modules/3.6/FindPkgConfig.cmake @@ -146,7 +146,7 @@ macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cma set(${_no_cmake_path} 1) set(${_no_cmake_environment_path} 1) endif() - elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.1) + elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.5) set(${_no_cmake_path} 1) set(${_no_cmake_environment_path} 1) endif() @@ -516,7 +516,7 @@ endmacro() When the ``QUIET`` argument is set, no status messages will be printed. - By default, if :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or + By default, if :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.5 or later, or if :variable:`PKG_CONFIG_USE_CMAKE_PREFIX_PATH` is set, the :variable:`CMAKE_PREFIX_PATH`, :variable:`CMAKE_FRAMEWORK_PATH`, and :variable:`CMAKE_APPBUNDLE_PATH` cache and environment variables will @@ -683,7 +683,7 @@ endmacro() cache and environment variables to ``pkg-config`` search path. If this variable is not set, this behavior is enabled by default if - :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or later, disabled + :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.5 or later, disabled otherwise. #]========================================] diff --git a/bot2-param/README.md b/bot2-param/README.md index 9bd07930..e53f74b5 100644 --- a/bot2-param/README.md +++ b/bot2-param/README.md @@ -8,7 +8,7 @@ * bot2-core * C/C++ compiler that supports C++98 and C99 (Clang or GCC recommended) -* CMake 3.10 and above (build and install) or 3.1 and above (use) +* CMake 3.10 and above (build and install) or 3.5 and above (use) * GLib 2.32 and above * LCM 1.4 and above * Linux or POSIX-compliant operating system (macOS Mojave 10.14 and above or @@ -35,7 +35,7 @@ make install CMakeLists.txt: ```cmake -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # ... diff --git a/bot2-param/cmake/bot2-param-config.cmake.in b/bot2-param/cmake/bot2-param-config.cmake.in index baa100fd..75c08484 100644 --- a/bot2-param/cmake/bot2-param-config.cmake.in +++ b/bot2-param/cmake/bot2-param-config.cmake.in @@ -20,15 +20,15 @@ along with @PROJECT_NAME@. If not, see . @PACKAGE_INIT@ -if(CMAKE_VERSION VERSION_LESS 3.1) +if(CMAKE_VERSION VERSION_LESS 3.5) message(FATAL_ERROR - "CMake 3.1 or higher is required to use @PROJECT_NAME@. " + "CMake 3.5 or higher is required to use @PROJECT_NAME@. " "You are running version ${CMAKE_VERSION}." ) endif() cmake_policy(PUSH) -cmake_policy(VERSION 3.1) +cmake_policy(VERSION 3.5) set(CMAKE_IMPORT_FILE_VERSION 1) if(CMAKE_VERSION VERSION_LESS 3.9) diff --git a/bot2-procman/README.md b/bot2-procman/README.md index 0b2f5fc4..0507192f 100644 --- a/bot2-procman/README.md +++ b/bot2-procman/README.md @@ -38,7 +38,7 @@ or with `-l`, but `--lone-ranger` is cooler. ## Required Dependencies * C/C++ compiler that supports C++98 and C99 (Clang or GCC recommended) -* CMake 3.10 and above (build and install) or 3.1 and above (use) +* CMake 3.10 and above (build and install) or 3.5 and above (use) * GLib and GThreads 2.32 and above * GObject Introspection and PyGObject 3 and above * LCM 1.4 and above @@ -68,7 +68,7 @@ make install CMakeLists.txt: ```cmake -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # ... diff --git a/bot2-procman/cmake/bot2-procman-config.cmake.in b/bot2-procman/cmake/bot2-procman-config.cmake.in index 13087a54..aa4108d0 100644 --- a/bot2-procman/cmake/bot2-procman-config.cmake.in +++ b/bot2-procman/cmake/bot2-procman-config.cmake.in @@ -20,15 +20,15 @@ along with @PROJECT_NAME@. If not, see . @PACKAGE_INIT@ -if(CMAKE_VERSION VERSION_LESS 3.1) +if(CMAKE_VERSION VERSION_LESS 3.5) message(FATAL_ERROR - "CMake 3.1 or higher is required to use @PROJECT_NAME@. " + "CMake 3.5 or higher is required to use @PROJECT_NAME@. " "You are running version ${CMAKE_VERSION}." ) endif() cmake_policy(PUSH) -cmake_policy(VERSION 3.1) +cmake_policy(VERSION 3.5) set(CMAKE_IMPORT_FILE_VERSION 1) # Import targets that were generated with custom commands. diff --git a/bot2-vis/README.md b/bot2-vis/README.md index 5ffa8e5c..4d603efd 100644 --- a/bot2-vis/README.md +++ b/bot2-vis/README.md @@ -8,7 +8,7 @@ * bot2-core * C compiler that supports C99 (Clang or GCC recommended) -* CMake 3.10 and above (build and install) or 3.1 and above (use) +* CMake 3.10 and above (build and install) or 3.5 and above (use) * FreeGLUT (Linux) or GLUT (macOS) * GDK and GTK 3.0 and above with X11 support * GLib and GObject 2.32 and above @@ -40,7 +40,7 @@ make install CMakeLists.txt: ```cmake -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # ... diff --git a/bot2-vis/cmake/bot2-vis-config.cmake.in b/bot2-vis/cmake/bot2-vis-config.cmake.in index cb792ef5..26fcd29c 100644 --- a/bot2-vis/cmake/bot2-vis-config.cmake.in +++ b/bot2-vis/cmake/bot2-vis-config.cmake.in @@ -20,15 +20,15 @@ along with @PROJECT_NAME@. If not, see . @PACKAGE_INIT@ -if(CMAKE_VERSION VERSION_LESS 3.1) +if(CMAKE_VERSION VERSION_LESS 3.5) message(FATAL_ERROR - "CMake 3.1 or higher is required to use @PROJECT_NAME@. " + "CMake 3.5 or higher is required to use @PROJECT_NAME@. " "You are running version ${CMAKE_VERSION}." ) endif() cmake_policy(PUSH) -cmake_policy(VERSION 3.1) +cmake_policy(VERSION 3.5) set(CMAKE_IMPORT_FILE_VERSION 1) if(CMAKE_VERSION VERSION_LESS 3.9) diff --git a/bot2-vis/cmake/modules/3.6/FindPkgConfig.cmake b/bot2-vis/cmake/modules/3.6/FindPkgConfig.cmake index fa8d9097..fc4c164b 100644 --- a/bot2-vis/cmake/modules/3.6/FindPkgConfig.cmake +++ b/bot2-vis/cmake/modules/3.6/FindPkgConfig.cmake @@ -146,7 +146,7 @@ macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cma set(${_no_cmake_path} 1) set(${_no_cmake_environment_path} 1) endif() - elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.1) + elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.5) set(${_no_cmake_path} 1) set(${_no_cmake_environment_path} 1) endif() @@ -516,7 +516,7 @@ endmacro() When the ``QUIET`` argument is set, no status messages will be printed. - By default, if :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or + By default, if :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.5 or later, or if :variable:`PKG_CONFIG_USE_CMAKE_PREFIX_PATH` is set, the :variable:`CMAKE_PREFIX_PATH`, :variable:`CMAKE_FRAMEWORK_PATH`, and :variable:`CMAKE_APPBUNDLE_PATH` cache and environment variables will @@ -683,7 +683,7 @@ endmacro() cache and environment variables to ``pkg-config`` search path. If this variable is not set, this behavior is enabled by default if - :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or later, disabled + :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.5 or later, disabled otherwise. #]========================================] diff --git a/bot2-vis/src/bot_vis/glm_util.c b/bot2-vis/src/bot_vis/glm_util.c index b90ad449..13c6bf01 100644 --- a/bot2-vis/src/bot_vis/glm_util.c +++ b/bot2-vis/src/bot_vis/glm_util.c @@ -20,7 +20,7 @@ // Adapted from F. Devernay's extensions to Nate Robbins' GLM library // -// Source obtained from GLM-0.3.1 available from +// Source obtained from GLM-0.3.5 available from // http://devernay.free.fr/hacks/glm/ // // Changes: diff --git a/bot2-vis/src/bot_vis/glmimg.c b/bot2-vis/src/bot_vis/glmimg.c index 39b9e5ed..4e53d9cd 100644 --- a/bot2-vis/src/bot_vis/glmimg.c +++ b/bot2-vis/src/bot_vis/glmimg.c @@ -20,7 +20,7 @@ // Adapted from F. Devernay's extensions to Nate Robbins' GLM library // -// Source obtained from GLM-0.3.1 available from +// Source obtained from GLM-0.3.5 available from // http://devernay.free.fr/hacks/glm/ // // Changes: diff --git a/bot2-vis/src/bot_vis/glmimg_jpg.c b/bot2-vis/src/bot_vis/glmimg_jpg.c index fea953bc..90d71fa9 100644 --- a/bot2-vis/src/bot_vis/glmimg_jpg.c +++ b/bot2-vis/src/bot_vis/glmimg_jpg.c @@ -20,7 +20,7 @@ // Adapted from F. Devernay's extensions to Nate Robbins' GLM library // -// Source obtained from GLM-0.3.1 available from +// Source obtained from GLM-0.3.5 available from // http://devernay.free.fr/hacks/glm/ // // Changes: diff --git a/bot2-vis/src/bot_vis/glmimg_png.c b/bot2-vis/src/bot_vis/glmimg_png.c index 3fd4826b..ea073302 100644 --- a/bot2-vis/src/bot_vis/glmimg_png.c +++ b/bot2-vis/src/bot_vis/glmimg_png.c @@ -20,7 +20,7 @@ // Adapted from F. Devernay's extensions to Nate Robbins' GLM library // -// Source obtained from GLM-0.3.1 available from +// Source obtained from GLM-0.3.5 available from // http://devernay.free.fr/hacks/glm/ // // Changes: diff --git a/cmake/libbot2-config.cmake.in b/cmake/libbot2-config.cmake.in index b119143f..ea369039 100644 --- a/cmake/libbot2-config.cmake.in +++ b/cmake/libbot2-config.cmake.in @@ -20,15 +20,15 @@ along with @PROJECT_NAME@. If not, see . @PACKAGE_INIT@ -if(CMAKE_VERSION VERSION_LESS 3.1) +if(CMAKE_VERSION VERSION_LESS 3.5) message(FATAL_ERROR - "CMake 3.1 or higher is required to use @PROJECT_NAME@. " + "CMake 3.5 or higher is required to use @PROJECT_NAME@. " "You are running version ${CMAKE_VERSION}." ) endif() cmake_policy(PUSH) -cmake_policy(VERSION 3.1) +cmake_policy(VERSION 3.5) set(CMAKE_IMPORT_FILE_VERSION 1) set(WITH_BOT_FRAMES @WITH_BOT_FRAMES@) From 6df5de65085be64ca8924b58adb7485a5eaeb611 Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Thu, 17 Apr 2025 15:39:16 -0400 Subject: [PATCH 11/12] Removed freeglut and replaced with new libglut --- cmake/cpack.cmake | 2 +- scripts/setup/linux/ubuntu/noble/install_prereqs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/cpack.cmake b/cmake/cpack.cmake index c038e52c..c192a509 100644 --- a/cmake/cpack.cmake +++ b/cmake/cpack.cmake @@ -62,7 +62,7 @@ set(CPACK_SOURCE_STRIP_FILES OFF) # Debian specific set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${MACHINE_ARCH}) set(CPACK_DEBIAN_PACKAGE_RELEASE ${PACKAGE_RELEASE_VERSION}) -set(CPACK_DEBIAN_PACKAGE_DEPENDS "lcm (>=1.4.0), default-jre | java8-runtime, freeglut3, libc6, libgcc1, libglib2.0-0, libglu1-mesa, libgtk-3-0, libice6, libjpeg8, libopengl0, libpng16-16, libsm6, libstdc++6, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxmu6, libxt6, python3, python3-gi, python3-numpy, python3-scipy, zlib1g") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "lcm (>=1.4.0), default-jre | java8-runtime, libc6, libgcc1, libglib2.0-0, libglut3.12, libglu1-mesa, libgtk-3-0, libice6, libjpeg8, libopengl0, libpng16-16, libsm6, libstdc++6, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxmu6, libxt6, python3, python3-gi, python3-numpy, python3-scipy, zlib1g") set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CPACK_PACKAGE_HOMEPAGE_URL}") set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_PACKAGE_VENDOR} ") diff --git a/scripts/setup/linux/ubuntu/noble/install_prereqs b/scripts/setup/linux/ubuntu/noble/install_prereqs index 0d0ecb10..108fae45 100755 --- a/scripts/setup/linux/ubuntu/noble/install_prereqs +++ b/scripts/setup/linux/ubuntu/noble/install_prereqs @@ -39,10 +39,10 @@ apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends ins default-jdk \ doxygen \ file \ - freeglut3-dev \ git \ gnupg \ libglib2.0-dev \ + libglut-dev \ libgtk-3-dev \ libjpeg8-dev \ libpng-dev \ From f34135054518bd864cf1be7730589aebca730781 Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Mon, 21 Apr 2025 14:52:28 -0400 Subject: [PATCH 12/12] Drop support for non-noble packages --- scripts/package/linux/ubuntu/bionic/package | 45 ------------ scripts/package/linux/ubuntu/common/build.sh | 7 +- scripts/package/linux/ubuntu/focal/package | 45 ------------ scripts/package/linux/ubuntu/jammy/package | 45 ------------ scripts/setup/linux/ubuntu/bionic/Dockerfile | 21 ------ .../setup/linux/ubuntu/bionic/install_prereqs | 68 ------------------- scripts/setup/linux/ubuntu/focal/Dockerfile | 20 ------ .../setup/linux/ubuntu/focal/install_prereqs | 68 ------------------- scripts/setup/linux/ubuntu/jammy/Dockerfile | 20 ------ .../setup/linux/ubuntu/jammy/install_prereqs | 68 ------------------- .../setup/linux/ubuntu/noble/install_prereqs | 1 + 11 files changed, 2 insertions(+), 406 deletions(-) delete mode 100755 scripts/package/linux/ubuntu/bionic/package delete mode 100755 scripts/package/linux/ubuntu/focal/package delete mode 100755 scripts/package/linux/ubuntu/jammy/package delete mode 100644 scripts/setup/linux/ubuntu/bionic/Dockerfile delete mode 100755 scripts/setup/linux/ubuntu/bionic/install_prereqs delete mode 100644 scripts/setup/linux/ubuntu/focal/Dockerfile delete mode 100755 scripts/setup/linux/ubuntu/focal/install_prereqs delete mode 100644 scripts/setup/linux/ubuntu/jammy/Dockerfile delete mode 100755 scripts/setup/linux/ubuntu/jammy/install_prereqs diff --git a/scripts/package/linux/ubuntu/bionic/package b/scripts/package/linux/ubuntu/bionic/package deleted file mode 100755 index cfeeeacd..00000000 --- a/scripts/package/linux/ubuntu/bionic/package +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -# This file is part of libbot2. -# -# libbot2 is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# libbot2 is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with libbot2. If not, see . - -# This script will start a docker container that contains the requirements to -# build libbot2 (except LCM which is built as part of this process). It will -# then copy a script in the docker container that has been start, and run that -# script which builds and packages LCM, builds and packages libbot2, and copy -# the 2 deb archives in the current working directory before stopping and -# removing the docker container. - -set -euxo pipefail - -readonly timestamp=$(date -u +%Y%m%d) - -rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb - -docker build --tag libbot2-bionic-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/bionic/ -docker run --detach --name libbot2-bionic --tty libbot2-bionic-prereqs -trap 'docker stop libbot2-bionic && docker rm libbot2-bionic' EXIT -docker cp "$(git rev-parse --show-toplevel)" libbot2-bionic:/tmp/libbot2 -docker exec libbot2-bionic /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-bionic:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . -docker cp libbot2-bionic:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . - -# Test package -docker run --detach --name libbot2-bionic-test --tty ubuntu:18.04 -trap 'docker stop libbot2-bionic libbot2-bionic-test && docker rm libbot2-bionic libbot2-bionic-test' EXIT -docker cp lcm_1.4.0-gabdd8a2_amd64.deb libbot2-bionic-test:/tmp -docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-bionic-test:/tmp -docker cp "$(git rev-parse --show-toplevel)" libbot2-bionic-test:/tmp/libbot2 -docker exec libbot2-bionic-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/package/linux/ubuntu/common/build.sh b/scripts/package/linux/ubuntu/common/build.sh index 988e7aaf..e46bbdfe 100755 --- a/scripts/package/linux/ubuntu/common/build.sh +++ b/scripts/package/linux/ubuntu/common/build.sh @@ -88,13 +88,8 @@ cat << 'EOF' > lcm-python.patch diff --git a/lcm-python/module.c b/lcm-python/module.c --- a/lcm-python/module.c +++ b/lcm-python/module.c -@@ -44,6 +44,11 @@ +@@ -44,6 +44,6 @@ PyObject *m; -+ -+ // Define Py_SET_TYPE if not available (for older Python compatibility) -+ #if !defined(Py_SET_TYPE) -+ #define Py_SET_TYPE(obj, type) ((Py_TYPE(obj) = (type)), (void)0) -+ #endif + Py_SET_TYPE(&pylcmeventlog_type, &PyType_Type); + Py_SET_TYPE(&pylcm_type, &PyType_Type); diff --git a/scripts/package/linux/ubuntu/focal/package b/scripts/package/linux/ubuntu/focal/package deleted file mode 100755 index 1bdf37bd..00000000 --- a/scripts/package/linux/ubuntu/focal/package +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -# This file is part of libbot2. -# -# libbot2 is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# libbot2 is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with libbot2. If not, see . - -# This script will start a docker container that contains the requirements to -# build libbot2 (except LCM which is built as part of this process). It will -# then copy a script in the docker container that has been start, and run that -# script which builds and packages LCM, builds and packages libbot2, and copy -# the 2 deb archives in the current working directory before stopping and -# removing the docker container. - -set -euxo pipefail - -readonly timestamp=$(date -u +%Y%m%d) - -rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb - -docker build --tag libbot2-focal-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/focal/ -docker run --detach --name libbot2-focal --tty libbot2-focal-prereqs -trap 'docker stop libbot2-focal && docker rm libbot2-focal' EXIT -docker cp "$(git rev-parse --show-toplevel)" libbot2-focal:/tmp/libbot2 -docker exec libbot2-focal /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-focal:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . -docker cp libbot2-focal:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . - -# Test package -docker run --detach --name libbot2-focal-test --tty ubuntu:20.04 -trap 'docker stop libbot2-focal libbot2-focal-test && docker rm libbot2-focal libbot2-focal-test' EXIT -docker cp lcm_1.4.0-2_amd64gabdd8a2_amd64.deb libbot2-focal-test:/tmp -docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-focal-test:/tmp -docker cp "$(git rev-parse --show-toplevel)" libbot2-focal-test:/tmp/libbot2 -docker exec libbot2-focal-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/package/linux/ubuntu/jammy/package b/scripts/package/linux/ubuntu/jammy/package deleted file mode 100755 index 42e2e761..00000000 --- a/scripts/package/linux/ubuntu/jammy/package +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -# This file is part of libbot2. -# -# libbot2 is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# libbot2 is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with libbot2. If not, see . - -# This script will start a docker container that contains the requirements to -# build libbot2 (except LCM which is built as part of this process). It will -# then copy a script in the docker container that has been start, and run that -# script which builds and packages LCM, builds and packages libbot2, and copy -# the 2 deb archives in the current working directory before stopping and -# removing the docker container. - -set -euxo pipefail - -readonly timestamp=$(date -u +%Y%m%d) - -rm -f lcm_1.4.0-gabdd8a2_amd64.deb libbot2_0.0.1.*-1_amd64.deb - -docker build --tag libbot2-jammy-prereqs "$(git rev-parse --show-toplevel)"/scripts/setup/linux/ubuntu/jammy/ -docker run --detach --name libbot2-jammy --tty libbot2-jammy-prereqs -trap 'docker stop libbot2-jammy && docker rm libbot2-jammy' EXIT -docker cp "$(git rev-parse --show-toplevel)" libbot2-jammy:/tmp/libbot2 -docker exec libbot2-jammy /tmp/libbot2/scripts/package/linux/ubuntu/common/build.sh "${timestamp}" -docker cp libbot2-jammy:/tmp/lcm_1.4.0-gabdd8a2_amd64.deb . -docker cp libbot2-jammy:/tmp/"libbot2_0.0.1.${timestamp}-1_amd64.deb" . - -# Test package -docker run --detach --name libbot2-jammy-test --tty ubuntu:22.04 -trap 'docker stop libbot2-jammy libbot2-jammy-test && docker rm libbot2-jammy libbot2-jammy-test' EXIT -docker cp lcm_1.4.0-gabdd8a2_amd64.deb libbot2-jammy-test:/tmp -docker cp "libbot2_0.0.1.${timestamp}-1_amd64.deb" libbot2-jammy-test:/tmp -docker cp "$(git rev-parse --show-toplevel)" libbot2-jammy-test:/tmp/libbot2 -docker exec libbot2-jammy-test /tmp/libbot2/scripts/package/linux/ubuntu/common/test.sh "${timestamp}" diff --git a/scripts/setup/linux/ubuntu/bionic/Dockerfile b/scripts/setup/linux/ubuntu/bionic/Dockerfile deleted file mode 100644 index 306fe8ed..00000000 --- a/scripts/setup/linux/ubuntu/bionic/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -# This file is part of libbot2. -# -# libbot2 is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# libbot2 is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with libbot2. If not, see . - -FROM ubuntu:18.04 -COPY ./install_prereqs /tmp/install_prereqs -ARG DEBIAN_FRONTEND=noninteractive -RUN /tmp/install_prereqs \ - && rm -rf /var/lib/apt/lists/* \ - && rm -f /tmp/install_prereqs diff --git a/scripts/setup/linux/ubuntu/bionic/install_prereqs b/scripts/setup/linux/ubuntu/bionic/install_prereqs deleted file mode 100755 index 96be2a82..00000000 --- a/scripts/setup/linux/ubuntu/bionic/install_prereqs +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/bash - -# This file is part of libbot2. -# -# libbot2 is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# libbot2 is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with libbot2. If not, see . - -set -euo pipefail - -if [[ "${EUID}" -ne 0 ]]; then - echo 'This script must be run as root' >&2 - exit 1 -fi - -export DEBIAN_FRONTEND=noninteractive - -apt-get -qq update || (sleep 15; apt-get -qq update) -apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ - lsb-release - -if [[ "$(lsb_release -cs)" != 'bionic' ]]; then - echo 'This script requires Ubuntu 18.04 (Bionic)' >&2 - exit 2 -fi - -apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ - build-essential \ - ca-certificates \ - default-jdk \ - doxygen \ - file \ - freeglut3-dev \ - git \ - gnupg \ - libglib2.0-dev \ - libgtk-3-dev \ - libjpeg8-dev \ - libpng-dev \ - libxmu-dev \ - pkg-config \ - python3-dev \ - python3-gi \ - python3-numpy \ - python3-scipy \ - wget \ - zlib1g-dev - -wget -qO- https://apt.kitware.com/keys/kitware-archive-latest.asc \ - | gpg --dearmor > /etc/apt/trusted.gpg.d/kitware.gpg - -echo 'deb https://apt.kitware.com/ubuntu/ bionic main' \ - > /etc/apt/sources.list.d/kitware.list - -apt-get -qq update || (sleep 15; apt-get -qq update) -apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ - cmake - -# TODO: Install a compatible version of LCM. diff --git a/scripts/setup/linux/ubuntu/focal/Dockerfile b/scripts/setup/linux/ubuntu/focal/Dockerfile deleted file mode 100644 index d45f57c2..00000000 --- a/scripts/setup/linux/ubuntu/focal/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -# This file is part of libbot2. -# -# libbot2 is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# libbot2 is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with libbot2. If not, see . - -FROM ubuntu:20.04 -COPY ./install_prereqs /tmp/install_prereqs -RUN /tmp/install_prereqs \ - && rm -rf /var/lib/apt/lists/* \ - && rm -f /tmp/install_prereqs diff --git a/scripts/setup/linux/ubuntu/focal/install_prereqs b/scripts/setup/linux/ubuntu/focal/install_prereqs deleted file mode 100755 index 4b8e6f1e..00000000 --- a/scripts/setup/linux/ubuntu/focal/install_prereqs +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/bash - -# This file is part of libbot2. -# -# libbot2 is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# libbot2 is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with libbot2. If not, see . - -set -euo pipefail - -if [[ "${EUID}" -ne 0 ]]; then - echo 'This script must be run as root' >&2 - exit 1 -fi - -export DEBIAN_FRONTEND=noninteractive - -apt-get -qq update || (sleep 15; apt-get -qq update) -apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ - lsb-release - -if [[ "$(lsb_release -cs)" != 'focal' ]]; then - echo 'This script requires Ubuntu 20.04 (Focal)' >&2 - exit 2 -fi - -apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ - build-essential \ - ca-certificates \ - default-jdk \ - doxygen \ - file \ - freeglut3-dev \ - git \ - gnupg \ - libglib2.0-dev \ - libgtk-3-dev \ - libjpeg8-dev \ - libpng-dev \ - libxmu-dev \ - pkg-config \ - python3-dev \ - python3-gi \ - python3-numpy \ - python3-scipy \ - wget \ - zlib1g-dev - -wget -qO- https://apt.kitware.com/keys/kitware-archive-latest.asc \ - | gpg --dearmor > /etc/apt/trusted.gpg.d/kitware.gpg - -echo 'deb https://apt.kitware.com/ubuntu/ focal main' \ - > /etc/apt/sources.list.d/kitware.list - -apt-get -qq update || (sleep 15; apt-get -qq update) -apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ - cmake - -# TODO: Install a compatible version of LCM. diff --git a/scripts/setup/linux/ubuntu/jammy/Dockerfile b/scripts/setup/linux/ubuntu/jammy/Dockerfile deleted file mode 100644 index c291ef7e..00000000 --- a/scripts/setup/linux/ubuntu/jammy/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -# This file is part of libbot2. -# -# libbot2 is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# libbot2 is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with libbot2. If not, see . - -FROM ubuntu:22.04 -COPY ./install_prereqs /tmp/install_prereqs -RUN /tmp/install_prereqs \ - && rm -rf /var/lib/apt/lists/* \ - && rm -f /tmp/install_prereqs diff --git a/scripts/setup/linux/ubuntu/jammy/install_prereqs b/scripts/setup/linux/ubuntu/jammy/install_prereqs deleted file mode 100755 index bfcab386..00000000 --- a/scripts/setup/linux/ubuntu/jammy/install_prereqs +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/bash - -# This file is part of libbot2. -# -# libbot2 is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# libbot2 is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with libbot2. If not, see . - -set -euo pipefail - -if [[ "${EUID}" -ne 0 ]]; then - echo 'This script must be run as root' >&2 - exit 1 -fi - -export DEBIAN_FRONTEND=noninteractive - -apt-get -qq update || (sleep 15; apt-get -qq update) -apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ - lsb-release - -if [[ "$(lsb_release -cs)" != 'jammy' ]]; then - echo 'This script requires Ubuntu 22.04 (Focal)' >&2 - exit 2 -fi - -apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ - build-essential \ - ca-certificates \ - default-jdk \ - doxygen \ - file \ - freeglut3-dev \ - git \ - gnupg \ - libglib2.0-dev \ - libgtk-3-dev \ - libjpeg8-dev \ - libpng-dev \ - libxmu-dev \ - pkg-config \ - python3-dev \ - python3-gi \ - python3-numpy \ - python3-scipy \ - wget \ - zlib1g-dev - -wget -qO- https://apt.kitware.com/keys/kitware-archive-latest.asc \ - | gpg --dearmor > /etc/apt/trusted.gpg.d/kitware.gpg - -echo 'deb https://apt.kitware.com/ubuntu/ jammy main' \ - > /etc/apt/sources.list.d/kitware.list - -apt-get -qq update || (sleep 15; apt-get -qq update) -apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends install \ - cmake - -# TODO: Install a compatible version of LCM. diff --git a/scripts/setup/linux/ubuntu/noble/install_prereqs b/scripts/setup/linux/ubuntu/noble/install_prereqs index 108fae45..abdd2289 100755 --- a/scripts/setup/linux/ubuntu/noble/install_prereqs +++ b/scripts/setup/linux/ubuntu/noble/install_prereqs @@ -45,6 +45,7 @@ apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy --no-install-recommends ins libglut-dev \ libgtk-3-dev \ libjpeg8-dev \ + liblbfgsb0 \ libpng-dev \ libxmu-dev \ pkg-config \