Unverified Commit db41f0d3 authored by Weijia Wang's avatar Weijia Wang Committed by GitHub
Browse files

Merge pull request #273617 from wegank/linphone-bump

linphone: 5.0.16 -> 5.1.2
parents a1743eb1 c76ffa04
Loading
Loading
Loading
Loading
+24 −31
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@
, minizip-ng
, mkDerivation
, qtgraphicaleffects
, qtmultimedia
, qtquickcontrols2
, qttools
}:
@@ -33,7 +34,7 @@

mkDerivation rec {
  pname = "linphone-desktop";
  version = "5.0.16";
  version = "5.1.2";

  src = fetchFromGitLab {
    domain = "gitlab.linphone.org";
@@ -41,13 +42,14 @@ mkDerivation rec {
    group = "BC";
    repo = pname;
    rev = version;
    hash = "sha256-zS0JyK+HGiHY7tPdl3RK6fJJOUS+fKM1u3npNxDAAYE=";
    hash = "sha256-Pu2tGKe3C1uR4lzXkC5sJFu8iJBqF76UfWJXYjPwBkc=";
  };

  patches = [
    ./do-not-build-linphone-sdk.patch
    ./remove-bc_compute_full_version-usage.patch
    ./no-store-path-in-autostart.patch
    ./reset-output-dirs.patch
  ];

  # See: https://gitlab.linphone.org/BC/public/linphone-desktop/issues/21
@@ -55,6 +57,8 @@ mkDerivation rec {
    echo "project(linphoneqt VERSION ${version})" >linphone-app/linphoneqt_version.cmake
    substituteInPlace linphone-app/src/app/AppController.cpp \
      --replace "APPLICATION_SEMVER" "\"${version}\""
    substituteInPlace CMakeLists.txt \
      --subst-var out
  '';

  # TODO: After linphone-desktop and liblinphone split into separate packages,
@@ -72,6 +76,7 @@ mkDerivation rec {

    minizip-ng
    qtgraphicaleffects
    qtmultimedia
    qtquickcontrols2
  ];

@@ -86,23 +91,20 @@ mkDerivation rec {

    # RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/
    "-DCMAKE_SKIP_BUILD_RPATH=ON"

    # Requires EQt5Keychain
    "-DENABLE_QT_KEYCHAIN=OFF"

    "-DCMAKE_INSTALL_BINDIR=bin"
    "-DCMAKE_INSTALL_INCLUDEDIR=include"
    "-DCMAKE_INSTALL_LIBDIR=lib"
  ];

  # The default install phase fails because the paths are somehow messed up in
  # the makefiles. The errors were like:
  #
  #   CMake Error at cmake_builder/linphone_package/cmake_install.cmake:49 (file):
  #     file INSTALL cannot find
  #     "/build/linphone-desktop-.../build/linphone-sdk/desktop//nix/store/.../bin":
  #     No such file or directory.
  #
  # If someone is able to figure out how to fix that, great. For now, just
  # trying to pick all the relevant files to the output.
  #
  # Also, the exec path in linphone.desktop file remains invalid, pointing to
  # the build directory, after the whole nix build process. So, let's use sed to
  # manually fix that path.
  #
  preInstall = ''
    mkdir -p $out/share/linphone
    mkdir -p $out/share/sounds/linphone
  '';

  # In order to find mediastreamer plugins, mediastreamer package was patched to
  # support an environment variable pointing to the plugin directory. Set that
  # environment variable by wrapping the Linphone executable.
@@ -116,26 +118,17 @@ mkDerivation rec {
  # It is quite likely that there are some other files still missing and
  # Linphone will randomly crash when it tries to access those files. Then,
  # those just need to be copied manually below.
  installPhase = ''
    mkdir -p $out/bin $out/lib
    cp linphone-app/linphone $out/bin/
    cp linphone-app/libapp-plugin.so $out/lib/
  postInstall = ''
    mkdir -p $out/lib/mediastreamer/plugins
    ln -s ${mediastreamer-openh264}/lib/mediastreamer/plugins/* $out/lib/mediastreamer/plugins/
    ln -s ${mediastreamer}/lib/mediastreamer/plugins/* $out/lib/mediastreamer/plugins/
    wrapProgram $out/bin/linphone \
      --set MEDIASTREAMER_PLUGINS_DIR \
            $out/lib/mediastreamer/plugins
    mkdir -p $out/share/applications
    cp linphone-app/linphone.desktop $out/share/applications/
    mkdir -p $out/share/icons/hicolor/scalable/apps
    cp ../linphone-app/assets/images/linphone_logo.svg $out/share/icons/hicolor/scalable/apps/linphone.svg

    mkdir -p $out/share/belr/grammars
    ln -s ${liblinphone}/share/belr/grammars/* $out/share/belr/grammars/
    ln -s ${belle-sip}/share/belr/grammars/* $out/share/belr/grammars/
    mkdir -p $out/share/linphone
    ln -s ${liblinphone}/share/linphone/* $out/share/linphone/
    ln -s ${liblinphone}/share/sounds $out/share/sounds

    wrapProgram $out/bin/linphone \
      --set MEDIASTREAMER_PLUGINS_DIR $out/lib/mediastreamer/plugins
  '';

  meta = with lib; {
+53 −39
Original line number Diff line number Diff line
@@ -4,28 +4,39 @@ Date: Fri, 28 Jan 2022 02:36:01 +0100
Subject: [PATCH] Remove Linphone SDK build

---
 CMakeLists.txt                                | 86 ++-----------------
 CMakeLists.txt                                | 100 +-----------------
 .../cmake_builder/additional_steps.cmake      |   9 --
 2 files changed, 5 insertions(+), 90 deletions(-)
 2 files changed, 5 insertions(+), 104 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2002b925..6d92a8e5 100644
index b5a4ab5..3afcd88 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -152,7 +152,6 @@ list(APPEND APP_OPTIONS "-DENABLE_RELATIVE_PREFIX=${ENABLE_RELATIVE_PREFIX}")
 list(APPEND APP_OPTIONS "-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}")
@@ -194,7 +194,6 @@ list(APPEND APP_OPTIONS "-DQTKEYCHAIN_TARGET_NAME=${QTKEYCHAIN_TARGET_NAME}")
 
 list(APPEND APP_OPTIONS "-DENABLE_QT_GL=${ENABLE_VIDEO}")#Activate on video
 
-include(ExternalProject)
 set(PROJECT_BUILD_COMMAND "")
 if(CMAKE_BUILD_PARALLEL_LEVEL)
 	list(APPEND APP_OPTIONS "-DCMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}")
@@ -190,30 +189,8 @@ if(ENABLE_BUILD_APP_PLUGINS)
@@ -237,41 +236,8 @@ if(ENABLE_BUILD_APP_PLUGINS)
 	endif()
 endif()
 
-
-if(NOT LINPHONE_QT_ONLY)
-#add_subdirectory(external/qtkeychain)
-	if(ENABLE_QT_KEYCHAIN)
-		ExternalProject_Add(app-qtkeychain PREFIX "${CMAKE_BINARY_DIR}/qtkeychain"
-			SOURCE_DIR "${CMAKE_SOURCE_DIR}/external/qtkeychain"
-			INSTALL_DIR "${QTKEYCHAIN_OUTPUT_DIR}"
-			BINARY_DIR "${SDK_BUILD_DIR}/qtkeychain"
-			BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
-			LIST_SEPARATOR | # Use the alternate list separator
-			CMAKE_ARGS ${APP_OPTIONS} ${QTKEYCHAIN_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} -DCMAKE_OSX_ARCHITECTURES=${LINPHONESDK_MACOS_ARCHS}
-			BUILD_ALWAYS NO #${DO_BUILD}
-		)
-	endif()
-	ExternalProject_Add(sdk PREFIX "${CMAKE_BINARY_DIR}/sdk"
-		SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-sdk"
-		INSTALL_DIR "${LINPHONE_OUTPUT_DIR}"
@@ -35,11 +46,11 @@ index 2002b925..6d92a8e5 100644
-		BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
-		INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
-		LIST_SEPARATOR | # Use the alternate list separator
-    CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
-		CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} -DCMAKE_OSX_ARCHITECTURES=${LINPHONESDK_MACOS_ARCHS}
-		BUILD_ALWAYS NO #${DO_BUILD}
-	)
-	ExternalProject_Add_Step(sdk force_build
-	COMMENT "Forcing build for 'desktop'"
-		COMMENT "Forcing build for 'sdk'"
-		DEPENDEES configure
-		DEPENDERS build
-		ALWAYS 1
@@ -47,15 +58,18 @@ index 2002b925..6d92a8e5 100644
-endif()
 include(FindPkgConfig)
 
-set(APP_DEPENDS sdk)
 find_package(Qt5 5.10 COMPONENTS Core REQUIRED)
 
 if ( NOT Qt5_FOUND )
@@ -227,62 +204,9 @@ find_package(belcard CONFIG QUIET)
 find_package(Mediastreamer2 CONFIG QUIET)
-set(APP_DEPENDS sdk)# Used if NOT LINPHONE_QT_ONLY
 if(ENABLE_QT_KEYCHAIN)
 	list(APPEND APP_DEPENDS app-qtkeychain)
 endif()
@@ -289,65 +255,9 @@ find_package(Mediastreamer2 CONFIG QUIET)
 find_package(ortp CONFIG QUIET)
 find_package(${QTKEYCHAIN_TARGET_NAME} CONFIG QUIET)
 
-if(NOT (LinphoneCxx_FOUND) OR NOT (Linphone_FOUND) OR NOT (bctoolbox_FOUND) OR NOT (belcard_FOUND) OR NOT (Mediastreamer2_FOUND) OR NOT (ortp_FOUND) OR FORCE_APP_EXTERNAL_PROJECTS)
-if(NOT (LinphoneCxx_FOUND) OR NOT (Linphone_FOUND) OR NOT (bctoolbox_FOUND) OR NOT (belcard_FOUND) OR NOT (Mediastreamer2_FOUND) OR NOT (ortp_FOUND)
-	OR ( ENABLE_QT_KEYCHAIN AND NOT(${QTKEYCHAIN_TARGET_NAME}_FOUND) )
-	OR FORCE_APP_EXTERNAL_PROJECTS
-)
-	message("Projects are set as External projects. You can start building them by using for example : cmake --build . --target install")
-	ExternalProject_Add(linphone-qt PREFIX "${CMAKE_BINARY_DIR}/linphone-app"
-		SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app"
@@ -65,7 +79,7 @@ index 2002b925..6d92a8e5 100644
-		BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
-		INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
-		LIST_SEPARATOR | # Use the alternate list separator
-		CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
-		CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} -DCMAKE_OSX_ARCHITECTURES=${LINPHONESDK_MACOS_ARCHS}
-	# ${APP_OPTIONS}
-		BUILD_ALWAYS ON
-	)
@@ -78,10 +92,10 @@ index 2002b925..6d92a8e5 100644
-			BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
-			INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
-			LIST_SEPARATOR | # Use the alternate list separator
-			CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
-			CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} -DCMAKE_OSX_ARCHITECTURES=${LINPHONESDK_MACOS_ARCHS}
-		)
-	endif()
-	install(CODE "message(STATUS Running install)")
-	install(CODE "message(STATUS \"Running install\")")
-	set(AUTO_REGENERATION auto_regeneration)
-	if(	ENABLE_BUILD_APP_PLUGINS)
-		add_custom_target(${AUTO_REGENERATION} ALL
@@ -115,12 +129,12 @@ index 2002b925..6d92a8e5 100644
-    BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
-#    INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
-    LIST_SEPARATOR | # Use the alternate list separator
-    CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
-    CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} -DCMAKE_OSX_ARCHITECTURES=${LINPHONESDK_MACOS_ARCHS}
-    EXCLUDE_FROM_ALL ON
-    #BUILD_ALWAYS ON
-)
diff --git a/linphone-app/cmake_builder/additional_steps.cmake b/linphone-app/cmake_builder/additional_steps.cmake
index 7f7fd573..a69a04e8 100644
index 7f7fd57..a69a04e 100644
--- a/linphone-app/cmake_builder/additional_steps.cmake
+++ b/linphone-app/cmake_builder/additional_steps.cmake
@@ -54,14 +54,5 @@ if (ENABLE_PACKAGING)
@@ -139,5 +153,5 @@ index 7f7fd573..a69a04e8 100644
   endif ()
 endif ()
-- 
2.25.1
2.39.3 (Apple Git-145)
+18 −0
Original line number Diff line number Diff line
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b5a4ab5..b6b89c2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -59,10 +59,10 @@ set(CMAKE_CXX_STANDARD 11)
 
 # Prepare gobal CMAKE configuration specific to the current project
 set(SDK_BUILD_DIR "${CMAKE_BINARY_DIR}/WORK")       # SDK build in WORK. Keep all in it.
-set(LINPHONE_OUTPUT_DIR "${CMAKE_BINARY_DIR}/linphone-sdk/desktop")
-set(QTKEYCHAIN_OUTPUT_DIR "${CMAKE_BINARY_DIR}/qtkeychain")
+set(LINPHONE_OUTPUT_DIR "@out@")
+set(QTKEYCHAIN_OUTPUT_DIR "@out@")
 set(QTKEYCHAIN_TARGET_NAME "EQt5Keychain")
-set(APPLICATION_OUTPUT_DIR "${CMAKE_BINARY_DIR}/OUTPUT")
+set(APPLICATION_OUTPUT_DIR "@out@")
 
 set(CMAKE_PREFIX_PATH "${LINPHONE_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR}/include${PREFIX_PATH}")
 if(WIN32)