Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gerbera for openSUSE:Factory checked 
in at 2022-05-25 20:35:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gerbera (Old)
 and      /work/SRC/openSUSE:Factory/.gerbera.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gerbera"

Wed May 25 20:35:05 2022 rev:7 rq:979177 version:1.11.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/gerbera/gerbera.changes  2022-03-22 
19:39:53.791070795 +0100
+++ /work/SRC/openSUSE:Factory/.gerbera.new.2254/gerbera.changes        
2022-05-25 20:35:52.728337874 +0200
@@ -1,0 +2,35 @@
+Wed May 25 09:36:13 UTC 2022 - Paolo Stivanin <[email protected]>
+
+- Update 2635.patch
+
+-------------------------------------------------------------------
+Wed May 18 09:23:12 UTC 2022 - Paolo Stivanin <[email protected]>
+
+- Add 2635.patch: this fixes and issue on i586 and x86
+
+-------------------------------------------------------------------
+Mon May  9 06:10:54 UTC 2022 - Paolo Stivanin <[email protected]>
+
+- Update to 1.11.0:
+  * New features:
+    - Database: Clients and statistics are stored database so restart
+      does not empty client list. Client grouping for play statistics.
+    - Search: Support searching playlists containers
+    - Search: Respect ContainerID when performing search
+    - Import: item class filtering and mapping by file properties
+      allows more sophisticated virtual structure
+    - Transcoding: Support filtering transcoding profiles by resource 
properties
+      (like codecs) avoids transcoding if client can play files
+    - DLNA: Detect DNLA profiles by resource attributes to specify more 
detailled
+      profile for handling in client
+    - File type support for WavPack improved: More metadata read with
+      special library if compiled in.
+  * Fixes:
+    - Playlist: Fix parser error
+    - Playlist: Handle end of file properly
+    - Browsing: Sort containers first
+    - Search: search result is sort by title now
+    - Import: Timestamps in future are not stored for containers
+    - Lots of others fixes: 
https://github.com/gerbera/gerbera/releases/tag/v1.11.0
+
+-------------------------------------------------------------------

Old:
----
  gerbera-1.10.0.tar.gz

New:
----
  2635.patch
  gerbera-1.11.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gerbera.spec ++++++
--- /var/tmp/diff_new_pack.MCvMik/_old  2022-05-25 20:35:53.116338416 +0200
+++ /var/tmp/diff_new_pack.MCvMik/_new  2022-05-25 20:35:53.120338421 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           gerbera
-Version:        1.10.0
+Version:        1.11.0
 Release:        0
 Summary:        UPnP Media Server
 License:        GPL-2.0-only
@@ -27,6 +27,8 @@
 Source1:        config.xml
 Source2:        gerbera.sysusers.in
 Patch0:         harden_gerbera.service.patch
+#PATCH-FIX-UPSTREAM https://github.com/gerbera/gerbera/pull/2635
+Patch1:         2635.patch
 BuildRequires:  ccache
 BuildRequires:  cmake >= 3.13
 BuildRequires:  fdupes

++++++ 2635.patch ++++++
>From ae46ab4684bd31df4537475dc33234ae85c9b1e6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Karl=20Strau=C3=9Fberger?= <[email protected]>
Date: Tue, 17 May 2022 18:13:55 +0200
Subject: [PATCH] This and that

May even solve:
---
 src/metadata/resolution.cc      |  4 ++--
 src/upnp_xml.cc                 |  4 ++--
 src/util/process_executor.cc    |  3 ++-
 src/util/tools.cc               | 18 +++++++++++++++---
 test/content/test_resolution.cc |  6 +++---
 5 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/src/metadata/resolution.cc b/src/metadata/resolution.cc
