Merge remote-tracking branch 'origin/staging-next' into staging

This commit is contained in:
K900 2024-11-26 09:46:04 +03:00
commit 3b5cb28a23
224 changed files with 1012 additions and 11701 deletions

View file

@ -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" ];

View file

@ -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,

View file

@ -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.

View file

@ -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" ];

View file

@ -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

View file

@ -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;

View file

@ -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 = ''

View file

@ -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";

View file

@ -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 ];

View file

@ -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 {

View file

@ -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 = [

View file

@ -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;

View file

@ -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;

View file

@ -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