Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2023-11-24 12:01:44 +00:00 committed by GitHub
commit f4335ece6e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 777 additions and 383 deletions

View File

@ -45,7 +45,7 @@ rec {
else args';
# TODO: deprecate args.rustc in favour of args.rust after 23.05 is EOL.
rust = assert !(args ? rust && args ? rustc); args.rust or args.rustc or {};
rust = args.rust or args.rustc or {};
final = {
# Prefer to parse `config` as it is strictly more informative.
@ -169,96 +169,6 @@ rec {
# TODO: remove after 23.05 is EOL, with an error pointing to the rust.* attrs.
rustc = args.rustc or {};
rust = rust // {
# Once args.rustc.platform.target-family is deprecated and
# removed, there will no longer be any need to modify any
# values from args.rust.platform, so we can drop all the
# "args ? rust" etc. checks, and merge args.rust.platform in
# /after/.
platform = rust.platform or {} // {
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_arch
arch =
/**/ if rust ? platform then rust.platform.arch
else if final.isAarch32 then "arm"
else if final.isMips64 then "mips64" # never add "el" suffix
else if final.isPower64 then "powerpc64" # never add "le" suffix
else final.parsed.cpu.name;
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_os
os =
/**/ if rust ? platform then rust.platform.os or "none"
else if final.isDarwin then "macos"
else final.parsed.kernel.name;
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_family
target-family =
/**/ if args ? rust.platform.target-family then args.rust.platform.target-family
else if args ? rustc.platform.target-family
then
(
# Since https://github.com/rust-lang/rust/pull/84072
# `target-family` is a list instead of single value.
let
f = args.rustc.platform.target-family;
in
if builtins.isList f then f else [ f ]
)
else lib.optional final.isUnix "unix"
++ lib.optional final.isWindows "windows";
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_vendor
vendor = let
inherit (final.parsed) vendor;
in rust.platform.vendor or {
"w64" = "pc";
}.${vendor.name} or vendor.name;
};
# The name of the rust target, even if it is custom. Adjustments are
# because rust has slightly different naming conventions than we do.
rustcTarget = let
inherit (final.parsed) cpu kernel abi;
cpu_ = rust.platform.arch or {
"armv7a" = "armv7";
"armv7l" = "armv7";
"armv6l" = "arm";
"armv5tel" = "armv5te";
"riscv64" = "riscv64gc";
}.${cpu.name} or cpu.name;
vendor_ = final.rust.platform.vendor;
in rust.config
or "${cpu_}-${vendor_}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
# The name of the rust target if it is standard, or the json file
# containing the custom target spec.
rustcTargetSpec =
/**/ if rust ? platform
then builtins.toFile (final.rust.rustcTarget + ".json") (builtins.toJSON rust.platform)
else final.rust.rustcTarget;
# The name of the rust target if it is standard, or the
# basename of the file containing the custom target spec,
# without the .json extension.
#
# This is the name used by Cargo for target subdirectories.
cargoShortTarget =
lib.removeSuffix ".json" (baseNameOf "${final.rust.rustcTargetSpec}");
# When used as part of an environment variable name, triples are
# uppercased and have all hyphens replaced by underscores:
#
# https://github.com/rust-lang/cargo/pull/9169
# https://github.com/rust-lang/cargo/issues/8285#issuecomment-634202431
cargoEnvVarTarget =
lib.strings.replaceStrings ["-"] ["_"]
(lib.strings.toUpper final.rust.cargoShortTarget);
# True if the target is no_std
# https://github.com/rust-lang/rust/blob/2e44c17c12cec45b6a682b1e53a04ac5b5fcc9d2/src/bootstrap/config.rs#L415-L421
isNoStdTarget =
builtins.any (t: lib.hasInfix t final.rust.rustcTarget) ["-none" "nvptx" "switch" "-uefi"];
};
linuxArch =
if final.isAarch32 then "arm"
else if final.isAarch64 then "arm64"
@ -356,7 +266,97 @@ rec {
}) // mapAttrs (n: v: v final.parsed) inspect.predicates
// mapAttrs (n: v: v final.gcc.arch or "default") architectures.predicates
// args;
// args // {
rust = rust // {
# Once args.rustc.platform.target-family is deprecated and
# removed, there will no longer be any need to modify any
# values from args.rust.platform, so we can drop all the
# "args ? rust" etc. checks, and merge args.rust.platform in
# /after/.
platform = rust.platform or {} // {
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_arch
arch =
/**/ if rust ? platform then rust.platform.arch
else if final.isAarch32 then "arm"
else if final.isMips64 then "mips64" # never add "el" suffix
else if final.isPower64 then "powerpc64" # never add "le" suffix
else final.parsed.cpu.name;
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_os
os =
/**/ if rust ? platform then rust.platform.os or "none"
else if final.isDarwin then "macos"
else final.parsed.kernel.name;
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_family
target-family =
/**/ if args ? rust.platform.target-family then args.rust.platform.target-family
else if args ? rustc.platform.target-family
then
(
# Since https://github.com/rust-lang/rust/pull/84072
# `target-family` is a list instead of single value.
let
f = args.rustc.platform.target-family;
in
if builtins.isList f then f else [ f ]
)
else lib.optional final.isUnix "unix"
++ lib.optional final.isWindows "windows";
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_vendor
vendor = let
inherit (final.parsed) vendor;
in rust.platform.vendor or {
"w64" = "pc";
}.${vendor.name} or vendor.name;
};
# The name of the rust target, even if it is custom. Adjustments are
# because rust has slightly different naming conventions than we do.
rustcTarget = let
inherit (final.parsed) cpu kernel abi;
cpu_ = rust.platform.arch or {
"armv7a" = "armv7";
"armv7l" = "armv7";
"armv6l" = "arm";
"armv5tel" = "armv5te";
"riscv64" = "riscv64gc";
}.${cpu.name} or cpu.name;
vendor_ = final.rust.platform.vendor;
in rust.config
or "${cpu_}-${vendor_}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
# The name of the rust target if it is standard, or the json file
# containing the custom target spec.
rustcTargetSpec = rust.rustcTargetSpec or (
/**/ if rust ? platform
then builtins.toFile (final.rust.rustcTarget + ".json") (builtins.toJSON rust.platform)
else final.rust.rustcTarget);
# The name of the rust target if it is standard, or the
# basename of the file containing the custom target spec,
# without the .json extension.
#
# This is the name used by Cargo for target subdirectories.
cargoShortTarget =
lib.removeSuffix ".json" (baseNameOf "${final.rust.rustcTargetSpec}");
# When used as part of an environment variable name, triples are
# uppercased and have all hyphens replaced by underscores:
#
# https://github.com/rust-lang/cargo/pull/9169
# https://github.com/rust-lang/cargo/issues/8285#issuecomment-634202431
cargoEnvVarTarget =
lib.strings.replaceStrings ["-"] ["_"]
(lib.strings.toUpper final.rust.cargoShortTarget);
# True if the target is no_std
# https://github.com/rust-lang/rust/blob/2e44c17c12cec45b6a682b1e53a04ac5b5fcc9d2/src/bootstrap/config.rs#L415-L421
isNoStdTarget =
builtins.any (t: lib.hasInfix t final.rust.rustcTarget) ["-none" "nvptx" "switch" "-uefi"];
};
};
in assert final.useAndroidPrebuilt -> final.isAndroid;
assert lib.foldl
(pass: { assertion, message }:

View File

@ -18776,6 +18776,12 @@
githubId = 223408;
name = "Varun Madiath";
};
vancluever = {
email = "chrism@vancluevertech.com";
github = "vancluever";
githubId = 10704423;
name = "Chris Marchesi";
};
vandenoever = {
email = "jos@vandenoever.info";
github = "vandenoever";

View File

@ -184,6 +184,8 @@
- `services.knot` now supports `.settings` from RFC42. The previous `.extraConfig` still works the same, but it displays a warning now.
- `services.invoiceplane` now supports .settings from RFC42. The previous .extraConfig still works the same, but it displays a warning now.
- `mu` now does not install `mu4e` files by default. Users should get `mu4e` from Emacs lisp package set `emacs.pkgs.mu4e`.
- `mariadb` now defaults to `mariadb_1011` instead of `mariadb_106`, meaning the default version was upgraded from 10.6.x to 10.11.x. See the [upgrade notes](https://mariadb.com/kb/en/upgrading-from-mariadb-10-6-to-mariadb-10-11/) for potential issues.

View File

@ -1406,6 +1406,7 @@
./services/x11/xautolock.nix
./services/x11/xbanish.nix
./services/x11/xfs.nix
./services/x11/xscreensaver.nix
./services/x11/xserver.nix
./system/activation/activatable-system.nix
./system/activation/activation-script.nix

View File

@ -15,6 +15,9 @@ let
clamdConfigFile = pkgs.writeText "clamd.conf" (toKeyValue cfg.daemon.settings);
freshclamConfigFile = pkgs.writeText "freshclam.conf" (toKeyValue cfg.updater.settings);
fangfrischConfigFile = pkgs.writeText "fangfrisch.conf" ''
${lib.generators.toINI {} cfg.fangfrisch.settings}
'';
in
{
imports = [
@ -66,6 +69,36 @@ in
'';
};
};
fangfrisch = {
enable = mkEnableOption (lib.mdDoc "ClamAV fangfrisch updater");
interval = mkOption {
type = types.str;
default = "hourly";
description = lib.mdDoc ''
How often freshclam is invoked. See systemd.time(7) for more
information about the format.
'';
};
settings = mkOption {
type = lib.types.submodule {
freeformType = with types; attrsOf (attrsOf (oneOf [ str int bool ]));
};
default = { };
example = {
securiteinfo = {
enabled = "yes";
customer_id = "your customer_id";
};
};
description = lib.mdDoc ''
fangfrisch configuration. Refer to <https://rseichter.github.io/fangfrisch/#_configuration>,
for details on supported values.
Note that by default urlhaus and sanesecurity are enabled.
'';
};
};
};
};
@ -98,6 +131,15 @@ in
DatabaseMirror = [ "database.clamav.net" ];
};
services.clamav.fangfrisch.settings = {
DEFAULT.db_url = mkDefault "sqlite:////var/lib/clamav/fangfrisch_db.sqlite";
DEFAULT.local_directory = mkDefault stateDir;
DEFAULT.log_level = mkDefault "INFO";
urlhaus.enabled = mkDefault "yes";
urlhaus.max_size = mkDefault "2MB";
sanesecurity.enabled = mkDefault "yes";
};
environment.etc."clamav/freshclam.conf".source = freshclamConfigFile;
environment.etc."clamav/clamd.conf".source = clamdConfigFile;
@ -146,5 +188,53 @@ in
PrivateDevices = "yes";
};
};
systemd.services.clamav-fangfrisch-init = mkIf cfg.fangfrisch.enable {
wantedBy = [ "multi-user.target" ];
# if the sqlite file can be found assume the database has already been initialised
script = ''
db_url="${cfg.fangfrisch.settings.DEFAULT.db_url}"
db_path="''${db_url#sqlite:///}"
if [ ! -f "$db_path" ]; then
${pkgs.fangfrisch}/bin/fangfrisch --conf ${fangfrischConfigFile} initdb
fi
'';
serviceConfig = {
Type = "oneshot";
StateDirectory = "clamav";
RuntimeDirectory = "clamav";
User = clamavUser;
Group = clamavGroup;
PrivateTmp = "yes";
PrivateDevices = "yes";
};
};
systemd.timers.clamav-fangfrisch = mkIf cfg.fangfrisch.enable {
description = "Timer for ClamAV virus database updater (fangfrisch)";
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = cfg.fangfrisch.interval;
Unit = "clamav-fangfrisch.service";
};
};
systemd.services.clamav-fangfrisch = mkIf cfg.fangfrisch.enable {
description = "ClamAV virus database updater (fangfrisch)";
restartTriggers = [ fangfrischConfigFile ];
after = [ "network-online.target" "clamav-fangfrisch-init.service" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.fangfrisch}/bin/fangfrisch --conf ${fangfrischConfigFile} refresh";
StateDirectory = "clamav";
RuntimeDirectory = "clamav";
User = clamavUser;
Group = clamavGroup;
PrivateTmp = "yes";
PrivateDevices = "yes";
};
};
};
}

