From 591dd2aa5ecf2de08dc4b921162b81a87b3c7518 Mon Sep 17 00:00:00 2001
From: Francesco Colista <fcolista@alpinelinux.org>
Date: Fri, 6 Mar 2020 18:10:08 +0000
Subject: [PATCH] community/live-media: fixed symbol-not-found issue

Disabled ssl support, since according with http://www.live555.com/liveMedia/
RTSP-over-TLS is sill in to-do list:

* support for SRTP ('secure' RTP), and perhaps also RTSP-over-TLS.

Cherry-picked from edge.
Fixes: https://gitlab.alpinelinux.org/alpine/aports/issues/11273
---
 ...config-file-for-the-shared-libraries.patch | 66 +++++++++++++
 ...aries-with-g-instead-of-gcc-to-fix-b.patch | 49 ++++++++++
 ...-unresolved-symbols-by-linking-libra.patch | 95 +++++++++++++++++++
 .../0005-Build-without-OpenSSL.patch          | 30 ++++++
 community/live-media/APKBUILD                 | 21 ++--
 5 files changed, 255 insertions(+), 6 deletions(-)
 create mode 100644 community/live-media/0001-Add-a-pkg-config-file-for-the-shared-libraries.patch
 create mode 100644 community/live-media/0003-Link-shared-libraries-with-g-instead-of-gcc-to-fix-b.patch
 create mode 100644 community/live-media/0004-Reduce-number-of-unresolved-symbols-by-linking-libra.patch
 create mode 100644 community/live-media/0005-Build-without-OpenSSL.patch

