diff --git a/boost.yaml b/boost.yaml index 973434e531c..99ca346160e 100644 --- a/boost.yaml +++ b/boost.yaml @@ -1,6 +1,6 @@ package: name: boost - version: 1.84.0 + version: 1.85.0 epoch: 0 description: "A library for interacting with the Linux kernel's Berkeley Packet Filter (BPF) facility from user space" copyright: @@ -12,6 +12,7 @@ environment: - build-base - busybox - ca-certificates-bundle + - patch - python3 - python3-dev - wolfi-base @@ -54,7 +55,13 @@ pipeline: - uses: fetch with: uri: https://boostorg.jfrog.io/artifactory/main/release/${{package.version}}/source/boost_${{vars.mangled-package-version}}.tar.gz - expected-sha256: a5800f405508f5df8114558ca9855d2640a2de8f0445f051fa1c7c3383045724 + expected-sha256: be0d91732d5b0cc6fbb275c7939974457e79b54d6f07ce2e3dfdd68bef883b0b + + # Apply patches to fix build https://github.com/boostorg/bcp/pull/18 + - runs: | + cd ./tools/bcp + patch -p1 < ../../c98516b5b76e9132eba78a399af9c95ec8d23bd4.patch + patch -p1 < ../../cd21e9b4a749a77c24facf2da44f01e032c40842.patch - runs: | abiflags="$(python3-config --abiflags)" diff --git a/boost/c98516b5b76e9132eba78a399af9c95ec8d23bd4.patch b/boost/c98516b5b76e9132eba78a399af9c95ec8d23bd4.patch new file mode 100644 index 00000000000..2f0f6252ff8 --- /dev/null +++ b/boost/c98516b5b76e9132eba78a399af9c95ec8d23bd4.patch @@ -0,0 +1,62 @@ +From c98516b5b76e9132eba78a399af9c95ec8d23bd4 Mon Sep 17 00:00:00 2001 +From: Andrey Semashev +Date: Sun, 24 Mar 2024 15:43:33 +0300 +Subject: [PATCH] Updated list of special dependencies. + +--- + add_path.cpp | 16 ++++++---------- + 1 file changed, 6 insertions(+), 10 deletions(-) + +diff --git a/add_path.cpp b/add_path.cpp +index 747bb8c..9ae43c9 100644 +--- a/add_path.cpp ++++ b/add_path.cpp +@@ -196,12 +196,6 @@ void bcp_implementation::add_file(const fs::path& p) + // + static const std::pair + specials[] = { +- std::pair("tools/build/src/kernel/modules.jam", "libs/predef/check"), +- std::pair("tools/build/src/kernel/modules.jam", "libs/predef/tools"), +- std::pair("tools/build/src/kernel/modules.jam", "tools/boost_install/boost-install.jam"), +- std::pair("tools/build/src/kernel/modules.jam", "tools/boost_install/boost-install-dirs.jam"), +- std::pair("tools/build/src/kernel/modules.jam", "tools/boost_install/Jamfile"), +- std::pair("tools/build/src/kernel/modules.jam", "libs/headers"), + std::pair("libs/test/build/Jamfile.v2", "libs/timer/src"), + std::pair("libs/test/build/Jamfile.v2", "libs/timer/build"), + std::pair("boost/atomic/capabilities.hpp", "boost/atomic/detail"), +@@ -226,14 +220,14 @@ static const std::pair + std::pair("libs/thread/build", "boost/system"), + std::pair("libs/thread/build", "boost/cerrno.hpp"), + std::pair("libs/thread/build", "boost/chrono"), +- std::pair("boost/filesystem/convenience.hpp", "boost/filesystem.hpp"), ++ std::pair("boost/filesystem/cstdio.hpp", "boost/filesystem.hpp"), ++ std::pair("boost/filesystem/directory.hpp", "boost/filesystem.hpp"), + std::pair("boost/filesystem/exception.hpp", "boost/filesystem.hpp"), + std::pair("boost/filesystem/fstream.hpp", "boost/filesystem.hpp"), + std::pair("boost/filesystem/operations.hpp", "boost/filesystem.hpp"), ++ std::pair("boost/filesystem/file_status.hpp", "boost/filesystem.hpp"), + std::pair("boost/filesystem/path.hpp", "boost/filesystem.hpp"), + std::pair("boost/filesystem.hpp", "libs/filesystem/build"), +- std::pair("boost/filesystem.hpp", "libs/filesystem/v2"), +- std::pair("boost/filesystem.hpp", "libs/filesystem/v3"), + std::pair("boost/config.hpp", "boost/config"), + std::pair("tools/build/bootstrap.sh", "libs/config/checks"), + std::pair("tools/build/bootstrap.sh", "libs/config/test"), +@@ -242,6 +236,7 @@ static const std::pair + std::pair("tools/build/bootstrap.sh", "tools/boost_install/BoostDetectToolset.cmake"), + std::pair("tools/build/bootstrap.sh", "tools/boost_install/boost-install.jam"), + std::pair("tools/build/bootstrap.sh", "tools/boost_install/boost-install-dirs.jam"), ++ std::pair("tools/build/bootstrap.sh", "tools/boost_install/Jamfile"), + std::pair("tools/build/bootstrap.sh", "boostcpp.jam"), + std::pair("tools/build/bootstrap.sh", "project-config.jam"), + std::pair("tools/build/bootstrap.sh", "bootstrap.bat"), +@@ -271,7 +266,8 @@ static const std::pair + std::pair("boost/test/detail/config.hpp", "libs/test/src"), + std::pair("boost/test/detail/config.hpp", "libs/test/build"), + std::pair("boost/test/detail/config.hpp", "libs/predef/build.jam"), +- std::pair("boost/test/detail/config.hpp", "libs/predef/check"), ++ std::pair("boost/test/detail/config.hpp", "libs/predef/tools/check"), ++ std::pair("boost/test/detail/config.hpp", "libs/predef/check"), // libs/predef/check if obsolete, but may still be used + std::pair("boost/typeof.hpp", "boost/typeof/incr_registration_group.hpp"), + std::pair("boost/function_types/detail/pp_loop.hpp", "boost/function_types/detail/pp_cc_loop"), + std::pair("boost/function_types/components.hpp", "boost/function_types/detail/components_impl"), diff --git a/boost/cd21e9b4a749a77c24facf2da44f01e032c40842.patch b/boost/cd21e9b4a749a77c24facf2da44f01e032c40842.patch new file mode 100644 index 00000000000..e45881c204f --- /dev/null +++ b/boost/cd21e9b4a749a77c24facf2da44f01e032c40842.patch @@ -0,0 +1,184 @@ +From cd21e9b4a749a77c24facf2da44f01e032c40842 Mon Sep 17 00:00:00 2001 +From: Andrey Semashev +Date: Sun, 24 Mar 2024 14:49:18 +0300 +Subject: [PATCH] Remove usage of deprecated and removed Boost.Filesystem APIs. + +--- + add_dependent_lib.cpp | 5 +++-- + add_path.cpp | 30 +++++++++++++++--------------- + bcp_imp.hpp | 1 + + copy_path.cpp | 8 ++++---- + file_types.cpp | 2 +- + 5 files changed, 24 insertions(+), 22 deletions(-) + +diff --git a/add_dependent_lib.cpp b/add_dependent_lib.cpp +index 4852914..521b70d 100644 +--- a/add_dependent_lib.cpp ++++ b/add_dependent_lib.cpp +@@ -15,6 +15,7 @@ + #include "bcp_imp.hpp" + #include "fileview.hpp" + #include ++#include + #include + #include + #include +@@ -43,12 +44,12 @@ static void init_library_scanner(const fs::path& p, bool cvs_mode, const std::st + // + // Don't add files created by build system: + // +- if((p.leaf() == "bin") || (p.leaf() == "bin-stage")) ++ if((p.filename() == "bin") || (p.filename() == "bin-stage")) + return; + // + // Don't add version control directories: + // +- if((p.leaf() == "CVS") || (p.leaf() == ".svn")) ++ if((p.filename() == "CVS") || (p.filename() == ".svn")) + return; + // + // don't add directories not under version control: +diff --git a/add_path.cpp b/add_path.cpp +index 8a1fee3..747bb8c 100644 +--- a/add_path.cpp ++++ b/add_path.cpp +@@ -15,6 +15,7 @@ + #include "bcp_imp.hpp" + #include "fileview.hpp" + #include ++#include + #include + #include + #include +@@ -24,8 +25,7 @@ void bcp_implementation::add_path(const fs::path& p) + { + if (m_excluded.find(p) != m_excluded.end()) + return; +- fs::path normalized_path = p; +- normalized_path.normalize(); ++ fs::path normalized_path = p.lexically_normal(); + if(fs::exists(m_boost_path / normalized_path)) + { + if(fs::is_directory(m_boost_path / normalized_path)) +@@ -45,12 +45,12 @@ void bcp_implementation::add_directory(const fs::path& p) + // + // Don't add files created by build system: + // +- if((p.leaf() == "bin") || (p.leaf() == "bin-stage")) ++ if((p.filename() == "bin") || (p.filename() == "bin-stage")) + return; + // + // Don't add version control directories: + // +- if((p.leaf() == "CVS") || (p.leaf() == ".svn")) ++ if((p.filename() == "CVS") || (p.filename() == ".svn")) + return; + // + // don't add directories not under version control: +@@ -180,7 +180,7 @@ void bcp_implementation::add_file(const fs::path& p) + { + // only concatonate if it's a relative path + // rather than a URL: +- fs::path dep(p.branch_path() / s); ++ fs::path dep(p.parent_path() / s); + if(!m_dependencies.count(dep)) + { + m_dependencies[dep] = p; // set up dependency tree +@@ -355,13 +355,13 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) + continue; + } + include_file = i->str(); +- fs::path test_file(m_boost_path / p.branch_path() / include_file); +- if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.branch_path().string() != "boost")) ++ fs::path test_file(m_boost_path / p.parent_path() / include_file); ++ if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.parent_path().string() != "boost")) + { +- if(!m_dependencies.count(p.branch_path() / include_file)) ++ if(!m_dependencies.count(p.parent_path() / include_file)) + { +- m_dependencies[p.branch_path() / include_file] = p; +- add_pending_path(p.branch_path() / include_file); ++ m_dependencies[p.parent_path() / include_file] = p; ++ add_pending_path(p.parent_path() / include_file); + } + } + else if(fs::exists(m_boost_path / include_file)) +@@ -405,13 +405,13 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) + ++i; + continue; + } +- fs::path test_file(m_boost_path / p.branch_path() / include_file); +- if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.branch_path().string() != "boost")) ++ fs::path test_file(m_boost_path / p.parent_path() / include_file); ++ if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.parent_path().string() != "boost")) + { +- if(!m_dependencies.count(p.branch_path() / include_file)) ++ if(!m_dependencies.count(p.parent_path() / include_file)) + { +- m_dependencies[p.branch_path() / include_file] = p; +- add_pending_path(p.branch_path() / include_file); ++ m_dependencies[p.parent_path() / include_file] = p; ++ add_pending_path(p.parent_path() / include_file); + } + } + else if(fs::exists(m_boost_path / include_file)) +diff --git a/bcp_imp.hpp b/bcp_imp.hpp +index e515581..51c85ba 100644 +--- a/bcp_imp.hpp ++++ b/bcp_imp.hpp +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + + namespace fs = boost::filesystem; +diff --git a/copy_path.cpp b/copy_path.cpp +index 4143c79..6b7a370 100644 +--- a/copy_path.cpp ++++ b/copy_path.cpp +@@ -49,18 +49,18 @@ void bcp_implementation::copy_path(const fs::path& p) + if(fs::exists(m_dest_path / p)) + { + std::cout << "Copying (and overwriting) file: " << p.string() << "\n"; +- fs::remove(m_dest_path / p); ++ fs::remove(m_dest_path / p); + } + else + std::cout << "Copying file: " << p.string() << "\n"; + // + // create the path to the new file if it doesn't already exist: + // +- create_path(p.branch_path()); ++ create_path(p.parent_path()); + // + // do text based copy if requested: + // +- if((p.leaf() == "Jamroot") && m_namespace_name.size()) ++ if((p.filename() == "Jamroot") && m_namespace_name.size()) + { + static std::vector v1, v2; + v1.clear(); +@@ -240,7 +240,7 @@ void bcp_implementation::create_path(const fs::path& p) + if(!fs::exists(m_dest_path / p)) + { + // recurse then create the path: +- create_path(p.branch_path()); ++ create_path(p.parent_path()); + fs::create_directory(m_dest_path / p); + } + } +diff --git a/file_types.cpp b/file_types.cpp +index 297d304..69f6027 100644 +--- a/file_types.cpp ++++ b/file_types.cpp +@@ -52,7 +52,7 @@ bool bcp_implementation::is_binary_file(const fs::path& p) + "|" + "(Jamfile|makefile|configure)", + boost::regex::perl | boost::regex::icase); +- return !boost::regex_match(p.leaf().generic_string(), e); ++ return !boost::regex_match(p.filename().generic_string(), e); + + } +