diff options
author | Gabriel Ebner <gebner@gebner.org> | 2020-12-07 19:31:41 +0100 |
---|---|---|
committer | Gabriel Ebner <gebner@gebner.org> | 2020-12-07 19:43:57 +0100 |
commit | a30310415cf39c61fcbe83df762123d2f445e7ea (patch) | |
tree | bfd30b9c950798397907c3a8506dbb8931457900 /pkgs/applications | |
parent | c7447bc87ba736a3eb42155892f6336b152dd2e3 (diff) |
linphone: unstable-2020-03-06 -> 4.2.4
Diffstat (limited to 'pkgs/applications')
4 files changed, 204 insertions, 75 deletions
diff --git a/pkgs/applications/networking/instant-messengers/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix index e278358514452..c055718f47f32 100644 --- a/pkgs/applications/networking/instant-messengers/linphone/default.nix +++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix @@ -31,6 +31,7 @@ , mbedtls , mediastreamer , mediastreamer-openh264 +, minizip2 , mkDerivation , openldap , ortp @@ -47,81 +48,30 @@ , stdenv , udev , zlib - # For Minizip 2.2.7: -, fetchFromGitHub -, libbsd }: -let - # Linphone Desktop requires Minizip 2.2.7. Nixpkgs contains a very old version - # from the time when it was part of zlib. The most recent release of Minizip - # is currently 2.9.2 but Linphone Desktop didn't work with that. So, even if - # we added most recent Minizip version to nixpkgs, probably Minizip 2.2.7 is - # only needed here and we shouldn't add this semi-old version to - # all-packages.nix. Therefore, just define it here locally. - minizip2 = stdenv.mkDerivation rec { - pname = "minizip"; - version = "2.2.7"; - disabled = stdenv.isAarch32; - - src = fetchFromGitHub { - owner = "nmoinvaz"; - repo = pname; - rev = version; - sha256 = "1a88v1gjlflsd17mlrgxh420rpa38q0d17yh9q8j1zzqfrd1azch"; - }; - - nativeBuildInputs = [ cmake pkgconfig ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=YES" - ]; - - buildInputs = [ - zlib - libbsd # required in 2.2.7 but not in 2.9.2? - ]; - - meta = with stdenv.lib; { - description = "Compression library implementing the deflate compression method found in gzip and PKZIP"; - homepage = "https://github.com/nmoinvaz/minizip"; - license = licenses.zlib; - platforms = platforms.unix; - }; - }; -in mkDerivation rec { pname = "linphone-desktop"; - # Latest release is 4.1.1 old and doesn't build with the latest releases of - # some of the dependencies so let's use the latest commit. - version = "unstable-2020-03-06"; + version = "4.2.4"; src = fetchFromGitLab { domain = "gitlab.linphone.org"; owner = "public"; group = "BC"; repo = pname; - rev = "971997e162558d37051f89c9c34bbc240135f704"; - sha256 = "02ji4r8bpcm2kyisn9d3054m026l33g2574i1ag1cmb2dz2p8i1c"; + rev = version; + sha256 = "1gq4l9p21rbrcksa7fbkzn9fzbbynqmn6ni6lhnvzk359sb1xvbz"; }; - # Without this patch, the build fails with: - # - # No rule to make target - # 'minizip_OUTPUT/nix/store/...linphone-desktop.../lib/libminizip.so', - # - # So, the makefile tries to use a full absolute path to the library but does - # it incorrectly. As we have installed Minizip properly, it's sufficient to - # just use "minizip" and the library is found automatically. If this patched - # target_link_libraries line was removed entirely, the build would fail at the - # very end when linking minizip. patches = [ - ./fix_minizip_linking.patch + ./do-not-build-linphone-sdk.patch + ./remove-bc_compute_full_version-usage.patch ]; # See: https://gitlab.linphone.org/BC/public/linphone-desktop/issues/21 postPatch = '' - substituteInPlace src/app/AppController.cpp \ + echo "project(linphoneqt VERSION ${version})" >linphone-app/linphoneqt_version.cmake + substituteInPlace linphone-app/src/app/AppController.cpp \ --replace "LINPHONE_QT_GIT_VERSION" "\"${version}\"" ''; @@ -214,18 +164,18 @@ mkDerivation rec { # those just need to be copied manually below. installPhase = '' mkdir -p $out/bin - cp linphone $out/bin/ + cp linphone-app/linphone $out/bin/ wrapProgram $out/bin/linphone \ --set MEDIASTREAMER_PLUGINS_DIR \ ${mediastreamer-openh264}/lib/mediastreamer/plugins mkdir -p $out/share/applications - sed -i "s@/build/.*/OUTPUT/bin@$out/bin@" linphone.desktop - cp linphone.desktop $out/share/applications/ - cp -r ../assets/icons $out/share/ + cp linphone-app/linphone.desktop $out/share/applications/ + cp -r ../linphone-app/assets/icons $out/share/ mkdir -p $out/share/belr/grammars ln -s ${liblinphone}/share/belr/grammars/* $out/share/belr/grammars/ mkdir -p $out/share/linphone ln -s ${liblinphone}/share/linphone/* $out/share/linphone/ + mkdir $out/lib # prevent warning ''; meta = with lib; { diff --git a/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch b/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch new file mode 100644 index 0000000000000..fe774a479fac2 --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch @@ -0,0 +1,118 @@ +From 08b8b1811a1ad079fa713d19a8cc6bf2dc782bb7 Mon Sep 17 00:00:00 2001 +From: David P <megver83@parabola.nu> +Date: Thu, 26 Nov 2020 15:56:30 -0300 +Subject: [PATCH 1/2] do not build linphone-sdk + +Signed-off-by: David P <megver83@parabola.nu> +--- + CMakeLists.txt | 61 +------------------ + .../cmake_builder/additional_steps.cmake | 9 --- + 2 files changed, 3 insertions(+), 67 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f7eb05f2..5921ee5b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -118,7 +118,6 @@ list(APPEND APP_OPTIONS "-DENABLE_RELATIVE_PREFIX=${ENABLE_RELATIVE_PREFIX}") + + list(APPEND APP_OPTIONS "-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}") + +-include(ExternalProject) + set(PROJECT_BUILD_COMMAND "") + if(CMAKE_BUILD_PARALLEL_LEVEL) + list(APPEND APP_OPTIONS "-DCMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}") +@@ -136,29 +135,8 @@ if(UNIX AND NOT APPLE) + set(CMAKE_INSTALL_RPATH "$ORIGIN:$ORIGIN/lib64:$ORIGIN/../lib64:$ORIGIN/lib:$ORIGIN/../lib:${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}") + list(APPEND APP_OPTIONS "-DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}") + endif() +-ExternalProject_Add(sdk PREFIX "${CMAKE_BINARY_DIR}/sdk" +- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-sdk" +- INSTALL_DIR "${LINPHONE_OUTPUT_DIR}" +- STAMP_DIR "${SDK_BUILD_DIR}/stamp" +- BINARY_DIR "${SDK_BUILD_DIR}" +- STEP_TARGETS build +- 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} +- #BUILD_ALWAYS NO #${DO_BUILD} +-) +-ExternalProject_Add_Step(sdk force_build +- COMMENT "Forcing build for 'desktop'" +- DEPENDEES configure +- DEPENDERS build +- ALWAYS 1 +-) + include(FindPkgConfig) + +-set(APP_DEPENDS sdk) +- +- + find_package(Qt5 5.12 COMPONENTS Core REQUIRED) + + if ( NOT Qt5_FOUND ) +@@ -173,39 +151,6 @@ find_package(Mediastreamer2 CONFIG QUIET) + find_package(ortp 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) +- 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" +- INSTALL_DIR "${APPLICATION_OUTPUT_DIR}" +- BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app" +- DEPENDS ${APP_DEPENDS} +- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND} +- INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step will not be done by external project" +- LIST_SEPARATOR | # Use the alternate list separator +- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} +- # ${APP_OPTIONS} +- BUILD_ALWAYS ON +- ) +- install(CODE "message(STATUS Running install)") +- set(AUTO_REGENERATION auto_regeneration) +- add_custom_target(${AUTO_REGENERATION} ALL +- COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR} +- DEPENDS linphone-qt) +-else() +- message("Adding Linphone Desktop in an IDE-friendly state") +- set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}") +- add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app) +- add_dependencies(app-library ${APP_DEPENDS}) +-endif() +-ExternalProject_Add(linphone-qt-only PREFIX "${CMAKE_BINARY_DIR}/linphone-app" +- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app" +- INSTALL_DIR "${APPLICATION_OUTPUT_DIR}" +- BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app" +- 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} +- EXCLUDE_FROM_ALL ON +- BUILD_ALWAYS ON +-) ++message("Adding Linphone Desktop in an IDE-friendly state") ++set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}") ++add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app) +diff --git a/linphone-app/cmake_builder/additional_steps.cmake b/linphone-app/cmake_builder/additional_steps.cmake +index 7f7fd573..a69a04e8 100644 +--- a/linphone-app/cmake_builder/additional_steps.cmake ++++ b/linphone-app/cmake_builder/additional_steps.cmake +@@ -54,14 +54,5 @@ if (ENABLE_PACKAGING) + linphone_builder_apply_flags() + linphone_builder_set_ep_directories(linphone_package) + linphone_builder_expand_external_project_vars() +- ExternalProject_Add(TARGET_linphone_package +- DEPENDS TARGET_linphone_builder +- TMP_DIR ${ep_tmp} +- BINARY_DIR ${ep_build} +- SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/linphone_package" +- DOWNLOAD_COMMAND "" +- CMAKE_GENERATOR ${CMAKE_GENERATOR} +- CMAKE_ARGS ${LINPHONE_BUILDER_EP_ARGS} -DCMAKE_INSTALL_PREFIX=${LINPHONE_BUILDER_WORK_DIR}/PACKAGE -DTOOLS_DIR=${CMAKE_BINARY_DIR}/programs -DLINPHONE_OUTPUT_DIR=${CMAKE_INSTALL_PREFIX} -DLINPHONE_DESKTOP_DIR=${CMAKE_CURRENT_LIST_DIR}/.. -DLINPHONE_SOURCE_DIR=${EP_linphone_SOURCE_DIR} ${ENABLE_VARIABLES} -DLINPHONE_BUILDER_SIGNING_IDENTITY=${LINPHONE_BUILDER_SIGNING_IDENTITY} +- ) + endif () + endif () +-- +2.29.2 + diff --git a/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch b/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch deleted file mode 100644 index bb88d0030fae9..0000000000000 --- a/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 3ee77441..18ea5c27 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -517,7 +517,7 @@ else() - target_link_libraries(${TARGET_NAME} "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib") - execute_process(COMMAND install_name_tool -id "@executable_path/../Frameworks/libminizip.dylib" "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib") - elseif(NOT WIN32) -- target_link_libraries(${TARGET_NAME} "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.so") -+ target_link_libraries(${TARGET_NAME} "minizip") - endif() - endif()#If (LinphoneCxx_FOUND AND Minizip_FOUND) - endif()#If (LinphoneCxx_FOUND) diff --git a/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch b/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch new file mode 100644 index 0000000000000..547652d3af7fb --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch @@ -0,0 +1,74 @@ +From 6fc23da651d54979e73776fcda38614e290d65dc Mon Sep 17 00:00:00 2001 +From: David P <megver83@parabola.nu> +Date: Fri, 23 Oct 2020 16:44:17 -0300 +Subject: [PATCH 2/2] remove bc_compute_full_version usage + +--- + linphone-app/CMakeLists.txt | 11 +---------- + linphone-app/build/CMakeLists.txt | 5 ----- + .../cmake_builder/linphone_package/CMakeLists.txt | 10 +--------- + 3 files changed, 2 insertions(+), 24 deletions(-) + +diff --git a/linphone-app/CMakeLists.txt b/linphone-app/CMakeLists.txt +index 3bc9420a..27b418ee 100644 +--- a/linphone-app/CMakeLists.txt ++++ b/linphone-app/CMakeLists.txt +@@ -21,17 +21,8 @@ + ################################################################################ + cmake_minimum_required(VERSION 3.1) + ++include(linphoneqt_version.cmake) + find_package(bctoolbox CONFIG) +-set(FULL_VERSION ) +-bc_compute_full_version(FULL_VERSION) +-set(version_major ) +-set(version_minor ) +-set(version_patch ) +-set(identifiers ) +-set(metadata ) +-bc_parse_full_version("${FULL_VERSION}" version_major version_minor version_patch identifiers metadata) +- +-project(linphoneqt VERSION "${version_major}.${version_minor}.${version_patch}") + + if(ENABLE_BUILD_VERBOSE) + #message("CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH}") +diff --git a/linphone-app/build/CMakeLists.txt b/linphone-app/build/CMakeLists.txt +index 8ef03faa..97d94bd6 100644 +--- a/linphone-app/build/CMakeLists.txt ++++ b/linphone-app/build/CMakeLists.txt +@@ -46,11 +46,6 @@ set(CPACK_SOURCE_IGNORE_FILES + "libmng.spec" + ) + +-bc_compute_full_version(PROJECT_VERSION_BUILD) +-if(PROJECT_VERSION_BUILD) +- set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${PROJECT_VERSION_BUILD}") +-endif() +- + message("-- Package file name is ${CPACK_PACKAGE_FILE_NAME}") + + set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME}) +diff --git a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt +index baea03cf..08ffc1b5 100644 +--- a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt ++++ b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt +@@ -38,15 +38,7 @@ set(LINPHONE_QML_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../ui") + # ============================================================================== + # Build package version. + # ============================================================================== +-bc_compute_full_version(APP_PROJECT_VERSION) +-if (GIT_EXECUTABLE AND NOT(APP_PROJECT_VERSION)) +- execute_process( +- COMMAND ${GIT_EXECUTABLE} describe --always +- OUTPUT_VARIABLE APP_PROJECT_VERSION +- OUTPUT_STRIP_TRAILING_WHITESPACE +- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../.." +- ) +-elseif (NOT(APP_PROJECT_VERSION)) ++if (NOT(APP_PROJECT_VERSION)) + set(APP_PROJECT_VERSION "0.0.0") + endif () + string(REGEX REPLACE "([0-9.]+)-?.*" "\\1" LINPHONE_VERSION "${APP_PROJECT_VERSION}") +-- +2.29.2 + |