mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-09-28 02:40:50 +00:00
Merge staging-next into staging
This commit is contained in:
@@ -157,6 +157,16 @@
|
||||
|
||||
- `pnpm_10` was upgraded to version 10.34.1+, which introduced stricter integrity checks. If you encounter `ERR_PNPM_MISSING_TARBALL_INTEGRITY`, you can fall back to the older `pnpm_10_34_0`.
|
||||
|
||||
- `buildMozillaMach` is now using `enable<feature>` and `with<dependency>`
|
||||
terminology from RFC 169 and the `wrapFirefox` and `wrapThunderbird` functions
|
||||
check for these new attribute names on the passed package.
|
||||
The `privacySupport` function argument has been replaced by multiple
|
||||
granular options corresponding to individual features: `enableDataReporting`,
|
||||
`enableLocation`, `enableWebRTC`.
|
||||
The `requireSigning` and `allowAddonSideload` function arguments moved from
|
||||
the outer to the inner function and were renamed to `enableAddonSigning` and
|
||||
`enableAddonSideload`, respectively.
|
||||
|
||||
- `fetchPnpmDeps`' `fetcherVersion = 1` and `fetcherVersion = 2` have been
|
||||
removed, as announced in the 26.05 release. Packages still using them now
|
||||
throw an evaluation error and must migrate to `fetcherVersion = 3` (or later)
|
||||
@@ -209,6 +219,8 @@
|
||||
They were missing before because Ceph omitted logs when this directory was missing.
|
||||
Ceph logs can grow large, so you may want to configure rotation of these logs.
|
||||
|
||||
- Firefox wrapper now accepts an optional `appDataDir` argument, which sets `MOZ_APP_DATA` to relocate Firefox application data. This is especially useful on macOS 27 and later, where wrapped Firefox applications may be denied access to profiles in traditional application data directory.
|
||||
|
||||
## Nixpkgs Library {#sec-nixpkgs-release-26.11-lib}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
@@ -47,6 +47,6 @@ form to `/var/log/journal/{machine-id}`; if (locally) persisting the entire log
|
||||
is desired, it is recommended to make all of `/var/log/journal` persistent.
|
||||
|
||||
If not, one can set `Storage=volatile` in {manpage}`journald.conf(5)`
|
||||
([`services.journald.storage = "volatile";`](#opt-services.journald.storage)),
|
||||
([`services.journald.settings.Journal.Storage = "volatile";`](#opt-services.journald.settings.Journal)),
|
||||
which disables journal persistence and causes it to be written to
|
||||
`/run/log/journal`.
|
||||
|
||||
@@ -217,6 +217,15 @@
|
||||
|
||||
- The papra NixOS module is now hardening the systemd unit by default. If this breaks any of the configured directories, please reconfigure them through `services.papra.environment` to enable sandbox passthrough.
|
||||
|
||||
- `services.selfoss.extraConfig` and `services.selfoss.database` have been removed in favor of the structured [](#opt-services.selfoss.settings) option. When moving the `database` options to `settings`, you should also switch to the upstream naming:
|
||||
|
||||
- `type` → [`db_type`](#opt-services.selfoss.settings.db_type)
|
||||
- `host` → [`db_host`](#opt-services.selfoss.settings.db_host)
|
||||
- `name` → [`db_database`](#opt-services.selfoss.settings.db_database)
|
||||
- `username` → [`db_user`](#opt-services.selfoss.settings.db_user)
|
||||
- `password` → [`db_password`](#opt-services.selfoss.settings.db_password)
|
||||
- `port` → [`db_port`](#opt-services.selfoss.settings.db_port)
|
||||
|
||||
- `slskd` has been updated to v0.25.0, which renames the `global` option to `transfers`. Please review the [changelog](https://github.com/slskd/slskd/releases#release-0.25.0).
|
||||
|
||||
- [firefox-syncserver.database.type](#opt-services.firefox-syncserver.database.type) no longer defaults to `"mysql"`. You must now explicitly choose between `"mysql"` and `"postgresql"`. New deployments should prefer PostgreSQL.
|
||||
|
||||
@@ -252,6 +252,16 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
experimental-features = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [ ];
|
||||
example = [ "ca-derivations" ];
|
||||
description = ''
|
||||
List of experimental features to enable in Nix.
|
||||
See <https://nixos.org/manual/nix/stable/development/experimental-features> for available features.
|
||||
'';
|
||||
};
|
||||
|
||||
sandbox = mkOption {
|
||||
type = types.either types.bool (types.enum [ "relaxed" ]);
|
||||
default = true;
|
||||
|
||||
@@ -371,7 +371,6 @@ let
|
||||
"gfxmenu"
|
||||
"gfxterm"
|
||||
"gfxterm_background"
|
||||
"gfxterm_menu"
|
||||
"test"
|
||||
"loadenv"
|
||||
"all_video"
|
||||
|
||||
@@ -84,6 +84,8 @@ in
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
services.journald.settings.Journal.ForwardToSyslog = lib.mkOptionDefault true;
|
||||
|
||||
environment.systemPackages = [ pkgs.rsyslog ];
|
||||
|
||||
systemd.services.syslog = {
|
||||
|
||||
@@ -77,6 +77,8 @@ in
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.journald.settings.Journal.ForwardToSyslog = lib.mkOptionDefault true;
|
||||
|
||||
systemd.services.syslog-ng = {
|
||||
description = "syslog-ng daemon";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
@@ -54,6 +54,15 @@ in
|
||||
:::
|
||||
'';
|
||||
};
|
||||
extraArgs = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ ];
|
||||
example = [
|
||||
"--resolver=10.1.2.3:53"
|
||||
"--quiet"
|
||||
];
|
||||
description = "Ad-hoc command-line arguments passed to the service at startup.";
|
||||
};
|
||||
intermediatePasswordFile = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.externalPath;
|
||||
default = null;
|
||||
@@ -114,6 +123,7 @@ in
|
||||
+ lib.optionalString (
|
||||
cfg.intermediatePasswordFile != null
|
||||
) " --password-file \${CREDENTIALS_DIRECTORY}/intermediate_password"
|
||||
+ lib.optionalString (cfg.extraArgs != [ ]) " ${lib.escapeShellArgs cfg.extraArgs}"
|
||||
)
|
||||
];
|
||||
|
||||
|
||||
@@ -4,33 +4,75 @@
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
mapAttrs
|
||||
mkDefault
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
|
||||
cfg = config.services.selfoss;
|
||||
|
||||
poolName = "selfoss_pool";
|
||||
|
||||
dataDir = "/var/lib/selfoss";
|
||||
|
||||
selfoss-config =
|
||||
let
|
||||
db_type = cfg.database.type;
|
||||
default_port = if (db_type == "mysql") then 3306 else 5342;
|
||||
in
|
||||
pkgs.writeText "selfoss-config.ini" ''
|
||||
[globals]
|
||||
${lib.optionalString (db_type != "sqlite") ''
|
||||
db_type=${db_type}
|
||||
db_host=${cfg.database.host}
|
||||
db_database=${cfg.database.name}
|
||||
db_username=${cfg.database.user}
|
||||
db_password=${cfg.database.password}
|
||||
db_port=${toString (if (cfg.database.port != null) then cfg.database.port else default_port)}
|
||||
''}
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
settingsFormat = pkgs.formats.iniWithGlobalSection {
|
||||
mkKeyValue = lib.generators.mkKeyValueDefault {
|
||||
mkValueString =
|
||||
v:
|
||||
if v == null then
|
||||
""
|
||||
else if v == true then
|
||||
"1"
|
||||
else if v == false then
|
||||
"0"
|
||||
else
|
||||
lib.generators.mkValueStringDefault { } v;
|
||||
} "=";
|
||||
};
|
||||
|
||||
selfoss-config = settingsFormat.generate "config.ini" { globalSection = cfg.settings; };
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "selfoss" "database" "type" ]
|
||||
[ "services" "selfoss" "settings" "db_type" ]
|
||||
)
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "selfoss" "database" "host" ]
|
||||
[ "services" "selfoss" "settings" "db_host" ]
|
||||
)
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "selfoss" "database" "name" ]
|
||||
[ "services" "selfoss" "settings" "db_database" ]
|
||||
)
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "selfoss" "database" "username" ]
|
||||
[ "services" "selfoss" "settings" "db_user" ]
|
||||
)
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "selfoss" "database" "password" ]
|
||||
[ "services" "selfoss" "settings" "db_password" ]
|
||||
)
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "selfoss" "database" "port" ]
|
||||
[ "services" "selfoss" "settings" "db_port" ]
|
||||
)
|
||||
(lib.mkRemovedOptionModule [ "services" "selfoss" "extraConfig" ] ''
|
||||
Use services.selfoss.settings instead.
|
||||
|
||||
This is part of the general move to use structured settings instead of raw
|
||||
text for config as introduced by RFC0042:
|
||||
https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
|
||||
'')
|
||||
];
|
||||
|
||||
options = {
|
||||
services.selfoss = {
|
||||
enable = mkEnableOption "selfoss";
|
||||
@@ -54,67 +96,75 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
database = {
|
||||
type = mkOption {
|
||||
type = types.enum [
|
||||
"pgsql"
|
||||
"mysql"
|
||||
"sqlite"
|
||||
];
|
||||
default = "sqlite";
|
||||
description = ''
|
||||
Database to store feeds. Supported are sqlite, pgsql and mysql.
|
||||
'';
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
# Only single level of config supported
|
||||
freeformType = types.attrsOf settingsFormat.lib.types.atom;
|
||||
|
||||
options = {
|
||||
db_type = mkOption {
|
||||
type = types.enum [
|
||||
"pgsql"
|
||||
"mysql"
|
||||
"sqlite"
|
||||
];
|
||||
default = "sqlite";
|
||||
description = ''
|
||||
Database to store feeds. Supported are sqlite, pgsql and mysql.
|
||||
'';
|
||||
};
|
||||
|
||||
db_host = mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
description = ''
|
||||
Host of the database (has no effect if type is "sqlite").
|
||||
'';
|
||||
};
|
||||
|
||||
db_database = mkOption {
|
||||
type = types.str;
|
||||
default = "tt_rss";
|
||||
description = ''
|
||||
Name of the existing database (has no effect if type is "sqlite").
|
||||
'';
|
||||
};
|
||||
|
||||
db_user = mkOption {
|
||||
type = types.str;
|
||||
default = "tt_rss";
|
||||
description = ''
|
||||
The database user. The user must exist and has access to
|
||||
the specified database (has no effect if type is "sqlite").
|
||||
'';
|
||||
};
|
||||
|
||||
db_password = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
The database user's password (has no effect if type is "sqlite").
|
||||
'';
|
||||
};
|
||||
|
||||
db_port = mkOption {
|
||||
type = types.nullOr types.port;
|
||||
default = null;
|
||||
description = ''
|
||||
The database's port. If not set, the default ports will be
|
||||
provided (5432 and 3306 for pgsql and mysql respectively)
|
||||
(has no effect if type is "sqlite").
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
description = ''
|
||||
Host of the database (has no effect if type is "sqlite").
|
||||
'';
|
||||
};
|
||||
default = { };
|
||||
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
default = "tt_rss";
|
||||
description = ''
|
||||
Name of the existing database (has no effect if type is "sqlite").
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "tt_rss";
|
||||
description = ''
|
||||
The database user. The user must exist and has access to
|
||||
the specified database (has no effect if type is "sqlite").
|
||||
'';
|
||||
};
|
||||
|
||||
password = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
The database user's password (has no effect if type is "sqlite").
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.nullOr types.port;
|
||||
default = null;
|
||||
description = ''
|
||||
The database's port. If not set, the default ports will be
|
||||
provided (5432 and 3306 for pgsql and mysql respectively)
|
||||
(has no effect if type is "sqlite").
|
||||
'';
|
||||
};
|
||||
};
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
Extra configuration added to config.ini
|
||||
Configuration for selfoss, see
|
||||
<https://selfoss.aditu.de/docs/administration/options/>
|
||||
for supported values.
|
||||
'';
|
||||
};
|
||||
};
|
||||
@@ -123,7 +173,7 @@ in
|
||||
config = mkIf cfg.enable {
|
||||
services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") {
|
||||
${poolName} = {
|
||||
user = config.services.nginx.user;
|
||||
user = mkDefault config.services.nginx.user;
|
||||
settings = mapAttrs (name: mkDefault) {
|
||||
"listen.owner" = config.services.nginx.user;
|
||||
"listen.group" = config.services.nginx.group;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
utils,
|
||||
...
|
||||
}:
|
||||
@@ -10,111 +9,65 @@ let
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "journald" "storage" ]
|
||||
[ "services" "journald" "settings" "Journal" "Storage" ]
|
||||
)
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "journald" "rateLimitInterval" ]
|
||||
[ "services" "journald" "settings" "Journal" "RateLimitIntervalSec" ]
|
||||
)
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "journald" "rateLimitBurst" ]
|
||||
[ "services" "journald" "settings" "Journal" "RateLimitBurst" ]
|
||||
)
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "journald" "forwardToSyslog" ]
|
||||
[ "services" "journald" "settings" "Journal" "ForwardToSyslog" ]
|
||||
)
|
||||
(lib.mkRemovedOptionModule
|
||||
[
|
||||
"services"
|
||||
"journald"
|
||||
"console"
|
||||
]
|
||||
"Use services.journald.settings.Journal.ForwardToConsole and services.journald.settings.Journal.TTYPath instead."
|
||||
)
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "journald" "audit" ]
|
||||
[ "services" "journald" "settings" "Journal" "Audit" ]
|
||||
)
|
||||
(lib.mkRemovedOptionModule [
|
||||
"services"
|
||||
"journald"
|
||||
"extraConfig"
|
||||
] "Use services.journald.settings.Journal instead.")
|
||||
];
|
||||
|
||||
options = {
|
||||
services.journald.console = lib.mkOption {
|
||||
default = "";
|
||||
type = lib.types.str;
|
||||
description = "If non-empty, write log messages to the specified TTY device.";
|
||||
};
|
||||
|
||||
services.journald.rateLimitInterval = lib.mkOption {
|
||||
default = "30s";
|
||||
type = lib.types.str;
|
||||
services.journald.settings.Journal = lib.mkOption {
|
||||
default = { };
|
||||
example = {
|
||||
Storage = "volatile";
|
||||
ForwardToConsole = true;
|
||||
TTYPath = "/dev/tty12";
|
||||
};
|
||||
description = ''
|
||||
Configures the rate limiting interval that is applied to all
|
||||
messages generated on the system. This rate limiting is applied
|
||||
per-service, so that two services which log do not interfere with
|
||||
each other's limit. The value may be specified in the following
|
||||
units: s, min, h, ms, us. To turn off any kind of rate limiting,
|
||||
set either value to 0.
|
||||
|
||||
See {option}`services.journald.rateLimitBurst` for important
|
||||
considerations when setting this value.
|
||||
'';
|
||||
};
|
||||
|
||||
services.journald.storage = lib.mkOption {
|
||||
default = "persistent";
|
||||
type = lib.types.enum [
|
||||
"persistent"
|
||||
"volatile"
|
||||
"auto"
|
||||
"none"
|
||||
];
|
||||
description = ''
|
||||
Controls where to store journal data. See
|
||||
{manpage}`journald.conf(5)` for further information.
|
||||
'';
|
||||
};
|
||||
|
||||
services.journald.rateLimitBurst = lib.mkOption {
|
||||
default = 10000;
|
||||
type = lib.types.int;
|
||||
description = ''
|
||||
Configures the rate limiting burst limit (number of messages per
|
||||
interval) that is applied to all messages generated on the system.
|
||||
This rate limiting is applied per-service, so that two services
|
||||
which log do not interfere with each other's limit.
|
||||
|
||||
Note that the effective rate limit is multiplied by a factor derived
|
||||
from the available free disk space for the journal as described on
|
||||
{manpage}`journald.conf(5)`.
|
||||
|
||||
Note that the total amount of logs stored is limited by journald settings
|
||||
such as `SystemMaxUse`, which defaults to 10% the file system size
|
||||
(capped at max 4GB), and `SystemKeepFree`, which defaults to 15% of the
|
||||
file system size.
|
||||
|
||||
It is thus recommended to compute what period of time that you will be
|
||||
able to store logs for when an application logs at full burst rate.
|
||||
With default settings for log lines that are 100 Bytes long, this can
|
||||
amount to just a few hours.
|
||||
'';
|
||||
};
|
||||
|
||||
services.journald.audit = lib.mkOption {
|
||||
default = "keep";
|
||||
type = lib.types.oneOf [
|
||||
lib.types.bool
|
||||
(lib.types.enum [ "keep" ])
|
||||
];
|
||||
description = ''
|
||||
If enabled systemd-journald will turn on auditing on start-up.
|
||||
If disabled it will turn it off. If unset it will neither enable nor disable it, leaving the previous state unchanged.
|
||||
|
||||
NixOS defaults to leaving this unset as enabling audit without auditd running leads to spamming /dev/kmesg with random messages
|
||||
and if you enable auditd then auditd is responsible for turning auditing on.
|
||||
|
||||
If you want to have audit logs in journald and do not mind audit logs also ending up in /dev/kmesg you can set this option to true.
|
||||
|
||||
If you want to for some ununderstandable reason disable auditing if auditd enabled it then you can set this option to false.
|
||||
It is of NixOS' opinion that setting this to false is definitely the wrong thing to do - but it's an option.
|
||||
'';
|
||||
};
|
||||
|
||||
services.journald.extraConfig = lib.mkOption {
|
||||
default = "";
|
||||
type = lib.types.lines;
|
||||
example = "Storage=volatile";
|
||||
description = ''
|
||||
Extra config options for systemd-journald. See {manpage}`journald.conf(5)`
|
||||
for available options.
|
||||
'';
|
||||
};
|
||||
|
||||
services.journald.forwardToSyslog = lib.mkOption {
|
||||
default = config.services.rsyslogd.enable || config.services.syslog-ng.enable;
|
||||
defaultText = lib.literalExpression "services.rsyslogd.enable || services.syslog-ng.enable";
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Whether to forward log messages to syslog.
|
||||
Options for the systemd journal service. See {manpage}`journald.conf(5)`
|
||||
man page for available options.
|
||||
'';
|
||||
type = lib.types.submodule {
|
||||
freeformType = lib.types.attrsOf utils.systemdUtils.unitOptions.unitOption;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
services.journald.settings.Journal = {
|
||||
# "keep" isn't systemd's default since v258, so set it explicitly.
|
||||
Audit = lib.mkOptionDefault "keep";
|
||||
};
|
||||
|
||||
systemd.additionalUpstreamSystemUnits = [
|
||||
"systemd-journald.socket"
|
||||
"systemd-journald@.socket"
|
||||
@@ -136,23 +89,8 @@ in
|
||||
"sockets.target"
|
||||
];
|
||||
|
||||
environment.etc = {
|
||||
"systemd/journald.conf".text = ''
|
||||
[Journal]
|
||||
Storage=${cfg.storage}
|
||||
RateLimitInterval=${cfg.rateLimitInterval}
|
||||
RateLimitBurst=${toString cfg.rateLimitBurst}
|
||||
${lib.optionalString (cfg.console != "") ''
|
||||
ForwardToConsole=yes
|
||||
TTYPath=${cfg.console}
|
||||
''}
|
||||
${lib.optionalString (cfg.forwardToSyslog) ''
|
||||
ForwardToSyslog=yes
|
||||
''}
|
||||
Audit=${utils.systemdUtils.lib.toOption cfg.audit}
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
};
|
||||
environment.etc."systemd/journald.conf".text =
|
||||
utils.systemdUtils.lib.settingsToSections cfg.settings;
|
||||
|
||||
users.groups.systemd-journal.gid = config.ids.gids.systemd-journal;
|
||||
|
||||
|
||||
@@ -233,11 +233,11 @@ in
|
||||
environment.systemPackages = [ pkgs.xwininfo ];
|
||||
|
||||
# Log everything to the serial console.
|
||||
services.journald.extraConfig = ''
|
||||
ForwardToConsole=yes
|
||||
TTYPath=/dev/${qemu-common.qemuSerialDevice}
|
||||
MaxLevelConsole=debug
|
||||
'';
|
||||
services.journald.settings.Journal = {
|
||||
ForwardToConsole = true;
|
||||
TTYPath = "/dev/${qemu-common.qemuSerialDevice}";
|
||||
MaxLevelConsole = "debug";
|
||||
};
|
||||
|
||||
systemd.settings.Manager = managerSettings;
|
||||
systemd.user.settings.Manager = {
|
||||
|
||||
@@ -121,13 +121,13 @@
|
||||
walled.succeed("${reset}")
|
||||
attacker.fail("curl --fail --connect-timeout 2 http://walled/ >&2")
|
||||
|
||||
# Check whether activation of a new configuration reloads the firewall.
|
||||
walled.succeed(
|
||||
"/run/booted-system/specialisation/different-config/bin/switch-to-configuration test 2>&1 | grep -F ${unit}.service"
|
||||
)
|
||||
|
||||
# If we stop the firewall, then connections should succeed.
|
||||
walled.stop_job("${unit}")
|
||||
attacker.succeed("curl -v http://walled/ >&2")
|
||||
|
||||
# Check whether activation of a new configuration reloads the firewall.
|
||||
walled.succeed(
|
||||
"/run/booted-system/specialisation/different-config/bin/switch-to-configuration test 2>&1 | grep -qF ${unit}.service"
|
||||
)
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
grub_select_all_configurations()
|
||||
with subtest("Invalid credentials are rejected"):
|
||||
grub_login_as("wronguser", "wrongsecret")
|
||||
machine.wait_for_console_text("error: access denied.")
|
||||
machine.wait_for_console_text("access denied")
|
||||
|
||||
grub_select_all_configurations()
|
||||
with subtest("Valid credentials are accepted"):
|
||||
|
||||
@@ -99,9 +99,11 @@ import ./make-test-python.nix (
|
||||
desktop-file-utils
|
||||
docbook5
|
||||
docbook_xsl_ns
|
||||
hello
|
||||
kbd.dev
|
||||
kmod.dev
|
||||
libarchive.dev
|
||||
libcap-text-verifier
|
||||
libxml2.bin
|
||||
libxslt.bin
|
||||
nixos-artwork.wallpapers.simple-dark-gray-bottom
|
||||
@@ -112,6 +114,7 @@ import ./make-test-python.nix (
|
||||
perlPackages.JSON
|
||||
perlPackages.ListCompare
|
||||
perlPackages.XMLLibXML
|
||||
# make-options-doc/default.nix
|
||||
(python3.withPackages (p: [ p.mistune ]))
|
||||
shared-mime-info
|
||||
sudo
|
||||
|
||||
@@ -13,10 +13,11 @@ with pkgs.lib;
|
||||
meta.maintainers = [ pkgs.lib.maintainers.aanderse ];
|
||||
|
||||
nodes.machine =
|
||||
{ config, pkgs, ... }:
|
||||
{ lib, ... }:
|
||||
{
|
||||
services.rsyslogd.enable = true;
|
||||
services.journald.forwardToSyslog = false;
|
||||
# Verify that the module's option default remains overridable by downstream defaults.
|
||||
services.journald.settings.Journal.ForwardToSyslog = lib.mkDefault false;
|
||||
};
|
||||
|
||||
# ensure rsyslogd isn't receiving messages from journald if explicitly disabled
|
||||
@@ -31,7 +32,7 @@ with pkgs.lib;
|
||||
meta.maintainers = [ pkgs.lib.maintainers.aanderse ];
|
||||
|
||||
nodes.machine =
|
||||
{ config, pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
services.rsyslogd.enable = true;
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
name = "systemd-journal";
|
||||
@@ -14,7 +14,8 @@
|
||||
security.audit.enable = true;
|
||||
};
|
||||
nodes.journaldAudit = {
|
||||
services.journald.audit = true;
|
||||
# Verify that the module's option default remains overridable by downstream defaults.
|
||||
services.journald.settings.Journal.Audit = lib.mkDefault true;
|
||||
security.audit.enable = true;
|
||||
};
|
||||
nodes.containerCheck = {
|
||||
@@ -45,6 +46,7 @@
|
||||
|
||||
with subtest("journald audit"):
|
||||
journaldAudit.wait_for_unit("multi-user.target")
|
||||
journaldAudit.succeed("grep -Fx 'Audit=true' /etc/systemd/journald.conf")
|
||||
|
||||
# logs should end up in the journald
|
||||
journaldAudit.succeed("journalctl _TRANSPORT=audit --grep 'unit=systemd-journald'")
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
KExecWatchdogSec = "5min";
|
||||
};
|
||||
systemd.user.settings.Manager.DefaultEnvironment = "\"XXX_USER=bar\"";
|
||||
services.journald.extraConfig = "Storage=volatile";
|
||||
services.journald.settings.Journal.Storage = "volatile";
|
||||
test-support.displayManager.auto.user = "alice";
|
||||
|
||||
systemd.shutdownRamfs.contents."/etc/systemd/system-shutdown/test".source =
|
||||
|
||||
@@ -4885,8 +4885,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "opa";
|
||||
publisher = "tsandall";
|
||||
version = "0.24.1";
|
||||
hash = "sha256-wNlZM9/2K32W4vYPKzLiBCTqhV+SqgZzXGRxKoHoIaM=";
|
||||
version = "0.25.0";
|
||||
hash = "sha256-d+INOMEc4ZO3T3326GxQW3PP/UflOwmEPfQOm2weVRY=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://github.com/open-policy-agent/vscode-opa/blob/master/CHANGELOG.md";
|
||||
@@ -4978,8 +4978,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "theme-bluloco-light";
|
||||
publisher = "uloco";
|
||||
version = "3.7.5";
|
||||
sha256 = "sha256-MDrw0JWioLyg+H0XOCpULsmtM/y7RfV9ruDtskRiT3A=";
|
||||
version = "3.10.0";
|
||||
sha256 = "sha256-dweX1i8nn8qSleeGyhnrzSUXkhA13IXcGwwdkV7WsCI=";
|
||||
};
|
||||
postInstall = ''
|
||||
rm -r $out/share/vscode/extensions/uloco.theme-bluloco-light/screenshots
|
||||
@@ -5552,8 +5552,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "markdown-editor";
|
||||
publisher = "zaaack";
|
||||
version = "0.1.19";
|
||||
hash = "sha256-W0lL0JMNyEszyJa6I7RbXYLu4cU9DQUh0ZEAOd6eshI=";
|
||||
version = "0.1.20";
|
||||
hash = "sha256-YewK36OeKWgTU/iFRVZHYjF2+ke6TXb6HIggRZt1/nk=";
|
||||
};
|
||||
meta = {
|
||||
description = "Visual Studio Code extension for WYSIWYG markdown editing";
|
||||
|
||||
@@ -853,7 +853,7 @@
|
||||
}
|
||||
},
|
||||
"ungoogled-chromium": {
|
||||
"version": "152.0.7977.64",
|
||||
"version": "152.0.7977.75",
|
||||
"deps": {
|
||||
"depot_tools": {
|
||||
"rev": "38c391feba5fb96812f9028da12413ffc39df394",
|
||||
@@ -865,16 +865,16 @@
|
||||
"hash": "sha256-ovLx6KaORdXqnWgbsGEty10k2CHuCmTk3yEqy5//ovk="
|
||||
},
|
||||
"ungoogled-patches": {
|
||||
"rev": "152.0.7977.64-1",
|
||||
"hash": "sha256-9esE3TgtKiwwFL5pu87aEQznelMVtNXBslggYAJTEbc="
|
||||
"rev": "152.0.7977.75-1",
|
||||
"hash": "sha256-HXWnJfk0SxC8sRcgtFdGBOOeiV7kEQD2YXQFBwMsU1s="
|
||||
},
|
||||
"npmHash": "sha256-pF0JtwFpPC4/fodbhSJnQKkczA9WlDg4VqEAy9aDVLg="
|
||||
},
|
||||
"DEPS": {
|
||||
"src": {
|
||||
"url": "https://chromium.googlesource.com/chromium/src.git",
|
||||
"rev": "506c834ecceaa943c5f41e6cfe7f68acb5c45346",
|
||||
"hash": "sha256-KEr9nzF55+c8Rvvay3SZjcWMDWVGTyv1f5Pjv3ckl3E=",
|
||||
"rev": "4999cc1efed37c4d91dc4ce6ec4b0a50e2a9a8cb",
|
||||
"hash": "sha256-RXykREnCulCwk8zkk8OAd62TM4qel6j4uhyaaYzgolY=",
|
||||
"recompress": true
|
||||
},
|
||||
"src/third_party/clang-format/script": {
|
||||
@@ -989,8 +989,8 @@
|
||||
},
|
||||
"src/third_party/dawn": {
|
||||
"url": "https://dawn.googlesource.com/dawn.git",
|
||||
"rev": "571752c9cb3ed36a3194854374984427794c4dda",
|
||||
"hash": "sha256-YMgRmVMXo1Ra5M034zij/ik/1aHpb3veK4VWsKHIwhI="
|
||||
"rev": "ab8827bc57b176eeaa89f71324130c02d4d41145",
|
||||
"hash": "sha256-Xd1FsdIBO6hzNECnNnXR0306woHl5/L+5WZ/pxTlYfA="
|
||||
},
|
||||
"src/third_party/dawn/third_party/glfw3/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
|
||||
@@ -1124,8 +1124,8 @@
|
||||
},
|
||||
"src/third_party/devtools-frontend/src": {
|
||||
"url": "https://chromium.googlesource.com/devtools/devtools-frontend",
|
||||
"rev": "941348cf79c423892e1c7c219091a7103d18a68b",
|
||||
"hash": "sha256-/b+NCAr1jRJd/Uq4Cf5aO/yTdNP00ImIWuSJ4aP+TEw="
|
||||
"rev": "04db1f5240b636511ec4e9058a78f8274a7f65ee",
|
||||
"hash": "sha256-vZxKC/QD2dHNnVm9OZI1Bo0Jdnn+AJhFpXYSXXF7JsA="
|
||||
},
|
||||
"src/third_party/dom_distiller_js/dist": {
|
||||
"url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git",
|
||||
@@ -1694,8 +1694,8 @@
|
||||
},
|
||||
"src/v8": {
|
||||
"url": "https://chromium.googlesource.com/v8/v8.git",
|
||||
"rev": "6aacaf6256a069ee455142333b7d38cad1c8d6e0",
|
||||
"hash": "sha256-1NX4HP/BIJ6bWxoF42K89X8ADHuHjA5akkOL/WkIeME="
|
||||
"rev": "3de6ffffbfdcf265e9f11a5c9d1cfb4d486d7550",
|
||||
"hash": "sha256-ZHEmeSe8r226gjazm91GYqlfbM9a5yi8KnFv4iAWFKE="
|
||||
},
|
||||
"src/agents/shared": {
|
||||
"url": "https://chromium.googlesource.com/chromium/agents.git",
|
||||
|
||||
@@ -130,8 +130,8 @@ stdenv.mkDerivation {
|
||||
passthru = {
|
||||
inherit applicationName binaryName;
|
||||
libName = "firefox-bin-${version}";
|
||||
ffmpegSupport = true;
|
||||
gssSupport = true;
|
||||
withFFmpeg = true;
|
||||
withGSSAPI = true;
|
||||
gtk3 = gtk3;
|
||||
|
||||
# update with:
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
buildMozillaMach rec {
|
||||
pname = "firefox-beta";
|
||||
binaryName = "firefox-beta";
|
||||
version = "155.0b5";
|
||||
version = "156.0b2";
|
||||
applicationName = "Firefox Beta";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "30b4b84c80057a992e763b8f967c65f46308324fd41c0307c9302e262e6428c379861ccd9ce52dde15d0dc3f4410b95a8c047ea7e5af9d90e60e7bb57ee59137";
|
||||
sha512 = "5b685f8b947af0b519c59a308fba6a41f9481df68b7fb6f4b395707653c3ef1822817d2f867d663081cd2d61c8fd4537f46b8002da84b5efa9b8a57ae9491164";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -7,16 +7,15 @@
|
||||
buildMozillaMach,
|
||||
}:
|
||||
|
||||
buildMozillaMach rec {
|
||||
(buildMozillaMach rec {
|
||||
pname = "firefox-devedition";
|
||||
binaryName = "firefox-devedition";
|
||||
version = "155.0b5";
|
||||
version = "156.0b2";
|
||||
applicationName = "Firefox Developer Edition";
|
||||
requireSigning = false;
|
||||
branding = "browser/branding/aurora";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "8e9ccc65a8cd6640171d4891fe8d01435cd524cee8164a5829429df827bcc2b49c3b7e6a092aaf5bfa48140d7f40f6c9cb371af48a7321132ea6ee5da0af08e3";
|
||||
sha512 = "683326ff4367f9b807c4c5b93f100970258ada9838da2c597358105a99ff4aa7e33269fe67d6c68d466e2f539d2bea3015457109516af19e1785588ce43426b5";
|
||||
};
|
||||
|
||||
# buildMozillaMach sets MOZ_APP_REMOTINGNAME during configuration, but
|
||||
@@ -52,4 +51,7 @@ buildMozillaMach rec {
|
||||
versionSuffix = "b[0-9]*";
|
||||
baseUrl = "https://archive.mozilla.org/pub/devedition/releases/";
|
||||
};
|
||||
}
|
||||
}).override
|
||||
{
|
||||
enableAddonSigning = false;
|
||||
}
|
||||
|
||||
@@ -69,8 +69,9 @@ let
|
||||
wmClass ? applicationName,
|
||||
nativeMessagingHosts ? [ ],
|
||||
pkcs11Modules ? [ ],
|
||||
useGlvnd ? (!isDarwin),
|
||||
withGlvnd ? (!isDarwin),
|
||||
cfg ? config.${applicationName} or { },
|
||||
appDataDir ? null,
|
||||
|
||||
## Following options are needed for extra prefs & policies
|
||||
# For more information about anti tracking (german website)
|
||||
@@ -88,20 +89,20 @@ let
|
||||
}:
|
||||
|
||||
let
|
||||
ffmpegSupport = browser.ffmpegSupport or false;
|
||||
withFFmpeg = browser.withFFmpeg or false;
|
||||
# Firefox dlopens libavcodec by hardcoded soname, so each ffmpeg major needs
|
||||
# explicit browser support; keep versioned pins here (never the ffmpeg alias)
|
||||
# and add a tier when a release gains the next ABI.
|
||||
# libavcodec 62: 146 (bug 1962139), uplifted to ESR 140.10.2 (bug 2036244).
|
||||
# libavcodec 63: 154 (bug 2057577), uplifted to ESR 153.1 (bug 2057577).
|
||||
ffmpegPackage = if lib.versionAtLeast browser.version "153.1" then ffmpeg_9 else ffmpeg_8;
|
||||
gssSupport = browser.gssSupport or false;
|
||||
alsaSupport = browser.alsaSupport or false;
|
||||
pipewireSupport = browser.pipewireSupport or false;
|
||||
sndioSupport = browser.sndioSupport or false;
|
||||
jackSupport = browser.jackSupport or false;
|
||||
withGSSAPI = browser.withGSSAPI or false;
|
||||
withALSA = browser.withALSA or false;
|
||||
withPipewire = browser.withPipewire or false;
|
||||
withSndio = browser.withSndio or false;
|
||||
withJACK = browser.withJACK or false;
|
||||
# PCSC-Lite daemon (services.pcscd) also must be enabled for firefox to access smartcards
|
||||
smartcardSupport = cfg.smartcardSupport or false;
|
||||
withPCSC = cfg.smartcardSupport or false;
|
||||
|
||||
allNativeMessagingHosts = map lib.getBin (lib.unique nativeMessagingHosts);
|
||||
|
||||
@@ -119,10 +120,10 @@ let
|
||||
]
|
||||
++ lib.optional (cfg.speechSynthesisSupport or true) speechd-minimal
|
||||
)
|
||||
++ lib.optional pipewireSupport pipewire
|
||||
++ lib.optional ffmpegSupport ffmpegPackage
|
||||
++ lib.optional gssSupport libkrb5
|
||||
++ lib.optional useGlvnd libglvnd
|
||||
++ lib.optional withPipewire pipewire
|
||||
++ lib.optional withFFmpeg ffmpegPackage
|
||||
++ lib.optional withGSSAPI libkrb5
|
||||
++ lib.optional withGlvnd libglvnd
|
||||
++ lib.optionals (cfg.enableQuakeLive or false) [
|
||||
stdenv.cc
|
||||
libx11
|
||||
@@ -134,10 +135,10 @@ let
|
||||
zlib
|
||||
]
|
||||
++ lib.optional (config.pulseaudio or (!isDarwin)) libpulseaudio
|
||||
++ lib.optional alsaSupport alsa-lib
|
||||
++ lib.optional sndioSupport sndio
|
||||
++ lib.optional jackSupport libjack2
|
||||
++ lib.optional smartcardSupport opensc
|
||||
++ lib.optional withALSA alsa-lib
|
||||
++ lib.optional withSndio sndio
|
||||
++ lib.optional withJACK libjack2
|
||||
++ lib.optional withPCSC opensc
|
||||
++ pkcs11Modules
|
||||
++ lib.optionals (!isDarwin) gtk_modules;
|
||||
gtk_modules = lib.optionals (!isDarwin) [ libcanberra-gtk3 ];
|
||||
@@ -161,7 +162,7 @@ let
|
||||
extensions =
|
||||
if nameArray != (lib.unique nameArray) then
|
||||
throw "Firefox addon name needs to be unique"
|
||||
else if browser.requireSigning || !browser.allowAddonSideload then
|
||||
else if browser.enableAddonSigning || !browser.enableAddonSideload then
|
||||
throw "Nix addons are only supported with signature enforcement disabled and addon sideloading enabled (eg. LibreWolf)"
|
||||
else
|
||||
map (
|
||||
@@ -195,7 +196,7 @@ let
|
||||
Install = lib.foldr (e: ret: ret ++ [ "${e.outPath}/${e.extid}.xpi" ]) [ ] extensions;
|
||||
};
|
||||
}
|
||||
// lib.optionalAttrs smartcardSupport {
|
||||
// lib.optionalAttrs withPCSC {
|
||||
SecurityDevices = {
|
||||
"OpenSC PKCS#11 Module" = "opensc-pkcs11.so";
|
||||
};
|
||||
@@ -335,6 +336,11 @@ let
|
||||
"MOZ_ALLOW_DOWNGRADE"
|
||||
"1"
|
||||
]
|
||||
++ lib.optionals (appDataDir != null) [
|
||||
"--set"
|
||||
"MOZ_APP_DATA"
|
||||
appDataDir
|
||||
]
|
||||
++ lib.optionals (!isDarwin) [
|
||||
"--suffix"
|
||||
"GTK_PATH"
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "helm-schema";
|
||||
version = "2.5.0";
|
||||
version = "2.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "losisin";
|
||||
repo = "helm-values-schema-json";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-GryjtwHUchH/69iLKavvJF9BE/E9g3LtgW9SBGXenU0=";
|
||||
hash = "sha256-DTxVVf8p9IHYPIC5TevnvvLWTQx2VIy3WNPXSczTkSs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-FFxPgTjg88GX5J+23O7A4WerqzWwM6YS9FlT13arWMQ=";
|
||||
vendorHash = "sha256-XSaTTzSoKnwoiZu/FqHYOas6dMtr5C4+F5jy4FX1ot8=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
traefik-crd = {
|
||||
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-40.1.4+up40.1.0.tgz";
|
||||
sha256 = "0g79q6rb3n3i2v1qw3j5259pjfb9y1g4m9r9wpqrijhrsj2qjn6d";
|
||||
};
|
||||
traefik = {
|
||||
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-40.1.4+up40.1.0.tgz";
|
||||
sha256 = "0rvp9ch1rda4iv79hjc6236ldqv9xvzsfrqixbzz3ffmrppczsx9";
|
||||
};
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
"airgap-images-amd64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.13%2Bk3s2/k3s-airgap-images-amd64.tar.gz",
|
||||
"sha256": "49f2d99717503e1f9db527baedf7b4b3d0463f1ed3d4544940a234561c5651ba"
|
||||
},
|
||||
"airgap-images-amd64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.13%2Bk3s2/k3s-airgap-images-amd64.tar.zst",
|
||||
"sha256": "7e59087b6a72e00db45a3bcb4f144114b13eb72dc8947c2b7908a0e1482b42b3"
|
||||
},
|
||||
"airgap-images-arm-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.13%2Bk3s2/k3s-airgap-images-arm.tar.gz",
|
||||
"sha256": "91e2deca0b39119d02c03495520542977712641ec142a81af0ad1fa1cbf4f362"
|
||||
},
|
||||
"airgap-images-arm-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.13%2Bk3s2/k3s-airgap-images-arm.tar.zst",
|
||||
"sha256": "b94244483badd6793f2e8d93de9d3125d4faf4a10b10047f289bee1e30bb1f44"
|
||||
},
|
||||
"airgap-images-arm64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.13%2Bk3s2/k3s-airgap-images-arm64.tar.gz",
|
||||
"sha256": "35bbd4e5201c8c6a48776822b8e46d7067cff1875f86c3bde5de3bda37757584"
|
||||
},
|
||||
"airgap-images-arm64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.13%2Bk3s2/k3s-airgap-images-arm64.tar.zst",
|
||||
"sha256": "47bc05eb1b21f0f76530a927ec5e1c5c2dec457f0190bf423e7be1d49348b5e6"
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
k3sVersion = "1.33.13+k3s2";
|
||||
k3sCommit = "875e930d812e17f955cfb3a4817ad33cce3c6822";
|
||||
k3sRepoSha256 = "1hk3z4s2hhzdha894aai4jpl8nc5mkqb2sf7hywi8b11h8ckhv8n";
|
||||
k3sVendorHash = "sha256-jsGm6y94Kqd4SIDy00A5QpBylHIuTuirEbChpEKo2R8=";
|
||||
chartVersions = import ./chart-versions.nix;
|
||||
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
|
||||
k3sRootVersion = "0.15.2";
|
||||
k3sRootSha256 = "0yxq2jqqb7flm4rs9dl7fqxba3mmwkmjbc8rx7pgai4qa1lzyigy";
|
||||
k3sCNIVersion = "1.9.1-k3s1";
|
||||
k3sCNISha256 = "1ggaz0p1c2k94car9d89a05smz3zx32sxn197b1l5kmjcnzdwadh";
|
||||
containerdVersion = "2.2.5-k3s1.33";
|
||||
containerdSha256 = "1al4zsyh3pz379ia0awhrlz7nyl2abyy0ayw0gl4gr6xjp7jsp1s";
|
||||
containerdPackage = "github.com/k3s-io/containerd/v2";
|
||||
criCtlVersion = "1.33.0-k3s2";
|
||||
flannelVersion = "v0.28.4";
|
||||
flannelPluginVersion = "v1.9.0-flannel1";
|
||||
kubeRouterVersion = "v2.6.3-k3s1";
|
||||
criDockerdVersion = "v0.3.19-k3s2";
|
||||
helmJobVersion = "v0.13.3-build20260727";
|
||||
}
|
||||
@@ -1,26 +1,26 @@
|
||||
{
|
||||
"airgap-images-amd64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.10%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
|
||||
"sha256": "e972a78ff6ba5a83ea80c36ac986e687ee2ce4181e0fe6104f98a48467094297"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.11%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
|
||||
"sha256": "8347931329bd188ecfa7782e7c0b9509813a29f5b6481c7b1ab54238aef1cf1f"
|
||||
},
|
||||
"airgap-images-amd64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.10%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
|
||||
"sha256": "7e59087b6a72e00db45a3bcb4f144114b13eb72dc8947c2b7908a0e1482b42b3"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.11%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
|
||||
"sha256": "807160da9a1b3ec86183a777241a6fe948d27fd6fdf3b88d0da39fa3b1ceeddc"
|
||||
},
|
||||
"airgap-images-arm-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.10%2Bk3s1/k3s-airgap-images-arm.tar.gz",
|
||||
"sha256": "718b9bf069aff3ffc9c3dd769abc30decf301ae90d06e47f33ed48e4957b9b3b"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.11%2Bk3s1/k3s-airgap-images-arm.tar.gz",
|
||||
"sha256": "c6c996e5aefd1ffb02f2fd089c29d26ae2b5a24e1c81b32f330e93612d1c38de"
|
||||
},
|
||||
"airgap-images-arm-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.10%2Bk3s1/k3s-airgap-images-arm.tar.zst",
|
||||
"sha256": "d24b30ad5536998219611cdb7ee20d2c821a9acb69fb3852dd892a1e082edf44"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.11%2Bk3s1/k3s-airgap-images-arm.tar.zst",
|
||||
"sha256": "57133711ae21010fd197fb666c631d7ac7c5a3f40533038b9a9d9e51ea066e5f"
|
||||
},
|
||||
"airgap-images-arm64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.10%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
|
||||
"sha256": "3040602c860a1827d11b6db19307e586300a271b2f5a7781909de47f32df4ea2"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.11%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
|
||||
"sha256": "1f812132104de93d30d8d1f317e11cb263a8e44f9ef1abba07cf3eb178b8113e"
|
||||
},
|
||||
"airgap-images-arm64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.10%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
|
||||
"sha256": "dc1a8c0d10a40f2d0dc1d53c5c42f2b4e00a996b1573227bcbf2855c644d3025"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.11%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
|
||||
"sha256": "18c53139e7ad39009057d5c52ec5501aeea1ada235986e43c7357a3863ff3fdd"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
{
|
||||
k3sVersion = "1.34.10+k3s1";
|
||||
k3sCommit = "39a4509ed98145d4f1eb8e15a8ca8362ca018afa";
|
||||
k3sRepoSha256 = "1r0far01pxbjvlrz7pjmx11k1hmvwr6xmkdcpf9iph64qlnwr4s3";
|
||||
k3sVendorHash = "sha256-ypwsQOkbda18/YLqM4v88RH4aKAxsagiocukYFnQHSw=";
|
||||
k3sVersion = "1.34.11+k3s1";
|
||||
k3sCommit = "9312658016b9e33288b528da68bf88e37e6aeecf";
|
||||
k3sRepoSha256 = "0mk2i1ir93amv9aq37mmnzyj1zzq6nvgg81vfnw4da4ln5kvj878";
|
||||
k3sVendorHash = "sha256-QcGSnYXlG/+PFD+XGeVoCI/bh91YdW8sPUi4B0gFSC0=";
|
||||
chartVersions = import ./chart-versions.nix;
|
||||
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
|
||||
k3sRootVersion = "0.15.2";
|
||||
k3sRootSha256 = "0yxq2jqqb7flm4rs9dl7fqxba3mmwkmjbc8rx7pgai4qa1lzyigy";
|
||||
k3sCNIVersion = "1.9.1-k3s1";
|
||||
k3sCNISha256 = "1ggaz0p1c2k94car9d89a05smz3zx32sxn197b1l5kmjcnzdwadh";
|
||||
containerdVersion = "2.2.5-k3s2";
|
||||
containerdSha256 = "1i9vkmf3gg34d9hjq15c00frhqxs9cba03zwg7qqq34gkb4qhjch";
|
||||
containerdVersion = "2.2.7-k3s1";
|
||||
containerdSha256 = "0zn64g6fzv8knan550ydbkgkaxa8qi2l8dw38w9g3hm8lv43nqyv";
|
||||
containerdPackage = "github.com/k3s-io/containerd/v2";
|
||||
criCtlVersion = "1.34.0-k3s2";
|
||||
flannelVersion = "v0.28.4";
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
{
|
||||
"airgap-images-amd64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.7%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
|
||||
"sha256": "c109b42bce8de6f258be41f3f83393ff2693b7ede95bce0e80a1ff394b590507"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.8%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
|
||||
"sha256": "a2893ea3234e01facd06cdb2ca879b65348fccf6b43be20501d72a949ece45f7"
|
||||
},
|
||||
"airgap-images-amd64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.7%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
|
||||
"sha256": "d28bbfef8a86b740e8235b6b2cfa6e29ecb0da457a55275d788a18d09142ee1f"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.8%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
|
||||
"sha256": "807160da9a1b3ec86183a777241a6fe948d27fd6fdf3b88d0da39fa3b1ceeddc"
|
||||
},
|
||||
"airgap-images-arm-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.7%2Bk3s1/k3s-airgap-images-arm.tar.gz",
|
||||
"sha256": "589150e3493a5cd29bf7b8b57f9e3f7968c1b2d1f79e8a072352d63abb59e978"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.8%2Bk3s1/k3s-airgap-images-arm.tar.gz",
|
||||
"sha256": "08118b95556457b8a191357b329a42298d485b4597f720c14c5625d256f1e656"
|
||||
},
|
||||
"airgap-images-arm-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.7%2Bk3s1/k3s-airgap-images-arm.tar.zst",
|
||||
"sha256": "c6d57e5fb17ba142464bc8db9debfa701f560b4defa70c2e06981bf52cb9e26b"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.8%2Bk3s1/k3s-airgap-images-arm.tar.zst",
|
||||
"sha256": "3f502e7d64a87b5b5afc5ed8ed27febb73e090d81a5b7df9db51cfd5a7a144a1"
|
||||
},
|
||||
"airgap-images-arm64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.7%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
|
||||
"sha256": "b686b4c09dc335535889d5630ae5b0283d421d40af1029b271938cfd3b358f11"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.8%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
|
||||
"sha256": "23d82e394d9ad41ea2912afaf0a6ead69bacede819c12678ba5dec22d16784da"
|
||||
},
|
||||
"airgap-images-arm64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.7%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
|
||||
"sha256": "47bc05eb1b21f0f76530a927ec5e1c5c2dec457f0190bf423e7be1d49348b5e6"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.8%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
|
||||
"sha256": "18c53139e7ad39009057d5c52ec5501aeea1ada235986e43c7357a3863ff3fdd"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
{
|
||||
k3sVersion = "1.35.7+k3s1";
|
||||
k3sCommit = "cd43afc7151132bac92feacd3e4d2127ea1e70d0";
|
||||
k3sRepoSha256 = "1m9kwz8i1sqjgmc71qknmr87c9g8z7r2wl9440r32lfzxq8a6g1b";
|
||||
k3sVendorHash = "sha256-0MVOVrRWZ/xyTaRq5Nw5ogxIGZLArDVA1wiHmiwKqFA=";
|
||||
k3sVersion = "1.35.8+k3s1";
|
||||
k3sCommit = "e952d68a5a5f8953c4549cf8fb557f3eae417107";
|
||||
k3sRepoSha256 = "07kpi9kl8pw4fyba474dap5hiskxays8qa8mf4qz6ai4wqapzg5c";
|
||||
k3sVendorHash = "sha256-2u9D2HLhiryOi8bwu5Tbv162WEoRbFfgePW7AeefuG8=";
|
||||
chartVersions = import ./chart-versions.nix;
|
||||
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
|
||||
k3sRootVersion = "0.15.2";
|
||||
k3sRootSha256 = "0yxq2jqqb7flm4rs9dl7fqxba3mmwkmjbc8rx7pgai4qa1lzyigy";
|
||||
k3sCNIVersion = "1.9.1-k3s1";
|
||||
k3sCNISha256 = "1ggaz0p1c2k94car9d89a05smz3zx32sxn197b1l5kmjcnzdwadh";
|
||||
containerdVersion = "2.2.5-k3s2";
|
||||
containerdSha256 = "1i9vkmf3gg34d9hjq15c00frhqxs9cba03zwg7qqq34gkb4qhjch";
|
||||
containerdVersion = "2.2.7-k3s1";
|
||||
containerdSha256 = "0zn64g6fzv8knan550ydbkgkaxa8qi2l8dw38w9g3hm8lv43nqyv";
|
||||
containerdPackage = "github.com/k3s-io/containerd/v2";
|
||||
criCtlVersion = "1.35.0-k3s2";
|
||||
flannelVersion = "v0.28.4";
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
{
|
||||
"airgap-images-amd64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.3%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
|
||||
"sha256": "e09e718f931ef094294781d3c35e58b84e2170acd5cc2edae075a20f58d1f89d"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.4%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
|
||||
"sha256": "a5a6c970a992ce6ed5801b5fd090aa7edde354a786eb0e7d75b162d0b22901dd"
|
||||
},
|
||||
"airgap-images-amd64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.3%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
|
||||
"sha256": "a197d79e979cc3f4fa9bca8f500bd70092b25c1b5ebda68b35a25f792abd42b0"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.4%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
|
||||
"sha256": "9024613e2d468c51ba0e5ba21898604c41339354449fb3338cc6a7931189eb6a"
|
||||
},
|
||||
"airgap-images-arm-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.3%2Bk3s1/k3s-airgap-images-arm.tar.gz",
|
||||
"sha256": "5e6b25d6cd2f6f25e663edf94a450e560a80b7a207c3d9f4d4646b688cceee5b"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.4%2Bk3s1/k3s-airgap-images-arm.tar.gz",
|
||||
"sha256": "519824fd8ab0096959164c319de4e28abb4677c1e6a10a2fd0bb8922c73e16d1"
|
||||
},
|
||||
"airgap-images-arm-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.3%2Bk3s1/k3s-airgap-images-arm.tar.zst",
|
||||
"sha256": "b94244483badd6793f2e8d93de9d3125d4faf4a10b10047f289bee1e30bb1f44"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.4%2Bk3s1/k3s-airgap-images-arm.tar.zst",
|
||||
"sha256": "31a0be5131bb87286209fa0ea2c91e73fda57aee622e162f5f0e54b6e53f8ce5"
|
||||
},
|
||||
"airgap-images-arm64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.3%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
|
||||
"sha256": "75fc0f7a1f8a9babf00e4a6bd5fadfb6657a3af1289fe3611eaf56f01e5ce735"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.4%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
|
||||
"sha256": "5b66fde4e29681c09980d64bc77544769210abf8dcbd19dc210427ed12e0e8f8"
|
||||
},
|
||||
"airgap-images-arm64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.3%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
|
||||
"sha256": "856feb047453cd697c2bc4dcf20127448554c8366be992a211558a13d830a038"
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.36.4%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
|
||||
"sha256": "9d3c4c2197bcf857ca17633aa393bad683cc982ddd408620f93036a3cca953b5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
{
|
||||
k3sVersion = "1.36.3+k3s1";
|
||||
k3sCommit = "5aed4d7beddeb3e67120da477c876ac9efd70318";
|
||||
k3sRepoSha256 = "0y5lc93f5pdvgm3mmk87mh50z7iway4cz99nskfh1600zfhia2s6";
|
||||
k3sVendorHash = "sha256-pxYh1AJVZL8Xx23Nairoi5bSNNSVs+EqJbXF7ISN3wg=";
|
||||
k3sVersion = "1.36.4+k3s1";
|
||||
k3sCommit = "4dedb15be78017a8ddd5b9e81acd44f3481078ed";
|
||||
k3sRepoSha256 = "07ynarjmjqybfyq30kaa08nx9rw5h83nifir050mplqjwb10mrk5";
|
||||
k3sVendorHash = "sha256-naO/9O5aLGNf7FwQvsvSb/eG0eCBFc/Um3yfH2fP+8Y=";
|
||||
chartVersions = import ./chart-versions.nix;
|
||||
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
|
||||
k3sRootVersion = "0.15.2";
|
||||
k3sRootSha256 = "0yxq2jqqb7flm4rs9dl7fqxba3mmwkmjbc8rx7pgai4qa1lzyigy";
|
||||
k3sCNIVersion = "1.9.1-k3s1";
|
||||
k3sCNISha256 = "1ggaz0p1c2k94car9d89a05smz3zx32sxn197b1l5kmjcnzdwadh";
|
||||
containerdVersion = "2.3.2-k3s2";
|
||||
containerdSha256 = "1jzhkh0zg1s2922fkr4r5v1680apafkjqba8ic6br8nc8bk7j4xq";
|
||||
containerdVersion = "2.3.4-k3s1.36";
|
||||
containerdSha256 = "0mlazx89616j90s73953spi4ahcas8w9kb51a7qf02pa9isyz5vi";
|
||||
containerdPackage = "github.com/k3s-io/containerd/v2";
|
||||
criCtlVersion = "1.36.0-k3s1";
|
||||
flannelVersion = "v0.28.4";
|
||||
|
||||
@@ -377,6 +377,7 @@ buildGoModule (finalAttrs: {
|
||||
pname = "k3s";
|
||||
version = k3sVersion;
|
||||
pos = builtins.unsafeGetAttrPos "k3sVersion" attrs;
|
||||
__structuredAttrs = true;
|
||||
|
||||
tags = [
|
||||
"libsqlite3"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
let
|
||||
k3s_builder = import ./builder.nix lib;
|
||||
common = opts: callPackage (k3s_builder opts);
|
||||
forVersions = versions: callPackage (k3s_builder (import versions)) extraArgs;
|
||||
# extraArgs is the extra arguments passed in by the caller to propagate downward.
|
||||
# This is to allow all-packages.nix to do:
|
||||
#
|
||||
@@ -12,18 +12,7 @@ let
|
||||
extraArgs = removeAttrs args [ "callPackage" ];
|
||||
in
|
||||
{
|
||||
k3s_1_33 = common (import ./1_33/versions.nix) extraArgs;
|
||||
|
||||
k3s_1_34 = (common (import ./1_34/versions.nix) extraArgs).overrideAttrs {
|
||||
patches = [ ./go_runc_require.patch ];
|
||||
};
|
||||
|
||||
k3s_1_35 = (common (import ./1_35/versions.nix) extraArgs).overrideAttrs {
|
||||
patches = [ ./go_runc_require.patch ];
|
||||
};
|
||||
|
||||
k3s_1_36 = (common (import ./1_36/versions.nix) extraArgs).overrideAttrs {
|
||||
__structuredAttrs = true;
|
||||
patches = [ ./go_runc_require.patch ];
|
||||
};
|
||||
k3s_1_34 = forVersions ./1_34/versions.nix;
|
||||
k3s_1_35 = forVersions ./1_35/versions.nix;
|
||||
k3s_1_36 = forVersions ./1_36/versions.nix;
|
||||
}
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
# Adds explicit require of opencontainers/runc to go.mod before version.sh is called and
|
||||
# removes it afterwards so that later build commands don't complain about inconsistent
|
||||
# vendoring.
|
||||
diff --git a/scripts/package-cli b/scripts/package-cli
|
||||
index a15d754926..bc450dbe4e 100755
|
||||
--- a/scripts/package-cli
|
||||
+++ b/scripts/package-cli
|
||||
@@ -3,7 +3,10 @@ set -e -x
|
||||
|
||||
cd $(dirname $0)/..
|
||||
|
||||
+runc_require=$(grep "github.com/opencontainers/runc" go.mod | awk -F '=> ' '{print $2}' | xargs -0 printf 'require %s')
|
||||
+echo "$runc_require" >> go.mod
|
||||
. ./scripts/version.sh
|
||||
+sed -i '$d' go.mod
|
||||
|
||||
GO=${GO-go}
|
||||
|
||||
@@ -82,13 +82,13 @@
|
||||
"vendorHash": "sha256-L9IGENsL8Kibq5O/JOgCxLRUxgS7q9G/NovC/Q7tw48="
|
||||
},
|
||||
"auth0_auth0": {
|
||||
"hash": "sha256-SpGTMAFEiJVGpXYAIigJQditDvs8sU2Bz57ohanccAM=",
|
||||
"hash": "sha256-t/AdooXhTpu4UXE8u6cvdVPL4HFUQQWOSAjw1RXFs8c=",
|
||||
"homepage": "https://registry.terraform.io/providers/auth0/auth0",
|
||||
"owner": "auth0",
|
||||
"repo": "terraform-provider-auth0",
|
||||
"rev": "v1.55.0",
|
||||
"rev": "v1.56.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-ajl7q+9oA+NA5eqAXA5yjej03qdI5nimRNQW6GoGOq4="
|
||||
"vendorHash": "sha256-ydki+y2A6g94xNGVr7xZkBB/grEbOOD4LRwYGAmzLsc="
|
||||
},
|
||||
"aviatrixsystems_aviatrix": {
|
||||
"hash": "sha256-46djOfAj/5kfeoKLQHbeKefzdGbmlBATR+uN/IaAn8I=",
|
||||
@@ -1490,13 +1490,13 @@
|
||||
"vendorHash": "sha256-GRnVhGpVgFI83Lg34Zv1xgV5Kp8ioKTFV5uaqS80ATg="
|
||||
},
|
||||
"vpsfreecz_vpsadmin": {
|
||||
"hash": "sha256-T+az9OH9/ZMSJewZpC9VLSXOZ5N/wz00VRnl9Ab4aeI=",
|
||||
"hash": "sha256-1r2SqoRWJJhQej8D3LXHOEXT5RSxE4t6s7QuiNoIqpg=",
|
||||
"homepage": "https://registry.terraform.io/providers/vpsfreecz/vpsadmin",
|
||||
"owner": "vpsfreecz",
|
||||
"repo": "terraform-provider-vpsadmin",
|
||||
"rev": "v1.3.0",
|
||||
"rev": "v1.5.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-98lrEH7j4Fl0oSEoL75e0h+8ySLacPK2k0OehY3jqhA="
|
||||
"vendorHash": "sha256-fbFpENa1/8Qs6RnTUMi0LDATho8+WuKhj4i8S/dG3Yg="
|
||||
},
|
||||
"vultr_vultr": {
|
||||
"hash": "sha256-hK4/Pzj0UtWDLQS3cRMC73ZRr20HCWqI+jUlTUHcHaw=",
|
||||
|
||||
@@ -1,83 +1,78 @@
|
||||
{
|
||||
"linux-canary": {
|
||||
"distro": {
|
||||
"hash": "sha256-4j3ii6uD9f0tV71mU8XFFxWch7LiWCwclnkHa5NGj+4=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/full.distro"
|
||||
"hash": "sha256-UHlT587DCEDz7YSxN57S3mZ+4R2bi8/Aqvf62QuibEY=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/full.distro"
|
||||
},
|
||||
"kind": "distro",
|
||||
"modules": {
|
||||
"discord_arborium": {
|
||||
"hash": "sha256-I6JRlVELq5Mldcaz+lKMt0izsNSfWdw/e5JPqBGLOzE=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_arborium/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_cloudsync": {
|
||||
"hash": "sha256-ZulqlXaIFr+Ds20ON02HZLn45JFqq9POuYoFV1t0eZI=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_cloudsync/1/full.distro",
|
||||
"hash": "sha256-/gA7pLPkyWAMQc2gNgq9L14W9hu3Bi5rPtCyWZGghqQ=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_cloudsync/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_desktop_core": {
|
||||
"hash": "sha256-H7mcz7tm2FQXrmbfLz9n1bxbuAMNAnGK9iWEbMoVoew=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_desktop_core/1/full.distro",
|
||||
"hash": "sha256-/iCoCP3vNeAVXRK3smZdf8XrQNYanejlcjZ9fcddbHg=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_desktop_core/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_dispatch": {
|
||||
"hash": "sha256-XTmNR20AqtrpWiwOy0vMrUy0K2bDG7P27a80hbvWS58=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_dispatch/1/full.distro",
|
||||
"hash": "sha256-KjrgWGgTHuNOqm2NnOiDATyAgngaGSktATe5OnV3Cjg=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_dispatch/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_erlpack": {
|
||||
"hash": "sha256-zH6H8EchYRXbK7HgG6F09Oiieep6JyTw1+r2nRmtQ6Q=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_erlpack/1/full.distro",
|
||||
"hash": "sha256-eLse+k1w07/mGh0h3beXGZtsCz7NuP6qSQH6hJcNspM=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_erlpack/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_game_utils": {
|
||||
"hash": "sha256-3H3KVkC/t6UdxTQEUtKg9rfk1xKaWf0MDerUm5yO3/Y=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_game_utils/1/full.distro",
|
||||
"hash": "sha256-JPacuW/LhaFGftu3tR3C4AKU+6nnJuc4N99CnvJskf8=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_game_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_krisp": {
|
||||
"hash": "sha256-w8XATCZyCv1FeoRBweo7+wL9NAX2jD8JNKiF1ED7T1w=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_krisp/1/full.distro",
|
||||
"hash": "sha256-xYryuPZXFp9nvDQ4l8qFANh16CcO+ZNCEUc0/UXrBzE=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_krisp/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_modules": {
|
||||
"hash": "sha256-Qd4gefF0GDNmZpwtIuuOdGRxRn7b+l88N7lbsRebe9U=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_modules/1/full.distro",
|
||||
"hash": "sha256-KCAWR5Eoib/RkO3MVn8oHh6WBTfTMA2fMLMjMCrRiZs=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_modules/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_rpc": {
|
||||
"hash": "sha256-XxkRTULSxx7o8PNwCtz4FeZ9vowa8EHr7DNryvG/vMk=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_rpc/1/full.distro",
|
||||
"hash": "sha256-uYcDMwefWLdUzCjpN6b0h5pN95UKZs6gwgwA3uiPmb4=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_rpc/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_spellcheck": {
|
||||
"hash": "sha256-mFEZg/Z33mdj4dIwJNfj7pCj/xcLoCTch/t2pssl45c=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_spellcheck/1/full.distro",
|
||||
"hash": "sha256-xSOog8VBcJBhbfzWXUlMMHWYfQ+Mkx0O5/IGu72zTvY=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_spellcheck/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_sysimg": {
|
||||
"hash": "sha256-O5XrO1uL6zNHbIh6XUXQP3e/ZcAd46Z4s26+ihzWfBU=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_sysimg/1/full.distro",
|
||||
"hash": "sha256-UTNNk4RY6fk9GnTxNyhBI3XLmA38oSsdKVpLl3VqtjU=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_sysimg/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_utils": {
|
||||
"hash": "sha256-aN53SHC3x1YKzd3pmmQX7lWu6iVRC7kN9BxViPSSNV8=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_utils/1/full.distro",
|
||||
"hash": "sha256-CbAcjtjZdENZcjcrEOLP/SOdi9Yay4/J4re0UguvO40=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_voice": {
|
||||
"hash": "sha256-pbzNmysNg7tWzbpQSqGr8OBWdaGSR8/pi5A15y2oZno=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_voice/1/full.distro",
|
||||
"hash": "sha256-Ev6sh9hjfjdZ+5ZmXKW4QXFdGwQAozXP4/F6P6BYISI=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_voice/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_zstd": {
|
||||
"hash": "sha256-E+ai701mLhnEdSAO+9dR0KEWZuVEJvCzmrRjPB0ST0I=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1766/discord_zstd/1/full.distro",
|
||||
"hash": "sha256-1Sfz6Wymr9T3mIwdRb4e6KYNl/iI2eDoiK+DDsGUty8=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1794/discord_zstd/1/full.distro",
|
||||
"version": 1
|
||||
}
|
||||
},
|
||||
"version": "1.0.1766"
|
||||
"version": "1.0.1794"
|
||||
},
|
||||
"linux-development": {
|
||||
"distro": {
|
||||
@@ -161,253 +156,253 @@
|
||||
},
|
||||
"linux-ptb": {
|
||||
"distro": {
|
||||
"hash": "sha256-9eq0gqGesGYXCLsztSt9mf0laH/OuLhjCuOKRL8Xnp4=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/full.distro"
|
||||
"hash": "sha256-4LjSOiwKk82VvmxYEKGJnp0yz5pNbdJ3mDOgnK3+GCs=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/full.distro"
|
||||
},
|
||||
"kind": "distro",
|
||||
"modules": {
|
||||
"discord_arborium": {
|
||||
"hash": "sha256-w4mPCev2fCDBLeozW24Aps/m+5kWAyVtYD55868lQzA=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_arborium/1/full.distro",
|
||||
"hash": "sha256-1Oh0s1LoS/IqGUfP5ZLYdVGPXZVzK/hRNRa6qelYqFc=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_arborium/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_cloudsync": {
|
||||
"hash": "sha256-BXIIi69tGkND16aykVut6cE8B/WiVe6/9mpPBBxVZ1s=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_cloudsync/1/full.distro",
|
||||
"hash": "sha256-Tv21h/Zx3cCz3JiCuM/NN8VwZti+KGTqscmDZRsGC2Y=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_cloudsync/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_desktop_core": {
|
||||
"hash": "sha256-gB3j55jhG/qh13itZ79Oiio2Ys7i61k5d4NIj9+a4d8=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_desktop_core/1/full.distro",
|
||||
"hash": "sha256-bfZVCO3uEWlHJa5IhENPpArW1j75wICaRe7BS2FyDN0=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_desktop_core/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_dispatch": {
|
||||
"hash": "sha256-OcokUI/f0Ra6JBC7xJ3+Icv0yyZlD7g1As7c718f3AY=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_dispatch/1/full.distro",
|
||||
"hash": "sha256-C/o9W9HQM27j7Yd9EL/gPqZ4Qwh1PnWeh1hfdwWwnQE=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_dispatch/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_erlpack": {
|
||||
"hash": "sha256-z9pwZyP59qIDZeojVaNgJohsu4SNstQliXvuIJjTWU0=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_erlpack/1/full.distro",
|
||||
"hash": "sha256-tGXulf3fiJh/rYWAVkc3X0BEfYmJ7B+bpco1jdGshiM=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_erlpack/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_game_utils": {
|
||||
"hash": "sha256-pBvHJOJ8LqV1yDY/AKhxl9+5CBuGDdZxNECQ+mzPPcA=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_game_utils/1/full.distro",
|
||||
"hash": "sha256-HteWjRWb7cGjTVx4KR9s6usA742cp09NbTeHF91tCys=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_game_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_krisp": {
|
||||
"hash": "sha256-302w/9D93ESPY3ij6vbOeig32nikoWDD8t8YoCPGWEc=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_krisp/1/full.distro",
|
||||
"hash": "sha256-ntr0p+Mjam+JDwFWTgrFhbmesXPg0CzkajBM/D4pZPw=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_krisp/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_modules": {
|
||||
"hash": "sha256-zDsZa17X3GIIGeNG6JBuTTyXqtqD2NiZRrmcL67oSj4=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_modules/1/full.distro",
|
||||
"hash": "sha256-YC00gpi63MLWWQG52neNOcrE0CLmLPo1f2qtqOQyCNI=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_modules/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_rpc": {
|
||||
"hash": "sha256-ndZwouBJpQHNDIWfuC/xvM2+fIIwrUutLAQwj+fNyXY=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_rpc/1/full.distro",
|
||||
"hash": "sha256-+e6mv8np0+rcHbql4cBW2gymQPAceLC+1EX/fHOWf0k=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_rpc/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_spellcheck": {
|
||||
"hash": "sha256-se40Ubw07Fwg7VBIkvgfIzBIbpdWyOEAHHk+SrAk9Dk=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_spellcheck/1/full.distro",
|
||||
"hash": "sha256-KxWS1m9gD5+hZHqbLmjZV8nmvRJflVITugyvj14aZjM=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_spellcheck/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_sysimg": {
|
||||
"hash": "sha256-kbJsxsqrjoVajWCUDAywNQlEVHQ6Iyl6FjltvGenAPg=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_sysimg/1/full.distro",
|
||||
"hash": "sha256-g8mckNZNTCZDD8m1WnWx3vtsqZ1B/Ou0qGMf5F0bgX8=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_sysimg/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_utils": {
|
||||
"hash": "sha256-l32yxA7h01KsBvc5wambNoyxiACacprLdJXnM5c0bxU=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_utils/1/full.distro",
|
||||
"hash": "sha256-/OKjhFGVQ/U3O/YvNkc+xrPNJGBAkmctgUjLiK2cOcY=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_voice": {
|
||||
"hash": "sha256-vuX/J5+Br2lC+rsEnAWlrYivkAF7HKb3FG+xBO3HxOI=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_voice/1/full.distro",
|
||||
"hash": "sha256-EgEXB1pXz5RTXtUPNwkDfuSP001luOYqFIH/TiIWGB4=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_voice/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_zstd": {
|
||||
"hash": "sha256-ZZ1cKzbxPKyu7Ku+T6iQ9Qrs9tFA++Yebpu02v9IkMg=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.211/discord_zstd/1/full.distro",
|
||||
"hash": "sha256-ivgN/iLzXIXdV0KTzZMakkgWj7mDvlAZ06RjLWvB1qQ=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.212/discord_zstd/1/full.distro",
|
||||
"version": 1
|
||||
}
|
||||
},
|
||||
"version": "1.0.211"
|
||||
"version": "1.0.212"
|
||||
},
|
||||
"linux-stable": {
|
||||
"distro": {
|
||||
"hash": "sha256-8gWwie6ns9oLR+YcN5Yo0Ml9cozrM6Ybg7IXg3hEir0=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/full.distro"
|
||||
"hash": "sha256-vvQ7e7rsk85mPCbNeb00d3OCUWUzUkFNYVctPYvBGRE=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/full.distro"
|
||||
},
|
||||
"kind": "distro",
|
||||
"modules": {
|
||||
"discord_arborium": {
|
||||
"hash": "sha256-W0u/dID213JCOtMxvINaGPRXRMfOkbqWxw2LYJM03N4=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_arborium/1/full.distro",
|
||||
"hash": "sha256-JUA2EDfYcRaVnU4zzhOKZ8Q0X8YafPhKJcUd0J+MztU=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_arborium/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_cloudsync": {
|
||||
"hash": "sha256-kCFreXY3IBuMZ7FtqVSv4IAMzQYBNV4qplQZx9PlQlU=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_cloudsync/1/full.distro",
|
||||
"hash": "sha256-J+lGNUKZJ+DtbQ8pXLUuw07T6MH7fyzblKr6fQ9bb2s=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_cloudsync/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_desktop_core": {
|
||||
"hash": "sha256-s7WzMCq0J6XacDErIvMfmIlt9McK00dNshz+w7VJ0wo=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_desktop_core/1/full.distro",
|
||||
"hash": "sha256-21p4kuV4dJUvxNVWgYsVIxkyYohak7NxgscIYdlD0a0=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_desktop_core/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_dispatch": {
|
||||
"hash": "sha256-PHjwOQ71MsbPTDSGGljPd9m4D471ImQp3a8obW7lod8=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_dispatch/1/full.distro",
|
||||
"hash": "sha256-P5FQFCzWsgrDNu7OoyI1mjStfBP5nM6C45fu42MoYv4=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_dispatch/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_erlpack": {
|
||||
"hash": "sha256-vtd9yB9mK6twH74dgC7NuT2rVCr5ucjSv+11yCOF0Gs=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_erlpack/1/full.distro",
|
||||
"hash": "sha256-nfgYCt0rHjlZUedu40sRThxp1TEdfB+9TXz31RFZ60k=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_erlpack/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_game_utils": {
|
||||
"hash": "sha256-H3FM1Ml97v9MkGVCgYUW+mz2JOd9CZP/Dgzvu2rGOuE=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_game_utils/1/full.distro",
|
||||
"hash": "sha256-gAB1QY8QjHl6xogqQr1uxgYuuywQV+VcqMB5cAC0vNc=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_game_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_krisp": {
|
||||
"hash": "sha256-lCOK9yjqa1yLcSOdhILgW/kr1ZJjqxAdbo93/FnyNnk=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_krisp/1/full.distro",
|
||||
"hash": "sha256-bmMDt2FshcCZA3eDZ+uVmxzCqgkTI81Zc6Wrrw3ZK/0=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_krisp/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_modules": {
|
||||
"hash": "sha256-OC2VIUOXaiGcoqV8NOzW55z3DpRpdqfTBdni3wNyvlA=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_modules/1/full.distro",
|
||||
"hash": "sha256-YVhJEFMOo8AmGFpET5sdTdLiRLO407t5Z6KCixKEjGk=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_modules/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_rpc": {
|
||||
"hash": "sha256-GS/nOO/ec43OgYN744Gao4IHYWBPpznA1stk/BmPEqQ=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_rpc/1/full.distro",
|
||||
"hash": "sha256-Av9sjzLybZV9OD5WEteV0sHRDzNp8LiBUOb1V63oZv8=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_rpc/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_spellcheck": {
|
||||
"hash": "sha256-oBGlUOrQ2/cW5EbTcTe31wvfm5V14gyBoStucMXDJqU=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_spellcheck/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_utils": {
|
||||
"hash": "sha256-BOb01yg0+O3/k5CX0TKVaz8598HqcQp09R4vA60e87s=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_voice": {
|
||||
"hash": "sha256-ib2a5g6Pr6YR+RUWYm4u929yTgWUMtMaETwMNaEal7M=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_voice/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_zstd": {
|
||||
"hash": "sha256-QNYSCSoJJVKeV3w+AS6AbaVcTnIs6gMX1nek0tn/eoA=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.155/discord_zstd/1/full.distro",
|
||||
"version": 1
|
||||
}
|
||||
},
|
||||
"version": "1.0.155"
|
||||
},
|
||||
"osx-canary": {
|
||||
"distro": {
|
||||
"hash": "sha256-g2G2hLwYUiQBDHUiWKGH7BK153qnRZvySwzktOio8SI=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/full.distro"
|
||||
},
|
||||
"kind": "distro",
|
||||
"modules": {
|
||||
"discord_arborium": {
|
||||
"hash": "sha256-KNEcVAc7z4n9yPSi3LT+sZe3iq4J7QtH66OAJ473nqM=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_arborium/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_cloudsync": {
|
||||
"hash": "sha256-0iKZk1fyyN5te8AUaC3H1gsOr/BGxhMwionpCgkna4A=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_cloudsync/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_desktop_core": {
|
||||
"hash": "sha256-K4O77jQCWBh2nYjFhwlJCHzxmmuadouv3pqLN0q8c9s=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_desktop_core/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_dispatch": {
|
||||
"hash": "sha256-6T4HWFZpkGQcpwfVWMaw4sTpibG4wo1HLk8ZcmtBfvM=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_dispatch/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_erlpack": {
|
||||
"hash": "sha256-MNX10Hk1nzEq000t15Msg8hzmGCkby7z/I6b9LuR5Sk=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_erlpack/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_game_utils": {
|
||||
"hash": "sha256-6znm3uE1Fl7ItuT/1OVRxP21kSYaDXkTIl1SNadWSSQ=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_game_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_intents": {
|
||||
"hash": "sha256-titG9Z0eXKm2QnWm1xdPljUF7s3VBwM3kZN0Mwc730E=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_intents/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_krisp": {
|
||||
"hash": "sha256-9v2+nnjkQeI7RLt2+Q05zfGaKvchoCxRFciJFT5VrDc=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_krisp/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_modules": {
|
||||
"hash": "sha256-LAc5uFvYdg5ruzmd2Msh3c7eegChFoIBXj8X7JYJVqs=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_modules/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_notifications": {
|
||||
"hash": "sha256-mxQb3Em0wDma8EXTN4cULjvW31JwVxDzQ3ne9FcKbC4=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_notifications/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_rpc": {
|
||||
"hash": "sha256-DXSY6qhtxW0S3rE9w5/KO85bsU7JP2ldx5tOoTwoptM=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_rpc/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_spellcheck": {
|
||||
"hash": "sha256-X5BitbmM9HnEex2DsRN3t56tLBRtkyeeY7rZ9QgoNdU=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_spellcheck/1/full.distro",
|
||||
"hash": "sha256-O0p451X8HYslCd9QWJ/SbjQ+tIs3otCfxzBPmZjM6LI=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_spellcheck/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_sysimg": {
|
||||
"hash": "sha256-SHpivOq+XZeEiU9EAfD2YMeIo10DvWDmzU0C0cm3wuQ=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_sysimg/1/full.distro",
|
||||
"hash": "sha256-9HxsiEhAPIpTRPoYYvsyakWJT6GaT+3/L1dvtxNZNhA=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_sysimg/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_utils": {
|
||||
"hash": "sha256-MVLPSCP3AxDs3DNFuwyYjlZHyA4cVErANFCMTzorGWk=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_utils/3/full.distro",
|
||||
"version": 3
|
||||
"hash": "sha256-qsB1dfte6qoD+nT0rZ+mJnn6L0p6OSeGVMWQobc9WM4=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_voice": {
|
||||
"hash": "sha256-mfoo7ZBsU/fRkHGxKk0j/i0qj2PnBnzdTSt8pI0t53s=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_voice/2/full.distro",
|
||||
"version": 2
|
||||
},
|
||||
"discord_webauthn": {
|
||||
"hash": "sha256-kCeElNUwLB1yFrHTqP6W+S6/F5npRiYo5uH6M31uNxo=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_webauthn/1/full.distro",
|
||||
"hash": "sha256-icxv/ISGtR5d7ZdQaFzrspulK8KRYZfMzxzatX7/xhI=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_voice/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_zstd": {
|
||||
"hash": "sha256-15edfIf+s9zPaYWYw7SPsUGXXFJK9LMGK6LzaDvSiyE=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1294/discord_zstd/1/full.distro",
|
||||
"hash": "sha256-tndzE1U8DA+K4XGbX9jII7zrSiybG1qAqSzCwypSYYo=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.156/discord_zstd/1/full.distro",
|
||||
"version": 1
|
||||
}
|
||||
},
|
||||
"version": "0.0.1294"
|
||||
"version": "1.0.156"
|
||||
},
|
||||
"osx-canary": {
|
||||
"distro": {
|
||||
"hash": "sha256-SjRGJwvd+IOkCqrG6akvvlFFpDV4gQozf4mPinKrZQE=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/full.distro"
|
||||
},
|
||||
"kind": "distro",
|
||||
"modules": {
|
||||
"discord_cloudsync": {
|
||||
"hash": "sha256-uynrrQxSvQjnGsS2V+CpiRfBCpNzAVgo94nySxMWrGw=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_cloudsync/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_desktop_core": {
|
||||
"hash": "sha256-7tAXBdi+OXZaXl8+camk2IHEwzqrUpHjcc8QYI3oals=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_desktop_core/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_dispatch": {
|
||||
"hash": "sha256-Kd3fZYacc9H2MfOfHIgdDu56HCeRYF60dG6234Uin2c=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_dispatch/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_erlpack": {
|
||||
"hash": "sha256-/JAAcJ/bDJaUllVn+0aAErWysh//dSPrT64uGe5THVU=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_erlpack/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_game_utils": {
|
||||
"hash": "sha256-4x+ZNH831aCeuNVK2RLiAfaYolFcPSXFcnk/Y/19/Nc=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_game_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_intents": {
|
||||
"hash": "sha256-1RzkNxAlvdLr7vpW2sIj+dE/6gkauXbgmyU6ZfROxvk=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_intents/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_krisp": {
|
||||
"hash": "sha256-WY5x578AvlwSUC/tV0j+SZItOCiHqzNZDfV4TfK52XM=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_krisp/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_modules": {
|
||||
"hash": "sha256-tOTaUzDS5EEJpxCT+2eMaELyqrpBpyg4VVAR2qoKpqs=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_modules/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_notifications": {
|
||||
"hash": "sha256-wgywWGbwb4ZOxAbvP1zwGmXYY7YcWVZZ/3oHPTi6+ns=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_notifications/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_rpc": {
|
||||
"hash": "sha256-76+PQX58ftimpJWWaasvVUz5csbR+mKL0DTcUYAYuHs=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_rpc/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_spellcheck": {
|
||||
"hash": "sha256-An1SBmKEPI8pRip6g/YZW6dGsLpx0TIvS+QCkI1YnWs=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_spellcheck/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_sysimg": {
|
||||
"hash": "sha256-9MJv02Fk+ega0kbbLL7/s420Mx149sJFWvkkU66yJuY=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_sysimg/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_utils": {
|
||||
"hash": "sha256-ptioApBU8h3ryIan7db5A77Tf87MTqRRNSVZhiUeUcA=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_voice": {
|
||||
"hash": "sha256-pVs09tpg7jTKfm54N1uaRf731Du9vpB7q8UFUHorpWU=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_voice/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_webauthn": {
|
||||
"hash": "sha256-op6K8vlmdjXxsZ2+23CSuZGmdvS7tb7gCq5eRrD1r6g=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_webauthn/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_zstd": {
|
||||
"hash": "sha256-bibBKtu5xxBdtk5lfJAMtrjVMz/YMjzFTjHu2xoTNSc=",
|
||||
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1306/discord_zstd/1/full.distro",
|
||||
"version": 1
|
||||
}
|
||||
},
|
||||
"version": "0.0.1306"
|
||||
},
|
||||
"osx-development": {
|
||||
"distro": {
|
||||
@@ -506,187 +501,192 @@
|
||||
},
|
||||
"osx-ptb": {
|
||||
"distro": {
|
||||
"hash": "sha256-mTArbvIvLjOSGpb35GO17K8lnCqAHd6fDdxpzwFKmg4=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/full.distro"
|
||||
"hash": "sha256-0itWlg4uO9n251oeACGHfgId6sV9WwWXib+xTpLlKdg=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/full.distro"
|
||||
},
|
||||
"kind": "distro",
|
||||
"modules": {
|
||||
"discord_arborium": {
|
||||
"hash": "sha256-eySEVa1AmxNMG8P1cqxLFftrQjyzWrN8QInF8rUh53Q=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_arborium/1/full.distro",
|
||||
"hash": "sha256-nxM1iYpiUhF5out+DCCJGaiPr/WuQDYXxHHnOVG542U=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_arborium/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_cloudsync": {
|
||||
"hash": "sha256-7/60p+KD/WIxA0ErfHUrSPXGxVTmyNiC9Kcu6WUAPsQ=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_cloudsync/1/full.distro",
|
||||
"hash": "sha256-+XUuoUmKHd0paaXCm64M/6GbI6oox3auQrHo2QB7IqY=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_cloudsync/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_desktop_core": {
|
||||
"hash": "sha256-xtxh0mvHKtAtohJptt/89DhEVpC1UbWloVnhvK3kmO4=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_desktop_core/1/full.distro",
|
||||
"hash": "sha256-+n+arWUqZyDX9pTRYd90uuo//JXqMo6L3mIymSkrUTY=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_desktop_core/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_dispatch": {
|
||||
"hash": "sha256-wi67HEYdj+bL+Zs+PrNkaMSfzjyGR0eMi0smyyvJoig=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_dispatch/1/full.distro",
|
||||
"hash": "sha256-7nuF4fhgJx0B7s73dnGddPr1gLpnaVksRYpKQmqf5Qk=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_dispatch/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_erlpack": {
|
||||
"hash": "sha256-rhf2TnRJaz3uqFq2tu8JCIbUFdBHJFQWupn2BvreeiM=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_erlpack/1/full.distro",
|
||||
"hash": "sha256-YP5XoJ4gdPJwRVP9Poj0G+Rv+ZrWE1O8TQ211LfD6tI=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_erlpack/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_game_utils": {
|
||||
"hash": "sha256-3GlzC6GHnC+hb6YMWNcA9ly7g8vKMuMf48Xv04tpMMw=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_game_utils/1/full.distro",
|
||||
"hash": "sha256-QOggWiTw6TK9mj7mnn5EvoI6Ai/QuF6R6c16vJQQwMA=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_game_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_intents": {
|
||||
"hash": "sha256-6cDb4uNVlpVTiqww03+74raqkOAbWgI0jS5xG0lgO0g=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_intents/1/full.distro",
|
||||
"hash": "sha256-n+LHKnwc/eDih0rCT11BCMNMG0Nb9LluIxkZ/qdLxYs=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_intents/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_krisp": {
|
||||
"hash": "sha256-jx0nK45QkHhkl9DMB81qwJw6GceFu8KPBcQVMvJKRXI=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_krisp/1/full.distro",
|
||||
"hash": "sha256-hnPCYcyTRyXrq/HaQn7HoFlKF13VSvSwTRn3lrzYAxw=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_krisp/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_modules": {
|
||||
"hash": "sha256-kELcckM97k084WfqVyFaJb9Nmdp1UOsXvL8vfeyzDck=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_modules/1/full.distro",
|
||||
"hash": "sha256-l5X0AeddEKdXzc8z3SkiIEeu0aF9pz7SlRN2+jgvJsQ=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_modules/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_notifications": {
|
||||
"hash": "sha256-lVlDGN+qYKOPKUgHZ20b5b36T0GNj2KyHzRQZclJ6w8=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_notifications/1/full.distro",
|
||||
"hash": "sha256-1Hl6kvliMkmATrqPLUazkTkVhjXxuYufjV/wbg8WMsM=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_notifications/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_rpc": {
|
||||
"hash": "sha256-gwqGxzJPCBIoYTftUIUiTi7D1qtsdxDJgCIqM8MRifo=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_rpc/1/full.distro",
|
||||
"hash": "sha256-pZtk1ilJRl6/UnKV70ON4X1gEewdwUHN8l0VjiGb1QU=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_rpc/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_spellcheck": {
|
||||
"hash": "sha256-SeglC/2Wp8DdSt7EAdxdEB4kfx7pAZdelv7OQYb0fz4=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_spellcheck/1/full.distro",
|
||||
"hash": "sha256-wPa9fIcrPk1yln0/dbhdJzJO93Y7G9x+L61mpGmu9Uk=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_spellcheck/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_sysimg": {
|
||||
"hash": "sha256-PDaNTbEZxg4W8HteDJ1QSgUcpizvnRRLGkYp3YNiSkY=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_sysimg/1/full.distro",
|
||||
"hash": "sha256-at2pxdYqY4h7I0vmmpJN+nuSi3b85qZvngfYVwjD7q0=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_sysimg/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_utils": {
|
||||
"hash": "sha256-zGNUOs+uWSAgAht56Oe6y5xgEhtaSKOLwVmNC0L6t6Y=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_utils/1/full.distro",
|
||||
"hash": "sha256-83pMGx2wlw5gCqcZPKwqUqztF6EnJzHSNExi/LaUsn0=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_voice": {
|
||||
"hash": "sha256-pF3ki+YCVyrD/dL9aPCgylc7gs21MppkZOHROEiDm+w=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_voice/1/full.distro",
|
||||
"hash": "sha256-bR4oAeMkBEi4miW27/I6YD7wjcQWOaLZJMsEcA5GttM=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_voice/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_webauthn": {
|
||||
"hash": "sha256-z+rVhzu+CL8nu9FfyQESkDbJBWVGHz03j/EGBc1f1vI=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_webauthn/1/full.distro",
|
||||
"hash": "sha256-JAhcJogkRO6w5lgDau3lQs7R9yvuw2J3e5yNeZkeOCc=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_webauthn/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_zstd": {
|
||||
"hash": "sha256-5cNp0u8jlQYI9LBIbi3pmL7jm43tgD3EVq3bamPZSxE=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.256/discord_zstd/1/full.distro",
|
||||
"hash": "sha256-YuztgnEkhGX5bUhqRTt4CNj3Cr/TKWFs9GFrnLHccXs=",
|
||||
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.257/discord_zstd/1/full.distro",
|
||||
"version": 1
|
||||
}
|
||||
},
|
||||
"version": "0.0.256"
|
||||
"version": "0.0.257"
|
||||
},
|
||||
"osx-stable": {
|
||||
"distro": {
|
||||
"hash": "sha256-KfWALYNAd/FX+LQRMIyCt69MY6J5jRS7gFg4jCl4fSY=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/full.distro"
|
||||
"hash": "sha256-J2gIsqC0Kzn+G9FaLqkO5xCr4g5VhIyydPHRKt13eMk=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/full.distro"
|
||||
},
|
||||
"kind": "distro",
|
||||
"modules": {
|
||||
"discord_arborium": {
|
||||
"hash": "sha256-53S9PggFNCKdfQ0sYl6Mn5R5Kngg2/T6eElq9C+DN08=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_arborium/1/full.distro",
|
||||
"hash": "sha256-1qA8sYKihOt3wymjEVgRTPhX2jSVtthc8KX4w54t+qE=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_arborium/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_cloudsync": {
|
||||
"hash": "sha256-/ySgAAJ0n2TWB/wbvB7OihFxRrC7NyTjQ1H4TqvWZ84=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_cloudsync/1/full.distro",
|
||||
"hash": "sha256-VH8rFK6asP+2lGPiC4NbNY4t20dx7qwGmlp7Mj8iVTE=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_cloudsync/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_desktop_core": {
|
||||
"hash": "sha256-szNLjknsUqkkxLPpyJjEfxT46AUjM4g+DTMoPgrxBm0=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_desktop_core/1/full.distro",
|
||||
"hash": "sha256-ZJKB5FeNJ7Z9+tuSxK9zcFG4826VFUMTrT6XHFi36YM=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_desktop_core/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_dispatch": {
|
||||
"hash": "sha256-UoWIZ1Uc0Q6YXSTzulJSWNjgdRyTiX54R05UTh8fTiE=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_dispatch/1/full.distro",
|
||||
"hash": "sha256-D7R3j/sZpwel0WBwshGHqM/HMIWwA1vW2gxUCDpUZKU=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_dispatch/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_erlpack": {
|
||||
"hash": "sha256-xlWB+o/sjHFLZVMFke9RCQt65lBVn/pUT8jNUUkfSyI=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_erlpack/1/full.distro",
|
||||
"hash": "sha256-kSKDbwiqhXVcGWtOqW184yO6uKeACyCAxgEKTOoqGOI=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_erlpack/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_game_utils": {
|
||||
"hash": "sha256-Hqs0td1l6gWvdNcn0WA/DfADlZq+OT0+HlgUXiyvwEk=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_game_utils/1/full.distro",
|
||||
"hash": "sha256-jz65aXMzEct+HT1Shs1ziyaksbFIWyAY8YjWZTvt6jI=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_game_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_intents": {
|
||||
"hash": "sha256-jKNBNIlXutv2ex6MuO8kmwkx7kcQ2uaIt0f/ogw4Vws=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_intents/1/full.distro",
|
||||
"hash": "sha256-nU9TvJqrH6+ROZsF3WD+L/ZvuIqIuGbfejQe0C0XypY=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_intents/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_krisp": {
|
||||
"hash": "sha256-7OizZzIYAlP4CmZ1kcpFc52ijT6abHYJ4KvQAhaG/J0=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_krisp/1/full.distro",
|
||||
"hash": "sha256-Jm1/RTUsXrvwntxWZKblkRzlwsVGVegzo9uqyjBH98Q=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_krisp/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_modules": {
|
||||
"hash": "sha256-l3obGjd4nK7DQtwoml6PvzmQnYaRu36xAEUjd0TKmIs=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_modules/1/full.distro",
|
||||
"hash": "sha256-7Nsbay4MP424IAtpQCcgEmSeSxVphOFUJuY/Dytb1LY=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_modules/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_notifications": {
|
||||
"hash": "sha256-8XfxczmmMq5w4HRLQnCjxjFV0fQgDwaEkcezXGd7gNU=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_notifications/1/full.distro",
|
||||
"hash": "sha256-4m4DjudjLxua1KUwjKN+DouU8JYxsa7wvTvbCTEkzKU=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_notifications/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_rpc": {
|
||||
"hash": "sha256-1n+gO1c4SZrV2jOD2SVMCQYnHU8e5ErrB0eJEv8hvus=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_rpc/1/full.distro",
|
||||
"hash": "sha256-kv8Qh9F3PmCru7DKmvsJiq+4/LoYAOtpiE9SCpPBMbc=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_rpc/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_spellcheck": {
|
||||
"hash": "sha256-QPZOJTNAU5rShPeV4SU2P9eBmDEbLZHEwThyXdRPsLg=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_spellcheck/1/full.distro",
|
||||
"hash": "sha256-dzieOT9NurZjWKaetEY5Z1DWXe/Axq7eLtPNyT3ATbk=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_spellcheck/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_sysimg": {
|
||||
"hash": "sha256-ruKew+1lZZO9FpvVkJp2U/X4/l5EaTAjuQqZZP+u2wU=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_sysimg/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_utils": {
|
||||
"hash": "sha256-PMv/psANJnI+yhGwsibWDdLGdlUQC8/Rh0h5nmNQfJY=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_utils/1/full.distro",
|
||||
"hash": "sha256-M6Hd5ehiB7j/VLRRzP/UoO5AK7UdCO8iWdlM+5cps3E=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_utils/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_voice": {
|
||||
"hash": "sha256-GtnSgoFM1aGBLLLwaB/81iRhuQvuuNuvNehO3k/UP7c=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_voice/1/full.distro",
|
||||
"hash": "sha256-eHBSpQfP+oDcbctuDhPeNkAT75bfk+IVhe212D2jCTI=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_voice/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_webauthn": {
|
||||
"hash": "sha256-r0WinKYXuJtY0YWn2GHoFrUID1mwBGRMVVJOMLFGSOs=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_webauthn/1/full.distro",
|
||||
"hash": "sha256-Wlqq/elXIb8m8mZF3P6xWG1mViqrUieBmd83mS9V7Rg=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_webauthn/1/full.distro",
|
||||
"version": 1
|
||||
},
|
||||
"discord_zstd": {
|
||||
"hash": "sha256-pBA8Iyv1S7wePlvdNI4lj4MfY2Z8MPtiVaf6EBi8rY0=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.409/discord_zstd/1/full.distro",
|
||||
"hash": "sha256-+OkUUomOUW6uj1/6cMZmi6dmEkR4HPDkjm1dJ5gSnTY=",
|
||||
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.410/discord_zstd/1/full.distro",
|
||||
"version": 1
|
||||
}
|
||||
},
|
||||
"version": "0.0.409"
|
||||
"version": "0.0.410"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,13 +33,13 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "tg_owt";
|
||||
version = "0-unstable-2026-04-09";
|
||||
version = "0-unstable-2026-08-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "desktop-app";
|
||||
repo = "tg_owt";
|
||||
rev = "89df288dd6ba5b2ec95b3c5eaf1e7e0c3a870fc4";
|
||||
hash = "sha256-wdO3AACCEN3IDYWt5a+f7zrcPFoqz+c7vLpo6LZk29w=";
|
||||
rev = "19d51d3c19632a63fdbe17c62f10332d978cb940";
|
||||
hash = "sha256-Cb1XWnryZEKTyvhBeOsYX5KZG88zUOAlSRhfyIh06g4=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
kcoreaddons,
|
||||
lz4,
|
||||
xxhash,
|
||||
ffmpeg_6,
|
||||
ffmpeg,
|
||||
protobuf,
|
||||
openal-soft,
|
||||
minizip-ng-compat,
|
||||
@@ -29,6 +29,7 @@
|
||||
boost,
|
||||
ada,
|
||||
cmark-gfm,
|
||||
libfido2,
|
||||
libavif,
|
||||
libheif,
|
||||
libjxl,
|
||||
@@ -46,14 +47,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "telegram-desktop-unwrapped";
|
||||
version = "7.0.2";
|
||||
version = "7.0.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "telegramdesktop";
|
||||
repo = "tdesktop";
|
||||
rev = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-G/A5J2m1sXHD50zDmMD9ehnorAGRjnQ+YGMv6DEiJcQ=";
|
||||
hash = "sha256-zpGfubIZtTmLjAgxYGcMy2N3Xlf9NOppcxsMSUS/KEA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -72,7 +73,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
qtsvg
|
||||
lz4
|
||||
xxhash
|
||||
ffmpeg_6
|
||||
ffmpeg
|
||||
openal-soft
|
||||
minizip-ng-compat
|
||||
range-v3
|
||||
@@ -83,6 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
boost
|
||||
ada
|
||||
cmark-gfm
|
||||
libfido2
|
||||
(tdlib.override { tde2eOnly = true; })
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
|
||||
@@ -106,7 +106,7 @@ let
|
||||
gtk3
|
||||
;
|
||||
binaryName = "thunderbird";
|
||||
gssSupport = true;
|
||||
withGSSAPI = true;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
@@ -69,14 +69,14 @@ let
|
||||
}).override
|
||||
(
|
||||
{
|
||||
geolocationSupport = false;
|
||||
webrtcSupport = false;
|
||||
enableLocation = false;
|
||||
enableWebRTC = false;
|
||||
|
||||
pgoSupport = false; # console.warn: feeds: "downloadFeed: network connection unavailable"
|
||||
enablePGO = false; # console.warn: feeds: "downloadFeed: network connection unavailable"
|
||||
}
|
||||
// lib.optionalAttrs (lib.versionAtLeast version "149") {
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=2025767
|
||||
crashreporterSupport = false;
|
||||
enableCrashReporter = false;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
application ? "browser",
|
||||
applicationName ? "Firefox",
|
||||
branding ? null,
|
||||
requireSigning ? true,
|
||||
allowAddonSideload ? false,
|
||||
src,
|
||||
unpackPhase ? null,
|
||||
extraPatches ? [ ],
|
||||
@@ -24,12 +22,8 @@
|
||||
}:
|
||||
|
||||
let
|
||||
# Rename the variables to prevent infinite recursion
|
||||
requireSigningDefault = requireSigning;
|
||||
allowAddonSideloadDefault = allowAddonSideload;
|
||||
|
||||
# Specifying --(dis|en)able-elf-hack on a platform for which it's not implemented will give `--disable-elf-hack is not available in this configuration`
|
||||
# This is declared here because it's used in the default value of elfhackSupport
|
||||
# This is declared here because it's used in the default value of enableElfhack
|
||||
isElfhackPlatform =
|
||||
stdenv:
|
||||
stdenv.hostPlatform.isElf
|
||||
@@ -50,11 +44,13 @@ in
|
||||
|
||||
# build time
|
||||
autoconf,
|
||||
buildPackages,
|
||||
cargo,
|
||||
dump_syms,
|
||||
makeBinaryWrapper,
|
||||
mimalloc,
|
||||
nodejs,
|
||||
overrideCC,
|
||||
perl,
|
||||
pkg-config,
|
||||
pkgsCross, # wasm32 rlbox
|
||||
@@ -115,80 +111,73 @@ in
|
||||
cups,
|
||||
rsync, # used when preparing .app directory
|
||||
|
||||
# optionals
|
||||
|
||||
## addon signing/sideloading
|
||||
requireSigning ? requireSigningDefault,
|
||||
allowAddonSideload ? allowAddonSideloadDefault,
|
||||
|
||||
## debugging
|
||||
|
||||
debugBuild ? false,
|
||||
|
||||
# On 32bit platforms, we disable adding "-g" for easier linking.
|
||||
enableDebugSymbols ? !stdenv.hostPlatform.is32bit,
|
||||
|
||||
## optional libraries
|
||||
|
||||
alsaSupport ? stdenv.hostPlatform.isLinux,
|
||||
# optional dependencies
|
||||
withALSA ? stdenv.hostPlatform.isLinux,
|
||||
alsa-lib,
|
||||
ffmpegSupport ? true,
|
||||
gssSupport ? true,
|
||||
withFFmpeg ? true,
|
||||
withGSSAPI ? true,
|
||||
libkrb5,
|
||||
jackSupport ? stdenv.hostPlatform.isLinux,
|
||||
withJACK ? stdenv.hostPlatform.isLinux,
|
||||
libjack2,
|
||||
jemallocSupport ? !stdenv.hostPlatform.isMusl,
|
||||
withJemalloc ? !stdenv.hostPlatform.isMusl,
|
||||
jemalloc,
|
||||
ltoSupport ? (
|
||||
withPipewire ? withWayland && enableWebRTC,
|
||||
withPulseaudio ? stdenv.hostPlatform.isLinux,
|
||||
libpulseaudio,
|
||||
withSndio ? stdenv.hostPlatform.isLinux,
|
||||
sndio,
|
||||
withWayland ? !stdenv.hostPlatform.isDarwin,
|
||||
libxkbcommon,
|
||||
libdrm,
|
||||
|
||||
# Build configuration
|
||||
|
||||
## Addon signing/sideloading
|
||||
enableAddonSigning ? true,
|
||||
enableAddonSideload ? false,
|
||||
|
||||
## Optimizations
|
||||
enableElfhack ?
|
||||
isElfhackPlatform stdenv && !(stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isAarch64),
|
||||
enableLTO ? (
|
||||
(stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isDarwin)
|
||||
&& stdenv.hostPlatform.is64bit
|
||||
&& !stdenv.hostPlatform.isRiscV
|
||||
),
|
||||
overrideCC,
|
||||
buildPackages,
|
||||
# PGO merges profile data with a 32-bit llvm-profdata, which runs out of
|
||||
# address space on the huge libxul profile, so disable it on 32-bit.
|
||||
pgoSupport ? (
|
||||
enablePGO ? (
|
||||
stdenv.hostPlatform.isLinux
|
||||
&& stdenv.hostPlatform == stdenv.buildPlatform
|
||||
# PGO merges profile data with a 32-bit llvm-profdata, which runs out of
|
||||
# address space on the huge libxul profile, so disable it on 32-bit.
|
||||
&& stdenv.hostPlatform.is64bit
|
||||
),
|
||||
xvfb-run,
|
||||
elfhackSupport ?
|
||||
isElfhackPlatform stdenv && !(stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isAarch64),
|
||||
pipewireSupport ? waylandSupport && webrtcSupport,
|
||||
pulseaudioSupport ? stdenv.hostPlatform.isLinux,
|
||||
libpulseaudio,
|
||||
sndioSupport ? stdenv.hostPlatform.isLinux,
|
||||
sndio,
|
||||
waylandSupport ? !stdenv.hostPlatform.isDarwin,
|
||||
libxkbcommon,
|
||||
libdrm,
|
||||
|
||||
## privacy-related options
|
||||
## Debugging
|
||||
enableDebug ? false,
|
||||
|
||||
privacySupport ? false,
|
||||
## On 32bit platforms, we disable adding "-g" for easier linking.
|
||||
enableDebugSymbols ? !stdenv.hostPlatform.is32bit,
|
||||
|
||||
# WARNING: NEVER set any of the options below to `true` by default.
|
||||
# Set to `!privacySupport` or `false`.
|
||||
## Privacy knobs
|
||||
enableDataReporting ? true,
|
||||
enableLocation ? true,
|
||||
enableWebRTC ? true,
|
||||
enableNeckoWiFi ? enableLocation,
|
||||
|
||||
crashreporterSupport ?
|
||||
!privacySupport
|
||||
## Crash reporting
|
||||
## https://crash-stats.mozilla.org/search/?distribution_id=%3Dnixos
|
||||
enableCrashReporter ?
|
||||
enableDataReporting
|
||||
&& !stdenv.hostPlatform.isLoongArch64
|
||||
&& !stdenv.hostPlatform.isRiscV
|
||||
&& !stdenv.hostPlatform.isMusl,
|
||||
curl,
|
||||
geolocationSupport ? !privacySupport,
|
||||
webrtcSupport ? !privacySupport,
|
||||
|
||||
# digital rights management
|
||||
|
||||
# This flag controls whether Firefox will show the nagbar, that allows
|
||||
# users at runtime the choice to enable Widevine CDM support when a site
|
||||
# requests it.
|
||||
# Controlling the nagbar and widevine CDM at runtime is possible by setting
|
||||
# `browser.eme.ui.enabled` and `media.gmp-widevinecdm.enabled` accordingly
|
||||
drmSupport ? true,
|
||||
## DRM / Encrypted Media Extensions
|
||||
# Build time toggle to control whether the DRM nagbar will appear
|
||||
# (browser.eme.ui.enabled), when sites require it to playback media.
|
||||
enableEMENagbar ? true,
|
||||
|
||||
# As stated by Sylvestre Ledru (@sylvestre) on Nov 22, 2017 at
|
||||
# https://github.com/NixOS/nixpkgs/issues/31843#issuecomment-346372756 we
|
||||
@@ -213,10 +202,10 @@ in
|
||||
|
||||
assert stdenv.cc.libc or null != null;
|
||||
assert
|
||||
pipewireSupport
|
||||
-> !waylandSupport || !webrtcSupport
|
||||
-> throw "${pname}: pipewireSupport requires both wayland and webrtc support.";
|
||||
assert elfhackSupport -> isElfhackPlatform stdenv;
|
||||
withPipewire
|
||||
-> !withWayland || !enableWebRTC
|
||||
-> throw "${pname}: Pipewire support depends on Wayland and WebRTC support.";
|
||||
assert enableElfhack -> isElfhackPlatform stdenv;
|
||||
|
||||
let
|
||||
inherit (lib) enableFeature;
|
||||
@@ -238,7 +227,7 @@ let
|
||||
# LTO requires LLVM bintools including ld.lld and llvm-ar.
|
||||
buildStdenv = overrideCC llvmPackages.stdenv (
|
||||
llvmPackages.stdenv.cc.override {
|
||||
bintools = if ltoSupport then buildPackages.rustc.llvmPackages.bintools else stdenv.cc.bintools;
|
||||
bintools = if enableLTO then buildPackages.rustc.llvmPackages.bintools else stdenv.cc.bintools;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -273,7 +262,7 @@ let
|
||||
);
|
||||
|
||||
defaultPrefs =
|
||||
if geolocationSupport then
|
||||
if enableLocation then
|
||||
{
|
||||
"geo.provider.network.url" = {
|
||||
value = "https://api.beacondb.net/v1/geolocate";
|
||||
@@ -284,7 +273,7 @@ let
|
||||
{
|
||||
"geo.provider.use_geoclue" = {
|
||||
value = false;
|
||||
reason = "Geolocation support has been disabled through the `geolocationSupport` package attribute.";
|
||||
reason = "Geolocation support has been disabled through the `enableLocation` package attribute.";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -301,7 +290,7 @@ let
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
"cairo-cocoa"
|
||||
else
|
||||
"cairo-gtk3${lib.optionalString waylandSupport "-wayland"}";
|
||||
"cairo-gtk3${lib.optionalString withWayland "-wayland"}";
|
||||
|
||||
in
|
||||
|
||||
@@ -324,10 +313,10 @@ buildStdenv.mkDerivation {
|
||||
outputs = [
|
||||
"out"
|
||||
]
|
||||
++ lib.optionals crashreporterSupport [ "symbols" ];
|
||||
++ lib.optionals enableCrashReporter [ "symbols" ];
|
||||
|
||||
# Add another configure-build-profiling run before the final configure phase if we build with pgo
|
||||
preConfigurePhases = lib.optionals pgoSupport [
|
||||
preConfigurePhases = lib.optionals enablePGO [
|
||||
"configurePhase"
|
||||
"buildPhase"
|
||||
"profilingPhase"
|
||||
@@ -393,11 +382,11 @@ buildStdenv.mkDerivation {
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ rsync ]
|
||||
++ lib.optionals stdenv.hostPlatform.isx86 [ nasm ]
|
||||
++ lib.optionals crashreporterSupport [
|
||||
++ lib.optionals enableCrashReporter [
|
||||
dump_syms
|
||||
patchelf
|
||||
]
|
||||
++ lib.optionals pgoSupport [ xvfb-run ]
|
||||
++ lib.optionals enablePGO [ xvfb-run ]
|
||||
++ extraNativeBuildInputs;
|
||||
|
||||
setOutputFlags = false; # `./mach configure` doesn't understand `--*dir=` flags.
|
||||
@@ -430,7 +419,7 @@ buildStdenv.mkDerivation {
|
||||
export WASM_CC=${pkgsCross.wasm32-wasip1.stdenv.cc}/bin/${pkgsCross.wasm32-wasip1.stdenv.cc.targetPrefix}cc
|
||||
export WASM_CXX=${pkgsCross.wasm32-wasip1.stdenv.cc}/bin/${pkgsCross.wasm32-wasip1.stdenv.cc.targetPrefix}c++
|
||||
''
|
||||
+ lib.optionalString pgoSupport ''
|
||||
+ lib.optionalString enablePGO ''
|
||||
if [ -e "$TMPDIR/merged.profdata" ]; then
|
||||
echo "Configuring with profiling data"
|
||||
for i in "''${!configureFlagsArray[@]}"; do
|
||||
@@ -464,7 +453,7 @@ buildStdenv.mkDerivation {
|
||||
+ lib.optionalString (enableOfficialBranding && !stdenv.hostPlatform.is32bit) ''
|
||||
export MOZILLA_OFFICIAL=1
|
||||
''
|
||||
+ lib.optionalString (!requireSigning) ''
|
||||
+ lib.optionalString (!enableAddonSigning) ''
|
||||
export MOZ_REQUIRE_SIGNING=
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||
@@ -491,13 +480,13 @@ buildStdenv.mkDerivation {
|
||||
"--target=${buildStdenv.hostPlatform.config}"
|
||||
]
|
||||
# LTO is done using clang and lld.
|
||||
++ lib.optionals ltoSupport [
|
||||
++ lib.optionals enableLTO [
|
||||
"--enable-lto=cross,full" # Cross-Language LTO
|
||||
"--enable-linker=lld"
|
||||
]
|
||||
++ lib.optional (isElfhackPlatform stdenv) (enableFeature elfhackSupport "elf-hack")
|
||||
++ lib.optional (!drmSupport) "--disable-eme"
|
||||
++ lib.optional allowAddonSideload "--allow-addon-sideload"
|
||||
++ lib.optional (isElfhackPlatform stdenv) (enableFeature enableElfhack "elf-hack")
|
||||
++ lib.optional (!enableEMENagbar) "--disable-eme"
|
||||
++ lib.optional enableAddonSideload "--allow-addon-sideload"
|
||||
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
|
||||
# MacOS builds use bundled versions of libraries: https://bugzilla.mozilla.org/show_bug.cgi?id=1776255
|
||||
"--enable-system-pixman"
|
||||
@@ -514,27 +503,28 @@ buildStdenv.mkDerivation {
|
||||
"--with-system-zlib"
|
||||
|
||||
# These options are not available on MacOS, even --disable-*
|
||||
(enableFeature alsaSupport "alsa")
|
||||
(enableFeature jackSupport "jack")
|
||||
(enableFeature pulseaudioSupport "pulseaudio")
|
||||
(enableFeature sndioSupport "sndio")
|
||||
(enableFeature withALSA "alsa")
|
||||
(enableFeature withJACK "jack")
|
||||
(enableFeature withPulseaudio "pulseaudio")
|
||||
(enableFeature withSndio "sndio")
|
||||
]
|
||||
++ lib.optionals (!buildStdenv.hostPlatform.isDarwin && lib.versionAtLeast version "141") [
|
||||
"--with-onnx-runtime=${lib.getLib onnxruntime}/lib"
|
||||
]
|
||||
++ [
|
||||
(enableFeature crashreporterSupport "crashreporter")
|
||||
(enableFeature ffmpegSupport "ffmpeg")
|
||||
(enableFeature geolocationSupport "necko-wifi")
|
||||
(enableFeature gssSupport "negotiateauth")
|
||||
(enableFeature jemallocSupport "jemalloc")
|
||||
(enableFeature webrtcSupport "webrtc")
|
||||
(enableFeature withFFmpeg "ffmpeg")
|
||||
(enableFeature withGSSAPI "negotiateauth")
|
||||
(enableFeature withJemalloc "jemalloc")
|
||||
|
||||
(enableFeature debugBuild "debug")
|
||||
(if debugBuild then "--enable-profiling" else "--enable-optimize")
|
||||
(enableFeature enableCrashReporter "crashreporter")
|
||||
(enableFeature enableNeckoWiFi "necko-wifi")
|
||||
(enableFeature enableWebRTC "webrtc")
|
||||
|
||||
(enableFeature enableDebug "debug")
|
||||
(if enableDebug then "--enable-profiling" else "--enable-optimize")
|
||||
# --enable-release adds -ffunction-sections & LTO that require a big amount
|
||||
# of RAM, and the 32-bit memory space cannot handle that linking
|
||||
(enableFeature (!debugBuild && !stdenv.hostPlatform.is32bit) "release")
|
||||
(enableFeature (!enableDebug && !stdenv.hostPlatform.is32bit) "release")
|
||||
(enableFeature enableDebugSymbols "debug-symbols")
|
||||
]
|
||||
++ lib.optionals enableDebugSymbols [
|
||||
@@ -597,20 +587,20 @@ buildStdenv.mkDerivation {
|
||||
zlib
|
||||
(if (lib.versionAtLeast version "144") then nss_latest else nss_esr)
|
||||
]
|
||||
++ lib.optional alsaSupport alsa-lib
|
||||
++ lib.optional jackSupport libjack2
|
||||
++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed
|
||||
++ lib.optional sndioSupport sndio
|
||||
++ lib.optionals waylandSupport [
|
||||
++ lib.optional withALSA alsa-lib
|
||||
++ lib.optional withJACK libjack2
|
||||
++ lib.optional withPulseaudio libpulseaudio # only headers are needed
|
||||
++ lib.optional withSndio sndio
|
||||
++ lib.optionals withWayland [
|
||||
libxkbcommon
|
||||
libdrm
|
||||
]
|
||||
))
|
||||
++ lib.optional gssSupport libkrb5
|
||||
++ lib.optional jemallocSupport jemalloc
|
||||
++ lib.optional withGSSAPI libkrb5
|
||||
++ lib.optional withJemalloc jemalloc
|
||||
++ extraBuildInputs;
|
||||
|
||||
profilingPhase = lib.optionalString pgoSupport ''
|
||||
profilingPhase = lib.optionalString enablePGO ''
|
||||
# Avoid compressing the instrumented build with high levels of compression
|
||||
export MOZ_PKG_FORMAT=TAR
|
||||
|
||||
@@ -663,7 +653,7 @@ buildStdenv.mkDerivation {
|
||||
# Generate build symbols once after the final build
|
||||
# https://firefox-source-docs.mozilla.org/crash-reporting/uploading_symbol.html
|
||||
preInstall =
|
||||
lib.optionalString crashreporterSupport ''
|
||||
lib.optionalString enableCrashReporter ''
|
||||
./mach buildsymbols
|
||||
mkdir -p $symbols/
|
||||
cp objdir/dist/*.crashreporter-symbols.zip $symbols/
|
||||
@@ -697,7 +687,7 @@ buildStdenv.mkDerivation {
|
||||
cd ..
|
||||
'';
|
||||
|
||||
postFixup = lib.optionalString (crashreporterSupport && buildStdenv.hostPlatform.isLinux) ''
|
||||
postFixup = lib.optionalString (enableCrashReporter && buildStdenv.hostPlatform.isLinux) ''
|
||||
patchelf --add-rpath "${lib.makeLibraryPath [ curl ]}" $out/lib/${binaryName}/crashreporter
|
||||
'';
|
||||
|
||||
@@ -715,21 +705,25 @@ buildStdenv.mkDerivation {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit applicationName;
|
||||
inherit application extraPatches;
|
||||
inherit updateScript;
|
||||
inherit alsaSupport;
|
||||
inherit binaryName;
|
||||
inherit requireSigning allowAddonSideload;
|
||||
inherit jackSupport;
|
||||
inherit pipewireSupport;
|
||||
inherit sndioSupport;
|
||||
inherit nspr;
|
||||
inherit ffmpegSupport;
|
||||
inherit gssSupport;
|
||||
inherit tests;
|
||||
inherit gtk3;
|
||||
inherit wasiSysRoot;
|
||||
inherit
|
||||
application
|
||||
applicationName
|
||||
binaryName
|
||||
enableAddonSideload
|
||||
enableAddonSigning
|
||||
extraPatches
|
||||
gtk3
|
||||
nspr
|
||||
tests
|
||||
updateScript
|
||||
wasiSysRoot
|
||||
withALSA
|
||||
withFFmpeg
|
||||
withGSSAPI
|
||||
withJACK
|
||||
withPipewire
|
||||
withSndio
|
||||
;
|
||||
version = packageVersion;
|
||||
}
|
||||
// extraPassthru;
|
||||
|
||||
@@ -10,13 +10,13 @@ telegram-desktop.override {
|
||||
inherit withWebkit;
|
||||
unwrapped = telegram-desktop.unwrapped.overrideAttrs (old: rec {
|
||||
pname = "64gram-unwrapped";
|
||||
version = "1.2.5";
|
||||
version = "1.2.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TDesktop-x64";
|
||||
repo = "tdesktop";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-CcYcdSgeVEbGKOzim+Q/gIxMIfDGaSStF4cLLttA+SM=";
|
||||
hash = "sha256-5Ovx/71wf0SV4RUwEmIvf1Q686AZ5WPxn9WlgklAMf4=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "age-plugin-fido2prf";
|
||||
version = "0.3.0";
|
||||
version = "0.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FiloSottile";
|
||||
repo = "typage";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-JGEn1xIzfLyoCWd/aRRG08Z/OoviEyZF+tGEfcj9DXw=";
|
||||
hash = "sha256-vwE4u7xMHe0pGY/18ZbIAnoMyFyWlIbVbpQH4ZIbgZ8=";
|
||||
};
|
||||
|
||||
srcRoot = "${finalAttrs.src}/fido2prf/cmd/age-plugin-fido2prf";
|
||||
|
||||
@@ -15,16 +15,16 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "ashell";
|
||||
version = "0.9.0";
|
||||
version = "0.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MalpenZibo";
|
||||
repo = "ashell";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-QRNEc2HNqA1tZk/jW/MXDwXda58yNlkw86SCTjH1/1w=";
|
||||
hash = "sha256-1ci09G9qQCAmYnERtd1Pm2hZPEL0AMuYF7B9AlnnfbE=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-bLZcRASBGV9Y/QlDVBdOl2ElZDLI1KUAh5MlOsjmlKs=";
|
||||
cargoHash = "sha256-yuj74sMsL1c0vLEb0iyXTJYUw0rH7bJdxJRVVpPCkf0=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
libid3tag,
|
||||
libopus,
|
||||
libuuid,
|
||||
ffmpeg_8,
|
||||
ffmpeg,
|
||||
soundtouch,
|
||||
portaudio, # given up fighting their portaudio.patch?
|
||||
portmidi,
|
||||
@@ -58,18 +58,15 @@
|
||||
# TODO
|
||||
# 1. detach sbsms
|
||||
|
||||
let
|
||||
ffmpeg = ffmpeg_8;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "audacity";
|
||||
version = "3.7.8";
|
||||
version = "3.7.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "audacity";
|
||||
repo = "audacity";
|
||||
rev = "Audacity-${finalAttrs.version}";
|
||||
hash = "sha256-Vp3Nx3LuNu5fqeLF6dvZ9/hhkoUCu0eCAdIEDtS1IwU=";
|
||||
hash = "sha256-q/5LPL76GPEFGRxTZcuxmLuq15fwbw2Mak/q2RObghk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
buildGoModule rec {
|
||||
__structuredAttrs = true;
|
||||
pname = "balena-compose-parser";
|
||||
version = "0.3.0";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "balena-io-modules";
|
||||
repo = "balena-compose-parser";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-VOFSdcygi3YlRlV48zV1fGtRgFSio2KBZCs25iqBmLY=";
|
||||
hash = "sha256-fEvLu2xZlYoILM4DThiSQHG2gbGOB5IQVgmwcLKsKwo=";
|
||||
};
|
||||
|
||||
modRoot = "lib";
|
||||
|
||||
@@ -159,5 +159,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"x86_64-linux"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
knownVulnerabilities = [
|
||||
"Uses Electron 39.8.1, which was EOL on March 13 2026, with several known CVEs"
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -24,14 +24,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "buildstream";
|
||||
version = "2.7.0";
|
||||
version = "2.8.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "apache";
|
||||
repo = "buildstream";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-eHZmimuwOo3ZHZw5QF94B6wkso1+QbZIcgpDgsw1hiM=";
|
||||
hash = "sha256-TS1er7lWoaMaVnfT1GAApt2qxxyTrl0o354v6rIpgCA=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [
|
||||
|
||||
@@ -2,31 +2,27 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
pkg-config,
|
||||
pkgconf,
|
||||
imagemagick,
|
||||
libimagequant,
|
||||
luajit,
|
||||
makeBinaryWrapper,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cwal";
|
||||
version = "0.9.0";
|
||||
version = "0.10.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nitinbhat972";
|
||||
repo = "cwal";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-RDtYBgqTG3Ycn1D6QtaHGZVXKxw8UqhzssxXA4temYo=";
|
||||
hash = "sha256-n9v2EiW1wRMsYoNk+m20qQao52vvmD6NDM8Z/oEyjbU=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
makeBinaryWrapper
|
||||
pkgconf
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
@@ -35,9 +31,23 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
luajit
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/cwal \
|
||||
--prefix XDG_DATA_DIRS : $out/share
|
||||
postPatch = ''
|
||||
substituteInPlace config.h \
|
||||
--replace-fail '#define INSTALL_DIR "/usr"' \
|
||||
"#define INSTALL_DIR \"$out\""
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
cc nob.c -o nob
|
||||
./nob build
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
./nob install
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -127,5 +127,8 @@ stdenv.mkDerivation rec {
|
||||
Crafter
|
||||
jonhermansen
|
||||
];
|
||||
knownVulnerabilities = [
|
||||
"Uses Electron 37.6.0, EOL on October 4, 2025, Several CVEs known."
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "daktari";
|
||||
version = "0.0.350";
|
||||
version = "0.0.353";
|
||||
pyproject = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
||||
owner = "genio-learn";
|
||||
repo = "daktari";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-JpLY+s88UcNgpy6K7+ZmLUCDlxqNtbuW3wIz8phy7Ag=";
|
||||
hash = "sha256-gVch0gfuUd6/33z6KK7hTHOjG0rPaBThruqMLHf+2PA=";
|
||||
};
|
||||
|
||||
patches = [ ./optional-pyclip.patch ];
|
||||
|
||||
@@ -23,8 +23,13 @@ stdenv.mkDerivation {
|
||||
zlib
|
||||
libjpeg
|
||||
SDL2
|
||||
libx11
|
||||
];
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ libx11 ];
|
||||
|
||||
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
substituteInPlace makefile.inc \
|
||||
--replace-fail '$(SDLCONFIG_STATICLIBS)' '$(SDLCONFIG_LIBS)'
|
||||
'';
|
||||
|
||||
buildFlags = [ "release" ];
|
||||
|
||||
@@ -38,12 +43,18 @@ stdenv.mkDerivation {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
patchelf \
|
||||
--add-needed ${libvorbis}/lib/libvorbisfile.so \
|
||||
--add-needed ${libvorbis}/lib/libvorbis.so \
|
||||
$out/bin/darkplaces
|
||||
'';
|
||||
postFixup =
|
||||
lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
patchelf \
|
||||
--add-needed ${libvorbis}/lib/libvorbisfile.so \
|
||||
--add-needed ${libvorbis}/lib/libvorbis.so \
|
||||
$out/bin/darkplaces
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
${stdenv.cc.targetPrefix}install_name_tool \
|
||||
-add_rpath ${lib.getLib libvorbis}/lib \
|
||||
$out/bin/darkplaces
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.icculus.org/twilight/darkplaces/";
|
||||
@@ -56,6 +67,6 @@ stdenv.mkDerivation {
|
||||
'';
|
||||
maintainers = with lib.maintainers; [ necrophcodr ];
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "docuum";
|
||||
version = "0.27.0";
|
||||
version = "0.27.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stepchowfun";
|
||||
repo = "docuum";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Avd+37mY9E28kfqRI8W3Lx5O/RrxuHFwBnXZqqdrkNQ=";
|
||||
hash = "sha256-yy2mZx2eFgEpYVvO0Dgvf42b2rK+xMiIiF5tFz+1tV0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-VrCtfE4WvTlKeLsJVm73kNvo3lH90nt+imG2Yqse8K0=";
|
||||
cargoHash = "sha256-GVjVX942kAUWZuR7k4Yu1GS9DbSr9HMoM/rfdUVXX5o=";
|
||||
|
||||
checkFlags = [
|
||||
# fails, no idea why
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dokuwiki";
|
||||
version = "2026-07-14b";
|
||||
version = "2026-07-14c";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dokuwiki";
|
||||
repo = "dokuwiki";
|
||||
rev = "release-${version}";
|
||||
sha256 = "sha256-w/uVk60gdr4PhUMOHHYl+X87Hx9pojYqJo5sZXLUX6o=";
|
||||
sha256 = "sha256-84kMuFTWYo6Cjd6qpkZsLZoECIP9IzSrc9dX1uKMp0M=";
|
||||
};
|
||||
|
||||
preload = writeText "preload.php" ''
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
diffutils,
|
||||
versionCheckHook,
|
||||
glibc,
|
||||
bashNonInteractive,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -113,7 +114,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
xz
|
||||
zstd
|
||||
libmd
|
||||
bashNonInteractive
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
perl
|
||||
@@ -121,6 +124,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pkg-config
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
postInstall = ''
|
||||
for i in $out/bin/*; do
|
||||
if head -n 1 $i | grep -q perl; then
|
||||
@@ -138,6 +143,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
description = "Debian package manager";
|
||||
homepage = "https://wiki.debian.org/Teams/Dpkg";
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ergo";
|
||||
version = "6.0.4";
|
||||
version = "6.0.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ergoplatform/ergo/releases/download/v${finalAttrs.version}/ergo-${finalAttrs.version}.jar";
|
||||
sha256 = "sha256-PeFQiRx+oE9cbNSPjVPU5/q7Ib+ZnFoXiattnszXT4c=";
|
||||
sha256 = "sha256-Kn4peMsJU47WeA2FrjqjnB7M4Q5eWm4Nw82KsIeFFYg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -11,17 +11,17 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "firebase-tools";
|
||||
version = "15.28.1";
|
||||
version = "15.28.2";
|
||||
nodejs = nodejs_22;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "firebase";
|
||||
repo = "firebase-tools";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Dls7xLkHnvLGQnw72RoOYw8iz2axHNBBKdzVwWpfWHE=";
|
||||
hash = "sha256-19cIgkZ0luZYYx+9Cs077b5Q+sLxf+4ahwWO6hspxDw=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-u8zhpnd2avSXiIZi6rj8y6JI9ngqTxIhlPR+Xor3ka8=";
|
||||
npmDepsHash = "sha256-ZcI4Do4NcTIhJx1o/Hb9fZysv7WyGMLOUKMb4SUbeTY=";
|
||||
|
||||
# No more package-lock.json in upstream src
|
||||
postPatch = ''
|
||||
|
||||
@@ -99,12 +99,12 @@ rustPlatform.buildRustPackage rec {
|
||||
# wrapped similarly to `firefoxRuntime`, and these passthru variables are
|
||||
# read when `wrapFirefox` wraps this derivation too.
|
||||
inherit (firefoxRuntime)
|
||||
ffmpegSupport
|
||||
gssSupport
|
||||
alsaSupport
|
||||
pipewireSupport
|
||||
sndioSupport
|
||||
jackSupport
|
||||
withALSA
|
||||
withFFmpeg
|
||||
withGSSAPI
|
||||
withJACK
|
||||
withPipewire
|
||||
withSndio
|
||||
;
|
||||
};
|
||||
|
||||
|
||||
@@ -113,8 +113,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
inherit binaryName;
|
||||
applicationName = "Floorp";
|
||||
libName = "floorp-bin-${finalAttrs.version}";
|
||||
ffmpegSupport = true;
|
||||
gssSupport = true;
|
||||
withFFmpeg = true;
|
||||
withGSSAPI = true;
|
||||
gtk3 = gtk3;
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.27.0";
|
||||
version = "1.28.0";
|
||||
|
||||
# build stimuli file for PGO build and the script to generate it
|
||||
# independently of the foot's build, so we can cache the result
|
||||
@@ -40,7 +40,7 @@ let
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://codeberg.org/dnkl/foot/raw/tag/${version}/scripts/generate-alt-random-writes.py";
|
||||
hash = "sha256-d7oE3hSStET9Bz8PcmRHSZ+ga+7lrL3/oJdx7phNei8=";
|
||||
hash = "sha256-RUCG4EK9+aXe+EKvFYv6/JzQBglGZHyaEpr63v8akW4=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
@@ -103,7 +103,7 @@ stdenv.mkDerivation {
|
||||
owner = "dnkl";
|
||||
repo = "foot";
|
||||
tag = version;
|
||||
hash = "sha256-jbE44SpMqDhOOT2o4Wh7UCdXn6bBqxOMskCHHTzEKmU=";
|
||||
hash = "sha256-CZlbQut5jM8/dWuLlJPDaLBykV7K5l/caB3DLQ94mG8=";
|
||||
};
|
||||
|
||||
separateDebugInfo = true;
|
||||
|
||||
@@ -25,7 +25,7 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "frame-media-converter";
|
||||
version = "0.33.0";
|
||||
version = "0.33.1";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
@@ -33,10 +33,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
owner = "66HEX";
|
||||
repo = "frame";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-Nz1ct+Hkc1f7llXT925gBwAivfz1QCpTJW1WzjratTI=";
|
||||
hash = "sha256-oUJ6yiSZGrpdKra22H/nyLjDh9f6p9gOA9TeXjlDuRY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-n1HlMAYHrHwZN+nxA5dgTghcrNaYKL3LLtphcc2Ty7U=";
|
||||
cargoHash = "sha256-Rq2/CWxKN7HmmFtmt26CMfVwmwc4Wl2wnbvB9inVsHw=";
|
||||
cargoBuildFlags = cargoFlags;
|
||||
cargoTestFlags = cargoFlags;
|
||||
|
||||
|
||||
@@ -95,7 +95,8 @@ stdenv.mkDerivation {
|
||||
cp -r *.app $out/Applications/
|
||||
|
||||
mkdir -p $out/bin
|
||||
ln -s "$out/Applications/"*.app/Contents/MacOS/* $out/bin/github-copilot-app
|
||||
ln -s "$out/Applications/"*.app/Contents/MacOS/git-credential-copilot "$out"/bin/git-credential-copilot
|
||||
ln -s "$out/Applications/"*.app/Contents/MacOS/github "$out"/bin/github-copilot-app
|
||||
''
|
||||
else
|
||||
''
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gobgp";
|
||||
version = "4.8.0";
|
||||
version = "4.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osrg";
|
||||
repo = "gobgp";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-nU/HjHi0nKQy8SelwKSHneRjaRVNfvif4dljhPpUZrI=";
|
||||
sha256 = "sha256-52eJtAQfDF76vvLQMxnttPgXppaumZcZ/toOoLeYBu8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-9r8LZlCF4sr8VTyJfDktjhk32afc8ep7GXtqxUnAleE=";
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gobgpd";
|
||||
version = "4.8.0";
|
||||
version = "4.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osrg";
|
||||
repo = "gobgp";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-nU/HjHi0nKQy8SelwKSHneRjaRVNfvif4dljhPpUZrI=";
|
||||
hash = "sha256-52eJtAQfDF76vvLQMxnttPgXppaumZcZ/toOoLeYBu8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-9r8LZlCF4sr8VTyJfDktjhk32afc8ep7GXtqxUnAleE=";
|
||||
|
||||
@@ -7,17 +7,17 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "goose";
|
||||
version = "3.27.3";
|
||||
version = "3.28.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pressly";
|
||||
repo = "goose";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-CSS0OtC4/EeQD7PGin64U0Fag2z490RQ7CKNBRyp8f8=";
|
||||
hash = "sha256-V7kpDIJOyWB0O6uGQmxO1lgfdUYXIGJ3ycmXGu20H94=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-opO6G9Fdyt27GlWyaB/6J1xhm3wTgH9Xc/FYcLcqBVs=";
|
||||
vendorHash = "sha256-phtM6ClEwszIE7TQVXJbRLvSk0uSbng6h/pQsjHmjGU=";
|
||||
|
||||
# skipping: end-to-end tests require a docker daemon
|
||||
postPatch = ''
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "gpu-viewer";
|
||||
version = "3.35";
|
||||
version = "4.00";
|
||||
pyproject = false;
|
||||
__structuredAttrs = true;
|
||||
|
||||
@@ -37,7 +37,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
||||
owner = "arunsivaramanneo";
|
||||
repo = "gpu-viewer";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-W8BPtHbOwLZ95bY6ZmAaKS87fh+gOWZIhxjWKqiavag=";
|
||||
hash = "sha256-zSPXOWdd962DvwqYiit9wGT6vDxvgkQz91852+h4d7Q=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
python3Packages.buildPythonApplication rec {
|
||||
__structuredAttrs = true;
|
||||
pname = "graphify";
|
||||
version = "0.9.48";
|
||||
version = "0.9.53";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Graphify-Labs";
|
||||
repo = "graphify";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-gcQ8isXZQu/VQkK74vAaOKnbNdsxiez+TSZdRUxEMiA=";
|
||||
hash = "sha256-1G8PuSxYM70nMf8glJARA9vVMI8Ue7zqfAxgXi18lPM=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -1,42 +1,86 @@
|
||||
From dc1b837925f7c2ee6663cf34bbd982e0b368d811 Mon Sep 17 00:00:00 2001
|
||||
From: hustlerone <nine-ball@tutanota.com>
|
||||
Date: Sun, 18 Jan 2026 11:57:36 +0100
|
||||
Subject: [PATCH] Add hidden menu entries
|
||||
|
||||
Merge conflicts manually resolved.
|
||||
|
||||
https://lists.gnu.org/archive/html/grub-devel/2016-04/msg00089.html
|
||||
https://marc.info/?l=grub-devel&m=146193404929072&w=2
|
||||
|
||||
Vendored in:
|
||||
https://build.opensuse.org/projects/openSUSE:Factory/packages/grub2/files/grub2-Add-hidden-menu-entries.patch?expand=1
|
||||
---
|
||||
grub-core/commands/blsuki.c | 4 ++--
|
||||
grub-core/commands/legacycfg.c | 4 ++--
|
||||
grub-core/commands/menuentry.c | 22 +++++++++++++++++-----
|
||||
grub-core/normal/menu.c | 30 ++++++++++++++++++++++++++----
|
||||
grub-core/normal/menu_text.c | 6 +++++-
|
||||
include/grub/menu.h | 2 ++
|
||||
include/grub/normal.h | 2 +-
|
||||
7 files changed, 55 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/grub-core/commands/blsuki.c b/grub-core/commands/blsuki.c
|
||||
index 4133d3111..26055f91f 100644
|
||||
--- a/grub-core/commands/blsuki.c
|
||||
+++ b/grub-core/commands/blsuki.c
|
||||
@@ -1022,7 +1022,7 @@ bls_create_entry (grub_blsuki_entry_t *entry)
|
||||
linux_cmd, initrd_cmd ? initrd_cmd : "",
|
||||
dt_cmd ? dt_cmd : "");
|
||||
|
||||
- grub_normal_add_menu_entry (argc, argv, classes, id, users, hotkey, NULL, src, 0, entry);
|
||||
+ grub_normal_add_menu_entry (argc, argv, classes, id, users, hotkey, NULL, src, 0, entry, 0);
|
||||
|
||||
finish:
|
||||
grub_free (linux_cmd);
|
||||
@@ -1088,7 +1088,7 @@ uki_create_entry (grub_blsuki_entry_t *entry)
|
||||
(options != NULL) ? " " : "",
|
||||
(options != NULL) ? options : "");
|
||||
|
||||
- grub_normal_add_menu_entry (1, argv, NULL, id, NULL, NULL, NULL, src, 0, entry);
|
||||
+ grub_normal_add_menu_entry (1, argv, NULL, id, NULL, NULL, NULL, src, 0, entry, 0);
|
||||
|
||||
finish:
|
||||
grub_free (argv);
|
||||
diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c
|
||||
index e9e9d94ef..54e08a1b4 100644
|
||||
index 7d9f9eb3c..bb5b7b3ad 100644
|
||||
--- a/grub-core/commands/legacycfg.c
|
||||
+++ b/grub-core/commands/legacycfg.c
|
||||
@@ -143,7 +143,7 @@ legacy_file (const char *filename)
|
||||
args[0] = oldname;
|
||||
grub_normal_add_menu_entry (1, args, NULL, NULL, "legacy",
|
||||
NULL, NULL,
|
||||
- entrysrc, 0);
|
||||
+ entrysrc, 0, 0);
|
||||
- entrysrc, 0, NULL);
|
||||
+ entrysrc, 0, NULL, 0);
|
||||
grub_free (args);
|
||||
entrysrc[0] = 0;
|
||||
grub_free (oldname);
|
||||
@@ -205,7 +205,7 @@ legacy_file (const char *filename)
|
||||
@@ -204,7 +204,7 @@ legacy_file (const char *filename)
|
||||
}
|
||||
args[0] = entryname;
|
||||
grub_normal_add_menu_entry (1, args, NULL, NULL, NULL,
|
||||
- NULL, NULL, entrysrc, 0);
|
||||
+ NULL, NULL, entrysrc, 0, 0);
|
||||
- NULL, NULL, entrysrc, 0, NULL);
|
||||
+ NULL, NULL, entrysrc, 0, NULL, 0);
|
||||
grub_free (args);
|
||||
}
|
||||
|
||||
diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c
|
||||
index 720e6d8ea..50632ccce 100644
|
||||
index 5e1318f17..288189b8d 100644
|
||||
--- a/grub-core/commands/menuentry.c
|
||||
+++ b/grub-core/commands/menuentry.c
|
||||
@@ -78,7 +78,7 @@ grub_normal_add_menu_entry (int argc, const char **args,
|
||||
char **classes, const char *id,
|
||||
const char *users, const char *hotkey,
|
||||
const char *prefix, const char *sourcecode,
|
||||
- int submenu)
|
||||
+ int submenu, int hidden)
|
||||
- int submenu, grub_blsuki_entry_t *blsuki)
|
||||
+ int submenu, grub_blsuki_entry_t *blsuki, int hidden)
|
||||
{
|
||||
int menu_hotkey = 0;
|
||||
char **menu_args = NULL;
|
||||
@@ -188,8 +188,11 @@ grub_normal_add_menu_entry (int argc, const char **args,
|
||||
(*last)->args = menu_args;
|
||||
@@ -189,8 +189,11 @@ grub_normal_add_menu_entry (int argc, const char **args,
|
||||
(*last)->sourcecode = menu_sourcecode;
|
||||
(*last)->submenu = submenu;
|
||||
(*last)->blsuki = blsuki;
|
||||
+ (*last)->hidden = hidden;
|
||||
+
|
||||
+ if (!hidden)
|
||||
@@ -46,27 +90,28 @@ index 720e6d8ea..50632ccce 100644
|
||||
return GRUB_ERR_NONE;
|
||||
|
||||
fail:
|
||||
@@ -286,7 +289,8 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
users,
|
||||
@@ -291,7 +294,8 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
ctxt->state[2].arg, 0,
|
||||
ctxt->state[3].arg,
|
||||
- ctxt->extcmd->cmd->name[0] == 's');
|
||||
+ ctxt->extcmd->cmd->name[0] == 's',
|
||||
ctxt->extcmd->cmd->name[0] == 's',
|
||||
- NULL);
|
||||
+ NULL,
|
||||
+ ctxt->extcmd->cmd->name[0] == 'h');
|
||||
|
||||
src = args[argc - 1];
|
||||
args[argc - 1] = NULL;
|
||||
@@ -303,7 +307,8 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
@@ -308,7 +312,9 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
ctxt->state[0].args, ctxt->state[4].arg,
|
||||
users,
|
||||
ctxt->state[2].arg, prefix, src + 1,
|
||||
- ctxt->extcmd->cmd->name[0] == 's');
|
||||
- ctxt->extcmd->cmd->name[0] == 's', NULL);
|
||||
+ ctxt->extcmd->cmd->name[0] == 's',
|
||||
+ NULL,
|
||||
+ ctxt->extcmd->cmd->name[0] == 'h');
|
||||
|
||||
src[len - 1] = ch;
|
||||
args[argc - 1] = src;
|
||||
@@ -311,7 +316,7 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
@@ -316,7 +322,7 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
return r;
|
||||
}
|
||||
|
||||
@@ -75,7 +120,7 @@ index 720e6d8ea..50632ccce 100644
|
||||
|
||||
void
|
||||
grub_menu_init (void)
|
||||
@@ -327,6 +332,12 @@ grub_menu_init (void)
|
||||
@@ -332,6 +338,12 @@ grub_menu_init (void)
|
||||
| GRUB_COMMAND_FLAG_EXTRACTOR,
|
||||
N_("BLOCK"), N_("Define a submenu."),
|
||||
options);
|
||||
@@ -89,10 +134,10 @@ index 720e6d8ea..50632ccce 100644
|
||||
|
||||
void
|
||||
diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c
|
||||
index 6a90e091f..4236f55bc 100644
|
||||
index b946c834d..483a3505c 100644
|
||||
--- a/grub-core/normal/menu.c
|
||||
+++ b/grub-core/normal/menu.c
|
||||
@@ -37,6 +37,8 @@
|
||||
@@ -38,6 +38,8 @@
|
||||
entry failing to boot. */
|
||||
#define DEFAULT_ENTRY_ERROR_DELAY_MS 2500
|
||||
|
||||
@@ -101,7 +146,7 @@ index 6a90e091f..4236f55bc 100644
|
||||
grub_err_t (*grub_gfxmenu_try_hook) (int entry, grub_menu_t menu,
|
||||
int nested) = NULL;
|
||||
|
||||
@@ -80,8 +82,20 @@ grub_menu_get_entry (grub_menu_t menu, int no)
|
||||
@@ -81,8 +83,20 @@ grub_menu_get_entry (grub_menu_t menu, int no)
|
||||
{
|
||||
grub_menu_entry_t e;
|
||||
|
||||
@@ -124,7 +169,7 @@ index 6a90e091f..4236f55bc 100644
|
||||
|
||||
return e;
|
||||
}
|
||||
@@ -93,10 +107,10 @@ get_entry_index_by_hotkey (grub_menu_t menu, int hotkey)
|
||||
@@ -94,10 +108,10 @@ get_entry_index_by_hotkey (grub_menu_t menu, int hotkey)
|
||||
grub_menu_entry_t entry;
|
||||
int i;
|
||||
|
||||
@@ -137,7 +182,7 @@ index 6a90e091f..4236f55bc 100644
|
||||
|
||||
return -1;
|
||||
}
|
||||
@@ -509,6 +523,10 @@ get_entry_number (grub_menu_t menu, const char *name)
|
||||
@@ -510,6 +524,10 @@ get_entry_number (grub_menu_t menu, const char *name)
|
||||
grub_menu_entry_t e = menu->entry_list;
|
||||
int i;
|
||||
|
||||
@@ -148,7 +193,7 @@ index 6a90e091f..4236f55bc 100644
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
|
||||
for (i = 0; e; i++)
|
||||
@@ -520,6 +538,10 @@ get_entry_number (grub_menu_t menu, const char *name)
|
||||
@@ -521,6 +539,10 @@ get_entry_number (grub_menu_t menu, const char *name)
|
||||
break;
|
||||
}
|
||||
e = e->next;
|
||||
@@ -160,10 +205,10 @@ index 6a90e091f..4236f55bc 100644
|
||||
|
||||
if (! e)
|
||||
diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c
|
||||
index b1321eb26..d2e46cac8 100644
|
||||
index 9c383e64a..e55bafa6c 100644
|
||||
--- a/grub-core/normal/menu_text.c
|
||||
+++ b/grub-core/normal/menu_text.c
|
||||
@@ -289,7 +289,11 @@ print_entries (grub_menu_t menu, const struct menu_viewer_data *data)
|
||||
@@ -292,7 +292,11 @@ print_entries (grub_menu_t menu, const struct menu_viewer_data *data)
|
||||
print_entry (data->geo.first_entry_y + i, data->offset == i,
|
||||
e, data);
|
||||
if (e)
|
||||
@@ -177,10 +222,10 @@ index b1321eb26..d2e46cac8 100644
|
||||
|
||||
grub_term_gotoxy (data->term,
|
||||
diff --git a/include/grub/menu.h b/include/grub/menu.h
|
||||
index ee2b5e910..eb8a86ba9 100644
|
||||
index 8d06e8400..f7a302081 100644
|
||||
--- a/include/grub/menu.h
|
||||
+++ b/include/grub/menu.h
|
||||
@@ -58,6 +58,8 @@ struct grub_menu_entry
|
||||
@@ -72,6 +72,8 @@ struct grub_menu_entry
|
||||
|
||||
int submenu;
|
||||
|
||||
@@ -188,17 +233,20 @@ index ee2b5e910..eb8a86ba9 100644
|
||||
+
|
||||
/* The next element. */
|
||||
struct grub_menu_entry *next;
|
||||
};
|
||||
|
||||
diff --git a/include/grub/normal.h b/include/grub/normal.h
|
||||
index 218cbabcc..bcb412466 100644
|
||||
index d0150e3c2..4c1fe8ec1 100644
|
||||
--- a/include/grub/normal.h
|
||||
+++ b/include/grub/normal.h
|
||||
@@ -145,7 +145,7 @@ grub_normal_add_menu_entry (int argc, const char **args, char **classes,
|
||||
const char *id,
|
||||
const char *users, const char *hotkey,
|
||||
const char *prefix, const char *sourcecode,
|
||||
- int submenu);
|
||||
+ int submenu, int hidden);
|
||||
- int submenu, grub_blsuki_entry_t *blsuki);
|
||||
+ int submenu, grub_blsuki_entry_t *blsuki, int hidden);
|
||||
|
||||
grub_err_t
|
||||
grub_normal_set_password (const char *user, const char *password);
|
||||
--
|
||||
2.51.2
|
||||
|
||||
|
||||
13
pkgs/by-name/gr/grub2/bootstrap-po-downloads.patch
Normal file
13
pkgs/by-name/gr/grub2/bootstrap-po-downloads.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/bootstrap b/bootstrap
|
||||
index dc9fb4383..5d0e90a92 100755
|
||||
--- a/bootstrap
|
||||
+++ b/bootstrap
|
||||
@@ -931,7 +931,7 @@ update_po_files() {
|
||||
# Usually contains *.s1 checksum files.
|
||||
ref_po_dir="$po_dir/.reference"
|
||||
|
||||
- test -d $ref_po_dir || mkdir $ref_po_dir || return
|
||||
+ test -d $ref_po_dir && return || mkdir $ref_po_dir
|
||||
download_po_files $ref_po_dir $domain \
|
||||
&& ls "$ref_po_dir"/*.po 2>/dev/null |
|
||||
sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
|
||||
@@ -1,12 +1,15 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
fetchgit,
|
||||
flex,
|
||||
bison,
|
||||
python3,
|
||||
autoconf,
|
||||
autoconf-archive,
|
||||
automake,
|
||||
autoreconfHook,
|
||||
libtool,
|
||||
bash,
|
||||
gettext,
|
||||
@@ -23,6 +26,7 @@
|
||||
buildPackages,
|
||||
nixosTests,
|
||||
fuse3, # only needed for grub-mount
|
||||
xz, # for xz compression support. Usually counterproductive, so don't try to force compression in your GRUB install.
|
||||
runtimeShell,
|
||||
zfs ? null,
|
||||
efiSupport ? false,
|
||||
@@ -30,7 +34,8 @@
|
||||
zfsSupport ? false,
|
||||
xenSupport ? false,
|
||||
xenPvhSupport ? false,
|
||||
kbdcompSupport ? false,
|
||||
corebootSupport ? false,
|
||||
kbdcompSupport ? corebootSupport,
|
||||
ckbcomp,
|
||||
}:
|
||||
|
||||
@@ -40,6 +45,11 @@ let
|
||||
x86_64-linux.target = "i386";
|
||||
};
|
||||
|
||||
corebootSystemsBuild = {
|
||||
i686-linux.target = "i386";
|
||||
x86_64-linux.target = "i386";
|
||||
};
|
||||
|
||||
efiSystemsBuild = {
|
||||
i686-linux.target = "i386";
|
||||
x86_64-linux.target = "x86_64";
|
||||
@@ -80,8 +90,8 @@ let
|
||||
inPCSystems = lib.any (system: stdenv.hostPlatform.system == system) (lib.attrNames pcSystems);
|
||||
|
||||
gnulib = fetchgit {
|
||||
url = "https://git.savannah.gnu.org/git/gnulib.git";
|
||||
# NOTE: keep in sync with bootstrap.conf!
|
||||
url = "https://https.git.savannah.gnu.org/git/gnulib.git";
|
||||
# NOTE: get $GNULIB_REVISION from bootstrap.conf!
|
||||
rev = "9f48fb992a3d7e96610c4ce8be969cff2d61a01b";
|
||||
hash = "sha256-mzbF66SNqcSlI+xmjpKpNMwzi13yEWoc1Fl7p4snTto=";
|
||||
};
|
||||
@@ -90,9 +100,12 @@ let
|
||||
# but those translations are not versioned/stable. For that reason
|
||||
# we take them from the nearest release tarball instead:
|
||||
locales = fetchzip {
|
||||
url = "https://ftp.gnu.org/gnu/grub/grub-2.12.tar.gz";
|
||||
hash = "sha256-IoRiJHNQ58y0UhCAD0CrpFiI8Mz1upzAtyh5K4Njh/w=";
|
||||
url = "mirror://gnu/grub/grub-${version}.tar.gz";
|
||||
hash = "sha256-NUlE6l8Ul3i1Si9mZgND6lnvFqc74EGptHV2iCtu+As=";
|
||||
};
|
||||
|
||||
# This is the variable that sets the GRUB release.
|
||||
version = "2.14";
|
||||
in
|
||||
|
||||
assert zfsSupport -> zfs != null;
|
||||
@@ -103,505 +116,81 @@ assert lib.asserts.assertMsg (
|
||||
ieee1275Support
|
||||
xenSupport
|
||||
xenPvhSupport
|
||||
corebootSupport
|
||||
]
|
||||
) <= 1 # (0 == pc)
|
||||
) "Only <= 1 of grub2's platform-related *Support options may be enabled at the same time";
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "grub";
|
||||
version = "2.12";
|
||||
inherit version;
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://git.savannah.gnu.org/git/grub.git";
|
||||
url = "https://gitlab.freedesktop.org/gnu-grub/grub.git";
|
||||
tag = "grub-${version}";
|
||||
hash = "sha256-lathsBb2f7urh8R86ihpTdwo3h1hAHnRiHd5gCLVpBc=";
|
||||
hash = "sha256-Gkpde5CeJOQ+0p5WGwXZ2P881jxrWkuFw3Fh4lul/so=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./fix-bash-completion.patch
|
||||
./add-hidden-menu-entries.patch
|
||||
patches =
|
||||
let
|
||||
grubPatch = commit: "https://gitlab.freedesktop.org/gnu-grub/grub/-/commit/${commit}.patch";
|
||||
in
|
||||
[
|
||||
./fix-bash-completion.patch
|
||||
./add-hidden-menu-entries.patch
|
||||
./bootstrap-po-downloads.patch
|
||||
|
||||
# https://lists.gnu.org/archive/html/grub-devel/2025-02/msg00024.html
|
||||
(fetchpatch {
|
||||
name = "01_implement_grub_strlcpy.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=ea703528a8581a2ea7e0bad424a70fdf0aec7d8f";
|
||||
hash = "sha256-MSMgu1vMG83HRImUUsTyA1YQaIhgEreGGPd+ZDWSI2I=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "02_CVE-2024-45781.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=c1a291b01f4f1dcd6a22b61f1c81a45a966d16ba";
|
||||
hash = "sha256-q8ErK+cQzaqwSuhLRFL3AfYBkpgJq1IQmadnlmlz2yw=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "03_CVE-2024-45782_CVE-2024-56737.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=417547c10410b714e43f08f74137c24015f8f4c3";
|
||||
hash = "sha256-mRinw27WZ2d1grzyzFGO18yXx72UVBM6Lf5cR8XJfs8=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "04_fs_tar_initialize_name_in_grub_cpio_find_file.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=2c8ac08c99466c0697f704242363fc687f492a0d";
|
||||
hash = "sha256-EMGF0B+Fw6tSmllWUJAp1ynzWk+w2C/XM1LmXSReHWg=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "05_CVE-2024-45780.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=0087bc6902182fe5cedce2d034c75a79cf6dd4f3";
|
||||
hash = "sha256-IlW5i4EJVoUYPu9/lb0LeytTpzltQuu5fpkFPQNIhls=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "06_fs_f2fs_grub_errno_mount_fails.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=563436258cde64da6b974880abff1bf0959f4da3";
|
||||
hash = "sha256-Iu0RPyB+pAnqMT+MTX+TrJbYJsvYPn7jbMgE1jcLh/Q=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "07_CVE-2024-45783.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=f7c070a2e28dfab7137db0739fb8db1dc02d8898";
|
||||
hash = "sha256-V1wh2dPeTazmad61jFtOjhq2MdoD+txPWY/AfwwyTZM=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "08_fs_iso9660_grub_errno_mount_fails.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=965db5970811d18069b34f28f5f31ddadde90a97";
|
||||
hash = "sha256-6eN1AvZwXkJOQVcjgymy/E7QiAxzL/d0W3KlAZRqUzI=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "09_fs_iso9660_fix_invalid_free.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=1443833a9535a5873f7de3798cf4d8389f366611";
|
||||
hash = "sha256-Gt5yMy5Vg9zrDggj3o/TLNt2vT9/6IuHg4Se2p8e8pI=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "10_fs_jfs_fix_oob_read_jfs_getent.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=66175696f3a385b14bdf1ebcda7755834bd2d5fb";
|
||||
hash = "sha256-ETbzbc5gvf55sTLjmJOXXC9VH3qcP1Gv5seR/U9NRiY=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "11_fs_jfs_fix_oob_read_caused_by_invalid_dir_slot_index.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=ab09fd0531f3523ac0ef833404526c98c08248f7";
|
||||
hash = "sha256-wE6niiIx4BdN800/Eegb6IbBRoMFpXq9kPvatwhWNXY=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "12_fs_jfs_use_full_40_bits_offset_and_address_for_data_extent.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=bd999310fe67f35a66de3bfa2836da91589d04ef";
|
||||
hash = "sha256-fbC4oTEIoGWJASzJI5RXfoanrMLTfjFOI51LCUU7Ctg=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "13_fs_jfs_inconsistent_signed_unsigned_types_usage.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=edd995a26ec98654d907a9436a296c2d82bc4b28";
|
||||
hash = "sha256-aa1G1vi4bPZejfKEqZokAZTzY9Ea2lyxTrP4drDV9tk=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "14_fs_ext2_fix_out-of-bounds_read_for_inline_extent.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=7e2f750f0a795c4d64ec7dc7591edac8da2e978c";
|
||||
hash = "sha256-PtPqZHMU2fy7btRRaaswLyHizplxnygCzDfcg5ievOQ=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "15_fs_ntfs_fix_out-of-bounds_read.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=aff26318783a135562b904ff09e2359893885732";
|
||||
hash = "sha256-znN6lkAB9aAhTGKR1038DzOz5nzuTp+7ylHVqRM7HeI=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "16_fs_ntfs_track_the_end_of_the_MFT_attribute_buffer.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=237a71184a32d1ef7732f5f49ed6a89c5fe1c99a";
|
||||
hash = "sha256-0I/g0qHkWY6PArPn1UaYRhCrrh9bHknADh34v5eSjjM=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "17_fs_ntfs_use_a_helper_function_to_access_attributes.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=048777bc29043403d077d41a81d0183767b8bc71";
|
||||
hash = "sha256-Mm49MSLqCq143r8ruLJm1QoyCoLtOlCBfqoAPwPlv8E=";
|
||||
})
|
||||
# Patch 18 (067b6d225d482280abad03944f04e30abcbdafa1) has been removed because it causes regressions
|
||||
# https://lists.gnu.org/archive/html/grub-devel/2025-03/msg00067.html
|
||||
(fetchpatch {
|
||||
name = "19_fs_xfs_fix_out-of-bounds_read.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=6ccc77b59d16578b10eaf8a4fe85c20b229f0d8a";
|
||||
hash = "sha256-FvTzFvfEi3oyxPC/dUHreyzzeVCskaUlYUjpKY/l0DE=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "20_fs_xfs_ensuring_failing_to_mount_sets_a_grub_errno.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=d1d6b7ea58aa5a80a4c4d0666b49460056c8ef0a";
|
||||
hash = "sha256-SLdXMmYHq/gRmWrjRrOu5ZYFod84EllUL6hk+gnr3kg=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "21_kern_file_ensure_file_data_is_set.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=a7910687294b29288ac649e71b47493c93294f17";
|
||||
hash = "sha256-DabZK9eSToEmSA9dEwtEN+URiVyS9qf6e2Y2UiMuy8Q=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "22_kern_file_implement_filesystem_reference_counting.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=16f196874fbe360a1b3c66064ec15adadf94c57b";
|
||||
excludes = [ "grub-core/fs/erofs.c" ]; # Does not exist on 2.12
|
||||
hash = "sha256-yGU//1tPaxi+xFKZrsbUAnvgFpwtrIMG+8cPbSud4+U=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "23_prerequisite_1_key_protector_add_key_protectors_framework.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=5d260302da672258444b01239803c8f4d753e3f3";
|
||||
hash = "sha256-5aFHzc5qXBNLEc6yzI17AH6J7EYogcXdLxk//1QgumY=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "23_prerequisite_2_disk_cryptodisk_allow_user_to_retry_failed_passphrase.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=386b59ddb42fa3f86ddfe557113b25c8fa16f88c";
|
||||
hash = "sha256-e1kGQB7wGWvEb2bY3xIpZxE1uzTt9JOKi05jXyUm+bI=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "23_prerequisite_3_cryptodisk_support_key_protectors.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=ad0c52784a375cecaa8715d7deadcf5d65baf173";
|
||||
hash = "sha256-+YIvUYA3fLiOFFsXDrQjqjWFluzLa7N1tv0lwq8BqCs=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "23_prerequisite_4_cryptodisk_fallback_to_passphrase.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=6abf8af3c54abc04c4ec71c75d10fcfbc190e181";
|
||||
hash = "sha256-eMu9rW4iJucDAsTQMJD1XE6dDIcUmn02cGqIaqBbO3o=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "23_prerequisite_5_cryptodisk_wipe_out_the_cached_keys_from_protectors.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=b35480b48e6f9506d8b7ad8a3b5206d29c24ea95";
|
||||
hash = "sha256-5L6Rr+X5Z+Ip91z8cpLcatDW1vyEoZa1icL2oMXPXuI=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "23_prerequisite_6_cli_lock_add_build_option_to_block_command_line_interface.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=bb65d81fe320e4b20d0a9b32232a7546eb275ecc";
|
||||
hash = "sha256-HxXgtvEhtaIjXbOcxJHNpD9/NVOv3uXPnue7cagEMu8=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "23_CVE-2024-49504.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=13febd78db3cd85dcba67d8ad03ad4d42815f11e";
|
||||
hash = "sha256-GejDL9IKbmbSUmp8F1NuvBcFAp2/W04jxmOatI5dKn8=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "24_disk_loopback_reference_tracking_for_the_loopback.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=67f70f70a36b6e87a65f928fe1e840a12eafb7ae";
|
||||
hash = "sha256-sWBnSF3rAuY1A/IIK1Pc+BqTvyK3j7+lLEhvImtBQMA=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "25_kern_disk_limit_recursion_depth.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=18212f0648b6de7d71d4c8f41eb4d8b78b3a299b";
|
||||
hash = "sha256-HiVzXUNs45Fxh4DSqO8wAxSBM7CaYU/bix0PVBcIHGw=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "26_kern_partition_limit_recursion_in_part_iterate.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=8a7103fddfd6664f41081f3bb88eebbf2871da2a";
|
||||
hash = "sha256-Nw1VFRVww1VSDSBkRrnTGeaA2PKCitugM12XH6X/2YI=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "27_script_execute_limit_the_recursion_depth.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=d8a937ccae5c6d86dc4375698afca5cefdcd01e1";
|
||||
hash = "sha256-YOAdPMZ2iBNMzIwAXFkkyTMKh4ptZUQ0J3v9EjnRlbo=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "28_net_unregister_net_default_ip_and_net_default_mac_variables_hooks_on_unload.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=a1dd8e59da26f1a9608381d3a1a6c0f465282b1d";
|
||||
hash = "sha256-7fqdkhFqLECzhz1OLavkHrE9ktDAEmx9ZxZayNr/Eo4=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "29_net_remove_variables_hooks_when_interface_is_unregisted.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=aa8b4d7facef7b75a2703274b1b9d4e0e734c401";
|
||||
hash = "sha256-m3VLDbJlwchV5meEpU4LJrDxBtA80qvYcVMJinHLnac=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "30_CVE-2025-0624.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=5eef88152833062a3f7e017535372d64ac8ef7e1";
|
||||
hash = "sha256-DvhzHnenAmO9SZpi4kU+0GhyKZB4q4xQYuNJgEhJmn0=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "31_net_tftp_fix_stack_buffer_overflow_in_tftp_open.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=0707accab1b9be5d3645d4700dde3f99209f9367";
|
||||
hash = "sha256-16NrpWFSE4jFT2uxmJg16jChw8HiGRTol25XQXNQ5l4=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "32_CVE-2024-45774.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=2c34af908ebf4856051ed29e46d88abd2b20387f";
|
||||
hash = "sha256-OWmF+fp2TmetQjV4EWMcESW8u52Okkb5C5IPLfczyv4=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "33_kern_dl_fix_for_an_integer_overflow_in_grub_dl_ref.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=500e5fdd82ca40412b0b73f5e5dda38e4a3af96d";
|
||||
hash = "sha256-FNqOWo+oZ4/1sCbTi2uaeKchUxwAKXtbzhScezm0yxk=";
|
||||
})
|
||||
# Patch 34 (https://git.savannah.gnu.org/cgit/grub.git/patch/?id=d72208423dcabf9eb4a3bcb17b6b31888396bd49)
|
||||
# is skipped, grub_dl_set_mem_attrs() does not exist on 2.12
|
||||
(fetchpatch {
|
||||
name = "35_kern_dl_check_for_the_SHF_INFO_LINK_flag_in_grub_dl_relocate_symbols.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=98ad84328dcabfa603dcf5bd217570aa6b4bdd99";
|
||||
hash = "sha256-Zi4Pj2NbodL0VhhO5MWhvErb8xmA7Li0ur0MxpgQjzg=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "36_CVE-2024-45775.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=05be856a8c3aae41f5df90cab7796ab7ee34b872";
|
||||
hash = "sha256-T6DO8iuImQTP7hPaCAHMtFnheQoCkZ6w+kfNolLPmrY=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "37_commands_ls_fix_NULL_dereference.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=0bf56bce47489c059e50e61a3db7f682d8c44b56";
|
||||
hash = "sha256-h5okwqv4ZFahP3ANUbsk1fiSV4pwEnxUExeBgQ4tiTI=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "38_CVE-2025-0622.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=2123c5bca7e21fbeb0263df4597ddd7054700726";
|
||||
hash = "sha256-tFE7VgImGZWDICyvHbrI1hqW6/XohgdTmk21MzljMGw=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "39_CVE-2025-0622.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=9c16197734ada8d0838407eebe081117799bfe67";
|
||||
hash = "sha256-tTeuEvadKbXVuY0m0dKtTr11Lpb3yQi4zk0bpwrMOeA=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "40_CVE-2025-0622.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=7580addfc8c94cedb0cdfd7a1fd65b539215e637";
|
||||
hash = "sha256-khRLpWqE7hzzoqssVkGFMjAv09T+uHn13Q9pCpogMms=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "41_CVE-2024-45776.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=09bd6eb58b0f71ec273916070fa1e2de16897a91";
|
||||
hash = "sha256-yrl/6XUdKQg/MLe8KFuFoRRbQSyOhDmyvnWBV+sr3EY=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "42_CVE-2024-45777.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=b970a5ed967816bbca8225994cd0ee2557bad515";
|
||||
hash = "sha256-Vl5Emw3O3Ba2hD1GCWune4PGduDDPO0gM5u+zx/OwKo=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "43_CVE-2025-0690.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=dad8f502974ed9ad0a70ae6820d17b4b142558fc";
|
||||
hash = "sha256-DeWOncndX2VM8w1lb5fd5wHAZrI+ChB5Pj9XbUIfDWY=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "44_commands_test_stack_overflow_due_to_unlimited_recursion_depth.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=c68b7d23628a19da67ebe2e06f84165ee04961af";
|
||||
hash = "sha256-aputM9KqkB/cK8hBiU9VXbu0LpLNlNCMVIeE9h2pMgY=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "45_CVE-2025-1118.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=34824806ac6302f91e8cabaa41308eaced25725f";
|
||||
hash = "sha256-PKQs+fCwj4a9p4hbMqAT3tFNoAOw4xnbKmCwjPUgEOc=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "46_commands_memrw_disable_memory_reading_in_lockdown_mode.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=340e4d058f584534f4b90b7dbea2b64a9f8c418c";
|
||||
hash = "sha256-NiMIUnfRreDBw+k4yxUzoRNMFL8pkJhVtkINVgmv5XA=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "47_commands_hexdump_disable_memory_reading_in_lockdown_mode.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=5f31164aed51f498957cdd6ed733ec71a8592c99";
|
||||
hash = "sha256-NA7QjxZ9FP+WwiOveqLkbZqsF7hULIyaVS3gNaSUXJE=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "48_CVE-2024-45778_CVE-2024-45779.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=26db6605036bd9e5b16d9068a8cc75be63b8b630";
|
||||
hash = "sha256-1+ImwkF/qsejWs2lpyO6xbcqVo2NJGv32gjrP8mEPnI=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "49_CVE-2025-0677_CVE-2025-0684_CVE-2025-0685_CVE-2025-0686_CVE-2025-0689.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=c4bc55da28543d2522a939ba4ee0acde45f2fa74";
|
||||
hash = "sha256-qrlErSImMX8eXJHkXjOe5GZ6lWOya5SVpNoiqyEM1lE=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "50_disk_use_safe_math_macros_to_prevent_overflows.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=c407724dad6c3e2fc1571e57adbda71cc03f82aa";
|
||||
hash = "sha256-kkAjxXvCdzwqh+oWtEF3qSPiUX9cGWO6eSFVeo7WJzQ=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "51_disk_prevent_overflows_when_allocating_memory_for_arrays.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=d8151f98331ee4d15fcca59edffa59246d8fc15f";
|
||||
hash = "sha256-2U+gMLigOCCg3P1GB615xQ0B9PDA6j92tt1ba3Tqg+E=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "52_disk_check_if_returned_pointer_for_allocated_memory_is_NULL.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=33bd6b5ac5c77b346769ab5284262f94e695e464";
|
||||
hash = "sha256-+BaJRskWP/YVEdvIxMvEydjQx2LpLlGphRtZjiOUxJ0=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "53_disk_ieee1275_ofdisk_call_grub_ieee1275_close_when_grub_malloc_fails.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=fbaddcca541805c333f0fc792b82772594e73753";
|
||||
hash = "sha256-9sGA41HlB/8rtT/fMfkDo4ZJMXBSr+EyN92l/0gDfl4=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "54_fs_use_safe_math_macros_to_prevent_overflows.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=6608163b08a7a8be4b0ab2a5cd4593bba07fe2b7";
|
||||
excludes = [ "grub-core/fs/erofs.c" ]; # Does not exist on 2.12
|
||||
hash = "sha256-mW4MH5VH5pDxCaFhNh/4mEcYloga56p8vCi7X4kSaek=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "55_CVE-2025-0678_CVE-2025-1125.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=84bc0a9a68835952ae69165c11709811dae7634e";
|
||||
hash = "sha256-rCliqM2+k7rTGNpdHFkg3pHvuISjoG0MQr6/8lIvwK4=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "56_fs_prevent_overflows_when_assigning_returned_values_from_read_number.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=cde9f7f338f8f5771777f0e7dfc423ddf952ad31";
|
||||
hash = "sha256-dN3HJXNIYtaUZL0LhLabC4VKK6CVC8km9UTw/ln/6ys=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "57_fs_zfs_use_safe_math_macros_to_prevent_overflows.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=88e491a0f744c6b19b6d4caa300a576ba56db7c9";
|
||||
hash = "sha256-taSuKyCf9+TiQZcF26yMWpDDQqCfTdRuZTqB9aEz3aA=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "58_fs_zfs_prevent_overflows_when_allocating_memory_for_arrays.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=7f38e32c7ebeaebb79e2c71e3c7d5ea367d3a39c";
|
||||
hash = "sha256-E5VmP7I4TAEXxTz3j7mi/uIr9kOSzMoPHAYAbyu56Xk=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "59_fs_zfs_check_if_returned_pointer_for_allocated_memory_is_NULL.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=13065f69dae0eeb60813809026de5bd021051892";
|
||||
hash = "sha256-1W//rHUspDS+utdNc069J8lX1ONfoBKiJYnUt46C/D0=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "60_fs_zfs_add_missing_NULL_check_after_grub_strdup_call.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=dd6a4c8d10e02ca5056681e75795041a343636e4";
|
||||
hash = "sha256-iFLEkz5G6aQ8FXGuY7/wgN4d4o0+sUxWMKYIFcQ/H+o=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "61_net_use_safe_math_macros_to_prevent_overflows.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=4beeff8a31c4fb4071d2225533cfa316b5a58391";
|
||||
hash = "sha256-/gs5ZhplQ1h7PWw0p+b5+0OxmRcvDRKWHj39ezhivcg=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "62_net_prevent_overflows_when_allocating_memory_for_arrays.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=dee2c14fd66bc497cdc74c69fde8c9b84637c8eb";
|
||||
hash = "sha256-cO02tCGEeQhQF0TmgtNOgUwRLnNgmxhEefo1gtSlFOk=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "63_net_check_if_returned_pointer_for_allocated_memory_is_NULL.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=1c06ec900591d1fab6fbacf80dc010541d0a5ec8";
|
||||
hash = "sha256-oSRhWWVraitoVDqGlFOVzdCkaNqFGOHLjJu75CSc388=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "64_fs_sfs_check_if_allocated_memory_is_NULL.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=e3c578a56f9294e286b6028ca7c1def997a17b15";
|
||||
hash = "sha256-7tvFbmjWmWmmRykQjMvZV6IYlhSS8oNR7YfaO5XXAfU=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "65_script_execute_fix_potential_underflow_and_NULL.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=d13b6e8ebd10b4eb16698a002aa40258cf6e6f0e";
|
||||
hash = "sha256-paMWaAIImzxtufUrVF5v4T4KnlDAJIPhdaHznu5CyZ8=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "66_osdep_unix_getroot_fix_potential_underflow.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=66733f7c7dae889861ea3ef3ec0710811486019e";
|
||||
hash = "sha256-/14HC1kcW7Sy9WfJQFfC+YnvS/GNTMP+Uy6Dxd3zkwc=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "67_misc_ensure_consistent_overflow_error_messages.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=f8795cde217e21539c2f236bcbb1a4bf521086b3";
|
||||
hash = "sha256-4X7wr1Tg16xDE9FO6NTlgkfLV5zFKmajeaOspIqcCuI=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "68_bus_usb_ehci_define_GRUB_EHCI_TOGGLE_as_grub_uint32_t.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=9907d9c2723304b42cf6da74f1cc6c4601391956";
|
||||
hash = "sha256-D8xaI8g7ffGGmZqqeS8wxWIFLUWUBfmHwMVOHkYTc2I=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "69_normal_menu_use_safe_math_to_avoid_an_integer_overflow.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=5b36a5210e21bee2624f8acc36aefd8f10266adb";
|
||||
hash = "sha256-UourmM0Zlaj4o+SnYi5AtjfNujDOt+2ez2XH/uWyiaM=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "70_kern_partition_add_sanity_check_after_grub_strtoul_call.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=8e6e87e7923ca2ae880021cb42a35cc9bb4c8fe2";
|
||||
hash = "sha256-4keMUu6ZDKmuSQlFnldV15dDGUibsnSvoEWhLsqWieI=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "71_kern_misc_add_sanity_check_after_grub_strtoul_call.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=a8d6b06331a75d75b46f3dd6cc6fcd40dcf604b7";
|
||||
hash = "sha256-2Mpe1sqyuoUPyMAKGZTNzG/ig3G3K8w0gia7lc508Rg=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "72_loader_i386_linux_cast_left_shift_to_grub_uint32_t.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=490a6ab71cebd96fae7a1ceb9067484f5ccbec2a";
|
||||
hash = "sha256-e49OC1EBaX0/nWTTXT5xE5apTJPQV0myP5Ohxn9Wwa8=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "73_loader_i386_bsd_use_safe_math_to_avoid_underflow.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=4dc6166571645780c459dde2cdc1b001a5ec844c";
|
||||
hash = "sha256-e8X+oBvejcFNOY1Tp/f6QqCDwrgK7f9u1F8SdO/dhy4=";
|
||||
})
|
||||
(fetchpatch {
|
||||
# Fixes 7e2f750f0a (security patch 14/73)
|
||||
name = "fs_ext2_rework_out-of-bounds_read_for_inline_and_external_extents.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=348cd416a3574348f4255bf2b04ec95938990997";
|
||||
hash = "sha256-WBLYQxv8si2tvdPAvbm0/4NNqYWBMJpFV4GC0HhN/kE=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "CVE-2025-4382.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=c448f511e74cb7c776b314fcb7943f98d3f22b6d";
|
||||
hash = "sha256-64gMhCEW0aYHt46crX/qN/3Hj8MgvWLazgQlVXqe8LE=";
|
||||
})
|
||||
# https://lists.gnu.org/archive/html/grub-devel/2025-11/msg00155.html
|
||||
(fetchpatch {
|
||||
name = "1_commands_test_fix_error_in_recursion_depth_calculation.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=cc9d621dd06bfa12eac511b37b4ceda5bd2f8246";
|
||||
hash = "sha256-GpLpqTKr2ke/YaxnZIO1Kh9wpde44h2mvwcODcAL/nk=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "2_CVE-2025-54771.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=c4fb4cbc941981894a00ba8e75d634a41967a27f";
|
||||
hash = "sha256-yWowlAMVXdfIyC+BiB00IZvTwIybvaPhxAyz0MPjQuY=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "3_CVE-2025-54770.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=10e58a14db20e17d1b6a39abe38df01fef98e29d";
|
||||
hash = "sha256-1ROc5n7sApw7aGr+y8gygFqVkifLdgOD3RPaW9b8aQQ=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "4_CVE-2025-61662.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=8ed78fd9f0852ab218cc1f991c38e5a229e43807";
|
||||
hash = "sha256-mG+vcZHbF4duY2YoYAzPBQRHfWvp5Fvgtm0XBk7JqqM=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "5_CVE-2025-61663_CVE-2025-61664.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=05d3698b8b03eccc49e53491bbd75dba15f40917";
|
||||
hash = "sha256-kgtXhZmAQpassEf8+RzqkghAzLrCcRoRMMnfunF/0J8=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "6_tests_lib_functional_test_unregister_commands_on_module_unload.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=9df1e693e70c5a274b6d60dc76efe2694b89c2fc";
|
||||
hash = "sha256-UzyYkpP7vivx2jzxi7BMP9h9OB2yraswrMW4g9UWsbI=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "7_CVE-2025-61661.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=549a9cc372fd0b96a4ccdfad0e12140476cc62a3";
|
||||
hash = "sha256-2mlDoVXY7Upwx4QBeAMOHUtoUlyx1MDDmabnrwK1gEY=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "8_commands_usbtest_ensure_string_length_is_sufficient_in_usb_string_processing.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=7debdce1e98907e65223a4b4c53a41345ac45e53";
|
||||
hash = "sha256-2ALvrmwxvpjQYjGNrQ0gyGotpk0kgmYlJXMF1xXrnEw=";
|
||||
})
|
||||
# Required to apply the GCC-15 patch
|
||||
(fetchpatch {
|
||||
name = "gnulib_Add_patch_to_allow_GRUB_w_GCC-15_compile_0_1.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=bba7dd7363402157034e9c94ee3d9ea82e37861d";
|
||||
hash = "sha256-KO9rE/9xRkIGi/Y6jv1gVPiAJZUejwaUW6kIWthPUhw=";
|
||||
})
|
||||
# Required to apply the GCC-11 patch
|
||||
(fetchpatch {
|
||||
name = "gnulib_Add_patch_to_allow_GRUB_w_GCC-15_compile_0_2.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=db506b3b83640ab166a782e1ca47c47836afddcd";
|
||||
hash = "sha256-4ucCu+9OZ8NoicLF9hCgUpX4xgJk4Gzu6F3P4zl9J3U=";
|
||||
})
|
||||
# Required to build grub 2.12 with GCC 15
|
||||
(fetchpatch {
|
||||
name = "gnulib_Add_patch_to_allow_GRUB_w_GCC-15_compile_1_2.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=ac1512b872af8567b408518a7efa01607a0219ae";
|
||||
hash = "sha256-deyp6Yatlgv86bYMt7WcWhKg8J6StDPUEy4UPHqJYIc=";
|
||||
})
|
||||
# Required to build grub2_efi with GCC 16, or fails with "error: 'regparm'
|
||||
# attribute ignored [-Werror=attributes]"
|
||||
(fetchpatch {
|
||||
name = "gcc16_make_regparm_attribute_more_conditional.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=9922ed133c2c754ec9f37198da2b3e3e8a4fd5ff";
|
||||
hash = "sha256-V2vffDxL/qQ14YN5scc3CFPBFBWvkh57dc5/hWd/6F4=";
|
||||
})
|
||||
];
|
||||
/*
|
||||
Fix parallel `msgmerge` race on de.po.
|
||||
See https://gitlab.freedesktop.org/gnu-grub/grub/-/work_items/18
|
||||
See https://github.com/NixOS/nixpkgs/pull/248747#issuecomment-1676301670
|
||||
*/
|
||||
(fetchpatch {
|
||||
name = "02_fix_msmerge.patch";
|
||||
url = grubPatch "c2a215245e2e7d61da4f41945222bd761679ae11";
|
||||
hash = "sha256-vBCDej/5DVX1NQMR05kNunxbmfyKywyYQtu4tg3Q2Cs=";
|
||||
})
|
||||
|
||||
postPatch =
|
||||
if kbdcompSupport then
|
||||
''
|
||||
sed -i util/grub-kbdcomp.in -e 's@\bckbcomp\b@${ckbcomp}/bin/ckbcomp@'
|
||||
''
|
||||
else
|
||||
''
|
||||
echo '#! ${runtimeShell}' > util/grub-kbdcomp.in
|
||||
echo 'echo "Compile grub2 with { kbdcompSupport = true; } to enable support for this command."' >> util/grub-kbdcomp.in
|
||||
'';
|
||||
/*
|
||||
The commit that we're reverting below breaks the `kernel.img` payload that's generated at runtime.
|
||||
|
||||
If we don't do this, we can't install GRUB.
|
||||
*/
|
||||
(fetchpatch {
|
||||
name = "01_fix_kernel-img_load_offset.patch";
|
||||
url = grubPatch "1dc2986c7e8480d955f87d276d31400116a21fac";
|
||||
hash = "sha256-T1V7Rklc7RNsKTwk2gLoWHxoXUlCM0/mxcnymqUcyRg=";
|
||||
})
|
||||
|
||||
# Required to build grub2_efi with GCC 16, or fails with "error: 'regparm' attribute ignored [-Werror=attributes]"
|
||||
(fetchpatch {
|
||||
name = "gcc16_make_regparm_attribute_more_conditional.patch";
|
||||
url = grubPatch "9922ed133c2c754ec9f37198da2b3e3e8a4fd5ff";
|
||||
hash = "sha256-V2vffDxL/qQ14YN5scc3CFPBFBWvkh57dc5/hWd/6F4=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
${
|
||||
if kbdcompSupport then
|
||||
''
|
||||
sed -i util/grub-kbdcomp.in -e 's@\bckbcomp\b@${ckbcomp}/bin/ckbcomp@'
|
||||
''
|
||||
else
|
||||
''
|
||||
echo '#! ${runtimeShell}' > util/grub-kbdcomp.in
|
||||
echo 'echo "Compile grub2 with { kbdcompSupport = true; } to enable support for this command."' >> util/grub-kbdcomp.in
|
||||
''
|
||||
}
|
||||
|
||||
GNULIB_REVISION=$(. bootstrap.conf; echo $GNULIB_REVISION)
|
||||
if [ "$GNULIB_REVISION" != ${gnulib.rev} ]; then
|
||||
echo "This version of GRUB requires a different gnulib revision!"
|
||||
echo "We have: ${gnulib.rev}"
|
||||
echo "GRUB needs: $GNULIB_REVISION"
|
||||
exit 1
|
||||
fi
|
||||
'';
|
||||
|
||||
depsBuildBuild = [
|
||||
buildPackages.stdenv.cc
|
||||
@@ -615,6 +204,7 @@ stdenv.mkDerivation rec {
|
||||
gettext
|
||||
freetype
|
||||
autoconf
|
||||
autoconf-archive
|
||||
automake
|
||||
help2man
|
||||
];
|
||||
@@ -624,6 +214,7 @@ stdenv.mkDerivation rec {
|
||||
freetype
|
||||
lvm2
|
||||
fuse3
|
||||
xz
|
||||
libtool
|
||||
bash
|
||||
]
|
||||
@@ -637,36 +228,31 @@ stdenv.mkDerivation rec {
|
||||
separateDebugInfo = !xenSupport;
|
||||
|
||||
preConfigure = ''
|
||||
for i in "tests/util/"*.in
|
||||
do
|
||||
sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g'
|
||||
done
|
||||
# Trust me, it's NEVER missing.
|
||||
substituteInPlace configure.ac --replace-fail 'm4_ifndef([AX_CHECK_LINK_FLAG], [m4_fatal([autoconf-archive is missing. You must install it to generate the configure script.])])' ' '
|
||||
|
||||
# Apparently, the QEMU executable is no longer called
|
||||
# `qemu-system-i386', even on i386.
|
||||
#
|
||||
# In addition, use `-nodefaults' to avoid errors like:
|
||||
#
|
||||
# chardev: opening backend "stdio" failed
|
||||
# qemu: could not open serial device 'stdio': Invalid argument
|
||||
#
|
||||
# See <http://www.mail-archive.com/qemu-devel@nongnu.org/msg22775.html>.
|
||||
sed -i "tests/util/grub-shell.in" \
|
||||
-e's/qemu-system-i386/qemu-system-x86_64 -nodefaults/g'
|
||||
for i in "tests/util/"*.in
|
||||
do
|
||||
sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g'
|
||||
done
|
||||
|
||||
unset CPP # setting CPP intereferes with dependency calculation
|
||||
# Apparently, the QEMU executable is no longer called
|
||||
# `qemu-system-i386', even on i386.
|
||||
#
|
||||
# In addition, use `-nodefaults' to avoid errors like:
|
||||
#
|
||||
# chardev: opening backend "stdio" failed
|
||||
# qemu: could not open serial device 'stdio': Invalid argument
|
||||
#
|
||||
# See <http://www.mail-archive.com/qemu-devel@nongnu.org/msg22775.html>.
|
||||
sed -i "tests/util/grub-shell.in" \
|
||||
-e's/qemu-system-i386/qemu-system-x86_64 -nodefaults/g'
|
||||
|
||||
patchShebangs .
|
||||
|
||||
GNULIB_REVISION=$(. bootstrap.conf; echo $GNULIB_REVISION)
|
||||
if [ "$GNULIB_REVISION" != ${gnulib.rev} ]; then
|
||||
echo "This version of GRUB requires a different gnulib revision!"
|
||||
echo "We have: ${gnulib.rev}"
|
||||
echo "GRUB needs: $GNULIB_REVISION"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp -f --no-preserve=mode ${locales}/po/LINGUAS ${locales}/po/*.po po
|
||||
mkdir po/.reference
|
||||
cp -f --no-preserve=mode ${locales}/po/*.po po/.reference
|
||||
|
||||
./bootstrap --no-git --gnulib-srcdir=${gnulib}
|
||||
|
||||
@@ -679,13 +265,6 @@ stdenv.mkDerivation rec {
|
||||
)
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
# make sure .po files are up to date to workaround
|
||||
# parallel `msgmerge --update` on autogenerated .po files:
|
||||
# https://github.com/NixOS/nixpkgs/pull/248747#issuecomment-1676301670
|
||||
make dist
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-grub-mount" # dep of os-prober
|
||||
]
|
||||
@@ -718,6 +297,11 @@ stdenv.mkDerivation rec {
|
||||
++ lib.optionals xenPvhSupport [
|
||||
"--with-platform=xen_pvh"
|
||||
"--target=${xenPvhSystemsBuild.${stdenv.hostPlatform.system}.target}"
|
||||
]
|
||||
++ lib.optionals corebootSupport [
|
||||
"--with-platform=coreboot"
|
||||
"--target=${corebootSystemsBuild.${stdenv.hostPlatform.system}.target}"
|
||||
"--enable-boot-time" # Log boot times. Might be useful for debugging loading issues.
|
||||
];
|
||||
|
||||
# save target that grub is compiled for
|
||||
@@ -726,6 +310,8 @@ stdenv.mkDerivation rec {
|
||||
"${efiSystemsInstall.${stdenv.hostPlatform.system}.target}-efi"
|
||||
else if ieee1275Support then
|
||||
"${ieee1275SystemsBuild.${stdenv.hostPlatform.system}.target}-ieee1275"
|
||||
else if corebootSupport then
|
||||
"${corebootSystemsBuild.${stdenv.hostPlatform.system}.target}-coreboot"
|
||||
else
|
||||
lib.optionalString inPCSystems "${pcSystems.${stdenv.hostPlatform.system}.target}-pc";
|
||||
|
||||
@@ -733,11 +319,10 @@ stdenv.mkDerivation rec {
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postInstall = ''
|
||||
# Avoid a runtime reference to gcc
|
||||
# We have to do this or else closure size balloons up
|
||||
|
||||
patchShebangs $out/lib/grub/*/modinfo.sh
|
||||
sed -i $out/lib/grub/*/modinfo.sh -e "/grub_target_cppflags=/ s|'.*'|' '|"
|
||||
# just adding bash to buildInputs wasn't enough to fix the shebang
|
||||
substituteInPlace $out/lib/grub/*/modinfo.sh \
|
||||
--replace ${buildPackages.bash} "/usr/bin/bash"
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
@@ -775,6 +360,8 @@ stdenv.mkDerivation rec {
|
||||
lib.attrNames xenSystemsBuild
|
||||
else if xenPvhSupport then
|
||||
lib.attrNames xenPvhSystemsBuild
|
||||
else if corebootSupport then
|
||||
lib.attrNames corebootSystemsBuild
|
||||
else
|
||||
lib.platforms.gnu ++ lib.platforms.linux;
|
||||
|
||||
|
||||
@@ -101,5 +101,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"i686-linux"
|
||||
];
|
||||
mainProgram = "hakuneko";
|
||||
knownVulnerabilities = [
|
||||
"Uses Electron 6.1.7, which was EOL on February 25, 2020, with many known CVEs"
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -8,13 +8,16 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "hash_extender";
|
||||
version = "unstable-2020-03-24";
|
||||
version = "0-unstable-2020-03-24";
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "iagox86";
|
||||
repo = "hash_extender";
|
||||
rev = "cb8aaee49f93e9c0d2f03eb3cafb429c9eed723d";
|
||||
sha256 = "1fj118566hr1wv03az2w0iqknazsqqkak0mvlcvwpgr6midjqi9b";
|
||||
hash = "sha256-K0UsW6wmv8s3o7uCqSbG+is7cQRcfDXA5iFDYwoKQbo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -79,5 +79,8 @@ stdenv.mkDerivation rec {
|
||||
wucke13
|
||||
];
|
||||
platforms = lib.platforms.linux;
|
||||
knownVulnerabilities = [
|
||||
"Uses Electron 38.7.2, EOL on 28-Jan-2026, with several known CVEs."
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "jawiki-all-titles-in-ns0";
|
||||
version = "0-unstable-2026-08-01";
|
||||
version = "0-unstable-2026-09-01";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "musjj";
|
||||
repo = "jawiki-archive";
|
||||
rev = "9d043ec108e2bd63a0f5971826e14b9888d18399";
|
||||
hash = "sha256-rCPD/Y82dvAiCVt2XmX1WwcujIpacCU/Pcyn4zUWg0I=";
|
||||
rev = "5c0d3d609a19361e9ebbe24702da11c8285e278d";
|
||||
hash = "sha256-D4dqdc0xeKPcy0MmfKcK6GEngQOmLg/2H6TuWGyS0i8=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -76,6 +76,9 @@ let
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ sikmir ];
|
||||
platforms = builtins.attrNames srcs;
|
||||
knownVulnerabilities = [
|
||||
"Uses Electron 12, EOL on November 16 2012. Has many known CVEs"
|
||||
];
|
||||
};
|
||||
in
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
|
||||
@@ -163,5 +163,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
license = lib.licenses.bsd3;
|
||||
knownVulnerabilities = [
|
||||
"Uses Electron 28, EOL on 05 Dec 2023. Has many known CVEs"
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lcrq";
|
||||
version = "0.3.1";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchFromCodeberg {
|
||||
owner = "librecast";
|
||||
repo = "lcrq";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-hNH5SdvKhNPUJWs7vpPECcBsRyNdHQF+Ot3LmyX2V3c=";
|
||||
hash = "sha256-1kKWg+GN+WrYx7RTjTLqfGt9qcqeh9vc/TyfZMKsH7A=";
|
||||
};
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "4.5.0";
|
||||
version = "4.5.1";
|
||||
pname = "libdigidocpp";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-eid";
|
||||
repo = "libdigidocpp";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-/RCRYF3G7/0J6oHT4mfapI4tlYLdWlQ2HTVqJGuDm3A=";
|
||||
hash = "sha256-LT2JQwrliec3/tttu0SehhOnO+IL+IOLyk9L1tLsuuw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -96,8 +96,8 @@ stdenv.mkDerivation {
|
||||
inherit binaryName;
|
||||
applicationName = "LibreWolf";
|
||||
libName = "librewolf-bin-${version}";
|
||||
ffmpegSupport = true;
|
||||
gssSupport = true;
|
||||
withFFmpeg = true;
|
||||
withGSSAPI = true;
|
||||
gtk3 = gtk3;
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
|
||||
@@ -15,8 +15,6 @@ in
|
||||
binaryName = "librewolf";
|
||||
version = librewolf-src.packageVersion;
|
||||
src = librewolf-src.firefox;
|
||||
requireSigning = false;
|
||||
allowAddonSideload = true;
|
||||
branding = "browser/branding/librewolf";
|
||||
inherit (librewolf-src)
|
||||
extraConfigureFlags
|
||||
@@ -52,7 +50,10 @@ in
|
||||
};
|
||||
}).override
|
||||
{
|
||||
crashreporterSupport = false;
|
||||
enableAddonSigning = false;
|
||||
enableAddonSideload = true;
|
||||
|
||||
enableCrashReporter = false;
|
||||
# This will set `MOZILLA_OFFICIAL=1`, which is set by the mozconfig upstream, but has to
|
||||
# be set manually in our case.
|
||||
# This will not override the branding as `branding` is already set to the official
|
||||
|
||||
@@ -38,13 +38,13 @@ assert enableTools -> enableAudio && enableEmulation && enableLibplayer;
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libvgm";
|
||||
version = "0-unstable-2026-08-18";
|
||||
version = "0-unstable-2026-08-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ValleyBell";
|
||||
repo = "libvgm";
|
||||
rev = "d4a07d0111527bf5130d0814505a1243136f3962";
|
||||
hash = "sha256-t0/7uorfT+nusRGOv58XNXwZruwyKld7IC+l1q6Ewn8=";
|
||||
rev = "e41ca80220cbcbaac0e7d77bf57c689a395c5f97";
|
||||
hash = "sha256-r2bE8cmSxDab4kOu/8KJHqcICKTmv2uSMvIOaOHuaFc=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -23,16 +23,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "lnd";
|
||||
version = "0.21.2-beta";
|
||||
version = "0.21.3-beta";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lightningnetwork";
|
||||
repo = "lnd";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-8HSKntW0cLkJi4You8gJgXaUoQoevl2zY+mji3fprJI=";
|
||||
hash = "sha256-sz0BSf6QnxGQxLw/8fPNsg9/v742JNMCs+lTWa6lPD0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-YdrgmzTbxrsW/smmxFBiHQ1jB+cxNgNxPAsrPPS61AU=";
|
||||
vendorHash = "sha256-/TKQLgVCgBF6DLnaXUJCVvOmOXZ3sJUGbyKQGsBi1dE=";
|
||||
|
||||
subPackages = [
|
||||
"cmd/lncli"
|
||||
@@ -48,7 +48,6 @@ buildGoModule (finalAttrs: {
|
||||
homepage = "https://github.com/lightningnetwork/lnd";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [
|
||||
bleetube
|
||||
cypherpunk2140
|
||||
prusnak
|
||||
];
|
||||
|
||||
@@ -11,17 +11,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "mago";
|
||||
version = "1.47.4";
|
||||
version = "1.47.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "carthage-software";
|
||||
repo = "mago";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-Qi1Bz5u/ZDupJz/9ueAwCnJ1hUWIpx1B32dGzcp87Fo=";
|
||||
hash = "sha256-IUz1BrwJnx+VXq89YbuN6kR7CzCZzkTOG1pQQ9+NpA4=";
|
||||
forceFetchGit = true; # Does not download all files otherwise
|
||||
};
|
||||
|
||||
cargoHash = "sha256-iw9ipn86SjXCdmC5W2naJvaSpYCYb6uNPkKVtA/ZMd4=";
|
||||
cargoHash = "sha256-r9YgTFIBa3HoKEpDH3SLqmXLLd5HNPCznf/mo1si2rw=";
|
||||
|
||||
env = {
|
||||
# Get openssl-sys to use pkg-config
|
||||
|
||||
@@ -11,12 +11,12 @@ telegram-desktop.override {
|
||||
unwrapped = telegram-desktop.unwrapped.overrideAttrs (
|
||||
finalAttrs: previousAttrs: {
|
||||
pname = "materialgram-unwrapped";
|
||||
version = "6.7.7.1";
|
||||
version = "7.0.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kukuruzka165";
|
||||
repo = "materialgram";
|
||||
hash = "sha256-Cy0ooQZOhfE+QBaRDblKXhmqYsKJ0TfeHsfJaVLVn8o=";
|
||||
hash = "sha256-OE7TbxFEYzTM2IB7HMokR3a+tsrg4n4cbHmRXPITykI=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "matrix-alertmanager-receiver";
|
||||
version = "2026.8.5";
|
||||
version = "2026.8.26";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "metio";
|
||||
repo = "matrix-alertmanager-receiver";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-0Kh446DWt9UcAuFF0DjMxlNCb+kZOCHs+oCG+BPgsi8=";
|
||||
hash = "sha256-Qlg3IvfTQ0lzPN+m4usRT5SW4IFWXkvG4PRGIhwukcs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-+6qW0W2cSTMOPJznhGy8sAH8O1GucrwVL/uRj8qUYLQ=";
|
||||
vendorHash = "sha256-AJ5st9AHf2laZI1hdGa0oFsPA8ulSSUFnSyeNttqem0=";
|
||||
|
||||
env.CGO_ENABLED = "0";
|
||||
|
||||
|
||||
@@ -205,12 +205,17 @@ class Profile:
|
||||
name: str
|
||||
path: Path
|
||||
|
||||
@classmethod
|
||||
def _is_custom_name(cls, name: str) -> bool:
|
||||
return name != "system"
|
||||
|
||||
@classmethod
|
||||
def from_arg(cls, name: str) -> Self:
|
||||
match name:
|
||||
case "system":
|
||||
return cls(name, Path("/nix/var/nix/profiles/system"))
|
||||
case _:
|
||||
path = Path("/nix/var/nix/profiles/system-profiles") / name
|
||||
path.parent.mkdir(mode=0o755, parents=True, exist_ok=True)
|
||||
return cls(name, path)
|
||||
if cls._is_custom_name(name):
|
||||
path = Path("/nix/var/nix/profiles/system-profiles") / name
|
||||
return cls(name, path)
|
||||
else:
|
||||
return cls(name, Path("/nix/var/nix/profiles/system"))
|
||||
|
||||
def is_custom(self) -> bool:
|
||||
return self._is_custom_name(self.name)
|
||||
|
||||
@@ -690,6 +690,15 @@ def set_profile(
|
||||
).strip()
|
||||
raise NixOSRebuildError(msg)
|
||||
|
||||
if profile.is_custom():
|
||||
# Using custom profile, the target profile directory may not exist yet,
|
||||
# so we need to create it first
|
||||
run_wrapper(
|
||||
["mkdir", "-p", profile.path.parent],
|
||||
remote=target_host,
|
||||
elevate=elevate,
|
||||
)
|
||||
|
||||
run_wrapper(
|
||||
["nix-env", "-p", profile.path, "--set", path_to_config],
|
||||
remote=target_host,
|
||||
|
||||
@@ -610,7 +610,7 @@ def test_execute_nix_switch_flake(mock_run: Mock, tmp_path: Path) -> None:
|
||||
@patch("subprocess.run", autospec=True)
|
||||
@patch("uuid.uuid4", autospec=True)
|
||||
@patch(get_qualified_name(nr.services.cleanup_ssh), autospec=True)
|
||||
def test_execute_nix_switch_build_target_host(
|
||||
def test_execute_nix_switch_build_target_host_custom_profile(
|
||||
mock_cleanup_ssh: Mock,
|
||||
mock_uuid4: Mock,
|
||||
mock_run: Mock,
|
||||
@@ -654,10 +654,12 @@ def test_execute_nix_switch_build_target_host(
|
||||
"nixos-config=./configuration.nix",
|
||||
"-I",
|
||||
"nixpkgs=$HOME/.nix-defexpr/channels/pinned_nixpkgs",
|
||||
"--profile-name",
|
||||
"custom-profile",
|
||||
]
|
||||
)
|
||||
|
||||
assert mock_run.call_count == 12
|
||||
assert mock_run.call_count == 13
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
@@ -791,6 +793,24 @@ def test_execute_nix_switch_build_target_host(
|
||||
check=True,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"ssh",
|
||||
*nr.process.SSH_DEFAULT_OPTS,
|
||||
"user@target-host",
|
||||
"--",
|
||||
"sudo",
|
||||
"/bin/sh",
|
||||
"-c",
|
||||
"""'exec /usr/bin/env -i PATH="${PATH-}" "$@"'""",
|
||||
"sh",
|
||||
"mkdir",
|
||||
"-p",
|
||||
"/nix/var/nix/profiles/system-profiles",
|
||||
],
|
||||
check=True,
|
||||
**DEFAULT_RUN_KWARGS,
|
||||
),
|
||||
call(
|
||||
[
|
||||
"ssh",
|
||||
@@ -804,7 +824,7 @@ def test_execute_nix_switch_build_target_host(
|
||||
"sh",
|
||||
"nix-env",
|
||||
"-p",
|
||||
"/nix/var/nix/profiles/system",
|
||||
"/nix/var/nix/profiles/system-profiles/custom-profile",
|
||||
"--set",
|
||||
str(config_path),
|
||||
],
|
||||
|
||||
@@ -205,19 +205,21 @@ def test_flake_from_arg(
|
||||
) == m.Flake("/path/to", 'nixosConfigurations."remote-hostname"')
|
||||
|
||||
|
||||
@patch("pathlib.Path.mkdir", autospec=True)
|
||||
def test_profile_from_arg(mock_mkdir: Mock) -> None:
|
||||
def test_profile_from_arg() -> None:
|
||||
assert m.Profile.from_arg("system") == m.Profile(
|
||||
"system",
|
||||
Path("/nix/var/nix/profiles/system"),
|
||||
)
|
||||
mock_mkdir.assert_not_called()
|
||||
|
||||
assert m.Profile.from_arg("something") == m.Profile(
|
||||
"something",
|
||||
Path("/nix/var/nix/profiles/system-profiles/something"),
|
||||
)
|
||||
mock_mkdir.assert_called_once()
|
||||
|
||||
|
||||
def test_profile_is_custom() -> None:
|
||||
assert not m.Profile("system", Path()).is_custom()
|
||||
assert m.Profile("something", Path()).is_custom()
|
||||
|
||||
|
||||
def test_grouped_nix_args_flake_build_flags() -> None:
|
||||
|
||||
@@ -749,6 +749,32 @@ def test_set_profile(mock_run: Mock) -> None:
|
||||
elevate=e.NO_ELEVATOR,
|
||||
)
|
||||
|
||||
mock_run.reset_mock()
|
||||
target_host = m.Remote("user@localhost", [], "ssh")
|
||||
|
||||
n.set_profile(
|
||||
m.Profile("something", profile_path),
|
||||
config_path,
|
||||
target_host=target_host,
|
||||
elevate=e.NO_ELEVATOR,
|
||||
)
|
||||
|
||||
mock_run.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
["mkdir", "-p", profile_path.parent],
|
||||
remote=target_host,
|
||||
elevate=e.NO_ELEVATOR,
|
||||
),
|
||||
call(
|
||||
["nix-env", "-p", profile_path, "--set", config_path],
|
||||
remote=target_host,
|
||||
elevate=e.NO_ELEVATOR,
|
||||
),
|
||||
]
|
||||
)
|
||||
|
||||
mock_run.reset_mock()
|
||||
mock_run.return_value = CompletedProcess([], 1)
|
||||
|
||||
with pytest.raises(m.NixOSRebuildError) as exc:
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "oidc-agent";
|
||||
version = "5.3.6";
|
||||
version = "5.3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "indigo-dc";
|
||||
repo = "oidc-agent";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-GY0YsZJUUDBx1+ivE+h7tRG32qTeAcI7mmh6+zK+1KA=";
|
||||
hash = "sha256-n88PQgFqsYiFwngaz1LGicVszoiepafshZa5/DiNw3I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "okms-cli";
|
||||
version = "0.4.4";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ovh";
|
||||
repo = "okms-cli";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-S3A3X1Inrnqf4+Sz7e6mqL+vzrz2huIfvNSV6cV5NIU=";
|
||||
hash = "sha256-mAHhmEB2N4TcW1axzNHtsOOc9mlUJS66CZprKIsrFyg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-GJG6cZ1FIWUNjDvcuOav7gPrgaKsfEI7U9lkPq+2H7E=";
|
||||
vendorHash = "sha256-/VKa35URUY4K60aN+9saFyzCgCUb0xDDTa8eSXofOtk=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "okteto";
|
||||
version = "3.22.0";
|
||||
version = "3.23.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "okteto";
|
||||
repo = "okteto";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-PuJag9/qQG23mU+TE1LboYF+/1od5nVmgXpAaTJKlIg=";
|
||||
hash = "sha256-P5dHpv2CEoJYr4rj3hQbavlsNNBRBIx4mzE3KhtLTXg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-zEdhWfbZv088CXN2+3FQdCPcz3lJOf5iJPeublmVJyM=";
|
||||
vendorHash = "sha256-/ZC5p5TAJOD8Wx1MDaI2NMPIL2QLfCeP0+XzdK346vI=";
|
||||
|
||||
postPatch = ''
|
||||
# Disable some tests that need file system & network access.
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "orbvis";
|
||||
version = "0.3.3";
|
||||
version = "0.3.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wojciech-graj";
|
||||
repo = "orbvis";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-U19kslgAULBBFozK5KUtew6KRsFeJ4+h8bL9cXmnzso=";
|
||||
hash = "sha256-e41CDv86zz+x5LF2JDZuxzgIvhHBM0s2XHoQMHfMRAg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "1.84";
|
||||
version = "1.85";
|
||||
pname = "os-prober";
|
||||
src = fetchFromGitLab {
|
||||
domain = "salsa.debian.org";
|
||||
owner = "installer-team";
|
||||
repo = "os-prober";
|
||||
rev = finalAttrs.version;
|
||||
sha256 = "sha256-91UTiwg4qIi+aCzAto7tCd5WZFjI15XxR1/hZQ0fUa4=";
|
||||
sha256 = "sha256-JK1+xzbl1EyHZ4E6pmQ5NDbtivZvFySHX+JkWodxyl4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "oxker";
|
||||
version = "0.13.3";
|
||||
version = "0.13.4";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit (finalAttrs) pname version;
|
||||
hash = "sha256-F/5QkEA4/UFFM3FEiqyBFZQWiIhQokT4VjL5SaKrDIA=";
|
||||
hash = "sha256-W2swVJd/rygvt/q3YqqI1bVMmuitre4k9Zwl9JYZZbs=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-v0EOUIEaAUtcNlkBhFQ1Q/quYdG6+18MT2nnjZ/ApbM=";
|
||||
cargoHash = "sha256-pJAnR0P5/vA9HbljbC3XhQbpiSeq3oBDCCaMuwfzLZ4=";
|
||||
|
||||
# See https://github.com/mrjackwills/oxker/issues/73
|
||||
checkFlags = lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "pedantix";
|
||||
version = "1.1.0";
|
||||
version = "1.2.1";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Swarsel";
|
||||
repo = "pedantix";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-6NwpoqHkMMnqDkoJGbjZ47PUx+M4yYDcN5HiTKscw7E=";
|
||||
hash = "sha256-WqCiIOFaVZ6+pVBF+fIZlOEb4N+cHCJZBPQ8Rj2OEh0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-6U9rnWTVsO1DPp1cEBkRLHjJKcbgNEqXSvzWUC8tWZQ=";
|
||||
cargoHash = "sha256-ay4rANqOby+/VM+JWbXcd0JQCcZuv8TjZv3d9vcFgfI=";
|
||||
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user