From cad066628a9dc53d18288478ee74f5b3be28c7ee Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 21 Apr 2023 17:15:37 +0200 Subject: [PATCH] Build: Adjust to never build with libsignal-protocol-c --- .github/workflows/build.yml | 2 +- .gitmodules | 4 -- configure | 53 +------------------- plugins/signal-protocol/CMakeLists.txt | 52 ++----------------- plugins/signal-protocol/libsignal-protocol-c | 1 - 5 files changed, 6 insertions(+), 106 deletions(-) delete mode 100644 .gitmodules delete mode 160000 plugins/signal-protocol/libsignal-protocol-c diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1f3ecc87..e3a6a2b7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ jobs: fetch-depth: 0 - run: sudo apt-get update - run: sudo apt-get remove libunwind-14-dev - - run: sudo apt-get install -y build-essential gettext cmake valac libgee-0.8-dev libsqlite3-dev libgtk-4-dev libnotify-dev libgpgme-dev libsoup2.4-dev libgcrypt20-dev libqrencode-dev libnice-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libsrtp2-dev libwebrtc-audio-processing-dev libadwaita-1-dev + - run: sudo apt-get install -y build-essential gettext cmake valac libgee-0.8-dev libsqlite3-dev libgtk-4-dev libnotify-dev libgpgme-dev libsoup2.4-dev libgcrypt20-dev libqrencode-dev libnice-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libsrtp2-dev libwebrtc-audio-processing-dev libadwaita-1-dev libsignal-protocol-c-dev - run: ./configure --with-tests --with-libsignal-in-tree - run: make - run: build/xmpp-vala-test diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index b5480660..00000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "libsignal-protocol-c"] - path = plugins/signal-protocol/libsignal-protocol-c - url = https://github.com/WhisperSystems/libsignal-protocol-c.git - branch = v2.3.3 diff --git a/configure b/configure index 30b0bed5..b404fb17 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #!/bin/sh OPTS=`getopt -o "h" --long \ -help,fetch-only,no-debug,disable-fast-vapi,with-tests,release,with-libsignal-in-tree,with-libsoup3,\ +help,fetch-only,no-debug,disable-fast-vapi,with-tests,release,with-libsoup3,\ enable-plugin:,disable-plugin:,\ prefix:,program-prefix:,exec-prefix:,lib-suffix:,\ bindir:,libdir:,includedir:,datadir:,\ @@ -15,13 +15,11 @@ eval set -- "$OPTS" PREFIX=${PREFIX:-/usr/local} ENABLED_PLUGINS= DISABLED_PLUGINS= -BUILD_LIBSIGNAL_IN_TREE= BUILD_TESTS= BUILD_TYPE=Debug DISABLE_FAST_VAPI= LIB_SUFFIX= NO_DEBUG= -FETCH_ONLY= USE_SOUP3= EXEC_PREFIX= @@ -55,8 +53,6 @@ Configuration: without network access later and exit. --no-debug Build without debug symbols --release Configure to build an optimized release version - --with-libsignal-in-tree Build libsignal-protocol-c in tree and link it - statically. --with-libsoup3 Build with libsoup-3.0 --with-tests Also build tests. @@ -112,11 +108,9 @@ while true; do --valac ) VALA_EXECUTABLE="$2"; shift; shift ;; --valac-flags ) VALAC_FLAGS="$2"; shift; shift ;; --lib-suffix ) LIB_SUFFIX="$2"; shift; shift ;; - --with-libsignal-in-tree ) BUILD_LIBSIGNAL_IN_TREE=yes; shift ;; --with-libsoup3 ) USE_SOUP3=yes; shift ;; --disable-fast-vapi ) DISABLE_FAST_VAPI=yes; shift ;; --no-debug ) NO_DEBUG=yes; shift ;; - --fetch-only ) FETCH_ONLY=yes; shift ;; --release ) BUILD_TYPE=RelWithDebInfo; shift ;; --with-tests ) BUILD_TESTS=yes; shift ;; # Autotools paths @@ -141,50 +135,6 @@ while true; do esac done -if [ "$BUILD_LIBSIGNAL_IN_TREE" = "yes" ] || [ "$FETCH_ONLY" = "yes" ]; then - if [ -d ".git" ]; then - git submodule update --init 2>/dev/null - else - tmp=0 - for i in $(cat .gitmodules | grep -n submodule | awk -F ':' '{print $1}') $(wc -l .gitmodules | awk '{print $1}'); do - if ! [ $tmp -eq 0 ]; then - name=$(cat .gitmodules | head -n $tmp | tail -n 1 | awk -F '"' '{print $2}') - def=$(cat .gitmodules | head -n $i | tail -n $(expr "$i" - "$tmp") | awk -F ' ' '{print $1 $2 $3}') - path=$(echo "$def" | grep '^path=' | awk -F '=' '{print $2}') - url=$(echo "$def" | grep '^url=' | awk -F '=' '{print $2}') - branch=$(echo "$def" | grep '^branch=' | awk -F '=' '{print $2}') - - if ! ls "$path"/* >/dev/null 2>/dev/null; then - git=$(which git) - if ! [ $? -eq 0 ] || ! [ -x $git ]; then - echo "Failed retrieving missing files" - exit 5 - fi - res=$(git clone "$url" "$path" 2>&1) - if ! [ $? -eq 0 ] || ! [ -d $path ]; then - echo "Failed retrieving missing files: $res" - exit 5 - fi - if [ -n "$branch" ]; then - olddir="$(pwd)" - cd "$path" - res=$(git checkout "$branch" 2>&1) - if ! [ $? -eq 0 ]; then - echo "Failed retrieving missing files: $res" - exit 5 - fi - cd "$olddir" - fi - echo "Submodule path '$path': checked out '$branch' (via git clone)" - fi - fi - tmp=$i - done - fi -fi - -if [ "$FETCH_ONLY" = "yes" ]; then exit 0; fi - if [ ! -x "$(which cmake 2>/dev/null)" ] then echo "-!- CMake required." @@ -258,7 +208,6 @@ cmake -G "$cmake_type" \ -DENABLED_PLUGINS="$ENABLED_PLUGINS" \ -DDISABLED_PLUGINS="$DISABLED_PLUGINS" \ -DBUILD_TESTS="$BUILD_TESTS" \ - -DBUILD_LIBSIGNAL_IN_TREE="$BUILD_LIBSIGNAL_IN_TREE" \ -DUSE_SOUP3="$USE_SOUP3" \ -DVALA_EXECUTABLE="$VALAC" \ -DCMAKE_VALA_FLAGS="$VALACFLAGS" \ diff --git a/plugins/signal-protocol/CMakeLists.txt b/plugins/signal-protocol/CMakeLists.txt index ea7dc9bb..b3cfae9d 100644 --- a/plugins/signal-protocol/CMakeLists.txt +++ b/plugins/signal-protocol/CMakeLists.txt @@ -28,54 +28,10 @@ GENERATE_HEADER set(C_HEADERS_SRC "") set(C_HEADERS_TARGET "") -if(NOT BUILD_LIBSIGNAL_IN_TREE) - # libsignal-protocol-c has a history of breaking compatibility on the patch level - # we'll have to check compatibility for every new release - # distro maintainers may update this dependency after compatibility tests - find_package(SignalProtocol 2.3.2 REQUIRED) -else() - add_subdirectory(libsignal-protocol-c EXCLUDE_FROM_ALL) - set_property(TARGET curve25519 PROPERTY POSITION_INDEPENDENT_CODE ON) - set_property(TARGET protobuf-c PROPERTY POSITION_INDEPENDENT_CODE ON) - set_property(TARGET signal-protocol-c PROPERTY POSITION_INDEPENDENT_CODE ON) - - set(SIGNAL_PROTOCOL_C_HEADERS - signal_protocol.h - signal_protocol_types.h - curve.h - hkdf.h - ratchet.h - protocol.h - session_state.h - session_record.h - session_pre_key.h - session_builder.h - session_cipher.h - key_helper.h - sender_key.h - sender_key_state.h - sender_key_record.h - group_session_builder.h - group_cipher.h - fingerprint.h - device_consistency.h - ) - - file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/exports/signal") - - foreach(f ${SIGNAL_PROTOCOL_C_HEADERS}) - list(APPEND C_HEADERS_SRC "${CMAKE_CURRENT_SOURCE_DIR}/libsignal-protocol-c/src/${f}") - list(APPEND C_HEADERS_TARGET "${CMAKE_BINARY_DIR}/exports/signal/${f}") - add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/exports/signal/${f}" - COMMAND - cp "${CMAKE_CURRENT_SOURCE_DIR}/libsignal-protocol-c/src/${f}" "${CMAKE_BINARY_DIR}/exports/signal/${f}" - DEPENDS - "${CMAKE_CURRENT_SOURCE_DIR}/libsignal-protocol-c/src/${f}" - COMMENT - Copy header file signal/${f} - ) - endforeach(f) -endif() +# libsignal-protocol-c has a history of breaking compatibility on the patch level +# we'll have to check compatibility for every new release +# distro maintainers may update this dependency after compatibility tests +find_package(SignalProtocol 2.3.2 REQUIRED) list(APPEND C_HEADERS_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/signal_helper.h") list(APPEND C_HEADERS_TARGET "${CMAKE_BINARY_DIR}/exports/signal_helper.h") diff --git a/plugins/signal-protocol/libsignal-protocol-c b/plugins/signal-protocol/libsignal-protocol-c deleted file mode 160000 index 3a83a4f4..00000000 --- a/plugins/signal-protocol/libsignal-protocol-c +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3a83a4f4ed2302ff6e68ab569c88793b50c22d28