[Buildroot] [git commit] package/gerbera: Fix building with fmt >= 10

Thomas Petazzoni thomas.petazzoni at bootlin.com
Sun Jul 30 20:43:10 UTC 2023


commit: https://git.buildroot.net/buildroot/commit/?id=bc6fbe7954d6b289787297ac2b37bab6a832d1e5
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

This patch depends on bumping gerbera to version 1.12.1.

Signed-off-by: Bernd Kuhls <bernd at kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
---
 .../gerbera/0001-buildfix-support-fmtlib-10.patch  | 166 +++++++++++++++++++++
 1 file changed, 166 insertions(+)

diff --git a/package/gerbera/0001-buildfix-support-fmtlib-10.patch b/package/gerbera/0001-buildfix-support-fmtlib-10.patch
new file mode 100644
index 0000000000..b274aab75b
--- /dev/null
+++ b/package/gerbera/0001-buildfix-support-fmtlib-10.patch
@@ -0,0 +1,166 @@
+From 37957aac0aea776e6f843af2358916f81056a405 Mon Sep 17 00:00:00 2001
+From: Mamoru TASAKA <mtasaka at fedoraproject.org>
+Date: Thu, 29 Jun 2023 22:09:15 +0900
+Subject: [PATCH] buildfix: support fmtlib 10
+
+With fmtlib10, fmt::format does not accept pugi::xml_node as it is.
+Use name() member function, as this usage appear on other places of
+gerbera source code.
+
+Closes #2839 .
+
+Upstream: https://github.com/gerbera/gerbera/commit/37957aac0aea776e6f843af2358916f81056a405
+
+Signed-off-by: Bernd Kuhls <bernd at kuhls.net>
+---
+ src/config/setup/config_setup_array.cc       | 6 +++---
+ src/config/setup/config_setup_autoscan.cc    | 2 +-
+ src/config/setup/config_setup_client.cc      | 2 +-
+ src/config/setup/config_setup_dictionary.cc  | 6 +++---
+ src/config/setup/config_setup_dynamic.cc     | 2 +-
+ src/config/setup/config_setup_transcoding.cc | 2 +-
+ src/config/setup/config_setup_tweak.cc       | 2 +-
+ src/config/setup/config_setup_vector.cc      | 4 ++--
+ 8 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/src/config/setup/config_setup_array.cc b/src/config/setup/config_setup_array.cc
+index 62dd5c9a7..a5f8958ce 100644
+--- a/src/config/setup/config_setup_array.cc
++++ b/src/config/setup/config_setup_array.cc
+@@ -137,11 +137,11 @@ std::vector<std::string> ConfigArraySetup::getXmlContent(const pugi::xml_node& o
+     std::vector<std::string> result;
+     if (initArray) {
+         if (!initArray(optValue, result, ConfigDefinition::mapConfigOption(nodeOption))) {
+-            throw_std_runtime_error("Invalid {} array value '{}'", xpath, optValue);
++            throw_std_runtime_error("Invalid {} array value '{}'", xpath, optValue.name());
+         }
+     } else {
+         if (!createOptionFromNode(optValue, result)) {
+-            throw_std_runtime_error("Invalid {} array value '{}'", xpath, optValue);
++            throw_std_runtime_error("Invalid {} array value '{}'", xpath, optValue.name());
+         }
+     }
+     if (result.empty()) {
+@@ -150,7 +150,7 @@ std::vector<std::string> ConfigArraySetup::getXmlContent(const pugi::xml_node& o
+         result = defaultEntries;
+     }
+     if (notEmpty && result.empty()) {
+-        throw_std_runtime_error("Invalid array {} empty '{}'", xpath, optValue);
++        throw_std_runtime_error("Invalid array {} empty '{}'", xpath, optValue.name());
+     }
+     return result;
+ }
+diff --git a/src/config/setup/config_setup_autoscan.cc b/src/config/setup/config_setup_autoscan.cc
+index 9ae4e61f8..5e1394585 100644
+--- a/src/config/setup/config_setup_autoscan.cc
++++ b/src/config/setup/config_setup_autoscan.cc
+@@ -245,7 +245,7 @@ std::shared_ptr<ConfigOption> ConfigAutoscanSetup::newOption(const pugi::xml_nod
+ {
+     auto result = std::vector<AutoscanDirectory>();
+     if (!createOptionFromNode(optValue, result)) {
+-        throw_std_runtime_error("Init {} autoscan failed '{}'", xpath, optValue);
++        throw_std_runtime_error("Init {} autoscan failed '{}'", xpath, optValue.name());
+     }
+     optionValue = std::make_shared<AutoscanListOption>(result);
+     return optionValue;
+diff --git a/src/config/setup/config_setup_client.cc b/src/config/setup/config_setup_client.cc
+index ffd12fc01..857db3c3e 100644
+--- a/src/config/setup/config_setup_client.cc
++++ b/src/config/setup/config_setup_client.cc
+@@ -183,7 +183,7 @@ std::shared_ptr<ConfigOption> ConfigClientSetup::newOption(const pugi::xml_node&
+     auto result = std::make_shared<ClientConfigList>();
+ 
+     if (!createOptionFromNode(isEnabled ? optValue : pugi::xml_node(nullptr), result)) {
+-        throw_std_runtime_error("Init {} client config failed '{}'", xpath, optValue);
++        throw_std_runtime_error("Init {} client config failed '{}'", xpath, optValue.name());
+     }
+     optionValue = std::make_shared<ClientConfigListOption>(result);
+     return optionValue;
+diff --git a/src/config/setup/config_setup_dictionary.cc b/src/config/setup/config_setup_dictionary.cc
+index 003b4cc59..69d1a7255 100644
+--- a/src/config/setup/config_setup_dictionary.cc
++++ b/src/config/setup/config_setup_dictionary.cc
+@@ -163,11 +163,11 @@ std::map<std::string, std::string> ConfigDictionarySetup::getXmlContent(const pu
+     std::map<std::string, std::string> result;
+     if (initDict) {
+         if (!initDict(optValue, result)) {
+-            throw_std_runtime_error("Init {} dictionary failed '{}'", xpath, optValue);
++            throw_std_runtime_error("Init {} dictionary failed '{}'", xpath, optValue.name());
+         }
+     } else {
+         if (!createOptionFromNode(optValue, result) && required) {
+-            throw_std_runtime_error("Init {} dictionary failed '{}'", xpath, optValue);
++            throw_std_runtime_error("Init {} dictionary failed '{}'", xpath, optValue.name());
+         }
+     }
+     if (result.empty()) {
+@@ -176,7 +176,7 @@ std::map<std::string, std::string> ConfigDictionarySetup::getXmlContent(const pu
+         result = defaultEntries;
+     }
+     if (notEmpty && result.empty()) {
+-        throw_std_runtime_error("Invalid dictionary {} empty '{}'", xpath, optValue);
++        throw_std_runtime_error("Invalid dictionary {} empty '{}'", xpath, optValue.name());
+     }
+     return result;
+ }
+diff --git a/src/config/setup/config_setup_dynamic.cc b/src/config/setup/config_setup_dynamic.cc
+index 0074cb6d3..d6962afe6 100644
+--- a/src/config/setup/config_setup_dynamic.cc
++++ b/src/config/setup/config_setup_dynamic.cc
+@@ -192,7 +192,7 @@ std::shared_ptr<ConfigOption> ConfigDynamicContentSetup::newOption(const pugi::x
+     auto result = std::make_shared<DynamicContentList>();
+ 
+     if (!createOptionFromNode(optValue, result)) {
+-        throw_std_runtime_error("Init {} DynamicContentList failed '{}'", xpath, optValue);
++        throw_std_runtime_error("Init {} DynamicContentList failed '{}'", xpath, optValue.name());
+     }
+     optionValue = std::make_shared<DynamicContentListOption>(result);
+     return optionValue;
+diff --git a/src/config/setup/config_setup_transcoding.cc b/src/config/setup/config_setup_transcoding.cc
+index 17d1780dc..1f6fb0604 100644
+--- a/src/config/setup/config_setup_transcoding.cc
++++ b/src/config/setup/config_setup_transcoding.cc
+@@ -501,7 +501,7 @@ std::shared_ptr<ConfigOption> ConfigTranscodingSetup::newOption(const pugi::xml_
+     auto result = std::make_shared<TranscodingProfileList>();
+ 
+     if (!createOptionFromNode(isEnabled ? optValue : pugi::xml_node(nullptr), result)) {
+-        throw_std_runtime_error("Init {} transcoding failed '{}'", xpath, optValue);
++        throw_std_runtime_error("Init {} transcoding failed '{}'", xpath, optValue.name());
+     }
+     optionValue = std::make_shared<TranscodingProfileListOption>(result);
+     return optionValue;
+diff --git a/src/config/setup/config_setup_tweak.cc b/src/config/setup/config_setup_tweak.cc
+index 65dae2759..4da9fca1b 100644
+--- a/src/config/setup/config_setup_tweak.cc
++++ b/src/config/setup/config_setup_tweak.cc
+@@ -257,7 +257,7 @@ std::shared_ptr<ConfigOption> ConfigDirectorySetup::newOption(const pugi::xml_no
+     auto result = std::make_shared<DirectoryConfigList>();
+ 
+     if (!createOptionFromNode(optValue, result)) {
+-        throw_std_runtime_error("Init {} DirectoryConfigList failed '{}'", xpath, optValue);
++        throw_std_runtime_error("Init {} DirectoryConfigList failed '{}'", xpath, optValue.name());
+     }
+     optionValue = std::make_shared<DirectoryTweakOption>(result);
+     return optionValue;
+diff --git a/src/config/setup/config_setup_vector.cc b/src/config/setup/config_setup_vector.cc
+index e5efe2767..9a9670569 100644
+--- a/src/config/setup/config_setup_vector.cc
++++ b/src/config/setup/config_setup_vector.cc
+@@ -181,7 +181,7 @@ std::vector<std::vector<std::pair<std::string, std::string>>> ConfigVectorSetup:
+ {
+     std::vector<std::vector<std::pair<std::string, std::string>>> result;
+     if (!createOptionFromNode(optValue, result) && required) {
+-        throw_std_runtime_error("Init {} vector failed '{}'", xpath, optValue);
++        throw_std_runtime_error("Init {} vector failed '{}'", xpath, optValue.name());
+     }
+     if (result.empty()) {
+         log_debug("{} assigning {} default values", xpath, defaultEntries.size());
+@@ -189,7 +189,7 @@ std::vector<std::vector<std::pair<std::string, std::string>>> ConfigVectorSetup:
+         result = defaultEntries;
+     }
+     if (notEmpty && result.empty()) {
+-        throw_std_runtime_error("Invalid vector {} empty '{}'", xpath, optValue);
++        throw_std_runtime_error("Invalid vector {} empty '{}'", xpath, optValue.name());
+     }
+     return result;
+ }



More information about the buildroot mailing list