Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2023-09-26 00:11:53 +00:00 committed by GitHub
commit a1486d7898
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
242 changed files with 2653 additions and 2984 deletions

View File

@ -303,11 +303,8 @@ You can use the `dhall-to-nixpkgs` command-line utility to automate
packaging Dhall code. For example: packaging Dhall code. For example:
```ShellSession ```ShellSession
$ nix-env --install --attr haskellPackages.dhall-nixpkgs $ nix-shell -p haskellPackages.dhall-nixpkgs nix-prefetch-git
[nix-shell]$ dhall-to-nixpkgs github https://github.com/Gabriella439/dhall-semver.git
$ nix-env --install --attr nix-prefetch-git # Used by dhall-to-nixpkgs
$ dhall-to-nixpkgs github https://github.com/Gabriella439/dhall-semver.git
{ buildDhallGitHubPackage, Prelude }: { buildDhallGitHubPackage, Prelude }:
buildDhallGitHubPackage { buildDhallGitHubPackage {
name = "dhall-semver"; name = "dhall-semver";
@ -325,6 +322,10 @@ $ dhall-to-nixpkgs github https://github.com/Gabriella439/dhall-semver.git
} }
``` ```
:::{.note}
`nix-prefetch-git` has to be in `$PATH` for `dhall-to-nixpkgs` to work.
:::
The utility takes care of automatically detecting remote imports and converting The utility takes care of automatically detecting remote imports and converting
them to package dependencies. You can also use the utility on local them to package dependencies. You can also use the utility on local
Dhall directories, too: Dhall directories, too:

View File

@ -459,7 +459,6 @@ are used in [`buildPythonPackage`](#buildpythonpackage-function).
with the `eggInstallHook` with the `eggInstallHook`
- `eggBuildHook` to skip building for eggs. - `eggBuildHook` to skip building for eggs.
- `eggInstallHook` to install eggs. - `eggInstallHook` to install eggs.
- `flitBuildHook` to build a wheel using `flit`.
- `pipBuildHook` to build a wheel using `pip` and PEP 517. Note a build system - `pipBuildHook` to build a wheel using `pip` and PEP 517. Note a build system
(e.g. `setuptools` or `flit`) should still be added as `nativeBuildInput`. (e.g. `setuptools` or `flit`) should still be added as `nativeBuildInput`.
- `pypaBuildHook` to build a wheel using - `pypaBuildHook` to build a wheel using

View File

@ -1,7 +1,5 @@
# Multiple-output packages {#chap-multiple-output} # Multiple-output packages {#chap-multiple-output}
## Introduction {#sec-multiple-outputs-introduction}
The Nix language allows a derivation to produce multiple outputs, which is similar to what is utilized by other Linux distribution packaging systems. The outputs reside in separate Nix store paths, so they can be mostly handled independently of each other, including passing to build inputs, garbage collection or binary substitution. The exception is that building from source always produces all the outputs. The Nix language allows a derivation to produce multiple outputs, which is similar to what is utilized by other Linux distribution packaging systems. The outputs reside in separate Nix store paths, so they can be mostly handled independently of each other, including passing to build inputs, garbage collection or binary substitution. The exception is that building from source always produces all the outputs.
The main motivation is to save disk space by reducing runtime closure sizes; consequently also sizes of substituted binaries get reduced. Splitting can be used to have more granular runtime dependencies, for example the typical reduction is to split away development-only files, as those are typically not needed during runtime. As a result, closure sizes of many packages can get reduced to a half or even much less. The main motivation is to save disk space by reducing runtime closure sizes; consequently also sizes of substituted binaries get reduced. Splitting can be used to have more granular runtime dependencies, for example the typical reduction is to split away development-only files, as those are typically not needed during runtime. As a result, closure sizes of many packages can get reduced to a half or even much less.
@ -10,44 +8,12 @@ The main motivation is to save disk space by reducing runtime closure sizes; con
The reduction effects could be instead achieved by building the parts in completely separate derivations. That would often additionally reduce build-time closures, but it tends to be much harder to write such derivations, as build systems typically assume all parts are being built at once. This compromise approach of single source package producing multiple binary packages is also utilized often by rpm and deb. The reduction effects could be instead achieved by building the parts in completely separate derivations. That would often additionally reduce build-time closures, but it tends to be much harder to write such derivations, as build systems typically assume all parts are being built at once. This compromise approach of single source package producing multiple binary packages is also utilized often by rpm and deb.
::: :::
A number of attributes can be used to work with a derivation with multiple outputs. The attribute `outputs` is a list of strings, which are the names of the outputs. For each of these names, an identically named attribute is created, corresponding to that output. The attribute `meta.outputsToInstall` is used to determine the default set of outputs to install when using the derivation name unqualified. A number of attributes can be used to work with a derivation with multiple outputs.
The attribute `outputs` is a list of strings, which are the names of the outputs.
For each of these names, an identically named attribute is created, corresponding to that output.
## Installing a split package {#sec-multiple-outputs-installing} The attribute `meta.outputsToInstall` is used to determine the [default set of outputs to install](https://github.com/NixOS/nixpkgs/blob/08c3198f1c6fd89a09f8f0ea09b425028a34de3e/pkgs/stdenv/generic/check-meta.nix#L411-L426) when using the derivation name unqualified:
`bin`, or `out`, or the first specified output; as well as `man` if that is specified.
When installing a package with multiple outputs, the packages `meta.outputsToInstall` attribute determines which outputs are actually installed. `meta.outputsToInstall` is a list whose [default installs binaries and the associated man pages](https://github.com/NixOS/nixpkgs/blob/f1680774340d5443a1409c3421ced84ac1163ba9/pkgs/stdenv/generic/make-derivation.nix#L310-L320). The following sections describe ways to install different outputs.
### Selecting outputs to install via NixOS {#sec-multiple-outputs-installing-nixos}
NixOS provides two ways to select the outputs to install for packages listed in `environment.systemPackages`:
- The configuration option `environment.extraOutputsToInstall` is appended to each packages `meta.outputsToInstall` attribute to determine the outputs to install. It can for example be used to install `info` documentation or debug symbols for all packages.
- The outputs can be listed as packages in `environment.systemPackages`. For example, the `"out"` and `"info"` outputs for the `coreutils` package can be installed by including `coreutils` and `coreutils.info` in `environment.systemPackages`.
### Selecting outputs to install via `nix-env` {#sec-multiple-outputs-installing-nix-env}
`nix-env` lacks an easy way to select the outputs to install. When installing a package, `nix-env` always installs the outputs listed in `meta.outputsToInstall`, even when the user explicitly selects an output.
::: {.warning}
`nix-env` silently disregards the outputs selected by the user, and instead installs the outputs from `meta.outputsToInstall`. For example,
```ShellSession
$ nix-env -iA nixpkgs.coreutils.info
```
installs the `"out"` output (`coreutils.meta.outputsToInstall` is `[ "out" ]`) instead of the requested `"info"`.
:::
The only recourse to select an output with `nix-env` is to override the packages `meta.outputsToInstall`, using the functions described in [](#chap-overrides). For example, the following overlay adds the `"info"` output for the `coreutils` package:
```nix
self: super:
{
coreutils = super.coreutils.overrideAttrs (oldAttrs: {
meta = oldAttrs.meta // { outputsToInstall = oldAttrs.meta.outputsToInstall or [ "out" ] ++ [ "info" ]; };
});
}
```
## Using a split package {#sec-multiple-outputs-using-split-packages} ## Using a split package {#sec-multiple-outputs-using-split-packages}

View File

@ -2336,6 +2336,15 @@
github = "blaggacao"; github = "blaggacao";
githubId = 7548295; githubId = 7548295;
}; };
blankparticle = {
name = "BlankParticle";
email = "blankparticle@gmail.com";
github = "BlankParticle";
githubId = 130567419;
keys = [{
fingerprint = "1757 64C3 7065 AA8D 614D 41C9 0ACE 126D 7B35 9261";
}];
};
blanky0230 = { blanky0230 = {
email = "blanky0230@gmail.com"; email = "blanky0230@gmail.com";
github = "blanky0230"; github = "blanky0230";
@ -4549,6 +4558,16 @@
fingerprint = "4749 0887 CF3B 85A1 6355 C671 78C7 DD40 DF23 FB16"; fingerprint = "4749 0887 CF3B 85A1 6355 C671 78C7 DD40 DF23 FB16";
}]; }];
}; };
dpc = {
email = "dpc@dpc.pw";
github = "dpc";
githubId = 9209;
matrix = "@dpc:matrix.org";
name = "Dawid Ciężarkiewicz";
keys = [{
fingerprint = "0402 11D2 0830 2D71 5792 8197 86BB 1D5B 5575 7D38";
}];
};
DPDmancul = { DPDmancul = {
name = "Davide Peressoni"; name = "Davide Peressoni";
email = "davide.peressoni@tuta.io"; email = "davide.peressoni@tuta.io";

View File

@ -127,6 +127,8 @@
- `himalaya` has been updated to `0.8.0`, which drops the native TLS support (in favor of Rustls) and add OAuth 2.0 support. See the [release note](https://github.com/soywod/himalaya/releases/tag/v0.8.0) for more details. - `himalaya` has been updated to `0.8.0`, which drops the native TLS support (in favor of Rustls) and add OAuth 2.0 support. See the [release note](https://github.com/soywod/himalaya/releases/tag/v0.8.0) for more details.
- `nix-prefetch-git` now ignores global and user git config, to improve reproducibility.
- The [services.caddy.acmeCA](#opt-services.caddy.acmeCA) option now defaults to `null` instead of `"https://acme-v02.api.letsencrypt.org/directory"`, to use all of Caddy's default ACME CAs and enable Caddy's automatic issuer fallback feature by default, as recommended by upstream. - The [services.caddy.acmeCA](#opt-services.caddy.acmeCA) option now defaults to `null` instead of `"https://acme-v02.api.letsencrypt.org/directory"`, to use all of Caddy's default ACME CAs and enable Caddy's automatic issuer fallback feature by default, as recommended by upstream.
- The default priorities of [`services.nextcloud.phpOptions`](#opt-services.nextcloud.phpOptions) have changed. This means that e.g. - The default priorities of [`services.nextcloud.phpOptions`](#opt-services.nextcloud.phpOptions) have changed. This means that e.g.
@ -270,8 +272,6 @@ The module update takes care of the new config syntax and the data itself (user
- `services.nginx` gained a `defaultListen` option at server-level with support for PROXY protocol listeners, also `proxyProtocol` is now exposed in `services.nginx.virtualHosts.<name>.listen` option. It is now possible to run PROXY listeners and non-PROXY listeners at a server-level, see [#213510](https://github.com/NixOS/nixpkgs/pull/213510/) for more details. - `services.nginx` gained a `defaultListen` option at server-level with support for PROXY protocol listeners, also `proxyProtocol` is now exposed in `services.nginx.virtualHosts.<name>.listen` option. It is now possible to run PROXY listeners and non-PROXY listeners at a server-level, see [#213510](https://github.com/NixOS/nixpkgs/pull/213510/) for more details.
- `generic-extlinux-compatible` bootloader (and raspberry pi with uboot) supports appending secrets to the initramfs
- `services.restic.backups` now adds wrapper scripts to your system path, which set the same environment variables as the service, so restic operations can easly be run from the command line. This behavior can be disabled by setting `createWrapper` to `false`, per backup configuration. - `services.restic.backups` now adds wrapper scripts to your system path, which set the same environment variables as the service, so restic operations can easly be run from the command line. This behavior can be disabled by setting `createWrapper` to `false`, per backup configuration.
- `services.prometheus.exporters` has a new exporter to monitor electrical power consumption based on PowercapRAPL sensor called [Scaphandre](https://github.com/hubblo-org/scaphandre), see [#239803](https://github.com/NixOS/nixpkgs/pull/239803) for more details. - `services.prometheus.exporters` has a new exporter to monitor electrical power consumption based on PowercapRAPL sensor called [Scaphandre](https://github.com/hubblo-org/scaphandre), see [#239803](https://github.com/NixOS/nixpkgs/pull/239803) for more details.
@ -280,6 +280,11 @@ The module update takes care of the new config syntax and the data itself (user
- The module `services.calibre-server` has new options to configure the `host`, `port`, `auth.enable`, `auth.mode` and `auth.userDb` path, see [#216497](https://github.com/NixOS/nixpkgs/pull/216497/) for more details. - The module `services.calibre-server` has new options to configure the `host`, `port`, `auth.enable`, `auth.mode` and `auth.userDb` path, see [#216497](https://github.com/NixOS/nixpkgs/pull/216497/) for more details.
- Mattermost has been upgraded to extended support version 8.1 as the previously
packaged extended support version 7.8 is [reaching end of life](https://docs.mattermost.com/upgrade/extended-support-release.html).
Migration may take some time, see the [changelog](https://docs.mattermost.com/install/self-managed-changelog.html#release-v8-1-extended-support-release)
and [important upgrade notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html).
- `services.prometheus.exporters` has a new [exporter](https://github.com/hipages/php-fpm_exporter) to monitor PHP-FPM processes, see [#240394](https://github.com/NixOS/nixpkgs/pull/240394) for more details. - `services.prometheus.exporters` has a new [exporter](https://github.com/hipages/php-fpm_exporter) to monitor PHP-FPM processes, see [#240394](https://github.com/NixOS/nixpkgs/pull/240394) for more details.
- `services.github-runner` / `services.github-runners.<name>` gained the option `nodeRuntimes`. The option defaults to `[ "node20" ]`, i.e., the service supports Node.js 20 GitHub Actions only. The list of Node.js versions accepted by `nodeRuntimes` tracks the versions the upstream GitHub Actions runner supports. See [#249103](https://github.com/NixOS/nixpkgs/pull/249103) for details. - `services.github-runner` / `services.github-runners.<name>` gained the option `nodeRuntimes`. The option defaults to `[ "node20" ]`, i.e., the service supports Node.js 20 GitHub Actions only. The list of Node.js versions accepted by `nodeRuntimes` tracks the versions the upstream GitHub Actions runner supports. See [#249103](https://github.com/NixOS/nixpkgs/pull/249103) for details.
@ -347,4 +352,6 @@ The module update takes care of the new config syntax and the data itself (user
can automatically format the root device by setting can automatically format the root device by setting
`virtualisation.fileSystems."/".autoFormat = true;`. `virtualisation.fileSystems."/".autoFormat = true;`.
- `python3.pkgs.flitBuildHook` has been removed. Use `flit-core` and `format = "pyproject"` instead.
- The `electron` packages now places its application files in `$out/libexec/electron` instead of `$out/lib/electron`. Packages using electron-builder will fail to build and need to be adjusted by changing `lib` to `libexec`. - The `electron` packages now places its application files in `$out/libexec/electron` instead of `$out/lib/electron`. Packages using electron-builder will fail to build and need to be adjusted by changing `lib` to `libexec`.

View File

@ -116,8 +116,14 @@ in
extraOutputsToInstall = mkOption { extraOutputsToInstall = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = [ ]; default = [ ];
example = [ "doc" "info" "devdoc" ]; example = [ "dev" "info" ];
description = lib.mdDoc "List of additional package outputs to be symlinked into {file}`/run/current-system/sw`."; description = lib.mdDoc ''
Entries listed here will be appended to the `meta.outputsToInstall` attribute for each package in `environment.systemPackages`, and the files from the corresponding derivation outputs symlinked into {file}`/run/current-system/sw`.
For example, this can be used to install the `dev` and `info` outputs for all packages in the system environment, if they are available.
To use specific outputs instead of configuring them globally, select the corresponding attribute on the package derivation, e.g. `libxml2.dev` or `coreutils.info`.
'';
}; };
extraSetup = mkOption { extraSetup = mkOption {

View File

@ -1,37 +1,43 @@
{ config, lib, ... }: { config, options, lib, ... }:
with lib; with lib;
let let
cfg = config.hardware.cpu.amd.sev; cfgSev = config.hardware.cpu.amd.sev;
defaultGroup = "sev"; cfgSevGuest = config.hardware.cpu.amd.sevGuest;
in
with lib; { optionsFor = device: group: {
options.hardware.cpu.amd.sev = { enable = mkEnableOption (lib.mdDoc "access to the AMD ${device} device");
enable = mkEnableOption (lib.mdDoc "access to the AMD SEV device");
user = mkOption { user = mkOption {
description = lib.mdDoc "Owner to assign to the SEV device."; description = lib.mdDoc "Owner to assign to the ${device} device.";
type = types.str; type = types.str;
default = "root"; default = "root";
}; };
group = mkOption { group = mkOption {
description = lib.mdDoc "Group to assign to the SEV device."; description = lib.mdDoc "Group to assign to the ${device} device.";
type = types.str; type = types.str;
default = defaultGroup; default = group;
}; };
mode = mkOption { mode = mkOption {
description = lib.mdDoc "Mode to set for the SEV device."; description = lib.mdDoc "Mode to set for the ${device} device.";
type = types.str; type = types.str;
default = "0660"; default = "0660";
}; };
}; };
in
with lib; {
options.hardware.cpu.amd.sev = optionsFor "SEV" "sev";
config = mkIf cfg.enable { options.hardware.cpu.amd.sevGuest = optionsFor "SEV guest" "sev-guest";
config = mkMerge [
# /dev/sev
(mkIf cfgSev.enable {
assertions = [ assertions = [
{ {
assertion = hasAttr cfg.user config.users.users; assertion = hasAttr cfgSev.user config.users.users;
message = "Given user does not exist"; message = "Given user does not exist";
} }
{ {
assertion = (cfg.group == defaultGroup) || (hasAttr cfg.group config.users.groups); assertion = (cfgSev.group == options.hardware.cpu.amd.sev.group.default) || (hasAttr cfgSev.group config.users.groups);
message = "Given group does not exist"; message = "Given group does not exist";
} }
]; ];
@ -40,12 +46,35 @@ in
options kvm_amd sev=1 options kvm_amd sev=1
''; '';
users.groups = optionalAttrs (cfg.group == defaultGroup) { users.groups = optionalAttrs (cfgSev.group == options.hardware.cpu.amd.sev.group.default) {
"${cfg.group}" = {}; "${cfgSev.group}" = { };
}; };
services.udev.extraRules = with cfg; '' services.udev.extraRules = with cfgSev; ''
KERNEL=="sev", OWNER="${user}", GROUP="${group}", MODE="${mode}" KERNEL=="sev", OWNER="${user}", GROUP="${group}", MODE="${mode}"
''; '';
}; })
# /dev/sev-guest
(mkIf cfgSevGuest.enable {
assertions = [
{
assertion = hasAttr cfgSevGuest.user config.users.users;
message = "Given user does not exist";
}
{
assertion = (cfgSevGuest.group == options.hardware.cpu.amd.sevGuest.group.default) || (hasAttr cfgSevGuest.group config.users.groups);
message = "Given group does not exist";
}
];
users.groups = optionalAttrs (cfgSevGuest.group == options.hardware.cpu.amd.sevGuest.group.default) {
"${cfgSevGuest.group}" = { };
};
services.udev.extraRules = with cfgSevGuest; ''
KERNEL=="sev-guest", OWNER="${user}", GROUP="${group}", MODE="${mode}"
'';
})
];
} }

View File

@ -499,6 +499,7 @@
./services/games/quake3-server.nix ./services/games/quake3-server.nix
./services/games/teeworlds.nix ./services/games/teeworlds.nix
./services/games/terraria.nix ./services/games/terraria.nix
./services/games/xonotic.nix
./services/hardware/acpid.nix ./services/hardware/acpid.nix
./services/hardware/actkbd.nix ./services/hardware/actkbd.nix
./services/hardware/argonone.nix ./services/hardware/argonone.nix

View File

@ -0,0 +1,198 @@
{ config
, pkgs
, lib
, ...
}:
let
cfg = config.services.xonotic;
serverCfg = pkgs.writeText "xonotic-server.cfg" (
toString cfg.prependConfig
+ "\n"
+ builtins.concatStringsSep "\n" (
lib.mapAttrsToList (key: option:
let
escape = s: lib.escape [ "\"" ] s;
quote = s: "\"${s}\"";
toValue = x: quote (escape (toString x));
value = (if lib.isList option then
builtins.concatStringsSep
" "
(builtins.map (x: toValue x) option)
else
toValue option
);
in
"${key} ${value}"
) cfg.settings
)
+ "\n"
+ toString cfg.appendConfig
);
in
{
options.services.xonotic = {
enable = lib.mkEnableOption (lib.mdDoc "Xonotic dedicated server");
package = lib.mkPackageOption pkgs "xonotic-dedicated" {};
openFirewall = lib.mkOption {
type = lib.types.bool;
default = false;
description = lib.mdDoc ''
Open the firewall for TCP and UDP on the specified port.
'';
};
dataDir = lib.mkOption {
type = lib.types.path;
readOnly = true;
default = "/var/lib/xonotic";
description = lib.mdDoc ''
Data directory.
'';
};
settings = lib.mkOption {
description = lib.mdDoc ''
Generates the `server.cfg` file. Refer to [upstream's example][0] for
details.
[0]: https://gitlab.com/xonotic/xonotic/-/blob/master/server/server.cfg
'';
default = {};
type = lib.types.submodule {
freeformType = with lib.types; let
scalars = oneOf [ singleLineStr int float ];
in
attrsOf (oneOf [ scalars (nonEmptyListOf scalars) ]);
options.sv_public = lib.mkOption {
type = lib.types.int;
default = 0;
example = [ (-1) 1 ];
description = lib.mdDoc ''
Controls whether the server will be publicly listed.
'';
};
options.hostname = lib.mkOption {
type = lib.types.singleLineStr;
default = "Xonotic $g_xonoticversion Server";
description = lib.mdDoc ''
The name that will appear in the server list. `$g_xonoticversion`
gets replaced with the current version.
'';
};
options.sv_motd = lib.mkOption {
type = lib.types.singleLineStr;
default = "";
description = lib.mdDoc ''
Text displayed when players join the server.
'';
};
options.sv_termsofservice_url = lib.mkOption {
type = lib.types.singleLineStr;
default = "";
description = lib.mdDoc ''
URL for the Terms of Service for playing on your server.
'';
};
options.maxplayers = lib.mkOption {
type = lib.types.int;
default = 16;
description = lib.mdDoc ''
Number of player slots on the server, including spectators.
'';
};
options.net_address = lib.mkOption {
type = lib.types.singleLineStr;
default = "0.0.0.0";
description = lib.mdDoc ''
The address Xonotic will listen on.
'';
};
options.port = lib.mkOption {
type = lib.types.port;
default = 26000;
description = lib.mdDoc ''
The port Xonotic will listen on.
'';
};
};
};
# Still useful even though we're using RFC 42 settings because *some* keys
# can be repeated.
appendConfig = lib.mkOption {
type = with lib.types; nullOr lines;
default = null;
description = lib.mdDoc ''
Literal text to insert at the end of `server.cfg`.
'';
};
# Certain changes need to happen at the beginning of the file.
prependConfig = lib.mkOption {
type = with lib.types; nullOr lines;
default = null;
description = lib.mdDoc ''
Literal text to insert at the start of `server.cfg`.
'';
};
};
config = lib.mkIf cfg.enable {
systemd.services.xonotic = {
description = "Xonotic server";
wantedBy = [ "multi-user.target" ];
environment = {
# Required or else it tries to write the lock file into the nix store
HOME = cfg.dataDir;
};
serviceConfig = {
DynamicUser = true;
User = "xonotic";
StateDirectory = "xonotic";
ExecStart = "${cfg.package}/bin/xonotic-dedicated";
# Symlink the configuration from the nix store to where Xonotic actually
# looks for it
ExecStartPre = [
"${pkgs.coreutils}/bin/mkdir -p ${cfg.dataDir}/.xonotic/data"
''
${pkgs.coreutils}/bin/ln -sf ${serverCfg} \
${cfg.dataDir}/.xonotic/data/server.cfg
''
];
# Cargo-culted from search results about writing Xonotic systemd units
ExecReload = "${pkgs.util-linux}/bin/kill -HUP $MAINPID";
Restart = "on-failure";
RestartSec = 10;
StartLimitBurst = 5;
};
};
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [
cfg.settings.port
];
networking.firewall.allowedUDPPorts = lib.mkIf cfg.openFirewall [
cfg.settings.port
];
};
meta.maintainers = with lib.maintainers; [ CobaltCause ];
}

View File

@ -68,6 +68,7 @@ let
"redis" "redis"
"rspamd" "rspamd"
"rtl_433" "rtl_433"
"sabnzbd"
"scaphandre" "scaphandre"
"script" "script"
"shelly" "shelly"

View File

@ -0,0 +1,47 @@
{ config, lib, pkgs, options }:
let
inherit (lib) mkOption types;
cfg = config.services.prometheus.exporters.sabnzbd;
in
{
port = 9387;
extraOpts = {
servers = mkOption {
description = "List of sabnzbd servers to connect to.";
type = types.listOf (types.submodule {
options = {
baseUrl = mkOption {
type = types.str;
description = "Base URL of the sabnzbd server.";
example = "http://localhost:8080/sabnzbd";
};
apiKeyFile = mkOption {
type = types.str;
description = "File containing the API key.";
example = "/run/secrets/sabnzbd_apikey";
};
};
});
};
};
serviceOpts =
let
servers = lib.zipAttrs cfg.servers;
apiKeys = lib.concatStringsSep "," (builtins.map (file: "$(cat ${file})") servers.apiKeyFile);
in
{
environment = {
METRICS_PORT = toString cfg.port;
METRICS_ADDR = cfg.listenAddress;
SABNZBD_BASEURLS = lib.concatStringsSep "," servers.baseUrl;
};
script = ''
export SABNZBD_APIKEYS="${apiKeys}"
exec ${lib.getExe pkgs.prometheus-sabnzbd-exporter}
'';
};
}

View File

@ -5,6 +5,10 @@ let
stateDir = "/var/lib/unifi"; stateDir = "/var/lib/unifi";
cmd = '' cmd = ''
@${cfg.jrePackage}/bin/java java \ @${cfg.jrePackage}/bin/java java \
${optionalString (lib.versionAtLeast (lib.getVersion cfg.jrePackage) "16")
"--add-opens java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED "
+ "--add-opens java.base/sun.security.util=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED "
+ "--add-opens java.rmi/sun.rmi.transport=ALL-UNNAMED"} \
${optionalString (cfg.initialJavaHeapSize != null) "-Xms${(toString cfg.initialJavaHeapSize)}m"} \ ${optionalString (cfg.initialJavaHeapSize != null) "-Xms${(toString cfg.initialJavaHeapSize)}m"} \
${optionalString (cfg.maximumJavaHeapSize != null) "-Xmx${(toString cfg.maximumJavaHeapSize)}m"} \ ${optionalString (cfg.maximumJavaHeapSize != null) "-Xmx${(toString cfg.maximumJavaHeapSize)}m"} \
-jar ${stateDir}/lib/ace.jar -jar ${stateDir}/lib/ace.jar
@ -24,8 +28,8 @@ in
services.unifi.jrePackage = mkOption { services.unifi.jrePackage = mkOption {
type = types.package; type = types.package;
default = if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.3") then pkgs.jdk11 else pkgs.jre8; default = if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.5") then pkgs.jdk17_headless else if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.3") then pkgs.jdk11 else pkgs.jre8;
defaultText = literalExpression ''if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.3" then pkgs.jdk11 else pkgs.jre8''; defaultText = literalExpression ''if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.5") then pkgs.jdk17_headless else if (lib.versionAtLeast (lib.getVersion cfg.unifiPackage) "7.3" then pkgs.jdk11 else pkgs.jre8'';
description = lib.mdDoc '' description = lib.mdDoc ''
The JRE package to use. Check the release notes to ensure it is supported. The JRE package to use. Check the release notes to ensure it is supported.
''; '';

View File

@ -7,10 +7,8 @@ let
# valid policy options # valid policy options
policy = (types.enum [ "allow" "block" "reject" "keep" "apply-policy" ]); policy = (types.enum [ "allow" "block" "reject" "keep" "apply-policy" ]);
defaultRuleFile = "/var/lib/usbguard/rules.conf";
# decide what file to use for rules # decide what file to use for rules
ruleFile = if cfg.rules != null then pkgs.writeText "usbguard-rules" cfg.rules else defaultRuleFile; ruleFile = if cfg.rules != null then pkgs.writeText "usbguard-rules" cfg.rules else cfg.ruleFile;
daemonConf = '' daemonConf = ''
# generated by nixos/modules/services/security/usbguard.nix # generated by nixos/modules/services/security/usbguard.nix
@ -51,6 +49,19 @@ in
''; '';
}; };
ruleFile = mkOption {
type = types.nullOr types.path;
default = /var/lib/usbguard/rules.conf;
example = /run/secrets/usbguard-rules;
description = lib.mdDoc ''
This tells the USBGuard daemon which file to load as policy rule set.
The file can be changed manually or via the IPC interface assuming it has the right file permissions.
For more details see {manpage}`usbguard-rules.conf(5)`.
'';
};
rules = mkOption { rules = mkOption {
type = types.nullOr types.lines; type = types.nullOr types.lines;
default = null; default = null;
@ -63,8 +74,7 @@ in
be changed by the IPC interface. be changed by the IPC interface.
If you do not set this option, the USBGuard daemon will load If you do not set this option, the USBGuard daemon will load
it's policy rule set from `${defaultRuleFile}`. it's policy rule set from the option configured in `services.usbguard.ruleFile`.
This file can be changed manually or via the IPC interface.
Running `usbguard generate-policy` as root will Running `usbguard generate-policy` as root will
generate a config for your currently plugged in devices. generate a config for your currently plugged in devices.
@ -248,7 +258,6 @@ in
''; '';
}; };
imports = [ imports = [
(mkRemovedOptionModule [ "services" "usbguard" "ruleFile" ] "The usbguard module now uses ${defaultRuleFile} as ruleFile. Alternatively, use services.usbguard.rules to configure rules.")
(mkRemovedOptionModule [ "services" "usbguard" "IPCAccessControlFiles" ] "The usbguard module now hardcodes IPCAccessControlFiles to /var/lib/usbguard/IPCAccessControl.d.") (mkRemovedOptionModule [ "services" "usbguard" "IPCAccessControlFiles" ] "The usbguard module now hardcodes IPCAccessControlFiles to /var/lib/usbguard/IPCAccessControl.d.")
(mkRemovedOptionModule [ "services" "usbguard" "auditFilePath" ] "Removed usbguard module audit log files. Audit logs can be found in the systemd journal.") (mkRemovedOptionModule [ "services" "usbguard" "auditFilePath" ] "Removed usbguard module audit log files. Audit logs can be found in the systemd journal.")
(mkRenamedOptionModule [ "services" "usbguard" "implictPolicyTarget" ] [ "services" "usbguard" "implicitPolicyTarget" ]) (mkRenamedOptionModule [ "services" "usbguard" "implictPolicyTarget" ] [ "services" "usbguard" "implicitPolicyTarget" ])

View File

@ -116,7 +116,7 @@ in
unitConfig = { unitConfig = {
ConditionPathExists = [ ConditionPathExists = [
# Skip this service if the database already exists # Skip this service if the database already exists
"!$STATE_DIRECTORY/honk.db" "!%S/honk/honk.db"
]; ];
}; };
}; };

View File

@ -34,7 +34,7 @@ let
# copy additional plugin(s), theme(s) and language(s) # copy additional plugin(s), theme(s) and language(s)
${concatStringsSep "\n" (mapAttrsToList (name: theme: "cp -r ${theme} $out/share/wordpress/wp-content/themes/${name}") cfg.themes)} ${concatStringsSep "\n" (mapAttrsToList (name: theme: "cp -r ${theme} $out/share/wordpress/wp-content/themes/${name}") cfg.themes)}
${concatStringsSep "\n" (mapAttrsToList (name: plugin: "cp -r ${plugin} $out/share/wordpress/wp-content/plugins/${name}") cfg.plugins)} ${concatStringsSep "\n" (mapAttrsToList (name: plugin: "cp -r ${plugin} $out/share/wordpress/wp-content/plugins/${name}") cfg.plugins)}
${concatMapStringsSep "\n" (language: "cp -r ${language} $out/share/wordpress/wp-content/languages/") cfg.languages} ${concatMapStringsSep "\n" (language: "cp -r ${language}/* $out/share/wordpress/wp-content/languages/") cfg.languages}
''; '';
}; };

View File

@ -70,33 +70,13 @@ copyToKernelsDir() {
addEntry() { addEntry() {
local path=$(readlink -f "$1") local path=$(readlink -f "$1")
local tag="$2" # Generation number or 'default' local tag="$2" # Generation number or 'default'
local current="$3" # whether this is the current/latest generation
if ! test -e $path/kernel -a -e $path/initrd; then if ! test -e $path/kernel -a -e $path/initrd; then
return return
fi fi
if test -e "$path/append-initrd-secrets"; then
local initrd="$target/nixos/$(basename "$path")-initramfs-with-secrets"
cp $(readlink -f "$path/initrd") "$initrd"
chmod 600 "${initrd}"
chown 0:0 "${initrd}"
filesCopied[$initrd]=1
"$path/append-initrd-secrets" "$initrd" || if test "${current}" = "1"; then
echo "failed to create initrd secrets for the current generation." >&2
echo "are your \`boot.initrd.secrets\` still in place?" >&2
exit 1
else
echo "warning: failed to create initrd secrets for \"$path\", an older generation" >&2
echo "note: this is normal after having removed or renamed a file in \`boot.initrd.secrets\`" >&2
fi
else
copyToKernelsDir "$path/initrd"; initrd=$result
fi
copyToKernelsDir "$path/kernel"; kernel=$result copyToKernelsDir "$path/kernel"; kernel=$result
copyToKernelsDir "$path/initrd"; initrd=$result
dtbDir=$(readlink -m "$path/dtbs") dtbDir=$(readlink -m "$path/dtbs")
if [ -e "$dtbDir" ]; then if [ -e "$dtbDir" ]; then
copyToKernelsDir "$dtbDir"; dtbs=$result copyToKernelsDir "$dtbDir"; dtbs=$result
@ -150,20 +130,18 @@ MENU TITLE ------------------------------------------------------------
TIMEOUT $timeout TIMEOUT $timeout
EOF EOF
addEntry $default default 1 >> $tmpFile addEntry $default default >> $tmpFile
if [ "$numGenerations" -gt 0 ]; then if [ "$numGenerations" -gt 0 ]; then
# Add up to $numGenerations generations of the system profile to the menu, # Add up to $numGenerations generations of the system profile to the menu,
# in reverse (most recent to least recent) order. # in reverse (most recent to least recent) order.
current=1
for generation in $( for generation in $(
(cd /nix/var/nix/profiles && ls -d system-*-link) \ (cd /nix/var/nix/profiles && ls -d system-*-link) \
| sed 's/system-\([0-9]\+\)-link/\1/' \ | sed 's/system-\([0-9]\+\)-link/\1/' \
| sort -n -r \ | sort -n -r \
| head -n $numGenerations); do | head -n $numGenerations); do
link=/nix/var/nix/profiles/system-$generation-link link=/nix/var/nix/profiles/system-$generation-link
addEntry $link $generation $current addEntry $link $generation
current=0
done >> $tmpFile done >> $tmpFile
fi fi

View File

@ -142,7 +142,6 @@ in
assertion = !pkgs.stdenv.hostPlatform.isAarch64 || cfg.version >= 3; assertion = !pkgs.stdenv.hostPlatform.isAarch64 || cfg.version >= 3;
message = "Only Raspberry Pi >= 3 supports aarch64."; message = "Only Raspberry Pi >= 3 supports aarch64.";
}; };
boot.loader.supportsInitrdSecrets = cfg.uboot.enable;
system.build.installBootLoader = builder; system.build.installBootLoader = builder;
system.boot.loader.id = "raspberrypi"; system.boot.loader.id = "raspberrypi";

View File

@ -610,13 +610,6 @@ in
path the secret should have inside the initrd, the value path the secret should have inside the initrd, the value
is the path it should be copied from (or null for the same is the path it should be copied from (or null for the same
path inside and out). path inside and out).
The loader `generic-extlinux-compatible` supports this. Because
it is not well know how different implementations react to
concatenated cpio archives, this is disabled by default. It can be
enabled by setting {option}`boot.loader.supportsInitrdSecrets`
to true. If this works for you, please report your findings at
https://github.com/NixOS/nixpkgs/issues/247145 .
''; '';
example = literalExpression example = literalExpression
'' ''

View File

@ -173,6 +173,33 @@ let
}]; }];
})); }));
bridgeNetworks = mkMerge (flip mapAttrsToList cfg.bridges (name: bridge: {
netdevs."40-${name}" = {
netdevConfig = {
Name = name;
Kind = "bridge";
};
};
networks = listToAttrs (forEach bridge.interfaces (bi:
nameValuePair "40-${bi}" (mkMerge [ (genericNetwork (mkOverride 999)) {
DHCP = mkOverride 0 (dhcpStr false);
networkConfig.Bridge = name;
} ])));
}));
vlanNetworks = mkMerge (flip mapAttrsToList cfg.vlans (name: vlan: {
netdevs."40-${name}" = {
netdevConfig = {
Name = name;
Kind = "vlan";
};
vlanConfig.Id = vlan.id;
};
networks."40-${vlan.interface}" = (mkMerge [ (genericNetwork (mkOverride 999)) {
vlan = [ name ];
} ]);
}));
in in
{ {
@ -182,7 +209,15 @@ in
# Note this is if initrd.network.enable, not if # Note this is if initrd.network.enable, not if
# initrd.systemd.network.enable. By setting the latter and not the # initrd.systemd.network.enable. By setting the latter and not the
# former, the user retains full control over the configuration. # former, the user retains full control over the configuration.
boot.initrd.systemd.network = mkMerge [(genericDhcpNetworks true) interfaceNetworks]; boot.initrd.systemd.network = mkMerge [
(genericDhcpNetworks true)
interfaceNetworks
bridgeNetworks
vlanNetworks
];
boot.initrd.availableKernelModules =
optional (cfg.bridges != {}) "bridge" ++
optional (cfg.vlans != {}) "8021q";
}) })
(mkIf cfg.useNetworkd { (mkIf cfg.useNetworkd {
@ -212,19 +247,7 @@ in
} }
(genericDhcpNetworks false) (genericDhcpNetworks false)
interfaceNetworks interfaceNetworks
(mkMerge (flip mapAttrsToList cfg.bridges (name: bridge: { bridgeNetworks
netdevs."40-${name}" = {
netdevConfig = {
Name = name;
Kind = "bridge";
};
};
networks = listToAttrs (forEach bridge.interfaces (bi:
nameValuePair "40-${bi}" (mkMerge [ (genericNetwork (mkOverride 999)) {
DHCP = mkOverride 0 (dhcpStr false);
networkConfig.Bridge = name;
} ])));
})))
(mkMerge (flip mapAttrsToList cfg.bonds (name: bond: { (mkMerge (flip mapAttrsToList cfg.bonds (name: bond: {
netdevs."40-${name}" = { netdevs."40-${name}" = {
netdevConfig = { netdevConfig = {
@ -377,18 +400,7 @@ in
} ]); } ]);
}; };
}))) })))
(mkMerge (flip mapAttrsToList cfg.vlans (name: vlan: { vlanNetworks
netdevs."40-${name}" = {
netdevConfig = {
Name = name;
Kind = "vlan";
};
vlanConfig.Id = vlan.id;
};
networks."40-${vlan.interface}" = (mkMerge [ (genericNetwork (mkOverride 999)) {
vlan = [ name ];
} ]);
})))
]; ];
# We need to prefill the slaved devices with networking options # We need to prefill the slaved devices with networking options

