diff --git a/net/gerbera/Makefile b/net/gerbera/Makefile index 2c7b6c71b19b..a52642bb3478 100644 --- a/net/gerbera/Makefile +++ b/net/gerbera/Makefile @@ -1,101 +1,100 @@ PORTNAME= gerbera DISTVERSIONPREFIX= v -DISTVERSION= 3.2.1 -PORTREVISION= 1 +DISTVERSION= 3.3.0 CATEGORIES= net multimedia MAINTAINER= diizzy@FreeBSD.org COMMENT= Media server compatible with DLNA and UPnP WWW= https://gerbera.io/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE.md BROKEN_i386= error: non-constant-expression cannot be narrowed from type 'rep' (aka 'long long') to 'time_t' (aka 'int') in initializer list BUILD_DEPENDS= cxxopts>0:devel/cxxopts LIB_DEPENDS= libfmt.so:devel/libfmt \ libicui18n.so:devel/icu \ libjsoncpp.so:devel/jsoncpp \ libspdlog.so:devel/spdlog \ libpugixml.so:textproc/pugixml USES= cmake compiler:c++17-lang iconv localbase:ldflags \ pkgconfig sqlite USE_GITHUB= yes USE_RC_SUBR= gerbera USERS= gerbera GROUPS= gerbera SUB_LIST= USER=${USERS} GROUP=${GROUPS} PLIST_SUB= USER=${USERS} GROUP=${GROUPS} CMAKE_OFF= WITH_EXIF WITH_LASTFM WITH_MATROSKA WITH_MYSQL WITH_SYSTEMD \ WITH_ZIP CMAKE_ON= WITH_MAGIC OPTIONS_DEFINE= CURL DEBUG DUKTAPE EXIV2 FFMPEG FFMPEGTHUMBNAILER \ TAGLIB TEST OPTIONS_DEFAULT= CURL DUKTAPE EXIV2 FFMPEG TAGLIB LIBNPUPNP OPTIONS_SINGLE= UPNPLIB OPTIONS_SINGLE_UPNPLIB= LIBNPUPNP LIBUPNP CURL_DESC= Support for online services via cURL DUKTAPE_DESC= Javascript support for custom import scripts FFMPEGTHUMBNAILER_DESC= Support for thumbnail generation LIBNPUPNP_DESC= Use high performance libnpupnp library LIBUPNP_DESC= Use libupnp library TAGLIB_DESC= Extract audio file metadata via taglib CURL_LIB_DEPENDS= libcurl.so:ftp/curl CURL_CMAKE_BOOL= WITH_CURL DEBUG_CMAKE_BOOL= WITH_DEBUG DUKTAPE_LIB_DEPENDS= libduktape.so:lang/duktape-lib DUKTAPE_CMAKE_BOOL= WITH_JS EXIV2_LIB_DEPENDS= libexiv2.so:graphics/exiv2 EXIV2_CMAKE_BOOL= WITH_EXIV2 FFMPEGTHUMBNAILER_LIB_DEPENDS= libffmpegthumbnailer.so:multimedia/ffmpegthumbnailer FFMPEGTHUMBNAILER_CMAKE_BOOL= WITH_FFMPEGTHUMBNAILER FFMPEGTHUMBNAILER_IMPLIES= FFMPEG FFMPEG_LIB_DEPENDS= libavformat.so:multimedia/ffmpeg \ libavutil.so:multimedia/ffmpeg FFMPEG_CMAKE_BOOL= WITH_AVCODEC LIBNPUPNP_LIB_DEPENDS= libnpupnp.so:net/libnpupnp LIBNPUPNP_CMAKE_BOOL= WITH_NPUPNP LIBUPNP_LIB_DEPENDS= libupnp.so:devel/upnp TAGLIB_LIB_DEPENDS= libtag.so:audio/taglib TAGLIB_CMAKE_BOOL= WITH_TAGLIB TEST_BUILD_DEPENDS= googletest>=0:devel/googletest TEST_CMAKE_BOOL= WITH_TESTS TEST_TEST_TARGET= test TEST_IMPLIES= CURL DUKTAPE TEST_ENV= CTEST_PARALLEL_LEVEL=${MAKE_JOBS_NUMBER} .include .if ${OPSYS} == FreeBSD && ${OSVERSION} < 1500050 LIB_DEPENDS+= libinotify.so:devel/libinotify .else EXTRA_PATCHES= ${PATCHDIR}/extra-patch-FreeBSD-15-inotify .endif post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/gerbera @${MKDIR} ${STAGEDIR}/var/db/gerbera @${MKDIR} ${STAGEDIR}/var/log/gerbera @${STAGEDIR}${PREFIX}/bin/gerbera -f /var/db/gerbera --create-config > ${STAGEDIR}${PREFIX}/etc/gerbera-config.xml.sample .include diff --git a/net/gerbera/distinfo b/net/gerbera/distinfo index eac757f978bd..ab44b5471311 100644 --- a/net/gerbera/distinfo +++ b/net/gerbera/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1774165590 -SHA256 (gerbera-gerbera-v3.2.1_GH0.tar.gz) = 6b89d0c416b6d98e34634e5b1121f340315d60b088e9e6b2fca423488760030f -SIZE (gerbera-gerbera-v3.2.1_GH0.tar.gz) = 10059938 +TIMESTAMP = 1789892490 +SHA256 (gerbera-gerbera-v3.3.0_GH0.tar.gz) = 79db1b4d9fcfafe5cb6a30eb29174f912f1b2c04a644bd5fe5075bccad10eb97 +SIZE (gerbera-gerbera-v3.3.0_GH0.tar.gz) = 10092220 diff --git a/net/gerbera/files/patch-git-01-3e73aeb54f5f4be70bc4c74f6c7362287bdbb13f b/net/gerbera/files/patch-git-01-3e73aeb54f5f4be70bc4c74f6c7362287bdbb13f deleted file mode 100644 index 4bd2e0d74895..000000000000 --- a/net/gerbera/files/patch-git-01-3e73aeb54f5f4be70bc4c74f6c7362287bdbb13f +++ /dev/null @@ -1,56 +0,0 @@ -From 3e73aeb54f5f4be70bc4c74f6c7362287bdbb13f Mon Sep 17 00:00:00 2001 -From: Karlchen -Date: Sun, 7 Jun 2026 00:21:04 +0200 -Subject: [PATCH] Handle url decoding correctly - ---- - ChangeLog.md | 1 + - ReleaseNotes.md | 1 + - src/upnp/compat.h | 5 +++++ - src/util/url_utils.cc | 3 ++- - 4 files changed, 9 insertions(+), 1 deletion(-) - -diff --git a/src/upnp/compat.h b/src/upnp/compat.h -index 3470efe1d..cb1d91b15 100644 ---- src/upnp/compat.h -+++ src/upnp/compat.h -@@ -46,6 +46,9 @@ static constexpr grb_read_t GRB_READ_ERROR = -1; - #define GrbUpnpFileInfoSetContentType(i, mt) (i)->content_type = std::move((mt)) - #define GrbUpnpGetHeaders(i) (i)->request_headers - #define GrbUpnpSetHeaders(i, h) std::copy((h).begin(), (h).end(), std::back_inserter((i)->response_headers)) -+// npupnp reencodes the query arguments to build a parsable URL. We need another -+// decoding layer when using it. -+#define GrbUrlUnescape(u) urlUnescape(urlUnescape(u)) - - #define UPNP_NEEDS_LITERAL_HOST_REDIRECT - extern "C" void UpnpSetAllowLiteralHostRedirection(int); -@@ -80,6 +83,8 @@ void UpnpSetHeadersCompat(const UpnpFileInfo* fileInfo, const std::map 170000 and UPNP_VERSION <= 170110) - // new method added - #define UPNP_NEEDS_CORS -diff --git a/src/util/url_utils.cc b/src/util/url_utils.cc -index 884f23667..3a80e9096 100644 ---- src/util/url_utils.cc -+++ src/util/url_utils.cc -@@ -24,6 +24,7 @@ Gerbera - https://gerbera.io/ - #include "url_utils.h" // API - - #include "exceptions.h" -+#include "upnp/compat.h" - - #include - #if FMT_VERSION >= 100202 -@@ -195,7 +196,7 @@ std::map dictDecode(std::string_view url, bool unEscap - auto key = std::string_view(data, eqPos - data); - auto value = std::string_view(eqPos + 1, ampPos - eqPos - 1); - if (unEscape) { -- dict.try_emplace(urlUnescape(key), urlUnescape(value)); -+ dict.try_emplace(GrbUrlUnescape(key), GrbUrlUnescape(value)); - } else { - dict.emplace(key, value); - } diff --git a/net/gerbera/pkg-plist b/net/gerbera/pkg-plist index 552b3211c998..2a2a7d5d3e0f 100644 --- a/net/gerbera/pkg-plist +++ b/net/gerbera/pkg-plist @@ -1,99 +1,100 @@ bin/gerbera %%DATADIR%%/config2.xsd %%DATADIR%%/js/audio.js %%DATADIR%%/js/common.js +%%DATADIR%%/js/cuesheet.js %%DATADIR%%/js/image.js %%DATADIR%%/js/import.js %%DATADIR%%/js/metadata.js %%DATADIR%%/js/playlists.js %%DATADIR%%/js/shared.js %%DATADIR%%/js/trailer.js %%DATADIR%%/js/video.js %%DATADIR%%/mysql-drop.sql %%DATADIR%%/mysql-upgrade.xml %%DATADIR%%/mysql.sql %%DATADIR%%/postgres-drop.sql %%DATADIR%%/postgres-upgrade.xml %%DATADIR%%/postgres.sql %%DATADIR%%/sqlite3-drop.sql %%DATADIR%%/sqlite3-upgrade.xml %%DATADIR%%/sqlite3.sql %%DATADIR%%/web/README.md %%DATADIR%%/web/assets/gerbera-config-expert.json %%DATADIR%%/web/assets/gerbera-config-minimal.json %%DATADIR%%/web/assets/gerbera-config-standard.json %%DATADIR%%/web/assets/theme/colors.css %%DATADIR%%/web/assets/theme/gerbera-logo-white.png %%DATADIR%%/web/assets/theme/gerbera.css %%DATADIR%%/web/assets/theme/home-bg.jpg %%DATADIR%%/web/css/upnp.css %%DATADIR%%/web/disabled.html %%DATADIR%%/web/favicon.ico %%DATADIR%%/web/icons/mt-icon120.bmp %%DATADIR%%/web/icons/mt-icon120.jpg %%DATADIR%%/web/icons/mt-icon120.png %%DATADIR%%/web/icons/mt-icon32.bmp %%DATADIR%%/web/icons/mt-icon32.jpg %%DATADIR%%/web/icons/mt-icon32.png %%DATADIR%%/web/icons/mt-icon48.bmp %%DATADIR%%/web/icons/mt-icon48.jpg %%DATADIR%%/web/icons/mt-icon48.png %%DATADIR%%/web/index.html %%DATADIR%%/web/js/gerbera-app.module.js %%DATADIR%%/web/js/gerbera-auth.module.js %%DATADIR%%/web/js/gerbera-autoscan.module.js %%DATADIR%%/web/js/gerbera-clients.module.js %%DATADIR%%/web/js/gerbera-config.module.js %%DATADIR%%/web/js/gerbera-items.module.js %%DATADIR%%/web/js/gerbera-menu.module.js %%DATADIR%%/web/js/gerbera-trail.module.js %%DATADIR%%/web/js/gerbera-tree.module.js %%DATADIR%%/web/js/gerbera-tweak.module.js %%DATADIR%%/web/js/gerbera-updates.module.js %%DATADIR%%/web/js/jquery.gerbera.autoscan.js %%DATADIR%%/web/js/jquery.gerbera.clients.js %%DATADIR%%/web/js/jquery.gerbera.config.js %%DATADIR%%/web/js/jquery.gerbera.editor.js %%DATADIR%%/web/js/jquery.gerbera.items.js %%DATADIR%%/web/js/jquery.gerbera.toast.js %%DATADIR%%/web/js/jquery.gerbera.trail.js %%DATADIR%%/web/js/jquery.gerbera.tree.js %%DATADIR%%/web/js/jquery.gerbera.tweak.js %%DATADIR%%/web/upnp/cds.xml %%DATADIR%%/web/upnp/cm.xml %%DATADIR%%/web/upnp/mr_reg.xml %%DATADIR%%/web/vendor/bootstrap-4.6.2/css/bootstrap-grid.min.css %%DATADIR%%/web/vendor/bootstrap-4.6.2/css/bootstrap-grid.min.css.map %%DATADIR%%/web/vendor/bootstrap-4.6.2/css/bootstrap-reboot.min.css %%DATADIR%%/web/vendor/bootstrap-4.6.2/css/bootstrap-reboot.min.css.map %%DATADIR%%/web/vendor/bootstrap-4.6.2/css/bootstrap.min.css %%DATADIR%%/web/vendor/bootstrap-4.6.2/css/bootstrap.min.css.map %%DATADIR%%/web/vendor/bootstrap-4.6.2/js/bootstrap.min.js %%DATADIR%%/web/vendor/bootstrap-4.6.2/js/bootstrap.min.js.map %%DATADIR%%/web/vendor/font-awesome/css/font-awesome.css %%DATADIR%%/web/vendor/font-awesome/css/font-awesome.min.css %%DATADIR%%/web/vendor/font-awesome/fonts/FontAwesome.otf %%DATADIR%%/web/vendor/font-awesome/fonts/fontawesome-webfont.eot %%DATADIR%%/web/vendor/font-awesome/fonts/fontawesome-webfont.svg %%DATADIR%%/web/vendor/font-awesome/fonts/fontawesome-webfont.ttf %%DATADIR%%/web/vendor/font-awesome/fonts/fontawesome-webfont.woff %%DATADIR%%/web/vendor/font-awesome/fonts/fontawesome-webfont.woff2 %%DATADIR%%/web/vendor/jquery/jquery-3.7.1.min.js %%DATADIR%%/web/vendor/jquery/jquery-3.7.1.min.map %%DATADIR%%/web/vendor/jquery/jquery-ui.min.js %%DATADIR%%/web/vendor/js-cookie.min.js %%DATADIR%%/web/vendor/lato/LICENCE.md %%DATADIR%%/web/vendor/lato/lato-v14-latin-ext_latin-regular.woff %%DATADIR%%/web/vendor/lato/lato-v14-latin-ext_latin-regular.woff2 %%DATADIR%%/web/vendor/md5.min.js %%DATADIR%%/web/vendor/md5.min.js.map %%DATADIR%%/web/vendor/popper/popper.min.js %%DATADIR%%/web/vendor/popper/popper.min.js.map %%DATADIR%%/web/vendor/tether-2.0.0/tether.min.css %%DATADIR%%/web/vendor/tether-2.0.0/tether.min.js share/man/man1/gerbera.1.gz @owner %%USER%% @group %%GROUP%% @dir /var/db/gerbera @dir /var/log/gerbera @sample(gerbera,gerbera,0640) /usr/local/etc/gerbera-config.xml.sample