multimedia/lms: Add options STB, MAGICK for image library

This fixes SEGV when transcoding is activated for subsonic
API when using STB as image library.

PR:		268487
This commit is contained in:
Yuri Victorovich 2022-12-22 00:28:21 -08:00
parent 9b5d863eb7
commit 34dce7ec4d
3 changed files with 34 additions and 21 deletions

View File

@ -1,6 +1,7 @@
PORTNAME= lms
DISTVERSIONPREFIX= v
DISTVERSION= 3.34.0
PORTREVISION= 1
CATEGORIES= multimedia
MAINTAINER= yuri@FreeBSD.org
@ -10,12 +11,10 @@ WWW= https://github.com/epoupon/lms
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= googletest>0:devel/googletest \
${LOCALBASE}/include/stb/stb_image.h:devel/stb
BUILD_DEPENDS= googletest>0:devel/googletest
LIB_DEPENDS= libavformat.so:multimedia/ffmpeg \
libboost_system.so:devel/boost-libs \
libconfig++.so:devel/libconfig \
libGraphicsMagick.so:graphics/GraphicsMagick \
libtag.so:audio/taglib \
libwthttp.so:www/wt
RUN_DEPENDS= ffmpeg:multimedia/ffmpeg
@ -32,6 +31,19 @@ USE_RC_SUBR= ${PORTNAME}
PLIST_SUB= USER="${USER}" GROUP="${GROUP}"
OPTIONS_RADIO= IMAGE_LIB
OPTIONS_RADIO_IMAGE_LIB= STB MAGICK
OPTIONS_DEFAULT= MAGICK
STB_DESC= Use STB as image library (uses less memory)
STB_BUILD_DEPENDS= ${LOCALBASE}/include/stb/stb_image.h:devel/stb
STB_CMAKE_BOOL= FREEBSD_USE_STB
STB_BROKEN= bug#268487 (crash when transcoding is activated for subsonic API when using STB as image library)
MAGICK_DESC= Use GraphicsMagick++ as image library
MAGICK_LIB_DEPENDS= libGraphicsMagick.so:graphics/GraphicsMagick
MAGICK_CMAKE_BOOL= FREEBSD_USE_MAGICK
post-patch:
@${REINPLACE_CMD} -e 's|"/etc/lms.conf"|"${PREFIX}/etc/lms.conf"|' \
${WRKSRC}/src/lms/main.cpp \

View File

@ -0,0 +1,19 @@
--- CMakeLists.txt.orig 2022-12-22 07:55:50 UTC
+++ CMakeLists.txt
@@ -19,10 +19,14 @@ find_package(Boost REQUIRED COMPONENTS system program_
find_package(Wt REQUIRED COMPONENTS Wt Dbo DboSqlite3 HTTP)
pkg_check_modules(Taglib REQUIRED IMPORTED_TARGET taglib)
pkg_check_modules(Config++ REQUIRED IMPORTED_TARGET libconfig++)
-pkg_check_modules(GraphicsMagick++ IMPORTED_TARGET GraphicsMagick++)
+if (FREEBSD_USE_MAGICK)
+ pkg_check_modules(GraphicsMagick++ IMPORTED_TARGET GraphicsMagick++)
+endif()
pkg_check_modules(LIBAV IMPORTED_TARGET libavcodec libavutil libavformat)
find_package(PAM)
-find_package(STB)
+if (FREEBSD_USE_STB)
+ find_package(STB)
+endif()
# WT
if (NOT Wt_FOUND)

View File

@ -1,18 +0,0 @@
--- src/libs/utils/impl/ChildProcess.cpp.orig 2022-02-02 17:25:04 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
{
#if defined(__linux__) && defined(F_SETPIPE_SZ)
// Just a hint here to prevent the writer from writing too many bytes ahead of the reader
@@ -79,6 +80,7 @@ ChildProcess::ChildProcess(boost::asio::io_context& io
throw SystemException {errno, "fcntl failed!"};
#endif
}
+#endif
res = fork();
if (res == -1)