mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 18:58:08 -07:00
dev-cpp/yaml-cpp: fix ABI breakage
Adds a patch used in fedora to fix ABI breakage. Patch and issue spotted by Attila Tóth <atoth@atoth.sote.hu>. Bug: https://bugs.gentoo.org/704948 Thanks-to: Attila Tóth <atoth@atoth.sote.hu> Package-Manager: Portage-2.3.84, Repoman-2.3.20 Signed-off-by: Johannes Huber <johu@gentoo.org>
This commit is contained in:
57
dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch
Normal file
57
dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch
Normal file
@@ -0,0 +1,57 @@
|
||||
commit f5f288c7622d3547c29a8355b8ccda0155483b79
|
||||
Author: Till Hofmann <hofmann@kbsg.rwth-aachen.de>
|
||||
Date: Sun Nov 17 22:43:20 2019 +0100
|
||||
|
||||
Revert "fix up static, so works as DLL (#559)"
|
||||
|
||||
This reverts commit 774f25800e6f19f4b927023c85d1389af322da5e.
|
||||
|
||||
diff --git a/include/yaml-cpp/node/detail/node_data.h b/include/yaml-cpp/node/detail/node_data.h
|
||||
index 82fb79a..50bcd74 100644
|
||||
--- a/include/yaml-cpp/node/detail/node_data.h
|
||||
+++ b/include/yaml-cpp/node/detail/node_data.h
|
||||
@@ -81,7 +81,7 @@ class YAML_CPP_API node_data {
|
||||
shared_memory_holder pMemory);
|
||||
|
||||
public:
|
||||
- static const std::string& empty_scalar();
|
||||
+ static std::string empty_scalar;
|
||||
|
||||
private:
|
||||
void compute_seq_size() const;
|
||||
diff --git a/include/yaml-cpp/node/impl.h b/include/yaml-cpp/node/impl.h
|
||||
index 7a3deac..b363f86 100644
|
||||
--- a/include/yaml-cpp/node/impl.h
|
||||
+++ b/include/yaml-cpp/node/impl.h
|
||||
@@ -166,13 +166,13 @@ inline T Node::as(const S& fallback) const {
|
||||
inline const std::string& Node::Scalar() const {
|
||||
if (!m_isValid)
|
||||
throw InvalidNode(m_invalidKey);
|
||||
- return m_pNode ? m_pNode->scalar() : detail::node_data::empty_scalar();
|
||||
+ return m_pNode ? m_pNode->scalar() : detail::node_data::empty_scalar;
|
||||
}
|
||||
|
||||
inline const std::string& Node::Tag() const {
|
||||
if (!m_isValid)
|
||||
throw InvalidNode(m_invalidKey);
|
||||
- return m_pNode ? m_pNode->tag() : detail::node_data::empty_scalar();
|
||||
+ return m_pNode ? m_pNode->tag() : detail::node_data::empty_scalar;
|
||||
}
|
||||
|
||||
inline void Node::SetTag(const std::string& tag) {
|
||||
diff --git a/src/node_data.cpp b/src/node_data.cpp
|
||||
index 6cfedfc..eba1ae4 100644
|
||||
--- a/src/node_data.cpp
|
||||
+++ b/src/node_data.cpp
|
||||
@@ -13,10 +13,7 @@
|
||||
namespace YAML {
|
||||
namespace detail {
|
||||
|
||||
-const std::string& node_data::empty_scalar() {
|
||||
- static const std::string svalue;
|
||||
- return svalue;
|
||||
-}
|
||||
+std::string node_data::empty_scalar;
|
||||
|
||||
node_data::node_data()
|
||||
: m_isDefined(false),
|
||||
45
dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r1.ebuild
Normal file
45
dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r1.ebuild
Normal file
@@ -0,0 +1,45 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
CMAKE_ECLASS="cmake"
|
||||
inherit cmake-multilib
|
||||
|
||||
DESCRIPTION="YAML parser and emitter in C++"
|
||||
HOMEPAGE="https://github.com/jbeder/yaml-cpp"
|
||||
SRC_URI="https://github.com/jbeder/${PN}/archive/${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0/0.6"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="test"
|
||||
|
||||
# test breaks build
|
||||
# RESTRICT="!test? ( test )"
|
||||
RESTRICT+="test"
|
||||
|
||||
DEPEND="test? ( dev-cpp/gtest )"
|
||||
|
||||
S="${WORKDIR}/${PN}-${P}"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${P}-abi-breakage.patch" )
|
||||
|
||||
src_prepare() {
|
||||
sed -i \
|
||||
-e 's:INCLUDE_INSTALL_ROOT_DIR:INCLUDE_INSTALL_DIR:g' \
|
||||
yaml-cpp.pc.cmake || die
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DYAML_BUILD_SHARED_LIBS=ON
|
||||
-DYAML_CPP_BUILD_TOOLS=OFF # Don't have install rule
|
||||
-DYAML_CPP_BUILD_TESTS=$(usex test)
|
||||
)
|
||||
|
||||
cmake-multilib_src_configure
|
||||
}
|
||||
Reference in New Issue
Block a user