Merge master into staging-next
This commit is contained in:
commit
d4f421cad9
24 changed files with 1056 additions and 608 deletions
|
@ -405,7 +405,7 @@ in
|
|||
};
|
||||
} // optionalAttrs (cfg.createMailUser && cfg.mailUser != null) {
|
||||
${cfg.mailUser} =
|
||||
{ description = "Virtual Mail User"; } // optionalAttrs (cfg.mailGroup != null)
|
||||
{ description = "Virtual Mail User"; isSystemUser = true; } // optionalAttrs (cfg.mailGroup != null)
|
||||
{ group = cfg.mailGroup; };
|
||||
};
|
||||
|
||||
|
|
|
@ -165,7 +165,7 @@ in {
|
|||
|
||||
baseUrl = mkOption {
|
||||
type = types.str;
|
||||
default = "http://localhost/hyperkitty/";
|
||||
default = "http://localhost:18507/archives/";
|
||||
description = ''
|
||||
Where can Mailman connect to Hyperkitty's internal API, preferably on
|
||||
localhost?
|
||||
|
@ -391,6 +391,7 @@ in {
|
|||
plugins = ["python3"];
|
||||
home = pythonEnv;
|
||||
module = "mailman_web.wsgi";
|
||||
http = "127.0.0.1:18507";
|
||||
};
|
||||
uwsgiConfigFile = pkgs.writeText "uwsgi-mailman.json" (builtins.toJSON uwsgiConfig);
|
||||
in {
|
||||
|
|
|
@ -192,8 +192,8 @@ in
|
|||
# Auto-migrate on first run or if the package has changed
|
||||
versionFile="${cfg.dataDir}/src-version"
|
||||
if [[ $(cat "$versionFile" 2>/dev/null) != ${pkgs.etebase-server} ]]; then
|
||||
${pythonEnv}/bin/etebase-server migrate
|
||||
${pythonEnv}/bin/etebase-server collectstatic
|
||||
${pythonEnv}/bin/etebase-server migrate --no-input
|
||||
${pythonEnv}/bin/etebase-server collectstatic --no-input --clear
|
||||
echo ${pkgs.etebase-server} > "$versionFile"
|
||||
fi
|
||||
'';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
|
@ -150,9 +150,6 @@ in
|
|||
wantedBy = [ "multi-user.target" ];
|
||||
aliases = [ "dbus-org.freedesktop.resolve1.service" ];
|
||||
restartTriggers = [ config.environment.etc."systemd/resolved.conf".source ];
|
||||
# Upstream bug: https://github.com/systemd/systemd/issues/18078
|
||||
# systemd-resolved without libidn2 is broken
|
||||
environment.LD_LIBRARY_PATH = "${lib.getLib pkgs.libidn2}/lib";
|
||||
};
|
||||
|
||||
environment.etc = {
|
||||
|
|
|
@ -321,5 +321,48 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
|||
docker.succeed(
|
||||
"docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} sh -c 'stat -c '%u' /home/jane | grep -E ^1000$'"
|
||||
)
|
||||
|
||||
with subtest("Ensure docker load on merged images loads all of the constituent images"):
|
||||
docker.succeed(
|
||||
"docker load --input='${examples.mergedBashAndRedis}'"
|
||||
)
|
||||
docker.succeed(
|
||||
"docker images --format '{{.Repository}}-{{.Tag}}' | grep -F '${examples.bash.imageName}-${examples.bash.imageTag}'"
|
||||
)
|
||||
docker.succeed(
|
||||
"docker images --format '{{.Repository}}-{{.Tag}}' | grep -F '${examples.redis.imageName}-${examples.redis.imageTag}'"
|
||||
)
|
||||
docker.succeed("docker run --rm ${examples.bash.imageName} bash --version")
|
||||
docker.succeed("docker run --rm ${examples.redis.imageName} redis-cli --version")
|
||||
docker.succeed("docker rmi ${examples.bash.imageName}")
|
||||
docker.succeed("docker rmi ${examples.redis.imageName}")
|
||||
|
||||
with subtest(
|
||||
"Ensure docker load on merged images loads all of the constituent images (missing tags)"
|
||||
):
|
||||
docker.succeed(
|
||||
"docker load --input='${examples.mergedBashNoTagAndRedis}'"
|
||||
)
|
||||
docker.succeed(
|
||||
"docker images --format '{{.Repository}}-{{.Tag}}' | grep -F '${examples.bashNoTag.imageName}-${examples.bashNoTag.imageTag}'"
|
||||
)
|
||||
docker.succeed(
|
||||
"docker images --format '{{.Repository}}-{{.Tag}}' | grep -F '${examples.redis.imageName}-${examples.redis.imageTag}'"
|
||||
)
|
||||
# we need to explicitly specify the generated tag here
|
||||
docker.succeed(
|
||||
"docker run --rm ${examples.bashNoTag.imageName}:${examples.bashNoTag.imageTag} bash --version"
|
||||
)
|
||||
docker.succeed("docker run --rm ${examples.redis.imageName} redis-cli --version")
|
||||
docker.succeed("docker rmi ${examples.bashNoTag.imageName}:${examples.bashNoTag.imageTag}")
|
||||
docker.succeed("docker rmi ${examples.redis.imageName}")
|
||||
|
||||
with subtest("mergeImages preserves owners of the original images"):
|
||||
docker.succeed(
|
||||
"docker load --input='${examples.mergedBashFakeRoot}'"
|
||||
)
|
||||
docker.succeed(
|
||||
"docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} sh -c 'stat -c '%u' /home/jane | grep -E ^1000$'"
|
||||
)
|
||||
'';
|
||||
})
|
||||
|
|
|
@ -8,6 +8,8 @@ import ./make-test-python.nix {
|
|||
enable = true;
|
||||
protocols = [ "imap" "pop3" ];
|
||||
modules = [ pkgs.dovecot_pigeonhole ];
|
||||
mailUser = "vmail";
|
||||
mailGroup = "vmail";
|
||||
};
|
||||
environment.systemPackages = let
|
||||
sendTestMail = pkgs.writeScriptBin "send-testmail" ''
|
||||
|
|
|
@ -31,9 +31,9 @@
|
|||
}
|
||||
},
|
||||
"dev": {
|
||||
"version": "91.0.4469.4",
|
||||
"sha256": "08lffqjfcszniwwshililab553a0dvycaa72h1dklxvxf360nz5f",
|
||||
"sha256bin64": "14xyzjwzcyp6idscq6i87yh2fibjamkz5xfsb2y0hrf2diaqijw1",
|
||||
"version": "91.0.4472.10",
|
||||
"sha256": "168121aznynks5waj3mm2m036mbrlmqmp2kmnn9r4ibq2x01dpxm",
|
||||
"sha256bin64": "05bk6gmmfsh50jjlb6lmwqhhbs0v0hlijsmxpk9crdx2gw071rlr",
|
||||
"deps": {
|
||||
"gn": {
|
||||
"version": "2021-04-06",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, fetchpatch, fetchurl, fetchzip, python3
|
||||
, mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, glib-networking
|
||||
{ lib, fetchurl, fetchzip, fetchpatch, python3
|
||||
, mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, qtwebengine, glib-networking
|
||||
, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
|
||||
, libxslt, gst_all_1 ? null
|
||||
, withPdfReader ? true
|
||||
|
@ -12,12 +12,12 @@ assert withMediaPlayback -> gst_all_1 != null;
|
|||
let
|
||||
python3Packages = python3.pkgs;
|
||||
pdfjs = let
|
||||
version = "2.6.347";
|
||||
version = "2.8.335";
|
||||
in
|
||||
fetchzip rec {
|
||||
name = "pdfjs-${version}";
|
||||
url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
|
||||
sha256 = "0d016fyg81cq464li01xlkf9rxrb3rpsvmk5gh9m4d5yzmcakkfm";
|
||||
sha256 = "1zschfpxnhdinn9nasl5in4s62ad0h1g369cglamjgxx36x27zly";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
@ -31,12 +31,12 @@ let
|
|||
|
||||
in mkDerivationWith python3Packages.buildPythonApplication rec {
|
||||
pname = "qutebrowser";
|
||||
version = "2.1.1";
|
||||
version = "2.2.0";
|
||||
|
||||
# the release tarballs are different from the git checkout!
|
||||
src = fetchurl {
|
||||
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-txsArX1JiRGXjlu9FTpt0EUKxq3j5b85j8luFTKDQs4=";
|
||||
sha256 = "sha256:0anxhrkxqb35mxr7jr820xcfw0v514s92wffsiqap2a2sqaj0pgs";
|
||||
};
|
||||
|
||||
# Needs tox
|
||||
|
@ -70,10 +70,9 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
|
|||
patches = [
|
||||
./fix-restart.patch
|
||||
(fetchpatch {
|
||||
name = "fix-version-parsing.patch";
|
||||
url = "https://github.com/qutebrowser/qutebrowser/commit/c3d1b71c6f08607f47353f406aca0168bb3062a1.patch";
|
||||
excludes = [ "doc/changelog.asciidoc" ];
|
||||
sha256 = "1vm2yjvmrw4cyn8mpwfwvvcihn74f60ql3qh1rjj8n0wak8z1ir6";
|
||||
name = "add-qtwebengine-version-override.patch";
|
||||
url = "https://github.com/qutebrowser/qutebrowser/commit/febb921040b6670d9b1694a6ce55ae39384d1306.patch";
|
||||
sha256 = "15p11kk8via7c7m14jiqgzc63qwxxzayr2bkl93jd10l2gx7pk9v";
|
||||
})
|
||||
];
|
||||
|
||||
|
@ -123,6 +122,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
|
|||
"''${gappsWrapperArgs[@]}"
|
||||
"''${qtWrapperArgs[@]}"
|
||||
--add-flags '--backend ${backend}'
|
||||
--set QUTE_QTWEBENGINE_VERSION_OVERRIDE "${lib.getVersion qtwebengine}"
|
||||
)
|
||||
'';
|
||||
|
||||
|
|
|
@ -16,12 +16,12 @@ with lib;
|
|||
|
||||
buildGoPackage rec {
|
||||
pname = "gitea";
|
||||
version = "1.14.0";
|
||||
version = "1.14.1";
|
||||
|
||||
# not fetching directly from the git repo, because that lacks several vendor files for the web UI
|
||||
src = fetchurl {
|
||||
url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
|
||||
sha256 = "sha256-SE+YqcRNkhRQXDzgv72YrQX9bG/URYj4NAFvTg4bE3Y=";
|
||||
sha256 = "1hpwc5jmkbnn6qf3li8g38qz2l87vk6jq2zxijq92jyfp54kj03p";
|
||||
};
|
||||
|
||||
unpackPhase = ''
|
||||
|
|
71
pkgs/applications/video/haruna/default.nix
Normal file
71
pkgs/applications/video/haruna/default.nix
Normal file
|
@ -0,0 +1,71 @@
|
|||
{ lib
|
||||
, fetchFromGitHub
|
||||
, mkDerivation
|
||||
, breeze-icons
|
||||
, breeze-qt5
|
||||
, cmake
|
||||
, extra-cmake-modules
|
||||
, kcodecs
|
||||
, kconfig
|
||||
, kcoreaddons
|
||||
, kfilemetadata
|
||||
, ki18n
|
||||
, kiconthemes
|
||||
, kio
|
||||
, kio-extras
|
||||
, kirigami2
|
||||
, kxmlgui
|
||||
, mpv
|
||||
, pkg-config
|
||||
, qqc2-desktop-style
|
||||
, qtbase
|
||||
, qtquickcontrols2
|
||||
, qtwayland
|
||||
, youtube-dl
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "haruna";
|
||||
version = "0.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "g-fb";
|
||||
repo = "haruna";
|
||||
rev = version;
|
||||
sha256 = "sha256-8MauKmvQUwzq4Ssmm6g7/y6ADkye+eg/zyR3v/Wu848=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
breeze-icons
|
||||
breeze-qt5
|
||||
kcodecs
|
||||
kconfig
|
||||
kcoreaddons
|
||||
kfilemetadata
|
||||
ki18n
|
||||
kiconthemes
|
||||
kio
|
||||
kio-extras
|
||||
kirigami2
|
||||
kxmlgui
|
||||
mpv
|
||||
qqc2-desktop-style
|
||||
qtbase
|
||||
qtquickcontrols2
|
||||
qtwayland
|
||||
youtube-dl
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
pkg-config
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/g-fb/haruna";
|
||||
description = "Open source video player built with Qt/QML and libmpv";
|
||||
license = with licenses; [ bsd3 cc-by-40 gpl3Plus wtfpl ];
|
||||
maintainers = with maintainers; [ jojosch ];
|
||||
};
|
||||
}
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
buildGoPackage rec {
|
||||
pname = "docker-slim";
|
||||
version = "1.34.0";
|
||||
version = "1.35.0";
|
||||
|
||||
goPackagePath = "github.com/docker-slim/docker-slim";
|
||||
|
||||
|
@ -14,7 +14,7 @@ buildGoPackage rec {
|
|||
owner = "docker-slim";
|
||||
repo = "docker-slim";
|
||||
rev = version;
|
||||
sha256 = "1ynpd6yb1xc18y528sshd5k9nkz48h1zifj2w4sjh5n0864lna7b";
|
||||
sha256 = "0j350rhyav844vhaa1f5idffflgs5h3c5zcazly9s5sf4invm49y";
|
||||
};
|
||||
|
||||
subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
|
||||
|
|
|
@ -686,6 +686,42 @@ rec {
|
|||
in
|
||||
result;
|
||||
|
||||
# Merge the tarballs of images built with buildImage into a single
|
||||
# tarball that contains all images. Running `docker load` on the resulting
|
||||
# tarball will load the images into the docker daemon.
|
||||
mergeImages = images: runCommand "merge-docker-images"
|
||||
{
|
||||
inherit images;
|
||||
nativeBuildInputs = [ pigz jq ];
|
||||
} ''
|
||||
mkdir image inputs
|
||||
# Extract images
|
||||
repos=()
|
||||
manifests=()
|
||||
for item in $images; do
|
||||
name=$(basename $item)
|
||||
mkdir inputs/$name
|
||||
tar -I pigz -xf $item -C inputs/$name
|
||||
if [ -f inputs/$name/repositories ]; then
|
||||
repos+=(inputs/$name/repositories)
|
||||
fi
|
||||
if [ -f inputs/$name/manifest.json ]; then
|
||||
manifests+=(inputs/$name/manifest.json)
|
||||
fi
|
||||
done
|
||||
# Copy all layers from input images to output image directory
|
||||
cp -R --no-clobber inputs/*/* image/
|
||||
# Merge repositories objects and manifests
|
||||
jq -s add "''${repos[@]}" > repositories
|
||||
jq -s add "''${manifests[@]}" > manifest.json
|
||||
# Replace output image repositories and manifest with merged versions
|
||||
mv repositories image/repositories
|
||||
mv manifest.json image/manifest.json
|
||||
# Create tarball and gzip
|
||||
tar -C image --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0 --xform s:'^./':: -c . | pigz -nT > $out
|
||||
'';
|
||||
|
||||
|
||||
# Provide a /etc/passwd and /etc/group that contain root and nobody.
|
||||
# Useful when packaging binaries that insist on using nss to look up
|
||||
# username/groups (like nginx).
|
||||
|
|
|
@ -497,4 +497,23 @@ rec {
|
|||
chown 1000 ./home/jane
|
||||
'';
|
||||
};
|
||||
|
||||
# tarball consisting of both bash and redis images
|
||||
mergedBashAndRedis = pkgs.dockerTools.mergeImages [
|
||||
bash
|
||||
redis
|
||||
];
|
||||
|
||||
# tarball consisting of bash (without tag) and redis images
|
||||
mergedBashNoTagAndRedis = pkgs.dockerTools.mergeImages [
|
||||
bashNoTag
|
||||
redis
|
||||
];
|
||||
|
||||
# tarball consisting of bash and layered image with different owner of the
|
||||
# /home/jane directory
|
||||
mergedBashFakeRoot = pkgs.dockerTools.mergeImages [
|
||||
bash
|
||||
layeredImageWithFakeRootCommands
|
||||
];
|
||||
}
|
||||
|
|
|
@ -34,10 +34,7 @@ stdenv.mkDerivation {
|
|||
|
||||
patches = [ ./nix-ssl-cert-file.patch ]
|
||||
# Disable native add_system_trust.
|
||||
++ lib.optional (isDarwin && !withSecurity) ./no-security-framework.patch
|
||||
# fix gnulib tests on 32-bit ARM. Included on gnutls master.
|
||||
# https://lists.gnu.org/r/bug-gnulib/2020-08/msg00225.html
|
||||
++ lib.optional stdenv.hostPlatform.isAarch32 ./fix-gnulib-tests-arm.patch;
|
||||
++ lib.optional (isDarwin && !withSecurity) ./no-security-framework.patch;
|
||||
|
||||
# Skip some tests:
|
||||
# - pkg-config: building against the result won't work before installing (3.5.11)
|
||||
|
@ -50,7 +47,7 @@ stdenv.mkDerivation {
|
|||
sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c
|
||||
sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh
|
||||
'' + lib.optionalString stdenv.hostPlatform.isMusl '' # See https://gitlab.com/gnutls/gnutls/-/issues/945
|
||||
sed '2iecho "certtool tests skipped in musl build"\nexit 0' -i tests/cert-tests/certtool
|
||||
sed '2iecho "certtool tests skipped in musl build"\nexit 0' -i tests/cert-tests/certtool.sh
|
||||
'';
|
||||
|
||||
preConfigure = "patchShebangs .";
|
||||
|
|
|
@ -195,6 +195,7 @@
|
|||
, "react-tools"
|
||||
, "readability-cli"
|
||||
, "redoc-cli"
|
||||
, "remod-cli"
|
||||
, "reveal.js"
|
||||
, "rimraf"
|
||||
, "rollup"
|
||||
|
|
1307
pkgs/development/node-packages/node-packages.nix
generated
1307
pkgs/development/node-packages/node-packages.nix
generated
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, lib, fetchurl, buildDunePackage, ocaml
|
||||
{ stdenv, lib, fetchurl, buildDunePackage, ocaml, dune-configurator
|
||||
, pkg-config, cairo
|
||||
}:
|
||||
|
||||
|
@ -6,13 +6,15 @@ buildDunePackage rec {
|
|||
pname = "cairo2";
|
||||
version = "0.6.1";
|
||||
|
||||
useDune2 = true;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Chris00/ocaml-cairo/releases/download/${version}/cairo2-${version}.tbz";
|
||||
sha256 = "1ik4qf4b9443sliq2z7x9acd40rmzvyzjh3bh98wvjklxbb84a9i";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ cairo ];
|
||||
buildInputs = [ cairo dune-configurator ];
|
||||
|
||||
doCheck = !(stdenv.isDarwin
|
||||
# https://github.com/Chris00/ocaml-cairo/issues/19
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
{ lib, fetchurl, pkg-config, buildDunePackage, gtk3, cairo2 }:
|
||||
{ lib, fetchurl, pkg-config, buildDunePackage, dune-configurator, gtk3, cairo2 }:
|
||||
|
||||
buildDunePackage rec {
|
||||
version = "3.1.1";
|
||||
pname = "lablgtk3";
|
||||
|
||||
useDune2 = true;
|
||||
|
||||
minimumOCamlVersion = "4.05";
|
||||
|
||||
src = fetchurl {
|
||||
|
@ -12,6 +14,7 @@ buildDunePackage rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ dune-configurator ];
|
||||
propagatedBuildInputs = [ gtk3 cairo2 ];
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -4,5 +4,5 @@ buildDunePackage {
|
|||
pname = "lablgtk3-gtkspell3";
|
||||
buildInputs = [ gtkspell3 ] ++ lablgtk3.buildInputs;
|
||||
propagatedBuildInputs = [ lablgtk3 ];
|
||||
inherit (lablgtk3) src version meta nativeBuildInputs;
|
||||
inherit (lablgtk3) src version useDune2 meta nativeBuildInputs;
|
||||
}
|
||||
|
|
|
@ -4,5 +4,5 @@ buildDunePackage {
|
|||
pname = "lablgtk3-sourceview3";
|
||||
buildInputs = lablgtk3.buildInputs ++ [ gtksourceview ];
|
||||
propagatedBuildInputs = [ lablgtk3 ];
|
||||
inherit (lablgtk3) src version meta nativeBuildInputs;
|
||||
inherit (lablgtk3) src version useDune2 meta nativeBuildInputs;
|
||||
}
|
||||
|
|
38
pkgs/development/python-modules/pypinyin/default.nix
Normal file
38
pkgs/development/python-modules/pypinyin/default.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pypinyin";
|
||||
version = "0.41.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mozillazg";
|
||||
repo = "python-pinyin";
|
||||
rev = "v${version}";
|
||||
sha256 = "1s01dd5n6cgjg24dmji0abxkyvr1yi18lx4rpm9z54v0q3wkccg9";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pytest.ini --replace \
|
||||
"--cov-report term-missing" ""
|
||||
'';
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pytestFlagsArray = [
|
||||
"tests"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Chinese Characters to Pinyin - 汉字转拼音";
|
||||
homepage = "https://github.com/mozillazg/python-pinyin";
|
||||
changelog = "https://github.com/mozillazg/python-pinyin/blob/master/CHANGELOG.rst";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ hexa mic92 ];
|
||||
};
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
, python3Packages
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
, fetchpatch
|
||||
}:
|
||||
|
||||
# USAGE:
|
||||
|
@ -9,24 +10,32 @@
|
|||
# # pick your favorite vocoder/tts model
|
||||
# $ tts-server --model_name tts_models/en/ljspeech/glow-tts --vocoder_name vocoder_models/universal/libri-tts/fullband-melgan
|
||||
#
|
||||
# If you upgrade from an old version you may have to delete old models from ~/.local/share/tts
|
||||
# Also note that your tts version might not support all available models so check:
|
||||
# https://github.com/coqui-ai/TTS/releases/tag/v0.0.12
|
||||
#
|
||||
# For now, for deployment check the systemd unit in the pull request:
|
||||
# https://github.com/NixOS/nixpkgs/pull/103851#issue-521121136
|
||||
#
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "tts";
|
||||
# until https://github.com/mozilla/TTS/issues/424 is resolved
|
||||
# we treat released models as released versions:
|
||||
# https://github.com/mozilla/TTS/wiki/Released-Models
|
||||
version = "0.0.9";
|
||||
version = "0.0.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mozilla";
|
||||
owner = "coqui-ai";
|
||||
repo = "TTS";
|
||||
rev = "df5899daf4ba4ec89544edf94f9c2e105c544461";
|
||||
sha256 = "sha256-lklG8DqG04LKJY93z2axeYhW8gtpbRG41o9ow2gJjuA=";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-0M9wcdBmuTK+NvEGsXEdoYiVFjw8G2MRUwmi1PJgmzI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/coqui-ai/TTS/pull/435
|
||||
(fetchpatch {
|
||||
url = "https://github.com/coqui-ai/TTS/commit/97f98e4c4584ef14ed2f4885aa02c162d9364a00.patch";
|
||||
sha256 = "sha256-DAZYOOAe+6TYBF5ukFq5HRwm49askEvNEivuwb/oCWM=";
|
||||
})
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
# numba jit tries to write to its cache directory
|
||||
export HOME=$TMPDIR
|
||||
|
@ -37,7 +46,11 @@ python3Packages.buildPythonApplication rec {
|
|||
sed -i -e 's!unidecode==[^"]*!unidecode!' requirements.txt setup.py
|
||||
sed -i -e 's!bokeh==[^"]*!bokeh!' requirements.txt setup.py
|
||||
sed -i -e 's!numba==[^"]*!numba!' requirements.txt setup.py
|
||||
sed -i -e 's!numpy==[^"]*!numpy!' requirements.txt setup.py
|
||||
sed -i -e 's!umap-learn==[^"]*!umap-learn!' requirements.txt setup.py
|
||||
# Not required for building/installation but for their development/ci workflow
|
||||
sed -i -e '/black/d' requirements.txt
|
||||
sed -i -e '/isor/d' requirements.txt
|
||||
sed -i -e '/pylint/d' requirements.txt
|
||||
sed -i -e '/cardboardlint/d' requirements.txt setup.py
|
||||
'';
|
||||
|
@ -45,24 +58,25 @@ python3Packages.buildPythonApplication rec {
|
|||
nativeBuildInputs = [ python3Packages.cython ];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
matplotlib
|
||||
scipy
|
||||
pytorch
|
||||
flask
|
||||
attrdict
|
||||
bokeh
|
||||
soundfile
|
||||
tqdm
|
||||
librosa
|
||||
unidecode
|
||||
umap-learn
|
||||
phonemizer
|
||||
tensorboardx
|
||||
flask
|
||||
fuzzywuzzy
|
||||
inflect
|
||||
gdown
|
||||
inflect
|
||||
jieba
|
||||
librosa
|
||||
matplotlib
|
||||
phonemizer
|
||||
pypinyin
|
||||
pysbd
|
||||
pyworld
|
||||
pytorch
|
||||
scipy
|
||||
soundfile
|
||||
tensorboardx
|
||||
tqdm
|
||||
umap-learn
|
||||
unidecode
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
|
@ -92,16 +106,17 @@ python3Packages.buildPythonApplication rec {
|
|||
mv TTS{,.old}
|
||||
'';
|
||||
|
||||
pytestFlagsArray = [
|
||||
disabledTestPaths = [
|
||||
# requires tensorflow
|
||||
"--ignore=tests/test_tacotron2_tf_model.py"
|
||||
"--ignore=tests/test_vocoder_tf_melgan_generator.py"
|
||||
"--ignore=tests/test_vocoder_tf_pqmf.py"
|
||||
"tests/test_tacotron2_tf_model.py"
|
||||
"tests/test_vocoder_tf_melgan_generator.py"
|
||||
"tests/test_vocoder_tf_pqmf.py"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/mozilla/TTS";
|
||||
description = "Deep learning for Text to Speech";
|
||||
homepage = "https://github.com/coqui-ai/TTS";
|
||||
changelog = "https://github.com/coqui-ai/TTS/releases/tag/v${version}";
|
||||
description = "Deep learning toolkit for Text-to-Speech, battle-tested in research and production";
|
||||
license = licenses.mpl20;
|
||||
maintainers = with maintainers; [ hexa mic92 ];
|
||||
};
|
||||
|
|
|
@ -22661,6 +22661,8 @@ in
|
|||
|
||||
gspeech = callPackage ../applications/audio/gspeech { };
|
||||
|
||||
haruna = libsForQt5.callPackage ../applications/video/haruna { };
|
||||
|
||||
icesl = callPackage ../applications/misc/icesl { };
|
||||
|
||||
keepassx = callPackage ../applications/misc/keepassx { };
|
||||
|
@ -26825,7 +26827,9 @@ in
|
|||
|
||||
kodiPackages = recurseIntoAttrs (kodi.packages);
|
||||
|
||||
kodi = callPackage ../applications/video/kodi { };
|
||||
kodi = callPackage ../applications/video/kodi {
|
||||
jre_headless = jdk11_headless;
|
||||
};
|
||||
|
||||
kodi-wayland = callPackage ../applications/video/kodi {
|
||||
waylandSupport = true;
|
||||
|
|
|
@ -5782,6 +5782,8 @@ in {
|
|||
|
||||
pypillowfight = callPackage ../development/python-modules/pypillowfight { };
|
||||
|
||||
pypinyin = callPackage ../development/python-modules/pypinyin { };
|
||||
|
||||
pyplaato = callPackage ../development/python-modules/pyplaato { };
|
||||
|
||||
pyplatec = callPackage ../development/python-modules/pyplatec { };
|
||||
|
|
Loading…
Reference in a new issue