Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-04-19 00:12:59 +00:00 committed by GitHub
commit 97dd14c56c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
235 changed files with 8526 additions and 2171 deletions

2
.github/CODEOWNERS vendored
View File

@ -232,10 +232,12 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
/nixos/modules/services/networking/babeld.nix @mweinelt /nixos/modules/services/networking/babeld.nix @mweinelt
/nixos/modules/services/networking/kea.nix @mweinelt /nixos/modules/services/networking/kea.nix @mweinelt
/nixos/modules/services/networking/knot.nix @mweinelt /nixos/modules/services/networking/knot.nix @mweinelt
nixos/modules/services/networking/networkmanager.nix @Janik-Haag
/nixos/modules/services/monitoring/prometheus/exporters/kea.nix @mweinelt /nixos/modules/services/monitoring/prometheus/exporters/kea.nix @mweinelt
/nixos/tests/babeld.nix @mweinelt /nixos/tests/babeld.nix @mweinelt
/nixos/tests/kea.nix @mweinelt /nixos/tests/kea.nix @mweinelt
/nixos/tests/knot.nix @mweinelt /nixos/tests/knot.nix @mweinelt
/nixos/tests/networking/* @Janik-Haag
# Web servers # Web servers
/doc/packages/nginx.section.md @raitobezarius /doc/packages/nginx.section.md @raitobezarius

View File

@ -2726,6 +2726,12 @@
github = "bmwalters"; github = "bmwalters";
githubId = 4380777; githubId = 4380777;
}; };
bnlrnz = {
github = "bnlrnz";
githubId = 11310385;
name = "Ben Lorenz";
email = "bnlrnz@gmail.com";
};
bobakker = { bobakker = {
email = "bobakk3r@gmail.com"; email = "bobakk3r@gmail.com";
github = "bobakker"; github = "bobakker";
@ -8432,6 +8438,12 @@
github = "Icy-Thought"; github = "Icy-Thought";
githubId = 53710398; githubId = 53710398;
}; };
id3v1669 = {
name = "id3v1669";
email = "id3v1669@gmail.com";
github = "id3v1669";
githubId = 57532211;
};
idlip = { idlip = {
name = "Dilip"; name = "Dilip";
email = "igoldlip@gmail.com"; email = "igoldlip@gmail.com";
@ -14755,6 +14767,12 @@
githubId = 16027994; githubId = 16027994;
name = "Nathan Viets"; name = "Nathan Viets";
}; };
nyadiia = {
email = "nyadiia@pm.me";
github = "nyadiia";
githubId = 43252360;
name = "Nadia";
};
nyanbinary = { nyanbinary = {
email = "nyanbinary@keemail.me"; email = "nyanbinary@keemail.me";
matrix = "@niko:conduit.rs"; matrix = "@niko:conduit.rs";
@ -17336,6 +17354,11 @@
githubId = 19433256; githubId = 19433256;
name = "Radoslaw Sniezek"; name = "Radoslaw Sniezek";
}; };
rster2002 = {
name = "Bjørn";
github = "rster2002";
githubId = 26026518;
};
rsynnest = { rsynnest = {
email = "contact@rsynnest.com"; email = "contact@rsynnest.com";
github = "rsynnest"; github = "rsynnest";
@ -19494,6 +19517,12 @@
fingerprint = "6866 981C 4992 4D64 D154 E1AC 19E5 A2D8 B1E4 3F19"; fingerprint = "6866 981C 4992 4D64 D154 E1AC 19E5 A2D8 B1E4 3F19";
}]; }];
}; };
t4sm5n = {
email = "t4sm5n@gmail.com";
github = "t4sm5n";
githubId = 28858039;
name = "Tuomas Mäkinen";
};
tadeokondrak = { tadeokondrak = {
email = "me@tadeo.ca"; email = "me@tadeo.ca";
github = "tadeokondrak"; github = "tadeokondrak";

View File

@ -518,6 +518,7 @@ with lib.maintainers; {
cpages cpages
dschrempf dschrempf
edwtjo edwtjo
kazenyuk
minijackson minijackson
peterhoeg peterhoeg
sephalon sephalon

View File

@ -189,7 +189,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `k3s`: was updated to version [v1.29](https://github.com/k3s-io/k3s/releases/tag/v1.29.1%2Bk3s2), all previous versions (k3s_1_26, k3s_1_27, k3s_1_28) will be removed. See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#urgent-upgrade-notes) for more information. - `k3s`: was updated to version [v1.29](https://github.com/k3s-io/k3s/releases/tag/v1.29.1%2Bk3s2), all previous versions (k3s_1_26, k3s_1_27, k3s_1_28) will be removed. See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#urgent-upgrade-notes) for more information.
- `himalaya` was updated to `v1.0.0-beta.3`, which introduces breaking changes. Check out the [release note](https://github.com/soywod/himalaya/releases/tag/v1.0.0-beta.3) for details. - `himalaya` was updated to `v1.0.0-beta.4`, which introduces breaking changes. Check out the [release note](https://github.com/soywod/himalaya/releases/tag/v1.0.0-beta.4) for details.
- The `power.ups` module now generates `upsd.conf`, `upsd.users` and `upsmon.conf` automatically from a set of new configuration options. This breaks compatibility with existing `power.ups` setups where these files were created manually. Back up these files before upgrading NixOS. - The `power.ups` module now generates `upsd.conf`, `upsd.users` and `upsmon.conf` automatically from a set of new configuration options. This breaks compatibility with existing `power.ups` setups where these files were created manually. Back up these files before upgrading NixOS.
@ -573,6 +573,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
and `services.kavita.settings.IpAddresses`. The file at `services.kavita.tokenKeyFile` now needs to contain a secret with and `services.kavita.settings.IpAddresses`. The file at `services.kavita.tokenKeyFile` now needs to contain a secret with
512+ bits instead of 128+ bits. 512+ bits instead of 128+ bits.
- `kavita` has been updated to 0.8.0, requiring a manual forced library scan on all libraries for migration. Refer to upstream's [release notes](https://github.com/Kareadita/Kavita/releases/tag/v0.8.0) for details.
- The `krb5` module has been rewritten and moved to `security.krb5`, moving all options but `security.krb5.enable` and `security.krb5.package` into `security.krb5.settings`. - The `krb5` module has been rewritten and moved to `security.krb5`, moving all options but `security.krb5.enable` and `security.krb5.package` into `security.krb5.settings`.
- `services.soju` now has a wrapper for the `sojuctl` command, pointed at the service config file. It also has the new option `adminSocket.enable`, which creates a unix admin socket at `/run/soju/admin`. - `services.soju` now has a wrapper for the `sojuctl` command, pointed at the service config file. It also has the new option `adminSocket.enable`, which creates a unix admin socket at `/run/soju/admin`.
@ -587,6 +589,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- The `hardware.pulseaudio` module now sets permission of pulse user home directory to 755 when running in "systemWide" mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399). - The `hardware.pulseaudio` module now sets permission of pulse user home directory to 755 when running in "systemWide" mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
- The `services.networkmanager.extraConfig` was renamed to `services.networkmanager.settings` and was changed to use the ini type instead of using a multiline string.
- The module `services.github-runner` has been removed. To configure a single GitHub Actions Runner refer to `services.github-runners.*`. Note that this will trigger a new runner registration. - The module `services.github-runner` has been removed. To configure a single GitHub Actions Runner refer to `services.github-runners.*`. Note that this will trigger a new runner registration.
- The `services.slskd` has been refactored to include more configuation options in - The `services.slskd` has been refactored to include more configuation options in

View File

@ -1166,6 +1166,7 @@
./services/networking/syncthing-relay.nix ./services/networking/syncthing-relay.nix
./services/networking/syncthing.nix ./services/networking/syncthing.nix
./services/networking/tailscale.nix ./services/networking/tailscale.nix
./services/networking/tailscale-auth.nix
./services/networking/tayga.nix ./services/networking/tayga.nix
./services/networking/tcpcrypt.nix ./services/networking/tcpcrypt.nix
./services/networking/teamspeak3.nix ./services/networking/teamspeak3.nix

View File

@ -22,7 +22,7 @@ let
serverOptions = { name, config, ... }: { serverOptions = { name, config, ... }: {
freeformType = attrsOf (either scalarType (listOf scalarType)); freeformType = attrsOf (either scalarType (listOf scalarType));
# Client system-options file directives are explained here: # Client system-options file directives are explained here:
# https://www.ibm.com/docs/en/storage-protect/8.1.21?topic=commands-processing-options # https://www.ibm.com/docs/en/storage-protect/8.1.22?topic=commands-processing-options
options.servername = mkOption { options.servername = mkOption {
type = servernameType; type = servernameType;
default = name; default = name;

View File

@ -90,7 +90,7 @@ in
environment.HOME = "/var/lib/tsm-backup"; environment.HOME = "/var/lib/tsm-backup";
serviceConfig = { serviceConfig = {
# for exit status description see # for exit status description see
# https://www.ibm.com/docs/en/storage-protect/8.1.21?topic=clients-client-return-codes # https://www.ibm.com/docs/en/storage-protect/8.1.22?topic=clients-client-return-codes
SuccessExitStatus = "4 8"; SuccessExitStatus = "4 8";
# The `-se` option must come after the command. # The `-se` option must come after the command.
# The `-optfile` option suppresses a `dsm.opt`-not-found warning. # The `-optfile` option suppresses a `dsm.opt`-not-found warning.

View File

@ -38,6 +38,8 @@ in {
]); ]);
}; };
networking.networkmanager.enable = lib.mkDefault true;
systemd.packages = with pkgs.lomiri; [ systemd.packages = with pkgs.lomiri; [
hfd-service hfd-service
lomiri-download-manager lomiri-download-manager
@ -73,6 +75,8 @@ in {
ayatana-indicator-session ayatana-indicator-session
]) ++ (with pkgs.lomiri; [ ]) ++ (with pkgs.lomiri; [
telephony-service telephony-service
] ++ lib.optionals config.networking.networkmanager.enable [
lomiri-indicator-network
]); ]);
}; };
@ -111,6 +115,8 @@ in {
"/share/lomiri-app-launch" "/share/lomiri-app-launch"
# TODO Try to get maliit stuff working # TODO Try to get maliit stuff working
"/share/maliit/plugins" "/share/maliit/plugins"
# At least the network indicator is still under the unity name, due to leftover Unity-isms
"/share/unity"
# Data # Data
"/share/locale" # TODO LUITK hardcoded default locale path, fix individual apps to not rely on it "/share/locale" # TODO LUITK hardcoded default locale path, fix individual apps to not rely on it
"/share/sounds" "/share/sounds"

View File

@ -41,8 +41,7 @@ let
}; };
}; };
configFile = pkgs.writeText "docker-registry-config.yml" (builtins.toJSON (recursiveUpdate registryConfig cfg.extraConfig)); configFile = cfg.configFile;
in { in {
options.services.dockerRegistry = { options.services.dockerRegistry = {
enable = mkEnableOption "Docker Registry"; enable = mkEnableOption "Docker Registry";
@ -106,6 +105,17 @@ in {
type = types.attrs; type = types.attrs;
}; };
configFile = lib.mkOption {
default = pkgs.writeText "docker-registry-config.yml" (builtins.toJSON (recursiveUpdate registryConfig cfg.extraConfig));
defaultText = literalExpression ''pkgs.writeText "docker-registry-config.yml" "# my custom docker-registry-config.yml ..."'';
description = ''
Path to CNCF distribution config file.
Setting this option will override any configuration applied by the extraConfig option.
'';
type = types.path;
};
enableGarbageCollect = mkEnableOption "garbage collect"; enableGarbageCollect = mkEnableOption "garbage collect";
garbageCollectDates = mkOption { garbageCollectDates = mkOption {

View File

@ -49,12 +49,12 @@ in
passAsFile = [ "json" ]; passAsFile = [ "json" ];
} '' } ''
${if cfg.upstreamDefaults then '' ${if cfg.upstreamDefaults then ''
${pkgs.remarshal}/bin/toml2json ${pkgs.dnscrypt-proxy.src}/dnscrypt-proxy/example-dnscrypt-proxy.toml > example.json ${pkgs.buildPackages.remarshal}/bin/toml2json ${pkgs.dnscrypt-proxy.src}/dnscrypt-proxy/example-dnscrypt-proxy.toml > example.json
${pkgs.jq}/bin/jq --slurp add example.json $jsonPath > config.json # merges the two ${pkgs.buildPackages.jq}/bin/jq --slurp add example.json $jsonPath > config.json # merges the two
'' else '' '' else ''
cp $jsonPath config.json cp $jsonPath config.json
''} ''}
${pkgs.remarshal}/bin/json2toml < config.json > $out ${pkgs.buildPackages.remarshal}/bin/json2toml < config.json > $out
''; '';
defaultText = literalMD "TOML file generated from {option}`services.dnscrypt-proxy2.settings`"; defaultText = literalMD "TOML file generated from {option}`services.dnscrypt-proxy2.settings`";
}; };

View File

@ -10,49 +10,31 @@ let
enableIwd = cfg.wifi.backend == "iwd"; enableIwd = cfg.wifi.backend == "iwd";
mkValue = v: configAttrs = lib.recursiveUpdate {
if v == true then "yes" main = {
else if v == false then "no"
else if lib.isInt v then toString v
else v;
mkSection = name: attrs: ''
[${name}]
${
lib.concatStringsSep "\n"
(lib.mapAttrsToList
(k: v: "${k}=${mkValue v}")
(lib.filterAttrs
(k: v: v != null)
attrs))
}
'';
configFile = pkgs.writeText "NetworkManager.conf" (lib.concatStringsSep "\n" [
(mkSection "main" {
plugins = "keyfile"; plugins = "keyfile";
inherit (cfg) dhcp dns; inherit (cfg) dhcp dns;
# If resolvconf is disabled that means that resolv.conf is managed by some other module. # If resolvconf is disabled that means that resolv.conf is managed by some other module.
rc-manager = rc-manager =
if config.networking.resolvconf.enable then "resolvconf" if config.networking.resolvconf.enable then "resolvconf"
else "unmanaged"; else "unmanaged";
}) };
(mkSection "keyfile" { keyfile = {
unmanaged-devices = unmanaged-devices =
if cfg.unmanaged == [ ] then null if cfg.unmanaged == [ ] then null
else lib.concatStringsSep ";" cfg.unmanaged; else lib.concatStringsSep ";" cfg.unmanaged;
}) };
(mkSection "logging" { logging = {
audit = config.security.audit.enable; audit = config.security.audit.enable;
level = cfg.logLevel; level = cfg.logLevel;
}) };
(mkSection "connection" cfg.connectionConfig) connection = cfg.connectionConfig;
(mkSection "device" { device = {
"wifi.scan-rand-mac-address" = cfg.wifi.scanRandMacAddress; "wifi.scan-rand-mac-address" = cfg.wifi.scanRandMacAddress;
"wifi.backend" = cfg.wifi.backend; "wifi.backend" = cfg.wifi.backend;
}) };
cfg.extraConfig } cfg.settings;
]); configFile = ini.generate "NetworkManager.conf" configAttrs;
/* /*
[network-manager] [network-manager]
@ -145,7 +127,7 @@ in
{ {
meta = { meta = {
maintainers = teams.freedesktop.members; maintainers = teams.freedesktop.members ++ [ lib.maintainers.janik ];
}; };
###### interface ###### interface
@ -185,11 +167,11 @@ in
''; '';
}; };
extraConfig = mkOption { settings = mkOption {
type = types.lines; type = ini.type;
default = ""; default = {};
description = '' description = ''
Configuration appended to the generated NetworkManager.conf. Configuration added to the generated NetworkManager.conf, note that you can overwrite settings with this.
Refer to Refer to
[ [
https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html
@ -471,8 +453,28 @@ in
imports = [ imports = [
(mkRenamedOptionModule (mkRenamedOptionModule
[ "networking" "networkmanager" "packages" ] [ "networking" "networkmanager" "packages" ]
[ "networking" "networkmanager" "plugins" ]) [ "networking" "networkmanager" "plugins" ]
(mkRenamedOptionModule [ "networking" "networkmanager" "useDnsmasq" ] [ "networking" "networkmanager" "dns" ]) )
(mkRenamedOptionModule
[ "networking" "networkmanager" "useDnsmasq" ]
[ "networking" "networkmanager" "dns" ]
)
(mkRemovedOptionModule [ "networking" "networkmanager" "extraConfig" ] ''
This option was removed in favour of `networking.networkmanager.settings`,
which accepts structured nix-code equivalent to the ini
and allows for overriding settings.
Example patch:
```patch
networking.networkmanager = {
- extraConfig = '''
- [main]
- no-auto-default=*
- '''
+ extraConfig.main.no-auto-default = "*";
};
```
''
)
(mkRemovedOptionModule [ "networking" "networkmanager" "enableFccUnlock" ] '' (mkRemovedOptionModule [ "networking" "networkmanager" "enableFccUnlock" ] ''
This option was removed, because using bundled FCC unlock scripts is risky, This option was removed, because using bundled FCC unlock scripts is risky,
might conflict with vendor-provided unlock scripts, and should might conflict with vendor-provided unlock scripts, and should

View File

@ -0,0 +1,104 @@
{ config, lib, pkgs, ... }:
let
inherit (lib)
getExe
maintainers
mkEnableOption
mkPackageOption
mkIf
mkOption
types
;
cfg = config.services.tailscaleAuth;
in
{
options.services.tailscaleAuth = {
enable = mkEnableOption "Enable tailscale.nginx-auth, to authenticate users via tailscale.";
package = mkPackageOption pkgs "tailscale-nginx-auth" {};
user = mkOption {
type = types.str;
default = "tailscale-nginx-auth";
description = "User which runs tailscale-nginx-auth";
};
group = mkOption {
type = types.str;
default = "tailscale-nginx-auth";
description = "Group which runs tailscale-nginx-auth";
};
socketPath = mkOption {
default = "/run/tailscale-nginx-auth/tailscale-nginx-auth.sock";
type = types.path;
description = ''
Path of the socket listening to authorization requests.
'';
};
};
config = mkIf cfg.enable {
services.tailscale.enable = true;
users.users.${cfg.user} = {
isSystemUser = true;
inherit (cfg) group;
};
users.groups.${cfg.group} = { };
systemd.sockets.tailscale-nginx-auth = {
description = "Tailscale NGINX Authentication socket";
partOf = [ "tailscale-nginx-auth.service" ];
wantedBy = [ "sockets.target" ];
listenStreams = [ cfg.socketPath ];
socketConfig = {
SocketMode = "0660";
SocketUser = cfg.user;
SocketGroup = cfg.group;
};
};
systemd.services.tailscale-nginx-auth = {
description = "Tailscale NGINX Authentication service";
requires = [ "tailscale-nginx-auth.socket" ];
serviceConfig = {
ExecStart = getExe cfg.package;
RuntimeDirectory = "tailscale-nginx-auth";
User = cfg.user;
Group = cfg.group;
BindPaths = [ "/run/tailscale/tailscaled.sock" ];
CapabilityBoundingSet = "";
DeviceAllow = "";
LockPersonality = true;
MemoryDenyWriteExecute = true;
PrivateDevices = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
RestrictNamespaces = true;
RestrictAddressFamilies = [ "AF_UNIX" ];
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallErrorNumber = "EPERM";
SystemCallFilter = [
"@system-service"
"~@cpu-emulation" "~@debug" "~@keyring" "~@memlock" "~@obsolete" "~@privileged" "~@setuid"
];
};
};
};
meta.maintainers = with maintainers; [ dan-theriault phaer ];
}

View File

@ -28,7 +28,8 @@ in
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
description = '' description = ''
A list of nginx virtual hosts to put behind the oauth2 proxy A list of nginx virtual hosts to put behind the oauth2 proxy.
You can exclude specific locations by setting `auth_request off;` in the locations extraConfig setting.
''; '';
}; };
}; };
@ -50,18 +51,27 @@ in
] ++ optional (cfg.virtualHosts != []) { ] ++ optional (cfg.virtualHosts != []) {
recommendedProxySettings = true; # needed because duplicate headers recommendedProxySettings = true; # needed because duplicate headers
} ++ (map (vhost: { } ++ (map (vhost: {
virtualHosts.${vhost}.locations = { virtualHosts.${vhost} = {
"/oauth2/auth" = { locations = {
proxyPass = cfg.proxy; "/oauth2/auth" = {
extraConfig = '' proxyPass = cfg.proxy;
proxy_set_header X-Scheme $scheme; extraConfig = ''
# nginx auth_request includes headers but not body auth_request off;
proxy_set_header Content-Length ""; proxy_set_header X-Scheme $scheme;
proxy_pass_request_body off; # nginx auth_request includes headers but not body
''; proxy_set_header Content-Length "";
proxy_pass_request_body off;
'';
};
"@redirectToAuth2ProxyLogin" = {
return = "307 https://${cfg.domain}/oauth2/start?rd=$scheme://$host$request_uri";
extraConfig = ''
auth_request off;
'';
};
}; };
"@redirectToAuth2ProxyLogin".return = "307 https://${cfg.domain}/oauth2/start?rd=$scheme://$host$request_uri";
"/".extraConfig = '' extraConfig = ''
auth_request /oauth2/auth; auth_request /oauth2/auth;
error_page 401 = @redirectToAuth2ProxyLogin; error_page 401 = @redirectToAuth2ProxyLogin;

View File

@ -1,28 +1,29 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
let let
inherit (lib)
genAttrs
maintainers
mkAliasOptionModule
mkEnableOption
mkIf
mkOption
types
;
cfg = config.services.nginx.tailscaleAuth; cfg = config.services.nginx.tailscaleAuth;
cfgAuth = config.services.tailscaleAuth;
in in
{ {
imports = [
(mkAliasOptionModule [ "services" "nginx" "tailscaleAuth" "package" ] [ "services" "tailscaleAuth" "package" ])
(mkAliasOptionModule [ "services" "nginx" "tailscaleAuth" "user" ] [ "services" "tailscaleAuth" "user" ])
(mkAliasOptionModule [ "services" "nginx" "tailscaleAuth" "group" ] [ "services" "tailscaleAuth" "group" ])
(mkAliasOptionModule [ "services" "nginx" "tailscaleAuth" "socketPath" ] [ "services" "tailscaleAuth" "socketPath" ])
];
options.services.nginx.tailscaleAuth = { options.services.nginx.tailscaleAuth = {
enable = mkEnableOption "Enable tailscale.nginx-auth, to authenticate nginx users via tailscale."; enable = mkEnableOption "Enable tailscale.nginx-auth, to authenticate nginx users via tailscale.";
package = lib.mkPackageOptionMD pkgs "tailscale-nginx-auth" {};
user = mkOption {
type = types.str;
default = "tailscale-nginx-auth";
description = "User which runs tailscale-nginx-auth";
};
group = mkOption {
type = types.str;
default = "tailscale-nginx-auth";
description = "Group which runs tailscale-nginx-auth";
};
expectedTailnet = mkOption { expectedTailnet = mkOption {
default = ""; default = "";
type = types.nullOr types.str; type = types.nullOr types.str;
@ -33,14 +34,6 @@ in
''; '';
}; };
socketPath = mkOption {
default = "/run/tailscale-nginx-auth/tailscale-nginx-auth.sock";
type = types.path;
description = ''
Path of the socket listening to nginx authorization requests.
'';
};
virtualHosts = mkOption { virtualHosts = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
@ -51,67 +44,14 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.tailscale.enable = true; services.tailscaleAuth.enable = true;
services.nginx.enable = true; services.nginx.enable = true;
users.users.${cfg.user} = { users.users.${config.services.nginx.user}.extraGroups = [ cfgAuth.group ];
isSystemUser = true;
inherit (cfg) group;
};
users.groups.${cfg.group} = { };
users.users.${config.services.nginx.user}.extraGroups = [ cfg.group ];
systemd.sockets.tailscale-nginx-auth = {
description = "Tailscale NGINX Authentication socket";
partOf = [ "tailscale-nginx-auth.service" ];
wantedBy = [ "sockets.target" ];
listenStreams = [ cfg.socketPath ];
socketConfig = {
SocketMode = "0660";
SocketUser = cfg.user;
SocketGroup = cfg.group;
};
};
systemd.services.tailscale-nginx-auth = { systemd.services.tailscale-nginx-auth = {
description = "Tailscale NGINX Authentication service";
after = [ "nginx.service" ]; after = [ "nginx.service" ];
wants = [ "nginx.service" ]; wants = [ "nginx.service" ];
requires = [ "tailscale-nginx-auth.socket" ];
serviceConfig = {
ExecStart = "${lib.getExe cfg.package}";
RuntimeDirectory = "tailscale-nginx-auth";
User = cfg.user;
Group = cfg.group;
BindPaths = [ "/run/tailscale/tailscaled.sock" ];
CapabilityBoundingSet = "";
DeviceAllow = "";
LockPersonality = true;
MemoryDenyWriteExecute = true;
PrivateDevices = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
RestrictNamespaces = true;
RestrictAddressFamilies = [ "AF_UNIX" ];
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallErrorNumber = "EPERM";
SystemCallFilter = [
"@system-service"
"~@cpu-emulation" "~@debug" "~@keyring" "~@memlock" "~@obsolete" "~@privileged" "~@setuid"
];
};
}; };
services.nginx.virtualHosts = genAttrs services.nginx.virtualHosts = genAttrs
@ -121,7 +61,7 @@ in
extraConfig = '' extraConfig = ''
internal; internal;
proxy_pass http://unix:${cfg.socketPath}; proxy_pass http://unix:${cfgAuth.socketPath};
proxy_pass_request_body off; proxy_pass_request_body off;
# Upstream uses $http_host here, but we are using gixy to check nginx configurations # Upstream uses $http_host here, but we are using gixy to check nginx configurations

View File

@ -45,6 +45,10 @@ in {
boot.kernelParams = ["console=tty1" "console=${serialDevice}"]; boot.kernelParams = ["console=tty1" "console=${serialDevice}"];
services.udev.extraRules = ''
SUBSYSTEM=="cpu", CONST{arch}=="x86-64", TEST=="online", ATTR{online}=="0", ATTR{online}="1"
'';
virtualisation.lxd.agent.enable = lib.mkDefault true; virtualisation.lxd.agent.enable = lib.mkDefault true;
}; };
} }

View File

@ -599,6 +599,7 @@ in {
netdata = handleTest ./netdata.nix {}; netdata = handleTest ./netdata.nix {};
networking.scripted = handleTest ./networking/networkd-and-scripted.nix { networkd = false; }; networking.scripted = handleTest ./networking/networkd-and-scripted.nix { networkd = false; };
networking.networkd = handleTest ./networking/networkd-and-scripted.nix { networkd = true; }; networking.networkd = handleTest ./networking/networkd-and-scripted.nix { networkd = true; };
networking.networkmanager = handleTest ./networking/networkmanager.nix {};
netbox_3_6 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_6; }; netbox_3_6 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_6; };
netbox_3_7 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_7; }; netbox_3_7 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_7; };
netbox-upgrade = handleTest ./web-apps/netbox-upgrade.nix {}; netbox-upgrade = handleTest ./web-apps/netbox-upgrade.nix {};

View File

@ -3,7 +3,7 @@
import ./make-test-python.nix ({ pkgs, ...} : { import ./make-test-python.nix ({ pkgs, ...} : {
name = "docker-registry"; name = "docker-registry";
meta = with pkgs.lib.maintainers; { meta = with pkgs.lib.maintainers; {
maintainers = [ globin ironpinguin ]; maintainers = [ globin ironpinguin cafkafk ];
}; };
nodes = { nodes = {

View File

@ -57,5 +57,14 @@ in
with subtest("lxd-agent has a valid path"): with subtest("lxd-agent has a valid path"):
machine.succeed("incus exec ${instance-name} -- bash -c 'true'") machine.succeed("incus exec ${instance-name} -- bash -c 'true'")
with subtest("guest supports cpu hotplug"):
machine.succeed("incus config set ${instance-name} limits.cpu=1")
count = int(machine.succeed("incus exec ${instance-name} -- nproc").strip())
assert count == 1, f"Wrong number of CPUs reported, want: 1, got: {count}"
machine.succeed("incus config set ${instance-name} limits.cpu=2")
count = int(machine.succeed("incus exec ${instance-name} -- nproc").strip())
assert count == 2, f"Wrong number of CPUs reported, want: 2, got: {count}"
''; '';
}) })

View File

@ -253,22 +253,35 @@ in {
with subtest("ayatana indicators work"): with subtest("ayatana indicators work"):
open_starter() open_starter()
machine.send_chars("Indicators\n") machine.send_chars("Indicators\n")
machine.wait_for_text(r"(Indicators|Client|List|datetime|session)") machine.wait_for_text(r"(Indicators|Client|List|network|datetime|session)")
machine.screenshot("indicators_open") machine.screenshot("indicators_open")
# Element tab order within the indicator menus is not fully deterministic # Element tab order within the indicator menus is not fully deterministic
# Only check that the indicators are listed & their items load # Only check that the indicators are listed & their items load
with subtest("lomiri indicator network works"):
# Select indicator-network
machine.send_key("tab")
# Don't go further down, first entry
machine.send_key("ret")
machine.wait_for_text(r"(Flight|Wi-Fi)")
machine.screenshot("indicators_network")
machine.send_key("shift-tab")
machine.send_key("ret")
machine.wait_for_text(r"(Indicators|Client|List|network|datetime|session)")
with subtest("ayatana indicator datetime works"): with subtest("ayatana indicator datetime works"):
# Select ayatana-indicator-datetime # Select ayatana-indicator-datetime
machine.send_key("tab") machine.send_key("tab")
machine.send_key("down")
machine.send_key("ret") machine.send_key("ret")
machine.wait_for_text("Time and Date Settings") machine.wait_for_text("Time and Date Settings")
machine.screenshot("indicators_timedate") machine.screenshot("indicators_timedate")
machine.send_key("shift-tab") machine.send_key("shift-tab")
machine.send_key("ret") machine.send_key("ret")
machine.wait_for_text(r"(Indicators|Client|List|datetime|session)") machine.wait_for_text(r"(Indicators|Client|List|network|datetime|session)")
with subtest("ayatana indicator session works"): with subtest("ayatana indicator session works"):
# Select ayatana-indicator-session # Select ayatana-indicator-session

View File

@ -0,0 +1,172 @@
{ system ? builtins.currentSystem
, config ? {}
, pkgs ? import ../.. { inherit system config; }
}:
with import ../../lib/testing-python.nix { inherit system pkgs; };
let
lib = pkgs.lib;
# this is intended as a client test since you shouldn't use NetworkManager for a router or server
# so using systemd-networkd for the router vm is fine in these tests.
router = import ./router.nix { networkd = true; };
qemu-common = import ../../lib/qemu-common.nix { inherit (pkgs) lib pkgs; };
clientConfig = extraConfig: lib.recursiveUpdate {
networking.useDHCP = false;
# Make sure that only NetworkManager configures the interface
networking.interfaces = lib.mkForce {
eth1 = {};
};
networking.networkmanager = {
enable = true;
# this is needed so NM doesn't generate 'Wired Connection' profiles and instead uses the default one
settings.main.no-auto-default = "*";
ensureProfiles.profiles.default = {
connection = {
id = "default";
type = "ethernet";
interface-name = "eth1";
autoconnect = true;
};
};
};
} extraConfig;
testCases = {
static = {
name = "static";
nodes = {
inherit router;
client = clientConfig {
networking.networkmanager.ensureProfiles.profiles.default = {
ipv4.method = "manual";
ipv4.addresses = "192.168.1.42/24";
ipv4.gateway = "192.168.1.1";
ipv6.method = "manual";
ipv6.addresses = "fd00:1234:5678:1::42/64";
ipv6.gateway = "fd00:1234:5678:1::1";
};
};
};
testScript = ''
start_all()
router.systemctl("start network-online.target")
router.wait_for_unit("network-online.target")
client.wait_for_unit("NetworkManager.service")
with subtest("Wait until we have an ip address on each interface"):
client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'")
client.wait_until_succeeds("ip addr show dev eth1 | grep -q 'fd00:1234:5678:1:'")
with subtest("Test if icmp echo works"):
client.wait_until_succeeds("ping -c 1 192.168.3.1")
client.wait_until_succeeds("ping -c 1 fd00:1234:5678:3::1")
router.wait_until_succeeds("ping -c 1 192.168.1.42")
router.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::42")
'';
};
auto = {
name = "auto";
nodes = {
inherit router;
client = clientConfig {
networking.networkmanager.ensureProfiles.profiles.default = {
ipv4.method = "auto";
ipv6.method = "auto";
};
};
};
testScript = ''
start_all()
router.systemctl("start network-online.target")
router.wait_for_unit("network-online.target")
client.wait_for_unit("NetworkManager.service")
with subtest("Wait until we have an ip address on each interface"):
client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'")
client.wait_until_succeeds("ip addr show dev eth1 | grep -q 'fd00:1234:5678:1:'")
with subtest("Test if icmp echo works"):
client.wait_until_succeeds("ping -c 1 192.168.1.1")
client.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::1")
router.wait_until_succeeds("ping -c 1 192.168.1.2")
router.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::2")
'';
};
dns = {
name = "dns";
nodes = {
inherit router;
dynamic = clientConfig {
networking.networkmanager.ensureProfiles.profiles.default = {
ipv4.method = "auto";
};
};
static = clientConfig {
networking.networkmanager.ensureProfiles.profiles.default = {
ipv4 = {
method = "auto";
ignore-auto-dns = "true";
dns = "10.10.10.10";
dns-search = "";
};
};
};
};
testScript = ''
start_all()
router.systemctl("start network-online.target")
router.wait_for_unit("network-online.target")
dynamic.wait_for_unit("NetworkManager.service")
static.wait_for_unit("NetworkManager.service")
dynamic.wait_until_succeeds("cat /etc/resolv.conf | grep -q '192.168.1.1'")
static.wait_until_succeeds("cat /etc/resolv.conf | grep -q '10.10.10.10'")
static.wait_until_fails("cat /etc/resolv.conf | grep -q '192.168.1.1'")
'';
};
dispatcherScripts = {
name = "dispatcherScripts";
nodes.client = clientConfig {
networking.networkmanager.dispatcherScripts = [{
type = "pre-up";
source = pkgs.writeText "testHook" ''
touch /tmp/dispatcher-scripts-are-working
'';
}];
};
testScript = ''
start_all()
client.wait_for_unit("NetworkManager.service")
client.wait_until_succeeds("stat /tmp/dispatcher-scripts-are-working")
'';
};
envsubst = {
name = "envsubst";
nodes.client = let
# you should never write secrets in to your nixos configuration, please use tools like sops-nix or agenix
secretFile = pkgs.writeText "my-secret.env" ''
MY_SECRET_IP=fd00:1234:5678:1::23/64
'';
in clientConfig {
networking.networkmanager.ensureProfiles.environmentFiles = [ secretFile ];
networking.networkmanager.ensureProfiles.profiles.default = {
ipv6.method = "manual";
ipv6.addresses = "$MY_SECRET_IP";
};
};
testScript = ''
start_all()
client.wait_for_unit("NetworkManager.service")
client.wait_until_succeeds("ip addr show dev eth1 | grep -q 'fd00:1234:5678:1:'")
client.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::23")
'';
};
};
in lib.mapAttrs (lib.const (attrs: makeTest (attrs // {
name = "${attrs.name}-Networking-NetworkManager";
meta = {
maintainers = with lib.maintainers; [ janik ];
};
}))) testCases

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gbsplay"; pname = "gbsplay";
version = "0.0.96"; version = "0.0.97";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mmitch"; owner = "mmitch";
repo = "gbsplay"; repo = "gbsplay";
rev = version; rev = version;
sha256 = "sha256-2sYPP+urcSP67mHzbjRiL9BYgkIpONr7fPPbGQmBOqU="; sha256 = "sha256-O4t5OzXcrGoxzSXr0nzc01bItjcp1LvFeWnbdSUDwFU=";
}; };
configureFlags = [ configureFlags = [

File diff suppressed because it is too large Load Diff

View File

@ -9,13 +9,13 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "waylyrics"; pname = "waylyrics";
version = "0.2.15"; version = "0.2.19";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "poly000"; owner = "poly000";
repo = "waylyrics"; repo = "waylyrics";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-dGtotQfS5Ve3rl6iSsqOzs0/dOePfoRZ9Wlg9zHCXSY="; hash = "sha256-y8FBZ/BvCj7CBfQlNE1Ay2nuP41WC14dfTeOJhTbHYs=";
}; };
cargoLock = { cargoLock = {

View File

@ -26,13 +26,13 @@ let
else throw "unsupported platform"; else throw "unsupported platform";
in stdenv.mkDerivation (finalAttrs: { in stdenv.mkDerivation (finalAttrs: {
pname = "pixelorama"; pname = "pixelorama";
version = "0.11.3"; version = "0.11.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Orama-Interactive"; owner = "Orama-Interactive";
repo = "Pixelorama"; repo = "Pixelorama";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
sha256 = "sha256-+bQRUTEJluhcs5P87It9/oJOzrCcNFzDJVpixoQKXQc="; sha256 = "sha256-VEQjZ9kDqXz1hoT4PrsBtzoi1TYWyN+YcPMyf9qJMRE=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -5062,6 +5062,18 @@ final: prev:
meta.homepage = "https://github.com/neoclide/jsonc.vim/"; meta.homepage = "https://github.com/neoclide/jsonc.vim/";
}; };
jsonfly-nvim = buildVimPlugin {
pname = "jsonfly.nvim";
version = "2024-04-12";
src = fetchFromGitHub {
owner = "Myzel394";
repo = "jsonfly.nvim";
rev = "539a0b79a5ea75d201e1e90cebfe9367154d04fc";
sha256 = "1v1i4x2px0zs65rxkf2yhnxn6clx33vdr54r9gaqq713qj5ddlfm";
};
meta.homepage = "https://github.com/Myzel394/jsonfly.nvim/";
};
julia-vim = buildVimPlugin { julia-vim = buildVimPlugin {
pname = "julia-vim"; pname = "julia-vim";
version = "2023-12-15"; version = "2023-12-15";
@ -17201,5 +17213,17 @@ final: prev:
meta.homepage = "https://github.com/jhradilek/vim-snippets/"; meta.homepage = "https://github.com/jhradilek/vim-snippets/";
}; };
gitignore-nvim = buildVimPlugin {
pname = "gitignore-nvim";
version = "2024-03-25";
src = fetchFromGitHub {
owner = "wintermute-cell";
repo = "gitignore.nvim";
rev = "2455191ec94da8ed222806a4fe3aa358eac1e558";
sha256 = "sha256-p6k0NP3Vne6Kl98YodzSruVmJwxyrXziJj8N7u79o1w=";
};
meta.homepage = "https://github.com/wintermute-cell/gitignore.nvim/";
};
} }

View File

@ -338,6 +338,7 @@ https://github.com/f-person/git-blame.nvim/,,
https://github.com/akinsho/git-conflict.nvim/,HEAD, https://github.com/akinsho/git-conflict.nvim/,HEAD,
https://github.com/rhysd/git-messenger.vim/,, https://github.com/rhysd/git-messenger.vim/,,
https://github.com/ThePrimeagen/git-worktree.nvim/,, https://github.com/ThePrimeagen/git-worktree.nvim/,,
https://github.com/wintermute-cell/gitignore.nvim/,HEAD,
https://github.com/vim-scripts/gitignore.vim/,, https://github.com/vim-scripts/gitignore.vim/,,
https://github.com/ruifm/gitlinker.nvim/,, https://github.com/ruifm/gitlinker.nvim/,,
https://github.com/lewis6991/gitsigns.nvim/,, https://github.com/lewis6991/gitsigns.nvim/,,
@ -424,6 +425,7 @@ https://github.com/nanotech/jellybeans.vim/,,
https://github.com/HiPhish/jinja.vim/,HEAD, https://github.com/HiPhish/jinja.vim/,HEAD,
https://github.com/vito-c/jq.vim/,, https://github.com/vito-c/jq.vim/,,
https://github.com/neoclide/jsonc.vim/,, https://github.com/neoclide/jsonc.vim/,,
https://github.com/Myzel394/jsonfly.nvim/,HEAD,
https://github.com/JuliaEditorSupport/julia-vim/,, https://github.com/JuliaEditorSupport/julia-vim/,,
https://github.com/GCBallesteros/jupytext.nvim/,HEAD, https://github.com/GCBallesteros/jupytext.nvim/,HEAD,
https://github.com/rebelot/kanagawa.nvim/,, https://github.com/rebelot/kanagawa.nvim/,,

View File

@ -1049,8 +1049,8 @@ let
mktplcRef = { mktplcRef = {
name = "vscode-markdownlint"; name = "vscode-markdownlint";
publisher = "DavidAnson"; publisher = "DavidAnson";
version = "0.54.0"; version = "0.55.0";
hash = "sha256-BrPFFRspJIz1U08hPbLziCmRUeZv2NhRrTCx6qvhOJw="; hash = "sha256-slfHfRPcuRu+649n6kAr2bv9H6J+DvYVN/ysq1QpPQM=";
}; };
meta = { meta = {
changelog = "https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint/changelog"; changelog = "https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint/changelog";
@ -2352,6 +2352,23 @@ let
}; };
}; };
k--kato.intellij-idea-keybindings = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "intellij-idea-keybindings";
publisher = "k--kato";
version = "1.7.0";
hash = "sha256-mIcSZANZlj5iO2oLiJBUHn08rXVhu/9SKsRhlu/hcvI=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/k--kato.intellij-idea-keybindings/changelog";
description = "Visual Studio Code extension for IntelliJ IDEA keybindings";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=k--kato.intellij-idea-keybindings";
homepage = "https://github.com/kasecato/vscode-intellij-idea-keybindings";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.t4sm5n ];
};
};
kahole.magit = buildVscodeMarketplaceExtension { kahole.magit = buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {
name = "magit"; name = "magit";

View File

@ -1,6 +1,6 @@
{ {
lib, lib,
nodePackages, pyright,
vscode-utils, vscode-utils,
}: }:
@ -12,7 +12,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
hash = "sha256-xJU/j5r/Idp/0VorEfciT4SFKRBpMCv9Z0LKO/++1Gk="; hash = "sha256-xJU/j5r/Idp/0VorEfciT4SFKRBpMCv9Z0LKO/++1Gk=";
}; };
buildInputs = [ nodePackages.pyright ]; buildInputs = [ pyright ];
meta = { meta = {
changelog = "https://marketplace.visualstudio.com/items/ms-python.vscode-pylance/changelog"; changelog = "https://marketplace.visualstudio.com/items/ms-python.vscode-pylance/changelog";

View File

@ -5,13 +5,13 @@
appimageTools.wrapAppImage rec { appimageTools.wrapAppImage rec {
pname = "bazecor"; pname = "bazecor";
version = "1.3.9"; version = "1.3.11";
src = appimageTools.extract { src = appimageTools.extract {
inherit pname version; inherit pname version;
src = fetchurl { src = fetchurl {
url = "https://github.com/Dygmalab/Bazecor/releases/download/v${version}/Bazecor-${version}-x64.AppImage"; url = "https://github.com/Dygmalab/Bazecor/releases/download/v${version}/Bazecor-${version}-x64.AppImage";
hash = "sha256-qve5xxhhyVej8dPDkZ7QQdeDUmqGO4pHJTykbS4RhAk="; hash = "sha256-iMurQDF0CBMnJnjmEgNIKYd8C5B4FguMi4Jqa3dHr3o=";
}; };
# Workaround for https://github.com/Dygmalab/Bazecor/issues/370 # Workaround for https://github.com/Dygmalab/Bazecor/issues/370
@ -26,7 +26,7 @@ appimageTools.wrapAppImage rec {
# also make sure to update the udev rules in ./10-dygma.rules; most recently # also make sure to update the udev rules in ./10-dygma.rules; most recently
# taken from # taken from
# https://github.com/Dygmalab/Bazecor/blob/v1.3.9/src/main/utils/udev.ts#L6 # https://github.com/Dygmalab/Bazecor/blob/v1.3.11/src/main/utils/udev.ts#L6
extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [ extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
p.glib p.glib

View File

@ -18,7 +18,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "metadata-cleaner"; pname = "metadata-cleaner";
version = "2.5.4"; version = "2.5.5";
format = "other"; format = "other";
@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "rmnvgr"; owner = "rmnvgr";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-2+ZY+ca/CTIdCiFrBOkMWKflzKjSYJ8yfwFkULNg7Xk="; hash = "sha256-0DaQvVG19X9mMYZeYBz0t/DEx4MACLMjTOGMkUv9OQg=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -41,9 +41,15 @@ stdenv.mkDerivation rec {
url = "https://github.com/pdfpc/pdfpc/commit/d38edfac63bec54173b4b31eae5c7fb46cd8f714.diff"; url = "https://github.com/pdfpc/pdfpc/commit/d38edfac63bec54173b4b31eae5c7fb46cd8f714.diff";
hash = "sha256-KC2oyzcwU2fUmxaed8qAsKcePwR5KcXgpVdstJg8KmU="; hash = "sha256-KC2oyzcwU2fUmxaed8qAsKcePwR5KcXgpVdstJg8KmU=";
}) })
# Allow compiling with markdown3
# https://github.com/pdfpc/pdfpc/pull/716
(fetchpatch {
url = "https://github.com/pdfpc/pdfpc/commit/08e66b9d432e9598c1ee9a78b2355728036ae1a1.patch";
hash = "sha256-SKH2GQ5/6Is36xOFmSs89Yw/w7Fnma3FrNqwjOlUQKM=";
})
]; ];
cmakeFlags = lib.optional stdenv.isDarwin "-DMOVIES=OFF"; cmakeFlags = lib.optional stdenv.isDarwin (lib.cmakeBool "MOVIES" false);
meta = with lib; { meta = with lib; {
description = "A presenter console with multi-monitor support for PDF files"; description = "A presenter console with multi-monitor support for PDF files";

View File

@ -102,7 +102,14 @@ let
"flac" "flac"
"libjpeg" "libjpeg"
"libpng" "libpng"
] ++ lib.optionals (!chromiumVersionAtLeast "124") [
# Use the vendored libwebp for M124+ until we figure out how to solve:
# Running phase: configurePhase
# ERROR Unresolved dependencies.
# //third_party/libavif:libavif_enc(//build/toolchain/linux/unbundle:default)
# needs //third_party/libwebp:libwebp_sharpyuv(//build/toolchain/linux/unbundle:default)
"libwebp" "libwebp"
] ++ [
"libxslt" "libxslt"
# "opus" # "opus"
]; ];
@ -241,6 +248,15 @@ let
# Partial revert of https://github.com/chromium/chromium/commit/3687976b0c6d36cf4157419a24a39f6770098d61 # Partial revert of https://github.com/chromium/chromium/commit/3687976b0c6d36cf4157419a24a39f6770098d61
# allowing us to use our rustc and our clang. # allowing us to use our rustc and our clang.
./patches/chromium-121-rust.patch ./patches/chromium-121-rust.patch
] ++ lib.optionals (chromiumVersionAtLeast "124" && !chromiumVersionAtLeast "125") [
# M124 shipped with broken --ozone-platform-hint flag handling, which we rely on
# for our NIXOS_OZONE_WL (wayland) environment variable.
# See <https://issues.chromium.org/issues/329678163>.
# This is the commit for the fix that landed in M125, which applies clean on M124.
(githubPatch {
commit = "c7f4c58f896a651eba80ad805ebdb49d19ebdbd4";
hash = "sha256-6nYWT2zN+j73xAIXLdGYT2eC71vGnGfiLCB0OwT0CAI=";
})
]; ];
postPatch = '' postPatch = ''

View File

@ -9,15 +9,15 @@
}; };
deps = { deps = {
gn = { gn = {
hash = "sha256-JvilCnnb4laqwq69fay+IdAujYC1EHD7uWpkF/C8tBw="; hash = "sha256-aEL1kIhgPAFqdb174dG093HoLhCJ07O1Kpqfu7r14wQ=";
rev = "d4f94f9a6c25497b2ce0356bb99a8d202c8c1d32"; rev = "22581fb46c0c0c9530caa67149ee4dd8811063cf";
url = "https://gn.googlesource.com/gn"; url = "https://gn.googlesource.com/gn";
version = "2024-02-19"; version = "2024-03-14";
}; };
}; };
hash = "sha256-7H7h621AHPyhFYbaVFO892TtS+SP3Qu7cYUVk3ICL14="; hash = "sha256-apEniFKhIxPo4nhp9gCU+WpiV/EB40qif4RfE7Uniog=";
hash_deb_amd64 = "sha256-tNkO1mPZg1xltBfoWeNhLekITtZV/WNgu//i2DJb17c="; hash_deb_amd64 = "sha256-rSbigG5/xbL32d1ntOn6gnZyxSpgrg1h7lb/RD4YROI=";
version = "123.0.6312.122"; version = "124.0.6367.60";
}; };
ungoogled-chromium = { ungoogled-chromium = {
deps = { deps = {

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "civo"; pname = "civo";
version = "1.0.80"; version = "1.0.81";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "civo"; owner = "civo";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-jzz9mny59YM5PLcQvcus3gHuRSbl/OISAOjDoS/4Y78="; sha256 = "sha256-YdrJbT9Ozp1vlvQBYQNjJX6n3vIXYj3dmKhAsBPrvi8=";
}; };
vendorHash = "sha256-Uh2/4qdJQfqQdjXbOBkUVv2nF1AN+QRKRI0+yta+G5Q="; vendorHash = "sha256-YNbxV79XQBmd7oTanwLOMdmt2ds4ttX1ttr8vUycVzg=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View File

@ -13,11 +13,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "twingate"; pname = "twingate";
version = "2024.63.115357"; version = "2024.98.119300";
src = fetchurl { src = fetchurl {
url = "https://binaries.twingate.com/client/linux/DEB/x86_64/${version}/twingate-amd64.deb"; url = "https://binaries.twingate.com/client/linux/DEB/x86_64/${version}/twingate-amd64.deb";
hash = "sha256-VSm9gnHfo9LPwUvNwLeX7OjqMYgFUgGYSxx/qDndfwo="; hash = "sha256-N0cabYHaF5H1EeriQRQL7bN5UM85oOGrm9pxGr1AlEk=";
}; };
buildInputs = [ buildInputs = [

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "super-productivity"; pname = "super-productivity";
version = "8.0.1"; version = "8.0.5";
src = fetchurl { src = fetchurl {
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage"; url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
sha256 = "sha256-BW/4jP4lh3leAcdy3JHET/PUybN+0Cy9wxMSi57dAcw="; sha256 = "sha256-nH7dCrXBhkAYbvb9CPc4zhslFiYtA1ChuYPoHMdBBwQ=";
name = "${pname}-${version}.AppImage"; name = "${pname}-${version}.AppImage";
}; };

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "iqtree"; pname = "iqtree";
version = "2.3.1"; version = "2.3.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "iqtree"; owner = "iqtree";
repo = "iqtree2"; repo = "iqtree2";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-GaNumiTGa6mxvFifv730JFgKrRxG41gJN+ci3imDbzs="; hash = "sha256-hAJs48PhIyZSKSRZjQJKQwoJlt6DPRQwaDsuZ00VZII=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View File

@ -39,14 +39,14 @@ let
in in
buildGoModule rec { buildGoModule rec {
pname = "forgejo"; pname = "forgejo";
version = "1.21.10-0"; version = "1.21.11-0";
src = fetchFromGitea { src = fetchFromGitea {
domain = "codeberg.org"; domain = "codeberg.org";
owner = "forgejo"; owner = "forgejo";
repo = "forgejo"; repo = "forgejo";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-uCRAT9RiU9S+tP9alNshSQwbUgLmU9wE5HIQ4FPmXVE="; hash = "sha256-Cp+dN4nTIboin42NJR/YUkVXbBC7uufH8EE7NgIVFzY=";
# Forgejo has multiple different version strings that need to be provided # Forgejo has multiple different version strings that need to be provided
# via ldflags. main.ForgejoVersion for example is a combination of a # via ldflags. main.ForgejoVersion for example is a combination of a
# hardcoded gitea compatibility version string (in the Makefile) and # hardcoded gitea compatibility version string (in the Makefile) and
@ -65,7 +65,7 @@ buildGoModule rec {
''; '';
}; };
vendorHash = "sha256-pgUSmM2CxYO8DralWoeR2groQxpxo9WtRcToYeaHXGk="; vendorHash = "sha256-OuWNF+muWM6xqwkFxLIUsn/huqXj2VKg8BN9+JHVw58=";
subPackages = [ "." ]; subPackages = [ "." ];

View File

@ -1,14 +1,18 @@
{ callPackage, ... } @ args: { callPackage, ... } @ args:
let let
unwrapped = callPackage ./unwrapped.nix (removeAttrs args [ "callPackage" ]); unwrapped = callPackage ./unwrapped.nix (removeAttrs args [ "callPackage" ]);
kodiPackages = callPackage ../../../top-level/kodi-packages.nix { kodi = unwrapped; };
in in
unwrapped.overrideAttrs (oldAttrs: { unwrapped.overrideAttrs (oldAttrs: {
passthru = oldAttrs.passthru // { passthru =
packages = kodiPackages; let
withPackages = func: callPackage ./wrapper.nix { finalKodi = oldAttrs.passthru.kodi;
kodi = unwrapped; kodiPackages = callPackage ../../../top-level/kodi-packages.nix { kodi = finalKodi; };
addons = kodiPackages.requiredKodiAddons (func kodiPackages); in
}; oldAttrs.passthru // {
}; packages = kodiPackages;
withPackages = func: callPackage ./wrapper.nix {
kodi = finalKodi;
addons = kodiPackages.requiredKodiAddons (func kodiPackages);
};
};
}) })

View File

@ -28,6 +28,7 @@
, rtmpSupport ? true, rtmpdump , rtmpSupport ? true, rtmpdump
, sambaSupport ? true, samba , sambaSupport ? true, samba
, udevSupport ? true, udev , udevSupport ? true, udev
, opticalSupport ? true
, usbSupport ? false, libusb-compat-0_1 , usbSupport ? false, libusb-compat-0_1
, vdpauSupport ? true, libvdpau , vdpauSupport ? true, libvdpau
, waylandSupport ? false, wayland, wayland-protocols , waylandSupport ? false, wayland, wayland-protocols
@ -40,10 +41,6 @@ assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is
assert gbmSupport || waylandSupport || x11Support; assert gbmSupport || waylandSupport || x11Support;
let let
kodiReleaseDate = "20240405";
kodiVersion = "21.0";
rel = "Omega";
# see https://github.com/xbmc/xbmc/blob/${kodiVersion}-${rel}/tools/depends/target/ to get suggested versions for all dependencies # see https://github.com/xbmc/xbmc/blob/${kodiVersion}-${rel}/tools/depends/target/ to get suggested versions for all dependencies
# We can build these externally but FindLibDvd.cmake forces us to build it # We can build these externally but FindLibDvd.cmake forces us to build it
@ -70,17 +67,17 @@ let
}; };
groovy = fetchzip { groovy = fetchzip {
url = "https://archive.apache.org/dist/groovy/4.0.16/distribution/apache-groovy-binary-4.0.16.zip"; url = "mirror://apache/groovy/4.0.16/distribution/apache-groovy-binary-4.0.16.zip";
sha256 = "sha256-OfZBiMVrhw6VqHRHCSC7ZV3FiZ26n4+F8hsskk+L6yU="; sha256 = "sha256-OfZBiMVrhw6VqHRHCSC7ZV3FiZ26n4+F8hsskk+L6yU=";
}; };
apache_commons_lang = fetchzip { apache_commons_lang = fetchzip {
url = "https://dlcdn.apache.org//commons/lang/binaries/commons-lang3-3.14.0-bin.zip"; url = "mirror://apache/commons/lang/binaries/commons-lang3-3.14.0-bin.zip";
sha512 = "sha512-eKF1IQ6PDtifb4pMHWQ2SYHIh0HbMi3qpc92lfbOo3uSsFJVR3n7JD0AdzrG17tLJQA4z5PGDhwyYw0rLeLsXw=="; sha512 = "sha512-eKF1IQ6PDtifb4pMHWQ2SYHIh0HbMi3qpc92lfbOo3uSsFJVR3n7JD0AdzrG17tLJQA4z5PGDhwyYw0rLeLsXw==";
}; };
apache_commons_text = fetchzip { apache_commons_text = fetchzip {
url = "https://dlcdn.apache.org//commons/text/binaries/commons-text-1.11.0-bin.zip"; url = "mirror://apache/commons/text/binaries/commons-text-1.11.0-bin.zip";
sha512 = "sha512-P2IvnrHSYRF70LllTMI8aev43h2oe8lq6rrMYw450PEhEa7OuuCjh1Krnc/A4OqENUcidVAAX5dK1RAsZHh8Dg=="; sha512 = "sha512-P2IvnrHSYRF70LllTMI8aev43h2oe8lq6rrMYw450PEhEa7OuuCjh1Krnc/A4OqENUcidVAAX5dK1RAsZHh8Dg==";
}; };
@ -88,17 +85,23 @@ let
++ lib.optional waylandSupport "wayland" ++ lib.optional waylandSupport "wayland"
++ lib.optional x11Support "x11"; ++ lib.optional x11Support "x11";
in stdenv.mkDerivation { in stdenv.mkDerivation (finalAttrs: {
pname = "kodi"; pname = "kodi";
version = kodiVersion; version = "21.0";
kodiReleaseName = "Omega";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "xbmc"; repo = "xbmc";
rev = "${kodiVersion}-${rel}"; rev = "${finalAttrs.version}-${finalAttrs.kodiReleaseName}";
hash = "sha256-xrFWqgwTkurEwt3/+/e4SCM6Uk9nxuW62SrCFWWqZO0="; hash = "sha256-xrFWqgwTkurEwt3/+/e4SCM6Uk9nxuW62SrCFWWqZO0=";
}; };
# make derivations declared in the let binding available here, so
# they can be overridden
inherit libdvdcss libdvdnav libdvdread groovy
apache_commons_lang apache_commons_text;
buildInputs = [ buildInputs = [
gnutls libidn2 libtasn1 nasm p11-kit gnutls libidn2 libtasn1 nasm p11-kit
libxml2 python3Packages.python libxml2 python3Packages.python
@ -168,17 +171,20 @@ in stdenv.mkDerivation {
cmakeFlags = [ cmakeFlags = [
"-DAPP_RENDER_SYSTEM=${if gbmSupport then "gles" else "gl"}" "-DAPP_RENDER_SYSTEM=${if gbmSupport then "gles" else "gl"}"
"-Dlibdvdcss_URL=${libdvdcss}" "-Dlibdvdcss_URL=${finalAttrs.libdvdcss}"
"-Dlibdvdnav_URL=${libdvdnav}" "-Dlibdvdnav_URL=${finalAttrs.libdvdnav}"
"-Dlibdvdread_URL=${libdvdread}" "-Dlibdvdread_URL=${finalAttrs.libdvdread}"
"-Dgroovy_SOURCE_DIR=${groovy}" "-Dgroovy_SOURCE_DIR=${finalAttrs.groovy}"
"-Dapache-commons-lang_SOURCE_DIR=${apache_commons_lang}" "-Dapache-commons-lang_SOURCE_DIR=${finalAttrs.apache_commons_lang}"
"-Dapache-commons-text_SOURCE_DIR=${apache_commons_text}" "-Dapache-commons-text_SOURCE_DIR=${finalAttrs.apache_commons_text}"
"-DGIT_VERSION=${kodiReleaseDate}" # Upstream derives this from the git HEADs hash and date.
# LibreElec (minimal distro for kodi) uses the equivalent to this.
"-DGIT_VERSION=${finalAttrs.version}-${finalAttrs.kodiReleaseName}"
"-DENABLE_EVENTCLIENTS=ON" "-DENABLE_EVENTCLIENTS=ON"
"-DENABLE_INTERNAL_CROSSGUID=OFF" "-DENABLE_INTERNAL_CROSSGUID=OFF"
"-DENABLE_INTERNAL_RapidJSON=OFF" "-DENABLE_INTERNAL_RapidJSON=OFF"
"-DENABLE_OPTICAL=ON" "-DENABLE_OPTICAL=${if opticalSupport then "ON" else "OFF"}"
"-DENABLE_VDPAU=${if vdpauSupport then "ON" else "OFF"}"
"-DLIRC_DEVICE=/run/lirc/lircd" "-DLIRC_DEVICE=/run/lirc/lircd"
"-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig" "-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
"-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc" "-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
@ -221,7 +227,8 @@ in stdenv.mkDerivation {
--prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ] --prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ]
++ lib.optional x11Support xdpyinfo ++ lib.optional sambaSupport samba)}" \ ++ lib.optional x11Support xdpyinfo ++ lib.optional sambaSupport samba)}" \
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
([ curl systemd libmad libvdpau libcec libcec_platform libass ] ([ curl systemd libmad libcec libcec_platform libass ]
++ lib.optional vdpauSupport libvdpau
++ lib.optional nfsSupport libnfs ++ lib.optional nfsSupport libnfs
++ lib.optional rtmpSupport rtmpdump)}" ++ lib.optional rtmpSupport rtmpdump)}"
done done
@ -240,6 +247,7 @@ in stdenv.mkDerivation {
passthru = { passthru = {
pythonPackages = python3Packages; pythonPackages = python3Packages;
ffmpeg = ffmpeg; ffmpeg = ffmpeg;
kodi = finalAttrs.finalPackage;
}; };
meta = with lib; { meta = with lib; {
@ -249,4 +257,4 @@ in stdenv.mkDerivation {
platforms = platforms.linux; platforms = platforms.linux;
maintainers = teams.kodi.members; maintainers = teams.kodi.members;
}; };
} })

View File

@ -64,13 +64,13 @@ let
in in
buildGoModule rec { buildGoModule rec {
pname = "podman"; pname = "podman";
version = "5.0.1"; version = "5.0.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containers"; owner = "containers";
repo = "podman"; repo = "podman";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-XgLrPLswLmaB9FYXKEMLP+7KT/OY50z3JKz8DvMLrEE="; hash = "sha256-8Swqwyzu/WI9mG21bLF81Kk4kS2Ltg0GV9G3EcG/FnU=";
}; };
patches = [ patches = [

View File

@ -8,7 +8,8 @@
{ name ? "" { name ? ""
, lib , lib
, stdenvNoCC , stdenvNoCC
, bintools ? null, libc ? null, coreutils ? null, shell ? stdenvNoCC.shell, gnugrep ? null , runtimeShell
, bintools ? null, libc ? null, coreutils ? null, gnugrep ? null
, netbsd ? null, netbsdCross ? null , netbsd ? null, netbsdCross ? null
, sharedLibraryLoader ? , sharedLibraryLoader ?
if libc == null then if libc == null then
@ -28,7 +29,7 @@
, isGNU ? bintools.isGNU or false , isGNU ? bintools.isGNU or false
, isLLVM ? bintools.isLLVM or false , isLLVM ? bintools.isLLVM or false
, isCCTools ? bintools.isCCTools or false , isCCTools ? bintools.isCCTools or false
, buildPackages ? {} , expand-response-params
, targetPackages ? {} , targetPackages ? {}
, useMacosReexportHack ? false , useMacosReexportHack ? false
, wrapGas ? false , wrapGas ? false
@ -83,8 +84,7 @@ let
replaceStrings replaceStrings
; ;
stdenv = stdenvNoCC; inherit (stdenvNoCC) hostPlatform targetPlatform;
inherit (stdenv) hostPlatform targetPlatform;
# Prefix for binaries. Customarily ends with a dash separator. # Prefix for binaries. Customarily ends with a dash separator.
# #
@ -132,13 +132,9 @@ let
else if hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1" else if hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"
else ""; else "";
expand-response-params =
optionalString (buildPackages ? stdenv && buildPackages.stdenv.hasCC && buildPackages.stdenv.cc != "/dev/null")
(import ../expand-response-params { inherit (buildPackages) stdenv; });
in in
stdenv.mkDerivation { stdenvNoCC.mkDerivation {
pname = targetPrefix pname = targetPrefix
+ (if name != "" then name else "${bintoolsName}-wrapper"); + (if name != "" then name else "${bintoolsName}-wrapper");
version = optionalString (bintools != null) bintoolsVersion; version = optionalString (bintools != null) bintoolsVersion;
@ -346,7 +342,7 @@ stdenv.mkDerivation {
done done
'' ''
+ optionalString stdenv.targetPlatform.isDarwin '' + optionalString targetPlatform.isDarwin ''
echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/libc-ldflags echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/libc-ldflags
'' ''
@ -363,7 +359,7 @@ stdenv.mkDerivation {
### ###
### Remove certain timestamps from final binaries ### Remove certain timestamps from final binaries
### ###
+ optionalString (stdenv.targetPlatform.isDarwin && !(bintools.isGNU or false)) '' + optionalString (targetPlatform.isDarwin && !(bintools.isGNU or false)) ''
echo "export ZERO_AR_DATE=1" >> $out/nix-support/setup-hook echo "export ZERO_AR_DATE=1" >> $out/nix-support/setup-hook
'' ''
@ -380,9 +376,9 @@ stdenv.mkDerivation {
### ###
### Ensure consistent LC_VERSION_MIN_MACOSX ### Ensure consistent LC_VERSION_MIN_MACOSX
### ###
+ optionalString stdenv.targetPlatform.isDarwin ( + optionalString targetPlatform.isDarwin (
let let
inherit (stdenv.targetPlatform) inherit (targetPlatform)
darwinPlatform darwinSdkVersion darwinPlatform darwinSdkVersion
darwinMinVersion darwinMinVersionVariable; darwinMinVersion darwinMinVersionVariable;
in '' in ''
@ -419,8 +415,10 @@ stdenv.mkDerivation {
env = { env = {
# for substitution in utils.bash # for substitution in utils.bash
# TODO(@sternenseemann): invent something cleaner than passing in "" in case of absence
expandResponseParams = "${expand-response-params}/bin/expand-response-params"; expandResponseParams = "${expand-response-params}/bin/expand-response-params";
shell = getBin shell + shell.shellPath or ""; # TODO(@sternenseemann): rename env var via stdenv rebuild
shell = (getBin runtimeShell + runtimeShell.shellPath or "");
gnugrep_bin = optionalString (!nativeTools) gnugrep; gnugrep_bin = optionalString (!nativeTools) gnugrep;
wrapperName = "BINTOOLS_WRAPPER"; wrapperName = "BINTOOLS_WRAPPER";
inherit dynamicLinker targetPrefix suffixSalt coreutils_bin; inherit dynamicLinker targetPrefix suffixSalt coreutils_bin;

View File

@ -8,14 +8,15 @@
{ name ? "" { name ? ""
, lib , lib
, stdenvNoCC , stdenvNoCC
, cc ? null, libc ? null, bintools, coreutils ? null, shell ? stdenvNoCC.shell , runtimeShell
, cc ? null, libc ? null, bintools, coreutils ? null
, zlib ? null , zlib ? null
, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? "" , nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
, propagateDoc ? cc != null && cc ? man , propagateDoc ? cc != null && cc ? man
, extraTools ? [], extraPackages ? [], extraBuildCommands ? "" , extraTools ? [], extraPackages ? [], extraBuildCommands ? ""
, nixSupport ? {} , nixSupport ? {}
, isGNU ? false, isClang ? cc.isClang or false, isCcache ? cc.isCcache or false, gnugrep ? null , isGNU ? false, isClang ? cc.isClang or false, isCcache ? cc.isCcache or false, gnugrep ? null
, buildPackages ? {} , expand-response-params
, libcxx ? null , libcxx ? null
# Whether or not to add `-B` and `-L` to `nix-support/cc-{c,ld}flags` # Whether or not to add `-B` and `-L` to `nix-support/cc-{c,ld}flags`
@ -82,9 +83,7 @@ let
versionAtLeast versionAtLeast
; ;
inherit (stdenv) hostPlatform targetPlatform; inherit (stdenvNoCC) hostPlatform targetPlatform;
stdenv = stdenvNoCC;
includeFortifyHeaders' = if includeFortifyHeaders != null includeFortifyHeaders' = if includeFortifyHeaders != null
then includeFortifyHeaders then includeFortifyHeaders
@ -114,15 +113,12 @@ let
# unstable implementation detail, however. # unstable implementation detail, however.
suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config; suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config;
expand-response-params =
optionalString ((buildPackages.stdenv.hasCC or false) && buildPackages.stdenv.cc != "/dev/null") (import ../expand-response-params { inherit (buildPackages) stdenv; });
useGccForLibs = useCcForLibs useGccForLibs = useCcForLibs
&& libcxx == null && libcxx == null
&& !stdenv.targetPlatform.isDarwin && !targetPlatform.isDarwin
&& !(stdenv.targetPlatform.useLLVM or false) && !(targetPlatform.useLLVM or false)
&& !(stdenv.targetPlatform.useAndroidPrebuilt or false) && !(targetPlatform.useAndroidPrebuilt or false)
&& !(stdenv.targetPlatform.isiOS or false) && !(targetPlatform.isiOS or false)
&& gccForLibs != null; && gccForLibs != null;
gccForLibs_solib = getLib gccForLibs gccForLibs_solib = getLib gccForLibs
+ optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}"; + optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}";
@ -249,17 +245,17 @@ let
then cc.hardeningUnsupportedFlagsByTargetPlatform targetPlatform then cc.hardeningUnsupportedFlagsByTargetPlatform targetPlatform
else (cc.hardeningUnsupportedFlags or []); else (cc.hardeningUnsupportedFlags or []);
darwinPlatformForCC = optionalString stdenv.targetPlatform.isDarwin ( darwinPlatformForCC = optionalString targetPlatform.isDarwin (
if (targetPlatform.darwinPlatform == "macos" && isGNU) then "macosx" if (targetPlatform.darwinPlatform == "macos" && isGNU) then "macosx"
else targetPlatform.darwinPlatform else targetPlatform.darwinPlatform
); );
darwinMinVersion = optionalString stdenv.targetPlatform.isDarwin ( darwinMinVersion = optionalString targetPlatform.isDarwin (
stdenv.targetPlatform.darwinMinVersion targetPlatform.darwinMinVersion
); );
darwinMinVersionVariable = optionalString stdenv.targetPlatform.isDarwin darwinMinVersionVariable = optionalString targetPlatform.isDarwin
stdenv.targetPlatform.darwinMinVersionVariable; targetPlatform.darwinMinVersionVariable;
in in
assert includeFortifyHeaders' -> fortify-headers != null; assert includeFortifyHeaders' -> fortify-headers != null;
@ -272,7 +268,7 @@ assert nativeTools == bintools.nativeTools;
assert nativeLibc == bintools.nativeLibc; assert nativeLibc == bintools.nativeLibc;
assert nativePrefix == bintools.nativePrefix; assert nativePrefix == bintools.nativePrefix;
stdenv.mkDerivation { stdenvNoCC.mkDerivation {
pname = targetPrefix pname = targetPrefix
+ (if name != "" then name else "${ccName}-wrapper"); + (if name != "" then name else "${ccName}-wrapper");
version = optionalString (cc != null) ccVersion; version = optionalString (cc != null) ccVersion;
@ -299,6 +295,9 @@ stdenv.mkDerivation {
'(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)})) '(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)}))
''; '';
# Expose expand-response-params we are /actually/ using. In stdenv
# bootstrapping, expand-response-params usually comes from an earlier stage,
# so it is important to expose this for reference checking.
inherit expand-response-params; inherit expand-response-params;
inherit nixSupport; inherit nixSupport;
@ -426,7 +425,7 @@ stdenv.mkDerivation {
../setup-hooks/role.bash ../setup-hooks/role.bash
] ++ optional (cc.langC or true) ./setup-hook.sh ] ++ optional (cc.langC or true) ./setup-hook.sh
++ optional (cc.langFortran or false) ./fortran-hook.sh ++ optional (cc.langFortran or false) ./fortran-hook.sh
++ optional (targetPlatform.isWindows) (stdenv.mkDerivation { ++ optional (targetPlatform.isWindows) (stdenvNoCC.mkDerivation {
name = "win-dll-hook.sh"; name = "win-dll-hook.sh";
dontUnpack = true; dontUnpack = true;
installPhase = '' installPhase = ''
@ -479,8 +478,8 @@ stdenv.mkDerivation {
# break `useLLVM` into.) # break `useLLVM` into.)
+ optionalString (isClang + optionalString (isClang
&& targetPlatform.isLinux && targetPlatform.isLinux
&& !(stdenv.targetPlatform.useAndroidPrebuilt or false) && !(targetPlatform.useAndroidPrebuilt or false)
&& !(stdenv.targetPlatform.useLLVM or false) && !(targetPlatform.useLLVM or false)
&& gccForLibs != null) ('' && gccForLibs != null) (''
echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
@ -689,7 +688,7 @@ stdenv.mkDerivation {
done done
'' ''
+ optionalString stdenv.targetPlatform.isDarwin '' + optionalString targetPlatform.isDarwin ''
echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags
'' ''
@ -740,8 +739,10 @@ stdenv.mkDerivation {
inherit isClang; inherit isClang;
# for substitution in utils.bash # for substitution in utils.bash
# TODO(@sternenseemann): invent something cleaner than passing in "" in case of absence
expandResponseParams = "${expand-response-params}/bin/expand-response-params"; expandResponseParams = "${expand-response-params}/bin/expand-response-params";
shell = getBin shell + shell.shellPath or ""; # TODO(@sternenseemann): rename env var via stdenv rebuild
shell = getBin runtimeShell + runtimeShell.shellPath or "";
gnugrep_bin = optionalString (!nativeTools) gnugrep; gnugrep_bin = optionalString (!nativeTools) gnugrep;
# stdenv.cc.cc should not be null and we have nothing better for now. # stdenv.cc.cc should not be null and we have nothing better for now.
# if the native impure bootstrap is gotten rid of this can become `inherit cc;` again. # if the native impure bootstrap is gotten rid of this can become `inherit cc;` again.

View File

@ -1,4 +1,4 @@
{ stdenv }: { stdenv, lib }:
# A "response file" is a sequence of arguments that is passed via a # A "response file" is a sequence of arguments that is passed via a
# file, rather than via argv[]. # file, rather than via argv[].
@ -25,4 +25,18 @@ stdenv.mkDerivation {
mkdir -p $prefix/bin mkdir -p $prefix/bin
mv expand-response-params $prefix/bin/ mv expand-response-params $prefix/bin/
''; '';
meta = {
description = "Internal tool used by the nixpkgs wrapper scripts for processing response files";
longDescription = ''
expand-response-params is a tool that allows for obtaining a full list of all
arguments passed in a given compiler command line including those passed via
so-called response files. The nixpkgs wrapper scripts for bintools and C
compilers use it for processing compiler flags. As it is developed in
conjunction with the nixpkgs wrapper scripts, it should be considered as
unstable and subject to change.
'';
license = lib.licenses.mit;
platforms = lib.platforms.all;
};
} }

View File

@ -0,0 +1,54 @@
{ lib
, stdenvNoCC
, fetchurl
, undmg
, writeShellApplication
, curl
, common-updater-scripts
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "arc-browser";
version = "1.38.0-48670";
src = fetchurl {
url = "https://releases.arc.net/release/Arc-${finalAttrs.version}.dmg";
hash = "sha256-6LJEIkr1NA8HHxbLWtd/OTlPPErh05UTjVhjuZVcmTg=";
};
nativeBuildInputs = [ undmg ];
sourceRoot = "Arc.app";
installPhase = ''
runHook preInstall
mkdir -p $out/Applications/Arc.app
cp -R . $out/Applications/Arc.app
runHook postInstall
'';
passthru.updateScript = lib.getExe (writeShellApplication {
name = "arc-browser-update-script";
runtimeInputs = [ curl common-updater-scripts ];
text = ''
set -euo pipefail
redirect_url="$(curl -s -L -f "https://releases.arc.net/release/Arc-latest.dmg" -o /dev/null -w '%{url_effective}')"
# The url scheme is: https://releases.arc.net/release/Arc-1.23.4-56789.dmg
# We strip everything before 'Arc-' and after '.dmg'
version="''${redirect_url##*/Arc-}"
version="''${version%.dmg}"
update-source-version arc-browser "$version" --file=./pkgs/by-name/ar/arc-browser/package.nix
'';
});
meta = {
description = "Arc from The Browser Company";
homepage = "https://arc.net/";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ donteatoreo ];
platforms = [ "aarch64-darwin" "x86_64-darwin" ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@ -13,10 +13,10 @@ let
}.${system} or throwSystem; }.${system} or throwSystem;
hash = { hash = {
x86_64-linux = "sha256-AHjR6lHszYqZ2yC/uY2DmB67xMUFZliqI29Ptes2SoY="; x86_64-linux = "sha256-6sIYDI6+1/p54Af+E/GmRAFlfDYJVwxhn0qF47ZH+Zg=";
aarch64-linux = "sha256-2NYlec6gpVMJwZctEqwn5rQiTrb5PmaxEz3lQxF1qmk="; aarch64-linux = "sha256-1ImcjAqCZm5KZZYHWhG1eO7ipAdrP4Qjj2eBxTst++s=";
x86_64-darwin = "sha256-OeMbO2lDK6XUF3ht+09ZWOL7UsEEVTrKyXOfhny8DhM="; x86_64-darwin = "sha256-yHthItxZYFejJlwJJ7BrM2csnLsZXjy/IbzF1iaCCyI=";
aarch64-darwin = "sha256-4CQvJkd3kI7XJz46QsSUBtWLmxDu7AcAJwRS3amv0SM="; aarch64-darwin = "sha256-GIx0yABISj/rH/yVkkx6NBs5qF0P8nhpMyvnzXJ92mA=";
}.${system} or throwSystem; }.${system} or throwSystem;
bin = "$out/bin/codeium_language_server"; bin = "$out/bin/codeium_language_server";
@ -24,7 +24,7 @@ let
in in
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "codeium"; pname = "codeium";
version = "1.8.22"; version = "1.8.25";
src = fetchurl { src = fetchurl {
name = "${finalAttrs.pname}-${finalAttrs.version}.gz"; name = "${finalAttrs.pname}-${finalAttrs.version}.gz";
url = "https://github.com/Exafunction/codeium/releases/download/language-server-v${finalAttrs.version}/language_server_${plat}.gz"; url = "https://github.com/Exafunction/codeium/releases/download/language-server-v${finalAttrs.version}/language_server_${plat}.gz";

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "converseen"; pname = "converseen";
version = "0.12.1.0"; version = "0.12.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Faster3ck"; owner = "Faster3ck";
repo = "Converseen"; repo = "Converseen";
rev = "refs/tags/v${finalAttrs.version}"; rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-WGOmnaO9IAcsOg5W2kJ1dxOk1ndn6InCVVN4FTehKTk="; hash = "sha256-nAX5o+rqQCwBTizqwLPewmhlYQbxlPj158U+v3Z08fQ=";
}; };
strictDeps = true; strictDeps = true;

