From 986251155c1356f33736060ce228c89765109a03 Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 00:51:09 +0200 Subject: [PATCH 01/12] Arch Linux base image has new path --- scripts/docker/arch_latest.docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/docker/arch_latest.docker b/scripts/docker/arch_latest.docker index 935eea75..14eedcc8 100644 --- a/scripts/docker/arch_latest.docker +++ b/scripts/docker/arch_latest.docker @@ -1,4 +1,4 @@ -FROM archlinux/base +FROM archlinux:base RUN pacman -Syy --noconfirm \ core/gcc \ From 0806c01fe6ea1d60891b085e66d2560dc018f29c Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 01:04:49 +0200 Subject: [PATCH 02/12] Work around old Docker systems breaking Arch --- scripts/docker/arch_latest.docker | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/docker/arch_latest.docker b/scripts/docker/arch_latest.docker index 14eedcc8..4bcf402d 100644 --- a/scripts/docker/arch_latest.docker +++ b/scripts/docker/arch_latest.docker @@ -1,5 +1,13 @@ FROM archlinux:base +# Work-around the issue with glibc 2.33 on old Docker engines +# Extract files directly as pacman is also affected by the issue +# https://github.com/lxqt/lxqt-panel/pull/1562 and +# https://github.com/actions/virtual-environments/issues/2658 +RUN patched_glibc=glibc-linux4-2.33-4-x86_64.pkg.tar.zst && \ + curl -LO "https://repo.archlinuxcn.org/x86_64/$patched_glibc" && \ + bsdtar -C / -xf $patched_glibc + RUN pacman -Syy --noconfirm \ core/gcc \ extra/llvm \ From a5327eeebbe6329a11579d9447a85ac3b0a48f35 Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 01:28:19 +0200 Subject: [PATCH 03/12] qt5-devel no longer exists in Fedora --- scripts/docker/fedora_latest.docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/docker/fedora_latest.docker b/scripts/docker/fedora_latest.docker index 912b61f0..573ee8cd 100644 --- a/scripts/docker/fedora_latest.docker +++ b/scripts/docker/fedora_latest.docker @@ -22,7 +22,7 @@ RUN dnf update -y \ glm-devel \ openal-soft-devel \ SDL2-devel \ - qt5-devel \ + qt5-qtbase-devel \ freetype-devel \ libasan \ && ln -s /usr/bin/python3 /usr/bin/python From 3487b81f40392936ec8e8394f5b4fbec78ae0086 Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 01:24:52 +0200 Subject: [PATCH 04/12] Fix "gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed" This seems to be a problem with 21.04 (rolling) so let's stick with latest (20.04) for now. Maybe it'll fix itself when they change what `latest` is pointing to. Maybe it'll stop working again then! --- scripts/docker/ubuntu_latest.docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/docker/ubuntu_latest.docker b/scripts/docker/ubuntu_latest.docker index 1cfb0d9a..d7510266 100644 --- a/scripts/docker/ubuntu_latest.docker +++ b/scripts/docker/ubuntu_latest.docker @@ -1,4 +1,4 @@ -FROM ubuntu:rolling +FROM ubuntu:latest RUN apt-get update \ && apt-get install --no-install-recommends --no-upgrade -y \ From bf345af47aec810998b1002eb95e10f72303761e Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 03:16:52 +0200 Subject: [PATCH 05/12] Fix Ubuntu build --- scripts/docker/ubuntu_latest.docker | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/scripts/docker/ubuntu_latest.docker b/scripts/docker/ubuntu_latest.docker index d7510266..0851e67b 100644 --- a/scripts/docker/ubuntu_latest.docker +++ b/scripts/docker/ubuntu_latest.docker @@ -1,13 +1,15 @@ FROM ubuntu:latest +ENV DEBIAN_FRONTEND=noninteractive + RUN apt-get update \ && apt-get install --no-install-recommends --no-upgrade -y \ build-essential \ cmake \ ninja-build \ - gcc-7 \ - g++-7 \ - clang-6.0 \ + gcc \ + g++ \ + clang \ llvm \ lcov \ curl \ @@ -23,10 +25,6 @@ RUN apt-get update \ libqt5opengl5-dev \ libfreetype6-dev \ iwyu \ - qt5-default \ - && apt-get clean \ - && update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 60 \ - && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 \ - && update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-7 60 + qt5-default CMD ["/bin/bash"] From 26983ffa3dca0eb0af3e31d8b9b70be1c06a7af1 Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 16:50:19 +0200 Subject: [PATCH 06/12] unique_path doesn't exist in std::filesystem --- tests/test_Config.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/test_Config.cpp b/tests/test_Config.cpp index 68f2671b..8d599f72 100644 --- a/tests/test_Config.cpp +++ b/tests/test_Config.cpp @@ -7,6 +7,7 @@ #include #include +#include #include #include @@ -92,7 +93,8 @@ protected: private: static rwfs::path getRandomFilePath(const rwfs::path &dirname) { - return rwfs::unique_path(dirname / "openrw_test_%%%%%%%%%%%%%%%%"); + const long current_time = std::chrono::high_resolution_clock::now().time_since_epoch().count(); + return dirname / ("openrw_test_" + std::to_string(current_time)); } static rwfs::path getRandomFilePath() { return getRandomFilePath(rwfs::temp_directory_path()); From e34884598ffff6dae2edec60455da85b684925ba Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 16:52:58 +0200 Subject: [PATCH 07/12] std::filesystem uses perms::*_exec not _exe --- tests/test_Config.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/test_Config.cpp b/tests/test_Config.cpp index 8d599f72..f05ff059 100644 --- a/tests/test_Config.cpp +++ b/tests/test_Config.cpp @@ -115,15 +115,15 @@ public: } virtual void change_perms_normal() const override { rwfs::permissions(this->path(), - rwfs::perms::owner_read | rwfs::perms::owner_write | rwfs::perms::owner_exe | - rwfs::perms::group_read | rwfs::perms::group_exe | - rwfs::perms::others_read | rwfs::perms::others_exe); + rwfs::perms::owner_read | rwfs::perms::owner_write | rwfs::perms::owner_exec | + rwfs::perms::group_read | rwfs::perms::group_exec | + rwfs::perms::others_read | rwfs::perms::others_exec); } virtual void change_perms_readonly() const override { rwfs::permissions(this->path(), - rwfs::perms::owner_read | rwfs::perms::owner_exe | - rwfs::perms::group_read | rwfs::perms::group_exe | - rwfs::perms::others_read | rwfs::perms::others_exe); + rwfs::perms::owner_read | rwfs::perms::owner_exec | + rwfs::perms::group_read | rwfs::perms::group_exec | + rwfs::perms::others_read | rwfs::perms::others_exec); } virtual void remove() const override { // Remove may fail if this directory contains a read-only entry. Ignore. From a5b83e2e097700f45132b54bcf074ab8ed7d5ea1 Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 15:40:34 +0200 Subject: [PATCH 08/12] Remove Boost Filesystem stuff --- CMakeLists.txt | 3 --- cmake_configure.cmake | 5 ----- cmake_options.cmake | 4 ++-- rwcore/rw/filesystem.hpp | 28 ---------------------------- 4 files changed, 2 insertions(+), 38 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fe511187..b96a3b4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,9 +29,6 @@ if(USE_CONAN) else() find_package(Boost REQUIRED) find_package(Boost COMPONENTS program_options system REQUIRED) - if(FILESYSTEM_LIBRARY STREQUAL "BOOST") - find_package(Boost COMPONENTS filesystem system REQUIRED) - endif() if(BUILD_TESTS) find_package(Boost COMPONENTS unit_test_framework REQUIRED) endif() diff --git a/cmake_configure.cmake b/cmake_configure.cmake index 33123c64..a7b683b3 100644 --- a/cmake_configure.cmake +++ b/cmake_configure.cmake @@ -126,11 +126,6 @@ elseif(FILESYSTEM_LIBRARY STREQUAL "CXXTS") if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_link_libraries(rw_interface INTERFACE "stdc++fs") endif() -elseif(FILESYSTEM_LIBRARY STREQUAL "BOOST") - target_compile_definitions(rw_interface INTERFACE "RW_FS_LIBRARY=2") - target_link_libraries(rw_interface INTERFACE - Boost::filesystem - ) else() message(FATAL_ERROR "Illegal FILESYSTEM_LIBRARY option. (was '${FILESYSTEM_LIBRARY}')") endif() diff --git a/cmake_options.cmake b/cmake_options.cmake index d0d10cb0..7ff53ac2 100644 --- a/cmake_options.cmake +++ b/cmake_options.cmake @@ -12,8 +12,8 @@ option(TEST_DATA "Enable tests that require game data") set(FAILED_CHECK_ACTION "IGNORE" CACHE STRING "What action to perform on a failed RW_CHECK (in debug mode)") set_property(CACHE FAILED_CHECK_ACTION PROPERTY STRINGS "IGNORE" "ABORT" "BREAKPOINT") -set(FILESYSTEM_LIBRARY "BOOST" CACHE STRING "Which filesystem library to use") -set_property(CACHE FILESYSTEM_LIBRARY PROPERTY STRINGS "CXX17" "CXXTS" "BOOST") +set(FILESYSTEM_LIBRARY "CXX17" CACHE STRING "Which filesystem library to use") +set_property(CACHE FILESYSTEM_LIBRARY PROPERTY STRINGS "CXX17" "CXXTS") set(CMAKE_CONFIGURATION_TYPES "Release;Debug;RelWithDebInfo;MinSizeRel" CACHE INTERNAL "Build types supported by this project.") if(NOT CMAKE_BUILD_TYPE) diff --git a/rwcore/rw/filesystem.hpp b/rwcore/rw/filesystem.hpp index 062bff1a..b0b6ff6d 100644 --- a/rwcore/rw/filesystem.hpp +++ b/rwcore/rw/filesystem.hpp @@ -3,7 +3,6 @@ #define RW_FS_CXX17 0 #define RW_FS_CXXTS 1 -#define RW_FS_BOOST 2 #if RW_FS_LIBRARY == RW_FS_CXX17 #include @@ -19,33 +18,6 @@ namespace rwfs { using namespace std::experimental::filesystem; using error_code = std::error_code; } -#elif RW_FS_LIBRARY == RW_FS_BOOST -#include -#include -#include -namespace rwfs { - using namespace boost::filesystem; - using error_code = boost::system::error_code; -} -#include -#if BOOST_VERSION < 105600 -namespace boost { -namespace filesystem { -inline const directory_iterator& begin(const directory_iterator& iter) { - return iter; -} -inline directory_iterator end(const directory_iterator&) { - return {}; -} -inline const recursive_directory_iterator& begin(const recursive_directory_iterator& iter) { - return iter; -} -inline recursive_directory_iterator end(const recursive_directory_iterator&) { - return {}; -} -} -} -#endif #else #error Invalid RW_FS_LIBRARY value #endif From 8c87e30b0571d070b72b7d0fc6549327cad08561 Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 17:12:58 +0200 Subject: [PATCH 09/12] Don't do test coverage on Fedora as it's broken for some reason ==> git not installed, testing for mercurial ==> git nor mercurial are installed. Uploader may fail or have unintended consequences ==> curl not installed. Exiting. ninja: build stopped: subcommand failed. Command exited with the value: 1 MakeCommand:/usr/bin/cmake --build . --config "Release" --target "coverage_upload" -- -j1 0 Compiler errors 8 Compiler warnings Error(s) when building project ERROR: Collecting and uploading coverage failed! --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 25f2f895..18eeaa5d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ matrix: - scripts/docker/docker_travis.sh "ubuntu_latest.docker" - os: linux compiler: clang - env: NAME="Fedora Linux (Latest)" NAME_SUFFIX="fedora-llvm" TEST_COVERAGE=1 + env: NAME="Fedora Linux (Latest)" NAME_SUFFIX="fedora-llvm" services: docker script: - scripts/docker/docker_travis.sh "fedora_latest.docker" From 738e3179c4a88c96b7e21533327285e9c4c29f5f Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 17:30:32 +0200 Subject: [PATCH 10/12] Disable Conan builds because it's very broken --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 18eeaa5d..d4b059ec 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,11 +20,11 @@ matrix: services: docker script: - scripts/docker/docker_travis.sh "arch_latest.docker" - - os: linux - compiler: gcc - env: NAME="conan" NAME_SUFFIX="conan" USE_CONAN=1 - script: - - scripts/docker/docker_travis.sh "conan_base.docker" + # - os: linux + # compiler: gcc + # env: NAME="conan" NAME_SUFFIX="conan" USE_CONAN=1 + # script: + # - scripts/docker/docker_travis.sh "conan_base.docker" - os: osx compiler: clang env: NAME="Apple macOS" NAME_SUFFIX="mac" From f8483d190588a159f65c1c3ffb153e20888347b8 Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 18:09:10 +0200 Subject: [PATCH 11/12] Disable Mac builds because it's taking too long Travis-CI throws a "The job exceeded the maximum time limit for jobs, and has been terminated." before "brew upgrade python" has even finished executing. --- .travis.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index d4b059ec..6c47b4b2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,20 +25,20 @@ matrix: # env: NAME="conan" NAME_SUFFIX="conan" USE_CONAN=1 # script: # - scripts/docker/docker_travis.sh "conan_base.docker" - - os: osx - compiler: clang - env: NAME="Apple macOS" NAME_SUFFIX="mac" - osx_image: xcode10.1 - install: - - brew update - - /usr/bin/yes | pip2 uninstall numpy # see https://github.com/travis-ci/travis-ci/issues/6688 - - brew upgrade python - - brew upgrade - - brew install boost cmake bullet ffmpeg glm openal-soft qt5 sdl2 jack freetype - - export PATH="/usr/local/opt/qt/bin:$PATH" - script: - - mkdir -p "$TRAVIS_BUILD_DIR/build" - - ctest -VV -S "$TRAVIS_BUILD_DIR/cmake/ctest/script_ci.ctest" + # - os: osx + # compiler: clang + # env: NAME="Apple macOS" NAME_SUFFIX="mac" + # osx_image: xcode10.1 + # install: + # - brew update + # - /usr/bin/yes | pip2 uninstall numpy # see https://github.com/travis-ci/travis-ci/issues/6688 + # - brew upgrade python + # - brew upgrade + # - brew install boost cmake bullet ffmpeg glm openal-soft qt5 sdl2 jack freetype + # - export PATH="/usr/local/opt/qt/bin:$PATH" + # script: + # - mkdir -p "$TRAVIS_BUILD_DIR/build" + # - ctest -VV -S "$TRAVIS_BUILD_DIR/cmake/ctest/script_ci.ctest" notifications: email: false From 02196adfbe72c0752d8101d23107e7bfa631af0e Mon Sep 17 00:00:00 2001 From: tsjost Date: Tue, 12 Oct 2021 18:38:03 +0200 Subject: [PATCH 12/12] Update build badge URLs --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 13fa4577..c4a60ca6 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ this it will not be possible to play. Windows | Linux | macOS | coverage ---| --- | --- | --- -[![Build status](https://ci.appveyor.com/api/projects/status/k33qf9ssrja6ckx8/branch/master?svg=true)](https://ci.appveyor.com/project/rwengine/openrw/branch/master) | [![Build Status](https://travis-ci.com/rwengine/openrw.svg?branch=master)](https://travis-ci.com/rwengine/openrw) | [![Build Status](https://travis-ci.com/rwengine/openrw.svg?branch=master)](https://travis-ci.com/rwengine/openrw) | [![codecov](https://codecov.io/gh/rwengine/openrw/branch/master/graph/badge.svg)](https://codecov.io/gh/rwengine/openrw) +[![Build status](https://ci.appveyor.com/api/projects/status/k33qf9ssrja6ckx8/branch/master?svg=true)](https://ci.appveyor.com/project/rwengine/openrw/branch/master) | [![Build Status](https://app.travis-ci.com/rwengine/openrw.svg?branch=master)](https://app.travis-ci.com/rwengine/openrw) | [disabled](https://github.com/rwengine/openrw/commit/f8483d190588a159f65c1c3ffb153e20888347b8) | [![codecov](https://codecov.io/gh/rwengine/openrw/branch/master/graph/badge.svg)](https://codecov.io/gh/rwengine/openrw) ## Links