Merge master into haskell-updates

This commit is contained in:
sternenseemann 2024-05-31 12:49:29 +02:00
commit c2b48909d6
328 changed files with 5720 additions and 2977 deletions

View File

@ -205,7 +205,7 @@ runCommand "example" {
:::
## `testEqualContents` {#tester-equalContents}
## `testEqualContents` {#tester-testEqualContents}
Check that two paths have the same contents.

View File

@ -7,7 +7,7 @@ The following example shows a Nim program that depends only on Nim libraries:
```nix
{ lib, buildNimPackage, fetchFromGitHub }:
buildNimPackage { } (finalAttrs: {
buildNimPackage (finalAttrs: {
pname = "ttop";
version = "1.2.7";
@ -80,7 +80,6 @@ For example, to propagate a dependency on SDL2 for lockfiles that select the Nim
/* … */
sdl2 =
lockAttrs:
finalAttrs:
{ buildInputs ? [ ], ... }:
{
buildInputs = buildInputs ++ [ SDL2 ];
@ -89,9 +88,8 @@ For example, to propagate a dependency on SDL2 for lockfiles that select the Nim
}
```
The annotations in the `nim-overrides.nix` set are functions that take three arguments and return a new attrset to be overlayed on the package being built.
The annotations in the `nim-overrides.nix` set are functions that take two arguments and return a new attrset to be overlayed on the package being built.
- lockAttrs: the attrset for this library from within a lockfile. This can be used to implement library version constraints, such as marking libraries as broken or insecure.
- finalAttrs: the final attrset passed by `buildNimPackage` to `stdenv.mkDerivation`.
- prevAttrs: the attrset produced by initial arguments to `buildNimPackage` and any preceding lockfile overlays.
### Overriding an Nim library override {#nim-lock-overrides-overrides}

View File

@ -577,6 +577,15 @@
fingerprint = "51E4 F5AB 1B82 BE45 B422 9CC2 43A5 E25A A5A2 7849";
}];
};
aduh95 = {
email = "duhamelantoine1995@gmail.com";
github = "aduh95";
githubId = 14309773;
name = "Antoine du Hamel";
keys = [{
fingerprint = "C0D6 2484 39F1 D560 4AAF FB40 21D9 00FF DB23 3756";
}];
};
aerialx = {
email = "aaron+nixos@aaronlindsay.com";
github = "AerialX";
@ -1086,6 +1095,12 @@
fingerprint = "1F73 8879 5E5A 3DFC E2B3 FA32 87D1 AADC D25B 8DEE";
}];
};
aman9das = {
email = "amandas62640@gmail.com";
github = "Aman9das";
githubId = 39594914;
name = "Aman Das";
};
amanjeev = {
email = "aj@amanjeev.com";
github = "amanjeev";

View File

@ -1,18 +1,22 @@
{ stdenv, lib, makeWrapper, perl, perlPackages }:
stdenv.mkDerivation {
name = "nixpkgs-lint-1";
pname = "nixpkgs-lint";
version = "1";
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ perl perlPackages.XMLSimple ];
dontUnpack = true;
buildPhase = "true";
dontBuild = true;
installPhase =
''
mkdir -p $out/bin
cp ${./nixpkgs-lint.pl} $out/bin/nixpkgs-lint
# make the built version hermetic
substituteInPlace $out/bin/nixpkgs-lint \
--replace-fail "#! /usr/bin/env nix-shell" "#! ${lib.getExe perl}"
wrapProgram $out/bin/nixpkgs-lint --set PERL5LIB $PERL5LIB
'';

View File

@ -42,8 +42,14 @@ In addition to numerous new and upgraded packages, this release has the followin
}
```
- Cinnamon has been updated to 6.0. Please be aware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
- GNOME has been updated to 46 "Kathmandu", which introduces an enhanced Files app, support for OneDrive in Online Accounts, and more changes. Refer to the [release notes](https://release.gnome.org/46/) for more details.
- Lomiri (formerly known as Unity8) desktop mode, using Mir 2.x to function as a Wayland compositor, is now available and can be installed with `services.desktopManager.lomiri.enable = true`. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
- LXQt has been updated to 2.0, which is based on Qt 6 and features Wayland support for many applications.
- MATE has been updated to 1.28.
- To properly support panel plugins built with Wayland (in-process) support, we are introducing the `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
- Similarly, please use the `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
@ -619,8 +625,6 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
- `castopod` has some migration actions to be taken in case of a S3 setup. Some new features may also need some manual migration actions. See [https://code.castopod.org/adaures/castopod/-/releases](https://code.castopod.org/adaures/castopod/-/releases) for more information.
- `cinnamon` has been updated to 6.0. Please be aware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
- `documentation.man.mandoc` now, by default, uses `MANPATH` to set the directories where mandoc will search for manual pages.
This enables mandoc to find manual pages in Nix profiles. To set the manual search paths via the `mandoc.conf` configuration file like before, use `documentation.man.mandoc.settings.manpath` instead.

View File

@ -18,6 +18,9 @@
nvimpager settings: user commands in `-c` and `--cmd` now override the
respective default settings because they are executed later.
- The Invoiceplane module now only accepts the structured `settings` option.
`extraConfig` is now removed.
- Legacy package `stalwart-mail_0_6` was dropped, please note the
[manual upgrade process](https://github.com/stalwartlabs/mail-server/blob/main/UPGRADING.md)
before changing the package to `pkgs.stalwart-mail` in
@ -31,6 +34,10 @@
for information on working around `output '...' is not allowed to refer to
the following paths` errors caused by this change.
- The `stalwart-mail` module now uses RocksDB as the default storage backend
for `stateVersion` ≥ 24.11. (It was previously using SQLite for structured
data and the filesystem for blobs).
## Other Notable Changes {#sec-release-24.11-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->

View File

@ -182,6 +182,30 @@ in rec {
in if errors == [] then true
else trace (concatStringsSep "\n" errors) false;
checkUnitConfigWithLegacyKey = legacyKey: group: checks: attrs:
let
dump = lib.generators.toPretty { }
(lib.generators.withRecursion { depthLimit = 2; throwOnDepthLimit = false; } attrs);
attrs' =
if legacyKey == null
then attrs
else if ! attrs?${legacyKey}
then attrs
else if removeAttrs attrs [ legacyKey ] == {}
then attrs.${legacyKey}
else throw ''
The declaration
${dump}
must not mix unit options with the legacy key '${legacyKey}'.
This can be fixed by moving all settings from within ${legacyKey}
one level up.
'';
in
checkUnitConfig group checks attrs';
toOption = x:
if x == true then "true"
else if x == false then "false"

View File

@ -63,13 +63,13 @@ in {
${attrsToSection def.l2tpConfig}
'' + flip concatMapStrings def.l2tpSessions (x: ''
[L2TPSession]
${attrsToSection x.l2tpSessionConfig}
${attrsToSection x}
'') + optionalString (def.wireguardConfig != { }) ''
[WireGuard]
${attrsToSection def.wireguardConfig}
'' + flip concatMapStrings def.wireguardPeers (x: ''
[WireGuardPeer]
${attrsToSection x.wireguardPeerConfig}
${attrsToSection x}
'') + optionalString (def.bondConfig != { }) ''
[Bond]
${attrsToSection def.bondConfig}
@ -122,13 +122,13 @@ in {
${concatStringsSep "\n" (map (s: "Xfrm=${s}") def.xfrm)}
'' + "\n" + flip concatMapStrings def.addresses (x: ''
[Address]
${attrsToSection x.addressConfig}
${attrsToSection x}
'') + flip concatMapStrings def.routingPolicyRules (x: ''
[RoutingPolicyRule]
${attrsToSection x.routingPolicyRuleConfig}
${attrsToSection x}
'') + flip concatMapStrings def.routes (x: ''
[Route]
${attrsToSection x.routeConfig}
${attrsToSection x}
'') + optionalString (def.dhcpV4Config != { }) ''
[DHCPv4]
${attrsToSection def.dhcpV4Config}
@ -149,22 +149,22 @@ in {
${attrsToSection def.ipv6SendRAConfig}
'' + flip concatMapStrings def.ipv6Prefixes (x: ''
[IPv6Prefix]
${attrsToSection x.ipv6PrefixConfig}
${attrsToSection x}
'') + flip concatMapStrings def.ipv6RoutePrefixes (x: ''
[IPv6RoutePrefix]
${attrsToSection x.ipv6RoutePrefixConfig}
${attrsToSection x}
'') + flip concatMapStrings def.dhcpServerStaticLeases (x: ''
[DHCPServerStaticLease]
${attrsToSection x.dhcpServerStaticLeaseConfig}
${attrsToSection x}
'') + optionalString (def.bridgeConfig != { }) ''
[Bridge]
${attrsToSection def.bridgeConfig}
'' + flip concatMapStrings def.bridgeFDBs (x: ''
[BridgeFDB]
${attrsToSection x.bridgeFDBConfig}
${attrsToSection x}
'') + flip concatMapStrings def.bridgeMDBs (x: ''
[BridgeMDB]
${attrsToSection x.bridgeMDBConfig}
${attrsToSection x}
'') + optionalString (def.lldpConfig != { }) ''
[LLDP]
${attrsToSection def.lldpConfig}
@ -251,7 +251,7 @@ in {
${attrsToSection def.quickFairQueueingConfigClass}
'' + flip concatMapStrings def.bridgeVLANs (x: ''
[BridgeVLAN]
${attrsToSection x.bridgeVLANConfig}
${attrsToSection x}
'') + def.extraConfig;
}

View File

@ -6,7 +6,7 @@ let
in
{
options.hardware.xone = {
enable = mkEnableOption "the xone driver for Xbox One and Xbobx Series X|S accessories";
enable = mkEnableOption "the xone driver for Xbox One and Xbox Series X|S accessories";
};
config = mkIf cfg.enable {

View File

@ -281,6 +281,7 @@
./programs/systemtap.nix
./programs/thefuck.nix
./programs/thunar.nix
./programs/thunderbird.nix
./programs/tmux.nix
./programs/traceroute.nix
./programs/trippy.nix

View File

@ -0,0 +1,89 @@
{
pkgs,
config,
lib,
...
}:
let
cfg = config.programs.thunderbird;
policyFormat = pkgs.formats.json { };
policyDoc = "https://github.com/thunderbird/policy-templates";
in
{
options.programs.thunderbird = {
enable = lib.mkEnableOption "Thunderbird mail client";
package = lib.mkPackageOption pkgs "thunderbird" { };
policies = lib.mkOption {
type = policyFormat.type;
default = { };
description = ''
Group policies to install.
See [Thunderbird's documentation](${policyDoc})
for a list of available options.
This can be used to install extensions declaratively! Check out the
documentation of the `ExtensionSettings` policy for details.
'';
};
preferences = lib.mkOption {
type =
with lib.types;
attrsOf (oneOf [
bool
int
str
]);
default = { };
description = ''
Preferences to set from `about:config`.
Some of these might be able to be configured more ergonomically
using policies.
'';
};
preferencesStatus = lib.mkOption {
type = lib.types.enum [
"default"
"locked"
"user"
"clear"
];
default = "locked";
description = ''
The status of `thunderbird.preferences`.
`status` can assume the following values:
- `"default"`: Preferences appear as default.
- `"locked"`: Preferences appear as default and can't be changed.
- `"user"`: Preferences appear as changed.
- `"clear"`: Value has no effect. Resets to factory defaults on each startup.
'';
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
environment.etc =
let
policiesJSON = policyFormat.generate "thunderbird-policies.json" { inherit (cfg) policies; };
in
lib.mkIf (cfg.policies != { }) { "thunderbird/policies/policies.json".source = policiesJSON; };
programs.thunderbird.policies = {
DisableAppUpdate = true;
Preferences = builtins.mapAttrs (_: value: {
Value = value;
Status = cfg.preferencesStatus;
}) cfg.preferences;
};
};
meta.maintainers = with lib.maintainers; [ nydragon ];
}

View File

@ -78,6 +78,7 @@ in {
systemd.services.mopidy = {
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" "sound.target" ];
wants = [ "network-online.target" ];
description = "mopidy music player daemon";
serviceConfig = {
ExecStart = "${mopidyEnv}/bin/mopidy --config ${concatStringsSep ":" ([mopidyConf] ++ cfg.extraConfigFiles)}";

View File

@ -7,6 +7,7 @@ let
configFormat = pkgs.formats.toml { };
configFile = configFormat.generate "stalwart-mail.toml" cfg.settings;
dataDir = "/var/lib/stalwart-mail";
useLegacyStorage = versionOlder config.system.stateVersion "24.11";
in {
options.services.stalwart-mail = {
@ -30,30 +31,59 @@ in {
# Default config: all local
services.stalwart-mail.settings = {
global.tracing.method = mkDefault "stdout";
global.tracing.level = mkDefault "info";
tracer.stdout = {
type = mkDefault "stdout";
level = mkDefault "info";
ansi = mkDefault false; # no colour markers to journald
enable = mkDefault true;
};
queue.path = mkDefault "${dataDir}/queue";
report.path = mkDefault "${dataDir}/reports";
store.db.type = mkDefault "sqlite";
store.db.path = mkDefault "${dataDir}/data/index.sqlite3";
store.blob.type = mkDefault "fs";
store.blob.path = mkDefault "${dataDir}/data/blobs";
store = if useLegacyStorage then {
# structured data in SQLite, blobs on filesystem
db.type = mkDefault "sqlite";
db.path = mkDefault "${dataDir}/data/index.sqlite3";
fs.type = mkDefault "fs";
fs.path = mkDefault "${dataDir}/data/blobs";
} else {
# everything in RocksDB
db.type = mkDefault "rocksdb";
db.path = mkDefault "${dataDir}/db";
db.compression = mkDefault "lz4";
};
storage.data = mkDefault "db";
storage.fts = mkDefault "db";
storage.lookup = mkDefault "db";
storage.blob = mkDefault "blob";
storage.blob = mkDefault (if useLegacyStorage then "fs" else "db");
directory.internal.type = mkDefault "internal";
directory.internal.store = mkDefault "db";
storage.directory = mkDefault "internal";
resolver.type = mkDefault "system";
resolver.public-suffix = lib.mkDefault [
"file://${pkgs.publicsuffix-list}/share/publicsuffix/public_suffix_list.dat"
];
};
# This service stores a potentially large amount of data.
# Running it as a dynamic user would force chown to be run everytime the
# service is restarted on a potentially large number of files.
# That would cause unnecessary and unwanted delays.
users = {
groups.stalwart-mail = { };
users.stalwart-mail = {
isSystemUser = true;
group = "stalwart-mail";
};
};
systemd.services.stalwart-mail = {
wantedBy = [ "multi-user.target" ];
after = [ "local-fs.target" "network.target" ];
preStart = ''
preStart = if useLegacyStorage then ''
mkdir -p ${dataDir}/{queue,reports,data/blobs}
'' else ''
mkdir -p ${dataDir}/{queue,reports,db}
'';
serviceConfig = {
@ -71,8 +101,8 @@ in {
StandardError = "journal";
SyslogIdentifier = "stalwart-mail";
DynamicUser = true;
User = "stalwart-mail";
Group = "stalwart-mail";
StateDirectory = "stalwart-mail";
# Bind standard privileged ports

View File

@ -181,6 +181,10 @@ let
communicating with external systems (federation, remote
storage, Alertmanager).
'';
query_log_file = mkOpt types.str ''
Path to the file prometheus should write its query log to.
'';
};
};

View File

@ -23,10 +23,9 @@ let
"pbr"
"bfd"
"fabric"
"mgmt"
];
allServices = services ++ [ "zebra" ];
allServices = services ++ [ "zebra" "mgmt" ];
isEnabled = service: cfg.${service}.enable;
@ -137,6 +136,20 @@ in
'';
};
};
mgmt = (serviceOptions "mgmt") // {
enable = mkOption {
type = types.bool;
default = isEnabled "static";
defaultText = lib.literalExpression "config.services.frr.static.enable";
description = ''
Whether to enable the Configuration management daemon.
The Configuration management daemon is automatically
enabled if needed, at the moment this is when staticd
is enabled.
'';
};
};
};
}
{ options.services.frr = (genAttrs services serviceOptions); }
@ -164,7 +177,7 @@ in
environment.etc = let
mkEtcLink = service: {
name = "frr/${service}.conf";
name = "frr/${daemonName service}.conf";
value.source = configFile service;
};
in
@ -196,18 +209,18 @@ in
unitConfig.Documentation = if service == "zebra" then "man:zebra(8)"
else "man:${daemon}(8) man:zebra(8)";
restartTriggers = [
restartTriggers = mkIf (service != "mgmt") [
(configFile service)
];
reloadIfChanged = true;
reloadIfChanged = (service != "mgmt");
serviceConfig = {
PIDFile = "frr/${daemon}.pid";
ExecStart = "${pkgs.frr}/libexec/frr/${daemon} -f /etc/frr/${service}.conf"
ExecStart = "${pkgs.frr}/libexec/frr/${daemon}"
+ optionalString (scfg.vtyListenAddress != "") " -A ${scfg.vtyListenAddress}"
+ optionalString (scfg.vtyListenPort != null) " -P ${toString scfg.vtyListenPort}"
+ " " + (concatStringsSep " " scfg.extraOptions);
ExecReload = "${pkgs.python3.interpreter} ${pkgs.frr}/libexec/frr/frr-reload.py --reload --daemon ${daemonName service} --bindir ${pkgs.frr}/bin --rundir /run/frr /etc/frr/${service}.conf";
ExecReload = mkIf (service != "mgmt") "${pkgs.python3.interpreter} ${pkgs.frr}/libexec/frr/frr-reload.py --reload --daemon ${daemon} --bindir ${pkgs.frr}/bin --rundir /run/frr /etc/frr/${daemon}.conf";
Restart = "on-abnormal";
};
});

View File

@ -130,8 +130,8 @@ in
relevant = config.systemd.network.enable;
root = config.systemd.network.netdevs;
peer = (x: x.wireguardPeers);
key = (x: if x.wireguardPeerConfig ? PublicKey then x.wireguardPeerConfig.PublicKey else null);
description = "${options.systemd.network.netdevs}.\"<name>\".wireguardPeers.*.wireguardPeerConfig.PublicKey";
key = x: x.PublicKey or null;
description = "${options.systemd.network.netdevs}.\"<name>\".wireguardPeers.*.PublicKey";
}
{
relevant = config.networking.wireguard.enable;

View File

@ -39,10 +39,7 @@ let
extraConfig = hostName: cfg: let
settings = mapAttrsToList (k: v: "${k}=${mkPhpValue v}") cfg.settings;
in pkgs.writeText "extraConfig.php" ''
${concatStringsSep "\n" settings}
${toString cfg.extraConfig}
'';
in pkgs.writeText "extraConfig.php" (concatStringsSep "\n" settings);
pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec {
pname = "invoiceplane-${hostName}";
@ -182,25 +179,6 @@ let
'';
};
extraConfig = mkOption {
type = types.nullOr types.lines;
default = null;
example = ''
SETUP_COMPLETED=true
DISABLE_SETUP=true
IP_URL=https://invoice.example.com
'';
description = ''
InvoicePlane configuration. Refer to
<https://github.com/InvoicePlane/InvoicePlane/blob/master/ipconfig.php.example>
for details on supported values.
**Note**: Please pass structured settings via
`services.invoiceplane.sites.${name}.settings` instead, this option
will get deprecated in the future.
'';
};
settings = mkOption {
type = types.attrsOf types.anything;
default = {};
@ -269,12 +247,6 @@ in
# implementation
config = mkIf (eachSite != {}) (mkMerge [{
warnings = flatten (mapAttrsToList (hostName: cfg: [
(optional (cfg.extraConfig != null) ''
services.invoiceplane.sites."${hostName}".extraConfig will be deprecated in future releases, please use the settings option now.
'')
]) eachSite);
assertions = flatten (mapAttrsToList (hostName: cfg: [
{ assertion = cfg.database.createLocally -> cfg.database.user == user;
message = ''services.invoiceplane.sites."${hostName}".database.user must be ${user} if the database is to be automatically provisioned'';

View File

@ -386,7 +386,7 @@ let
(assertValueOneOf "UDP6ZeroChecksumRx" boolValues)
];
sectionL2TPSession = checkUnitConfig "L2TPSession" [
sectionL2TPSession = checkUnitConfigWithLegacyKey "l2tpSessionConfig" "L2TPSession" [
(assertOnlyFields [
"Name"
"SessionId"
@ -421,7 +421,7 @@ let
# NOTE The PresharedKey directive is missing on purpose here, please
# do not add it to this list. The nix store is world-readable,let's
# refrain ourselves from providing a footgun.
sectionWireGuardPeer = checkUnitConfig "WireGuardPeer" [
sectionWireGuardPeer = checkUnitConfigWithLegacyKey "wireguardPeerConfig" "WireGuardPeer" [
(assertOnlyFields [
"PublicKey"
"PresharedKeyFile"
@ -712,7 +712,7 @@ let
(assertValueOneOf "KeepConfiguration" (boolValues ++ ["static" "dhcp-on-stop" "dhcp"]))
];
sectionAddress = checkUnitConfig "Address" [
sectionAddress = checkUnitConfigWithLegacyKey "addressConfig" "Address" [
(assertOnlyFields [
"Address"
"Peer"
@ -737,7 +737,7 @@ let
(assertValueOneOf "AutoJoin" boolValues)
];
sectionRoutingPolicyRule = checkUnitConfig "RoutingPolicyRule" [
sectionRoutingPolicyRule = checkUnitConfigWithLegacyKey "routingPolicyRuleConfig" "RoutingPolicyRule" [
(assertOnlyFields [
"TypeOfService"
"From"
@ -772,7 +772,7 @@ let
(assertRange "SuppressInterfaceGroup" 0 2147483647)
];
sectionRoute = checkUnitConfig "Route" [
sectionRoute = checkUnitConfigWithLegacyKey "routeConfig" "Route" [
(assertOnlyFields [
"Gateway"
"GatewayOnLink"
@ -1033,7 +1033,7 @@ let
(assertValueOneOf "EmitDomains" boolValues)
];
sectionIPv6Prefix = checkUnitConfig "IPv6Prefix" [
sectionIPv6Prefix = checkUnitConfigWithLegacyKey "ipv6PrefixConfig" "IPv6Prefix" [
(assertOnlyFields [
"AddressAutoconfiguration"
"OnLink"
@ -1048,7 +1048,7 @@ let
(assertValueOneOf "Assign" boolValues)
];
sectionIPv6RoutePrefix = checkUnitConfig "IPv6RoutePrefix" [
sectionIPv6RoutePrefix = checkUnitConfigWithLegacyKey "ipv6RoutePrefixConfig" "IPv6RoutePrefix" [
(assertOnlyFields [
"Route"
"LifetimeSec"
@ -1057,7 +1057,7 @@ let
(assertInt "LifetimeSec")
];
sectionDHCPServerStaticLease = checkUnitConfig "DHCPServerStaticLease" [
sectionDHCPServerStaticLease = checkUnitConfigWithLegacyKey "dhcpServerStaticLeaseConfig" "DHCPServerStaticLease" [
(assertOnlyFields [
"MACAddress"
"Address"
@ -1104,7 +1104,7 @@ let
(assertRange "Priority" 0 63)
];
sectionBridgeFDB = checkUnitConfig "BridgeFDB" [
sectionBridgeFDB = checkUnitConfigWithLegacyKey "bridgeFDBConfig" "BridgeFDB" [
(assertOnlyFields [
"MACAddress"
"Destination"
@ -1121,7 +1121,7 @@ let
(assertValueOneOf "AssociatedWith" [ "use" "self" "master" "router" ])
];
sectionBridgeMDB = checkUnitConfig "BridgeMDB" [
sectionBridgeMDB = checkUnitConfigWithLegacyKey "bridgeMDBConfig" "BridgeMDB" [
(assertOnlyFields [
"MulticastGroupAddress"
"VLANId"
@ -1524,7 +1524,7 @@ let
(assertRange "Weight" 1 1023)
];
sectionBridgeVLAN = checkUnitConfig "BridgeVLAN" [
sectionBridgeVLAN = checkUnitConfigWithLegacyKey "bridgeVLANConfig" "BridgeVLAN" [
(assertOnlyFields [
"VLAN"
"EgressUntagged"
@ -1627,34 +1627,21 @@ let
};
l2tpSessionOptions = {
options = {
l2tpSessionConfig = mkOption {
default = {};
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionL2TPSession;
description = ''
Each attribute in this set specifies an option in the
`[L2TPSession]` section of the unit. See
{manpage}`systemd.netdev(5)` for details.
'';
};
mkSubsectionType = oldKey: checkF:
let
type = types.addCheck (types.attrsOf unitOption) checkF;
in type // {
merge = loc: defs:
let
final = type.merge loc defs;
in
if final?${oldKey}
then warn
"Using '${oldKey}' is deprecated! Move all attributes inside one level up and remove it."
final.${oldKey}
else
final;
};
};
wireguardPeerOptions = {
options = {
wireguardPeerConfig = mkOption {
default = {};
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuardPeer;
description = ''
Each attribute in this set specifies an option in the
`[WireGuardPeer]` section of the unit. See
{manpage}`systemd.netdev(5)` for details.
'';
};
};
};
netdevOptions = commonNetworkOptions // {
@ -1805,12 +1792,12 @@ let
l2tpSessions = mkOption {
default = [];
example = [ { l2tpSessionConfig={
example = [ {
SessionId = 25;
PeerSessionId = 26;
Name = "l2tp-sess";
};}];
type = with types; listOf (submodule l2tpSessionOptions);
}];
type = types.listOf (mkSubsectionType "l2tpSessionConfig" check.netdev.sectionL2TPSession);
description = ''
Each item in this array specifies an option in the
`[L2TPSession]` section of the unit. See
@ -1838,14 +1825,14 @@ let
wireguardPeers = mkOption {
default = [];
example = [ { wireguardPeerConfig={
example = [ {
Endpoint = "192.168.1.1:51820";
PublicKey = "27s0OvaBBdHoJYkH9osZpjpgSOVNw+RaKfboT/Sfq0g=";
PresharedKeyFile = "/etc/wireguard/psk.key";
AllowedIPs = [ "10.0.0.1/32" ];
PersistentKeepalive = 15;
};}];
type = with types; listOf (submodule wireguardPeerOptions);
} ];
type = types.listOf (mkSubsectionType "wireguardPeerConfig" check.netdev.sectionWireGuardPeer);
description = ''
Each item in this array specifies an option in the
`[WireGuardPeer]` section of the unit. See
@ -1917,143 +1904,6 @@ let
};
addressOptions = {
options = {
addressConfig = mkOption {
example = { Address = "192.168.0.100/24"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionAddress;
description = ''
Each attribute in this set specifies an option in the
`[Address]` section of the unit. See
{manpage}`systemd.network(5)` for details.
'';
};
};
};
routingPolicyRulesOptions = {
options = {
routingPolicyRuleConfig = mkOption {
default = { };
example = { Table = 10; IncomingInterface = "eth1"; Family = "both"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoutingPolicyRule;
description = ''
Each attribute in this set specifies an option in the
`[RoutingPolicyRule]` section of the unit. See
{manpage}`systemd.network(5)` for details.
'';
};
};
};
routeOptions = {
options = {
routeConfig = mkOption {
default = {};
example = { Gateway = "192.168.0.1"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoute;
description = ''
Each attribute in this set specifies an option in the
`[Route]` section of the unit. See
{manpage}`systemd.network(5)` for details.
'';
};
};
};
ipv6PrefixOptions = {
options = {
ipv6PrefixConfig = mkOption {
default = {};
example = { Prefix = "fd00::/64"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6Prefix;
description = ''
Each attribute in this set specifies an option in the
`[IPv6Prefix]` section of the unit. See
{manpage}`systemd.network(5)` for details.
'';
};
};
};
ipv6RoutePrefixOptions = {
options = {
ipv6RoutePrefixConfig = mkOption {
default = {};
example = { Route = "fd00::/64"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6RoutePrefix;
description = ''
Each attribute in this set specifies an option in the
`[IPv6RoutePrefix]` section of the unit. See
{manpage}`systemd.network(5)` for details.
'';
};
};
};
dhcpServerStaticLeaseOptions = {
options = {
dhcpServerStaticLeaseConfig = mkOption {
default = {};
example = { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPServerStaticLease;
description = ''
Each attribute in this set specifies an option in the
`[DHCPServerStaticLease]` section of the unit. See
{manpage}`systemd.network(5)` for details.
Make sure to configure the corresponding client interface to use
`ClientIdentifier=mac`.
'';
};
};
};
bridgeFDBOptions = {
options = {
bridgeFDBConfig = mkOption {
default = {};
example = { MACAddress = "65:43:4a:5b:d8:5f"; Destination = "192.168.1.42"; VNI = 20; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridgeFDB;
description = ''
Each attribute in this set specifies an option in the
`[BridgeFDB]` section of the unit. See
{manpage}`systemd.network(5)` for details.
'';
};
};
};
bridgeMDBOptions = {
options = {
bridgeMDBConfig = mkOption {
default = {};
example = { MulticastGroupAddress = "ff02::1:2:3:4"; VLANId = 10; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridgeMDB;
description = ''
Each attribute in this set specifies an option in the
`[BridgeMDB]` section of the unit. See
{manpage}`systemd.network(5)` for details.
'';
};
};
};
bridgeVLANOptions = {
options = {
bridgeVLANConfig = mkOption {
default = {};
example = { VLAN = 20; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridgeVLAN;
description = ''
Each attribute in this set specifies an option in the
`[BridgeVLAN]` section of the unit. See
{manpage}`systemd.network(5)` for details.
'';
};
};
};
networkOptions = commonNetworkOptions // {
linkConfig = mkOption {
@ -2165,8 +2015,8 @@ let
dhcpServerStaticLeases = mkOption {
default = [];
example = [ { dhcpServerStaticLeaseConfig = { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; }; } ];
type = with types; listOf (submodule dhcpServerStaticLeaseOptions);
example = [ { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; } ];
type = types.listOf (mkSubsectionType "dhcpServerStaticLeaseConfig" check.network.sectionDHCPServerStaticLease);
description = ''
A list of DHCPServerStaticLease sections to be added to the unit. See
{manpage}`systemd.network(5)` for details.
@ -2175,8 +2025,8 @@ let
ipv6Prefixes = mkOption {
default = [];
example = [ { ipv6PrefixConfig = { AddressAutoconfiguration = true; OnLink = true; }; } ];
type = with types; listOf (submodule ipv6PrefixOptions);
example = [ { AddressAutoconfiguration = true; OnLink = true; } ];
type = types.listOf (mkSubsectionType "ipv6PrefixConfig" check.network.sectionIPv6Prefix);
description = ''
A list of ipv6Prefix sections to be added to the unit. See
{manpage}`systemd.network(5)` for details.
@ -2185,8 +2035,8 @@ let
ipv6RoutePrefixes = mkOption {
default = [];
example = [ { ipv6RoutePrefixConfig = { Route = "fd00::/64"; LifetimeSec = 3600; }; } ];
type = with types; listOf (submodule ipv6RoutePrefixOptions);
example = [ { Route = "fd00::/64"; LifetimeSec = 3600; } ];
type = types.listOf (mkSubsectionType "ipv6RoutePrefixConfig" check.network.sectionIPv6RoutePrefix);
description = ''
A list of ipv6RoutePrefix sections to be added to the unit. See
{manpage}`systemd.network(5)` for details.
@ -2206,8 +2056,8 @@ let
bridgeFDBs = mkOption {
default = [];
example = [ { bridgeFDBConfig = { MACAddress = "90:e2:ba:43:fc:71"; Destination = "192.168.100.4"; VNI = 3600; }; } ];
type = with types; listOf (submodule bridgeFDBOptions);
example = [ { MACAddress = "90:e2:ba:43:fc:71"; Destination = "192.168.100.4"; VNI = 3600; } ];
type = types.listOf (mkSubsectionType "bridgeFDBConfig" check.network.sectionBridgeFDB);
description = ''
A list of BridgeFDB sections to be added to the unit. See
{manpage}`systemd.network(5)` for details.
@ -2216,8 +2066,8 @@ let
bridgeMDBs = mkOption {
default = [];
example = [ { bridgeMDBConfig = { MulticastGroupAddress = "ff02::1:2:3:4"; VLANId = 10; } ; } ];
type = with types; listOf (submodule bridgeMDBOptions);
example = [ { MulticastGroupAddress = "ff02::1:2:3:4"; VLANId = 10; } ];
type = types.listOf (mkSubsectionType "bridgeMDBConfig" check.network.sectionBridgeMDB);
description = ''
A list of BridgeMDB sections to be added to the unit. See
{manpage}`systemd.network(5)` for details.
@ -2534,8 +2384,8 @@ let
bridgeVLANs = mkOption {
default = [];
example = [ { bridgeVLANConfig = { VLAN = "10-20"; }; } ];
type = with types; listOf (submodule bridgeVLANOptions);
example = [ { VLAN = "10-20"; } ];
type = types.listOf (mkSubsectionType "bridgeVLANConfig" check.network.sectionBridgeVLAN);
description = ''
A list of BridgeVLAN sections to be added to the unit. See
{manpage}`systemd.network(5)` for details.
@ -2685,7 +2535,8 @@ let
addresses = mkOption {
default = [ ];
type = with types; listOf (submodule addressOptions);
example = [ { Address = "192.168.0.100/24"; } ];
type = types.listOf (mkSubsectionType "addressConfig" check.network.sectionAddress);
description = ''
A list of address sections to be added to the unit. See
{manpage}`systemd.network(5)` for details.
@ -2694,7 +2545,8 @@ let
routingPolicyRules = mkOption {
default = [ ];
type = with types; listOf (submodule routingPolicyRulesOptions);
example = [ { Table = 10; IncomingInterface = "eth1"; Family = "both"; } ];
type = types.listOf (mkSubsectionType "routingPolicyRuleConfig" check.network.sectionRoutingPolicyRule);
description = ''
A list of routing policy rules sections to be added to the unit. See
{manpage}`systemd.network(5)` for details.
@ -2703,7 +2555,8 @@ let
routes = mkOption {
default = [ ];
type = with types; listOf (submodule routeOptions);
example = [ { Gateway = "192.168.0.1"; } ];
type = types.listOf (mkSubsectionType "routeConfig" check.network.sectionRoute);
description = ''
A list of route sections to be added to the unit. See
{manpage}`systemd.network(5)` for details.

View File

@ -32,13 +32,13 @@ let
optionalAttrs (gateway != null && gateway.interface != null) {
networks."40-${gateway.interface}" = {
matchConfig.Name = gateway.interface;
routes = [{
routeConfig = {
routes = [
({
Gateway = gateway.address;
} // optionalAttrs (gateway.metric != null) {
Metric = gateway.metric;
};
}];
})
];
};
}
));
@ -98,61 +98,24 @@ let
(route: {
# Most of these route options have not been tested.
# Please fix or report any mistakes you may find.
routeConfig =
optionalAttrs (route.address != null && route.prefixLength != null) {
Destination = "${route.address}/${toString route.prefixLength}";
} //
optionalAttrs (route.options ? fastopen_no_cookie) {
FastOpenNoCookie = route.options.fastopen_no_cookie;
} //
optionalAttrs (route.via != null) {
Gateway = route.via;
} //
optionalAttrs (route.type != null) {
Type = route.type;
} //
optionalAttrs (route.options ? onlink) {
GatewayOnLink = true;
} //
optionalAttrs (route.options ? initrwnd) {
InitialAdvertisedReceiveWindow = route.options.initrwnd;
} //
optionalAttrs (route.options ? initcwnd) {
InitialCongestionWindow = route.options.initcwnd;
} //
optionalAttrs (route.options ? pref) {
IPv6Preference = route.options.pref;
} //
optionalAttrs (route.options ? mtu) {
MTUBytes = route.options.mtu;
} //
optionalAttrs (route.options ? metric) {
Metric = route.options.metric;
} //
optionalAttrs (route.options ? src) {
PreferredSource = route.options.src;
} //
optionalAttrs (route.options ? protocol) {
Protocol = route.options.protocol;
} //
optionalAttrs (route.options ? quickack) {
QuickAck = route.options.quickack;
} //
optionalAttrs (route.options ? scope) {
Scope = route.options.scope;
} //
optionalAttrs (route.options ? from) {
Source = route.options.from;
} //
optionalAttrs (route.options ? table) {
Table = route.options.table;
} //
optionalAttrs (route.options ? advmss) {
TCPAdvertisedMaximumSegmentSize = route.options.advmss;
} //
optionalAttrs (route.options ? ttl-propagate) {
TTLPropagate = route.options.ttl-propagate == "enabled";
};
Destination = mkIf (route.address != null && route.prefixLength != null) "${route.address}/${toString route.prefixLength}";
FastOpenNoCookie = mkIf (route.options ? fastopen_no_cookie) route.options.fastopen_no_cookie;
Gateway = mkIf (route.via != null) route.via;
Type = mkIf (route.type != null) route.type;
GatewayOnLink = mkIf (route.options ? onlink) true;
InitialAdvertisedReceiveWindow = mkIf (route.options ? initrwnd) route.options.initrwnd;
InitialCongestionWindow = mkIf (route.options ? initcwnd) route.options.initcwnd;
IPv6Preference = mkIf (route.options ? pref) route.options.pref;
MTUBytes = mkIf (route.options ? mtu) route.options.mtu;
Metric = mkIf (route.options ? metric) route.options.metric;
PreferredSource = mkIf (route.options ? src) route.options.src;
Protocol = mkIf (route.options ? protocol) route.options.protocol;
QuickAck = mkIf (route.options ? quickack) route.options.quickack;
Scope = mkIf (route.options ? scope) route.options.scope;
Source = mkIf (route.options ? from) route.options.from;
Table = mkIf (route.options ? table) route.options.table;
TCPAdvertisedMaximumSegmentSize = mkIf (route.options ? advmss) route.options.advmss;
TTLPropagate = mkIf (route.options ? ttl-propagate) route.options.ttl-propagate == "enabled";
});
networkConfig.IPv6PrivacyExtensions = "kernel";
linkConfig = optionalAttrs (i.macAddress != null) {

View File

@ -59,7 +59,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
"100.64.0.2/24"
];
routes = [
{ routeConfig = { Destination = "192.0.2.0/24"; Gateway = "100.64.0.1"; }; }
{ Destination = "192.0.2.0/24"; Gateway = "100.64.0.1"; }
];
};
};
@ -149,7 +149,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
"2001:db8::2/64"
];
routes = [
{ routeConfig = { Destination = "::/0"; Gateway = "2001:db8::1"; }; }
{ Destination = "::/0"; Gateway = "2001:db8::1"; }
];
};
};

View File

@ -10,6 +10,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
];
services.xserver.enable = true;
sound.enable = true;
environment.systemPackages = [ pkgs.domination ];
};
@ -18,6 +19,9 @@ import ./make-test-python.nix ({ pkgs, ... }: {
testScript =
''
machine.wait_for_x()
# Add a dummy sound card, or an error reporting popup will appear,
# covering the main window and preventing OCR
machine.execute("modprobe snd-dummy")
machine.execute("domination >&2 &")
machine.wait_for_window("Menu")
machine.wait_for_text(r"(New Game|Start Server|Load Game|Help Manual|Join Game|About|Play Online)")

View File

@ -57,6 +57,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...}: {
};
subnet4 = [ {
id = 1;
subnet = "10.0.0.0/29";
pools = [ {
pool = "10.0.0.3 - 10.0.0.3";

View File

@ -37,6 +37,7 @@ let
linux_rt_5_10
linux_rt_5_15
linux_rt_6_1
linux_rt_6_6
linux_libre
linux_testing;

View File

@ -73,16 +73,19 @@ let
with subtest("nix-db"):
info = get_path_info("${foo}")
out = "${foo}"
info = get_path_info(out)
print(info)
pathinfo = info[0] if isinstance(info, list) else info[out]
if (
info[0]["narHash"]
pathinfo["narHash"]
!= "sha256-BdMdnb/0eWy3EddjE83rdgzWWpQjfWPAj3zDIFMD3Ck="
):
raise Exception("narHash not set")
if info[0]["narSize"] != 128:
if pathinfo["narSize"] != 128:
raise Exception("narSize not set")
with subtest("nixos-version"):

View File

@ -3,7 +3,7 @@ import ./make-test-python.nix ({ pkgs, ...}: let
in {
name = "phosh";
meta = with pkgs.lib.maintainers; {
maintainers = [ tomfitzhenry zhaofengli ];
maintainers = [ zhaofengli ];
};
nodes = {

View File

@ -74,10 +74,8 @@ in
wireguardConfig.ListenPort = server.wg.listen;
wireguardPeers = [
{
wireguardPeerConfig = {
AllowedIPs = [ "::/0" ];
PublicKey = client.wg.public;
};
AllowedIPs = [ "::/0" ];
PublicKey = client.wg.public;
}
];
};
@ -97,11 +95,9 @@ in
systemd.network.netdevs."10-${deviceName}".wireguardPeers = [
{
wireguardPeerConfig = {
AllowedIPs = [ "::/0" ];
PublicKey = server.wg.public;
Endpoint = "server:${builtins.toString server.wg.listen}";
};
AllowedIPs = [ "::/0" ];
PublicKey = server.wg.public;
Endpoint = "server:${builtins.toString server.wg.listen}";
}
];

View File

@ -24,14 +24,14 @@ import ./make-test-python.nix ({ lib, ... }: {
"01-eth1" = {
name = "eth1";
networkConfig = {
# IPForward prevents dynamic address configuration
IPForward = true;
DHCPServer = true;
Address = "10.0.0.1/24";
};
dhcpServerStaticLeases = [{
dhcpServerStaticLeaseConfig = {
MACAddress = "02:de:ad:be:ef:01";
Address = "10.0.0.10";
};
MACAddress = "02:de:ad:be:ef:01";
Address = "10.0.0.10";
}];
};
};
@ -41,20 +41,30 @@ import ./make-test-python.nix ({ lib, ... }: {
client = {
virtualisation.vlans = [ 1 ];
systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
networking = {
useNetworkd = true;
useDHCP = false;
firewall.enable = false;
interfaces.eth1 = {
useDHCP = true;
macAddress = "02:de:ad:be:ef:01";
systemd.network = {
enable = true;
links."10-eth1" = {
matchConfig.OriginalName = "eth1";
linkConfig.MACAddress = "02:de:ad:be:ef:01";
};
networks."40-eth1" = {
matchConfig.Name = "eth1";
networkConfig = {
DHCP = "ipv4";
IPv6AcceptRA = false;
};
# This setting is important to have the router assign the
# configured lease based on the client's MAC address. Also see:
# https://github.com/systemd/systemd/issues/21368#issuecomment-982193546
dhcpV4Config.ClientIdentifier = "mac";
linkConfig.RequiredForOnline = "routable";
};
};
# This setting is important to have the router assign the
# configured lease based on the client's MAC address. Also see:
# https://github.com/systemd/systemd/issues/21368#issuecomment-982193546
systemd.network.networks."40-eth1".dhcpV4Config.ClientIdentifier = "mac";
networking = {
useDHCP = false;
firewall.enable = false;
interfaces.eth1 = lib.mkForce {};
};
};
};
testScript = ''

View File

@ -54,7 +54,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
name = "eth1";
networkConfig.Bridge = "br0";
bridgeVLANs = [
{ bridgeVLANConfig = { PVID = 2; EgressUntagged = 2; }; }
{ PVID = 2; EgressUntagged = 2; }
];
};
"02-br0" = {
@ -69,8 +69,8 @@ import ./make-test-python.nix ({pkgs, ...}: {
PoolSize = 1;
};
bridgeVLANs = [
{ bridgeVLANConfig = { PVID = 1; EgressUntagged = 1; }; }
{ bridgeVLANConfig = { VLAN = 2; }; }
{ PVID = 1; EgressUntagged = 1; }
{ VLAN = 2; }
];
};
"02-vlan2" = {

View File

@ -66,6 +66,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
settings = {
interfaces-config.interfaces = [ "eth1" ];
subnet6 = [ {
id = 1;
interface = "eth1";
subnet = "2001:DB8::/32";
pd-pools = [ {
@ -258,7 +259,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
"01-lo" = {
name = "lo";
addresses = [
{ addressConfig.Address = "FD42::1/128"; }
{ Address = "FD42::1/128"; }
];
};
};

View File

@ -59,14 +59,14 @@ in {
matchConfig.Name = "vrf1";
networkConfig.IPForward = "yes";
routes = [
{ routeConfig = { Destination = "192.168.1.2"; Metric = 100; }; }
{ Destination = "192.168.1.2"; Metric = 100; }
];
};
networks."10-vrf2" = {
matchConfig.Name = "vrf2";
networkConfig.IPForward = "yes";
routes = [
{ routeConfig = { Destination = "192.168.2.3"; Metric = 100; }; }
{ Destination = "192.168.2.3"; Metric = 100; }
];
};

View File

@ -23,13 +23,13 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
ListenPort = 51820;
FirewallMark = 42;
};
wireguardPeers = [ {wireguardPeerConfig={
wireguardPeers = [ {
Endpoint = "192.168.1.${peerId}:51820";
PublicKey = pubk;
PresharedKeyFile = pkgs.writeText "psk.key" "yTL3sCOL33Wzi6yCnf9uZQl/Z8laSE+zwpqOHC4HhFU=";
AllowedIPs = [ "10.0.0.${peerId}/32" ];
PersistentKeepalive = 15;
};}];
} ];
};
};
networks = {
@ -41,8 +41,8 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
matchConfig = { Name = "wg0"; };
address = [ "10.0.0.${nodeId}/32" ];
routes = [
{ routeConfig = { Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; }; }
{ routeConfig = { Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; Table = "custom"; }; }
{ Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; }
{ Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; Table = "custom"; }
];
};
"30-eth1" = {
@ -52,11 +52,11 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
"fe80::${nodeId}/64"
];
routingPolicyRules = [
{ routingPolicyRuleConfig = { Table = 10; IncomingInterface = "eth1"; Family = "both"; };}
{ routingPolicyRuleConfig = { Table = 20; OutgoingInterface = "eth1"; };}
{ routingPolicyRuleConfig = { Table = 30; From = "192.168.1.1"; To = "192.168.1.2"; SourcePort = 666 ; DestinationPort = 667; };}
{ routingPolicyRuleConfig = { Table = 40; IPProtocol = "tcp"; InvertRule = true; };}
{ routingPolicyRuleConfig = { Table = 50; IncomingInterface = "eth1"; Family = "ipv4"; };}
{ Table = 10; IncomingInterface = "eth1"; Family = "both"; }
{ Table = 20; OutgoingInterface = "eth1"; }
{ Table = 30; From = "192.168.1.1"; To = "192.168.1.2"; SourcePort = 666 ; DestinationPort = 667; }
{ Table = 40; IPProtocol = "tcp"; InvertRule = true; }
{ Table = 50; IncomingInterface = "eth1"; Family = "ipv4"; }
];
};
};

View File

@ -55,7 +55,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
"100.64.0.2/24"
];
routes = [
{ routeConfig = { Destination = "192.0.2.0/24"; Gateway = "100.64.0.1"; }; }
{ Destination = "192.0.2.0/24"; Gateway = "100.64.0.1"; }
];
};
};
@ -202,7 +202,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
"2001:db8::2/64"
];
routes = [
{ routeConfig = { Destination = "64:ff9b::/96"; Gateway = "2001:db8::1"; }; }
{ Destination = "64:ff9b::/96"; Gateway = "2001:db8::1"; }
];
};
};

View File

@ -24,11 +24,14 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
# So that we can ssh into the VM, see e.g.
# http://blog.patapon.info/nixos-local-vm/#accessing-the-vm-with-ssh
# https://nixos.org/manual/nixos/stable/#sec-nixos-test-port-forwarding
services.openssh.enable = true;
services.openssh.settings.PermitRootLogin = "yes";
users.extraUsers.root.password = "";
users.mutableUsers = false;
# `test-instrumentation.nix` already sets an empty root password.
# The following have to all be set to allow an empty SSH login password.
services.openssh.settings.PermitRootLogin = "yes";
services.openssh.settings.PermitEmptyPasswords = "yes";
security.pam.services.sshd.allowNullPassword = true; # the default `UsePam yes` makes this necessary
};
testScript = ''
@ -124,7 +127,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
machine.wait_until_succeeds("test -f /tmp/glxgears-should-fail.stderr")
wait_until_terminated_or_succeeds(
termination_check_shell_command="pidof glxgears",
success_check_shell_command="grep 'libGL error: failed to load driver: swrast' /tmp/glxgears-should-fail.stderr",
success_check_shell_command="grep 'MESA-LOADER: failed to open swrast' /tmp/glxgears-should-fail.stderr",
get_detail_message_fn=lambda: "Contents of /tmp/glxgears-should-fail.stderr:\n"
+ machine.succeed("cat /tmp/glxgears-should-fail.stderr"),
)

View File

@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
description = "A virtual keyboard supporting Wayland";
homepage = "https://gitlab.gnome.org/World/Phosh/squeekboard";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ artturin tomfitzhenry ];
maintainers = with maintainers; [ artturin ];
platforms = platforms.linux;
};
}

View File

@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
description = "Daemon for dealing with audio routing during phone calls";
homepage = "https://gitlab.com/mobian1/callaudiod";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ pacman99 tomfitzhenry ];
maintainers = with maintainers; [ pacman99 ];
platforms = platforms.linux;
};
}

View File

@ -1,5 +1,4 @@
{ stdenv
, fetchFromGitHub
, fetchurl
, cmake
, dbus

View File

@ -4,18 +4,18 @@ version = 3
[[package]]
name = "aho-corasick"
version = "1.0.4"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
dependencies = [
"memchr",
]
[[package]]
name = "anyhow"
version = "1.0.75"
version = "1.0.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9"
[[package]]
name = "autocfg"
@ -29,7 +29,7 @@ version = "0.66.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
dependencies = [
"bitflags 2.4.0",
"bitflags 2.4.1",
"cexpr",
"clang-sys",
"lazy_static",
@ -40,7 +40,7 @@ dependencies = [
"regex",
"rustc-hash",
"shlex",
"syn 2.0.29",
"syn 2.0.43",
]
[[package]]
@ -51,18 +51,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
version = "2.4.0"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
[[package]]
name = "bitmaps"
version = "2.1.0"
version = "3.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
dependencies = [
"typenum",
]
checksum = "a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6"
[[package]]
name = "block"
@ -72,11 +69,11 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
[[package]]
name = "cairo-rs"
version = "0.18.0"
version = "0.18.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d859b656775a6b1dd078d3e5924884e6ea88aa649a7fdde03d5b2ec56ffcc10b"
checksum = "f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1"
dependencies = [
"bitflags 2.4.0",
"bitflags 2.4.1",
"cairo-sys-rs",
"glib",
"libc",
@ -86,9 +83,9 @@ dependencies = [
[[package]]
name = "cairo-sys-rs"
version = "0.18.0"
version = "0.18.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd4d115132e01c0165e3bf5f56aedee8980b0b96ede4eb000b693c05a8adb8ff"
checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
dependencies = [
"glib-sys",
"libc",
@ -97,9 +94,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.0.82"
version = "1.0.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
dependencies = [
"libc",
]
@ -115,9 +112,9 @@ dependencies = [
[[package]]
name = "cfg-expr"
version = "0.15.4"
version = "0.15.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9"
checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
dependencies = [
"smallvec",
"target-lexicon",
@ -173,9 +170,9 @@ dependencies = [
[[package]]
name = "futures"
version = "0.3.28"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
dependencies = [
"futures-channel",
"futures-core",
@ -188,9 +185,9 @@ dependencies = [
[[package]]
name = "futures-channel"
version = "0.3.28"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
dependencies = [
"futures-core",
"futures-sink",
@ -198,15 +195,15 @@ dependencies = [
[[package]]
name = "futures-core"
version = "0.3.28"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
[[package]]
name = "futures-executor"
version = "0.3.28"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
dependencies = [
"futures-core",
"futures-task",
@ -215,38 +212,38 @@ dependencies = [
[[package]]
name = "futures-io"
version = "0.3.28"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
[[package]]
name = "futures-macro"
version = "0.3.28"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.29",
"syn 2.0.43",
]
[[package]]
name = "futures-sink"
version = "0.3.28"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
[[package]]
name = "futures-task"
version = "0.3.28"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
[[package]]
name = "futures-util"
version = "0.3.28"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
dependencies = [
"futures-channel",
"futures-core",
@ -262,9 +259,9 @@ dependencies = [
[[package]]
name = "gdk-pixbuf"
version = "0.18.0"
version = "0.18.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbc9c2ed73a81d556b65d08879ba4ee58808a6b1927ce915262185d6d547c6f3"
checksum = "446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c"
dependencies = [
"gdk-pixbuf-sys",
"gio",
@ -288,9 +285,9 @@ dependencies = [
[[package]]
name = "gdk4"
version = "0.7.2"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6982d9815ed6ac95b0467b189e81f29dea26d08a732926ec113e65744ed3f96c"
checksum = "7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6"
dependencies = [
"cairo-rs",
"gdk-pixbuf",
@ -340,9 +337,9 @@ dependencies = [
[[package]]
name = "gio"
version = "0.18.1"
version = "0.18.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7884cba6b1c5db1607d970cadf44b14a43913d42bc68766eea6a5e2fe0891524"
checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
dependencies = [
"futures-channel",
"futures-core",
@ -372,11 +369,11 @@ dependencies = [
[[package]]
name = "glib"
version = "0.18.1"
version = "0.18.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "331156127e8166dd815cf8d2db3a5beb492610c716c03ee6db4f2d07092af0a7"
checksum = "951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e"
dependencies = [
"bitflags 2.4.0",
"bitflags 2.4.1",
"futures-channel",
"futures-core",
"futures-executor",
@ -396,16 +393,16 @@ dependencies = [
[[package]]
name = "glib-macros"
version = "0.18.0"
version = "0.18.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "179643c50bf28d20d2f6eacd2531a88f2f5d9747dd0b86b8af1e8bb5dd0de3c0"
checksum = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5"
dependencies = [
"heck",
"proc-macro-crate",
"proc-macro-crate 2.0.1",
"proc-macro-error",
"proc-macro2",
"quote",
"syn 2.0.29",
"syn 2.0.43",
]
[[package]]
@ -460,9 +457,9 @@ dependencies = [
[[package]]
name = "gsk4"
version = "0.7.2"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc25855255120f294d874acd6eaf4fbed7ce1cdc550e2d8415ea57fafbe816d5"
checksum = "0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e"
dependencies = [
"cairo-rs",
"gdk4",
@ -475,9 +472,9 @@ dependencies = [
[[package]]
name = "gsk4-sys"
version = "0.7.2"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1ecf3a63bf1223d68f80f72cc896c4d8c80482fbce1c9a12c66d3de7290ee46"
checksum = "12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55"
dependencies = [
"cairo-sys-rs",
"gdk4-sys",
@ -491,9 +488,9 @@ dependencies = [
[[package]]
name = "gtk4"
version = "0.7.2"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3b095b26f2a2df70be1805d3590eeb9d7a05ecb5be9649b82defc72dc56228c"
checksum = "5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842"
dependencies = [
"cairo-rs",
"field-offset",
@ -517,7 +514,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f"
dependencies = [
"anyhow",
"proc-macro-crate",
"proc-macro-crate 1.3.1",
"proc-macro-error",
"proc-macro2",
"quote",
@ -526,9 +523,9 @@ dependencies = [
[[package]]
name = "gtk4-sys"
version = "0.7.2"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b0bdde87c50317b4f355bcbb4a9c2c414ece1b7c824fb4ad4ba8f3bdb2c6603"
checksum = "54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
@ -545,9 +542,9 @@ dependencies = [
[[package]]
name = "hashbrown"
version = "0.14.0"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
[[package]]
name = "heck"
@ -556,24 +553,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "im-rc"
version = "15.1.0"
name = "imbl"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe"
checksum = "bc3be8d8cd36f33a46b1849f31f837c44d9fa87223baee3b4bd96b8f11df81eb"
dependencies = [
"bitmaps",
"imbl-sized-chunks",
"rand_core",
"rand_xoshiro",
"sized-chunks",
"typenum",
"version_check",
]
[[package]]
name = "indexmap"
version = "2.0.0"
name = "imbl-sized-chunks"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
checksum = "144006fb58ed787dcae3f54575ff4349755b00ccc99f4b4873860b654be1ed63"
dependencies = [
"bitmaps",
]
[[package]]
name = "indexmap"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
dependencies = [
"equivalent",
"hashbrown",
@ -593,9 +598,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "libadwaita"
version = "0.5.2"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06444f4ca05a60693da6e9e2b591bd40a298e65a118a8d5e830771718b3e0253"
checksum = "2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c"
dependencies = [
"gdk-pixbuf",
"gdk4",
@ -609,9 +614,9 @@ dependencies = [
[[package]]
name = "libadwaita-sys"
version = "0.5.2"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "021cfe3d1fcfa82411765a791f7e9b32f35dd98ce88d2e3fa10e7320f5cc8ce7"
checksum = "5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a"
dependencies = [
"gdk4-sys",
"gio-sys",
@ -625,9 +630,9 @@ dependencies = [
[[package]]
name = "libc"
version = "0.2.147"
version = "0.2.151"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
[[package]]
name = "libloading"
@ -641,11 +646,11 @@ dependencies = [
[[package]]
name = "libspa"
version = "0.7.1"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcdea6b6663acf456641a4dea1b87fa6970a3e881596237713192d8f5423b542"
checksum = "0434617020ddca18b86067912970c55410ca654cdafd775480322f50b857a8c4"
dependencies = [
"bitflags 2.4.0",
"bitflags 2.4.1",
"cc",
"convert_case",
"cookie-factory",
@ -658,9 +663,9 @@ dependencies = [
[[package]]
name = "libspa-sys"
version = "0.7.1"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e63fc701d3375e6e255765d6a6172d9af06583115e78f3dfe2c8ff1dfd0b2dab"
checksum = "b3e70ca3f3e70f858ef363046d06178c427b4e0b63d210c95fd87d752679d345"
dependencies = [
"bindgen",
"cc",
@ -697,9 +702,9 @@ dependencies = [
[[package]]
name = "memchr"
version = "2.5.0"
version = "2.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
[[package]]
name = "memoffset"
@ -727,16 +732,15 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "nix"
version = "0.26.2"
version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
dependencies = [
"bitflags 1.3.2",
"cfg-if",
"libc",
"memoffset 0.7.1",
"pin-utils",
"static_assertions",
]
[[package]]
@ -780,15 +784,15 @@ dependencies = [
[[package]]
name = "once_cell"
version = "1.18.0"
version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "pango"
version = "0.18.0"
version = "0.18.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06a9e54b831d033206160096b825f2070cf5fda7e35167b1c01e9e774f9202d1"
checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
dependencies = [
"gio",
"glib",
@ -817,9 +821,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
[[package]]
name = "pin-project-lite"
version = "0.2.12"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
[[package]]
name = "pin-utils"
@ -829,12 +833,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "pipewire"
version = "0.7.1"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "062c97c31818918b8bffdc66cfd93f3e4b4141f505c63234f9ff0a658fddedab"
checksum = "a2d009c8dd65e890b515a71950f7e4c801523b8894ff33863a40830bf762e9e9"
dependencies = [
"anyhow",
"bitflags 2.4.0",
"bitflags 2.4.1",
"libc",
"libspa",
"libspa-sys",
@ -846,9 +850,9 @@ dependencies = [
[[package]]
name = "pipewire-sys"
version = "0.7.1"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d558e2cffe5f97ac32c7e0b6cb6074b5271b8c2c628ac68633342ee08fdab308"
checksum = "890c084e7b737246cb4799c86b71a0e4da536031ff7473dd639eba9f95039f64"
dependencies = [
"bindgen",
"libspa-sys",
@ -857,9 +861,9 @@ dependencies = [
[[package]]
name = "pkg-config"
version = "0.3.27"
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
[[package]]
name = "proc-macro-crate"
@ -868,7 +872,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
dependencies = [
"once_cell",
"toml_edit",
"toml_edit 0.19.15",
]
[[package]]
name = "proc-macro-crate"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a"
dependencies = [
"toml_datetime",
"toml_edit 0.20.2",
]
[[package]]
@ -897,9 +911,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.66"
version = "1.0.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8"
dependencies = [
"unicode-ident",
]
@ -913,7 +927,7 @@ dependencies = [
"gettext-rs",
"glib",
"gtk4",
"im-rc",
"imbl",
"libadwaita",
"log",
"once_cell",
@ -947,9 +961,9 @@ dependencies = [
[[package]]
name = "regex"
version = "1.9.3"
version = "1.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
dependencies = [
"aho-corasick",
"memchr",
@ -959,9 +973,9 @@ dependencies = [
[[package]]
name = "regex-automata"
version = "0.3.6"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
dependencies = [
"aho-corasick",
"memchr",
@ -970,9 +984,9 @@ dependencies = [
[[package]]
name = "regex-syntax"
version = "0.7.4"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
[[package]]
name = "rustc-hash"
@ -991,61 +1005,59 @@ dependencies = [
[[package]]
name = "semver"
version = "1.0.18"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
[[package]]
name = "serde"
version = "1.0.183"
version = "1.0.193"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.193"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.43",
]
[[package]]
name = "serde_spanned"
version = "0.6.3"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
dependencies = [
"serde",
]
[[package]]
name = "shlex"
version = "1.1.0"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
[[package]]
name = "sized-chunks"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
dependencies = [
"bitmaps",
"typenum",
]
checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
[[package]]
name = "slab"
version = "0.4.8"
version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
dependencies = [
"autocfg",
]
[[package]]
name = "smallvec"
version = "1.11.0"
version = "1.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
[[package]]
name = "syn"
@ -1060,9 +1072,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.29"
version = "2.0.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53"
dependencies = [
"proc-macro2",
"quote",
@ -1071,9 +1083,9 @@ dependencies = [
[[package]]
name = "system-deps"
version = "6.1.1"
version = "6.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3"
checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
dependencies = [
"cfg-expr",
"heck",
@ -1084,46 +1096,46 @@ dependencies = [
[[package]]
name = "target-lexicon"
version = "0.12.11"
version = "0.12.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
[[package]]
name = "temp-dir"
version = "0.1.11"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
[[package]]
name = "thiserror"
version = "1.0.47"
version = "1.0.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.47"
version = "1.0.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.29",
"syn 2.0.43",
]
[[package]]
name = "toml"
version = "0.7.6"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
"toml_edit",
"toml_edit 0.20.2",
]
[[package]]
@ -1137,9 +1149,20 @@ dependencies = [
[[package]]
name = "toml_edit"
version = "0.19.14"
version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
"indexmap",
"toml_datetime",
"winnow",
]
[[package]]
name = "toml_edit"
version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
dependencies = [
"indexmap",
"serde",
@ -1148,17 +1171,11 @@ dependencies = [
"winnow",
]
[[package]]
name = "typenum"
version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
[[package]]
name = "unicode-ident"
version = "1.0.11"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "unicode-segmentation"
@ -1202,9 +1219,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "winnow"
version = "0.5.14"
version = "0.5.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97"
checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c"
dependencies = [
"memchr",
]
@ -1214,7 +1231,7 @@ name = "wireplumber"
version = "0.1.0"
source = "git+https://github.com/arcnmx/wireplumber.rs.git?rev=341b0c4e8d177f5f21c109cf88cca4f2dc1f853a#341b0c4e8d177f5f21c109cf88cca4f2dc1f853a"
dependencies = [
"bitflags 2.4.0",
"bitflags 2.4.1",
"gio",
"glib",
"libc",

View File

@ -34,13 +34,13 @@ let
in
stdenv.mkDerivation rec {
pname = "pwvucontrol";
version = "0.3.1";
version = "0.4.1";
src = fetchFromGitHub {
owner = "saivert";
repo = "pwvucontrol";
rev = version;
hash = "sha256-t4JUpKtuO1JgrdsNbl0M/SwPmoqu7WxsaD74vlJeVhY=";
hash = "sha256-soxB8pbbyYe1EXtopq1OjoklEDJrwK6od4nFLDwb8LY=";
};
cargoDeps = rustPlatform.importCargoLock {

View File

@ -4,7 +4,6 @@
, pkg-config
, meson
, ninja
, fetchFromGitLab
, python3
, vala
, glib

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "dcrwallet";
version = "2.0.0";
version = "2.0.1";
src = fetchFromGitHub {
owner = "decred";
repo = "dcrwallet";
rev = "release-v${version}";
hash = "sha256-KBmEMYNVHGkkFXE99nI0uCGGDpkC0MvSFWFPEQwvx+o=";
hash = "sha256-vFh3+FDN1+7HiP9fFyW8p1LJkW0lfwAiyLhZjqxQ6J4=";
};
vendorHash = "sha256-66S1evvX/SEKFXB00dyI9IEuV8dmqM+k1wuhTtgVpBs=";
vendorHash = "sha256-rVkQsr14yqATLGxevl8PLBOhVnTCrM4Yo2G5NvX/59g=";
subPackages = [ "." ];

View File

@ -1,10 +1,5 @@
{ lib
, pkgs
, symlinkJoin
, fetchzip
, melpaBuild
, stdenv
, fetchFromGitHub
, writeText
, melpaStablePackages
, runCommand

View File

@ -1,6 +1,6 @@
# run tests by building `neovim.tests`
{ vimUtils, writeText, neovim, vimPlugins
, lib, fetchFromGitHub, neovimUtils, wrapNeovimUnstable
, lib, neovimUtils, wrapNeovimUnstable
, neovim-unwrapped
, fetchFromGitLab
, runCommandLocal

View File

@ -28,8 +28,6 @@
, soci
, postgresql
, nodejs
, mkYarnModules
, fetchYarnDeps
, qmake
, server ? false # build server version
, sqlite

View File

@ -3294,6 +3294,21 @@ let
};
};
phind.phind = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "phind";
publisher = "phind";
version = "0.22.2";
hash = "sha256-nN/7IVa4WaA5V39CHx0nrvWBmBNtISvAINTQzk02x1w=";
};
meta = {
description = "Using Phind AI service to provide answers based on the code context";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=phind.phind";
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.onny ];
};
};
phoenixframework.phoenix = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "phoenix";
@ -4733,6 +4748,23 @@ let
};
};
xdebug.php-debug = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "php-debug";
publisher = "xdebug";
version = "1.34.0";
hash = "sha256-WAcXWCMmvuw7nkfGcOgmK+s+Nw6XpvNR4POXD85E/So=";
};
meta = {
description = "PHP Debug Adapter";
license = lib.licenses.mit;
homepage = "https://github.com/xdebug/vscode-php-debug";
changelog = "https://github.com/xdebug/vscode-php-debug/blob/main/CHANGELOG.md";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=xdebug.php-debug";
maintainers = [ lib.maintainers.onny ];
};
};
xyz.local-history = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "local-history";

View File

@ -1,37 +0,0 @@
# To use this for hacking of your Yi config file, drop into a shell
# with env attribute.
{ lib, stdenv, makeWrapper
, haskellPackages
, extraPackages ? (s: [])
}:
let
yiEnv = haskellPackages.ghcWithPackages
(self: [ self.yi ] ++ extraPackages self);
in
stdenv.mkDerivation {
pname = "yi-custom";
version = "0.0.0.1";
dontUnpack = true;
nativeBuildInputs = [ makeWrapper ];
buildCommand = ''
mkdir -p $out/bin
makeWrapper ${haskellPackages.yi}/bin/yi $out/bin/yi \
--set NIX_GHC ${yiEnv}/bin/ghc
'';
# For hacking purposes
passthru.env = yiEnv;
meta = with lib; {
description = "Allows Yi to find libraries and the compiler easily";
# This wrapper and wrapper only is under PD
license = licenses.publicDomain;
maintainers = with maintainers; [ ];
# dependency yi-language no longer builds
hydraPlatforms = lib.platforms.none;
broken = true;
};
}

View File

@ -1,6 +1,7 @@
{ stdenv
, lib
, fetchFromGitHub
, fetchpatch
, gitUpdater
, cmake
, pkg-config
@ -27,6 +28,16 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-TIXjYkInWV3yVnvXrdHcmeWYeps5TcvkG2Xjg4roIds=";
};
patches = [
# Fix FTBFS with Qt 6.7.1
# Remove when https://github.com/punesemu/puNES/pull/403 merged & in release
(fetchpatch {
name = "0001-punes-Fix-compatibility-with-Qt-6.7.1.patch";
url = "https://github.com/punesemu/puNES/commit/78c72d2dfcd570e7463a78da10904cebae6127f5.patch";
hash = "sha256-xRalKIOb1qWgqJsFLcm7uUOblEfHDYbkukmcr4/+4Qc=";
})
];
nativeBuildInputs = [
cmake
pkg-config

View File

@ -1,6 +1,5 @@
{ stdenv
, lib
, fetchFromGitHub
, fetchzip
, python310
, rtlcss

View File

@ -1,23 +1,30 @@
{ lib
, buildPythonApplication
, python3Packages
, fetchPypi
, pynput
, xdg
, xdg-base-dirs
}:
buildPythonApplication rec {
pname = "bitwarden-menu";
version = "0.4.1";
format = "setuptools";
version = "0.4.3";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-OC+MHEiUU6bDT2wSSDtu0KnwDwBpbLTBta0xjfuzlOI=";
pname = "bitwarden_menu";
inherit version;
hash = "sha256-tuIolWvQ/vKSJr6oUTL7ZLPgdkYsIZods5yQNNfWbWY=";
};
nativeBuildInputs = with python3Packages; [
hatch-vcs
hatchling
];
propagatedBuildInputs = [
pynput
xdg
xdg-base-dirs
];
doCheck = false;
@ -28,6 +35,6 @@ buildPythonApplication rec {
mainProgram = "bwm";
homepage = "https://github.com/firecat53/bitwarden-menu";
license = licenses.mit;
maintainers = [ ];
maintainers = with maintainers; [ aman9das ];
};
}

View File

@ -2,7 +2,6 @@
, stdenv
, fetchurl
, fetchFromGitHub
, fetchpatch
, wrapQtAppsHook
, python3
, zbar
@ -14,7 +13,7 @@
}:
let
version = "4.5.4";
version = "4.5.5";
python = python3.override {
self = python;
@ -47,7 +46,7 @@ let
owner = "spesmilo";
repo = "electrum";
rev = version;
sha256 = "sha256-fDu2PlEQOF7ftlS6dYw15S2XiAx+D/bng4zC9ELj6uk=";
sha256 = "sha256-CbhI/q+zjk9odxuvdzpogi046FqkedJooiQwS+WAkJ8=";
postFetch = ''
mv $out ./all
@ -63,7 +62,7 @@ python.pkgs.buildPythonApplication {
src = fetchurl {
url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
sha256 = "sha256-lDuwXhOjcbCx8x/oIoigrklDwCbhn1trf5lDf/X/1Qc=";
sha256 = "1jiagz9avkbd158pcip7p4wz0pdsxi94ndvg5p8afvshb32aqwav";
};
postUnpack = ''
@ -99,7 +98,7 @@ python.pkgs.buildPythonApplication {
keepkey
trezor
bitbox02
cbor
cbor2
pyserial
] ++ lib.optionals enableQt [
pyqt5
@ -110,30 +109,7 @@ python.pkgs.buildPythonApplication {
pyqt6
];
patches = [
# aiorpcx 0.23.1 compatibility
# Note: this patches `/run_electrum`.
# In the source repo, `/electrum/electrum`
# is a symlink to `../run_electrum`,
# so that path would also be affected by the patch.
# However, in the distribution tarball used here,
# `/electrum/electrum` is simply an exact copy of
# `/run_electrum` and is thereby *not* affected.
# So we have to manually copy the patched `/run_electrum`
# over `/electrum/electrum` after the patching (see below).
# XXX remove the copy command in `postPatch`
# as soon as the patch itself is removed!
(fetchpatch {
url = "https://github.com/spesmilo/electrum/commit/5f95d919dfa9868eaf82889903b94faa8c6443e0.patch";
hash = "sha256-cEkduLsL6A8qPhXS2KPQWzVtkQPYQhHSbuwQ2SnanHw=";
})
];
postPatch = ''
# copy the patched `/run_electrum` over `/electrum/electrum`
# so the aiorpcx compatibility patch is used
cp run_electrum electrum/electrum
# make compatible with protobuf4 by easing dependencies ...
substituteInPlace ./contrib/requirements/requirements.txt \
--replace "protobuf>=3.20,<4" "protobuf>=3.20"

View File

@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
description = "A daemon to provide haptic (and later more) feedback on events";
homepage = "https://source.puri.sm/Librem5/feedbackd";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ pacman99 tomfitzhenry ];
maintainers = with maintainers; [ pacman99 ];
platforms = platforms.linux;
};
}

View File

@ -1,7 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
, substituteAll
, wrapGAppsHook3
, buildGoModule
, go
, glib
@ -15,32 +15,26 @@
buildGoModule rec {
pname = "nwg-look";
version = "0.2.6";
version = "0.2.7";
src = fetchFromGitHub {
owner = "nwg-piotr";
repo = "nwg-look";
rev = "v${version}";
hash = "sha256-kOoYhJKt7/BsQ0/RuVhj0bWnX9GU8ET3MSq6NMCOw5E=";
hash = "sha256-qUNTJkNHWoJisLH0SU23UQuamEL27MMRnxw0kBxzWLk=";
};
vendorHash = "sha256-V0KXK6jxBYI+tixBLq24pJJcnu4gDF6nfyns2IBTss4=";
# Replace /usr/ directories with the packages output location
# This means it references the correct path
patches = [ ./fix-paths.patch ];
postPatch = ''
substituteInPlace main.go tools.go --replace '@out@' $out
'';
vendorHash = "sha256-qHWy9OCxENrrWk00YoRveSjqYWIy/fe4Fyc8tc4n34E=";
ldflags = [ "-s" "-w" ];
nativeBuildInputs = [
pkg-config
wrapGAppsHook3
];
buildInputs = [
glib
cairo
xcur2png
libX11.dev
@ -55,12 +49,21 @@ buildGoModule rec {
mkdir -p $out/share/nwg-look/langs
mkdir -p $out/share/applications
mkdir -p $out/share/pixmaps
mkdir -p $out/share/icons
cp stuff/main.glade $out/share/nwg-look/
cp langs/* $out/share/nwg-look/langs
cp stuff/nwg-look.desktop $out/share/applications
cp stuff/nwg-look.svg $out/share/pixmaps
'';
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : "${glib.bin}/bin"
--prefix PATH : "${xcur2png}/bin"
--prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}"
)
'';
meta = with lib; {
homepage = "https://github.com/nwg-piotr/nwg-look";
description = "Nwg-look is a GTK3 settings editor, designed to work properly in wlroots-based Wayland environment.";

View File

@ -1,35 +0,0 @@
diff --git a/main.go b/main.go
index 23c4756..c52e9c3 100644
--- a/main.go
+++ b/main.go
@@ -335,7 +335,7 @@ func main() {
gtkSettings, _ = gtk.SettingsGetDefault()
- builder, _ := gtk.BuilderNewFromFile("/usr/share/nwg-look/main.glade")
+ builder, _ := gtk.BuilderNewFromFile("@out@/share/nwg-look/main.glade")
win, _ := getWindow(builder, "window")
win.Connect("destroy", func() {
diff --git a/tools.go b/tools.go
index e6e7665..59d6f35 100644
--- a/tools.go
+++ b/tools.go
@@ -1034,7 +1034,7 @@ func getDataDirs() []string {
if os.Getenv("XDG_DATA_DIRS") != "" {
xdgDataDirs = os.Getenv("XDG_DATA_DIRS")
} else {
- xdgDataDirs = "/usr/local/share/:/usr/share/"
+ xdgDataDirs = "@out@/local/share/:@out@/share/"
}
for _, d := range strings.Split(xdgDataDirs, ":") {
@@ -1280,7 +1280,7 @@ func detectLang() string {
}
func loadVocabulary(lang string) map[string]string {
- langsDir := "/usr/share/nwg-look/langs/"
+ langsDir := "@out@/share/nwg-look/langs/"
enUSFile := filepath.Join(langsDir, "en_US.json")
if pathExists(enUSFile) {
log.Infof(">>> Loading basic lang from '%s'", enUSFile)

View File

@ -1,10 +1,10 @@
module github.com/nwg-piotr/nwg-look
go 1.20
go 1.22
require (
github.com/gotk3/gotk3 v0.6.2
github.com/gotk3/gotk3 v0.6.3
github.com/sirupsen/logrus v1.9.3
)
require golang.org/x/sys v0.6.0 // indirect
require golang.org/x/sys v0.17.0 // indirect

View File

@ -87,7 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
mainProgram = "phoc";
homepage = "https://gitlab.gnome.org/World/Phosh/phoc";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ masipcat tomfitzhenry zhaofengli ];
maintainers = with maintainers; [ masipcat zhaofengli ];
platforms = platforms.linux;
};
})

View File

@ -1,6 +1,5 @@
{ lib
, python310
, fetchPypi
, fetchFromGitHub
, gdk-pixbuf
, gnome

View File

@ -1,5 +1,15 @@
{ stdenv, lib, fetchurl, meson, ninja, pkg-config, zathura_core
, girara, gettext, libarchive }:
{
stdenv,
lib,
fetchurl,
meson,
ninja,
pkg-config,
zathura_core,
girara,
gettext,
libarchive,
}:
stdenv.mkDerivation rec {
pname = "zathura-cb";
@ -7,11 +17,20 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
sha256 = "1j5v32f9ki35v1jc7a067anhlgqplzrp4fqvznlixfhcm0bwmc49";
hash = "sha256-ibDKF6gMuh6p/Rs7cvOnFz8KrToGqMNk2GXEmZwYu8g=";
};
nativeBuildInputs = [ meson ninja pkg-config gettext ];
buildInputs = [ libarchive zathura_core girara ];
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
];
buildInputs = [
libarchive
zathura_core
girara
];
PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
@ -20,7 +39,7 @@ stdenv.mkDerivation rec {
description = "A zathura CB plugin";
longDescription = ''
The zathura-cb plugin adds comic book support to zathura.
'';
'';
license = licenses.zlib;
platforms = platforms.unix;
maintainers = with maintainers; [ jlesquembre ];

View File

@ -1,24 +1,48 @@
{ lib, stdenv, fetchFromGitLab, meson, ninja, wrapGAppsHook3, pkg-config, gitUpdater
, appstream-glib, json-glib, desktop-file-utils, python3
, gtk, girara, gettext, libxml2, check
, sqlite, glib, texlive, libintl, libseccomp
, file, librsvg
, gtk-mac-integration
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
wrapGAppsHook3,
pkg-config,
gitUpdater,
appstream-glib,
json-glib,
desktop-file-utils,
python3,
gtk,
girara,
gettext,
libxml2,
check,
sqlite,
glib,
texlive,
libintl,
libseccomp,
file,
librsvg,
gtk-mac-integration,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "zathura";
version = "0.5.5";
version = "0.5.6";
src = fetchFromGitLab {
domain = "git.pwmt.org";
src = fetchFromGitHub {
owner = "pwmt";
repo = "zathura";
rev = finalAttrs.version;
hash = "sha256-mHEYqgBB55p8nykFtvYtP5bWexp/IqFbeLs7gZmXCeE=";
hash = "sha256-lTEBIZ3lkzjJ+L1qecrcL8iseo8AvSIo3Wh65/ikwac=";
};
outputs = [ "bin" "man" "dev" "out" ];
outputs = [
"bin"
"man"
"dev"
"out"
];
# Flag list:
# https://github.com/pwmt/zathura/blob/master/meson_options.txt
@ -33,22 +57,36 @@ stdenv.mkDerivation (finalAttrs: {
];
nativeBuildInputs = [
meson ninja pkg-config desktop-file-utils python3.pythonOnBuildForHost.pkgs.sphinx
gettext wrapGAppsHook3 libxml2 appstream-glib
meson
ninja
pkg-config
desktop-file-utils
python3.pythonOnBuildForHost.pkgs.sphinx
gettext
wrapGAppsHook3
libxml2
appstream-glib
];
buildInputs = [
gtk girara libintl sqlite glib file librsvg check json-glib
gtk
girara
libintl
sqlite
glib
file
librsvg
check
json-glib
texlive.bin.core
] ++ lib.optional stdenv.isLinux libseccomp
++ lib.optional stdenv.isDarwin gtk-mac-integration;
] ++ lib.optional stdenv.isLinux libseccomp ++ lib.optional stdenv.isDarwin gtk-mac-integration;
doCheck = !stdenv.isDarwin;
passthru.updateScript = gitUpdater { };
meta = with lib; {
homepage = "https://git.pwmt.org/pwmt/zathura";
homepage = "https://pwmt.org/projects/zathura";
description = "A core component for zathura PDF viewer";
license = licenses.zlib;
platforms = platforms.unix;

View File

@ -1,6 +1,9 @@
{ config, pkgs
# zathura_pdf_mupdf fails to load _opj_create_decompress at runtime on Darwin (https://github.com/NixOS/nixpkgs/pull/61295#issue-277982980)
, useMupdf ? config.zathura.useMupdf or (!pkgs.stdenv.isDarwin) }:
{
config,
pkgs,
# zathura_pdf_mupdf fails to load _opj_create_decompress at runtime on Darwin (https://github.com/NixOS/nixpkgs/pull/61295#issue-277982980)
useMupdf ? config.zathura.useMupdf or (!pkgs.stdenv.isDarwin),
}:
let
callPackage = pkgs.newScope self;
@ -29,5 +32,5 @@ let
];
};
};
in self
in
self

View File

@ -1,4 +1,16 @@
{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gtk, zathura_core, girara, djvulibre, gettext }:
{
lib,
stdenv,
fetchurl,
meson,
ninja,
pkg-config,
gtk,
zathura_core,
girara,
djvulibre,
gettext,
}:
stdenv.mkDerivation rec {
pname = "zathura-djvu";
@ -6,11 +18,21 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
sha256 = "0062n236414db7q7pnn3ccg5111ghxj3407pn9ri08skxskgirln";
hash = "sha256-lub4pu5TIxBzsvcAMmSHL4RQHmPD2nvwWY0EYoawwgA=";
};
nativeBuildInputs = [ meson ninja pkg-config ];
buildInputs = [ djvulibre gettext zathura_core gtk girara ];
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
djvulibre
gettext
zathura_core
gtk
girara
];
PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
@ -26,4 +48,3 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ ];
};
}

View File

@ -1,29 +1,39 @@
{ stdenv, lib, meson, ninja, fetchurl, cairo
, girara
, gtk-mac-integration
, gumbo
, jbig2dec
, libjpeg
, mupdf
, openjpeg
, pkg-config
, zathura_core
, tesseract
, leptonica
, mujs
, gitUpdater
{
stdenv,
lib,
meson,
ninja,
fetchurl,
cairo,
girara,
gtk-mac-integration,
gumbo,
jbig2dec,
libjpeg,
mupdf,
openjpeg,
pkg-config,
zathura_core,
tesseract,
leptonica,
mujs,
gitUpdater,
}:
stdenv.mkDerivation rec {
version = "0.4.1";
version = "0.4.2";
pname = "zathura-pdf-mupdf";
src = fetchurl {
url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
hash = "sha256-+YKgHWUj+iVmk4EYTAamJe2/15YcvbBxHcz9ucQCrC8=";
hash = "sha256-fFC+z9mJX9ccExsV336Ut+zJJa8UdfUz/qVp9YgcnhM=";
};
nativeBuildInputs = [ meson ninja pkg-config ];
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
cairo
@ -39,15 +49,13 @@ stdenv.mkDerivation rec {
mujs
] ++ lib.optional stdenv.isDarwin gtk-mac-integration;
PKG_CONFIG_ZATHURA_PLUGINDIR= "lib/zathura";
PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
postPatch = ''
sed -i -e '/^mupdfthird =/d' -e 's/, mupdfthird//g' meson.build
'';
passthru.updateScript = gitUpdater {
url = "https://git.pwmt.org/pwmt/zathura-pdf-mupdf.git";
};
passthru.updateScript = gitUpdater { url = "https://git.pwmt.org/pwmt/zathura-pdf-mupdf.git"; };
meta = with lib; {
homepage = "https://pwmt.org/projects/zathura-pdf-mupdf/";

View File

@ -1,4 +1,14 @@
{ stdenv, lib, fetchurl, meson, ninja, pkg-config, zathura_core, girara, poppler }:
{
stdenv,
lib,
fetchurl,
meson,
ninja,
pkg-config,
zathura_core,
girara,
poppler,
}:
stdenv.mkDerivation rec {
pname = "zathura-pdf-poppler";
@ -6,11 +16,19 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
sha256 = "049h8m9swxni7ar6fsbm0hb3fg4ffmjc3m6vyg78ilfi3kayxavi";
hash = "sha256-cavu1RzR0YjO89vUwWR1jjw3FgR1aWeyOtF2rlNFMBE=";
};
nativeBuildInputs = [ meson ninja pkg-config zathura_core ];
buildInputs = [ poppler girara ];
nativeBuildInputs = [
meson
ninja
pkg-config
zathura_core
];
buildInputs = [
poppler
girara
];
PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";

View File

@ -1,4 +1,15 @@
{ stdenv, lib, fetchurl, meson, ninja, pkg-config, zathura_core, girara, libspectre, gettext }:
{
stdenv,
lib,
fetchurl,
meson,
ninja,
pkg-config,
zathura_core,
girara,
libspectre,
gettext,
}:
stdenv.mkDerivation rec {
pname = "zathura-ps";
@ -6,11 +17,20 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
sha256 = "0ilf63wxn1yzis9m3qs8mxbk316yxdzwxrrv86wpiygm9hhgk5sq";
hash = "sha256-WJf5IEz1+Xi5QTvnzn/r3oQxV69I41GTjt8H2/kwjkY=";
};
nativeBuildInputs = [ meson ninja pkg-config gettext ];
buildInputs = [ libspectre zathura_core girara ];
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
];
buildInputs = [
libspectre
zathura_core
girara
];
PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
@ -20,10 +40,9 @@ stdenv.mkDerivation rec {
longDescription = ''
The zathura-ps plugin adds PS support to zathura by using the
libspectre library.
'';
'';
license = licenses.zlib;
platforms = platforms.unix;
maintainers = with maintainers; [ ];
};
}

View File

@ -1,28 +1,44 @@
{ symlinkJoin, lib, makeWrapper, zathura_core, file, plugins ? [] }:
{
symlinkJoin,
lib,
makeWrapper,
zathura_core,
file,
plugins ? [ ],
}:
symlinkJoin {
name = "zathura-with-plugins-${zathura_core.version}";
paths = with zathura_core; [ man dev out ] ++ plugins;
paths =
with zathura_core;
[
man
dev
out
]
++ plugins;
nativeBuildInputs = [ makeWrapper ];
postBuild = let
fishCompletion = "share/fish/vendor_completions.d/zathura.fish";
in ''
makeWrapper ${zathura_core.bin}/bin/zathura $out/bin/zathura \
--prefix PATH ":" "${lib.makeBinPath [ file ]}" \
--prefix ZATHURA_PLUGINS_PATH : "$out/lib/zathura"
postBuild =
let
fishCompletion = "share/fish/vendor_completions.d/zathura.fish";
in
''
makeWrapper ${zathura_core.bin}/bin/zathura $out/bin/zathura \
--prefix PATH ":" "${lib.makeBinPath [ file ]}" \
--prefix ZATHURA_PLUGINS_PATH : "$out/lib/zathura"
# zathura fish completion references the zathura_core derivation to
# check for supported plugins which live in the wrapper derivation,
# so we need to fix the path to reference $out instead.
rm "$out/${fishCompletion}"
substitute "${zathura_core.out}/${fishCompletion}" "$out/${fishCompletion}" \
--replace "${zathura_core.out}" "$out"
'';
# zathura fish completion references the zathura_core derivation to
# check for supported plugins which live in the wrapper derivation,
# so we need to fix the path to reference $out instead.
rm "$out/${fishCompletion}"
substitute "${zathura_core.out}/${fishCompletion}" "$out/${fishCompletion}" \
--replace "${zathura_core.out}" "$out"
'';
meta = with lib; {
homepage = "https://git.pwmt.org/pwmt/zathura/";
homepage = "https://pwmt.org/projects/zathura/";
description = "A highly customizable and functional PDF viewer";
longDescription = ''
Zathura is a highly customizable and functional PDF viewer based on the
@ -32,7 +48,11 @@ symlinkJoin {
'';
license = licenses.zlib;
platforms = platforms.unix;
maintainers = with maintainers; [ smironov globin TethysSvensson ];
maintainers = with maintainers; [
smironov
globin
TethysSvensson
];
mainProgram = "zathura";
};
}

View File

@ -22,11 +22,11 @@
let
inherit (builtins) elemAt;
cldr_version = "44.1.0";
cldr_version = "45.0.0";
cldr-json = fetchzip {
url = "https://github.com/unicode-org/cldr-json/releases/download/${cldr_version}/cldr-${cldr_version}-json-modern.zip";
stripRoot = false;
hash = "sha256-EbbzaaspKgRT/dsJV3Kf0Dfj8LN9zT+Pl4gk5kiOXWk=";
hash = "sha256-BPDvYjlvJMudX/YlS7HrwKEABYx+1KzjiFlLYA5+Oew=";
postFetch = ''
echo -n ${cldr_version} > $out/version.txt
'';
@ -50,13 +50,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "ladybird";
version = "0-unstable-2024-03-16";
version = "0-unstable-2024-05-26";
src = fetchFromGitHub {
owner = "SerenityOS";
repo = "serenity";
rev = "3a8bde9ef24dace600484b38992fdc7d17bf92c3";
hash = "sha256-r8HYcexrOjDYsXuCtROiNY7Rl60pVQBvVQf190gqNuY=";
rev = "1a9d8e8fbe360f2d3b376ca0e13c507bd2cc6e8b";
hash = "sha256-+g/1F/v8nTVbvtSrtyvQbeYacjTlfRpg+Htu0lRlkcU=";
};
sourceRoot = "${finalAttrs.src.name}/Ladybird";
@ -74,6 +74,12 @@ stdenv.mkDerivation (finalAttrs: {
# Setup caches for LibLocale, LibUnicode, LibTimezone, LibTLS and LibGfx
# Note that the versions of the input data packages must match the
# expected version in the package's CMake.
# Check that the versions match
grep -F 'set(CLDR_VERSION "${cldr_version}")' ../Meta/CMake/locale_data.cmake || (echo cldr_version mismatch && exit 1)
grep -F 'set(TZDB_VERSION "${tzdata.version}")' ../Meta/CMake/time_zone_data.cmake || (echo tzdata.version mismatch && exit 1)
grep -F 'set(CACERT_VERSION "${cacert_version}")' ../Meta/CMake/ca_certificates_data.cmake || (echo cacert_version mismatch && exit 1)
mkdir -p build/Caches
ln -s ${cldr-json} build/Caches/CLDR

View File

@ -20,7 +20,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "palemoon-bin";
version = "33.1.0";
version = "33.1.1";
src = finalAttrs.passthru.sources."gtk${if withGTK3 then "3" else "2"}";
@ -158,11 +158,11 @@ stdenv.mkDerivation (finalAttrs: {
in {
gtk3 = fetchzip {
urls = urlRegionVariants "gtk3";
hash = "sha256-qjztSvNL7KNFG3sszgk5qH77do0HFQ8YTrgjFi2ZM00=";
hash = "sha256-0i0hXC6mC1SY2V6ANMXHS4LZ/HZk8FUsSDQfQUE14IM=";
};
gtk2 = fetchzip {
urls = urlRegionVariants "gtk2";
hash = "sha256-q4zAmnCN9SHGb8PthjAx7d5FKq/oAQ8c0R+U1SWqjAA=";
hash = "sha256-RnBlCxIsWxm6BbtAS0YKHtix93N6t9jihFItqhtLhRU=";
};
};

View File

@ -110,7 +110,7 @@ stdenv.mkDerivation rec {
longDescription = "GNOME Calls is a phone dialer and call handler. Setting NixOS option `programs.calls.enable = true` is recommended.";
homepage = "https://gitlab.gnome.org/GNOME/calls";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ craigem lheckemann tomfitzhenry ];
maintainers = with maintainers; [ craigem lheckemann ];
platforms = platforms.linux;
mainProgram = "gnome-calls";
};

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "cilium-cli";
version = "0.16.7";
version = "0.16.8";
src = fetchFromGitHub {
owner = "cilium";
repo = pname;
rev = "v${version}";
hash = "sha256-+Uxn9yR3D38CuvFeBA62aWLtY4rPrBJoF3tUmgKvKpw=";
hash = "sha256-SJWLWyjTdBilba+wsdpVS6i/OlQNlxZ5vjJTLheybSU=";
};
vendorHash = null;

View File

@ -1,8 +1,8 @@
{
k3sVersion = "1.28.9+k3s1";
k3sCommit = "289a1a3edbc0f6ee5a7f91bf96aa1ed1b743bd1f";
k3sRepoSha256 = "0kms6r10k6v037r5lxxrp90bnynrgyrn61kqnzy2f5avny4blikh";
k3sVendorHash = "sha256-iUp2Maua3BnrC4Jq2ij0uOW5gYYZfz6e+TEdDtN0PT8=";
k3sVersion = "1.28.10+k3s1";
k3sCommit = "a4c5612ea3dd202135e7c691c534c671a7d43690";
k3sRepoSha256 = "00r06kc98nvbmaai8m2pbqsl0v6y3kbc3rz3l7lb9wy4qhiyxrww";
k3sVendorHash = "sha256-8PbpjPVX+Yimhwbydu9YOTIMRTf/iLG21Ee/QMowp5Y=";
chartVersions = import ./chart-versions.nix;
k3sRootVersion = "0.12.2";
k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";

View File

@ -1,7 +1,7 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (7.1.3.2)
activesupport (7.1.3.3)
base64
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
@ -54,7 +54,7 @@ GEM
multi_json
jwt (2.8.1)
base64
krane (3.5.3)
krane (3.6.0)
activesupport (>= 5.0)
colorize (~> 0.8)
concurrent-ruby (~> 1.1)
@ -76,7 +76,7 @@ GEM
mime-types (3.5.2)
mime-types-data (~> 3.2015)
mime-types-data (3.2024.0507)
minitest (5.22.3)
minitest (5.23.1)
multi_json (1.15.0)
mutex_m (0.2.0)
net-http (0.4.1)

View File

@ -5,10 +5,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0blbbf2x7dn7ar4g9aij403582zb6zscbj48bz63lvaamsvlb15d";
sha256 = "0z8kygxmz99krz9pwp947znkzf0jr64sml28df0vf1gzxlg7y57i";
type = "gem";
};
version = "7.1.3.2";
version = "7.1.3.3";
};
addressable = {
dependencies = ["public_suffix"];
@ -247,10 +247,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "11jj5fpfsb1sfwgc356xv1vxl8yq65wbbshmawpagk555y0pzbpb";
sha256 = "08dkvcmxa869pk6qdpsvljy16lb1kj94cgr4w9bhg93gx3m642v6";
type = "gem";
};
version = "3.5.3";
version = "3.6.0";
};
kubeclient = {
dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
@ -300,10 +300,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "07lq26b86giy3ha3fhrywk9r1ajhc2pm2mzj657jnpnbj1i6g17a";
sha256 = "1gkslxvkhh44s21rbjvka3zsvfxxrf5pcl6f75rv2vyrzzbgis7i";
type = "gem";
};
version = "5.22.3";
version = "5.23.1";
};
multi_json = {
groups = ["default"];

View File

@ -17,7 +17,7 @@ buildGoModule rec {
ldflags = [
"-s" "-w"
"-X github.com/inspektor-gadget/inspektor-gadget/cmd/common.version=v${version}"
"-X github.com/inspektor-gadget/inspektor-gadget/internal/version.version=v${version}"
"-X main.gadgetimage=ghcr.io/inspektor-gadget/inspektor-gadget:v${version}"
"-extldflags=-static"
];

View File

@ -82,9 +82,9 @@ rec {
nomad_1_7 = generic {
buildGoModule = buildGo121Module;
version = "1.7.7";
sha256 = "sha256-4nuRheidR6rIoytrnDQdIP69f+sBLJ3Ias5DvqVaLFc=";
vendorHash = "sha256-ZuaD8iDsT+/eW0QUavf485R804Jtjl76NcQWYHA8QII=";
version = "1.8.0";
sha256 = "sha256-j/9wvnxYhv6h344904cO2Fi6pNeSV5IfcqS4mSjDqpo=";
vendorHash = "sha256-jNdLLs/mfARl5Uk9RalwSDFLAKqIISEkek3l1wV8EYE=";
license = lib.licenses.bsl11;
passthru.tests.nomad = nixosTests.nomad;
preCheck = ''

View File

@ -0,0 +1,25 @@
# RKE2 Version
RKE2, Kubernetes, and other clustered software has the property of not being able to update atomically. Most software in nixpkgs, like for example bash, can be updated as part of a `nixos-rebuild switch` without having to worry about the old and the new bash interacting in some way.
> [!NOTE]
> Upgrade the server nodes first, one at a time. Once all servers have been upgraded, you may then upgrade agent nodes.
## Release Channels
RKE2 has there own release channels, which are: `stable`, `latest` and `testing`.
The `stable` channel is the default channel and is recommended for production use. The `latest` channel is the latest stable release. The `testing` channel is the latest release, including pre-releases.
| Channel | Description |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stable` | **(Default)** Stable is recommended for production environments. These releases have been through a period of community hardening, and are compatible with the most recent release of Rancher. |
| `latest` | Latest is recommended for trying out the latest features. These releases have not yet been through a period of community hardening, and may not be compatible with Rancher. |
| `testing` | The most recent release, including pre-releases. |
Learn more about the [RKE2 release channels](https://docs.rke2.io/upgrade/manual_upgrade).
For an exhaustive and up-to-date list of channels, you can visit the [rke2 channel service API](https://update.rke2.io/v1-release/channels). For more technical details on how channels work, you can see the [channelserver project](https://github.com/rancher/channelserver).
> [!TIP]
> When attempting to upgrade to a new version of RKE2, the [Kubernetes version skew policy](https://kubernetes.io/docs/setup/release/version-skew-policy) applies. Ensure that your plan does not skip intermediate minor versions when upgrading. Nothing in the upgrade process will protect against unsupported changes to the Kubernetes version.

View File

@ -0,0 +1,99 @@
lib: { rke2Version, rke2RepoSha256, rke2VendorHash, updateScript
, rke2Commit, k8sImageTag, etcdVersion, pauseVersion, ccmVersion, dockerizedVersion, ... }:
{ lib, stdenv, buildGoModule, go, fetchgit, makeWrapper
# Runtime dependencies
, procps, coreutils, util-linux, ethtool, socat, iptables, bridge-utils, iproute2, kmod, lvm2
# Testing dependencies
, nixosTests, testers, rke2
}:
buildGoModule rec {
pname = "rke2";
version = rke2Version;
src = fetchgit {
url = "https://github.com/rancher/rke2.git";
rev = "v${version}";
sha256 = rke2RepoSha256;
};
vendorHash = rke2VendorHash;
nativeBuildInputs = [ makeWrapper ];
# Important utilities used by the kubelet.
# See: https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494
# Notice the list in that issue is stale, but as a redundancy reservation.
buildInputs = [
procps # pidof pkill
coreutils # uname touch env nice du
util-linux # lsblk fsck mkfs nsenter mount umount
ethtool # ethtool
socat # socat
iptables # iptables iptables-restore iptables-save
bridge-utils # brctl
iproute2 # ip tc
kmod # modprobe
lvm2 # dmsetup
];
# See: https://github.com/rancher/rke2/blob/e7f87c6dd56fdd76a7dab58900aeea8946b2c008/scripts/build-binary#L27-L38
ldflags = [
"-w"
"-X github.com/k3s-io/k3s/pkg/version.GitCommit=${lib.substring 0 6 rke2Commit}"
"-X github.com/k3s-io/k3s/pkg/version.Program=${pname}"
"-X github.com/k3s-io/k3s/pkg/version.Version=v${version}"
"-X github.com/k3s-io/k3s/pkg/version.UpstreamGolang=go${go.version}"
"-X github.com/rancher/rke2/pkg/images.DefaultRegistry=docker.io"
"-X github.com/rancher/rke2/pkg/images.DefaultEtcdImage=rancher/hardened-etcd:${etcdVersion}-build20240418"
"-X github.com/rancher/rke2/pkg/images.DefaultKubernetesImage=rancher/hardened-kubernetes:${k8sImageTag}"
"-X github.com/rancher/rke2/pkg/images.DefaultPauseImage=rancher/mirrored-pause:${pauseVersion}"
"-X github.com/rancher/rke2/pkg/images.DefaultRuntimeImage=rancher/rke2-runtime:${dockerizedVersion}"
"-X github.com/rancher/rke2/pkg/images.DefaultCloudControllerManagerImage=rancher/rke2-cloud-provider:${ccmVersion}"
];
tags = [
"no_cri_dockerd"
"no_embedded_executor"
"no_stage"
"sqlite_omit_load_extension"
"selinux"
"netgo"
"osusergo"
];
subPackages = [ "." ];
installPhase = ''
install -D $GOPATH/bin/rke2 $out/bin/rke2
wrapProgram $out/bin/rke2 \
--prefix PATH : ${lib.makeBinPath buildInputs}
'';
doCheck = false;
passthru.updateScript = updateScript;
passthru.tests = {
version = testers.testVersion {
package = rke2;
version = "v${version}";
};
} // lib.optionalAttrs stdenv.isLinux {
inherit (nixosTests) rke2;
};
meta = with lib; {
homepage = "https://github.com/rancher/rke2";
description = "RKE2, also known as RKE Government, is Rancher's next-generation Kubernetes distribution.";
changelog = "https://github.com/rancher/rke2/releases/tag/v${version}";
license = licenses.asl20;
maintainers = with maintainers; [ zimbatm zygot ];
mainProgram = "rke2";
platforms = platforms.linux;
};
}

View File

@ -1,79 +1,19 @@
{ lib, stdenv, buildGoModule, fetchFromGitHub, makeWrapper, nix-update-script
{ lib, callPackage, ... }@args:
# Runtime dependencies
, procps, coreutils, util-linux, ethtool, socat, iptables, bridge-utils, iproute2, kmod, lvm2
let
common = opts: callPackage (import ./builder.nix lib opts);
extraArgs = builtins.removeAttrs args [ "callPackage" ];
in
{
rke2_stable = common ((import ./stable/versions.nix) // {
updateScript = [ ./update-script.sh "stable" ];
}) extraArgs;
# Testing dependencies
, nixosTests, testers, rke2
}:
rke2_latest = common ((import ./latest/versions.nix) // {
updateScript = [ ./update-script.sh "latest" ];
}) extraArgs;
buildGoModule rec {
pname = "rke2";
version = "1.29.0+rke2r1";
src = fetchFromGitHub {
owner = "rancher";
repo = pname;
rev = "v${version}";
hash = "sha256-E59GUcbnbvsGZYn87RGNrGTVUsydKsjL+C5h15q74p0=";
};
vendorHash = "sha256-Og0CqxNnhRN6PdggneGK05uprZ2D7lux/snXcArIm8Q=";
postPatch = ''
# Patch the build scripts so they work in the Nix build environment.
patchShebangs ./scripts
# Disable the static build as it breaks.
sed -e 's/STATIC_FLAGS=.*/STATIC_FLAGS=/g' -i scripts/build-binary
'';
nativeBuildInputs = [ makeWrapper ];
# Important utilities used by the kubelet.
# See: https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494
# Notice the list in that issue is stale, but as a redundancy reservation.
buildInputs = [
procps # pidof pkill
coreutils # uname touch env nice du
util-linux # lsblk fsck mkfs nsenter mount umount
ethtool # ethtool
socat # socat
iptables # iptables iptables-restore iptables-save
bridge-utils # brctl
iproute2 # ip tc
kmod # modprobe
lvm2 # dmsetup
];
buildPhase = ''
DRONE_TAG="v${version}" ./scripts/build-binary
'';
installPhase = ''
install -D ./bin/rke2 $out/bin/rke2
wrapProgram $out/bin/rke2 \
--prefix PATH : ${lib.makeBinPath buildInputs}
'';
passthru.updateScript = nix-update-script { };
passthru.tests = {
version = testers.testVersion {
package = rke2;
version = "v${version}";
};
} // lib.optionalAttrs stdenv.isLinux {
inherit (nixosTests) rke2;
};
meta = with lib; {
homepage = "https://github.com/rancher/rke2";
description = "RKE2, also known as RKE Government, is Rancher's next-generation Kubernetes distribution.";
changelog = "https://github.com/rancher/rke2/releases/tag/v${version}";
license = licenses.asl20;
maintainers = with maintainers; [ zimbatm zygot ];
mainProgram = "rke2";
platforms = platforms.linux;
};
rke2_testing = common ((import ./testing/versions.nix) // {
updateScript = [ ./update-script.sh "testing" ];
}) extraArgs;
}

