Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Apr 2021 20:24:36 GMT
From:      Yuri Victorovich <yuri@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: a14b73ada846 - main - New port: multimedia/lms: Lightweight Music Server
Message-ID:  <202104252024.13PKOaQJ062850@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=a14b73ada846c44a3d0a87588b818d544f960dcd

commit a14b73ada846c44a3d0a87588b818d544f960dcd
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2021-04-25 20:23:08 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2021-04-25 20:24:34 +0000

    New port: multimedia/lms: Lightweight Music Server
---
 multimedia/Makefile                                |  1 +
 multimedia/lms/Makefile                            | 43 ++++++++++++++++
 multimedia/lms/distinfo                            |  5 ++
 multimedia/lms/files/lms.in                        | 25 +++++++++
 .../patch-src_libs_utils_impl_ChildProcess.cpp     | 18 +++++++
 multimedia/lms/pkg-descr                           |  4 ++
 multimedia/lms/pkg-message                         | 11 ++++
 multimedia/lms/pkg-plist                           | 60 ++++++++++++++++++++++
 8 files changed, 167 insertions(+)

diff --git a/multimedia/Makefile b/multimedia/Makefile
index 768f4da7d412..7de10a014776 100644
--- a/multimedia/Makefile
+++ b/multimedia/Makefile
@@ -219,6 +219,7 @@
     SUBDIR += livego
     SUBDIR += lives
     SUBDIR += livestreamer
+    SUBDIR += lms
     SUBDIR += lsdvd
     SUBDIR += m2tstoavi
     SUBDIR += m2vrequantiser
