mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-14 13:39:15 +03:00
Merge remote-tracking branch 'origin/staging-next' into staging
This commit is contained in:
commit
3b5cb28a23
224 changed files with 1012 additions and 11701 deletions
|
@ -11,12 +11,13 @@ rec {
|
||||||
x86-64-v3 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" "avx2" "fma" ];
|
x86-64-v3 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" "avx2" "fma" ];
|
||||||
x86-64-v4 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" "avx2" "avx512" "fma" ];
|
x86-64-v4 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" "avx2" "avx512" "fma" ];
|
||||||
# x86_64 Intel
|
# x86_64 Intel
|
||||||
nehalem = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" ];
|
nehalem = [ "sse3" "ssse3" "sse4_1" "sse4_2" ];
|
||||||
westmere = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" ];
|
westmere = [ "sse3" "ssse3" "sse4_1" "sse4_2" ];
|
||||||
sandybridge = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" ];
|
silvermont = [ "sse3" "ssse3" "sse4_1" "sse4_2" ];
|
||||||
ivybridge = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" ];
|
sandybridge = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" ];
|
||||||
haswell = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ];
|
ivybridge = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" ];
|
||||||
broadwell = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ];
|
haswell = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" "avx2" "fma" ];
|
||||||
|
broadwell = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" "avx2" "fma" ];
|
||||||
skylake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ];
|
skylake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ];
|
||||||
skylake-avx512 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
|
skylake-avx512 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
|
||||||
cannonlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
|
cannonlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
|
||||||
|
|
|
@ -41,10 +41,13 @@
|
||||||
|
|
||||||
- Support for CUDA 10 has been dropped, as announced in the 24.11 release notes.
|
- Support for CUDA 10 has been dropped, as announced in the 24.11 release notes.
|
||||||
|
|
||||||
|
- `zammad` has had its support for MySQL removed, since it was never working correctly and is now deprecated upstream. Check the [migration guide](https://docs.zammad.org/en/latest/appendix/migrate-to-postgresql.html) for how to convert your database to PostgreSQL.
|
||||||
|
|
||||||
- `kanata` was updated to v1.7.0, which introduces several breaking changes.
|
- `kanata` was updated to v1.7.0, which introduces several breaking changes.
|
||||||
See the release notes of
|
See the release notes of
|
||||||
[v1.7.0](https://github.com/jtroo/kanata/releases/tag/v1.7.0)
|
[v1.7.0](https://github.com/jtroo/kanata/releases/tag/v1.7.0)
|
||||||
for more information.
|
for more information.
|
||||||
|
- `vscode-utils.buildVscodeExtension` now requires pname as an argument
|
||||||
|
|
||||||
- the notmuch vim plugin now lives in a separate output of the `notmuch`
|
- the notmuch vim plugin now lives in a separate output of the `notmuch`
|
||||||
package. Installing `notmuch` will not bring the notmuch vim package anymore,
|
package. Installing `notmuch` will not bring the notmuch vim package anymore,
|
||||||
|
|
|
@ -335,12 +335,13 @@ let
|
||||||
set textmode=true
|
set textmode=true
|
||||||
terminal_output console
|
terminal_output console
|
||||||
}
|
}
|
||||||
|
'' + lib.optionalString (config.isoImage.grubTheme != null) ''
|
||||||
hiddenentry 'GUI mode' --hotkey 'g' {
|
hiddenentry 'GUI mode' --hotkey 'g' {
|
||||||
$(find ${config.isoImage.grubTheme} -iname '*.pf2' -printf "loadfont (\$root)/EFI/BOOT/grub-theme/%P\n")
|
$(find ${config.isoImage.grubTheme} -iname '*.pf2' -printf "loadfont (\$root)/EFI/BOOT/grub-theme/%P\n")
|
||||||
set textmode=false
|
set textmode=false
|
||||||
terminal_output gfxterm
|
terminal_output gfxterm
|
||||||
}
|
}
|
||||||
|
'' + ''
|
||||||
|
|
||||||
# If the parameter iso_path is set, append the findiso parameter to the kernel
|
# If the parameter iso_path is set, append the findiso parameter to the kernel
|
||||||
# line. We need this to allow the nixos iso to be booted from grub directly.
|
# line. We need this to allow the nixos iso to be booted from grub directly.
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.zammad;
|
cfg = config.services.zammad;
|
||||||
settingsFormat = pkgs.formats.yaml { };
|
settingsFormat = pkgs.formats.yaml { };
|
||||||
|
@ -7,11 +8,11 @@ let
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
|
|
||||||
User = "zammad";
|
User = cfg.user;
|
||||||
Group = "zammad";
|
Group = cfg.group;
|
||||||
PrivateTmp = true;
|
PrivateTmp = true;
|
||||||
StateDirectory = "zammad";
|
StateDirectory = "zammad";
|
||||||
WorkingDirectory = cfg.dataDir;
|
WorkingDirectory = package;
|
||||||
};
|
};
|
||||||
environment = {
|
environment = {
|
||||||
RAILS_ENV = "production";
|
RAILS_ENV = "production";
|
||||||
|
@ -21,6 +22,9 @@ let
|
||||||
REDIS_URL = "redis://${cfg.redis.host}:${toString cfg.redis.port}";
|
REDIS_URL = "redis://${cfg.redis.host}:${toString cfg.redis.port}";
|
||||||
};
|
};
|
||||||
databaseConfig = settingsFormat.generate "database.yml" cfg.database.settings;
|
databaseConfig = settingsFormat.generate "database.yml" cfg.database.settings;
|
||||||
|
package = cfg.package.override {
|
||||||
|
dataDir = cfg.dataDir;
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -30,6 +34,22 @@ in
|
||||||
|
|
||||||
package = lib.mkPackageOption pkgs "zammad" { };
|
package = lib.mkPackageOption pkgs "zammad" { };
|
||||||
|
|
||||||
|
user = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "zammad";
|
||||||
|
description = ''
|
||||||
|
Name of the Zammad user.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
group = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "zammad";
|
||||||
|
description = ''
|
||||||
|
Name of the Zammad group.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
dataDir = lib.mkOption {
|
dataDir = lib.mkOption {
|
||||||
type = lib.types.path;
|
type = lib.types.path;
|
||||||
default = "/var/lib/zammad";
|
default = "/var/lib/zammad";
|
||||||
|
@ -94,25 +114,9 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
database = {
|
database = {
|
||||||
type = lib.mkOption {
|
|
||||||
type = lib.types.enum [ "PostgreSQL" "MySQL" ];
|
|
||||||
default = "PostgreSQL";
|
|
||||||
example = "MySQL";
|
|
||||||
description = "Database engine to use.";
|
|
||||||
};
|
|
||||||
|
|
||||||
host = lib.mkOption {
|
host = lib.mkOption {
|
||||||
type = lib.types.nullOr lib.types.str;
|
type = lib.types.str;
|
||||||
default = {
|
default = "/run/postgresql";
|
||||||
PostgreSQL = "/run/postgresql";
|
|
||||||
MySQL = "localhost";
|
|
||||||
}.${cfg.database.type};
|
|
||||||
defaultText = lib.literalExpression ''
|
|
||||||
{
|
|
||||||
PostgreSQL = "/run/postgresql";
|
|
||||||
MySQL = "localhost";
|
|
||||||
}.''${config.services.zammad.database.type};
|
|
||||||
'';
|
|
||||||
description = ''
|
description = ''
|
||||||
Database host address.
|
Database host address.
|
||||||
'';
|
'';
|
||||||
|
@ -195,13 +199,9 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
services.zammad.database.settings = {
|
services.zammad.database.settings = {
|
||||||
production = lib.mapAttrs (_: v: lib.mkDefault v) (filterNull {
|
production = lib.mapAttrs (_: v: lib.mkDefault v) (filterNull {
|
||||||
adapter = {
|
adapter = "postgresql";
|
||||||
PostgreSQL = "postgresql";
|
|
||||||
MySQL = "mysql2";
|
|
||||||
}.${cfg.database.type};
|
|
||||||
database = cfg.database.name;
|
database = cfg.database.name;
|
||||||
pool = 50;
|
pool = 50;
|
||||||
timeout = 5000;
|
timeout = 5000;
|
||||||
|
@ -217,13 +217,12 @@ in
|
||||||
config.services.zammad.websocketPort
|
config.services.zammad.websocketPort
|
||||||
];
|
];
|
||||||
|
|
||||||
users.users.zammad = {
|
users.users.${cfg.user} = {
|
||||||
|
group = "${cfg.group}";
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
home = cfg.dataDir;
|
|
||||||
group = "zammad";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
users.groups.zammad = { };
|
users.groups.${cfg.group} = { };
|
||||||
|
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
|
@ -240,19 +239,7 @@ in
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
services.mysql = lib.optionalAttrs (cfg.database.createLocally && cfg.database.type == "MySQL") {
|
services.postgresql = lib.optionalAttrs (cfg.database.createLocally) {
|
||||||
enable = true;
|
|
||||||
package = lib.mkDefault pkgs.mariadb;
|
|
||||||
ensureDatabases = [ cfg.database.name ];
|
|
||||||
ensureUsers = [
|
|
||||||
{
|
|
||||||
name = cfg.database.user;
|
|
||||||
ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; };
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.postgresql = lib.optionalAttrs (cfg.database.createLocally && cfg.database.type == "PostgreSQL") {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
ensureDatabases = [ cfg.database.name ];
|
ensureDatabases = [ cfg.database.name ];
|
||||||
ensureUsers = [
|
ensureUsers = [
|
||||||
|
@ -278,54 +265,52 @@ in
|
||||||
};
|
};
|
||||||
after = [
|
after = [
|
||||||
"network.target"
|
"network.target"
|
||||||
|
"systemd-tmpfiles-setup.service"
|
||||||
|
] ++ lib.optionals (cfg.database.createLocally) [
|
||||||
"postgresql.service"
|
"postgresql.service"
|
||||||
] ++ lib.optionals cfg.redis.createLocally [
|
] ++ lib.optionals cfg.redis.createLocally [
|
||||||
"redis-${cfg.redis.name}.service"
|
"redis-${cfg.redis.name}.service"
|
||||||
];
|
];
|
||||||
requires = [
|
requires = lib.optionals (cfg.database.createLocally) [
|
||||||
"postgresql.service"
|
"postgresql.service"
|
||||||
];
|
];
|
||||||
description = "Zammad web";
|
description = "Zammad web";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
preStart = ''
|
preStart = ''
|
||||||
# Blindly copy the whole project here.
|
|
||||||
chmod -R +w .
|
|
||||||
rm -rf ./public/assets/
|
|
||||||
rm -rf ./tmp/*
|
|
||||||
rm -rf ./log/*
|
|
||||||
cp -r --no-preserve=owner ${cfg.package}/* .
|
|
||||||
chmod -R +w .
|
|
||||||
# config file
|
# config file
|
||||||
cp ${databaseConfig} ./config/database.yml
|
cat ${databaseConfig} > ${cfg.dataDir}/config/database.yml
|
||||||
chmod -R +w .
|
|
||||||
${lib.optionalString (cfg.database.passwordFile != null) ''
|
${lib.optionalString (cfg.database.passwordFile != null) ''
|
||||||
{
|
{
|
||||||
echo -n " password: "
|
echo -n " password: "
|
||||||
cat ${cfg.database.passwordFile}
|
cat ${cfg.database.passwordFile}
|
||||||
} >> ./config/database.yml
|
} >> ${cfg.dataDir}/config/database.yml
|
||||||
''}
|
''}
|
||||||
${lib.optionalString (cfg.secretKeyBaseFile != null) ''
|
${lib.optionalString (cfg.secretKeyBaseFile != null) ''
|
||||||
{
|
{
|
||||||
echo "production: "
|
echo "production: "
|
||||||
echo -n " secret_key_base: "
|
echo -n " secret_key_base: "
|
||||||
cat ${cfg.secretKeyBaseFile}
|
cat ${cfg.secretKeyBaseFile}
|
||||||
} > ./config/secrets.yml
|
} > ${cfg.dataDir}/config/secrets.yml
|
||||||
''}
|
''}
|
||||||
|
|
||||||
if [ `${config.services.postgresql.package}/bin/psql \
|
# needed for cleanup
|
||||||
--host ${cfg.database.host} \
|
shopt -s extglob
|
||||||
${lib.optionalString
|
|
||||||
(cfg.database.port != null)
|
# cleanup state directory from module before refactoring in
|
||||||
"--port ${toString cfg.database.port}"} \
|
# https://github.com/NixOS/nixpkgs/pull/277456
|
||||||
--username ${cfg.database.user} \
|
if [[ -e ${cfg.dataDir}/node_modules ]]; then
|
||||||
--dbname ${cfg.database.name} \
|
rm -rf ${cfg.dataDir}/!("tmp"|"config"|"log"|"state_dir_migrated"|"db_seeded")
|
||||||
--command "SELECT COUNT(*) FROM pg_class c \
|
rm -rf ${cfg.dataDir}/config/!("database.yml"|"secrets.yml")
|
||||||
JOIN pg_namespace s ON s.oid = c.relnamespace \
|
# state directory cleanup required --> zammad was already installed --> do not seed db
|
||||||
WHERE s.nspname NOT IN ('pg_catalog', 'pg_toast', 'information_schema') \
|
echo true > ${cfg.dataDir}/db_seeded
|
||||||
AND s.nspname NOT LIKE 'pg_temp%';" | sed -n 3p` -eq 0 ]; then
|
fi
|
||||||
|
|
||||||
|
SEEDED=$(cat ${cfg.dataDir}/db_seeded)
|
||||||
|
if [[ $SEEDED != "true" ]]; then
|
||||||
echo "Initialize database"
|
echo "Initialize database"
|
||||||
./bin/rake --no-system db:migrate
|
./bin/rake --no-system db:migrate
|
||||||
./bin/rake --no-system db:seed
|
./bin/rake --no-system db:seed
|
||||||
|
echo true > ${cfg.dataDir}/db_seeded
|
||||||
else
|
else
|
||||||
echo "Migrate database"
|
echo "Migrate database"
|
||||||
./bin/rake --no-system db:migrate
|
./bin/rake --no-system db:migrate
|
||||||
|
@ -335,6 +320,16 @@ in
|
||||||
script = "./script/rails server -b ${cfg.host} -p ${toString cfg.port}";
|
script = "./script/rails server -b ${cfg.host} -p ${toString cfg.port}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d ${cfg.dataDir} 0750 ${cfg.user} ${cfg.group} - -"
|
||||||
|
"d ${cfg.dataDir}/config 0750 ${cfg.user} ${cfg.group} - -"
|
||||||
|
"d ${cfg.dataDir}/tmp 0750 ${cfg.user} ${cfg.group} - -"
|
||||||
|
"d ${cfg.dataDir}/log 0750 ${cfg.user} ${cfg.group} - -"
|
||||||
|
"f ${cfg.dataDir}/config/secrets.yml 0640 ${cfg.user} ${cfg.group} - -"
|
||||||
|
"f ${cfg.dataDir}/config/database.yml 0640 ${cfg.user} ${cfg.group} - -"
|
||||||
|
"f ${cfg.dataDir}/db_seeded 0640 ${cfg.user} ${cfg.group} - -"
|
||||||
|
];
|
||||||
|
|
||||||
systemd.services.zammad-websocket = {
|
systemd.services.zammad-websocket = {
|
||||||
inherit serviceConfig environment;
|
inherit serviceConfig environment;
|
||||||
after = [ "zammad-web.service" ];
|
after = [ "zammad-web.service" ];
|
||||||
|
|
|
@ -8,7 +8,7 @@ let
|
||||||
format = pkgs.formats.json { };
|
format = pkgs.formats.json { };
|
||||||
|
|
||||||
toSphinx = {
|
toSphinx = {
|
||||||
mkKeyValue ? mkKeyValueDefault {} "=",
|
mkKeyValue ? generators.mkKeyValueDefault {} "=",
|
||||||
listsAsDuplicateKeys ? true
|
listsAsDuplicateKeys ? true
|
||||||
}: attrsOfAttrs:
|
}: attrsOfAttrs:
|
||||||
let
|
let
|
||||||
|
|
|
@ -15,7 +15,7 @@ import ./make-test-python.nix (
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
services.xserver.desktopManager.retroarch = {
|
services.xserver.desktopManager.retroarch = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.retroarchBare;
|
package = pkgs.retroarch-bare;
|
||||||
};
|
};
|
||||||
services.xserver.displayManager = {
|
services.xserver.displayManager = {
|
||||||
sddm.enable = true;
|
sddm.enable = true;
|
||||||
|
|
|
@ -15,34 +15,6 @@ import ./make-test-python.nix (
|
||||||
services.zammad.secretKeyBaseFile = pkgs.writeText "secret" ''
|
services.zammad.secretKeyBaseFile = pkgs.writeText "secret" ''
|
||||||
52882ef142066e09ab99ce816ba72522e789505caba224a52d750ec7dc872c2c371b2fd19f16b25dfbdd435a4dd46cb3df9f82eb63fafad715056bdfe25740d6
|
52882ef142066e09ab99ce816ba72522e789505caba224a52d750ec7dc872c2c371b2fd19f16b25dfbdd435a4dd46cb3df9f82eb63fafad715056bdfe25740d6
|
||||||
'';
|
'';
|
||||||
|
|
||||||
systemd.services.zammad-locale-cheat =
|
|
||||||
let cfg = config.services.zammad; in
|
|
||||||
{
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
Restart = "on-failure";
|
|
||||||
|
|
||||||
User = "zammad";
|
|
||||||
Group = "zammad";
|
|
||||||
PrivateTmp = true;
|
|
||||||
StateDirectory = "zammad";
|
|
||||||
WorkingDirectory = cfg.dataDir;
|
|
||||||
};
|
|
||||||
wantedBy = [ "zammad-web.service" ];
|
|
||||||
description = "Hack in the locale files so zammad doesn't try to access the internet";
|
|
||||||
script = ''
|
|
||||||
mkdir -p ./config/translations
|
|
||||||
VERSION=$(cat ${cfg.package}/VERSION)
|
|
||||||
|
|
||||||
# If these files are not in place, zammad will try to access the internet.
|
|
||||||
# For the test, we only need to supply en-us.
|
|
||||||
echo '[{"locale":"en-us","alias":"en","name":"English (United States)","active":true,"dir":"ltr"}]' \
|
|
||||||
> ./config/locales-$VERSION.yml
|
|
||||||
echo '[{"locale":"en-us","format":"time","source":"date","target":"mm/dd/yyyy","target_initial":"mm/dd/yyyy"},{"locale":"en-us","format":"time","source":"timestamp","target":"mm/dd/yyyy HH:MM","target_initial":"mm/dd/yyyy HH:MM"}]' \
|
|
||||||
> ./config/translations/en-us-$VERSION.yml
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
|
|
|
@ -19,8 +19,8 @@ buildDotnetModule rec {
|
||||||
hash = "sha256-HE0KxPKU7tYZbYiCL8sm6I/NZiX0MJktt+5d6qB1A2E=";
|
hash = "sha256-HE0KxPKU7tYZbYiCL8sm6I/NZiX0MJktt+5d6qB1A2E=";
|
||||||
};
|
};
|
||||||
|
|
||||||
dotnet-sdk = dotnetCorePackages.sdk_7_0;
|
dotnet-sdk = dotnetCorePackages.sdk_8_0;
|
||||||
dotnet-runtime = dotnetCorePackages.runtime_7_0;
|
dotnet-runtime = dotnetCorePackages.runtime_8_0;
|
||||||
|
|
||||||
# [...]/Microsoft.NET.Sdk.targets(157,5): error MSB4018: The "GenerateDepsFile" task failed unexpectedly. [[...]/OpenUtau.Core.csproj]
|
# [...]/Microsoft.NET.Sdk.targets(157,5): error MSB4018: The "GenerateDepsFile" task failed unexpectedly. [[...]/OpenUtau.Core.csproj]
|
||||||
# [...]/Microsoft.NET.Sdk.targets(157,5): error MSB4018: System.IO.IOException: The process cannot access the file '[...]/OpenUtau.Core.deps.json' because it is being used by another process. [[...]/OpenUtau.Core.csproj]
|
# [...]/Microsoft.NET.Sdk.targets(157,5): error MSB4018: System.IO.IOException: The process cannot access the file '[...]/OpenUtau.Core.deps.json' because it is being used by another process. [[...]/OpenUtau.Core.csproj]
|
||||||
|
@ -41,11 +41,11 @@ buildDotnetModule rec {
|
||||||
# socket cannot bind to localhost on darwin for tests
|
# socket cannot bind to localhost on darwin for tests
|
||||||
doCheck = !stdenv.hostPlatform.isDarwin;
|
doCheck = !stdenv.hostPlatform.isDarwin;
|
||||||
|
|
||||||
# net7.0 replacement needed until upstream bumps to dotnet 7
|
# net8.0 replacement needed until upstream bumps to dotnet 8
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace OpenUtau/OpenUtau.csproj OpenUtau.Test/OpenUtau.Test.csproj --replace \
|
substituteInPlace OpenUtau/OpenUtau.csproj OpenUtau.Test/OpenUtau.Test.csproj --replace \
|
||||||
'<TargetFramework>net6.0</TargetFramework>' \
|
'<TargetFramework>net6.0</TargetFramework>' \
|
||||||
'<TargetFramework>net7.0</TargetFramework>'
|
'<TargetFramework>net8.0</TargetFramework>'
|
||||||
|
|
||||||
substituteInPlace OpenUtau/Program.cs --replace \
|
substituteInPlace OpenUtau/Program.cs --replace \
|
||||||
'/usr/bin/fc-match' \
|
'/usr/bin/fc-match' \
|
||||||
|
@ -74,12 +74,7 @@ buildDotnetModule rec {
|
||||||
# some deps and worldline resampler
|
# some deps and worldline resampler
|
||||||
binaryNativeCode
|
binaryNativeCode
|
||||||
];
|
];
|
||||||
license = with licenses; [
|
license = licenses.mit;
|
||||||
# dotnet code and worldline resampler binary
|
|
||||||
mit
|
|
||||||
# worldline resampler binary - no source is available (hence "unfree") but usage of the binary is MIT
|
|
||||||
unfreeRedistributable
|
|
||||||
];
|
|
||||||
maintainers = [ ];
|
maintainers = [ ];
|
||||||
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||||
mainProgram = "OpenUtau";
|
mainProgram = "OpenUtau";
|
||||||
|
|
|
@ -2621,6 +2621,11 @@ in
|
||||||
nvimRequireCheck = "todo-comments";
|
nvimRequireCheck = "todo-comments";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
triptych-nvim = super.triptych-nvim.overrideAttrs {
|
||||||
|
dependencies = [ self.plenary-nvim ];
|
||||||
|
nvimRequireCheck = "triptych";
|
||||||
|
};
|
||||||
|
|
||||||
tsc-nvim = super.tsc-nvim.overrideAttrs {
|
tsc-nvim = super.tsc-nvim.overrideAttrs {
|
||||||
patches = [ ./patches/tsc.nvim/fix-path.patch ];
|
patches = [ ./patches/tsc.nvim/fix-path.patch ];
|
||||||
|
|
||||||
|
|
|
@ -903,6 +903,22 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
chanhx.crabviz = buildVscodeMarketplaceExtension {
|
||||||
|
mktplcRef = {
|
||||||
|
name = "crabviz";
|
||||||
|
publisher = "chanhx";
|
||||||
|
version = "0.4.0";
|
||||||
|
hash = "sha256-SOsoSQLDNRqby91Ire4euSz6udRZI6G/RVloVjIvhUM=";
|
||||||
|
};
|
||||||
|
meta = {
|
||||||
|
description = "VSCode extension for generating call graphs based on LSP";
|
||||||
|
downloadPage = "https://marketplace.visualstudio.com/items?itemName=chanhx.crabviz";
|
||||||
|
homepage = "https://github.com/chanhx/crabviz";
|
||||||
|
license = lib.licenses.asl20;
|
||||||
|
maintainers = with lib.maintainers; [ thtrf ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
charliermarsh.ruff = callPackage ./charliermarsh.ruff { };
|
charliermarsh.ruff = callPackage ./charliermarsh.ruff { };
|
||||||
|
|
||||||
cameron.vscode-pytest = buildVscodeMarketplaceExtension {
|
cameron.vscode-pytest = buildVscodeMarketplaceExtension {
|
||||||
|
|
|
@ -11,7 +11,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||||
name = "tinymist";
|
name = "tinymist";
|
||||||
publisher = "myriad-dreamin";
|
publisher = "myriad-dreamin";
|
||||||
inherit (tinymist) version;
|
inherit (tinymist) version;
|
||||||
hash = "sha256-NQ7LsX8/1h7sSI5mPdDgu4MVc29iNJ1vl0K7fMCBmlc=";
|
hash = "sha256-AwVjRwjwx53/2jNz2VdluIh+zhNqbAP883xw8ULzZK0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -72,8 +72,7 @@ let
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
vscode-utils.buildVscodeExtension {
|
vscode-utils.buildVscodeExtension {
|
||||||
inherit version vsix;
|
inherit version vsix pname;
|
||||||
name = "${pname}-${version}";
|
|
||||||
src = "${vsix}/${pname}.zip";
|
src = "${vsix}/${pname}.zip";
|
||||||
vscodeExtUniqueId = "${publisher}.${pname}";
|
vscodeExtUniqueId = "${publisher}.${pname}";
|
||||||
vscodeExtPublisher = publisher;
|
vscodeExtPublisher = publisher;
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
let
|
let
|
||||||
buildVscodeExtension =
|
buildVscodeExtension =
|
||||||
a@{
|
a@{
|
||||||
name,
|
pname,
|
||||||
src,
|
src,
|
||||||
# Same as "Unique Identifier" on the extension's web page.
|
# Same as "Unique Identifier" on the extension's web page.
|
||||||
# For the moment, only serve as unique extension dir.
|
# For the moment, only serve as unique extension dir.
|
||||||
|
@ -33,10 +33,13 @@ let
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
stdenv.mkDerivation (
|
stdenv.mkDerivation (
|
||||||
(removeAttrs a [ "vscodeExtUniqueId" ])
|
(removeAttrs a [
|
||||||
|
"vscodeExtUniqueId"
|
||||||
|
"pname"
|
||||||
|
])
|
||||||
// {
|
// {
|
||||||
|
|
||||||
name = "vscode-extension-${name}";
|
pname = "vscode-extension-${pname}";
|
||||||
|
|
||||||
passthru = passthru // {
|
passthru = passthru // {
|
||||||
inherit vscodeExtPublisher vscodeExtName vscodeExtUniqueId;
|
inherit vscodeExtPublisher vscodeExtName vscodeExtUniqueId;
|
||||||
|
@ -88,7 +91,7 @@ let
|
||||||
"vsix"
|
"vsix"
|
||||||
])
|
])
|
||||||
// {
|
// {
|
||||||
name = "${mktplcRef.publisher}-${mktplcRef.name}-${mktplcRef.version}";
|
pname = "${mktplcRef.publisher}-${mktplcRef.name}";
|
||||||
version = mktplcRef.version;
|
version = mktplcRef.version;
|
||||||
src = if (vsix != null) then vsix else fetchVsixFromVscodeMarketplace mktplcRef;
|
src = if (vsix != null) then vsix else fetchVsixFromVscodeMarketplace mktplcRef;
|
||||||
vscodeExtPublisher = mktplcRef.publisher;
|
vscodeExtPublisher = mktplcRef.publisher;
|
||||||
|
|
|
@ -8,27 +8,25 @@ packages.
|
||||||
The basic steps to add a new core are:
|
The basic steps to add a new core are:
|
||||||
|
|
||||||
1. Add a new core using `mkLibretroCore` function (use one of the existing
|
1. Add a new core using `mkLibretroCore` function (use one of the existing
|
||||||
files as an example)
|
cores as an example)
|
||||||
2. Add your new core to [`default.nix`](./default.nix) file
|
2. Add your new core to [`default.nix`](./default.nix) file
|
||||||
3. Try to build your core with `nix-build -A libretro.<core>`
|
3. Try to build your core with `nix-build -A libretro.<core>`
|
||||||
|
|
||||||
## Using RetroArch with cores
|
## Using RetroArch with cores
|
||||||
|
|
||||||
To create a custom RetroArch derivation with the cores you want (instead of
|
To create a custom RetroArch derivation with the cores you want (instead of
|
||||||
using `retroarchFull` that includes all cores), you can use `.override` like
|
using `retroarch-full` that includes all cores), you can use `.withCores` like
|
||||||
this:
|
this:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
retroarchWithCores = (pkgs.retroarch.override {
|
retroarchWithCores = (pkgs.retroarch.withCores (cores: with cores; [
|
||||||
cores = with pkgs.libretro; [
|
bsnes
|
||||||
bsnes
|
mgba
|
||||||
mgba
|
quicknes
|
||||||
quicknes
|
]));
|
||||||
];
|
|
||||||
});
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
|
@ -36,3 +34,5 @@ in
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
For advanced customization, see `wrapRetroArch` wrapper.
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue