pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/multimedia/gerbera



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sat Jan  3 10:28:11 UTC 2026

Modified Files:
        pkgsrc/multimedia/gerbera: distinfo
Added Files:
        pkgsrc/multimedia/gerbera/patches: patch-src_content_import__service.cc
            patch-src_database_sql__database.cc patch-src_upnp_xml__builder.cc
            patch-src_util_grb__time.cc patch-src_util_grb__time.h
            patch-src_web_clients.cc patch-src_web_config__load.cc
            patch-src_web_edit__load.cc

Log Message:
gerbera: fix build with fmtlib 12


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 pkgsrc/multimedia/gerbera/distinfo
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/multimedia/gerbera/patches/patch-src_content_import__service.cc \
    pkgsrc/multimedia/gerbera/patches/patch-src_database_sql__database.cc \
    pkgsrc/multimedia/gerbera/patches/patch-src_upnp_xml__builder.cc \
    pkgsrc/multimedia/gerbera/patches/patch-src_util_grb__time.cc \
    pkgsrc/multimedia/gerbera/patches/patch-src_util_grb__time.h \
    pkgsrc/multimedia/gerbera/patches/patch-src_web_clients.cc \
    pkgsrc/multimedia/gerbera/patches/patch-src_web_config__load.cc \
    pkgsrc/multimedia/gerbera/patches/patch-src_web_edit__load.cc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/multimedia/gerbera/distinfo
diff -u pkgsrc/multimedia/gerbera/distinfo:1.10 pkgsrc/multimedia/gerbera/distinfo:1.11
--- pkgsrc/multimedia/gerbera/distinfo:1.10     Mon Jan 27 16:19:02 2025
+++ pkgsrc/multimedia/gerbera/distinfo  Sat Jan  3 10:28:11 2026
@@ -1,7 +1,15 @@
-$NetBSD: distinfo,v 1.10 2025/01/27 16:19:02 wiz Exp $
+$NetBSD: distinfo,v 1.11 2026/01/03 10:28:11 wiz Exp $
 
 BLAKE2s (gerbera-2.4.1.tar.gz) = f39150e2f9fa0d96f35d828b1143279cba7b581dcb5efb9b941ea211d20536fc
 SHA512 (gerbera-2.4.1.tar.gz) = a9081b86170acbf9665a38ef441c082ff8d025c318991deb816d389668ad898532f1ab12341bbc8b109879b790af54083ccf407663ebd9046e9179039f06609c
 Size (gerbera-2.4.1.tar.gz) = 9594796 bytes
 SHA1 (patch-CMakeLists.txt) = 7b8e0e42547da4545be4fdf19dd27e6b5592f21d
 SHA1 (patch-src_config_grb__runtime.cc) = f3118cbffe4fa13bb3a552f31d86cb9bc486b95f
+SHA1 (patch-src_content_import__service.cc) = 4afa79c0ed08d053fcae2fffbf9c2ea184f9ef30
+SHA1 (patch-src_database_sql__database.cc) = 4bc31070b57231e7a82c8875a166df53b9bbef2f
+SHA1 (patch-src_upnp_xml__builder.cc) = 7a6f9a057aafce559af4c0b2d9d2e02a6998676e
+SHA1 (patch-src_util_grb__time.cc) = 1940cd5db96c58f0491c78287f616b33b7a02ce3
+SHA1 (patch-src_util_grb__time.h) = b36497e5aba2a4f2dac70c5ad443c1ccc6330b8b
+SHA1 (patch-src_web_clients.cc) = dac816adfb88e86e1a67ac487c1979b08438f6fc
+SHA1 (patch-src_web_config__load.cc) = 547ec3deb458a84083ab2ac79c3518155ec26d86
+SHA1 (patch-src_web_edit__load.cc) = e00adf578a7093968ca9d4160fe485c32504202c

Added files:

