From bcd37354c2d25d849d01043fb074a15b3c2089e8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 23 Jul 2021 22:05:10 +0000 Subject: [PATCH 01/20] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index a590130..818ee20 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.6.3 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A YAML parser and emitter for C++ License: MIT URL: https://github.com/jbeder/yaml-cpp @@ -91,6 +91,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %changelog +* Fri Jul 23 2021 Fedora Release Engineering - 0.6.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Thu Jan 28 2021 Fedora Release Engineering - 0.6.3-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 4239d4b590eab31c9d1ca1717d68f7f2f9783ed8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jan 2022 05:38:46 +0000 Subject: [PATCH 02/20] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 818ee20..a6f07ed 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.6.3 -Release: 5%{?dist} +Release: 6%{?dist} Summary: A YAML parser and emitter for C++ License: MIT URL: https://github.com/jbeder/yaml-cpp @@ -91,6 +91,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %changelog +* Sat Jan 22 2022 Fedora Release Engineering - 0.6.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Fri Jul 23 2021 Fedora Release Engineering - 0.6.3-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From 4bfe6c87bc9fe479097bbad975a9e3a2cbef40e8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 23 Jul 2022 13:41:32 +0000 Subject: [PATCH 03/20] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index a6f07ed..732c45a 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.6.3 -Release: 6%{?dist} +Release: 7%{?dist} Summary: A YAML parser and emitter for C++ License: MIT URL: https://github.com/jbeder/yaml-cpp @@ -91,6 +91,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %changelog +* Sat Jul 23 2022 Fedora Release Engineering - 0.6.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Sat Jan 22 2022 Fedora Release Engineering - 0.6.3-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From e816cc7ed076b706f506d21e2391b67f8d02f48a Mon Sep 17 00:00:00 2001 From: Richard Shaw Date: Tue, 8 Nov 2022 15:14:57 -0600 Subject: [PATCH 04/20] Update to 0.7.0. --- .gitignore | 1 + CVE-2017-5950.patch | 383 ------------------------------------- sources | 2 +- yaml-cpp-include_dir.patch | 12 -- yaml-cpp-static.patch | 116 ----------- yaml-cpp.spec | 18 +- 6 files changed, 12 insertions(+), 520 deletions(-) delete mode 100644 CVE-2017-5950.patch delete mode 100644 yaml-cpp-include_dir.patch delete mode 100644 yaml-cpp-static.patch diff --git a/.gitignore b/.gitignore index 99c1bde..b7bc3bf 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ yaml-cpp-0.2.5.tar.gz /yaml-cpp-0.6.1.tar.gz /yaml-cpp-0.6.2.tar.gz /yaml-cpp-0.6.3.tar.gz +/yaml-cpp-0.7.0.tar.gz diff --git a/CVE-2017-5950.patch b/CVE-2017-5950.patch deleted file mode 100644 index 3a96432..0000000 --- a/CVE-2017-5950.patch +++ /dev/null @@ -1,383 +0,0 @@ -From d540476e31b080aa1f903ad20ec0426dd3838be7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= -Date: Tue, 25 Apr 2017 20:10:20 -0400 -Subject: [PATCH 1/4] fix stack overflow in HandleNode() (CVE-2017-5950) - -simply set a hardcoded recursion limit to 2000 (inspired by Python's) -to avoid infinitely recursing into arbitrary data structures - -assert() the depth. unsure if this is the right approach, but given -that HandleNode() is "void", I am not sure how else to return an -error. the problem with this approach of course is that it will still -crash the caller, unless they have proper exception handling in place. - -Closes: #459 ---- - src/singledocparser.cpp | 2 ++ - src/singledocparser.h | 2 ++ - 2 files changed, 4 insertions(+) - -diff --git a/src/singledocparser.cpp b/src/singledocparser.cpp -index a27c1c3b..1b4262ee 100644 ---- a/src/singledocparser.cpp -+++ b/src/singledocparser.cpp -@@ -46,6 +46,8 @@ void SingleDocParser::HandleDocument(EventHandler& eventHandler) { - } - - void SingleDocParser::HandleNode(EventHandler& eventHandler) { -+ assert(depth < depth_limit); -+ depth++; - // an empty node *is* a possibility - if (m_scanner.empty()) { - eventHandler.OnNull(m_scanner.mark(), NullAnchor); -diff --git a/src/singledocparser.h b/src/singledocparser.h -index 2b92067c..7046f1e2 100644 ---- a/src/singledocparser.h -+++ b/src/singledocparser.h -@@ -51,6 +51,8 @@ class SingleDocParser : private noncopyable { - anchor_t LookupAnchor(const Mark& mark, const std::string& name) const; - - private: -+ int depth = 0; -+ int depth_limit = 2000; - Scanner& m_scanner; - const Directives& m_directives; - std::unique_ptr m_pCollectionStack; - -From ac00ef937702598aa27739c8c46be37ac5699039 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= -Date: Wed, 26 Apr 2017 10:25:43 -0400 -Subject: [PATCH 2/4] throw an exception instead of using assert() - -assert() may be compiled out in production and is clunkier to catch. - -some ParserException are already thrown elsewhere in the code and it -seems to make sense to reuse the primitive, although it may still -crash improperly configured library consumers, those who do not handle -exceptions explicitly. - -we use the BAD_FILE error message because at this point we do not -exactly know which specific data structure led to the recursion. ---- - src/singledocparser.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/singledocparser.cpp b/src/singledocparser.cpp -index 1b4262ee..1af13f49 100644 ---- a/src/singledocparser.cpp -+++ b/src/singledocparser.cpp -@@ -46,7 +46,9 @@ void SingleDocParser::HandleDocument(EventHandler& eventHandler) { - } - - void SingleDocParser::HandleNode(EventHandler& eventHandler) { -- assert(depth < depth_limit); -+ if (depth > depth_limit) { -+ throw ParserException(m_scanner.mark(), ErrorMsg::BAD_FILE); -+ } - depth++; - // an empty node *is* a possibility - if (m_scanner.empty()) { - -From e78e3bf6a6d61ca321af90d213dc4435ed5cf602 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= -Date: Wed, 26 Apr 2017 10:39:45 -0400 -Subject: [PATCH 3/4] increase and decrease depth properly on subhandlers - -the original implementation couldn't parse a document with more than -depth_limit entries. now we explicitly increase *and* decrease the -depth on specific handlers like maps, sequences and so on - any -handler that may in turn callback into HandleNode(). - -this is a little clunky - I would have prefered to increment and -decrement the counter in only one place, but there are many different -return points and this is not Golang so I can't think of a better way -to to this. ---- - src/singledocparser.cpp | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git a/src/singledocparser.cpp b/src/singledocparser.cpp -index 1af13f49..89234867 100644 ---- a/src/singledocparser.cpp -+++ b/src/singledocparser.cpp -@@ -49,7 +49,6 @@ void SingleDocParser::HandleNode(EventHandler& eventHandler) { - if (depth > depth_limit) { - throw ParserException(m_scanner.mark(), ErrorMsg::BAD_FILE); - } -- depth++; - // an empty node *is* a possibility - if (m_scanner.empty()) { - eventHandler.OnNull(m_scanner.mark(), NullAnchor); -@@ -61,9 +60,11 @@ void SingleDocParser::HandleNode(EventHandler& eventHandler) { - - // special case: a value node by itself must be a map, with no header - if (m_scanner.peek().type == Token::VALUE) { -+ depth++; - eventHandler.OnMapStart(mark, "?", NullAnchor, EmitterStyle::Default); - HandleMap(eventHandler); - eventHandler.OnMapEnd(); -+ depth--; - return; - } - -@@ -98,32 +99,42 @@ void SingleDocParser::HandleNode(EventHandler& eventHandler) { - m_scanner.pop(); - return; - case Token::FLOW_SEQ_START: -+ depth++; - eventHandler.OnSequenceStart(mark, tag, anchor, EmitterStyle::Flow); - HandleSequence(eventHandler); - eventHandler.OnSequenceEnd(); -+ depth--; - return; - case Token::BLOCK_SEQ_START: -+ depth++; - eventHandler.OnSequenceStart(mark, tag, anchor, EmitterStyle::Block); - HandleSequence(eventHandler); - eventHandler.OnSequenceEnd(); -+ depth--; - return; - case Token::FLOW_MAP_START: -+ depth++; - eventHandler.OnMapStart(mark, tag, anchor, EmitterStyle::Flow); - HandleMap(eventHandler); - eventHandler.OnMapEnd(); -+ depth--; - return; - case Token::BLOCK_MAP_START: -+ depth++; - eventHandler.OnMapStart(mark, tag, anchor, EmitterStyle::Block); - HandleMap(eventHandler); - eventHandler.OnMapEnd(); -+ depth--; - return; - case Token::KEY: - // compact maps can only go in a flow sequence - if (m_pCollectionStack->GetCurCollectionType() == - CollectionType::FlowSeq) { -+ depth++; - eventHandler.OnMapStart(mark, tag, anchor, EmitterStyle::Flow); - HandleMap(eventHandler); - eventHandler.OnMapEnd(); -+ depth--; - return; - } - break; - -From 1690cacb3ff6d927286ded92b8fedd37b4045c7c Mon Sep 17 00:00:00 2001 -From: Keith Bennett -Date: Thu, 29 Mar 2018 16:45:11 -0500 -Subject: [PATCH 4/4] use RAII type class to guard against stack depth - recursion instead of error-prone manual increment/check/decrement - ---- - include/yaml-cpp/depthguard.h | 74 +++++++++++++++++++++++++++++++++++ - src/depthguard.cpp | 14 +++++++ - src/singledocparser.cpp | 18 ++------- - src/singledocparser.h | 4 +- - 4 files changed, 94 insertions(+), 16 deletions(-) - create mode 100644 include/yaml-cpp/depthguard.h - create mode 100644 src/depthguard.cpp - -diff --git a/include/yaml-cpp/depthguard.h b/include/yaml-cpp/depthguard.h -new file mode 100644 -index 00000000..6aac81aa ---- /dev/null -+++ b/include/yaml-cpp/depthguard.h -@@ -0,0 +1,74 @@ -+#ifndef DEPTH_GUARD_H_00000000000000000000000000000000000000000000000000000000 -+#define DEPTH_GUARD_H_00000000000000000000000000000000000000000000000000000000 -+ -+#if defined(_MSC_VER) || \ -+ (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ -+ (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 -+#pragma once -+#endif -+ -+#include "exceptions.h" -+ -+namespace YAML { -+ -+/** -+ * @brief The DeepRecursion class -+ * An exception class which is thrown by DepthGuard. Ideally it should be -+ * a member of DepthGuard. However, DepthGuard is a templated class which means -+ * that any catch points would then need to know the template parameters. It is -+ * simpler for clients to not have to know at the catch point what was the -+ * maximum depth. -+ */ -+class DeepRecursion : public ParserException { -+ int m_atDepth = 0; -+public: -+ // no custom dtor needed, but virtual dtor necessary to prevent slicing -+ virtual ~DeepRecursion() = default; -+ -+ // construct an exception explaining how deep you were -+ DeepRecursion(int at_depth, const Mark& mark_, const std::string& msg_); -+ -+ // query how deep you were when the exception was thrown -+ int AtDepth() const; -+}; -+ -+/** -+ * @brief The DepthGuard class -+ * DepthGuard takes a reference to an integer. It increments the integer upon -+ * construction of DepthGuard and decrements the integer upon destruction. -+ * -+ * If the integer would be incremented past max_depth, then an exception is -+ * thrown. This is ideally geared toward guarding against deep recursion. -+ * -+ * @param max_depth -+ * compile-time configurable maximum depth. -+ */ -+template -+class DepthGuard final /* final because non-virtual dtor */ { -+ int & m_depth; -+public: -+ DepthGuard(int & depth_, const Mark& mark_, const std::string& msg_) : m_depth(depth_) { -+ ++m_depth; -+ if ( max_depth <= m_depth ) { -+ throw DeepRecursion{m_depth, mark_, msg_}; -+ } -+ } -+ -+ // DepthGuard is neither copyable nor moveable. -+ DepthGuard(const DepthGuard & copy_ctor) = delete; -+ DepthGuard(DepthGuard && move_ctor) = delete; -+ DepthGuard & operator=(const DepthGuard & copy_assign) = delete; -+ DepthGuard & operator=(DepthGuard && move_assign) = delete; -+ -+ ~DepthGuard() { -+ --m_depth; -+ } -+ -+ int current_depth() const { -+ return m_depth; -+ } -+}; -+ -+} // namespace YAML -+ -+#endif // DEPTH_GUARD_H_00000000000000000000000000000000000000000000000000000000 -diff --git a/src/depthguard.cpp b/src/depthguard.cpp -new file mode 100644 -index 00000000..6d47eba3 ---- /dev/null -+++ b/src/depthguard.cpp -@@ -0,0 +1,14 @@ -+#include "yaml-cpp/depthguard.h" -+ -+namespace YAML { -+ -+DeepRecursion::DeepRecursion(int at_depth, const Mark& mark_, const std::string& msg_) -+ : ParserException(mark_, msg_), -+ m_atDepth(at_depth) { -+} -+ -+int DeepRecursion::AtDepth() const { -+ return m_atDepth; -+} -+ -+} // namespace YAML -diff --git a/src/singledocparser.cpp b/src/singledocparser.cpp -index 89234867..37cc1f51 100644 ---- a/src/singledocparser.cpp -+++ b/src/singledocparser.cpp -@@ -7,6 +7,7 @@ - #include "singledocparser.h" - #include "tag.h" - #include "token.h" -+#include "yaml-cpp/depthguard.h" - #include "yaml-cpp/emitterstyle.h" - #include "yaml-cpp/eventhandler.h" - #include "yaml-cpp/exceptions.h" // IWYU pragma: keep -@@ -46,9 +47,8 @@ void SingleDocParser::HandleDocument(EventHandler& eventHandler) { - } - - void SingleDocParser::HandleNode(EventHandler& eventHandler) { -- if (depth > depth_limit) { -- throw ParserException(m_scanner.mark(), ErrorMsg::BAD_FILE); -- } -+ DepthGuard depthguard(depth, m_scanner.mark(), ErrorMsg::BAD_FILE); -+ - // an empty node *is* a possibility - if (m_scanner.empty()) { - eventHandler.OnNull(m_scanner.mark(), NullAnchor); -@@ -60,11 +60,9 @@ void SingleDocParser::HandleNode(EventHandler& eventHandler) { - - // special case: a value node by itself must be a map, with no header - if (m_scanner.peek().type == Token::VALUE) { -- depth++; - eventHandler.OnMapStart(mark, "?", NullAnchor, EmitterStyle::Default); - HandleMap(eventHandler); - eventHandler.OnMapEnd(); -- depth--; - return; - } - -@@ -99,42 +97,32 @@ void SingleDocParser::HandleNode(EventHandler& eventHandler) { - m_scanner.pop(); - return; - case Token::FLOW_SEQ_START: -- depth++; - eventHandler.OnSequenceStart(mark, tag, anchor, EmitterStyle::Flow); - HandleSequence(eventHandler); - eventHandler.OnSequenceEnd(); -- depth--; - return; - case Token::BLOCK_SEQ_START: -- depth++; - eventHandler.OnSequenceStart(mark, tag, anchor, EmitterStyle::Block); - HandleSequence(eventHandler); - eventHandler.OnSequenceEnd(); -- depth--; - return; - case Token::FLOW_MAP_START: -- depth++; - eventHandler.OnMapStart(mark, tag, anchor, EmitterStyle::Flow); - HandleMap(eventHandler); - eventHandler.OnMapEnd(); -- depth--; - return; - case Token::BLOCK_MAP_START: -- depth++; - eventHandler.OnMapStart(mark, tag, anchor, EmitterStyle::Block); - HandleMap(eventHandler); - eventHandler.OnMapEnd(); -- depth--; - return; - case Token::KEY: - // compact maps can only go in a flow sequence - if (m_pCollectionStack->GetCurCollectionType() == - CollectionType::FlowSeq) { -- depth++; - eventHandler.OnMapStart(mark, tag, anchor, EmitterStyle::Flow); - HandleMap(eventHandler); - eventHandler.OnMapEnd(); -- depth--; - return; - } - break; -diff --git a/src/singledocparser.h b/src/singledocparser.h -index 7046f1e2..f1676c43 100644 ---- a/src/singledocparser.h -+++ b/src/singledocparser.h -@@ -16,6 +16,8 @@ - - namespace YAML { - class CollectionStack; -+template class DepthGuard; // depthguard.h -+class DeepRecursion; // an exception which may be thrown from excessive call stack recursion, see depthguard.h - class EventHandler; - class Node; - class Scanner; -@@ -51,8 +53,8 @@ class SingleDocParser : private noncopyable { - anchor_t LookupAnchor(const Mark& mark, const std::string& name) const; - - private: -+ using DepthGuard = YAML::DepthGuard<2000>; - int depth = 0; -- int depth_limit = 2000; - Scanner& m_scanner; - const Directives& m_directives; - std::unique_ptr m_pCollectionStack; diff --git a/sources b/sources index 051b970..a73bbfa 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (yaml-cpp-0.6.3.tar.gz) = 68b9ce987cabc1dec79382f922de20cc2c222cb9c090ecb93dc686b048da5c917facf4fce6d8f72feea44b61e5a6770ed3b0c199c4cd4e6bde5b6245c09f8e49 +SHA512 (yaml-cpp-0.7.0.tar.gz) = 2de0f0ec8f003cd3c498d571cda7a796bf220517bad2dc02cba70c522dddde398f33cf1ad20da251adaacb2a07b77844111f297e99d45a7c46ebc01706bbafb5 diff --git a/yaml-cpp-include_dir.patch b/yaml-cpp-include_dir.patch deleted file mode 100644 index 4de7320..0000000 --- a/yaml-cpp-include_dir.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -335,8 +335,7 @@ else() - endif() - endif() - --file(RELATIVE_PATH REL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_ROOT_DIR}") --set(CONFIG_INCLUDE_DIRS "\${YAML_CPP_CMAKE_DIR}/${REL_INCLUDE_DIR}") -+set(CONFIG_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_DIR}") - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${YAML_TARGET}-config.cmake" @ONLY) diff --git a/yaml-cpp-static.patch b/yaml-cpp-static.patch deleted file mode 100644 index 5ae46f4..0000000 --- a/yaml-cpp-static.patch +++ /dev/null @@ -1,116 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -274,16 +274,20 @@ set(_INSTALL_DESTINATIONS - ### - ### Library - ### --add_library(yaml-cpp ${library_sources}) --set_target_properties(yaml-cpp PROPERTIES -- COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags}" --) -- --set_target_properties(yaml-cpp PROPERTIES -+if(BUILD_SHARED_LIBS) -+ add_library(yaml-cpp SHARED ${library_sources}) -+ set_target_properties(yaml-cpp PROPERTIES - VERSION "${YAML_CPP_VERSION}" - SOVERSION "${YAML_CPP_VERSION_MAJOR}.${YAML_CPP_VERSION_MINOR}" - PROJECT_LABEL "yaml-cpp ${LABEL_SUFFIX}" -+ COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags}" - ) -+else() -+ add_library(yaml-cpp STATIC ${library_sources}) -+ set_target_properties(yaml-cpp PROPERTIES -+ COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags}" -+ ) -+endif() - - if(IPHONE) - set_target_properties(yaml-cpp PROPERTIES -@@ -303,48 +307,56 @@ if(MSVC) - endif() - endif() - --install(TARGETS yaml-cpp EXPORT yaml-cpp-targets ${_INSTALL_DESTINATIONS}) - install( - DIRECTORY ${header_directory} - DESTINATION ${INCLUDE_INSTALL_DIR} - FILES_MATCHING PATTERN "*.h" - ) - --export( -- TARGETS yaml-cpp -- FILE "${PROJECT_BINARY_DIR}/yaml-cpp-targets.cmake") --export(PACKAGE yaml-cpp) --set(EXPORT_TARGETS yaml-cpp CACHE INTERNAL "export targets") -+if(BUILD_SHARED_LIBS) -+ set(YAML_TARGET "yaml-cpp") -+else() -+ set(YAML_TARGET "yaml-cpp-static") -+endif() - -+install(TARGETS yaml-cpp EXPORT ${YAML_TARGET}-targets ${_INSTALL_DESTINATIONS}) -+export(TARGETS yaml-cpp -+ FILE "${PROJECT_BINARY_DIR}/${YAML_TARGET}-targets.cmake") -+set(EXPORT_TARGETS yaml-cpp CACHE INTERNAL "export targets") - set(CONFIG_INCLUDE_DIRS "${YAML_CPP_SOURCE_DIR}/include") - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in -- "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" @ONLY) -+ "${PROJECT_BINARY_DIR}/${YAML_TARGET}-config.cmake" @ONLY) - -+if(NOT INSTALL_CMAKE_DIR) - if(WIN32 AND NOT CYGWIN) - set(INSTALL_CMAKE_DIR CMake) - else() -- set(INSTALL_CMAKE_DIR ${LIB_INSTALL_DIR}/cmake/yaml-cpp) -+ set(INSTALL_CMAKE_DIR ${LIB_INSTALL_DIR}/cmake/) -+endif() - endif() - - file(RELATIVE_PATH REL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_ROOT_DIR}") - set(CONFIG_INCLUDE_DIRS "\${YAML_CPP_CMAKE_DIR}/${REL_INCLUDE_DIR}") --configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in -- "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/yaml-cpp-config.cmake" @ONLY) - -+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in -+ "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${YAML_TARGET}-config.cmake" @ONLY) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config-version.cmake.in -- "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" @ONLY) -- -+ "${PROJECT_BINARY_DIR}/${YAML_TARGET}-config-version.cmake" @ONLY) - install(FILES -- "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/yaml-cpp-config.cmake" -- "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" -- DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev) --install(EXPORT yaml-cpp-targets DESTINATION ${INSTALL_CMAKE_DIR}) -+ "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${YAML_TARGET}-config.cmake" -+ "${PROJECT_BINARY_DIR}/${YAML_TARGET}-config-version.cmake" -+ DESTINATION "${INSTALL_CMAKE_DIR}${YAML_TARGET}" COMPONENT dev) -+install(EXPORT ${YAML_TARGET}-targets DESTINATION ${INSTALL_CMAKE_DIR}${YAML_TARGET}) - - if(UNIX) -- set(PC_FILE ${CMAKE_BINARY_DIR}/yaml-cpp.pc) -- configure_file("yaml-cpp.pc.cmake" ${PC_FILE} @ONLY) -- install(FILES ${PC_FILE} DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) -+if(BUILD_SHARED_LIBS) -+ set(PC_FILE ${CMAKE_BINARY_DIR}/yaml-cpp.pc) -+else() -+ set(PC_FILE ${CMAKE_BINARY_DIR}/yaml-cpp-static.pc) - endif() -+configure_file("yaml-cpp.pc.cmake" ${PC_FILE} @ONLY) -+install(FILES ${PC_FILE} DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) -+endif(UNIX) - - - ### ---- a/yaml-cpp-config.cmake.in -+++ b/yaml-cpp-config.cmake.in -@@ -8,7 +8,7 @@ get_filename_component(YAML_CPP_CMAKE_DI - set(YAML_CPP_INCLUDE_DIR "@CONFIG_INCLUDE_DIRS@") - - # Our library dependencies (contains definitions for IMPORTED targets) --include("${YAML_CPP_CMAKE_DIR}/yaml-cpp-targets.cmake") -+include("${YAML_CPP_CMAKE_DIR}/@YAML_TARGET@-targets.cmake") - - # These are IMPORTED targets created by yaml-cpp-targets.cmake - set(YAML_CPP_LIBRARIES "@EXPORT_TARGETS@") diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 732c45a..24b070d 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -1,22 +1,22 @@ -%global sover 0.6 +%global sover 0.7 Name: yaml-cpp -Version: 0.6.3 -Release: 7%{?dist} +Version: 0.7.0 +Release: 1%{?dist} Summary: A YAML parser and emitter for C++ License: MIT URL: https://github.com/jbeder/yaml-cpp Source0: https://github.com/jbeder/yaml-cpp/archive/%{name}-%{version}.tar.gz -Patch0: CVE-2017-5950.patch +# Install pkgconf and cmake files in LIBDIR instead of DATADIR +Patch0: yaml-cpp-cmake.patch -BuildRequires: make BuildRequires: cmake gcc gcc-c++ +BuildRequires: make %description yaml-cpp is a YAML parser and emitter in C++ written around the YAML 1.2 spec. - %package devel Summary: Development files for %{name} License: MIT @@ -27,7 +27,6 @@ Requires: pkgconfig The %{name}-devel package contains libraries and header files for developing applications that use %{name}. - %package static Summary: Static library for %{name} License: MIT @@ -66,9 +65,9 @@ mv %{buildroot}%{_libdir}/cmake/%{name} \ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %{buildroot}%{_libdir}/pkgconfig/%{name}-static.pc - %make_install -C build_shared + %ldconfig_scriptlets @@ -91,6 +90,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %changelog +* Tue Sep 06 2022 Richard Shaw - 0.7.0-1 +- Update to 0.7.0. + * Sat Jul 23 2022 Fedora Release Engineering - 0.6.3-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From b5c56298eabc612fde94c1c2bd36f353bb0ec4eb Mon Sep 17 00:00:00 2001 From: Richard Shaw Date: Tue, 8 Nov 2022 15:15:19 -0600 Subject: [PATCH 05/20] Upload new patch. --- yaml-cpp-cmake.patch | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 yaml-cpp-cmake.patch diff --git a/yaml-cpp-cmake.patch b/yaml-cpp-cmake.patch new file mode 100644 index 0000000..ff50364 --- /dev/null +++ b/yaml-cpp-cmake.patch @@ -0,0 +1,30 @@ +Index: yaml-cpp-yaml-cpp-0.7.0/CMakeLists.txt +=================================================================== +--- yaml-cpp-yaml-cpp-0.7.0.orig/CMakeLists.txt ++++ yaml-cpp-yaml-cpp-0.7.0/CMakeLists.txt +@@ -130,7 +130,7 @@ set_target_properties(yaml-cpp PROPERTIE + configure_package_config_file( + "${PROJECT_SOURCE_DIR}/yaml-cpp-config.cmake.in" + "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" +- INSTALL_DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") ++ INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/yaml-cpp") + + write_basic_package_version_file( + "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" +@@ -148,13 +148,13 @@ if (YAML_CPP_INSTALL) + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h") + install(EXPORT yaml-cpp-targets +- DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/yaml-cpp") + install(FILES + "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" + "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" +- DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/yaml-cpp") + install(FILES "${PROJECT_BINARY_DIR}/yaml-cpp.pc" +- DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + endif() + + if(YAML_CPP_BUILD_TESTS) From 34d9b89325ae3c7dc95e844256112defae1e381b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 21 Jan 2023 08:01:43 +0000 Subject: [PATCH 06/20] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 24b070d..078f77a 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.7.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A YAML parser and emitter for C++ License: MIT URL: https://github.com/jbeder/yaml-cpp @@ -90,6 +90,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %changelog +* Sat Jan 21 2023 Fedora Release Engineering - 0.7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Tue Sep 06 2022 Richard Shaw - 0.7.0-1 - Update to 0.7.0. From fb9ae3b26f57c7fc6ab3c1b2bff6f6aae578a79e Mon Sep 17 00:00:00 2001 From: Vitaly Zaitsev Date: Wed, 19 Apr 2023 16:47:13 +0200 Subject: [PATCH 07/20] Fixed broken CMake configs (rhbz#2188009). --- yaml-cpp-cmake.patch | 241 ++++++++++++++++++++++++++++++++++++++++--- yaml-cpp.spec | 67 ++++++------ 2 files changed, 262 insertions(+), 46 deletions(-) diff --git a/yaml-cpp-cmake.patch b/yaml-cpp-cmake.patch index ff50364..218484c 100644 --- a/yaml-cpp-cmake.patch +++ b/yaml-cpp-cmake.patch @@ -1,30 +1,245 @@ -Index: yaml-cpp-yaml-cpp-0.7.0/CMakeLists.txt -=================================================================== ---- yaml-cpp-yaml-cpp-0.7.0.orig/CMakeLists.txt -+++ yaml-cpp-yaml-cpp-0.7.0/CMakeLists.txt -@@ -130,7 +130,7 @@ set_target_properties(yaml-cpp PROPERTIE +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b230b9e..6ef6e8a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -9,33 +9,39 @@ endif() + + project(YAML_CPP VERSION 0.7.0 LANGUAGES CXX) + ++set(YAML_CPP_MAIN_PROJECT OFF) ++if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) ++ set(YAML_CPP_MAIN_PROJECT ON) ++endif() ++ + include(CMakePackageConfigHelpers) + include(CMakeDependentOption) + include(CheckCXXCompilerFlag) + include(GNUInstallDirs) + include(CTest) + +-find_program(YAML_CPP_CLANG_FORMAT_EXE NAMES clang-format) +- + option(YAML_CPP_BUILD_CONTRIB "Enable yaml-cpp contrib in library" ON) + option(YAML_CPP_BUILD_TOOLS "Enable parse tools" ON) + option(YAML_BUILD_SHARED_LIBS "Build yaml-cpp shared library" ${BUILD_SHARED_LIBS}) +- ++option(YAML_CPP_INSTALL "Enable generation of yaml-cpp install targets" ${YAML_CPP_MAIN_PROJECT}) ++option(YAML_CPP_FORMAT_SOURCE "Format source" ON) + cmake_dependent_option(YAML_CPP_BUILD_TESTS +- "Enable yaml-cpp tests" ON +- "BUILD_TESTING;CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF) +-cmake_dependent_option(YAML_CPP_INSTALL +- "Enable generation of yaml-cpp install targets" ON +- "CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF) ++ "Enable yaml-cpp tests" OFF ++ "BUILD_TESTING;YAML_CPP_MAIN_PROJECT" OFF) + cmake_dependent_option(YAML_MSVC_SHARED_RT + "MSVC: Build yaml-cpp with shared runtime libs (/MD)" ON +- "MSVC" OFF) ++ "CMAKE_SYSTEM_NAME MATCHES Windows" OFF) ++ ++if (YAML_CPP_FORMAT_SOURCE) ++ find_program(YAML_CPP_CLANG_FORMAT_EXE NAMES clang-format) ++endif() + +-set(yaml-cpp-type STATIC) +-set(yaml-cpp-label-postfix "static") + if (YAML_BUILD_SHARED_LIBS) + set(yaml-cpp-type SHARED) + set(yaml-cpp-label-postfix "shared") ++else() ++ set(yaml-cpp-type STATIC) ++ set(yaml-cpp-label-postfix "static") + endif() + + set(build-shared $) +@@ -78,6 +84,10 @@ set_property(TARGET yaml-cpp + PROPERTY + CXX_STANDARD_REQUIRED ON) + ++if (NOT YAML_BUILD_SHARED_LIBS) ++ set_property(TARGET yaml-cpp PROPERTY POSITION_INDEPENDENT_CODE ON) ++endif() ++ + target_include_directories(yaml-cpp + PUBLIC + $ +@@ -91,11 +101,15 @@ if (NOT DEFINED CMAKE_CXX_STANDARD) + CXX_STANDARD 11) + endif() + ++if(YAML_CPP_MAIN_PROJECT) ++ target_compile_options(yaml-cpp ++ PRIVATE ++ $<${not-msvc}:-Wall -Wextra -Wshadow -Weffc++ -Wno-long-long> ++ $<${not-msvc}:-pedantic -pedantic-errors>) ++endif() ++ + target_compile_options(yaml-cpp + PRIVATE +- $<${not-msvc}:-Wall -Wextra -Wshadow -Weffc++ -Wno-long-long> +- $<${not-msvc}:-pedantic -pedantic-errors> +- + $<$:-MTd> + $<$:-MT> + $<$:-MDd> +@@ -108,6 +122,8 @@ target_compile_options(yaml-cpp + $<$:/W3 /wd4127 /wd4355>) + + target_compile_definitions(yaml-cpp ++ PUBLIC ++ $<$>:YAML_CPP_STATIC_DEFINE> + PRIVATE + $<${build-windows-dll}:${PROJECT_NAME}_DLL> + $<$>:YAML_CPP_NO_CONTRIB>) +@@ -127,10 +143,14 @@ set_target_properties(yaml-cpp PROPERTIES + PROJECT_LABEL "yaml-cpp ${yaml-cpp-label-postfix}" + DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}") + ++set(CONFIG_EXPORT_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/yaml-cpp") ++set(EXPORT_TARGETS yaml-cpp) configure_package_config_file( "${PROJECT_SOURCE_DIR}/yaml-cpp-config.cmake.in" "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" - INSTALL_DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") -+ INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/yaml-cpp") ++ INSTALL_DESTINATION "${CONFIG_EXPORT_DIR}" ++ PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR CONFIG_EXPORT_DIR YAML_BUILD_SHARED_LIBS) ++unset(EXPORT_TARGETS) write_basic_package_version_file( "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" -@@ -148,13 +148,13 @@ if (YAML_CPP_INSTALL) +@@ -139,36 +159,48 @@ write_basic_package_version_file( + configure_file(yaml-cpp.pc.in yaml-cpp.pc @ONLY) + + if (YAML_CPP_INSTALL) +- install(TARGETS yaml-cpp ++ install(TARGETS yaml-cpp + EXPORT yaml-cpp-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +- install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/ ++ install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING PATTERN "*.h") +- FILES_MATCHING PATTERN "*.h") ++ FILES_MATCHING PATTERN "*.h") install(EXPORT yaml-cpp-targets - DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/yaml-cpp") - install(FILES - "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" - "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" +- install(FILES +- "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" +- "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" - DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/yaml-cpp") ++ DESTINATION "${CONFIG_EXPORT_DIR}") ++ install(FILES ++ "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" ++ "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" ++ DESTINATION "${CONFIG_EXPORT_DIR}") install(FILES "${PROJECT_BINARY_DIR}/yaml-cpp.pc" - DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) endif() ++unset(CONFIG_EXPORT_DIR) if(YAML_CPP_BUILD_TESTS) +- add_subdirectory(test) ++ add_subdirectory(test) + endif() + + if(YAML_CPP_BUILD_TOOLS) +- add_subdirectory(util) ++ add_subdirectory(util) + endif() + +-if (YAML_CPP_CLANG_FORMAT_EXE) ++if (YAML_CPP_FORMAT_SOURCE AND YAML_CPP_CLANG_FORMAT_EXE) + add_custom_target(format + COMMAND clang-format --style=file -i $ + COMMAND_EXPAND_LISTS + COMMENT "Running clang-format" + VERBATIM) + endif() ++ ++# uninstall target ++if(NOT TARGET uninstall) ++ configure_file( ++ "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" ++ "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" ++ IMMEDIATE @ONLY) ++ ++ add_custom_target(uninstall ++ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) ++endif() +diff --git a/cmake_uninstall.cmake.in b/cmake_uninstall.cmake.in +new file mode 100644 +index 0000000..c2d34d4 +--- /dev/null ++++ b/cmake_uninstall.cmake.in +@@ -0,0 +1,21 @@ ++if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") ++ message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt") ++endif() ++ ++file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) ++string(REGEX REPLACE "\n" ";" files "${files}") ++foreach(file ${files}) ++ message(STATUS "Uninstalling $ENV{DESTDIR}${file}") ++ if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") ++ exec_program( ++ "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" ++ OUTPUT_VARIABLE rm_out ++ RETURN_VALUE rm_retval ++ ) ++ if(NOT "${rm_retval}" STREQUAL 0) ++ message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") ++ endif() ++ else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") ++ message(STATUS "File $ENV{DESTDIR}${file} does not exist.") ++ endif() ++endforeach() +diff --git a/yaml-cpp-config.cmake.in b/yaml-cpp-config.cmake.in +index 7b41e3f..799b9b4 100644 +--- a/yaml-cpp-config.cmake.in ++++ b/yaml-cpp-config.cmake.in +@@ -1,14 +1,22 @@ + # - Config file for the yaml-cpp package + # It defines the following variables +-# YAML_CPP_INCLUDE_DIR - include directory +-# YAML_CPP_LIBRARIES - libraries to link against ++# YAML_CPP_INCLUDE_DIR - include directory ++# YAML_CPP_LIBRARY_DIR - directory containing libraries ++# YAML_CPP_SHARED_LIBS_BUILT - whether we have built shared libraries or not ++# YAML_CPP_LIBRARIES - libraries to link against + +-# Compute paths +-get_filename_component(YAML_CPP_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +-set(YAML_CPP_INCLUDE_DIR "@CONFIG_INCLUDE_DIRS@") ++@PACKAGE_INIT@ ++ ++set_and_check(YAML_CPP_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") ++set_and_check(YAML_CPP_LIBRARY_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@") ++ ++# Are we building shared libraries? ++set(YAML_CPP_SHARED_LIBS_BUILT "@PACKAGE_YAML_BUILD_SHARED_LIBS@") + + # Our library dependencies (contains definitions for IMPORTED targets) +-include("${YAML_CPP_CMAKE_DIR}/yaml-cpp-targets.cmake") ++include(@PACKAGE_CONFIG_EXPORT_DIR@/yaml-cpp-targets.cmake) + + # These are IMPORTED targets created by yaml-cpp-targets.cmake + set(YAML_CPP_LIBRARIES "@EXPORT_TARGETS@") ++ ++check_required_components(@EXPORT_TARGETS@) +diff --git a/yaml-cpp.pc.in b/yaml-cpp.pc.in +index f713de6..d02dc9e 100644 +--- a/yaml-cpp.pc.in ++++ b/yaml-cpp.pc.in +@@ -1,7 +1,7 @@ + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix} +-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ +-libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ ++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ ++libdir=@CMAKE_INSTALL_FULL_LIBDIR@ + + Name: Yaml-cpp + Description: A YAML parser and emitter for C++ diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 078f77a..ed03cee 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,16 +2,18 @@ Name: yaml-cpp Version: 0.7.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A YAML parser and emitter for C++ License: MIT URL: https://github.com/jbeder/yaml-cpp -Source0: https://github.com/jbeder/yaml-cpp/archive/%{name}-%{version}.tar.gz +Source0: %{url}/archive/%{name}-%{version}/%{name}-%{version}.tar.gz -# Install pkgconf and cmake files in LIBDIR instead of DATADIR -Patch0: yaml-cpp-cmake.patch +# CMake fixes from 0e6e28d1a38224fc8172fae0109ea7f673c096db commit +Patch100: yaml-cpp-cmake.patch -BuildRequires: cmake gcc gcc-c++ +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: gcc-c++ BuildRequires: make %description @@ -19,9 +21,8 @@ yaml-cpp is a YAML parser and emitter in C++ written around the YAML 1.2 spec. %package devel Summary: Development files for %{name} -License: MIT -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: pkgconfig +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: libstdc++-devel%{?_isa} %description devel The %{name}-devel package contains libraries and header files for @@ -29,67 +30,67 @@ developing applications that use %{name}. %package static Summary: Static library for %{name} -License: MIT -Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %description static The %{name}-static package contains the static library for %{name}. - %prep -%autosetup -p1 -n %{name}-%{name}-%{version} - +%autosetup -n %{name}-%{name}-%{version} -p1 %build -%cmake -B build_shared \ - -DYAML_CPP_BUILD_TOOLS=OFF \ - -DYAML_BUILD_SHARED_LIBS=ON \ - -DYAML_CPP_BUILD_TESTS=OFF \ - %{nil} -%make_build -C build_shared - %cmake -B build_static \ - -DYAML_CPP_BUILD_TOOLS=OFF \ - -DYAML_BUILD_SHARED_LIBS=OFF \ - -DYAML_CPP_BUILD_TESTS=OFF \ - %{nil} + -DYAML_CPP_BUILD_TOOLS:BOOL=OFF \ + -DYAML_CPP_FORMAT_SOURCE:BOOL=OFF \ + -DYAML_BUILD_SHARED_LIBS:BOOL=OFF \ + -DYAML_BUILD_SHARED_LIBS:BOOL=OFF \ + -DYAML_CPP_BUILD_TESTS:BOOL=OFF %make_build -C build_static +%cmake -B build_shared \ + -DYAML_CPP_BUILD_TOOLS:BOOL=OFF \ + -DYAML_CPP_FORMAT_SOURCE:BOOL=OFF \ + -DYAML_CPP_INSTALL:BOOL=ON \ + -DYAML_BUILD_SHARED_LIBS:BOOL=ON \ + -DYAML_CPP_BUILD_TESTS:BOOL=OFF +%make_build -C build_shared %install %make_install -C build_static yaml-cpp # Move files so they don't get trampled mv %{buildroot}%{_libdir}/cmake/%{name} \ - %{buildroot}%{_libdir}/cmake/%{name}-static + %{buildroot}%{_libdir}/cmake/%{name}-static mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ - %{buildroot}%{_libdir}/pkgconfig/%{name}-static.pc + %{buildroot}%{_libdir}/pkgconfig/%{name}-static.pc %make_install -C build_shared - -%ldconfig_scriptlets - - %files %doc CONTRIBUTING.md README.md %license LICENSE -%{_libdir}/*.so.%{sover}* +%{_libdir}/lib%{name}*.so.%{sover}* %files devel %{_includedir}/yaml-cpp/ -%{_libdir}/*.so +%{_libdir}/lib%{name}.so %{_libdir}/cmake/%{name} %{_libdir}/pkgconfig/%{name}.pc %files static %license LICENSE -%{_libdir}/*.a +%{_libdir}/lib%{name}.a %{_libdir}/cmake/%{name}-static %{_libdir}/pkgconfig/%{name}-static.pc %changelog +* Wed Apr 19 2023 Vitaly Zaitsev - 0.7.0-3 +- Fixed broken CMake configs (rhbz#2188009). +- Backported CMake fixes from upstream. +- Converted license tag to SPDX. +- Performed minor SPEC cleanup. + * Sat Jan 21 2023 Fedora Release Engineering - 0.7.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 79744c42cd42946847ef266cfe15dc6cb77d0de4 Mon Sep 17 00:00:00 2001 From: Vitaly Zaitsev Date: Wed, 19 Apr 2023 16:48:41 +0200 Subject: [PATCH 08/20] SPEC autoformat. --- yaml-cpp.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index ed03cee..a7da02b 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -3,8 +3,9 @@ Name: yaml-cpp Version: 0.7.0 Release: 3%{?dist} + +License: MIT Summary: A YAML parser and emitter for C++ -License: MIT URL: https://github.com/jbeder/yaml-cpp Source0: %{url}/archive/%{name}-%{version}/%{name}-%{version}.tar.gz @@ -83,7 +84,6 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %{_libdir}/cmake/%{name}-static %{_libdir}/pkgconfig/%{name}-static.pc - %changelog * Wed Apr 19 2023 Vitaly Zaitsev - 0.7.0-3 - Fixed broken CMake configs (rhbz#2188009). From c516149d9c77b3aee389d36e3eeeb3480e14d51a Mon Sep 17 00:00:00 2001 From: Vitaly Zaitsev Date: Wed, 19 Apr 2023 16:53:19 +0200 Subject: [PATCH 09/20] Always build in Release configuration. --- yaml-cpp.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index a7da02b..90f6971 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -41,14 +41,16 @@ The %{name}-static package contains the static library for %{name}. %build %cmake -B build_static \ + -DCMAKE_BUILD_TYPE=Release \ -DYAML_CPP_BUILD_TOOLS:BOOL=OFF \ -DYAML_CPP_FORMAT_SOURCE:BOOL=OFF \ - -DYAML_BUILD_SHARED_LIBS:BOOL=OFF \ + -DYAML_CPP_INSTALL:BOOL=ON \ -DYAML_BUILD_SHARED_LIBS:BOOL=OFF \ -DYAML_CPP_BUILD_TESTS:BOOL=OFF %make_build -C build_static %cmake -B build_shared \ + -DCMAKE_BUILD_TYPE=Release \ -DYAML_CPP_BUILD_TOOLS:BOOL=OFF \ -DYAML_CPP_FORMAT_SOURCE:BOOL=OFF \ -DYAML_CPP_INSTALL:BOOL=ON \ From 01ff4c557bb0787b8145be540681958001af53e0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jul 2023 19:27:21 +0000 Subject: [PATCH 10/20] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 90f6971..32e4e29 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.7.0 -Release: 3%{?dist} +Release: 4%{?dist} License: MIT Summary: A YAML parser and emitter for C++ @@ -87,6 +87,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %{_libdir}/pkgconfig/%{name}-static.pc %changelog +* Sat Jul 22 2023 Fedora Release Engineering - 0.7.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Wed Apr 19 2023 Vitaly Zaitsev - 0.7.0-3 - Fixed broken CMake configs (rhbz#2188009). - Backported CMake fixes from upstream. From bf9f6b8f680766934e1e374da471e6c13c436b71 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 27 Jan 2024 10:39:01 +0000 Subject: [PATCH 11/20] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 32e4e29..44534d9 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.7.0 -Release: 4%{?dist} +Release: 5%{?dist} License: MIT Summary: A YAML parser and emitter for C++ @@ -87,6 +87,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %{_libdir}/pkgconfig/%{name}-static.pc %changelog +* Sat Jan 27 2024 Fedora Release Engineering - 0.7.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Sat Jul 22 2023 Fedora Release Engineering - 0.7.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 3803a9aa5be4a8767583d67e4da2b6718be57fe1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 10:38:16 +0000 Subject: [PATCH 12/20] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 44534d9..5108133 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.7.0 -Release: 5%{?dist} +Release: 6%{?dist} License: MIT Summary: A YAML parser and emitter for C++ @@ -87,6 +87,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %{_libdir}/pkgconfig/%{name}-static.pc %changelog +* Sat Jul 20 2024 Fedora Release Engineering - 0.7.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Sat Jan 27 2024 Fedora Release Engineering - 0.7.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 5e5009298fa904f80daee2304b3822e5c5c1f726 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 21 Oct 2024 20:42:02 -0600 Subject: [PATCH 13/20] Update to 0.8.0 --- .gitignore | 1 + sources | 2 +- yaml-cpp-cmake.patch | 245 ------------------------------------------- yaml-cpp.spec | 18 ++-- 4 files changed, 11 insertions(+), 255 deletions(-) delete mode 100644 yaml-cpp-cmake.patch diff --git a/.gitignore b/.gitignore index b7bc3bf..8721528 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ yaml-cpp-0.2.5.tar.gz /yaml-cpp-0.6.2.tar.gz /yaml-cpp-0.6.3.tar.gz /yaml-cpp-0.7.0.tar.gz +/yaml-cpp-0.8.0.tar.gz diff --git a/sources b/sources index a73bbfa..8cdbf36 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (yaml-cpp-0.7.0.tar.gz) = 2de0f0ec8f003cd3c498d571cda7a796bf220517bad2dc02cba70c522dddde398f33cf1ad20da251adaacb2a07b77844111f297e99d45a7c46ebc01706bbafb5 +SHA512 (yaml-cpp-0.8.0.tar.gz) = aae9d618f906117d620d63173e95572c738db518f4ff1901a06de2117d8deeb8045f554102ca0ba4735ac0c4d060153a938ef78da3e0da3406d27b8298e5f38e diff --git a/yaml-cpp-cmake.patch b/yaml-cpp-cmake.patch deleted file mode 100644 index 218484c..0000000 --- a/yaml-cpp-cmake.patch +++ /dev/null @@ -1,245 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b230b9e..6ef6e8a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -9,33 +9,39 @@ endif() - - project(YAML_CPP VERSION 0.7.0 LANGUAGES CXX) - -+set(YAML_CPP_MAIN_PROJECT OFF) -+if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) -+ set(YAML_CPP_MAIN_PROJECT ON) -+endif() -+ - include(CMakePackageConfigHelpers) - include(CMakeDependentOption) - include(CheckCXXCompilerFlag) - include(GNUInstallDirs) - include(CTest) - --find_program(YAML_CPP_CLANG_FORMAT_EXE NAMES clang-format) -- - option(YAML_CPP_BUILD_CONTRIB "Enable yaml-cpp contrib in library" ON) - option(YAML_CPP_BUILD_TOOLS "Enable parse tools" ON) - option(YAML_BUILD_SHARED_LIBS "Build yaml-cpp shared library" ${BUILD_SHARED_LIBS}) -- -+option(YAML_CPP_INSTALL "Enable generation of yaml-cpp install targets" ${YAML_CPP_MAIN_PROJECT}) -+option(YAML_CPP_FORMAT_SOURCE "Format source" ON) - cmake_dependent_option(YAML_CPP_BUILD_TESTS -- "Enable yaml-cpp tests" ON -- "BUILD_TESTING;CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF) --cmake_dependent_option(YAML_CPP_INSTALL -- "Enable generation of yaml-cpp install targets" ON -- "CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF) -+ "Enable yaml-cpp tests" OFF -+ "BUILD_TESTING;YAML_CPP_MAIN_PROJECT" OFF) - cmake_dependent_option(YAML_MSVC_SHARED_RT - "MSVC: Build yaml-cpp with shared runtime libs (/MD)" ON -- "MSVC" OFF) -+ "CMAKE_SYSTEM_NAME MATCHES Windows" OFF) -+ -+if (YAML_CPP_FORMAT_SOURCE) -+ find_program(YAML_CPP_CLANG_FORMAT_EXE NAMES clang-format) -+endif() - --set(yaml-cpp-type STATIC) --set(yaml-cpp-label-postfix "static") - if (YAML_BUILD_SHARED_LIBS) - set(yaml-cpp-type SHARED) - set(yaml-cpp-label-postfix "shared") -+else() -+ set(yaml-cpp-type STATIC) -+ set(yaml-cpp-label-postfix "static") - endif() - - set(build-shared $) -@@ -78,6 +84,10 @@ set_property(TARGET yaml-cpp - PROPERTY - CXX_STANDARD_REQUIRED ON) - -+if (NOT YAML_BUILD_SHARED_LIBS) -+ set_property(TARGET yaml-cpp PROPERTY POSITION_INDEPENDENT_CODE ON) -+endif() -+ - target_include_directories(yaml-cpp - PUBLIC - $ -@@ -91,11 +101,15 @@ if (NOT DEFINED CMAKE_CXX_STANDARD) - CXX_STANDARD 11) - endif() - -+if(YAML_CPP_MAIN_PROJECT) -+ target_compile_options(yaml-cpp -+ PRIVATE -+ $<${not-msvc}:-Wall -Wextra -Wshadow -Weffc++ -Wno-long-long> -+ $<${not-msvc}:-pedantic -pedantic-errors>) -+endif() -+ - target_compile_options(yaml-cpp - PRIVATE -- $<${not-msvc}:-Wall -Wextra -Wshadow -Weffc++ -Wno-long-long> -- $<${not-msvc}:-pedantic -pedantic-errors> -- - $<$:-MTd> - $<$:-MT> - $<$:-MDd> -@@ -108,6 +122,8 @@ target_compile_options(yaml-cpp - $<$:/W3 /wd4127 /wd4355>) - - target_compile_definitions(yaml-cpp -+ PUBLIC -+ $<$>:YAML_CPP_STATIC_DEFINE> - PRIVATE - $<${build-windows-dll}:${PROJECT_NAME}_DLL> - $<$>:YAML_CPP_NO_CONTRIB>) -@@ -127,10 +143,14 @@ set_target_properties(yaml-cpp PROPERTIES - PROJECT_LABEL "yaml-cpp ${yaml-cpp-label-postfix}" - DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}") - -+set(CONFIG_EXPORT_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/yaml-cpp") -+set(EXPORT_TARGETS yaml-cpp) - configure_package_config_file( - "${PROJECT_SOURCE_DIR}/yaml-cpp-config.cmake.in" - "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" -- INSTALL_DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") -+ INSTALL_DESTINATION "${CONFIG_EXPORT_DIR}" -+ PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR CONFIG_EXPORT_DIR YAML_BUILD_SHARED_LIBS) -+unset(EXPORT_TARGETS) - - write_basic_package_version_file( - "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" -@@ -139,36 +159,48 @@ write_basic_package_version_file( - configure_file(yaml-cpp.pc.in yaml-cpp.pc @ONLY) - - if (YAML_CPP_INSTALL) -- install(TARGETS yaml-cpp -+ install(TARGETS yaml-cpp - EXPORT yaml-cpp-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -- install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/ -+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/ - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} -- FILES_MATCHING PATTERN "*.h") -+ FILES_MATCHING PATTERN "*.h") - install(EXPORT yaml-cpp-targets -- DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") -- install(FILES -- "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" -- "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" -- DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") -+ DESTINATION "${CONFIG_EXPORT_DIR}") -+ install(FILES -+ "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" -+ "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" -+ DESTINATION "${CONFIG_EXPORT_DIR}") - install(FILES "${PROJECT_BINARY_DIR}/yaml-cpp.pc" -- DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig) -+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - endif() -+unset(CONFIG_EXPORT_DIR) - - if(YAML_CPP_BUILD_TESTS) -- add_subdirectory(test) -+ add_subdirectory(test) - endif() - - if(YAML_CPP_BUILD_TOOLS) -- add_subdirectory(util) -+ add_subdirectory(util) - endif() - --if (YAML_CPP_CLANG_FORMAT_EXE) -+if (YAML_CPP_FORMAT_SOURCE AND YAML_CPP_CLANG_FORMAT_EXE) - add_custom_target(format - COMMAND clang-format --style=file -i $ - COMMAND_EXPAND_LISTS - COMMENT "Running clang-format" - VERBATIM) - endif() -+ -+# uninstall target -+if(NOT TARGET uninstall) -+ configure_file( -+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" -+ "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" -+ IMMEDIATE @ONLY) -+ -+ add_custom_target(uninstall -+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) -+endif() -diff --git a/cmake_uninstall.cmake.in b/cmake_uninstall.cmake.in -new file mode 100644 -index 0000000..c2d34d4 ---- /dev/null -+++ b/cmake_uninstall.cmake.in -@@ -0,0 +1,21 @@ -+if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") -+ message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt") -+endif() -+ -+file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) -+string(REGEX REPLACE "\n" ";" files "${files}") -+foreach(file ${files}) -+ message(STATUS "Uninstalling $ENV{DESTDIR}${file}") -+ if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") -+ exec_program( -+ "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" -+ OUTPUT_VARIABLE rm_out -+ RETURN_VALUE rm_retval -+ ) -+ if(NOT "${rm_retval}" STREQUAL 0) -+ message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") -+ endif() -+ else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") -+ message(STATUS "File $ENV{DESTDIR}${file} does not exist.") -+ endif() -+endforeach() -diff --git a/yaml-cpp-config.cmake.in b/yaml-cpp-config.cmake.in -index 7b41e3f..799b9b4 100644 ---- a/yaml-cpp-config.cmake.in -+++ b/yaml-cpp-config.cmake.in -@@ -1,14 +1,22 @@ - # - Config file for the yaml-cpp package - # It defines the following variables --# YAML_CPP_INCLUDE_DIR - include directory --# YAML_CPP_LIBRARIES - libraries to link against -+# YAML_CPP_INCLUDE_DIR - include directory -+# YAML_CPP_LIBRARY_DIR - directory containing libraries -+# YAML_CPP_SHARED_LIBS_BUILT - whether we have built shared libraries or not -+# YAML_CPP_LIBRARIES - libraries to link against - --# Compute paths --get_filename_component(YAML_CPP_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) --set(YAML_CPP_INCLUDE_DIR "@CONFIG_INCLUDE_DIRS@") -+@PACKAGE_INIT@ -+ -+set_and_check(YAML_CPP_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") -+set_and_check(YAML_CPP_LIBRARY_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@") -+ -+# Are we building shared libraries? -+set(YAML_CPP_SHARED_LIBS_BUILT "@PACKAGE_YAML_BUILD_SHARED_LIBS@") - - # Our library dependencies (contains definitions for IMPORTED targets) --include("${YAML_CPP_CMAKE_DIR}/yaml-cpp-targets.cmake") -+include(@PACKAGE_CONFIG_EXPORT_DIR@/yaml-cpp-targets.cmake) - - # These are IMPORTED targets created by yaml-cpp-targets.cmake - set(YAML_CPP_LIBRARIES "@EXPORT_TARGETS@") -+ -+check_required_components(@EXPORT_TARGETS@) -diff --git a/yaml-cpp.pc.in b/yaml-cpp.pc.in -index f713de6..d02dc9e 100644 ---- a/yaml-cpp.pc.in -+++ b/yaml-cpp.pc.in -@@ -1,7 +1,7 @@ - prefix=@CMAKE_INSTALL_PREFIX@ - exec_prefix=${prefix} --includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ --libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ -+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ -+libdir=@CMAKE_INSTALL_FULL_LIBDIR@ - - Name: Yaml-cpp - Description: A YAML parser and emitter for C++ diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 5108133..756aaef 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -1,16 +1,13 @@ -%global sover 0.7 +%global sover 0.8 Name: yaml-cpp -Version: 0.7.0 -Release: 6%{?dist} +Version: 0.8.0 +Release: 1%{?dist} License: MIT Summary: A YAML parser and emitter for C++ URL: https://github.com/jbeder/yaml-cpp -Source0: %{url}/archive/%{name}-%{version}/%{name}-%{version}.tar.gz - -# CMake fixes from 0e6e28d1a38224fc8172fae0109ea7f673c096db commit -Patch100: yaml-cpp-cmake.patch +Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz BuildRequires: cmake BuildRequires: gcc @@ -37,7 +34,7 @@ Requires: %{name}-devel%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} The %{name}-static package contains the static library for %{name}. %prep -%autosetup -n %{name}-%{name}-%{version} -p1 +%autosetup -n %{name}-%{version} -p1 %build %cmake -B build_static \ @@ -72,7 +69,7 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %files %doc CONTRIBUTING.md README.md %license LICENSE -%{_libdir}/lib%{name}*.so.%{sover}* +%{_libdir}/lib%{name}.so.%{sover}* %files devel %{_includedir}/yaml-cpp/ @@ -87,6 +84,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %{_libdir}/pkgconfig/%{name}-static.pc %changelog +* Mon Oct 21 2024 Orion Poplawski - 0.8.0-1 +- Update to 0.8.0 + * Sat Jul 20 2024 Fedora Release Engineering - 0.7.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From cb47231900c19f643975e40ea353cbae4c27f0b8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 16:29:42 +0000 Subject: [PATCH 14/20] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 756aaef..d27e996 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.8.0 -Release: 1%{?dist} +Release: 2%{?dist} License: MIT Summary: A YAML parser and emitter for C++ @@ -84,6 +84,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %{_libdir}/pkgconfig/%{name}-static.pc %changelog +* Sun Jan 19 2025 Fedora Release Engineering - 0.8.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Mon Oct 21 2024 Orion Poplawski - 0.8.0-1 - Update to 0.8.0 From af5d9fc11197ce7118c51bf75375e47535559d89 Mon Sep 17 00:00:00 2001 From: Richard Shaw Date: Sun, 26 Jan 2025 16:15:01 -0600 Subject: [PATCH 15/20] Add patch for FTBFS, BZ#2341591. --- yaml-cpp-include.patch | 9 +++++++++ yaml-cpp.spec | 8 +++++--- 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 yaml-cpp-include.patch diff --git a/yaml-cpp-include.patch b/yaml-cpp-include.patch new file mode 100644 index 0000000..b248543 --- /dev/null +++ b/yaml-cpp-include.patch @@ -0,0 +1,9 @@ +Index: yaml-cpp-0.8.0/src/emitterutils.cpp +=================================================================== +--- yaml-cpp-0.8.0.orig/src/emitterutils.cpp ++++ yaml-cpp-0.8.0/src/emitterutils.cpp +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include diff --git a/yaml-cpp.spec b/yaml-cpp.spec index d27e996..c71b4d7 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,12 +2,14 @@ Name: yaml-cpp Version: 0.8.0 -Release: 2%{?dist} +Release: 1%{?dist} License: MIT Summary: A YAML parser and emitter for C++ URL: https://github.com/jbeder/yaml-cpp -Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz +Source0: https://github.com/jbeder/yaml-cpp/archive/%{version}/%{name}-%{version}.tar.gz + +Patch0: yaml-cpp-include.patch BuildRequires: cmake BuildRequires: gcc @@ -34,7 +36,7 @@ Requires: %{name}-devel%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} The %{name}-static package contains the static library for %{name}. %prep -%autosetup -n %{name}-%{version} -p1 +%autosetup -p1 %build %cmake -B build_static \ From 887798d8dff693b0cd9be60d087844e7763edf23 Mon Sep 17 00:00:00 2001 From: Richard Shaw Date: Sun, 26 Jan 2025 16:17:29 -0600 Subject: [PATCH 16/20] Added patch for FTBFS, BZ#2341591. Added patch for FTBFS, BZ#2341591. Added patch for FTBFS, BZ#2341591. --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index c71b4d7..2bcf1c6 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.8.0 -Release: 1%{?dist} +Release: 2%{?dist} License: MIT Summary: A YAML parser and emitter for C++ @@ -86,6 +86,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %{_libdir}/pkgconfig/%{name}-static.pc %changelog +* Sun Jan 26 2025 Richard Shaw - 0.8.0-2 +- Added patch for FTBFS, BZ#2341591. + * Sun Jan 19 2025 Fedora Release Engineering - 0.8.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 117550bab9f43c4a3b37ddd12c42fe1f1d5e136f Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Thu, 15 May 2025 11:53:01 +0200 Subject: [PATCH 17/20] Allow to build with CMake 4.0 --- 1211.patch | 29 +++++++++++++++++++++++++++++ yaml-cpp.spec | 30 ++++++++++++++++++++++-------- 2 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 1211.patch diff --git a/1211.patch b/1211.patch new file mode 100644 index 0000000..29085ab --- /dev/null +++ b/1211.patch @@ -0,0 +1,29 @@ +From 8153a1add19018f65527faad3c4d3941705baf39 Mon Sep 17 00:00:00 2001 +From: Craig Scott +Date: Wed, 16 Aug 2023 15:55:44 +1000 +Subject: [PATCH] Specify CMake policy range to avoid deprecation warning + +CMake 3.27 started issuing a deprecation warning for any +cmake_minimum_required() call that specified a minimum +version older than 3.5. Specifying a version range instead of +a simple minimum version avoids that warning without +raising the minimum supported CMake version. The NEW +policy behavior will be used for all policies introduced up to +CMake 3.14 with this change. +--- + CMakeLists.txt | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 46dc18059..1ae92e2b7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,5 +1,6 @@ +-# 3.5 is actually available almost everywhere, but this a good minimum +-cmake_minimum_required(VERSION 3.4) ++# 3.5 is actually available almost everywhere, but this a good minimum. ++# 3.14 as the upper policy limit avoids CMake deprecation warnings. ++cmake_minimum_required(VERSION 3.4...3.14) + + # enable MSVC_RUNTIME_LIBRARY target property + # see https://cmake.org/cmake/help/latest/policy/CMP0091.html diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 2bcf1c6..d4d0a3d 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.8.0 -Release: 2%{?dist} +Release: 3%{?dist} License: MIT Summary: A YAML parser and emitter for C++ @@ -11,10 +11,12 @@ Source0: https://github.com/jbeder/yaml-cpp/archive/%{version}/%{name}-%{ Patch0: yaml-cpp-include.patch +# Allow CMake 4.0 build +Patch1: https://github.com/jbeder/yaml-cpp/pull/1211.patch + BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ -BuildRequires: make %description yaml-cpp is a YAML parser and emitter in C++ written around the YAML 1.2 spec. @@ -39,26 +41,34 @@ The %{name}-static package contains the static library for %{name}. %autosetup -p1 %build -%cmake -B build_static \ +# Define separate build directories for static and shared +%global _vpath_builddir %{_target_platform}-${variant} + +variant=static +%cmake \ -DCMAKE_BUILD_TYPE=Release \ -DYAML_CPP_BUILD_TOOLS:BOOL=OFF \ -DYAML_CPP_FORMAT_SOURCE:BOOL=OFF \ -DYAML_CPP_INSTALL:BOOL=ON \ -DYAML_BUILD_SHARED_LIBS:BOOL=OFF \ -DYAML_CPP_BUILD_TESTS:BOOL=OFF -%make_build -C build_static -%cmake -B build_shared \ +variant=shared +%cmake \ -DCMAKE_BUILD_TYPE=Release \ -DYAML_CPP_BUILD_TOOLS:BOOL=OFF \ -DYAML_CPP_FORMAT_SOURCE:BOOL=OFF \ -DYAML_CPP_INSTALL:BOOL=ON \ -DYAML_BUILD_SHARED_LIBS:BOOL=ON \ -DYAML_CPP_BUILD_TESTS:BOOL=OFF -%make_build -C build_shared + +for variant in static shared; do + %cmake_build +done %install -%make_install -C build_static yaml-cpp +variant=static +%cmake_install # Move files so they don't get trampled mv %{buildroot}%{_libdir}/cmake/%{name} \ @@ -66,7 +76,8 @@ mv %{buildroot}%{_libdir}/cmake/%{name} \ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %{buildroot}%{_libdir}/pkgconfig/%{name}-static.pc -%make_install -C build_shared +variant=shared +%cmake_install %files %doc CONTRIBUTING.md README.md @@ -86,6 +97,9 @@ mv %{buildroot}%{_libdir}/pkgconfig/%{name}.pc \ %{_libdir}/pkgconfig/%{name}-static.pc %changelog +* Thu May 15 2025 Cristian Le - 0.8.0-3 +- Allow to build with CMake 4.0 and Ninja generator + * Sun Jan 26 2025 Richard Shaw - 0.8.0-2 - Added patch for FTBFS, BZ#2341591. From 0a64fb057bf4da6da90c42bca27561a806a77636 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 21:10:15 +0000 Subject: [PATCH 18/20] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index d4d0a3d..39a5770 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.8.0 -Release: 3%{?dist} +Release: 4%{?dist} License: MIT Summary: A YAML parser and emitter for C++ @@ -97,6 +97,9 @@ variant=shared %{_libdir}/pkgconfig/%{name}-static.pc %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 0.8.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Thu May 15 2025 Cristian Le - 0.8.0-3 - Allow to build with CMake 4.0 and Ninja generator From 21474c78e94840ffa5f49c23571d9cfaee4c64e2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 21:00:01 +0000 Subject: [PATCH 19/20] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 39a5770..4239bc3 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.8.0 -Release: 4%{?dist} +Release: 5%{?dist} License: MIT Summary: A YAML parser and emitter for C++ @@ -97,6 +97,9 @@ variant=shared %{_libdir}/pkgconfig/%{name}-static.pc %changelog +* Sat Jan 17 2026 Fedora Release Engineering - 0.8.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + * Fri Jul 25 2025 Fedora Release Engineering - 0.8.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From db6c2dc0cd537bc9b9fe00f5b4f80f550d8560d1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 09:32:30 +0000 Subject: [PATCH 20/20] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild --- yaml-cpp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yaml-cpp.spec b/yaml-cpp.spec index 4239bc3..6234375 100644 --- a/yaml-cpp.spec +++ b/yaml-cpp.spec @@ -2,7 +2,7 @@ Name: yaml-cpp Version: 0.8.0 -Release: 5%{?dist} +Release: 6%{?dist} License: MIT Summary: A YAML parser and emitter for C++ @@ -97,6 +97,9 @@ variant=shared %{_libdir}/pkgconfig/%{name}-static.pc %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 0.8.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + * Sat Jan 17 2026 Fedora Release Engineering - 0.8.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild