Merge branch 'master' into staging-next
This commit is contained in:
+2
-2
@@ -115,8 +115,8 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @raitobezarius
|
||||
/nixos/modules/system/boot/loader/systemd-boot @JulienMalka
|
||||
|
||||
# Images and installer media
|
||||
/nixos/modules/installer/cd-dvd/ @samueldr
|
||||
/nixos/modules/installer/sd-card/ @samueldr
|
||||
/nixos/modules/installer/cd-dvd/
|
||||
/nixos/modules/installer/sd-card/
|
||||
|
||||
# Updaters
|
||||
## update.nix
|
||||
|
||||
+71
-36
@@ -7,8 +7,6 @@ rec {
|
||||
This helps protect against malformed command lines and also to reduce
|
||||
boilerplate related to command-line construction for simple use cases.
|
||||
|
||||
`toGNUCommandLine` returns a list of nix strings.
|
||||
|
||||
`toGNUCommandLineShell` returns an escaped shell string.
|
||||
|
||||
|
||||
@@ -16,17 +14,86 @@ rec {
|
||||
|
||||
`options`
|
||||
|
||||
: 1\. Function argument
|
||||
: How to format the arguments, see `toGNUCommandLine`
|
||||
|
||||
`attrs`
|
||||
|
||||
: 2\. Function argument
|
||||
: The attributes to transform into arguments.
|
||||
|
||||
|
||||
# Examples
|
||||
:::{.example}
|
||||
## `lib.cli.toGNUCommandLineShell` usage example
|
||||
|
||||
```nix
|
||||
cli.toGNUCommandLineShell {} {
|
||||
data = builtins.toJSON { id = 0; };
|
||||
X = "PUT";
|
||||
retry = 3;
|
||||
retry-delay = null;
|
||||
url = [ "https://example.com/foo" "https://example.com/bar" ];
|
||||
silent = false;
|
||||
verbose = true;
|
||||
}
|
||||
=> "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'";
|
||||
```
|
||||
|
||||
:::
|
||||
*/
|
||||
toGNUCommandLineShell =
|
||||
options: attrs: lib.escapeShellArgs (toGNUCommandLine options attrs);
|
||||
|
||||
/**
|
||||
Automatically convert an attribute set to a list of command-line options.
|
||||
|
||||
`toGNUCommandLine` returns a list of string arguments.
|
||||
|
||||
|
||||
# Inputs
|
||||
|
||||
`options`
|
||||
|
||||
: How to format the arguments, see below.
|
||||
|
||||
`attrs`
|
||||
|
||||
: The attributes to transform into arguments.
|
||||
|
||||
# Options
|
||||
|
||||
`mkOptionName`
|
||||
|
||||
: How to string-format the option name;
|
||||
By default one character is a short option (`-`), more than one characters a long option (`--`).
|
||||
|
||||
`mkBool`
|
||||
|
||||
: How to format a boolean value to a command list;
|
||||
By default it’s a flag option (only the option name if true, left out completely if false).
|
||||
|
||||
`mkList`
|
||||
|
||||
: How to format a list value to a command list;
|
||||
By default the option name is repeated for each value and `mkOption` is applied to the values themselves.
|
||||
|
||||
|
||||
`mkOption`
|
||||
|
||||
: How to format any remaining value to a command list;
|
||||
On the toplevel, booleans and lists are handled by `mkBool` and `mkList`, though they can still appear as values of a list.
|
||||
By default, everything is printed verbatim and complex types are forbidden (lists, attrsets, functions). `null` values are omitted.
|
||||
|
||||
`optionValueSeparator`
|
||||
|
||||
: How to separate an option from its flag;
|
||||
By default, there is no separator, so option `-c` and value `5` would become ["-c" "5"].
|
||||
This is useful if the command requires equals, for example, `-c=5`.
|
||||
|
||||
|
||||
# Examples
|
||||
:::{.example}
|
||||
## `lib.cli.toGNUCommandLine` usage example
|
||||
|
||||
```nix
|
||||
cli.toGNUCommandLine {} {
|
||||
data = builtins.toJSON { id = 0; };
|
||||
@@ -45,48 +112,20 @@ rec {
|
||||
"--url" "https://example.com/bar"
|
||||
"--verbose"
|
||||
]
|
||||
|
||||
cli.toGNUCommandLineShell {} {
|
||||
data = builtins.toJSON { id = 0; };
|
||||
X = "PUT";
|
||||
retry = 3;
|
||||
retry-delay = null;
|
||||
url = [ "https://example.com/foo" "https://example.com/bar" ];
|
||||
silent = false;
|
||||
verbose = true;
|
||||
}
|
||||
=> "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'";
|
||||
```
|
||||
|
||||
:::
|
||||
*/
|
||||
toGNUCommandLineShell =
|
||||
options: attrs: lib.escapeShellArgs (toGNUCommandLine options attrs);
|
||||
|
||||
toGNUCommandLine = {
|
||||
# how to string-format the option name;
|
||||
# by default one character is a short option (`-`),
|
||||
# more than one characters a long option (`--`).
|
||||
mkOptionName ?
|
||||
k: if builtins.stringLength k == 1
|
||||
then "-${k}"
|
||||
else "--${k}",
|
||||
|
||||
# how to format a boolean value to a command list;
|
||||
# by default it’s a flag option
|
||||
# (only the option name if true, left out completely if false).
|
||||
mkBool ? k: v: lib.optional v (mkOptionName k),
|
||||
|
||||
# how to format a list value to a command list;
|
||||
# by default the option name is repeated for each value
|
||||
# and `mkOption` is applied to the values themselves.
|
||||
mkList ? k: v: lib.concatMap (mkOption k) v,
|
||||
|
||||
# how to format any remaining value to a command list;
|
||||
# on the toplevel, booleans and lists are handled by `mkBool` and `mkList`,
|
||||
# though they can still appear as values of a list.
|
||||
# By default, everything is printed verbatim and complex types
|
||||
# are forbidden (lists, attrsets, functions). `null` values are omitted.
|
||||
mkOption ?
|
||||
k: v: if v == null
|
||||
then []
|
||||
@@ -95,10 +134,6 @@ rec {
|
||||
else
|
||||
[ "${mkOptionName k}${optionValueSeparator}${lib.generators.mkValueStringDefault {} v}" ],
|
||||
|
||||
# how to separate an option from its flag;
|
||||
# by default, there is no separator, so option `-c` and value `5`
|
||||
# would become ["-c" "5"].
|
||||
# This is useful if the command requires equals, for example, `-c=5`.
|
||||
optionValueSeparator ? null
|
||||
}:
|
||||
options:
|
||||
|
||||
@@ -97,6 +97,12 @@
|
||||
githubId = 9675338;
|
||||
keys = [ { fingerprint = "F466 A548 AD3F C1F1 8C88 4576 8702 7528 B006 D66D"; } ];
|
||||
};
|
||||
_0x5a4 = {
|
||||
email = "bej86nug@hhu.de";
|
||||
name = "0x5a4";
|
||||
github = "0x5a4";
|
||||
githubId = 54070204;
|
||||
};
|
||||
_0xB10C = {
|
||||
email = "nixpkgs@b10c.me";
|
||||
name = "0xB10C";
|
||||
@@ -2663,6 +2669,12 @@
|
||||
githubId = 37907;
|
||||
name = "Julian Stecklina";
|
||||
};
|
||||
bloeckchengrafik = {
|
||||
email = "christian.bergschneider@gmx.de";
|
||||
github = "Bloeckchengrafik";
|
||||
githubId = 37768199;
|
||||
name = "Christian Bergschneider";
|
||||
};
|
||||
bloveless = {
|
||||
email = "brennon.loveless@gmail.com";
|
||||
github = "bloveless";
|
||||
@@ -13343,6 +13355,12 @@
|
||||
githubId = 5698461;
|
||||
name = "Maciej Kazulak";
|
||||
};
|
||||
mkez = {
|
||||
email = "matias.zwinger+nix@protonmail.com";
|
||||
github = "mk3z";
|
||||
githubId = 52108954;
|
||||
name = "Matias Zwinger";
|
||||
};
|
||||
mkf = {
|
||||
email = "m@mikf.pl";
|
||||
github = "mkf";
|
||||
|
||||
@@ -12,13 +12,13 @@ let
|
||||
reconnect_to_dispatcher = true;
|
||||
};
|
||||
beacon_db = {
|
||||
connection = "/var/lib/scion-control/control.beacon.db";
|
||||
connection = "/run/scion-control/control.beacon.db";
|
||||
};
|
||||
path_db = {
|
||||
connection = "/var/lib/scion-control/control.path.db";
|
||||
connection = "/run/scion-control/control.path.db";
|
||||
};
|
||||
trust_db = {
|
||||
connection = "/var/lib/scion-control/control.trust.db";
|
||||
connection = "/run/scion-control/control.trust.db";
|
||||
};
|
||||
log.console = {
|
||||
level = "info";
|
||||
@@ -35,7 +35,7 @@ in
|
||||
example = literalExpression ''
|
||||
{
|
||||
path_db = {
|
||||
connection = "/var/lib/scion-control/control.path.db";
|
||||
connection = "/run/scion-control/control.path.db";
|
||||
};
|
||||
log.console = {
|
||||
level = "info";
|
||||
@@ -62,7 +62,7 @@ in
|
||||
DynamicUser = true;
|
||||
Restart = "on-failure";
|
||||
BindPaths = [ "/dev/shm:/run/shm" ];
|
||||
StateDirectory = "scion-control";
|
||||
RuntimeDirectory = "scion-control";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -12,10 +12,10 @@ let
|
||||
reconnect_to_dispatcher = true;
|
||||
};
|
||||
path_db = {
|
||||
connection = "/var/lib/scion-daemon/sd.path.db";
|
||||
connection = "/run/scion-daemon/sd.path.db";
|
||||
};
|
||||
trust_db = {
|
||||
connection = "/var/lib/scion-daemon/sd.trust.db";
|
||||
connection = "/run/scion-daemon/sd.trust.db";
|
||||
};
|
||||
log.console = {
|
||||
level = "info";
|
||||
@@ -32,7 +32,7 @@ in
|
||||
example = literalExpression ''
|
||||
{
|
||||
path_db = {
|
||||
connection = "/var/lib/scion-daemon/sd.path.db";
|
||||
connection = "/run/scion-daemon/sd.path.db";
|
||||
};
|
||||
log.console = {
|
||||
level = "info";
|
||||
@@ -57,7 +57,7 @@ in
|
||||
ExecStart = "${pkgs.scion}/bin/scion-daemon --config ${configFile}";
|
||||
Restart = "on-failure";
|
||||
DynamicUser = true;
|
||||
StateDirectory = "scion-daemon";
|
||||
RuntimeDirectory = "scion-daemon";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -66,7 +66,7 @@ in
|
||||
ExecStartPre = "${pkgs.coreutils}/bin/rm -rf /run/shm/dispatcher";
|
||||
ExecStart = "${pkgs.scion}/bin/scion-dispatcher --config ${configFile}";
|
||||
Restart = "on-failure";
|
||||
StateDirectory = "scion-dispatcher";
|
||||
RuntimeDirectory = "scion-dispatcher";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -42,7 +42,7 @@ in
|
||||
ExecStart = "${pkgs.scion}/bin/scion-router --config ${configFile}";
|
||||
Restart = "on-failure";
|
||||
DynamicUser = true;
|
||||
StateDirectory = "scion-router";
|
||||
RuntimeDirectory = "scion-router";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,71 +1,66 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.hound;
|
||||
settingsFormat = pkgs.formats.json { };
|
||||
in {
|
||||
imports = [
|
||||
(lib.mkRemovedOptionModule [ "services" "hound" "extraGroups" ] "Use users.users.hound.extraGroups instead")
|
||||
(lib.mkChangedOptionModule [ "services" "hound" "config" ] [ "services" "hound" "settings" ] (config: builtins.fromJSON config.services.hound.config))
|
||||
];
|
||||
|
||||
meta.maintainers = with maintainers; [ SuperSandro2000 ];
|
||||
meta.maintainers = with lib.maintainers; [ SuperSandro2000 ];
|
||||
|
||||
options = {
|
||||
services.hound = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to enable the hound code search daemon.
|
||||
'';
|
||||
};
|
||||
enable = lib.mkEnableOption "hound";
|
||||
|
||||
package = mkPackageOption pkgs "hound" { };
|
||||
package = lib.mkPackageOption pkgs "hound" { };
|
||||
|
||||
user = mkOption {
|
||||
user = lib.mkOption {
|
||||
default = "hound";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
User the hound daemon should execute under.
|
||||
'';
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
group = lib.mkOption {
|
||||
default = "hound";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
Group the hound daemon should execute under.
|
||||
'';
|
||||
};
|
||||
|
||||
home = mkOption {
|
||||
home = lib.mkOption {
|
||||
default = "/var/lib/hound";
|
||||
type = types.path;
|
||||
type = lib.types.path;
|
||||
description = ''
|
||||
The path to use as hound's $HOME.
|
||||
If the default user "hound" is configured then this is the home of the "hound" user.
|
||||
'';
|
||||
};
|
||||
|
||||
config = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
The full configuration of the Hound daemon. Note the dbpath
|
||||
should be an absolute path to a writable location on disk.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
settings = lib.mkOption {
|
||||
type = settingsFormat.type;
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
"max-concurrent-indexers" : 2,
|
||||
"repos" : {
|
||||
"nixpkgs": {
|
||||
"url" : "https://www.github.com/NixOS/nixpkgs.git"
|
||||
}
|
||||
}
|
||||
max-concurrent-indexers = 2;
|
||||
repos.nixpkgs.url = "https://www.github.com/NixOS/nixpkgs.git";
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
The full configuration of the Hound daemon.
|
||||
See the upstream documentation <https://github.com/hound-search/hound/blob/main/docs/config-options.md> for details.
|
||||
|
||||
:::{.note}
|
||||
The `dbpath` should be an absolute path to a writable directory.
|
||||
:::.com/hound-search/hound/blob/main/docs/config-options.md>.
|
||||
'';
|
||||
};
|
||||
|
||||
listen = mkOption {
|
||||
type = types.str;
|
||||
listen = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "0.0.0.0:6080";
|
||||
example = ":6080";
|
||||
description = ''
|
||||
@@ -75,7 +70,7 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.groups = lib.mkIf (cfg.group == "hound") {
|
||||
hound = { };
|
||||
};
|
||||
@@ -89,16 +84,19 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.hound = let
|
||||
configFile = pkgs.writeTextFile {
|
||||
name = "hound.json";
|
||||
text = cfg.config;
|
||||
checkPhase = ''
|
||||
# check if the supplied text is valid json
|
||||
${lib.getExe pkgs.jq} . $target > /dev/null
|
||||
'';
|
||||
};
|
||||
in {
|
||||
environment.etc."hound/config.json".source = pkgs.writeTextFile {
|
||||
name = "hound-config";
|
||||
text = builtins.toJSON cfg.settings;
|
||||
checkPhase = ''
|
||||
${cfg.package}/bin/houndd -check-conf -conf $out
|
||||
'';
|
||||
};
|
||||
|
||||
services.hound.settings = {
|
||||
dbpath = "${config.services.hound.home}/data";
|
||||
};
|
||||
|
||||
systemd.services.hound = {
|
||||
description = "Hound Code Search";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
@@ -107,7 +105,7 @@ in {
|
||||
Group = cfg.group;
|
||||
WorkingDirectory = cfg.home;
|
||||
ExecStartPre = "${pkgs.git}/bin/git config --global --replace-all http.sslCAinfo /etc/ssl/certs/ca-certificates.crt";
|
||||
ExecStart = "${cfg.package}/bin/houndd -addr ${cfg.listen} -conf ${configFile}";
|
||||
ExecStart = "${cfg.package}/bin/houndd -addr ${cfg.listen} -conf /etc/hound/config.json";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -11,7 +11,7 @@ let
|
||||
environment = {
|
||||
PYTHONPATH = pkg.pythonPath;
|
||||
STATIC_ROOT = cfg.dataDir + "/static";
|
||||
} // cfg.settings;
|
||||
} // lib.filterAttrs (_: v: !builtins.isNull v) cfg.settings;
|
||||
|
||||
environmentFile = pkgs.writeText "healthchecks-environment" (lib.generators.toKeyValue { } environment);
|
||||
|
||||
@@ -21,6 +21,7 @@ let
|
||||
sudo='exec /run/wrappers/bin/sudo -u ${cfg.user} --preserve-env --preserve-env=PYTHONPATH'
|
||||
fi
|
||||
export $(cat ${environmentFile} | xargs)
|
||||
${lib.optionalString (cfg.settingsFile != null) "export $(cat ${cfg.settingsFile} | xargs)"}
|
||||
$sudo ${pkg}/opt/healthchecks/manage.py "$@"
|
||||
'';
|
||||
in
|
||||
@@ -89,6 +90,12 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
settingsFile = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
default = null;
|
||||
description = opt.settings.description;
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
description = ''
|
||||
Environment variables which are read by healthchecks `(local)_settings.py`.
|
||||
@@ -109,6 +116,8 @@ in
|
||||
have support for a `_FILE` variant, run:
|
||||
- `nix-instantiate --eval --expr '(import <nixpkgs> {}).healthchecks.secrets'`
|
||||
- or `nix eval 'nixpkgs#healthchecks.secrets'` if the flake support has been enabled.
|
||||
|
||||
If the same variable is set in both `settings` and `settingsFile` the value from `settingsFile` has priority.
|
||||
'';
|
||||
type = types.submodule (settings: {
|
||||
freeformType = types.attrsOf types.str;
|
||||
@@ -121,8 +130,9 @@ in
|
||||
};
|
||||
|
||||
SECRET_KEY_FILE = mkOption {
|
||||
type = types.path;
|
||||
type = types.nullOr types.path;
|
||||
description = "Path to a file containing the secret key.";
|
||||
default = null;
|
||||
};
|
||||
|
||||
DEBUG = mkOption {
|
||||
@@ -186,7 +196,9 @@ in
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
EnvironmentFile = [ environmentFile ];
|
||||
EnvironmentFile = [
|
||||
environmentFile
|
||||
] ++ lib.optional (cfg.settingsFile != null) cfg.settingsFile;
|
||||
StateDirectory = mkIf (cfg.dataDir == "/var/lib/healthchecks") "healthchecks";
|
||||
StateDirectoryMode = mkIf (cfg.dataDir == "/var/lib/healthchecks") "0750";
|
||||
};
|
||||
|
||||
@@ -18,7 +18,15 @@ let
|
||||
|
||||
limesurveyConfig = pkgs.writeText "config.php" ''
|
||||
<?php
|
||||
return json_decode('${builtins.toJSON cfg.config}', true);
|
||||
return \array_merge(
|
||||
\json_decode('${builtins.toJSON cfg.config}', true),
|
||||
[
|
||||
'config' => [
|
||||
'encryptionnonce' => \trim(\file_get_contents(\getenv('CREDENTIALS_DIRECTORY') . DIRECTORY_SEPARATOR . 'encryption_nonce')),
|
||||
'encryptionsecretboxkey' => \trim(\file_get_contents(\getenv('CREDENTIALS_DIRECTORY') . DIRECTORY_SEPARATOR . 'encryption_key')),
|
||||
]
|
||||
]
|
||||
);
|
||||
?>
|
||||
'';
|
||||
|
||||
@@ -35,8 +43,9 @@ in
|
||||
package = mkPackageOption pkgs "limesurvey" { };
|
||||
|
||||
encryptionKey = mkOption {
|
||||
type = types.str;
|
||||
default = "E17687FC77CEE247F0E22BB3ECF27FDE8BEC310A892347EC13013ABA11AA7EB5";
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
visible = false;
|
||||
description = ''
|
||||
This is a 32-byte key used to encrypt variables in the database.
|
||||
You _must_ change this from the default value.
|
||||
@@ -44,14 +53,35 @@ in
|
||||
};
|
||||
|
||||
encryptionNonce = mkOption {
|
||||
type = types.str;
|
||||
default = "1ACC8555619929DB91310BE848025A427B0F364A884FFA77";
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
visible = false;
|
||||
description = ''
|
||||
This is a 24-byte nonce used to encrypt variables in the database.
|
||||
You _must_ change this from the default value.
|
||||
'';
|
||||
};
|
||||
|
||||
encryptionKeyFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
32-byte key used to encrypt variables in the database.
|
||||
|
||||
Note: It should be string not a store path in order to prevent the password from being world readable
|
||||
'';
|
||||
};
|
||||
|
||||
encryptionNonceFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
24-byte used to encrypt variables in the database.
|
||||
|
||||
Note: It should be string not a store path in order to prevent the password from being world readable
|
||||
'';
|
||||
};
|
||||
|
||||
database = {
|
||||
type = mkOption {
|
||||
type = types.enum [ "mysql" "pgsql" "odbc" "mssql" ];
|
||||
@@ -183,6 +213,22 @@ in
|
||||
{ assertion = cfg.database.createLocally -> cfg.database.passwordFile == null;
|
||||
message = "a password cannot be specified if services.limesurvey.database.createLocally is set to true";
|
||||
}
|
||||
{ assertion = cfg.encryptionKey != null || cfg.encryptionKeyFile != null;
|
||||
message = ''
|
||||
You must set `services.limesurvey.encryptionKeyFile` to a file containing a 32-character uppercase hex string.
|
||||
|
||||
If this message appears when updating your system, please turn off encryption
|
||||
in the LimeSurvey interface and create backups before filling the key.
|
||||
'';
|
||||
}
|
||||
{ assertion = cfg.encryptionNonce != null || cfg.encryptionNonceFile != null;
|
||||
message = ''
|
||||
You must set `services.limesurvey.encryptionNonceFile` to a file containing a 24-character uppercase hex string.
|
||||
|
||||
If this message appears when updating your system, please turn off encryption
|
||||
in the LimeSurvey interface and create backups before filling the nonce.
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
services.limesurvey.config = mapAttrs (name: mkDefault) {
|
||||
@@ -204,8 +250,6 @@ in
|
||||
config = {
|
||||
tempdir = "${stateDir}/tmp";
|
||||
uploaddir = "${stateDir}/upload";
|
||||
encryptionnonce = cfg.encryptionNonce;
|
||||
encryptionsecretboxkey = cfg.encryptionKey;
|
||||
force_ssl = mkIf (cfg.virtualHost.addSSL || cfg.virtualHost.forceSSL || cfg.virtualHost.onlySSL) "on";
|
||||
config.defaultlang = "en";
|
||||
};
|
||||
@@ -229,11 +273,26 @@ in
|
||||
phpPackage = pkgs.php81;
|
||||
phpEnv.DBENGINE = "${cfg.database.dbEngine}";
|
||||
phpEnv.LIMESURVEY_CONFIG = "${limesurveyConfig}";
|
||||
# App code cannot access credentials directly since the service starts
|
||||
# with the root user so we copy the credentials to a place accessible to Limesurvey
|
||||
phpEnv.CREDENTIALS_DIRECTORY = "${stateDir}/credentials";
|
||||
settings = {
|
||||
"listen.owner" = config.services.httpd.user;
|
||||
"listen.group" = config.services.httpd.group;
|
||||
} // cfg.poolConfig;
|
||||
};
|
||||
systemd.services.phpfpm-limesurvey.serviceConfig = {
|
||||
ExecStartPre = pkgs.writeShellScript "limesurvey-phpfpm-exec-pre" ''
|
||||
cp -f "''${CREDENTIALS_DIRECTORY}"/encryption_key "${stateDir}/credentials/encryption_key"
|
||||
chown ${user}:${group} "${stateDir}/credentials/encryption_key"
|
||||
cp -f "''${CREDENTIALS_DIRECTORY}"/encryption_nonce "${stateDir}/credentials/encryption_nonce"
|
||||
chown ${user}:${group} "${stateDir}/credentials/encryption_nonce"
|
||||
'';
|
||||
LoadCredential = [
|
||||
"encryption_key:${if cfg.encryptionKeyFile != null then cfg.encryptionKeyFile else pkgs.writeText "key" cfg.encryptionKey}"
|
||||
"encryption_nonce:${if cfg.encryptionNonceFile != null then cfg.encryptionNonceFile else pkgs.writeText "nonce" cfg.encryptionKey}"
|
||||
];
|
||||
};
|
||||
|
||||
services.httpd = {
|
||||
enable = true;
|
||||
@@ -277,6 +336,7 @@ in
|
||||
"d ${stateDir}/tmp/assets 0750 ${user} ${group} - -"
|
||||
"d ${stateDir}/tmp/runtime 0750 ${user} ${group} - -"
|
||||
"d ${stateDir}/tmp/upload 0750 ${user} ${group} - -"
|
||||
"d ${stateDir}/credentials 0700 ${user} ${group} - -"
|
||||
"C ${stateDir}/upload 0750 ${user} ${group} - ${cfg.package}/share/limesurvey/upload"
|
||||
];
|
||||
|
||||
@@ -295,6 +355,10 @@ in
|
||||
User = user;
|
||||
Group = group;
|
||||
Type = "oneshot";
|
||||
LoadCredential = [
|
||||
"encryption_key:${if cfg.encryptionKeyFile != null then cfg.encryptionKeyFile else pkgs.writeText "key" cfg.encryptionKey}"
|
||||
"encryption_nonce:${if cfg.encryptionNonceFile != null then cfg.encryptionNonceFile else pkgs.writeText "nonce" cfg.encryptionKey}"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -16,6 +16,8 @@ let
|
||||
ln -s ${configFile} $out/opt/peering-manager/peering_manager/configuration.py
|
||||
'' + lib.optionalString cfg.enableLdap ''
|
||||
ln -s ${cfg.ldapConfigPath} $out/opt/peering-manager/peering_manager/ldap_config.py
|
||||
'' + lib.optionalString cfg.enableOidc ''
|
||||
ln -s ${cfg.oidcConfigPath} $out/opt/peering-manager/peering_manager/oidc_config.py
|
||||
'';
|
||||
})).override {
|
||||
inherit (cfg) plugins;
|
||||
@@ -139,6 +141,24 @@ in {
|
||||
See the [documentation](https://peering-manager.readthedocs.io/en/stable/setup/6-ldap/#configuration) for possible options.
|
||||
'';
|
||||
};
|
||||
|
||||
enableOidc = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable OIDC-Authentication for Peering Manager.
|
||||
|
||||
This requires a configuration file being pass through `oidcConfigPath`.
|
||||
'';
|
||||
};
|
||||
|
||||
oidcConfigPath = mkOption {
|
||||
type = types.path;
|
||||
description = ''
|
||||
Path to the Configuration-File for OIDC-Authentication, will be loaded as `oidc_config.py`.
|
||||
See the [documentation](https://peering-manager.readthedocs.io/en/stable/setup/6b-oidc/#configuration) for possible options.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
@@ -173,7 +193,10 @@ in {
|
||||
PEERINGDB_API_KEY = file.readline()
|
||||
'';
|
||||
|
||||
plugins = lib.mkIf cfg.enableLdap (ps: [ ps.django-auth-ldap ]);
|
||||
plugins = (ps:
|
||||
(lib.optionals cfg.enableLdap [ ps.django-auth-ldap ]) ++
|
||||
(lib.optionals cfg.enableOidc (with ps; [ mozilla-django-oidc pyopenssl josepy ]))
|
||||
);
|
||||
};
|
||||
|
||||
system.build.peeringManagerPkg = pkg;
|
||||
|
||||
@@ -165,6 +165,7 @@ in
|
||||
services.tumbler.enable = true;
|
||||
services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
|
||||
services.libinput.enable = mkDefault true; # used in xfce4-settings-manager
|
||||
services.colord.enable = mkDefault true;
|
||||
|
||||
# Enable default programs
|
||||
programs.dconf.enable = true;
|
||||
|
||||
@@ -489,7 +489,7 @@ in
|
||||
system.nssModules = [ cfg.package.out ];
|
||||
system.nssDatabases = {
|
||||
hosts = (mkMerge [
|
||||
(mkOrder 400 ["mymachines"]) # 400 to ensure it comes before resolve (which is mkBefore'd)
|
||||
(mkOrder 400 ["mymachines"]) # 400 to ensure it comes before resolve (which is 501)
|
||||
(mkOrder 999 ["myhostname"]) # after files (which is 998), but before regular nss modules
|
||||
]);
|
||||
passwd = (mkMerge [
|
||||
|
||||
@@ -545,9 +545,10 @@ in
|
||||
};
|
||||
|
||||
system.nssModules = optional (cfg.nss.enable or cfg.nss.enableGuest) cfg.package;
|
||||
system.nssDatabases.hosts = builtins.concatLists [
|
||||
(optional cfg.nss.enable "libvirt")
|
||||
(optional cfg.nss.enableGuest "libvirt_guest")
|
||||
system.nssDatabases.hosts = mkMerge [
|
||||
# ensure that the NSS modules come between mymachines (which is 400) and resolve (which is 501)
|
||||
(mkIf cfg.nss.enable (mkOrder 430 [ "libvirt" ]))
|
||||
(mkIf cfg.nss.enableGuest (mkOrder 432 [ "libvirt_guest" ]))
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
||||
name = "limesurvey";
|
||||
meta.maintainers = [ pkgs.lib.maintainers.aanderse ];
|
||||
meta.maintainers = [ lib.maintainers.aanderse ];
|
||||
|
||||
nodes.machine = { ... }: {
|
||||
services.limesurvey = {
|
||||
@@ -9,6 +9,8 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
hostName = "example.local";
|
||||
adminAddr = "root@example.local";
|
||||
};
|
||||
encryptionKeyFile = pkgs.writeText "key" (lib.strings.replicate 32 "0");
|
||||
encryptionNonceFile = pkgs.writeText "nonce" (lib.strings.replicate 24 "0");
|
||||
};
|
||||
|
||||
# limesurvey won't work without a dot in the hostname
|
||||
|
||||
@@ -38,11 +38,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bisq-desktop";
|
||||
version = "1.9.16";
|
||||
version = "1.9.17";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb";
|
||||
sha256 = "sha256-DxYgZgDa3vOHj7svJqu/pdyXKZ+uBTy35Fchw49xxoA=";
|
||||
sha256 = "1wqzgxsm9p6lh0bmvw0byaxx1r5v64d024jf1pg9mykb1dnnx0wy";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
let
|
||||
pname = "trezor-suite";
|
||||
version = "24.5.4";
|
||||
version = "24.6.2";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
suffix = {
|
||||
@@ -18,9 +18,9 @@ let
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage";
|
||||
hash = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/latest/download/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
|
||||
aarch64-linux = "sha512-gkN6e4Ndc96FT6vaCmSxuViTKuOc5vnCqptPN8IRno9Nv8L0k6hB7O+0g5E+9hd+3o5WASXKefYIOZAnPI3RZA==";
|
||||
x86_64-linux = "sha512-uHMI0fm02XdOyt6mAXEZuTZkNlNykTQbJNeGATBrlLLR98cxrOj8DQ1S7gPd5dkQCJzdmR7ydylj/XPOHsV2Ug==";
|
||||
hash = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/download/v${version}/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
|
||||
aarch64-linux = "sha512-fJnka//9DbvTTq7GEN++6thU8f8BL4cHh1J4P/Tu9Eu94KWCHDG2IwFALOXEvZnwLbxFYiu3Cqldp2RIxYFXTA==";
|
||||
x86_64-linux = "sha512-/gRQR1EriiwrDj04BTnhXlsawJgHp6TqgHpgVCMO1r+U2zGiFLdNfwG/SYwARE+55X8Umls5hCt/wuCpTEPkEg==";
|
||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
};
|
||||
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
|
||||
crystal.buildCrystalPackage rec {
|
||||
pname = "tijolo";
|
||||
version = "0.8.1";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hugopl";
|
||||
repo = "tijolo";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-+sRcS5bVH6WLmSDLiPw608OB6OjBVwLqWxGT5Y6caBc=";
|
||||
hash = "sha256-RVdZce9csnhJx5p+jBANDCsz2eB/l3EHExwKMbKL9y0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -22,10 +22,10 @@
|
||||
|
||||
let
|
||||
pname = "typora";
|
||||
version = "1.8.10";
|
||||
version = "1.9.3";
|
||||
src = fetchurl {
|
||||
url = "https://download.typora.io/linux/typora_${version}_amd64.deb";
|
||||
hash = "sha256-5ZLSzDUcF0OZUuWVX/iG+4ccTlCPdYxy7zl0wDHlxNQ=";
|
||||
hash = "sha256-3rR/CvFFjRPkz27mm1Wt5hwgRUnLL7lpLFKA2moILx8=";
|
||||
};
|
||||
|
||||
typoraBase = stdenv.mkDerivation {
|
||||
|
||||
@@ -1229,6 +1229,10 @@
|
||||
dependencies = with self; [ (nvim-treesitter.withPlugins (p: [ p.org ])) ];
|
||||
};
|
||||
|
||||
otter-nvim = super.otter-nvim.overrideAttrs {
|
||||
dependencies = [ self.nvim-lspconfig ];
|
||||
};
|
||||
|
||||
overseer-nvim = super.overseer-nvim.overrideAttrs {
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
|
||||
@@ -1173,6 +1173,23 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
danielsanmedium.dscodegpt = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
publisher = "DanielSanMedium";
|
||||
name = "dscodegpt";
|
||||
version = "3.4.10";
|
||||
hash = "sha256-zjaM9YME0wfBOwhJTacnQbQvw35QL5NvXIBAx5d/bjI=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/DanielSanMedium.dscodegpt/changelog";
|
||||
description = "Easily connect to AI providers using their official APIs in VSCode";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=DanielSanMedium.dscodegpt";
|
||||
homepage = "https://codegpt.co";
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = [ lib.maintainers.onny ];
|
||||
};
|
||||
};
|
||||
|
||||
daohong-emilio.yash = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
publisher = "daohong-emilio";
|
||||
|
||||
@@ -11,16 +11,6 @@ index b51fd0075e..87ee317e05 100644
|
||||
IF(_pyqt5_metadata)
|
||||
FILE(READ ${_pyqt5_metadata} _pyqt5_metadata_contents)
|
||||
STRING(REGEX REPLACE ".*\nVersion: ([^\n]+).*$" "\\1" PYQT5_VERSION_STR ${_pyqt5_metadata_contents})
|
||||
@@ -34,8 +34,8 @@ ELSE(EXISTS PYQT5_VERSION_STR)
|
||||
ENDIF(_pyqt5_metadata)
|
||||
|
||||
IF(PYQT5_VERSION_STR)
|
||||
- SET(PYQT5_MOD_DIR "${Python_SITEARCH}/PyQt5")
|
||||
- SET(PYQT5_SIP_DIR "${Python_SITEARCH}/PyQt5/bindings")
|
||||
+ SET(PYQT5_MOD_DIR "@pyQt5PackageDir@/PyQt5")
|
||||
+ SET(PYQT5_SIP_DIR "@pyQt5PackageDir@/PyQt5/bindings")
|
||||
FIND_PROGRAM(__pyuic5 "pyuic5")
|
||||
GET_FILENAME_COMPONENT(PYQT5_BIN_DIR ${__pyuic5} DIRECTORY)
|
||||
|
||||
diff --git a/cmake/FindQsci.cmake b/cmake/FindQsci.cmake
|
||||
index 69e41c1fe9..5456c3d59b 100644
|
||||
|
||||
@@ -77,14 +77,14 @@ let
|
||||
urllib3
|
||||
];
|
||||
in mkDerivation rec {
|
||||
version = "3.34.7";
|
||||
version = "3.34.8";
|
||||
pname = "qgis-ltr-unwrapped";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qgis";
|
||||
repo = "QGIS";
|
||||
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
||||
hash = "sha256-6fIBmIoCVo0AtkjC4Vn3jMjz93gZmvkFAgo+KnasyXo=";
|
||||
hash = "sha256-UeyGx+C7szXv++hXFV006Xk4oSKfSj4teJIwaD4ODVk=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
@@ -147,9 +147,7 @@ in mkDerivation rec {
|
||||
|
||||
# Add path to Qt platform plugins
|
||||
# (offscreen is needed by "${APIS_SRC_DIR}/generate_console_pap.py")
|
||||
preBuild = ''
|
||||
export QT_QPA_PLATFORM_PLUGIN_PATH=${qtbase.bin}/lib/qt-${qtbase.version}/plugins/platforms
|
||||
'';
|
||||
env.QT_QPA_PLATFORM_PLUGIN_PATH="${qtbase}/${qtbase.qtPluginPrefix}/platforms";
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_BUILD_TYPE=Release"
|
||||
@@ -164,7 +162,7 @@ in mkDerivation rec {
|
||||
);
|
||||
|
||||
qtWrapperArgs = [
|
||||
"--set QT_QPA_PLATFORM_PLUGIN_PATH ${qtbase.bin}/lib/qt-${qtbase.version}/plugins/platforms"
|
||||
"--set QT_QPA_PLATFORM_PLUGIN_PATH ${qtbase}/${qtbase.qtPluginPrefix}/platforms"
|
||||
];
|
||||
|
||||
dontWrapGApps = true; # wrapper params passed below
|
||||
|
||||
@@ -78,14 +78,14 @@ let
|
||||
urllib3
|
||||
];
|
||||
in mkDerivation rec {
|
||||
version = "3.36.3";
|
||||
version = "3.38.0";
|
||||
pname = "qgis-unwrapped";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qgis";
|
||||
repo = "QGIS";
|
||||
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
||||
hash = "sha256-uPyW/zzoyyd3SXvP+h9joJEv9DjRNJSaorx1rNmAaFQ=";
|
||||
hash = "sha256-vL9Go8Kn6VFOeztD/LZi5QHpZVPFfOFarTsCLTf4D2s=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
@@ -148,15 +148,14 @@ in mkDerivation rec {
|
||||
|
||||
# Add path to Qt platform plugins
|
||||
# (offscreen is needed by "${APIS_SRC_DIR}/generate_console_pap.py")
|
||||
preBuild = ''
|
||||
export QT_QPA_PLATFORM_PLUGIN_PATH=${qtbase.bin}/lib/qt-${qtbase.version}/plugins/platforms
|
||||
'';
|
||||
env.QT_QPA_PLATFORM_PLUGIN_PATH="${qtbase}/${qtbase.qtPluginPrefix}/platforms";
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_BUILD_TYPE=Release"
|
||||
"-DWITH_3D=True"
|
||||
"-DWITH_PDAL=True"
|
||||
"-DENABLE_TESTS=False"
|
||||
"-DQT_PLUGINS_DIR=${qtbase}/${qtbase.qtPluginPrefix}"
|
||||
] ++ lib.optional (!withWebKit) "-DWITH_QTWEBKIT=OFF"
|
||||
++ lib.optional withGrass (let
|
||||
gmajor = lib.versions.major grass.version;
|
||||
@@ -165,7 +164,7 @@ in mkDerivation rec {
|
||||
);
|
||||
|
||||
qtWrapperArgs = [
|
||||
"--set QT_QPA_PLATFORM_PLUGIN_PATH ${qtbase.bin}/lib/qt-${qtbase.version}/plugins/platforms"
|
||||
"--set QT_QPA_PLATFORM_PLUGIN_PATH ${qtbase}/${qtbase.qtPluginPrefix}/platforms"
|
||||
];
|
||||
|
||||
dontWrapGApps = true; # wrapper params passed below
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "komikku";
|
||||
version = "1.48.1";
|
||||
version = "1.49.0";
|
||||
|
||||
format = "other";
|
||||
|
||||
@@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
owner = "valos";
|
||||
repo = "Komikku";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-U4MmVK75tPYJStJ0RRjfbzSbpGLJ07rJg6ClHI+tAfM=";
|
||||
hash = "sha256-AMlhhsbwLhofV/Sy/EXuE4l0UAwZf2Gxn9+x3MHno4Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "dasel";
|
||||
version = "2.7.0";
|
||||
version = "2.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TomWright";
|
||||
repo = "dasel";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-N3WeU+8KJwYKvuN4I1ZNEtIgLTmh/XgnhwATwV7dsvY=";
|
||||
hash = "sha256-j9gwE/iLbBM8sdNZgc7hYnKhJEMkLn/g9HVlsKn4moo=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-G9IdTMF5Lnwq38rdJtuvUjD4RBaSmCYs3g+ETz29Mec=";
|
||||
vendorHash = "sha256-edyFs5oURklkqsTF7JA1in3XteSBx/6YEVu4MjIcGN4=";
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w" "-X github.com/tomwright/dasel/v2/internal.Version=${version}"
|
||||
|
||||
@@ -116,13 +116,13 @@ let
|
||||
self: super: {
|
||||
octoprint = self.buildPythonPackage rec {
|
||||
pname = "OctoPrint";
|
||||
version = "1.10.1";
|
||||
version = "1.10.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OctoPrint";
|
||||
repo = "OctoPrint";
|
||||
rev = version;
|
||||
hash = "sha256-kJTYIsbNr6cLzti8yg+IlXjbKwXuwumE3Wydy+oTeK4=";
|
||||
hash = "sha256-vISMps2v18A7MkF24SyIcK5yOQsTxBQLnKybVd8R2FU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with self; [
|
||||
|
||||
@@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
|
||||
installFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
|
||||
passthru.updateScript = gitUpdater {
|
||||
ignoredVersions = "^([^1]|1[^.])"; # ignore anything other than 1.x
|
||||
allowedVersions = "^1\\.";
|
||||
url = src.gitRepoUrl;
|
||||
};
|
||||
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
|
||||
buildGo122Module rec {
|
||||
pname = "helm-diff";
|
||||
version = "3.9.5";
|
||||
version = "3.9.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "databus23";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-6XkiGSbZzkYnqaHcoZQckADGVcWmSWL87MVzqb98lMQ=";
|
||||
hash = "sha256-HGQTnvtL9hksy0B9U6jK8kkyoc3g0lmuBRV3vsg9Yao=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-E0ERop/TBr36sfTKCD+DdZwHSkhYdGmvKoJF2gl3gwE=";
|
||||
vendorHash = "sha256-4bYepEVeVg+X0WicktE8BorwgsLGh2cZUn8rgfMExpk=";
|
||||
|
||||
ldflags = [ "-s" "-w" "-X github.com/databus23/helm-diff/v3/cmd.Version=${version}" ];
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ lib, stdenv, fetchFromGitHub, makeWrapper, coreutils, findutils, getopt, gnugrep, gnused, sops, vault }:
|
||||
{ lib, stdenv, fetchFromGitHub, makeWrapper, coreutils, findutils, getopt, gnugrep, gnused, sops }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "helm-secrets";
|
||||
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
||||
install -m644 -Dt $out/${pname} plugin.yaml
|
||||
cp -r scripts/* $out/${pname}/scripts
|
||||
wrapProgram $out/${pname}/scripts/run.sh \
|
||||
--prefix PATH : ${lib.makeBinPath [ coreutils findutils getopt gnugrep gnused sops vault ]}
|
||||
--prefix PATH : ${lib.makeBinPath [ coreutils findutils getopt gnugrep gnused sops ]}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "istioctl";
|
||||
version = "1.22.1";
|
||||
version = "1.22.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "istio";
|
||||
repo = "istio";
|
||||
rev = version;
|
||||
hash = "sha256-KU0AvGecEvbkQ6PSjCMxpisx5UsFr1gLYXL4GzJ6zrU=";
|
||||
hash = "sha256-tw9G7VhrBMdSbZ4ZZgMlKEDfhZE5dSPd2HUgfkDA8vo=";
|
||||
};
|
||||
vendorHash = "sha256-arY8RLlHCPgRWnk6LLXlORiLr7afJj4OhfPMA+9UQ0M=";
|
||||
vendorHash = "sha256-Fso55G5j8MUQSqhCr6BT8epwgV1NznQXkPPQFL9TZFw=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "k0sctl";
|
||||
version = "0.18.0";
|
||||
version = "0.18.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "k0sproject";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-bFNlNNc5PGim2yCX8YmWzPp1EzMrsSF3d/E+mf9Pw20=";
|
||||
hash = "sha256-lZCD8hBe6SKKjTvEKNg/lr7NXrAPqFQoh9iQg0O6jhc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-pKvb7pKuGfa8Y+FvLwyWcYuuSszLin2+jFCQ7cPkkwQ=";
|
||||
vendorHash = "sha256-FobBn7rbRVfnW8Zd982vkSuKpPj4gGK4b41o9OK/CCY=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -77,7 +77,7 @@ in
|
||||
};
|
||||
spark_3_4 = spark rec {
|
||||
pname = "spark";
|
||||
version = "3.4.2";
|
||||
hash = "sha256-qr0tRuzzEcarJznrQYkaQzGqI7tugp/XJpoZxL7tJwk=";
|
||||
version = "3.4.3";
|
||||
hash = "sha256-ifeytk08oaEyiEawwWbUWWuoynGTJNvnrkOW/CjeaSk=";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub, go_1_21 }:
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "terraform-docs";
|
||||
version = "0.17.0";
|
||||
|
||||
go = go_1_21;
|
||||
version = "0.18.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "terraform-docs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-HkkW6JX5wcGElmr6CiSukyeS/8rz4CUThy8rZfx4hbo=";
|
||||
hash = "sha256-XZS+mGp2QsrKS3fPZd0ja4w/CAfPcyzSgwolQ+StER0=";
|
||||
};
|
||||
|
||||
patches = [ ./update-to-go-1.21.patch ];
|
||||
|
||||
vendorHash = "sha256-ZHWAiXJG8vCmUkf6GNxoIJbIEjEWukLdrmdIb64QleI=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
vendorHash = "sha256-aweKTHQBYYqSp8CymwhnVv1WNQ7cZ1/bJNz7DSo7PKc=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Utility to generate documentation from Terraform modules in various output formats";
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,52 +2,52 @@
|
||||
let
|
||||
versions =
|
||||
if stdenv.isLinux then {
|
||||
stable = "0.0.56";
|
||||
ptb = "0.0.90";
|
||||
canary = "0.0.431";
|
||||
development = "0.0.19";
|
||||
stable = "0.0.58";
|
||||
ptb = "0.0.92";
|
||||
canary = "0.0.438";
|
||||
development = "0.0.21";
|
||||
} else {
|
||||
stable = "0.0.307";
|
||||
ptb = "0.0.119";
|
||||
canary = "0.0.531";
|
||||
development = "0.0.41";
|
||||
stable = "0.0.309";
|
||||
ptb = "0.0.121";
|
||||
canary = "0.0.547";
|
||||
development = "0.0.43";
|
||||
};
|
||||
version = versions.${branch};
|
||||
srcs = rec {
|
||||
x86_64-linux = {
|
||||
stable = fetchurl {
|
||||
url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
|
||||
hash = "sha256-HpdsvzWtB4AoqZXf7LV0J50/OQDsYgK8bkQ1HGvu7Ec=";
|
||||
hash = "sha256-YkyniFgkD4GMxUya+/Ke5fxosZKHKyc4+cAx3HI4w8c=";
|
||||
};
|
||||
ptb = fetchurl {
|
||||
url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
|
||||
hash = "sha256-75YnLhgNTd7pwpTE9qSIF0rzBwmGJ/CYa+YgN3OQZ2w=";
|
||||
hash = "sha256-1HbTRWl1w9cu7D4NNFGVbHk1hvRmMywH+q2qA4+nokc=";
|
||||
};
|
||||
canary = fetchurl {
|
||||
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
|
||||
hash = "sha256-59Sv3U3osfk+QoXgorpqK7CU0nJBdpFOMkoGRgHN3v8=";
|
||||
hash = "sha256-z2SsI1vmaW1HjBDkJEH468xPuyAqigOIbRDtaL4Lgxc=";
|
||||
};
|
||||
development = fetchurl {
|
||||
url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
|
||||
hash = "sha256-RP6SUM4DW3JhddSbJX6Xg8EE4iqCkSOgBL1oa7Zwp/E=";
|
||||
hash = "sha256-LgRrQ2z0/mx9Xvkb7hOrhmOqaETiBITgJDO9vce/wtk=";
|
||||
};
|
||||
};
|
||||
x86_64-darwin = {
|
||||
stable = fetchurl {
|
||||
url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
|
||||
hash = "sha256-FBYxQhtwctMQ8ByOgAVncWh5297k1Vh95w/rWnZg9Fw=";
|
||||
hash = "sha256-9Tfn+dxvhgNjSdfj8Irb/5VU3kn39DX6hdKkppJ6HeU=";
|
||||
};
|
||||
ptb = fetchurl {
|
||||
url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
|
||||
hash = "sha256-Y5t6ndecfRf3zVfYEvFGiFinQxRSa7VyfnkAors8VPY=";
|
||||
hash = "sha256-3Lk+kPZcBqznIELVMdA6dRpCOaOuRrchmfHv/EAyyOQ=";
|
||||
};
|
||||
canary = fetchurl {
|
||||
url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
|
||||
hash = "sha256-eMJ/OKi+k92QEk140UW3RIi5G/UFlR6mW9f8kPZbFaw=";
|
||||
hash = "sha256-ec2XF3023bQn/85i1xO8tTuYuprtsaL9exqRiZam36A=";
|
||||
};
|
||||
development = fetchurl {
|
||||
url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
|
||||
hash = "sha256-RiGyca/zjPpENgcq9KnRh5G4YArrUOQeueUdUBgZgjo=";
|
||||
hash = "sha256-PZS7LHJExi+fb7G4CnIFk4KQx9/cL4ALXwzOcLx4sWU=";
|
||||
};
|
||||
};
|
||||
aarch64-darwin = x86_64-darwin;
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "signalbackup-tools";
|
||||
version = "20240625";
|
||||
version = "20240627";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bepaald";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-sEuSVyfbHqljXz0mHX0loIkw/OCwcBXE/iGD+55GRng=";
|
||||
hash = "sha256-Kvz2Ft7gcvyQr8CxTZ7bHVn7q0yItGsK6/rChz0eras=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -13,11 +13,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "appflowy";
|
||||
version = "0.5.7";
|
||||
version = "0.6.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${version}/AppFlowy-${version}-linux-x86_64.tar.gz";
|
||||
hash = "sha256-SVtAx/yllHugBys506pT/5n6IDEZvPEeCHRjFHLMZ0A=";
|
||||
hash = "sha256-a8oupvBtT3sKhboSeS/GbVSauKXx54J4WZd+PyIbuzU=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "treesheets";
|
||||
version = "0-unstable-2024-06-20";
|
||||
version = "0-unstable-2024-06-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aardappel";
|
||||
repo = "treesheets";
|
||||
rev = "d363b4207281caaa6f3b84af93b0cd56c1855692";
|
||||
hash = "sha256-aZIt0DAGDQmIeLZHXjYao5CUhjLp9pjTiXJyoDi0kpQ=";
|
||||
rev = "91dea2ba714e9b1fb6ab660ddd295653218bdebc";
|
||||
hash = "sha256-pn+Ki60lBL+2sKXnhYEly8/Yi94mhiMDxTnWZi4ZFOk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "stellarium";
|
||||
version = "24.1";
|
||||
version = "24.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Stellarium";
|
||||
repo = "stellarium";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-t3eFmiG9X2cmnjc/PQwZ2bw1SCHaNRA83wiT1cPbKJc=";
|
||||
hash = "sha256-tqyLwlf8hugixZSsFCZPTtchO3VXk3m/nX1kuDoLOAY=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -59,6 +59,7 @@ let
|
||||
"8.19.0".sha256 = "sha256-ixsYCvCXpBHqJ71hLQklphlwoOO3i/6w2PJjllKqf9k=";
|
||||
"8.19.1".sha256 = "sha256-kmZ8Uk8jpzjOd67aAPp3C+vU2oNaBw9pr7+Uixcgg94=";
|
||||
"8.19.2".sha256 = "sha256-q+i07JsMZp83Gqav6v1jxsgPLN7sPvp5/oszVnavmz0=";
|
||||
"8.20+rc1".sha256 = "sha256-OLGPMvvA3hc42zdgWSOnOkN0/WwzBpneUcUVRNcNVms=";
|
||||
};
|
||||
releaseRev = v: "V${v}";
|
||||
fetched = import ../../../../build-support/coq/meta-fetch/default.nix
|
||||
|
||||
@@ -60,7 +60,5 @@ stdenv.mkDerivation rec {
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = [ maintainers.veprbl ];
|
||||
platforms = platforms.unix;
|
||||
# never built on aarch64-darwin since first introduction in nixpkgs
|
||||
broken = (stdenv.isDarwin && stdenv.isAarch64) || (stdenv.isLinux && stdenv.isAarch64);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, autoPatchelfHook
|
||||
, wrapQtAppsHook
|
||||
, hidapi
|
||||
, readline
|
||||
, qtsvg
|
||||
, qtxmlpatterns
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
autoPatchelfHook,
|
||||
wrapQtAppsHook,
|
||||
hidapi,
|
||||
readline,
|
||||
qtsvg,
|
||||
qtxmlpatterns,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "flirc";
|
||||
version = "3.27.10";
|
||||
version = "3.27.15";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://web.archive.org/web/20240110170238/http://apt.flirc.tv/arch/x86_64/flirc.latest.x86_64.tar.gz";
|
||||
hash = "sha256-iTr4vzFQ/+dsbsYD6sc8aTHctTkLKf5HnHBnO7cX5qc=";
|
||||
url = "https://web.archive.org/web/20240626115121/http://apt.flirc.tv/arch/x86_64/flirc.latest.x86_64.tar.gz";
|
||||
hash = "sha256-8bUsOsp5obJJdZU9QHfJnZKNAXJwi0nrHkSeDTE1Xa4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -46,6 +47,7 @@ stdenv.mkDerivation {
|
||||
maintainers = with maintainers; [ aanderse ];
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
license = licenses.unfree;
|
||||
mainProgram = "Flirc";
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -47,20 +47,20 @@ let
|
||||
callPackage
|
||||
(import ./generic.nix rec {
|
||||
pname = "singularity-ce";
|
||||
version = "4.1.3";
|
||||
version = "4.1.4";
|
||||
projectName = "singularity";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sylabs";
|
||||
repo = "singularity";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-pR8zyMr23wcbDCXAysVEgGUDHkrfhLoVF3fjMLgZFYs=";
|
||||
hash = "sha256-+qwPzgwfF6A1c/rmSM/5T2N9/wVeWhMoAthj3eSQmh8=";
|
||||
};
|
||||
|
||||
# Update by running
|
||||
# nix-prefetch -E "{ sha256 }: ((import ./. { }).singularity.override { vendorHash = sha256; }).goModules"
|
||||
# at the root directory of the Nixpkgs repository
|
||||
vendorHash = "sha256-332GFL04aE6B6vxgtJJH4TeI6YJCDBpCClJ3sc5gN3A=";
|
||||
vendorHash = "sha256-dTqOSk8APLOsqwEiZ/IL8Zu1SR48MyEYPgRe6PC2nd8=";
|
||||
|
||||
# Do not build conmon and squashfuse from the Git submodule sources,
|
||||
# Use Nixpkgs provided version
|
||||
|
||||
@@ -18,10 +18,10 @@ stdenvNoCC.mkDerivation (finalAttrs: let
|
||||
};
|
||||
in {
|
||||
pname = "affine";
|
||||
version = "0.14.3";
|
||||
version = "0.14.9";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/toeverything/AFFiNE/releases/download/v${finalAttrs.version}/affine-${finalAttrs.version}-stable-linux-x64.zip";
|
||||
hash = "sha256-/dKvRr0cH9mLF1y6FGFRDlsFXaymEmb55AZ37Ti0PU4=";
|
||||
hash = "sha256-JGWkmvcdgkvWDAffInzf2lUFHVjkU/a4m25f8BtQqZc=";
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
|
||||
@@ -1,36 +1,43 @@
|
||||
{ lib,
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
bc,
|
||||
util-linux,
|
||||
makeWrapper,
|
||||
runCommand,
|
||||
amber-lang
|
||||
amber-lang,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "amber-lang";
|
||||
version = "0.3.1-alpha";
|
||||
version = "0.3.3-alpha";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Ph0enixKM";
|
||||
repo = "Amber";
|
||||
rev = version;
|
||||
hash = "sha256-VSlLPgoi+KPnUQJEb6m0VZQVs1zkxEnfqs3fAp8m1o4=";
|
||||
hash = "sha256-Al1zTwQufuVGSlttf02s5uI3cyCNDShhzMT3l9Ctv3Y=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-NzcyX/1yeFcI80pNxx/OTkaI82qyQFJW8U0vPbqSU7g=";
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
||||
nativeCheckInputs = [ bc ];
|
||||
cargoHash = "sha256-HbkIkCVy2YI+nP5t01frXBhlp/rCsB6DwLL53AHJ4vE=";
|
||||
|
||||
preConfigure = ''
|
||||
substituteInPlace src/compiler.rs \
|
||||
--replace-fail "/bin/bash" "bash"
|
||||
--replace-fail 'Command::new("/usr/bin/env")' 'Command::new("env")'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
bc
|
||||
# 'rev' in generated bash script of test
|
||||
# tests::validity::variable_ref_function_invocation
|
||||
util-linux
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/amber" --prefix PATH : "${lib.makeBinPath [bc]}"
|
||||
wrapProgram "$out/bin/amber" --prefix PATH : "${lib.makeBinPath [ bc ]}"
|
||||
'';
|
||||
|
||||
passthru.tests.run = runCommand "amber-lang-eval-test" { nativeBuildInputs = [ amber-lang ]; } ''
|
||||
@@ -43,7 +50,11 @@ rustPlatform.buildRustPackage rec {
|
||||
homepage = "https://amber-lang.com";
|
||||
license = licenses.gpl3Plus;
|
||||
mainProgram = "amber";
|
||||
maintainers = with maintainers; [ cafkafk uncenter ];
|
||||
maintainers = with maintainers; [
|
||||
cafkafk
|
||||
uncenter
|
||||
aleksana
|
||||
];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "ananicy-rules-cachyos";
|
||||
version = "0-unstable-2024-06-19";
|
||||
version = "0-unstable-2024-06-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CachyOS";
|
||||
repo = "ananicy-rules";
|
||||
rev = "167915d1c6e4f46932a9857b1a4aeb3e813a8538";
|
||||
hash = "sha256-hIrjc80DuuENLbD5MxAku6aY05kdfXWLPSCSssadmr8=";
|
||||
rev = "049badd3263ed2af20c9e98b062f8c31cf74cec6";
|
||||
hash = "sha256-KEFXCaLZL3D7ue4W+MqODg/F633sU8JzDMKM2ebUoD8=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
+113
-140
@@ -1,106 +1,69 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, SDL2
|
||||
, callPackage
|
||||
, cmake
|
||||
, espeak-ng
|
||||
, ffmpeg
|
||||
, file
|
||||
, freetype
|
||||
, glib
|
||||
, gumbo
|
||||
, harfbuzz
|
||||
, jbig2dec
|
||||
, leptonica
|
||||
, libGL
|
||||
, libX11
|
||||
, libXau
|
||||
, libXcomposite
|
||||
, libXdmcp
|
||||
, libXfixes
|
||||
, libdrm
|
||||
, libffi
|
||||
, libjpeg
|
||||
, libusb1
|
||||
, libuvc
|
||||
, libvlc
|
||||
, libvncserver
|
||||
, libxcb
|
||||
, libxkbcommon
|
||||
, makeWrapper
|
||||
, mesa
|
||||
, mupdf
|
||||
, openal
|
||||
, openjpeg
|
||||
, pcre2
|
||||
, pkg-config
|
||||
, ruby
|
||||
, sqlite
|
||||
, tesseract
|
||||
, valgrind
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, xcbutil
|
||||
, xcbutilwm
|
||||
, xz
|
||||
, buildManPages ? true
|
||||
, useBuiltinLua ? true
|
||||
, useEspeak ? !stdenv.isDarwin
|
||||
, useStaticLibuvc ? true
|
||||
, useStaticOpenAL ? true
|
||||
, useStaticSqlite ? true
|
||||
, useTracy ? true
|
||||
{
|
||||
lib,
|
||||
SDL2,
|
||||
callPackage,
|
||||
cmake,
|
||||
espeak-ng,
|
||||
ffmpeg,
|
||||
file,
|
||||
freetype,
|
||||
glib,
|
||||
gumbo,
|
||||
harfbuzz,
|
||||
jbig2dec,
|
||||
leptonica,
|
||||
libGL,
|
||||
libX11,
|
||||
libXau,
|
||||
libXcomposite,
|
||||
libXdmcp,
|
||||
libXfixes,
|
||||
libdrm,
|
||||
libffi,
|
||||
libjpeg,
|
||||
libusb1,
|
||||
libuvc,
|
||||
libvlc,
|
||||
libvncserver,
|
||||
libxcb,
|
||||
libxkbcommon,
|
||||
makeWrapper,
|
||||
mesa,
|
||||
mupdf,
|
||||
openal,
|
||||
openjpeg,
|
||||
pcre2,
|
||||
pkg-config,
|
||||
ruby,
|
||||
sqlite,
|
||||
stdenv,
|
||||
tesseract,
|
||||
valgrind,
|
||||
wayland,
|
||||
wayland-protocols,
|
||||
xcbutil,
|
||||
xcbutilwm,
|
||||
xz,
|
||||
# Boolean flags
|
||||
buildManPages ? true,
|
||||
useBuiltinLua ? true,
|
||||
useEspeak ? !stdenv.isDarwin,
|
||||
useStaticLibuvc ? true,
|
||||
useStaticOpenAL ? true,
|
||||
useStaticSqlite ? true,
|
||||
useTracy ? true,
|
||||
# Configurable options
|
||||
sources ? callPackage ./sources.nix { },
|
||||
}:
|
||||
|
||||
let
|
||||
allSources = {
|
||||
letoram-arcan = {
|
||||
pname = "arcan";
|
||||
version = "0.6.2.1-unstable-2023-11-18";
|
||||
src = fetchFromGitHub {
|
||||
owner = "letoram";
|
||||
repo = "arcan";
|
||||
rev = "0950ee236f96a555729498d0fdf91c16901037f5";
|
||||
hash = "sha256-TxadRlidy4KRaQ4HunPO6ISJqm6JwnMRM8y6dX6vqJ4=";
|
||||
};
|
||||
};
|
||||
letoram-openal-src = fetchFromGitHub {
|
||||
owner = "letoram";
|
||||
repo = "openal";
|
||||
rev = "81e1b364339b6aa2b183f39fc16c55eb5857e97a";
|
||||
hash = "sha256-X3C3TDZPiOhdZdpApC4h4KeBiWFMxkFsmE3gQ1Rz420=";
|
||||
};
|
||||
libuvc-src = fetchFromGitHub {
|
||||
owner = "libuvc";
|
||||
repo = "libuvc";
|
||||
rev = "68d07a00e11d1944e27b7295ee69673239c00b4b";
|
||||
hash = "sha256-IdV18mnPTDBODpS1BXl4ulkFyf1PU2ZmuVGNOIdQwzE=";
|
||||
};
|
||||
luajit-src = fetchFromGitHub {
|
||||
owner = "LuaJIT";
|
||||
repo = "LuaJIT";
|
||||
rev = "656ecbcf8f669feb94e0d0ec4b4f59190bcd2e48";
|
||||
hash = "sha256-/gGQzHgYuWGqGjgpEl18Rbh3Sx2VP+zLlx4N9/hbYLc=";
|
||||
};
|
||||
tracy-src = fetchFromGitHub {
|
||||
owner = "wolfpld";
|
||||
repo = "tracy";
|
||||
rev = "93537dff336e0796b01262e8271e4d63bf39f195";
|
||||
hash = "sha256-FNB2zTbwk8hMNmhofz9GMts7dvH9phBRVIdgVjRcyQM=";
|
||||
};
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
inherit (allSources.letoram-arcan) pname version src;
|
||||
inherit (sources.letoram-arcan) pname version src;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
makeWrapper
|
||||
pkg-config
|
||||
] ++ lib.optionals buildManPages [
|
||||
ruby
|
||||
];
|
||||
] ++ lib.optionals buildManPages [ ruby ];
|
||||
|
||||
buildInputs = [
|
||||
SDL2
|
||||
@@ -140,47 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
xcbutil
|
||||
xcbutilwm
|
||||
xz
|
||||
]
|
||||
++ lib.optionals useEspeak [
|
||||
espeak-ng
|
||||
];
|
||||
|
||||
# Emulate external/git/clone.sh
|
||||
postUnpack = let
|
||||
inherit (allSources)
|
||||
letoram-openal-src libuvc-src luajit-src tracy-src;
|
||||
prepareSource = flag: source: destination:
|
||||
lib.optionalString flag ''
|
||||
cp -va ${source}/ ${destination}
|
||||
chmod --recursive 744 ${destination}
|
||||
'';
|
||||
in
|
||||
''
|
||||
pushd $sourceRoot/external/git/
|
||||
''
|
||||
+ prepareSource useStaticOpenAL letoram-openal-src "openal"
|
||||
+ prepareSource useStaticLibuvc libuvc-src "libuvc"
|
||||
+ prepareSource useBuiltinLua luajit-src "luajit"
|
||||
+ prepareSource useTracy tracy-src "tracy"
|
||||
+ ''
|
||||
popd
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace ./src/platform/posix/paths.c \
|
||||
--replace "/usr/bin" "$out/bin" \
|
||||
--replace "/usr/share" "$out/share"
|
||||
substituteInPlace ./src/CMakeLists.txt \
|
||||
--replace "SETUID" "# SETUID"
|
||||
'';
|
||||
|
||||
# INFO: Arcan build scripts require the manpages to be generated *before* the
|
||||
# `configure` phase
|
||||
preConfigure = lib.optionalString buildManPages ''
|
||||
pushd doc
|
||||
ruby docgen.rb mangen
|
||||
popd
|
||||
'';
|
||||
] ++ lib.optionals useEspeak [ espeak-ng ];
|
||||
|
||||
cmakeFlags = [
|
||||
# The upstream project recommends tagging the distribution
|
||||
@@ -195,11 +118,57 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"../src"
|
||||
];
|
||||
|
||||
hardeningDisable = [
|
||||
"format"
|
||||
];
|
||||
outputs = [ "out" "dev" "lib" "man" ];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
# Emulate external/git/clone.sh
|
||||
postUnpack =
|
||||
let
|
||||
inherit (sources)
|
||||
letoram-openal
|
||||
libuvc
|
||||
luajit
|
||||
tracy
|
||||
;
|
||||
prepareSource =
|
||||
flag: source: destination:
|
||||
lib.optionalString flag ''
|
||||
cp -va ${source}/ ${destination}
|
||||
chmod --recursive 744 ${destination}
|
||||
'';
|
||||
in
|
||||
''
|
||||
pushd $sourceRoot/external/git/
|
||||
''
|
||||
+ prepareSource useStaticOpenAL letoram-openal.src "openal"
|
||||
+ prepareSource useStaticLibuvc libuvc.src "libuvc"
|
||||
+ prepareSource useBuiltinLua luajit.src "luajit"
|
||||
+ prepareSource useTracy tracy.src "tracy"
|
||||
+ ''
|
||||
popd
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace ./src/platform/posix/paths.c \
|
||||
--replace-fail "/usr/bin" "$out/bin" \
|
||||
--replace-fail "/usr/share" "$out/share"
|
||||
substituteInPlace ./src/CMakeLists.txt \
|
||||
--replace-fail "SETUID" "# SETUID"
|
||||
'';
|
||||
|
||||
# INFO: Arcan build scripts require the manpages to be generated *before* the
|
||||
# `configure` phase
|
||||
preConfigure = lib.optionalString buildManPages ''
|
||||
pushd doc
|
||||
ruby docgen.rb mangen
|
||||
popd
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit sources;
|
||||
wrapper = callPackage ./wrapper.nix { };
|
||||
};
|
||||
|
||||
@@ -212,7 +181,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
e.g. game development, real-time streaming video, monitoring and
|
||||
surveillance, up to and including desktop compositors and window managers.
|
||||
'';
|
||||
license = with lib.licenses; [ bsd3 gpl2Plus lgpl2Plus ];
|
||||
license = with lib.licenses; [
|
||||
bsd3
|
||||
gpl2Plus
|
||||
lgpl2Plus
|
||||
];
|
||||
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
{
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
{
|
||||
letoram-arcan = let
|
||||
self = {
|
||||
pname = "arcan";
|
||||
version = "0.6.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "letoram";
|
||||
repo = "arcan";
|
||||
rev = self.version;
|
||||
hash = "sha256-ZSKOkNrFa2QgmXmmXnLkB1pehmVJbEFVeNs43Z2DSKo=";
|
||||
};
|
||||
};
|
||||
in
|
||||
self;
|
||||
|
||||
letoram-openal = {
|
||||
pname = "letoram-openal";
|
||||
version = "0.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "letoram";
|
||||
repo = "openal";
|
||||
rev = "81e1b364339b6aa2b183f39fc16c55eb5857e97a";
|
||||
hash = "sha256-X3C3TDZPiOhdZdpApC4h4KeBiWFMxkFsmE3gQ1Rz420=";
|
||||
};
|
||||
};
|
||||
|
||||
libuvc = {
|
||||
pname = "libuvc";
|
||||
version = "0.0.7-unstable-2024-03-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libuvc";
|
||||
repo = "libuvc";
|
||||
rev = "047920bcdfb1dac42424c90de5cc77dfc9fba04d";
|
||||
hash = "sha256-Ds4N9ezdO44eBszushQVvK0SUVDwxGkUty386VGqbT0=";
|
||||
};
|
||||
};
|
||||
|
||||
luajit = {
|
||||
pname = "luajit";
|
||||
version = "2.1-unstable-2024-04-19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LuaJIT";
|
||||
repo = "LuaJIT";
|
||||
rev = "9b5e837ac2dfdc0638830c048a47ca9378c504d3";
|
||||
hash = "sha256-GflF/sELSNanc9G4WMzoOadUBOFSs6OwqhAXa4sudWA=";
|
||||
};
|
||||
};
|
||||
|
||||
tracy = {
|
||||
pname = "tracy";
|
||||
version = "0.9.1-unstable-2023-10-09";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wolfpld";
|
||||
repo = "tracy";
|
||||
rev = "93537dff336e0796b01262e8271e4d63bf39f195";
|
||||
hash = "sha256-FNB2zTbwk8hMNmhofz9GMts7dvH9phBRVIdgVjRcyQM=";
|
||||
};
|
||||
};
|
||||
|
||||
letoram-tracy = {
|
||||
pname = "letoram-tracy";
|
||||
version = "0-unstable-2024-04-12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "letoram";
|
||||
repo = "tracy";
|
||||
rev = "5b3513d9838317bfc0e72344b94aa4443943c2fd";
|
||||
hash = "sha256-hUdYC4ziQ7V7T7k99MERp81F5mPHzFtPFrqReWsTjOQ=";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -64,7 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
url = "https://git.efficios.com/babeltrace.git";
|
||||
rev-prefix = "v";
|
||||
# Versions 2.x are packaged independently as babeltrace2
|
||||
ignoredVersions = "^[^1]";
|
||||
allowedVersions = "^1\\.";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
let
|
||||
pname = "beekeeper-studio";
|
||||
version = "4.6.0";
|
||||
version = "4.6.2";
|
||||
|
||||
plat = {
|
||||
aarch64-linux = "-arm64";
|
||||
@@ -16,7 +16,7 @@ let
|
||||
|
||||
hash = {
|
||||
aarch64-linux = "sha256-ZxqwxCON21S+RPG0/M2TtcI2Ave7ZT05lKQdyysQFUk=";
|
||||
x86_64-linux = "sha256-y4Muap7X4YyeIftRGC+NrDt3wjqOPi1lt+tsHhKmx4M=";
|
||||
x86_64-linux = "sha256-8sGFNoAsX+X3IJDXpwlYRt78nokauPYz88yDEYy6NP8=";
|
||||
}.${stdenv.hostPlatform.system};
|
||||
|
||||
src = fetchurl {
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
python3Packages,
|
||||
appstream,
|
||||
desktop-file-utils,
|
||||
glib,
|
||||
gobject-introspection,
|
||||
libadwaita,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
wrapGAppsHook4,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "binary";
|
||||
version = "0.3";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fizzyizzy05";
|
||||
repo = "binary";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-bR0oCqbnyUTCueT4f0Ij7qbwjNnN4eMDAOUK9MnCEJ0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream
|
||||
desktop-file-utils
|
||||
glib # need glib-compile-schemas
|
||||
gobject-introspection
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [ libadwaita ];
|
||||
|
||||
dependencies = with python3Packages; [ pygobject3 ];
|
||||
|
||||
dontWrapGApps = true;
|
||||
makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ];
|
||||
|
||||
meta = {
|
||||
description = "Small and simple app to convert numbers to a different base";
|
||||
homepage = "https://github.com/fizzyizzy05/binary";
|
||||
changelog = "https://github.com/fizzyizzy05/binary/releases/tag/${version}";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
mainProgram = "binary";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -11,11 +11,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "bmake";
|
||||
version = "20240520";
|
||||
version = "20240625";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.crufty.net/ftp/pub/sjg/bmake-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-IhDM1FWwCN95Ufbb00e/zBg3xGRzAU5LjdX/MJGuKJQ=";
|
||||
hash = "sha256-tcBsLyiWtOTZtERLFV3IWxXJDkAlPsw4iakspFevcWQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
, clangStdenv
|
||||
, gtk3
|
||||
, xorg
|
||||
, perl
|
||||
, openssl
|
||||
, speechd
|
||||
, libxkbcommon
|
||||
, libGL
|
||||
, wayland
|
||||
}:
|
||||
let
|
||||
rpathLibs = [
|
||||
speechd
|
||||
openssl
|
||||
gtk3
|
||||
libxkbcommon
|
||||
libGL
|
||||
|
||||
# WINIT_UNIX_BACKEND=wayland
|
||||
wayland
|
||||
|
||||
# WINIT_UNIX_BACKEND=x11
|
||||
xorg.libXcursor
|
||||
xorg.libXrandr
|
||||
xorg.libXi
|
||||
xorg.libX11
|
||||
xorg.libxcb
|
||||
];
|
||||
in
|
||||
rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
|
||||
pname = "BoilR";
|
||||
version = "1.9.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PhilipK";
|
||||
repo = "BoilR";
|
||||
rev = "v.${version}";
|
||||
hash = "sha256-bwCTsoZ/9TeO3wyEcOqxKePnj9glsDXWUBCLd3nVT80=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-nAZU1xVpeRXubotla4I6InGMH4lisPMOnoqaK5mBPCM=";
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
|
||||
buildInputs = rpathLibs;
|
||||
|
||||
postInstall = ''
|
||||
patchelf --add-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/boilr
|
||||
install -Dpm 0644 flatpak/io.github.philipk.boilr.desktop $out/share/applications/boilr.desktop
|
||||
install -Dpm 0644 resources/io.github.philipk.boilr.png $out/share/pixmaps/io.github.philipk.boilr.png
|
||||
'';
|
||||
|
||||
dontPatchELF = true;
|
||||
|
||||
meta = {
|
||||
description =
|
||||
"Automatically adds (almost) all your games to your Steam library (including image art)";
|
||||
homepage = "https://github.com/PhilipK/BoilR";
|
||||
license = with lib.licenses; [ asl20 mit ];
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ foolnotion ];
|
||||
mainProgram = "boilr";
|
||||
};
|
||||
}
|
||||
@@ -1,17 +1,18 @@
|
||||
{ lib
|
||||
, stdenvNoCC
|
||||
, fetchFromGitHub
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
stdenvNoCC,
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "cat9";
|
||||
version = "unstable-2023-11-06";
|
||||
version = "0-unstable-2024-06-17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "letoram";
|
||||
repo = "cat9";
|
||||
rev = "a807776a85237ab0bdd0a712fb33c176fc295e30";
|
||||
hash = "sha256-OlH8FgVBk76Qw+5mnsrryXOL9GbPJWlwUGtYlLuAPxQ=";
|
||||
rev = "f00e8791c1826065d4a93ace12e55ab5732d17a7";
|
||||
hash = "sha256-xFw6r7SQK0T5j7hVK3U39U2Q/qZow6Ad/R0Cl6nqUQw=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
@@ -21,13 +21,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "celluloid";
|
||||
version = "0.26";
|
||||
version = "0.27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "celluloid-player";
|
||||
repo = "celluloid";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-npaagLlkwDe0r0hqj7buM4B9sbLCX1sR2yFXXj+obdE=";
|
||||
hash = "sha256-zuYt7taIb4w3NIszUpnSYvLIdYQH492tBwhLa6IgWDw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "dbeaver-bin";
|
||||
version = "24.1.0";
|
||||
version = "24.1.1";
|
||||
|
||||
src =
|
||||
let
|
||||
@@ -25,10 +25,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
aarch64-darwin = "macos-aarch64.dmg";
|
||||
};
|
||||
hash = selectSystem {
|
||||
x86_64-linux = "sha256-cJcjUoZSpD87jy4GGIxMinZW4gxRZfcGO0GdGUGXI6g=";
|
||||
aarch64-linux = "sha256-96t/T/VzzzaSWJbPBb1CH2FXqfhiH1d0MjRoPsRMRwo=";
|
||||
x86_64-darwin = "sha256-8xqSL8fTveg1Y5huBTYZLyubajt27h4XUBzyYVF394A=";
|
||||
aarch64-darwin = "sha256-r7WqJrNF1IgQHx3Na1fGk0ywsfh5t4Dl/u8hH6CPuoE=";
|
||||
x86_64-linux = "sha256-33W7uDxzfAQ5gH10sI4IbzmHl8SxQLYj88C/BGOoRks=";
|
||||
aarch64-linux = "sha256-ZAr9vymCdLFAYiXEXtT+97x1tY5mrbr2N6INj4Bp4Nk=";
|
||||
x86_64-darwin = "sha256-dgOtufARRVmwtXl+csmr2sMBzDvq+5XRotOQrTz8jys=";
|
||||
aarch64-darwin = "sha256-R5TQJq+sRUFHH8EuaXgeSJUOnhepbCJLTUmO0FMOgzE=";
|
||||
};
|
||||
in
|
||||
fetchurl {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
SDL2,
|
||||
SDL2_image,
|
||||
SDL2_net,
|
||||
alsa-lib,
|
||||
darwin,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
fluidsynth,
|
||||
gitUpdater,
|
||||
glib,
|
||||
gtest,
|
||||
iir1,
|
||||
@@ -18,7 +18,6 @@
|
||||
libmt32emu,
|
||||
libogg,
|
||||
libpng,
|
||||
zlib-ng,
|
||||
libpulseaudio,
|
||||
libslirp,
|
||||
libsndfile,
|
||||
@@ -28,7 +27,9 @@
|
||||
opusfile,
|
||||
pkg-config,
|
||||
speexdsp,
|
||||
nix-update-script,
|
||||
stdenv,
|
||||
testers,
|
||||
zlib-ng,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -60,6 +61,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
SDL2
|
||||
SDL2_image
|
||||
SDL2_net
|
||||
fluidsynth
|
||||
glib
|
||||
iir1
|
||||
@@ -69,15 +73,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libmt32emu
|
||||
libogg
|
||||
libpng
|
||||
zlib-ng
|
||||
libpulseaudio
|
||||
libslirp
|
||||
libsndfile
|
||||
opusfile
|
||||
SDL2
|
||||
SDL2_image
|
||||
SDL2_net
|
||||
speexdsp
|
||||
zlib-ng
|
||||
]
|
||||
++ lib.optionals stdenv.isLinux [ alsa-lib ]
|
||||
++ lib.optionals stdenv.isDarwin (
|
||||
@@ -89,29 +90,40 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
]
|
||||
);
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm644 $src/contrib/linux/dosbox-staging.desktop $out/share/applications/
|
||||
'';
|
||||
|
||||
# Rename binary, add a wrapper, and copy manual to avoid conflict with
|
||||
# original dosbox. Doing it this way allows us to work with frontends and
|
||||
# launchers that expect the binary to be named dosbox, but get out of the way
|
||||
# of vanilla dosbox if the user desires to install that as well.
|
||||
postFixup = ''
|
||||
# Rename binary, add a wrapper, and copy manual to avoid conflict with
|
||||
# original dosbox. Doing it this way allows us to work with frontends and
|
||||
# launchers that expect the binary to be named dosbox, but get out of the
|
||||
# way of vanilla dosbox if the user desires to install that as well.
|
||||
mv $out/bin/dosbox $out/bin/dosbox-staging
|
||||
makeWrapper $out/bin/dosbox-staging $out/bin/dosbox
|
||||
|
||||
# Create a symlink to dosbox manual instead of copying it
|
||||
pushd $out/share/man/man1/
|
||||
pushd $man/share/man/man1/
|
||||
ln -s dosbox.1.gz dosbox-staging.1.gz
|
||||
popd
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
passthru = {
|
||||
tests = {
|
||||
version = testers.testVersion {
|
||||
package = finalAttrs.finalPackage;
|
||||
command = "dosbox --version";
|
||||
};
|
||||
};
|
||||
updateScript = gitUpdater {
|
||||
rev-prefix = "v";
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://dosbox-staging.github.io/";
|
||||
description = "Modernized DOS emulator";
|
||||
description = "Modernized DOS emulator; DOSBox fork";
|
||||
longDescription = ''
|
||||
DOSBox Staging is an attempt to revitalize DOSBox's development
|
||||
process. It's not a rewrite, but a continuation and improvement on the
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
{ lib
|
||||
, stdenvNoCC
|
||||
, fetchFromGitHub
|
||||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "durden";
|
||||
version = "unstable-2023-10-23";
|
||||
version = "0-unstable-2024-06-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "letoram";
|
||||
repo = "durden";
|
||||
rev = "347dba6da011bbaa70c6edaf82a2d915f4057db3";
|
||||
hash = "sha256-iNf7fOzz7mf1CXG5leCenkSTrdCc9/KL8VLw8gUIyKE=";
|
||||
rev = "dffb94b69355ffa9cda074c1d0a48af74b78c220";
|
||||
hash = "sha256-sBhlBk4vAYwedw4VerUfY80SXbVoEDid54si6qwDeXs=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
@@ -47,13 +47,13 @@ let
|
||||
in
|
||||
stdenv'.mkDerivation (finalAttrs: {
|
||||
pname = "fastfetch";
|
||||
version = "2.16.0";
|
||||
version = "2.17.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fastfetch-cli";
|
||||
repo = "fastfetch";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-dfgRRh8yJUDkMgl32ddx8iQElwRt0hCBsObud7rbTYQ=";
|
||||
hash = "sha256-QK3AlB6tT1pl2qNX/DWPQzpjs9+EhJO9gHtNTNOE41E=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.2.1";
|
||||
version = "0.11.0";
|
||||
gitSrc = fetchFromGitHub {
|
||||
owner = "glasskube";
|
||||
repo = "glasskube";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-yHktQZ/s3RYcRQd0U+0VTnLOMTyRmlny9RtAdfFT6J8=";
|
||||
hash = "sha256-onpW7YolM05C1BKb7vgH6Y2XFNbigRTueMqjzuFWERo=";
|
||||
};
|
||||
web-bundle = buildNpmPackage rec {
|
||||
inherit version;
|
||||
@@ -20,7 +20,7 @@ let
|
||||
|
||||
src = gitSrc;
|
||||
|
||||
npmDepsHash = "sha256-WKwEAVMG6r/ZFmxgLR+zJCW8F2DOHxpWDYqhX/vcdrs=";
|
||||
npmDepsHash = "sha256-V4lB+lgnurEo4BPVQDIYxdzKczPPDa6QEFaTAm+go88=";
|
||||
|
||||
dontNpmInstall = true;
|
||||
|
||||
@@ -40,7 +40,7 @@ in buildGoModule rec {
|
||||
|
||||
src = gitSrc;
|
||||
|
||||
vendorHash = "sha256-ADa3nQZ/5K9m0aB5NwGQpjqhGwAne5pN2Z5RUb3eEcU=";
|
||||
vendorHash = "sha256-besBympQMvdsD25nndyRkcA8v3wMQUb52VCwvtopgPc=";
|
||||
|
||||
CGO_ENABLED = 0;
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
lib,
|
||||
python3Packages,
|
||||
fetchPypi,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "hpp2plantuml";
|
||||
version = "0.8.5";
|
||||
format = "wheel";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version format;
|
||||
hash = "sha256-PfTJmBypI21AAK3sMojygQfrhnRqcMmVCW4dxGfDfQg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
jinja2
|
||||
cppheaderparser
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "hpp2plantuml" ];
|
||||
|
||||
nativeCheckInputs = with python3Packages; [ pytest ];
|
||||
|
||||
meta = {
|
||||
description = "Convert C++ header files to PlantUML";
|
||||
homepage = "https://github.com/thibaultmarin/hpp2plantuml";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "hpp2plantuml";
|
||||
maintainers = with lib.maintainers; [ eymeric ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
alsa-lib
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "hyprnotify";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "codelif";
|
||||
repo = "hyprnotify";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-dL+W+iMwRNw9042bs2XUFPMCCqIvDENXOMzhcLh+RL4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ alsa-lib ];
|
||||
|
||||
vendorHash = "sha256-AZDtaiSNq7em876Q9f+YeDxboqVwA8IE9dDM6zggFXs=";
|
||||
|
||||
meta = {
|
||||
description = "DBus Implementation of Freedesktop Notification spec for 'hyprctl notify'";
|
||||
homepage = "https://github.com/codelif/hyprnotify";
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ bloeckchengrafik ];
|
||||
mainProgram = "hyprnotify";
|
||||
};
|
||||
}
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "job-security";
|
||||
version = "unstable-0-2024-03-24";
|
||||
version = "0-unstable-2024-04-07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yshui";
|
||||
repo = "job-security";
|
||||
rev = "3881a4a0e66afe19cbdba3f43d0f85732796f977";
|
||||
hash = "sha256-mXmDzBsHdiim0bWrs0SvgtMZmKnYVz/RV9LNqPHHlnk=";
|
||||
rev = "9b621cb0be437c709e398d31934b864a09d2a1d5";
|
||||
hash = "sha256-KPnLVKz10SuVcG0CCFWxWnjhf9gHHPCRZw6AW9/gAmk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-W5evL36ByUUjvSwa3Nmf4MT2oZYoQ8kmchNOxUwmpuE=";
|
||||
cargoHash = "sha256-YwlI+Z3Zry3i3amz3DufvKzSS1Hrp2kPG76aH5tMJ2g=";
|
||||
|
||||
meta = {
|
||||
description = "Job control from anywhere";
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, extra-cmake-modules
|
||||
, cmake
|
||||
, unzip
|
||||
, libsForQt5
|
||||
, kdePackages
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "kshutdown";
|
||||
version = "5.91-beta";
|
||||
version = "5.92-beta";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/kshutdown/KShutdown/${finalAttrs.version}/kshutdown-source-${finalAttrs.version}.zip";
|
||||
hash = "sha256-gWXpVBhoZ57kaQV1C+xCBYc2gZjzJfFViD/SI9D+BRc=";
|
||||
hash = "sha256-EYgb2jeUoLNSPFIzlicnrmsccGc1nvoE5iDVt9x83ns=";
|
||||
name = "kshutdown-source-${finalAttrs.version}.zip";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ extra-cmake-modules unzip libsForQt5.wrapQtAppsHook ];
|
||||
nativeBuildInputs = [ cmake unzip kdePackages.wrapQtAppsHook ];
|
||||
|
||||
buildInputs = with libsForQt5; [ qtbase kxmlgui knotifyconfig kidletime ];
|
||||
buildInputs = with kdePackages; [ qtbase kxmlgui knotifyconfig kidletime kstatusnotifieritem ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://kshutdown.sourceforge.io/";
|
||||
@@ -29,4 +29,3 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
})
|
||||
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
appimageTools.wrapType2 rec {
|
||||
pname = "lunar-client";
|
||||
version = "3.2.10";
|
||||
version = "3.2.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
|
||||
hash = "sha512-XsHMe4+TeTowxnMRby4W44YRa3Q/OgDf2QOVMjPel4wy3O9TSfNBTzpP7NM07BKVDmNJ7GJrF8WMXewfT3YU8g==";
|
||||
hash = "sha512-qRucW9x4LMmTb8pw0zY1EKXkPfjdahCi2PN/bfdB8CYA4wZp0bfZNaGtPpI/BKPlnR/nfpypEdnHsoqlL9KiCg==";
|
||||
};
|
||||
|
||||
extraInstallCommands =
|
||||
|
||||
@@ -23,13 +23,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "melonDS";
|
||||
version = "0.9.5-unstable-2024-06-18";
|
||||
version = "0.9.5-unstable-2024-06-24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "melonDS-emu";
|
||||
repo = "melonDS";
|
||||
rev = "cbb0f4b872ea8a5e2348c7f1a22695056968192f";
|
||||
hash = "sha256-J1i7+VrOVQruHFhzjBnSf+DbmIa3o+rWISsdm8kMRC8=";
|
||||
rev = "db20771ef36bfa5bc0dc624cf245844507724107";
|
||||
hash = "sha256-XGDMA+0IOvl1UN2HgfLikpxHXl/p0z+Yv6fJs5xv08Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitLab
|
||||
, fetchpatch
|
||||
, glib
|
||||
, meson
|
||||
, ninja
|
||||
@@ -32,6 +33,13 @@ stdenv.mkDerivation rec {
|
||||
domain = "source.puri.sm";
|
||||
hash = "sha256-pRREQRYyD9+dpRvcfsNiNthFy08Yeup9xDn+x+RWDrE=";
|
||||
};
|
||||
patches = [
|
||||
# fix for https://source.puri.sm/Librem5/millipixels/-/issues/87, can be removed with the next release (if there ever will be one)
|
||||
(fetchpatch {
|
||||
url = "https://source.puri.sm/Librem5/millipixels/-/commit/5a0776993051a0af54c148702f36dbbf1064b917.patch?merge_request_iid=105";
|
||||
hash = "sha256-OdjTFHMx64eb94/kSCaxeM/Ju/JxOPoorw2ogwTPP3s=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
glib
|
||||
|
||||
@@ -13,7 +13,7 @@ stdenvNoCC.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ThaUnknown/miru/releases/download/v${version}/mac-Miru-${version}-mac.zip";
|
||||
hash = "sha256-OakGB5Fz1Tlxa/Uu7xHlKoEF9VRfWFQ9CjsR0eCRyQw=";
|
||||
hash = "sha256-N4+WDXhu62QUFqdCcPPfYEOd2OImg/Moj+UT0xK2oGE=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
@@ -13,7 +13,7 @@ appimageTools.wrapType2 rec {
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ThaUnknown/miru/releases/download/v${version}/linux-Miru-${version}.AppImage";
|
||||
name = "${pname}-${version}.AppImage";
|
||||
sha256 = "sha256-aPutbJthUhZtBYkYuUB5v88OdhOrcnqw4AhnepfO1B4=";
|
||||
sha256 = "sha256-wnqCKnZKt0Fj8TasdRVzI558W7aIB5FLkcDEiZfz3ZQ=";
|
||||
};
|
||||
|
||||
extraInstallCommands =
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
}:
|
||||
let
|
||||
pname = "miru";
|
||||
version = "5.1.4";
|
||||
version = "5.1.6";
|
||||
meta = with lib; {
|
||||
description = "Stream anime torrents, real-time with no waiting for downloads";
|
||||
homepage = "https://miru.watch";
|
||||
|
||||
@@ -23,13 +23,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mold";
|
||||
version = "2.32.0";
|
||||
version = "2.32.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rui314";
|
||||
repo = "mold";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-0cidxsr7mZLtEMSXc+ZFH9l3pXNi4Fyv27XDks+th/I=";
|
||||
hash = "sha256-pKq4Vw7vPoT76OvCAeh+XEwI5klz2LPxXAWsr+RsTeU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -38,13 +38,13 @@ let
|
||||
in
|
||||
php.buildComposerProject (finalAttrs: {
|
||||
pname = "movim";
|
||||
version = "0.24.1";
|
||||
version = "0.25.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "movim";
|
||||
repo = "movim";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
hash = "sha256-Ai82d1VwtAlKmM8N/hazMWsn5F6HS4I1do3VkpLPlBo=";
|
||||
hash = "sha256-VshDFHDCfemHS/TN5qEe8CGizZksf44xENSmvX44uAc=";
|
||||
};
|
||||
|
||||
php = php.buildEnv ({
|
||||
@@ -67,7 +67,7 @@ php.buildComposerProject (finalAttrs: {
|
||||
# pinned commonmark
|
||||
composerStrictValidation = false;
|
||||
|
||||
vendorHash = "sha256-1sQm+eRrs9m52CepPXahsOJhyLZ68+FIDNHyY33IoD4=";
|
||||
vendorHash = "sha256-nxbsw0re/7zKhpWxtA8JAf7JL3RLghqaYsi4rkM6VZg=";
|
||||
|
||||
postPatch = ''
|
||||
# Our modules are already wrapped, removes missing *.so warnings;
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "omnictl";
|
||||
version = "0.38.1";
|
||||
version = "0.38.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "siderolabs";
|
||||
repo = "omni";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-fPhirFk6JIybBnDwcvYC/oWizhQSEGsosFuh+n/r/Pg=";
|
||||
hash = "sha256-Qm5Q+yZq6m/3xAAMdz57fXC13lLDMu5GY1xs5vHAFoo=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-BF/F/siVIYJT4abOlwQjpnQpmNFdOo566VGPIo08PO0=";
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "ocb";
|
||||
version = "0.101.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-telemetry";
|
||||
repo = "opentelemetry-collector";
|
||||
rev = "cmd/builder/v${version}";
|
||||
hash = "sha256-Ucp00OjyPtHA6so/NOzTLtPSuhXwz6A2708w2WIZb/E=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/cmd/builder";
|
||||
vendorHash = "sha256-MTwD9xkrq3EudppLSoONgcPCBWlbSmaODLH9NtYgVOk=";
|
||||
|
||||
CGO_ENABLED = 0;
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X go.opentelemetry.io/collector/cmd/builder/internal.version=${version}"
|
||||
];
|
||||
|
||||
# The TestGenerateAndCompile tests download new dependencies for a modified go.mod. Nix doesn't allow network access so skipping.
|
||||
checkFlags = [ "-skip TestGenerateAndCompile" ];
|
||||
|
||||
# Rename the to ocb (it's generated as "builder")
|
||||
postInstall = ''
|
||||
mv $out/bin/builder $out/bin/ocb
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "OpenTelemetry Collector";
|
||||
homepage = "https://github.com/open-telemetry/opentelemetry-collector.git";
|
||||
changelog = "https://github.com/open-telemetry/opentelemetry-collector/blob/${src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ davsanchez ];
|
||||
mainProgram = "ocb";
|
||||
};
|
||||
}
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "piv-agent";
|
||||
version = "0.21.0";
|
||||
version = "0.21.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "smlx";
|
||||
repo = "piv-agent";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-aukcnubhB8kbAl22eeFKzLPvVcYdgcEQ1gy3n6KWG00=";
|
||||
hash = "sha256-M6klwP85Ujd/DtWh4AwCVrqk6GYqxdz0DrnKKbmdtX4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-1d6EKEvo4XNDXRtbdnKkqyF9y0LPPHWKu9X/wYnbmas=";
|
||||
vendorHash = "sha256-L5HuTYA01w3LUtSy7OVxG6QN5uQZ8LVYyrBcJQTkIUA=";
|
||||
|
||||
subPackages = [ "cmd/piv-agent" ];
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
{ lib, stdenvNoCC, fetchFromGitHub }:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "posy-cursors";
|
||||
version = "1.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "simtrami";
|
||||
repo = "posy-improved-cursor-linux";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-i0N/QB5uzqHapMCDl6h6PWPJ4GOAyB1ds9qlqmZacLY=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/icons
|
||||
cp -r Posy_Cursor* $out/share/icons
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Posy's Improved Cursors for Linux";
|
||||
homepage = "https://github.com/simtrami/posy-improved-cursor-linux";
|
||||
platforms = platforms.unix;
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ mkez ];
|
||||
};
|
||||
}
|
||||
@@ -7,11 +7,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "quarkus-cli";
|
||||
version = "3.11.2";
|
||||
version = "3.11.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/quarkusio/quarkus/releases/download/${finalAttrs.version}/quarkus-cli-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-z8mQo9Kl7HvIl+8GDEcuPdRkVmKUX5/V6X4qvRTe6t4=";
|
||||
hash = "sha256-cZZoGU7v3SKe3dvYUR5T8jKwAkLnDJt+SWYzgMmdJwA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "redka";
|
||||
version = "0.5.1";
|
||||
version = "0.5.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nalgeon";
|
||||
repo = "redka";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-URPuAltTh95hXePx5zW/bdP2woAoEsKRpf4DHBwzdw4=";
|
||||
hash = "sha256-KpfXnhwz3uUdG89XdNqm1WyKwYhA5ImDg4DzzefKMz8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-aX0X6TWVEouo884LunCt+UzLyvDHgmvuxdV0wh0r7Ro=";
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication {
|
||||
pname = "renode-dts2repl";
|
||||
version = "0-unstable-2024-06-21";
|
||||
version = "0-unstable-2024-06-26";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "antmicro";
|
||||
repo = "dts2repl";
|
||||
rev = "57a24220c5be33b2974c885bbe2f680c3799f3ce";
|
||||
hash = "sha256-0KmJujGcsElzsVU0tsXtXLzh3oL8wBwai8gtxUu02H0=";
|
||||
rev = "e5e3c4150dd5cdb0d923a0a26d61060d18c77e75";
|
||||
hash = "sha256-ZNeKiORQAJxvm+EjzjlJh54YlwEz6F/mGQmdO9nbips=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,17 +6,17 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "rimgo";
|
||||
version = "1.2.3";
|
||||
version = "1.2.5";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "rimgo";
|
||||
repo = "rimgo";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-nokXM+lnTiaWKwglmFYLBpnGHJn1yFok76tqb0nulVA=";
|
||||
hash = "sha256-MSYTupt5f3ZjB84iLBp7bR+/nie1murpONKfXrBCu9Q=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-wDTSqfp1Bb1Jb9XX3A3/p5VUcjr5utpe6l/3pXfZpsg=";
|
||||
vendorHash = "sha256-nk1Pl9K62RjmBUgTlbp3u6cCoiEwpUHavfT3Oy0iyGU=";
|
||||
|
||||
nativeBuildInputs = [ tailwindcss ];
|
||||
|
||||
|
||||
@@ -2,27 +2,23 @@
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, stdenv
|
||||
, Security
|
||||
, SystemConfiguration
|
||||
, darwin
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "routinator";
|
||||
version = "0.13.2";
|
||||
version = "0.14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NLnetLabs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-DCejOfL+c04MABweyuvDLImlYKj/SONxBfXD/4OVzH0=";
|
||||
hash = "sha256-SUcAhXIPgYGFkUIgSrUJrxwWQvkkmWG/d12hv8+PQI0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-X+pAvudfbxng6kMv0NO00v6mMBXUMaXvZb/L1OgWd38=";
|
||||
cargoHash = "sha256-1JxAbQPCQqDVry3wGIdY4q18rzCXlJ7Dnc8LIvhkW1g=";
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
|
||||
|
||||
buildNoDefaultFeatures = true;
|
||||
buildFeatures = [ "socks" ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Security SystemConfiguration ]);
|
||||
|
||||
meta = with lib; {
|
||||
description = "RPKI Validator written in Rust";
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
let
|
||||
pname = "spotube";
|
||||
version = "3.6.0";
|
||||
version = "3.7.1";
|
||||
|
||||
meta = {
|
||||
description = "Open source, cross-platform Spotify client compatible across multiple platforms";
|
||||
@@ -53,7 +53,7 @@ let
|
||||
|
||||
src = fetchArtifact {
|
||||
filename = "Spotube-macos-universal.dmg";
|
||||
hash = "sha256-Qsr+66ToyLCCUwirj/7V6vzSNmx7BZ3O34liLx6AdlI=";
|
||||
hash = "sha256-EYgjVXO/ztIsVYzEHe14YgXbQTclQIht9Qqr8ewHU8w=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
@@ -77,7 +77,7 @@ let
|
||||
|
||||
src = fetchArtifact {
|
||||
filename = "Spotube-linux-x86_64.deb";
|
||||
hash = "sha256-dSFtjCuufrg5tG+FLgLgdx20WpO2s4wGOPtK+tel3dg=";
|
||||
hash = "sha256-JKp2RMYNfdBzywqlBpTaHL1iD+E71EL8xY+nzkdA3us=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -23,13 +23,13 @@ assert lib.elem lineEditingLibrary [
|
||||
];
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "trealla";
|
||||
version = "2.52.40";
|
||||
version = "2.53.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "trealla-prolog";
|
||||
repo = "trealla";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-jH1UNxlvnmM3Uv0y6MSh0fWcK4QRyJY+LRGoBb3G72U=";
|
||||
hash = "sha256-LquQDKgh1yZ0kUuLIDHM3b8Xe8mdh/ZjILGvnOMm+Os=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
buildGoModule rec {
|
||||
pname = "treefmt";
|
||||
version = "2.0.0-rc5";
|
||||
version = "2.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "numtide";
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, buildNpmPackage
|
||||
, fetchFromGitHub
|
||||
, buildPackages
|
||||
, libsecret
|
||||
, xcbuild
|
||||
, Security
|
||||
, AppKit
|
||||
, pkg-config
|
||||
, nodePackages
|
||||
, runCommand
|
||||
@@ -23,9 +27,17 @@ buildNpmPackage rec {
|
||||
|
||||
npmDepsHash = "sha256-DfeaiqKadTnGzOObK01ctlavwqTMa0tqn59sLZMPvUM=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config nodePackages.node-gyp ];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
nodePackages.node-gyp
|
||||
] ++ lib.optionals stdenv.isDarwin [ xcbuild ];
|
||||
|
||||
buildInputs = [ libsecret ];
|
||||
buildInputs =
|
||||
lib.optionals (!stdenv.isDarwin) [ libsecret ]
|
||||
++ lib.optionals stdenv.isDarwin [
|
||||
Security
|
||||
AppKit
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
${lib.getExe buildPackages.jq} '
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"darwin": {
|
||||
"hash": "sha256-qlABqTy4tQp++k7MFXOjZV562m4rnlDqYLDL2sd0/QE=",
|
||||
"version": "0.2024.06.18.08.02.stable_03"
|
||||
"hash": "sha256-vogQAVbtiw2/U3oJrTj8SUexkEsEfYvmGq50nzy5aYo=",
|
||||
"version": "0.2024.06.25.08.02.stable_01"
|
||||
},
|
||||
"linux": {
|
||||
"hash": "sha256-8/9VgkKU7VO7m0Mgx24vM2Bv6+yqcSlhPLZ1slCTCEc=",
|
||||
"version": "0.2024.06.18.08.02.stable_04"
|
||||
"hash": "sha256-Fc48bZzFBw9p636Mr8R+W/d1B3kIcOAu/Gd17nbzNfI=",
|
||||
"version": "0.2024.06.25.08.02.stable_01"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "whistle";
|
||||
version = "2.9.73";
|
||||
version = "2.9.76";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "avwo";
|
||||
repo = "whistle";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-KDw6axnjwMnXeTKaG2GIF2C4dKiZ/MW2q0SlZGlBIoI=";
|
||||
hash = "sha256-cE9I975QOuXusuRCVyhXcHJ1ItgqPKAylNMeVTSUl9Y=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-U7gZNKUIU3wS8DaVdxi1/Ik+dzwPfyoI3m//2MgPvt4=";
|
||||
npmDepsHash = "sha256-qqzmLr01rg6f1VpJlPrZ38BobVeAiEkiDk2jiXCpsX4=";
|
||||
|
||||
dontNpmBuild = true;
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256-YQHJ9sLHSV8GJP7IpRzmtDbeB86y/a48mLcYy4iDciw=";
|
||||
};
|
||||
|
||||
|
||||
buildInputs = [
|
||||
wayland
|
||||
wayland-protocols
|
||||
@@ -38,5 +37,6 @@ stdenv.mkDerivation rec {
|
||||
license = lib.licenses.mit;
|
||||
homepage = "https://github.com/0x5a4/wlinhibit";
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [_0x5a4];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,24 +5,16 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "wlr-layout-ui";
|
||||
version = "1.6.11";
|
||||
version = "1.6.14";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fdev31";
|
||||
repo = "wlr-layout-ui";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-aM8KV3jzim14lBVvn/AqUsfoRWrnKtRJeFSX1Thrq3M=";
|
||||
hash = "sha256-Qgg4fdxOVkADDOxmQgQFSF/wgrEQihoRNC9oXeQvaoI=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# The hyprland default.nix patches the version.h of hyprland so that the
|
||||
# version info moves to the commit key.
|
||||
substituteInPlace src/wlr_layout_ui/screens.py \
|
||||
--replace 'json.loads(subprocess.getoutput("hyprctl -j version"))["tag"]'\
|
||||
'json.loads(subprocess.getoutput("hyprctl -j version"))["commit"]'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3.pkgs.poetry-core
|
||||
];
|
||||
|
||||
Generated
+1
-1
@@ -13318,7 +13318,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zed"
|
||||
version = "0.141.2"
|
||||
version = "0.141.3"
|
||||
dependencies = [
|
||||
"activity_indicator",
|
||||
"anyhow",
|
||||
|
||||
@@ -35,13 +35,13 @@ assert withGLES -> stdenv.isLinux;
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "zed";
|
||||
version = "0.141.2";
|
||||
version = "0.141.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zed-industries";
|
||||
repo = "zed";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-pbflVG4JoXWZEf4Elmd4+RDb9uAaTsj+8lTaBGMaMdo=";
|
||||
hash = "sha256-D4wVHMNy7xESuEORULyKf3ZxFfRSKfWEXjBnjh3yBVU=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -160,17 +160,17 @@ rustPlatform.buildRustPackage rec {
|
||||
];
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "High-performance, multiplayer code editor from the creators of Atom and Tree-sitter";
|
||||
homepage = "https://zed.dev";
|
||||
changelog = "https://github.com/zed-industries/zed/releases/tag/v${version}";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [
|
||||
GaetanLepage
|
||||
niklaskorz
|
||||
];
|
||||
mainProgram = "zed";
|
||||
platforms = platforms.all;
|
||||
platforms = lib.platforms.all;
|
||||
# Currently broken on darwin: https://github.com/NixOS/nixpkgs/pull/303233#issuecomment-2048650618
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
{ pname ? null
|
||||
, version ? null
|
||||
, attrPath ? null
|
||||
, allowedVersions ? ""
|
||||
, ignoredVersions ? ""
|
||||
, rev-prefix ? ""
|
||||
, odd-unstable ? false
|
||||
@@ -15,6 +16,6 @@
|
||||
}:
|
||||
|
||||
genericUpdater {
|
||||
inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
|
||||
inherit pname version attrPath allowedVersions ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
|
||||
versionLister = "${common-updater-scripts}/bin/list-directory-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"} ${lib.optionalString (extraRegex != null) "--extra-regex=${lib.escapeShellArg extraRegex}"}";
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
, version ? null
|
||||
, attrPath ? null
|
||||
, versionLister
|
||||
, allowedVersions ? ""
|
||||
, ignoredVersions ? ""
|
||||
, rev-prefix ? ""
|
||||
, odd-unstable ? false
|
||||
@@ -37,10 +38,11 @@ let
|
||||
version="$3"
|
||||
attr_path="$4"
|
||||
version_lister="$5"
|
||||
ignored_versions="$6"
|
||||
rev_prefix="$7"
|
||||
odd_unstable="$8"
|
||||
patchlevel_unstable="$9"
|
||||
allowed_versions="$6"
|
||||
ignored_versions="$7"
|
||||
rev_prefix="$8"
|
||||
odd_unstable="$9"
|
||||
patchlevel_unstable="$${10}"
|
||||
|
||||
[[ -n "$name" ]] || name="$UPDATE_NIX_NAME"
|
||||
[[ -n "$pname" ]] || pname="$UPDATE_NIX_PNAME"
|
||||
@@ -52,7 +54,7 @@ let
|
||||
|
||||
function version_is_ignored() {
|
||||
local tag="$1"
|
||||
[ -n "$ignored_versions" ] && ${grep} -E "$ignored_versions" <<< "$tag"
|
||||
[ -n "$ignored_versions" ] && ${grep} -E -e "$ignored_versions" <<< "$tag"
|
||||
}
|
||||
|
||||
function version_is_unstable() {
|
||||
@@ -86,6 +88,9 @@ let
|
||||
tags=$(echo "$tags" | ${sed} -e "s,^$rev_prefix,,")
|
||||
fi
|
||||
tags=$(echo "$tags" | ${grep} "^[0-9]")
|
||||
if [ -n "$allowed_versions" ]; then
|
||||
tags=$(echo "$tags" | ${grep} -E -e "$allowed_versions")
|
||||
fi
|
||||
|
||||
# sort the tags in decreasing order
|
||||
tags=$(echo "$tags" | ${coreutils}/bin/sort --reverse --version-sort)
|
||||
@@ -127,7 +132,7 @@ let
|
||||
|
||||
in {
|
||||
name = "generic-update-script";
|
||||
command = [ updateScript name pname version attrPath versionLister ignoredVersions rev-prefix odd-unstable patchlevel-unstable ];
|
||||
command = [ updateScript name pname version attrPath versionLister allowedVersions ignoredVersions rev-prefix odd-unstable patchlevel-unstable ];
|
||||
supportedFeatures = [
|
||||
# Stdout must contain output according to the updateScript commit protocol when the update script finishes with a non-zero exit code.
|
||||
"commit"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
{ pname ? null
|
||||
, version ? null
|
||||
, attrPath ? null
|
||||
, allowedVersions ? ""
|
||||
, ignoredVersions ? ""
|
||||
, rev-prefix ? ""
|
||||
, odd-unstable ? false
|
||||
@@ -16,6 +17,6 @@
|
||||
}:
|
||||
|
||||
genericUpdater {
|
||||
inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
|
||||
inherit pname version attrPath allowedVersions ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
|
||||
versionLister = "${common-updater-scripts}/bin/list-git-tags ${lib.optionalString (url != null) "--url=${url}"}";
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
{ pname ? null
|
||||
, version ? null
|
||||
, attrPath ? null
|
||||
, allowedVersions ? ""
|
||||
, ignoredVersions ? ""
|
||||
, rev-prefix ? ""
|
||||
, odd-unstable ? false
|
||||
@@ -14,6 +15,6 @@
|
||||
}:
|
||||
|
||||
genericUpdater {
|
||||
inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
|
||||
inherit pname version attrPath allowedVersions ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
|
||||
versionLister = "${common-updater-scripts}/bin/list-archive-two-levels-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"}";
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "${name}-bin";
|
||||
version = "30.2.0";
|
||||
version = "30.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/PkgTTC-${name}-${version}.zip";
|
||||
|
||||
@@ -1,93 +1,93 @@
|
||||
# This file was autogenerated. DO NOT EDIT!
|
||||
{
|
||||
Iosevka = "16pmskxrr94cgjlqs4rsqqb9mqfaz5m79m6pch3lmivnjrvivg7g";
|
||||
IosevkaAile = "1sxm7lbcxvfadasqq17n379gnbivsmgxkkh8fhdymajzk71y6vhn";
|
||||
IosevkaCurly = "1na30nz2drdig4gvj8l76j2yhz3xggz8vhhmgjxbhq21qwv3lp6m";
|
||||
IosevkaCurlySlab = "0h58sj249nlwsi97mxs27mqn3brqcfg4ph7z8xlyxnxvgc76yz88";
|
||||
IosevkaEtoile = "1nvk1gk0jawnf1v0smrffy1f9v1jwkvg5ah86szwakjmlb4mqr81";
|
||||
IosevkaSlab = "0farri44jsrb0jjj2vlgc5p17nsz9agfa89xpnjw0njccipd95nj";
|
||||
IosevkaSS01 = "0ar951n923nfgyh4d040m0jkyks0csrvcgkbr2ki32qgijz1kf26";
|
||||
IosevkaSS02 = "13f20484xjc28ihx8705ms904n78qp5qq41jmlllbmgdycipba2z";
|
||||
IosevkaSS03 = "1kb7z5bcisx3k02wa682ikynh4s2vv5w7y1zs6qk7gy4gmhaxrhn";
|
||||
IosevkaSS04 = "0ga88f71y517qjb6dskhr8zdhflkl5bvafhv79wgbfffmqk4vpi5";
|
||||
IosevkaSS05 = "0fly6i9irqk092q89irg4yld3s5dx6k03yvibkkrybf369mjzx2h";
|
||||
IosevkaSS06 = "1j8j75468bncksfyf724yc00q5kcddp6q7kmjhnalxg69qjrpkzr";
|
||||
IosevkaSS07 = "03nm4rci5iscrlhncqdhcfcqkvgglg4hxh49yz5n5jcihci10q51";
|
||||
IosevkaSS08 = "0wd8bfra1da2g0c46qxjrjgx25c6mln4a0dxmal8bn1jk3glq1cb";
|
||||
IosevkaSS09 = "0sdw5s1ajbm6fd59xy5ap04s1g89sci2kvq5xfv695744g47lf4m";
|
||||
IosevkaSS10 = "1a9mfrszmv0vlwmjaznwdjgj8c3nippbj6n8py8ld72krs19l8hd";
|
||||
IosevkaSS11 = "0nnvaijqxh8qw88xw1i6migx8skqmq4rs5kls9kwjzy44wvgyly1";
|
||||
IosevkaSS12 = "06jrc9x3z43bdl3wmlfn4ai085p1ymv4wcb85qljzqq12c6adgy5";
|
||||
IosevkaSS13 = "1b18liyi90jy8ca5b9f6p2j8vvl1d8dvvhcxdi30km27s84i8psc";
|
||||
IosevkaSS14 = "15vnsnw21a09y4pzc37x5xizcyc68wj7vr4x6k33iv341m357149";
|
||||
IosevkaSS15 = "1vi4fkzk412g3qn1ba5g9r69k36i66n8xgymf14lf8y1wah46020";
|
||||
IosevkaSS16 = "0cj0j4kjz0fs629pimmhg1jqsxmmsr2m143j0m7nyjf4y4pdkpnm";
|
||||
IosevkaSS17 = "15v6m9wnkr366v1d9cbf9w7zz56x7qrz3265minaslx97lkplv1c";
|
||||
IosevkaSS18 = "0syh5lb9mymvmzn2sv0msncqblg8xx3akarbn2gdv5nb41p3d0hq";
|
||||
SGr-Iosevka = "1k76yvjr7ydzhl4vv4vp5qbchz0dj88s3d87rz6axsrc188xrbak";
|
||||
SGr-IosevkaCurly = "0wajxb8n3i0xr2figxx9p5anc6azqww6n374m301n6b6ln51bvcd";
|
||||
SGr-IosevkaCurlySlab = "05p38bzsqi5ip0y4rzg9fn79dximw0b1657ji956hw0kc37qqbr3";
|
||||
SGr-IosevkaFixed = "1g7asaiwzd26rpfnbg1ndbfljigbpw38fc4fyjdww3388fq82x3m";
|
||||
SGr-IosevkaFixedCurly = "0zwbpk1gm5s4shw8drx45hy31vzkgkcdqky4pw9n6vm61nc9sn1l";
|
||||
SGr-IosevkaFixedCurlySlab = "0rrl3pw8kcipbxib6z45scwnhxjg6b6yqmdrdsah8bl90xlrc1lz";
|
||||
SGr-IosevkaFixedSlab = "0rb009pd2q0azyla974s3a8knlvqq6v8kipsms6s99f7d9x9r9rq";
|
||||
SGr-IosevkaFixedSS01 = "1i9ph67brswkszr0fd7h5najrcy5nf1qap926z8gkcj45c4gqb84";
|
||||
SGr-IosevkaFixedSS02 = "0qfxad184zisq31y60h6y2wdxvnlb3ln0s4290bb1j3hwzvdb595";
|
||||
SGr-IosevkaFixedSS03 = "1d47z3ibpb3qdp5hxvbh8dw9h1mz5b2a6xk2m6rgansml2wzg193";
|
||||
SGr-IosevkaFixedSS04 = "15m34521y7w33qn7mxw6kvng6i0pbz5sldh0m2hj114ikdzsh5av";
|
||||
SGr-IosevkaFixedSS05 = "0pkq6w7riy7hgq2h0m12vnbn8qawsjn6bb613wdl3cnnqfnsh9lw";
|
||||
SGr-IosevkaFixedSS06 = "0bkdc3kc92s2nqqpd56j1llb9wlv11kj4dvw86n0646y18cg4g1r";
|
||||
SGr-IosevkaFixedSS07 = "1vg393dzmhypl4qwx519y9ybwy8m8222chdw4cjhhv9kay6n6mak";
|
||||
SGr-IosevkaFixedSS08 = "0f7l5qpwqwvy2lryv0vhq2zi06f5z9cbgq55ax40vqgaic2jygpr";
|
||||
SGr-IosevkaFixedSS09 = "08a7b72lkpzyvzn2wari2hsp3r69hhb48dpq83c1vyi9sh3vw4wz";
|
||||
SGr-IosevkaFixedSS10 = "1z72krj7cpyqnvbls3k30x68qff5rh5qm5fghw19kcsi6czvfqfd";
|
||||
SGr-IosevkaFixedSS11 = "0nr95yz5rkqw6a5bal83qkc5hdfs7x3vbz382hwci3wlid9iwrn4";
|
||||
SGr-IosevkaFixedSS12 = "1nhjwlxdxjafcsnqgrl8nrbccfmvhmc6is79zhh9lwqi0kjnim58";
|
||||
SGr-IosevkaFixedSS13 = "0mwmf6q3krwzff1wqwky8csylslh109axl2k1rdra2skvpyaiv0h";
|
||||
SGr-IosevkaFixedSS14 = "1nd5b829qg90wg393m6b1681lbn7fmcszssm2zv1bwwyz07j9s6r";
|
||||
SGr-IosevkaFixedSS15 = "02bfbj52bx2jy15n0dzqifcfg44qb9gx41qpz07rd52j7dscdxzh";
|
||||
SGr-IosevkaFixedSS16 = "1w9p08dcxj6mhym1hg0mphm3qiw72a25a6czzys9wdgzkhd0iy0r";
|
||||
SGr-IosevkaFixedSS17 = "0j10k0j3chnv0gmwx82nl13rdixfrbqdkjdhlx6lkfn8ifxwgd6p";
|
||||
SGr-IosevkaFixedSS18 = "0w3c35jjyyaf6983d3rsgawbymk7qy721r7g8diwgasxh73cbr3q";
|
||||
SGr-IosevkaSlab = "0jd5zhmrw6mpa198zrn4hlisi88caz36g2vs0b8dy5ivnmda852v";
|
||||
SGr-IosevkaSS01 = "1228z9vnqsmzjdbp4ym8hqqx2iis7cf2jw2nir04sd8vzjyxj8jy";
|
||||
SGr-IosevkaSS02 = "170xvgis66ikrf5ss2q32k22xfsfqh20fkg80g68dqfigy61mzp6";
|
||||
SGr-IosevkaSS03 = "0ld2k9krg5xr4zn7fnbvf08md4kbm0b2lv5vzvjn68n10jmhhyf5";
|
||||
SGr-IosevkaSS04 = "1a9d5nihfx2jydi986g8l0nlds3i0vk3c4av2jjyz5d1igfbibiw";
|
||||
SGr-IosevkaSS05 = "15m90fc038k74qrqa5cwxj8mkny056ry16az9m1ysqp20mficf94";
|
||||
SGr-IosevkaSS06 = "0qf7k6r5g1hqljkz3wswh7fqamxz67fn9afiaaaxq811lpp4430w";
|
||||
SGr-IosevkaSS07 = "118gnf2ybx7zy87am00z2lpgis2zy1bq95c7a6whcf8xmfcf8a8a";
|
||||
SGr-IosevkaSS08 = "15ab04a6k2g1lzn0lgar4pl8jalirhvq31w8sn66h8xjlwbazij4";
|
||||
SGr-IosevkaSS09 = "0fa6krkj6fz132b80yshxa28yprbkm0mdj5wzlbm043qldnv4rl4";
|
||||
SGr-IosevkaSS10 = "1ks28j176r59vj8ic30hzb8kqyr50sphlmmj52qn4xa7kyljbzav";
|
||||
SGr-IosevkaSS11 = "1lc4rc067r4ayacxrg9hx4xxaxg1yfmvl0cy0z9h5b8d2p8ybr29";
|
||||
SGr-IosevkaSS12 = "1sm75ssbximnk5yjczyvvmv664lf2qw9nqskw91mhp1bmr6jysms";
|
||||
SGr-IosevkaSS13 = "0s3f8rzmzaf1qrb3ydr6f6mm0avmagksrlqna83vrr8lmj3010v3";
|
||||
SGr-IosevkaSS14 = "13wc6nrndwzg31djsc2zhh98m16l6fw65h8i8kksqq2f5yn2dcps";
|
||||
SGr-IosevkaSS15 = "13sfr8lg6xwjb3vrd89lgc267ymjg785y0m6kayrjwzy03cr60hl";
|
||||
SGr-IosevkaSS16 = "040gn02mk4nbrna4p7ygkcjass61v9k3yvhskgyxyi8jj7zv9lps";
|
||||
SGr-IosevkaSS17 = "1sa5gki3qgj9x2xqyixj7kwy1sr04x3q0d3bk6dlxkx5vm4q1ikr";
|
||||
SGr-IosevkaSS18 = "00j5wag0db13s257iny7wf107409agr7w2wkqgnzdp17b0d0y93y";
|
||||
SGr-IosevkaTerm = "02dig9zq2xlpjwn4qkxs13i3pbz9wxf0jcp5cl5lx3dyl6s0yz5w";
|
||||
SGr-IosevkaTermCurly = "1r2zl2yxw2kdz015350p920i794r6d7jikg2x7vmxam6qdr235b7";
|
||||
SGr-IosevkaTermCurlySlab = "10smqh4wpqrayyy231fqqa69ycwvd1zkx69gpyxmksxp6vz1a92k";
|
||||
SGr-IosevkaTermSlab = "11qcg9k1lh6v9gbyb20qxqmp945r884zqhfvn5i56lfbhk8s5kv8";
|
||||
SGr-IosevkaTermSS01 = "1i0qdhk120dxp7wrp49vpill9dp8gw5jj9k3bfwvxs9169dac9a2";
|
||||
SGr-IosevkaTermSS02 = "0rlmn86kf2rjk3fg6znw92chfvkyw2cxiixwkyv04ghwad2wfj5w";
|
||||
SGr-IosevkaTermSS03 = "1njmx0vz7d9k911fmbl2bpdx8z1nxl724lfq4vi485yqpin0r2m6";
|
||||
SGr-IosevkaTermSS04 = "1s5j2hnl9ni5vc79rbaif5vad8mdqym7cws46jkk13a7r7fm4v2i";
|
||||
SGr-IosevkaTermSS05 = "1sr4x3jq2j2z5g1jh8qbxdlx5m35h23akyrh8prisqv4v5l0q4xr";
|
||||
SGr-IosevkaTermSS06 = "1wx2dqd8y4823jb9hq7gigam15jxidclsy5syqpr1a7h9ylx54jh";
|
||||
SGr-IosevkaTermSS07 = "021nmgixl6cbl4mh5r0w5zahn2nh6jpk06x57yqapzdvgx4fww8w";
|
||||
SGr-IosevkaTermSS08 = "1vc9632dqsvy8ffpi1a3bgc40ng4sczwvjax0gdkvfshwc2bxf9x";
|
||||
SGr-IosevkaTermSS09 = "0k55yj8vq0q9v5rl62brj3zwfrmz16yxdy3k2wg1vsh3ysa8ih6p";
|
||||
SGr-IosevkaTermSS10 = "0v628akln3ij6wcwkhfdsrhxgn05ilkprwif88bxyxrrlxwj1d0n";
|
||||
SGr-IosevkaTermSS11 = "10h9cyk532xjmnlaaaj7l82gvvmdh6p9gvmjz0cr15s6mmzp5l9z";
|
||||
SGr-IosevkaTermSS12 = "1ha0hi9zkl6khyjka99ix1c7wsfdc3ar33312x9pk89zha7sc5gh";
|
||||
SGr-IosevkaTermSS13 = "0157y4wdnb7vrqk4qgbchvxrh8986xqpf2af9h4dh6nbvyai6dpf";
|
||||
SGr-IosevkaTermSS14 = "10dsldq9gh8h2402xy4hx86715r6l7y8jfww65721jlwf081fqkn";
|
||||
SGr-IosevkaTermSS15 = "1h68804jn7wyggqz8bn7cfjjkp16ay0ywhffnprgnj4z33dv1431";
|
||||
SGr-IosevkaTermSS16 = "1lrclnhwzq1nlfrfhrsh1zkika7170y7c5miywra7wzzvjhsciwh";
|
||||
SGr-IosevkaTermSS17 = "109gnqymr98bb8bpckk0j205wp8b36zv4956z2x4lwqn1qxxq80r";
|
||||
SGr-IosevkaTermSS18 = "19al3fw5iayssikilk9x5apya74b63q84yyfz03ikss01z6170gm";
|
||||
Iosevka = "10vg87ifnx48vxmrcn0nz43lri10dzpgl24qfaj6vg1nwbywag3c";
|
||||
IosevkaAile = "1gym03y63x92vzisdy2x9sx3qbxvvpd70q6krlfp5zf7d3cph7fg";
|
||||
IosevkaCurly = "0bvdp99ybv0agx4n2qn78jsv8x8m86i44zvgp2h93lnji6dv67s7";
|
||||
IosevkaCurlySlab = "1mskl851z5wp3wwsxapbnq3gaarnmh4if0q6m7y3wb0c18s18f92";
|
||||
IosevkaEtoile = "10ccailwfmfjxzvk9lbns989dixqjbfdkw5j3fdkxvny07qviq54";
|
||||
IosevkaSlab = "0wnmm8hm4mis0pbqfma3qcd3rx08wgqi4f6ixg58vd9ds7a7rg8f";
|
||||
IosevkaSS01 = "19fhvx7r48mkzgadzpf1dh9w331cnjig70kyw8jzib9rlhca7y38";
|
||||
IosevkaSS02 = "0idwdmnfgq88l2rhlmlqkfbkrqhz35jqp902qc18sdwprwmj7kpz";
|
||||
IosevkaSS03 = "17scd42b67fylh5ws463793p3lakxhip8vfdk0z85z27x0yg97cc";
|
||||
IosevkaSS04 = "0p2bqkxnghkmvk84nb30vn3wl1ivfzb9s508hm0m3nzgj67mljf0";
|
||||
IosevkaSS05 = "0d6jfp83wcwx6v3rizss6z43kainv5zlrnsaya1m1n7qmpxgrj3p";
|
||||
IosevkaSS06 = "1b7s6ki4k0qqszznmsgf28vhqmx8vr3d1glbb87vqzgm59hfpcyk";
|
||||
IosevkaSS07 = "0hzf4byciw745gwzgr88pb5plaxrml5av4af84dw7qp1j4wzbamd";
|
||||
IosevkaSS08 = "0yismsjpgmb9s5rfvp4bz4dym48885pl7gf2mcv9dxwcly4wax5j";
|
||||
IosevkaSS09 = "1zcylrrs2q5w6160hd160ismmhjm835ki2j5r3axxzas9va6la4z";
|
||||
IosevkaSS10 = "0vh5nax33i0drw86vp2l13p5g13dfcc2py794spjda72pkdzvfiy";
|
||||
IosevkaSS11 = "12iw2vl0pz1bj2wnqjf9471rbg8bqrym56ziimdzknv5id033fbs";
|
||||
IosevkaSS12 = "017ipava1n37lyxd3a11rnabjjv28l975h1c2l2nramaqqa5pszx";
|
||||
IosevkaSS13 = "16mk6dc6rn362m1432fklllaqjadnlbdhl3faddlrf3mklwm1wlc";
|
||||
IosevkaSS14 = "0gzl2r4g3xn6y349wvr572s8cvc0cn7zyfp0s88pmnj632i5y0d9";
|
||||
IosevkaSS15 = "0rr15v2gyn01k4l4wq7w7fd3vqssnk03nf7zj4nf8f1az7dxskmh";
|
||||
IosevkaSS16 = "17l32p6yx888g4dgkbw8nj54d4a3b8rnqb5w2vaiickns851yh9c";
|
||||
IosevkaSS17 = "1rsrqbw1azwl0j0h88zlvsc0q0rlamw8j3kz910nsk3l4b8nicy4";
|
||||
IosevkaSS18 = "0l42b9zwm6xddf69lp1z273md3008a9gz8dnvf09ig6bmw1vp1rk";
|
||||
SGr-Iosevka = "0yda9880sg7jk5j1n36ji4w68l24s9prpaniya0jjyprylwfs7sh";
|
||||
SGr-IosevkaCurly = "1q2kmzjgxkhqwrai1zn3nhv0rf4xfi2f93j3w9zwlqc15v7ngn38";
|
||||
SGr-IosevkaCurlySlab = "1j170hxlk168hspnip9qvwjp44jb7i15swia8xy7ccb7jh6x28c8";
|
||||
SGr-IosevkaFixed = "1gmgwwa5rfqclncal5mir2iksirxzfjmfbcpn7qn4qhq9wms1j7x";
|
||||
SGr-IosevkaFixedCurly = "1ici7jgfzm4ivxvz6890r2ij3r686m9ikd0wy60bh13gp09h16dw";
|
||||
SGr-IosevkaFixedCurlySlab = "1cfkxcbdfaq0pk7ikdzqmkq1zwc542kzsc4rrns8sd9j2qzdi1bk";
|
||||
SGr-IosevkaFixedSlab = "0fvkcdfkzzc8dsx0cwcdk1l8qdaadnxdghkv6s8xdsj2q47dk20b";
|
||||
SGr-IosevkaFixedSS01 = "1j3v88j7a3r01a2q0g41k5w1dfy58igx2bvs0rlngvrhcyphdp4b";
|
||||
SGr-IosevkaFixedSS02 = "02sj966nsr9ck4kl77319lxikly96k83r27hxdyfhxmig7q4965l";
|
||||
SGr-IosevkaFixedSS03 = "1c50zshmg09g7z3zzdkdmj7slpvj59nl40k2dxwrldnyfvjpzxvb";
|
||||
SGr-IosevkaFixedSS04 = "03jb49rgx06wm13mb2b8gg6xpfj9nh8yh49ki8ybb4ivwmym3pfg";
|
||||
SGr-IosevkaFixedSS05 = "0ng7kmq8x4dllgbv7xnw0s5cnigm71q65vbszfdda6dzkgf0vhxz";
|
||||
SGr-IosevkaFixedSS06 = "021330rsnbnizxp36aaq4478vdi378vfypsan58k8cnl4nfsqygf";
|
||||
SGr-IosevkaFixedSS07 = "1b07d7srv6is7rx9f2hxd45jjg3yi07hr3xxqk0sssa0i8x79r85";
|
||||
SGr-IosevkaFixedSS08 = "00jihg0hks0aqqa4m6cgq7p5anpvhn1jr16rh4iycxc8m22wh90i";
|
||||
SGr-IosevkaFixedSS09 = "0m1j23wrgh56avcgl22lff4jqzhajcwwx7f56wh4kc173d1r8k9m";
|
||||
SGr-IosevkaFixedSS10 = "0g9g2bxl51y9rd3ag3vy0aslz3pw6f21mhpxyshcjl3558yqqly8";
|
||||
SGr-IosevkaFixedSS11 = "0h0wayawf7hf4vda5widcm92lfwrhb26kb258xs6w5vqc8vp3g96";
|
||||
SGr-IosevkaFixedSS12 = "0g6b0f6wsv0sgpdip2la44wxm3xxyxaq95vj9jiw43pdhrm2q5nz";
|
||||
SGr-IosevkaFixedSS13 = "0hzs4svcb8scnag1822vgx4fsrg684nl56wxgmlp6db5121p6xlx";
|
||||
SGr-IosevkaFixedSS14 = "09xlcsajfrwz2ji0klzp534vwp94wfawl2ixcc9x0whira867zbc";
|
||||
SGr-IosevkaFixedSS15 = "0pzjw32ffqsbw51msnr62b87hlqlpwz6nk98wy69dixx5jjqiv9c";
|
||||
SGr-IosevkaFixedSS16 = "04hcm1xb58qbsxf93qp18j4xk0x0ir1gmc1mz80xy38kvdn2l33h";
|
||||
SGr-IosevkaFixedSS17 = "0n8l3a5hmy907c1ysn8a6ada2v3wgb1pcv2bbdrzklcic0ww1zj8";
|
||||
SGr-IosevkaFixedSS18 = "0gjw1qk2ygxnd91vd107biarzrpfxpc3hflwa3aqpaga1qxc3f4p";
|
||||
SGr-IosevkaSlab = "18v5yayks1mnag9avgdslih8j9j8z9f4ygwjjs2mwwws547m9438";
|
||||
SGr-IosevkaSS01 = "188j0i31bzzyqzqly4hxbil5q9ccnv444285bv84vn9wivqgc44p";
|
||||
SGr-IosevkaSS02 = "052h4w9n8anfsjmh3q8i4aycg0qfx1l59wy7ag0fncl8r2ynw95m";
|
||||
SGr-IosevkaSS03 = "0d2xg6l63sp6yrb2vjh4wbb5jfw2ad8dm9f8hbigs5yqvb3762if";
|
||||
SGr-IosevkaSS04 = "0r08iay0i8z2hsp154j9grvyd3k2njjmad35q1h6yxmhawz63hzg";
|
||||
SGr-IosevkaSS05 = "0ds2cf96d9nbjhj5qj319a8pg162ia48rx2dk6kd019ijgciwcqf";
|
||||
SGr-IosevkaSS06 = "0a7vvplb39szmfj46fx1g5rql60my02akn37hrb228bcnrrhcskx";
|
||||
SGr-IosevkaSS07 = "1mar641pj2g9f9ap88j28zbmw7p015dahh35395720x7f7jk9y2b";
|
||||
SGr-IosevkaSS08 = "05y7ixzgngszkdrh1bv7idp0hwlrb4gn0sjl9m3hddd9rxs5bjqn";
|
||||
SGr-IosevkaSS09 = "1c83aiqqdcscgdih4m119jk6805j06jk6sn87dd81aybm0rdir13";
|
||||
SGr-IosevkaSS10 = "145d699f4s8z01fwdssmhcc60n6s84sd156yy17jgspazgp227mv";
|
||||
SGr-IosevkaSS11 = "0sqj7dbdk74ahxi17bdydqkyrdm3si2zr0q7fl8lj5v61x8kxg5g";
|
||||
SGr-IosevkaSS12 = "0l4ym9gr2d53hifhvf76r0w1s1rwxkniv9fgdb65saj6a2vd49f4";
|
||||
SGr-IosevkaSS13 = "03ygs3bj65mzyn9hyd663wc19a9jr6g11l9gdr8qn54v38g0brdb";
|
||||
SGr-IosevkaSS14 = "1pwwhnhjbswgyjmn54jnnz4vb4zvzc891vpd8lc029g0h80zm0j8";
|
||||
SGr-IosevkaSS15 = "0qa7m038d5vjrfxwmm9pvcs0r63ahqz1hxgv13bik4p2bifbq361";
|
||||
SGr-IosevkaSS16 = "12wpv1cjks0zxrv4a3fvsqzmwqk8rwrjxwc00dhl5rhgkk1mn51f";
|
||||
SGr-IosevkaSS17 = "04n13qlxiavzax85lrl5dr2a7wlqk1yjyl274hsjrw7cxghjjd30";
|
||||
SGr-IosevkaSS18 = "0ymh6vgs9gcsv2l7hx66gplq1x60hy582iwy33w3kp9nvinxm21k";
|
||||
SGr-IosevkaTerm = "17a1rv7awksy3fjs3m6qj365js4572wm1f0yy8qbkk0lv7bn1dd7";
|
||||
SGr-IosevkaTermCurly = "1cdm79fbb21jl4bdw2im961cfskf104gzkv9riliw1b7vkrfxl1n";
|
||||
SGr-IosevkaTermCurlySlab = "0ykn3d72az3sgn35vr2vf5d70l10spmhli05s7sk68y669g0z5jb";
|
||||
SGr-IosevkaTermSlab = "0sxzcpnh8xykk09kk3sdm0pxqmr48cc0k8cyx0s94adwr9hg4dl7";
|
||||
SGr-IosevkaTermSS01 = "1rr9i5hq2zz66abdavpwg4mpbhf5wl463bdy7xnjnqpbpj766f90";
|
||||
SGr-IosevkaTermSS02 = "1nzadff8ml61z3fa2b0hrla0dz02hjk68p0byzahn5hr9cgc1v4j";
|
||||
SGr-IosevkaTermSS03 = "0f8axrzy8skxzsnfkb16vbbjww152npqhd7y73vzcqn8r90ngs53";
|
||||
SGr-IosevkaTermSS04 = "1i37y1nsfhm27vga6d7av5986qyvwscnmlbrskdrbrhl7sg12yb2";
|
||||
SGr-IosevkaTermSS05 = "0i3aidf3p5dqlpkrz595nxr6ljj94nzwg7cmdmy3c6685050bk35";
|
||||
SGr-IosevkaTermSS06 = "08jdfpa9sm0vwrz7vgz5rib2wj26jdp9lry9gj4g3iins6f41vwq";
|
||||
SGr-IosevkaTermSS07 = "1gjp6yfq6licmhkqf5ag8ldynjxfa7lbaad10cv56frqkkg85v4c";
|
||||
SGr-IosevkaTermSS08 = "1w8vxwxvpadf82sv7p56hc75lllp09ygm2k5rw6s5iyx580w4m6h";
|
||||
SGr-IosevkaTermSS09 = "1d1jvgd5wy1bwlmd0gqdjpqz4611dr27gf6kh8i65q24sbjk4mw8";
|
||||
SGr-IosevkaTermSS10 = "07r63vr3yqfssqkc8icj7qyrk80i9jnx295i254ianknbmjd8991";
|
||||
SGr-IosevkaTermSS11 = "1vqpsl0yk3cgrc40rf0mm4v9q30c6y5c858g7piibcj3bp2adi8z";
|
||||
SGr-IosevkaTermSS12 = "1i4ngsxwj82hz4vqla1pr3i7xkhnq872k0f91pvbz63fyi8ij7sy";
|
||||
SGr-IosevkaTermSS13 = "1pf36mlndldl01jgbza5jjlf12mqxqwzr7j3zx4vp587yjf6iqap";
|
||||
SGr-IosevkaTermSS14 = "1nv3gdpfdwc2pci130kj1n2890b1lnbczgw826cdpp3w7spxs04f";
|
||||
SGr-IosevkaTermSS15 = "1xj9q80v0n65nn7zxnckdmc23bb3458v6pv8f36ynj3icbb645zj";
|
||||
SGr-IosevkaTermSS16 = "0gxk5bfaq1g7is8n7l60iv6hhygx4i3b9j8zxq5svybhmg4malnk";
|
||||
SGr-IosevkaTermSS17 = "00kvld6l6mzp5bbygwq4sy3f262jb295kyk8nq9gwvamg92md7hc";
|
||||
SGr-IosevkaTermSS18 = "0dzzfc8y7wgz727z3p5zdd5g25y6h1d5y1aflnz4r2grg5rv6kvp";
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, stdenvNoCC
|
||||
, fetchFromGitHub
|
||||
, gdk-pixbuf
|
||||
, gtk-engine-murrine
|
||||
@@ -8,15 +8,15 @@
|
||||
, gitUpdater
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "marwaita";
|
||||
version = "17";
|
||||
version = "20.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "darkomarko42";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-9yPgcWtk8w2AyOav1sfQFuH8wnX37ho836NgUnQbFRE=";
|
||||
hash = "sha256-3kVfZnqRJs0CPl+EICDjg2+NSwuz18QccHx63cVLpFY=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user