{ alsa-lib, autoPatchelfHook, copyDesktopItems, fetchurl, fontconfig, gcc, icu, lib, libice, libsm, libusb1, libx11, makeDesktopItem, stdenv, util-linux }: let hash = "de38254b9"; platforms = { aarch64-linux = { arch = "arm64"; sha256 = "1vkmffl0xjyg22fk4sfl35cc2m5zi9i0jcmd4vk25fjyj9r94p1p"; }; x86_64-linux = { arch = "x64"; sha256 = "0giljynl62pn9bik0jxl01h7pj9p3s94vlrg532dnn5kndh68lcs"; }; }; version = "1.0.8"; inherit (stdenv.hostPlatform) system; in with platforms.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); stdenv.mkDerivation rec { inherit version; pname = "sdrconnect"; src = fetchurl { url = "https://www.sdrplay.com/software/sdrconnect_linux-${arch}_${hash}.tar.gz"; inherit sha256; }; nativeBuildInputs = [ autoPatchelfHook copyDesktopItems ]; buildInputs = [ alsa-lib fontconfig libusb1 util-linux # for libuuid gcc.cc.lib # for libstdc++ ]; runtimeDependencies = [ icu libice libsm libx11 ]; appendRunpaths = [ "${placeholder "out"}/lib" ]; unpackPhase = '' tar xaf $src ''; postInstall = '' mkdir -p $out/bin $out/lib $out/share/icons/hicolor/64x64/apps cp SDRconnect $out/bin cp *.so $out/lib cp icons/64x64/sdrconnect.png $out/share/icons/hicolor/64x64/apps ''; desktopItems = with meta; [ (makeDesktopItem { name = pname; icon = pname; exec = mainProgram; comment = description; desktopName = "SDRconnect"; genericName = "SDRplay Client"; categories = [ "AudioVideo" "HamRadio" ]; keywords = [ "Ham" "Radio" "SDR" ]; }) ]; meta = with lib; { description = "Cross platform GUI client for SDRplay"; homepage = "https://www.sdrplay.com/sdrconnect/"; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; platforms = attrNames platforms; mainProgram = "SDRconnect"; }; }