index 031cb5788..476c644e5 100644
--- a/src/metadata/resolution.cc
+++ b/src/metadata/resolution.cc
@@ -33,7 +33,7 @@ Resolution::Resolution(const std::string& string)
 
     if (!parts[0].empty()) {
         auto x = stoulString(trimString(parts[0]));
-        if (x == 0 || x == std::numeric_limits<unsigned int>::max()) {
+        if (x == 0 || x == std::numeric_limits<uint64_t>::max()) {
             throw_std_runtime_error("Failed to parse '{}' to valid 
resolution", string);
         }
         _x = x;
@@ -41,7 +41,7 @@ Resolution::Resolution(const std::string& string)
 
     if (!parts[1].empty()) {
         auto y = stoulString(trimString(parts[1]));
-        if (y == 0 || y == std::numeric_limits<unsigned int>::max()) {
+        if (y == 0 || y == std::numeric_limits<uint64_t>::max()) {
             throw_std_runtime_error("Failed to parse '{}' to valid 
resolution", string);
         }
         _y = y;
diff --git a/src/upnp_xml.cc b/src/upnp_xml.cc
index d2d6bc60b..2ed9c7bef 100644
--- a/src/upnp_xml.cc
+++ b/src/upnp_xml.cc
@@ -508,9 +508,9 @@ std::string UpnpXMLBuilder::renderExtension(const 
std::string& contentType, cons
     }
 
     if (!location.empty() && location.has_extension()) {
-        std::string extension = location.filename().extension();
+        std::string extension = 
urlEscape(location.filename().extension().string());
         if (!language.empty())
-            return fmt::format("{}.{}{}", urlExt, language, extension);
+            return fmt::format("{}.{}{}", urlExt, urlEscape(language), 
extension);
         return fmt::format("{}{}", urlExt, extension);
     }
 
diff --git a/src/util/process_executor.cc b/src/util/process_executor.cc
index 5f238058a..8557175fe 100644
--- a/src/util/process_executor.cc
+++ b/src/util/process_executor.cc
@@ -70,7 +70,8 @@ ProcessExecutor::ProcessExecutor(const std::string& command, 
const std::vector<s
             log_debug("setenv: {}='{}'", eName, eValue);
         }
         log_debug("Launching process: {} {}", command, fmt::join(arglist, " 
"));
-        execvp(command.c_str(), const_cast<char**>(argv.data()));
+        if (execvp(command.c_str(), const_cast<char**>(argv.data())))
+            log_error("Failed to execvp {} {}", command, fmt::join(arglist, " 
"));
         break;
     default:
         break;
diff --git a/src/util/tools.cc b/src/util/tools.cc
index 119b74f5b..4470b6f17 100644
--- a/src/util/tools.cc
+++ b/src/util/tools.cc
@@ -110,7 +110,13 @@ int stoiString(const std::string& str, int def, int base)
     if (str.empty() || (str[0] == '-' && 
!std::isdigit(*str.substr(1).c_str())) || (str[0] != '-' && 
!std::isdigit(*str.c_str())))
         return def;
 
-    return std::stoi(str, nullptr, base);
+    try {
+        std::size_t pos;
+        return std::stoi(str, &pos, base);
+    } catch (const std::exception& ex) {
+        log_error("{} (input {})", ex.what(), str);
+    }
+    return def;
 }
 
 unsigned long stoulString(const std::string& str, int def, int base)
@@ -118,7 +124,13 @@ unsigned long stoulString(const std::string& str, int def, 
int base)
     if (str.empty() || (str[0] == '-' && 
!std::isdigit(*str.substr(1).c_str())) || (str[0] != '-' && 
!std::isdigit(*str.c_str())))
         return def;
 
-    return std::stoul(str, nullptr, base);
+    try {
+        std::size_t pos;
+        return std::stoul(str, &pos, base);
+    } catch (const std::exception& ex) {
+        log_error("{} (input {})", ex.what(), str);
+    }
+    return def;
 }
 
 void reduceString(std::string& str, char ch)
@@ -252,7 +264,7 @@ std::string urlEscape(std::string_view str)
         if ((i + cplen) > str.length())
             cplen = 1;
 
-        if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c 
<= 'z') || c == '_' || c == '-') {
+        if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c 
<= 'z') || c == '_' || c == '-' || c == '.') {
             buf << char(c);
         } else {
             int hi = c >> 4;
diff --git a/test/content/test_resolution.cc b/test/content/test_resolution.cc
index 6d4a75610..c30c5c489 100644
--- a/test/content/test_resolution.cc
+++ b/test/content/test_resolution.cc
@@ -3,10 +3,10 @@
 #include "metadata//resolution.h"
 
 TEST(ResolutionTest, parse) {
-    auto res = Resolution("122586668x54589448448485");
+    auto res = Resolution("122586668x448448485");
 
     EXPECT_EQ(res.x(), 122586668);
-    EXPECT_EQ(res.y(), 54589448448485);
+    EXPECT_EQ(res.y(), 448448485);
 }
 
 TEST(ResolutionTest, parseWithSpace) {
@@ -38,4 +38,4 @@ TEST(ResolutionTest, throwOnBad) {
     EXPECT_THROW(Resolution("0x"), std::runtime_error);
     EXPECT_THROW(Resolution("0x1"), std::runtime_error);
     EXPECT_THROW(Resolution("1x0"), std::runtime_error);
-}
\ No newline at end of file
+}


++++++ gerbera-1.10.0.tar.gz -> gerbera-1.11.0.tar.gz ++++++
++++ 28259 lines of diff (skipped)

Reply via email to