mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 23:03:40 +01:00
Merge #329658: speechd: use minimal variant
Also add it and inject big variant impurely. Merge into staging-next
This commit is contained in:
commit
b8688ce9ff
23 changed files with 150 additions and 52 deletions
|
@ -356,6 +356,7 @@
|
|||
./security/systemd-confinement.nix
|
||||
./security/tpm2.nix
|
||||
./security/wrappers/default.nix
|
||||
./services/accessibility/speechd.nix
|
||||
./services/admin/docuum.nix
|
||||
./services/admin/meshcentral.nix
|
||||
./services/admin/oxidized.nix
|
||||
|
|
|
@ -126,5 +126,15 @@ with lib;
|
|||
|
||||
# allow nix-copy to live system
|
||||
nix.settings.trusted-users = [ "root" "nixos" ];
|
||||
|
||||
# Install less voices for speechd to save some space
|
||||
services.speechd.package = pkgs.speechd.override {
|
||||
mbrola = pkgs.mbrola.override {
|
||||
mbrola-voices = pkgs.mbrola-voices.override {
|
||||
# only ship with one voice per language
|
||||
languages = [ "*1" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
33
nixos/modules/services/accessibility/speechd.nix
Normal file
33
nixos/modules/services/accessibility/speechd.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.speechd;
|
||||
inherit (lib)
|
||||
getExe
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkPackageOption
|
||||
;
|
||||
in
|
||||
{
|
||||
options.services.speechd = {
|
||||
# FIXME: figure out how to deprecate this EXTREMELY CAREFULLY
|
||||
enable = mkEnableOption "speech-dispatcher speech synthesizer daemon" // {
|
||||
default = true;
|
||||
};
|
||||
package = mkPackageOption pkgs "speechd" { };
|
||||
};
|
||||
|
||||
# FIXME: speechd 0.12 (or whatever the next version is)
|
||||
# will support socket activation, so switch to that once it's out.
|
||||
config = mkIf cfg.enable {
|
||||
environment = {
|
||||
systemPackages = [ cfg.package ];
|
||||
sessionVariables.SPEECHD_CMD = getExe cfg.package;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -15,7 +15,7 @@
|
|||
, libxslt
|
||||
, libxml2
|
||||
, speechSupport ? true
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
|
@ -56,7 +56,7 @@ stdenv.mkDerivation {
|
|||
# at-spi2 needs dbus to be recognized by pkg-config
|
||||
at-spi2-core
|
||||
dbus
|
||||
] ++ lib.optional speechSupport speechd;
|
||||
] ++ lib.optional speechSupport speechd-minimal;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, lib, fetchFromGitHub, runCommandLocal }:
|
||||
{ stdenv, lib, fetchFromGitHub, runCommandLocal, mbrola-voices }:
|
||||
|
||||
let
|
||||
pname = "mbrola";
|
||||
|
@ -12,20 +12,6 @@ let
|
|||
homepage = "https://github.com/numediart/MBROLA";
|
||||
};
|
||||
|
||||
# Very big (0.65 G) so kept as a fixed-output derivation to limit "duplicates".
|
||||
voices = fetchFromGitHub {
|
||||
owner = "numediart";
|
||||
repo = "MBROLA-voices";
|
||||
rev = "fe05a0ccef6a941207fd6aaad0b31294a1f93a51"; # using latest commit
|
||||
sha256 = "1w0y2xjp9rndwdjagp2wxh656mdm3d6w9cs411g27rjyfy1205a0";
|
||||
|
||||
name = "${pname}-voices-${version}";
|
||||
meta = meta // {
|
||||
description = "Speech synthesizer based on the concatenation of diphones (voice files)";
|
||||
homepage = "https://github.com/numediart/MBROLA-voices";
|
||||
};
|
||||
};
|
||||
|
||||
bin = stdenv.mkDerivation {
|
||||
pname = "${pname}-bin";
|
||||
inherit version;
|
||||
|
@ -60,7 +46,7 @@ in
|
|||
}
|
||||
''
|
||||
mkdir -p "$out/share/mbrola"
|
||||
ln -s '${voices}/data' "$out/share/mbrola/voices"
|
||||
ln -s '${mbrola-voices}/data' "$out/share/mbrola/voices"
|
||||
ln -s '${bin}/bin' "$out/"
|
||||
''
|
||||
|
||||
|
|
51
pkgs/applications/audio/mbrola/voices.nix
Normal file
51
pkgs/applications/audio/mbrola/voices.nix
Normal file
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
unstableGitUpdater,
|
||||
mbrola,
|
||||
languages ? [ ],
|
||||
}:
|
||||
|
||||
let
|
||||
src = fetchFromGitHub {
|
||||
owner = "numediart";
|
||||
repo = "MBROLA-voices";
|
||||
rev = "fe05a0ccef6a941207fd6aaad0b31294a1f93a51";
|
||||
hash = "sha256-QBUggnde5iNeCESzxE0btVVTDOxc3Kdk483mdGUXHvA=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Speech synthesizer based on the concatenation of diphones (voice files)";
|
||||
homepage = "https://github.com/numediart/MBROLA-voices";
|
||||
license = mbrola.meta.license;
|
||||
};
|
||||
in
|
||||
|
||||
if (languages == [ ]) then
|
||||
src // { inherit meta; }
|
||||
else
|
||||
stdenv.mkDerivation {
|
||||
pname = "mbrola-voices";
|
||||
version = "0-unstable-2020-03-30";
|
||||
|
||||
inherit src;
|
||||
|
||||
postPatch = ''
|
||||
shopt -s extglob
|
||||
pushd data
|
||||
rm -rfv !(${lib.concatStringsSep "|" languages})
|
||||
popd
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir $out
|
||||
cp -R data $out/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
}
|
|
@ -7,7 +7,7 @@
|
|||
, glibmm
|
||||
, libpulseaudio
|
||||
, libao
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
|
|||
glibmm
|
||||
libpulseaudio
|
||||
libao
|
||||
speechd
|
||||
speechd-minimal
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
, qmake
|
||||
, qtbase
|
||||
, qtwayland
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
, sqlite
|
||||
, wrapQtAppsHook
|
||||
, xdg-utils
|
||||
|
@ -132,7 +132,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
] ++ lib.optional (unrarSupport) unrardll)
|
||||
)
|
||||
xdg-utils
|
||||
] ++ lib.optional (speechSupport) speechd;
|
||||
] ++ lib.optional (speechSupport) speechd-minimal;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
, glib, gtk3, dbus-glib
|
||||
, libXScrnSaver, libXcursor, libXtst, libxshmfence, libGLU, libGL
|
||||
, mesa
|
||||
, pciutils, protobuf, speechd, libXdamage, at-spi2-core
|
||||
, pciutils, protobuf, speechd-minimal, libXdamage, at-spi2-core
|
||||
, pipewire
|
||||
, libva
|
||||
, libdrm, wayland, libxkbcommon # Ozone
|
||||
|
@ -196,7 +196,7 @@ let
|
|||
glib gtk3 dbus-glib
|
||||
libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL
|
||||
mesa # required for libgbm
|
||||
pciutils protobuf speechd libXdamage at-spi2-core
|
||||
pciutils protobuf speechd-minimal libXdamage at-spi2-core
|
||||
pipewire
|
||||
libva
|
||||
libdrm wayland libxkbcommon
|
||||
|
@ -224,7 +224,7 @@ let
|
|||
glib gtk3 dbus-glib
|
||||
libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL
|
||||
mesa # required for libgbm
|
||||
pciutils protobuf speechd libXdamage at-spi2-core
|
||||
pciutils protobuf speechd-minimal libXdamage at-spi2-core
|
||||
pipewire
|
||||
libva
|
||||
libdrm wayland libxkbcommon
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
, pciutils
|
||||
, sndio
|
||||
, libjack2
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
, removeReferencesTo
|
||||
}:
|
||||
|
||||
|
@ -98,7 +98,7 @@ let
|
|||
++ lib.optional sndioSupport sndio
|
||||
++ lib.optional jackSupport libjack2
|
||||
++ lib.optional smartcardSupport opensc
|
||||
++ lib.optional (cfg.speechSynthesisSupport or true) speechd
|
||||
++ lib.optional (cfg.speechSynthesisSupport or true) speechd-minimal
|
||||
++ pkcs11Modules
|
||||
++ gtk_modules;
|
||||
gtk_modules = [ libcanberra-gtk3 ];
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss
|
||||
, pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript, python3, runCommand
|
||||
, libunity
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
, wayland
|
||||
, branch
|
||||
, withOpenASAR ? false, openasar
|
||||
|
@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
|
|||
libappindicator-gtk3
|
||||
libdbusmenu
|
||||
wayland
|
||||
] ++ lib.optional withTTS speechd);
|
||||
] ++ lib.optional withTTS speechd-minimal);
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
, jackSupport ? false, libjack2
|
||||
, pipewireSupport ? true, pipewire
|
||||
, pulseSupport ? true, libpulseaudio
|
||||
, speechdSupport ? false, speechd
|
||||
, speechdSupport ? false, speechd-minimal
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -53,7 +53,7 @@ let
|
|||
buildInputs = [ flac libogg libopus libsndfile libvorbis qt5.qtsvg rnnoise speex ]
|
||||
++ lib.optional (!jackSupport) alsa-lib
|
||||
++ lib.optional jackSupport libjack2
|
||||
++ lib.optional speechdSupport speechd
|
||||
++ lib.optional speechdSupport speechd-minimal
|
||||
++ lib.optional pulseSupport libpulseaudio
|
||||
++ lib.optional pipewireSupport pipewire;
|
||||
|
||||
|
@ -72,7 +72,7 @@ let
|
|||
++ lib.optional (!pipewireSupport) "-D pipewire=OFF"
|
||||
++ lib.optional jackSupport "-D alsa=OFF -D jackaudio=ON";
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString speechdSupport "-I${speechd}/include/speech-dispatcher";
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString speechdSupport "-I${speechd-minimal}/include/speech-dispatcher";
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/mumble \
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
, xorg
|
||||
, perl
|
||||
, openssl
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
, libxkbcommon
|
||||
, libGL
|
||||
, wayland
|
||||
}:
|
||||
let
|
||||
rpathLibs = [
|
||||
speechd
|
||||
speechd-minimal
|
||||
openssl
|
||||
gtk3
|
||||
libxkbcommon
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
## Ubuntu
|
||||
, liberation_ttf, curl, util-linux, xdg-utils, wget
|
||||
## Arch Linux.
|
||||
, flac, harfbuzz, icu, libpng, libopus, snappy, speechd
|
||||
, flac, harfbuzz, icu, libpng, libopus, snappy, speechd-minimal
|
||||
## Gentoo
|
||||
, bzip2, libcap
|
||||
|
||||
|
@ -54,7 +54,7 @@ let
|
|||
systemd
|
||||
libexif pciutils
|
||||
liberation_ttf curl util-linux wget
|
||||
flac harfbuzz icu libpng opusWithCustomModes snappy speechd
|
||||
flac harfbuzz icu libpng opusWithCustomModes snappy speechd-minimal
|
||||
bzip2 libcap at-spi2-atk at-spi2-core
|
||||
libkrb5 libdrm libglvnd mesa coreutils
|
||||
libxkbcommon pipewire wayland
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
, lsof
|
||||
, coreutils
|
||||
, gsettings-desktop-schemas
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
, brltty
|
||||
, liblouis
|
||||
, gst_all_1
|
||||
|
@ -65,7 +65,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
brltty
|
||||
liblouis
|
||||
psutil
|
||||
speechd
|
||||
speechd-minimal
|
||||
gst-python
|
||||
setproctitle
|
||||
];
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{ lib, qtModule, stdenv, speechd, pkg-config }:
|
||||
{ lib, qtModule, stdenv, speechd-minimal, pkg-config }:
|
||||
|
||||
qtModule {
|
||||
pname = "qtspeech";
|
||||
propagatedBuildInputs = [ ];
|
||||
buildInputs = lib.optionals stdenv.isLinux [ speechd ];
|
||||
buildInputs = lib.optionals stdenv.isLinux [ speechd-minimal ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
outputs = [ "out" "dev" ];
|
||||
}
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
, pkg-config
|
||||
, flite
|
||||
, alsa-lib
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
, Cocoa
|
||||
}:
|
||||
|
||||
qtModule {
|
||||
pname = "qtspeech";
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ flite alsa-lib speechd ];
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ flite alsa-lib speechd-minimal ];
|
||||
propagatedBuildInputs = [ qtbase qtmultimedia ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ Cocoa ];
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
, withEspeak ? true, espeak, sonic, pcaudiolib
|
||||
, mbrola
|
||||
, withPico ? true, svox
|
||||
, libsOnly ? false
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -101,14 +102,16 @@ in stdenv.mkDerivation rec {
|
|||
substituteInPlace src/modules/pico.c --replace "/usr/share/pico/lang" "${svox}/share/pico/lang"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
postInstall = if libsOnly then ''
|
||||
rm -rf $out/{bin,etc,lib/speech-dispatcher,lib/systemd,libexec,share}
|
||||
'' else ''
|
||||
wrapPythonPrograms
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Common interface to speech synthesis";
|
||||
description = "Common interface to speech synthesis" + lib.optionalString libsOnly " - client libraries only";
|
||||
homepage = "https://devel.freebsoft.org/speechd";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [
|
||||
|
@ -116,5 +119,6 @@ in stdenv.mkDerivation rec {
|
|||
jtojnar
|
||||
];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "speech-dispatcher";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
, pipewire
|
||||
, libsecret
|
||||
, libpulseaudio
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
, info
|
||||
}:
|
||||
|
||||
|
@ -199,7 +199,7 @@ in (chromium.override { upstream-info = info.chromium; }).mkDerivation (base: {
|
|||
stdenv.cc.cc.lib
|
||||
libsecret
|
||||
libpulseaudio
|
||||
speechd
|
||||
speechd-minimal
|
||||
];
|
||||
in
|
||||
base.postFixup + ''
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
, alsa-lib
|
||||
, libpulseaudio
|
||||
, dbus
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
, fontconfig
|
||||
, udev
|
||||
, withDebug ? false
|
||||
|
@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
|
|||
++ lib.optional withPulseaudio libpulseaudio
|
||||
++ lib.optional withDbus dbus
|
||||
++ lib.optional withDbus dbus.lib
|
||||
++ lib.optional withSpeechd speechd
|
||||
++ lib.optional withSpeechd speechd-minimal
|
||||
++ lib.optional withFontconfig fontconfig
|
||||
++ lib.optional withFontconfig fontconfig.lib
|
||||
++ lib.optional withUdev udev;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
, alsa-lib
|
||||
, openssl
|
||||
, withTTS ? false
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
, darwin
|
||||
}:
|
||||
let
|
||||
|
@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
|
|||
nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
|
||||
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optionals (withTTS && stdenv.isLinux) [ speechd ]
|
||||
++ lib.optionals (withTTS && stdenv.isLinux) [ speechd-minimal ]
|
||||
++ lib.optionals stdenv.isLinux [ alsa-lib ]
|
||||
++ lib.optionals (withTTS && stdenv.isDarwin) [ AVFoundation AppKit ]
|
||||
++ lib.optionals stdenv.isDarwin [ CoreAudio AudioUnit ];
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
, pkg-config
|
||||
, libpulseaudio
|
||||
, dbus
|
||||
, speechd
|
||||
, speechd-minimal
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
|
@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
|
|||
buildInputs = [
|
||||
libpulseaudio
|
||||
dbus
|
||||
speechd
|
||||
speechd-minimal
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -24074,6 +24074,17 @@ with pkgs;
|
|||
|
||||
speechd = callPackage ../development/libraries/speechd { };
|
||||
|
||||
speechd-minimal = speechd.override {
|
||||
withLibao = false;
|
||||
withPulse = false;
|
||||
withAlsa = false;
|
||||
withOss = false;
|
||||
withFlite = false;
|
||||
withEspeak = false;
|
||||
withPico = false;
|
||||
libsOnly = true;
|
||||
};
|
||||
|
||||
speech-tools = callPackage ../development/libraries/speech-tools {
|
||||
inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
|
||||
};
|
||||
|
@ -32142,6 +32153,8 @@ with pkgs;
|
|||
|
||||
mbrola = callPackage ../applications/audio/mbrola { };
|
||||
|
||||
mbrola-voices = callPackage ../applications/audio/mbrola/voices.nix { };
|
||||
|
||||
mcpp = callPackage ../development/compilers/mcpp { };
|
||||
|
||||
mda_lv2 = callPackage ../applications/audio/mda-lv2 { };
|
||||
|
|
Loading…
Reference in a new issue