voicevox: 0.20.0 -> 0.22.3; voicevox-engine: 0.20.0 -> 0.22.2; voicevox-core: 0.15.4 -> 0.15.7 (#367083)

Toma e238f8a8 9323eecf

Changed files
+83 -58
pkgs
by-name
vo
voicevox
voicevox-core
voicevox-engine
+41 -34
pkgs/by-name/vo/voicevox-core/package.nix
···
{
lib,
stdenv,
-
fetchzip,
+
fetchurl,
+
unzip,
autoPatchelfHook,
}:
-
let
-
platformInfoTable = {
-
"x86_64-linux" = {
-
id = "linux-x64";
-
hash = "sha256-/PD5e0bWgnIsIrvyOypoJw30VkgbOFWV1NJpPS2G0WM=";
-
};
-
"aarch64-linux" = {
-
id = "linux-arm64";
-
hash = "sha256-zfiorXZyIISZPXPwmcdYeHceDmQXkUhsvTkNZScg648=";
-
};
-
"x86_64-darwin" = {
-
id = "osx-x64";
-
hash = "sha256-cdNdV1fVPkz6B7vtKZiPsLQGqnIiDtYa9KTcwSkjdJg=";
-
};
-
"aarch64-darwin" = {
-
id = "osx-arm64";
-
hash = "sha256-Z1dq2t/HBQulbPF23ZCihOrcZHMpTXEQ6yXKORZaFPk=";
-
};
-
};
-
-
platformInfo =
-
platformInfoTable.${stdenv.hostPlatform.system}
-
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
-
in
stdenv.mkDerivation (finalAttrs: {
pname = "voicevox-core";
-
version = "0.15.4";
+
version = "0.15.7";
-
# Note: Only the prebuilt binaries are able to decrypt the encrypted voice models
-
src = fetchzip {
-
url = "https://github.com/VOICEVOX/voicevox_core/releases/download/${finalAttrs.version}/voicevox_core-${platformInfo.id}-cpu-${finalAttrs.version}.zip";
-
inherit (platformInfo) hash;
-
};
+
src = finalAttrs.passthru.sources.${stdenv.hostPlatform.system};
-
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
+
nativeBuildInputs = [ unzip ] ++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
buildInputs = [ stdenv.cc.cc.lib ];
···
runHook postInstall
'';
+
# When updating, run the following command to fetch all FODs:
+
# nix-build -A voicevox-core.sources --keep-going
+
passthru.sources =
+
let
+
# Note: Only the prebuilt binaries are able to decrypt the encrypted voice models
+
fetchCoreArtifact =
+
{ id, hash }:
+
fetchurl {
+
url = "https://github.com/VOICEVOX/voicevox_core/releases/download/${finalAttrs.version}/voicevox_core-${id}-cpu-${finalAttrs.version}.zip";
+
inherit hash;
+
};
+
in
+
{
+
"x86_64-linux" = fetchCoreArtifact {
+
id = "linux-x64";
+
hash = "sha256-7FgrJ1HlB8l5MHd2KM4lYRx2bYdxrD2+su1G33/ugUA=";
+
};
+
"aarch64-linux" = fetchCoreArtifact {
+
id = "linux-arm64";
+
hash = "sha256-fD7YMTo9jeB4vJibnVwX8VrukCUeAwS6VXGOr3VXG+c=";
+
};
+
"x86_64-darwin" = fetchCoreArtifact {
+
id = "osx-x64";
+
hash = "sha256-5h9qEKbdcvip50TLs3vf6lXkSv24VEjOrx6CTUo7Q4Q=";
+
};
+
"aarch64-darwin" = fetchCoreArtifact {
+
id = "osx-arm64";
+
hash = "sha256-0bFLhvP7LqDzuk3pyM9QZfc8eLMW0IgqVkaXsuS3qlY=";
+
};
+
};
+
meta = {
changelog = "https://github.com/VOICEVOX/voicevox_core/releases/tag/${finalAttrs.version}";
description = "Core library for the VOICEVOX speech synthesis software";
···
redistributable = true;
})
];
-
maintainers = with lib.maintainers; [ tomasajt ];
-
platforms = lib.attrNames platformInfoTable;
+
maintainers = with lib.maintainers; [
+
tomasajt
+
eljamm
+
];
+
platforms = lib.attrNames finalAttrs.passthru.sources;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})
+15 -7
pkgs/by-name/vo/voicevox-engine/package.nix
···
python3Packages.buildPythonApplication rec {
pname = "voicevox-engine";
-
version = "0.20.0";
+
version = "0.22.2";
pyproject = true;
src = fetchFromGitHub {
owner = "VOICEVOX";
repo = "voicevox_engine";
-
rev = "refs/tags/${version}";
-
hash = "sha256-Gib5R7oleg+XXyu2V65EqrflQ1oiAR7a09a0MFhSITc=";
+
tag = version;
+
hash = "sha256-TZycd3xX5d4dNk4ze2JozyO7zDpGAuO+O7xHAx7QXUI=";
};
patches = [
···
# this test checks the behaviour of openapi
# one of the functions returns a slightly different output due to openapi version differences
"test_OpenAPIの形が変わっていないことを確認"
+
+
# these tests fail due to some tiny floating point discrepancies
+
"test_upspeak_voiced_last_mora"
+
"test_upspeak_voiced_N_last_mora"
];
nativeCheckInputs = with python3Packages; [
···
passthru = {
resources = fetchFromGitHub {
+
name = "voicevox-resource-${version}"; # this contains ${version} to invalidate the hash upon updating the package
owner = "VOICEVOX";
repo = "voicevox_resource";
-
rev = "refs/tags/${version}";
-
hash = "sha256-m888DF9qgGbK30RSwNnAoT9D0tRJk6cD5QY72FRkatM=";
+
tag = version;
+
hash = "sha256-oeWJESm1v0wicAXXFAyZT8z4QRVv9c+3vsWksmuY5wY=";
};
pyopenjtalk = python3Packages.callPackage ./pyopenjtalk.nix { };
};
meta = {
-
changelog = "https://github.com/VOICEVOX/voicevox_engine/releases/tag/${version}";
+
changelog = "https://github.com/VOICEVOX/voicevox_engine/releases/tag/${src.tag}";
description = "Engine for the VOICEVOX speech synthesis software";
homepage = "https://github.com/VOICEVOX/voicevox_engine";
license = lib.licenses.lgpl3Only;
mainProgram = "voicevox-engine";
-
maintainers = with lib.maintainers; [ tomasajt ];
+
maintainers = with lib.maintainers; [
+
tomasajt
+
eljamm
+
];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
}
+10 -11
pkgs/by-name/vo/voicevox/hardcode-paths.patch
···
"host": "http://127.0.0.1:50021"
}
diff --git a/electron-builder.config.js b/electron-builder.config.js
-
index 462e6f2..10a9bff 100644
+
index 196a0d7..7e313c2 100644
--- a/electron-builder.config.js
+++ b/electron-builder.config.js
-
@@ -35,19 +35,6 @@ const isMac = process.platform === "darwin";
+
@@ -37,18 +37,7 @@ const isArm64 = process.arch === "arm64";
// cf: https://k-hyoda.hatenablog.com/entry/2021/10/23/000349#%E8%BF%BD%E5%8A%A0%E5%B1%95%E9%96%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%85%88%E3%81%AE%E8%A8%AD%E5%AE%9A
const extraFilePrefix = isMac ? "MacOS/" : "";
-const sevenZipFile = fs
-
- .readdirSync(path.resolve(__dirname, "build", "vendored", "7z"))
+
- .readdirSync(path.resolve(__dirname, "vendored", "7z"))
- .find(
- // Windows: 7za.exe, Linux: 7zzs, macOS: 7zz
- (fileName) => ["7za.exe", "7zzs", "7zz"].includes(fileName),
- );
-
-
+
-if (!sevenZipFile) {
- throw new Error(
-
- "7z binary file not found. Run `node ./build/download7z.js` first.",
+
- "7z binary file not found. Run `node ./tools/download7z.js` first.",
- );
-}
-
-
+
/** @type {import("electron-builder").Configuration} */
const builderOptions = {
-
beforeBuild: async () => {
-
@@ -88,14 +75,6 @@ const builderOptions = {
+
@@ -90,14 +79,6 @@ const builderOptions = {
from: "build/README.txt",
to: extraFilePrefix + "README.txt",
},
···
- to: path.join(extraFilePrefix, "vv-engine"),
- },
- {
-
- from: path.resolve(__dirname, "build", "vendored", "7z", sevenZipFile),
+
- from: path.resolve(__dirname, "vendored", "7z", sevenZipFile),
- to: extraFilePrefix + sevenZipFile,
- },
],
// electron-builder installer
productName: "VOICEVOX",
diff --git a/src/backend/electron/manager/vvppManager.ts b/src/backend/electron/manager/vvppManager.ts
-
index 6aa17b6..b8b52b7 100644
+
index edd3177..22d0114 100644
--- a/src/backend/electron/manager/vvppManager.ts
+++ b/src/backend/electron/manager/vvppManager.ts
-
@@ -196,16 +196,8 @@ export class VvppManager {
+
@@ -184,16 +184,8 @@ export class VvppManager {
const args = ["x", "-o" + outputDir, archiveFile, "-t" + format];
+17 -6
pkgs/by-name/vo/voicevox/package.nix
···
electron,
_7zz,
voicevox-engine,
+
dart-sass,
}:
buildNpmPackage rec {
pname = "voicevox";
-
version = "0.20.0";
+
version = "0.22.3";
src = fetchFromGitHub {
owner = "VOICEVOX";
repo = "voicevox";
-
rev = "refs/tags/${version}";
-
hash = "sha256-05WTecNc1xxe7SGDPZbLtRELNghFkMTqI4pkX4PsVWI=";
+
tag = version;
+
hash = "sha256-6z+A4bJIDfN/K8IjEdt2TqEa/EDt4uQpGh+zSWfP74I=";
};
patches = [
···
--replace-fail "postinstall" "_postinstall"
'';
-
npmDepsHash = "sha256-g3avCj3S96qYPAyGXn4yvrZ4gteJld+g4eV4aRtv/3g=";
+
npmDepsHash = "sha256-NuKFhDb/J6G3pFYHZedKnY2hDC5GCp70DpqrST4bJMA=";
+
+
# unlock very specific node version bounds specified by upstream
+
npmInstallFlags = [ "--engine-strict=false" ];
nativeBuildInputs =
[
···
buildPhase = ''
runHook preBuild
+
# force sass-embedded to use our own sass instead of the bundled one
+
substituteInPlace node_modules/sass-embedded/dist/lib/src/compiler-path.js \
+
--replace-fail 'compilerCommand = (() => {' 'compilerCommand = (() => { return ["${lib.getExe dart-sass}"];'
+
# build command taken from the definition of the `electron:build` npm script
VITE_TARGET=electron npm exec vite build
···
];
meta = {
-
changelog = "https://github.com/VOICEVOX/voicevox/releases/tag/${version}";
+
changelog = "https://github.com/VOICEVOX/voicevox/releases/tag/${src.tag}";
description = "Editor for the VOICEVOX speech synthesis software";
homepage = "https://github.com/VOICEVOX/voicevox";
license = lib.licenses.lgpl3Only;
mainProgram = "voicevox";
-
maintainers = with lib.maintainers; [ tomasajt ];
+
maintainers = with lib.maintainers; [
+
tomasajt
+
eljamm
+
];
platforms = electron.meta.platforms;
};
}