diff --git a/Makefile b/Makefile index 304be1d56..13f07ff33 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,4 @@ + NDK_PATH=$(shell dirname `which ndk-build`) SDK_PATH=$(shell dirname `which android`) SDK_PLATFORM_TOOLS_PATH=$(shell dirname `which adb`) @@ -31,16 +32,26 @@ ENABLE_GPL_THIRD_PARTIES=1 #default options, can be overidden using make OPTION=value . +ifeq ($(ENABLE_GPL_THIRD_PARTIES),1) +BUILD_X264=1 +BUILD_G729=1 +BUILD_ZRTP=1 +else +#x264 and g729 requires additional licensing agreements. +BUILD_X264=0 +BUILD_G729=0 +#zrtpcpp is GPL. +BUILD_ZRTP=0 +endif + NDK_DEBUG=0 BUILD_VIDEO=1 BUILD_UPNP=1 BUILD_REMOTE_PROVISIONING=1 -BUILD_X264=1 BUILD_AMRNB=full # 0, light or full BUILD_AMRWB=1 -BUILD_GPLV3_ZRTP=1 + BUILD_SILK=1 -BUILD_G729=1 BUILD_TUNNEL=0 BUILD_WEBRTC_AECM=1 BUILD_OPUS=1 @@ -68,6 +79,24 @@ else endif all: update-project prepare-sources generate-apk +ifeq ($(ENABLE_GPL_THIRD_PARTIES),1) + @echo "***************************************************************************" + @echo "***** CAUTION, this liblinphone SDK is built using 3rd party GPL code *****" + @echo "***** Even if you acquired a proprietary license from Belledonne *****" + @echo "***** Communications, this SDK is GPL and GPL only. *****" + @echo "***** To disable 3rd party gpl code, please use: *****" + @echo "***** $$ make ENABLE_GPL_THIRD_PARTIES=0 *****" + @echo "***************************************************************************" +else + @echo + @echo "*****************************************************************" + @echo "***** Linphone SDK without 3rd party GPL software *****" + @echo "***** If you acquired a proprietary license from Belledonne *****" + @echo "***** Communications, this SDK can be used to create *****" + @echo "***** a proprietary linphone-based application. *****" + @echo "*****************************************************************" +endif + install: install-apk run-linphone #libilbc @@ -223,7 +252,7 @@ endif # @cd $(TOPDIR)/submodules/externals/libzrtpcpp/ && \ # cp ../build/libzrtpcpp/libzrtpcpp-config.h . \ || ( echo "ZRTP prepare state failed." ; exit 1 ) -#ifeq ($(BUILD_GPLV3_ZRTP), 1) +#ifeq ($(BUILD_ZRTP), 1) #prepare-zrtp: $(TOPDIR)/submodules/externals/libzrtpcpp/libzrtpcpp-config.h #else prepare-zrtp: @@ -301,17 +330,12 @@ $(SQLITE_BASENAME).zip: #Build targets prepare-sources: build-ffmpeg build-x264 prepare-ilbc build-vpx prepare-silk prepare-srtp prepare-mediastreamer2 prepare-antlr3 prepare-belle-sip $(TOPDIR)/res/raw/rootca.pem prepare-sqlite3 -ifeq ($(ENABLE_GPL_THIRD_PARTIES),1) + GENERATE_OPTIONS = NDK_DEBUG=$(NDK_DEBUG) BUILD_FOR_X86=$(BUILD_FOR_X86) \ BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_OPUS=$(BUILD_OPUS) \ BUILD_VIDEO=$(BUILD_VIDEO) BUILD_X264=$(BUILD_X264) \ - BUILD_UPNP=$(BUILD_UPNP) BUILD_GPLV3_ZRTP=$(BUILD_GPLV3_ZRTP) BUILD_WEBRTC_AECM=$(BUILD_WEBRTC_AECM) BUILD_WEBRTC_ISAC=$(BUILD_WEBRTC_ISAC) -else -GENERATE_OPTIONS = NDK_DEBUG=$(NDK_DEBUG) BUILD_FOR_X86=$(BUILD_FOR_X86) \ - BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_OPUS=$(BUILD_OPUS) \ - BUILD_VIDEO=$(BUILD_VIDEO) BUILD_X264=0 \ - BUILD_UPNP=$(BUILD_UPNP) BUILD_GPLV3_ZRTP=$(BUILD_GPLV3_ZRTP) BUILD_WEBRTC_AECM=$(BUILD_WEBRTC_AECM) BUILD_WEBRTC_ISAC=$(BUILD_WEBRTC_ISAC) -endif + BUILD_UPNP=$(BUILD_UPNP) BUILD_ZRTP=$(BUILD_ZRTP) BUILD_WEBRTC_AECM=$(BUILD_WEBRTC_AECM) BUILD_WEBRTC_ISAC=$(BUILD_WEBRTC_ISAC) + LIBLINPHONE_OPTIONS = $(GENERATE_OPTIONS) \ LINPHONE_VERSION=$(LINPHONE_VERSION) BELLESIP_VERSION=$(BELLESIP_VERSION) USE_JAVAH=$(USE_JAVAH) \ @@ -330,28 +354,6 @@ generate-mediastreamer2-libs: prepare-sources $(NDK_PATH)/ndk-build $(MEDIASTREAMER2_OPTIONS) -j$(NUMCPUS) update-project: -ifeq ($(ENABLE_GPL_THIRD_PARTIES),1) - @echo "***************************************************************************" - @echo "***** CAUTION, this liblinphone SDK is built using 3rd party GPL code *****" - @echo "***** Even if you acquired a proprietary license from Belledonne *****" - @echo "***** Communications, this SDK is GPL and GPL only. *****" - @echo "***** To disable 3rd party gpl code, please use: *****" - @echo "***** $$ make ENABLE_GPL_THIRD_PARTIES=0 *****" - @echo "***************************************************************************" -else -ifeq ($(BUILD_X264),1) - @echo "*****************************************************************" - @echo "***** X264 is not available in non-gpl build. *****" - @echo "*****************************************************************" -endif - @echo - @echo "*****************************************************************" - @echo "***** Linphone SDK without 3rd party GPL software *****" - @echo "***** If you acquired a proprietary license from Belledonne *****" - @echo "***** Communications, this SDK can be used to create *****" - @echo "***** a proprietary linphone-based application. *****" - @echo "*****************************************************************" -endif $(SDK_PATH)/android update project --path . --target $(ANDROID_MOST_RECENT_TARGET) $(SDK_PATH)/android update project --path liblinphone_tester --target $(ANDROID_MOST_RECENT_TARGET) diff --git a/jni/Android.mk b/jni/Android.mk index ae580fb03..0a5ddaf5e 100755 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -17,7 +17,7 @@ endif endif -ifeq ($(BUILD_GPLV3_ZRTP), 1) +ifeq ($(BUILD_ZRTP), 1) BUILD_SRTP=1 ZRTP_C_INCLUDE= \ $(linphone-root-dir)/submodules/externals/libzrtpcpp/zrtp \ @@ -65,14 +65,6 @@ include $(linphone-root-dir)/submodules/linphone/mediastreamer2/build/android/An include $(linphone-root-dir)/submodules/linphone/mediastreamer2/tools/Android.mk -# Openssl -ifeq ($(BUILD_GPLV3_ZRTP), 1) -ifeq (,$(DUMP_VAR)) -$(info Openssl is required) -endif -include $(linphone-root-dir)/submodules/externals/openssl/Android.mk -endif - #tunnel ifeq ($(BUILD_TUNNEL), 1) include $(linphone-root-dir)/submodules/tunnel/Android.mk @@ -103,9 +95,9 @@ include $(linphone-root-dir)/submodules/externals/build/libvpx/Android.mk endif #_BUILD_VIDEO -ifeq ($(BUILD_GPLV3_ZRTP), 1) +ifeq ($(BUILD_ZRTP), 1) ifeq (,$(DUMP_VAR)) -$(info $(TARGET_ARCH_ABI): Build ZRTP support - makes application GPLv3) +$(info $(TARGET_ARCH_ABI): Build ZRTP support) endif include $(linphone-root-dir)/submodules/externals/build/libzrtpcpp/Android.mk endif diff --git a/jni/Application.mk b/jni/Application.mk index 6a4e216ac..f5e00dc75 100644 --- a/jni/Application.mk +++ b/jni/Application.mk @@ -114,7 +114,7 @@ APP_MODULES += libtunnelclient endif endif -ifeq ($(BUILD_GPLV3_ZRTP), 1) +ifeq ($(BUILD_ZRTP), 1) APP_MODULES += libzrtpcpp endif diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 1f17150e6..b32924521 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -1421,4 +1421,9 @@ public class LinphoneManager implements LinphoneCoreListener { // TODO Auto-generated method stub } + @Override + public void isComposingReceived(LinphoneCore lc, LinphoneChatRoom cr) { + // TODO Auto-generated method stub + + } } diff --git a/submodules/belle-sip b/submodules/belle-sip index ce931ad1c..eff427706 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit ce931ad1c2bfe96810a05c6c14e172d092138a8d +Subproject commit eff427706fa84bc25c9a582d9c26235738930da7 diff --git a/submodules/externals/build/libzrtpcpp/Android.mk b/submodules/externals/build/libzrtpcpp/Android.mk index b0d9efaf6..3673ff512 100644 --- a/submodules/externals/build/libzrtpcpp/Android.mk +++ b/submodules/externals/build/libzrtpcpp/Android.mk @@ -1,70 +1,101 @@ -MK_DIR:=$(call my-dir) -LOCAL_EXTERNALS:= $(MK_DIR)/../.. -LOCAL_PATH:= $(LOCAL_EXTERNALS:=)/libzrtpcpp +LOCAL_PATH:= $(call my-dir)/../../libzrtpcpp +BUILD_PATH:= $(call my-dir) + include $(CLEAR_VARS) - - LOCAL_SRC_FILES := \ - src/Base32.cpp \ - src/ZIDFile.cpp \ - src/ZIDRecord.cpp \ - src/ZrtpCallbackWrapper.cpp \ - src/ZrtpConfigure.cpp \ - src/Zrtp.cpp \ - src/ZrtpCrc32.cpp \ - src/ZrtpCWrapper.cpp \ - src/ZrtpPacketClearAck.cpp \ - src/ZrtpPacketCommit.cpp \ - src/ZrtpPacketConf2Ack.cpp \ - src/ZrtpPacketConfirm.cpp \ - src/ZrtpPacketDHPart.cpp \ - src/ZrtpPacketErrorAck.cpp \ - src/ZrtpPacketError.cpp \ - src/ZrtpPacketGoClear.cpp \ - src/ZrtpPacketHelloAck.cpp \ - src/ZrtpPacketHello.cpp \ - src/ZrtpPacketPingAck.cpp \ - src/ZrtpPacketPing.cpp \ - src/ZrtpPacketRelayAck.cpp \ - src/ZrtpPacketSASrelay.cpp \ - src/ZrtpStateClass.cpp \ - src/ZrtpTextData.cpp + zrtp/ZrtpCallbackWrapper.cpp \ + zrtp/ZRtp.cpp \ + zrtp/ZrtpCrc32.cpp \ + zrtp/ZrtpPacketCommit.cpp \ + zrtp/ZrtpPacketConf2Ack.cpp \ + zrtp/ZrtpPacketConfirm.cpp \ + zrtp/ZrtpPacketDHPart.cpp \ + zrtp/ZrtpPacketGoClear.cpp \ + zrtp/ZrtpPacketClearAck.cpp \ + zrtp/ZrtpPacketHelloAck.cpp \ + zrtp/ZrtpPacketHello.cpp \ + zrtp/ZrtpPacketError.cpp \ + zrtp/ZrtpPacketErrorAck.cpp \ + zrtp/ZrtpPacketPingAck.cpp \ + zrtp/ZrtpPacketPing.cpp \ + zrtp/ZrtpPacketSASrelay.cpp \ + zrtp/ZrtpPacketRelayAck.cpp \ + zrtp/ZrtpStateClass.cpp \ + zrtp/ZrtpTextData.cpp \ + zrtp/ZrtpConfigure.cpp \ + zrtp/ZrtpCWrapper.cpp \ + zrtp/Base32.cpp \ + zrtp/zrtpB64Encode.c \ + zrtp/zrtpB64Decode.c \ + common/osSpecifics.c \ + + +# zrtp/ZrtpSdesStream.cpp LOCAL_SRC_FILES += \ - src/libzrtpcpp/crypto/openssl/AesCFB.cpp \ - src/libzrtpcpp/crypto/openssl/hmac256.cpp \ - src/libzrtpcpp/crypto/openssl/hmac384.cpp \ - src/libzrtpcpp/crypto/openssl/InitializeOpenSSL.cpp \ - src/libzrtpcpp/crypto/openssl/sha256.cpp \ - src/libzrtpcpp/crypto/openssl/sha384.cpp \ - src/libzrtpcpp/crypto/openssl/ZrtpDH.cpp \ - src/libzrtpcpp/crypto/TwoCFB.cpp \ - src/libzrtpcpp/crypto/twofish.c \ - src/libzrtpcpp/crypto/twofish_cfb.c + bnlib/bn00.c \ + bnlib/lbn00.c \ + bnlib/bn.c \ + bnlib/lbnmem.c \ + bnlib/sieve.c \ + bnlib/prime.c \ + bnlib/bnprint.c \ + bnlib/jacobi.c \ + bnlib/germain.c \ + bnlib/ec/ec.c \ + bnlib/ec/ecdh.c \ + bnlib/ec/curve25519-donna.c + +LOCAL_SRC_FILES += \ + zrtp/crypto/skeinMac256.cpp \ + zrtp/crypto/skein256.cpp \ + zrtp/crypto/skeinMac384.cpp \ + zrtp/crypto/skein384.cpp + +LOCAL_SRC_FILES += \ + zrtp/crypto/zrtpDH.cpp \ + zrtp/crypto/hmac256.cpp \ + zrtp/crypto/sha256.cpp \ + zrtp/crypto/hmac384.cpp \ + zrtp/crypto/sha384.cpp \ + zrtp/crypto/aesCFB.cpp \ + zrtp/crypto/twoCFB.cpp \ + zrtp/crypto/sha2.c + +LOCAL_SRC_FILES += \ + zrtp/ZIDCacheFile.cpp \ + zrtp/ZIDRecordFile.cpp + +LOCAL_SRC_FILES += \ + cryptcommon/macSkein.cpp \ + cryptcommon/skein.c \ + cryptcommon/skein_block.c \ + cryptcommon/skeinApi.c \ + cryptcommon/twofish.c \ + cryptcommon/twofish_cfb.c + +LOCAL_SRC_FILES += \ + cryptcommon/ZrtpRandom.cpp \ + common/Thread.cpp \ + common/MutexClass.cpp \ + common/EventClass.cpp + +LOCAL_SRC_FILES += \ + cryptcommon/aescrypt.c \ + cryptcommon/aeskey.c \ + cryptcommon/aestab.c \ + cryptcommon/aes_modes.c -# src/ZrtpQueue.cpp -# src/libzrtpcpp/crypto/gcrypt/gcryptAesCFB.cpp \ - src/libzrtpcpp/crypto/gcrypt/gcrypthmac256.cpp \ - src/libzrtpcpp/crypto/gcrypt/gcrypthmac384.cpp \ - src/libzrtpcpp/crypto/gcrypt/gcryptsha256.cpp \ - src/libzrtpcpp/crypto/gcrypt/gcryptsha384.cpp \ - src/libzrtpcpp/crypto/gcrypt/gcryptZrtpDH.cpp \ - src/libzrtpcpp/crypto/gcrypt/InitializeGcrypt.cpp \ - - -LOCAL_CFLAGS := -D__EXPORT="" +LOCAL_CFLAGS := -D__EXPORT="" -fexceptions LOCAL_C_INCLUDES += \ - $(MK_DIR)/ \ - $(LOCAL_PATH)/src/ \ - $(LOCAL_EXTERNALS)/openssl \ - $(LOCAL_EXTERNALS)/openssl/include + $(LOCAL_PATH)/zrtp \ + $(LOCAL_PATH)/bnlib LOCAL_MODULE := libzrtpcpp LOCAL_MODULE_FILENAME := libzrtpcpp-$(TARGET_ARCH_ABI) -LOCAL_SHARED_LIBRARIES := libssl-linphone libcrypto-linphone include $(BUILD_SHARED_LIBRARY) diff --git a/submodules/linphone b/submodules/linphone index e022b0d3f..d43eb3788 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit e022b0d3ff20d7115c366d8b31f90fb402fbeab8 +Subproject commit d43eb3788e66f2007368e6f72f88db9a208c920f