ports/140170: net/liveMedia: install shared libraries and thus fix rtsp in multimedia/vlc
Thierry Thomas
thierry at FreeBSD.org
Sun Nov 1 16:20:03 UTC 2009
>Number: 140170
>Category: ports
>Synopsis: net/liveMedia: install shared libraries and thus fix rtsp in multimedia/vlc
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sun Nov 01 16:20:01 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Thierry Thomas
>Release: FreeBSD 8.0-BETA3 i386
>Organization:
Kabbale Eros
>Environment:
System: FreeBSD graf.pompo.net 8.0-BETA3 FreeBSD 8.0-BETA3 #0: Sat Aug 29 18:35:30 CEST 2009 thierry at graf.pompo.net:/usr/obj/usr/src/sys/GRAF090829 i386
>Description:
At the moment, the port net/liveMedia does not install shared
libraries, but only the static ones, and this breaks RTSP support
in multimedia/vlc, because it fails to dlopen liveMedia.
>How-To-Repeat:
When built against static liveMedia libs, vlc chokes on rtsp with
the following messages:
VLC media player 1.0.1 Goldeneye
[0x34136100] main libvlc warning: cannot load module `/usr/local/lib/vlc/demux/liblive555_plugin.so' (/usr/local/lib/vlc/demux/liblive555_plugin.so: Undefined symbol "_ZTI9HashTable")
[0x34136100] main libvlc warning: cannot load module `/usr/local/lib/vlc/gui/libskins2_plugin.so' (/usr/local/lib/vlc/gui/libskins2_plugin.so: Undefined symbol "_ZN10X11FactoryC1EP13intf_thread_t")
[0x37f50700] main demux warning: no access_demux module matching "file" could be loaded
...
[0x384fc640] access_realrtsp access warning: only real/helix rtsp servers supported for now
[0x384fc640] main access warning: no access module matching "rtsp" could be loaded
[0x39a72010] main input error: open of `rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=sd' failed: (null)
>Fix:
Please apply the hereunder patch (then, you might want to bump
multimedia/vlc's PORTREVISION).
Note: there are several ways to build shared libraries; this one
is not the smarttest, but it avoids several patches in the
various Makefile.tail.
--- liveMedia.diff begins here ---
diff -urN net/liveMedia.orig/Makefile net/liveMedia/Makefile
--- net/liveMedia.orig/Makefile 2009-10-06 23:23:13.000000000 +0200
+++ net/liveMedia/Makefile 2009-11-01 16:29:04.000000000 +0100
@@ -7,7 +7,7 @@
PORTNAME= liveMedia
PORTVERSION= 2009.09.28
-PORTREVISION= 0
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= net devel
MASTER_SITES= http://www.live555.com/liveMedia/public/
@@ -28,6 +28,9 @@
CONFIGURE_SCRIPT= genMakefiles
CONFIGURE_ARGS= fixed-${OPSYS:L}
+USE_LDCONFIG= ${PREFIX}/live/BasicUsageEnvironment \
+ ${PREFIX}/live/UsageEnvironment ${PREFIX}/live/groupsock \
+ ${PREFIX}/live/liveMedia
INSTALL_DATADIR= ${INSTALL} -d ${_SHROWNGRP} -m 755
@@ -186,20 +189,43 @@
BROKEN= Does not compile
.endif
-post-extract:
- @${SED} -e "s|%%CFLAGS%%|${CFLAGS}|" \
- ${FILESDIR}/config.fixed-${OPSYS:L} > ${WRKSRC}/config.fixed-${OPSYS:L}
+pre-configure:
+.for typconf in fixed shared
+ ${SED} -e "s|%%CFLAGS%%|${CFLAGS}|" \
+ ${FILESDIR}/config.${typconf}-${OPSYS:L} > ${WRKSRC}/config.${typconf}-${OPSYS:L}
+.endfor
+
+config-shared:
+ @(cd ${CONFIGURE_WRKSRC} && \
+ ${SET_LATE_CONFIGURE_ARGS} \
+ if ! ${SETENV} CC="${CC}" CXX="${CXX}" \
+ CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
+ INSTALL="/usr/bin/install -c ${_BINOWNGRP}" \
+ INSTALL_DATA="${INSTALL_DATA}" \
+ INSTALL_PROGRAM="${INSTALL_PROGRAM}" \
+ INSTALL_SCRIPT="${INSTALL_SCRIPT}" \
+ ${CONFIGURE_ENV} ./${CONFIGURE_SCRIPT} shared-${OPSYS:L}; then \
+ ${ECHO_MSG} "===> Script \"${CONFIGURE_SCRIPT}\" failed unexpectedly."; \
+ (${ECHO_CMD} ${CONFIGURE_FAIL_MESSAGE}) | ${FMT} 75 79 ; \
+ ${FALSE}; \
+ fi)
+
+build-shared:
+ @(cd ${BUILD_WRKSRC} && \
+ ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET})
-post-build:
+post-build: config-shared build-shared
@${RM} -f ${PLIST}
@${TOUCH} ${PLIST}
@${ECHO_CMD} bin/playSIP >> ${PLIST}
@${ECHO_CMD} bin/openRTSP >> ${PLIST}
@${ECHO_CMD} bin/sapWatch >> ${PLIST}
- @${ECHO_CMD} live/BasicUsageEnvironment/libBasicUsageEnvironment.a >> ${PLIST}
- @${ECHO_CMD} live/UsageEnvironment/libUsageEnvironment.a >> ${PLIST}
- @${ECHO_CMD} live/groupsock/libgroupsock.a >> ${PLIST}
- @${ECHO_CMD} live/liveMedia/libliveMedia.a >> ${PLIST}
+.for libsfx in .a .so .so.0
+ @${ECHO_CMD} live/BasicUsageEnvironment/libBasicUsageEnvironment${libsfx} >> ${PLIST}
+ @${ECHO_CMD} live/UsageEnvironment/libUsageEnvironment${libsfx} >> ${PLIST}
+ @${ECHO_CMD} live/groupsock/libgroupsock${libsfx} >> ${PLIST}
+ @${ECHO_CMD} live/liveMedia/libliveMedia${libsfx} >> ${PLIST}
+.endfor
.for file in ${BasicUsageEnvironment}
@${ECHO_CMD} live/BasicUsageEnvironment/include/${file:T} >> ${PLIST}
.endfor
@@ -229,10 +255,11 @@
@${INSTALL_PROGRAM} ${WRKSRC}/testProgs/playSIP ${PREFIX}/bin/
@${INSTALL_PROGRAM} ${WRKSRC}/testProgs/openRTSP ${PREFIX}/bin/
@${INSTALL_PROGRAM} ${WRKSRC}/testProgs/sapWatch ${PREFIX}/bin/
- @${INSTALL_DATA} ${WRKSRC}/BasicUsageEnvironment/libBasicUsageEnvironment.a ${PREFIX}/live/BasicUsageEnvironment/
- @${INSTALL_DATA} ${WRKSRC}/UsageEnvironment/libUsageEnvironment.a ${PREFIX}/live/UsageEnvironment/
- @${INSTALL_DATA} ${WRKSRC}/groupsock/libgroupsock.a ${PREFIX}/live/groupsock/
- @${INSTALL_DATA} ${WRKSRC}/liveMedia/libliveMedia.a ${PREFIX}/live/liveMedia/
+.for file in BasicUsageEnvironment UsageEnvironment groupsock liveMedia
+ ${INSTALL_DATA} ${WRKSRC}/${file}/lib${file}.a ${PREFIX}/live/${file}/
+ ${INSTALL_PROGRAM} ${WRKSRC}/${file}/lib${file}.so ${PREFIX}/live/${file}/lib${file}.so.0
+ ${LN} -sf ${PREFIX}/live/${file}/lib${file}.so.0 ${PREFIX}/live/${file}/lib${file}.so
+.endfor
.for file in ${BasicUsageEnvironment}
@${INSTALL_DATA} ${WRKSRC}/${file} ${PREFIX}/live/BasicUsageEnvironment/include/
.endfor
diff -urN net/liveMedia.orig/files/config.shared-freebsd net/liveMedia/files/config.shared-freebsd
--- net/liveMedia.orig/files/config.shared-freebsd 1970-01-01 01:00:00.000000000 +0100
+++ net/liveMedia/files/config.shared-freebsd 2009-11-01 15:41:23.000000000 +0100
@@ -0,0 +1,16 @@
+COMPILE_OPTS = %%CFLAGS%% $(INCLUDES) -I. -DBSD=1 -DSOCKLEN_T=socklen_t -DHAVE_SOCKADDR_LEN=1
+C = c
+C_COMPILER = $(CC)
+C_FLAGS = $(COMPILE_OPTS)
+CPLUSPLUS_COMPILER = $(CXX)
+CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -Wno-deprecated
+OBJ = o
+LINK = $(CXX) -o
+LINK_OPTS = -L.
+CONSOLE_LINK_OPTS = $(LINK_OPTS)
+LIBRARY_LINK = $(CC) -o
+LIBRARY_LINK_OPTS = $(LINK_OPTS) -shared -Wl,-soname,$@
+LIB_SUFFIX = so
+LIBS_FOR_CONSOLE_APPLICATION =
+LIBS_FOR_GUI_APPLICATION =
+EXE =
--- liveMedia.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list