diff --git a/dev-libs/boost/boost1.87-1.87.0.recipe b/dev-libs/boost/boost1.87-1.87.0.recipe new file mode 100644 index 000000000..7c7eb2b9f --- /dev/null +++ b/dev-libs/boost/boost1.87-1.87.0.recipe @@ -0,0 +1,259 @@ +SUMMARY="A set of libraries for the C++ programming language" +DESCRIPTION="Boost is a set of libraries for the C++ programming language \ +that provide support for tasks and structures such as linear algebra, \ +pseudorandom number generation, multithreading, image processing, regular \ +expressions, and unit testing. It contains over eighty individual libraries." +HOMEPAGE="https://www.boost.org/" +SOURCE_URI="https://archives.boost.io/release/1.87.0/source/boost_${portVersion//./_}.tar.bz2" +CHECKSUM_SHA256="af57be25cb4c4f4b413ed692fe378affb4352ea50fbe294a11ef548f4d527d89" +REVISION="1" +LICENSE="Boost v1.0" +COPYRIGHT="1993-2002 Christopher Seiwald and Perforce Software, Inc. + 1998-2018 Beman Dawes + 2001 David Turner + 2001-2004 David Abrahams + 2002-2019 Rene Rivera + 2003-2015 Vladimir Prus" +SOURCE_DIR="boost_${portVersion//./_}" +PATCHES="boost1.87-$portVersion.patchset" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +libVersion="$portVersion compat >= 1.87.0" + +PROVIDES=" + boost1.87$secondaryArchSuffix = $portVersion + lib:libboost_atomic$secondaryArchSuffix = $libVersion + lib:libboost_charconv$secondaryArchSuffix = $libVersion + lib:libboost_chrono$secondaryArchSuffix = $libVersion + lib:libboost_container$secondaryArchSuffix = $libVersion + lib:libboost_context$secondaryArchSuffix = $libVersion + lib:libboost_contract$secondaryArchSuffix = $libVersion + lib:libboost_coroutine$secondaryArchSuffix = $libVersion + lib:libboost_date_time$secondaryArchSuffix = $libVersion + lib:libboost_fiber$secondaryArchSuffix = $libVersion + lib:libboost_filesystem$secondaryArchSuffix = $libVersion + lib:libboost_graph$secondaryArchSuffix = $libVersion + lib:libboost_iostreams$secondaryArchSuffix = $libVersion + lib:libboost_json$secondaryArchSuffix = $libVersion + lib:libboost_locale$secondaryArchSuffix = $libVersion + lib:libboost_log_setup$secondaryArchSuffix = $libVersion + lib:libboost_log$secondaryArchSuffix = $libVersion + lib:libboost_math_c99$secondaryArchSuffix = $libVersion + lib:libboost_math_c99f$secondaryArchSuffix = $libVersion + lib:libboost_math_tr1$secondaryArchSuffix = $libVersion + lib:libboost_math_tr1f$secondaryArchSuffix = $libVersion + lib:libboost_nowide$secondaryArchSuffix = $libVersion + lib:libboost_prg_exec_monitor$secondaryArchSuffix = $libVersion + lib:libboost_process$secondaryArchSuffix = $libVersion + lib:libboost_program_options$secondaryArchSuffix = $libVersion + lib:libboost_random$secondaryArchSuffix = $libVersion + lib:libboost_regex$secondaryArchSuffix = $libVersion + lib:libboost_serialization$secondaryArchSuffix = $libVersion + lib:libboost_stacktrace_basic$secondaryArchSuffix = $libVersion + lib:libboost_stacktrace_from_exception$secondaryArchSuffix = $libVersion + lib:libboost_stacktrace_noop$secondaryArchSuffix = $libVersion + lib:libboost_system$secondaryArchSuffix = $libVersion + lib:libboost_thread$secondaryArchSuffix = $libVersion + lib:libboost_timer$secondaryArchSuffix = $libVersion + lib:libboost_type_erasure$secondaryArchSuffix = $libVersion + lib:libboost_unit_test_framework$secondaryArchSuffix = $libVersion + lib:libboost_url$secondaryArchSuffix = $libVersion + lib:libboost_wave$secondaryArchSuffix = $libVersion + lib:libboost_wserialization$secondaryArchSuffix = $libVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libicudata$secondaryArchSuffix + lib:libicui18n$secondaryArchSuffix + lib:libicuuc$secondaryArchSuffix + lib:liblzma$secondaryArchSuffix + lib:libquadmath$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libzstd$secondaryArchSuffix + " + +# List of devel entries matching an actual library (for use in prepareInstalledDevelLibs) +# Boost also provides header-only libraries (because templates) +devel_libs=" + devel:libboost_atomic$secondaryArchSuffix = $libVersion + devel:libboost_charconv$secondaryArchSuffix = $libVersion + devel:libboost_chrono$secondaryArchSuffix = $libVersion + devel:libboost_container$secondaryArchSuffix = $libVersion + devel:libboost_context$secondaryArchSuffix = $libVersion + devel:libboost_contract$secondaryArchSuffix = $libVersion + devel:libboost_coroutine$secondaryArchSuffix = $libVersion + devel:libboost_date_time$secondaryArchSuffix = $libVersion + devel:libboost_exception$secondaryArchSuffix = $libVersion + devel:libboost_fiber$secondaryArchSuffix = $libVersion + devel:libboost_filesystem$secondaryArchSuffix = $libVersion + devel:libboost_graph$secondaryArchSuffix = $libVersion + devel:libboost_iostreams$secondaryArchSuffix = $libVersion + devel:libboost_json$secondaryArchSuffix = $libVersion + devel:libboost_locale$secondaryArchSuffix = $libVersion + devel:libboost_log_setup$secondaryArchSuffix = $libVersion + devel:libboost_log$secondaryArchSuffix = $libVersion + devel:libboost_nowide$secondaryArchSuffix = $libVersion + devel:libboost_prg_exec_monitor$secondaryArchSuffix = $libVersion + devel:libboost_process$secondaryArchSuffix = $libVersion + devel:libboost_program_options$secondaryArchSuffix = $libVersion + devel:libboost_random$secondaryArchSuffix = $libVersion + devel:libboost_regex$secondaryArchSuffix = $libVersion + devel:libboost_serialization$secondaryArchSuffix = $libVersion + devel:libboost_stacktrace_basic$secondaryArchSuffix = $libVersion + devel:libboost_stacktrace_from_exception$secondaryArchSuffix = $libVersion + devel:libboost_stacktrace_noop$secondaryArchSuffix = $libVersion + devel:libboost_system$secondaryArchSuffix = $libVersion + devel:libboost_test_exec_monitor$secondaryArchSuffix = $libVersion + devel:libboost_thread$secondaryArchSuffix = $libVersion + devel:libboost_timer$secondaryArchSuffix = $libVersion + devel:libboost_type_erasure$secondaryArchSuffix = $libVersion + devel:libboost_unit_test_framework$secondaryArchSuffix = $libVersion + devel:libboost_url$secondaryArchSuffix = $libVersion + devel:libboost_wave$secondaryArchSuffix = $libVersion + devel:libboost_wserialization$secondaryArchSuffix = $libVersion + " + +PROVIDES_devel=" + boost1.87${secondaryArchSuffix}_devel = $portVersion + $devel_libs + devel:libboost_config$secondaryArchSuffix = $libVersion + " +REQUIRES_devel=" + boost1.87$secondaryArchSuffix == $portVersion base + " +CONFLICTS_devel=" + boost169${secondaryArchSuffix}_devel + boost170${secondaryArchSuffix}_devel + boost1.83${secondaryArchSuffix}_devel + boost1.85${secondaryArchSuffix}_devel + " + +PROVIDES_docs=" + boost1.87${secondaryArchSuffix}_docs + " +REQUIRES_docs=" + boost1.87${secondaryArchSuffix}_devel == $portVersion base + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libbz2$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libicudata$secondaryArchSuffix >= 74 + devel:libicui18n$secondaryArchSuffix >= 74 + devel:libicuuc$secondaryArchSuffix >= 74 + devel:liblzma$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libzstd$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:addr2line$secondaryArchSuffix + cmd:find + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:sed + cmd:which + " + +defineDebugInfoPackage boost1.87$secondaryArchSuffix \ + "$libDir"/libboost_atomic.so.$portVersion \ + "$libDir"/libboost_charconv.so.$portVersion \ + "$libDir"/libboost_chrono.so.$portVersion \ + "$libDir"/libboost_container.so.$portVersion \ + "$libDir"/libboost_context.so.$portVersion \ + "$libDir"/libboost_contract.so.$portVersion \ + "$libDir"/libboost_coroutine.so.$portVersion \ + "$libDir"/libboost_date_time.so.$portVersion \ + "$libDir"/libboost_fiber.so.$portVersion \ + "$libDir"/libboost_filesystem.so.$portVersion \ + "$libDir"/libboost_graph.so.$portVersion \ + "$libDir"/libboost_iostreams.so.$portVersion \ + "$libDir"/libboost_json.so.$portVersion \ + "$libDir"/libboost_locale.so.$portVersion \ + "$libDir"/libboost_log_setup.so.$portVersion \ + "$libDir"/libboost_log.so.$portVersion \ + "$libDir"/libboost_nowide.so.$portVersion \ + "$libDir"/libboost_prg_exec_monitor.so.$portVersion \ + "$libDir"/libboost_process.so.$portVersion \ + "$libDir"/libboost_program_options.so.$portVersion \ + "$libDir"/libboost_random.so.$portVersion \ + "$libDir"/libboost_regex.so.$portVersion \ + "$libDir"/libboost_serialization.so.$portVersion \ + "$libDir"/libboost_stacktrace_basic.so.$portVersion \ + "$libDir"/libboost_stacktrace_from_exception.so.$portVersion \ + "$libDir"/libboost_stacktrace_noop.so.$portVersion \ + "$libDir"/libboost_system.so.$portVersion \ + "$libDir"/libboost_thread.so.$portVersion \ + "$libDir"/libboost_timer.so.$portVersion \ + "$libDir"/libboost_type_erasure.so.$portVersion \ + "$libDir"/libboost_unit_test_framework.so.$portVersion \ + "$libDir"/libboost_url.so.$portVersion \ + "$libDir"/libboost_wave.so.$portVersion \ + "$libDir"/libboost_wserialization.so.$portVersion + +BUILD() +{ + ./bootstrap.sh \ + --with-icu \ + --prefix=$prefix \ + --exec-prefix=$binDir \ + --libdir=$libDir \ + --includedir=$includeDir +} + + +INSTALL() +{ + ./b2 -q $jobArgs \ + --without-graph_parallel \ + --without-mpi \ + --without-python \ + --enable-parallel-mark \ + --enable-threads=posix \ + --enable-thread-local-alloc \ + toolset=gcc \ + pch=off \ + inlining=on \ + threading=multi \ + variant=release \ + link=shared \ + runtime-link=shared \ + install + + # cleanup boost_predef/tools/check ? + rm -rf $prefix/share + + # install documentation + mkdir -p $developDocDir + cp -r doc/html/* $developDocDir + + prepareInstalledDevelLibs `echo "$devel_libs" | sed -n \ + -e "s/devel:\(.*\)$secondaryArchSuffix =.*/\1/p"` + + # Correct boost cmake static files + # https://github.com/boostorg/boost_install/issues/49 + for i in $(find $libDir/cmake -name "libboost_*-variant-static.cmake"); do + echo "Replacing LIBDIR in $i"; + sed -i "s%\${_BOOST_LIBDIR}%$prefix/$relativeDevelopLibDir%g" $i; + done; + + packageEntries docs \ + $developDocDir + + packageEntries devel \ + $developDir \ + $libDir/cmake +} + +# From Gentoo: the tests will never fail because these are not intended as sanity +# tests at all. +# Nuked the tests after 26200 targets were done (and still wasn't finished) +TEST() +{ + cd status + ../b2 $jobArgs +} diff --git a/dev-libs/boost/patches/boost1.87-1.87.0.patchset b/dev-libs/boost/patches/boost1.87-1.87.0.patchset new file mode 100644 index 000000000..0597dfc96 --- /dev/null +++ b/dev-libs/boost/patches/boost1.87-1.87.0.patchset @@ -0,0 +1,348 @@ +From 9f2764d65f59ea45b16063fbf5b4fa54a25b3a52 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 6 Aug 2016 22:27:19 +0200 +Subject: Import changes from 1.55.0: buildtools + + +diff --git a/tools/build/src/engine/jam.h b/tools/build/src/engine/jam.h +index c69895a..569c2ec 100644 +--- a/tools/build/src/engine/jam.h ++++ b/tools/build/src/engine/jam.h +@@ -163,6 +163,11 @@ + #define OS_BEOS + #define NO_VFORK + #endif ++#ifdef __HAIKU__ ++ #define unix ++ #define OSMINOR "OS=HAIKU" ++ #define OS_HAIKU ++#endif + #ifdef __bsdi__ + #define OSMINOR "OS=BSDI" + #define OS_BSDI +-- +2.48.1 + + +From fe2d5718516c5a8ce9527a721abf2a822abae5e8 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 6 Aug 2016 22:27:41 +0200 +Subject: Import changes from 1.55.0: sourcecode + + +diff --git a/boost/thread/detail/platform.hpp b/boost/thread/detail/platform.hpp +index 172a601..c706e40 100644 +--- a/boost/thread/detail/platform.hpp ++++ b/boost/thread/detail/platform.hpp +@@ -34,7 +34,7 @@ + #if ! defined BOOST_THREAD_WIN32 + # define BOOST_THREAD_WIN32 + #endif +-#elif defined(__BEOS__) ++#elif defined(__BEOS__) || defined(__HAIKU__) + # define BOOST_THREAD_BEOS + #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) + # define BOOST_THREAD_MACOS +-- +2.48.1 + + +From c110eab8249f634df665615c1ebc109c47c69b92 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sat, 14 Oct 2017 11:47:09 +0200 +Subject: Haiku needs bsd and _BSD_SOURCE. + + +diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh +index 29d08fc..e960e2f 100755 +--- a/tools/build/src/engine/build.sh ++++ b/tools/build/src/engine/build.sh +@@ -327,6 +327,22 @@ case "${B2_TOOLSET}" in + CXX_VERSION_OPT=${CXX_VERSION_OPT:---version} + B2_CXXFLAGS_RELEASE="-O2 -s" + B2_CXXFLAGS_DEBUG="-O0 -g" ++ ++ CXX=${CXX:=g++} ++ # Check whether it's MinGW GCC, which has Windows headers and none of POSIX ones. ++ machine=$(${CXX} -dumpmachine 2>/dev/null) ++ if [ $? -ne 0 ]; then ++ echo "B2_TOOLSET is gcc, but the 'gcc' command cannot be executed." ++ echo "Make sure 'gcc' is in PATH, or use a different toolset." ++ exit 1 ++ fi ++ case $machine in ++ *haiku*) ++ B2_CXX="${CXX} -x c++ -std=c++17" ++ B2_CXXFLAGS_RELEASE="-O2 -s -D_DEFAULT_SOURCE -lbsd" ++ B2_CXXFLAGS_DEBUG="-O0 -g" ++ ;; ++ esac + ;; + + intel-*) +-- +2.48.1 + + +From eaf01de5bb7ab6ae938c1b63c8c83034f85cba35 Mon Sep 17 00:00:00 2001 +From: Begasus +Date: Fri, 25 Aug 2023 10:15:17 +0200 +Subject: Add auto_index binary to tools + + +diff --git a/tools/Jamfile.v2 b/tools/Jamfile.v2 +index e1391c7..a580eb1 100644 +--- a/tools/Jamfile.v2 ++++ b/tools/Jamfile.v2 +@@ -18,6 +18,7 @@ project + ; + + TOOLS = ++ auto_index/build//auto_index + bcp//bcp + inspect/build//inspect + quickbook//quickbook +-- +2.48.1 + + +From 294287604595f5a97d18b302169f671bb797e909 Mon Sep 17 00:00:00 2001 +From: Begasus +Date: Sun, 27 Aug 2023 19:13:24 +0200 +Subject: Fix missing functions to build libboost_locale + + +diff --git a/boost/config/platform/haiku.hpp b/boost/config/platform/haiku.hpp +index 04244c5..e22ac4f 100644 +--- a/boost/config/platform/haiku.hpp ++++ b/boost/config/platform/haiku.hpp +@@ -16,11 +16,6 @@ + # define BOOST_HAS_THREADS + #endif + +-#define BOOST_NO_CXX11_HDR_TYPE_TRAITS +-#define BOOST_NO_CXX11_ATOMIC_SMART_PTR +-#define BOOST_NO_CXX11_STATIC_ASSERT +-#define BOOST_NO_CXX11_VARIADIC_MACROS +- + // + // thread API's not auto detected: + // +-- +2.48.1 + + +From 51eede661efbeb88ba384041296783b4f7575008 Mon Sep 17 00:00:00 2001 +From: Begasus +Date: Mon, 28 Aug 2023 18:08:06 +0200 +Subject: Fix building the tests + + +diff --git a/libs/predef/test/build.jam b/libs/predef/test/build.jam +index d67d932..6406018 100644 +--- a/libs/predef/test/build.jam ++++ b/libs/predef/test/build.jam +@@ -12,7 +12,7 @@ project + : requirements + # Add explicit dependency since we don't have header scanner for + # .m and .mm files. +- ../include/boost/predef.h ++ $(BOOST_ROOT)/boost/predef.h + ; + + using testing ; +-- +2.48.1 + + +From b63a5c349253064f244b9d96e1e996a4f45f5cb6 Mon Sep 17 00:00:00 2001 +From: PulkoMandy +Date: Fri, 13 Jan 2023 21:26:43 +0100 +Subject: Haiku currently doesn't have cfsetspeed + + +diff --git a/boost/asio/impl/serial_port_base.ipp b/boost/asio/impl/serial_port_base.ipp +index 3fa96fd..76924d4 100644 +--- a/boost/asio/impl/serial_port_base.ipp ++++ b/boost/asio/impl/serial_port_base.ipp +@@ -114,7 +114,8 @@ BOOST_ASIO_SYNC_OP_VOID serial_port_base::baud_rate::store( + ec = boost::asio::error::invalid_argument; + BOOST_ASIO_SYNC_OP_VOID_RETURN(ec); + } +-# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) ++# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) && !defined(__HAIKU__) ++// TODO re-enable this for Haiku once cfsetspeed is implemented (#18220) + ::cfsetspeed(&storage, baud); + # else + ::cfsetispeed(&storage, baud); +-- +2.48.1 + + +From fe146eccae4c8b1754aa9f66ed3a4b625d9c48f3 Mon Sep 17 00:00:00 2001 +From: Schrijvers Luc +Date: Sat, 6 Jul 2024 17:27:48 +0200 +Subject: build fix for sourcetrail + + +diff --git a/boost/process/v1/detail/posix/is_running.hpp b/boost/process/v1/detail/posix/is_running.hpp +index 133ad9c..89e1f30 100644 +--- a/boost/process/v1/detail/posix/is_running.hpp ++++ b/boost/process/v1/detail/posix/is_running.hpp +@@ -17,10 +17,12 @@ namespace boost { namespace process { BOOST_PROCESS_V1_INLINE namespace v1 { nam + // This bit arrangement of status codes is not guaranteed by POSIX, but (according to comments in + // the glibc header) is the same across systems in practice. + constexpr int still_active = 0x017f; ++#if !defined(__HAIKU__) + static_assert(WIFSTOPPED(still_active), "Expected still_active to indicate WIFSTOPPED"); + static_assert(!WIFEXITED(still_active), "Expected still_active to not indicate WIFEXITED"); + static_assert(!WIFSIGNALED(still_active), "Expected still_active to not indicate WIFSIGNALED"); + static_assert(!WIFCONTINUED(still_active), "Expected still_active to not indicate WIFCONTINUED"); ++#endif + + inline bool is_running(int code) + { +diff --git a/boost/process/v2/exit_code.hpp b/boost/process/v2/exit_code.hpp +index 485b3d6..f572e2c 100644 +--- a/boost/process/v2/exit_code.hpp ++++ b/boost/process/v2/exit_code.hpp +@@ -73,10 +73,12 @@ typedef int native_exit_code_type; + namespace detail + { + constexpr native_exit_code_type still_active = 0x17f; +-static_assert(WIFSTOPPED(still_active), "Expected still_active to indicate WIFSTOPPED"); +-static_assert(!WIFEXITED(still_active), "Expected still_active to not indicate WIFEXITED"); +-static_assert(!WIFSIGNALED(still_active), "Expected still_active to not indicate WIFSIGNALED"); +-static_assert(!WIFCONTINUED(still_active), "Expected still_active to not indicate WIFCONTINUED"); ++#if !defined(__HAIKU__) ++ static_assert(WIFSTOPPED(still_active), "Expected still_active to indicate WIFSTOPPED"); ++ static_assert(!WIFEXITED(still_active), "Expected still_active to not indicate WIFEXITED"); ++ static_assert(!WIFSIGNALED(still_active), "Expected still_active to not indicate WIFSIGNALED"); ++ static_assert(!WIFCONTINUED(still_active), "Expected still_active to not indicate WIFCONTINUED"); ++#endif + } + + inline bool process_is_running(int code) +@@ -133,4 +135,4 @@ inline error_code check_exit_code( + + BOOST_PROCESS_V2_END_NAMESPACE + +-#endif //BOOST_PROCESS_V2_EXIT_CODE_HPP +\ No newline at end of file ++#endif //BOOST_PROCESS_V2_EXIT_CODE_HPP +-- +2.48.1 + + +From 9ad242b9f1d15297346e01f877b9383a8115f456 Mon Sep 17 00:00:00 2001 +From: Oscar Lesta +Date: Fri, 20 Dec 2024 22:32:12 -0300 +Subject: Fix build issue related to dirent->d_name[]. + + +diff --git a/libs/filesystem/src/directory.cpp b/libs/filesystem/src/directory.cpp +index 113fef8..baef36e 100644 +--- a/libs/filesystem/src/directory.cpp ++++ b/libs/filesystem/src/directory.cpp +@@ -310,8 +310,13 @@ inline std::size_t get_path_max() + #endif + } + ++#ifdef __HAIKU__ ++ if ((max + 1) < NAME_MAX) ++ max = NAME_MAX - 1; ++#else + if ((max + 1) < sizeof(dirent().d_name)) + max = sizeof(dirent().d_name) - 1; ++#endif + + return max; + } +@@ -473,7 +478,11 @@ system::error_code dir_itr_create(boost::intrusive_ptr< detail::dir_itr_imp >& i + // buffer that is enough for PATH_MAX as the directory name. Still, this doesn't guarantee there won't be + // a buffer overrun. The readdir_r API is fundamentally flawed and we should avoid it as much as possible + // in favor of readdir. ++#ifdef __HAIKU__ ++ extra_size = (NAME_MAX) + path_max() + 1u; // + 1 for "\0" ++#else + extra_size = (sizeof(dirent) - sizeof(dirent().d_name)) + path_max() + 1u; // + 1 for "\0" ++#endif + } + } + #endif // defined(BOOST_FILESYSTEM_USE_READDIR_R) +-- +2.48.1 + + +From 524068961e49748ff730714ff59435020259cf74 Mon Sep 17 00:00:00 2001 +From: Luc Schrijvers +Date: Fri, 4 Apr 2025 11:14:17 +0200 +Subject: No wordexpr.h on Haiku + + +diff --git a/libs/process/src/shell.cpp b/libs/process/src/shell.cpp +index ec0548d..d77a113 100644 +--- a/libs/process/src/shell.cpp ++++ b/libs/process/src/shell.cpp +@@ -19,7 +19,7 @@ + #if defined(BOOST_PROCESS_V2_WINDOWS) + #include + #include +-#elif !defined(__OpenBSD__) ++#elif !defined(__OpenBSD__) && !defined(__HAIKU__) + #include + #endif + +@@ -30,7 +30,7 @@ BOOST_PROCESS_V2_DECL const error_category& get_shell_category() + { + return system_category(); + } +-#elif !defined(__OpenBSD__) ++#elif !defined(__OpenBSD__) && !defined(__HAIKU__) + + struct shell_category_t final : public error_category + { +@@ -99,7 +99,7 @@ auto shell::args() const-> args_type + return input_.c_str(); + } + +-#elif !defined(__OpenBSD__) ++#elif !defined(__OpenBSD__) && !defined(__HAIKU__) + + void shell::parse_() + { +-- +2.48.1 + + +From 93cee69e41b22b924661b0e51b768da4cb72f3cf Mon Sep 17 00:00:00 2001 +From: Luc Schrijvers +Date: Fri, 4 Apr 2025 12:20:08 +0200 +Subject: Fixes for boost_process + + +diff --git a/libs/process/src/ext/cmd.cpp b/libs/process/src/ext/cmd.cpp +index 14329b4..2b4f0f1 100644 +--- a/libs/process/src/ext/cmd.cpp ++++ b/libs/process/src/ext/cmd.cpp +@@ -31,7 +31,7 @@ + #endif + #endif + +-#if (defined(__linux__) || defined(__ANDROID__)) ++#if (defined(__linux__) || defined(__ANDROID__) || defined(__HAIKU__)) + #include + #endif + +@@ -211,7 +211,7 @@ shell cmd(boost::process::v2::pid_type pid, boost::system::error_code & ec) + return make_cmd_shell_::make(std::move(procargs), argc, argv.release(), fr_func); + } + +-#elif (defined(__linux__) || defined(__ANDROID__)) ++#elif (defined(__linux__) || defined(__ANDROID__) || defined(__HAIKU__)) + + shell cmd(boost::process::v2::pid_type pid, boost::system::error_code & ec) + { +-- +2.48.1 +