Merge staging-next into staging
This commit is contained in:
commit
f4335ece6e
@ -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 }:
|
||||
|
@ -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";
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
|
40
nixos/modules/services/x11/xscreensaver.nix
Normal file
40
nixos/modules/services/x11/xscreensaver.nix
Normal 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 ];
|
||||
}
|
@ -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 {};
|
||||
|
64
nixos/tests/xscreensaver.nix
Normal file
64
nixos/tests/xscreensaver.nix
Normal 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
|
||||
'';
|
||||
})
|
@ -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 ];
|
||||
|
12
pkgs/applications/editors/cudatext/deps.json
generated
12
pkgs/applications/editors/cudatext/deps.json
generated
@ -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
@ -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;
|
||||
|
@ -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/,,
|
||||
|
@ -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 [];
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
67
pkgs/by-name/sa/satty/package.nix
Normal file
67
pkgs/by-name/sa/satty/package.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -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";
|
||||
|
@ -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);
|
@ -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"
|
||||
'';
|
||||
}))
|
||||
|
||||
|
@ -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 = [
|
||||
|
@ -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 ];
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
|
@ -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=",
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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"
|
||||
|
@ -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: {
|
||||
|
Loading…
Reference in New Issue
Block a user