Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Nov 2020 16:53:38 +0000 (UTC)
From:      Mikael Urankar <mikael@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r555498 - in head: . net net/gerbera net/gerbera/files
Message-ID:  <202011161653.0AGGrcdY005359@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mikael
Date: Mon Nov 16 16:53:37 2020
New Revision: 555498
URL: https://svnweb.freebsd.org/changeset/ports/555498

Log:
  net/gerbera: New port, UPnP/DLNA media server
  
  Gerbera is a DLNA compatible media server and a continuation of MediaTomb
  It allows you to browse and playback your media via your network, supports
  metadata extraction, media thumbnail support and generation, media transcoding
  and offers a Web UI.
  
  WWW: https://gerbera.io/
  
  PR:		248475
  Submitted by:	daniel.engberg.lists@pyret.net
  Reviewed by:	meena

Added:
  head/net/gerbera/
  head/net/gerbera/Makefile   (contents, props changed)
  head/net/gerbera/distinfo   (contents, props changed)
  head/net/gerbera/files/
  head/net/gerbera/files/gerbera.in   (contents, props changed)
  head/net/gerbera/files/patch-CMakeLists.txt   (contents, props changed)
  head/net/gerbera/files/patch-test_core_test__server.cc   (contents, props changed)
  head/net/gerbera/files/pkg-message.in   (contents, props changed)
  head/net/gerbera/pkg-descr   (contents, props changed)
  head/net/gerbera/pkg-plist   (contents, props changed)
Modified:
  head/GIDs
  head/UIDs
  head/net/Makefile

Modified: head/GIDs
==============================================================================
--- head/GIDs	Mon Nov 16 16:46:02 2020	(r555497)
+++ head/GIDs	Mon Nov 16 16:53:37 2020	(r555498)
@@ -818,7 +818,7 @@ librespeed:*:874:
 # free: 875
 # free: 876
 # free: 877
-# free: 878
+gerbera:*:878:
 _encrypted-dns:*:879:
 pyspf-milter:*:880:
 ultimaker:*:881:

Modified: head/UIDs
==============================================================================
--- head/UIDs	Mon Nov 16 16:46:02 2020	(r555497)
+++ head/UIDs	Mon Nov 16 16:53:37 2020	(r555498)
@@ -823,7 +823,7 @@ librespeed:*:874:874::0:0:LibreSpeed user:/nonexistent
 # free: 875
 # free: 876
 # free: 877
-# free: 878
+gerbera:*:878:878::0:0:Gerbera DLNA Media Server:/nonexistent:/usr/sbin/nologin
 _encrypted-dns:*:879:879::0:0:encrypted-dns user:/var/empty:/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

Modified: head/net/Makefile
==============================================================================
--- head/net/Makefile	Mon Nov 16 16:46:02 2020	(r555497)
+++ head/net/Makefile	Mon Nov 16 16:53:37 2020	(r555498)
@@ -174,6 +174,7 @@
     SUBDIR += geoclue
     SUBDIR += geocode-glib
     SUBDIR += geoipupdate
+    SUBDIR += gerbera
     SUBDIR += gfbgraph
     SUBDIR += glflow
     SUBDIR += glib-networking

Added: head/net/gerbera/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/gerbera/Makefile	Mon Nov 16 16:53:37 2020	(r555498)
@@ -0,0 +1,94 @@
+# $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
+LICENSE_FILE=   ${WRKSRC}/LICENSE.md
+
+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
+USE_RC_SUBR=	gerbera
+
+TEST_TARGET=	test
+
+CMAKE_OFF=	WITH_EXIF WITH_LASTFM WITH_MYSQL WITH_SYSTEMD
+
+USERS=		gerbera
+GROUPS=		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 <bsd.port.mk>

Added: head/net/gerbera/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/gerbera/distinfo	Mon Nov 16 16:53:37 2020	(r555498)
@@ -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

Added: head/net/gerbera/files/gerbera.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/gerbera/files/gerbera.in	Mon Nov 16 16:53:37 2020	(r555498)
@@ -0,0 +1,54 @@
+#!/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="%%PREFIX%%/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 %%USER%% -g %%GROUP%% $rundir
+        fi
+}
+
+gerbera_stop_postcmd()
+{
+	rm -f "$rundir"
+}
+
+run_rc_command "$1"

Added: head/net/gerbera/files/patch-CMakeLists.txt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/gerbera/files/patch-CMakeLists.txt	Mon Nov 16 16:53:37 2020	(r555498)
@@ -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)

Added: head/net/gerbera/files/patch-test_core_test__server.cc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/gerbera/files/patch-test_core_test__server.cc	Mon Nov 16 16:53:37 2020	(r555498)
@@ -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

Added: head/net/gerbera/files/pkg-message.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/gerbera/files/pkg-message.in	Mon Nov 16 16:53:37 2020	(r555498)
@@ -0,0 +1,11 @@
+[
+{ type: install
+  message: <<EOM
+  Edit /etc/rc.conf(.local) to start Gerbera automatically at system
+  startup. Command line arguments can be set via gerbera_args.
+
+  A sample configuration file is installed at the follow location:
+  %%PREFIX%%/etc/gerbera-config.xml.sample
+EOM
+}
+]

Added: head/net/gerbera/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/gerbera/pkg-descr	Mon Nov 16 16:53:37 2020	(r555498)
@@ -0,0 +1,6 @@
+Gerbera is a DLNA compatible media server and a continuation of MediaTomb
+It allows you to browse and playback your media via your network, supports
+metadata extraction, media thumbnail support and generation, media transcoding
+and offers a Web UI.
+
+WWW: https://gerbera.io/

Added: head/net/gerbera/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/gerbera/pkg-plist	Mon Nov 16 16:53:37 2020	(r555498)
@@ -0,0 +1,86 @@
+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-clients.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.clients.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
+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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202011161653.0AGGrcdY005359>