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