From 98414e7d28672aea7a218c691d34295d8934ae09 Mon Sep 17 00:00:00 2001 From: marco <*~=`'#}+{/-|&$^_@721217.xyz> Date: Wed, 20 Aug 2025 20:40:32 +0200 Subject: [PATCH 1/4] ci: Add openbsd --- .github/workflows/ci.yml | 28 ++++++++++++++++++++++++++++ ci/configs/openbsd.bash | 5 +++++ 2 files changed, 33 insertions(+) create mode 100644 ci/configs/openbsd.bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e751c5f..b4f20b54 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,6 +5,34 @@ on: pull_request: jobs: + build-openbsd: + runs-on: ubuntu-latest + defaults: + run: + shell: openbsd {0} + steps: + - uses: actions/checkout@v4 + + - name: Start OpenBSD VM + uses: vmactions/openbsd-vm@v1 + with: + prepare: | + pkg_add -v cmake ninja git python bash + run: | + git clone --depth=1 https://codeberg.org/OpenBSD/ports.git /usr/ports + sync: 'rsync' + copyback: false + + - name: Install capnproto + run: | + cd /usr/ports/devel/capnproto/ + make install + + - name: Run CI script + run: | + cd ${{ github.workspace }} + CI_CONFIG="ci/configs/openbsd.bash" bash ci/scripts/ci.sh + build: runs-on: ubuntu-latest diff --git a/ci/configs/openbsd.bash b/ci/configs/openbsd.bash new file mode 100644 index 00000000..a404e2bc --- /dev/null +++ b/ci/configs/openbsd.bash @@ -0,0 +1,5 @@ +CI_DESC="CI config for OpenBSD" +CI_DIR=build-openbsd +export CXXFLAGS="-Werror -Wall -Wextra -Wpedantic -Wno-unused-parameter" +CMAKE_ARGS=(-G Ninja) +BUILD_ARGS=(-k 0) From dd40897efe799172c83b86b3543b005df516d9ae Mon Sep 17 00:00:00 2001 From: marco <*~=`'#}+{/-|&$^_@721217.xyz> Date: Thu, 21 Aug 2025 15:42:22 +0200 Subject: [PATCH 2/4] Add missing thread include This is required for OpenBSD. Authored by Ryan in https://github.com/bitcoin/bitcoin/issues/33219#issuecomment-3202305628 --- src/mp/util.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mp/util.cpp b/src/mp/util.cpp index a9485399..da7c3b0b 100644 --- a/src/mp/util.cpp +++ b/src/mp/util.cpp @@ -16,6 +16,7 @@ #include #include #include +#include // NOLINT(misc-include-cleaner) // IWYU pragma: keep #include #include #include From 486a510bbeff76a9cdb3498798217238631bb70e Mon Sep 17 00:00:00 2001 From: marco <*~=`'#}+{/-|&$^_@721217.xyz> Date: Thu, 21 Aug 2025 16:59:59 +0200 Subject: [PATCH 3/4] ci: Remove ancient and problematic -lstdc++fs in mpexample This is no longer needed, according to https://en.cppreference.com/w/cpp/filesystem.html#Notes: > Using this library may require additional compiler/linker options. GNU > implementation prior to 9.1 requires linking with -lstdc++fs and LLVM > implementation prior to LLVM 9.0 requires linking with -lc++fs. Also, it is causing a OpenBSD link error: [54/59] Linking CXX executable example/mpexample FAILED: example/mpexample : && /usr/bin/c++ -Werror -Wall -Wextra -Wpedantic -Wno-unused-parameter -Xlinker --dependency-file=example/CMakeFiles/mpexample.dir/link.d example/CMakeFiles/mpexample.dir/example.cpp.o example/CMakeFiles/mpexample.dir/init.capnp.c++.o example/CMakeFiles/mpexample.dir/init.capnp.proxy-client.c++.o example/CMakeFiles/mpexample.dir/init.capnp.proxy-server.c++.o example/CMakeFiles/mpexample.dir/init.capnp.proxy-types.c++.o example/CMakeFiles/mpexample.dir/calculator.capnp.c++.o example/CMakeFiles/mpexample.dir/calculator.capnp.proxy-client.c++.o example/CMakeFiles/mpexample.dir/calculator.capnp.proxy-server.c++.o example/CMakeFiles/mpexample.dir/calculator.capnp.proxy-types.c++.o example/CMakeFiles/mpexample.dir/printer.capnp.c++.o example/CMakeFiles/mpexample.dir/printer.capnp.proxy-client.c++.o example/CMakeFiles/mpexample.dir/printer.capnp.proxy-server.c++.o example/CMakeFiles/mpexample.dir/printer.capnp.proxy-types.c++.o -o example/mpexample libmultiprocess.a -lstdc++fs /usr/local/lib/libcapnp-rpc.a /usr/local/lib/libcapnp.a /usr/local/lib/libkj-async.a /usr/local/lib/libkj.a -lpthread -Wl,-rpath-link,/usr/X11R6/lib:/usr/local/lib && : ld: error: unable to find library -lstdc++fs c++: error: linker command failed with exit code 1 (use -v to see invocation) --- example/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 0e758d57..7da049c3 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -24,6 +24,5 @@ add_executable(mpexample target_capnp_sources(mpexample ${CMAKE_CURRENT_SOURCE_DIR} init.capnp calculator.capnp printer.capnp) target_include_directories(mpexample PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(mpexample PRIVATE Threads::Threads) -target_link_libraries(mpexample PRIVATE stdc++fs) add_custom_target(mpexamples DEPENDS mpexample mpcalculator mpprinter) From eed42f210d173f0049f238fe4ac13fba935aa917 Mon Sep 17 00:00:00 2001 From: marco <*~=`'#}+{/-|&$^_@721217.xyz> Date: Fri, 22 Aug 2025 08:32:49 +0200 Subject: [PATCH 4/4] ci: Bump all tasks to actions/checkout@v5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also, add name: build • openbsd --- .github/workflows/ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b4f20b54..6e9e5485 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,11 +7,12 @@ on: jobs: build-openbsd: runs-on: ubuntu-latest + name: build • openbsd defaults: run: shell: openbsd {0} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Start OpenBSD VM uses: vmactions/openbsd-vm@v1 @@ -44,7 +45,7 @@ jobs: name: build • ${{ matrix.config }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Nix uses: cachix/install-nix-action@v31 # 2025-05-27, from https://github.com/cachix/install-nix-action/tags