diff --git a/multimedia/lms/Makefile b/multimedia/lms/Makefile
new file mode 100644
index 000000000000..5bbc4345c321
--- /dev/null
+++ b/multimedia/lms/Makefile
@@ -0,0 +1,43 @@
+PORTNAME=	lms
+DISTVERSION=	3.25.0
+MASTER_SITES=	https://github.com/epoupon/lms/archive/refs/tags/v${DISTVERSION}${EXTRACT_SUFX}?dummy=/
+CATEGORIES=	multimedia
+
+PATCH_SITES=	https://github.com/epoupon/lms/commit/
+PATCHFILES+=	b45b30ded44bb49865bbce7b43612f36043126ea.patch:-p1 # backport of fix of missing includes: https://github.com/epoupon/lms/commit/b45b30ded44bb49865bbce7b43612f36043126ea
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Lightweight Music Server
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+LIB_DEPENDS=	libavformat.so:multimedia/ffmpeg \
+		libboost_system.so:devel/boost-libs \
+		libconfig++.so:devel/libconfig \
+		libtag.so:audio/taglib \
+		libwthttp.so:www/wt
+RUN_DEPENDS=	ffmpeg:multimedia/ffmpeg
+
+USES=		cmake compiler:c++17-lang pkgconfig
+
+USER=		nobody
+GROUP=		nobody
+SUB_LIST=	USER=${USER}
+USE_RC_SUBR=	${PORTNAME}
+
+PLIST_SUB=	USER="${USER}" GROUP="${GROUP}"
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|"/etc/lms.conf"|"${PREFIX}/etc/lms.conf"|' \
+		${WRKSRC}/src/lms/main.cpp \
+		${WRKSRC}/src/tools/cover/LmsCover.cpp \
+		${WRKSRC}/src/tools/recommendation/LmsRecommendation.cpp
+	@${REINPLACE_CMD} -e 's|"/usr/|"${PREFIX}/|; s|"/var/lms/"|"/var/db/lms/"|' \
+		${WRKSRC}/conf/lms.conf
+
+post-install:
+	${RLN} ${STAGEDIR}${DATADIR}/lms.conf ${STAGEDIR}${PREFIX}/etc/lms.conf.sample
+	${MKDIR} ${STAGEDIR}/var/db/lms
+
+.include <bsd.port.mk>
diff --git a/multimedia/lms/distinfo b/multimedia/lms/distinfo
new file mode 100644
index 000000000000..1490583a7664
--- /dev/null
+++ b/multimedia/lms/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1619374810
+SHA256 (lms-3.25.0.tar.gz) = c27bf7d7fa994b3422c9773c2303df8fa078f35343326471ea4803cb0f5f872e
+SIZE (lms-3.25.0.tar.gz) = 431516
+SHA256 (b45b30ded44bb49865bbce7b43612f36043126ea.patch) = a792b3cbd7ccb366ffeed8e85c616cd6f96dc55781bb00867aeda61018737f98
+SIZE (b45b30ded44bb49865bbce7b43612f36043126ea.patch) = 1751
diff --git a/multimedia/lms/files/lms.in b/multimedia/lms/files/lms.in
new file mode 100644
index 000000000000..d00453820264
--- /dev/null
+++ b/multimedia/lms/files/lms.in
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# PROVIDE: lms
+# REQUIRE: DAEMON NETWORKING
+# KEYWORD: shutdown
+
+# Add the following lines to /etc/rc.conf to enable lms:
+# lms_enable : set to "YES" to enable the daemon, default is "NO"
+
+. /etc/rc.subr
+
+name=lms
+rcvar=lms_enable
+
+load_rc_config $name
+
+lms_enable=${lms_enable:-"NO"}
+
+logfile="/var/log/${name}.log"
+
+procname=%%PREFIX%%/bin/lms
+command="/usr/sbin/daemon"
+command_args="-u %%USER%% -o ${logfile} -t ${name} %%PREFIX%%/bin/lms"
+
+run_rc_command "$1"
diff --git a/multimedia/lms/files/patch-src_libs_utils_impl_ChildProcess.cpp b/multimedia/lms/files/patch-src_libs_utils_impl_ChildProcess.cpp
new file mode 100644
index 000000000000..52046a1b918a
--- /dev/null
+++ b/multimedia/lms/files/patch-src_libs_utils_impl_ChildProcess.cpp
@@ -0,0 +1,18 @@
+--- src/libs/utils/impl/ChildProcess.cpp.orig	2021-04-25 18:33:13 UTC
++++ src/libs/utils/impl/ChildProcess.cpp
+@@ -68,6 +68,7 @@ ChildProcess::ChildProcess(boost::asio::io_context& io
+ 	if (res < 0)
+ 		throw SystemException {errno, "pipe2 failed!"};
+ 
++#if !defined(__FreeBSD__) // see https://github.com/epoupon/lms/issues/144
+ 	{
+ 		const std::size_t pipeSize {65536*8};
+ 
+@@ -77,6 +78,7 @@ ChildProcess::ChildProcess(boost::asio::io_context& io
+ 		if (fcntl(pipe[1], F_SETPIPE_SZ, pipeSize) == -1)
+ 			throw SystemException {errno, "fcntl failed!"};
+ 	}
++#endif
+ 
+ 	res = fork();
+ 	if (res == -1)
diff --git a/multimedia/lms/pkg-descr b/multimedia/lms/pkg-descr
new file mode 100644
index 000000000000..626c00c006b6
--- /dev/null
+++ b/multimedia/lms/pkg-descr
@@ -0,0 +1,4 @@
+LMS is a self-hosted music streaming software: it allows users to access their
+music collections from anywhere using a web interface.
+
+WWW: https://github.com/epoupon/lms
diff --git a/multimedia/lms/pkg-message b/multimedia/lms/pkg-message
new file mode 100644
index 000000000000..49fd5d65b1d8
--- /dev/null
+++ b/multimedia/lms/pkg-message
@@ -0,0 +1,11 @@
+[
+{ type: install
+  message: <<EOM
+You installed LMS: Lightweight Music Server.
+
+In order to use it please start the service 'lms' and
+then access the URL http://0.0.0.0:5082 in your favorite browser.
+
+EOM
+}
+]
diff --git a/multimedia/lms/pkg-plist b/multimedia/lms/pkg-plist
new file mode 100644
index 000000000000..c2affbb66c49
--- /dev/null
+++ b/multimedia/lms/pkg-plist
@@ -0,0 +1,60 @@
+bin/lms
+bin/lms-metadata
+bin/lms-recommendation
+lib/liblmsauth.so
+lib/liblmsav.so
+lib/liblmscover.so
+lib/liblmsdatabase.so
+lib/liblmsmetadata.so
+lib/liblmsrecommendation.so
+lib/liblmsscanner.so
+lib/liblmsscrobbling.so
+lib/liblmssubsonic.so
+lib/liblmsutils.so
+@sample etc/lms.conf.sample
+%%DATADIR%%/approot/admin-database.xml
+%%DATADIR%%/approot/admin-initwizard.xml
+%%DATADIR%%/approot/admin-scannercontroller.xml
+%%DATADIR%%/approot/admin-user.xml
+%%DATADIR%%/approot/admin-users.xml
+%%DATADIR%%/approot/artist.xml
+%%DATADIR%%/approot/artists.xml
+%%DATADIR%%/approot/error.xml
+%%DATADIR%%/approot/explore.xml
+%%DATADIR%%/approot/images/unknown-artist.jpg
+%%DATADIR%%/approot/images/unknown-cover.jpg
+%%DATADIR%%/approot/login.xml
+%%DATADIR%%/approot/mediaplayer.xml
+%%DATADIR%%/approot/messages.xml
+%%DATADIR%%/approot/messages_fr.xml
+%%DATADIR%%/approot/messages_it.xml
+%%DATADIR%%/approot/messages_zh.xml
+%%DATADIR%%/approot/playqueue.xml
+%%DATADIR%%/approot/%%CMAKE_BUILD_TYPE%%.xml
+%%DATADIR%%/approot/%%CMAKE_BUILD_TYPE%%s.xml
+%%DATADIR%%/approot/search.xml
+%%DATADIR%%/approot/settings.xml
+%%DATADIR%%/approot/templates.xml
+%%DATADIR%%/approot/tracks.xml
+%%DATADIR%%/default.service
+%%DATADIR%%/docroot/css/S6u8w4BMUTPHjxsAUi-qJCY.woff2
+%%DATADIR%%/docroot/css/S6u8w4BMUTPHjxsAXC-q.woff2
+%%DATADIR%%/docroot/css/S6u9w4BMUTPHh6UVSwaPGR_p.woff2
+%%DATADIR%%/docroot/css/S6u9w4BMUTPHh6UVSwiPGQ.woff2
+%%DATADIR%%/docroot/css/S6uyw4BMUTPHjx4wXg.woff2
+%%DATADIR%%/docroot/css/S6uyw4BMUTPHjxAwXjeu.woff2
+%%DATADIR%%/docroot/css/bootstrap-darkly.min.css
+%%DATADIR%%/docroot/css/bootstrap-flatly.min.css
+%%DATADIR%%/docroot/css/fonts.css
+%%DATADIR%%/docroot/css/lms-darkly.css
+%%DATADIR%%/docroot/css/lms-flatly.css
+%%DATADIR%%/docroot/css/lms.css
+%%DATADIR%%/docroot/js/bootstrap-notify.js
+%%DATADIR%%/docroot/js/bootstrap.min.js
+%%DATADIR%%/docroot/js/jquery-1.10.2.min.js
+%%DATADIR%%/docroot/js/mediaplayer.js
+%%DATADIR%%/lms
+%%DATADIR%%/lms.conf
+@owner %%USER%%
+@group %%GROUP%%
+@dir /var/db/lms



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