From 45ef7a82520f38b2f85b162d07290d94e7315723 Mon Sep 17 00:00:00 2001 From: Daniel Engberg Date: Mon, 27 Jul 2020 08:11:38 +0200 Subject: [PATCH] gerbera160 gerbera160 Signed-off-by: Daniel Engberg --- GIDs | 2 +- UIDs | 2 +- net/gerbera/Makefile | 85 +++++++++++++++++++ net/gerbera/distinfo | 3 + net/gerbera/files/gerbera.in | 57 +++++++++++++ .../patch-src_metadata_ffmpeg__handler.cc | 19 +++++ .../files/patch-test_core_test__server.cc | 20 +++++ net/gerbera/pkg-descr | 3 + net/gerbera/pkg-plist | 84 ++++++++++++++++++ 9 files changed, 273 insertions(+), 2 deletions(-) create mode 100644 net/gerbera/Makefile create mode 100644 net/gerbera/distinfo create mode 100644 net/gerbera/files/gerbera.in create mode 100644 net/gerbera/files/patch-src_metadata_ffmpeg__handler.cc create mode 100644 net/gerbera/files/patch-test_core_test__server.cc create mode 100644 net/gerbera/pkg-descr create mode 100644 net/gerbera/pkg-plist diff --git a/GIDs b/GIDs index 26b2323840de..3fde94666776 100644 --- a/GIDs +++ b/GIDs @@ -819,7 +819,7 @@ librespeed:*:874: # free: 876 # free: 877 # free: 878 -# free: 879 +gerbera:*:879: pyspf-milter:*:880: ultimaker:*:881: midpoint:*:882: diff --git a/UIDs b/UIDs index d14af4f7e33c..caa04ef5959f 100644 --- a/UIDs +++ b/UIDs @@ -824,7 +824,7 @@ librespeed:*:874:874::0:0:LibreSpeed user:/nonexistent:/usr/sbin/nologin # free: 876 # free: 877 # free: 878 -# free: 879 +gerbera:*:879:879::0:0:Gerbera DLNA Media Server:/nonexistent:/usr/sbin/nologin pyspf-milter:*:880:880::0:0:pyspf-milter:/nonexistent:/usr/sbin/nologin ultimaker:*:881:881::0:0:Ultimaker user:/nonexistent:/usr/sbin/nologin midpoint:*:882:882::0:0:midPoint user:/var/db/midpoint:/usr/sbin/nologin diff --git a/net/gerbera/Makefile b/net/gerbera/Makefile new file mode 100644 index 000000000000..313ecd35b24d --- /dev/null +++ b/net/gerbera/Makefile @@ -0,0 +1,85 @@ +# $FreeBSD$ + +PORTNAME= gerbera +DISTVERSIONPREFIX= v +DISTVERSION= 1.6.0 +CATEGORIES= net multimedia + +MAINTAINER= daniel.engberg.lists@pyret.net +COMMENT= Media-server compatible with "Digital Life Network Alliance" + +LICENSE= GPLv2 + +BUILD_DEPENDS= upnp>=1.12.1:devel/upnp \ + spdlog>=1.4.0:devel/spdlog + +LIB_DEPENDS= libupnp.so:devel/upnp \ + libfmt.so:devel/libfmt \ + libspdlog.so:devel/spdlog \ + libpugixml.so:textproc/pugixml \ + libinotify.so:devel/libinotify + +RUN_DEPENDS= upnp>=1.12.1:devel/upnp \ + spdlog>=1.4.0:devel/spdlog + +TEST_BUILD_DEPENDS= googletest>=0:devel/googletest + +USES= cmake compiler:c++17-lang iconv localbase:ldflags sqlite + +USE_GITHUB= yes + +CMAKE_OFF= WITH_EXIF WITH_LASTFM WITH_MYSQL WITH_SYSTEMD +TEST_TARGET= test + +USERS= gerbera +GROUPS= gerbera +USE_RC_SUBR= gerbera +SUB_LIST= USER=${USERS} GROUP=${GROUPS} +PLIST_SUB= USER=${USERS} GROUP=${GROUPS} + +OPTIONS_DEFINE= CURL DEBUG DUKTAPE EXIV2 FFMPEG FFMPEGTHUMBNAILER \ + LIBMAGIC MATROSKA TAGLIB TEST +OPTIONS_DEFAULT= CURL DUKTAPE EXIV2 FFMPEG LIBMAGIC TAGLIB + +CURL_DESC= Support for online services via cURL +DUKTAPE_DESC= Javascript support for custom import scripts +FFMPEGTHUMBNAILER_DESC= Support for thumbnail generation +LIBMAGIC_DESC= Identify file mime types via libmagic +MATROSKA_DESC= Extract video/mkv metadata via libmatroska +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 + +FFMPEG_LIB_DEPENDS= libavformat.so:multimedia/ffmpeg \ + libavutil.so:multimedia/ffmpeg +FFMPEG_CMAKE_BOOL= WITH_AVCODEC + +FFMPEGTHUMBNAILER_LIB_DEPENDS= libffmpegthumbnailer.so:multimedia/ffmpegthumbnailer +FFMPEGTHUMBNAILER_CMAKE_BOOL= WITH_FFMPEGTHUMBNAILER + +LIBMAGIC_LIB_DEPENDS= libmagic.so:sysutils/file +LIBMAGIC_CMAKE_BOOL= WITH_MAGIC + +MATROSKA_LIB_DEPENDS= libmatroska.so:multimedia/libmatroska +MATROSKA_CMAKE_BOOL= WITH_MATROSKA + +TAGLIB_LIB_DEPENDS= libtag.so:audio/taglib +TAGLIB_CMAKE_BOOL= WITH_TAGLIB + +TEST_CMAKE_BOOL= WITH_TESTS + +post-install: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/gerbera + @${MKDIR} ${STAGEDIR}/var/db/gerbera/conf + @${STAGEDIR}${PREFIX}/bin/gerbera -f /var/db/gerbera/conf --create-config > ${STAGEDIR}/var/db/gerbera/conf/config.xml.sample + +.include diff --git a/net/gerbera/distinfo b/net/gerbera/distinfo new file mode 100644 index 000000000000..4e643d5ef027 --- /dev/null +++ b/net/gerbera/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1595707888 +SHA256 (gerbera-gerbera-v1.6.0_GH0.tar.gz) = 3a4956ec5fea1101e8daa32d9cfb985db908a49e2ac6137a1b2bf509e2684a6c +SIZE (gerbera-gerbera-v1.6.0_GH0.tar.gz) = 3057575 diff --git a/net/gerbera/files/gerbera.in b/net/gerbera/files/gerbera.in new file mode 100644 index 000000000000..244086f52089 --- /dev/null +++ b/net/gerbera/files/gerbera.in @@ -0,0 +1,57 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: gerbera +# REQUIRE: DAEMON +# KEYWORD: shutdown + +# +# Add the following line to /etc/rc.conf to enable gerbera: +# gerbera_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable gerbera. +# gerbera_args (str): Custom additional arguments to be passed +# to gerbera (default empty). +# gerbera_conf_dir (str): Directory where ${name} configuration +# data is stored. + +. /etc/rc.subr + +name="gerbera" +rcvar="gerbera_enable" + +load_rc_config ${name} + +: ${gerbera_enable="NO"} +: ${gerbera_conf_dir="/var/db/gerbera/conf"} + +procname="/usr/local/bin/${name}" +pidfile="/var/run/gerbera/gerbera.pid" + +start_precmd=gerbera_precmd +stop_postcmd=gerbera_stop_postcmd + +required_files="${gerbera_conf_dir}/config.xml" + +command="/usr/sbin/daemon" +command_args="-c -f -S -t "${name}" -u gerbera -p \"${pidfile}\" \"${procname}\" -c \"${gerbera_conf_dir}/config.xml\" -l /var/db/gerbera/gerbera.log \"${gerbera_args}\"" + +required_files="${gerbera_conf_dir}/config.xml" + +start_precmd=gerbera_precmd +stop_postcmd=gerbera_stop_postcmd + +gerbera_precmd() +{ + local rundir=${pidfile%/*} + if [ ! -d $rundir ] ; then + install -d -m 0755 -o gerbera -g gerbera $rundir + fi +} + +gerbera_stop_postcmd() { + rm -f "$rundir" +} + +run_rc_command "$1" diff --git a/net/gerbera/files/patch-src_metadata_ffmpeg__handler.cc b/net/gerbera/files/patch-src_metadata_ffmpeg__handler.cc new file mode 100644 index 000000000000..fd161226e231 --- /dev/null +++ b/net/gerbera/files/patch-src_metadata_ffmpeg__handler.cc @@ -0,0 +1,19 @@ +--- src/metadata/ffmpeg_handler.cc.orig 2020-07-24 19:37:20 UTC ++++ src/metadata/ffmpeg_handler.cc +@@ -265,6 +265,8 @@ void FfmpegHandler::fillMetadata(std::shared_ptr> FfmpegHandler::readThumbnailCacheFile(const fs::path& movie_filename) const + { + auto path = getThumbnailCachePath(getThumbnailCacheBasePath(*config), movie_filename); diff --git a/net/gerbera/files/patch-test_core_test__server.cc b/net/gerbera/files/patch-test_core_test__server.cc new file mode 100644 index 000000000000..2d1eadbc156b --- /dev/null +++ b/net/gerbera/files/patch-test_core_test__server.cc @@ -0,0 +1,20 @@ +--- test/core/test_server.cc.orig 2020-07-27 06:07:30 UTC ++++ test/core/test_server.cc +@@ -51,17 +51,6 @@ TEST_F(ServerTest, ServerOutputsHelpInformation) + ASSERT_THAT(output.c_str(), HasSubstr(expectedOutput.c_str())); + } + +-TEST_F(ServerTest, ServerOutputsCompileInformationIncludingGit) +-{ +- fs::path cmd = fs::path(CMAKE_BINARY_DIR) / "gerbera --compile-info 2>&1"; +- std::string output = exec(cmd.c_str()); +- +- ASSERT_THAT(output, HasSubstr("Compile info\n-------------\nWITH_")); +- ASSERT_THAT(output, HasSubstr("Git info:\n-------------\n")); +- ASSERT_THAT(output, HasSubstr("Git Branch: ")); +- ASSERT_THAT(output, HasSubstr("Git Commit: ")); +-} +- + TEST_F(ServerTest, GeneratesFullConfigFromServerCommand) + { + // simple check to ensure complete generation from server diff --git a/net/gerbera/pkg-descr b/net/gerbera/pkg-descr new file mode 100644 index 000000000000..7ef7658b2e12 --- /dev/null +++ b/net/gerbera/pkg-descr @@ -0,0 +1,3 @@ +Gerbera is a DLNA compatible media server and a continuation of MediaTomb + +WWW: https://gerbera.io/ diff --git a/net/gerbera/pkg-plist b/net/gerbera/pkg-plist new file mode 100644 index 000000000000..88db6615b6dc --- /dev/null +++ b/net/gerbera/pkg-plist @@ -0,0 +1,84 @@ +bin/gerbera +%%DATADIR%%/js/common.js +%%DATADIR%%/js/import.js +%%DATADIR%%/js/import_structured.js +%%DATADIR%%/js/playlists.js +%%DATADIR%%/mappings.xml +%%DATADIR%%/mysql.sql +%%DATADIR%%/sqlite3.sql +%%DATADIR%%/web/README.md +%%DATADIR%%/web/assets/theme/colors.css +%%DATADIR%%/web/assets/theme/gerbera-logo-white.png +%%DATADIR%%/web/assets/theme/gerbera.css +%%DATADIR%%/web/cds.xml +%%DATADIR%%/web/cm.xml +%%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-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-updates.module.js +%%DATADIR%%/web/js/jquery.gerbera.autoscan.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/md5.js +%%DATADIR%%/web/mr_reg.xml +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap-grid.css +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap-grid.css.map +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap-grid.min.css +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap-grid.min.css.map +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap-reboot.css +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap-reboot.css.map +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap-reboot.min.css +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap-reboot.min.css.map +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap.css +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap.css.map +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap.min.css +%%DATADIR%%/web/vendor/bootstrap/css/bootstrap.min.css.map +%%DATADIR%%/web/vendor/bootstrap/js/bootstrap.bundle.js +%%DATADIR%%/web/vendor/bootstrap/js/bootstrap.bundle.js.map +%%DATADIR%%/web/vendor/bootstrap/js/bootstrap.bundle.min.js +%%DATADIR%%/web/vendor/bootstrap/js/bootstrap.bundle.min.js.map +%%DATADIR%%/web/vendor/bootstrap/js/bootstrap.js +%%DATADIR%%/web/vendor/bootstrap/js/bootstrap.js.map +%%DATADIR%%/web/vendor/bootstrap/js/bootstrap.min.js +%%DATADIR%%/web/vendor/bootstrap/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.4.0.min.js +%%DATADIR%%/web/vendor/jquery/jquery-ui.min.js +%%DATADIR%%/web/vendor/js-cookie.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/popper/popper.js +%%DATADIR%%/web/vendor/tether/tether.min.js +share/man/man1/gerbera.1.gz +@owner %%USER%% +@group %%GROUP%% +@dir /var/db/gerbera/conf +@dir /var/db/gerbera +@sample(gerbera,gerbera,0640) /var/db/gerbera/conf/config.xml.sample -- 2.27.0