diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index 5b4b9e84..00000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,116 +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 .
-
----
-name: CI
-
-on: # yamllint disable-line rule:truthy
- pull_request:
- types:
- - opened
- - reopened
- - synchronize
-
- push:
- branches:
- - drake
-
- schedule:
- - cron: '0 6 * * *'
-
-jobs:
- ubuntu-1804:
- name: Ubuntu 18.04 Bionic
- runs-on: ubuntu-latest
- container: ubuntu:18.04
- steps:
- - name: Install Git
- run: |
- export DEBIAN_FRONTEND=noninteractive
- apt-get update -qq
- apt-get autoremove -qq
- apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy \
- --no-install-recommends install \
- ca-certificates \
- git
- rm -rf /var/lib/apt/lists/*
- shell: bash
- - name: Checkout
- uses: actions/checkout@v2
- - name: Install prerequisites
- run: |
- ./scripts/setup/linux/ubuntu/bionic/install_prereqs
- rm -rf /var/lib/apt/lists/*
- shell: bash
- - name: Build
- run: |
- ./scripts/package/linux/ubuntu/common/build.sh
- shell: bash
-
- ubuntu-2004:
- name: Ubuntu 20.04 Focal
- runs-on: ubuntu-latest
- container: ubuntu:20.04
- steps:
- - name: Install Git
- run: |
- export DEBIAN_FRONTEND=noninteractive
- apt-get update -qq
- apt-get autoremove -qq
- apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy \
- --no-install-recommends install \
- ca-certificates \
- git
- rm -rf /var/lib/apt/lists/*
- shell: bash
- - name: Checkout
- uses: actions/checkout@v2
- - name: Install prerequisites
- run: |
- ./scripts/setup/linux/ubuntu/focal/install_prereqs
- rm -rf /var/lib/apt/lists/*
- shell: bash
- - name: Build
- run: |
- ./scripts/package/linux/ubuntu/common/build.sh
- shell: bash
-
- ubuntu-2204:
- name: Ubuntu 22.04 Jammy
- runs-on: ubuntu-latest
- container: ubuntu:22.04
- steps:
- - name: Install Git
- run: |
- export DEBIAN_FRONTEND=noninteractive
- apt-get update -qq
- apt-get autoremove -qq
- apt-get -o Acquire::Retries=4 -o Dpkg::Use-Pty=0 -qy \
- --no-install-recommends install \
- ca-certificates \
- git
- rm -rf /var/lib/apt/lists/*
- shell: bash
- - name: Checkout
- uses: actions/checkout@v2
- - name: Install prerequisites
- run: |
- ./scripts/setup/linux/ubuntu/jammy/install_prereqs
- rm -rf /var/lib/apt/lists/*
- shell: bash
- - name: Build
- run: |
- ./scripts/package/linux/ubuntu/common/build.sh
- shell: bash
diff --git a/README.md b/README.md
index 6ac5ff5f..7014363b 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,5 @@
# RobotLocomotion Fork of libbot2
-
-
The libbot2 project provides a set of libraries, tools, and algorithms that are
designed to facilitate robotics research. Among others, these include
convenience functions for maintaining coordinate transformations, tools for
@@ -83,7 +81,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..750c19e7 100644
--- a/bot2-core/README.md
+++ b/bot2-core/README.md
@@ -2,15 +2,13 @@
*C library with some simple but useful routines and a set of core message types*
-
-
bot2-core provides a number of functions and data structures that are useful to
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 +37,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..89e487fc 100644
--- a/bot2-frames/README.md
+++ b/bot2-frames/README.md
@@ -2,8 +2,6 @@
*C library that manages a set of coordinate frames*
-
-
bot2-frames reads the coordinate frame setup information from a parameter file
stored by bot2-param.
@@ -53,7 +51,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 +84,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..5810c1f2 100644
--- a/bot2-lcm-utils/README.md
+++ b/bot2-lcm-utils/README.md
@@ -2,12 +2,10 @@
*LCM utility programs (tunnel LCM over TCP, chop or splice log files, etc.)*
-
-
## 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 +34,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..d8051437 100644
--- a/bot2-lcmgl/README.md
+++ b/bot2-lcmgl/README.md
@@ -2,8 +2,6 @@
*C library and viewer for transmitting and rendering OpenGL commands over LCM*
-
-
bot2-lcmgl contains a set of client libraries in C, Java, and Python for
transmitting OpenGL commands over LCM. It also provides routines for receiving
and rendering these commands in either a standalone application
@@ -16,7 +14,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 +48,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..ed8eb327 100644
--- a/bot2-param/README.md
+++ b/bot2-param/README.md
@@ -2,13 +2,11 @@
*C library that manages parameter files*
-
-
## Required Dependencies
* 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 +33,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..3cd1287e 100644
--- a/bot2-procman/README.md
+++ b/bot2-procman/README.md
@@ -3,8 +3,6 @@
*Process management tools for controlling many processes on one or many
workstations*
-
-
Procman is a tool for managing many processes distributed over one or more
computers. There are two ways to use procman:
@@ -38,7 +36,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 +66,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..98a4725e 100644
--- a/bot2-vis/README.md
+++ b/bot2-vis/README.md
@@ -2,13 +2,11 @@
*C library for visualizing data with OpenGL and GTK*
-
-
## Required Dependencies
* 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 +38,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/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/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@)
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 08b9ad28..d6f77afe 100755
--- a/scripts/package/linux/ubuntu/common/build.sh
+++ b/scripts/package/linux/ubuntu/common/build.sh
@@ -62,13 +62,64 @@ 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}")
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
+
+# Address compatibility issues with Py_TYPE()
+# from upstream 0289aa9efdf043dd69d65b7d01273e8108dd79f7
+cat << 'EOF' > lcm-python.patch
+diff --git a/lcm-python/module.c b/lcm-python/module.c
+index d03e87c..0cac708 100644
+--- a/lcm-python/module.c
++++ b/lcm-python/module.c
+@@ -9,6 +9,11 @@
+ #define Py_TYPE(ob) (((PyObject *) (ob))->ob_type)
+ #endif
+
++// to support python 3.9.0a3 and earlier
++#if PY_VERSION_HEX < 0x030900A4
++#define Py_SET_TYPE(obj, type) ((Py_TYPE(obj) = (type)), (void)0)
++#endif
++
+ extern PyTypeObject pylcmeventlog_type;
+ extern PyTypeObject pylcm_type;
+ extern PyTypeObject pylcm_subscription_type;
+@@ -43,9 +48,9 @@ init_lcm(void)
+ {
+ PyObject *m;
+
+- Py_TYPE(&pylcmeventlog_type) = &PyType_Type;
+- Py_TYPE(&pylcm_type) = &PyType_Type;
+- Py_TYPE(&pylcm_subscription_type) = &PyType_Type;
++ Py_SET_TYPE(&pylcmeventlog_type, &PyType_Type);
++ Py_SET_TYPE(&pylcm_type, &PyType_Type);
++ Py_SET_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
mkdir lcm-build
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/noble/README.md b/scripts/package/linux/ubuntu/noble/README.md
new file mode 100644
index 00000000..79ac5de9
--- /dev/null
+++ b/scripts/package/linux/ubuntu/noble/README.md
@@ -0,0 +1,20 @@
+n.b. for running `//scripts/package/linux/ubuntu/noble/package`:
+
+The `package` script must be run from within the `libbot2` repository, either
+at the root or within a subdirectory. Note that the script will attempt to
+write the packages in the directory where the script was invoked. For the sake
+of simplicity and consistency, it may be beneficial to run the script
+exclusively at the root of the repo.
+
+Regardless of where the script is run, in order for the write to succeed, the
+dispatching directory needs to have global write permissions enabled. If the
+script is run from `//libbot2/foo/`, then the following must be run as a
+prerequisite to the `package` script:
+
+ ```
+ $ sudo chmod a+w
+ $ source ~/.bashrc
+ ```
+
+(Note that if you use a different shell or configuration file, you will have to
+change the path provided for the second command.)
diff --git a/scripts/package/linux/ubuntu/jammy/package b/scripts/package/linux/ubuntu/noble/package
similarity index 59%
rename from scripts/package/linux/ubuntu/jammy/package
rename to scripts/package/linux/ubuntu/noble/package
index 42e2e761..0cef8520 100755
--- a/scripts/package/linux/ubuntu/jammy/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/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/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/focal/Dockerfile b/scripts/setup/linux/ubuntu/noble/Dockerfile
similarity index 97%
rename from scripts/setup/linux/ubuntu/focal/Dockerfile
rename to scripts/setup/linux/ubuntu/noble/Dockerfile
index d45f57c2..e39aeb04 100644
--- a/scripts/setup/linux/ubuntu/focal/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:20.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/bionic/install_prereqs b/scripts/setup/linux/ubuntu/noble/install_prereqs
similarity index 89%
rename from scripts/setup/linux/ubuntu/bionic/install_prereqs
rename to scripts/setup/linux/ubuntu/noble/install_prereqs
index 96be2a82..abdd2289 100755
--- a/scripts/setup/linux/ubuntu/bionic/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)" != 'bionic' ]]; then
- echo 'This script requires Ubuntu 18.04 (Bionic)' >&2
+if [[ "$(lsb_release -cs)" != 'noble' ]]; then
+ echo 'This script requires Ubuntu 24.04 (Noble)' >&2
exit 2
fi
@@ -39,12 +39,13 @@ 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 \
+ liblbfgsb0 \
libpng-dev \
libxmu-dev \
pkg-config \
@@ -52,13 +53,14 @@ 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
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' \
+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)