From 794f4949cdd26a3213f6f10a0ebf37932503d589 Mon Sep 17 00:00:00 2001 From: Daniel Engberg Date: Fri, 16 Oct 2020 22:26:27 +0200 Subject: [PATCH] gerbera164 gerbera164 Signed-off-by: Daniel Engberg --- GIDs | 2 +- UIDs | 2 +- net/gerbera/Makefile | 93 +++++++++++++++++++ net/gerbera/distinfo | 3 + net/gerbera/files/gerbera.in | 53 +++++++++++ net/gerbera/files/patch-CMakeLists.txt | 8 ++ .../files/patch-test_core_test__server.cc | 20 ++++ net/gerbera/files/pkg-message.in | 11 +++ net/gerbera/pkg-descr | 3 + net/gerbera/pkg-plist | 86 +++++++++++++++++ 10 files changed, 279 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-CMakeLists.txt create mode 100644 net/gerbera/files/patch-test_core_test__server.cc create mode 100644 net/gerbera/files/pkg-message.in create mode 100644 net/gerbera/pkg-descr create mode 100644 net/gerbera/pkg-plist diff --git a/GIDs b/GIDs index 57f82ac0326c..d6063a76baff 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 c2517a64ea6a..0678ea4a640c 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..b244939e7d0e --- /dev/null +++ b/net/gerbera/Makefile @@ -0,0 +1,93 @@ +# $FreeBSD$ + +PORTNAME= gerbera +DISTVERSIONPREFIX= v +DISTVERSION= 1.6.4 +CATEGORIES= net multimedia + +MAINTAINER= daniel.engberg.lists@pyret.net +COMMENT= Media server compatible with DLNA and UPnP + +LICENSE= GPLv2 + +LIB_DEPENDS= libfmt.so:devel/libfmt \ + libspdlog.so:devel/spdlog \ + libpugixml.so:textproc/pugixml \ + libinotify.so:devel/libinotify + +USES= cmake compiler:c++17-lang iconv localbase:ldflags \ + pkgconfig sqlite + +USE_GITHUB= yes + +TEST_TARGET= test + +CMAKE_OFF= WITH_EXIF WITH_LASTFM WITH_MYSQL WITH_SYSTEMD + +USERS= gerbera +GROUPS= gerbera +USE_RC_SUBR= gerbera +SUB_LIST= USER=${USERS} GROUP=${GROUPS} +PLIST_SUB= USER=${USERS} GROUP=${GROUPS} +SUB_FILES= pkg-message + +OPTIONS_DEFINE= CURL DEBUG DUKTAPE EXIV2 FFMPEG FFMPEGTHUMBNAILER \ + LIBMAGIC MATROSKA TAGLIB TEST +OPTIONS_DEFAULT= CURL DUKTAPE EXIV2 FFMPEG LIBMAGIC 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 +LIBMAGIC_DESC= Identify file mime types via libmagic +LIBUPNP_DESC= Use libupnp library +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 +FFMPEGTHUMBNAILER_IMPLIES= FFMPEG + +LIBMAGIC_LIB_DEPENDS= libmagic.so:sysutils/file +LIBMAGIC_CMAKE_BOOL= WITH_MAGIC + +LIBNPUPNP_LIB_DEPENDS= libnpupnp.so:net/libnpupnp +LIBNPUPNP_CMAKE_BOOL= WITH_NPUPNP + +LIBUPNP_LIB_DEPENDS= libupnp.so:devel/upnp + +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_BUILD_DEPENDS= googletest>=0:devel/googletest +TEST_CMAKE_BOOL= WITH_TESTS +TEST_IMPLIES= CURL DUKTAPE + +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 new file mode 100644 index 000000000000..69d63387ad3b --- /dev/null +++ b/net/gerbera/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1602879743 +SHA256 (gerbera-gerbera-v1.6.4_GH0.tar.gz) = cbe7ea78977db8c02fcca1759ed149f199a590afaf4a6d21ffcca8623d1a0cc5 +SIZE (gerbera-gerbera-v1.6.4_GH0.tar.gz) = 3060809 diff --git a/net/gerbera/files/gerbera.in b/net/gerbera/files/gerbera.in new file mode 100644 index 000000000000..841b14f1ecc4 --- /dev/null +++ b/net/gerbera/files/gerbera.in @@ -0,0 +1,53 @@ +#!/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_flags (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_user:="%%USER%%"} +: ${gerbera_group:="%%GROUP%%"} +: ${gerbera_conf_dir="/usr/local/etc"} + +start_precmd=gerbera_precmd +stop_postcmd=gerbera_stop_postcmd + +procname="%%PREFIX%%/bin/${name}" +pidfile="/var/run/gerbera/gerbera.pid" +required_files="${gerbera_conf_dir}/gerbera-config.xml" + +command="/usr/sbin/daemon" +command_args="-f -t ${name} -p ${pidfile} ${procname} -c ${required_files} -l /var/log/gerbera/gerbera.log ${gerbera_args}" + +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-CMakeLists.txt b/net/gerbera/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..933123cc70d8 --- /dev/null +++ b/net/gerbera/files/patch-CMakeLists.txt @@ -0,0 +1,8 @@ +--- CMakeLists.txt.orig 2020-09-06 01:54:18 UTC ++++ CMakeLists.txt +@@ -528,4 +528,4 @@ INSTALL(FILES + ${PROJECT_SOURCE_DIR}/config/mysql.sql + ${PROJECT_SOURCE_DIR}/config/sqlite3.sql + DESTINATION share/gerbera) +-INSTALL(FILES ${PROJECT_SOURCE_DIR}/doc/gerbera.1 DESTINATION share/man/man1) ++INSTALL(FILES ${PROJECT_SOURCE_DIR}/doc/gerbera.1 DESTINATION man/man1) 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/files/pkg-message.in b/net/gerbera/files/pkg-message.in new file mode 100644 index 000000000000..ee03136d30a8 --- /dev/null +++ b/net/gerbera/files/pkg-message.in @@ -0,0 +1,11 @@ +[ +{ type: install + message: <