View File

@ -28,7 +28,19 @@ let
REMOVE_INDEXPHP=true
'';
extraConfig = hostName: cfg: pkgs.writeText "extraConfig.php" ''
mkPhpValue = v:
if isString v then escapeShellArg v
# NOTE: If any value contains a , (comma) this will not get escaped
else if isList v && any lib.strings.isCoercibleToString v then escapeShellArg (concatMapStringsSep "," toString v)
else if isInt v then toString v
else if isBool v then boolToString v
else abort "The Invoiceplane config value ${lib.generators.toPretty {} v} can not be encoded."
;
extraConfig = hostName: cfg: let
settings = mapAttrsToList (k: v: "${k}=${mkPhpValue v}") cfg.settings;
in pkgs.writeText "extraConfig.php" ''
${concatStringsSep "\n" settings}
${toString cfg.extraConfig}
'';
@ -182,11 +194,31 @@ let
InvoicePlane configuration. Refer to
<https://github.com/InvoicePlane/InvoicePlane/blob/master/ipconfig.php.example>
for details on supported values.
**Note**: Please pass structured settings via
`services.invoiceplane.sites.${name}.settings` instead, this option
will get deprecated in the future.
'';
};
settings = mkOption {
type = types.attrsOf types.anything;
default = {};
description = lib.mdDoc ''
Structural InvoicePlane configuration. Refer to
<https://github.com/InvoicePlane/InvoicePlane/blob/master/ipconfig.php.example>
for details and supported values.
'';
example = literalExpression ''
{
SETUP_COMPLETED = true;
DISABLE_SETUP = true;
IP_URL = "https://invoice.example.com";
}
'';
};
cron = {
enable = mkOption {
type = types.bool;
default = false;
@ -197,12 +229,10 @@ let
on how to configure it.
'';
};
key = mkOption {
type = types.str;
description = lib.mdDoc "Cron key taken from the administration page.";
};
};
};
@ -239,8 +269,14 @@ in
# implementation
config = mkIf (eachSite != {}) (mkMerge [{
assertions = flatten (mapAttrsToList (hostName: cfg:
[{ assertion = cfg.database.createLocally -> cfg.database.user == user;
warnings = flatten (mapAttrsToList (hostName: cfg: [
(optional (cfg.extraConfig != null) ''
services.invoiceplane.sites."${hostName}".extraConfig will be deprecated in future releases, please use the settings option now.
'')
]) eachSite);
assertions = flatten (mapAttrsToList (hostName: cfg: [
{ assertion = cfg.database.createLocally -> cfg.database.user == user;
message = ''services.invoiceplane.sites."${hostName}".database.user must be ${user} if the database is to be automatically provisioned'';
}
{ assertion = cfg.database.createLocally -> cfg.database.passwordFile == null;

View File

@ -0,0 +1,40 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.xscreensaver;
in
{
options.services.xscreensaver = {
enable = lib.mkEnableOption "xscreensaver user service";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.xscreensaver;
defaultText = lib.literalExpression "pkgs.xscreensaver";
description = "Which xscreensaver package to use.";
};
};
config = lib.mkIf cfg.enable {
# Make xscreensaver-auth setuid root so that it can (try to) prevent the OOM
# killer from unlocking the screen.
security.wrappers.xscreensaver-auth = {
setuid = true;
owner = "root";
group = "root";
source = "${pkgs.xscreensaver}/libexec/xscreensaver/xscreensaver-auth";
};
systemd.user.services.xscreensaver = {
enable = true;
description = "XScreenSaver";
after = [ "graphical-session-pre.target" ];
partOf = [ "graphical-session.target" ];
wantedBy = [ "graphical-session.target" ];
path = [ cfg.package ];
serviceConfig.ExecStart = "${cfg.package}/bin/xscreensaver -no-splash";
};
};
meta.maintainers = with lib.maintainers; [ vancluever AndersonTorres ];
}

View File

@ -927,6 +927,7 @@ in {
xmonad-xdg-autostart = handleTest ./xmonad-xdg-autostart.nix {};
xpadneo = handleTest ./xpadneo.nix {};
xrdp = handleTest ./xrdp.nix {};
xscreensaver = handleTest ./xscreensaver.nix {};
xss-lock = handleTest ./xss-lock.nix {};
xterm = handleTest ./xterm.nix {};
xxh = handleTest ./xxh.nix {};

View File

@ -0,0 +1,64 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "pass-secret-service";
meta.maintainers = with lib.maintainers; [ vancluever AndersonTorres ];
nodes = {
ok = { nodes, pkgs, ... }:
{
imports = [ ./common/x11.nix ./common/user-account.nix ];
test-support.displayManager.auto.user = "alice";
services.xscreensaver.enable = true;
};
empty_wrapperPrefix = { nodes, pkgs, ... }:
{
imports = [ ./common/x11.nix ./common/user-account.nix ];
test-support.displayManager.auto.user = "alice";
services.xscreensaver.enable = true;
nixpkgs.overlays = [
(self: super: {
xscreensaver = super.xscreensaver.override {
wrapperPrefix = "";
};
})
];
};
bad_wrapperPrefix = { nodes, pkgs, ... }:
{
imports = [ ./common/x11.nix ./common/user-account.nix ];
test-support.displayManager.auto.user = "alice";
services.xscreensaver.enable = true;
nixpkgs.overlays = [
(self: super: {
xscreensaver = super.xscreensaver.override {
wrapperPrefix = "/a/bad/path";
};
})
];
};
};
testScript = ''
ok.wait_for_x()
ok.wait_for_unit("xscreensaver", "alice")
_, output_ok = ok.systemctl("status xscreensaver", "alice")
assert 'To prevent the kernel from randomly unlocking' not in output_ok
assert 'your screen via the out-of-memory killer' not in output_ok
assert '"xscreensaver-auth" must be setuid root' not in output_ok
empty_wrapperPrefix.wait_for_x()
empty_wrapperPrefix.wait_for_unit("xscreensaver", "alice")
_, output_empty_wrapperPrefix = empty_wrapperPrefix.systemctl("status xscreensaver", "alice")
assert 'To prevent the kernel from randomly unlocking' in output_empty_wrapperPrefix
assert 'your screen via the out-of-memory killer' in output_empty_wrapperPrefix
assert '"xscreensaver-auth" must be setuid root' in output_empty_wrapperPrefix
bad_wrapperPrefix.wait_for_x()
bad_wrapperPrefix.wait_for_unit("xscreensaver", "alice")
_, output_bad_wrapperPrefix = bad_wrapperPrefix.systemctl("status xscreensaver", "alice")
assert 'To prevent the kernel from randomly unlocking' in output_bad_wrapperPrefix
assert 'your screen via the out-of-memory killer' in output_bad_wrapperPrefix
assert '"xscreensaver-auth" must be setuid root' in output_bad_wrapperPrefix
'';
})

View File

@ -38,13 +38,13 @@ let
in
stdenv.mkDerivation rec {
pname = "cudatext";
version = "1.201.0.2";
version = "1.202.1";
src = fetchFromGitHub {
owner = "Alexey-T";
repo = "CudaText";
rev = version;
hash = "sha256-ke7i0eeZHEsVhtzaS0AeLQOrYE1F+ppCwjR2TWeJQPA=";
hash = "sha256-ZFMO986D4RtrTnLFdcL0a2BNjcsB+9pIolylblku7j4=";
};
patches = [ ./proc_globdata.patch ];

View File

@ -16,8 +16,8 @@
},
"ATSynEdit": {
"owner": "Alexey-T",
"rev": "2023.10.30",
"hash": "sha256-xsJ02zGzi7ByFBXql4lLWWLiPVWwtOLXzixmv4AeC2I="
"rev": "2023.11.23",
"hash": "sha256-LGYGCxEPdZL4BU3TGiFxydu7AN8g5kqOdW+dcbiCf7E="
},
"ATSynEdit_Cmp": {
"owner": "Alexey-T",
@ -26,13 +26,13 @@
},
"EControl": {
"owner": "Alexey-T",
"rev": "2023.08.18",
"hash": "sha256-X/KFQfLAnbcquLSsOk0ve0X5SzoEgEG0q0JY4TuQXpY="
"rev": "2023.11.16",
"hash": "sha256-FxUV+K9JRsdr0xqQzvg1UI4bBHyhqxiVoPN58h2+WVg="
},
"ATSynEdit_Ex": {
"owner": "Alexey-T",
"rev": "2023.10.02",
"hash": "sha256-mn+mTZZyDkc7P7w1PG/rDgp+rpXC3dahoiRk+DUDMHQ="
"rev": "2023.11.23",
"hash": "sha256-RNXP8O3UF+hwA3TNzLorZqlt04Idnc4Z9LA87JJSsZE="
},
"Python-for-Lazarus": {
"owner": "Alexey-T",

File diff suppressed because it is too large Load Diff

View File

@ -248,12 +248,12 @@
};
commonlisp = buildGrammar {
language = "commonlisp";
version = "0.0.0+rev=5153dbb";
version = "0.0.0+rev=cf10fc3";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-commonlisp";
rev = "5153dbbc70e4cc2324320c1bdae020d31079c7c0";
hash = "sha256-0eC2cm/cP9BLfNKsubJd4S4BHF2nJdx/OCNJNC4ur6Q=";
rev = "cf10fc38bc24faf0549d59217ff37c789973dfdc";
hash = "sha256-Pm8aZnsw2fKRA0Cz0sOdcWh2GX7ty3wy34OfUtxmBds=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-commonlisp";
};
@ -326,12 +326,12 @@
};
cuda = buildGrammar {
language = "cuda";
version = "0.0.0+rev=d33ee2c";
version = "0.0.0+rev=2c6e806";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-cuda";
rev = "d33ee2caab572f7b46cef12e090331b9ed1c02e2";
hash = "sha256-9fQ0z7DozjGdcQZG36w419mFXIVDeafkG+ciQHgh0EE=";
rev = "2c6e806949197e7898910c78f514a3b7ff679068";
hash = "sha256-JAShJo+jDv4kzFCPID0C3EokmeiWxMVcJoEsVOzKBEw=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
};
@ -371,12 +371,12 @@
};
devicetree = buildGrammar {
language = "devicetree";
version = "0.0.0+rev=cc26cbf";
version = "0.0.0+rev=53b4137";
src = fetchFromGitHub {
owner = "joelspadin";
repo = "tree-sitter-devicetree";
rev = "cc26cbf2121a27eaa72a05a795ce38aba4e0f86e";
hash = "sha256-r23ycLCR79Ow4eI8rK03B3M1loU8/7K8dDrqBIPSAS0=";
rev = "53b4137bd37e726116ea918139767f982a1584d8";
hash = "sha256-eHH6PiOR1xlIYFY2OcnvVVQanfAuJMkbsvDy9Wjm80U=";
};
meta.homepage = "https://github.com/joelspadin/tree-sitter-devicetree";
};
@ -736,12 +736,12 @@
};
glsl = buildGrammar {
language = "glsl";
version = "0.0.0+rev=c9082ed";
version = "0.0.0+rev=5bb58a6";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-glsl";
rev = "c9082edab87b145e97090b133167cb53626d9f58";
hash = "sha256-bwuPykagBFfTJ87C5oNcUWmKs9eBBYPZ0UOC/8zbbF8=";
rev = "5bb58a6a5b0941d4e1256c6335e50d9780e74dde";
hash = "sha256-k2hs8psjVJ2HcNZoVaM4k81uccmacqbl7VxDXXOAQzA=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl";
};
@ -934,12 +934,12 @@
};
hlsl = buildGrammar {
language = "hlsl";
version = "0.0.0+rev=ac65c93";
version = "0.0.0+rev=8b10fab";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-hlsl";
rev = "ac65c934b3214e96e0f854be009a3bd51549bd14";
hash = "sha256-rTBal4RBOFBKfb9cydvWH+JtCCMOlnnGMPb2X7LXRjE=";
rev = "8b10faba024b536dc85f76e0c678f573b1776034";
hash = "sha256-9bl7RhZjQOqBOePB4Lx3FLR79svMSh7ZVe+YlFv27WU=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
};
@ -1666,12 +1666,12 @@
};
pod = buildGrammar {
language = "pod";
version = "0.0.0+rev=ea5d557";
version = "0.0.0+rev=39da859";
src = fetchFromGitHub {
owner = "tree-sitter-perl";
repo = "tree-sitter-pod";
rev = "ea5d557cbd185cdcb5efcfdb6bc846fe909d86ae";
hash = "sha256-CFPfpFQYlaryMX/k6tBT9k0WbQRz2vdVzh++lIVYe80=";
rev = "39da859947b94abdee43e431368e1ae975c0a424";
hash = "sha256-sMUlAtl0IaykKlEhOiAkdrLNNJiCS0L7gj7+2WHwO5U=";
};
meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-pod";
};
@ -1719,6 +1719,17 @@
};
meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-promql";
};
properties = buildGrammar {
language = "properties";
version = "0.0.0+rev=9725327";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-properties";
rev = "97253273bdf8b63546c8006e71ba155ecc27069e";
hash = "sha256-pzAoRPBZRqlchnaYrKixrgjTZZ3nLzoOD5MZCqS7trI=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-properties";
};
proto = buildGrammar {
language = "proto";
version = "0.0.0+rev=e9f6b43";
@ -2064,12 +2075,12 @@
};
smithy = buildGrammar {
language = "smithy";
version = "0.0.0+rev=cf8c7eb";
version = "0.0.0+rev=8327eb8";
src = fetchFromGitHub {
owner = "indoorvivants";
repo = "tree-sitter-smithy";
rev = "cf8c7eb9faf7c7049839585eac19c94af231e6a0";
hash = "sha256-3cqT6+e0uqAtd92M55qSbza1eph8gklGlEGyO9R170w=";
rev = "8327eb84d55639ffbe08c9dc82da7fff72a1ad07";
hash = "sha256-6z2Psw+cjC11CXoGOJ/lkBPJXKqECCSrhchOiAPmd14=";
};
meta.homepage = "https://github.com/indoorvivants/tree-sitter-smithy";
};
@ -2132,12 +2143,12 @@
};
sql = buildGrammar {
language = "sql";
version = "0.0.0+rev=d8fffdf";
version = "0.0.0+rev=a3ea0e4";
src = fetchFromGitHub {
owner = "derekstride";
repo = "tree-sitter-sql";
rev = "d8fffdf0902bf55994fd2e8a0a46e221ca988589";
hash = "sha256-PowCYtL56lLGJaXFEdtPGAXaqYF0/u/mqDCjXHmyps0=";
rev = "a3ea0e4143a617fc2c4ccf29c41e0ba7a1ff6ab9";
hash = "sha256-VwkehcELs+t+1GjiOiPs1UQT+0E7OZaXaWTyjFWlMto=";
};
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
};
@ -2344,12 +2355,12 @@
};
tlaplus = buildGrammar {
language = "tlaplus";
version = "0.0.0+rev=d99cb5c";
version = "0.0.0+rev=c5fae9e";
src = fetchFromGitHub {
owner = "tlaplus-community";
repo = "tree-sitter-tlaplus";
rev = "d99cb5c77bb0e733176d607a0875ac30e17e1e72";
hash = "sha256-ShZlFHokmy3hhfTeh+/anz7a2bGDwWAdWIdi3X/lchQ=";
rev = "c5fae9e4ad9f483fb6232a8688a2c940be6b496b";
hash = "sha256-k2NN7vRIDsq/J4J6T9KEAwSht7JBtU9Ul7tUL/TrU58=";
};
meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
};
@ -2502,12 +2513,12 @@
};
v = buildGrammar {
language = "v";
version = "0.0.0+rev=2f24b03";
version = "0.0.0+rev=20433e0";
src = fetchFromGitHub {
owner = "v-analyzer";
repo = "v-analyzer";
rev = "2f24b0377ddb865eb4285634f6945cb4ee3f395c";
hash = "sha256-DLtG1RzoDC252O1FItP9vDZyt/MpV4bR7tcMSOLINWA=";
rev = "20433e0d8ff5bb6e7bb28d12948773be2bdd983d";
hash = "sha256-QdcGwVw8NNgdL1F+cytA6L1uzoAXGEcedTp16fLkS+o=";
};
location = "tree_sitter_v";
meta.homepage = "https://github.com/v-analyzer/v-analyzer";
@ -2602,12 +2613,12 @@
};
wing = buildGrammar {
language = "wing";
version = "0.0.0+rev=f6423ec";
version = "0.0.0+rev=635fa4b";
src = fetchFromGitHub {
owner = "winglang";
repo = "wing";
rev = "f6423ecace1ef34f57dc77db031504ce21ebfaaf";
hash = "sha256-uIUIXHxHWedJ5oH1u/88degVAzklzN97AYc5B39nFwE=";
rev = "635fa4b72ee913f3028bf6be54c40393edbc259d";
hash = "sha256-ruhmgc+EhrqPBli7CkXL+MevB+fnCQIeLqQbqZhFfbY=";
};
location = "libs/tree-sitter-wing";
generate = true;

View File

@ -1086,6 +1086,7 @@ https://github.com/peitalin/vim-jsx-typescript/,,
https://github.com/mroavi/vim-julia-cell/,HEAD,
https://github.com/NoahTheDuke/vim-just/,,
https://github.com/knubie/vim-kitty-navigator/,,
https://github.com/lark-parser/vim-lark-syntax/,HEAD,
https://github.com/farmergreg/vim-lastplace/,,
https://github.com/xuhdev/vim-latex-live-preview/,,
https://github.com/ludovicchabant/vim-lawrencium/,,

View File

@ -66,7 +66,7 @@ let
deprecatedNativeMessagingHost = option: pkg:
if (cfg.${option} or false)
then
lib.warn "The cfg.${option} argument for `firefox.override` is deprecated, please add `pkgs.${pkg.pname}` to `nativeMessagingHosts` instead"
lib.warn "The cfg.${option} argument for `firefox.override` is deprecated, please add `pkgs.${pkg.pname}` to `nativeMessagingHosts.packages` instead"
[pkg]
else [];

View File

@ -61,7 +61,7 @@ qt5.mkDerivation rec {
meta = with lib; {
description = "Graphical NoMachine NX3 remote desktop client";
homepage = "http://x2go.org/";
maintainers = with maintainers; [ mkg20001 ];
maintainers = with maintainers; [ ];
license = licenses.gpl2;
platforms = platforms.linux;
};

View File

@ -88,6 +88,6 @@ stdenv.mkDerivation rec {
homepage = "http://x2go.org/";
platforms = lib.platforms.linux;
license = licenses.gpl2;
maintainers = with maintainers; [ averelld mkg20001 ];
maintainers = with maintainers; [ averelld ];
};
}

View File

@ -39,13 +39,13 @@ let
in
stdenv.mkDerivation rec {
pname = "crun";
version = "1.11.1";
version = "1.12";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = version;
hash = "sha256-D4Y+n/6R2v3U/BhYQitsHd6ckda1vfAzciFbTM/1J80=";
hash = "sha256-61E/71axlN5H1KpAkWFm7jOETlmmy2qh7R+JrVZlMIQ=";
fetchSubmodules = true;
};

View File

@ -1,5 +1,17 @@
{ lib, stdenv, fetchFromGitHub, coreutils, grim, gawk, jq, swaylock
, imagemagick, getopt, fontconfig, wmctrl, makeWrapper, bash
{ lib
, stdenv
, fetchFromGitHub
, coreutils
, grim
, gawk
, jq
, swaylock
, imagemagick
, getopt
, fontconfig
, wmctrl
, makeWrapper
, bash
}:
let
@ -14,19 +26,22 @@ let
fontconfig
wmctrl
];
in stdenv.mkDerivation rec {
pname = "swaylock-fancy-unstable";
version = "2021-10-11";
mainProgram = "swaylock-fancy";
in
stdenv.mkDerivation {
pname = "swaylock-fancy";
version = "unstable-2023-11-21";
src = fetchFromGitHub {
owner = "Big-B";
repo = "swaylock-fancy";
rev = "265fbfb438392339bf676b0a9dbe294abe2a699e";
sha256 = "NjxeJyWYXBb1P8sXKgb2EWjF+cNodTE83r1YwRYoBjM=";
rev = "ff37ae3c6d0f100f81ff64fdb9d422c37de2f4f6";
hash = "sha256-oS4YCbZOIrMP4QSM5eHWzTn18k3w2OnJ2k+64x/DnuM=";
};
postPatch = ''
substituteInPlace swaylock-fancy \
substituteInPlace ${mainProgram} \
--replace "/usr/share" "$out/share"
'';
@ -37,7 +52,7 @@ in stdenv.mkDerivation rec {
makeFlags = [ "PREFIX=${placeholder "out"}" ];
postInstall = ''
wrapProgram $out/bin/swaylock-fancy \
wrapProgram $out/bin/${mainProgram} \
--prefix PATH : "${depsPath}"
'';
@ -46,6 +61,7 @@ in stdenv.mkDerivation rec {
homepage = "https://github.com/Big-B/swaylock-fancy";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ ];
maintainers = with maintainers; [ frogamic ];
inherit mainProgram;
};
}

View File

@ -0,0 +1,67 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, wrapGAppsHook4
, cairo
, gdk-pixbuf
, glib
, gtk4
, libadwaita
, pango
, fetchpatch
, copyDesktopItems
}:
rustPlatform.buildRustPackage rec {
pname = "satty";
version = "0.7.0";
src = fetchFromGitHub {
owner = "gabm";
repo = "Satty";
rev = "v${version}";
hash = "sha256-x2ljheG7ZqaeiPersC/e8Er2jvk5TJs65Y3N1GjTiNU=";
};
cargoPatches = [
(fetchpatch {
name = "fix-Cargo.lock";
url = "https://github.com/gabm/Satty/commit/39be6ddce264552df971e949a6a3175b102530b2.patch";
hash = "sha256-GUHupZE1A7AmXvZ8WvRzBkQyH7qlMTetBjHuakfIZ7w=";
})
];
cargoHash = "sha256-0GsbWd/gpKZm7nNXkuJhB02YKUj3XCrSfpRA9KBXydU=";
nativeBuildInputs = [
copyDesktopItems
pkg-config
wrapGAppsHook4
];
buildInputs = [
cairo
gdk-pixbuf
glib
gtk4
libadwaita
pango
];
postInstall = ''
install -Dt $out/share/icons/hicolor/scalable/apps/ assets/satty.svg
'';
desktopItems = [ "satty.desktop" ];
meta = with lib; {
description = "A screenshot annotation tool inspired by Swappy and Flameshot";
homepage = "https://github.com/gabm/Satty";
license = licenses.mpl20;
maintainers = with maintainers; [ pinpox ];
mainProgram = "satty";
platforms = lib.platforms.linux;
};
}

View File

@ -26,6 +26,9 @@
, systemd
, forceInstallAllHacks ? true
, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
, nixosTests
, substituteAll
, wrapperPrefix ? "/run/wrappers/bin"
}:
stdenv.mkDerivation (finalAttrs: {
@ -75,6 +78,13 @@ stdenv.mkDerivation (finalAttrs: {
popd
'';
patches = [
(substituteAll {
src = ./xscreensaver-wrapper-prefix.patch;
inherit wrapperPrefix;
})
];
preConfigure = ''
# Fix installation paths for GTK resources.
sed -e 's%@GTK_DATADIR@%@datadir@% ; s%@PO_DATADIR@%@datadir@%' \
@ -105,6 +115,10 @@ stdenv.mkDerivation (finalAttrs: {
cp -f $(find hacks -type f -perm -111 "!" -name "*.*" ) "$out/libexec/xscreensaver"
'';
passthru.tests = {
xscreensaver = nixosTests.xscreensaver;
};
meta = {
homepage = "https://www.jwz.org/xscreensaver/";
description = "A set of screensavers";

View File

@ -0,0 +1,37 @@
--- a/driver/xscreensaver.c
+++ b/driver/xscreensaver.c
@@ -253,6 +253,8 @@
#undef MAX
#define MAX(x,y)((x)>(y)?(x):(y))
+/* Define the default wrapper prefix here, for NixOS */
+#define NIXOS_WRAPPER_PREFIX "@wrapperPrefix@"
/* Globals used in this file.
*/
@@ -632,12 +634,24 @@ handle_sigchld (Display *dpy, Bool blanked_p)
static void
hack_environment (void)
{
+ static const char *wrapper_path = NIXOS_WRAPPER_PREFIX;
static const char *def_path = DEFAULT_PATH_PREFIX;
const char *opath = getenv("PATH");
char *npath;
if (! opath) opath = "/bin:/usr/bin"; /* WTF */
- npath = (char *) malloc(strlen(def_path) + strlen(opath) + 20);
+ /* NOTE: The NixOS patch adds extra margin than what would be expected for a
+ single extra ":" PATH separator to account for UTF-32 encoding. The
+ original 20 bytes would have only accounted for UTF-16 safely (the path
+ concatenation would have needed 28 bytes of margin at minimum for UTF-32).
+ */
+ npath = (char *) malloc(strlen(wrapper_path) + strlen(def_path) + strlen(opath) + 32);
strcpy (npath, "PATH=");
+ if (wrapper_path && *wrapper_path)
+ {
+ strcat (npath, wrapper_path);
+ strcat (npath, ":");
+ }
+
strcat (npath, def_path);
strcat (npath, ":");
strcat (npath, opath);

View File

@ -51,7 +51,6 @@ super: lib.trivial.pipe super [
buildInputs = [ vte ];
postFixup = ''
wrapGApp "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/bin/com.github.amezin.ddterm"
wrapGApp "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/ddterm/app/dependencies-notification.js"
'';
}))

View File

@ -8,13 +8,13 @@
}:
stdenv.mkDerivation rec {
version = "3.6.0";
version = "3.6.2";
pname = "libre";
src = fetchFromGitHub {
owner = "baresip";
repo = "re";
rev = "v${version}";
sha256 = "sha256-pFtrmrNRSL1lw10LjayOoNFrW/tTPXwmUipwC5v1MZs=";
sha256 = "sha256-mbwi6tJer4JC7ijB6WGDNoC/EM5rqCtejbYRFi9Kwgk=";
};
buildInputs = [

View File

@ -2,13 +2,13 @@
, cmake }:
stdenv.mkDerivation rec {
version = "2.10.0";
version = "2.12.0";
pname = "librem";
src = fetchFromGitHub {
owner = "baresip";
repo = "rem";
rev = "v${version}";
sha256 = "sha256-wyzpx0WjQLA8UKx4S6QOETMehf51Af5napZsxMXttmM=";
sha256 = "sha256-MsXSUxFH89EqxMe4285xFV1Tsqmv2l5RnEeli48O3XQ=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ zlib openssl libre ];

View File

@ -5,14 +5,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "checkov";
version = "3.1.9";
version = "3.1.10";
pyproject = true;
src = fetchFromGitHub {
owner = "bridgecrewio";
repo = "checkov";
rev = "refs/tags/${version}";
hash = "sha256-yUaCLCKOgJyHfhz07tzfcgJLn0k1mSifj4DJZyalRBY=";
hash = "sha256-5p8xROB2aBmYMpYAJvm/3Yxxq+DwcyguokeE/9fPzdU=";
};
patches = [

View File

@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "rdma-core";
version = "48.0";
version = "49.0";
src = fetchFromGitHub {
owner = "linux-rdma";
repo = "rdma-core";
rev = "v${finalAttrs.version}";
hash = "sha256-/ltuZ9OiwJJ6CuAd6hqJwo+wETOgZ4UcW50BrjudF+k=";
hash = "sha256-4095U7fLIvixUY3K6l0iFJh7oWwwKAX/WcD3ziqdsLg=";
};
strictDeps = true;

View File

@ -4,9 +4,9 @@
"sha256": "sha256-EU6T9yQCdOLx98Io8o01rEsgxDFF/Xoy42LgPopD2/A="
},
"invidious": {
"rev": "c5b87e3b5e5cc7f7f5c8baa7732bd6d81d8f910a",
"sha256": "sha256-aYxVgktwUBVfvUxgQUDUmDAKp1sr0+ZJcyGqcmBB4e0=",
"version": "unstable-2023-11-08"
"rev": "9ce9c543992243737516750bf08f5d073e899715",
"sha256": "sha256-yyNtMvHaN3hNxTafhQivN39NzEylrm+FG7S5DNkCtWU=",
"version": "unstable-2023-11-21"
},
"lsquic": {
"sha256": "sha256-hG8cUvhbCNeMOsKkaJlgGpzUrIx47E/WhmPIdI5F3qM=",

View File

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "notify_push";
version = "0.6.3";
version = "0.6.5";
src = fetchFromGitHub {
owner = "nextcloud";
repo = pname;
rev = "v${version}";
hash = "sha256-5Vd8fD0nB2POtxDFNVtkJfVEe+O8tjnwlwYosDJjIDA=";
hash = "sha256-go41ZIUBj1nj8rDI/c4Pk5cnDbM8Y2+bCZIab4XdhUY=";
};
cargoHash = "sha256-TF4rL7KXsbfYiEOfkKRyr3PCvyocq6tg90OZURZh8f8=";
cargoHash = "sha256-EuYwPQo2TucAaQw63pESkJGAtyuMhk3JT6mBg6E84Xs=";
passthru = rec {
test_client = rustPlatform.buildRustPackage {
@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
buildAndTestSubdir = "test_client";
cargoHash = "sha256-ES0LBKirOUqXOtA9O2KouA+NWisIMoe8XhmnTC8w1cg=";
cargoHash = "sha256-m4FHCrVGAmGIrgnMMleiTRgYGYh+b7EIH1ORE0tiBkY=";
};
tests = {
inherit (nixosTests.nextcloud) with-postgresql-and-redis26;

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "monetdb";
version = "11.47.11";
version = "11.47.17";
src = fetchurl {
url = "https://dev.monetdb.org/downloads/sources/archive/MonetDB-${finalAttrs.version}.tar.bz2";
hash = "sha256-ZYogc8KjFYbmS7OlL2ufGxdnMAYOYeUFk8AVe7rDer0=";
hash = "sha256-2bMzIlvSShNZMVKzBl5T/T33l0PPcBFH35gJs0qlD4E=";
};
nativeBuildInputs = [ bison cmake python3 ];

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "mergerfs-tools";
version = "20190411";
version = "20230912";
src = fetchFromGitHub {
owner = "trapexit";
repo = pname;
rev = "6e41fc5848c7cc4408caea86f3991c8cc2ac85a1";
sha256 = "0izswg6bya13scvb37l3gkl7mvi8q7l11p4hp4phdlcwh9jvdzcj";
rev = "80d6c9511da554009415d67e7c0ead1256c1fc41";
hash = "sha256-9sn2ziIjes2squSGbjjXVch2zDFjQruWB4282p4jWcY=";
};
nativeBuildInputs = [ makeWrapper ];
@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/trapexit/mergerfs-tools";
license = licenses.isc;
platforms = platforms.linux;
maintainers = with maintainers; [ ];
maintainers = with maintainers; [ makefu ];
};
}

View File

@ -5,17 +5,17 @@
buildGoModule rec {
pname = "cnspec";
version = "9.6.1";
version = "9.8.0";
src = fetchFromGitHub {
owner = "mondoohq";
repo = "cnspec";
rev = "refs/tags/v${version}";
hash = "sha256-aFQStXwoko2YA77d+H76AScNCNqC56CyJe5cz74SYdg=";
hash = "sha256-XxjFmFU6G7pTJCkWUYadFTEAQh5HZigfvUNoNNw1DOM=";
};
proxyVendor = true;
vendorHash = "sha256-fOSFOUrcxw/77vgPziigkSea93xR2k0Tr/cMGtX+3tc=";
vendorHash = "sha256-Ykb1dmvdOgOBqgsCJbLGwUbbMfsao0is95g8a2chVME=";
subPackages = [
"apps/cnspec"

View File

@ -16933,13 +16933,10 @@ with pkgs;
# https://github.com/NixOS/nixpkgs/issues/89426
rustc-wasm32 = (rustc.override {
stdenv = stdenv.override {
targetPlatform = stdenv.targetPlatform // {
parsed = {
cpu.name = "wasm32";
vendor.name = "unknown";
kernel.name = "unknown";
abi.name = "unknown";
};
targetPlatform = lib.systems.elaborate {
# lib.systems.elaborate won't recognize "unknown" as the last component.
config = "wasm32-unknown-wasi";
rust.config = "wasm32-unknown-unknown";
};
};
}).overrideAttrs (old: {