View File

@ -109,6 +109,7 @@ in {
allTerminfo = handleTest ./all-terminfo.nix {}; allTerminfo = handleTest ./all-terminfo.nix {};
alps = handleTest ./alps.nix {}; alps = handleTest ./alps.nix {};
amazon-init-shell = handleTest ./amazon-init-shell.nix {}; amazon-init-shell = handleTest ./amazon-init-shell.nix {};
amd-sev = runTest ./amd-sev.nix;
anbox = runTest ./anbox.nix; anbox = runTest ./anbox.nix;
anuko-time-tracker = handleTest ./anuko-time-tracker.nix {}; anuko-time-tracker = handleTest ./anuko-time-tracker.nix {};
apcupsd = handleTest ./apcupsd.nix {}; apcupsd = handleTest ./apcupsd.nix {};
@ -764,6 +765,7 @@ in {
systemd-cryptenroll = handleTest ./systemd-cryptenroll.nix {}; systemd-cryptenroll = handleTest ./systemd-cryptenroll.nix {};
systemd-credentials-tpm2 = handleTest ./systemd-credentials-tpm2.nix {}; systemd-credentials-tpm2 = handleTest ./systemd-credentials-tpm2.nix {};
systemd-escaping = handleTest ./systemd-escaping.nix {}; systemd-escaping = handleTest ./systemd-escaping.nix {};
systemd-initrd-bridge = handleTest ./systemd-initrd-bridge.nix {};
systemd-initrd-btrfs-raid = handleTest ./systemd-initrd-btrfs-raid.nix {}; systemd-initrd-btrfs-raid = handleTest ./systemd-initrd-btrfs-raid.nix {};
systemd-initrd-luks-fido2 = handleTest ./systemd-initrd-luks-fido2.nix {}; systemd-initrd-luks-fido2 = handleTest ./systemd-initrd-luks-fido2.nix {};
systemd-initrd-luks-keyfile = handleTest ./systemd-initrd-luks-keyfile.nix {}; systemd-initrd-luks-keyfile = handleTest ./systemd-initrd-luks-keyfile.nix {};
@ -778,6 +780,7 @@ in {
systemd-initrd-networkd = handleTest ./systemd-initrd-networkd.nix {}; systemd-initrd-networkd = handleTest ./systemd-initrd-networkd.nix {};
systemd-initrd-networkd-ssh = handleTest ./systemd-initrd-networkd-ssh.nix {}; systemd-initrd-networkd-ssh = handleTest ./systemd-initrd-networkd-ssh.nix {};
systemd-initrd-networkd-openvpn = handleTest ./initrd-network-openvpn { systemdStage1 = true; }; systemd-initrd-networkd-openvpn = handleTest ./initrd-network-openvpn { systemdStage1 = true; };
systemd-initrd-vlan = handleTest ./systemd-initrd-vlan.nix {};
systemd-journal = handleTest ./systemd-journal.nix {}; systemd-journal = handleTest ./systemd-journal.nix {};
systemd-machinectl = handleTest ./systemd-machinectl.nix {}; systemd-machinectl = handleTest ./systemd-machinectl.nix {};
systemd-networkd = handleTest ./systemd-networkd.nix {}; systemd-networkd = handleTest ./systemd-networkd.nix {};

56
nixos/tests/amd-sev.nix Normal file
View File

@ -0,0 +1,56 @@
{ lib, ... }: {
name = "amd-sev";
meta = {
maintainers = with lib.maintainers; [ trundle veehaitch ];
};
nodes.machine = { lib, ... }: {
hardware.cpu.amd.sev.enable = true;
hardware.cpu.amd.sevGuest.enable = true;
specialisation.sevCustomUserGroup.configuration = {
users.groups.sevtest = { };
hardware.cpu.amd.sev = {
enable = true;
group = "root";
mode = "0600";
};
hardware.cpu.amd.sevGuest = {
enable = true;
group = "sevtest";
};
};
};
testScript = { nodes, ... }:
let
specialisations = "${nodes.machine.system.build.toplevel}/specialisation";
in
''
machine.wait_for_unit("multi-user.target")
with subtest("Check default settings"):
out = machine.succeed("cat /etc/udev/rules.d/99-local.rules")
assert 'KERNEL=="sev", OWNER="root", GROUP="sev", MODE="0660"' in out
assert 'KERNEL=="sev-guest", OWNER="root", GROUP="sev-guest", MODE="0660"' in out
out = machine.succeed("cat /etc/group")
assert "sev:" in out
assert "sev-guest:" in out
assert "sevtest:" not in out
with subtest("Activate configuration with custom user/group"):
machine.succeed('${specialisations}/sevCustomUserGroup/bin/switch-to-configuration test')
with subtest("Check custom user and group"):
out = machine.succeed("cat /etc/udev/rules.d/99-local.rules")
assert 'KERNEL=="sev", OWNER="root", GROUP="root", MODE="0600"' in out
assert 'KERNEL=="sev-guest", OWNER="root", GROUP="sevtest", MODE="0660"' in out
out = machine.succeed("cat /etc/group")
assert "sev:" not in out
assert "sev-guest:" not in out
assert "sevtest:" in out
'';
}

View File

@ -1178,6 +1178,44 @@ let
''; '';
}; };
sabnzbd = {
exporterConfig = {
enable = true;
servers = [{
baseUrl = "http://localhost:8080";
apiKeyFile = "/var/sabnzbd-apikey";
}];
};
metricProvider = {
services.sabnzbd.enable = true;
# unrar is required for sabnzbd
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [ "unrar" ];
# extract the generated api key before starting
systemd.services.sabnzbd-apikey = {
requires = [ "sabnzbd.service" ];
after = [ "sabnzbd.service" ];
requiredBy = [ "prometheus-sabnzbd-exporter.service" ];
before = [ "prometheus-sabnzbd-exporter.service" ];
script = ''
grep -Po '^api_key = \K.+' /var/lib/sabnzbd/sabnzbd.ini > /var/sabnzbd-apikey
'';
};
};
exporterTest = ''
wait_for_unit("sabnzbd.service")
wait_for_unit("prometheus-sabnzbd-exporter.service")
wait_for_open_port(8080)
wait_for_open_port(9387)
wait_until_succeeds(
"curl -sSf 'localhost:9387/metrics' | grep 'sabnzbd_queue_size{sabnzbd_instance=\"http://localhost:8080\"} 0.0'"
)
'';
};
scaphandre = { scaphandre = {
exporterConfig = { exporterConfig = {
enable = true; enable = true;

View File

@ -0,0 +1,63 @@
import ./make-test-python.nix ({ lib, ... }: {
name = "systemd-initrd-bridge";
meta.maintainers = [ lib.maintainers.majiir ];
# Tests bridge interface configuration in systemd-initrd.
#
# The 'a' and 'b' nodes are connected to a 'bridge' node through different
# links. The 'bridge' node configures a bridge across them. It waits forever
# in initrd (stage 1) with networking enabled. 'a' and 'b' ping 'bridge' to
# test connectivity with the bridge interface. Then, 'a' pings 'b' to test
# the bridge itself.
nodes = {
bridge = { config, lib, ... }: {
boot.initrd.systemd.enable = true;
boot.initrd.network.enable = true;
boot.initrd.systemd.services.boot-blocker = {
before = [ "initrd.target" ];
wantedBy = [ "initrd.target" ];
script = "sleep infinity";
serviceConfig.Type = "oneshot";
};
networking.primaryIPAddress = "192.168.1.${toString config.virtualisation.test.nodeNumber}";
virtualisation.vlans = [ 1 2 ];
networking.bridges.br0.interfaces = [ "eth1" "eth2" ];
networking.interfaces = {
eth1.ipv4.addresses = lib.mkForce [];
eth2.ipv4.addresses = lib.mkForce [];
br0.ipv4.addresses = [{
address = config.networking.primaryIPAddress;
prefixLength = 24;
}];
};
};
a = {
virtualisation.vlans = [ 1 ];
};
b = { config, ... }: {
virtualisation.vlans = [ 2 ];
networking.primaryIPAddress = lib.mkForce "192.168.1.${toString config.virtualisation.test.nodeNumber}";
networking.interfaces.eth1.ipv4.addresses = lib.mkForce [{
address = config.networking.primaryIPAddress;
prefixLength = 24;
}];
};
};
testScript = ''
start_all()
a.wait_for_unit("network.target")
b.wait_for_unit("network.target")
a.succeed("ping -n -w 10 -c 1 bridge >&2")
b.succeed("ping -n -w 10 -c 1 bridge >&2")
a.succeed("ping -n -w 10 -c 1 b >&2")
'';
})

View File

@ -0,0 +1,59 @@
import ./make-test-python.nix ({ lib, ... }: {
name = "systemd-initrd-vlan";
meta.maintainers = [ lib.maintainers.majiir ];
# Tests VLAN interface configuration in systemd-initrd.
#
# Two nodes are configured for a tagged VLAN. (Note that they also still have
# their ordinary eth0 and eth1 interfaces, which are not VLAN-tagged.)
#
# The 'server' node waits forever in initrd (stage 1) with networking
# enabled. The 'client' node pings it to test network connectivity.
nodes = let
network = id: {
networking = {
vlans."eth1.10" = {
id = 10;
interface = "eth1";
};
interfaces."eth1.10" = {
ipv4.addresses = [{
address = "192.168.10.${id}";
prefixLength = 24;
}];
};
};
};
in {
# Node that will use initrd networking.
server = network "1" // {
boot.initrd.systemd.enable = true;
boot.initrd.network.enable = true;
boot.initrd.systemd.services.boot-blocker = {
before = [ "initrd.target" ];
wantedBy = [ "initrd.target" ];
script = "sleep infinity";
serviceConfig.Type = "oneshot";
};
};
# Node that will ping the server.
client = network "2";
};
testScript = ''
start_all()
client.wait_for_unit("network.target")
# Wait for the regular (untagged) interface to be up.
def server_is_up(_) -> bool:
status, _ = client.execute("ping -n -c 1 server >&2")
return status == 0
with client.nested("waiting for server to come up"):
retry(server_is_up)
# Try to ping the (tagged) VLAN interface.
client.succeed("ping -n -w 10 -c 1 192.168.10.1 >&2")
'';
})

View File

@ -16,6 +16,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
systemPackages = with pkgs; [ tinywl foot wayland-utils ]; systemPackages = with pkgs; [ tinywl foot wayland-utils ];
}; };
hardware.opengl.enable = true;
# Automatically start TinyWL when logging in on tty1: # Automatically start TinyWL when logging in on tty1:
programs.bash.loginShellInit = '' programs.bash.loginShellInit = ''
if [ "$(tty)" = "/dev/tty1" ]; then if [ "$(tty)" = "/dev/tty1" ]; then

View File

@ -16,13 +16,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "mympd"; pname = "mympd";
version = "12.0.1"; version = "12.0.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jcorporation"; owner = "jcorporation";
repo = "myMPD"; repo = "myMPD";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
sha256 = "sha256-tkkaBIWoQS28FsCSN5CKw2ZQ3cbYa34PVZCUGaaqaQo="; sha256 = "sha256-7jE3erxrCPN2deI7EV0gDH1gy2XdwC1YdU2mo2xMI6Q=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -44,7 +44,7 @@ in
python.pkgs.buildPythonApplication rec { python.pkgs.buildPythonApplication rec {
pname = "sublime-music"; pname = "sublime-music";
version = "0.12.0"; version = "0.12.0";
format = "flit"; format = "pyproject";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "sublime-music"; owner = "sublime-music";
@ -54,6 +54,7 @@ python.pkgs.buildPythonApplication rec {
}; };
nativeBuildInputs = [ nativeBuildInputs = [
python.pkgs.flit-core
gobject-introspection gobject-introspection
wrapGAppsHook wrapGAppsHook
]; ];

View File

@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
description = "Micro GNU/emacs, a portable version of the mg maintained by the OpenBSD team"; description = "Micro GNU/emacs, a portable version of the mg maintained by the OpenBSD team";
homepage = "https://man.openbsd.org/OpenBSD-current/man1/mg.1"; homepage = "https://man.openbsd.org/OpenBSD-current/man1/mg.1";
license = licenses.publicDomain; license = licenses.publicDomain;
mainProgram = "mg";
platforms = platforms.all; platforms = platforms.all;
}; };
} }

