diff --git a/pkgs/applications/radio/freedv/default.nix b/pkgs/applications/radio/freedv/default.nix new file mode 100644 index 000000000000..b369a5475e53 --- /dev/null +++ b/pkgs/applications/radio/freedv/default.nix @@ -0,0 +1,49 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, codec2 +, libsamplerate +, libsndfile +, lpcnetfreedv +, portaudio +, speexdsp +, hamlib +, wxGTK31-gtk3 +}: + +stdenv.mkDerivation rec { + pname = "freedv"; + version = "1.6.1"; + + src = fetchFromGitHub { + owner = "drowe67"; + repo = "freedv-gui"; + rev = "v${version}"; + sha256 = "1dzhf944vgla9a5ilcgwivhzgdbfaknqnwbpb071a0rz8rajnv0q"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ + codec2 + libsamplerate + libsndfile + lpcnetfreedv + portaudio + speexdsp + hamlib + wxGTK31-gtk3 + ]; + + cmakeFlags = [ + "-DUSE_INTERNAL_CODEC2:BOOL=FALSE" + "-DUSE_STATIC_DEPS:BOOL=FALSE" + ]; + + meta = with lib; { + homepage = "https://freedv.org/"; + description = "Digital voice for HF radio"; + license = licenses.lgpl21; + maintainers = with maintainers; [ mvs ]; + }; +} diff --git a/pkgs/development/libraries/lpcnetfreedv/default.nix b/pkgs/development/libraries/lpcnetfreedv/default.nix new file mode 100644 index 000000000000..ac12d3a5fd6b --- /dev/null +++ b/pkgs/development/libraries/lpcnetfreedv/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, fetchurl, cmake, codec2 }: + +let + dataVersion = "191005_v1.0"; + data = fetchurl { + url = "http://rowetel.com/downloads/deep/lpcnet_${dataVersion}.tgz"; + sha256 = "1j1695hm2pg6ri611f9kr3spm4yxvpikws55z9zxizai8y94152h"; + }; +in stdenv.mkDerivation rec { + pname = "lpcnetfreedv"; + version = "unstable-2021-06-29"; + + src = fetchFromGitHub { + owner = "drowe67"; + repo = "LPCNet"; + rev = "0dc5935bbf49ff3ba3c9654cc2f802838ebbaead"; + sha256 = "0r6488z40fkar11ync8achpg5l6qz7y7cbh7cs3b3w4fsxn58q9i"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ codec2 ]; + + postPatch = '' + mkdir build + ln -s ${data} build/lpcnet_${dataVersion}.tgz + ''; + + meta = with lib; { + homepage = "https://freedv.org/"; + description = "Experimental Neural Net speech coding for FreeDV"; + license = licenses.bsd3; + maintainers = with maintainers; [ mvs ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index aa996e5adfb0..4e7b4a913750 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6798,6 +6798,8 @@ with pkgs; lottieconverter = callPackage ../tools/misc/lottieconverter { }; + lpcnetfreedv = callPackage ../development/libraries/lpcnetfreedv { }; + lsd = callPackage ../tools/misc/lsd { }; lsdvd = callPackage ../tools/cd-dvd/lsdvd {}; @@ -24995,6 +24997,8 @@ with pkgs; shiboken2; }; + freedv = callPackage ../applications/radio/freedv { }; + freemind = callPackage ../applications/misc/freemind { jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731