View File

@ -0,0 +1,14 @@
{
rke2Version = "1.30.1+rke2r1";
rke2RepoSha256 = "0jrvvpj9fnlbykyr06w1f92ay708xzaizg8dhg1z4bsq1cdgs33k";
rke2Commit = "e7f87c6dd56fdd76a7dab58900aeea8946b2c008";
rke2VendorHash = "sha256-QqV8mSbqa8A5zABHQoVB2jht/eYCoqTZ/WoAqIl9oZY=";
k8sVersion = "v1.30.1";
k8sImageTag = "v1.30.1-rke2r1-build20240515";
etcdVersion = "v3.5.9-k3s1";
pauseVersion = "3.6";
ccmVersion = "v1.29.3-build20240412";
dockerizedVersion = "v1.30.1-rke2r1";
golangVersion = "go1.22.2";
eol = "2025-06-28";
}

View File

@ -0,0 +1,14 @@
{
rke2Version = "1.28.10+rke2r1";
rke2RepoSha256 = "1pbanikvrl6rqrplrpvjc9ym8qq1yrs621gwy99shp0prfw5zvsx";
rke2Commit = "b0d0d687d98f4fa015e7b30aaf2807b50edcc5d7";
rke2VendorHash = "sha256-iidkTSrrHyW5ZEouzHAWUwCC9nplGz1v/E9bM2lMPeM=";
k8sVersion = "v1.28.10";
k8sImageTag = "v1.28.10-rke2r1-build20240514";
etcdVersion = "v3.5.9-k3s1";
pauseVersion = "3.6";
ccmVersion = "v1.29.3-build20240412";
dockerizedVersion = "v1.28.10-rke2r1";
golangVersion = "go1.21.9";
eol = "2024-10-28";
}

