From 3ccabe666883d1f3723d22808a1940816daf9738 Mon Sep 17 00:00:00 2001 From: Aiden McCormack Date: Tue, 22 Apr 2025 11:56:12 -0400 Subject: [PATCH] Create libbot2 packages for Noble --- .github/workflows/ci.yml | 116 ------------------ README.md | 4 +- bot2-core/README.md | 6 +- bot2-core/cmake/bot2-core-config.cmake.in | 6 +- bot2-frames/README.md | 6 +- bot2-frames/cmake/bot2-frames-config.cmake.in | 6 +- .../cmake/modules/3.6/FindPkgConfig.cmake | 6 +- bot2-lcm-utils/README.md | 6 +- .../cmake/bot2-lcm-utils-config.cmake.in | 6 +- bot2-lcmgl/README.md | 6 +- bot2-lcmgl/cmake/bot2-lcmgl-config.cmake.in | 6 +- .../cmake/modules/3.6/FindPkgConfig.cmake | 6 +- bot2-param/README.md | 6 +- bot2-param/cmake/bot2-param-config.cmake.in | 6 +- bot2-procman/README.md | 6 +- .../cmake/bot2-procman-config.cmake.in | 6 +- bot2-vis/README.md | 6 +- bot2-vis/cmake/bot2-vis-config.cmake.in | 6 +- .../cmake/modules/3.6/FindPkgConfig.cmake | 6 +- cmake/cpack.cmake | 2 +- cmake/libbot2-config.cmake.in | 6 +- scripts/package/linux/ubuntu/bionic/package | 45 ------- scripts/package/linux/ubuntu/common/build.sh | 53 +++++++- scripts/package/linux/ubuntu/focal/package | 45 ------- scripts/package/linux/ubuntu/noble/README.md | 20 +++ .../linux/ubuntu/{jammy => noble}/package | 26 ++-- scripts/setup/linux/ubuntu/bionic/Dockerfile | 21 ---- .../setup/linux/ubuntu/focal/install_prereqs | 68 ---------- scripts/setup/linux/ubuntu/jammy/Dockerfile | 20 --- .../setup/linux/ubuntu/jammy/install_prereqs | 68 ---------- .../linux/ubuntu/{focal => noble}/Dockerfile | 2 +- .../ubuntu/{bionic => noble}/install_prereqs | 10 +- 32 files changed, 141 insertions(+), 467 deletions(-) delete mode 100644 .github/workflows/ci.yml delete mode 100755 scripts/package/linux/ubuntu/bionic/package delete mode 100755 scripts/package/linux/ubuntu/focal/package create mode 100644 scripts/package/linux/ubuntu/noble/README.md rename scripts/package/linux/ubuntu/{jammy => noble}/package (59%) delete mode 100644 scripts/setup/linux/ubuntu/bionic/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 rename scripts/setup/linux/ubuntu/{focal => noble}/Dockerfile (97%) rename scripts/setup/linux/ubuntu/{bionic => noble}/install_prereqs (89%) 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 -![CI](https://github.com/RobotLocomotion/libbot2/workflows/CI/badge.svg) - 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* -![CI](https://github.com/RobotLocomotion/libbot2/workflows/CI/badge.svg) - 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* -![CI](https://github.com/RobotLocomotion/libbot2/workflows/CI/badge.svg) - 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.)* -![CI](https://github.com/RobotLocomotion/libbot2/workflows/CI/badge.svg) - ## 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* -![CI](https://github.com/RobotLocomotion/libbot2/workflows/CI/badge.svg) - 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* -![CI](https://github.com/RobotLocomotion/libbot2/workflows/CI/badge.svg) - ## 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* -![CI](https://github.com/RobotLocomotion/libbot2/workflows/CI/badge.svg) - 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* -![CI](https://github.com/RobotLocomotion/libbot2/workflows/CI/badge.svg) - ## 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)