Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/staging-next' into staging
Browse files Browse the repository at this point in the history
  • Loading branch information
K900 committed Nov 26, 2024
2 parents b31ffcb + 6cb4c69 commit 3b5cb28
Show file tree
Hide file tree
Showing 224 changed files with 1,016 additions and 11,705 deletions.
13 changes: 7 additions & 6 deletions lib/systems/architectures.nix
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,13 @@ rec {
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 Intel
nehalem = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" ];
westmere = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" ];
sandybridge = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" ];
ivybridge = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" ];
haswell = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ];
broadwell = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ];
nehalem = [ "sse3" "ssse3" "sse4_1" "sse4_2" ];
westmere = [ "sse3" "ssse3" "sse4_1" "sse4_2" ];
silvermont = [ "sse3" "ssse3" "sse4_1" "sse4_2" ];
sandybridge = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" ];
ivybridge = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" ];
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-avx512 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
cannonlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
Expand Down
3 changes: 3 additions & 0 deletions nixos/doc/manual/release-notes/rl-2505.section.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,13 @@

- 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.
See the release notes of
[v1.7.0](https://github.com/jtroo/kanata/releases/tag/v1.7.0)
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`
package. Installing `notmuch` will not bring the notmuch vim package anymore,
Expand Down
3 changes: 2 additions & 1 deletion nixos/modules/installer/cd-dvd/iso-image.nix
Original file line number Diff line number Diff line change
Expand Up @@ -335,12 +335,13 @@ let
set textmode=true
terminal_output console
}
'' + lib.optionalString (config.isoImage.grubTheme != null) ''
hiddenentry 'GUI mode' --hotkey 'g' {
$(find ${config.isoImage.grubTheme} -iname '*.pf2' -printf "loadfont (\$root)/EFI/BOOT/grub-theme/%P\n")
set textmode=false
terminal_output gfxterm
}
'' + ''
# 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.
Expand Down
127 changes: 61 additions & 66 deletions nixos/modules/services/development/zammad.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{ config, lib, pkgs, ... }:

let
cfg = config.services.zammad;
settingsFormat = pkgs.formats.yaml { };
Expand All @@ -7,11 +8,11 @@ let
Type = "simple";
Restart = "always";

User = "zammad";
Group = "zammad";
User = cfg.user;
Group = cfg.group;
PrivateTmp = true;
StateDirectory = "zammad";
WorkingDirectory = cfg.dataDir;
WorkingDirectory = package;
};
environment = {
RAILS_ENV = "production";
Expand All @@ -21,6 +22,9 @@ let
REDIS_URL = "redis://${cfg.redis.host}:${toString cfg.redis.port}";
};
databaseConfig = settingsFormat.generate "database.yml" cfg.database.settings;
package = cfg.package.override {
dataDir = cfg.dataDir;
};
in
{

Expand All @@ -30,6 +34,22 @@ in

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 {
type = lib.types.path;
default = "/var/lib/zammad";
Expand Down Expand Up @@ -94,25 +114,9 @@ in
};

database = {
type = lib.mkOption {
type = lib.types.enum [ "PostgreSQL" "MySQL" ];
default = "PostgreSQL";
example = "MySQL";
description = "Database engine to use.";
};

host = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = {
PostgreSQL = "/run/postgresql";
MySQL = "localhost";
}.${cfg.database.type};
defaultText = lib.literalExpression ''
{
PostgreSQL = "/run/postgresql";
MySQL = "localhost";
}.''${config.services.zammad.database.type};
'';
type = lib.types.str;
default = "/run/postgresql";
description = ''
Database host address.
'';
Expand Down Expand Up @@ -195,13 +199,9 @@ in
};

config = lib.mkIf cfg.enable {

services.zammad.database.settings = {
production = lib.mapAttrs (_: v: lib.mkDefault v) (filterNull {
adapter = {
PostgreSQL = "postgresql";
MySQL = "mysql2";
}.${cfg.database.type};
adapter = "postgresql";
database = cfg.database.name;
pool = 50;
timeout = 5000;
Expand All @@ -217,13 +217,12 @@ in
config.services.zammad.websocketPort
];

users.users.zammad = {
users.users.${cfg.user} = {
group = "${cfg.group}";
isSystemUser = true;
home = cfg.dataDir;
group = "zammad";
};

users.groups.zammad = { };
users.groups.${cfg.group} = { };

assertions = [
{
Expand All @@ -240,19 +239,7 @@ in
}
];

services.mysql = lib.optionalAttrs (cfg.database.createLocally && cfg.database.type == "MySQL") {
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") {
services.postgresql = lib.optionalAttrs (cfg.database.createLocally) {
enable = true;
ensureDatabases = [ cfg.database.name ];
ensureUsers = [
Expand All @@ -278,54 +265,52 @@ in
};
after = [
"network.target"
"systemd-tmpfiles-setup.service"
] ++ lib.optionals (cfg.database.createLocally) [
"postgresql.service"
] ++ lib.optionals cfg.redis.createLocally [
"redis-${cfg.redis.name}.service"
];
requires = [
requires = lib.optionals (cfg.database.createLocally) [
"postgresql.service"
];
description = "Zammad web";
wantedBy = [ "multi-user.target" ];
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
cp ${databaseConfig} ./config/database.yml
chmod -R +w .
cat ${databaseConfig} > ${cfg.dataDir}/config/database.yml
${lib.optionalString (cfg.database.passwordFile != null) ''
{
echo -n " password: "
cat ${cfg.database.passwordFile}
} >> ./config/database.yml
} >> ${cfg.dataDir}/config/database.yml
''}
${lib.optionalString (cfg.secretKeyBaseFile != null) ''
{
echo "production: "
echo -n " secret_key_base: "
cat ${cfg.secretKeyBaseFile}
} > ./config/secrets.yml
} > ${cfg.dataDir}/config/secrets.yml
''}
if [ `${config.services.postgresql.package}/bin/psql \
--host ${cfg.database.host} \
${lib.optionalString
(cfg.database.port != null)
"--port ${toString cfg.database.port}"} \
--username ${cfg.database.user} \
--dbname ${cfg.database.name} \
--command "SELECT COUNT(*) FROM pg_class c \
JOIN pg_namespace s ON s.oid = c.relnamespace \
WHERE s.nspname NOT IN ('pg_catalog', 'pg_toast', 'information_schema') \
AND s.nspname NOT LIKE 'pg_temp%';" | sed -n 3p` -eq 0 ]; then
# needed for cleanup
shopt -s extglob
# cleanup state directory from module before refactoring in
# https://github.com/NixOS/nixpkgs/pull/277456
if [[ -e ${cfg.dataDir}/node_modules ]]; then
rm -rf ${cfg.dataDir}/!("tmp"|"config"|"log"|"state_dir_migrated"|"db_seeded")
rm -rf ${cfg.dataDir}/config/!("database.yml"|"secrets.yml")
# state directory cleanup required --> zammad was already installed --> do not seed db
echo true > ${cfg.dataDir}/db_seeded
fi
SEEDED=$(cat ${cfg.dataDir}/db_seeded)
if [[ $SEEDED != "true" ]]; then
echo "Initialize database"
./bin/rake --no-system db:migrate
./bin/rake --no-system db:seed
echo true > ${cfg.dataDir}/db_seeded
else
echo "Migrate database"
./bin/rake --no-system db:migrate
Expand All @@ -335,6 +320,16 @@ in
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 = {
inherit serviceConfig environment;
after = [ "zammad-web.service" ];
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/search/manticore.nix
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ let
format = pkgs.formats.json { };

toSphinx = {
mkKeyValue ? mkKeyValueDefault {} "=",
mkKeyValue ? generators.mkKeyValueDefault {} "=",
listsAsDuplicateKeys ? true
}: attrsOfAttrs:
let
Expand Down
2 changes: 1 addition & 1 deletion nixos/tests/retroarch.nix
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import ./make-test-python.nix (
services.xserver.enable = true;
services.xserver.desktopManager.retroarch = {
enable = true;
package = pkgs.retroarchBare;
package = pkgs.retroarch-bare;
};
services.xserver.displayManager = {
sddm.enable = true;
Expand Down
28 changes: 0 additions & 28 deletions nixos/tests/zammad.nix
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,6 @@ import ./make-test-python.nix (
services.zammad.secretKeyBaseFile = pkgs.writeText "secret" ''
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 = ''
Expand Down
15 changes: 5 additions & 10 deletions pkgs/applications/audio/openutau/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ buildDotnetModule rec {
hash = "sha256-HE0KxPKU7tYZbYiCL8sm6I/NZiX0MJktt+5d6qB1A2E=";
};

dotnet-sdk = dotnetCorePackages.sdk_7_0;
dotnet-runtime = dotnetCorePackages.runtime_7_0;
dotnet-sdk = dotnetCorePackages.sdk_8_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: System.IO.IOException: The process cannot access the file '[...]/OpenUtau.Core.deps.json' because it is being used by another process. [[...]/OpenUtau.Core.csproj]
Expand All @@ -41,11 +41,11 @@ buildDotnetModule rec {
# socket cannot bind to localhost on darwin for tests
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 = ''
substituteInPlace OpenUtau/OpenUtau.csproj OpenUtau.Test/OpenUtau.Test.csproj --replace \
'<TargetFramework>net6.0</TargetFramework>' \
'<TargetFramework>net7.0</TargetFramework>'
'<TargetFramework>net8.0</TargetFramework>'
substituteInPlace OpenUtau/Program.cs --replace \
'/usr/bin/fc-match' \
Expand Down Expand Up @@ -74,12 +74,7 @@ buildDotnetModule rec {
# some deps and worldline resampler
binaryNativeCode
];
license = with licenses; [
# dotnet code and worldline resampler binary
mit
# worldline resampler binary - no source is available (hence "unfree") but usage of the binary is MIT
unfreeRedistributable
];
license = licenses.mit;
maintainers = [ ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
mainProgram = "OpenUtau";
Expand Down
5 changes: 5 additions & 0 deletions pkgs/applications/editors/vim/plugins/overrides.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2621,6 +2621,11 @@ in
nvimRequireCheck = "todo-comments";
};

triptych-nvim = super.triptych-nvim.overrideAttrs {
dependencies = [ self.plenary-nvim ];
nvimRequireCheck = "triptych";
};

tsc-nvim = super.tsc-nvim.overrideAttrs {
patches = [ ./patches/tsc.nvim/fix-path.patch ];

Expand Down
Loading

0 comments on commit 3b5cb28

Please sign in to comment.