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
This commit is contained in:
parent
dcafb73623
commit
c595a583e3
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=555498
2
GIDs
2
GIDs
|
@ -818,7 +818,7 @@ librespeed:*:874:
|
|||
# free: 875
|
||||
# free: 876
|
||||
# free: 877
|
||||
# free: 878
|
||||
gerbera:*:878:
|
||||
_encrypted-dns:*:879:
|
||||
pyspf-milter:*:880:
|
||||
ultimaker:*:881:
|
||||
|
|
2
UIDs
2
UIDs
|
@ -823,7 +823,7 @@ librespeed:*:874:874::0:0:LibreSpeed user:/nonexistent:/usr/sbin/nologin
|
|||
# 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
|
||||
|
|
|
@ -174,6 +174,7 @@
|
|||
SUBDIR += geoclue
|
||||
SUBDIR += geocode-glib
|
||||
SUBDIR += geoipupdate
|
||||
SUBDIR += gerbera
|
||||
SUBDIR += gfbgraph
|
||||
SUBDIR += glflow
|
||||
SUBDIR += glib-networking
|
||||
|
|
94
net/gerbera/Makefile
Normal file
94
net/gerbera/Makefile
Normal file
|
@ -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>
|
3
net/gerbera/distinfo
Normal file
3
net/gerbera/distinfo
Normal file
|
@ -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
|
54
net/gerbera/files/gerbera.in
Normal file
54
net/gerbera/files/gerbera.in
Normal file
|
@ -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"
|
8
net/gerbera/files/patch-CMakeLists.txt
Normal file
8
net/gerbera/files/patch-CMakeLists.txt
Normal file
|
@ -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)
|
20
net/gerbera/files/patch-test_core_test__server.cc
Normal file
20
net/gerbera/files/patch-test_core_test__server.cc
Normal file
|
@ -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
|
11
net/gerbera/files/pkg-message.in
Normal file
11
net/gerbera/files/pkg-message.in
Normal file
|
@ -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
|
||||
}
|
||||
]
|
6
net/gerbera/pkg-descr
Normal file
6
net/gerbera/pkg-descr
Normal file
|
@ -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/
|
86
net/gerbera/pkg-plist
Normal file
86
net/gerbera/pkg-plist
Normal file
|
@ -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
|
Loading…
Reference in New Issue
Block a user