View File

@ -6,16 +6,16 @@
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "emacs-lsp-booster"; pname = "emacs-lsp-booster";
version = "0.2.0"; version = "0.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "blahgeek"; owner = "blahgeek";
repo = "emacs-lsp-booster"; repo = "emacs-lsp-booster";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-DmEnuAR/OtTdKApEWCdOPAJplT29kuM6ZSHeOnQVo/c="; hash = "sha256-uP/xJfXQtk8oaG5Zk+dw+C2fVFdjpUZTDASFuj1+eYs=";
}; };
cargoHash = "sha256-2wXsPkBl4InjbdYUiiQ+5fZFanLA88t5ApGZ4psfDqk="; cargoHash = "sha256-CvIJ56QrIzQULFeXYQXTpX9PoGx1/DWtgwzfJ+mljEI=";
nativeCheckInputs = [emacs]; # tests/bytecode_test nativeCheckInputs = [emacs]; # tests/bytecode_test

View File

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "fzf-make"; pname = "fzf-make";
version = "0.27.0"; version = "0.28.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kyu08"; owner = "kyu08";
repo = "fzf-make"; repo = "fzf-make";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-OgvPUk5q7DB9hakZzCUM2dlXMQzE/CGpg4pMDQCk7k0="; hash = "sha256-USBK3In/1Uor33wrab1iTt0akQTcjuHd7I86XfERzzg=";
}; };
cargoHash = "sha256-MTOafmrlaW8WNUqsG2c/WnbG9ZKbq9zdou6buB4Qo/k="; cargoHash = "sha256-zEcll6X0iclDap40bQ1CXuVBQnVin8VwjpErm+/B0ZY=";
nativeBuildInputs = [ makeBinaryWrapper ]; nativeBuildInputs = [ makeBinaryWrapper ];

View File

@ -38,7 +38,8 @@ python3.pkgs.buildPythonApplication rec {
python-dateutil python-dateutil
rich rich
trio trio
]; packaging
] ++ httpx.optional-dependencies.http2;
# Project has no tests # Project has no tests
doCheck = false; doCheck = false;

View File

@ -3,9 +3,7 @@
, fetchFromGitHub , fetchFromGitHub
, stdenv , stdenv
, pkg-config , pkg-config
, AppKit , darwin
, Cocoa
, Security
, installShellFiles , installShellFiles
, installShellCompletions ? stdenv.hostPlatform == stdenv.buildPlatform , installShellCompletions ? stdenv.hostPlatform == stdenv.buildPlatform
, installManPages ? stdenv.hostPlatform == stdenv.buildPlatform , installManPages ? stdenv.hostPlatform == stdenv.buildPlatform
@ -16,26 +14,34 @@
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
# Learn more about available cargo features at:
# - <https://pimalaya.org/himalaya/cli/latest/installation.html#cargo>
inherit buildNoDefaultFeatures buildFeatures; inherit buildNoDefaultFeatures buildFeatures;
pname = "himalaya"; pname = "himalaya";
version = "1.0.0-beta.3"; version = "1.0.0-beta.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "soywod"; owner = "soywod";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-B7eswDq4tKyg881i3pLd6h+HsObK0c2dQnYuvPAGJHk="; hash = "sha256-NrWBg0sjaz/uLsNs8/T4MkUgHOUvAWRix1O5usKsw6o=";
}; };
cargoSha256 = "jOzuCXsrtXp8dmJTBqrEq4nog6smEPbdsFAy+ruPtY8="; cargoSha256 = "YS8IamapvmdrOPptQh2Ef9Yold0IK1XIeGs0kDIQ5b8=";
nativeBuildInputs = [ ] NIX_LDFLAGS = lib.optionals stdenv.isDarwin [
"-F${darwin.apple_sdk.frameworks.AppKit}/Library/Frameworks"
"-framework"
"AppKit"
];
nativeBuildInputs = [ pkg-config ]
++ lib.optional (builtins.elem "pgp-gpg" buildFeatures) pkg-config ++ lib.optional (builtins.elem "pgp-gpg" buildFeatures) pkg-config
++ lib.optional (installManPages || installShellCompletions) installShellFiles; ++ lib.optional (installManPages || installShellCompletions) installShellFiles;
buildInputs = [ ] buildInputs = [ ]
++ lib.optionals stdenv.isDarwin [ AppKit Cocoa Security ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit Cocoa Security ])
++ lib.optional (builtins.elem "notmuch" buildFeatures) notmuch ++ lib.optional (builtins.elem "notmuch" buildFeatures) notmuch
++ lib.optional (builtins.elem "pgp-gpg" buildFeatures) gpgme; ++ lib.optional (builtins.elem "pgp-gpg" buildFeatures) gpgme;

View File

@ -13,16 +13,17 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "i2p"; pname = "i2p";
version = "2.4.0"; version = "2.5.0";
src = fetchzip { src = fetchzip {
urls = map (mirror: "${mirror}${finalAttrs.version}/i2psource_${finalAttrs.version}.tar.bz2") [ urls = [
"https://github.com/i2p/i2p.i2p/releases/download/i2p-" "https://github.com/i2p/i2p.i2p/archive/i2p-${finalAttrs.version}.tar.gz"
] ++ (map (mirror: "${mirror}${finalAttrs.version}/i2psource_${finalAttrs.version}.tar.bz2") [
"https://download.i2p2.de/releases/" "https://download.i2p2.de/releases/"
"https://files.i2p-projekt.de/" "https://files.i2p-projekt.de/"
"https://download.i2p2.no/releases/" "https://download.i2p2.no/releases/"
]; ]);
hash = "sha256-RESN1qA/SD9MajUSJyXssNZnph2XZge7xr2kTgOp5V4="; hash = "sha256-mGBt2BrHU2ETV3jRay5tEpMJEO3b3K6BlBjYZNedtEA=";
}; };
strictDeps = true; strictDeps = true;

View File

@ -10,16 +10,16 @@
buildNpmPackage rec { buildNpmPackage rec {
pname = "igir"; pname = "igir";
version = "2.6.2"; version = "2.6.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "emmercm"; owner = "emmercm";
repo = "igir"; repo = "igir";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-bJPUGB9fyeOb5W9EzQldh4rRJQBat58MgjjfS1qh66w="; hash = "sha256-0WA+7qw5ZuELHc8P0yizV+kEwSmoUBmgReM8ZosGnqs=";
}; };
npmDepsHash = "sha256-q8gpx5zwiO/7ZBB/YruhCUgukp71sfJju8nmF6SwTrc="; npmDepsHash = "sha256-UfTq7/da1V9ubHh2wGvktP/SiWfyL8yF9iuCOq8Hxwg=";
# I have no clue why I have to do this # I have no clue why I have to do this
postPatch = '' postPatch = ''

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "littlefs-fuse"; pname = "littlefs-fuse";
version = "2.7.6"; version = "2.7.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "littlefs-project"; owner = "littlefs-project";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-iN6Ny1H7CyBzBRJyYKbXuzkap7+u+6tVkXo7Vnp1WV8="; hash = "sha256-MCmi0CBs3RLuYn+1BsS6pIeR/tHS1lGNyV3ZwlsnQCA=";
}; };
buildInputs = [ fuse ]; buildInputs = [ fuse ];
installPhase = '' installPhase = ''