View File

@ -0,0 +1,14 @@
{
rke2Version = "1.30.1-rc3+rke2r1";
rke2RepoSha256 = "0jrvvpj9fnlbykyr06w1f92ay708xzaizg8dhg1z4bsq1cdgs33k";
rke2Commit = "e7f87c6dd56fdd76a7dab58900aeea8946b2c008";
rke2VendorHash = "sha256-QqV8mSbqa8A5zABHQoVB2jht/eYCoqTZ/WoAqIl9oZY=";
k8sVersion = "v1.30.1";
k8sImageTag = "v1.30.1-rke2r1-build20240515";
etcdVersion = "v3.5.9-k3s1";
pauseVersion = "3.6";
ccmVersion = "v1.29.3-build20240412";
dockerizedVersion = "v1.30.1-rc3-rke2r1";
golangVersion = "go1.22.2";
eol = "2025-06-28";
}

View File

@ -0,0 +1,86 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl git gnugrep gnused yq-go nix-prefetch
set -x -eu -o pipefail
CHANNEL_NAME="${1:?Must provide a release channel, like 'stable', as the only argument}"
mkdir --parents --verbose ./${CHANNEL_NAME}
LATEST_TAG_NAME=$(curl --silent --fail https://update.rke2.io/v1-release/channels | \
yq eval ".data[] | select(.id == \"${CHANNEL_NAME}\").latest" - | \
sort -rV | grep --extended-regexp "^v[0-9]+\.[0-9]+\.[0-9]+" | head -n1)
RKE2_VERSION=$(echo ${LATEST_TAG_NAME} | sed 's/^v//')
RKE2_REPO_SHA256=$(nix-prefetch-url --quiet --unpack \
https://github.com/rancher/rke2/archive/refs/tags/${LATEST_TAG_NAME}.tar.gz)
RKE2_COMMIT=$(curl --silent --fail ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} \
https://api.github.com/repos/rancher/rke2/git/refs/tags | \
yq eval ".[] | select(.ref == \"refs/tags/${LATEST_TAG_NAME}\").object.sha" -)
VERSIONS_SCRIPT=$(mktemp --suffix ".${RKE2_COMMIT:0:6}.sh")
trap "rm --force ${VERSIONS_SCRIPT}" EXIT
curl --silent --fail --output ${VERSIONS_SCRIPT} \
https://raw.githubusercontent.com/rancher/rke2/${RKE2_COMMIT}/scripts/version.sh
set +eu
DRONE_TAG=${LATEST_TAG_NAME} source ${VERSIONS_SCRIPT}
set -eu
KUBERNETES_CYCLES=$(echo ${KUBERNETES_VERSION} | grep -Eo "[0-9]+\.[0-9]+")
KUBERNETES_EOL=$(curl --silent --fail \
https://endoflife.date/api/kubernetes/${KUBERNETES_CYCLES}.json | \
yq eval ".eol" -)
FAKE_HASH="sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
cat > ./${CHANNEL_NAME}/versions.nix << EOF
{
rke2Version = "${RKE2_VERSION}";
rke2RepoSha256 = "${RKE2_REPO_SHA256}";
rke2Commit = "${RKE2_COMMIT}";
rke2VendorHash = "${FAKE_HASH}";
k8sVersion = "${KUBERNETES_VERSION}";
k8sImageTag = "${KUBERNETES_IMAGE_TAG}";
etcdVersion = "${ETCD_VERSION}";
pauseVersion = "${PAUSE_VERSION}";
ccmVersion = "${CCM_VERSION}";
dockerizedVersion = "${DOCKERIZED_VERSION}";
golangVersion = "${VERSION_GOLANG}";
eol = "${KUBERNETES_EOL}";
}
EOF
NIXPKGS_ROOT=$(git rev-parse --show-toplevel)
set +e
RKE2_VENDOR_HASH=$(nix-prefetch -I nixpkgs=${NIXPKGS_ROOT} \
"{ sha256 }: (import ${NIXPKGS_ROOT}/. {}).rke2_${CHANNEL_NAME}.goModules.overrideAttrs (_: { vendorHash = sha256; })")
set -e
if [ -n "${RKE2_VENDOR_HASH:-}" ]; then
sed -i "s#${FAKE_HASH}#${RKE2_VENDOR_HASH}#g" ./${CHANNEL_NAME}/versions.nix
else
echo "Update failed. 'RKE2_VENDOR_HASH' is empty."
exit 1
fi
# Implement commit
# See: https://nixos.org/manual/nixpkgs/stable/#var-passthru-updateScript-commit
OLD_VERSION=$(nix-instantiate --eval -E \
"with import ${NIXPKGS_ROOT}/. {}; rke2.version or (builtins.parseDrvName rke2.name).version" | \
tr -d '"')
cat << EOF
[{
"attrPath": "rke2_${CHANNEL_NAME}",
"oldVersion": "${OLD_VERSION}",
"newVersion": "${RKE2_VERSION}",
"files": [
"${PWD}/${CHANNEL_NAME}/versions.nix"
]
}]
EOF