Index: pkgsrc/multimedia/gerbera/patches/patch-src_content_import__service.cc
diff -u /dev/null pkgsrc/multimedia/gerbera/patches/patch-src_content_import__service.cc:1.1
--- /dev/null   Sat Jan  3 10:28:11 2026
+++ pkgsrc/multimedia/gerbera/patches/patch-src_content_import__service.cc      Sat Jan  3 10:28:11 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_content_import__service.cc,v 1.1 2026/01/03 10:28:11 wiz Exp $
+
+Fix build with fmtlib 12.
+
+--- src/content/import_service.cc.orig 2026-01-03 10:18:38.817729876 +0000
++++ src/content/import_service.cc
+@@ -763,7 +763,7 @@ void ImportService::parseMetafile(const 
+ void ImportService::updateItemData(const std::shared_ptr<CdsItem>& item, const std::string& mimetype)
+ {
+     if (hasDefaultDate && item->getMetaData(MetadataFields::M_DATE).empty())
+-        item->addMetaData(MetadataFields::M_DATE, fmt::format("{:%FT%T%z}", fmt::localtime(item->getMTime().count())));
++        item->addMetaData(MetadataFields::M_DATE, grbLocaltime("{:%FT%T%z}", item->getMTime()));
+     for (auto&& upnpPattern : upnpMap) {
+         if (upnpPattern.isMatch(item, mimetype)) {
+             item->setClass(upnpPattern.upnpClass);
Index: pkgsrc/multimedia/gerbera/patches/patch-src_database_sql__database.cc
diff -u /dev/null pkgsrc/multimedia/gerbera/patches/patch-src_database_sql__database.cc:1.1
--- /dev/null   Sat Jan  3 10:28:11 2026
+++ pkgsrc/multimedia/gerbera/patches/patch-src_database_sql__database.cc       Sat Jan  3 10:28:11 2026
@@ -0,0 +1,43 @@
+$NetBSD: patch-src_database_sql__database.cc,v 1.1 2026/01/03 10:28:11 wiz Exp $
+
+Fix build with fmtlib 12.
+
+--- src/database/sql_database.cc.orig  2026-01-03 10:19:17.058170945 +0000
++++ src/database/sql_database.cc
+@@ -1447,7 +1447,8 @@ int SQLDatabase::ensurePathExistence(con
+         *changedContainer = parentID;
+ 
+     std::vector<std::pair<std::string, std::string>> itemMetadata;
+-    itemMetadata.emplace_back(MetaEnumMapper::getMetaFieldName(MetadataFields::M_DATE), fmt::format("{:%FT%T%z}", fmt::localtime(toSeconds(fs::last_write_time(path)).count())));
++    itemMetadata.emplace_back(MetaEnumMapper::getMetaFieldName(MetadataFields::M_DATE), grbLocaltime("{:%FT%T%z}", toSeconds(fs::last_write_time(path))));
++
+ 
+     auto f2i = converterManager->f2i();
+     return createContainer(parentID, f2i->convert(path.filename()), path, OBJECT_FLAG_RESTRICTED, false, "", INVALID_OBJECT_ID, itemMetadata);
+@@ -1641,7 +1642,7 @@ bool SQLDatabase::addContainer(int paren
+     commit("addContainer");
+ 
+     if (cont->getMetaData(MetadataFields::M_DATE).empty())
+-        cont->addMetaData(MetadataFields::M_DATE, fmt::format("{:%FT%T%z}", fmt::localtime(cont->getMTime().count())));
++        cont->addMetaData(MetadataFields::M_DATE, grbLocaltime("{:%FT%T%z}", cont->getMTime()));
+ 
+     *containerID = createContainer(parentContainerId, cont->getTitle(), virtualPath, cont->getFlags(), cont->isVirtual(), cont->getClass(), cont->getFlag(OBJECT_FLAG_PLAYLIST_REF) ? 
cont->getRefID() : INVALID_OBJECT_ID, cont->getMetaData(), cont->getResources());
+     return true;
+@@ -2582,7 +2583,7 @@ std::vector<std::map<std::string, std::s
+         stats["name"] = row->col(0);
+         stats["count"] = fmt::format("{}", row->col_int(1, -1));
+         stats["playCount"] = fmt::format("{}", row->col_int(2, -1));
+-        stats["last"] = fmt::format("{:%a %b %d %H:%M:%S %Y}", fmt::localtime(std::chrono::seconds(row->col_int(3, 0)).count()));
++        stats["last"] = grbLocaltime("{:%a %b %d %H:%M:%S %Y}", std::chrono::seconds(row->col_int(3, 0)));
+         stats["bookmarks"] = fmt::format("{}", row->col_int(4, -1));
+         result.push_back(std::move(stats));
+     }
+@@ -2708,7 +2709,7 @@ std::shared_ptr<AutoscanDirectory> SQLDa
+         interval = std::stoi(getCol(row, AutoscanColumn::Interval));
+     auto lastModified = std::chrono::seconds(std::stol(getCol(row, AutoscanColumn::LastModified)));
+ 
+-    log_info("Loading autoscan location: {}; recursive: {}, mt: {}/{}, last_modified: {}", location.c_str(), recursive, mt, AutoscanDirectory::mapMediaType(mt), lastModified > 
std::chrono::seconds::zero() ? fmt::format("{:%Y-%m-%d %H:%M:%S}", fmt::localtime(lastModified.count())) : "unset");
++    log_info("Loading autoscan location: {}; recursive: {}, mt: {}/{}, last_modified: {}", location.c_str(), recursive, mt, AutoscanDirectory::mapMediaType(mt), lastModified > 
std::chrono::seconds::zero() ? grbLocaltime("{:%Y-%m-%d %H:%M:%S}", lastModified) : "unset");
+ 
+     auto dir = std::make_shared<AutoscanDirectory>(location, mode, recursive, persistent, interval, hidden, followSymlinks, mt, containerMap);
+     dir->setObjectID(objectID);
Index: pkgsrc/multimedia/gerbera/patches/patch-src_upnp_xml__builder.cc
diff -u /dev/null pkgsrc/multimedia/gerbera/patches/patch-src_upnp_xml__builder.cc:1.1
--- /dev/null   Sat Jan  3 10:28:11 2026
+++ pkgsrc/multimedia/gerbera/patches/patch-src_upnp_xml__builder.cc    Sat Jan  3 10:28:11 2026
@@ -0,0 +1,24 @@
+$NetBSD: patch-src_upnp_xml__builder.cc,v 1.1 2026/01/03 10:28:11 wiz Exp $
+
+Fix build with fmtlib 12.
+
+--- src/upnp/xml_builder.cc.orig       2026-01-03 10:23:20.003405707 +0000
++++ src/upnp/xml_builder.cc
+@@ -451,7 +451,7 @@ void UpnpXMLBuilder::renderObject(
+         auto playStatus = item->getPlayStatus();
+         if (playStatus) {
+             auxData[UPNP_SEARCH_PLAY_COUNT] = fmt::format("{}", playStatus->getPlayCount());
+-            auxData[UPNP_SEARCH_LAST_PLAYED] = fmt::format("{:%Y-%m-%d T %H:%M:%S}", fmt::localtime(playStatus->getLastPlayed().count()));
++            auxData[UPNP_SEARCH_LAST_PLAYED] = grbLocaltime("{:%Y-%m-%dT%H:%M:%S}", playStatus->getLastPlayed());
+             auxData["upnp:lastPlaybackPosition"] = fmt::format("{}", millisecondsToHMSF(playStatus->getLastPlayedPosition().count()));
+             propNames.push_back(addField(result, objFilter, UPNP_SEARCH_PLAY_COUNT, auxData[UPNP_SEARCH_PLAY_COUNT]));
+             propNames.push_back(addField(result, objFilter, UPNP_SEARCH_LAST_PLAYED, auxData[UPNP_SEARCH_LAST_PLAYED]));
+@@ -487,7 +487,7 @@ void UpnpXMLBuilder::renderObject(
+     // make sure a date is set
+     auto dateNode = result.child(DC_DATE);
+     if (!dateNode) {
+-        auto fDate = fmt::format("{:%FT%T%z}", fmt::localtime(obj->getMTime().count()));
++        auto fDate = grbLocaltime("{:%FT%T%z}", obj->getMTime());
+         if (simpleDate)
+             fDate = makeSimpleDate(fDate);
+         result.append_child(DC_DATE).append_child(pugi::node_pcdata).set_value(fDate.c_str());
Index: pkgsrc/multimedia/gerbera/patches/patch-src_util_grb__time.cc
diff -u /dev/null pkgsrc/multimedia/gerbera/patches/patch-src_util_grb__time.cc:1.1
--- /dev/null   Sat Jan  3 10:28:11 2026
+++ pkgsrc/multimedia/gerbera/patches/patch-src_util_grb__time.cc       Sat Jan  3 10:28:11 2026
@@ -0,0 +1,18 @@
+$NetBSD: patch-src_util_grb__time.cc,v 1.1 2026/01/03 10:28:11 wiz Exp $
+
+Fix build with fmtlib 12.
+
+--- src/util/grb_time.cc.orig  2026-01-03 10:16:00.906382021 +0000
++++ src/util/grb_time.cc
+@@ -173,3 +173,11 @@ bool parseTime(int& value, std::string& 
+         timeValue = fmt::to_string(value);
+     return !list.empty();
+ }
++
++std::string grbLocaltime(const std::string& format, const std::chrono::seconds& t)
++{
++    std::time_t time = t.count();
++    std::tm tm;
++    localtime_r(&time, &tm);
++    return fmt::format(format, tm);
++}
Index: pkgsrc/multimedia/gerbera/patches/patch-src_util_grb__time.h
diff -u /dev/null pkgsrc/multimedia/gerbera/patches/patch-src_util_grb__time.h:1.1
--- /dev/null   Sat Jan  3 10:28:11 2026
+++ pkgsrc/multimedia/gerbera/patches/patch-src_util_grb__time.h        Sat Jan  3 10:28:11 2026
@@ -0,0 +1,14 @@
+$NetBSD: patch-src_util_grb__time.h,v 1.1 2026/01/03 10:28:11 wiz Exp $
+
+Fix build with fmtlib 12.
+
+--- src/util/grb_time.h.orig   2026-01-03 10:16:19.970930015 +0000
++++ src/util/grb_time.h
+@@ -59,4 +59,7 @@ bool parseSimpleDate(const std::string& 
+ bool parseTime(int& value, std::string& timeValue, GrbTimeType type = GrbTimeType::Seconds);
+ std::string makeSimpleDate(std::string& s);
+ 
++/// @brief Converts seconds to localtime and prints a formatted string
++std::string grbLocaltime(const std::string& format, const std::chrono::seconds& t);
++
+ #endif // __GRB_TIME_H__
Index: pkgsrc/multimedia/gerbera/patches/patch-src_web_clients.cc
diff -u /dev/null pkgsrc/multimedia/gerbera/patches/patch-src_web_clients.cc:1.1
--- /dev/null   Sat Jan  3 10:28:11 2026
+++ pkgsrc/multimedia/gerbera/patches/patch-src_web_clients.cc  Sat Jan  3 10:28:11 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_web_clients.cc,v 1.1 2026/01/03 10:28:11 wiz Exp $
+
+Fix build with fmtlib 12.
+
+--- src/web/clients.cc.orig    2026-01-03 10:10:41.591243145 +0000
++++ src/web/clients.cc
+@@ -40,7 +40,7 @@
+ 
+ static std::string secondsToString(const std::chrono::seconds& t)
+ {
+-    return fmt::format("{:%a %b %d %H:%M:%S %Y}", fmt::localtime(t.count()));
++    return grbLocaltime("{:%a %b %d %H:%M:%S %Y}", t);
+ }
+ 
+ void Web::Clients::process()
Index: pkgsrc/multimedia/gerbera/patches/patch-src_web_config__load.cc
diff -u /dev/null pkgsrc/multimedia/gerbera/patches/patch-src_web_config__load.cc:1.1
--- /dev/null   Sat Jan  3 10:28:11 2026
+++ pkgsrc/multimedia/gerbera/patches/patch-src_web_config__load.cc     Sat Jan  3 10:28:11 2026
@@ -0,0 +1,24 @@
+$NetBSD: patch-src_web_config__load.cc,v 1.1 2026/01/03 10:28:11 wiz Exp $
+
+Fix build with fmtlib 12.
+
+--- src/web/config_load.cc.orig        2026-01-03 10:22:29.869812021 +0000
++++ src/web/config_load.cc
+@@ -114,7 +114,7 @@ void Web::ConfigLoad::createItem(pugi::x
+ template <typename T>
+ void Web::ConfigLoad::setValue(pugi::xml_node& item, const T& value)
+ {
+-    static_assert(fmt::has_formatter<T, fmt::format_context>::value, "T must be formattable");
++    static_assert(fmt::is_formattable<T, fmt::format_context>::value, "T must be formattable");
+     item.append_attribute(CONFIG_LOAD_VALUE) = fmt::to_string(value).c_str();
+ }
+ 
+@@ -917,7 +917,7 @@ void Web::ConfigLoad::writeAutoscan(pugi
+             // Last modified
+             item = values.append_child(CONFIG_LOAD_ITEM);
+             createItem(item, ascs->getItemPath(indexList, { ConfigVal::A_AUTOSCAN_DIRECTORY_LMT }), ascs->option, ConfigVal::A_AUTOSCAN_DIRECTORY_LMT);
+-            setValue(item, fmt::format("{:%Y-%m-%d %H:%M:%S}", fmt::localtime(adir->getPreviousLMT().count())));
++            setValue(item, grbLocaltime("{:%Y-%m-%d %H:%M:%S}", adir->getPreviousLMT()));
+         }
+         // Allow creation of entry in blank config
+         {
Index: pkgsrc/multimedia/gerbera/patches/patch-src_web_edit__load.cc
diff -u /dev/null pkgsrc/multimedia/gerbera/patches/patch-src_web_edit__load.cc:1.1
--- /dev/null   Sat Jan  3 10:28:11 2026
+++ pkgsrc/multimedia/gerbera/patches/patch-src_web_edit__load.cc       Sat Jan  3 10:28:11 2026
@@ -0,0 +1,33 @@
+$NetBSD: patch-src_web_edit__load.cc,v 1.1 2026/01/03 10:28:11 wiz Exp $
+
+Fix build with fmtlib 12.
+
+--- src/web/edit_load.cc.orig  2026-01-03 10:17:26.553925116 +0000
++++ src/web/edit_load.cc
+@@ -80,7 +80,7 @@ void Web::EditLoad::process()
+ 
+     if (obj->getMTime() > std::chrono::seconds::zero()) {
+         auto lmtEl = item.append_child("last_modified");
+-        lmtEl.append_attribute("value") = fmt::format("{:%Y-%m-%d %H:%M:%S}", fmt::localtime(obj->getMTime().count())).c_str();
++        lmtEl.append_attribute("value") = grbLocaltime("{:%Y-%m-%d %H:%M:%S}", obj->getMTime());
+         lmtEl.append_attribute("editable") = false;
+     } else {
+         auto lmtEl = item.append_child("last_modified");
+@@ -90,7 +90,7 @@ void Web::EditLoad::process()
+ 
+     if (obj->getUTime() > std::chrono::seconds::zero()) {
+         auto lmtEl = item.append_child("last_updated");
+-        lmtEl.append_attribute("value") = fmt::format("{:%Y-%m-%d %H:%M:%S}", fmt::localtime(obj->getUTime().count())).c_str();
++        lmtEl.append_attribute("value") = grbLocaltime("{:%Y-%m-%d %H:%M:%S}", obj->getUTime());
+         lmtEl.append_attribute("editable") = false;
+     } else {
+         auto lmtEl = item.append_child("last_updated");
+@@ -222,7 +222,7 @@ void Web::EditLoad::process()
+ 
+             metaEntry = metaData.append_child("metadata");
+             metaEntry.append_attribute("metaname") = fmt::format("upnp:lastPlaybackTime@group[{}]", playStatus->getGroup()).c_str();
+-            metaEntry.append_attribute("metavalue") = fmt::format("{:%Y-%m-%d T %H:%M:%S}", fmt::localtime(playStatus->getLastPlayed().count())).c_str();
++            metaEntry.append_attribute("metavalue") = grbLocaltime("{:%Y-%m-%d T %H:%M:%S}", playStatus->getLastPlayed());
+             metaEntry.append_attribute("editable") = false;
+ 
+             if (playStatus->getLastPlayedPosition() > std::chrono::seconds::zero()) {



Home | Main Index | Thread Index | Old Index