View File

@ -5,16 +5,16 @@
buildGoModule rec { buildGoModule rec {
pname = "livekit"; pname = "livekit";
version = "1.5.3"; version = "1.6.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "livekit"; owner = "livekit";
repo = "livekit"; repo = "livekit";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-2MooX+wy7KetxEBgQoVoL4GuVkm+SbTzYgfWyLL7KU8="; hash = "sha256-tgoVHRv8hnDkjFYShZ/3lieknhIobHv27RVvQOCtEWU=";
}; };
vendorHash = "sha256-8YR0Bl+sQsqpFtD+1GeYaydBdHeM0rRL2NbgAh9kCj0="; vendorHash = "sha256-TZ435gu5naFi/JLz6B/1fpvGA3diJp4JIWL1zgNlb4Q=";
subPackages = [ "cmd/server" ]; subPackages = [ "cmd/server" ];

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec{ rustPlatform.buildRustPackage rec{
pname = "makima"; pname = "makima";
version = "0.4.4"; version = "0.5.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cyber-sushi"; owner = "cyber-sushi";
repo = "makima"; repo = "makima";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-3S4J4fdCn/eqgT9g0WmS5kQHr7LysBn03RzHvagm5jg="; hash = "sha256-x8vjTXB6kFJ9o6EGCtlX6eT/VrzLF17fIA2gDLFumzY=";
}; };
cargoHash = "sha256-YCs37IYiYxjh2uBZvHliDZRu68J4mXCCYpWlPHtw+0Q="; cargoHash = "sha256-p4oMeDL7T/a9OCgMdriGtgHkZq8tZVzPspEsU4IPfAo=";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ udev ]; buildInputs = [ udev ];

