From 2bbac4956b2b9da61a81f76433f3266ceee34b79 Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Wed, 12 Oct 2022 11:32:53 -0700 Subject: [PATCH 01/12] Add GCC 10 to CI --- .github/workflows/main.yaml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 0ce6cef9..3939bf44 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -31,13 +31,12 @@ jobs: macos_cc: gcc-9 apt_package: g++-9 homebrew_package: gcc@9 -# TODO gcc 10 doesn't work, potentially because cmake doesn't know yet that the STL now depends on pthread. See https://github.com/pothosware/SoapySDRPlay3/issues/5 -# - cxx: g++-10 -# cc: gcc-10 -# macos_cxx: g++-10 -# macos_cc: gcc-10 -# apt_package: g++-10 -# homebrew_package: gcc@10 + - cxx: g++-10 + cc: gcc-10 + macos_cxx: g++-10 + macos_cc: gcc-10 + apt_package: g++-10 + homebrew_package: gcc@10 - cxx: clang++-7 cc: clang-7 macos_cxx: /usr/local/opt/llvm@7/bin/clang++ @@ -82,6 +81,9 @@ jobs: # Apple CI machines cannot install LLVM 7 via homebrew anymore - os: macos-10.15 compiler: {cxx: clang++-7, cc: clang-7, macos_cxx: /usr/local/opt/llvm@7/bin/clang++, macos_cc: /usr/local/opt/llvm@7/bin/clang, apt_package: clang-7, homebrew_package: llvm@7} + # GCC 10 on Ubuntu 18.04 doesn't seem to work, potentially because cmake doesn't know yet that the STL now depends on pthread. See https://github.com/pothosware/SoapySDRPlay3/issues/5 + - os: ubuntu-18.04 + compiler: {cxx: g++-10, cc: gcc-10, macos_cxx: g++-10, macos_cc: gcc-10, apt_package: g++-10, homebrew_package: gcc@10} include: - name: Local dependencies os: ubuntu-18.04 From 9845175dca8f76d68a1af0044aa91bfc3b502d18 Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Sat, 15 Oct 2022 15:05:32 -0700 Subject: [PATCH 02/12] On some systems, when mounting a test file system, the OS asks for /.Trash and /.Trash-1000 and will unmount if the file system returns an error. So let's tell the operating system that those don't exist instead --- test/fspp/testutils/FuseTest.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/fspp/testutils/FuseTest.cpp b/test/fspp/testutils/FuseTest.cpp index ba44a1e0..fa45ba8f 100644 --- a/test/fspp/testutils/FuseTest.cpp +++ b/test/fspp/testutils/FuseTest.cpp @@ -54,6 +54,8 @@ FuseTest::FuseTest(): fsimpl(make_shared()), _context(boost::non })); ReturnIsDirOnLstat("/"); + ReturnDoesntExistOnLstat("/.Trash"); + ReturnDoesntExistOnLstat("/.Trash-1000"); } unique_ref FuseTest::TestFS(const std::vector& fuseOptions) { From 7c7e7883672bda08ed06042f9b432984c3561bc8 Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Sun, 26 Feb 2023 11:35:35 -0800 Subject: [PATCH 03/12] Fix conan version to 1.x because 2.0 doesn't work for us yet --- .github/workflows/main.yaml | 4 ++-- README.md | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 3939bf44..d7e89614 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -256,7 +256,7 @@ jobs: if [[ "${{matrix.os}}" == "ubuntu-18.04" ]]; then python3 -m pip install setuptools fi - python3 -m pip install conan + python3 -m pip install conan==1.59 - name: Save pip cache # note: this access key has write access to the cache. This can't run on PRs. if: ${{github.event_name == 'push' }} @@ -461,7 +461,7 @@ jobs: shell: bash run: | # Using "python3 -m pip" instead of "pip3" to make sure we get the same pip that we queried the cache dir for the Github Cache action - python3 -m pip install conan + python3 -m pip install conan==1.59 - name: Save pip cache # note: this access key has write access to the cache. This can't run on PRs. if: ${{github.event_name == 'push' }} diff --git a/README.md b/README.md index 111e34f0..c0a3d3c9 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ Requirements - GCC version >= 7 or Clang >= 7 - CMake version >= 3.10 - pkg-config (on Unix) - - Conan package manager + - Conan package manager (version 1.x) - libcurl4 (including development headers) - SSL development libraries (including development headers, e.g. libssl-dev) - libFUSE version >= 2.8.6 (including development headers), on Mac OS X instead install macFUSE from https://osxfuse.github.io/ @@ -96,15 +96,15 @@ You can use the following commands to install these requirements # Ubuntu $ sudo apt install git g++ cmake make pkg-config libcurl4-openssl-dev libssl-dev libfuse-dev python python3-pip - $ sudo pip3 install conan + $ sudo pip3 install conan==1.59 # Fedora $ sudo dnf install git gcc-c++ cmake make pkgconf libcurl-devel openssl-devel fuse-devel python python3-pip - $ sudo pip3 install conan + $ sudo pip3 install conan==1.59 # Macintosh $ brew install cmake pkg-config openssl libomp macfuse - $ sudo pip3 install conan + $ sudo pip3 install conan==1.59 Build & Install --------------- From 3f249ff1cd80e6620da1e59b15478bebf7e7b971 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 24 Feb 2023 11:01:19 -0800 Subject: [PATCH 04/12] Include stdexcept when using logic_error Signed-off-by: Adam Williamson --- src/cpp-utils/thread/LeftRight.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cpp-utils/thread/LeftRight.h b/src/cpp-utils/thread/LeftRight.h index 65ddba75..7b10458a 100644 --- a/src/cpp-utils/thread/LeftRight.h +++ b/src/cpp-utils/thread/LeftRight.h @@ -4,6 +4,7 @@ #include #include #include +#include namespace cpputils { From 6198908e861c9617773fc0c6fbf5d3f08c210dc7 Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Sun, 26 Feb 2023 13:56:29 -0800 Subject: [PATCH 05/12] Mention https://github.com/cryfs/cryfs/pull/448 fix in changelog --- ChangeLog.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ChangeLog.txt b/ChangeLog.txt index 46564c3f..09b51850 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,7 @@ +Version 0.11.4 (unreleased) +--------------- +* Fixed build issue on Fedora (see https://github.com/cryfs/cryfs/pull/448 ) + Version 0.11.3 --------------- * Fixed build issue on systems with libfmt 9.0 (see https://github.com/cryfs/cryfs/issues/432 ) From 699a3c020ca0db610aea5f694095114f1b6b6b53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Me=C3=9Fmer?= Date: Sat, 17 Jun 2023 23:34:31 -0700 Subject: [PATCH 06/12] Update ChangeLog.txt --- ChangeLog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 09b51850..65e0e55b 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,6 +1,6 @@ Version 0.11.4 (unreleased) --------------- -* Fixed build issue on Fedora (see https://github.com/cryfs/cryfs/pull/448 ) +* Fixed build issue with GCC 13 (see https://github.com/cryfs/cryfs/pull/448 ) Version 0.11.3 --------------- From 3930a86a74c00bca8bfcc77a4fc5cb566dc9f56d Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Mon, 19 Jun 2023 09:14:32 -0700 Subject: [PATCH 07/12] Fix CI - Remove ubuntu 18.04 from CI because GitHub deprecated it - Replace macos-10 with macos-11, macos-12 and macos-13 - Add ubuntu 22.04 to CI - Fix Clang 11 build --- .../workflows/actions/setup_linux/action.yaml | 20 +++-- .../workflows/actions/setup_macos/action.yaml | 2 +- .github/workflows/main.yaml | 84 +++++++++++++------ 3 files changed, 74 insertions(+), 32 deletions(-) diff --git a/.github/workflows/actions/setup_linux/action.yaml b/.github/workflows/actions/setup_linux/action.yaml index 4f3afac7..6773c5ce 100644 --- a/.github/workflows/actions/setup_linux/action.yaml +++ b/.github/workflows/actions/setup_linux/action.yaml @@ -14,21 +14,29 @@ runs: shell: bash run: | echo 'Acquire::Retries "20";' | sudo tee -a /etc/apt/apt.conf.d/80-retries - if [[ "${{inputs.os}}" == "ubuntu-18.04" ]]; then - echo Adding apt repositories for newer clang versions on Ubuntu 18.04 + if [[ "${{inputs.os}}" == "ubuntu-22.04" ]]; then + echo Adding apt repositories for newer clang versions on Ubuntu 22.04 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - sudo touch /etc/apt/sources.list.d/clang.list sudo chmod o+w /etc/apt/sources.list.d/clang.list - echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main" >> /etc/apt/sources.list.d/clang.list - echo "deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main" >> /etc/apt/sources.list.d/clang.list + echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy main" >> /etc/apt/sources.list.d/clang.list + echo "deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy main" >> /etc/apt/sources.list.d/clang.list + echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main" >> /etc/apt/sources.list.d/clang.list + echo "deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main" >> /etc/apt/sources.list.d/clang.list + echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" >> /etc/apt/sources.list.d/clang.list + echo "deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" >> /etc/apt/sources.list.d/clang.list sudo chmod o-w /etc/apt/sources.list.d/clang.list elif [[ "${{inputs.os}}" == "ubuntu-20.04" ]]; then echo Adding apt repositories for newer clang versions on Ubuntu 20.04 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - sudo touch /etc/apt/sources.list.d/clang.list sudo chmod o+w /etc/apt/sources.list.d/clang.list - echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main" >> /etc/apt/sources.list.d/clang.list - echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main" >> /etc/apt/sources.list.d/clang.list + echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main" >> /etc/apt/sources.list.d/clang.list + echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal main" >> /etc/apt/sources.list.d/clang.list + echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main" >> /etc/apt/sources.list.d/clang.list + echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main" >> /etc/apt/sources.list.d/clang.list + echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-16 main" >> /etc/apt/sources.list.d/clang.list + echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-16 main" >> /etc/apt/sources.list.d/clang.list sudo chmod o-w /etc/apt/sources.list.d/clang.list fi sudo apt-get update diff --git a/.github/workflows/actions/setup_macos/action.yaml b/.github/workflows/actions/setup_macos/action.yaml index 8dcf64bc..6ac9803f 100644 --- a/.github/workflows/actions/setup_macos/action.yaml +++ b/.github/workflows/actions/setup_macos/action.yaml @@ -10,4 +10,4 @@ runs: - name: Install macOS dependencies shell: bash run: | - brew install ninja macfuse libomp ccache md5sha1sum ${{inputs.extra_homebrew_packages}} + brew install ninja macfuse libomp ccache md5sha1sum pkg-config ${{inputs.extra_homebrew_packages}} diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index d7e89614..8a4807bb 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -9,9 +9,11 @@ jobs: matrix: name: [""] os: - - macos-10.15 - - ubuntu-18.04 + - macos-11 + - macos-12 + - macos-13 - ubuntu-20.04 + - ubuntu-22.04 compiler: - cxx: g++-7 cc: gcc-7 @@ -60,7 +62,7 @@ jobs: cc: clang-11 macos_cxx: /usr/local/opt/llvm@11/bin/clang++ macos_cc: /usr/local/opt/llvm@11/bin/clang - apt_package: clang-11 + apt_package: clang-11 libomp5-11 libomp-11-dev homebrew_package: llvm@11 # Apple Clang # - cxx: clang++ @@ -78,19 +80,51 @@ jobs: run_tests: [true] run_clang_tidy: [false] exclude: - # Apple CI machines cannot install LLVM 7 via homebrew anymore - - os: macos-10.15 + # MacOS CI doesn't have Clang 7, 8, 9 or GCC 7, 8 anymore + - os: macos-11 compiler: {cxx: clang++-7, cc: clang-7, macos_cxx: /usr/local/opt/llvm@7/bin/clang++, macos_cc: /usr/local/opt/llvm@7/bin/clang, apt_package: clang-7, homebrew_package: llvm@7} - # GCC 10 on Ubuntu 18.04 doesn't seem to work, potentially because cmake doesn't know yet that the STL now depends on pthread. See https://github.com/pothosware/SoapySDRPlay3/issues/5 - - os: ubuntu-18.04 - compiler: {cxx: g++-10, cc: gcc-10, macos_cxx: g++-10, macos_cc: gcc-10, apt_package: g++-10, homebrew_package: gcc@10} + - os: macos-11 + compiler: {cxx: clang++-8, cc: clang-8, macos_cxx: /usr/local/opt/llvm@8/bin/clang++, macos_cc: /usr/local/opt/llvm@8/bin/clang, apt_package: clang-8, homebrew_package: llvm@8} + - os: macos-11 + compiler: {cxx: clang++-9, cc: clang-9, macos_cxx: /usr/local/opt/llvm@9/bin/clang++, macos_cc: /usr/local/opt/llvm@9/bin/clang, apt_package: clang-9, homebrew_package: llvm@9} + - os: macos-11 + compiler: {cxx: g++-7, cc: gcc-7, macos_cxx: g++-7, macos_cc: gcc-7, homebrew_package: gcc@7, apt_package: g++-7} + - os: macos-11 + compiler: {cxx: g++-8, cc: gcc-8, macos_cxx: g++-8, macos_cc: gcc-8, homebrew_package: gcc@8, apt_package: g++-8} + - os: macos-12 + compiler: {cxx: clang++-7, cc: clang-7, macos_cxx: /usr/local/opt/llvm@7/bin/clang++, macos_cc: /usr/local/opt/llvm@7/bin/clang, apt_package: clang-7, homebrew_package: llvm@7} + - os: macos-12 + compiler: {cxx: clang++-8, cc: clang-8, macos_cxx: /usr/local/opt/llvm@8/bin/clang++, macos_cc: /usr/local/opt/llvm@8/bin/clang, apt_package: clang-8, homebrew_package: llvm@8} + - os: macos-12 + compiler: {cxx: clang++-9, cc: clang-9, macos_cxx: /usr/local/opt/llvm@9/bin/clang++, macos_cc: /usr/local/opt/llvm@9/bin/clang, apt_package: clang-9, homebrew_package: llvm@9} + - os: macos-12 + compiler: {cxx: g++-7, cc: gcc-7, macos_cxx: g++-7, macos_cc: gcc-7, homebrew_package: gcc@7, apt_package: g++-7} + - os: macos-12 + compiler: {cxx: g++-8, cc: gcc-8, macos_cxx: g++-8, macos_cc: gcc-8, homebrew_package: gcc@8, apt_package: g++-8} + - os: macos-12 + compiler: {cxx: g++-9, cc: gcc-9, macos_cxx: g++-9, macos_cc: gcc-9, homebrew_package: gcc@9, apt_package: g++-9} + - os: macos-13 + compiler: {cxx: clang++-7, cc: clang-7, macos_cxx: /usr/local/opt/llvm@7/bin/clang++, macos_cc: /usr/local/opt/llvm@7/bin/clang, apt_package: clang-7, homebrew_package: llvm@7} + # Ubuntu 22.04 doesn't have gcc 7, 8 or clang 7, 8, 9, 10 anymore + - os: ubuntu-22.04 + compiler: {cxx: g++-7, cc: gcc-7, macos_cxx: g++-7, macos_cc: gcc-7, homebrew_package: gcc@7, apt_package: g++-7} + - os: ubuntu-22.04 + compiler: {cxx: g++-8, cc: gcc-8, macos_cxx: g++-8, macos_cc: gcc-8, homebrew_package: gcc@8, apt_package: g++-8} + - os: ubuntu-22.04 + compiler: {cxx: clang++-7, cc: clang-7, macos_cxx: /usr/local/opt/llvm@7/bin/clang++, macos_cc: /usr/local/opt/llvm@7/bin/clang, apt_package: clang-7, homebrew_package: llvm@7} + - os: ubuntu-22.04 + compiler: {cxx: clang++-8, cc: clang-8, macos_cxx: /usr/local/opt/llvm@8/bin/clang++, macos_cc: /usr/local/opt/llvm@8/bin/clang, apt_package: clang-8, homebrew_package: llvm@8} + - os: ubuntu-22.04 + compiler: {cxx: clang++-9, cc: clang-9, macos_cxx: /usr/local/opt/llvm@9/bin/clang++, macos_cc: /usr/local/opt/llvm@9/bin/clang, apt_package: clang-9, homebrew_package: llvm@9} + - os: ubuntu-22.04 + compiler: {cxx: clang++-10, cc: clang-10, macos_cxx: /usr/local/opt/llvm@10/bin/clang++, macos_cc: /usr/local/opt/llvm@10/bin/clang, apt_package: clang-10, homebrew_package: llvm@10} include: - name: Local dependencies - os: ubuntu-18.04 + os: ubuntu-22.04 compiler: cxx: clang++-11 cc: clang-11 - apt_package: clang-11 + apt_package: clang-11 libomp5-11 libomp-11-dev build_type: RelWithDebInfo extra_cmake_flags: -DDEPENDENCY_CONFIG=../cmake-utils/DependenciesFromLocalSystem.cmake extra_cxxflags: "" @@ -99,11 +133,11 @@ jobs: run_build: true run_tests: true - name: Local dependencies - os: ubuntu-20.04 + os: ubuntu-22.04 compiler: cxx: clang++-11 cc: clang-11 - apt_package: clang-11 + apt_package: clang-11 libomp5-11 libomp-11-dev build_type: RelWithDebInfo extra_cmake_flags: -DDEPENDENCY_CONFIG=../cmake-utils/DependenciesFromLocalSystem.cmake extra_cxxflags: "" @@ -112,7 +146,7 @@ jobs: run_build: true run_tests: true - name: Werror gcc - os: ubuntu-20.04 + os: ubuntu-22.04 compiler: cxx: g++-9 cc: gcc-9 @@ -124,11 +158,11 @@ jobs: run_build: true run_tests: false - name: Werror clang - os: ubuntu-20.04 + os: ubuntu-22.04 compiler: cxx: clang++-11 cc: clang-11 - apt_package: clang++-11 + apt_package: clang-11 libomp5-11 libomp-11-dev build_type: RelWithDebInfo extra_cmake_flags: -DUSE_WERROR=on extra_cxxflags: "" @@ -136,11 +170,11 @@ jobs: run_build: true run_tests: false - name: No compatibility - os: ubuntu-20.04 + os: ubuntu-22.04 compiler: cxx: clang++-11 cc: clang-11 - apt_package: clang++-11 + apt_package: clang-11 libomp5-11 libomp-11-dev build_type: RelWithDebInfo extra_cmake_flags: "" extra_cxxflags: "-DCRYFS_NO_COMPATIBILITY" @@ -149,11 +183,12 @@ jobs: run_build: true run_tests: true - name: ASAN + # TODO Update to ubuntu-22.04 os: ubuntu-20.04 compiler: cxx: clang++-11 cc: clang-11 - apt_package: clang++-11 + apt_package: clang-11 libomp5-11 libomp-11-dev build_type: Debug # OpenMP crashes under asan. Disable OpenMP. # TODO is it enough to replace this with omp_num_threads: 1 ? @@ -164,11 +199,12 @@ jobs: run_build: true run_tests: true - name: UBSAN + # TODO Update to ubuntu-22.04 os: ubuntu-20.04 compiler: cxx: clang++-11 cc: clang-11 - apt_package: clang++-11 + apt_package: clang-11 libomp5-11 libomp-11-dev build_type: Debug # OpenMP crashes under ubsan. Disable OpenMP. # TODO is it enough to replace this with omp_num_threads: 1 ? @@ -179,11 +215,12 @@ jobs: run_build: true run_tests: true - name: TSAN + # TODO Update to ubuntu-22.04 os: ubuntu-20.04 compiler: cxx: clang++-11 cc: clang-11 - apt_package: clang++-11 + apt_package: clang-11 libomp5-11 libomp-11-dev build_type: Debug extra_cmake_flags: "" extra_cxxflags: "-O2 -fsanitize=thread -fno-omit-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-common" @@ -193,11 +230,11 @@ jobs: gtest_args: "--gtest_filter=-LoggingTest.LoggingAlsoWorksAfterFork:AssertTest_*:BacktraceTest.*:SubprocessTest.*:SignalCatcherTest.*_thenDies:SignalHandlerTest.*_thenDies:SignalHandlerTest.givenMultipleSigIntHandlers_whenRaising_thenCatchesCorrectSignal:CliTest_Setup.*:CliTest_IntegrityCheck.*:*/CliTest_WrongEnvironment.*:CliTest_Unmount.*:CliTest.WorksWithCommasInBasedir" extra_env_vars_for_test: OMP_NUM_THREADS=1 - name: clang-tidy - os: ubuntu-20.04 + os: ubuntu-22.04 compiler: cxx: clang++-11 cc: clang-11 - apt_package: clang++-11 clang-tidy-11 + apt_package: clang-11 clang-tidy-11 libomp5-11 libomp-11-dev build_type: RelWithDebInfo extra_cmake_flags: "" extra_cxxflags: "" @@ -253,9 +290,6 @@ jobs: shell: bash run: | # Using "python3 -m pip" instead of "pip3" to make sure we get the same pip that we queried the cache dir for the Github Cache action - if [[ "${{matrix.os}}" == "ubuntu-18.04" ]]; then - python3 -m pip install setuptools - fi python3 -m pip install conan==1.59 - name: Save pip cache # note: this access key has write access to the cache. This can't run on PRs. From 8eb7e85cadd2241af25c3d3f909345cc45745bed Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Tue, 20 Jun 2023 08:02:47 -0700 Subject: [PATCH 08/12] Add GCC 11, 12, 13 to CI --- .github/workflows/main.yaml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 8a4807bb..8464e380 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -39,6 +39,24 @@ jobs: macos_cc: gcc-10 apt_package: g++-10 homebrew_package: gcc@10 + - cxx: g++-11 + cc: gcc-11 + macos_cxx: g++-11 + macos_cc: gcc-11 + apt_package: g++-11 + homebrew_package: gcc@11 + - cxx: g++-12 + cc: gcc-12 + macos_cxx: g++-12 + macos_cc: gcc-12 + apt_package: g++-12 + homebrew_package: gcc@12 + - cxx: g++-13 + cc: gcc-13 + macos_cxx: g++-13 + macos_cc: gcc-13 + apt_package: g++-13 + homebrew_package: gcc@13 - cxx: clang++-7 cc: clang-7 macos_cxx: /usr/local/opt/llvm@7/bin/clang++ @@ -105,6 +123,11 @@ jobs: compiler: {cxx: g++-9, cc: gcc-9, macos_cxx: g++-9, macos_cc: gcc-9, homebrew_package: gcc@9, apt_package: g++-9} - os: macos-13 compiler: {cxx: clang++-7, cc: clang-7, macos_cxx: /usr/local/opt/llvm@7/bin/clang++, macos_cc: /usr/local/opt/llvm@7/bin/clang, apt_package: clang-7, homebrew_package: llvm@7} + # Ubuntu 20.04 doesn't have GCC 12, 13 yet + - os: ubuntu-20.04 + compiler: {cxx: g++-12, cc: gcc-12, macos_cxx: g++-12, macos_cc: gcc-12, homebrew_package: gcc@12, apt_package: g++-12} + - os: ubuntu-20.04 + compiler: {cxx: g++-13, cc: gcc-13, macos_cxx: g++-13, macos_cc: gcc-13, homebrew_package: gcc@13, apt_package: g++-13} # Ubuntu 22.04 doesn't have gcc 7, 8 or clang 7, 8, 9, 10 anymore - os: ubuntu-22.04 compiler: {cxx: g++-7, cc: gcc-7, macos_cxx: g++-7, macos_cc: gcc-7, homebrew_package: gcc@7, apt_package: g++-7} From 2338bb24f8c0d3ea257178c5b068b6e88bf00f12 Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Wed, 21 Jun 2023 20:33:00 -0700 Subject: [PATCH 09/12] Add Clang 10 to 15 to CI --- .../workflows/actions/setup_linux/action.yaml | 4 ++ .github/workflows/main.yaml | 39 ++++++++++++++++++- test/cpp-utils/assert/backtrace_test.cpp | 5 +++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/.github/workflows/actions/setup_linux/action.yaml b/.github/workflows/actions/setup_linux/action.yaml index 6773c5ce..bfb1a795 100644 --- a/.github/workflows/actions/setup_linux/action.yaml +++ b/.github/workflows/actions/setup_linux/action.yaml @@ -33,6 +33,10 @@ runs: sudo chmod o+w /etc/apt/sources.list.d/clang.list echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main" >> /etc/apt/sources.list.d/clang.list echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal main" >> /etc/apt/sources.list.d/clang.list + echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main" >> /etc/apt/sources.list.d/clang.list + echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main" >> /etc/apt/sources.list.d/clang.list + echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main" >> /etc/apt/sources.list.d/clang.list + echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main" >> /etc/apt/sources.list.d/clang.list echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main" >> /etc/apt/sources.list.d/clang.list echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main" >> /etc/apt/sources.list.d/clang.list echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-16 main" >> /etc/apt/sources.list.d/clang.list diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 8464e380..5e2f756d 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -75,13 +75,42 @@ jobs: macos_cc: /usr/local/opt/llvm@9/bin/clang apt_package: clang-9 homebrew_package: llvm@9 - # TODO Clang-10 on linux? macos homebrew doesn't seem to have it + - cxx: clang++-10 + cc: clang-10 + macos_cxx: /usr/local/opt/llvm@10/bin/clang++ + macos_cc: /usr/local/opt/llvm@10/bin/clang + apt_package: clang-10 + homebrew_package: llvm@10 - cxx: clang++-11 cc: clang-11 macos_cxx: /usr/local/opt/llvm@11/bin/clang++ macos_cc: /usr/local/opt/llvm@11/bin/clang apt_package: clang-11 libomp5-11 libomp-11-dev homebrew_package: llvm@11 + - cxx: clang++-12 + cc: clang-12 + macos_cxx: /usr/local/opt/llvm@12/bin/clang++ + macos_cc: /usr/local/opt/llvm@12/bin/clang + apt_package: clang-12 libomp5-12 libomp-12-dev + homebrew_package: llvm@12 + - cxx: clang++-13 + cc: clang-13 + macos_cxx: /usr/local/opt/llvm@13/bin/clang++ + macos_cc: /usr/local/opt/llvm@13/bin/clang + apt_package: clang-13 libomp5-13 libomp-13-dev + homebrew_package: llvm@13 + - cxx: clang++-14 + cc: clang-14 + macos_cxx: /usr/local/opt/llvm@14/bin/clang++ + macos_cc: /usr/local/opt/llvm@14/bin/clang + apt_package: clang-14 libomp5-14 libomp-14-dev + homebrew_package: llvm@14 + - cxx: clang++-15 + cc: clang-15 + macos_cxx: /usr/local/opt/llvm@15/bin/clang++ + macos_cc: /usr/local/opt/llvm@15/bin/clang + apt_package: clang-15 libomp5-15 libomp-15-dev + homebrew_package: llvm@15 # Apple Clang # - cxx: clang++ # cc: clang @@ -98,13 +127,15 @@ jobs: run_tests: [true] run_clang_tidy: [false] exclude: - # MacOS CI doesn't have Clang 7, 8, 9 or GCC 7, 8 anymore + # MacOS CI doesn't have Clang 7, 8, 9, 10 or GCC 7, 8 anymore - os: macos-11 compiler: {cxx: clang++-7, cc: clang-7, macos_cxx: /usr/local/opt/llvm@7/bin/clang++, macos_cc: /usr/local/opt/llvm@7/bin/clang, apt_package: clang-7, homebrew_package: llvm@7} - os: macos-11 compiler: {cxx: clang++-8, cc: clang-8, macos_cxx: /usr/local/opt/llvm@8/bin/clang++, macos_cc: /usr/local/opt/llvm@8/bin/clang, apt_package: clang-8, homebrew_package: llvm@8} - os: macos-11 compiler: {cxx: clang++-9, cc: clang-9, macos_cxx: /usr/local/opt/llvm@9/bin/clang++, macos_cc: /usr/local/opt/llvm@9/bin/clang, apt_package: clang-9, homebrew_package: llvm@9} + - os: macos-11 + compiler: {cxx: clang++-10, cc: clang-10, macos_cxx: /usr/local/opt/llvm@10/bin/clang++, macos_cc: /usr/local/opt/llvm@10/bin/clang, apt_package: clang-10, homebrew_package: llvm@10} - os: macos-11 compiler: {cxx: g++-7, cc: gcc-7, macos_cxx: g++-7, macos_cc: gcc-7, homebrew_package: gcc@7, apt_package: g++-7} - os: macos-11 @@ -121,8 +152,12 @@ jobs: compiler: {cxx: g++-8, cc: gcc-8, macos_cxx: g++-8, macos_cc: gcc-8, homebrew_package: gcc@8, apt_package: g++-8} - os: macos-12 compiler: {cxx: g++-9, cc: gcc-9, macos_cxx: g++-9, macos_cc: gcc-9, homebrew_package: gcc@9, apt_package: g++-9} + - os: macos-12 + compiler: {cxx: clang++-10, cc: clang-10, macos_cxx: /usr/local/opt/llvm@10/bin/clang++, macos_cc: /usr/local/opt/llvm@10/bin/clang, apt_package: clang-10, homebrew_package: llvm@10} - os: macos-13 compiler: {cxx: clang++-7, cc: clang-7, macos_cxx: /usr/local/opt/llvm@7/bin/clang++, macos_cc: /usr/local/opt/llvm@7/bin/clang, apt_package: clang-7, homebrew_package: llvm@7} + - os: macos-13 + compiler: {cxx: clang++-10, cc: clang-10, macos_cxx: /usr/local/opt/llvm@10/bin/clang++, macos_cc: /usr/local/opt/llvm@10/bin/clang, apt_package: clang-10, homebrew_package: llvm@10} # Ubuntu 20.04 doesn't have GCC 12, 13 yet - os: ubuntu-20.04 compiler: {cxx: g++-12, cc: gcc-12, macos_cxx: g++-12, macos_cc: gcc-12, homebrew_package: gcc@12, apt_package: g++-12} diff --git a/test/cpp-utils/assert/backtrace_test.cpp b/test/cpp-utils/assert/backtrace_test.cpp index 7b0ab9d3..2b385bb6 100644 --- a/test/cpp-utils/assert/backtrace_test.cpp +++ b/test/cpp-utils/assert/backtrace_test.cpp @@ -39,10 +39,12 @@ TEST(BacktraceTest, ContainsTopLevelLine) namespace { +#if !(defined(__clang__) && defined(NDEBUG)) std::string call_process_exiting_with_nullptr_violation() { return call_process_exiting_with("nullptr"); } +#endif std::string call_process_exiting_with_exception(const std::string &message) { return call_process_exiting_with("exception", message); @@ -109,6 +111,8 @@ TEST(BacktraceTest, ContainsBacktrace) #endif } +#if !(defined(__clang__) && defined(NDEBUG)) +// TODO Can we also make this work on clang in Release mode? TEST(BacktraceTest, ShowBacktraceOnNullptrAccess) { auto output = call_process_exiting_with_nullptr_violation(); @@ -118,6 +122,7 @@ TEST(BacktraceTest, ShowBacktraceOnNullptrAccess) EXPECT_THAT(output, HasSubstr("cpputils::backtrace")); #endif } +#endif TEST(BacktraceTest, ShowBacktraceOnSigSegv) { From 245b84526e0ec78bfb0d37557db7da9207cb73c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Me=C3=9Fmer?= Date: Sun, 9 Jul 2023 11:55:26 -0700 Subject: [PATCH 10/12] Disable broken CI job --- .github/workflows/main.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 5e2f756d..2f4369a8 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -176,6 +176,10 @@ jobs: compiler: {cxx: clang++-9, cc: clang-9, macos_cxx: /usr/local/opt/llvm@9/bin/clang++, macos_cc: /usr/local/opt/llvm@9/bin/clang, apt_package: clang-9, homebrew_package: llvm@9} - os: ubuntu-22.04 compiler: {cxx: clang++-10, cc: clang-10, macos_cxx: /usr/local/opt/llvm@10/bin/clang++, macos_cc: /usr/local/opt/llvm@10/bin/clang, apt_package: clang-10, homebrew_package: llvm@10} + # Clang 11 on Ubuntu seems to have a bug that fails CI + - os: ubuntu-22.04 + compiler: {cxx: clang++-11, cc: clang-11, macos_cxx: /usr/local/opt/llvm@11/bin/clang++, macos_cc: /usr/local/opt/llvm@11/bin/clang, apt_package: "clang-11 libomp5-11 libomp-11-dev", homebrew_package: llvm@11} + build_type: Debug include: - name: Local dependencies os: ubuntu-22.04 From 804509aff99acffc012a067006cd6d4ef4c4e23c Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Thu, 13 Jul 2023 19:29:54 -0700 Subject: [PATCH 11/12] Fixed build issue with Python 3.12 --- ChangeLog.txt | 1 + src/gitversion/versioneer.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 65e0e55b..0f1ff74e 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,6 +1,7 @@ Version 0.11.4 (unreleased) --------------- * Fixed build issue with GCC 13 (see https://github.com/cryfs/cryfs/pull/448 ) +* Fixed build issue with Python 3.12 (see https://github.com/cryfs/cryfs/issues/459 ) Version 0.11.3 --------------- diff --git a/src/gitversion/versioneer.py b/src/gitversion/versioneer.py index 4b4a71d4..1c59b1d6 100644 --- a/src/gitversion/versioneer.py +++ b/src/gitversion/versioneer.py @@ -406,9 +406,9 @@ def get_config_from_root(root): # configparser.NoOptionError (if it lacks "VCS="). See the docstring at # the top of versioneer.py for instructions on writing your setup.cfg . setup_cfg = os.path.join(root, "setup.cfg") - parser = configparser.SafeConfigParser() + parser = configparser.ConfigParser() with open(setup_cfg, "r") as f: - parser.readfp(f) + parser.read_file(f) VCS = parser.get("versioneer", "VCS") # mandatory def get(parser, name): From 2c86a6ed376244cb2e3e1fe7e174554b813fcec1 Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Wed, 19 Jul 2023 22:26:32 -0700 Subject: [PATCH 12/12] Mark 0.11.4 as released --- ChangeLog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 0f1ff74e..d2ff7e0d 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,4 +1,4 @@ -Version 0.11.4 (unreleased) +Version 0.11.4 --------------- * Fixed build issue with GCC 13 (see https://github.com/cryfs/cryfs/pull/448 ) * Fixed build issue with Python 3.12 (see https://github.com/cryfs/cryfs/issues/459 )