From af3f6ca5ff30df83fabd71674b460a8420d468d1 Mon Sep 17 00:00:00 2001 From: linsui Date: Tue, 9 Jul 2024 20:40:54 +0800 Subject: [PATCH] pjsip: format --- .../applications/networking/pjsip/default.nix | 151 +++++++++--------- 1 file changed, 78 insertions(+), 73 deletions(-) diff --git a/pkgs/applications/networking/pjsip/default.nix b/pkgs/applications/networking/pjsip/default.nix index fe0e032dd224..69e874d89545 100644 --- a/pkgs/applications/networking/pjsip/default.nix +++ b/pkgs/applications/networking/pjsip/default.nix @@ -1,17 +1,18 @@ -{ lib -, testers -, stdenv -, fetchFromGitHub -, openssl -, libsamplerate -, swig -, alsa-lib -, AppKit -, CoreFoundation -, Security -, python3 -, pythonSupport ? true -, runCommand +{ + lib, + testers, + stdenv, + fetchFromGitHub, + openssl, + libsamplerate, + swig, + alsa-lib, + AppKit, + CoreFoundation, + Security, + python3, + pythonSupport ? true, + runCommand, }: stdenv.mkDerivation (finalAttrs: { pname = "pjsip"; @@ -24,22 +25,28 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-LDA3o1QMrAxcGuOi/YRoMzXmw/wFkfDs2wweZuIJ2RY="; }; - patches = [ - ./fix-aarch64.patch + patches = [ ./fix-aarch64.patch ]; + + nativeBuildInputs = lib.optionals pythonSupport [ + swig + python3 ]; - nativeBuildInputs = - lib.optionals pythonSupport [ swig python3 ]; - - buildInputs = [ openssl libsamplerate ] + buildInputs = + [ + openssl + libsamplerate + ] ++ lib.optional stdenv.isLinux alsa-lib - ++ lib.optionals stdenv.isDarwin [ AppKit CoreFoundation Security ]; + ++ lib.optionals stdenv.isDarwin [ + AppKit + CoreFoundation + Security + ]; - env = lib.optionalAttrs stdenv.cc.isClang { - CXXFLAGS = "-std=c++11"; - } // lib.optionalAttrs stdenv.isDarwin { - NIX_CFLAGS_LINK = "-headerpad_max_install_names"; - }; + env = + lib.optionalAttrs stdenv.cc.isClang { CXXFLAGS = "-std=c++11"; } + // lib.optionalAttrs stdenv.isDarwin { NIX_CFLAGS_LINK = "-headerpad_max_install_names"; }; preConfigure = '' export LD=$CC @@ -51,52 +58,54 @@ stdenv.mkDerivation (finalAttrs: { configureFlags = [ "--enable-shared" ]; - outputs = [ "out" ] - ++ lib.optional pythonSupport "py"; + outputs = [ "out" ] ++ lib.optional pythonSupport "py"; - postInstall = '' - mkdir -p $out/bin - cp pjsip-apps/bin/pjsua-* $out/bin/pjsua - mkdir -p $out/share/${finalAttrs.pname}-${finalAttrs.version}/samples - cp pjsip-apps/bin/samples/*/* $out/share/${finalAttrs.pname}-${finalAttrs.version}/samples - '' + lib.optionalString pythonSupport '' - (cd pjsip-apps/src/swig/python && \ - python setup.py install --prefix=$py - ) - '' + lib.optionalString stdenv.isDarwin '' - # On MacOS relative paths are used to refer to libraries. All libraries use - # a relative path like ../lib/*.dylib or ../../lib/*.dylib. We need to - # rewrite these to use absolute ones. + postInstall = + '' + mkdir -p $out/bin + cp pjsip-apps/bin/pjsua-* $out/bin/pjsua + mkdir -p $out/share/${finalAttrs.pname}-${finalAttrs.version}/samples + cp pjsip-apps/bin/samples/*/* $out/share/${finalAttrs.pname}-${finalAttrs.version}/samples + '' + + lib.optionalString pythonSupport '' + (cd pjsip-apps/src/swig/python && \ + python setup.py install --prefix=$py + ) + '' + + lib.optionalString stdenv.isDarwin '' + # On MacOS relative paths are used to refer to libraries. All libraries use + # a relative path like ../lib/*.dylib or ../../lib/*.dylib. We need to + # rewrite these to use absolute ones. - # First, find all libraries (and their symlinks) in our outputs to define - # the install_name_tool -change arguments we should pass. - readarray -t libraries < <( - for outputName in $(getAllOutputNames); do - find "''${!outputName}" \( -name '*.dylib*' -o -name '*.so*' \) + # First, find all libraries (and their symlinks) in our outputs to define + # the install_name_tool -change arguments we should pass. + readarray -t libraries < <( + for outputName in $(getAllOutputNames); do + find "''${!outputName}" \( -name '*.dylib*' -o -name '*.so*' \) + done + ) + + # Determine the install_name_tool -change arguments that are going to be + # applied to all libraries. + change_args=() + for lib in "''${libraries[@]}"; do + lib_name="$(basename $lib)" + change_args+=(-change ../lib/$lib_name $lib) + change_args+=(-change ../../lib/$lib_name $lib) done - ) - # Determine the install_name_tool -change arguments that are going to be - # applied to all libraries. - change_args=() - for lib in "''${libraries[@]}"; do - lib_name="$(basename $lib)" - change_args+=(-change ../lib/$lib_name $lib) - change_args+=(-change ../../lib/$lib_name $lib) - done + # Rewrite id and library refences for all non-symlinked libraries. + for lib in "''${libraries[@]}"; do + if [ -f "$lib" ]; then + install_name_tool -id $lib "''${change_args[@]}" $lib + fi + done - # Rewrite id and library refences for all non-symlinked libraries. - for lib in "''${libraries[@]}"; do - if [ -f "$lib" ]; then - install_name_tool -id $lib "''${change_args[@]}" $lib - fi - done - - # Rewrite library references for all executables. - find "$out" -executable -type f | while read executable; do - install_name_tool "''${change_args[@]}" "$executable" - done - ''; + # Rewrite library references for all executables. + find "$out" -executable -type f | while read executable; do + install_name_tool "''${change_args[@]}" "$executable" + done + ''; # We need the libgcc_s.so.1 loadable (for pthread_cancel to work) dontPatchELF = true; @@ -106,9 +115,7 @@ stdenv.mkDerivation (finalAttrs: { command = "pjsua --version"; }; - passthru.tests.pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; - }; + passthru.tests.pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; passthru.tests.python-pjsua2 = runCommand "python-pjsua2" { } '' ${(python3.withPackages (pkgs: [ pkgs.pjsua2 ])).interpreter} -c "import pjsua2" > $out @@ -121,8 +128,6 @@ stdenv.mkDerivation (finalAttrs: { maintainers = with maintainers; [ olynch ]; mainProgram = "pjsua"; platforms = platforms.linux ++ platforms.darwin; - pkgConfigModules = [ - "libpjproject" - ]; + pkgConfigModules = [ "libpjproject" ]; }; })