View File

@ -5,13 +5,13 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "markdown-oxide"; pname = "markdown-oxide";
version = "0.0.16"; version = "0.0.17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Feel-ix-343"; owner = "Feel-ix-343";
repo = "markdown-oxide"; repo = "markdown-oxide";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-RCoyiEkaTDbLtkMWSCM9nOHURHw5D7vsnr/yl91CuVQ="; hash = "sha256-bJlyzBnxUw1OyWLbVEFXgPc/YjmfyyQjfeGAA7G1QlY=";
}; };
cargoLock = { cargoLock = {

View File

@ -1,7 +1,7 @@
{ lib, buildGoModule, fetchFromGitHub, nix-update-script { lib, buildGoModule, fetchFromGitHub, nix-update-script
}: }:
let let
version = "0.0.42"; version = "0.0.43";
in in
buildGoModule { buildGoModule {
@ -13,10 +13,10 @@ buildGoModule {
repo = "mcap"; repo = "mcap";
owner = "foxglove"; owner = "foxglove";
rev = "releases/mcap-cli/v${version}"; rev = "releases/mcap-cli/v${version}";
hash = "sha256-9fjzMUMWn5j8AJJq+tK+Hq0o8d3HpacitJZ5CfLiaLw="; hash = "sha256-AWmPqymnNZxKbhxiQOO9djQXbP56mNh9Ucmty2jd+4Q=";
}; };
vendorHash = "sha256-Gl0zLBTWscKGtVOS6rPRL/r8KHYHpZwoUDbEyCL4Ijk="; vendorHash = "sha256-YFbfrqu2H7yU6vANH56MnxipDxaJLT76qZkvqLCFTTg=";
modRoot = "go/cli/mcap"; modRoot = "go/cli/mcap";

View File

@ -0,0 +1,32 @@
{ lib
, rustPlatform
, fetchFromGitHub
, stdenv
, darwin
}:
rustPlatform.buildRustPackage rec {
pname = "mpris-notifier";
version = "0.1.7";
src = fetchFromGitHub {
owner = "l1na-forever";
repo = "mpris-notifier";
rev = "v${version}";
hash = "sha256-B1nfVsn95oe2FlHFjb9O4tfL/EqsZZ4JGF0mbJcCg2Y=";
};
cargoHash = "sha256-8WzG712/soPgooyR35L8aFIRfPC2MvV3vCcPbkTgoF0=";
buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
];
meta = with lib; {
description = "Dependency-light, highly-customizable, XDG desktop notification generator for MPRIS status changes";
homepage = "https://github.com/l1na-forever/mpris-notifier";
license = licenses.mit;
maintainers = with maintainers; [ leixb ];
mainProgram = "mpris-notifier";
};
}

View File

@ -0,0 +1,44 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, wrapGAppsHook
, libpulseaudio
, glib
, pango
, gtk3
}:
rustPlatform.buildRustPackage rec {
pname = "myxer";
version = "1.3.0";
src = fetchFromGitHub {
owner = "Aurailus";
repo = "myxer";
rev = version;
hash = "sha256-c5SHjnhWLp0jMdmDlupMTA0hWphub5DFY1vOI6NW8E0=";
};
cargoHash = "sha256-IH+SLIHO/wu+przH+mgOEnH9m+iAE5s/BJhh0UUHR/0=";
nativeBuildInputs = [ pkg-config wrapGAppsHook ];
buildInputs = [ libpulseaudio glib pango gtk3 ];
postInstall = ''
install -Dm644 Myxer.desktop $out/share/applications/Myxer.desktop
'';
# Currently no tests are implemented, so we avoid building the package twice
doCheck = false;
meta = with lib; {
description = "A modern Volume Mixer for PulseAudio";
homepage = "https://github.com/Aurailus/Myxer";
license = licenses.gpl3Only;
maintainers = with maintainers; [ erin rster2002 ];
mainProgram = "myxer";
platforms = platforms.linux;
};
}

View File

@ -7,16 +7,16 @@
}: }:
buildGoModule rec { buildGoModule rec {
pname = "nezha-agent"; pname = "nezha-agent";
version = "0.16.4"; version = "0.16.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nezhahq"; owner = "nezhahq";
repo = "agent"; repo = "agent";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-xXv2FVPsl8BR51VMrFreaS3UQLEJwfObY4OeMMb8pms="; hash = "sha256-WRHYI3/6qrVZRa4ANA6VBBJCaINP1N8Xjy0GWO4LqgA=";
}; };
vendorHash = "sha256-ZlheRFgl3vsUXVx8PKZQ59kme2NC31OQAL6EaNhbf70="; vendorHash = "sha256-AtcRfvYBgTZJz9dpsMgacnV8RNi2Ph7QgUrcE6zzTo8=";
ldflags = [ ldflags = [
"-s" "-s"
@ -40,6 +40,6 @@ buildGoModule rec {
description = "Agent of Nezha Monitoring"; description = "Agent of Nezha Monitoring";
homepage = "https://github.com/nezhahq/agent"; homepage = "https://github.com/nezhahq/agent";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [moraxyc]; maintainers = with maintainers; [ moraxyc ];
}; };
} }

View File

@ -1,16 +1,17 @@
{ lib {
, buildGoModule lib,
, fetchFromGitHub buildGoModule,
fetchFromGitHub,
}: }:
buildGoModule rec { buildGoModule rec {
pname = "nom"; pname = "nom";
version = "2.1.4"; version = "2.1.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "guyfedwards"; owner = "guyfedwards";
repo = "nom"; repo = "nom";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-W0vfYAEQYixbnOQhA59sj2uSAcbqoS/OMiB3TfXsv/Y="; hash = "sha256-NOPzznopH+PeSEMzO1vMHOSbmy9/v2yT4VC4kAsdbGw";
}; };
vendorHash = "sha256-fP6yxfIQoVaBC9hYcrCyo3YP3ntEVDbDTwKMO9TdyDI="; vendorHash = "sha256-fP6yxfIQoVaBC9hYcrCyo3YP3ntEVDbDTwKMO9TdyDI=";

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "orchard"; pname = "orchard";
version = "0.16.1"; version = "0.17.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cirruslabs"; owner = "cirruslabs";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-wuLlxyCyMgtKBW5MD7HJM3q+tsXOBTjGyNYuV9jDbEg="; hash = "sha256-mOlAMlvWEdkPxvhqrt7PHJjmtUBRsFwsSchHRQtaACc=";
# populate values that require us to use git. By doing this in postFetch we # populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src. # can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true; leaveDotGit = true;

View File

@ -5,11 +5,11 @@
}: }:
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "proton-ge-bin"; pname = "proton-ge-bin";
version = "GE-Proton9-2"; version = "GE-Proton9-4";
src = fetchzip { src = fetchzip {
url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${finalAttrs.version}/${finalAttrs.version}.tar.gz"; url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${finalAttrs.version}/${finalAttrs.version}.tar.gz";
hash = "sha256-NqBzKonCYH+hNpVZzDhrVf+r2i6EwLG/IFBXjE2mC7s="; hash = "sha256-OR4SUqm5Xsycv/KVBW2Ug/lz4Xr6IQBp8gXacorRe3U=";
}; };
outputs = [ "out" "steamcompattool" ]; outputs = [ "out" "steamcompattool" ];

193
pkgs/by-name/py/pyright/package-lock.json generated Normal file
View File

@ -0,0 +1,193 @@
{
"name": "pyright-root",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "pyright-root",
"hasInstallScript": true,
"dependencies": {
"glob": "^7.2.3",
"jsonc-parser": "^3.2.1"
}
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/jsonc-parser": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
"integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
}
},
"dependencies": {
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"jsonc-parser": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
"integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
},
"minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"requires": {
"brace-expansion": "^1.1.7"
}
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"requires": {
"wrappy": "1"
}
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
}
}
}

View File

@ -0,0 +1,75 @@
{ lib, buildNpmPackage, fetchFromGitHub, runCommand, jq }:
let
version = "1.1.359";
src = fetchFromGitHub {
owner = "Microsoft";
repo = "pyright";
rev = "${version}";
hash = "sha256-gqMAfmYjYO6D9sRu+uJv4yJ/+csioFAwsUPBDF29VDs=";
};
patchedPackageJSON = runCommand "package.json" { } ''
${jq}/bin/jq '
.devDependencies |= with_entries(select(.key == "glob" or .key == "jsonc-parser"))
| .scripts = { }
' ${src}/package.json > $out
'';
pyright-root = buildNpmPackage {
pname = "pyright-root";
inherit version src;
npmDepsHash = "sha256-63kUhKrxtJhwGCRBnxBfOFXs2ARCNn+OOGu6+fSJey4=";
dontNpmBuild = true;
postPatch = ''
cp ${patchedPackageJSON} ./package.json
cp ${./package-lock.json} ./package-lock.json
'';
installPhase = ''
runHook preInstall
cp -r . "$out"
runHook postInstall
'';
};
pyright-internal = buildNpmPackage {
pname = "pyright-internal";
inherit version src;
sourceRoot = "${src.name}/packages/pyright-internal";
npmDepsHash = "sha256-p2KamNFJ3sJHmJm0MEPhI8L/8zAVzfc9NYy24rAdFcQ=";
dontNpmBuild = true;
installPhase = ''
runHook preInstall
cp -r . "$out"
runHook postInstall
'';
};
in
buildNpmPackage rec {
pname = "pyright";
inherit version src;
sourceRoot = "${src.name}/packages/pyright";
npmDepsHash = "sha256-U7WdMIYg9U4fJ8YtDruMzloRS2BQAa2QWExle9uwPbU=";
postPatch = ''
chmod +w ../../
ln -s ${pyright-root}/node_modules ../../node_modules
chmod +w ../pyright-internal
ln -s ${pyright-internal}/node_modules ../pyright-internal/node_modules
'';
dontNpmBuild = true;
passthru.updateScript = ./update.sh;
meta = {
changelog = "https://github.com/Microsoft/pyright/releases/tag/${version}";
description = "Type checker for the Python language";
homepage = "https://github.com/Microsoft/pyright";
license = lib.licenses.mit;
mainProgram = "pyright";
maintainers = with lib.maintainers; [ kalekseev ];
};
}

View File

@ -0,0 +1,44 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnused common-updater-scripts jq prefetch-npm-deps
set -euo pipefail
version=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s https://api.github.com/repos/microsoft/pyright/releases/latest | jq -r '.tag_name | sub("^v"; "")')
update-source-version pyright "$version"
root="$(dirname "$(readlink -f "$0")")"
FILE_PATH="$root/package.nix"
REPO_URL_PREFIX="https://github.com/microsoft/pyright/raw"
TEMP_DIR=$(mktemp -d)
trap 'rm -rf "$TEMP_DIR"' EXIT
# Function to download `package-lock.json` for a given source path and update hash
update_hash() {
local source_root_path="$1"
local existing_hash="$2"
# Formulate download URL
local download_url="${REPO_URL_PREFIX}/${version}${source_root_path}/package-lock.json"
# Download package-lock.json to temporary directory
curl -fsSL -o "${TEMP_DIR}/package-lock.json" "$download_url"
# Calculate the new hash
local new_hash
new_hash=$(prefetch-npm-deps "${TEMP_DIR}/package-lock.json")
# Update npmDepsHash in the original file
sed -i "s|$existing_hash|${new_hash}|" "$FILE_PATH"
}
while IFS= read -r source_root_line; do
[[ "$source_root_line" =~ sourceRoot ]] || continue
source_root_path=$(echo "$source_root_line" | sed -e 's/^.*"${src.name}\(.*\)";.*$/\1/')
# Extract the current npmDepsHash for this sourceRoot
existing_hash=$(grep -A1 "$source_root_line" "$FILE_PATH" | grep 'npmDepsHash' | sed -e 's/^.*npmDepsHash = "\(.*\)";$/\1/')
# Call the function to download and update the hash
update_hash "$source_root_path" "$existing_hash"
done < "$FILE_PATH"

View File

@ -0,0 +1,36 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, sqlite
}:
rustPlatform.buildRustPackage rec {
pname = "rippkgs";
version = "1.1.0";
src = fetchFromGitHub {
owner = "replit";
repo = "rippkgs";
rev = "refs/tags/v${version}";
hash = "sha256-qQZnD9meczfsQv1R68IiUfPq730I2IyesurrOhtA3es=";
};
cargoHash = "sha256-hGSHgJ2HVCNqTBsTQIZlSE89FKqdMifuJyAGl3utF2I=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
sqlite
];
meta = {
description = "A CLI for indexing and searching packages in Nix expressions";
homepage = "https://github.com/replit/rippkgs";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ eclairevoyant ];
mainProgram = "rippkgs";
};
}

View File

@ -0,0 +1,13 @@
diff --git a/snapcraft_legacy/internal/build_providers/_lxd/_lxd.py b/snapcraft_legacy/internal/build_providers/_lxd/_lxd.py
index 5fa4f898..41264ebb 100644
--- a/snapcraft_legacy/internal/build_providers/_lxd/_lxd.py
+++ b/snapcraft_legacy/internal/build_providers/_lxd/_lxd.py
@@ -142,7 +142,7 @@ class LXD(Provider):
build_provider_flags=build_provider_flags,
)
# This endpoint is hardcoded everywhere lxc/lxd-pkg-snap#33
- lxd_socket_path = "/var/snap/lxd/common/lxd/unix.socket"
+ lxd_socket_path = "/var/lib/lxd/unix.socket"
endpoint = "http+unix://{}".format(urllib.parse.quote(lxd_socket_path, safe=""))
try:
self._lxd_client: pylxd.Client = pylxd.Client(endpoint=endpoint)

View File