View File

@ -10,16 +10,16 @@
buildGoModule rec {
pname = "werf";
version = "2.1.0";
version = "2.3.3";
src = fetchFromGitHub {
owner = "werf";
repo = "werf";
rev = "v${version}";
hash = "sha256-Qur3TzFkHbPICHiJLUSp1i1uGCBIft5sp92voLR8Ics=";
hash = "sha256-nodWxHLVg5bSuixQirAsVfQZ1g38IgZJEl/3O/b3NIE=";
};
vendorHash = "sha256-kpW72OnK5YybW5YuW2eTleso0fgyDfgbJRK4QSP8ocQ=";
vendorHash = "sha256-mAA5S9t+mHMxSV8l7H9XxJ80k4pJRWDDZ0BSJrmQO1I=";
proxyVendor = true;

View File

@ -1,6 +1,5 @@
{ lib
, python3
, fetchPypi
, fetchFromGitHub
}:

View File

@ -1,4 +1,4 @@
{ lib, fetchurl, fetchFromGitLab, gettext, wrapGAppsHook3
{ lib, fetchurl, gettext, wrapGAppsHook3
# Native dependencies
, python3, gtk3, gobject-introspection, gnome

View File

@ -1,99 +0,0 @@
{ lib, stdenv, fetchFromGitHub, gradle_6, perl, jre, makeWrapper, makeDesktopItem, mplayer }:
let
version = "6.6.7-build-529";
src = fetchFromGitHub {
owner = "frostwire";
repo = "frostwire";
rev = "frostwire-desktop-${version}";
sha256 = "03wdj2kr8akzx8m1scvg98132zbaxh81qjdsxn2645b3gahjwz0m";
};
desktopItem = makeDesktopItem {
name = "frostwire";
desktopName = "FrostWire";
genericName = "P2P Bittorrent client";
exec = "frostwire";
icon = "frostwire";
comment = "Search and explore all kinds of files on the Bittorrent network";
categories = [ "Network" "FileTransfer" "P2P" ];
};
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
pname = "frostwire-desktop-deps";
inherit version src;
buildInputs = [ gradle_6 perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
( cd desktop
gradle --no-daemon build
)
'';
# perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
installPhase = ''
find $GRADLE_USER_HOME -type f -regex '.*\.\(jar\|pom\)' \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-r6YSrbSJbM3063JrX4tCVKFrJxTaLN4Trc+33jzpwcE=";
};
in stdenv.mkDerivation {
pname = "frostwire-desktop";
inherit version src;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ gradle_6 ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
( cd desktop
# disable auto-update (anyway it won't update frostwire installed in nix store)
substituteInPlace src/com/frostwire/gui/updates/UpdateManager.java \
--replace 'um.checkForUpdates' '// um.checkForUpdates'
# fix path to mplayer
substituteInPlace src/com/frostwire/gui/player/MediaPlayerLinux.java \
--replace /usr/bin/mplayer ${mplayer}/bin/mplayer
substituteInPlace build.gradle \
--replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }'
gradle --offline --no-daemon build
)
'';
installPhase = ''
mkdir -p $out/lib $out/share/java
cp desktop/build/libs/frostwire.jar $out/share/java/frostwire.jar
cp ${ { x86_64-darwin = "desktop/lib/native/*.dylib";
x86_64-linux = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}.so";
i686-linux = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}X86.so";
}.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}")
} $out/lib
cp -dpR ${desktopItem}/share $out
makeWrapper ${jre}/bin/java $out/bin/frostwire \
--add-flags "-Djava.library.path=$out/lib -jar $out/share/java/frostwire.jar"
'';
meta = with lib; {
homepage = "https://www.frostwire.com/";
description = "BitTorrent Client and Cloud File Downloader";
sourceProvenance = with sourceTypes; [
fromSource
binaryBytecode # deps
];
license = licenses.gpl2;
maintainers = with maintainers; [ gavin ];
platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" ];
broken = true; # at 2022-09-30, errors with changing hash.
};
}

