@@ -, +, @@ --- GIDs | 2 +- UIDs | 2 +- net/gerbera/Makefile | 80 +++++++++++++++++ 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, 266 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 --- b/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: --- b/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 --- /dev/null +++ b/net/gerbera/Makefile @@ -0,0 +1,80 @@ +# $FreeBSD$ + +PORTNAME= gerbera +DISTVERSIONPREFIX= v +DISTVERSION= 1.6.1 +CATEGORIES= net multimedia + +MAINTAINER= daniel.engberg.lists@pyret.net +COMMENT= Media server compatible with DLNA and UPnP + +LICENSE= GPLv2 + +LIB_DEPENDS= libupnp.so:devel/upnp \ + 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 + +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} +SUB_FILES= pkg-message + +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_BUILD_DEPENDS= googletest>=0:devel/googletest +TEST_CMAKE_BOOL= WITH_TESTS + +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 --- /dev/null +++ b/net/gerbera/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1599354769 +SHA256 (gerbera-gerbera-v1.6.1_GH0.tar.gz) = 9bb119ee422c8e7a053c309256215a8899dfd6707f6b93496e6facea7978ac7c +SIZE (gerbera-gerbera-v1.6.1_GH0.tar.gz) = 3061089 --- /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" --- /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) --- /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 --- /dev/null +++ b/net/gerbera/files/pkg-message.in @@ -0,0 +1,11 @@ +[ +{ type: install + message: <