diff --git a/community/live-media/0001-Add-a-pkg-config-file-for-the-shared-libraries.patch b/community/live-media/0001-Add-a-pkg-config-file-for-the-shared-libraries.patch
new file mode 100644
index 000000000000..a2ae1c183a6f
--- /dev/null
+++ b/community/live-media/0001-Add-a-pkg-config-file-for-the-shared-libraries.patch
@@ -0,0 +1,66 @@
+From: Benjamin Drung <bdrung@debian.org>
+Date: Sat, 16 Sep 2017 11:22:03 +0200
+Subject: Add a pkg-config file for the shared libraries
+
+This patch was downloaded from Debian
+https://sources.debian.org/src/liblivemedia/2018.08.05-1/debian/patches/0002-Add-a-pkg-config-file-for-the-shared-libraries.patch/
+
+The local/ part of PREXIX and LIBDIR was removed to fit into buildroot.
+
+A similar version of this patch is part of the vlc source repo:
+http://git.videolan.org/?p=vlc.git;a=blob;f=contrib/src/live555/add-pkgconfig-file.patch;hb=HEAD
+
+Upstream status: Rejected
+http://lists.live555.com/pipermail/live-devel/2013-January/016374.html
+http://lists.live555.com/pipermail/live-devel/2013-January/016375.html
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+ Makefile.head | 3 +++
+ Makefile.tail | 7 ++++++-
+ live555.pc.in | 9 +++++++++
+ 3 files changed, 18 insertions(+), 1 deletion(-)
+ create mode 100644 live555.pc.in
+
+diff --git a/Makefile.head b/Makefile.head
+index 458c54c..1571037 100644
+--- a/Makefile.head
++++ b/Makefile.head
+@@ -1 +1,4 @@
++PREFIX = /usr
++LIBDIR = /usr/lib
++VERSION = $(shell grep LIVEMEDIA_LIBRARY_VERSION_STRING liveMedia/include/liveMedia_version.hh | sed 's/.*"\([^"]*\)".*/\1/')
+ ##### Change the following for your environment:
+diff --git a/Makefile.tail b/Makefile.tail
+index fc594ea..a20a527 100644
+--- a/Makefile.tail
++++ b/Makefile.tail
+@@ -22,7 +22,12 @@ all:
+ 	@echo
+ 	@echo "For more information about this source code (including your obligations under the LGPL), please see our FAQ at http://live555.com/liveMedia/faq.html"
+ 
+-install:
++install_shared_libraries:
++	install -d $(DESTDIR)$(LIBDIR)/pkgconfig
++	sed "s#@PREFIX@#$(PREFIX)#;s#@LIBDIR@#$(LIBDIR)#;s#@VERSION@#$(VERSION)#" live555.pc.in > $(DESTDIR)$(LIBDIR)/pkgconfig/live555.pc
++	chmod 644 $(DESTDIR)$(LIBDIR)/pkgconfig/live555.pc
++
++install: $(INSTALL2)
+ 	cd $(LIVEMEDIA_DIR) ; $(MAKE) install
+ 	cd $(GROUPSOCK_DIR) ; $(MAKE) install
+ 	cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE) install
+diff --git a/live555.pc.in b/live555.pc.in
+new file mode 100644
+index 0000000..3736944
+--- /dev/null
++++ b/live555.pc.in
+@@ -0,0 +1,9 @@
++prefix=@PREFIX@
++libdir=@LIBDIR@
++includedir=${prefix}/include
++
++Name: live555
++Description: multimedia RTSP streaming library
++Version: @VERSION@
++Cflags: -I${includedir}/liveMedia -I${includedir}/groupsock -I${includedir}/BasicUsageEnvironment -I${includedir}/UsageEnvironment
++Libs: -L${libdir} -lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment
diff --git a/community/live-media/0003-Link-shared-libraries-with-g-instead-of-gcc-to-fix-b.patch b/community/live-media/0003-Link-shared-libraries-with-g-instead-of-gcc-to-fix-b.patch
new file mode 100644
index 000000000000..b463a1a82de8
--- /dev/null
+++ b/community/live-media/0003-Link-shared-libraries-with-g-instead-of-gcc-to-fix-b.patch
@@ -0,0 +1,49 @@
+From: Benjamin Drung <bdrung@debian.org>
+Date: Sat, 16 Sep 2017 11:22:04 +0200
+Subject: Link shared libraries with g++ instead of gcc to fix build failure
+
+---
+ config.linux                       | 6 +++---
+ config.linux-with-shared-libraries | 6 +++---
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/config.linux b/config.linux
+index b4021ef..efff3a9 100644
+--- a/config.linux
++++ b/config.linux
+@@ -1,12 +1,12 @@
+ COMPILE_OPTS =		$(INCLUDES) -I/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
+ C =			c
+-C_COMPILER =		cc
++C_COMPILER =		$(CC)
+ C_FLAGS =		$(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS)
+ CPP =			cpp
+-CPLUSPLUS_COMPILER =	c++
++CPLUSPLUS_COMPILER =	$(CXX)
+ CPLUSPLUS_FLAGS =	$(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS)
+ OBJ =			o
+-LINK =			c++ -o
++LINK =			$(CXX) -o
+ LINK_OPTS =		-L. $(LDFLAGS)
+ CONSOLE_LINK_OPTS =	$(LINK_OPTS)
+ LIBRARY_LINK =		ar cr 
+diff --git a/config.linux-with-shared-libraries b/config.linux-with-shared-libraries
+index 04d0ea0..2ae04ef 100644
+--- a/config.linux-with-shared-libraries
++++ b/config.linux-with-shared-libraries
+@@ -33,12 +33,12 @@ CPLUSPLUS_COMPILER =	$(CXX)
+ CPLUSPLUS_FLAGS =	$(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS)
+ OBJ =			o
+ LINK =			$(CXX) -o
+-LINK_OPTS =		-L. $(LDFLAGS)
++LINK_OPTS =		-L. $(CPPFLAGS) $(LDFLAGS)
+ CONSOLE_LINK_OPTS =	$(LINK_OPTS)
+-LIBRARY_LINK =		$(CC) -o 
++LIBRARY_LINK =		$(CXX) -o 
+ SHORT_LIB_SUFFIX =	so.$(shell expr $($(NAME)_VERSION_CURRENT) - $($(NAME)_VERSION_AGE))
+ LIB_SUFFIX =	 	$(SHORT_LIB_SUFFIX).$($(NAME)_VERSION_AGE).$($(NAME)_VERSION_REVISION)
+-LIBRARY_LINK_OPTS =	-shared -Wl,-soname,$(NAME).$(SHORT_LIB_SUFFIX) $(LDFLAGS)
++LIBRARY_LINK_OPTS =	-shared -Wl,-soname,$(NAME).$(SHORT_LIB_SUFFIX) $(CPPFLAGS) $(LDFLAGS)
+ LIBS_FOR_CONSOLE_APPLICATION = -lssl -lcrypto
+ LIBS_FOR_GUI_APPLICATION =
+ EXE =
diff --git a/community/live-media/0004-Reduce-number-of-unresolved-symbols-by-linking-libra.patch b/community/live-media/0004-Reduce-number-of-unresolved-symbols-by-linking-libra.patch
new file mode 100644
index 000000000000..e3bf29e684a6
--- /dev/null
+++ b/community/live-media/0004-Reduce-number-of-unresolved-symbols-by-linking-libra.patch
@@ -0,0 +1,95 @@
+From: Sebastian Ramacher <sramacher@debian.org>
+Date: Sat, 16 Sep 2017 14:12:44 +0200
+Subject: Reduce number of unresolved symbols by linking libraries
+
+This leaves HashTable::Iterator::create as only reamining unresolved
+symbol. However, this symbol is not defined.
+---
+ BasicUsageEnvironment/Makefile.tail |  6 +++++-
+ Makefile.tail                       |  4 ++--
+ groupsock/Makefile.tail             |  8 +++++++-
+ liveMedia/Makefile.tail             | 10 +++++++++-
+ 4 files changed, 23 insertions(+), 5 deletions(-)
+
+diff --git a/BasicUsageEnvironment/Makefile.tail b/BasicUsageEnvironment/Makefile.tail
+index 5d04179..c02cf23 100644
+--- a/BasicUsageEnvironment/Makefile.tail
++++ b/BasicUsageEnvironment/Makefile.tail
+@@ -9,9 +9,13 @@ OBJS = BasicUsageEnvironment0.$(OBJ) BasicUsageEnvironment.$(OBJ) \
+ 	BasicTaskScheduler0.$(OBJ) BasicTaskScheduler.$(OBJ) \
+ 	DelayQueue.$(OBJ) BasicHashTable.$(OBJ)
+ 
++USAGE_ENVIRONMENT_DIR = ../UsageEnvironment
++USAGE_ENVIRONMENT_LIB = $(USAGE_ENVIRONMENT_DIR)/libUsageEnvironment.$(libUsageEnvironment_LIB_SUFFIX)
++
+ libBasicUsageEnvironment.$(LIB_SUFFIX): $(OBJS)
+ 	$(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) \
+-		$(OBJS)
++		$(OBJS) \
++		$(USAGE_ENVIRONMENT_LIB)
+ 
+ .$(C).$(OBJ):
+ 	$(C_COMPILER) -c $(C_FLAGS) $<       
+diff --git a/Makefile.tail b/Makefile.tail
+index a20a527..f28c77f 100644
+--- a/Makefile.tail
++++ b/Makefile.tail
+@@ -12,10 +12,10 @@ MEDIA_SERVER_DIR = mediaServer
+ PROXY_SERVER_DIR = proxyServer
+ 
+ all:
+-	cd $(LIVEMEDIA_DIR) ; $(MAKE)
+-	cd $(GROUPSOCK_DIR) ; $(MAKE)
+ 	cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE)
+ 	cd $(BASIC_USAGE_ENVIRONMENT_DIR) ; $(MAKE)
++	cd $(GROUPSOCK_DIR) ; $(MAKE)
++	cd $(LIVEMEDIA_DIR) ; $(MAKE)
+ 	cd $(TESTPROGS_DIR) ; $(MAKE)
+ 	cd $(MEDIA_SERVER_DIR) ; $(MAKE)
+ 	cd $(PROXY_SERVER_DIR) ; $(MAKE)
+diff --git a/groupsock/Makefile.tail b/groupsock/Makefile.tail
+index 89a8593..499cf14 100644
+--- a/groupsock/Makefile.tail
++++ b/groupsock/Makefile.tail
+@@ -25,10 +25,16 @@ NetInterface.$(CPP):	include/NetInterface.hh include/GroupsockHelper.hh
+ NetAddress.$(CPP):	include/NetAddress.hh include/GroupsockHelper.hh
+ IOHandlers.$(CPP):	include/IOHandlers.hh include/TunnelEncaps.hh
+ 
++USAGE_ENVIRONMENT_DIR = ../UsageEnvironment
++USAGE_ENVIRONMENT_LIB = $(USAGE_ENVIRONMENT_DIR)/libUsageEnvironment.$(libUsageEnvironment_LIB_SUFFIX)
++BASIC_USAGE_ENVIRONMENT_DIR = ../BasicUsageEnvironment
++BASIC_USAGE_ENVIRONMENT_LIB = $(BASIC_USAGE_ENVIRONMENT_DIR)/libBasicUsageEnvironment.$(libBasicUsageEnvironment_LIB_SUFFIX)
++
+ libgroupsock.$(LIB_SUFFIX): $(GROUPSOCK_LIB_OBJS) \
+     $(PLATFORM_SPECIFIC_LIB_OBJS)
+ 	$(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) \
+-		$(GROUPSOCK_LIB_OBJS)
++		$(GROUPSOCK_LIB_OBJS) \
++		$(BASIC_USAGE_ENVIRONMENT_LIB) $(USAGE_ENVIRONMENT_LIB)
+ 
+ clean:
+ 	-rm -rf *.$(OBJ) $(ALL) core *.core *~ include/*~
+diff --git a/liveMedia/Makefile.tail b/liveMedia/Makefile.tail
+index e23d1d4..3233a4b 100644
+--- a/liveMedia/Makefile.tail
++++ b/liveMedia/Makefile.tail
+@@ -63,10 +63,18 @@ MISC_OBJS = BitVector.$(OBJ) StreamParser.$(OBJ) DigestAuthentication.$(OBJ) our
+ 
+ LIVEMEDIA_LIB_OBJS = Media.$(OBJ) $(MISC_SOURCE_OBJS) $(MISC_SINK_OBJS) $(MISC_FILTER_OBJS) $(RTP_OBJS) $(RTCP_OBJS) $(GENERIC_MEDIA_SERVER_OBJS) $(RTSP_OBJS) $(SIP_OBJS) $(SESSION_OBJS) $(QUICKTIME_OBJS) $(AVI_OBJS) $(TRANSPORT_STREAM_TRICK_PLAY_OBJS) $(MATROSKA_OBJS) $(OGG_OBJS) $(TRANSPORT_STREAM_DEMUX_OBJS) $(HLS_OBJS) $(MISC_OBJS)
+ 
++GROUPSOCK_DIR = ../groupsock
++GROUPSOCK_LIB = $(GROUPSOCK_DIR)/libgroupsock.$(libgroupsock_LIB_SUFFIX)
++USAGE_ENVIRONMENT_DIR = ../UsageEnvironment
++USAGE_ENVIRONMENT_LIB = $(USAGE_ENVIRONMENT_DIR)/libUsageEnvironment.$(libUsageEnvironment_LIB_SUFFIX)
++BASIC_USAGE_ENVIRONMENT_DIR = ../BasicUsageEnvironment
++BASIC_USAGE_ENVIRONMENT_LIB = $(BASIC_USAGE_ENVIRONMENT_DIR)/libBasicUsageEnvironment.$(libBasicUsageEnvironment_LIB_SUFFIX)
++
+ $(LIVEMEDIA_LIB): $(LIVEMEDIA_LIB_OBJS) \
+     $(PLATFORM_SPECIFIC_LIB_OBJS)
+ 	$(LIBRARY_LINK)$@ $(LIBRARY_LINK_OPTS) \
+-		$(LIVEMEDIA_LIB_OBJS)
++		$(LIVEMEDIA_LIB_OBJS) \
++		$(GROUPSOCK_LIB) $(BASIC_USAGE_ENVIRONMENT_LIB) $(USAGE_ENVIRONMENT_LIB)
+ 
+ Media.$(CPP):		include/Media.hh
+ include/Media.hh:	include/liveMedia_version.hh
diff --git a/community/live-media/0005-Build-without-OpenSSL.patch b/community/live-media/0005-Build-without-OpenSSL.patch
new file mode 100644
index 000000000000..1b931475ffd6
--- /dev/null
+++ b/community/live-media/0005-Build-without-OpenSSL.patch
@@ -0,0 +1,30 @@
+From: Sebastian Ramacher <sramacher@debian.org>
+Date: Sun, 19 Jan 2020 11:24:59 +0100
+Subject: Build without OpenSSL
+
+---
+ config.linux-with-shared-libraries | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/config.linux-with-shared-libraries b/config.linux-with-shared-libraries
+index 2ae04ef..041da7f 100644
+--- a/config.linux-with-shared-libraries
++++ b/config.linux-with-shared-libraries
+@@ -24,7 +24,7 @@ libgroupsock_VERSION_AGE=2
+ libgroupsock_LIB_SUFFIX=so.$(shell expr $(libgroupsock_VERSION_CURRENT) - $(libgroupsock_VERSION_AGE)).$(libgroupsock_VERSION_AGE).$(libgroupsock_VERSION_REVISION)
+ #####
+ 
+-COMPILE_OPTS =		$(INCLUDES) -I/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -fPIC
++COMPILE_OPTS =		$(INCLUDES) -I/usr/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DNO_OPENSSL=1 -fPIC
+ C =			c
+ C_COMPILER =		$(CC)
+ C_FLAGS =		$(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS)
+@@ -39,7 +39,7 @@ LIBRARY_LINK =		$(CXX) -o
+ SHORT_LIB_SUFFIX =	so.$(shell expr $($(NAME)_VERSION_CURRENT) - $($(NAME)_VERSION_AGE))
+ LIB_SUFFIX =	 	$(SHORT_LIB_SUFFIX).$($(NAME)_VERSION_AGE).$($(NAME)_VERSION_REVISION)
+ LIBRARY_LINK_OPTS =	-shared -Wl,-soname,$(NAME).$(SHORT_LIB_SUFFIX) $(CPPFLAGS) $(LDFLAGS)
+-LIBS_FOR_CONSOLE_APPLICATION = -lssl -lcrypto
++LIBS_FOR_CONSOLE_APPLICATION =
+ LIBS_FOR_GUI_APPLICATION =
+ EXE =
+ INSTALL2 =		install_shared_libraries
diff --git a/community/live-media/APKBUILD b/community/live-media/APKBUILD
index 2c6316b1f381..d37d2f618603 100644
--- a/community/live-media/APKBUILD
+++ b/community/live-media/APKBUILD
@@ -1,6 +1,6 @@
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=live-media
-pkgver=2019.05.29
+pkgver=2020.03.06
 pkgrel=0
 pkgdesc="A set of C++ libraries for multimedia streaming"
 url="http://live555.com/liveMedia"
@@ -8,17 +8,22 @@ arch="all"
 license="LGPL-3.0-or-later"
 subpackages="$pkgname-dev $pkgname-utils"
 options="!check"
-source="http://live555.com/liveMedia/public/live.$pkgver.tar.gz"
+source="http://live555.com/liveMedia/public/live.$pkgver.tar.gz
+0001-Add-a-pkg-config-file-for-the-shared-libraries.patch
+0003-Link-shared-libraries-with-g-instead-of-gcc-to-fix-b.patch
+0004-Reduce-number-of-unresolved-symbols-by-linking-libra.patch
+0005-Build-without-OpenSSL.patch
+"
 builddir="$srcdir"/live
 
 prepare() {
-	sed -e "/^COMPILE_OPTS/s/$/ $CFLAGS -fPIC -DPIC -DXLOCALE_NOT_USED=1 -DRTSPCLIENT_SYNCHRONOUS_INTERFACE/" \
-		-i config.linux-with-shared-libraries
+	chmod -R 775 *
+	default_prepare
 }
 
 build() {
 	./genMakefiles linux-with-shared-libraries
-	make C_COMPILER="${CC:-gcc}" CPLUSPLUS_COMPILER="${CXX:-g++}"
+	make PREFIX=/usr LIBDIR=/usr/lib
 }
 
 package() {
@@ -48,4 +53,8 @@ utils() {
 	mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
 }
 
-sha512sums="10f641d5748af49bf9a85b2b31f6a215ccef131f257cb5e44a0c41a9d56c68f3ce757ab59be7e127f2696f03f8a797de4177e9dd2b09b1b2b695d4fbc691fe4c  live.2019.05.29.tar.gz"
+sha512sums="7da439fbdeab0da6687dee56d9a27bf7b8f8a9c84b420d72f2e2a7ff7a73d18756d1fdb920f29b36917d93efcecc9230877637322d5041eeba114882b4bf7a06  live.2020.03.06.tar.gz
+d542668dfe9386dc31389db6dfe9ed20a8395ede5d1dabfee40f49ad0db67d0b3665c8dcd59d48e4761ba00beeecc3197b2d25cb3a04ef40988f949269e7c9ef  0001-Add-a-pkg-config-file-for-the-shared-libraries.patch
+5cf4a6159531e126bee83f981bd8583a1cef68cde2129f0d255b2f2d73055a21b7bf2bbcc822aa0265f1df7c32add6b95c57f59c5e08060750567fc268643612  0003-Link-shared-libraries-with-g-instead-of-gcc-to-fix-b.patch
+d5be57357d3c04356aac41804ee3d13434f754c7f86936e24a39c5e966a902628d9570afb37aa96a7c33a45fa5787182bec0441394d114e59d5a1f25250ea0c5  0004-Reduce-number-of-unresolved-symbols-by-linking-libra.patch
+cb737f55844773a0ad13bb17c1ab236c880a3eebe9ac11cef30bccd949cc7a144cc73a9b81ead6b011c8664c2863f57e1b8255790fe6652146a1b094f879761a  0005-Build-without-OpenSSL.patch"
-- 
GitLab