View File

@ -39,11 +39,9 @@ let
wrapperArgsStr = if lib.isString wrapperArgs then wrapperArgs else lib.escapeShellArgs wrapperArgs; wrapperArgsStr = if lib.isString wrapperArgs then wrapperArgs else lib.escapeShellArgs wrapperArgs;
# "--add-flags" (lib.escapeShellArgs flags) commonWrapperArgs =
# wrapper args used both when generating the manifest and in the final neovim executable
commonWrapperArgs = (lib.optionals (lib.isList wrapperArgs) wrapperArgs)
# vim accepts a limited number of commands so we join them all # vim accepts a limited number of commands so we join them all
++ [ [
"--add-flags" ''--cmd "lua ${providerLuaRc}"'' "--add-flags" ''--cmd "lua ${providerLuaRc}"''
# (lib.intersperse "|" hostProviderViml) # (lib.intersperse "|" hostProviderViml)
] ++ lib.optionals (packpathDirs.myNeovimPackages.start != [] || packpathDirs.myNeovimPackages.opt != []) [ ] ++ lib.optionals (packpathDirs.myNeovimPackages.start != [] || packpathDirs.myNeovimPackages.opt != []) [

View File

@ -34,14 +34,14 @@ stdenv.mkDerivation (finalAttrs: {
+ lib.optionalString enableQt "-qt" + lib.optionalString enableQt "-qt"
+ lib.optionalString (!enableQt) "-sdl" + lib.optionalString (!enableQt) "-sdl"
+ lib.optionalString forceWayland "-wayland"; + lib.optionalString forceWayland "-wayland";
version = "1.16.1"; version = "1.16.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hrydgard"; owner = "hrydgard";
repo = "ppsspp"; repo = "ppsspp";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
fetchSubmodules = true; fetchSubmodules = true;
sha256 = "sha256-bKRb7a5lEfE1uUeVl7i1He3qLJ4wI5HmKmWAk2oKdYI="; sha256 = "sha256-Ygi7ioLOBQbD+QTD7pO2hIATV8HUDyrdhw7gBSSiHmc=";
}; };
postPatch = '' postPatch = ''

View File

@ -23,6 +23,20 @@ rustPlatform.buildRustPackage rec {
rm .cargo/config rm .cargo/config
''; '';
postInstall = ''
mkdir -p $out/share
cp assets/desktop/xplr.desktop $out/share
mkdir -p $out/share/icons/hicolor/scalable/apps
cp assets/icon/xplr.svg $out/share/icons/hicolor/scalable/apps
for size in 16 32 64 128; do
icon_dir=$out/share/icons/hicolor/''${size}x$size/apps
mkdir -p $icon_dir
cp assets/icon/xplr$size.png $icon_dir/xplr.png
done
'';
meta = with lib; { meta = with lib; {
description = "A hackable, minimal, fast TUI file explorer"; description = "A hackable, minimal, fast TUI file explorer";
homepage = "https://xplr.dev"; homepage = "https://xplr.dev";

View File

@ -0,0 +1,18 @@
diff --git a/hydrus/core/HydrusConstants.py b/hydrus/core/HydrusConstants.py
index 809338ef..9125928f 100644
--- a/hydrus/core/HydrusConstants.py
+++ b/hydrus/core/HydrusConstants.py
@@ -59,12 +59,7 @@ elif PLATFORM_HAIKU:
RUNNING_FROM_SOURCE = sys.argv[0].endswith( '.py' ) or sys.argv[0].endswith( '.pyw' )
RUNNING_FROM_MACOS_APP = os.path.exists( os.path.join( BASE_DIR, 'running_from_app' ) )
-if RUNNING_FROM_SOURCE:
- NICE_RUNNING_AS_STRING = 'from source'
-elif RUNNING_FROM_FROZEN_BUILD:
- NICE_RUNNING_AS_STRING = 'from frozen build'
-elif RUNNING_FROM_MACOS_APP:
- NICE_RUNNING_AS_STRING = 'from App'
+NICE_RUNNING_AS_STRING = "from nixpkgs (source)"
BIN_DIR = os.path.join( BASE_DIR, 'bin' )
HELP_DIR = os.path.join( BASE_DIR, 'help' )

View File

@ -12,16 +12,21 @@
python3Packages.buildPythonPackage rec { python3Packages.buildPythonPackage rec {
pname = "hydrus"; pname = "hydrus";
version = "520"; version = "544";
format = "other"; format = "other";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hydrusnetwork"; owner = "hydrusnetwork";
repo = "hydrus"; repo = "hydrus";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-y8KfPe3cBBq/iPCG7hNXrZDkOSNi+qSir6rO/65SHkI="; hash = "sha256-e3VvkdJAQx5heKDJ1Ms6XpXrXWdzv48f8yu0DHfPy1A=";
}; };
patches = [
# Nixpkgs specific, can be removed if upstream makes a more reasonable check
./0001-inform-nixpkgs.patch
];
nativeBuildInputs = [ nativeBuildInputs = [
wrapQtAppsHook wrapQtAppsHook
python3Packages.mkdocs-material python3Packages.mkdocs-material
@ -37,13 +42,16 @@ python3Packages.buildPythonPackage rec {
cbor2 cbor2
chardet chardet
cloudscraper cloudscraper
dateparser
html5lib html5lib
lxml lxml
lz4 lz4
numpy numpy
opencv4 opencv4
pillow pillow
pillow-heif
psutil psutil
psd-tools
pympler pympler
pyopenssl pyopenssl
pyqt6 pyqt6
@ -56,7 +64,6 @@ python3Packages.buildPythonPackage rec {
requests requests
send2trash send2trash
service-identity service-identity
six
twisted twisted
]; ];
@ -92,6 +99,7 @@ python3Packages.buildPythonPackage rec {
-e TestHydrusSessions \ -e TestHydrusSessions \
-e TestServer \ -e TestServer \
-e TestClientMetadataMigration \ -e TestClientMetadataMigration \
-e TestClientFileStorage \
''; '';
outputs = [ "out" "doc" ]; outputs = [ "out" "doc" ];
@ -100,13 +108,16 @@ python3Packages.buildPythonPackage rec {
# Move the hydrus module and related directories # Move the hydrus module and related directories
mkdir -p $out/${python3Packages.python.sitePackages} mkdir -p $out/${python3Packages.python.sitePackages}
mv {hydrus,static} $out/${python3Packages.python.sitePackages} mv {hydrus,static} $out/${python3Packages.python.sitePackages}
# Fix random files being marked with execute permissions
chmod -x $out/${python3Packages.python.sitePackages}/static/*.{png,svg,ico}
# Build docs
mkdocs build -d help mkdocs build -d help
mv help $out/doc/ mv help $out/doc/
# install the hydrus binaries # install the hydrus binaries
mkdir -p $out/bin mkdir -p $out/bin
install -m0755 server.py $out/bin/hydrus-server install -m0755 hydrus_server.py $out/bin/hydrus-server
install -m0755 client.py $out/bin/hydrus-client install -m0755 hydrus_client.py $out/bin/hydrus-client
'' + lib.optionalString enableSwftools '' '' + lib.optionalString enableSwftools ''
mkdir -p $out/${python3Packages.python.sitePackages}/bin mkdir -p $out/${python3Packages.python.sitePackages}/bin
# swfrender seems to have to be called sfwrender_linux # swfrender seems to have to be called sfwrender_linux

View File

@ -120,7 +120,7 @@ let
kdebugsettings = callPackage ./kdebugsettings.nix {}; kdebugsettings = callPackage ./kdebugsettings.nix {};
kdeconnect-kde = callPackage ./kdeconnect-kde.nix {}; kdeconnect-kde = callPackage ./kdeconnect-kde.nix {};
kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix {}; kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix {};
kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers.nix {}; kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers {};
kdenetwork-filesharing = callPackage ./kdenetwork-filesharing.nix {}; kdenetwork-filesharing = callPackage ./kdenetwork-filesharing.nix {};
kdenlive = callPackage ./kdenlive {}; kdenlive = callPackage ./kdenlive {};
kdepim-addons = callPackage ./kdepim-addons.nix {}; kdepim-addons = callPackage ./kdepim-addons.nix {};

View File

@ -1,5 +1,5 @@
{ {
mkDerivation, lib, fetchpatch, mkDerivation, lib, ghostscript, substituteAll,
extra-cmake-modules, karchive, kio, libkexiv2, libkdcraw, kdegraphics-mobipocket extra-cmake-modules, karchive, kio, libkexiv2, libkdcraw, kdegraphics-mobipocket
}: }:
@ -11,4 +11,13 @@ mkDerivation {
}; };
nativeBuildInputs = [ extra-cmake-modules ]; nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ karchive kio libkexiv2 libkdcraw kdegraphics-mobipocket ]; buildInputs = [ karchive kio libkexiv2 libkdcraw kdegraphics-mobipocket ];
patches = [
# Hardcode patches to Ghostscript so PDF thumbnails work OOTB.
# Intentionally not doing the same for dvips because TeX is big.
(substituteAll {
gs = "${ghostscript}/bin/gs";
src = ./gs-paths.patch;
})
];
} }

View File

@ -0,0 +1,22 @@
diff --git a/ps/gscreator.cpp b/ps/gscreator.cpp
index 5b84e49..cbb7c25 100644
--- a/ps/gscreator.cpp
+++ b/ps/gscreator.cpp
@@ -101,7 +101,7 @@ static const char *epsprolog =
"[ ] 0 setdash newpath false setoverprint false setstrokeadjust\n";
static const char * gsargs_ps[] = {
- "gs",
+ "@gs@",
"-sDEVICE=png16m",
"-sOutputFile=-",
"-dSAFER",
@@ -120,7 +120,7 @@ static const char * gsargs_ps[] = {
};
static const char * gsargs_eps[] = {
- "gs",
+ "@gs@",
"-sDEVICE=png16m",
"-sOutputFile=-",
"-dSAFER",

View File

@ -28,11 +28,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "blender"; pname = "blender";
version = "3.6.2"; version = "3.6.3";
src = fetchurl { src = fetchurl {
url = "https://download.blender.org/source/${pname}-${version}.tar.xz"; url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
hash = "sha256-olEmcOM3VKo/IWOhQp/qOkdJvwzM7bCkf8i8Bzh07Eg="; hash = "sha256-iRIwPrvPHwiIxHr7hpmG6NjS/liJkxcAgrzlk8LEFPg=";
}; };
patches = [ patches = [

View File

@ -1,6 +1,7 @@
{ lib { lib
, buildPythonApplication , buildPythonApplication
, fetchFromGitHub , fetchFromGitHub
, flit
, aiohttp , aiohttp
, beautifulsoup4 , beautifulsoup4
}: }:
@ -8,7 +9,7 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "cambrinary"; pname = "cambrinary";
version = "unstable-2023-07-16"; version = "unstable-2023-07-16";
format = "flit"; format = "pyproject";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xueyuanl"; owner = "xueyuanl";
@ -17,6 +18,10 @@ buildPythonApplication rec {
hash = "sha256-wDcvpKAY/6lBjO5h3qKH3+Y2G2gm7spcKCXFMt/bAtE="; hash = "sha256-wDcvpKAY/6lBjO5h3qKH3+Y2G2gm7spcKCXFMt/bAtE=";
}; };
nativeBuildInputs = [
flit
];
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
beautifulsoup4 beautifulsoup4

View File

@ -9,11 +9,11 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "camunda-modeler"; pname = "camunda-modeler";
version = "5.14.0"; version = "5.15.1";
src = fetchurl { src = fetchurl {
url = "https://github.com/camunda/camunda-modeler/releases/download/v${version}/camunda-modeler-${version}-linux-x64.tar.gz"; url = "https://github.com/camunda/camunda-modeler/releases/download/v${version}/camunda-modeler-${version}-linux-x64.tar.gz";
hash = "sha256-zGxuvS4T1olMH+QOqrPcsFjfO3PDERmFQOa+ISN9u0c="; hash = "sha256-q9wzfNyMzlyGTjaFOA7TZt+F/jC6EnPb/i4Q9eRxS3E=";
}; };
sourceRoot = "camunda-modeler-${version}-linux-x64"; sourceRoot = "camunda-modeler-${version}-linux-x64";

View File

@ -40,13 +40,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "keepassxc"; pname = "keepassxc";
version = "2.7.5"; version = "2.7.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "keepassxreboot"; owner = "keepassxreboot";
repo = "keepassxc"; repo = "keepassxc";
rev = version; rev = version;
sha256 = "sha256-OBEjczUIkY3pQXJfsuNj9Bm2TIbVWEHqMSolQnSfvLE="; hash = "sha256-xgrkMz7BCBxjfxHsAz/CFLv1d175LnrAJIOZMM3GmU0=";
}; };
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang (toString [ env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang (toString [
@ -129,7 +129,7 @@ stdenv.mkDerivation rec {
''; '';
homepage = "https://keepassxc.org/"; homepage = "https://keepassxc.org/";
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = with maintainers; [ jonafato srapenne ]; maintainers = with maintainers; [ jonafato srapenne blankparticle ];
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "slweb"; pname = "slweb";
version = "0.6.7"; version = "0.6.9";
src = fetchFromSourcehut { src = fetchFromSourcehut {
owner = "~strahinja"; owner = "~strahinja";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Y7w3yVqA8MNJJ3OcGaeziydZyzF0bap41Il6eE/Hu40="; sha256 = "sha256-YSHJJ+96Xj2zaDtPi8jftPWIyeIG9LwQ/eYT/oh2Y2c=";
}; };
nativeBuildInputs = [ redo-apenwarr ]; nativeBuildInputs = [ redo-apenwarr ];

View File

@ -4,17 +4,17 @@
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "wallust"; pname = "wallust";
version = "2.6.1"; version = "2.7.1";
src = fetchFromGitea { src = fetchFromGitea {
domain = "codeberg.org"; domain = "codeberg.org";
owner = "explosion-mental"; owner = "explosion-mental";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-xcsOOA6esvIhzeka8E9OvCT8aXMWWSHO4lNLtaocTSo="; hash = "sha256-WhL2HWM1onRrCqWJPLnAVMd/f/xfLrK3mU8jFSLFjAM=";
}; };
cargoSha256 = "sha256-YDIBn2fjlvNTYwMVn/MkID/EMmzz4oLieVgG2R95q4M="; cargoSha256 = "sha256-pR2vdqMGJZ6zvXwwKUIPjb/lWzVgYqQ7C7/sk/+usc4= ";
meta = with lib; { meta = with lib; {
description = "A better pywal"; description = "A better pywal";

View File

@ -27,11 +27,11 @@
}; };
stable = { stable = {
chromedriver = { chromedriver = {
sha256_darwin = "0phhcqid7wjw923qdi65zql3fid25swwszksgnw3b8fgz67jn955"; sha256_darwin = "138mw5p6r0n0531fs6322yxsjgj9hia5plw4mj0b3mclykzy5l37";
sha256_darwin_aarch64 = sha256_darwin_aarch64 =
"00fwq8slvjm6c7krgwjd4mxhkkrp23n4icb63qlvi2hy06gfj4l6"; "1cym94av2gw2zwj3rdqbjcqkigpzf0zk2bam2hw9n2hiabb4rm0p";
sha256_linux = "0ws8ch1j2hzp483vr0acvam1zxmzg9d37x6gqdwiqwgrk6x5pvkh"; sha256_linux = "1q1vyhmcx6b5criz5bn1c3x3z2dzqdgsmwcvlb0rzqlzpla9q26m";
version = "117.0.5938.88"; version = "117.0.5938.92";
}; };
deps = { deps = {
gn = { gn = {
@ -41,9 +41,9 @@
version = "2023-08-01"; version = "2023-08-01";
}; };
}; };
sha256 = "01n9aqnilsjrbpv5kkx3c6nxs9p5l5lfwxj67hd5s5g4740di4a6"; sha256 = "0b1l8gjhqbsyqi30rsn8dyq2hdvwasdqfk1qzk55f9ch4wclkjk5";
sha256bin64 = "1dhgagphdzbd19gkc7vpl1hxc9vn0l7sxny346qjlmrwafqlhbgi"; sha256bin64 = "047w7y4c8k076yzrjc50lvwncbk8b3lyqnd1si9nrsl7c66j2h0q";
version = "117.0.5938.88"; version = "117.0.5938.92";
}; };
ungoogled-chromium = { ungoogled-chromium = {
deps = { deps = {
@ -54,12 +54,12 @@
version = "2023-08-01"; version = "2023-08-01";
}; };
ungoogled-patches = { ungoogled-patches = {
rev = "117.0.5938.88-1"; rev = "117.0.5938.92-1";
sha256 = "1wz15ib56j8c84bgrbf0djk5wli49b1lvaqbg18pdclkp1mqy5w9"; sha256 = "0ix0vaki9r305js61qraiah3vqjaj3dyycabi6grfavdgjpjkasb";
}; };
}; };
sha256 = "01n9aqnilsjrbpv5kkx3c6nxs9p5l5lfwxj67hd5s5g4740di4a6"; sha256 = "0b1l8gjhqbsyqi30rsn8dyq2hdvwasdqfk1qzk55f9ch4wclkjk5";
sha256bin64 = "1dhgagphdzbd19gkc7vpl1hxc9vn0l7sxny346qjlmrwafqlhbgi"; sha256bin64 = "047w7y4c8k076yzrjc50lvwncbk8b3lyqnd1si9nrsl7c66j2h0q";
version = "117.0.5938.88"; version = "117.0.5938.92";
}; };
} }

View File

@ -1,44 +1,13 @@
{ lib, stdenv, fetchurl, config, wrapGAppsHook { lib, stdenv, fetchurl, config, wrapGAppsHook, autoPatchelfHook
, alsa-lib , alsa-lib
, atk
, cairo
, curl , curl
, cups
, dbus-glib , dbus-glib
, dbus
, fontconfig
, freetype
, gdk-pixbuf
, glib
, glibc
, gtk3 , gtk3
, libkrb5
, libX11
, libXScrnSaver
, libxcb
, libXcomposite
, libXcursor
, libXdamage
, libXext
, libXfixes
, libXi
, libXinerama
, libXrender
, libXrandr
, libXt
, libXtst , libXtst
, libcanberra , libva
, libnotify
, adwaita-icon-theme
, libGLU, libGL
, nspr
, nss
, pango
, pipewire
, pciutils , pciutils
, heimdal , pipewire
, libpulseaudio , adwaita-icon-theme
, systemd
, channel , channel
, generated , generated
, writeScript , writeScript
@ -48,9 +17,7 @@
, gnused , gnused
, gnugrep , gnugrep
, gnupg , gnupg
, ffmpeg
, runtimeShell , runtimeShell
, mesa # firefox wants gbm for drm+dmabuf
, systemLocale ? config.i18n.defaultLocale or "en_US" , systemLocale ? config.i18n.defaultLocale or "en_US"
}: }:
@ -58,6 +25,8 @@ let
inherit (generated) version sources; inherit (generated) version sources;
binaryName = if channel == "release" then "firefox" else "firefox-${channel}";
mozillaPlatforms = { mozillaPlatforms = {
i686-linux = "linux-i686"; i686-linux = "linux-i686";
x86_64-linux = "linux-x86_64"; x86_64-linux = "linux-x86_64";
@ -95,115 +64,54 @@ stdenv.mkDerivation {
src = fetchurl { inherit (source) url sha256; }; src = fetchurl { inherit (source) url sha256; };
libPath = lib.makeLibraryPath nativeBuildInputs = [ wrapGAppsHook autoPatchelfHook ];
[ stdenv.cc.cc buildInputs = [
alsa-lib
atk
cairo
curl
cups
dbus-glib
dbus
fontconfig
freetype
gdk-pixbuf
glib
glibc
gtk3 gtk3
libkrb5 adwaita-icon-theme
mesa alsa-lib
libX11 dbus-glib
libXScrnSaver
libXcomposite
libXcursor
libxcb
libXdamage
libXext
libXfixes
libXi
libXinerama
libXrender
libXrandr
libXt
libXtst libXtst
libcanberra
libnotify
libGLU libGL
nspr
nss
pango
pipewire
pciutils
heimdal
libpulseaudio
systemd
ffmpeg
] + ":" + lib.makeSearchPathOutput "lib" "lib64" [
stdenv.cc.cc
]; ];
runtimeDependencies = [
inherit gtk3; curl
libva.out
nativeBuildInputs = [ wrapGAppsHook ]; pciutils
buildInputs = [ gtk3 adwaita-icon-theme ]; ];
appendRunpaths = [
# "strip" after "patchelf" may break binaries. "${pipewire.lib}/lib"
# See: https://github.com/NixOS/patchelf/issues/10 ];
dontStrip = true;
dontPatchELF = true;
postPatch = ''
# Don't download updates from Mozilla directly
echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js
'';
installPhase = installPhase =
'' ''
mkdir -p "$prefix/usr/lib/firefox-bin-${version}" mkdir -p "$prefix/lib/firefox-bin-${version}"
cp -r * "$prefix/usr/lib/firefox-bin-${version}" cp -r * "$prefix/lib/firefox-bin-${version}"
mkdir -p "$out/bin" mkdir -p "$out/bin"
ln -s "$prefix/usr/lib/firefox-bin-${version}/firefox" "$out/bin/" ln -s "$prefix/lib/firefox-bin-${version}/firefox" "$out/bin/${binaryName}"
for executable in \
firefox firefox-bin plugin-container \
updater crashreporter webapprt-stub \
glxtest vaapitest
do
if [ -e "$out/usr/lib/firefox-bin-${version}/$executable" ]; then
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
"$out/usr/lib/firefox-bin-${version}/$executable"
fi
done
find . -executable -type f -exec \
patchelf --set-rpath "$libPath" \
"$out/usr/lib/firefox-bin-${version}/{}" \;
# wrapFirefox expects "$out/lib" instead of "$out/usr/lib"
ln -s "$out/usr/lib" "$out/lib"
gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped")
# See: https://github.com/mozilla/policy-templates/blob/master/README.md # See: https://github.com/mozilla/policy-templates/blob/master/README.md
mkdir -p "$out/lib/firefox-bin-${version}/distribution"; mkdir -p "$out/lib/firefox-bin-${version}/distribution";
ln -s ${policiesJson} "$out/lib/firefox-bin-${version}/distribution/policies.json"; ln -s ${policiesJson} "$out/lib/firefox-bin-${version}/distribution/policies.json";
''; '';
passthru.binaryName = "firefox"; passthru = {
passthru.libName = "firefox-bin-${version}"; inherit binaryName;
passthru.execdir = "/bin"; libName = "firefox-bin-${version}";
passthru.ffmpegSupport = true; ffmpegSupport = true;
passthru.gssSupport = true; gssSupport = true;
gtk3 = gtk3;
# update with: # update with:
# $ nix-shell maintainers/scripts/update.nix --argstr package firefox-bin-unwrapped # $ nix-shell maintainers/scripts/update.nix --argstr package firefox-bin-unwrapped
passthru.updateScript = import ./update.nix { updateScript = import ./update.nix {
inherit pname channel lib writeScript xidel coreutils gnused gnugrep gnupg curl runtimeShell; inherit pname channel lib writeScript xidel coreutils gnused gnugrep gnupg curl runtimeShell;
baseUrl = baseUrl =
if channel == "devedition" if channel == "devedition"
then "https://archive.mozilla.org/pub/devedition/releases/" then "https://archive.mozilla.org/pub/devedition/releases/"
else "https://archive.mozilla.org/pub/firefox/releases/"; else "https://archive.mozilla.org/pub/firefox/releases/";
}; };
};
meta = with lib; { meta = with lib; {
changelog = "https://www.mozilla.org/en-US/firefox/${version}/releasenotes/"; changelog = "https://www.mozilla.org/en-US/firefox/${version}/releasenotes/";
description = "Mozilla Firefox, free web browser (binary package)"; description = "Mozilla Firefox, free web browser (binary package)";
@ -213,5 +121,6 @@ stdenv.mkDerivation {
platforms = builtins.attrNames mozillaPlatforms; platforms = builtins.attrNames mozillaPlatforms;
hydraPlatforms = []; hydraPlatforms = [];
maintainers = with maintainers; [ taku0 lovesegfault ]; maintainers = with maintainers; [ taku0 lovesegfault ];
mainProgram = binaryName;
}; };
} }

View File

@ -3,10 +3,10 @@
{ {
firefox = buildMozillaMach rec { firefox = buildMozillaMach rec {
pname = "firefox"; pname = "firefox";
version = "117.0.1"; version = "118.0";
src = fetchurl { src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "1583b0ad3b3b17c59bfbfb3e416074766327d0b926ef4f6c6b1e3b2d7cf6a18dec592b7d17fab9493ba1506f3540a02277096d28616dd29b6e7b9e93905f2071"; sha512 = "7c34c43930bda84d17a241fe7e0f8e6ca262410423ae7e7cc8444224aea2d25a52acc9079064ba57f3350e3573eb23aeaf7a2d98136d17e6fa89a61aaf57155d";
}; };
meta = { meta = {
@ -90,11 +90,11 @@
firefox-esr-115 = buildMozillaMach rec { firefox-esr-115 = buildMozillaMach rec {
pname = "firefox-esr-115"; pname = "firefox-esr-115";
version = "115.2.1esr"; version = "115.3.0esr";
applicationName = "Mozilla Firefox ESR"; applicationName = "Mozilla Firefox ESR";
src = fetchurl { src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "5f9ff96996e3c482fa4d2e2861fdf14d2154bf0277d412bf9c9435204c7e2e2539ce7ef0891d8dafc74d5a12650a5ccd33d79547aa1bbb2c2a0972aaeb755edf"; sha512 = "4a85095620a61dc516cfce6f288ba491a99c72a78c6dfae264c1292f9eba902e3df7101b97a6f8531114ccce421c92586e143872798aafd7aabbe98a257692ee";
}; };
meta = { meta = {

View File

@ -362,7 +362,7 @@ let
extraPoliciesFiles=(${builtins.toString extraPoliciesFiles}) extraPoliciesFiles=(${builtins.toString extraPoliciesFiles})
for extraPoliciesFile in "''${extraPoliciesFiles[@]}"; do for extraPoliciesFile in "''${extraPoliciesFiles[@]}"; do
jq -s '.[0] + .[1]' "$POL_PATH" $extraPoliciesFile > .tmp.json jq -s '.[0] * .[1]' "$POL_PATH" $extraPoliciesFile > .tmp.json
mv .tmp.json "$POL_PATH" mv .tmp.json "$POL_PATH"
done done

View File

@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "A text-mode web browser"; description = "A text-mode web browser";
homepage = "https://lynx.invisible-island.net/"; homepage = "https://lynx.invisible-island.net/";
mainProgram = "lynx";
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.unix; platforms = platforms.unix;

View File

@ -32,7 +32,7 @@ in
python3Packages.buildPythonPackage rec { python3Packages.buildPythonPackage rec {
pname = "offpunk"; pname = "offpunk";
version = "1.10"; version = "1.10";
format = "flit"; format = "pyproject";
disabled = python3Packages.pythonOlder "3.7"; disabled = python3Packages.pythonOlder "3.7";
@ -43,7 +43,7 @@ python3Packages.buildPythonPackage rec {
hash = "sha256-+jGKPPnKZHn+l6VAwuae6kICwR7ymkYJjsM2OHQAEmU="; hash = "sha256-+jGKPPnKZHn+l6VAwuae6kICwR7ymkYJjsM2OHQAEmU=";
}; };
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ python3Packages.flit-core installShellFiles ];
propagatedBuildInputs = otherDependencies ++ pythonDependencies; propagatedBuildInputs = otherDependencies ++ pythonDependencies;
postInstall = '' postInstall = ''

View File

@ -2,18 +2,18 @@
buildGoModule rec{ buildGoModule rec{
pname = "pinniped"; pname = "pinniped";
version = "0.25.0"; version = "0.26.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vmware-tanzu"; owner = "vmware-tanzu";
repo = "pinniped"; repo = "pinniped";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-tUdPeBqAXYaBB2rtkhrhN3kRSVv8dg0UI7GEmIdO+fc="; sha256 = "sha256-z+JwtrP3WGMK11RRYrDig5SrX6YCj7U3AwuLg/J8dgs=";
}; };
subPackages = "cmd/pinniped"; subPackages = "cmd/pinniped";
vendorHash = "sha256-IFVXNd1UkfZiw8YKG3v9uHCJQCE3ajOsjbHv5r3y3L4="; vendorHash = "sha256-QywpqgQj76x0zmn4eC74fy7UECK4K81WO+nxOYKZqq0=";
ldflags = [ "-s" "-w" ]; ldflags = [ "-s" "-w" ];

View File

@ -2,29 +2,30 @@
, stdenv , stdenv
, fetchurl , fetchurl
, atomEnv , atomEnv
, electron_26
, systemd , systemd
, pulseaudio , pulseaudio
, libxshmfence , libxshmfence
, libnotify , libnotify
, libappindicator-gtk3 , libappindicator-gtk3
, wrapGAppsHook , makeWrapper
, autoPatchelfHook , autoPatchelfHook
}: }:
let let
pname = "mattermost-desktop"; pname = "mattermost-desktop";
version = "5.3.1"; version = "5.5.0";
srcs = { srcs = {
"x86_64-linux" = { "x86_64-linux" = {
url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz"; url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz";
hash = "sha256-rw+SYCFmN2W4t5iIWEpV9VHxcvwTLOckMV58WRa5dZE="; hash = "sha256-htjKGO16Qs1RVE4U47DdN8bNpUH4JD/LkMOeoIRmLPI=";
}; };
"aarch64-linux" = { "aarch64-linux" = {
url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-arm64.tar.gz"; url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-arm64.tar.gz";
hash = "sha256-FEIldkb3FbUfVAYRkjs7oPRJDHdsIGDW5iaC2Qz1dpc="; hash = "sha256-LQhMSIrWDZTXBnJfLKph5e6txHGvQSqEu+P1j1zOiTg=";
}; };
}; };
@ -37,11 +38,7 @@ stdenv.mkDerivation {
src = fetchurl (srcs."${system}" or (throw "Unsupported system ${system}")); src = fetchurl (srcs."${system}" or (throw "Unsupported system ${system}"));
dontBuild = true; nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
dontConfigure = true;
dontStrip = true;
nativeBuildInputs = [ wrapGAppsHook autoPatchelfHook ];
buildInputs = atomEnv.packages ++ [ buildInputs = atomEnv.packages ++ [
libxshmfence libxshmfence
@ -63,21 +60,19 @@ stdenv.mkDerivation {
find . -type f \( -name '*.so.*' -o -name '*.s[oh]' \) -print0 | xargs -0 chmod +x find . -type f \( -name '*.so.*' -o -name '*.s[oh]' \) -print0 | xargs -0 chmod +x
chmod +x mattermost-desktop chrome-sandbox chmod +x mattermost-desktop chrome-sandbox
mkdir -p $out/share/mattermost-desktop mkdir -p $out/bin $out/share/applications $out/share/${pname}/
cp -R . $out/share/mattermost-desktop cp -r app_icon.png create_desktop_file.sh locales/ resources/* $out/share/${pname}/
mkdir -p "$out/bin" patchShebangs $out/share/${pname}/create_desktop_file.sh
ln -s $out/share/mattermost-desktop/mattermost-desktop $out/bin/mattermost-desktop $out/share/${pname}/create_desktop_file.sh
rm $out/share/${pname}/create_desktop_file.sh
patchShebangs $out/share/mattermost-desktop/create_desktop_file.sh
$out/share/mattermost-desktop/create_desktop_file.sh
rm $out/share/mattermost-desktop/create_desktop_file.sh
mkdir -p $out/share/applications
chmod -x Mattermost.desktop
mv Mattermost.desktop $out/share/applications/Mattermost.desktop mv Mattermost.desktop $out/share/applications/Mattermost.desktop
substituteInPlace $out/share/applications/Mattermost.desktop \ substituteInPlace $out/share/applications/Mattermost.desktop \
--replace /share/mattermost-desktop/mattermost-desktop /bin/mattermost-desktop --replace /share/mattermost-desktop/mattermost-desktop /bin/mattermost-desktop
makeWrapper ${electron_26}/bin/electron $out/bin/${pname} \
--add-flags $out/share/${pname}/app.asar
runHook postInstall runHook postInstall
''; '';

View File

@ -2,13 +2,13 @@
(if stdenv.isDarwin then darwin.apple_sdk_11_0.llvmPackages_14.stdenv else stdenv).mkDerivation rec { (if stdenv.isDarwin then darwin.apple_sdk_11_0.llvmPackages_14.stdenv else stdenv).mkDerivation rec {
pname = "signalbackup-tools"; pname = "signalbackup-tools";
version = "20230922-4"; version = "20230925";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bepaald"; owner = "bepaald";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-6VzcylvGyEB+5KYX1r9wEEfSECh+O947KdcN3DMJxE0="; hash = "sha256-j1iAFNG6A/u/2OY07At0kobXtlSqoy3jM2rBf96qhHQ=";
}; };
postPatch = '' postPatch = ''

View File

@ -6,12 +6,6 @@ set -eou pipefail
latest_linux_version=$(curl -L --silent https://slack.com/downloads/linux | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p') latest_linux_version=$(curl -L --silent https://slack.com/downloads/linux | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p')
latest_mac_version=$(curl -L --silent https://slack.com/downloads/mac | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p') latest_mac_version=$(curl -L --silent https://slack.com/downloads/mac | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p')
# Double check that the latest mac and linux versions are in sync.
if [[ "$latest_linux_version" != "$latest_mac_version" ]]; then
echo "the latest linux ($latest_linux_version) and mac ($latest_mac_version) versions are not the same"
exit 1
fi
nixpkgs="$(git rev-parse --show-toplevel)" nixpkgs="$(git rev-parse --show-toplevel)"
slack_nix="$nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix" slack_nix="$nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix"
nixpkgs_linux_version=$(cat "$slack_nix" | sed -n 's/.*x86_64-linux-version = \"\([0-9\.]\+\)\";.*/\1/p') nixpkgs_linux_version=$(cat "$slack_nix" | sed -n 's/.*x86_64-linux-version = \"\([0-9\.]\+\)\";.*/\1/p')

View File

@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
description = "A TLS-only terminal IRC client"; description = "A TLS-only terminal IRC client";
platforms = platforms.unix; platforms = platforms.unix;
mainProgram = "catgirl";
maintainers = with maintainers; [ xfnw ]; maintainers = with maintainers; [ xfnw ];
}; };
} }

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "wee-slack"; pname = "wee-slack";
version = "2.10.0"; version = "2.10.1";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "wee-slack"; repo = "wee-slack";
owner = "wee-slack"; owner = "wee-slack";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-SxmMCD7FdkmZ0ccDbuY2XUGcLxHlv62x4Pj55Wzf0AA="; sha256 = "sha256-J4s7+JFd/y1espp3HZCs48++fhN6lmpaglGkgomtf3o=";
}; };
patches = [ patches = [

View File

@ -1,665 +1,665 @@
{ {
version = "115.2.2"; version = "115.2.3";
sources = [ sources = [
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/af/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/af/thunderbird-115.2.3.tar.bz2";
locale = "af"; locale = "af";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "abca901bd8ab959c56701ed2a1333cdc9e1c616755f7af66bfd2843beb150fbb"; sha256 = "1ef112eb96e577d046d37becddf2149bec6a3264bd56db18e365e0fe1c52c37b";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/ar/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/ar/thunderbird-115.2.3.tar.bz2";
locale = "ar"; locale = "ar";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "3b370800cf3020dd665438142b2510e1b93443fcdfb9afae4306fe783d65941d"; sha256 = "7b6a78bcea4ca6a43dfc0ac5bc3e6fc664923308bd71adad52d57d0c475be5b9";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/ast/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/ast/thunderbird-115.2.3.tar.bz2";
locale = "ast"; locale = "ast";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "8877c0424559e17fdb8b7ebc543308c51325cd8ccfbcfb22de69a91cfb7da45c"; sha256 = "d8fb2c2bd26a52c892fde59e2a85b2ac541e6bcb7040b42d105e3cfa8e9d691c";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/be/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/be/thunderbird-115.2.3.tar.bz2";
locale = "be"; locale = "be";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "0efdf2e14de556028e1518123d2879e9a544f9db4abb81a45acbffe24c1b57a8"; sha256 = "d3954e30ef0257364a4c661444ab873c9b6c14428b8d83a153b6b8527599c825";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/bg/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/bg/thunderbird-115.2.3.tar.bz2";
locale = "bg"; locale = "bg";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "2090a1df798386de4f7ce018b440e682c0ee002cff6b6cb9e0fc4e8f2354ad2e"; sha256 = "04b7c05e6686368fe416acbaa6db8d2f65f71ac281223ccb0d0be6564f0ed7d0";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/br/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/br/thunderbird-115.2.3.tar.bz2";
locale = "br"; locale = "br";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "031139a2b4e02e9948c4ef2511e51007dabdaa427f87cc5ebc37213c066417d9"; sha256 = "91cceedcd1240b362c2c210f00d5ba0fe4f63ec0fc2e783cdd2150b3cc5741b4";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/ca/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/ca/thunderbird-115.2.3.tar.bz2";
locale = "ca"; locale = "ca";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "9486b45ff6aa2249a68889fc8c14c2eeb6f4157404aa58b6c57d42d2c7224b3a"; sha256 = "ba4755b72eb2df1df133b9005aa6b01e4a706b797749e064fd83d62ca434bc36";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/cak/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/cak/thunderbird-115.2.3.tar.bz2";
locale = "cak"; locale = "cak";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "e25b0ef1ca7825088a9d824333b7e3c15c0f34d91e24f2a6fb95ca321cb35fd6"; sha256 = "533ee476f88e62c3645d04b15ede8b39e76efb4a8a9868f8eec95524c8976bf6";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/cs/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/cs/thunderbird-115.2.3.tar.bz2";
locale = "cs"; locale = "cs";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "66ff84c6eff82053899a5fb73d60b6dbe9a804a29d0a4c3e534b18b4f336d4a6"; sha256 = "875f2dd2a2bd06a91fee900946f31c659015ae9477900cbeb0819857b89173cf";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/cy/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/cy/thunderbird-115.2.3.tar.bz2";
locale = "cy"; locale = "cy";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "c67d74d7647dfef7bfa623f343a98d91921788c317a3ce6e0bcb9589c7dc8231"; sha256 = "896a64ca0f6c3fef047c854c17b45b2821c845d1e5d331599dfff524d228fbbc";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/da/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/da/thunderbird-115.2.3.tar.bz2";
locale = "da"; locale = "da";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "b3a297d57b2052d0a97279933a545602bb123c66501751a65cc73c8140fc78f7"; sha256 = "427c875eaab7912c9350153af827860b8803154abf564d1957c668d003e532e8";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/de/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/de/thunderbird-115.2.3.tar.bz2";
locale = "de"; locale = "de";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "43ffd505825af80846b644a36ef0a1254d8bed9c5a707aff633770f86c2be8a0"; sha256 = "2706e6103a38ed9abd866e13e56d7d3c16585f774704d4ce3e6596e740b8e18e";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/dsb/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/dsb/thunderbird-115.2.3.tar.bz2";
locale = "dsb"; locale = "dsb";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "312109b1bfdc949873f3f7ed2e7ec58cbe6945c35ae5058d382e874bf458a2ae"; sha256 = "b3f4d691650079376a87650c721bc26332cb06e5f705eac4c923a9efeeaf427a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/el/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/el/thunderbird-115.2.3.tar.bz2";
locale = "el"; locale = "el";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "ed5705d70b211e293c13728ae66da78e7c217f5e06c48d4954a7dfe18e5029af"; sha256 = "2e15f8fcdd187daf643178b8c4f6ca8e1ec593ca67f90013b56010fa2a69c9d8";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/en-CA/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/en-CA/thunderbird-115.2.3.tar.bz2";
locale = "en-CA"; locale = "en-CA";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "a51444f889c9602749b92fcde62c162f109908de9f30e01e96d1a15aed7eced2"; sha256 = "4a4f1789849d6965e7ef1f2e37c6cf0a455173e94d603efdb1e9bf4c960c9876";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/en-GB/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/en-GB/thunderbird-115.2.3.tar.bz2";
locale = "en-GB"; locale = "en-GB";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "a03bba9d46dab2e6582dc6e25a603db7a9343b042eb499b4fc47c355a7624fa5"; sha256 = "965d5f32c3a64b85e9e73c8bb30978138a94848d19350115e048753d4a0e4cb4";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/en-US/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/en-US/thunderbird-115.2.3.tar.bz2";
locale = "en-US"; locale = "en-US";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "ffaee7ade088747636abf9ef9edafacc95591c1c317e39847a6dace08a863561"; sha256 = "b89f6d281224cbc9cabb419b7035a65dfc7bd9fc955d1416113c68dbb91335de";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/es-AR/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/es-AR/thunderbird-115.2.3.tar.bz2";
locale = "es-AR"; locale = "es-AR";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "e694f9aa4a95e633fd0efec32e7bad139de2d17eddfe16b6cf68c583dae3f0c0"; sha256 = "df0fc5168ff3be2c27a617325e40656ee37e671d7753ceef1549c52629c2a38c";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/es-ES/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/es-ES/thunderbird-115.2.3.tar.bz2";
locale = "es-ES"; locale = "es-ES";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "3e62ec94a4882ff37796b0fb40d5da0f06f1f68d0f930ee5724d0a8be3e6ef90"; sha256 = "c0dff3cb001447f454bb9e03c8bcfb8f40c8343f155470eb2978261ed7a67145";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/es-MX/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/es-MX/thunderbird-115.2.3.tar.bz2";
locale = "es-MX"; locale = "es-MX";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "b13f28b18f02119ed631f0dd7dc92e1e52053370987009846e01dcf63735f5dd"; sha256 = "2ce450466fa1c3e10ba577cacac3341633448334821b72c6d7b3d4b974a66884";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/et/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/et/thunderbird-115.2.3.tar.bz2";
locale = "et"; locale = "et";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "9941b5a3a35ae4059f16feb5471d08199a54cbde85751098ae612c806fcf8b5c"; sha256 = "f5f2fa06b92117a63dbda7d9206aec6f1bb2c586646d8469772de5f2b6338549";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/eu/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/eu/thunderbird-115.2.3.tar.bz2";
locale = "eu"; locale = "eu";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "b7246ce71436f1894cc8440388e826d2b84d57e5b3666be6fa369ca80eac6aff"; sha256 = "d284572381722dfed9e0ba1bc4e0b24e47dff673143852dd0a708d6ec2498dac";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/fi/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/fi/thunderbird-115.2.3.tar.bz2";
locale = "fi"; locale = "fi";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "baac69f0a0c19ac5ca4ca541a67369dd94793929eaedd9e061f5edee39715864"; sha256 = "0f9e251d0c9794349411f1cb0c32e2e941774ae083abde0f6502811dc1ddd5f9";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/fr/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/fr/thunderbird-115.2.3.tar.bz2";
locale = "fr"; locale = "fr";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "2b19d69fdf5fa542e513920b0e9f0616b74d6490dcd24e0f6fb6a50948cf7c2a"; sha256 = "cf06102a80ac1a5ec92716418955dea376274d5b807c2ba93763ac05a9a14c5e";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/fy-NL/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/fy-NL/thunderbird-115.2.3.tar.bz2";
locale = "fy-NL"; locale = "fy-NL";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "56abf13ec4453ad693e825e771fc02bd6d8ea87d795d9d5025c737f6fc57058c"; sha256 = "b25415d1cba48034f420142f78805284bb756885f30284b64343ed0a395abb54";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/ga-IE/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/ga-IE/thunderbird-115.2.3.tar.bz2";
locale = "ga-IE"; locale = "ga-IE";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "640c68609d56c0a838305510ba208a9d9ce216dcb5fdec7126587ac418d8c067"; sha256 = "9915c6d145a3f223086b67aa8e78b77648fe0bd5191fcf28f52d9b67026f5f4c";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/gd/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/gd/thunderbird-115.2.3.tar.bz2";
locale = "gd"; locale = "gd";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "c068ac36f73cfb2add5531e72e0268ec1d7d62505371fb0c7691655311fc26de"; sha256 = "01cf0b60172cf490c54193ed53dce0f482e7bacf979196ca5e27bdaac752dba2";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/gl/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/gl/thunderbird-115.2.3.tar.bz2";
locale = "gl"; locale = "gl";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "5ea2c1bbd289d4a04306b247d773ee7fd30b93999c93b1a013a3b91ffcf5d843"; sha256 = "fd20ad5e92ec3dee3ec3660230f2b1c3d48581961aae06176e7d06f4fe84d9fe";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/he/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/he/thunderbird-115.2.3.tar.bz2";
locale = "he"; locale = "he";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "0b343990193d616856c61d27655560e69114a41302806fccb688bc39e74c3ee0"; sha256 = "93c3c610f0115365e3de0c2e1219986eb4b94b49d96b7882b65b31de35d93798";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/hr/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/hr/thunderbird-115.2.3.tar.bz2";
locale = "hr"; locale = "hr";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "7a2b5b4dbdbf7ce166ee378d55d3862fdbfccc1a4508cad6f042bbee4967e648"; sha256 = "d9114a82f7c0f0440eaf8095ddcad7734967f174e846d518f603dedb40323f56";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/hsb/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/hsb/thunderbird-115.2.3.tar.bz2";
locale = "hsb"; locale = "hsb";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "624e6b231cd4b662c995237fa5c17e744106eca90cf6936877741ddb936a6880"; sha256 = "304e8fe3b2be93a79544bb5747b17d2dd2cb34300e48913b4b3e37e925ef30ed";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/hu/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/hu/thunderbird-115.2.3.tar.bz2";
locale = "hu"; locale = "hu";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "8b9a914ddcc8d86986d258e106584a7104b15d4e6be54c3f39df773cf0cc7aae"; sha256 = "a7ab214e118c204ab3f1b9a4a6641d70b65241fa97ab6d1152b34c757bca0690";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/hy-AM/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/hy-AM/thunderbird-115.2.3.tar.bz2";
locale = "hy-AM"; locale = "hy-AM";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "a1090c31b81ad89734fefffe63b4c01c2a49bab91cf94d32c0ca429f9ae2409f"; sha256 = "1c8a67c5d9e6ef8cb909bc4e2ec77a6b9159b21d3829650cc54ed9a6cc1cb7d1";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/id/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/id/thunderbird-115.2.3.tar.bz2";
locale = "id"; locale = "id";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "31ac099a9049edb6e74d5e4443b11668a5cab97d82470d08df84f8dc9930b882"; sha256 = "072d442f5d49c13704a6d5446dd04df6460b009676a4a7ff2a8b5e5a93f1a1b8";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/is/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/is/thunderbird-115.2.3.tar.bz2";
locale = "is"; locale = "is";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "c11befb7b259e6883b85730a1a423745782c80fd6d49ae1754d66789c553c2e8"; sha256 = "fbf73fad3256e104a4b4f7c175f0c5df34453100cdcf701cd075f7ee82feed32";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/it/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/it/thunderbird-115.2.3.tar.bz2";
locale = "it"; locale = "it";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "8e2f30430057194862d93e9fd076b42ac33499ba2fa38c3330070b872faf4693"; sha256 = "f04eaaecb3f03254ecc07f00f414a8eb458a8a8905024260c83fbab363e0a77a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/ja/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/ja/thunderbird-115.2.3.tar.bz2";
locale = "ja"; locale = "ja";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "36058ca20592a045a25621b3cb6e085fd7e4c79fb4d85e8851b1bc9429d7b987"; sha256 = "d05d93887ccd2dc7eefb5682abdec36f59df61d318ed68133047674aec042409";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/ka/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/ka/thunderbird-115.2.3.tar.bz2";
locale = "ka"; locale = "ka";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "1187cd5eac5511f48d93e053dd391b0b484d2ed8c925f4acd267e1253938812d"; sha256 = "923e9a11d26bec0cc2b46e89041c2dc84ce803c32f3083c20c262bdfa1bf3c92";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/kab/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/kab/thunderbird-115.2.3.tar.bz2";
locale = "kab"; locale = "kab";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "1058188515e686ec4a2cdf19bd18333b6786a66c8fba768c39435a9b53f6f17c"; sha256 = "3dd8133d5991c1a87740d2923a12716b653f3c7f5643c1670d20e4187166d0b7";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/kk/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/kk/thunderbird-115.2.3.tar.bz2";
locale = "kk"; locale = "kk";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "cd305ce3935fbb6b028f7eacb978bc05ebe068c90c67e35f8cb020a4546e50bb"; sha256 = "f9d08c465cdb736b6939e54a4ae19f33491ae53053332333d6233fdec69943f9";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/ko/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/ko/thunderbird-115.2.3.tar.bz2";
locale = "ko"; locale = "ko";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "a54216fc0f6d5e73c830a8d2af6b8b67f76469c5312b18aaa90c5561d2400dcb"; sha256 = "a50dc23492367b9afdac08c3eb0c7d20a5379954c8105efde335a9b356a210be";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/lt/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/lt/thunderbird-115.2.3.tar.bz2";
locale = "lt"; locale = "lt";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "9cec3ecea52bf0de2be0afece9f93a83cd89c81a0fa5531aac5d0143c19e3eb5"; sha256 = "e00e3de9b69cef1db8eaa59422e1b32ed2eaf2838bbadba119dcbf20394af3f6";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/lv/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/lv/thunderbird-115.2.3.tar.bz2";
locale = "lv"; locale = "lv";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "1d40bf00bfceb69058995d1b31d7eb1b95522b9c873c2e353bf91eeabc0fd4e9"; sha256 = "01dc6a0ae0f013ef67d6e5b9135e7f65e7883356a028a66940c63273a7e9dfb2";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/ms/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/ms/thunderbird-115.2.3.tar.bz2";
locale = "ms"; locale = "ms";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "bf2257ee492c4b20dd2c393e783398379361fce3d6eb0e3c697dcc3e5c7692be"; sha256 = "b1cb2d7f51adb6ad98e94d286d6143fa7938806ed44b2aa86144b9eefa2950e0";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/nb-NO/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/nb-NO/thunderbird-115.2.3.tar.bz2";
locale = "nb-NO"; locale = "nb-NO";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "8d10ff20e72063014de0af53284b6394dd137303de181a5568085b63e3556530"; sha256 = "bfb8a81b674a0c924755162ace04c5367d723a9c6c1d1a179657f23c30624eb8";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/nl/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/nl/thunderbird-115.2.3.tar.bz2";
locale = "nl"; locale = "nl";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "afe6d63a0394d2130b31501c8ed3a7f2d0f1f063eefc737679ba4eb22e7f9f94"; sha256 = "cdf8ac214968a31972bb077a9e2aa26fe7b6dfa9b5b4c7e8d6b34dc7b78466e6";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/nn-NO/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/nn-NO/thunderbird-115.2.3.tar.bz2";
locale = "nn-NO"; locale = "nn-NO";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "68e99bf9cf99fa8d8528dc7c18dc482922541ecbfad39251a1ae49dc8f73c0a2"; sha256 = "741b5c925dc5b299cd86bdc4212b8d1074cdc04202f10a1d052ea17abfde1b4b";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/pa-IN/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/pa-IN/thunderbird-115.2.3.tar.bz2";
locale = "pa-IN"; locale = "pa-IN";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "d112133d7f9dc5d70bda58261f5b17fadd1da8ceb33f68ff98764658030266e2"; sha256 = "0401e65f21bb164768eac9c6115e854f63b7c4382da2d385234f117c6c640e4b";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/pl/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/pl/thunderbird-115.2.3.tar.bz2";
locale = "pl"; locale = "pl";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "a670c46af55bb5c01cca9763fdc51c7ba883f3e61419e49313de79030ee8f300"; sha256 = "455983ba636160be7b4f334ab58b879fb15a8552c511532e0f8ded4a70fa896d";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/pt-BR/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/pt-BR/thunderbird-115.2.3.tar.bz2";
locale = "pt-BR"; locale = "pt-BR";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "94a4c6dc574ced2f5c8853fb8aa5028bd633372119875a84039b40945cd062af"; sha256 = "f65a8e0c421cd379526c6d057229bbed4174f96b32da0e4c370d26a2d77e0de8";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/pt-PT/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/pt-PT/thunderbird-115.2.3.tar.bz2";
locale = "pt-PT"; locale = "pt-PT";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "510052bca71d439273e6101dc45a0dc5d5a0d0d73ca7d10799b60983ca8dad8b"; sha256 = "f4d62c18b6a70b9cc247511a8d9672e55fc07f5446e0fb51c94ab5800c4519af";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/rm/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/rm/thunderbird-115.2.3.tar.bz2";
locale = "rm"; locale = "rm";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "9cbf37597f5273d45e7f82fd6a63c4664621886c5b517b139ba32cc92ed699ad"; sha256 = "6e2d8a0895d8c111d00aba6acf82bffde11fd1a295cd5703932d39dc21e4c463";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/ro/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/ro/thunderbird-115.2.3.tar.bz2";
locale = "ro"; locale = "ro";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "3824fb33a770c42cfb737b1ad2389df31d898f64f5464ef92b65446d84526276"; sha256 = "903686033b896c95757243f2030e3353adddbe52899c923b2df5c6ae95bdb0ad";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/ru/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/ru/thunderbird-115.2.3.tar.bz2";
locale = "ru"; locale = "ru";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "25d898a873fac3aeedd635e35caccb012e2cfcbb3eb9d9b04e32fba331409fc4"; sha256 = "7d42c1b399d901355fb1d7523c690284a721da26015ac59480c3c12e0f61fe47";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/sk/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/sk/thunderbird-115.2.3.tar.bz2";
locale = "sk"; locale = "sk";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "6efd3f4af7de7c11c5a028a5be5de0459067cd455c237ed1df860b1bb2c2a70b"; sha256 = "6bc2ca89fd2e7bc5ed283deb8a55a6faafb20accc9182e4bdf70c6c8c68d2849";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/sl/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/sl/thunderbird-115.2.3.tar.bz2";
locale = "sl"; locale = "sl";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "87bdfa7acdaaeb4082190296f16540153696c3521ebdbf83b05e98b34d97423b"; sha256 = "8392a334fc05856bbac484b800d368a739d19a86db69d905ccdad58dd717aaca";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/sq/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/sq/thunderbird-115.2.3.tar.bz2";
locale = "sq"; locale = "sq";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "da6c4f5552bc8a13503af5228cc8197f76d4045ccf44d40839d46dbd3021cf8f"; sha256 = "e4c8261948209d5243a1f6c016e3d88e7dffd46bb7eed6672360cac7c5ba5845";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/sr/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/sr/thunderbird-115.2.3.tar.bz2";
locale = "sr"; locale = "sr";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "3f816d3718af424ce1ad395ae26899ee6a81d0b9cbc351b24284774f243f8a62"; sha256 = "a7b4d4ea1e2739e9072e79c6485096704efdcb197e60ede508bf75786641974d";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/sv-SE/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/sv-SE/thunderbird-115.2.3.tar.bz2";
locale = "sv-SE"; locale = "sv-SE";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "961695ad2889a4be8e0efc67537fbea786f72d9d0f900bc64346857249d74fde"; sha256 = "94ccbb7939119926424f2ece7294808df529524a8578a479549c87268dde0848";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/th/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/th/thunderbird-115.2.3.tar.bz2";
locale = "th"; locale = "th";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "24b1c5b1560f6e4e9ccfb9d2913e94c817b5bcf460d08f6a26fe75e3bd84c75d"; sha256 = "c681171a7593aea1455404447a7909b21d299acd5ed8eae2aa7cbd1fd3b2ebd0";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/tr/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/tr/thunderbird-115.2.3.tar.bz2";
locale = "tr"; locale = "tr";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "7a45630926c83121d5b39705a45fc6534616df0a822c6f61c3d89bf8c5681563"; sha256 = "0af1134ead1e970e8f1244b07711b2393faaa5224f027fdb274186aa72837901";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/uk/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/uk/thunderbird-115.2.3.tar.bz2";
locale = "uk"; locale = "uk";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "940ef8d84557c312b632b67f01f3b68dc1701a159caea8de34b4b950da05c8d9"; sha256 = "fe2ed6649000e226ccd6285189f6807e98eafdb799f16299fe66967cbbd9a01a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/uz/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/uz/thunderbird-115.2.3.tar.bz2";
locale = "uz"; locale = "uz";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "1fd5533ac342d1a32d37428458fb2a08a99cf366b04cbb55acd745b8f931ba79"; sha256 = "32fd9fd79fdde70344c2938ac250523c99e0f3ade4674e9043b7d8ef5601328a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/vi/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/vi/thunderbird-115.2.3.tar.bz2";
locale = "vi"; locale = "vi";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "1156dd69b7ab889c2e812096e3f8a16d85d11e88b730e35aa6c6d4213410b874"; sha256 = "4a9eadabecf8c92173ca42811a6000356da8cb701ffcf5972bb0c3c056dd0fcf";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/zh-CN/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/zh-CN/thunderbird-115.2.3.tar.bz2";
locale = "zh-CN"; locale = "zh-CN";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "e02ee486284735cf17e44fd15145265948e1548ba257be502f59662f81132278"; sha256 = "9713705b9684e2769b29e9d8ce1dea726ef7c57b808f686c887c37844f17318d";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-x86_64/zh-TW/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-x86_64/zh-TW/thunderbird-115.2.3.tar.bz2";
locale = "zh-TW"; locale = "zh-TW";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "1e0f7a45a93457c7a07366435df7e85c4a0f40dca7ab5a189495087aad11f0da"; sha256 = "26a531640aa90f25cbbfa2a4e13e6fc655fe8a7a8da638ea85862a98c1663dc7";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/af/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/af/thunderbird-115.2.3.tar.bz2";
locale = "af"; locale = "af";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "3ee2902b72a9df7b2445fd4e729f8654493cb4b8052433dfd86dfecc26f3678b"; sha256 = "32eeb18d57468c29615c60206d14b9052af7fefc8e698131da77cb70c0b57255";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/ar/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/ar/thunderbird-115.2.3.tar.bz2";
locale = "ar"; locale = "ar";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "8a882924914f3d7c7483ef778dfee8763102de06944f31b750fe95b7830da1a8"; sha256 = "33dd953ebefa4aedf7dccd27b70e29615dca58609c10bf99219b06e84c13c3ae";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/ast/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/ast/thunderbird-115.2.3.tar.bz2";
locale = "ast"; locale = "ast";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "5a8feb49d844362b8938aaeca6d42a7d385cddfe8cfdb9e90b4fd304260895c0"; sha256 = "c60273da4cfdb6c8796157da72548278c4fb6b7d8283785d0f71acb98316df4b";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/be/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/be/thunderbird-115.2.3.tar.bz2";
locale = "be"; locale = "be";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "b0376f86764c564d2fddc6a7c868924f14ea1378c8b503b651eaff83bfbcfdbe"; sha256 = "060a27d6f982d65865dda71cbf70fd4be9d0f7889d928530162bc774c599d237";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/bg/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/bg/thunderbird-115.2.3.tar.bz2";
locale = "bg"; locale = "bg";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "dd6c5ff2a77340e03dff6779f620e5c0df5a51b1c0fcd4171e4436d301dcf1a2"; sha256 = "76dce40becbf63c6703b9c44db199b19cb12cebd85555b51900dbf13fb841ef5";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/br/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/br/thunderbird-115.2.3.tar.bz2";
locale = "br"; locale = "br";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "7a6283099532171a9f695a1a84315c334f87391f20f41421caa13a82c6ffdce6"; sha256 = "14d05c4b402b2c5d3eaacba41d6614578167139de5df3f14e0630b328c7d1d7d";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/ca/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/ca/thunderbird-115.2.3.tar.bz2";
locale = "ca"; locale = "ca";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "46cf076753e50dae6295a50f0fe55fdf1462fdde5f17eef865adfa2413b76c4a"; sha256 = "e6665ed36b6682c05ff31ba9f197f3d799742242c81a6550445aff085173b199";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/cak/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/cak/thunderbird-115.2.3.tar.bz2";
locale = "cak"; locale = "cak";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "af4a0806d404938b720af1c50331d8b20c049251629ce8e6040d54f0da3d6e4a"; sha256 = "a58332ddc60f4bd8498261e8230ea0bae3d311dd188d1f57e80150922085b9cd";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/cs/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/cs/thunderbird-115.2.3.tar.bz2";
locale = "cs"; locale = "cs";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "7f0af85bea543efd7ab154e42bd8aa077c96d8878f6850f0844daa3168af03b1"; sha256 = "62d643f7018fbb4495086a6368b664efbbf627e9f86f7627de889f63cf96cae2";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/cy/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/cy/thunderbird-115.2.3.tar.bz2";
locale = "cy"; locale = "cy";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "7c0992c257089531ec5b080f736bd10df364cf03f271e85d72398b28bbf5ea6a"; sha256 = "651ed033c83f8f6a9ea3aa991e39536aaf0dc93c6b472e8ce8198054711123ce";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/da/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/da/thunderbird-115.2.3.tar.bz2";
locale = "da"; locale = "da";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "18c73fdedad32683ff300d7ff0518ebc800bdab42bb54bd09820d9783770417f"; sha256 = "c28dd14eb5e6a9825db2d0adb47db842f431ac101ac10f3b043187cae836bf4a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/de/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/de/thunderbird-115.2.3.tar.bz2";
locale = "de"; locale = "de";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "a344a7de24b1c83882b395cd82dd1a9e6241b4b549a21290dea9efec9640caf4"; sha256 = "850bbee1c29d24af7846d58c4f6ee04cdf34bf7784175a1d9789e71a6ab37e26";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/dsb/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/dsb/thunderbird-115.2.3.tar.bz2";
locale = "dsb"; locale = "dsb";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "88f81c3fe9096d84fe3461b1cd22b1df94fe4863ec2f10853f6ca69cbe4d812e"; sha256 = "a7aaeaf73b5f98fd3e95b31c7710c40e3e1d3af3db8aa0628ee82bbd738c9249";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/el/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/el/thunderbird-115.2.3.tar.bz2";
locale = "el"; locale = "el";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "e620620d471704ff8c7a4783f797a5df5150adf0bd359fa032c46336f4a608a2"; sha256 = "adbe0d57c756db87e17581743850b68b23e910fe9e89afa2acb349d8c3876fbc";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/en-CA/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/en-CA/thunderbird-115.2.3.tar.bz2";
locale = "en-CA"; locale = "en-CA";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "f1e138849aa3fa71f23ce33710e7f547857b37cc66ba85853d3037e7f6c83c48"; sha256 = "7925e4738c3337180787664a56836594888653ad8603ccf42d784ccca87798bf";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/en-GB/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/en-GB/thunderbird-115.2.3.tar.bz2";
locale = "en-GB"; locale = "en-GB";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "4425e8e5af32d72844504db55cd60ebcd730614e6e8edfe65c177aa2e8937d50"; sha256 = "6ebdab8c64f9faeee42569941da45ec8a4dc944c31b625e8c6d995af24d6874f";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/en-US/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/en-US/thunderbird-115.2.3.tar.bz2";
locale = "en-US"; locale = "en-US";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "c31a3a9f85d2d22812846dc91fecd7cca9801542cf5fcc68266ae44801df7575"; sha256 = "b92adc1c2a593f16b7998c2b8b4227731ab78294c129a0ccf3ffeab311b12651";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/es-AR/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/es-AR/thunderbird-115.2.3.tar.bz2";
locale = "es-AR"; locale = "es-AR";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "34a1296b1ddc22ea34c1996759cc74551533841e9802014085b18dd9e0cd1d5f"; sha256 = "d2a477279e2336e745071c7b9e99f8594380e69f27a64615d28dd25b846dd9ee";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/es-ES/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/es-ES/thunderbird-115.2.3.tar.bz2";
locale = "es-ES"; locale = "es-ES";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "57b0bdac83109b513858ff30598bb64d113a5bff0bd77f0f0b5f2946f8ed89c5"; sha256 = "857e2f54b4084840b458c9159af08c724fc951fba56f021ec497bf83dad89bca";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/es-MX/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/es-MX/thunderbird-115.2.3.tar.bz2";
locale = "es-MX"; locale = "es-MX";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "e251157e06a0c380075a00f8690d387718bd553ec2aabf8c81c1951b141c2651"; sha256 = "5d678d38c4ef516d893c9f4ce3b98bccb57357a10dc7eecc167b2ad3136ab8e2";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/et/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/et/thunderbird-115.2.3.tar.bz2";
locale = "et"; locale = "et";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "b4043ffdc9f5454a799243d5657860bbeb870d7343be0fc3c197527e4b20892c"; sha256 = "7afe03b3090b8f305947da40308ff4bab077f0f226acd46ed4d3357041060647";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/eu/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/eu/thunderbird-115.2.3.tar.bz2";
locale = "eu"; locale = "eu";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "001662ce9fc1a7c9ab82ed4f0dbbc49d0fa0c6d5b3ae93573dbfd44af0e12a33"; sha256 = "d00caf592c791ffccb36ddf6371a9653cc89808455564ddfbb26f6105b33195e";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/fi/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/fi/thunderbird-115.2.3.tar.bz2";
locale = "fi"; locale = "fi";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "c0c368797911327088819de0c1e6e6dbf6f7ccee871c11695ce64cacdd56341d"; sha256 = "1adc0d3e0d68a2cc776d0704a28367e26fc3aa4bd72e136c28b42a333769a258";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/fr/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/fr/thunderbird-115.2.3.tar.bz2";
locale = "fr"; locale = "fr";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "cd444fbdd2febd5aeee98ba4f4db737b3e6cd7a85b9cb456da179bd4cb9f67dd"; sha256 = "a03b04fcc076b74d89bdd74490412b169b3ab830c09f96f29a143b1ab06d9f6c";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/fy-NL/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/fy-NL/thunderbird-115.2.3.tar.bz2";
locale = "fy-NL"; locale = "fy-NL";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "43203b502f5231c0caca6ea389a79558d5faa74f3b6256c3fe11c2392fbe45a2"; sha256 = "d6fb5ab8b4ab7652bd01e95dd5cfa275b0468dc488fa857ffd8a3cc18cd96c76";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/ga-IE/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/ga-IE/thunderbird-115.2.3.tar.bz2";
locale = "ga-IE"; locale = "ga-IE";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "0a86e1f993cc9f6cb9d19a481e028458287e765786bb5eb26fa1f45c253ef8e5"; sha256 = "1aaa63178112ce993d13cd175e7fba32e8045ff76ebcf77747743abb3537d4ef";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/gd/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/gd/thunderbird-115.2.3.tar.bz2";
locale = "gd"; locale = "gd";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "3331e8a202a131e4b2ebaa5990d5b4976df286287eb1d22381ddac30368584da"; sha256 = "608d5ed3242c125a7956ba78894782d8c5dd090dcb7cfa378a3143d82e6705cc";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/gl/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/gl/thunderbird-115.2.3.tar.bz2";
locale = "gl"; locale = "gl";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "ddf7a4655bb5992c064d26b8f6c2ebd68b57f8a08168699f385848ef8471b600"; sha256 = "00715da49525cf55ed336d76ca571e451f36b27d6d8d50524ef2a8e8c9e7bac8";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/he/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/he/thunderbird-115.2.3.tar.bz2";
locale = "he"; locale = "he";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "d792d930eba7c959cae93726c56bbe172e372067d0cae36519b060d996e33ace"; sha256 = "23dfefa9a76e70a71ccb6bcb2f392f2a4cdeae58cc276073be8b3256f8f338d5";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/hr/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/hr/thunderbird-115.2.3.tar.bz2";
locale = "hr"; locale = "hr";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "4e18f2e41e066226f90bc324d0353e0cfe50e8b6a819e8e15e2a9c11ca15520a"; sha256 = "ef8fbfb9d46a83fa6ffd854d170257a92942db8ec220ad3c2dbee7ccddf3e567";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/hsb/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/hsb/thunderbird-115.2.3.tar.bz2";
locale = "hsb"; locale = "hsb";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "f4a2d7b3f45b8fc238e62acec32a2f5512834933246f4f9c49eb8d77437e4fd7"; sha256 = "a7ce3af8dd8305304c3904e1b9198e64e04a869d08c3b8a963ff85443809226d";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/hu/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/hu/thunderbird-115.2.3.tar.bz2";
locale = "hu"; locale = "hu";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "73ea347abc31da1cadabef37698debe1656f57c40014ffeb6bc66293c21cb85e"; sha256 = "9ee0ebc7a89774a5dd2599ba88120a4eccd853a82836ae084a5a651da270b09e";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/hy-AM/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/hy-AM/thunderbird-115.2.3.tar.bz2";
locale = "hy-AM"; locale = "hy-AM";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "5829588a384a770ab25008ccb16ee082c880d8e99082ab9df59c4d92e21aafd6"; sha256 = "76f359b8aff76d27a2028c02b0a82c7c9227ce9f1142fb1030b43bdff9070acc";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/id/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/id/thunderbird-115.2.3.tar.bz2";
locale = "id"; locale = "id";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "77a6b3c5ba1454fe8e8a93b463b6cbe841da25ba352ed1eeba7bb5f32108cc18"; sha256 = "4b6921bc43312069c94be12cf0ac69bd25bebc5dfe10151cf212bc312db4ef7d";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/is/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/is/thunderbird-115.2.3.tar.bz2";
locale = "is"; locale = "is";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "aeede33f1040ee9e9647df43bc88bf848017a91e2fb8ad42f5c109b42aa0f533"; sha256 = "2844eae9c4b18735a498935decc625dd7713efd91c8e36699acd2dc811b52b86";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/it/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/it/thunderbird-115.2.3.tar.bz2";
locale = "it"; locale = "it";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "7cfd1ad0a4ad00bcb16539a8ff1a4b54447901501f05cba812245c70b8044d5c"; sha256 = "823a78e62beaf2881990f829b18ff5954c438c34a96e039b92b03ed6cac5bd37";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/ja/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/ja/thunderbird-115.2.3.tar.bz2";
locale = "ja"; locale = "ja";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "d9d8c0983592c4e44374739d089759c13cdd7d6b912efbab5972a97ec43ec00f"; sha256 = "292728019d3401b8c7677df06c3c1eb7eefb4b761bf9af2f1f1f3fc071a85ac9";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/ka/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/ka/thunderbird-115.2.3.tar.bz2";
locale = "ka"; locale = "ka";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "c3ac587b9d0cdfd74babff266f81538cdd701b75ecae61b9c0f7cbf499e16423"; sha256 = "587304b4ca494b7928f75deea27b05225d2d271d7880f66174903b66b317cfc7";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/kab/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/kab/thunderbird-115.2.3.tar.bz2";
locale = "kab"; locale = "kab";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "dfcff22ad267fafaea7d2e8892e50d24dbe191d3133ba927d2077b306a92d5c8"; sha256 = "c34aa118f7f1a1506f4df973d252131a942d64b100fe8580befc113075b6bb27";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/kk/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/kk/thunderbird-115.2.3.tar.bz2";
locale = "kk"; locale = "kk";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "6ab9f8ca37108634778631d0f4a4231a9fd6c1a96e1b8fe48bd976ae6c4176be"; sha256 = "a0c7faeb48a54e6e15abf0b20f6a177fcd2e0cc0c3538aced905435dd4074e81";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/ko/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/ko/thunderbird-115.2.3.tar.bz2";
locale = "ko"; locale = "ko";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "679d3f285efe8e3cfef0d6aac96e56638705f479cdd7a85decbc3376f684a362"; sha256 = "974f6fce7f5d00dbc9c0991e24fad51d0c91a53e0e743f1d991d01be9a652240";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/lt/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/lt/thunderbird-115.2.3.tar.bz2";
locale = "lt"; locale = "lt";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "31c5bc57a65c371d13d6ecae2d9806462614cb0f25ae02385d64ad9b78e03e16"; sha256 = "23aa86f6d2f6e6d27351a9a3c7f4034046ca5f1d840140ba2f9e8002434407c9";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/lv/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/lv/thunderbird-115.2.3.tar.bz2";
locale = "lv"; locale = "lv";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "4d6dc7af4709b1fcd30bade79462faba7f97b63969be5d03b0bd06de4b5b3545"; sha256 = "8a2d4b1e023c437632c1c3210131258f17db0bd84ccff19934f214744c1f336a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/ms/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/ms/thunderbird-115.2.3.tar.bz2";
locale = "ms"; locale = "ms";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "a7a735fb888d4e1c93d5593c88e8c14080c3b05460c6b6b2ffedcc1ab5c1a53d"; sha256 = "b34543abfdab6a58722a8348c45e2ca18b3aa3f340b4db1f07321fab21af5c34";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/nb-NO/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/nb-NO/thunderbird-115.2.3.tar.bz2";
locale = "nb-NO"; locale = "nb-NO";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "47df0274374aea382dcae2a0d083fb36fc666500b320a0e3eb97f056e0fb02fa"; sha256 = "f2ccbbebdb7773e77927c9d5c36b9792c9adc2d32f9ca6ff07299c82367de071";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/nl/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/nl/thunderbird-115.2.3.tar.bz2";
locale = "nl"; locale = "nl";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "95c73823294cc2d9348ff4855d8bba4aed0a61d430ddaabaae90be250d198e1b"; sha256 = "2cb74bdc8959d49893b6d017a916ee61f6be097bc69ea36490e5be467f15f0e3";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/nn-NO/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/nn-NO/thunderbird-115.2.3.tar.bz2";
locale = "nn-NO"; locale = "nn-NO";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "9b170811ddd271db68c417650da56d9eb61e976e20a6787b5505497e3acc588d"; sha256 = "aa8cdebfa948469f76ebf795c96002f86878d7507a6d51b6df864bfb525b905f";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/pa-IN/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/pa-IN/thunderbird-115.2.3.tar.bz2";
locale = "pa-IN"; locale = "pa-IN";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "a25dc5ebf2ba028f5f9a5e23eb90e0862ead94c5d8476d2f3429d640c36a75a3"; sha256 = "6815b6a2b689f6a03dd85f8fc516cd4834b02bf36ba961827472b2edf54a84f4";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/pl/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/pl/thunderbird-115.2.3.tar.bz2";
locale = "pl"; locale = "pl";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "dba916bca6c19c0771b7ef35199c89e77864f200df4ae40b15c3483ba3f02b2b"; sha256 = "401acef92915e9cea136de7f3c3d2cbbf7f70baf8a322846f477497f4d3f1eff";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/pt-BR/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/pt-BR/thunderbird-115.2.3.tar.bz2";
locale = "pt-BR"; locale = "pt-BR";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "2d3583f7062659a8642ee952205235abcde36e86918e905be85a1070ead65f88"; sha256 = "c94d05733c3b3cd7d7a48f684f5354eca06760988a94be3689fd88fbddd79f11";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/pt-PT/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/pt-PT/thunderbird-115.2.3.tar.bz2";
locale = "pt-PT"; locale = "pt-PT";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "c09cffe7f7043f6c757e478e46c30ada218999437d9e9748bb1ade9891365195"; sha256 = "cd872217ce43cd339789ff2f7e3a05a8e120fb6033051caf04120b478f486863";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/rm/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/rm/thunderbird-115.2.3.tar.bz2";
locale = "rm"; locale = "rm";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "4a1853d5c7915181e949ee64611ea34525bc41fb72f16b02b083d81265d7bab9"; sha256 = "6f9fd2c445682bbc08848f1a233744424f20076a993e8d55bad9f42fbbd7df77";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/ro/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/ro/thunderbird-115.2.3.tar.bz2";
locale = "ro"; locale = "ro";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "397379badeb37e27123c5316422567e7b2bcf1c3033a85d8549866f06090d2e0"; sha256 = "8b10921f83e126d6626d36bafb6f92aea8a2850788b36e61b197da67aefce65f";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/ru/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/ru/thunderbird-115.2.3.tar.bz2";
locale = "ru"; locale = "ru";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "e23ceab86e0cce57522bea456f396fdf96bdca1b30eee4d7a2999709383544ae"; sha256 = "79deca0f10cd4e6376eeb45a3717abf9876eca7a634ddffc8bc2faf8a7fe16ea";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/sk/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/sk/thunderbird-115.2.3.tar.bz2";
locale = "sk"; locale = "sk";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "87027b9270956fffa744d5d35b96094265a735eb7c361fd3badd2012b34e13ff"; sha256 = "870c6e9586528ce5bfe5b62344ff22464ba35264dd4549d646aee542ee819ba1";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/sl/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/sl/thunderbird-115.2.3.tar.bz2";
locale = "sl"; locale = "sl";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "cb65c05b17419a69b0835a7be064e40c6cd29a114b28e5682cf5df2d6ff07c22"; sha256 = "bbb4543683a244df04e8e0ac21e61eeafd4f5b183b8cd2e739fb98304f24d3fc";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/sq/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/sq/thunderbird-115.2.3.tar.bz2";
locale = "sq"; locale = "sq";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "0a04b9f2de594d18a39ed04dbf503c50afe5281100c04887eb1d907c5268edb5"; sha256 = "0ef0b25b190e51ba3d8b41db0ff18ba89271dc3f04b2b1477b3ece970896b4b3";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/sr/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/sr/thunderbird-115.2.3.tar.bz2";
locale = "sr"; locale = "sr";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "30f05101328e20f56c0e45505a6b579f19aa6fe8e88014be5f1b201dd19b8567"; sha256 = "a47468bf55cb1279668be587705e7deaeea0b30384613ed5b3048e89e91fafdf";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/sv-SE/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/sv-SE/thunderbird-115.2.3.tar.bz2";
locale = "sv-SE"; locale = "sv-SE";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "1bd3ece9bc7d4c51d2f25d221eda2105e1f8ddd1071391a27d2875cd246f331f"; sha256 = "cac1cda5f7d524ef6be3a48b1d8ad0bffb6ed831105b93b9ada402c87f025ed1";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/th/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/th/thunderbird-115.2.3.tar.bz2";
locale = "th"; locale = "th";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "6a448f673b6c4991faf6d6142a1557b2bd9f9c2f9cd540a7d48b5d27ac7d0419"; sha256 = "ec4b773869ff9807b3491fe97fc873804674163b7ddafaee403d312015ec5d1b";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/tr/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/tr/thunderbird-115.2.3.tar.bz2";
locale = "tr"; locale = "tr";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "87844be2d24111a275eb6e557cae904167c0c817bd98d8af8d198c4ca126950d"; sha256 = "f56aec08002698a07e3d0c03b40b644f3af1fdc9644d6ef01c4f914175821a38";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/uk/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/uk/thunderbird-115.2.3.tar.bz2";
locale = "uk"; locale = "uk";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "4ea9214c1ca561dabc43be1a55d9e8bb56dad60b116f0e8814a2fa0dac2d740c"; sha256 = "210665ce98e12e7613d7dfc8bf9883a1bd834120614a3d4e5af7fc406c804211";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/uz/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/uz/thunderbird-115.2.3.tar.bz2";
locale = "uz"; locale = "uz";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "ca6a23a0234a15e05f5ffd627102bfd357882f8187e4ee5568173a926c186163"; sha256 = "692e027fdfcf71452815dbed7531d8b118eff89c1e8c3ebc9a4d5ff39f0aef27";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/vi/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/vi/thunderbird-115.2.3.tar.bz2";
locale = "vi"; locale = "vi";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "14ce4927f2695c6c7e1b35f9f0e00600861c8cf05351da21e3c19aa8f6243b2a"; sha256 = "0f6a2e29b34738e803c5a086bf7e644faaf462c155887b1e757b4e85e866fc7a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/zh-CN/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/zh-CN/thunderbird-115.2.3.tar.bz2";
locale = "zh-CN"; locale = "zh-CN";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "014933d85792304b836d67bd449b85be0a17be014f842f9fcb1cf7a2e3077329"; sha256 = "24f2bffee3258c5e344bc46117c079e706e19df7822d8a3407894cba47c25130";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.2/linux-i686/zh-TW/thunderbird-115.2.2.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/115.2.3/linux-i686/zh-TW/thunderbird-115.2.3.tar.bz2";
locale = "zh-TW"; locale = "zh-TW";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "339fa1de720d6d24b778757fe4dc0d5a7b663e7ce608600f78821199dc596441"; sha256 = "a88f855669da4e009dc0198ae5599ce647d10eae0dca1c8f7331d426f64508d8";
} }
]; ];
} }

View File

@ -43,13 +43,13 @@ rec {
thunderbird-115 = (buildMozillaMach rec { thunderbird-115 = (buildMozillaMach rec {
pname = "thunderbird"; pname = "thunderbird";
version = "115.2.2"; version = "115.2.3";
application = "comm/mail"; application = "comm/mail";
applicationName = "Mozilla Thunderbird"; applicationName = "Mozilla Thunderbird";
binaryName = pname; binaryName = pname;
src = fetchurl { src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz"; url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
hash = "sha512-RYQ3CcIesZ1p1DIF2msvlDtYSBGimUL/7xkzwc54grSARrIBwv8Zhlj+wsU9R5MR2KNTcxr+bqU/l7MWdNYHSg=="; sha512 = "983547b2be67ffbe7727efa50bd925f576ec19bcfcf940d5d36def19aebea27494b3af0a37756a441b544ebbca0cf546fcaf8737e76a859b4d860c8294bba1dc";
}; };
extraPatches = [ extraPatches = [
# The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`. # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.

View File

@ -1,12 +1,12 @@
{ lib, stdenv, fetchurl }: { lib, stdenv, fetchurl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "3.3.2"; version = "3.4";
pname = "hmmer"; pname = "hmmer";
src = fetchurl { src = fetchurl {
url = "http://eddylab.org/software/hmmer/${pname}-${version}.tar.gz"; url = "http://eddylab.org/software/hmmer/${pname}-${version}.tar.gz";
sha256 = "0s9wf6n0qanbx8qs6igfl3vyjikwbrvh4d9d6mv54yp3xysykzlj"; sha256 = "sha256-ynDZT9DPJxvXBjQjqrsRbULeUzEXNDqbJ6ZcF/8G+/M=";
}; };
meta = with lib; { meta = with lib; {
@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
HMMER can be downloaded and installed as a command line tool on your own hardware, and now it is also more widely accessible to the scientific community via new search servers at the European Bioinformatics Institute. HMMER can be downloaded and installed as a command line tool on your own hardware, and now it is also more widely accessible to the scientific community via new search servers at the European Bioinformatics Institute.
''; '';
homepage = "http://hmmer.org/"; homepage = "http://hmmer.org/";
changelog = "https://github.com/EddyRivasLab/hmmer/blob/hmmer-${version}/release-notes/RELEASE-${version}.md";
license = licenses.gpl3; license = licenses.gpl3;
maintainers = [ maintainers.iimog ]; maintainers = [ maintainers.iimog ];
# at least SSE is *required* # at least SSE is *required*

View File

@ -45,6 +45,7 @@ rustPlatform.buildRustPackage rec {
description = "Open source Virtual Machine Monitor (VMM) that runs on top of KVM"; description = "Open source Virtual Machine Monitor (VMM) that runs on top of KVM";
changelog = "https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v${version}"; changelog = "https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v${version}";
license = with licenses; [ asl20 bsd3 ]; license = with licenses; [ asl20 bsd3 ];
mainProgram = "cloud-hypervisor";
maintainers = with maintainers; [ offline qyliss ]; maintainers = with maintainers; [ offline qyliss ];
platforms = [ "aarch64-linux" "x86_64-linux" ]; platforms = [ "aarch64-linux" "x86_64-linux" ];
}; };

View File

@ -38,6 +38,7 @@ rustPlatform.buildRustPackage rec {
meta = with lib; { meta = with lib; {
description = "A secure virtual machine monitor for KVM"; description = "A secure virtual machine monitor for KVM";
homepage = "https://chromium.googlesource.com/crosvm/crosvm/"; homepage = "https://chromium.googlesource.com/crosvm/crosvm/";
mainProgram = "crosvm";
maintainers = with maintainers; [ qyliss ]; maintainers = with maintainers; [ qyliss ];
license = licenses.bsd3; license = licenses.bsd3;
platforms = [ "aarch64-linux" "x86_64-linux" ]; platforms = [ "aarch64-linux" "x86_64-linux" ];

View File

@ -48,11 +48,11 @@ stdenv.mkDerivation (finalAttrs: {
+ lib.optionalString xenSupport "-xen" + lib.optionalString xenSupport "-xen"
+ lib.optionalString hostCpuOnly "-host-cpu-only" + lib.optionalString hostCpuOnly "-host-cpu-only"
+ lib.optionalString nixosTestRunner "-for-vm-tests"; + lib.optionalString nixosTestRunner "-for-vm-tests";
version = "8.1.0"; version = "8.1.1";
src = fetchurl { src = fetchurl {
url = "https://download.qemu.org/qemu-${finalAttrs.version}.tar.xz"; url = "https://download.qemu.org/qemu-${finalAttrs.version}.tar.xz";
hash = "sha256-cQwQEZjjNNR2Lu9l9km8Q/qKXddTA1VLis/sPrJfDlU="; hash = "sha256-N84u9eUA+3UvaBEXxotFEYMD6kmn4mvVQIDO1U+rfe8=";
}; };
depsBuildBuild = [ buildPackages.stdenv.cc ] depsBuildBuild = [ buildPackages.stdenv.cc ]

View File

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "stratovirt"; pname = "stratovirt";
version = "2.2.0"; version = "2.3.0";
src = fetchgit { src = fetchgit {
url = "https://gitee.com/openeuler/stratovirt.git"; url = "https://gitee.com/openeuler/stratovirt.git";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-K99CmaBrJu30/12FxnsNsDKsTyX4f2uQSO7cwHsPuDw="; sha256 = "sha256-f5710f7Lz7ul1DYrC0CAfDR+7e1NrE9ESPdB8nlVUKw=";
}; };
patches = [ ./micro_vm-allow-SYS_clock_gettime.patch ]; patches = [ ./micro_vm-allow-SYS_clock_gettime.patch ];
cargoSha256 = "sha256-SFIOGGRzGkVWHIXkviVWuhDN29pa0uD3GqKh+G421xI="; cargoSha256 = "sha256-prs7zkPAKQ99gjW7gy+4+CgEgGhaTTCLPTbLk/ZHdts=";
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config

View File

@ -1,4 +1,4 @@
From af3001b1b2697ae3165e2fdf47a560fd9ab19a68 Mon Sep 17 00:00:00 2001 From c5ef87eb831f7f77c0564dd1dce92a579e7c4747 Mon Sep 17 00:00:00 2001
From: Astro <astro@spaceboyz.net> From: Astro <astro@spaceboyz.net>
Date: Sun, 18 Jun 2023 23:10:23 +0200 Date: Sun, 18 Jun 2023 23:10:23 +0200
Subject: [PATCH] micro_vm: allow SYS_clock_gettime Subject: [PATCH] micro_vm: allow SYS_clock_gettime
@ -8,13 +8,13 @@ Subject: [PATCH] micro_vm: allow SYS_clock_gettime
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
diff --git a/machine/src/micro_vm/syscall.rs b/machine/src/micro_vm/syscall.rs diff --git a/machine/src/micro_vm/syscall.rs b/machine/src/micro_vm/syscall.rs
index 89ce5c29..2a6aa0cc 100644 index c37d3f4e..f9e7cce2 100644
--- a/machine/src/micro_vm/syscall.rs --- a/machine/src/micro_vm/syscall.rs
+++ b/machine/src/micro_vm/syscall.rs +++ b/machine/src/micro_vm/syscall.rs
@@ -128,6 +128,8 @@ pub fn syscall_whitelist() -> Vec<BpfRule> { @@ -125,6 +125,8 @@ pub fn syscall_whitelist() -> Vec<BpfRule> {
#[cfg(all(target_env = "gnu", target_arch = "x86_64"))]
BpfRule::new(libc::SYS_readlink), BpfRule::new(libc::SYS_readlink),
BpfRule::new(libc::SYS_getrandom), BpfRule::new(libc::SYS_getrandom),
BpfRule::new(libc::SYS_fallocate),
+ #[cfg(target_env = "gnu")] + #[cfg(target_env = "gnu")]
+ BpfRule::new(libc::SYS_clock_gettime), + BpfRule::new(libc::SYS_clock_gettime),
madvise_rule(), madvise_rule(),

View File

@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
homepage = "https://gitlab.freedesktop.org/wayland/weston"; homepage = "https://gitlab.freedesktop.org/wayland/weston";
license = licenses.mit; # Expat version license = licenses.mit; # Expat version
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "weston";
maintainers = with maintainers; [ primeos qyliss ]; maintainers = with maintainers; [ primeos qyliss ];
}; };
} }

View File

@ -293,9 +293,6 @@ clone_user_rev() {
local rev="${3:-HEAD}" local rev="${3:-HEAD}"
if [ -n "$fetchLFS" ]; then if [ -n "$fetchLFS" ]; then
tmpHomePath="$(mktemp -d "${TMPDIR:-/tmp}/nix-prefetch-git-tmp-home-XXXXXXXXXX")"
exit_handlers+=(remove_tmpHomePath)
HOME="$tmpHomePath"
clean_git lfs install clean_git lfs install
fi fi
@ -417,6 +414,12 @@ if test -z "$branchName"; then
branchName=fetchgit branchName=fetchgit
fi fi
tmpHomePath="$(mktemp -d "${TMPDIR:-/tmp}/nix-prefetch-git-tmp-home-XXXXXXXXXX")"
exit_handlers+=(remove_tmpHomePath)
HOME="$tmpHomePath"
unset XDG_CONFIG_HOME
export GIT_CONFIG_NOSYSTEM=1
if test -n "$builder"; then if test -n "$builder"; then
test -n "$out" -a -n "$url" -a -n "$rev" || usage test -n "$out" -a -n "$url" -a -n "$rev" || usage
mkdir -p "$out" mkdir -p "$out"

View File

@ -8,10 +8,9 @@
, nativeBuildInputs ? [ ] , nativeBuildInputs ? [ ]
, postPhpize ? "" , postPhpize ? ""
, makeFlags ? [ ] , makeFlags ? [ ]
, src ? fetchurl { , src ? fetchurl ({
url = "https://pecl.php.net/get/${pname}-${version}.tgz"; url = "https://pecl.php.net/get/${pname}-${version}.tgz";
inherit (args) sha256; } // lib.filterAttrs (attrName: _: lib.elem attrName [ "sha256" "hash" ]) args)
}
, passthru ? { } , passthru ? { }
, ... , ...
}@args: }@args:

View File

@ -0,0 +1,33 @@
{ stdenvNoCC, lib, fetchFromGitHub }:
stdenvNoCC.mkDerivation rec {
pname = "armbian-firmware";
version = "unstable-2023-09-16";
src = fetchFromGitHub {
owner = "armbian";
repo = "firmware";
rev = "01f9809bb0c4bd60c0c84b9438486b02d58b03f7";
hash = "sha256-ozKADff7lFjIT/Zf5dkNlCe8lOK+kwYb/60NaCJ8i2k=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/lib/firmware
cp -a * $out/lib/firmware/
runHook postInstall
'';
# Firmware blobs do not need fixing and should not be modified
dontBuild = true;
dontFixup = true;
meta = with lib; {
description = "Firmware from Armbian";
homepage = "https://github.com/armbian/firmware";
license = licenses.unfree;
platforms = platforms.all;
maintainers = with maintainers; [ zaldnoay ];
};
}

View File

@ -0,0 +1,75 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchYarnDeps
, makeWrapper
, nodejs
, prefetch-yarn-deps
, yarn
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gitmoji-cli";
version = "8.5.0";
src = fetchFromGitHub {
owner = "carloscuesta";
repo = "gitmoji-cli";
rev = "v${finalAttrs.version}";
hash = "sha256-ZM6jOi0FnomkIZeK6ln1Z0d6R5cjav67qyly3yqR1HQ=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-HSAWFVOTlXlG7N5591hpfPAYaSrP413upW5u/HN9X2o=";
};
nativeBuildInputs = [
makeWrapper
nodejs
prefetch-yarn-deps
yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror $offlineCache
fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline build
runHook postBuild
'';
installPhase = ''
runHook preInstall
yarn --offline --production install
mkdir -p "$out/lib/node_modules/gitmoji-cli"
cp -r lib node_modules "$out/lib/node_modules/gitmoji-cli"
makeWrapper "${nodejs}/bin/node" "$out/bin/gitmoji" \
--add-flags "$out/lib/node_modules/gitmoji-cli/lib/cli.js"
runHook postInstall
'';
meta = {
description = "Gitmoji client for using emojis on commit messages";
homepage = "https://github.com/carloscuesta/gitmoji-cli";
license = lib.licenses.mit;
mainProgram = "gitmoji";
maintainers = with lib.maintainers; [ nequissimus ];
};
})

View File

@ -6,11 +6,11 @@
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "rectangle-pro"; pname = "rectangle-pro";
version = "3.0.9"; version = "3.0.11";
src = fetchurl { src = fetchurl {
url = "https://rectangleapp.com/pro/downloads/Rectangle%20Pro%20${finalAttrs.version}.dmg"; url = "https://rectangleapp.com/pro/downloads/Rectangle%20Pro%20${finalAttrs.version}.dmg";
hash = "sha256-wD8yi2Pbgrn1fW/xrocepDcpzSMsQH5yjB/Jv90PuGQ="; hash = "sha256-Hs2eRO5DpYoY0rLfcmGZRHjmg+wddz/+LE0u4E9gCTk=";
}; };
sourceRoot = "."; sourceRoot = ".";

View File

@ -120,7 +120,6 @@
"EasyScreenCast@iacopodeenosee.gmail.com" = "easyScreenCast"; # extensionPortalSlug is "easyscreencast" "EasyScreenCast@iacopodeenosee.gmail.com" = "easyScreenCast"; # extensionPortalSlug is "easyscreencast"
"gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com" = "fuzzy-app-search"; # extensionPortalSlug is "gnome-fuzzy-app-search" "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com" = "fuzzy-app-search"; # extensionPortalSlug is "gnome-fuzzy-app-search"
"TopIcons@phocean.net" = "topicons-plus"; # extensionPortalSlug is "topicons" "TopIcons@phocean.net" = "topicons-plus"; # extensionPortalSlug is "topicons"
"paperwm@hedning:matrix.org" = "paperwm"; # is not on extensions.gnome.org
"no-title-bar@jonaspoehler.de" = "no-title-bar"; # extensionPortalSlug is "no-title-bar-forked" "no-title-bar@jonaspoehler.de" = "no-title-bar"; # extensionPortalSlug is "no-title-bar-forked"
# These extensions are automatically packaged at the moment. We preserve the old attribute name # These extensions are automatically packaged at the moment. We preserve the old attribute name
# for backwards compatibility. # for backwards compatibility.

View File

@ -9,7 +9,6 @@
"icon-hider@kalnitsky.org" = callPackage ./icon-hider { }; "icon-hider@kalnitsky.org" = callPackage ./icon-hider { };
"impatience@gfxmonk.net" = callPackage ./impatience { }; "impatience@gfxmonk.net" = callPackage ./impatience { };
"no-title-bar@jonaspoehler.de" = callPackage ./no-title-bar { }; "no-title-bar@jonaspoehler.de" = callPackage ./no-title-bar { };
"paperwm@hedning:matrix.org" = callPackage ./paperwm { };
"pidgin@muffinmad" = callPackage ./pidgin-im-integration { }; "pidgin@muffinmad" = callPackage ./pidgin-im-integration { };
"pop-shell@system76.com" = callPackage ./pop-shell { }; "pop-shell@system76.com" = callPackage ./pop-shell { };
"sound-output-device-chooser@kgshank.net" = callPackage ./sound-output-device-chooser { }; "sound-output-device-chooser@kgshank.net" = callPackage ./sound-output-device-chooser { };

View File

@ -1,42 +0,0 @@
{ lib
, stdenv
, fetchFromGitHub
, gitUpdater
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gnome-shell-extension-paperwm";
version = "44.3.1";
src = fetchFromGitHub {
owner = "paperwm";
repo = "PaperWM";
rev = "v${finalAttrs.version}";
hash = "sha256-oGBnQGtx2ku4cfgZkZ3OdHlVuiYR8hy1eYDWDZP3fn4=";
};
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p "$out/share/gnome-shell/extensions/paperwm@hedning:matrix.org"
cp -r . "$out/share/gnome-shell/extensions/paperwm@hedning:matrix.org"
runHook postInstall
'';
passthru.updateScript = gitUpdater { url = finalAttrs.meta.homepage; };
meta = {
homepage = "https://github.com/paperwm/PaperWM";
description = "Tiled scrollable window management for Gnome Shell";
changelog = "https://github.com/paperwm/PaperWM/releases/tag/${finalAttrs.src.rev}";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ hedning AndersonTorres cab404 ];
platforms = lib.platforms.all;
};
passthru.extensionUuid = "paperwm@hedning:matrix.org";
})

View File

@ -23,13 +23,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "appcenter"; pname = "appcenter";
version = "7.3.0"; version = "7.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "elementary"; owner = "elementary";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-Lj3j812XaCIN+TFSDAvIgtl49n5jG4fVlAFvrWqngpM="; sha256 = "sha256-L6MGbzzujr4tEB2Cpd7IU+3mOtSCt2hLPw4mOfZ4TkQ=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -10,13 +10,14 @@
, scons , scons
, setuptools , setuptools
, tinyprog , tinyprog
, flit-core
, pytestCheckHook , pytestCheckHook
}: }:
buildPythonApplication rec { buildPythonApplication rec {
pname = "apio"; pname = "apio";
version = "0.8.1"; version = "0.8.1";
format = "flit"; format = "pyproject";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "FPGAwars"; owner = "FPGAwars";
@ -47,6 +48,10 @@ buildPythonApplication rec {
'version = semantic_version.Version(pkg_version.replace(".dev", "-dev"))' 'version = semantic_version.Version(pkg_version.replace(".dev", "-dev"))'
''; '';
nativeBuildInputs = [
flit-core
];
propagatedBuildInputs = [ propagatedBuildInputs = [
click click
semantic-version semantic-version

View File

@ -396,15 +396,7 @@ self: super: {
# https://github.com/awakesecurity/nix-graph/issues/5 # https://github.com/awakesecurity/nix-graph/issues/5
nix-graph = doJailbreak super.nix-graph; nix-graph = doJailbreak super.nix-graph;
cachix = self.generateOptparseApplicativeCompletions [ "cachix" ] cachix = self.generateOptparseApplicativeCompletions [ "cachix" ] super.cachix;
# Adds a workaround to the API changes in the versions library
# Should be dropped by the next release
# https://github.com/cachix/cachix/pull/556
(appendPatch (fetchpatch {
url = "https://github.com/cachix/cachix/commit/078d2d2212d7533a6a4db000958bfc4373c4deeb.patch";
hash = "sha256-xfJaO2CuZWFHivq4gqbkNnTOWPiyFVjlwOPV6yibKH4=";
stripLen = 1;
}) super.cachix);
# https://github.com/froozen/kademlia/issues/2 # https://github.com/froozen/kademlia/issues/2
kademlia = dontCheck super.kademlia; kademlia = dontCheck super.kademlia;

View File

@ -1070,29 +1070,29 @@ self: super: builtins.intersectAttrs super {
domaindriven-core = dontCheck super.domaindriven-core; domaindriven-core = dontCheck super.domaindriven-core;
cachix-api = overrideCabal (drv: { cachix-api = overrideCabal (drv: {
version = "1.6"; version = "1.6.1";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "cachix"; owner = "cachix";
repo = "cachix"; repo = "cachix";
rev = "v1.6"; rev = "v1.6.1";
sha256 = "sha256-54ujAZYNigAn1oJAfupUtZHa0WRQbCQGLEfLmkw8iFc="; sha256 = "sha256-6S8EOs7bGTyY4eDXGuTbJMTlaz0n1JYIAPKIB2cVYxg=";
}; };
postUnpack = "sourceRoot=$sourceRoot/cachix-api"; postUnpack = "sourceRoot=$sourceRoot/cachix-api";
postPatch = '' postPatch = ''
sed -i 's/1.5/1.6/' cachix-api.cabal sed -i 's/1.6/1.6.1/' cachix-api.cabal
''; '';
}) super.cachix-api; }) super.cachix-api;
cachix = overrideCabal (drv: { cachix = overrideCabal (drv: {
version = "1.6"; version = "1.6.1";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "cachix"; owner = "cachix";
repo = "cachix"; repo = "cachix";
rev = "v1.6"; rev = "v1.6.1";
sha256 = "sha256-54ujAZYNigAn1oJAfupUtZHa0WRQbCQGLEfLmkw8iFc="; sha256 = "sha256-6S8EOs7bGTyY4eDXGuTbJMTlaz0n1JYIAPKIB2cVYxg=";
}; };
postUnpack = "sourceRoot=$sourceRoot/cachix"; postUnpack = "sourceRoot=$sourceRoot/cachix";
postPatch = '' postPatch = ''
sed -i 's/1.5/1.6/' cachix.cabal sed -i 's/1.6/1.6.1/' cachix.cabal
''; '';
}) (lib.pipe }) (lib.pipe
(super.cachix.override { (super.cachix.override {
@ -1102,7 +1102,7 @@ self: super: builtins.intersectAttrs super {
[ [
(addBuildTool self.hercules-ci-cnix-store.nixPackage) (addBuildTool self.hercules-ci-cnix-store.nixPackage)
(addBuildTool pkgs.pkg-config) (addBuildTool pkgs.pkg-config)
(addBuildDepend self.ascii-progress) (addBuildDepend self.immortal)
] ]
); );

View File

@ -1,7 +1,7 @@
{ lib, mkDerivation }: { lib, mkDerivation }:
mkDerivation { mkDerivation {
version = "26.0.2"; version = "26.1";
sha256 = "sha256-GzF/cpTUe5hoocDK5aio/lo8oYFeTr+HkftTYpQnOdA="; sha256 = "sha256-GECxenOxwZ0A7cY5Z/amthNezGVPsmZWB5gHayy78cI=";
} }

View File

@ -138,10 +138,10 @@ in {
sourceVersion = { sourceVersion = {
major = "7"; major = "7";
minor = "3"; minor = "3";
patch = "11"; patch = "12";
}; };
hash = "sha256-ERevtmgx2k6m852NIIR4enRon9AineC+MB+e2bJVCTw="; hash = "sha256-3WHYjaJ0ws4s7HdmfUo9+aZSvMUOJvkJkdTdCvZrzPQ=";
pythonVersion = "2.7"; pythonVersion = "2.7";
db = db.override { dbmSupport = !stdenv.isDarwin; }; db = db.override { dbmSupport = !stdenv.isDarwin; };
python = __splicedPackages.pythonInterpreters.pypy27_prebuilt; python = __splicedPackages.pythonInterpreters.pypy27_prebuilt;
@ -155,10 +155,10 @@ in {
sourceVersion = { sourceVersion = {
major = "7"; major = "7";
minor = "3"; minor = "3";
patch = "11"; patch = "12";
}; };
hash = "sha256-sPMWb7Klqt/VzrnbXN1feSmg7MygK0omwNrgSS98qOo="; hash = "sha256-56IEbH5sJfw4aru1Ey6Sp8wkkeOTVpmpRstdy7NCwqo=";
pythonVersion = "3.9"; pythonVersion = "3.9";
db = db.override { dbmSupport = !stdenv.isDarwin; }; db = db.override { dbmSupport = !stdenv.isDarwin; };
python = __splicedPackages.pypy27; python = __splicedPackages.pypy27;
@ -167,28 +167,26 @@ in {
inherit (darwin.apple_sdk.frameworks) Security; inherit (darwin.apple_sdk.frameworks) Security;
}; };
pypy38 = __splicedPackages.pypy39.override { pypy310 = __splicedPackages.pypy39.override {
self = __splicedPackages.pythonInterpreters.pypy38; self = __splicedPackages.pythonInterpreters.pypy310;
pythonVersion = "3.8"; pythonVersion = "3.10";
hash = "sha256-TWdpv8pzc06GZv1wUDt86wam4lkRDmFzMbs4mcpOYFg="; hash = "sha256-huTk6sw2BGxhgvQwGHllN/4zpg4dKizGuOf5Gl3LPkI=";
}; };
pypy37 = throw "pypy37 has been removed from nixpkgs since it is no longer supported upstream"; # Added 2023-01-04
pypy27_prebuilt = callPackage ./pypy/prebuilt_2_7.nix { pypy27_prebuilt = callPackage ./pypy/prebuilt_2_7.nix {
# Not included at top-level # Not included at top-level
self = __splicedPackages.pythonInterpreters.pypy27_prebuilt; self = __splicedPackages.pythonInterpreters.pypy27_prebuilt;
sourceVersion = { sourceVersion = {
major = "7"; major = "7";
minor = "3"; minor = "3";
patch = "11"; patch = "12";
}; };
hash = { hash = {
aarch64-linux = "sha256-6pJNod7+kyXvdg4oiwT5hGFOQFWA9TIetqXI9Tm9QVo="; aarch64-linux = "sha256-4E3LYoantHJOw/DlDTzBuoWDMB3RZYwG1/N1meQgHFk=";
x86_64-linux = "sha256-uo7ZWKkFwHNaTP/yh1wlCJlU3AIOCH2YKw/6W52jFs0="; x86_64-linux = "sha256-GmGiV0t5Rm9gYBDymZormVvZbNCF+Rp46909XCxA6B0=";
aarch64-darwin = "sha256-zFaWq0+TzTSBweSZC13t17pgrAYC+hiQ02iImmxb93E="; aarch64-darwin = "sha256-a3R6oHauhZfklgPF3sTKWTWhoKEy10BKVZvpaiYNm/c=";
x86_64-darwin = "sha256-Vt7unCJkD1aGw1udZP2xzjq9BEWD5AePCxccov0qGY4="; x86_64-darwin = "sha256-bon/3RVTfOT/zjFFtl7lfC6clSiSvZW5NAEtLwCfUDs=";
}.${stdenv.system}; }.${stdenv.system};
pythonVersion = "2.7"; pythonVersion = "2.7";
inherit passthruFun; inherit passthruFun;
@ -200,13 +198,13 @@ in {
sourceVersion = { sourceVersion = {
major = "7"; major = "7";
minor = "3"; minor = "3";
patch = "11"; patch = "12";
}; };
hash = { hash = {
aarch64-linux = "sha256-CRddxlLtiV2Y6a1j0haBK/PufjmNkAqb+espBrqDArk="; aarch64-linux = "sha256-6TJ/ue2vKtkZNdW4Vj7F/yQZO92xdcGsqvdywCWvGCQ=";
x86_64-linux = "sha256-1QYXLKEQcSdBdddOnFgcMWZDLQF5sDZHDjuejSDq5YE="; x86_64-linux = "sha256-hMiblm+rK1j0UaSC7jDKf+wzUENb0LlhRhXGHcbaI5A=";
aarch64-darwin = "sha256-ka11APGjlTHb76CzRaPc/5J/+ZcWVOjS6e98WuMR9X4="; aarch64-darwin = "sha256-DooaNGi5eQxzSsaY9bAMwD/BaJnMxs6HZGX6wLg5gOM=";
x86_64-darwin = "sha256-0z9AsgcJmHJYWv1xhzV1ym6mOKJ9gjvGISOMWuglQu0="; x86_64-darwin = "sha256-ZPAI/6BwxAfl70bIJWsuAU3nGW6l2Fg4WGElTnlZ9Os=";
}.${stdenv.system}; }.${stdenv.system};
pythonVersion = "3.9"; pythonVersion = "3.9";
inherit passthruFun; inherit passthruFun;

View File

@ -45,15 +45,6 @@ in {
propagatedBuildInputs = [ ]; propagatedBuildInputs = [ ];
} ./egg-unpack-hook.sh) {}; } ./egg-unpack-hook.sh) {};
flitBuildHook = callPackage ({ makePythonHook, flit }:
makePythonHook {
name = "flit-build-hook";
propagatedBuildInputs = [ flit ];
substitutions = {
inherit pythonInterpreter;
};
} ./flit-build-hook.sh) {};
pipBuildHook = callPackage ({ makePythonHook, pip, wheel }: pipBuildHook = callPackage ({ makePythonHook, pip, wheel }:
makePythonHook { makePythonHook {
name = "pip-build-hook.sh"; name = "pip-build-hook.sh";

View File

@ -1,15 +0,0 @@
# Setup hook for flit
echo "Sourcing flit-build-hook"
flitBuildPhase () {
echo "Executing flitBuildPhase"
runHook preBuild
@pythonInterpreter@ -m flit build --format wheel
runHook postBuild
echo "Finished executing flitBuildPhase"
}
if [ -z "${dontUseFlitBuild-}" ] && [ -z "${buildPhase-}" ]; then
echo "Using flitBuildPhase"
buildPhase=flitBuildPhase
fi

View File

@ -11,7 +11,6 @@
, namePrefix , namePrefix
, update-python-libraries , update-python-libraries
, setuptools , setuptools
, flitBuildHook
, pypaBuildHook , pypaBuildHook
, pypaInstallHook , pypaInstallHook
, pythonCatchConflictsHook , pythonCatchConflictsHook
@ -90,7 +89,6 @@
# Several package formats are supported. # Several package formats are supported.
# "setuptools" : Install a common setuptools/distutils based package. This builds a wheel. # "setuptools" : Install a common setuptools/distutils based package. This builds a wheel.
# "wheel" : Install from a pre-compiled wheel. # "wheel" : Install from a pre-compiled wheel.
# "flit" : Install a flit package. This builds a wheel.
# "pyproject": Install a package using a ``pyproject.toml`` file (PEP517). This builds a wheel. # "pyproject": Install a package using a ``pyproject.toml`` file (PEP517). This builds a wheel.
# "egg": Install a package from an egg. # "egg": Install a package from an egg.
# "other" : Provide your own buildPhase and installPhase. # "other" : Provide your own buildPhase and installPhase.
@ -122,7 +120,7 @@ let
else else
"setuptools"; "setuptools";
withDistOutput = lib.elem format' ["pyproject" "setuptools" "flit" "wheel"]; withDistOutput = lib.elem format' ["pyproject" "setuptools" "wheel"];
name_ = name; name_ = name;
@ -222,8 +220,6 @@ let
unzip unzip
] ++ lib.optionals (format' == "setuptools") [ ] ++ lib.optionals (format' == "setuptools") [
setuptoolsBuildHook setuptoolsBuildHook
] ++ lib.optionals (format' == "flit") [
flitBuildHook
] ++ lib.optionals (format' == "pyproject") [( ] ++ lib.optionals (format' == "pyproject") [(
if isBootstrapPackage then if isBootstrapPackage then
pypaBuildHook.override { pypaBuildHook.override {

View File

@ -98,12 +98,10 @@
, ... } @ attrs: , ... } @ attrs:
assert lib.assertMsg (format != "flit") "flit is not a supported Python 2 format";
let let
inherit (python) stdenv; inherit (python) stdenv;
withDistOutput = lib.elem format ["pyproject" "setuptools" "flit" "wheel"]; withDistOutput = lib.elem format ["pyproject" "setuptools" "wheel"];
name_ = name; name_ = name;
@ -171,7 +169,7 @@ let
nativeBuildInputs = [ nativeBuildInputs = [
python python
wrapPython wrapPython
ensureNewerSourcesForZipFilesHook # move to wheel installer (pip) or builder (setuptools, flit, ...)? ensureNewerSourcesForZipFilesHook # move to wheel installer (pip) or builder (setuptools, ...)?
pythonRemoveTestsDirHook pythonRemoveTestsDirHook
] ++ lib.optionals catchConflicts [ ] ++ lib.optionals catchConflicts [
pythonCatchConflictsHook pythonCatchConflictsHook

View File

@ -8,7 +8,6 @@
{ stdenv { stdenv
, python , python
, runCommand , runCommand
, substituteAll
, lib , lib
, callPackage , callPackage
, pkgs , pkgs
@ -60,7 +59,7 @@ let
is_nixenv = "True"; is_nixenv = "True";
is_virtualenv = "False"; is_virtualenv = "False";
}; };
} // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) rec { } // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) {
# Venv built using plain Python # Venv built using plain Python
# Python 2 does not support venv # Python 2 does not support venv
# TODO: PyPy executable name is incorrect, it should be pypy-c or pypy-3c instead of pypy and pypy3. # TODO: PyPy executable name is incorrect, it should be pypy-c or pypy-3c instead of pypy and pypy3.
@ -109,7 +108,7 @@ let
cpython-gdb = callPackage ./tests/test_cpython_gdb { cpython-gdb = callPackage ./tests/test_cpython_gdb {
interpreter = python; interpreter = python;
}; };
} // lib.optionalAttrs (python.pythonAtLeast "3.7") rec { } // lib.optionalAttrs (python.pythonAtLeast "3.7") {
# Before the addition of NIX_PYTHONPREFIX mypy was broken with typed packages # Before the addition of NIX_PYTHONPREFIX mypy was broken with typed packages
nix-pythonprefix-mypy = callPackage ./tests/test_nix_pythonprefix { nix-pythonprefix-mypy = callPackage ./tests/test_nix_pythonprefix {
interpreter = python; interpreter = python;
@ -126,7 +125,7 @@ let
extension = self: super: { extension = self: super: {
foobar = super.numpy; foobar = super.numpy;
}; };
in { in lib.optionalAttrs (python.isPy3k) ({
test-packageOverrides = let test-packageOverrides = let
myPython = let myPython = let
self = python.override { self = python.override {
@ -150,7 +149,7 @@ let
]; ];
}); });
in pkgs_.${python.pythonAttr}.pkgs.foo; in pkgs_.${python.pythonAttr}.pkgs.foo;
}; });
condaTests = let condaTests = let
requests = callPackage ({ requests = callPackage ({
@ -178,7 +177,7 @@ let
} }
) {}; ) {};
pythonWithRequests = requests.pythonModule.withPackages (ps: [ requests ]); pythonWithRequests = requests.pythonModule.withPackages (ps: [ requests ]);
in lib.optionalAttrs stdenv.isLinux in lib.optionalAttrs (python.isPy3k && stdenv.isLinux)
{ {
condaExamplePackage = runCommand "import-requests" {} '' condaExamplePackage = runCommand "import-requests" {} ''
${pythonWithRequests.interpreter} -c "import requests" > $out ${pythonWithRequests.interpreter} -c "import requests" > $out

View File

@ -25,13 +25,13 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "amdvlk"; pname = "amdvlk";
version = "2023.Q3.1"; version = "2023.Q3.2";
src = fetchRepoProject { src = fetchRepoProject {
name = "${pname}-src"; name = "${pname}-src";
manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git"; manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
rev = "refs/tags/v-${version}"; rev = "refs/tags/v-${version}";
sha256 = "W+igZbdQG1L62oGJa2Rz0n8YkTsZFqSm7w8VFfPu8k0="; sha256 = "/1D2BbT1gnMLvIHfpkxLkeo1pjbG9LkTx9Zl5+gGU/M=";
}; };
buildInputs = [ buildInputs = [

View File

@ -9,14 +9,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "cdo"; pname = "cdo";
version = "2.2.0"; version = "2.2.2";
# Dependencies # Dependencies
buildInputs = [ curl netcdf hdf5 python3 ]; buildInputs = [ curl netcdf hdf5 python3 ];
src = fetchurl { src = fetchurl {
url = "https://code.mpimet.mpg.de/attachments/download/28013/${pname}-${version}.tar.gz"; url = "https://code.mpimet.mpg.de/attachments/download/28882/${pname}-${version}.tar.gz";
sha256 = "sha256-Z5yNEFcGyv/LoJYOxd3EoTMsG0DFL4LDk3NWmZ2PrfI="; sha256 = "sha256-QZx3MVJEAZr0GilsBQZvR0zMv5Tev6rp4hBtpRvHyTc=";
}; };
configureFlags = [ configureFlags = [

View File

@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "cpp-utilities"; pname = "cpp-utilities";
version = "5.24.0"; version = "5.24.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Martchus"; owner = "Martchus";
repo = "cpp-utilities"; repo = "cpp-utilities";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
sha256 = "sha256-krskfuoCRxYcAIDqrae4+yEABXXZ9Nv0BjBVwSMjC7g="; sha256 = "sha256-Prb593+jXhYzwPHQnwen2qgaNfdX1Atiz1FhmXm9X7U=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
mongoc mongoc
openssl openssl
] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security darwin.apple_sdk_11_0.frameworks.Security
]; ];
cmakeFlags = [ cmakeFlags = [

View File

@ -71,7 +71,9 @@ mapAliases {
eslint_d = pkgs.eslint_d; # Added 2023-05-26 eslint_d = pkgs.eslint_d; # Added 2023-05-26
inherit (pkgs) firebase-tools; # added 2023-08-18 inherit (pkgs) firebase-tools; # added 2023-08-18
flood = pkgs.flood; # Added 2023-07-25 flood = pkgs.flood; # Added 2023-07-25
generator-code = throw "generator-code was removed because it provides no executable"; # added 2023-09-24
git-ssb = throw "git-ssb was removed because it was broken"; # added 2023-08-21 git-ssb = throw "git-ssb was removed because it was broken"; # added 2023-08-21
inherit (pkgs) gitmoji-cli; # added 2023-09-23
glob = pkgs.node-glob; # added 2023-08-18 glob = pkgs.node-glob; # added 2023-08-18
inherit (pkgs) gqlint; # added 2023-08-19 inherit (pkgs) gqlint; # added 2023-08-19
inherit (pkgs) graphqurl; # added 2023-08-19 inherit (pkgs) graphqurl; # added 2023-08-19

View File

@ -37,7 +37,6 @@
fkill-cli = "fkill"; fkill-cli = "fkill";
fleek-cli = "fleek"; fleek-cli = "fleek";
git-run = "gr"; git-run = "gr";
gitmoji-cli = "gitmoji";
graphql-cli = "graphql"; graphql-cli = "graphql";
graphql-language-service-cli = "graphql-lsp"; graphql-language-service-cli = "graphql-lsp";
grunt-cli = "grunt"; grunt-cli = "grunt";

View File

@ -120,12 +120,10 @@
, "fx" , "fx"
, "ganache" , "ganache"
, "gatsby-cli" , "gatsby-cli"
, "generator-code"
, "get-graphql-schema" , "get-graphql-schema"
, "git-run" , "git-run"
, "git-standup" , "git-standup"
, "@gitbeaker/cli" , "@gitbeaker/cli"
, "gitmoji-cli"
, "gramma" , "gramma"
, "grammarly-languageserver" , "grammarly-languageserver"
, "graphql" , "graphql"

File diff suppressed because it is too large Load Diff

View File

@ -14,12 +14,11 @@ buildDunePackage (rec {
tyxml tyxml
]; ];
duneVersion = "3";
doCheck = true; doCheck = true;
meta = with lib; { meta = with lib; {
description = "ocaml-junit is an OCaml package for the creation of JUnit XML reports, proving a typed API to produce valid reports acceptable to Jenkins, comes with packages supporting OUnit and Alcotest."; description = "ocaml-junit is an OCaml package for the creation of JUnit XML reports, proving a typed API to produce valid reports acceptable to Jenkins, comes with packages supporting OUnit and Alcotest.";
license = licenses.gpl3; license = licenses.lgpl3Plus;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
homepage = "https://github.com/Khady/ocaml-junit"; homepage = "https://github.com/Khady/ocaml-junit";
}; };

View File

@ -0,0 +1,30 @@
{ lib
, fetchFromGitHub
, buildDunePackage
, cppo
}:
buildDunePackage rec {
pname = "ocolor";
version = "1.3.1";
minimalOCamlVersion = "4.02";
src = fetchFromGitHub {
owner = "marc-chevalier";
repo = pname;
rev = "refs/tags/${version}";
sha256 = "osQTZGJp9yDoKNa6WoyhViNbRg1ukcD0Jxiu4VxqeUc=";
};
nativeBuildInputs = [
cppo
];
meta = {
description = "Print with style in your terminal using Formats semantic tags";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ toastal ];
homepage = "https://github.com/marc-chevalier/ocolor";
};
}

View File

@ -7,6 +7,9 @@
, topkg , topkg
}: }:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
"ptime is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
version = "1.1.0"; version = "1.1.0";
pname = "ocaml${ocaml.version}-ptime"; pname = "ocaml${ocaml.version}-ptime";

View File

@ -15,13 +15,13 @@
buildPecl rec { buildPecl rec {
pname = "mongodb"; pname = "mongodb";
version = "1.16.1"; version = "1.16.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mongodb"; owner = "mongodb";
repo = "mongo-php-driver"; repo = "mongo-php-driver";
rev = version; rev = version;
hash = "sha256-nVkue3qB6OwXKcyaYU1WmXG7pamKQtk8cbztVVkNejo="; hash = "sha256-gI1Hd/i3S+lNcXaGG/hBR/cdn3S1fQ6xJ0xtRXo48rI=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View File

@ -0,0 +1,17 @@
{ buildPecl, lib, pkg-config, rrdtool }:
buildPecl {
pname = "rrd";
version = "2.0.3";
hash = "sha256-pCFh5YzcioU7cs/ymJidy96CsPdkVt1ZzgKFTJK3MPc=";
nativeBuildInputs = [ pkg-config rrdtool ];
meta = {
description = "PHP bindings to RRD tool system";
license = lib.licenses.bsd0;
homepage = "https://github.com/php/pecl-processing-rrd";
maintainers = lib.teams.wdz.members;
};
}

View File

@ -12,7 +12,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aemet-opendata"; pname = "aemet-opendata";
version = "0.4.4"; version = "0.4.5";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.11"; disabled = pythonOlder "3.11";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "Noltari"; owner = "Noltari";
repo = "AEMET-OpenData"; repo = "AEMET-OpenData";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-Jm7fv1fNavp2GkfKPhZXYGnGuCBy6BdN9iTNYTBIyew="; hash = "sha256-rjHiDn8//zjFR27RTGGWZCxKI6pDXu47DFINV8Tq7ZM=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -9,7 +9,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiocomelit"; pname = "aiocomelit";
version = "0.0.6"; version = "0.0.8";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.10"; disabled = pythonOlder "3.10";
@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "chemelli74"; owner = "chemelli74";
repo = "aiocomelit"; repo = "aiocomelit";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-u6CyqDFLgnIVak0UqN4JmL8ll/li3k9EhFs7iC5oZ9U="; hash = "sha256-lPwkTWkzXe5c5+KJkLHr7/cydtnDOFGniNNeOk2UXdA=";
}; };
postPatch = '' postPatch = ''

View File

@ -14,7 +14,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aioesphomeapi"; pname = "aioesphomeapi";
version = "16.0.5"; version = "16.0.6";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "esphome"; owner = "esphome";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-SueK59CZTKkQPsHThs7k9eCEmc1GwaRIrw3oSK4E80E="; hash = "sha256-BcFNxm4JpHaqKEhUTCXIrF18OMFxLbQHCQ9jfs+U0hc=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -19,7 +19,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiohomekit"; pname = "aiohomekit";
version = "3.0.3"; version = "3.0.4";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -28,7 +28,7 @@ buildPythonPackage rec {
owner = "Jc2k"; owner = "Jc2k";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-6fNsiHddnsdjei0/wqx5ifWhM3bALlYG5Gli69+FmnM="; hash = "sha256-ZcgV+IkdSVKMd2GfnXqS6MibWT96YKVTJgor0zG+a/k=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

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