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/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..e46bbdfe 100755 --- a/scripts/package/linux/ubuntu/common/build.sh +++ b/scripts/package/linux/ubuntu/common/build.sh @@ -62,13 +62,48 @@ 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() +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,6 @@ + PyObject *m; + ++ 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 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/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/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/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/focal/install_prereqs b/scripts/setup/linux/ubuntu/noble/install_prereqs similarity index 89% rename from scripts/setup/linux/ubuntu/focal/install_prereqs rename to scripts/setup/linux/ubuntu/noble/install_prereqs index 4b8e6f1e..abdd2289 100755 --- a/scripts/setup/linux/ubuntu/focal/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)" != 'focal' ]]; then - echo 'This script requires Ubuntu 20.04 (Focal)' >&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/ focal 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)