From a1cae056730b22308adcc557bbf56842a6b7eff8 Mon Sep 17 00:00:00 2001 From: Daniel Engberg Date: Wed, 23 Sep 2020 07:56:36 +0200 Subject: [PATCH] gerbera161v3 gerbera161v3 Signed-off-by: Daniel Engberg --- GIDs | 2 +- UIDs | 2 +- net/gerbera/Makefile | 97 +++++++++++++++++++ net/gerbera/distinfo | 5 + 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, 285 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 da575690205c..1731ef1b7a63 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 2c5184447b69..a3c36a913c39 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..ade187d29526 --- /dev/null +++ b/net/gerbera/Makefile @@ -0,0 +1,97 @@ +# $FreeBSD$ + +PORTNAME= gerbera +DISTVERSIONPREFIX= v +DISTVERSION= 1.6.1 +CATEGORIES= net multimedia + +PATCH_SITES= https://github.com/gerbera/gerbera/commit/ +PATCHFILES= e648763626e3c2512801bd127a0a3b96c8716faf.patch:-p1 + +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 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 +TEST_PREVENTS= LIBNPUPNP +TEST_PREVENTS_MSG= Tests are only compatible with libupnp + +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..e820d2a7c076 --- /dev/null +++ b/net/gerbera/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1600513438 +SHA256 (gerbera-gerbera-v1.6.1_GH0.tar.gz) = 9bb119ee422c8e7a053c309256215a8899dfd6707f6b93496e6facea7978ac7c +SIZE (gerbera-gerbera-v1.6.1_GH0.tar.gz) = 3061089 +SHA256 (e648763626e3c2512801bd127a0a3b96c8716faf.patch) = 6767da8921771cadba1189f7e6e4995c2bbcd08a14eb371c8b37cd732e1d6f35 +SIZE (e648763626e3c2512801bd127a0a3b96c8716faf.patch) = 18464 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: <