diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 9981fcfb9aea..684986d9a7c7 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -11504,6 +11504,13 @@ githubId = 72767437; name = "Ian Holloway"; }; + iank = { + email = "iank@iank.org"; + github = "iank"; + githubId = 109598; + name = "Ian Kilgore"; + keys = [ { fingerprint = "21F7 244E 095F 619E 8E3E 1EB4 9F3A 4AAB 4D90 D879"; } ]; + }; ianliu = { email = "ian.liu88@gmail.com"; github = "ianliu"; diff --git a/pkgs/development/libraries/liquid-dsp/default.nix b/pkgs/development/libraries/liquid-dsp/default.nix index 583d44001d91..6b4ce1c17233 100644 --- a/pkgs/development/libraries/liquid-dsp/default.nix +++ b/pkgs/development/libraries/liquid-dsp/default.nix @@ -1,48 +1,50 @@ { lib, stdenv, + cmake, fetchFromGitHub, autoreconfHook, - cctools, autoSignDarwinBinariesHook, fixDarwinDylibNames, }: stdenv.mkDerivation rec { pname = "liquid-dsp"; - version = "1.6.0"; + version = "1.8.0"; src = fetchFromGitHub { owner = "jgaeddert"; repo = "liquid-dsp"; rev = "v${version}"; - sha256 = "sha256-3UKAwhYaYZ42+d+wiW/AB6x5TSOel8d++d3HeZqAg/8="; + sha256 = "sha256-IvWtoXuuIvpJfY4cyRUsPHgax2/aytYShSdxEStiPYI="; }; - configureFlags = - lib.optionals stdenv.hostPlatform.isDarwin [ - "LIBTOOL=${cctools}/bin/libtool" - ] - ++ [ - # Prevent native cpu arch from leaking into binaries. This might lead to - # poor performance, but having portable and working executables is more - # important. - (lib.enableFeature true "simdoverride") - ]; + cmakeFlags = [ + # Prevent native cpu arch from leaking into binaries. + (lib.cmakeBool "ENABLE_SIMD" false) + (lib.cmakeBool "FIND_SIMD" false) + ]; nativeBuildInputs = [ - autoreconfHook + cmake ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - cctools autoSignDarwinBinariesHook fixDarwinDylibNames ]; + patches = [ + ./fix-cmake-pc-paths.patch + ./include-stdarg.patch + ]; + + doCheck = true; + meta = { homepage = "https://liquidsdr.org/"; description = "Digital signal processing library for software-defined radios"; license = lib.licenses.mit; platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ iank ]; }; } diff --git a/pkgs/development/libraries/liquid-dsp/fix-cmake-pc-paths.patch b/pkgs/development/libraries/liquid-dsp/fix-cmake-pc-paths.patch new file mode 100644 index 000000000000..ed4d01061dc3 --- /dev/null +++ b/pkgs/development/libraries/liquid-dsp/fix-cmake-pc-paths.patch @@ -0,0 +1,29 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 07c123889..a6640515c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -564,6 +564,9 @@ if (fftw3f_FOUND) + string(APPEND LIQUID_PC_LIBS_PRIVATE " -lfftw3f") + endif() + ++cmake_path(APPEND libdir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_LIBDIR}") ++cmake_path(APPEND includedir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}") ++ + configure_file( + cmake/liquid-dsp.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/liquid-dsp.pc +diff --git a/cmake/liquid-dsp.pc.in b/cmake/liquid-dsp.pc.in +index 93597a7e4..06de85dee 100644 +--- a/cmake/liquid-dsp.pc.in ++++ b/cmake/liquid-dsp.pc.in +@@ -2,8 +2,8 @@ + + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix} +-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ +-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ ++libdir=@libdir_for_pc_file@ ++includedir=@includedir_for_pc_file@ + + Name: liquid-dsp + Description: Software-defined radio digital signal processing library diff --git a/pkgs/development/libraries/liquid-dsp/include-stdarg.patch b/pkgs/development/libraries/liquid-dsp/include-stdarg.patch new file mode 100644 index 000000000000..3eb68b99e636 --- /dev/null +++ b/pkgs/development/libraries/liquid-dsp/include-stdarg.patch @@ -0,0 +1,12 @@ +diff --git a/include/liquid.h b/include/liquid.h +index 290778b50..52d898d07 100644 +--- a/include/liquid.h ++++ b/include/liquid.h +@@ -34,6 +34,7 @@ extern "C" { + #include + #include + #include ++#include + + // compile-time short file path: use __FILE_NAME__ if available (Clang 9+, GCC 12+) + #ifdef __FILE_NAME__