From 01870cce561841099a25c2b393ae7c96a22d0fa5 Mon Sep 17 00:00:00 2001 From: winlin Date: Sun, 26 Jan 2020 17:33:10 +0800 Subject: [PATCH] Allow use libst.so for ST is MPL license. --- README.md | 1 + trunk/auto/depends.sh | 4 ++-- trunk/auto/options.sh | 6 ++++++ trunk/auto/utest.sh | 6 +++++- trunk/configure | 1 + 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a496e4a73..cea746070 100755 --- a/README.md +++ b/README.md @@ -146,6 +146,7 @@ For previous versions, please read: ## V3 changes +* v3.0, 2020-01-26, Allow use libst.so for ST is MPL license. * v3.0, 2020-01-26, Fix [#607][bug #607], set RTMP identifying recursive depth to 3. * v3.0, 2020-01-25, Fix [#878][bug #878], remove deprecated #EXT-X-ALLOW-CACHE for HLS. 3.0.108 * v3.0, 2020-01-25, Fix [#703][bug #703], drop video data util sps/pps. 3.0.107 diff --git a/trunk/auto/depends.sh b/trunk/auto/depends.sh index bf183c0a6..d89749d58 100755 --- a/trunk/auto/depends.sh +++ b/trunk/auto/depends.sh @@ -329,7 +329,7 @@ fi # Affected users should upgrade to OpenSSL 1.1.0e. Users unable to immediately # upgrade can alternatively recompile OpenSSL with -DOPENSSL_NO_HEARTBEATS. if [[ $SRS_SSL == YES && $SRS_USE_SYS_SSL != YES ]]; then - OPENSSL_HOTFIX="-DOPENSSL_NO_HEARTBEATS" + OPENSSL_OPTIONS="-no-shared -no-threads -no-asm -DOPENSSL_NO_HEARTBEATS" OPENSSL_CONFIG="./config" # https://stackoverflow.com/questions/15539062/cross-compiling-of-openssl-for-linux-arm-v5te-linux-gnueabi-toolchain if [[ $SRS_CROSS_BUILD == YES ]]; then @@ -351,7 +351,7 @@ if [[ $SRS_SSL == YES && $SRS_USE_SYS_SSL != YES ]]; then ( rm -rf ${SRS_OBJS}/openssl-1.1.0e && cd ${SRS_OBJS} && unzip -q ../3rdparty/openssl-1.1.0e.zip && cd openssl-1.1.0e && - ${OPENSSL_CONFIG} --prefix=`pwd`/_release -no-shared -no-threads -no-asm $OPENSSL_HOTFIX && + ${OPENSSL_CONFIG} --prefix=`pwd`/_release $OPENSSL_OPTIONS && make CC=${SRS_TOOL_CC} AR="${SRS_TOOL_AR} -rs" LD=${SRS_TOOL_LD} RANDLIB=${SRS_TOOL_RANDLIB} && make install_sw && cd .. && rm -rf openssl && ln -sf openssl-1.1.0e/_release openssl ) diff --git a/trunk/auto/options.sh b/trunk/auto/options.sh index 8e9fae371..7bf4f209c 100755 --- a/trunk/auto/options.sh +++ b/trunk/auto/options.sh @@ -47,6 +47,8 @@ SRS_FFMPEG_STUB=NO SRS_PREFIX=/usr/local/srs SRS_JOBS=1 SRS_STATIC=NO +# If enabled, link shared libraries for libst.so which uses MPL license. +SRS_SHARED_ST=NO # whether enable the gcov SRS_GCOV=NO # whether enable the log verbose/info/trace level. @@ -180,6 +182,7 @@ Conflicts: Experts: --use-sys-ssl Do not compile ssl, use system ssl(-lssl) if required. + --use-shared-st Use link shared libraries for ST which uses MPL license. --export-librtmp-project= Export srs-librtmp to specified project in path. --export-librtmp-single= Export srs-librtmp to a single file(.h+.cpp) in path. @@ -267,6 +270,8 @@ function parse_user_option() { --full) SRS_ENABLE_ALL=YES ;; --use-sys-ssl) SRS_USE_SYS_SSL=YES ;; + --use-shared-st) SRS_SHARED_ST=YES ;; + --memory-watch) SRS_MEM_WATCH=YES ;; --export-librtmp-project) SRS_EXPORT_LIBRTMP_PROJECT=${value} ;; --export-librtmp-single) SRS_EXPORT_LIBRTMP_SINGLE=${value} ;; @@ -529,6 +534,7 @@ SRS_AUTO_CONFIGURE="--prefix=${SRS_PREFIX}" if [ $SRS_GPERF_CP = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --with-gcp"; else SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --without-gcp"; fi if [ $SRS_GPROF = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --with-gprof"; else SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --without-gprof"; fi if [ $SRS_STATIC = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --static"; fi + if [ $SRS_SHARED_ST = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --use-shared-st"; fi if [ $SRS_LOG_VERBOSE = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-verbose"; fi if [ $SRS_LOG_INFO = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-info"; fi if [ $SRS_LOG_TRACE = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-trace"; fi diff --git a/trunk/auto/utest.sh b/trunk/auto/utest.sh index 18b4978cd..1255e35a7 100755 --- a/trunk/auto/utest.sh +++ b/trunk/auto/utest.sh @@ -167,7 +167,11 @@ echo "" >> ${FILE} echo "# link all depends libraries" >> ${FILE} echo -n "DEPS_LIBRARIES_FILES = " >> ${FILE} for item in ${ModuleLibFiles[*]}; do - echo -n "${SRS_TRUNK_PREFIX}/${item} " >> ${FILE} + if [[ -f ${item} ]]; then + echo -n "${SRS_TRUNK_PREFIX}/${item} " >> ${FILE} + else + echo -n "${item} " >> ${FILE} + fi done echo "" >> ${FILE}; echo "" >> ${FILE} # diff --git a/trunk/configure b/trunk/configure index d09ebc09e..2441dbb07 100755 --- a/trunk/configure +++ b/trunk/configure @@ -144,6 +144,7 @@ END # # st(state-threads) the basic network library for SRS. LibSTRoot="${SRS_OBJS_DIR}/st"; LibSTfile="${LibSTRoot}/libst.a" +if [[ $SRS_SHARED_ST == YES ]]; then LibSTfile="-lst"; fi # openssl-1.1.0e, for the RTMP complex handshake. LibSSLRoot="";LibSSLfile="" if [[ $SRS_SSL == YES && $SRS_USE_SYS_SSL == NO ]]; then