summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2024-05-20 07:56:36 +0100
committerSam James <sam@gentoo.org>2024-05-20 07:56:36 +0100
commit9292ab9aa7003a86b551aba3470bb23581e6ab2c (patch)
treef85ee5d1b51a896977c6e4eed3d3421f76b0340e /dev-libs/boost
parentsys-apps/man-db: run elibtoolize in non-live ebuild (diff)
downloadgentoo-9292ab9aa7003a86b551aba3470bb23581e6ab2c.tar.gz
gentoo-9292ab9aa7003a86b551aba3470bb23581e6ab2c.tar.bz2
gentoo-9292ab9aa7003a86b551aba3470bb23581e6ab2c.zip
dev-libs/boost: fix USE=tools build
Closes: https://bugs.gentoo.org/932240 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-libs/boost')
-rw-r--r--dev-libs/boost/boost-1.85.0.ebuild1
-rw-r--r--dev-libs/boost/files/boost-1.85.0-bcp-filesystem.patch188
2 files changed, 189 insertions, 0 deletions
diff --git a/dev-libs/boost/boost-1.85.0.ebuild b/dev-libs/boost/boost-1.85.0.ebuild
index 3a6700ea176b..30577a1da191 100644
--- a/dev-libs/boost/boost-1.85.0.ebuild
+++ b/dev-libs/boost/boost-1.85.0.ebuild
@@ -50,6 +50,7 @@ BDEPEND=">=dev-build/b2-5.0.0"
PATCHES=(
"${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
"${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
+ "${FILESDIR}"/${PN}-1.85.0-bcp-filesystem.patch
)
create_user-config.jam() {
diff --git a/dev-libs/boost/files/boost-1.85.0-bcp-filesystem.patch b/dev-libs/boost/files/boost-1.85.0-bcp-filesystem.patch
new file mode 100644
index 000000000000..23d94040341d
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-bcp-filesystem.patch
@@ -0,0 +1,188 @@
+https://bugs.gentoo.org/932240
+https://github.com/boostorg/bcp/commit/cd21e9b4a749a77c24facf2da44f01e032c40842
+
+From cd21e9b4a749a77c24facf2da44f01e032c40842 Mon Sep 17 00:00:00 2001
+From: Andrey Semashev <andrey.semashev@gmail.com>
+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/tools/bcp/add_dependent_lib.cpp b/tools/bcp/add_dependent_lib.cpp
+index 4852914..521b70d 100644
+--- a/tools/bcp/add_dependent_lib.cpp
++++ b/tools/bcp/add_dependent_lib.cpp
+@@ -15,6 +15,7 @@
+ #include "bcp_imp.hpp"
+ #include "fileview.hpp"
+ #include <boost/regex.hpp>
++#include <boost/filesystem/directory.hpp>
+ #include <boost/filesystem/operations.hpp>
+ #include <boost/filesystem/exception.hpp>
+ #include <iostream>
+@@ -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/tools/bcp/add_path.cpp b/tools/bcp/add_path.cpp
+index 8a1fee3..747bb8c 100644
+--- a/tools/bcp/add_path.cpp
++++ b/tools/bcp/add_path.cpp
+@@ -15,6 +15,7 @@
+ #include "bcp_imp.hpp"
+ #include "fileview.hpp"
+ #include <boost/regex.hpp>
++#include <boost/filesystem/directory.hpp>
+ #include <boost/filesystem/operations.hpp>
+ #include <boost/filesystem/exception.hpp>
+ #include <iostream>
+@@ -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/tools/bcp/bcp_imp.hpp b/tools/bcp/bcp_imp.hpp
+index e515581..51c85ba 100644
+--- a/tools/bcp/bcp_imp.hpp
++++ b/tools/bcp/bcp_imp.hpp
+@@ -14,6 +14,7 @@
+ #include <set>
+ #include <map>
+ #include <queue>
++#include <string>
+ #include <boost/filesystem/path.hpp>
+
+ namespace fs = boost::filesystem;
+diff --git a/tools/bcp/copy_path.cpp b/tools/bcp/copy_path.cpp
+index 4143c79..6b7a370 100644
+--- a/tools/bcp/copy_path.cpp
++++ b/tools/bcp/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<char> 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/tools/bcp/file_types.cpp b/tools/bcp/file_types.cpp
+index 297d304..69f6027 100644
+--- a/tools/bcp/file_types.cpp
++++ b/tools/bcp/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);
+
+ }
+
+