View File

@ -5,18 +5,18 @@
buildGoModule rec {
pname = "storj-uplink";
version = "1.104.5";
version = "1.105.2";
src = fetchFromGitHub {
owner = "storj";
repo = "storj";
rev = "v${version}";
hash = "sha256-tzAArj813Hn/iH3LEsz1bytoOr2GfI5kyKZdXNgYwSE=";
hash = "sha256-uoMjV0ab/H8WXWawWM9CB/mGTh9odrfmKehRz6A9/Xo=";
};
subPackages = [ "cmd/uplink" ];
vendorHash = "sha256-Eo6JHcTcfC8zmKZh9sXrZ90RhIgdEBgTldIUnvNm8ms=";
vendorHash = "sha256-HlnnWmjYL/j5RvRKFtEE4ib477erA94aQ+HSF+sCiuA=";
ldflags = [ "-s" "-w" ];

View File

@ -7,7 +7,7 @@
, pkg-config
, vala
, wrapGAppsHook4
, evolution-data-server
, evolution-data-server-gtk4
, glib
, glib-networking
, gst_all_1
@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
evolution-data-server
evolution-data-server-gtk4
glib
glib-networking
# Needed for GtkMediaStream creation with success.ogg, see #311295.

View File

@ -1,6 +1,5 @@
{ lib
, mkDerivation
, fetchFromGitLab
, cmake
, extra-cmake-modules

View File

@ -10,13 +10,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "chirp";
version = "0.4.0-unstable-2024-05-23";
version = "0.4.0-unstable-2024-05-24";
src = fetchFromGitHub {
owner = "kk7ds";
repo = "chirp";
rev = "743c98a579018238595f6e022e38e4f97f23140d";
hash = "sha256-ooadPzP9UIhMHbl5v2H3eV0uZQqnNCXpwRjgbD8tFjA=";
rev = "e17c021ba4fc39eea8a2a1de37ef04a0d1253090";
hash = "sha256-YvIRo7g9fxnlf8og5CM2JLf8DeADVkcHdvb4ppS1veE=";
};
buildInputs = [
glib

View File

@ -52,13 +52,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "sdrangel";
version = "7.21.0";
version = "7.21.1";
src = fetchFromGitHub {
owner = "f4exb";
repo = "sdrangel";
rev = "v${finalAttrs.version}";
hash = "sha256-TbOGuxFFBSjva1dbZxd2oQJs6X43QWYSU6VjlXKlDfk=";
hash = "sha256-l80CgR8Io4HlSuUU3HWM1sInKSRH+F0N55CIWdu/tao=";
};
nativeBuildInputs = [

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "opensmt";
version = "2.6.0";
version = "2.7.0";
src = fetchFromGitHub {
owner = "usi-verification-and-security";
repo = "opensmt";
rev = "v${version}";
sha256 = "sha256-glIiyPSkLG7sGYw5ujfl47GuDuPIPdP+UybA1vSn0Uw=";
sha256 = "sha256-zhNNnwc41B4sNq50kPub29EYhqV+FoDKRD/CLHnVyZw=";
};
nativeBuildInputs = [ cmake bison flex ];

View File

@ -1,31 +0,0 @@
{ mkDerivation
, async, base, bytestring, containers, fetchFromGitLab, mtl
, parallel-io, parsec, lib, stm, transformers, sbv_7_13}:
mkDerivation rec {
pname = "petrinizer";
version = "0.9.1.1";
src = fetchFromGitLab {
domain = "gitlab.lrz.de";
owner = "i7";
repo = pname;
rev = version;
sha256 = "1n7fzm96gq5rxm2f8w8sr1yzm1zcxpf0b473c6xnhsgqsis5j4xw";
};
isLibrary = false;
isExecutable = true;
executableHaskellDepends = [
async base bytestring containers mtl parallel-io parsec sbv_7_13 stm
transformers
];
description = "Safety and Liveness Analysis of Petri Nets with SMT solvers";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ raskin ];
inherit (sbv_7_13.meta) platforms;
# dependency sbv no longer builds
hydraPlatforms = lib.platforms.none;
broken = true;
}

View File

@ -15,13 +15,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "terminator";
version = "2.1.3";
version = "2.1.4";
src = fetchFromGitHub {
owner = "gnome-terminator";
repo = "terminator";
rev = "v${version}";
hash = "sha256-Kx0z9oheA7Ihgsyg6zgPcGFMrqlXoIpQcL/dMqPB2qA=";
rev = "refs/tags/v${version}";
hash = "sha256-0468d/sAM/UOiaSspwWaOGogoE8/Idth0G4CMCXWFFo=";
};
nativeBuildInputs = [

View File

@ -1,6 +1,5 @@
{ lib
, fetchFromGitLab
, fetchFromGitHub
, buildGoModule
, pkg-config
}:

View File

@ -26,7 +26,7 @@
, numactl
, writeText
# Processing, video codecs, containers
, ffmpeg-full
, ffmpeg_7-full
, nv-codec-headers
, libogg
, x264
@ -69,14 +69,14 @@
# for now we disable GTK GUI support on Darwin. (It may be possible to remove
# this restriction later.)
, useGtk ? !stdenv.isDarwin
, bzip2
, appstream
, desktop-file-utils
, meson
, ninja
, wrapGAppsHook3
, wrapGAppsHook4
, intltool
, glib
, gtk3
, gtk4
, libappindicator-gtk3
, libnotify
, gst_all_1
@ -90,13 +90,14 @@
}:
let
version = "1.7.3";
version = "1.8.0";
src = fetchFromGitHub {
owner = "HandBrake";
repo = "HandBrake";
rev = version;
hash = "sha256-4Q//UU/CPgWvhtpROfNPLzBvZlB02hbFe9Z9FA7mX04=";
# uses version commit for logic in version.txt
rev = "5edf59c1da54fe1c9a487d09e8f52561fe49cb2a";
hash = "sha256-gr2UhqPY5mZOP8KBvk9yydl4AkTlqE83hYAcLwSv1Is=";
};
# Handbrake maintains a set of ffmpeg patches. In particular, these
@ -104,12 +105,12 @@ let
# https://github.com/HandBrake/HandBrake/issues/4029
# base ffmpeg version is specified in:
# https://github.com/HandBrake/HandBrake/blob/master/contrib/ffmpeg/module.defs
ffmpeg-version = "6.1";
ffmpeg-hb = ffmpeg-full.overrideAttrs (old: {
ffmpeg-version = "7.0";
ffmpeg-hb = ffmpeg_7-full.overrideAttrs (old: {
version = ffmpeg-version;
src = fetchurl {
url = "https://www.ffmpeg.org/releases/ffmpeg-${ffmpeg-version}.tar.bz2";
hash = "sha256-632j3n3TzkiplGq0R6c0a9EaOoXm77jyws5jfn9UdhE=";
hash = "sha256-ok2QdL9VI6Zaqp570Cr+QQnOedab130QT+09q0uTTXo=";
};
patches = (old.patches or [ ]) ++ [
"${src}/contrib/ffmpeg/A01-mov-read-name-track-tag-written-by-movenc.patch"
@ -119,22 +120,23 @@ let
"${src}/contrib/ffmpeg/A05-dvdsubdec-fix-processing-of-partial-packets.patch"
"${src}/contrib/ffmpeg/A06-dvdsubdec-return-number-of-bytes-used.patch"
"${src}/contrib/ffmpeg/A07-dvdsubdec-use-pts-of-initial-packet.patch"
"${src}/contrib/ffmpeg/A08-ccaption_dec-fix-pts-in-real_time-mode.patch"
"${src}/contrib/ffmpeg/A09-matroskaenc-aac-extradata-updated.patch"
"${src}/contrib/ffmpeg/A10-amfenc-Add-support-for-pict_type-field.patch"
"${src}/contrib/ffmpeg/A11-amfenc-Fixes-the-color-information-in-the-ou.patch"
"${src}/contrib/ffmpeg/A12-amfenc-HDR-metadata.patch"
"${src}/contrib/ffmpeg/A13-libavcodec-amfenc-Fix-issue-with-missing-headers-in-.patch"
"${src}/contrib/ffmpeg/A14-avcodec-add-ambient-viewing-environment-packet-side-.patch"
"${src}/contrib/ffmpeg/A15-avformat-mov-add-support-for-amve-ambient-viewing-en.patch"
"${src}/contrib/ffmpeg/A16-videotoolbox-dec-h264.patch"
"${src}/contrib/ffmpeg/A08-dvdsubdec-do-not-discard-zero-sized-rects.patch"
"${src}/contrib/ffmpeg/A09-ccaption_dec-fix-pts-in-real_time-mode.patch"
"${src}/contrib/ffmpeg/A10-matroskaenc-aac-extradata-updated.patch"
"${src}/contrib/ffmpeg/A11-videotoolbox-disable-H.264-10-bit-on-Intel-macOS.patch"
# patch to fix <https://github.com/HandBrake/HandBrake/issues/5011>
# commented out because it causes ffmpeg's filter-pixdesc-p010le test to fail.
# "${src}/contrib/ffmpeg/A17-libswscale-fix-yuv420p-to-p01xle-color-conversion-bu.patch"
# "${src}/contrib/ffmpeg/A12-libswscale-fix-yuv420p-to-p01xle-color-conversion-bu.patch"
"${src}/contrib/ffmpeg/A18-qsv-fix-decode-10bit-hdr.patch"
"${src}/contrib/ffmpeg/A19-ffbuild-common-use-gzip-n-flag-for-cuda.patch"
"${src}/contrib/ffmpeg/A13-qsv-fix-decode-10bit-hdr.patch"
"${src}/contrib/ffmpeg/A14-amfenc-Add-support-for-pict_type-field.patch"
"${src}/contrib/ffmpeg/A15-amfenc-Fixes-the-color-information-in-the-ou.patch"
"${src}/contrib/ffmpeg/A16-amfenc-HDR-metadata.patch"
"${src}/contrib/ffmpeg/A17-av1dec-dovi-rpu.patch"
"${src}/contrib/ffmpeg/A18-avformat-mov-add-support-audio-fallback-track-ref.patch"
"${src}/contrib/ffmpeg/A19-mov-ignore-old-infe-box.patch"
"${src}/contrib/ffmpeg/A20-mov-free-infe-on-failure.patch"
];
});
@ -144,24 +146,26 @@ let
# patches which don't cleanly apply are commented out.
postPatch = (old.postPatch or "") + ''
pushd ..
# patch -p1 < ${src}/contrib/x265/A00-crosscompile-fix.patch
patch -p1 < ${src}/contrib/x265/A01-threads-priority.patch
patch -p1 < ${src}/contrib/x265/A02-threads-pool-adjustments.patch
patch -p1 < ${src}/contrib/x265/A03-sei-length-crash-fix.patch
patch -p1 < ${src}/contrib/x265/A04-ambient-viewing-enviroment-sei.patch
# patch -p1 < ${src}/contrib/x265/A05-memory-leaks.patch
# patch -p1 < ${src}/contrib/x265/A06-crosscompile-fix.patch
popd
'';
});
versionFile = writeText "version.txt" ''
BRANCH=${versions.majorMinor version}.x
DATE=1970-01-01 00:00:01 +0000
URL=${src.meta.homepage}.git
HASH=${src.rev}
REV=${src.rev}
SHORTHASH=${src.rev}
SHORTHASH=${lib.substring 0 9 src.rev}
TAG=${version}
URL=${src.meta.homepage}
TAG_HASH=${src.rev}
REV=0
BRANCH=
REMOTE=${src.meta.homepage}.git
DATE=1970-01-01 00:00:01 +0000
'';
inherit (lib) optional optionals optionalString versions;
@ -176,9 +180,10 @@ let
install -Dm444 ${versionFile} ${versionFile.name}
patchShebangs scripts
patchShebangs gtk/data/
substituteInPlace libhb/hb.c \
--replace 'return hb_version;' 'return "${version}";'
--replace-fail 'return hb_version;' 'return "${version}";'
# Force using nixpkgs dependencies
sed -i '/MODULES += contrib/d' make/include/main.defs
@ -186,30 +191,23 @@ let
-e '/ ## Additional library and tool checks/,/ ## MinGW specific library and tool checks/d' \
-i make/configure.py
'' + optionalString stdenv.isDarwin ''
# Use the Nix-provided libxml2 instead of the patched version available on
# the Handbrake website.
substituteInPlace libhb/module.defs \
--replace '$(CONTRIB.build/)include/libxml2' ${libxml2.dev}/include/libxml2
# Prevent the configure script from failing if xcodebuild isn't available,
# which it isn't in the Nix context. (The actual build goes fine without
# xcodebuild.)
sed -e '/xcodebuild = ToolProbe/s/abort=.\+)/abort=False)/' -i make/configure.py
'' + optionalString stdenv.isLinux ''
# Use the Nix-provided libxml2 instead of the system-provided one.
substituteInPlace libhb/module.defs \
--replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
'' + optionalString useGtk ''
substituteInPlace gtk/module.rules \
--replace-fail '$(MESON.exe)' 'meson' \
--replace-fail '$(NINJA.exe)' 'ninja' \
# Force using nixpkgs dependencies
substituteInPlace gtk/meson.build \
--replace-fail "cc.find_library('bz2', dirs: hb_libdirs)" "cc.find_library('bz2')" \
--replace-fail "cc.find_library('mp3lame', dirs: hb_libdirs)" "cc.find_library('mp3lame')" \
--replace-fail \
"hb_incdirs = include_directories(hb_dir / 'libhb', hb_dir / 'contrib/include')" \
"hb_incdirs = include_directories(hb_dir / 'libhb')" \
"hb_incdirs = include_directories(hb_dir / 'libhb')"
substituteInPlace gtk/ghb.spec \
--replace-fail "gtk-update-icon-cache" "gtk4-update-icon-cache"
substituteInPlace gtk/data/post_install.py \
--replace-fail "gtk-update-icon-cache" "gtk4-update-icon-cache"
'';
nativeBuildInputs = [
@ -220,7 +218,7 @@ let
pkg-config
python3
]
++ optionals useGtk [ desktop-file-utils intltool meson ninja wrapGAppsHook3 ];
++ optionals useGtk [ appstream desktop-file-utils intltool meson ninja wrapGAppsHook4 ];
buildInputs = [
a52dec
@ -255,12 +253,14 @@ let
]
++ optional (!stdenv.isDarwin) numactl
++ optionals useGtk [
bzip2
dbus-glib
glib
gst_all_1.gst-libav
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gstreamer
gtk3
gtk4
hicolor-icon-theme
libappindicator-gtk3
libgudev

View File

@ -1,4 +1,4 @@
{ lib, callPackage, fetchFromGitHub }:
{ lib, callPackage }:
rec {
dockerGen = {

View File

@ -39,7 +39,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
description = "macOS VMs on Apple Silicon to use in CI and other automations";
homepage = "https://tart.run";
license = licenses.fairsource09;
maintainers = with maintainers; [ emilytrau Enzime ];
maintainers = with maintainers; [ emilytrau Enzime aduh95 ];
mainProgram = finalAttrs.pname;
platforms = [ "aarch64-darwin" ];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];

View File

@ -3,7 +3,6 @@
, pkg-config
, stdenv
, hyprland
, fetchpatch
}:
let
mkHyprlandPlugin = hyprland:
@ -34,18 +33,6 @@ let
hash = "sha256-Y9bIML3C5xyKKv+Yel4LUfSkScwGunOVZkg+Z1dPwHI=";
};
patches = [
(fetchpatch {
url = "https://github.com/outfoxxed/hy3/commit/33c8d761ff1c1d2264f7549a7bcfc010929d153c.patch";
hash = "sha256-GcLQ38IVGB6VFMviKqWAM9ayjC2lpWekx3kqrnwsLhk=";
})
(fetchpatch {
url = "https://github.com/outfoxxed/hy3/commit/400930e0391a0e13ebbc6a3b9fe162e00aaad89a.patch";
hash = "sha256-DVrZSkXE4uKrAceGpUZklqrVRzV1CpNRgjpq0uOz0jk=";
})
];
nativeBuildInputs = [ cmake ];
dontStrip = true;

View File

@ -19,7 +19,6 @@
, wayland
, wayland-protocols
, wayland-scanner
, wlroots
, libXdmcp
, debug ? false
}:
@ -57,7 +56,6 @@ stdenv.mkDerivation (finalAttrs: {
wayland
wayland-protocols
wayland-scanner
wlroots
libXdmcp
util-linux
];

View File

@ -124,7 +124,7 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://gitlab.gnome.org/World/Phosh/phosh";
changelog = "https://gitlab.gnome.org/World/Phosh/phosh/-/blob/v${finalAttrs.version}/debian/changelog";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ masipcat tomfitzhenry zhaofengli ];
maintainers = with maintainers; [ masipcat zhaofengli ];
platforms = platforms.linux;
mainProgram = "phosh-session";
};

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchFromGitHub, ghcWithPackages, haskellPackages, ... }:
{ stdenv, lib, ghcWithPackages, haskellPackages, ... }:
let xmonadctlEnv = ghcWithPackages (self: [ self.xmonad-contrib self.X11 ]);
in stdenv.mkDerivation rec {

View File

@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation {
pname = "ananicy-rules-cachyos";
version = "0-unstable-2024-05-10";
version = "0-unstable-2024-05-28";
src = fetchFromGitHub {
owner = "CachyOS";
repo = "ananicy-rules";
rev = "1826cf45201770e20fea2e7bebfc2a5001074703";
hash = "sha256-9Uth0OvV5NXHZxOCQDMmb0VdXpi8dSMdN9StnJa8n90=";
rev = "5718579addbd733a4ab190fb9355a78e8b19b0b4";
hash = "sha256-SD15wFUWryL3sRBbREr94A8oKf8KXVBaiI2bmWxbMx4=";
};
dontConfigure = true;

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