@ -0,0 +1,21 @@
diff --git a/snapcraft/utils.py b/snapcraft/utils.py
index 511effe2..4af5a029 100644
--- a/snapcraft/utils.py
+++ b/snapcraft/utils.py
@@ -15,6 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Utilities for snapcraft."""
+
import multiprocessing
import os
import pathlib
@@ -91,7 +92,7 @@ def get_os_platform(
release = platform.release()
machine = platform.machine()
- if system == "Linux":
+ if system == "Linux" and "NixOS" not in platform.version():
try:
with filepath.open("rt", encoding="utf-8") as release_file:
lines = release_file.readlines()

View File

@ -0,0 +1,188 @@
{
fetchFromGitHub,
git,
glibc,
lib,
makeWrapper,
nix-update-script,
python3Packages,
squashfsTools,
stdenv,
}:
python3Packages.buildPythonApplication rec {
pname = "snapcraft";
version = "8.2.0";
pyproject = true;
# Somewhere deep in the dependency tree is 'versioningit', which depends
# on pydantic 2. Snapcraft will soon migrate to pydantic 2, and disabling
# this doesn't seem to affect the functionality of the application.
catchConflicts = false;
src = fetchFromGitHub {
owner = "canonical";
repo = "snapcraft";
rev = "refs/tags/${version}";
hash = "sha256-uRapRL+492FOju83o3OBsYK52hwOOG6b4EbdMVpAlBs=";
};
patches = [
# Snapcraft is only officially distributed as a snap, as is LXD. The socket
# path for LXD must be adjusted so that it's at the correct location for LXD
# on NixOS. This patch will likely never be accepted upstream.
./lxd-socket-path.patch
# In certain places, Snapcraft expects an /etc/os-release file to determine
# host info which doesn't exist in our test environment. This is a
# relatively naive patch which helps the test suite pass - without it *many*
# of the tests fail. This patch will likely never be accepted upstream.
./os-platform.patch
# Snapcraft will try to inject itself as a snap *from the host system* into
# the build system. This patch short-circuits that logic and ensures that
# Snapcraft is installed on the build system from the snap store - because
# there is no snapd on NixOS hosts that can be used for the injection. This
# patch will likely never be accepted upstream.
./set-channel-for-nix.patch
# Certain paths (for extensions, schemas) are packaged in the snap by the
# upstream, so the paths are well-known, except here where Snapcraft is
# *not* in a snap, so this patch changes those paths to point to the correct
# place in the Nix store. This patch will likely never be accepted upstream.
./snapcraft-data-dirs.patch
];
postPatch = ''
substituteInPlace setup.py \
--replace-fail 'version=determine_version()' 'version="${version}"' \
--replace-fail 'gnupg' 'python-gnupg'
substituteInPlace requirements.txt \
--replace-fail 'gnupg==2.3.1' 'python-gnupg'
substituteInPlace snapcraft/__init__.py \
--replace-fail '__version__ = _get_version()' '__version__ = "${version}"'
substituteInPlace snapcraft_legacy/__init__.py \
--replace-fail '__version__ = _get_version()' '__version__ = "${version}"'
substituteInPlace snapcraft/elf/elf_utils.py \
--replace-fail 'arch_linker_path = Path(arch_config.dynamic_linker)' \
'return str(Path("${glibc}/lib/ld-linux-x86-64.so.2"))'
'';
buildInputs = [ makeWrapper ];
propagatedBuildInputs = with python3Packages; [
attrs
catkin-pkg
click
craft-application
craft-archives
craft-cli
craft-grammar
craft-parts
craft-providers
craft-store
debian
docutils
jsonschema
launchpadlib
lazr-restfulclient
lxml
macaroonbakery
mypy-extensions
progressbar
pyelftools
pygit2
pylxd
python-apt
python-gnupg
raven
requests-toolbelt
simplejson
snap-helpers
tabulate
tinydb
];
nativeBuildInputs = with python3Packages; [
pythonRelaxDepsHook
setuptools
];
pythonRelaxDeps = [
"docutils"
"jsonschema"
"pygit2"
"urllib3"
];
postInstall = ''
wrapProgram $out/bin/snapcraft --prefix PATH : ${squashfsTools}/bin
'';
nativeCheckInputs = with python3Packages; [
pytest-check
pytest-cov
pytest-mock
pytest-subprocess
pytestCheckHook
responses
] ++ [
git
squashfsTools
];
preCheck = ''
mkdir -p check-phase
export HOME="$(pwd)/check-phase"
'';
pytestFlagsArray = [ "tests/unit" ];
disabledTests = [
"test_bin_echo"
"test_classic_linter_filter"
"test_classic_linter"
"test_complex_snap_yaml"
"test_get_base_configuration_snap_channel"
"test_get_base_configuration_snap_instance_name_default"
"test_get_base_configuration_snap_instance_name_not_running_as_snap"
"test_get_extensions_data_dir"
"test_get_os_platform_alternative_formats"
"test_get_os_platform_linux"
"test_get_os_platform_windows"
"test_lifecycle_pack_components_with_output"
"test_lifecycle_pack_components"
"test_lifecycle_write_component_metadata"
"test_parse_info_integrated"
"test_patch_elf"
"test_remote_builder_init"
"test_setup_assets_remote_icon"
"test_snap_command_fallback"
"test_validate_architectures_supported"
"test_validate_architectures_unsupported"
] ++ lib.optionals stdenv.isAarch64 [
"test_load_project"
];
disabledTestPaths = [
"tests/unit/commands/test_remote.py"
"tests/unit/elf"
"tests/unit/linters/test_classic_linter.py"
"tests/unit/linters/test_library_linter.py"
"tests/unit/parts/test_parts.py"
"tests/unit/services"
];
passthru.updateScript = nix-update-script { };
meta = {
mainProgram = "snapcraft";
description = "Build and publish Snap packages";
homepage = "https://github.com/canonical/snapcraft";
changelog = "https://github.com/canonical/snapcraft/releases/tag/${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ jnsgruk ];
platforms = lib.platforms.linux;
};
}

View File

@ -0,0 +1,30 @@
diff --git a/snapcraft/providers.py b/snapcraft/providers.py
index a999537a..dcd290a7 100644
--- a/snapcraft/providers.py
+++ b/snapcraft/providers.py
@@ -21,6 +21,7 @@ import sys
from pathlib import Path
from textwrap import dedent
from typing import Dict, Optional
+import platform
from craft_cli import emit
from craft_providers import Provider, ProviderError, bases, executor
@@ -178,14 +179,14 @@ def get_base_configuration(
# injecting a snap on a non-linux system is not supported, so default to
# install snapcraft from the store's stable channel
snap_channel = get_managed_environment_snap_channel()
- if sys.platform != "linux" and not snap_channel:
+ if snap_channel is None and (sys.platform != "linux" or "NixOS" in platform.version()):
emit.progress(
- "Using snapcraft from snap store channel 'latest/stable' in instance "
+ "Using snapcraft from snap store channel 'latest/beta' in instance "
"because snap injection is only supported on Linux hosts.",
permanent=True,
)
snap_name = "snapcraft"
- snap_channel = "stable"
+ snap_channel = "beta"
elif is_snapcraft_running_from_snap():
# Use SNAP_INSTANCE_NAME for snapcraft's snap name, as it may not be
# 'snapcraft' if the '--name' parameter was used to install snapcraft.

View File

@ -0,0 +1,26 @@
diff --git a/snapcraft_legacy/internal/common.py b/snapcraft_legacy/internal/common.py
index 6017b405..aacd99a5 100644
--- a/snapcraft_legacy/internal/common.py
+++ b/snapcraft_legacy/internal/common.py
@@ -34,14 +34,17 @@ from snaphelpers import SnapConfigOptions, SnapCtlError
from snapcraft_legacy.internal import errors
+# Get the path to the Nix store entry for Snapcraft at runtime
+drv = os.path.realpath(__file__).split("/")[3]
+
SNAPCRAFT_FILES = ["parts", "stage", "prime"]
-_DEFAULT_PLUGINDIR = os.path.join(sys.prefix, "share", "snapcraft", "plugins")
+_DEFAULT_PLUGINDIR = os.path.join(os.sep, "nix", "store", drv, "share", "snapcraft", "plugins")
_plugindir = _DEFAULT_PLUGINDIR
-_DEFAULT_SCHEMADIR = os.path.join(sys.prefix, "share", "snapcraft", "schema")
+_DEFAULT_SCHEMADIR = os.path.join(os.sep, "nix", "store", drv, "share", "snapcraft", "schema")
_schemadir = _DEFAULT_SCHEMADIR
-_DEFAULT_EXTENSIONSDIR = os.path.join(sys.prefix, "share", "snapcraft", "extensions")
+_DEFAULT_EXTENSIONSDIR = os.path.join(os.sep, "nix", "store", drv, "share", "snapcraft", "extensions")
_extensionsdir = _DEFAULT_EXTENSIONSDIR
-_DEFAULT_KEYRINGSDIR = os.path.join(sys.prefix, "share", "snapcraft", "keyrings")
+_DEFAULT_KEYRINGSDIR = os.path.join(os.sep, "nix", "store", drv, "share", "snapcraft", "keyrings")
_keyringsdir = _DEFAULT_KEYRINGSDIR
_DOCKERENV_FILE = "/.dockerenv"

View File

@ -0,0 +1,28 @@
{ lib
, fetchFromGitHub
, buildGoModule
}:
buildGoModule {
pname = "solitaire-tui";
version = "0-unstable-2023-04-20";
src = fetchFromGitHub {
owner = "brianstrauch";
repo = "solitaire-tui";
rev = "45fffc4b13dbf1056f25a01c612dd835ddab5501";
hash = "sha256-xbqKtqFVvL+1x/SDoMEJ1LgnTy31LmZ/Je8K/bhP2bI=";
};
vendorHash = "sha256-jFbxT0ekimBNjIHGgMmCUrwZTS3Sdop/MFQMVdBF/38=";
ldflags = [ "-s" "-w" ];
meta = with lib; {
homepage = "https://github.com/brianstrauch/solitaire-tui";
description = "Klondike solitaire for the terminal";
mainProgram = "solitaire-tui";
maintainers = with maintainers; [ nyadiia ];
license = licenses.asl20;
};
}

View File

@ -0,0 +1,49 @@
{ lib
, stdenv
, fetchFromGitHub
, ninja
, cmake
, libpng
, libhwy
, lcms2
, giflib
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ssimulacra2";
version = "2.1";
src = fetchFromGitHub {
owner = "cloudinary";
repo = "ssimulacra2";
hash = "sha256-gOo8WCWMdXOSmny0mQSzCvHgURQTCNBFD4G4sxfmXik=";
rev = "tags/v${finalAttrs.version}";
};
nativeBuildInputs = [
ninja
cmake
];
buildInputs = [
libpng
libhwy
lcms2
giflib
];
sourceRoot = "${finalAttrs.src.name}/src";
installPhase = ''
runHook preInstall
install -m 755 -D ssimulacra2 -t $out/bin/
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/cloudinary/ssimulacra2";
maintainers = [ maintainers.viraptor ];
license = licenses.bsd3;
description = "Perceptual image comparison tool";
};
})

View File

@ -20,16 +20,16 @@ assert waylandSupport -> stdenv.isLinux;
buildGoModule rec { buildGoModule rec {
pname = "supersonic" + lib.optionalString waylandSupport "-wayland"; pname = "supersonic" + lib.optionalString waylandSupport "-wayland";
version = "0.9.1"; version = "0.10.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dweymouth"; owner = "dweymouth";
repo = "supersonic"; repo = "supersonic";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-R9Bn+xFq8pBSuGX1okA3l/7ralKodKDxcpGov9diuxw="; hash = "sha256-sleXZnJ/JPlyCMf6Js+Yym1RhtfZT7Q+qYAWLCavZFA=";
}; };
vendorHash = "sha256-4Un1twPfjRfLVl91GqYJsyY8GbKgYoMIsdNESpumH5M="; vendorHash = "sha256-JKihU597ZBq1VygpWB73V2m9NN/GDrquX9hNzBdszSQ=";
nativeBuildInputs = [ nativeBuildInputs = [
copyDesktopItems copyDesktopItems

View File

@ -24,15 +24,38 @@
, webkitgtk , webkitgtk
}: }:
stdenv.mkDerivation (finalAttrs: { let
esbuild-18-20 = let version = "0.18.20";
in esbuild.override {
buildGoModule = args:
buildGoModule (args // {
inherit version;
src = fetchFromGitHub {
owner = "evanw";
repo = "esbuild";
rev = "v${version}";
hash = "sha256-mED3h+mY+4H465m02ewFK/BgA1i/PQ+ksUNxBlgpUoI=";
};
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
});
};
wasm-bindgen-cli-2-92 = wasm-bindgen-cli.override {
version = "0.2.92";
hash = "sha256-1VwY8vQy7soKEgbki4LD+v259751kKxSxmo/gqE6yV0=";
cargoHash = "sha256-aACJ+lYNEU8FFBs158G1/JG8sc6Rq080PeKCMnwdpH0=";
};
in stdenv.mkDerivation (finalAttrs: {
pname = "surrealist"; pname = "surrealist";
version = "1.11.5"; version = "1.11.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "StarlaneStudios"; owner = "StarlaneStudios";
repo = "Surrealist"; repo = "Surrealist";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-9hm45bTvOhDHYYFUs7nTdOkHOsDJUiqDv8F6wQqEdFs="; hash = "sha256-1jTvbr7jFo2GOB79ClwtBVVnNQlSEkqY2eqbiZxWG74=";
}; };
sourceRoot = "${finalAttrs.src.name}/src-tauri"; sourceRoot = "${finalAttrs.src.name}/src-tauri";
@ -47,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: {
cargoDeps = rustPlatform.fetchCargoTarball { cargoDeps = rustPlatform.fetchCargoTarball {
inherit (finalAttrs) src; inherit (finalAttrs) src;
sourceRoot = "${finalAttrs.src.name}/src-embed"; sourceRoot = "${finalAttrs.src.name}/src-embed";
hash = "sha256-sf1sn3lOKvUu5MXxdMohS1DJ8jP9icZGftJKhrWA/JE="; hash = "sha256-0cAhaeoP8EPcE1230CyznQZZIKRs0lrI8XOXECgb8pg=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -56,7 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
llvmPackages_15.clangNoLibc llvmPackages_15.clangNoLibc
llvmPackages_15.lld llvmPackages_15.lld
rustPlatform.cargoSetupHook rustPlatform.cargoSetupHook
wasm-bindgen-cli wasm-bindgen-cli-2-92
]; ];
postBuild = '' postBuild = ''
@ -103,20 +126,7 @@ stdenv.mkDerivation (finalAttrs: {
pname = "${finalAttrs.pname}-ui"; pname = "${finalAttrs.pname}-ui";
dontFixup = true; dontFixup = true;
ESBUILD_BINARY_PATH = let version = "0.18.20"; ESBUILD_BINARY_PATH = "${lib.getExe esbuild-18-20}";
in "${lib.getExe (esbuild.override {
buildGoModule = args:
buildGoModule (args // {
inherit version;
src = fetchFromGitHub {
owner = "evanw";
repo = "esbuild";
rev = "v${version}";
hash = "sha256-mED3h+mY+4H465m02ewFK/BgA1i/PQ+ksUNxBlgpUoI=";
};
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
});
})}";
nativeBuildInputs = [ nodePackages.pnpm ]; nativeBuildInputs = [ nodePackages.pnpm ];

1967
pkgs/by-name/sw/swww/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -10,16 +10,21 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "swww"; pname = "swww";
version = "0.9.1"; version = "0.9.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "LGFae"; owner = "LGFae";
repo = "swww"; repo = "swww";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-JtwNrdXZbmR7VZeRiXcLEEOq1z7bF8idjp2D1Zpf3Z4="; hash = "sha256-LvSPKg8cWlwKu4a+P/G0dOqV+aPsUq3axI1QqnLj4U8=";
}; };
cargoHash = "sha256-FC3HeqWAMOTm2Tmzg+Sn/j0ZXyd8nsYH64MlwQwr8W0="; cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"bitcode-0.6.0" = "sha256-D1Jv9k9m6m7dXjU8s4YMEMC39FOUN7Ix9SvLKhM1yh0=";
};
};
buildInputs = [ buildInputs = [
lz4 lz4

View File

@ -10,14 +10,14 @@
buildGoModule rec { buildGoModule rec {
pname = "symfony-cli"; pname = "symfony-cli";
version = "5.8.14"; version = "5.8.15";
vendorHash = "sha256-OBXurPjyB2/JCQBna+tk0p3+n8gPoNLXCppXkII3ZUc="; vendorHash = "sha256-rkvQhZSoKZIl/gFgekLUelem2FGbRL9gp1LEzYN88Dc=";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "symfony-cli"; owner = "symfony-cli";
repo = "symfony-cli"; repo = "symfony-cli";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-rwcULDbdYHZ1yFrGEGsJOZQG7Z29m0MOd79yalFIdkQ="; hash = "sha256-HbBg2oCsogY3X4jgjknqwNe2bszXjylvE+h5/iyg2pM=";
}; };
ldflags = [ ldflags = [

View File

@ -4,16 +4,16 @@
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "tenki"; pname = "tenki";
version = "1.6.0"; version = "1.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ckaznable"; owner = "ckaznable";
repo = "tenki"; repo = "tenki";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-l2MDO0LIL+uSPiXA3+WVpan43lWJbaY9XSdQbwacRqQ="; hash = "sha256-FlygsPvlftlCrAuViB/MpI9m10o1iVtfJ8djn5ycHa4=";
}; };
cargoHash = "sha256-8tabXFijgq+E6YVY1J2nAhDHFahWx7QC8S401KNy2Jc="; cargoHash = "sha256-mWxdZilKbC7+OygCmPB09kZJdtGbUqrGpaEZG/Bn5QQ=";
meta = with lib; { meta = with lib; {
description = "tty-clock with weather effect"; description = "tty-clock with weather effect";

View File

@ -2,17 +2,18 @@
, buildGoModule , buildGoModule
, fetchFromGitHub , fetchFromGitHub
, makeWrapper , makeWrapper
, nix-update-script
}: }:
buildGoModule rec { buildGoModule rec {
pname = "ugm"; pname = "ugm";
version = "1.4.0"; version = "1.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ariasmn"; owner = "ariasmn";
repo = "ugm"; repo = "ugm";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-Co8JN0WEc1I08My9m7iyAshtEO4aszN8/sCvoGFJv2A="; hash = "sha256-Ui/JYU/ZbMP8E20vWHah1GFFVu5E4xf0RaVv9X0QnR4=";
}; };
vendorHash = "sha256-34D9fQnmKnOyUqshduLmFiVgcVKi7mDKBs3X5ZQxsuw="; vendorHash = "sha256-34D9fQnmKnOyUqshduLmFiVgcVKi7mDKBs3X5ZQxsuw=";
@ -25,6 +26,8 @@ buildGoModule rec {
--set RUNEWIDTH_EASTASIAN 0 --set RUNEWIDTH_EASTASIAN 0
''; '';
passthru.updateScript = nix-update-script {};
meta = with lib; { meta = with lib; {
description = "A terminal based UNIX user and group browser"; description = "A terminal based UNIX user and group browser";
homepage = "https://github.com/ariasmn/ugm"; homepage = "https://github.com/ariasmn/ugm";

View File

@ -0,0 +1,29 @@
{ lib, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "voidmap";
version = "1.1.5-unstable-2023-09-13";
src = fetchFromGitHub {
owner = "void-rs";
repo = "void";
rev = "ab32290632fa9477a7e59b884bdfa69fb4b91906";
hash = "sha256-+P83psu+BYzgC/I/Ul7vrbZ99KIybd410/ycsIY1pGI=";
};
cargoHash = "sha256-+UhqGl7w2jtGBFgX4u/g8tGO0NJTkDAJdNfwe8RobPQ=";
checkFlags = [
# The test utilizes a redirect stdout to file with dup2 and breaks sandbox assumptions
"--skip=screen::qc_input_events_dont_crash_void"
];
meta = {
description = "A terminal-based personal organizer";
homepage = "https://github.com/void-rs/void";
license = lib.licenses.gpl3Only;
mainProgram = "void";
maintainers = with lib.maintainers; [ poptart ];
platforms = lib.platforms.linux;
};
}

View File

@ -33,13 +33,13 @@ lib.checkListOfEnum "where-is-my-sddm-theme: variant" validVariants variants
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "where-is-my-sddm-theme"; pname = "where-is-my-sddm-theme";
version = "1.9.0"; version = "1.9.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "stepanzubkov"; owner = "stepanzubkov";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-eIqSS+Kzf543HiY8WItyZ2vO1SHp7y9yOAD9hIzFPfg="; hash = "sha256-o9SpzSmHygHix3BUaMQRwLvgy2BdDsBXmiLDU+9u/6Q=";
}; };
propagatedUserEnvPkgs = propagatedUserEnvPkgs =

View File

@ -0,0 +1,48 @@
{ lib
, python3
, fetchFromGitHub
}:
python3.pkgs.buildPythonApplication rec {
pname = "wlr-layout-ui";
version = "1.4.7";
pyproject = true;
src = fetchFromGitHub {
owner = "fdev31";
repo = "wlr-layout-ui";
rev = "${version}";
hash = "sha256-3NV02/Lk43h3r17jwmSAqx7wofaHFJKDh+vaWwU17Gw=";
};
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
];
propagatedBuildInputs = with python3.pkgs; [
pyglet
tomli
tomli-w
];
postInstall = ''
install -Dm644 files/wlr-layout-ui.desktop $out/share/applications/wlr-layout-ui.desktop
'';
meta = with lib; {
description = "A simple GUI to setup the screens layout on wlroots based systems";
homepage = "https://github.com/fdev31/wlr-layout-ui/";
maintainers = with maintainers; [ bnlrnz ];
license = licenses.mit;
mainProgram = "wlrlui";
platforms = subtractLists platforms.darwin platforms.unix;
};
}

View File

@ -8,13 +8,13 @@
buildGoModule rec { buildGoModule rec {
pname = "workout-tracker"; pname = "workout-tracker";
version = "0.12.0"; version = "0.13.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jovandeginste"; owner = "jovandeginste";
repo = "workout-tracker"; repo = "workout-tracker";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-INEo8jRJP0Jdsl28pLyrJEWAFwq5HpiOJIpwxOJ1vhU="; hash = "sha256-wBDLf4UfE3YXH2naub9Z//z5HWaTBuz6MyCQovZcsFI=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -2,11 +2,11 @@
buildGraalvmNativeImage rec { buildGraalvmNativeImage rec {
pname = "yamlscript"; pname = "yamlscript";
version = "0.1.52"; version = "0.1.56";
src = fetchurl { src = fetchurl {
url = "https://github.com/yaml/yamlscript/releases/download/${version}/yamlscript.cli-${version}-standalone.jar"; url = "https://github.com/yaml/yamlscript/releases/download/${version}/yamlscript.cli-${version}-standalone.jar";
hash = "sha256-VBb+mZXTzcP0oVjm3TWM38J3fSacQZwQ4WVVDgldHV4="; hash = "sha256-4ZjQYl4NdqbzyeEWDthBA8fWJFlIuMRtvHLtdlVYQmw=";
}; };
executable = "ys"; executable = "ys";

View File

@ -6,14 +6,14 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "zapzap"; pname = "zapzap";
version = "5.2.1"; version = "5.3";
format = "setuptools"; format = "setuptools";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zapzap-linux"; owner = "zapzap-linux";
repo = "zapzap"; repo = "zapzap";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-Jswt/SWsrrXdJtaT3FAOuOCkrwlpy+lSJa6/gquMiwY="; hash = "sha256-KUWkpdT0v4Y85ga8NsF3fbiSjfhWXC+WpHESTPCW+oE=";
}; };
nativeBuildInputs = with python3Packages; [ nativeBuildInputs = with python3Packages; [

View File

@ -1,11 +1,11 @@
{ lib, stdenvNoCC, fetchzip }: { lib, stdenvNoCC, fetchzip, useVariableFont ? true }:
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "fira-code"; pname = "fira-code";
version = "6.2"; version = "6.2";
src = fetchzip { src = fetchzip {
url = "https://github.com/tonsky/FiraCode/releases/download/${version}/Fira_Code_v${version}.zip"; url = "https://github.com/tonsky/FiraCode/releases/download/${finalAttrs.version}/Fira_Code_v${finalAttrs.version}.zip";
stripRoot = false; stripRoot = false;
hash = "sha256-UHOwZL9WpCHk6vZaqI/XfkZogKgycs5lWg1p0XdQt0A="; hash = "sha256-UHOwZL9WpCHk6vZaqI/XfkZogKgycs5lWg1p0XdQt0A=";
}; };
@ -14,7 +14,7 @@ stdenvNoCC.mkDerivation rec {
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
install -Dm644 variable_ttf/*-VF.ttf -t $out/share/fonts/truetype install -Dm644 -t $out/share/fonts/truetype ${if useVariableFont then "variable_ttf/*-VF.ttf" else "ttf/*.ttf"}
runHook postInstall runHook postInstall
''; '';
@ -31,4 +31,4 @@ stdenvNoCC.mkDerivation rec {
maintainers = [ maintainers.rycee ]; maintainers = [ maintainers.rycee ];
platforms = platforms.all; platforms = platforms.all;
}; };
} })

View File

@ -2,29 +2,18 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "nasin-nanpa"; pname = "nasin-nanpa";
version = "2.5.1"; version = "3.1.0";
srcs = [ src = fetchurl {
(fetchurl { url = "https://github.com/ETBCOR/nasin-nanpa/releases/download/n${version}/nasin-nanpa-${version}.otf";
name = "nasin-nanpa.otf"; hash = "sha256-remTvvOt7kpvTdq9H8tFI2yU+BtqePXlDDLQv/jtETU=";
url = "https://github.com/ETBCOR/nasin-nanpa/releases/download/n${version}/nasin-nanpa-${version}.otf"; };
hash = "sha256-++uOrqFzQ6CB/OPEmBivpjMfAtFk3PSsCNpFBjOtGEg=";
})
(fetchurl {
name = "nasin-nanpa-lasina-kin.otf";
url = "https://github.com/ETBCOR/nasin-nanpa/releases/download/n${version}/nasin-nanpa-${version}-lasina-kin.otf";
hash = "sha256-4WIX74y2O4NaKi/JQrgTbOxlKDQKJ/F9wkQuoOdWuTI=";
})
];
dontUnpack = true; dontUnpack = true;
installPhase = '' installPhase = ''
mkdir -p $out/share/fonts/opentype mkdir -p $out/share/fonts/opentype
for src in $srcs; do cp $src $out/share/fonts/opentype/nasin-nanpa.otf
file=$(stripHash $src)
cp $src $out/share/fonts/opentype/$file
done
''; '';
meta = with lib; { meta = with lib; {

View File

@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "numix-icon-theme-square"; pname = "numix-icon-theme-square";
version = "24.03.12"; version = "24.04.16";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "numixproject"; owner = "numixproject";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-dMPbu23e8ZCDZCYpbfoRwbtDMcy/+IImjGV17Sb5DBk="; sha256 = "sha256-PYsGP0Snn9A5cJ5CG+RyjC+TJwAqJOFQdnYIUkugnq0=";
}; };
nativeBuildInputs = [ gtk3 ]; nativeBuildInputs = [ gtk3 ];

View File

@ -1,25 +1,39 @@
{ stdenv { stdenv
, lib
, fetchFromGitHub , fetchFromGitHub
, imagemagick , imagemagick
}: }:
stdenv.mkDerivation { stdenv.mkDerivation (finalAttrs: {
pname = "nixos-icons"; pname = "nixos-icons";
version = "2021-02-24"; version = "0-unstable-2024-04-10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "NixOS"; owner = "NixOS";
repo = "nixos-artwork"; repo = "nixos-artwork";
rev = "488c22aad523c709c44169d3e88d34b4691c20dc"; rev = "f84c13adae08e860a7c3f76ab3a9bef916d276cc";
sha256 = "ZoanCzn4pqGB1fyMzMyGQVT0eIhNdL7ZHJSn1VZWVRs="; hash = "sha256-lO/2dLGK2f9pzLHudRIs4PUcGUliy7kfyt9r4CbhbVg=";
}; };
sourceRoot = "${finalAttrs.src.name}/icons";
strictDeps = true;
nativeBuildInputs = [ nativeBuildInputs = [
imagemagick imagemagick
]; ];
makeFlags = [ makeFlags = [
"DESTDIR=${placeholder "out"}" "prefix=${placeholder "out"}"
"prefix="
]; ];
}
enableParallelBuilding = true;
meta = with lib; {
description = "Icons of the Nix logo, in Freedesktop Icon Directory Layout";
homepage = "https://github.com/NixOS/nixos-artwork";
license = licenses.cc-by-40;
maintainers = with maintainers; [];
platforms = platforms.all;
};
})

View File

@ -1,7 +1,6 @@
{ lib { lib
, stdenvNoCC , stdenvNoCC
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, gtk3 , gtk3
, colloid-gtk-theme , colloid-gtk-theme
, gnome-themes-extra , gnome-themes-extra
@ -30,27 +29,19 @@ lib.checkListOfEnum "${pname}: tweaks" validTweaks tweaks
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
inherit pname; inherit pname;
version = "0.7.2"; version = "0.7.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "gtk"; repo = "gtk";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-7EvKcyh9gH/QbiXKlyAKMSBXMF3DmbHD+wJD3Sq39DE="; hash = "sha256-pGL8vaE63ss2ZT2FoNDfDkeuCxjcbl02RmwwfHC/Vxg=";
}; };
nativeBuildInputs = [ gtk3 sassc ]; nativeBuildInputs = [ gtk3 sassc ];
patches = [ patches = [
./colloid-src-git-reset.patch ./colloid-src-git-reset.patch
# Can be removed next release
# Adds compatibility with the 2.x.x versions of the catppuccin python package
(fetchpatch {
name = "catppuccin-python-compatibility.patch";
url = "https://github.com/catppuccin/gtk/commit/355e12387f73b27cf4734a6a3eb431554fabb74f.patch";
hash = "sha256-4vgZbNeGMtsQEitIWDCVb5o4fAjhVu3iIUttUYqtHPc=";
})
]; ];
buildInputs = [ buildInputs = [

View File

@ -26,13 +26,13 @@ lib.checkListOfEnum "${pname}: theme tweaks" validTweaks tweaks
stdenvNoCC.mkDerivation stdenvNoCC.mkDerivation
rec { rec {
inherit pname; inherit pname;
version = "2024-04-01"; version = "2024-04-18";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "Orchis-theme"; repo = "Orchis-theme";
owner = "vinceliuice"; owner = "vinceliuice";
rev = version; rev = version;
hash = "sha256-gszyUZGWlgrBTQnaz6Ws7jzfTN5KAfX5SjVwmVrP9QE="; hash = "sha256-Kvafbvw1q8F0+l47WshFHPfZEQhFXPPXuI0RjBJnP4s=";
}; };
nativeBuildInputs = [ gtk3 sassc ]; nativeBuildInputs = [ gtk3 sassc ];

View File

@ -19,11 +19,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-mahjongg"; pname = "gnome-mahjongg";
version = "3.40.0"; version = "3.40.1";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/gnome-mahjongg/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/gnome-mahjongg/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "WorIbXY8VmDdkCX3vAgxC5IjRvp+Lfe2SMmJTa4/GD8="; hash = "sha256-jtVO7K3jawgzaQb9jmyQKg1ve7u7Z2U8I5Vqa2MSI/Y=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -47,11 +47,10 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
postPatch = '' postPatch = ''
# Queried via pkg-config, would need to override a prefix variable # Override original prefixes
# Needs CMake 3.28 or higher to do as part of the call, https://github.com/NixOS/nixpkgs/pull/275284
substituteInPlace data/CMakeLists.txt \ substituteInPlace data/CMakeLists.txt \
--replace 'pkg_get_variable(DBUS_SESSION_BUS_SERVICES_DIR dbus-1 session_bus_services_dir)' 'set(DBUS_SESSION_BUS_SERVICES_DIR "''${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/services")' \ --replace-fail 'pkg_get_variable(DBUS_SESSION_BUS_SERVICES_DIR dbus-1 session_bus_services_dir)' 'pkg_get_variable(DBUS_SESSION_BUS_SERVICES_DIR dbus-1 session_bus_services_dir DEFINE_VARIABLES datadir=''${CMAKE_INSTALL_FULL_SYSCONFDIR})' \
--replace 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_DIR "''${CMAKE_INSTALL_PREFIX}/lib/systemd/user")' --replace-fail 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})'
''; '';
strictDeps = true; strictDeps = true;

View File

@ -1,11 +1,9 @@
{ {
cudaVersion,
lib, lib,
nvccCompatibilities, nvccCompatibilities,
cudaVersion,
pkgs, pkgs,
overrideCC,
stdenv, stdenv,
wrapCCWith,
stdenvAdapters, stdenvAdapters,
}: }:

View File

@ -1,5 +1,7 @@
{ hostPlatform, lib }: { lib, stdenv }:
let let
inherit (stdenv) hostPlatform;
# Samples are built around the CUDA Toolkit, which is not available for # Samples are built around the CUDA Toolkit, which is not available for
# aarch64. Check for both CUDA version and platform. # aarch64. Check for both CUDA version and platform.
platformIsSupported = hostPlatform.isx86_64 && hostPlatform.isLinux; platformIsSupported = hostPlatform.isx86_64 && hostPlatform.isLinux;

View File

@ -76,7 +76,7 @@ in
# CUTENSOR_ROOT is double escaped # CUTENSOR_ROOT is double escaped
postPatch = '' postPatch = ''
substituteInPlace CMakeLists.txt \ substituteInPlace CMakeLists.txt \
--replace "\''${CUTENSOR_ROOT}/include" "${cutensor.dev}/include" --replace-fail "\''${CUTENSOR_ROOT}/include" "${cutensor.dev}/include"
''; '';
CUTENSOR_ROOT = cutensor; CUTENSOR_ROOT = cutensor;

View File

@ -1,7 +1,7 @@
{ {
cudaVersion, cudaVersion,
hostPlatform,
lib, lib,
stdenv,
}: }:
let let
cudaVersionToHash = { cudaVersionToHash = {
@ -23,6 +23,8 @@ let
"12.3" = "sha256-fjVp0G6uRCWxsfe+gOwWTN+esZfk0O5uxS623u0REAk="; "12.3" = "sha256-fjVp0G6uRCWxsfe+gOwWTN+esZfk0O5uxS623u0REAk=";
}; };
inherit (stdenv) hostPlatform;
# Samples are built around the CUDA Toolkit, which is not available for # Samples are built around the CUDA Toolkit, which is not available for
# aarch64. Check for both CUDA version and platform. # aarch64. Check for both CUDA version and platform.
cudaVersionIsSupported = cudaVersionToHash ? ${cudaVersion}; cudaVersionIsSupported = cudaVersionToHash ? ${cudaVersion};

Some files were not shown because too many files have changed in this diff Show More