mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-22 05:19:00 +02:00
Merge master into staging-next
This commit is contained in:
commit
e949ec41bd
|
@ -11,6 +11,7 @@ let
|
|||
{ name = "strings"; description = "string manipulation functions"; }
|
||||
{ name = "versions"; description = "version string functions"; }
|
||||
{ name = "trivial"; description = "miscellaneous functions"; }
|
||||
{ name = "fixedPoints"; baseName = "fixed-points"; description = "explicit recursion functions"; }
|
||||
{ name = "lists"; description = "list manipulation functions"; }
|
||||
{ name = "debug"; description = "debugging functions"; }
|
||||
{ name = "options"; description = "NixOS / nixpkgs option handling"; }
|
||||
|
|
|
@ -14,13 +14,16 @@ stdenv.mkDerivation {
|
|||
buildInputs = [ nixdoc ];
|
||||
installPhase = ''
|
||||
function docgen {
|
||||
# TODO: wrap lib.$1 in <literal>, make nixdoc not escape it
|
||||
if [[ -e "../lib/$1.nix" ]]; then
|
||||
nixdoc -c "$1" -d "lib.$1: $2" -l ${locationsJSON} -f "$1.nix" > "$out/$1.md"
|
||||
name=$1
|
||||
baseName=$2
|
||||
description=$3
|
||||
# TODO: wrap lib.$name in <literal>, make nixdoc not escape it
|
||||
if [[ -e "../lib/$baseName.nix" ]]; then
|
||||
nixdoc -c "$name" -d "lib.$name: $description" -l ${locationsJSON} -f "$baseName.nix" > "$out/$name.md"
|
||||
else
|
||||
nixdoc -c "$1" -d "lib.$1: $2" -l ${locationsJSON} -f "$1/default.nix" > "$out/$1.md"
|
||||
nixdoc -c "$name" -d "lib.$name: $description" -l ${locationsJSON} -f "$baseName/default.nix" > "$out/$name.md"
|
||||
fi
|
||||
echo "$out/$1.md" >> "$out/index.md"
|
||||
echo "$out/$name.md" >> "$out/index.md"
|
||||
}
|
||||
|
||||
mkdir -p "$out"
|
||||
|
@ -29,8 +32,8 @@ stdenv.mkDerivation {
|
|||
```{=include=} sections
|
||||
EOF
|
||||
|
||||
${lib.concatMapStrings ({ name, description }: ''
|
||||
docgen ${name} ${lib.escapeShellArg description}
|
||||
${lib.concatMapStrings ({ name, baseName ? name, description }: ''
|
||||
docgen ${name} ${baseName} ${lib.escapeShellArg description}
|
||||
'') libsets}
|
||||
|
||||
echo '```' >> "$out/index.md"
|
||||
|
|
|
@ -1,34 +1,49 @@
|
|||
{ lib, ... }:
|
||||
rec {
|
||||
# Compute the fixed point of the given function `f`, which is usually an
|
||||
# attribute set that expects its final, non-recursive representation as an
|
||||
# argument:
|
||||
#
|
||||
# f = self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }
|
||||
#
|
||||
# Nix evaluates this recursion until all references to `self` have been
|
||||
# resolved. At that point, the final result is returned and `f x = x` holds:
|
||||
#
|
||||
# nix-repl> fix f
|
||||
# { bar = "bar"; foo = "foo"; foobar = "foobar"; }
|
||||
#
|
||||
# Type: fix :: (a -> a) -> a
|
||||
#
|
||||
# See https://en.wikipedia.org/wiki/Fixed-point_combinator for further
|
||||
# details.
|
||||
/*
|
||||
Compute the fixed point of the given function `f`, which is usually an
|
||||
attribute set that expects its final, non-recursive representation as an
|
||||
argument:
|
||||
|
||||
```
|
||||
f = self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }
|
||||
```
|
||||
|
||||
Nix evaluates this recursion until all references to `self` have been
|
||||
resolved. At that point, the final result is returned and `f x = x` holds:
|
||||
|
||||
```
|
||||
nix-repl> fix f
|
||||
{ bar = "bar"; foo = "foo"; foobar = "foobar"; }
|
||||
```
|
||||
|
||||
Type: fix :: (a -> a) -> a
|
||||
|
||||
See https://en.wikipedia.org/wiki/Fixed-point_combinator for further
|
||||
details.
|
||||
*/
|
||||
fix = f: let x = f x; in x;
|
||||
|
||||
# A variant of `fix` that records the original recursive attribute set in the
|
||||
# result. This is useful in combination with the `extends` function to
|
||||
# implement deep overriding. See pkgs/development/haskell-modules/default.nix
|
||||
# for a concrete example.
|
||||
/*
|
||||
A variant of `fix` that records the original recursive attribute set in the
|
||||
result, in an attribute named `__unfix__`.
|
||||
|
||||
This is useful in combination with the `extends` function to
|
||||
implement deep overriding.
|
||||
*/
|
||||
fix' = f: let x = f x // { __unfix__ = f; }; in x;
|
||||
|
||||
# Return the fixpoint that `f` converges to when called recursively, starting
|
||||
# with the input `x`.
|
||||
#
|
||||
# nix-repl> converge (x: x / 2) 16
|
||||
# 0
|
||||
/*
|
||||
Return the fixpoint that `f` converges to when called iteratively, starting
|
||||
with the input `x`.
|
||||
|
||||
```
|
||||
nix-repl> converge (x: x / 2) 16
|
||||
0
|
||||
```
|
||||
|
||||
Type: (a -> a) -> a -> a
|
||||
*/
|
||||
converge = f: x:
|
||||
let
|
||||
x' = f x;
|
||||
|
@ -37,75 +52,94 @@ rec {
|
|||
then x
|
||||
else converge f x';
|
||||
|
||||
# Modify the contents of an explicitly recursive attribute set in a way that
|
||||
# honors `self`-references. This is accomplished with a function
|
||||
#
|
||||
# g = self: super: { foo = super.foo + " + "; }
|
||||
#
|
||||
# that has access to the unmodified input (`super`) as well as the final
|
||||
# non-recursive representation of the attribute set (`self`). `extends`
|
||||
# differs from the native `//` operator insofar as that it's applied *before*
|
||||
# references to `self` are resolved:
|
||||
#
|
||||
# nix-repl> fix (extends g f)
|
||||
# { bar = "bar"; foo = "foo + "; foobar = "foo + bar"; }
|
||||
#
|
||||
# The name of the function is inspired by object-oriented inheritance, i.e.
|
||||
# think of it as an infix operator `g extends f` that mimics the syntax from
|
||||
# Java. It may seem counter-intuitive to have the "base class" as the second
|
||||
# argument, but it's nice this way if several uses of `extends` are cascaded.
|
||||
#
|
||||
# To get a better understanding how `extends` turns a function with a fix
|
||||
# point (the package set we start with) into a new function with a different fix
|
||||
# point (the desired packages set) lets just see, how `extends g f`
|
||||
# unfolds with `g` and `f` defined above:
|
||||
#
|
||||
# extends g f = self: let super = f self; in super // g self super;
|
||||
# = self: let super = { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }; in super // g self super
|
||||
# = self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; } // g self { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }
|
||||
# = self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; } // { foo = "foo" + " + "; }
|
||||
# = self: { foo = "foo + "; bar = "bar"; foobar = self.foo + self.bar; }
|
||||
#
|
||||
/*
|
||||
Modify the contents of an explicitly recursive attribute set in a way that
|
||||
honors `self`-references. This is accomplished with a function
|
||||
|
||||
```nix
|
||||
g = self: super: { foo = super.foo + " + "; }
|
||||
```
|
||||
|
||||
that has access to the unmodified input (`super`) as well as the final
|
||||
non-recursive representation of the attribute set (`self`). `extends`
|
||||
differs from the native `//` operator insofar as that it's applied *before*
|
||||
references to `self` are resolved:
|
||||
|
||||
```
|
||||
nix-repl> fix (extends g f)
|
||||
{ bar = "bar"; foo = "foo + "; foobar = "foo + bar"; }
|
||||
```
|
||||
|
||||
The name of the function is inspired by object-oriented inheritance, i.e.
|
||||
think of it as an infix operator `g extends f` that mimics the syntax from
|
||||
Java. It may seem counter-intuitive to have the "base class" as the second
|
||||
argument, but it's nice this way if several uses of `extends` are cascaded.
|
||||
|
||||
To get a better understanding how `extends` turns a function with a fix
|
||||
point (the package set we start with) into a new function with a different fix
|
||||
point (the desired packages set) lets just see, how `extends g f`
|
||||
unfolds with `g` and `f` defined above:
|
||||
|
||||
```
|
||||
extends g f = self: let super = f self; in super // g self super;
|
||||
= self: let super = { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }; in super // g self super
|
||||
= self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; } // g self { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }
|
||||
= self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; } // { foo = "foo" + " + "; }
|
||||
= self: { foo = "foo + "; bar = "bar"; foobar = self.foo + self.bar; }
|
||||
```
|
||||
*/
|
||||
extends = f: rattrs: self: let super = rattrs self; in super // f self super;
|
||||
|
||||
# Compose two extending functions of the type expected by 'extends'
|
||||
# into one where changes made in the first are available in the
|
||||
# 'super' of the second
|
||||
/*
|
||||
Compose two extending functions of the type expected by 'extends'
|
||||
into one where changes made in the first are available in the
|
||||
'super' of the second
|
||||
*/
|
||||
composeExtensions =
|
||||
f: g: final: prev:
|
||||
let fApplied = f final prev;
|
||||
prev' = prev // fApplied;
|
||||
in fApplied // g final prev';
|
||||
|
||||
# Compose several extending functions of the type expected by 'extends' into
|
||||
# one where changes made in preceding functions are made available to
|
||||
# subsequent ones.
|
||||
#
|
||||
# composeManyExtensions : [packageSet -> packageSet -> packageSet] -> packageSet -> packageSet -> packageSet
|
||||
# ^final ^prev ^overrides ^final ^prev ^overrides
|
||||
/*
|
||||
Compose several extending functions of the type expected by 'extends' into
|
||||
one where changes made in preceding functions are made available to
|
||||
subsequent ones.
|
||||
|
||||
```
|
||||
composeManyExtensions : [packageSet -> packageSet -> packageSet] -> packageSet -> packageSet -> packageSet
|
||||
^final ^prev ^overrides ^final ^prev ^overrides
|
||||
```
|
||||
*/
|
||||
composeManyExtensions =
|
||||
lib.foldr (x: y: composeExtensions x y) (final: prev: {});
|
||||
|
||||
# Create an overridable, recursive attribute set. For example:
|
||||
#
|
||||
# nix-repl> obj = makeExtensible (self: { })
|
||||
#
|
||||
# nix-repl> obj
|
||||
# { __unfix__ = «lambda»; extend = «lambda»; }
|
||||
#
|
||||
# nix-repl> obj = obj.extend (self: super: { foo = "foo"; })
|
||||
#
|
||||
# nix-repl> obj
|
||||
# { __unfix__ = «lambda»; extend = «lambda»; foo = "foo"; }
|
||||
#
|
||||
# nix-repl> obj = obj.extend (self: super: { foo = super.foo + " + "; bar = "bar"; foobar = self.foo + self.bar; })
|
||||
#
|
||||
# nix-repl> obj
|
||||
# { __unfix__ = «lambda»; bar = "bar"; extend = «lambda»; foo = "foo + "; foobar = "foo + bar"; }
|
||||
/*
|
||||
Create an overridable, recursive attribute set. For example:
|
||||
|
||||
```
|
||||
nix-repl> obj = makeExtensible (self: { })
|
||||
|
||||
nix-repl> obj
|
||||
{ __unfix__ = «lambda»; extend = «lambda»; }
|
||||
|
||||
nix-repl> obj = obj.extend (self: super: { foo = "foo"; })
|
||||
|
||||
nix-repl> obj
|
||||
{ __unfix__ = «lambda»; extend = «lambda»; foo = "foo"; }
|
||||
|
||||
nix-repl> obj = obj.extend (self: super: { foo = super.foo + " + "; bar = "bar"; foobar = self.foo + self.bar; })
|
||||
|
||||
nix-repl> obj
|
||||
{ __unfix__ = «lambda»; bar = "bar"; extend = «lambda»; foo = "foo + "; foobar = "foo + bar"; }
|
||||
```
|
||||
*/
|
||||
makeExtensible = makeExtensibleWithCustomName "extend";
|
||||
|
||||
# Same as `makeExtensible` but the name of the extending attribute is
|
||||
# customized.
|
||||
/*
|
||||
Same as `makeExtensible` but the name of the extending attribute is
|
||||
customized.
|
||||
*/
|
||||
makeExtensibleWithCustomName = extenderName: rattrs:
|
||||
fix' (self: (rattrs self) // {
|
||||
${extenderName} = f: makeExtensibleWithCustomName extenderName (extends f rattrs);
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
- FoundationDB now defaults to major version 7.
|
||||
|
||||
- Support for WiFi6 (IEEE 802.11ax) and WPA3-SAE-PK was enabled in the `hostapd` package, along with a significant rework of the hostapd module.
|
||||
|
||||
## New Services {#sec-release-23.11-new-services}
|
||||
|
||||
- [MCHPRS](https://github.com/MCHPR/MCHPRS), a multithreaded Minecraft server built for redstone. Available as [services.mchprs](#opt-services.mchprs.enable).
|
||||
|
@ -24,12 +26,20 @@
|
|||
|
||||
## Backward Incompatibilities {#sec-release-23.11-incompatibilities}
|
||||
|
||||
- The `boot.loader.raspberryPi` options have been marked deprecated, with intent for removal for NixOS 24.11. They had a limited use-case, and do not work like people expect. They required either very old installs ([before mid-2019](https://github.com/NixOS/nixpkgs/pull/62462)) or customized builds out of scope of the standard and generic AArch64 support. That option set never supported the Raspberry Pi 4 family of devices.
|
||||
|
||||
- `python3.pkgs.sequoia` was removed in favor of `python3.pkgs.pysequoia`. The latter package is based on upstream's dedicated repository for sequoia's Python bindings, where the Python bindings from [gitlab:sequoia-pgp/sequoia](https://gitlab.com/sequoia-pgp/sequoia) were removed long ago.
|
||||
|
||||
- `writeTextFile` now requires `executable` to be boolean, values like `null` or `""` will now fail to evaluate.
|
||||
|
||||
- The latest version of `clonehero` now stores custom content in `~/.clonehero`. See the [migration instructions](https://clonehero.net/2022/11/29/v23-to-v1-migration-instructions.html). Typically, these content files would exist along side the binary, but the previous build used a wrapper script that would store them in `~/.config/unity3d/srylain Inc_/Clone Hero`.
|
||||
|
||||
- The `services.hostapd` module was rewritten to support `passwordFile` like options, WPA3-SAE, and management of multiple interfaces. This breaks compatibility with older configurations.
|
||||
- `hostapd` is now started with additional systemd sandbox/hardening options for better security.
|
||||
- `services.hostapd.interface` was replaced with a per-radio and per-bss configuration scheme using [services.hostapd.radios](#opt-services.hostapd.radios).
|
||||
- `services.hostapd.wpa` has been replaced by [services.hostapd.radios.<name>.networks.<name>.authentication.wpaPassword](#opt-services.hostapd.radios._name_.networks._name_.authentication.wpaPassword) and [services.hostapd.radios.<name>.networks.<name>.authentication.saePasswords](#opt-services.hostapd.radios._name_.networks._name_.authentication.saePasswords) which configure WPA2-PSK and WP3-SAE respectively.
|
||||
- The default authentication has been changed to WPA3-SAE. Options for other (legacy) schemes are still available.
|
||||
|
||||
- `python3.pkgs.fetchPypi` (and `python3Packages.fetchPypi`) has been deprecated in favor of top-level `fetchPypi`.
|
||||
|
||||
- `mariadb` now defaults to `mariadb_1011` instead of `mariadb_106`, meaning the default version was upgraded from 10.6.x to 10.11.x. See the [upgrade notes](https://mariadb.com/kb/en/upgrading-from-mariadb-10-6-to-mariadb-10-11/) for potential issues.
|
||||
|
@ -50,6 +60,8 @@
|
|||
|
||||
- `util-linux` is now supported on Darwin and is no longer an alias to `unixtools`. Use the `unixtools.util-linux` package for access to the Apple variants of the utilities.
|
||||
|
||||
- `services.ddclient` has been removed on the request of the upstream maintainer because it is unmaintained and has bugs. Please switch to a different software like `inadyn` or `knsupdate`.
|
||||
|
||||
- The `vlock` program from the `kbd` package has been moved into its own package output and should now be referenced explicitly as `kbd.vlock` or replaced with an alternative such as the standalone `vlock` package or `physlock`.
|
||||
|
||||
- `fileSystems.<name>.autoFormat` now uses `systemd-makefs`, which does not accept formatting options. Therefore, `fileSystems.<name>.formatOptions` has been removed.
|
||||
|
|
|
@ -752,7 +752,13 @@ class Machine:
|
|||
while not shell_ready(timeout_secs=30):
|
||||
self.log("Guest root shell did not produce any data yet...")
|
||||
|
||||
self.log(self.shell.recv(1024).decode())
|
||||
while True:
|
||||
chunk = self.shell.recv(1024)
|
||||
self.log(f"Guest shell says: {chunk!r}")
|
||||
# NOTE: for this to work, nothing must be printed after this line!
|
||||
if b"Spawning backdoor root shell..." in chunk:
|
||||
break
|
||||
|
||||
toc = time.time()
|
||||
|
||||
self.log("connected to guest root shell")
|
||||
|
|
|
@ -66,6 +66,7 @@ with lib;
|
|||
(builtins.map (l: (replaceStrings [ "utf8" "utf-8" "UTF8" ] [ "UTF-8" "UTF-8" "UTF-8" ] l) + "/UTF-8") (
|
||||
[
|
||||
"C.UTF-8"
|
||||
"en_US.UTF-8"
|
||||
config.i18n.defaultLocale
|
||||
] ++ (attrValues (filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings))
|
||||
))
|
||||
|
|
|
@ -69,7 +69,7 @@ in
|
|||
#dialout = 27; # unused
|
||||
polkituser = 28;
|
||||
#utmp = 29; # unused
|
||||
# ddclient = 30; # converted to DynamicUser = true
|
||||
# ddclient = 30; # software removed
|
||||
davfs2 = 31;
|
||||
disnix = 33;
|
||||
osgi = 34;
|
||||
|
@ -394,7 +394,7 @@ in
|
|||
dialout = 27;
|
||||
#polkituser = 28; # currently unused, polkitd doesn't need a group
|
||||
utmp = 29;
|
||||
# ddclient = 30; # converted to DynamicUser = true
|
||||
# ddclient = 30; # software removed
|
||||
davfs2 = 31;
|
||||
disnix = 33;
|
||||
osgi = 34;
|
||||
|
|
|
@ -852,7 +852,6 @@
|
|||
./services/networking/create_ap.nix
|
||||
./services/networking/croc.nix
|
||||
./services/networking/dante.nix
|
||||
./services/networking/ddclient.nix
|
||||
./services/networking/dhcpcd.nix
|
||||
./services/networking/dhcpd.nix
|
||||
./services/networking/dnscache.nix
|
||||
|
@ -1341,6 +1340,7 @@
|
|||
./services/x11/xbanish.nix
|
||||
./services/x11/xfs.nix
|
||||
./services/x11/xserver.nix
|
||||
./system/activation/activatable-system.nix
|
||||
./system/activation/activation-script.nix
|
||||
./system/activation/specialisation.nix
|
||||
./system/activation/bootspec.nix
|
||||
|
|
|
@ -54,6 +54,7 @@ in
|
|||
(mkRemovedOptionModule [ "services" "chronos" ] "The corresponding package was removed from nixpkgs.")
|
||||
(mkRemovedOptionModule [ "services" "couchpotato" ] "The corresponding package was removed from nixpkgs.")
|
||||
(mkRemovedOptionModule [ "services" "dd-agent" ] "dd-agent was removed from nixpkgs in favor of the newer datadog-agent.")
|
||||
(mkRemovedOptionModule [ "services" "ddclient" ] "ddclient has been removed on the request of the upstream maintainer because it is unmaintained and has bugs. Please switch to a different software like `inadyn` or `knsupdate`.") # Added 2023-07-04
|
||||
(mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
|
||||
(mkRemovedOptionModule [ "services" "exhibitor" ] "The corresponding package was removed from nixpkgs.")
|
||||
(mkRemovedOptionModule [ "services" "firefox" "syncserver" ] "The corresponding package was removed from nixpkgs.")
|
||||
|
|
|
@ -1,234 +0,0 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.ddclient;
|
||||
boolToStr = bool: if bool then "yes" else "no";
|
||||
dataDir = "/var/lib/ddclient";
|
||||
StateDirectory = builtins.baseNameOf dataDir;
|
||||
RuntimeDirectory = StateDirectory;
|
||||
|
||||
configFile' = pkgs.writeText "ddclient.conf" ''
|
||||
# This file can be used as a template for configFile or is automatically generated by Nix options.
|
||||
cache=${dataDir}/ddclient.cache
|
||||
foreground=YES
|
||||
use=${cfg.use}
|
||||
login=${cfg.username}
|
||||
password=${if cfg.protocol == "nsupdate" then "/run/${RuntimeDirectory}/ddclient.key" else "@password_placeholder@"}
|
||||
protocol=${cfg.protocol}
|
||||
${lib.optionalString (cfg.script != "") "script=${cfg.script}"}
|
||||
${lib.optionalString (cfg.server != "") "server=${cfg.server}"}
|
||||
${lib.optionalString (cfg.zone != "") "zone=${cfg.zone}"}
|
||||
ssl=${boolToStr cfg.ssl}
|
||||
wildcard=YES
|
||||
quiet=${boolToStr cfg.quiet}
|
||||
verbose=${boolToStr cfg.verbose}
|
||||
${cfg.extraConfig}
|
||||
${lib.concatStringsSep "," cfg.domains}
|
||||
'';
|
||||
configFile = if (cfg.configFile != null) then cfg.configFile else configFile';
|
||||
|
||||
preStart = ''
|
||||
install --mode=600 --owner=$USER ${configFile} /run/${RuntimeDirectory}/ddclient.conf
|
||||
${lib.optionalString (cfg.configFile == null) (if (cfg.protocol == "nsupdate") then ''
|
||||
install --mode=600 --owner=$USER ${cfg.passwordFile} /run/${RuntimeDirectory}/ddclient.key
|
||||
'' else if (cfg.passwordFile != null) then ''
|
||||
"${pkgs.replace-secret}/bin/replace-secret" "@password_placeholder@" "${cfg.passwordFile}" "/run/${RuntimeDirectory}/ddclient.conf"
|
||||
'' else ''
|
||||
sed -i '/^password=@password_placeholder@$/d' /run/${RuntimeDirectory}/ddclient.conf
|
||||
'')}
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
|
||||
imports = [
|
||||
(mkChangedOptionModule [ "services" "ddclient" "domain" ] [ "services" "ddclient" "domains" ]
|
||||
(config:
|
||||
let value = getAttrFromPath [ "services" "ddclient" "domain" ] config;
|
||||
in optional (value != "") value))
|
||||
(mkRemovedOptionModule [ "services" "ddclient" "homeDir" ] "")
|
||||
(mkRemovedOptionModule [ "services" "ddclient" "password" ] "Use services.ddclient.passwordFile instead.")
|
||||
(mkRemovedOptionModule [ "services" "ddclient" "ipv6" ] "")
|
||||
];
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.ddclient = with lib.types; {
|
||||
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
type = bool;
|
||||
description = lib.mdDoc ''
|
||||
Whether to synchronise your machine's IP address with a dynamic DNS provider (e.g. dyndns.org).
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = package;
|
||||
default = pkgs.ddclient;
|
||||
defaultText = lib.literalExpression "pkgs.ddclient";
|
||||
description = lib.mdDoc ''
|
||||
The ddclient executable package run by the service.
|
||||
'';
|
||||
};
|
||||
|
||||
domains = mkOption {
|
||||
default = [ "" ];
|
||||
type = listOf str;
|
||||
description = lib.mdDoc ''
|
||||
Domain name(s) to synchronize.
|
||||
'';
|
||||
};
|
||||
|
||||
username = mkOption {
|
||||
# For `nsupdate` username contains the path to the nsupdate executable
|
||||
default = lib.optionalString (config.services.ddclient.protocol == "nsupdate") "${pkgs.bind.dnsutils}/bin/nsupdate";
|
||||
defaultText = "";
|
||||
type = str;
|
||||
description = lib.mdDoc ''
|
||||
User name.
|
||||
'';
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
default = null;
|
||||
type = nullOr str;
|
||||
description = lib.mdDoc ''
|
||||
A file containing the password or a TSIG key in named format when using the nsupdate protocol.
|
||||
'';
|
||||
};
|
||||
|
||||
interval = mkOption {
|
||||
default = "10min";
|
||||
type = str;
|
||||
description = lib.mdDoc ''
|
||||
The interval at which to run the check and update.
|
||||
See {command}`man 7 systemd.time` for the format.
|
||||
'';
|
||||
};
|
||||
|
||||
configFile = mkOption {
|
||||
default = null;
|
||||
type = nullOr path;
|
||||
description = lib.mdDoc ''
|
||||
Path to configuration file.
|
||||
When set this overrides the generated configuration from module options.
|
||||
'';
|
||||
example = "/root/nixos/secrets/ddclient.conf";
|
||||
};
|
||||
|
||||
protocol = mkOption {
|
||||
default = "dyndns2";
|
||||
type = str;
|
||||
description = lib.mdDoc ''
|
||||
Protocol to use with dynamic DNS provider (see https://sourceforge.net/p/ddclient/wiki/protocols).
|
||||
'';
|
||||
};
|
||||
|
||||
server = mkOption {
|
||||
default = "";
|
||||
type = str;
|
||||
description = lib.mdDoc ''
|
||||
Server address.
|
||||
'';
|
||||
};
|
||||
|
||||
ssl = mkOption {
|
||||
default = true;
|
||||
type = bool;
|
||||
description = lib.mdDoc ''
|
||||
Whether to use SSL/TLS to connect to dynamic DNS provider.
|
||||
'';
|
||||
};
|
||||
|
||||
quiet = mkOption {
|
||||
default = false;
|
||||
type = bool;
|
||||
description = lib.mdDoc ''
|
||||
Print no messages for unnecessary updates.
|
||||
'';
|
||||
};
|
||||
|
||||
script = mkOption {
|
||||
default = "";
|
||||
type = str;
|
||||
description = lib.mdDoc ''
|
||||
script as required by some providers.
|
||||
'';
|
||||
};
|
||||
|
||||
use = mkOption {
|
||||
default = "web, web=checkip.dyndns.com/, web-skip='Current IP Address: '";
|
||||
type = str;
|
||||
description = lib.mdDoc ''
|
||||
Method to determine the IP address to send to the dynamic DNS provider.
|
||||
'';
|
||||
};
|
||||
|
||||
verbose = mkOption {
|
||||
default = false;
|
||||
type = bool;
|
||||
description = lib.mdDoc ''
|
||||
Print verbose information.
|
||||
'';
|
||||
};
|
||||
|
||||
zone = mkOption {
|
||||
default = "";
|
||||
type = str;
|
||||
description = lib.mdDoc ''
|
||||
zone as required by some providers.
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
default = "";
|
||||
type = lines;
|
||||
description = lib.mdDoc ''
|
||||
Extra configuration. Contents will be added verbatim to the configuration file.
|
||||
|
||||
::: {.note}
|
||||
`daemon` should not be added here because it does not work great with the systemd-timer approach the service uses.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf config.services.ddclient.enable {
|
||||
systemd.services.ddclient = {
|
||||
description = "Dynamic DNS Client";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
restartTriggers = optional (cfg.configFile != null) cfg.configFile;
|
||||
path = lib.optional (lib.hasPrefix "if," cfg.use) pkgs.iproute2;
|
||||
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
RuntimeDirectoryMode = "0700";
|
||||
inherit RuntimeDirectory;
|
||||
inherit StateDirectory;
|
||||
Type = "oneshot";
|
||||
ExecStartPre = "!${pkgs.writeShellScript "ddclient-prestart" preStart}";
|
||||
ExecStart = "${lib.getBin cfg.package}/bin/ddclient -file /run/${RuntimeDirectory}/ddclient.conf";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.timers.ddclient = {
|
||||
description = "Run ddclient";
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
OnBootSec = cfg.interval;
|
||||
OnUnitInactiveSec = cfg.interval;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -238,9 +238,12 @@ in {
|
|||
path = [ cfg.package ]
|
||||
++ optional cfg.database.postgres.setup config.services.postgresql.package;
|
||||
script = ''
|
||||
export CONFIG_DIR=$CREDENTIALS_DIRECTORY
|
||||
|
||||
export RELEASE_COOKIE="$(< $CREDENTIALS_DIRECTORY/RELEASE_COOKIE )"
|
||||
export ADMIN_USER_PWD="$(< $CREDENTIALS_DIRECTORY/ADMIN_USER_PWD )"
|
||||
export SECRET_KEY_BASE="$(< $CREDENTIALS_DIRECTORY/SECRET_KEY_BASE )"
|
||||
|
||||
${lib.optionalString (cfg.mail.smtp.passwordFile != null)
|
||||
''export SMTP_USER_PWD="$(< $CREDENTIALS_DIRECTORY/SMTP_USER_PWD )"''}
|
||||
|
||||
# setup
|
||||
${cfg.package}/createdb.sh
|
||||
|
|
|
@ -27,6 +27,30 @@ let
|
|||
Xft.hintstyle: ${fontconfig.hinting.style}
|
||||
'';
|
||||
|
||||
# FIXME: this is an ugly hack.
|
||||
# Some sessions (read: most WMs) don't activate systemd's `graphical-session.target`.
|
||||
# Other sessions (read: most non-WMs) expect `graphical-session.target` to be reached
|
||||
# when the entire session is actually ready. We used to just unconditionally force
|
||||
# `graphical-session.target` to be activated in the session wrapper so things like
|
||||
# xdg-autostart-generator work on sessions that are wrong, but this broke sessions
|
||||
# that do things right. So, preserve this behavior (with some extra steps) by matching
|
||||
# on XDG_CURRENT_DESKTOP and deliberately ignoring sessions we know can do the right thing.
|
||||
fakeSession = action: ''
|
||||
session_is_systemd_aware=$(
|
||||
IFS=:
|
||||
for i in $XDG_CURRENT_DESKTOP; do
|
||||
case $i in
|
||||
KDE|GNOME|X-NIXOS-SYSTEMD-AWARE) echo "1"; exit; ;;
|
||||
*) ;;
|
||||
esac
|
||||
done
|
||||
)
|
||||
|
||||
if [ -z "$session_is_systemd_aware" ]; then
|
||||
/run/current-system/systemd/bin/systemctl --user ${action} nixos-fake-graphical-session.target
|
||||
fi
|
||||
'';
|
||||
|
||||
# file provided by services.xserver.displayManager.sessionData.wrapper
|
||||
xsessionWrapper = pkgs.writeScript "xsession-wrapper"
|
||||
''
|
||||
|
@ -90,8 +114,7 @@ let
|
|||
|
||||
${cfg.displayManager.sessionCommands}
|
||||
|
||||
# Start systemd user services for graphical sessions
|
||||
/run/current-system/systemd/bin/systemctl --user start graphical-session.target
|
||||
${fakeSession "start"}
|
||||
|
||||
# Allow the user to setup a custom session type.
|
||||
if test -x ~/.xsession; then
|
||||
|
@ -417,10 +440,10 @@ in
|
|||
"XDG_SESSION_ID"
|
||||
];
|
||||
|
||||
systemd.user.targets.graphical-session = {
|
||||
systemd.user.targets.nixos-fake-graphical-session = {
|
||||
unitConfig = {
|
||||
RefuseManualStart = false;
|
||||
StopWhenUnneeded = false;
|
||||
Description = "Fake graphical-session target for non-systemd-aware sessions";
|
||||
BindsTo = "graphical-session.target";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -451,7 +474,7 @@ in
|
|||
|
||||
test -n "$waitPID" && wait "$waitPID"
|
||||
|
||||
/run/current-system/systemd/bin/systemctl --user stop graphical-session.target
|
||||
${fakeSession "stop"}
|
||||
|
||||
exit 0
|
||||
'';
|
||||
|
|
92
nixos/modules/system/activation/activatable-system.nix
Normal file
92
nixos/modules/system/activation/activatable-system.nix
Normal file
|
@ -0,0 +1,92 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
mkOption
|
||||
optionalString
|
||||
types
|
||||
;
|
||||
|
||||
perlWrapped = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp ]);
|
||||
|
||||
systemBuilderArgs = {
|
||||
activationScript = config.system.activationScripts.script;
|
||||
dryActivationScript = config.system.dryActivationScript;
|
||||
};
|
||||
|
||||
systemBuilderCommands = ''
|
||||
echo "$activationScript" > $out/activate
|
||||
echo "$dryActivationScript" > $out/dry-activate
|
||||
substituteInPlace $out/activate --subst-var-by out ''${!toplevelVar}
|
||||
substituteInPlace $out/dry-activate --subst-var-by out ''${!toplevelVar}
|
||||
chmod u+x $out/activate $out/dry-activate
|
||||
unset activationScript dryActivationScript
|
||||
|
||||
mkdir $out/bin
|
||||
substitute ${./switch-to-configuration.pl} $out/bin/switch-to-configuration \
|
||||
--subst-var out \
|
||||
--subst-var-by toplevel ''${!toplevelVar} \
|
||||
--subst-var-by coreutils "${pkgs.coreutils}" \
|
||||
--subst-var-by distroId ${lib.escapeShellArg config.system.nixos.distroId} \
|
||||
--subst-var-by installBootLoader ${lib.escapeShellArg config.system.build.installBootLoader} \
|
||||
--subst-var-by localeArchive "${config.i18n.glibcLocales}/lib/locale/locale-archive" \
|
||||
--subst-var-by perl "${perlWrapped}" \
|
||||
--subst-var-by shell "${pkgs.bash}/bin/sh" \
|
||||
--subst-var-by su "${pkgs.shadow.su}/bin/su" \
|
||||
--subst-var-by systemd "${config.systemd.package}" \
|
||||
--subst-var-by utillinux "${pkgs.util-linux}" \
|
||||
;
|
||||
|
||||
chmod +x $out/bin/switch-to-configuration
|
||||
${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''
|
||||
if ! output=$(${perlWrapped}/bin/perl -c $out/bin/switch-to-configuration 2>&1); then
|
||||
echo "switch-to-configuration syntax is not valid:"
|
||||
echo "$output"
|
||||
exit 1
|
||||
fi
|
||||
''}
|
||||
'';
|
||||
|
||||
in
|
||||
{
|
||||
options = {
|
||||
system.activatable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to add the activation script to the system profile.
|
||||
|
||||
The default, to have the script available all the time, is what we normally
|
||||
do, but for image based systems, this may not be needed or not be desirable.
|
||||
'';
|
||||
};
|
||||
system.build.separateActivationScript = mkOption {
|
||||
type = types.package;
|
||||
description = ''
|
||||
A separate activation script package that's not part of the system profile.
|
||||
|
||||
This is useful for configurations where `system.activatable` is `false`.
|
||||
Otherwise, you can just use `system.build.toplevel`.
|
||||
'';
|
||||
};
|
||||
};
|
||||
config = {
|
||||
system.systemBuilderCommands = lib.mkIf config.system.activatable systemBuilderCommands;
|
||||
system.systemBuilderArgs = lib.mkIf config.system.activatable
|
||||
(systemBuilderArgs // {
|
||||
toplevelVar = "out";
|
||||
});
|
||||
|
||||
system.build.separateActivationScript =
|
||||
pkgs.runCommand
|
||||
"separate-activation-script"
|
||||
(systemBuilderArgs // {
|
||||
toplevelVar = "toplevel";
|
||||
toplevel = config.system.build.toplevel;
|
||||
})
|
||||
''
|
||||
mkdir $out
|
||||
${systemBuilderCommands}
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -204,6 +204,27 @@ in
|
|||
`/usr/bin/env`.
|
||||
'';
|
||||
};
|
||||
|
||||
system.build.installBootLoader = mkOption {
|
||||
internal = true;
|
||||
# "; true" => make the `$out` argument from switch-to-configuration.pl
|
||||
# go to `true` instead of `echo`, hiding the useless path
|
||||
# from the log.
|
||||
default = "echo 'Warning: do not know how to make this configuration bootable; please enable a boot loader.' 1>&2; true";
|
||||
description = lib.mdDoc ''
|
||||
A program that writes a bootloader installation script to the path passed in the first command line argument.
|
||||
|
||||
See `nixos/modules/system/activation/switch-to-configuration.pl`.
|
||||
'';
|
||||
type = types.unique {
|
||||
message = ''
|
||||
Only one bootloader can be enabled at a time. This requirement has not
|
||||
been checked until NixOS 22.05. Earlier versions defaulted to the last
|
||||
definition. Change your configuration to enable only one bootloader.
|
||||
'';
|
||||
} (types.either types.str types.package);
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -31,8 +31,10 @@ use Cwd qw(abs_path);
|
|||
## no critic(ValuesAndExpressions::ProhibitNoisyQuotes, ValuesAndExpressions::ProhibitMagicNumbers, ValuesAndExpressions::ProhibitEmptyQuotes, ValuesAndExpressions::ProhibitInterpolationOfLiterals)
|
||||
## no critic(RegularExpressions::ProhibitEscapedMetacharacters)
|
||||
|
||||
# System closure path to switch to
|
||||
# Location of activation scripts
|
||||
my $out = "@out@";
|
||||
# System closure path to switch to
|
||||
my $toplevel = "@toplevel@";
|
||||
# Path to the directory containing systemd tools of the old system
|
||||
my $cur_systemd = abs_path("/run/current-system/sw/bin");
|
||||
# Path to the systemd store path of the new system
|
||||
|
@ -96,7 +98,7 @@ if ($action eq "switch" || $action eq "boot") {
|
|||
chomp(my $install_boot_loader = <<'EOFBOOTLOADER');
|
||||
@installBootLoader@
|
||||
EOFBOOTLOADER
|
||||
system("$install_boot_loader $out") == 0 or exit 1;
|
||||
system("$install_boot_loader $toplevel") == 0 or exit 1;
|
||||
}
|
||||
|
||||
# Just in case the new configuration hangs the system, do a sync now.
|
||||
|
@ -110,7 +112,7 @@ if ($action eq "boot") {
|
|||
|
||||
# Check if we can activate the new configuration.
|
||||
my $cur_init_interface_version = read_file("/run/current-system/init-interface-version", err_mode => "quiet") // "";
|
||||
my $new_init_interface_version = read_file("$out/init-interface-version");
|
||||
my $new_init_interface_version = read_file("$toplevel/init-interface-version");
|
||||
|
||||
if ($new_init_interface_version ne $cur_init_interface_version) {
|
||||
print STDERR <<'EOF';
|
||||
|
@ -477,7 +479,7 @@ sub handle_modified_unit { ## no critic(Subroutines::ProhibitManyArgs, Subroutin
|
|||
$units_to_stop->{$socket} = 1;
|
||||
# Only restart sockets that actually
|
||||
# exist in new configuration:
|
||||
if (-e "$out/etc/systemd/system/$socket") {
|
||||
if (-e "$toplevel/etc/systemd/system/$socket") {
|
||||
$units_to_start->{$socket} = 1;
|
||||
if ($units_to_start eq $units_to_restart) {
|
||||
record_unit($restart_list_file, $socket);
|
||||
|
@ -539,13 +541,13 @@ while (my ($unit, $state) = each(%{$active_cur})) {
|
|||
my $base_unit = $unit;
|
||||
|
||||
my $cur_unit_file = "/etc/systemd/system/$base_unit";
|
||||
my $new_unit_file = "$out/etc/systemd/system/$base_unit";
|
||||
my $new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
|
||||
|
||||
# Detect template instances.
|
||||
if (!-e $cur_unit_file && !-e $new_unit_file && $unit =~ /^(.*)@[^\.]*\.(.*)$/msx) {
|
||||
$base_unit = "$1\@.$2";
|
||||
$cur_unit_file = "/etc/systemd/system/$base_unit";
|
||||
$new_unit_file = "$out/etc/systemd/system/$base_unit";
|
||||
$new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
|
||||
}
|
||||
|
||||
my $base_name = $base_unit;
|
||||
|
@ -626,7 +628,7 @@ sub path_to_unit_name {
|
|||
# we generated units for all mounts; then we could unify this with the
|
||||
# unit checking code above.
|
||||
my ($cur_fss, $cur_swaps) = parse_fstab("/etc/fstab");
|
||||
my ($new_fss, $new_swaps) = parse_fstab("$out/etc/fstab");
|
||||
my ($new_fss, $new_swaps) = parse_fstab("$toplevel/etc/fstab");
|
||||
foreach my $mount_point (keys(%{$cur_fss})) {
|
||||
my $cur = $cur_fss->{$mount_point};
|
||||
my $new = $new_fss->{$mount_point};
|
||||
|
@ -670,7 +672,7 @@ foreach my $device (keys(%{$cur_swaps})) {
|
|||
my $cur_pid1_path = abs_path("/proc/1/exe") // "/unknown";
|
||||
my $cur_systemd_system_config = abs_path("/etc/systemd/system.conf") // "/unknown";
|
||||
my $new_pid1_path = abs_path("$new_systemd/lib/systemd/systemd") or die;
|
||||
my $new_systemd_system_config = abs_path("$out/etc/systemd/system.conf") // "/unknown";
|
||||
my $new_systemd_system_config = abs_path("$toplevel/etc/systemd/system.conf") // "/unknown";
|
||||
|
||||
my $restart_systemd = $cur_pid1_path ne $new_pid1_path;
|
||||
if ($cur_systemd_system_config ne $new_systemd_system_config) {
|
||||
|
@ -709,12 +711,12 @@ if ($action eq "dry-activate") {
|
|||
foreach (split(/\n/msx, read_file($dry_restart_by_activation_file, err_mode => "quiet") // "")) {
|
||||
my $unit = $_;
|
||||
my $base_unit = $unit;
|
||||
my $new_unit_file = "$out/etc/systemd/system/$base_unit";
|
||||
my $new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
|
||||
|
||||
# Detect template instances.
|
||||
if (!-e $new_unit_file && $unit =~ /^(.*)@[^\.]*\.(.*)$/msx) {
|
||||
$base_unit = "$1\@.$2";
|
||||
$new_unit_file = "$out/etc/systemd/system/$base_unit";
|
||||
$new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
|
||||
}
|
||||
|
||||
my $base_name = $base_unit;
|
||||
|
@ -757,7 +759,7 @@ if ($action eq "dry-activate") {
|
|||
}
|
||||
|
||||
|
||||
syslog(LOG_NOTICE, "switching to system configuration $out");
|
||||
syslog(LOG_NOTICE, "switching to system configuration $toplevel");
|
||||
|
||||
if (scalar(keys(%units_to_stop)) > 0) {
|
||||
if (scalar(@units_to_stop_filtered)) {
|
||||
|
@ -781,12 +783,12 @@ system("$out/activate", "$out") == 0 or $res = 2;
|
|||
foreach (split(/\n/msx, read_file($restart_by_activation_file, err_mode => "quiet") // "")) {
|
||||
my $unit = $_;
|
||||
my $base_unit = $unit;
|
||||
my $new_unit_file = "$out/etc/systemd/system/$base_unit";
|
||||
my $new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
|
||||
|
||||
# Detect template instances.
|
||||
if (!-e $new_unit_file && $unit =~ /^(.*)@[^\.]*\.(.*)$/msx) {
|
||||
$base_unit = "$1\@.$2";
|
||||
$new_unit_file = "$out/etc/systemd/system/$base_unit";
|
||||
$new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
|
||||
}
|
||||
|
||||
my $base_name = $base_unit;
|
||||
|
@ -857,7 +859,7 @@ if (scalar(keys(%units_to_reload)) > 0) {
|
|||
for my $unit (keys(%units_to_reload)) {
|
||||
if (!unit_is_active($unit)) {
|
||||
# Figure out if we need to start the unit
|
||||
my %unit_info = parse_unit("$out/etc/systemd/system/$unit");
|
||||
my %unit_info = parse_unit("$toplevel/etc/systemd/system/$unit");
|
||||
if (!(parse_systemd_bool(\%unit_info, "Unit", "RefuseManualStart", 0) || parse_systemd_bool(\%unit_info, "Unit", "X-OnlyManualStart", 0))) {
|
||||
$units_to_start{$unit} = 1;
|
||||
record_unit($start_list_file, $unit);
|
||||
|
@ -940,9 +942,9 @@ if (scalar(@failed) > 0) {
|
|||
}
|
||||
|
||||
if ($res == 0) {
|
||||
syslog(LOG_NOTICE, "finished switching to system configuration $out");
|
||||
syslog(LOG_NOTICE, "finished switching to system configuration $toplevel");
|
||||
} else {
|
||||
syslog(LOG_ERR, "switching to system configuration $out failed (status $res)");
|
||||
syslog(LOG_ERR, "switching to system configuration $toplevel failed (status $res)");
|
||||
}
|
||||
|
||||
exit($res);
|
||||
|
|
|
@ -36,13 +36,6 @@ let
|
|||
ln -s ${config.hardware.firmware}/lib/firmware $out/firmware
|
||||
''}
|
||||
|
||||
echo "$activationScript" > $out/activate
|
||||
echo "$dryActivationScript" > $out/dry-activate
|
||||
substituteInPlace $out/activate --subst-var out
|
||||
substituteInPlace $out/dry-activate --subst-var out
|
||||
chmod u+x $out/activate $out/dry-activate
|
||||
unset activationScript dryActivationScript
|
||||
|
||||
${if config.boot.initrd.systemd.enable then ''
|
||||
cp ${config.system.build.bootStage2} $out/prepare-root
|
||||
substituteInPlace $out/prepare-root --subst-var-by systemConfig $out
|
||||
|
@ -63,19 +56,6 @@ let
|
|||
echo -n "$nixosLabel" > $out/nixos-version
|
||||
echo -n "${config.boot.kernelPackages.stdenv.hostPlatform.system}" > $out/system
|
||||
|
||||
mkdir $out/bin
|
||||
export localeArchive="${config.i18n.glibcLocales}/lib/locale/locale-archive"
|
||||
export distroId=${config.system.nixos.distroId};
|
||||
substituteAll ${./switch-to-configuration.pl} $out/bin/switch-to-configuration
|
||||
chmod +x $out/bin/switch-to-configuration
|
||||
${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''
|
||||
if ! output=$($perl/bin/perl -c $out/bin/switch-to-configuration 2>&1); then
|
||||
echo "switch-to-configuration syntax is not valid:"
|
||||
echo "$output"
|
||||
exit 1
|
||||
fi
|
||||
''}
|
||||
|
||||
${config.system.systemBuilderCommands}
|
||||
|
||||
cp "$extraDependenciesPath" "$out/extra-dependencies"
|
||||
|
@ -93,7 +73,7 @@ let
|
|||
# symlinks to the various parts of the built configuration (the
|
||||
# kernel, systemd units, init scripts, etc.) as well as a script
|
||||
# `switch-to-configuration' that activates the configuration and
|
||||
# makes it bootable.
|
||||
# makes it bootable. See `activatable-system.nix`.
|
||||
baseSystem = pkgs.stdenvNoCC.mkDerivation ({
|
||||
name = "nixos-system-${config.system.name}-${config.system.nixos.label}";
|
||||
preferLocalBuild = true;
|
||||
|
@ -101,22 +81,12 @@ let
|
|||
passAsFile = [ "extraDependencies" ];
|
||||
buildCommand = systemBuilder;
|
||||
|
||||
inherit (pkgs) coreutils;
|
||||
systemd = config.systemd.package;
|
||||
shell = "${pkgs.bash}/bin/sh";
|
||||
su = "${pkgs.shadow.su}/bin/su";
|
||||
utillinux = pkgs.util-linux;
|
||||
|
||||
kernelParams = config.boot.kernelParams;
|
||||
installBootLoader = config.system.build.installBootLoader;
|
||||
activationScript = config.system.activationScripts.script;
|
||||
dryActivationScript = config.system.dryActivationScript;
|
||||
nixosLabel = config.system.nixos.label;
|
||||
|
||||
inherit (config.system) extraDependencies;
|
||||
|
||||
# Needed by switch-to-configuration.
|
||||
perl = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp ]);
|
||||
} // config.system.systemBuilderArgs);
|
||||
|
||||
# Handle assertions and warnings
|
||||
|
@ -178,26 +148,6 @@ in
|
|||
};
|
||||
|
||||
system.build = {
|
||||
installBootLoader = mkOption {
|
||||
internal = true;
|
||||
# "; true" => make the `$out` argument from switch-to-configuration.pl
|
||||
# go to `true` instead of `echo`, hiding the useless path
|
||||
# from the log.
|
||||
default = "echo 'Warning: do not know how to make this configuration bootable; please enable a boot loader.' 1>&2; true";
|
||||
description = lib.mdDoc ''
|
||||
A program that writes a bootloader installation script to the path passed in the first command line argument.
|
||||
|
||||
See `nixos/modules/system/activation/switch-to-configuration.pl`.
|
||||
'';
|
||||
type = types.unique {
|
||||
message = ''
|
||||
Only one bootloader can be enabled at a time. This requirement has not
|
||||
been checked until NixOS 22.05. Earlier versions defaulted to the last
|
||||
definition. Change your configuration to enable only one bootloader.
|
||||
'';
|
||||
} (types.either types.str types.package);
|
||||
};
|
||||
|
||||
toplevel = mkOption {
|
||||
type = types.package;
|
||||
readOnly = true;
|
||||
|
@ -380,6 +330,16 @@ in
|
|||
'';
|
||||
|
||||
system.systemBuilderArgs = {
|
||||
|
||||
# Legacy environment variables. These were used by the activation script,
|
||||
# but some other script might still depend on them, although unlikely.
|
||||
installBootLoader = config.system.build.installBootLoader;
|
||||
localeArchive = "${config.i18n.glibcLocales}/lib/locale/locale-archive";
|
||||
distroId = config.system.nixos.distroId;
|
||||
perl = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp ]);
|
||||
# End if legacy environment variables
|
||||
|
||||
|
||||
# Not actually used in the builder. `passedChecks` is just here to create
|
||||
# the build dependencies. Checks are similar to build dependencies in the
|
||||
# sense that if they fail, the system build fails. However, checks do not
|
||||
|
|
|
@ -52,6 +52,10 @@ in
|
|||
Whether to create files with the system generations in
|
||||
`/boot`.
|
||||
`/boot/old` will hold files from old generations.
|
||||
|
||||
::: {.note}
|
||||
These options are deprecated, unsupported, and may not work like expected.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -67,6 +71,10 @@ in
|
|||
type = types.bool;
|
||||
description = lib.mdDoc ''
|
||||
Enable using uboot as bootmanager for the raspberry pi.
|
||||
|
||||
::: {.note}
|
||||
These options are deprecated, unsupported, and may not work like expected.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -76,6 +84,10 @@ in
|
|||
type = types.int;
|
||||
description = lib.mdDoc ''
|
||||
Maximum number of configurations in the boot menu.
|
||||
|
||||
::: {.note}
|
||||
These options are deprecated, unsupported, and may not work like expected.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -87,19 +99,53 @@ in
|
|||
description = lib.mdDoc ''
|
||||
Extra options that will be appended to `/boot/config.txt` file.
|
||||
For possible values, see: https://www.raspberrypi.com/documentation/computers/config_txt.html
|
||||
|
||||
::: {.note}
|
||||
These options are deprecated, unsupported, and may not work like expected.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = singleton {
|
||||
assertion = !pkgs.stdenv.hostPlatform.isAarch64 || cfg.version >= 3;
|
||||
message = "Only Raspberry Pi >= 3 supports aarch64.";
|
||||
};
|
||||
config = mkMerge[
|
||||
(mkIf cfg.uboot.enable {
|
||||
warnings = [
|
||||
''
|
||||
The option set for `boot.loader.raspberrypi.uboot` has been recommended against
|
||||
for years, and is now formally deprecated.
|
||||
|
||||
system.build.installBootLoader = builder;
|
||||
system.boot.loader.id = "raspberrypi";
|
||||
system.boot.loader.kernelFile = pkgs.stdenv.hostPlatform.linux-kernel.target;
|
||||
};
|
||||
It is possible it already did not work like you expected.
|
||||
|
||||
It never worked on the Raspberry Pi 4 family.
|
||||
|
||||
These options will be removed by NixOS 24.11.
|
||||
''
|
||||
];
|
||||
})
|
||||
(mkIf cfg.enable {
|
||||
warnings = [
|
||||
''
|
||||
The option set for `boot.loader.raspberrypi` has been recommended against
|
||||
for years, and is now formally deprecated.
|
||||
|
||||
It is possible it already did not work like you expected.
|
||||
|
||||
It never worked on the Raspberry Pi 4 family.
|
||||
|
||||
These options will be removed by NixOS 24.11.
|
||||
''
|
||||
];
|
||||
})
|
||||
(mkIf cfg.enable {
|
||||
assertions = singleton {
|
||||
assertion = !pkgs.stdenv.hostPlatform.isAarch64 || cfg.version >= 3;
|
||||
message = "Only Raspberry Pi >= 3 supports aarch64.";
|
||||
};
|
||||
|
||||
system.build.installBootLoader = builder;
|
||||
system.boot.loader.id = "raspberrypi";
|
||||
system.boot.loader.kernelFile = pkgs.stdenv.hostPlatform.linux-kernel.target;
|
||||
})
|
||||
];
|
||||
}
|
||||
|
|
|
@ -582,6 +582,7 @@ let
|
|||
"VLAN"
|
||||
"IPVLAN"
|
||||
"MACVLAN"
|
||||
"MACVTAP"
|
||||
"VXLAN"
|
||||
"Tunnel"
|
||||
"MACsec"
|
||||
|
@ -2504,6 +2505,15 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
macvtap = mkOption {
|
||||
default = [ ];
|
||||
type = types.listOf types.str;
|
||||
description = lib.mdDoc ''
|
||||
A list of macvtap interfaces to be added to the network section of the
|
||||
unit. See {manpage}`systemd.network(5)` for details.
|
||||
'';
|
||||
};
|
||||
|
||||
vxlan = mkOption {
|
||||
default = [ ];
|
||||
type = types.listOf types.str;
|
||||
|
@ -2619,6 +2629,238 @@ let
|
|||
${attrsToSection def.dhcpV6Config}
|
||||
''; };
|
||||
|
||||
networkToUnit = name: def:
|
||||
{ inherit (def) enable;
|
||||
text = commonMatchText def
|
||||
+ optionalString (def.linkConfig != { }) ''
|
||||
[Link]
|
||||
${attrsToSection def.linkConfig}
|
||||
''
|
||||
+ ''
|
||||
[Network]
|
||||
''
|
||||
+ attrsToSection def.networkConfig
|
||||
+ optionalString (def.address != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "Address=${s}") def.address)}
|
||||
''
|
||||
+ optionalString (def.gateway != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "Gateway=${s}") def.gateway)}
|
||||
''
|
||||
+ optionalString (def.dns != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "DNS=${s}") def.dns)}
|
||||
''
|
||||
+ optionalString (def.ntp != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "NTP=${s}") def.ntp)}
|
||||
''
|
||||
+ optionalString (def.bridge != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "Bridge=${s}") def.bridge)}
|
||||
''
|
||||
+ optionalString (def.bond != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "Bond=${s}") def.bond)}
|
||||
''
|
||||
+ optionalString (def.vrf != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "VRF=${s}") def.vrf)}
|
||||
''
|
||||
+ optionalString (def.vlan != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "VLAN=${s}") def.vlan)}
|
||||
''
|
||||
+ optionalString (def.macvlan != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "MACVLAN=${s}") def.macvlan)}
|
||||
''
|
||||
+ optionalString (def.macvtap != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "MACVTAP=${s}") def.macvtap)}
|
||||
''
|
||||
+ optionalString (def.vxlan != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "VXLAN=${s}") def.vxlan)}
|
||||
''
|
||||
+ optionalString (def.tunnel != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "Tunnel=${s}") def.tunnel)}
|
||||
''
|
||||
+ optionalString (def.xfrm != [ ]) ''
|
||||
${concatStringsSep "\n" (map (s: "Xfrm=${s}") def.xfrm)}
|
||||
''
|
||||
+ ''
|
||||
|
||||
''
|
||||
+ flip concatMapStrings def.addresses (x: ''
|
||||
[Address]
|
||||
${attrsToSection x.addressConfig}
|
||||
'')
|
||||
+ flip concatMapStrings def.routingPolicyRules (x: ''
|
||||
[RoutingPolicyRule]
|
||||
${attrsToSection x.routingPolicyRuleConfig}
|
||||
'')
|
||||
+ flip concatMapStrings def.routes (x: ''
|
||||
[Route]
|
||||
${attrsToSection x.routeConfig}
|
||||
'')
|
||||
+ optionalString (def.dhcpV4Config != { }) ''
|
||||
[DHCPv4]
|
||||
${attrsToSection def.dhcpV4Config}
|
||||
''
|
||||
+ optionalString (def.dhcpV6Config != { }) ''
|
||||
[DHCPv6]
|
||||
${attrsToSection def.dhcpV6Config}
|
||||
''
|
||||
+ optionalString (def.dhcpPrefixDelegationConfig != { }) ''
|
||||
[DHCPPrefixDelegation]
|
||||
${attrsToSection def.dhcpPrefixDelegationConfig}
|
||||
''
|
||||
+ optionalString (def.ipv6AcceptRAConfig != { }) ''
|
||||
[IPv6AcceptRA]
|
||||
${attrsToSection def.ipv6AcceptRAConfig}
|
||||
''
|
||||
+ optionalString (def.dhcpServerConfig != { }) ''
|
||||
[DHCPServer]
|
||||
${attrsToSection def.dhcpServerConfig}
|
||||
''
|
||||
+ optionalString (def.ipv6SendRAConfig != { }) ''
|
||||
[IPv6SendRA]
|
||||
${attrsToSection def.ipv6SendRAConfig}
|
||||
''
|
||||
+ flip concatMapStrings def.ipv6Prefixes (x: ''
|
||||
[IPv6Prefix]
|
||||
${attrsToSection x.ipv6PrefixConfig}
|
||||
'')
|
||||
+ flip concatMapStrings def.ipv6RoutePrefixes (x: ''
|
||||
[IPv6RoutePrefix]
|
||||
${attrsToSection x.ipv6RoutePrefixConfig}
|
||||
'')
|
||||
+ flip concatMapStrings def.dhcpServerStaticLeases (x: ''
|
||||
[DHCPServerStaticLease]
|
||||
${attrsToSection x.dhcpServerStaticLeaseConfig}
|
||||
'')
|
||||
+ optionalString (def.bridgeConfig != { }) ''
|
||||
[Bridge]
|
||||
${attrsToSection def.bridgeConfig}
|
||||
''
|
||||
+ flip concatMapStrings def.bridgeFDBs (x: ''
|
||||
[BridgeFDB]
|
||||
${attrsToSection x.bridgeFDBConfig}
|
||||
'')
|
||||
+ flip concatMapStrings def.bridgeMDBs (x: ''
|
||||
[BridgeMDB]
|
||||
${attrsToSection x.bridgeMDBConfig}
|
||||
'')
|
||||
+ optionalString (def.lldpConfig != { }) ''
|
||||
[LLDP]
|
||||
${attrsToSection def.lldpConfig}
|
||||
''
|
||||
+ optionalString (def.canConfig != { }) ''
|
||||
[CAN]
|
||||
${attrsToSection def.canConfig}
|
||||
''
|
||||
+ optionalString (def.ipoIBConfig != { }) ''
|
||||
[IPoIB]
|
||||
${attrsToSection def.ipoIBConfig}
|
||||
''
|
||||
+ optionalString (def.qdiscConfig != { }) ''
|
||||
[QDisc]
|
||||
${attrsToSection def.qdiscConfig}
|
||||
''
|
||||
+ optionalString (def.networkEmulatorConfig != { }) ''
|
||||
[NetworkEmulator]
|
||||
${attrsToSection def.networkEmulatorConfig}
|
||||
''
|
||||
+ optionalString (def.tokenBucketFilterConfig != { }) ''
|
||||
[TokenBucketFilter]
|
||||
${attrsToSection def.tokenBucketFilterConfig}
|
||||
''
|
||||
+ optionalString (def.pieConfig != { }) ''
|
||||
[PIE]
|
||||
${attrsToSection def.pieConfig}
|
||||
''
|
||||
+ optionalString (def.flowQueuePIEConfig != { }) ''
|
||||
[FlowQueuePIE]
|
||||
${attrsToSection def.flowQueuePIEConfig}
|
||||
''
|
||||
+ optionalString (def.stochasticFairBlueConfig != { }) ''
|
||||
[StochasticFairBlue]
|
||||
${attrsToSection def.stochasticFairBlueConfig}
|
||||
''
|
||||
+ optionalString (def.stochasticFairnessQueueingConfig != { }) ''
|
||||
[StochasticFairnessQueueing]
|
||||
${attrsToSection def.stochasticFairnessQueueingConfig}
|
||||
''
|
||||
+ optionalString (def.bfifoConfig != { }) ''
|
||||
[BFIFO]
|
||||
${attrsToSection def.bfifoConfig}
|
||||
''
|
||||
+ optionalString (def.pfifoConfig != { }) ''
|
||||
[PFIFO]
|
||||
${attrsToSection def.pfifoConfig}
|
||||
''
|
||||
+ optionalString (def.pfifoHeadDropConfig != { }) ''
|
||||
[PFIFOHeadDrop]
|
||||
${attrsToSection def.pfifoHeadDropConfig}
|
||||
''
|
||||
+ optionalString (def.pfifoFastConfig != { }) ''
|
||||
[PFIFOFast]
|
||||
${attrsToSection def.pfifoFastConfig}
|
||||
''
|
||||
+ optionalString (def.cakeConfig != { }) ''
|
||||
[CAKE]
|
||||
${attrsToSection def.cakeConfig}
|
||||
''
|
||||
+ optionalString (def.controlledDelayConfig != { }) ''
|
||||
[ControlledDelay]
|
||||
${attrsToSection def.controlledDelayConfig}
|
||||
''
|
||||
+ optionalString (def.deficitRoundRobinSchedulerConfig != { }) ''
|
||||
[DeficitRoundRobinScheduler]
|
||||
${attrsToSection def.deficitRoundRobinSchedulerConfig}
|
||||
''
|
||||
+ optionalString (def.deficitRoundRobinSchedulerClassConfig != { }) ''
|
||||
[DeficitRoundRobinSchedulerClass]
|
||||
${attrsToSection def.deficitRoundRobinSchedulerClassConfig}
|
||||
''
|
||||
+ optionalString (def.enhancedTransmissionSelectionConfig != { }) ''
|
||||
[EnhancedTransmissionSelection]
|
||||
${attrsToSection def.enhancedTransmissionSelectionConfig}
|
||||
''
|
||||
+ optionalString (def.genericRandomEarlyDetectionConfig != { }) ''
|
||||
[GenericRandomEarlyDetection]
|
||||
${attrsToSection def.genericRandomEarlyDetectionConfig}
|
||||
''
|
||||
+ optionalString (def.fairQueueingControlledDelayConfig != { }) ''
|
||||
[FairQueueingControlledDelay]
|
||||
${attrsToSection def.fairQueueingControlledDelayConfig}
|
||||
''
|
||||
+ optionalString (def.fairQueueingConfig != { }) ''
|
||||
[FairQueueing]
|
||||
${attrsToSection def.fairQueueingConfig}
|
||||
''
|
||||
+ optionalString (def.trivialLinkEqualizerConfig != { }) ''
|
||||
[TrivialLinkEqualizer]
|
||||
${attrsToSection def.trivialLinkEqualizerConfig}
|
||||
''
|
||||
+ optionalString (def.hierarchyTokenBucketConfig != { }) ''
|
||||
[HierarchyTokenBucket]
|
||||
${attrsToSection def.hierarchyTokenBucketConfig}
|
||||
''
|
||||
+ optionalString (def.hierarchyTokenBucketClassConfig != { }) ''
|
||||
[HierarchyTokenBucketClass]
|
||||
${attrsToSection def.hierarchyTokenBucketClassConfig}
|
||||
''
|
||||
+ optionalString (def.heavyHitterFilterConfig != { }) ''
|
||||
[HeavyHitterFilter]
|
||||
${attrsToSection def.heavyHitterFilterConfig}
|
||||
''
|
||||
+ optionalString (def.quickFairQueueingConfig != { }) ''
|
||||
[QuickFairQueueing]
|
||||
${attrsToSection def.quickFairQueueingConfig}
|
||||
''
|
||||
+ optionalString (def.quickFairQueueingConfigClass != { }) ''
|
||||
[QuickFairQueueingClass]
|
||||
${attrsToSection def.quickFairQueueingConfigClass}
|
||||
''
|
||||
+ flip concatMapStrings def.bridgeVLANs (x: ''
|
||||
[BridgeVLAN]
|
||||
${attrsToSection x.bridgeVLANConfig}
|
||||
'')
|
||||
+ def.extraConfig;
|
||||
};
|
||||
|
||||
mkUnitFiles = prefix: cfg: listToAttrs (map (name: {
|
||||
name = "${prefix}systemd/network/${name}";
|
||||
value.source = "${cfg.units.${name}.unit}/${name}";
|
||||
|
|
|
@ -323,6 +323,30 @@ in
|
|||
Defaults to 0, which waits forever.
|
||||
'';
|
||||
};
|
||||
|
||||
removeLinuxDRM = lib.mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
Linux 6.2 dropped some kernel symbols required on aarch64 required by zfs.
|
||||
Enabling this option will bring them back to allow this kernel version.
|
||||
Note that in some jurisdictions this may be illegal as it might be considered
|
||||
removing copyright protection from the code.
|
||||
See https://www.ifross.org/?q=en/artikel/ongoing-dispute-over-value-exportsymbolgpl-function for further information.
|
||||
|
||||
If configure your kernel package with `zfs.latestCompatibleLinuxPackages`, you will need to also pass removeLinuxDRM to that package like this:
|
||||
|
||||
```
|
||||
{ pkgs, ... }: {
|
||||
boot.kernelPackages = (pkgs.zfs.override {
|
||||
removeLinuxDRM = pkgs.hostPlatform.isAarch64;
|
||||
}).latestCompatibleLinuxPackages;
|
||||
|
||||
boot.zfs.removeLinuxDRM = true;
|
||||
}
|
||||
```
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
services.zfs.autoSnapshot = {
|
||||
|
@ -541,11 +565,13 @@ in
|
|||
# https://github.com/NixOS/nixpkgs/issues/106093
|
||||
kernelParams = lib.optionals (!config.boot.zfs.allowHibernation) [ "nohibernate" ];
|
||||
|
||||
extraModulePackages = [
|
||||
(if config.boot.zfs.enableUnstable then
|
||||
extraModulePackages = let
|
||||
kernelPkg = if config.boot.zfs.enableUnstable then
|
||||
config.boot.kernelPackages.zfsUnstable
|
||||
else
|
||||
config.boot.kernelPackages.zfs)
|
||||
config.boot.kernelPackages.zfs;
|
||||
in [
|
||||
(kernelPkg.override { inherit (cfgZfs) removeLinuxDRM; })
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -663,6 +689,21 @@ in
|
|||
services.udev.packages = [ cfgZfs.package ]; # to hook zvol naming, etc.
|
||||
systemd.packages = [ cfgZfs.package ];
|
||||
|
||||
# Export kernel_neon_* symbols again.
|
||||
# This change is necessary until ZFS figures out a solution
|
||||
# with upstream or in their build system to fill the gap for
|
||||
# this symbol.
|
||||
# In the meantime, we restore what was once a working piece of code
|
||||
# in the kernel.
|
||||
boot.kernelPatches = lib.optional (cfgZfs.removeLinuxDRM && pkgs.stdenv.hostPlatform.system == "aarch64-linux") {
|
||||
name = "export-neon-symbols-as-gpl";
|
||||
patch = pkgs.fetchpatch {
|
||||
url = "https://github.com/torvalds/linux/commit/aaeca98456431a8d9382ecf48ac4843e252c07b3.patch";
|
||||
hash = "sha256-L2g4G1tlWPIi/QRckMuHDcdWBcKpObSWSRTvbHRIwIk=";
|
||||
revert = true;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services = let
|
||||
createImportService' = pool: createImportService {
|
||||
inherit pool;
|
||||
|
|
|
@ -70,6 +70,19 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
simpleServiceSeparateActivationScript.configuration = {
|
||||
system.activatable = false;
|
||||
systemd.services.test = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
ExecStart = "${pkgs.coreutils}/bin/true";
|
||||
ExecReload = "${pkgs.coreutils}/bin/true";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
simpleServiceDifferentDescription.configuration = {
|
||||
imports = [ simpleService.configuration ];
|
||||
systemd.services.test.description = "Test unit";
|
||||
|
@ -482,9 +495,9 @@ in {
|
|||
};
|
||||
|
||||
testScript = { nodes, ... }: let
|
||||
originalSystem = nodes.machine.config.system.build.toplevel;
|
||||
otherSystem = nodes.other.config.system.build.toplevel;
|
||||
machine = nodes.machine.config.system.build.toplevel;
|
||||
originalSystem = nodes.machine.system.build.toplevel;
|
||||
otherSystem = nodes.other.system.build.toplevel;
|
||||
machine = nodes.machine.system.build.toplevel;
|
||||
|
||||
# Ensures failures pass through using pipefail, otherwise failing to
|
||||
# switch-to-configuration is hidden by the success of `tee`.
|
||||
|
@ -497,11 +510,15 @@ in {
|
|||
in /* python */ ''
|
||||
def switch_to_specialisation(system, name, action="test", fail=False):
|
||||
if name == "":
|
||||
stc = f"{system}/bin/switch-to-configuration"
|
||||
switcher = f"{system}/bin/switch-to-configuration"
|
||||
else:
|
||||
stc = f"{system}/specialisation/{name}/bin/switch-to-configuration"
|
||||
out = machine.fail(f"{stc} {action} 2>&1") if fail \
|
||||
else machine.succeed(f"{stc} {action} 2>&1")
|
||||
switcher = f"{system}/specialisation/{name}/bin/switch-to-configuration"
|
||||
return run_switch(switcher, action, fail)
|
||||
|
||||
# like above but stc = switcher
|
||||
def run_switch(switcher, action="test", fail=False):
|
||||
out = machine.fail(f"{switcher} {action} 2>&1") if fail \
|
||||
else machine.succeed(f"{switcher} {action} 2>&1")
|
||||
assert_lacks(out, "switch-to-configuration line") # Perl warnings
|
||||
return out
|
||||
|
||||
|
@ -639,6 +656,22 @@ in {
|
|||
assert_lacks(out, "the following new units were started:")
|
||||
assert_contains(out, "would start the following units: test.service\n")
|
||||
|
||||
out = switch_to_specialisation("${machine}", "", action="test")
|
||||
|
||||
# Ensure the service can be started when the activation script isn't in toplevel
|
||||
# This is a lot like "Start a simple service", except activation-only deps could be gc-ed
|
||||
out = run_switch("${nodes.machine.specialisation.simpleServiceSeparateActivationScript.configuration.system.build.separateActivationScript}/bin/switch-to-configuration");
|
||||
assert_lacks(out, "installing dummy bootloader") # test does not install a bootloader
|
||||
assert_lacks(out, "stopping the following units:")
|
||||
assert_lacks(out, "NOT restarting the following changed units:")
|
||||
assert_contains(out, "reloading the following units: dbus.service\n") # huh
|
||||
assert_lacks(out, "\nrestarting the following units:")
|
||||
assert_lacks(out, "\nstarting the following units:")
|
||||
assert_contains(out, "the following new units were started: test.service\n")
|
||||
machine.succeed("! test -e /run/current-system/activate")
|
||||
machine.succeed("! test -e /run/current-system/dry-activate")
|
||||
machine.succeed("! test -e /run/current-system/bin/switch-to-configuration")
|
||||
|
||||
# Ensure \ works in unit names
|
||||
out = switch_to_specialisation("${machine}", "unitWithBackslash")
|
||||
assert_contains(out, "stopping the following units: test.service\n")
|
||||
|
|
|
@ -2,63 +2,159 @@ import ./make-test-python.nix ({ pkgs, lib, ...}:
|
|||
{
|
||||
name = "wpa_supplicant";
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ rnhmjoj ];
|
||||
maintainers = [ oddlama rnhmjoj ];
|
||||
};
|
||||
|
||||
nodes.machine = { ... }: {
|
||||
imports = [ ../modules/profiles/minimal.nix ];
|
||||
nodes = let
|
||||
machineWithHostapd = extraConfigModule: { ... }: {
|
||||
imports = [
|
||||
../modules/profiles/minimal.nix
|
||||
extraConfigModule
|
||||
];
|
||||
|
||||
# add a virtual wlan interface
|
||||
boot.kernelModules = [ "mac80211_hwsim" ];
|
||||
# add a virtual wlan interface
|
||||
boot.kernelModules = [ "mac80211_hwsim" ];
|
||||
|
||||
# wireless access point
|
||||
services.hostapd = {
|
||||
enable = true;
|
||||
wpa = true;
|
||||
interface = "wlan0";
|
||||
ssid = "nixos-test";
|
||||
wpaPassphrase = "reproducibility";
|
||||
};
|
||||
|
||||
# wireless client
|
||||
networking.wireless = {
|
||||
# the override is needed because the wifi is
|
||||
# disabled with mkVMOverride in qemu-vm.nix.
|
||||
enable = lib.mkOverride 0 true;
|
||||
userControlled.enable = true;
|
||||
interfaces = [ "wlan1" ];
|
||||
fallbackToWPA2 = true;
|
||||
|
||||
networks = {
|
||||
# test WPA2 fallback
|
||||
mixed-wpa = {
|
||||
psk = "password";
|
||||
authProtocols = [ "WPA-PSK" "SAE" ];
|
||||
# wireless access point
|
||||
services.hostapd = {
|
||||
enable = true;
|
||||
radios.wlan0 = {
|
||||
band = "2g";
|
||||
countryCode = "US";
|
||||
networks = {
|
||||
wlan0 = {
|
||||
ssid = "nixos-test-sae";
|
||||
authentication = {
|
||||
mode = "wpa3-sae";
|
||||
saePasswords = [ { password = "reproducibility"; } ];
|
||||
};
|
||||
bssid = "02:00:00:00:00:00";
|
||||
};
|
||||
wlan0-1 = {
|
||||
ssid = "nixos-test-mixed";
|
||||
authentication = {
|
||||
mode = "wpa3-sae-transition";
|
||||
saePasswordsFile = pkgs.writeText "password" "reproducibility";
|
||||
wpaPasswordFile = pkgs.writeText "password" "reproducibility";
|
||||
};
|
||||
bssid = "02:00:00:00:00:01";
|
||||
};
|
||||
wlan0-2 = {
|
||||
ssid = "nixos-test-wpa2";
|
||||
authentication = {
|
||||
mode = "wpa2-sha256";
|
||||
wpaPassword = "reproducibility";
|
||||
};
|
||||
bssid = "02:00:00:00:00:02";
|
||||
};
|
||||
};
|
||||
};
|
||||
sae-only = {
|
||||
psk = "password";
|
||||
authProtocols = [ "SAE" ];
|
||||
};
|
||||
|
||||
# test network
|
||||
nixos-test.psk = "@PSK_NIXOS_TEST@";
|
||||
|
||||
# secrets substitution test cases
|
||||
test1.psk = "@PSK_VALID@"; # should be replaced
|
||||
test2.psk = "@PSK_SPECIAL@"; # should be replaced
|
||||
test3.psk = "@PSK_MISSING@"; # should not be replaced
|
||||
test4.psk = "P@ssowrdWithSome@tSymbol"; # should not be replaced
|
||||
};
|
||||
|
||||
# secrets
|
||||
environmentFile = pkgs.writeText "wpa-secrets" ''
|
||||
PSK_NIXOS_TEST="reproducibility"
|
||||
PSK_VALID="S0m3BadP4ssw0rd";
|
||||
# taken from https://github.com/minimaxir/big-list-of-naughty-strings
|
||||
PSK_SPECIAL=",./;'[]\-= <>?:\"{}|_+ !@#$%^\&*()`~";
|
||||
'';
|
||||
# wireless client
|
||||
networking.wireless = {
|
||||
# the override is needed because the wifi is
|
||||
# disabled with mkVMOverride in qemu-vm.nix.
|
||||
enable = lib.mkOverride 0 true;
|
||||
userControlled.enable = true;
|
||||
interfaces = [ "wlan1" ];
|
||||
fallbackToWPA2 = lib.mkDefault true;
|
||||
|
||||
# networks will be added on-demand below for the specific
|
||||
# network that should be tested
|
||||
|
||||
# secrets
|
||||
environmentFile = pkgs.writeText "wpa-secrets" ''
|
||||
PSK_NIXOS_TEST="reproducibility"
|
||||
'';
|
||||
};
|
||||
};
|
||||
in {
|
||||
basic = { ... }: {
|
||||
imports = [ ../modules/profiles/minimal.nix ];
|
||||
|
||||
# add a virtual wlan interface
|
||||
boot.kernelModules = [ "mac80211_hwsim" ];
|
||||
|
||||
# wireless client
|
||||
networking.wireless = {
|
||||
# the override is needed because the wifi is
|
||||
# disabled with mkVMOverride in qemu-vm.nix.
|
||||
enable = lib.mkOverride 0 true;
|
||||
userControlled.enable = true;
|
||||
interfaces = [ "wlan1" ];
|
||||
fallbackToWPA2 = true;
|
||||
|
||||
networks = {
|
||||
# test WPA2 fallback
|
||||
mixed-wpa = {
|
||||
psk = "password";
|
||||
authProtocols = [ "WPA-PSK" "SAE" ];
|
||||
};
|
||||
sae-only = {
|
||||
psk = "password";
|
||||
authProtocols = [ "SAE" ];
|
||||
};
|
||||
|
||||
# secrets substitution test cases
|
||||
test1.psk = "@PSK_VALID@"; # should be replaced
|
||||
test2.psk = "@PSK_SPECIAL@"; # should be replaced
|
||||
test3.psk = "@PSK_MISSING@"; # should not be replaced
|
||||
test4.psk = "P@ssowrdWithSome@tSymbol"; # should not be replaced
|
||||
};
|
||||
|
||||
# secrets
|
||||
environmentFile = pkgs.writeText "wpa-secrets" ''
|
||||
PSK_VALID="S0m3BadP4ssw0rd";
|
||||
# taken from https://github.com/minimaxir/big-list-of-naughty-strings
|
||||
PSK_SPECIAL=",./;'[]\-= <>?:\"{}|_+ !@#$%^\&*()`~";
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# Test connecting to the SAE-only hotspot using SAE
|
||||
machineSae = machineWithHostapd {
|
||||
networking.wireless = {
|
||||
fallbackToWPA2 = false;
|
||||
networks.nixos-test-sae = {
|
||||
psk = "@PSK_NIXOS_TEST@";
|
||||
authProtocols = [ "SAE" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Test connecting to the SAE and WPA2 mixed hotspot using SAE
|
||||
machineMixedUsingSae = machineWithHostapd {
|
||||
networking.wireless = {
|
||||
fallbackToWPA2 = false;
|
||||
networks.nixos-test-mixed = {
|
||||
psk = "@PSK_NIXOS_TEST@";
|
||||
authProtocols = [ "SAE" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Test connecting to the SAE and WPA2 mixed hotspot using WPA2
|
||||
machineMixedUsingWpa2 = machineWithHostapd {
|
||||
networking.wireless = {
|
||||
fallbackToWPA2 = true;
|
||||
networks.nixos-test-mixed = {
|
||||
psk = "@PSK_NIXOS_TEST@";
|
||||
authProtocols = [ "WPA-PSK-SHA256" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Test connecting to the WPA2 legacy hotspot using WPA2
|
||||
machineWpa2 = machineWithHostapd {
|
||||
networking.wireless = {
|
||||
fallbackToWPA2 = true;
|
||||
networks.nixos-test-wpa2 = {
|
||||
psk = "@PSK_NIXOS_TEST@";
|
||||
authProtocols = [ "WPA-PSK-SHA256" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
|
@ -66,30 +162,47 @@ import ./make-test-python.nix ({ pkgs, lib, ...}:
|
|||
config_file = "/run/wpa_supplicant/wpa_supplicant.conf"
|
||||
|
||||
with subtest("Configuration file is inaccessible to other users"):
|
||||
machine.wait_for_file(config_file)
|
||||
machine.fail(f"sudo -u nobody ls {config_file}")
|
||||
basic.wait_for_file(config_file)
|
||||
basic.fail(f"sudo -u nobody ls {config_file}")
|
||||
|
||||
with subtest("Secrets variables have been substituted"):
|
||||
machine.fail(f"grep -q @PSK_VALID@ {config_file}")
|
||||
machine.fail(f"grep -q @PSK_SPECIAL@ {config_file}")
|
||||
machine.succeed(f"grep -q @PSK_MISSING@ {config_file}")
|
||||
machine.succeed(f"grep -q P@ssowrdWithSome@tSymbol {config_file}")
|
||||
basic.fail(f"grep -q @PSK_VALID@ {config_file}")
|
||||
basic.fail(f"grep -q @PSK_SPECIAL@ {config_file}")
|
||||
basic.succeed(f"grep -q @PSK_MISSING@ {config_file}")
|
||||
basic.succeed(f"grep -q P@ssowrdWithSome@tSymbol {config_file}")
|
||||
|
||||
with subtest("WPA2 fallbacks have been generated"):
|
||||
assert int(machine.succeed(f"grep -c sae-only {config_file}")) == 1
|
||||
assert int(machine.succeed(f"grep -c mixed-wpa {config_file}")) == 2
|
||||
assert int(basic.succeed(f"grep -c sae-only {config_file}")) == 1
|
||||
assert int(basic.succeed(f"grep -c mixed-wpa {config_file}")) == 2
|
||||
|
||||
# save file for manual inspection
|
||||
machine.copy_from_vm(config_file)
|
||||
basic.copy_from_vm(config_file)
|
||||
|
||||
with subtest("Daemon is running and accepting connections"):
|
||||
machine.wait_for_unit("wpa_supplicant-wlan1.service")
|
||||
status = machine.succeed("wpa_cli -i wlan1 status")
|
||||
basic.wait_for_unit("wpa_supplicant-wlan1.service")
|
||||
status = basic.succeed("wpa_cli -i wlan1 status")
|
||||
assert "Failed to connect" not in status, \
|
||||
"Failed to connect to the daemon"
|
||||
|
||||
with subtest("Daemon can connect to the access point"):
|
||||
machine.wait_until_succeeds(
|
||||
machineSae.wait_for_unit("hostapd.service")
|
||||
machineSae.copy_from_vm("/run/hostapd/wlan0.hostapd.conf")
|
||||
with subtest("Daemon can connect to the SAE access point using SAE"):
|
||||
machineSae.wait_until_succeeds(
|
||||
"wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED"
|
||||
)
|
||||
|
||||
with subtest("Daemon can connect to the SAE and WPA2 mixed access point using SAE"):
|
||||
machineMixedUsingSae.wait_until_succeeds(
|
||||
"wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED"
|
||||
)
|
||||
|
||||
with subtest("Daemon can connect to the SAE and WPA2 mixed access point using WPA2"):
|
||||
machineMixedUsingWpa2.wait_until_succeeds(
|
||||
"wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED"
|
||||
)
|
||||
|
||||
with subtest("Daemon can connect to the WPA2 access point using WPA2"):
|
||||
machineWpa2.wait_until_succeeds(
|
||||
"wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED"
|
||||
)
|
||||
'';
|
||||
|
|
|
@ -12,12 +12,12 @@ let
|
|||
if extension == "zip" then fetchzip args else fetchurl args;
|
||||
|
||||
pname = "1password-cli";
|
||||
version = "2.18.0";
|
||||
version = "2.19.0";
|
||||
sources = rec {
|
||||
aarch64-linux = fetch "linux_arm64" "sha256-BmYGx4DI/Hvj9hBBZo5iprQeUgMNqEkESDjYcOVAt4Q=" "zip";
|
||||
i686-linux = fetch "linux_386" "sha256-KpacioVLSPju9iW7B/yVCS66CZTwCTVAjxoaeBscJe8=" "zip";
|
||||
x86_64-linux = fetch "linux_amd64" "sha256-p4wztBVQ2x2RrODJhX3z72QQtF8mnvqk3wT72hiPE3o=" "zip";
|
||||
aarch64-darwin = fetch "apple_universal" "sha256-GfmTx4WS5oGgXXWqlA4bEmQJyFTu/bZnoEhIfZpfqpg=" "pkg";
|
||||
aarch64-linux = fetch "linux_arm64" "sha256-z5+zCYYJxtzehBeilSWH/nPEOh8rXpwJDVL+SDansmY=" "zip";
|
||||
i686-linux = fetch "linux_386" "sha256-UGPWk0I/nCaqWWz/rwG/TSDie0/tarKroGi+7Ge7kE4=" "zip";
|
||||
x86_64-linux = fetch "linux_amd64" "sha256-rSZM0GuroSqVokhkjPtk3+2+C9w5/Tkh2cvB+kShyHY=" "zip";
|
||||
aarch64-darwin = fetch "apple_universal" "sha256-3zVD8LUdxhzroLlnQCiCVELEQMPmCriRff85ZlfgSKI=" "pkg";
|
||||
x86_64-darwin = aarch64-darwin;
|
||||
};
|
||||
platforms = builtins.attrNames sources;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, installShellFiles
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
|
@ -20,6 +21,15 @@ buildGoModule rec {
|
|||
"-s" "-w" "-X github.com/tomwright/dasel/v2/internal.Version=${version}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --cmd dasel \
|
||||
--bash <($out/bin/dasel completion bash) \
|
||||
--fish <($out/bin/dasel completion fish) \
|
||||
--zsh <($out/bin/dasel completion zsh)
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
runHook preInstallCheck
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "sigi";
|
||||
version = "3.6.0";
|
||||
version = "3.6.1";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-VhBrSepJdwJRu+AqXWUzdDO4ukJPeoZr07B/X8Jr/RA=";
|
||||
sha256 = "sha256-UL4V/5XvqaqO4R2ievw379D/rzHf/ITgvG3BcSbMeTQ=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-R1U0ZYQMA1VFd5zEjFzl5QhwqqEMaCFb/5H509IBj60=";
|
||||
cargoSha256 = "sha256-wzTUK4AvJmBK7LX7CLCAeAXLDxMJA/3qs/KT1+pMaoI=";
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
# In case anything goes wrong.
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "civo";
|
||||
version = "1.0.57";
|
||||
version = "1.0.58";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "civo";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-cG/JNZalIzhXyBH7OaiK4fedCQ05EvPUZFon5ajjOCE=";
|
||||
sha256 = "sha256-beIIWwG8zawbOhZm8Xa3MAWPMbGi5PJYSeA/msb6FT4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-FL6zVyDkVxHZSrnL/7M4yqgl+oqVz/ekIfmrwWrMvk8=";
|
||||
vendorHash = "sha256-2j0EjMH7QiDnXB1quEM6/hznt7oOpznasuIRod5LGA4=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles, stdenv }:
|
||||
|
||||
let
|
||||
version = "2.0.0-rc.5";
|
||||
sha256 = "1akxmnbldsm7h4wf40jxsn56njdd5srkr6a3gsi223anl9c43gpx";
|
||||
manifestsSha256 = "1vra1vqw38r17fdkcj5a5rmifpdzi29z5qggzy4h9bqsqhxy488f";
|
||||
version = "2.0.0";
|
||||
sha256 = "1iqwdbn7kcrg1dh0zh75zk3gwjsxjisdrzxywjfkm9jcvb6ygs7m";
|
||||
manifestsSha256 = "1kyzgifvisykcj1hikbk7z9xwi5gj4pa19ngbkv7fcgv45clbj6s";
|
||||
|
||||
manifests = fetchzip {
|
||||
url =
|
||||
|
@ -23,7 +23,7 @@ in buildGoModule rec {
|
|||
inherit sha256;
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-kw1V2eFoqrTB+1dBQYqOopr7+AMY1OB80vM8UN4rsso=";
|
||||
vendorSha256 = "sha256-OH1Kn+VZARqQ1L26zdjEOYseMT9fY+QVDhN+F+h6GZw=";
|
||||
|
||||
postUnpack = ''
|
||||
cp -r ${manifests} source/cmd/flux/manifests
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
traefik-crd = {
|
||||
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-20.3.1+up20.3.0.tgz";
|
||||
sha256 = "1775vjldvqvhzdbzanxhbaqbmkih09yb91im651q8bc7z5sb9ckn";
|
||||
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-21.2.1+up21.2.0.tgz";
|
||||
sha256 = "05j3vyikb7g2z2i07rij9h4ki5lb2hb2rynpiqfd4l1y5qm0qhw9";
|
||||
};
|
||||
traefik = {
|
||||
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-20.3.1+up20.3.0.tgz";
|
||||
sha256 = "1rj0f0n0vgjcbzfwzhqmsd501i2f6vw145w9plbp8gwdyzmg2nc6";
|
||||
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-21.2.1+up21.2.0.tgz";
|
||||
sha256 = "0gvz0yzph2893scd0q10b938yc7f36b3zqs57pkjgqqpl1d0nwhg";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,123 +0,0 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl gnugrep gnused jq yq-go nix-prefetch
|
||||
|
||||
set -x -eu -o pipefail
|
||||
|
||||
WORKDIR=$(mktemp -d)
|
||||
trap "rm -rf ${WORKDIR}" EXIT
|
||||
|
||||
NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"/
|
||||
NIXPKGS_K3S_PATH=$(cd $(dirname ${BASH_SOURCE[0]}); pwd -P)/
|
||||
cd ${NIXPKGS_K3S_PATH}
|
||||
|
||||
LATEST_TAG_RAWFILE=${WORKDIR}/latest_tag.json
|
||||
curl --silent -f ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
|
||||
https://api.github.com/repos/k3s-io/k3s/releases > ${LATEST_TAG_RAWFILE}
|
||||
|
||||
LATEST_TAG_NAME=$(jq 'map(.tag_name)' ${LATEST_TAG_RAWFILE} | \
|
||||
grep -v -e rc -e engine | tail -n +2 | head -n -1 | sed 's|[", ]||g' | sort -rV | head -n1)
|
||||
|
||||
K3S_VERSION=$(echo ${LATEST_TAG_NAME} | sed 's/^v//')
|
||||
|
||||
K3S_COMMIT=$(curl --silent -f ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
|
||||
https://api.github.com/repos/k3s-io/k3s/tags \
|
||||
| jq -r "map(select(.name == \"${LATEST_TAG_NAME}\")) | .[0] | .commit.sha")
|
||||
|
||||
K3S_REPO_SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/k3s-io/k3s/archive/refs/tags/${LATEST_TAG_NAME}.tar.gz)
|
||||
|
||||
FILE_SCRIPTS_DOWNLOAD=${WORKDIR}/scripts-download
|
||||
curl --silent -f https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/scripts/download > $FILE_SCRIPTS_DOWNLOAD
|
||||
|
||||
FILE_SCRIPTS_VERSION=${WORKDIR}/scripts-version.sh
|
||||
curl --silent -f https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/scripts/version.sh > $FILE_SCRIPTS_VERSION
|
||||
|
||||
FILE_TRAEFIK_MANIFEST=${WORKDIR}/traefik.yml
|
||||
curl --silent -f -o "$FILE_TRAEFIK_MANIFEST" https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/manifests/traefik.yaml
|
||||
|
||||
CHART_FILES=( $(yq eval --no-doc .spec.chart "$FILE_TRAEFIK_MANIFEST" | xargs -n1 basename) )
|
||||
# These files are:
|
||||
# 1. traefik-crd-20.3.1+up20.3.0.tgz
|
||||
# 2. traefik-20.3.1+up20.3.0.tgz
|
||||
# at the time of writing
|
||||
|
||||
if [[ "${#CHART_FILES[@]}" != "2" ]]; then
|
||||
echo "New manifest charts added, the packaging scripts will need to be updated: ${CHART_FILES}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CHARTS_URL=https://k3s.io/k3s-charts/assets
|
||||
# Get metadata for both files
|
||||
rm -f chart-versions.nix.update
|
||||
cat > chart-versions.nix.update <<EOF
|
||||
{
|
||||
traefik-crd = {
|
||||
url = "${CHARTS_URL}/traefik-crd/${CHART_FILES[0]}";
|
||||
sha256 = "$(nix-prefetch-url --quiet "${CHARTS_URL}/traefik-crd/${CHART_FILES[0]}")";
|
||||
};
|
||||
traefik = {
|
||||
url = "${CHARTS_URL}/traefik/${CHART_FILES[1]}";
|
||||
sha256 = "$(nix-prefetch-url --quiet "${CHARTS_URL}/traefik/${CHART_FILES[1]}")";
|
||||
};
|
||||
}
|
||||
EOF
|
||||
mv chart-versions.nix.update chart-versions.nix
|
||||
|
||||
FILE_GO_MOD=${WORKDIR}/go.mod
|
||||
curl --silent https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/go.mod > $FILE_GO_MOD
|
||||
|
||||
|
||||
K3S_ROOT_VERSION=$(grep 'VERSION_ROOT=' ${FILE_SCRIPTS_VERSION} \
|
||||
| cut -d'=' -f2 | sed -e 's/"//g' -e 's/^v//')
|
||||
K3S_ROOT_SHA256=$(nix-prefetch-url --quiet --unpack \
|
||||
"https://github.com/k3s-io/k3s-root/releases/download/v${K3S_ROOT_VERSION}/k3s-root-amd64.tar")
|
||||
|
||||
CNIPLUGINS_VERSION=$(grep 'VERSION_CNIPLUGINS=' ${FILE_SCRIPTS_VERSION} \
|
||||
| cut -d'=' -f2 | sed -e 's/"//g' -e 's/^v//')
|
||||
CNIPLUGINS_SHA256=$(nix-prefetch-url --quiet --unpack \
|
||||
"https://github.com/rancher/plugins/archive/refs/tags/v${CNIPLUGINS_VERSION}.tar.gz")
|
||||
|
||||
CONTAINERD_VERSION=$(grep 'VERSION_CONTAINERD=' ${FILE_SCRIPTS_VERSION} \
|
||||
| cut -d'=' -f2 | sed -e 's/"//g' -e 's/^v//')
|
||||
CONTAINERD_SHA256=$(nix-prefetch-url --quiet --unpack \
|
||||
"https://github.com/k3s-io/containerd/archive/refs/tags/v${CONTAINERD_VERSION}.tar.gz")
|
||||
|
||||
CRI_CTL_VERSION=$(grep github.com/kubernetes-sigs/cri-tools ${FILE_GO_MOD} \
|
||||
| head -n1 | awk '{print $4}' | sed -e 's/"//g' -e 's/^v//')
|
||||
|
||||
setKV () {
|
||||
sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ${NIXPKGS_K3S_PATH}default.nix
|
||||
}
|
||||
|
||||
setKV k3sVersion ${K3S_VERSION}
|
||||
setKV k3sCommit ${K3S_COMMIT}
|
||||
setKV k3sRepoSha256 ${K3S_REPO_SHA256}
|
||||
|
||||
setKV k3sRootVersion ${K3S_ROOT_VERSION}
|
||||
setKV k3sRootSha256 ${K3S_ROOT_SHA256}
|
||||
|
||||
setKV k3sCNIVersion ${CNIPLUGINS_VERSION}
|
||||
setKV k3sCNISha256 ${CNIPLUGINS_SHA256}
|
||||
|
||||
setKV containerdVersion ${CONTAINERD_VERSION}
|
||||
setKV containerdSha256 ${CONTAINERD_SHA256}
|
||||
|
||||
setKV criCtlVersion ${CRI_CTL_VERSION}
|
||||
|
||||
set +e
|
||||
K3S_VENDOR_SHA256=$(nix-prefetch -I nixpkgs=${NIXPKGS_ROOT} "{ sha256 }: (import ${NIXPKGS_ROOT}. {}).k3s.go-modules.overrideAttrs (_: { vendorSha256 = sha256; })")
|
||||
set -e
|
||||
|
||||
if [ -n "${K3S_VENDOR_SHA256:-}" ]; then
|
||||
setKV k3sVendorSha256 ${K3S_VENDOR_SHA256}
|
||||
else
|
||||
echo "Update failed. K3S_VENDOR_SHA256 is empty."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# `git` flag here is to be used by local maintainers to speed up the bump process
|
||||
if [ $# -eq 1 ] && [ "$1" = "git" ]; then
|
||||
OLD_VERSION="$(nix-instantiate --eval -E "with import $NIXPKGS_ROOT. {}; k3s.version or (builtins.parseDrvName k3s.name).version" | tr -d '"')"
|
||||
git switch -c "package-k3s-${K3S_VERSION}"
|
||||
git add "$NIXPKGS_K3S_PATH"/default.nix
|
||||
git commit -m "k3s: ${OLD_VERSION} -> ${K3S_VERSION}"
|
||||
fi
|
14
pkgs/applications/networking/cluster/k3s/1_26/versions.nix
Normal file
14
pkgs/applications/networking/cluster/k3s/1_26/versions.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
k3sVersion = "1.26.5+k3s1";
|
||||
k3sCommit = "7cefebeaac7dbdd0bfec131ea7a43a45cb125354";
|
||||
k3sRepoSha256 = "0iz8w24lhb3mgwnks79ky4nypdqbjn91zm4nrj1ar3abkb5i8bg3";
|
||||
k3sVendorSha256 = "sha256-yPzpt9OZfW7qY9gFgrRVgmk2l9OSMMF85OY79MDCKTs=";
|
||||
chartVersions = import ./chart-versions.nix;
|
||||
k3sRootVersion = "0.12.2";
|
||||
k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
|
||||
k3sCNIVersion = "1.2.0-k3s1";
|
||||
k3sCNISha256 = "0hzcap4vbl94zsiqc66dlwjgql50gw5g6f0adag0p8yqwcy6vaw2";
|
||||
containerdVersion = "1.7.1-k3s1";
|
||||
containerdSha256 = "00k7nkclfxwbzcgnn8s7rkrxyn0zpk57nyy18icf23wsj352gfrn";
|
||||
criCtlVersion = "1.26.0-rc.0-k3s1";
|
||||
}
|
|
@ -21,13 +21,6 @@ lib:
|
|||
# run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag
|
||||
criCtlVersion,
|
||||
updateScript ? null,
|
||||
# multicallContainerd is a temporary variable for migrating k3s versions
|
||||
# forward, and can be removed once all callers set it.
|
||||
# It is here so we can update 1.26 and 1.27 independently, but they'll both migrate to this.
|
||||
# This variable controls whether we build with containerd as a separate
|
||||
# binary, or as a k3s multicall. Upstream k3s changed this in 1.27.2 and
|
||||
# 1.26.5. See https://github.com/k3s-io/k3s/issues/7419 for more context
|
||||
multicallContainerd ? false,
|
||||
}:
|
||||
|
||||
# builder.nix contains a "builder" expression that, given k3s version and hash
|
||||
|
@ -193,13 +186,14 @@ let
|
|||
subPackages = [ "cmd/server" ];
|
||||
ldflags = versionldflags;
|
||||
|
||||
tags = [ "libsqlite3" "linux" ] ++ lib.optional multicallContainerd "ctrd";
|
||||
tags = [ "ctrd" "libsqlite3" "linux" ];
|
||||
|
||||
# create the multicall symlinks for k3s
|
||||
postInstall = ''
|
||||
mv $out/bin/server $out/bin/k3s
|
||||
pushd $out
|
||||
# taken verbatim from https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/build#L105-L113
|
||||
ln -s k3s ./bin/containerd
|
||||
ln -s k3s ./bin/crictl
|
||||
ln -s k3s ./bin/ctr
|
||||
ln -s k3s ./bin/k3s-agent
|
||||
|
@ -210,11 +204,6 @@ let
|
|||
ln -s k3s ./bin/k3s-server
|
||||
ln -s k3s ./bin/k3s-token
|
||||
ln -s k3s ./bin/kubectl
|
||||
'' + lib.optionalString multicallContainerd ''
|
||||
# for the multicall binary, also do containerd per
|
||||
# https://github.com/k3s-io/k3s/blob/v1.27.2%2Bk3s1/scripts/build#L136-L146
|
||||
ln -s k3s ./bin/containerd
|
||||
'' + ''
|
||||
popd
|
||||
'';
|
||||
|
||||
|
@ -222,7 +211,7 @@ let
|
|||
description = "The various binaries that get packaged into the final k3s binary";
|
||||
};
|
||||
};
|
||||
# For the multicall binary, only used for the shim
|
||||
# Only used for the shim since
|
||||
# https://github.com/k3s-io/k3s/blob/v1.27.2%2Bk3s1/scripts/build#L153
|
||||
k3sContainerd = buildGoModule {
|
||||
pname = "k3s-containerd";
|
||||
|
@ -235,7 +224,7 @@ let
|
|||
};
|
||||
vendorSha256 = null;
|
||||
buildInputs = [ btrfs-progs ];
|
||||
subPackages = [ "cmd/containerd-shim-runc-v2" ] ++ lib.optional (!multicallContainerd) "cmd/containerd";
|
||||
subPackages = [ "cmd/containerd-shim-runc-v2" ];
|
||||
ldflags = versionldflags;
|
||||
};
|
||||
in
|
||||
|
@ -243,7 +232,7 @@ buildGoModule rec {
|
|||
pname = "k3s";
|
||||
version = k3sVersion;
|
||||
|
||||
tags = [ "libsqlite3" "linux" ] ++ lib.optional multicallContainerd "ctrd";
|
||||
tags = [ "libsqlite3" "linux" "ctrd" ];
|
||||
src = k3sRepo;
|
||||
vendorSha256 = k3sVendorSha256;
|
||||
|
||||
|
@ -312,7 +301,6 @@ buildGoModule rec {
|
|||
rsync -a --no-perms ${k3sServer}/bin/ ./bin/
|
||||
ln -vsf ${k3sCNIPlugins}/bin/cni ./bin/cni
|
||||
ln -vsf ${k3sContainerd}/bin/containerd-shim-runc-v2 ./bin
|
||||
${lib.optionalString (!multicallContainerd) "ln -vsf ${k3sContainerd}/bin/containerd ./bin/"}
|
||||
rsync -a --no-perms --chmod u=rwX ${k3sRoot}/etc/ ./etc/
|
||||
mkdir -p ./build/static/charts
|
||||
|
||||
|
|
|
@ -5,24 +5,12 @@ let
|
|||
common = opts: callPackage (k3s_builder opts);
|
||||
in
|
||||
{
|
||||
k3s_1_26 = common {
|
||||
k3sVersion = "1.26.4+k3s1";
|
||||
k3sCommit = "8d0255af07e95b841952563253d27b0d10bd72f0";
|
||||
k3sRepoSha256 = "0qlszdnlsvj3hzx2p0wl3zhaw908w8a62z6vlf2g69a3c75f55cs";
|
||||
k3sVendorSha256 = "sha256-JXTsZYtTspu/pWMRSS2BcegktawBJ6BK7YEKbz1J/ao=";
|
||||
chartVersions = import ./1_26/chart-versions.nix;
|
||||
k3sRootVersion = "0.12.1";
|
||||
k3sRootSha256 = "0724yx3zk89m2239fmdgwzf9w672pik71xqrvgb7pdmknmmdn9f4";
|
||||
k3sCNIVersion = "1.1.1-k3s1";
|
||||
k3sCNISha256 = "14mb3zsqibj1sn338gjmsyksbm0mxv9p016dij7zidccx2rzn6nl";
|
||||
containerdVersion = "1.6.19-k3s1";
|
||||
containerdSha256 = "12dwqh77wplg30kdi73d90qni23agw2cwxjd2p5lchq86mpmmwwr";
|
||||
criCtlVersion = "1.26.0-rc.0-k3s1";
|
||||
} { };
|
||||
k3s_1_26 = common ((import ./1_26/versions.nix) // {
|
||||
updateScript = [ ./update-script.sh "26" ];
|
||||
}) { };
|
||||
|
||||
# 1_27 can be built with the same builder as 1_26
|
||||
k3s_1_27 = common ((import ./1_27/versions.nix) // {
|
||||
multicallContainerd = true;
|
||||
updateScript = [ ./update-script.sh "27" ];
|
||||
}) { };
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ Avoid build-only store references embedding into 'mutt -v'.
|
|||
+ # 'gcc -v' output embedded into 'mutt -v'. But also might be
|
||||
+ # ./configure-passed arguments.
|
||||
+ sed \
|
||||
+ -e 's@'$NIX_STORE'/[a-z0-9]\{32\}-@/<<NIX>>/@g'
|
||||
+ -e "s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g"
|
||||
+}
|
||||
+
|
||||
if ./txt2c test </dev/null >/dev/null 2>&1; then
|
||||
|
|
|
@ -1,665 +1,665 @@
|
|||
{
|
||||
version = "102.11.2";
|
||||
version = "102.13.0";
|
||||
sources = [
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/af/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/af/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "af";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "06657b0dab9a29c67778434d5dae8318322818391ff0f295c189a1a4f7d66534";
|
||||
sha256 = "3812ed9ad59f56919d3909e1e17f3dc468f1da676a5a4360d2cf9aa359461d52";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ar/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ar/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ar";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "cb0136de2e08acea594b96c5e5b78dfee360fc3b15343ebba0d9da86a8e23e94";
|
||||
sha256 = "445c872f9ec98a51ee3817c17d7996f8d11eb882c23bda75e3d0704734cf8fdd";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ast/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ast/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ast";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "df9f19a08c7e16f2a140086fa4592f5d184c73dbcfeff478790f5d59543b94b6";
|
||||
sha256 = "063ce8970a09c00d6e3ae5780e4d57d7eb6f4b4c5b266da2b3df9e15a944b314";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/be/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/be/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "be";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "d1610e03d86b05c72e0725a781384a9f3584db52fcbba5c6e4b1d7a7a1a01e80";
|
||||
sha256 = "f8e63ea388bf470beed170baf73e61b67feb15d116d04858ea1bdfdfb80e6f66";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/bg/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/bg/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "bg";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "7cc0e959caaac9d2b7982c80c9df27467b4959f65e2674879e9c075980d89ac1";
|
||||
sha256 = "ac8d8c729c39565b6346f141324c299e961bb85e4c944e13cc5cf786ce699d3e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/br/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/br/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "br";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "0d5be52f0d9ed94cf0f6bbda72b7b53d74ffcbdf14235d3c50dc6bafa8e704ab";
|
||||
sha256 = "0a7f8eec56c9e9a5f5aea7f793601003b22f698e16cd0d3bec3d99cb39db5a4c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ca/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ca/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ca";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "044fd058e8afa89c325376937a7d18652ddc9244ed11d9341dbfdd7645c35d59";
|
||||
sha256 = "93a7552d8605b84ea0933fb407c471dcafed0b0f87facd4d970120f218c008c8";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/cak/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/cak/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "cak";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "829cbeea7a5f0666456961cde904abd5c7f8157fe9f25853359cb577ea085ffd";
|
||||
sha256 = "f12bc1568b451319d0d60f098d9f40dbcc1ad517c4eee55cec7ab5fb747e7270";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/cs/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/cs/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "cs";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "02197c9a51abd6938c22a41309f10e713064fa7cb149095dc0f61327916713c9";
|
||||
sha256 = "05e11ee1c73d69c8ca7762103ba93e081fedea8487406385e60fe985b80f624f";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/cy/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/cy/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "cy";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "fd037542beab8c9c3396f2530296b63e646ab2de0a1bc91f68efc7b271e2e4de";
|
||||
sha256 = "fc18fe46a4f2ce5b4cba11105de96849b8914cf3f9818c40aa2cb932e600462d";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/da/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/da/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "da";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "991a46e772289a699720a3e0f10e6ec82b2a7b4a3e5c3e66af1e0b266e893199";
|
||||
sha256 = "964784f13838af07dcffa19ee65a5b04cd5da1d04239a522c5794bf94719d7f8";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/de/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/de/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "de";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "92b5de1b2ff2ebd8541b86295e382393261d0485dca8bdf17a6ba4287af98679";
|
||||
sha256 = "62545ff4203f8197b0ccef526c28f15a446c33bd12e8ff3fb4d9f136f5a9a5aa";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/dsb/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/dsb/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "dsb";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "86d5ef98137468ba2b78603b2a06cbd474c8314dc37a92759bcd948a9bffdd5c";
|
||||
sha256 = "7c6b78377a35899cc0c3a2fd69798180b5429f4f4b806f677fdec2ad3628321a";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/el/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/el/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "el";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "1df3a70d2ecb6430bf7052428c9603a86d0052a4370843fe7e6771c1c2ca033c";
|
||||
sha256 = "a19bbcc882c4f28fe6f598766f1f9bce3e364e86a9d043589feebe491850b6b6";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/en-CA/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/en-CA/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "en-CA";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "5707c6f5aeeb6fa030237f4bb45b5b73b4c9e64f2912ea4d2ab28af55bb3a6e3";
|
||||
sha256 = "c3fddd8331042d4fe9a0b63c27a7fe5ddbe4a6de8bf2b650116d0f3b0e58f5a1";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/en-GB/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/en-GB/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "en-GB";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "0d98d3acc5d046ddb4cc2ef149fa180d005a77f7eb91bbbb10a188d562a65546";
|
||||
sha256 = "01c525b0742c9434135c564877d6051f862e1ac8641b43efdfa3902509ce527e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/en-US/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/en-US/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "en-US";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "311cf498bcbeb56f45a53492498c4a094b3f30edbd11594498712997aff530b1";
|
||||
sha256 = "60e363b604fd5e0c858e1c26224e4052c020d9f1b3bd7508f233ebef6ad7b05b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/es-AR/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/es-AR/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "es-AR";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "83e15b8babde61707d1833b3806fc626adc4e30a4d9ce7aaa9d788348de23b31";
|
||||
sha256 = "a06676e96d86cccf57636b84c6a960f4e88335e5890e34428de25891dadbdae8";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/es-ES/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/es-ES/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "es-ES";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "67487065d864346bb6dd7504cf77a0cd5382b26ff1cdce02765b9f4bd26eb4f4";
|
||||
sha256 = "6f0969919b33ea8da006dae62cdd2ab90e20c9ac3a0ca53524a05eff6134ea1f";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/es-MX/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/es-MX/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "es-MX";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "3485c3695b27b13bf6024f776524b2d8e26d09ace4773392c71ea6d22e911ce4";
|
||||
sha256 = "55113bd54e3315abf2db2fc0d6b4afc68b8a53cd3a5a8167eb3f7a895129b61d";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/et/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/et/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "et";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "932b812b3149a6286d606b58b13211c52a2d832fd68f2081c090c1902cd144e0";
|
||||
sha256 = "23e719b847b2942226abd20d11d45a0573d3d5428d2a741a06d94ff0f854db81";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/eu/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/eu/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "eu";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "0f17272832d393df25a705a0a9938e346bf9f19408110f370a56ae4d0e46a249";
|
||||
sha256 = "2e41dd8f77593c4207e89a3bcf883ac5f45ce732150108f5e5040d1e6754bbac";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/fi/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/fi/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "fi";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "dd6886fd89e9512276033ddd6de95aec29ec6d51aa92db4e5887d5e0eba37c3f";
|
||||
sha256 = "e5c9566a483654d182c8c2a9fddea75a5b3d19e91a16ec291b52a66db5e3a78f";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/fr/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/fr/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "fr";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "df81ad12712cf75ca3572e0afbad252dd18512e081744fa12b9734561d6a9509";
|
||||
sha256 = "1218794ed23f0e63db896391256b08f5d6e99eee2d6a8bfac53a7c64066a6022";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/fy-NL/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/fy-NL/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "fy-NL";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "6704b2be50f3e00998b26fe48a42d38fb58d3d2fc3bc7aa30bc274f82b813559";
|
||||
sha256 = "ea87a523282a83c4c212bd463d0e936d7d76d2f9a1268857408169083cbb5494";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ga-IE/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ga-IE/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ga-IE";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "87c3671056d947c7616f622ab060d99803bc81234ad394140eb92f8977fa93a2";
|
||||
sha256 = "d8775cf3c06de8f7803b7f053956ebdd7636407229cd2f83bffe7451e9dabb73";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/gd/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/gd/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "gd";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "46334a92360359c2d7af7d6ad315baee8ff750fe73def115e30651251676720d";
|
||||
sha256 = "cce50897e78e16237450a98316719e87b3213cac98b101a72e77bf500940fad3";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/gl/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/gl/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "gl";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "e31ec9437c5c0dac3459668ae8011d2e016931b369c577dbe2bbc60b25d7f3e8";
|
||||
sha256 = "8a43a71e1da836f53c76c6059ae0937f8a3d280f824958c0bb4a730e8a2acff9";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/he/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/he/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "he";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "ac0fb328c19521b83d34aed77ba507cb44dd2cf19e128c19eee25c59718ae9ec";
|
||||
sha256 = "e9f96dedc206fc7eb2a1a8a98088434d13a193415eb470c00abd05e7310a19e7";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/hr/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/hr/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "hr";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "7db4ff99ceab888d279f7083744afd88ce334244c577da1ca6e6433043d140fb";
|
||||
sha256 = "d1e3958fb6f954fa97524606c180417c6e90eebf374e642b0a4710e25774e2e6";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/hsb/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/hsb/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "hsb";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "3db57f4ab334eebea1ba4da57633a1556ac0fc969adb0e363188b09d93771471";
|
||||
sha256 = "02f86d0f0b829ec8b6a8e93192ed7d8181fbd8c0ee0f2d635283ad88f6e9f7d2";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/hu/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/hu/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "hu";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "403f4f7bde69d6a3654b6f6a964e7e1aa9a3e4a29810d118c8df4f61da4059a5";
|
||||
sha256 = "6281c33b9db6c5972914e5f85444e6b883c2e66037c05cbfc23418d8d299fa93";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/hy-AM/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/hy-AM/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "hy-AM";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "55ef72c23f436862002afddcc5030cf2a1e96b85d531ef233c66796fbfaeee9d";
|
||||
sha256 = "6d7bfe6b749ef85c960756216f7c3763abf75cc00b73baf4a0219ce652b3ae62";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/id/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/id/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "id";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "73314109c10d6a96d2c8c0ad93ed910bb95e0952172128754a2d3127a30f0553";
|
||||
sha256 = "cf065970ddeb180f0b2ce73f15f721e96bd6706141b7644dffbdd6af21cd1201";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/is/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/is/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "is";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "f6b731ee5938236bb28472790d5b07718ff26dba3a78081da53b04b1130c3f4b";
|
||||
sha256 = "e690a87a67876ba67ff9277fecc972d265c2546028f356c0dc4c5efbc80e65ec";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/it/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/it/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "it";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "17903b5e43413a7d80ceed35f60402c2de2c95d9916080930756446b65fe02d2";
|
||||
sha256 = "84584b57adb4cd3b56c59cbf33e8f212dfd9366c3bc0d52bf5e53bc1871c426d";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ja/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ja/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ja";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "34f009819fc3d8fbd780896ae4ad734da8829ab808f8b9a726644fcf72633750";
|
||||
sha256 = "00969670a9447365c687aa5866ea802ed72b08916bae34c2b2bdb3f1b02ee8cf";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ka/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ka/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ka";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "73570b411f2d9e6bddd41c95b67869635414e14d32d511d0dc6e79b38a9c9b70";
|
||||
sha256 = "be471a01f2d7aca4b666c4862242954e72c1e4cdbd6f05834879c055b48ea5bf";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/kab/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/kab/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "kab";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "7178cb42412530a67612453cf527774c3cce792f626e2dde9db229b8515f2fca";
|
||||
sha256 = "6fc2c3840aab2643689304c2c21da33df8b1cff291bf9007cd2cf676dd9f9164";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/kk/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/kk/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "kk";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "d642b392a87ba0370a3c6c8a785aa5defb9d904f45632ab804484b62dcfb2e96";
|
||||
sha256 = "b07b4cce24627aa0885eb4a288514a312244cf14e672d242159c77c70b86f17c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ko/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ko/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ko";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "a6f19bf0bf8c926acf5c08b48eeaf311c7a371d90b1e0c7c5b7664f0f4f33fc1";
|
||||
sha256 = "81275eb753aacc5b67325d294400de10f57654432d37ee53501048e38081fdb9";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/lt/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/lt/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "lt";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "31f5833520473062179948d14f04e8ab8ca412b6d581cdc6b8f53fc66fab92de";
|
||||
sha256 = "c51a317710356a65fb0dd8270f834e4e5e8d9e0918dfe18c84c24cdbd1dfd5ae";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/lv/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/lv/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "lv";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "b4c92ede4839cb715672cd79c08092c4e68822104662fb5f21eb2f7082a8efb9";
|
||||
sha256 = "e120bbaa79cd31bade34bf1393f705d1757719114d7fad2aeee45402fc58cbde";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ms/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ms/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ms";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "8b277a80d59f5230352964ed0b4a59afc39a54bce527aa7d4e75ffe885180ff2";
|
||||
sha256 = "b747f5fd1e5c8c22879f06e4097f8006e3b4acb0a235cd67c4f1c45e40e19c9b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/nb-NO/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/nb-NO/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "nb-NO";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "ffb1ab2d17175fd49c66e13d36173f4edf6ea827088ba194cb384d2a216d6548";
|
||||
sha256 = "bbd8517de5607017fc78917ec89b59a8c26bc1d6f308ca034855ba48abb1a01a";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/nl/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/nl/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "nl";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "9b9bd1ee90090bbb84161fac47224107705f9f2fa257d5e9cb16f4e7ddc8a530";
|
||||
sha256 = "f8cb2ee310014767becfe85e84a1aa5171067adab2513bf9d14e5dc9a72517be";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/nn-NO/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/nn-NO/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "nn-NO";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "80f78ce4721869b781e96509a1ebb695305aeddd3034a8166c3c1bde6a41a6a2";
|
||||
sha256 = "b52959123138caa96d90b8cb85ebbe200e07733d34f3a9c262634f90af78ae03";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/pa-IN/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/pa-IN/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "pa-IN";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "2b51a64672a05449da2c8440a5e4742fa5898479bccdd26cbab9d634704026e1";
|
||||
sha256 = "d2dceaab81cccd8ca0ddbd0466e3acc17eef256a12825f84cac65e1532b93a83";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/pl/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/pl/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "pl";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "a8fba5214d99a7449842f2107bd6b93a574fb051f67d24d1545d653c78a03f6e";
|
||||
sha256 = "b32e90a2a01668ecbf62b8931254f3206746d6d0b5de28fc7f8b26a6d06f659a";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/pt-BR/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/pt-BR/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "pt-BR";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "00a0890145d6d07f174e5791d8a4f7efa03da40b897b916f96da2d716e911b5a";
|
||||
sha256 = "bb769f739108eedcf06b0ffe2681bd3946bec136eee9330facb439bc9c40447d";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/pt-PT/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/pt-PT/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "pt-PT";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "8321a8e2f7c08dd333860f3be037aed5f49d902add98c31827fe17d41c23e499";
|
||||
sha256 = "f15ffe020b1ae6b41937dcc6722465b678a7914abd0af864ba23672ff66155d1";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/rm/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/rm/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "rm";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "e17dbf00538d807cfd0a0c473cefc0b8ca944fa829368a85f966da419c809a53";
|
||||
sha256 = "8468123d5bae3b9d796e74268e67ce115b4b5a5980aee1408759eed6f7d2cfc6";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ro/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ro/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ro";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "d62f90d3531227c388d100763c121b2557c72722e4caf830e1e73741b1a42cb0";
|
||||
sha256 = "81e389511e1e4618e6554cd01b722300723ab18a39e74d91564fa5883f617c19";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ru/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ru/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ru";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "8db65e38f4860eda39cdaa40ecc48967987f5ffdf66c38b4dd7198ffeb355e01";
|
||||
sha256 = "78462fc4f264b11c35c1892d81db775240c7795747f608b11064a5d092e79664";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/sk/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/sk/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "sk";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "6c06dc997db44cb7b737177316180c3c827ab11cfe140cdf70d964a0117f0da0";
|
||||
sha256 = "8a213598e861dd4166fce60d76d5f1658063f1a1e008ddf2f3114b3ea3f2d809";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/sl/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/sl/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "sl";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "86a4cb37c1f10fd6dec910204320b2e8f875d74e7a4b82819bd51d6148446543";
|
||||
sha256 = "cf85777c113fcc41e3485c62136a561ae0e21db70b4e79c4fb112280f6ab8260";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/sq/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/sq/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "sq";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "7993c175bb55460f5c425b35e36295e6a6c1133c2c6f423591fa1f4524957347";
|
||||
sha256 = "df09cef518f01f29bf1fcbcfef4ed82e0a917e0361f41618fa796ed20e6a8974";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/sr/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/sr/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "sr";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "4066c7404822fd2f36e5cafc417f669e731f9dd430b590de15023904bdcb3a78";
|
||||
sha256 = "af46328c71c61e1042af53e42b58aef5a1b9f82b93972f1a4354d1902e3802e0";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/sv-SE/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/sv-SE/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "sv-SE";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "f179450d28db9a234224afe95200ff329ecf56497a93e2e95064ab9f90d65944";
|
||||
sha256 = "70ff6e9d0c28a4435521e5b744f6ebb783590d390dc1247fb17a80745ce5b81e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/th/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/th/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "th";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "ce1909b8d733c4a2eb5f7d217b05fa6fce8e036e4561e52078e5ddaa723d1d68";
|
||||
sha256 = "6a9055143e689867a0e06c75bfa5103be1cc9e0e223c7a51ea6a8d16a37623a8";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/tr/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/tr/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "tr";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "45ab9d4d14ecf590064d37282c02e8e1c95a5a4b27ee6a04919791ce0f876bf6";
|
||||
sha256 = "8e00419a701a84949dd67f618df39b1603531190125af6d525da2f18c5d8c7f0";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/uk/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/uk/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "uk";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "aab8145419c3346a48143b1d02a97d08e96cc23bca6fd04ad1ee8c4c4e885a70";
|
||||
sha256 = "8a051c9dc20f3f0a968f5f7be38ab9c30281931bb1f6a3b90aaaed0d8455f359";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/uz/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/uz/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "uz";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "4ea4a65878bc3e9336164d46fa9d546ad411aeeb3ae4095036ad35422a278d85";
|
||||
sha256 = "73b68505012dd248c073aa8d67a108501fca53f020d44fc613e59b9532ff560e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/vi/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/vi/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "vi";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "22baebada536992fc23d621b8aee58b845484cd1fda3a38d7b172a78e0ac1d6a";
|
||||
sha256 = "51ac0cde7a05b4c1a1e81e289beb91ae6e8d21096d2f61dbaf6af457bc84640a";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/zh-CN/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/zh-CN/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "zh-CN";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "ea3c42846b9eefe08b6944a816b28aa50dcc116354b59f5360f3e6c0340d406f";
|
||||
sha256 = "5616ff9e4b30bdf590b941ca46e6793d9d4357c6f323372ca6b6ad88bcb09c65";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/zh-TW/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/zh-TW/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "zh-TW";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "207c364f50ce57259134259c903844705339f4f25d1468ba565727254a179c79";
|
||||
sha256 = "cab3bef46dae32ba86952152fec513cf48e7b37b034dc48b59f1c3ed43d817f6";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/af/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/af/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "af";
|
||||
arch = "linux-i686";
|
||||
sha256 = "a78eedffe820f56374ccd80827b90e08b85cd1697b778474bb37fded8dfd4771";
|
||||
sha256 = "9d67e602573d53bb1b579308b2adf5f1dc9eea20d5323f10d0193372b3db968c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ar/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ar/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ar";
|
||||
arch = "linux-i686";
|
||||
sha256 = "5fe656dedc66b1cb928f33a1a8993cb946a869846eeeececabae7972ad786c79";
|
||||
sha256 = "a0a4310cf8c87cf85a7e2c8f2335c615442c88c354c58b9dbcbe4ea1fbeb064e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ast/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ast/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ast";
|
||||
arch = "linux-i686";
|
||||
sha256 = "d3f10468b757add94a3f97ba2293767e54373a615559b45f0c9598cc0abc4bc7";
|
||||
sha256 = "47ca9ccbb5a4a04ab477b120465ebebe695c0a38a7e5a9cd8c9037c7e91ef993";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/be/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/be/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "be";
|
||||
arch = "linux-i686";
|
||||
sha256 = "245ba014e247e4a328ab5b05a4edd3d4394e8214e444ff55bd0d3a5ba51b2a85";
|
||||
sha256 = "70466b7d0bb75617c5013615f1756eac2ccf48a89cfeaa1486c0256bc31aee11";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/bg/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/bg/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "bg";
|
||||
arch = "linux-i686";
|
||||
sha256 = "474d471395d9284852c647eab1fddc4db2269c819931edfb788a5580ac999d0a";
|
||||
sha256 = "4166fc66cc4779fed44f8db3561b46012326dba958d75ea8b4eb23aeede40105";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/br/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/br/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "br";
|
||||
arch = "linux-i686";
|
||||
sha256 = "e5e9f42b1a8975b276558046f7b90cb3c57fae4fe95f95f92e7e209f7ee5bfcb";
|
||||
sha256 = "23af915ff46d00d836f442af65ffcbdcd3a7668bf385855b626269320d30de89";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ca/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ca/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ca";
|
||||
arch = "linux-i686";
|
||||
sha256 = "09faad4fb6472f21dc825ba496853848978be42dcf3aa66927f4ccb2b0b84d59";
|
||||
sha256 = "ed309a1f5e787c6d9de1ecaa332bd5ad995d9dd44521eb141a8002f4c96f8b78";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/cak/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/cak/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "cak";
|
||||
arch = "linux-i686";
|
||||
sha256 = "c169b412dad7f8c341b941491bb81d23646855488523fbc5e5ec676c47db2a02";
|
||||
sha256 = "04f0f440f98b6444d1c0044bca77c2c4bf75025ea9eff163159c182bb913697b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/cs/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/cs/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "cs";
|
||||
arch = "linux-i686";
|
||||
sha256 = "b1342ff7c1c19c7e45eb12055ce4063376d2651da195333431d60e5fa4b17adb";
|
||||
sha256 = "592e5fca7ef04ac14b400dcc326cef79baa48c4289e65106b6967eea37930cac";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/cy/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/cy/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "cy";
|
||||
arch = "linux-i686";
|
||||
sha256 = "ceecb82902badc017405af3a0c9f6eafcb3748b7746bf7d25dd2f7fc716e5126";
|
||||
sha256 = "9f7862b5f26022f27d39331b1b0ce0972127a34474cc89fa44a369777f79311c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/da/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/da/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "da";
|
||||
arch = "linux-i686";
|
||||
sha256 = "f2c9cae1c78995ad3e27b92c3f3eee998415b141883def9742d296be6e62a302";
|
||||
sha256 = "1882e205f8e16eeef88306f30e4a1dfc5c415d1e1cf1041ce432362b84ce5b2f";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/de/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/de/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "de";
|
||||
arch = "linux-i686";
|
||||
sha256 = "653bdd0f67b784fc078bdd1cd75f0d307b30d6c027b0e5fd7148d5e4cea2adcd";
|
||||
sha256 = "00d1e7cd634c130c6f4a26333de10e82f7a18ef1fe766a6280a2614c1dd4290e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/dsb/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/dsb/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "dsb";
|
||||
arch = "linux-i686";
|
||||
sha256 = "98384b95001ec5e82fc8f53c76f5644ffe1f6624deefd3cf4d8bf6c4492619e4";
|
||||
sha256 = "d14aaa3beeba7dd1f781c3eef74cb098a5f36944cfc240223d8f3d472b2c15b8";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/el/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/el/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "el";
|
||||
arch = "linux-i686";
|
||||
sha256 = "ab7efc3b98f24a14e488dda8cb8206cbe83f49384352154fc20353c697201d6e";
|
||||
sha256 = "cdeec1c38813d76523597a3d9afada7538517a2fd9705a64a9ae03484c3d00b5";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/en-CA/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/en-CA/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "en-CA";
|
||||
arch = "linux-i686";
|
||||
sha256 = "d9c9fcf684aba3322bc7c386c48ae30bdf56c48a20902ec298e95be362c11c37";
|
||||
sha256 = "553921daa097d493144a65dffd7e4706cf1d95541012db7eda8544690ee8977f";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/en-GB/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/en-GB/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "en-GB";
|
||||
arch = "linux-i686";
|
||||
sha256 = "49c80b30b66b675de13f3a1adfedfd0794dee6762c56967775665961bcd3959d";
|
||||
sha256 = "60b796348c70fd0ea30fd85c1bdea52a027d25622286a9c33a24fa8aa87b1f2e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/en-US/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/en-US/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "en-US";
|
||||
arch = "linux-i686";
|
||||
sha256 = "0ce97d2b043907467d54cca44c85681f37d2a3b34a9575082d0b3ee05a82447c";
|
||||
sha256 = "46cdf6a072c11cc8df062834d3c9e64e6ce71eabf1f4c7d55753dd95e2b21e83";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/es-AR/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/es-AR/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "es-AR";
|
||||
arch = "linux-i686";
|
||||
sha256 = "6fea0ae72690c33c9cbf6cf4721afc16974d72f9fc287bd44e02e5e06cc7d2c8";
|
||||
sha256 = "637a60a827e347abfc364786ca5ad2c7b6b3c0b61fbb7ef5c81dae7b61a3eeeb";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/es-ES/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/es-ES/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "es-ES";
|
||||
arch = "linux-i686";
|
||||
sha256 = "add0932c8bb9356ac8cf67a57a2aaa3d93fc3f9a2357832f472935acbfe1f25d";
|
||||
sha256 = "b110ecbae661e18079f8ee7e06c866da5c49c288e4d265366f9f4d6d3cdb7087";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/es-MX/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/es-MX/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "es-MX";
|
||||
arch = "linux-i686";
|
||||
sha256 = "3aad7a26e7444751647e794c031218f6850f711494dc5b24e25d2848b9cf56f0";
|
||||
sha256 = "63722c2ecd323216371633a67d6de071148898f62c8c44781bd5bc9aacd2b5eb";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/et/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/et/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "et";
|
||||
arch = "linux-i686";
|
||||
sha256 = "4bf21ba093b2d98a507f63fbb8a3c8c1bf790f0c4811bc664aa4475fcc8f1d3b";
|
||||
sha256 = "93109b1876f212ab8a91d34c77dd137d87009c39fab3faef6f63ad72cb692567";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/eu/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/eu/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "eu";
|
||||
arch = "linux-i686";
|
||||
sha256 = "f01b207c5b35af66542e5961e63cc3734eecdabaa543c0ee693add78862e3508";
|
||||
sha256 = "a2b8196598d00e09fc119c2a4f70e71ecac6080557d69671e3cea84361d1249e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/fi/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/fi/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "fi";
|
||||
arch = "linux-i686";
|
||||
sha256 = "e29744181614b98bf2c6dfb46da2f339eddd1d17f1ffe7499236442b5104a9b0";
|
||||
sha256 = "92518485b0b0111c95b867d13d3a7199d3a3d0288d05636f6d69dde44f94521b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/fr/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/fr/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "fr";
|
||||
arch = "linux-i686";
|
||||
sha256 = "02708ed7bb7b83f058160f28524506f13f5c661f967e0cf8908f7d1b72965a45";
|
||||
sha256 = "21ae453720831af4b06d261c5094ae6ccf4d730748c51eacfb5879f012460ea2";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/fy-NL/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/fy-NL/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "fy-NL";
|
||||
arch = "linux-i686";
|
||||
sha256 = "156940765e41e34c3f05f7f56c8634dd41e9e2194c3fe14d3d8e04af0d266a5a";
|
||||
sha256 = "759689324eb65ca07b69fdb82d183399c0a0b2948e9b1c048f4919ff4f9520d5";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ga-IE/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ga-IE/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ga-IE";
|
||||
arch = "linux-i686";
|
||||
sha256 = "2f5089a6f152efba12eac5a5096b91f360bccf99a061ea8145767807499d6e45";
|
||||
sha256 = "2e0d71044e670dd130c311eb5c8175ea8ed8d44816b27226d81bd6b2b00d22da";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/gd/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/gd/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "gd";
|
||||
arch = "linux-i686";
|
||||
sha256 = "004cdf4b0db59ffd5463a543b6ee5859f96eef31d16a6e0bbce892e7bdfb3481";
|
||||
sha256 = "aaa6c675b9a1d3a19bf736fdb8b3c07145871099f5eb102e7eac5e2b7613568b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/gl/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/gl/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "gl";
|
||||
arch = "linux-i686";
|
||||
sha256 = "c3d72bb143913728198c73f0dbec8933e791ead4d5b46d2bd2bbfdf9faa2a3db";
|
||||
sha256 = "54ec7a64e53bba9c59ffc5a63f7668d28b1fdac2c42757be8d89815364873575";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/he/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/he/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "he";
|
||||
arch = "linux-i686";
|
||||
sha256 = "c120e4dde2fcbcabb383732512e455eb74c5b56e42edc1ffa91a6b513c369ceb";
|
||||
sha256 = "896d7be34cdad5efdfcb958a8763f685a56adb64030563b61521d4b547760595";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/hr/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/hr/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "hr";
|
||||
arch = "linux-i686";
|
||||
sha256 = "156e3fe8927961aef8353d896c20fa78b237c3a2a40cd73b4f216c7893a69750";
|
||||
sha256 = "968fbf7246d062344d5631720ffcb19e58a15655731a9550673c408ec1e0852f";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/hsb/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/hsb/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "hsb";
|
||||
arch = "linux-i686";
|
||||
sha256 = "2a1a8f996815b7a57ba62f589393f7ecab7918a5acb9cbd54d901e014a9de730";
|
||||
sha256 = "d393a1a8ec99b4b03eaa26560b5280c863b8935eba7274f69af54f9eae7cf365";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/hu/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/hu/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "hu";
|
||||
arch = "linux-i686";
|
||||
sha256 = "c7d541bbefeecc9cf1eaaa975205d7c8c9530a26746a3e8e9e4a9faea95fd99d";
|
||||
sha256 = "d796099393afd865b7b3d37917f921dc3e667c0b0bd7dacb955a1d239620e723";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/hy-AM/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/hy-AM/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "hy-AM";
|
||||
arch = "linux-i686";
|
||||
sha256 = "41e1620345bbc30555e5a09459937ad5bd0ca0198aeab0065ade133f71aea34c";
|
||||
sha256 = "a9cd46e49d6fac36a76c0b2a7728099b980923ffa4f16a398b6e6b1ed975f421";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/id/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/id/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "id";
|
||||
arch = "linux-i686";
|
||||
sha256 = "3ad8a34d3d92a83832135618158a93624e6063a4593237ebc94623c45a71b9bb";
|
||||
sha256 = "621b0df18242dfd0d64b3554411e150e9249475a99918ec9d2e6ee8aa13ce602";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/is/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/is/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "is";
|
||||
arch = "linux-i686";
|
||||
sha256 = "15d378b909c271d87137aca66ac9e697b7b7de2fa17d24914873cd42af3c1613";
|
||||
sha256 = "1a01815ae59babb7bef64a0d3768fbec23e5bbbed25bcfb37677825df72f29f7";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/it/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/it/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "it";
|
||||
arch = "linux-i686";
|
||||
sha256 = "8a761bf97c76d30e860a4cba1e2b3dcda550c20e87953f5b3903f2b859f2f41f";
|
||||
sha256 = "e877a7bea6eb184352aa9f91f112059737f7709d9eaa27c3b911c91437e220bb";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ja/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ja/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ja";
|
||||
arch = "linux-i686";
|
||||
sha256 = "2c9e60e49694770dd13493c3fd7f61e61a8ecc3d1e3521c3df4f5e403a0cb4da";
|
||||
sha256 = "a9fe2b1273745213de8a3e723326db37cfe3446cf0922d55dd371c52dd6942f3";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ka/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ka/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ka";
|
||||
arch = "linux-i686";
|
||||
sha256 = "8f6aa7f110e435eb21b80b43545c4bebc83d78c3524b58c9b2b9fdb7576a1caf";
|
||||
sha256 = "d13862201e1a4b2911d820ede69e54c239656e91fb66594a789dd617efbc705f";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/kab/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/kab/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "kab";
|
||||
arch = "linux-i686";
|
||||
sha256 = "0aca25c9f560c967352452f584857ec1670bbeef93cb5126a5a369fa2e2bfbb3";
|
||||
sha256 = "3dccc3b3163c332c85d6171e6c5a366d1b6cc2d681b8b49413f8e119b554d6ef";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/kk/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/kk/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "kk";
|
||||
arch = "linux-i686";
|
||||
sha256 = "b3fd7ad0219c0d7cccd6e8d1ff6d57bb9ee9454982390a5eb1c25da0362e6a04";
|
||||
sha256 = "4f236eb6094b24ad20fd1b9206b298539c62550d64ea6faab5b9e5c7af1b92a1";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ko/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ko/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ko";
|
||||
arch = "linux-i686";
|
||||
sha256 = "878550b8d1b6b702969e1f44b11335581b74f49cda275128b5e888b1bb1c65c6";
|
||||
sha256 = "12138c2913e4ace3f772218cad8428816a7f3053371e41160b2eac708aade294";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/lt/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/lt/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "lt";
|
||||
arch = "linux-i686";
|
||||
sha256 = "4adb4e7fb9e2858d08ba07ac0c45c39f19ea607454350406b66a7b8119d47eac";
|
||||
sha256 = "63dab76b710a4733ce5eba4120bd3da6c8b98632e96c074ee093969fb40984f8";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/lv/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/lv/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "lv";
|
||||
arch = "linux-i686";
|
||||
sha256 = "6de09c4e8d7d59a6d3397b42225a506820fd7270e0ee9397987ff8c1b39a9647";
|
||||
sha256 = "ac18773d6fdbfb92cd30a8c33973bad927a82274dcd24c4cec23fd815256da39";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ms/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ms/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ms";
|
||||
arch = "linux-i686";
|
||||
sha256 = "0c35682230d3250e3be1aad81d39507f814f701e3495b4eb6d4c044081848f82";
|
||||
sha256 = "1bc302e2dd379a25c708edd51644f18331a73866e83add07b109890f5778edac";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/nb-NO/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/nb-NO/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "nb-NO";
|
||||
arch = "linux-i686";
|
||||
sha256 = "af75db1085dcf182c5570b47530685413e4ba425cd05c94c0280ae65dc4a54f4";
|
||||
sha256 = "4d1655e7a258dfe4ef5c9863d47fcf8b01f4547f9a4cc2e676c3f3bc98412052";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/nl/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/nl/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "nl";
|
||||
arch = "linux-i686";
|
||||
sha256 = "9ed4e326655f19d2bd9f373a3f0f0211a9c44a1d12ebb0bf84afe1a40d65c7cf";
|
||||
sha256 = "168227b97f2ffc7c8a99dc87b7145135b66ed6148eee4506540e3044d643e8fb";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/nn-NO/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/nn-NO/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "nn-NO";
|
||||
arch = "linux-i686";
|
||||
sha256 = "2736a80c98790bab8a83bdf6dd0c8d627b5605f723d4625a90a8923c905cea5b";
|
||||
sha256 = "d9dcbddf067edd1baaaa31468f32fb6f4ccd6278370c8c757e602f980e1685d8";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/pa-IN/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/pa-IN/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "pa-IN";
|
||||
arch = "linux-i686";
|
||||
sha256 = "1145f7b27c3472461c36312598e8e2fb97f0287571ab487a5faa72a55cb67cd8";
|
||||
sha256 = "0b4d038a3cbcfdc5c34322a1cc760a996ba6542da144516cffc74e2ab7c04347";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/pl/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/pl/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "pl";
|
||||
arch = "linux-i686";
|
||||
sha256 = "f620e69104a461f0376279f5e67164ee153ece99230e5f3f8607dffc3830c8ca";
|
||||
sha256 = "698bb68efacac0a8023729d2870da6932b1f80ec960d25fa259aed1b750f33ec";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/pt-BR/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/pt-BR/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "pt-BR";
|
||||
arch = "linux-i686";
|
||||
sha256 = "45410c053ee09fbe9eb669951cdc1aea923327134e8f6149a57157bad7980dc8";
|
||||
sha256 = "e48c9494bccad7ea3a57a4f460edde3ff92b0f55eff3be082fbdf526d0192a0b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/pt-PT/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/pt-PT/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "pt-PT";
|
||||
arch = "linux-i686";
|
||||
sha256 = "606e06996c137d5100fb41cfed3eb64f0d133412119d1dd9a0ac77c69dd3a9bd";
|
||||
sha256 = "1afea038d789d2d8de1491d44273929557dfdcdd4241c60e404e2528320be2a5";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/rm/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/rm/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "rm";
|
||||
arch = "linux-i686";
|
||||
sha256 = "0c56f5bbcd93ebcf719211b745655bdd12c804e797a61a35725aefc9330ec039";
|
||||
sha256 = "be4ab3c712469ed664b98ab9072e081cbc3ca82e76645c91c85b0073c6de6f6f";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ro/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ro/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ro";
|
||||
arch = "linux-i686";
|
||||
sha256 = "2fa1770ba6c0f48565cdaa1a380f1a02d7c5bbf399a8e8733d534974496fc5fd";
|
||||
sha256 = "e0d7f59728c25e47c69e7317cf51da00204c5258ddddc47e41951b1e925f503d";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ru/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ru/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "ru";
|
||||
arch = "linux-i686";
|
||||
sha256 = "5e163f9d577fa6b9ac90c68332f987627da0eddac178477fe2bc6086fe1b350b";
|
||||
sha256 = "2b11c68a1f8f563225352681c731f56fc62e9f82ca083d74ae450d67511a37fc";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/sk/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/sk/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "sk";
|
||||
arch = "linux-i686";
|
||||
sha256 = "2fafac4b35aca28cdc0d5cb8052a7235586ab5c8c6b8407386586e395fee41dd";
|
||||
sha256 = "5e60a97be9196398e5e517be8e15c500c6d5b86edf57c8e185f627e8392f5555";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/sl/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/sl/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "sl";
|
||||
arch = "linux-i686";
|
||||
sha256 = "e8eb2687ef4600143bf1a6174ddc01c9e12a33d82ceb479b4924704862ce5b44";
|
||||
sha256 = "3bed2e3474989e68a68e743c429e6fedea5630050a45dc3736b481d8cf953173";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/sq/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/sq/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "sq";
|
||||
arch = "linux-i686";
|
||||
sha256 = "22d546d1b351894bd6e9b37570c32daf631e43f5cf1ba12783ba4c8b8b0f80b1";
|
||||
sha256 = "849c502856746ec05120974a343c19183071a79f66b77d6dd1060f58d87049a2";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/sr/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/sr/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "sr";
|
||||
arch = "linux-i686";
|
||||
sha256 = "4f3005db6f7ecf49f41e38a23af1d10d87b1df2f83e004137ba5a7ea4eb554b3";
|
||||
sha256 = "bc8228e4331bc9e862acecd5d01b57079423eeeb7967e1b1ab2b4ddd64f41b43";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/sv-SE/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/sv-SE/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "sv-SE";
|
||||
arch = "linux-i686";
|
||||
sha256 = "fc3dc64402a0ee3eeb0704480af026c4204eba64630ba8d47ca6a4bc003c05af";
|
||||
sha256 = "3ccb87a29f4c1b063da10646322e57b92480cb51df56d2ad41433dd5bf6f3a48";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/th/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/th/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "th";
|
||||
arch = "linux-i686";
|
||||
sha256 = "02850d8dbb41dd178fe6ae6ec5e0fdaf35c7afdda5c07801b03ba2594d89e76d";
|
||||
sha256 = "05f02ab04665e4aba0d4b1859170138b5b6e998bebb310f41883f92e8734b337";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/tr/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/tr/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "tr";
|
||||
arch = "linux-i686";
|
||||
sha256 = "bdc704b6ab1d9061140ba6e8083ddc77eac69284455920c451151fb3a27a35d8";
|
||||
sha256 = "2dffa62fb27e406207d73a86669f4857319e781e9b99d21a95d04357e509ec1c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/uk/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/uk/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "uk";
|
||||
arch = "linux-i686";
|
||||
sha256 = "5fbd2f2a2426c6994fc4aa1f32c59fa3b5f3dc5d0157407119f0033fb5f6277e";
|
||||
sha256 = "6c8c42b9d14df637279898eda706cb1f34018ef2888615ead3f5804a344ecd41";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/uz/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/uz/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "uz";
|
||||
arch = "linux-i686";
|
||||
sha256 = "bd4bcdbbf474e0edd1d76757603826f52f95eb082f3aae11c0df85a8c6602ad4";
|
||||
sha256 = "aca1844cd42125fa4f03ecc30e0339a8a0a5b5e9156812bf4d50f88feb69cf0e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/vi/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/vi/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "vi";
|
||||
arch = "linux-i686";
|
||||
sha256 = "2c72cbabe914af118c6e29acb035a983884f629aa3bf9047a4e17c8329ced1a7";
|
||||
sha256 = "7aa12859972ac0b49f01ce027158942e94e4226f16374f2a466bc86bedf68492";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/zh-CN/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/zh-CN/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "zh-CN";
|
||||
arch = "linux-i686";
|
||||
sha256 = "2c83f1997030cd94b020568d1678b96118a108979b4fbe5bc87a0b1cf27d19b9";
|
||||
sha256 = "4df04c2f978ba6927b8f7b1b20c4a93e0b98c5a7cf3923ba76ceab3a1c474025";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/zh-TW/thunderbird-102.11.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/zh-TW/thunderbird-102.13.0.tar.bz2";
|
||||
locale = "zh-TW";
|
||||
arch = "linux-i686";
|
||||
sha256 = "c054c4762bb6e78a80d610020c1eaf10b0139d85b153157f083a28af652fb531";
|
||||
sha256 = "f01c1ceb2303feb3272345705275f92e01e380e521d220b73ad268b6c1667092";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
|
@ -5,13 +5,13 @@ rec {
|
|||
|
||||
thunderbird-102 = (buildMozillaMach rec {
|
||||
pname = "thunderbird";
|
||||
version = "102.12.0";
|
||||
version = "102.13.0";
|
||||
application = "comm/mail";
|
||||
applicationName = "Mozilla Thunderbird";
|
||||
binaryName = pname;
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
|
||||
sha512 = "303787a8f22a204e48784d54320d5f4adaeeeedbe4c2294cd26ad75792272ffc9453be7f0ab1434214b61a2cc46982c23c4fd447c4d80d588df4a7800225ddee";
|
||||
sha512 = "1ed48220f91cc2c38f59067664c02f1f2098c843810b8f81cb8dee4fe98911d87aac352ab8639c68d0eed74297240cd9e0ce0e64a40360511be85315f2bfcfc6";
|
||||
};
|
||||
extraPatches = [
|
||||
# The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
|
||||
|
|
|
@ -3,24 +3,21 @@
|
|||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, libgit2
|
||||
, openssl
|
||||
, zlib
|
||||
, stdenv
|
||||
, darwin
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "gql";
|
||||
version = "0.2.0";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AmrDeveloper";
|
||||
repo = "GQL";
|
||||
rev = version;
|
||||
hash = "sha256-3x4ExSEs22wFP4Z5cY9+F8yyVc5voHAT1odnyzkSlhc=";
|
||||
hash = "sha256-n0v7Mvs7JL3YRsNov4/beoUAW8B4oKjDiRa3QY65V/o=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Xmf64yRyWrqYO/ydxEblChVPKnR47Uc55FVAY3DU7no=";
|
||||
cargoHash = "sha256-dDjx84LPV3BHMzqyhJW73Z+0R4DlPsHhRlG62HGNxjI=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
@ -28,26 +25,15 @@ rustPlatform.buildRustPackage rec {
|
|||
|
||||
buildInputs = [
|
||||
libgit2
|
||||
openssl
|
||||
zlib
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
darwin.apple_sdk.frameworks.Security
|
||||
];
|
||||
|
||||
env = {
|
||||
OPENSSL_NO_VENDOR = true;
|
||||
};
|
||||
|
||||
# Cargo.lock is outdated
|
||||
preConfigure = ''
|
||||
cargo metadata --offline
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A SQL like query language to perform queries on .git files";
|
||||
homepage = "https://github.com/AmrDeveloper/GQL";
|
||||
changelog = "https://github.com/AmrDeveloper/GQL/releases/tag/${src.rev}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ figsoda ];
|
||||
mainProgram = "gitql";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,16 +13,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "dmlive";
|
||||
version = "5.2.0";
|
||||
version = "5.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "THMonster";
|
||||
repo = pname;
|
||||
rev = "53c55cb3c087bc00a882331307d210c2965b04d1"; # no tag
|
||||
hash = "sha256-k15IjNGiY0ISEyWxlhZST4dtink/OtoJtv4/8nUn7qY=";
|
||||
rev = "92ce90163c3d84f0fab99e6dc192a65c616ffd81"; # no tag
|
||||
hash = "sha256-3eRC/XmvZXe3DyXOqSkNpTbddtGr/lcaTaFYqZLZq+w=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-0zOwqxD3WX/4e19ywpghdfoGmh2KC+70HbTSYkVHzUA=";
|
||||
cargoHash = "sha256-TQTdz+ZC5cZxWhccnUmXnq+j2EYM5486mIjn6Poe5a8=";
|
||||
|
||||
OPENSSL_NO_VENDOR = true;
|
||||
|
||||
|
|
|
@ -56,6 +56,10 @@ stdenv.mkDerivation rec {
|
|||
tools/lkl/lib/hijack/liblkl-hijack.so $lib/lib
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
ln -s $out/bin/lklfuse $out/bin/mount.fuse.lklfuse
|
||||
'';
|
||||
|
||||
# We turn off format and fortify because of these errors (fortify implies -O2, which breaks the jitter entropy code):
|
||||
# fs/xfs/xfs_log_recover.c:2575:3: error: format not a string literal and no format arguments [-Werror=format-security]
|
||||
# crypto/jitterentropy.c:54:3: error: #error "The CPU Jitter random number generator must not be compiled with optimizations. See documentation. Use the compiler switch -O0 for compiling jitterentropy.c."
|
||||
|
|
929
pkgs/build-support/node/fetch-npm-deps/Cargo.lock
generated
929
pkgs/build-support/node/fetch-npm-deps/Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -6,15 +6,17 @@ edition = "2021"
|
|||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.65"
|
||||
base64 = "0.13.0"
|
||||
digest = "0.10.5"
|
||||
rayon = "1.5.3"
|
||||
serde = { version = "1.0.145", features = ["derive"] }
|
||||
serde_json = "1.0.85"
|
||||
anyhow = "1.0.71"
|
||||
backoff = "0.4.0"
|
||||
base64 = "0.21.2"
|
||||
digest = "0.10.7"
|
||||
env_logger = "0.10.0"
|
||||
isahc = { version = "1.7.2", default_features = false }
|
||||
rayon = "1.7.0"
|
||||
serde = { version = "1.0.164", features = ["derive"] }
|
||||
serde_json = "1.0.99"
|
||||
sha1 = "0.10.5"
|
||||
sha2 = "0.10.6"
|
||||
tempfile = "3.3.0"
|
||||
ureq = { version = "2.5.0" }
|
||||
url = { version = "2.3.1", features = ["serde"] }
|
||||
walkdir = "2.3.2"
|
||||
sha2 = "0.10.7"
|
||||
tempfile = "3.6.0"
|
||||
url = { version = "2.4.0", features = ["serde"] }
|
||||
walkdir = "2.3.3"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenvNoCC, rustPlatform, makeWrapper, Security, gnutar, gzip, nix, testers, fetchurl, prefetch-npm-deps, fetchNpmDeps }:
|
||||
{ lib, stdenvNoCC, rustPlatform, makeWrapper, pkg-config, curl, gnutar, gzip, nix, testers, fetchurl, cacert, prefetch-npm-deps, fetchNpmDeps }:
|
||||
|
||||
{
|
||||
prefetch-npm-deps = rustPlatform.buildRustPackage {
|
||||
|
@ -16,8 +16,8 @@
|
|||
|
||||
cargoLock.lockFile = ./Cargo.lock;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = lib.optional stdenvNoCC.isDarwin Security;
|
||||
nativeBuildInputs = [ makeWrapper pkg-config ];
|
||||
buildInputs = [ curl ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/prefetch-npm-deps" --prefix PATH : ${lib.makeBinPath [ gnutar gzip nix ]}
|
||||
|
@ -165,6 +165,12 @@
|
|||
|
||||
dontInstall = true;
|
||||
|
||||
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
|
||||
|
||||
SSL_CERT_FILE = if (hash_.outputHash == "" || hash_.outputHash == lib.fakeSha256 || hash_.outputHash == lib.fakeSha512 || hash_.outputHash == lib.fakeHash)
|
||||
then "${cacert}/etc/ssl/certs/ca-bundle.crt"
|
||||
else "/no-cert-file.crt";
|
||||
|
||||
outputHashMode = "recursive";
|
||||
} // hash_ // forceGitDeps_);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
use base64::prelude::{Engine, BASE64_STANDARD};
|
||||
use digest::{Digest, Update};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use sha1::Sha1;
|
||||
|
@ -52,14 +53,14 @@ impl Cache {
|
|||
let (algo, hash, integrity) = if let Some(integrity) = integrity {
|
||||
let (algo, hash) = integrity.split_once('-').unwrap();
|
||||
|
||||
(algo.to_string(), base64::decode(hash)?, integrity)
|
||||
(algo.to_string(), BASE64_STANDARD.decode(hash)?, integrity)
|
||||
} else {
|
||||
let hash = Sha512::new().chain(data).finalize();
|
||||
|
||||
(
|
||||
String::from("sha512"),
|
||||
hash.to_vec(),
|
||||
format!("sha512-{}", base64::encode(hash)),
|
||||
format!("sha512-{}", BASE64_STANDARD.encode(hash)),
|
||||
)
|
||||
};
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ use walkdir::WalkDir;
|
|||
|
||||
mod cacache;
|
||||
mod parse;
|
||||
mod util;
|
||||
|
||||
fn cache_map_path() -> Option<PathBuf> {
|
||||
env::var_os("CACHE_MAP_PATH").map(PathBuf::from)
|
||||
|
@ -172,6 +173,8 @@ fn map_cache() -> anyhow::Result<HashMap<Url, String>> {
|
|||
}
|
||||
|
||||
fn main() -> anyhow::Result<()> {
|
||||
env_logger::init();
|
||||
|
||||
let args = env::args().collect::<Vec<_>>();
|
||||
|
||||
if args.len() < 2 {
|
||||
|
@ -182,6 +185,18 @@ fn main() -> anyhow::Result<()> {
|
|||
process::exit(1);
|
||||
}
|
||||
|
||||
if let Ok(jobs) = env::var("NIX_BUILD_CORES") {
|
||||
if !jobs.is_empty() {
|
||||
rayon::ThreadPoolBuilder::new()
|
||||
.num_threads(
|
||||
jobs.parse()
|
||||
.expect("NIX_BUILD_CORES must be a whole number"),
|
||||
)
|
||||
.build_global()
|
||||
.unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
if args[1] == "--fixup-lockfile" {
|
||||
let lock = serde_json::from_str(&fs::read_to_string(&args[2])?)?;
|
||||
|
||||
|
|
|
@ -3,15 +3,15 @@ use lock::UrlOrString;
|
|||
use rayon::prelude::*;
|
||||
use serde_json::{Map, Value};
|
||||
use std::{
|
||||
fs, io,
|
||||
fs,
|
||||
io::{self, Read},
|
||||
process::{Command, Stdio},
|
||||
thread,
|
||||
time::Duration,
|
||||
};
|
||||
use tempfile::{tempdir, TempDir};
|
||||
use ureq::{Error, ErrorKind, Response};
|
||||
use url::Url;
|
||||
|
||||
use crate::util;
|
||||
|
||||
pub mod lock;
|
||||
|
||||
pub fn lockfile(content: &str, force_git_deps: bool) -> anyhow::Result<Vec<Package>> {
|
||||
|
@ -106,7 +106,7 @@ impl Package {
|
|||
|
||||
let specifics = match get_hosted_git_url(&resolved)? {
|
||||
Some(hosted) => {
|
||||
let mut body = get_response(hosted.as_str())?.into_reader();
|
||||
let mut body = util::get_url_with_retry(&hosted)?;
|
||||
|
||||
let workdir = tempdir()?;
|
||||
|
||||
|
@ -157,9 +157,7 @@ impl Package {
|
|||
Specifics::Registry { .. } => {
|
||||
let mut body = Vec::new();
|
||||
|
||||
get_response(self.url.as_str())?
|
||||
.into_reader()
|
||||
.read_to_end(&mut body)?;
|
||||
util::get_url_with_retry(&self.url)?.read_to_end(&mut body)?;
|
||||
|
||||
Ok(body)
|
||||
}
|
||||
|
@ -191,31 +189,6 @@ impl Package {
|
|||
}
|
||||
}
|
||||
|
||||
#[allow(clippy::result_large_err)]
|
||||
fn get_response(url: &str) -> Result<Response, Error> {
|
||||
for _ in 0..4 {
|
||||
match ureq::get(url).call() {
|
||||
Err(Error::Status(503 | 429, r)) => {
|
||||
let retry: Option<u64> = r.header("retry-after").and_then(|h| h.parse().ok());
|
||||
let retry = retry.unwrap_or(5);
|
||||
eprintln!("{} for {}, retry in {}", r.status(), r.get_url(), retry);
|
||||
thread::sleep(Duration::from_secs(retry));
|
||||
}
|
||||
Err(Error::Transport(t)) => match t.kind() {
|
||||
ErrorKind::ConnectionFailed | ErrorKind::Dns | ErrorKind::Io => {
|
||||
let retry = 5;
|
||||
eprintln!("{} for {}, retry in {}", t.kind(), url, retry);
|
||||
thread::sleep(Duration::from_secs(retry));
|
||||
}
|
||||
_ => return Err(Error::Transport(t)),
|
||||
},
|
||||
result => return result,
|
||||
};
|
||||
}
|
||||
// Ran out of retries; try one last time and return whatever result we get.
|
||||
ureq::get(url).call()
|
||||
}
|
||||
|
||||
#[allow(clippy::case_sensitive_file_extension_comparisons)]
|
||||
fn get_hosted_git_url(url: &Url) -> anyhow::Result<Option<Url>> {
|
||||
if ["git", "git+ssh", "git+https", "ssh"].contains(&url.scheme()) {
|
||||
|
|
45
pkgs/build-support/node/fetch-npm-deps/src/util.rs
Normal file
45
pkgs/build-support/node/fetch-npm-deps/src/util.rs
Normal file
|
@ -0,0 +1,45 @@
|
|||
use backoff::{retry, ExponentialBackoff};
|
||||
use isahc::{
|
||||
config::{CaCertificate, Configurable, RedirectPolicy, SslOption},
|
||||
Body, Request, RequestExt,
|
||||
};
|
||||
use std::{env, path::Path};
|
||||
use url::Url;
|
||||
|
||||
pub fn get_url(url: &Url) -> Result<Body, isahc::Error> {
|
||||
let mut request = Request::get(url.as_str()).redirect_policy(RedirectPolicy::Limit(10));
|
||||
|
||||
// Respect SSL_CERT_FILE if environment variable exists
|
||||
if let Ok(ssl_cert_file) = env::var("SSL_CERT_FILE") {
|
||||
if Path::new(&ssl_cert_file).exists() {
|
||||
// When file exists, use it. NIX_SSL_CERT_FILE will still override.
|
||||
request = request.ssl_ca_certificate(CaCertificate::file(ssl_cert_file));
|
||||
} else if env::var("outputHash").is_ok() {
|
||||
// When file does not exist, assume we are downloading in a FOD and
|
||||
// therefore do not need to check certificates, since the output is
|
||||
// already hashed.
|
||||
request = request.ssl_options(SslOption::DANGER_ACCEPT_INVALID_CERTS);
|
||||
}
|
||||
}
|
||||
|
||||
Ok(request.body(())?.send()?.into_body())
|
||||
}
|
||||
|
||||
pub fn get_url_with_retry(url: &Url) -> Result<Body, isahc::Error> {
|
||||
retry(ExponentialBackoff::default(), || {
|
||||
get_url(url).map_err(|err| {
|
||||
if err.is_network() || err.is_timeout() {
|
||||
backoff::Error::transient(err)
|
||||
} else {
|
||||
backoff::Error::permanent(err)
|
||||
}
|
||||
})
|
||||
})
|
||||
.map_err(|backoff_err| match backoff_err {
|
||||
backoff::Error::Permanent(err)
|
||||
| backoff::Error::Transient {
|
||||
err,
|
||||
retry_after: _,
|
||||
} => err,
|
||||
})
|
||||
}
|
|
@ -55,7 +55,6 @@
|
|||
, kxmlgui
|
||||
, plasma-framework
|
||||
, libqaccessibilityclient
|
||||
, python3
|
||||
}:
|
||||
|
||||
# TODO (ttuegel): investigate qmlplugindump failure
|
||||
|
|
|
@ -36,7 +36,7 @@ buildType = if stdenv.isDarwin then
|
|||
|
||||
edk2 = buildStdenv.mkDerivation {
|
||||
pname = "edk2";
|
||||
version = "202302";
|
||||
version = "202305";
|
||||
|
||||
patches = [
|
||||
# pass targetPrefix as an env var
|
||||
|
@ -52,7 +52,7 @@ edk2 = buildStdenv.mkDerivation {
|
|||
repo = "edk2";
|
||||
rev = "edk2-stable${edk2.version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-KZ5bTdaStO2M1hLPx9LsUSMl9NEiZeYMmFiShxCJqJM=";
|
||||
hash = "sha256-htOvV43Hw5K05g0SF3po69HncLyma3BtgpqYSdzRG4s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pythonEnv ];
|
||||
|
|
|
@ -5,7 +5,7 @@ let
|
|||
getPatches = dir:
|
||||
let files = builtins.attrNames (builtins.readDir dir);
|
||||
in map (f: dir + ("/" + f)) files;
|
||||
mkFlutter = { version, engineVersion, dartVersion, hash, dartHash, patches }:
|
||||
mkFlutter = { version, engineVersion, dartVersion, flutterHash, dartHash, patches }:
|
||||
let
|
||||
args = {
|
||||
inherit version engineVersion patches;
|
||||
|
@ -21,12 +21,34 @@ let
|
|||
url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip";
|
||||
sha256 = dartHash.aarch64-linux;
|
||||
};
|
||||
"${dartVersion}-x86_64-darwin" = fetchzip {
|
||||
url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip";
|
||||
sha256 = dartHash.x86_64-darwin;
|
||||
};
|
||||
"${dartVersion}-aarch64-darwin" = fetchzip {
|
||||
url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip";
|
||||
sha256 = dartHash.aarch64-darwin;
|
||||
};
|
||||
};
|
||||
};
|
||||
src = fetchzip {
|
||||
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${version}-stable.tar.xz";
|
||||
sha256 = hash;
|
||||
};
|
||||
src = {
|
||||
x86_64-linux = fetchzip {
|
||||
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${version}-stable.tar.xz";
|
||||
sha256 = flutterHash.x86_64-linux;
|
||||
};
|
||||
aarch64-linux = fetchzip {
|
||||
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${version}-stable.tar.xz";
|
||||
sha256 = flutterHash.aarch64-linux;
|
||||
};
|
||||
x86_64-darwin = fetchzip {
|
||||
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_${version}-stable.zip";
|
||||
sha256 = flutterHash.x86_64-darwin;
|
||||
};
|
||||
aarch64-darwin = fetchzip {
|
||||
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_arm64_${version}-stable.zip";
|
||||
sha256 = flutterHash.aarch64-darwin;
|
||||
};
|
||||
}.${stdenv.hostPlatform.system};
|
||||
};
|
||||
in
|
||||
(mkCustomFlutter args).overrideAttrs (prev: next: {
|
||||
|
@ -55,10 +77,17 @@ in
|
|||
version = "3.10.5";
|
||||
engineVersion = "45f6e009110df4f34ec2cf99f63cf73b71b7a420";
|
||||
dartVersion = "3.0.5";
|
||||
hash = "sha256-lLppUQzu+fl81TMYSPD+HA83BqeIg7bXpURyo49NPwI=";
|
||||
dartHash = {
|
||||
x86_64-linux = "sha256-UVVwPFk0qsKNR4JZMOGSGh1T482MN/8Xp4MZ3SA3C28=";
|
||||
aarch64-linux = "sha256-phzaFfrv7qbZOOhPq92q39R6mr5vFeBqEmYDU7e7lZQ=";
|
||||
x86_64-darwin = "sha256-4gJ659bNzs2lfI1LRwFACgu/ttkj+3xIrqLijju+CaI=";
|
||||
aarch64-darwin = "sha256-RJt+muq5IrcAhVLYEgdbVygcY1oB7tnVCN+iqktC+6c=";
|
||||
};
|
||||
flutterHash = rec {
|
||||
x86_64-linux = "sha256-lLppUQzu+fl81TMYSPD+HA83BqeIg7bXpURyo49NPwI=";
|
||||
aarch64-linux = x86_64-linux;
|
||||
x86_64-darwin = "sha256-1ZC5aCoGVBCeTSsu/ZEl1v53lLnzulx8Ya6YXvo4yIY=";
|
||||
aarch64-darwin = "sha256-TCMempLjO47IbP5MAZVHlXXvNaURGo+EbaL0K8e27wU=";
|
||||
};
|
||||
patches = flutter3Patches;
|
||||
};
|
||||
|
@ -67,10 +96,17 @@ in
|
|||
version = "3.7.12";
|
||||
engineVersion = "1a65d409c7a1438a34d21b60bf30a6fd5db59314";
|
||||
dartVersion = "2.19.6";
|
||||
hash = "sha256-5ExDBQXIpoZ5NwS66seY3m9/V8xDiyq/RdzldAyHdEE=";
|
||||
dartHash = {
|
||||
x86_64-linux = "sha256-4ezRuwhQHVCxZg5WbzU/tBUDvZVpfCo6coDE4K0UzXo=";
|
||||
aarch64-linux = "sha256-pYmClIqOo0sRPOkrcF4xQbo0mHlrr1TkhT1fnNyYNck=";
|
||||
x86_64-darwin = "sha256-tuIQhIOX2ub0u99CW/l7nCya9YVNokCZNgbVFqO4ils=";
|
||||
aarch64-darwin = "sha256-Oe8/0ygDN3xf5/2I3N/OBzF0bps7Mg0K2zJKj+E9Nak=";
|
||||
};
|
||||
flutterHash = rec {
|
||||
x86_64-linux = "sha256-5ExDBQXIpoZ5NwS66seY3m9/V8xDiyq/RdzldAyHdEE=";
|
||||
aarch64-linux = x86_64-linux;
|
||||
x86_64-darwin = "sha256-cJF8KB9fNb3hTZShDAPsMmr1neRdIMLvIl/m2tpzwQs=";
|
||||
aarch64-darwin = "sha256-yetEE65UP2Wh9ocx7nClQjYLHO6lIbZPay1+I2tDSM4=";
|
||||
};
|
||||
patches = flutter3Patches;
|
||||
};
|
||||
|
|
|
@ -2,10 +2,11 @@
|
|||
, stdenv
|
||||
, hostPlatform
|
||||
, engineVersion
|
||||
, fetchurl
|
||||
, fetchzip
|
||||
, autoPatchelfHook
|
||||
|
||||
, gtk3
|
||||
, unzip
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -44,6 +45,56 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
darwin = {
|
||||
"arm64" = {
|
||||
base = [
|
||||
{ archive = "artifacts.zip"; }
|
||||
{ archive = "font-subset.zip"; }
|
||||
];
|
||||
variants = lib.genAttrs [ "profile" "release" ]
|
||||
(variant: [
|
||||
{ archive = "artifacts.zip"; }
|
||||
]);
|
||||
};
|
||||
"x64" = {
|
||||
base = [
|
||||
{ archive = "FlutterEmbedder.framework.zip"; }
|
||||
{ archive = "FlutterMacOS.framework.zip"; }
|
||||
{ archive = "artifacts.zip"; }
|
||||
{ archive = "font-subset.zip"; }
|
||||
{ archive = "gen_snapshot.zip"; }
|
||||
];
|
||||
variants.profile = [
|
||||
{ archive = "FlutterMacOS.framework.zip"; }
|
||||
{ archive = "artifacts.zip"; }
|
||||
{ archive = "gen_snapshot.zip"; }
|
||||
];
|
||||
variants.release = [
|
||||
{ archive = "FlutterMacOS.dSYM.zip"; }
|
||||
{ archive = "FlutterMacOS.framework.zip"; }
|
||||
{ archive = "artifacts.zip"; }
|
||||
{ archive = "gen_snapshot.zip"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
ios =
|
||||
(lib.genAttrs
|
||||
[ "" ]
|
||||
(arch:
|
||||
{
|
||||
base = [
|
||||
{ archive = "artifacts.zip"; }
|
||||
];
|
||||
variants.profile = [
|
||||
{ archive = "artifacts.zip"; }
|
||||
];
|
||||
variants.release = [
|
||||
{ archive = "artifacts.zip"; }
|
||||
{ archive = "Flutter.dSYM.zip"; }
|
||||
];
|
||||
}));
|
||||
|
||||
linux = lib.genAttrs
|
||||
[ "arm64" "x64" ]
|
||||
(arch:
|
||||
|
@ -85,18 +136,29 @@ let
|
|||
let
|
||||
artifactDirectory = if platform == null then null else "${platform}${lib.optionalString (variant != null) "-${variant}"}";
|
||||
archiveBasename = lib.removeSuffix ".${(lib.last (lib.splitString "." archive))}" archive;
|
||||
overrideUnpackCmd = builtins.elem archive [ "FlutterEmbedder.framework.zip" "FlutterMacOS.framework.zip" ];
|
||||
in
|
||||
stdenv.mkDerivation ({
|
||||
pname = "flutter-artifact${lib.optionalString (platform != null) "-${artifactDirectory}"}-${archiveBasename}";
|
||||
version = engineVersion;
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://storage.googleapis.com/flutter_infra_release/flutter/${engineVersion}${lib.optionalString (platform != null) "/${artifactDirectory}"}/${archive}";
|
||||
stripRoot = false;
|
||||
hash = (if artifactDirectory == null then hashes else hashes.${artifactDirectory}).${archive};
|
||||
};
|
||||
nativeBuildInputs = [ unzip ]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook ];
|
||||
src =
|
||||
if overrideUnpackCmd then
|
||||
(fetchurl {
|
||||
url = "https://storage.googleapis.com/flutter_infra_release/flutter/${engineVersion}${lib.optionalString (platform != null) "/${artifactDirectory}"}/${archive}";
|
||||
hash = (if artifactDirectory == null then hashes else hashes.${artifactDirectory}).${archive};
|
||||
}) else
|
||||
(fetchzip {
|
||||
url = "https://storage.googleapis.com/flutter_infra_release/flutter/${engineVersion}${lib.optionalString (platform != null) "/${artifactDirectory}"}/${archive}";
|
||||
stripRoot = false;
|
||||
hash = (if artifactDirectory == null then hashes else hashes.${artifactDirectory}).${archive};
|
||||
});
|
||||
|
||||
setSourceRoot = if overrideUnpackCmd then "sourceRoot=`pwd`" else null;
|
||||
unpackCmd = if overrideUnpackCmd then "unzip -o $src -d $out" else null;
|
||||
|
||||
installPhase =
|
||||
let
|
||||
|
@ -117,13 +179,13 @@ let
|
|||
(architecture: variants: {
|
||||
base = map
|
||||
(args: mkArtifactDerivation ({
|
||||
platform = "${os}-${architecture}";
|
||||
platform = "${os}${lib.optionalString (architecture != "") "-${architecture}"}";
|
||||
} // args))
|
||||
variants.base;
|
||||
variants = builtins.mapAttrs
|
||||
(variant: variantArtifacts: map
|
||||
(args: mkArtifactDerivation ({
|
||||
platform = "${os}-${architecture}";
|
||||
platform = "${os}${lib.optionalString (architecture != "") "-${architecture}"}";
|
||||
inherit variant;
|
||||
} // args))
|
||||
variantArtifacts)
|
||||
|
|
|
@ -6,10 +6,12 @@
|
|||
android-arm-profile = {
|
||||
"artifacts.zip" = "sha256-MErLoGJWXg4yJ6b6c5bqP8Nat6O7eYSfM71mMNAAQf4=";
|
||||
"linux-x64.zip" = "sha256-0TZQ05HR7NRqHzeoHZ/sOrjKiSvCpMUH85YXXzV4URg=";
|
||||
"darwin-x64.zip" = "sha256-gOmxGurYyuuGxPnzK+2O1s7d7x514R9MfincibxVTCI=";
|
||||
};
|
||||
android-arm-release = {
|
||||
"artifacts.zip" = "sha256-hU4S4FOqUGokByZ47nzOqQ4A9QFshruqrpJvJUBHUho=";
|
||||
"linux-x64.zip" = "sha256-AqNlqjOht+c2sdW5ReoF66ZJWJl1W4vGKbQ3YyderRY=";
|
||||
"darwin-x64.zip" = "sha256-UiJNbIvjYvIX2oFNCz+TurUdhHS8vcl9X6WEkEs5hvU=";
|
||||
};
|
||||
android-arm64 = {
|
||||
"artifacts.zip" = "sha256-ApNg3Uu9gyGNsx7sdpTCz1yADVAI5ZuNHgvgiuH9IpQ=";
|
||||
|
@ -17,10 +19,12 @@
|
|||
android-arm64-profile = {
|
||||
"artifacts.zip" = "sha256-D/8+WKPIkOaV3PwkCHiJROFlokm4lWWmtPQb93Yqwr0=";
|
||||
"linux-x64.zip" = "sha256-S0RHLov6/C22VvGdvZV87Ybaxun8YBrw1gTgNklRcM0=";
|
||||
"darwin-x64.zip" = "sha256-AWivGn0TCVEW+N8g9bpEP1JuKWhrccb+ANQgyLjBjfw=";
|
||||
};
|
||||
android-arm64-release = {
|
||||
"artifacts.zip" = "sha256-OoYqHtwmT+VWJ+G+sMXM5+ux3h1Fnyo9Vj2za9cm5eE=";
|
||||
"linux-x64.zip" = "sha256-NuXclg1a+Ofw5AWJ1tajpn2jYEZw6DluWxrFVL8rPfg=";
|
||||
"darwin-x64.zip" = "sha256-/j5sVfyllkhsc9mpdbOqlT7VT1H6nD3Y+mYnWXDh0yI=";
|
||||
};
|
||||
android-x64 = {
|
||||
"artifacts.zip" = "sha256-hrBvnzCj/24h5kat96avlgXi6WhMsos5aPlkgxOYo8Q=";
|
||||
|
@ -28,10 +32,12 @@
|
|||
android-x64-profile = {
|
||||
"artifacts.zip" = "sha256-xzSj/2ah9aQoosaNGkSWFP3bMNJqRSFc0+78XEBHwzM=";
|
||||
"linux-x64.zip" = "sha256-HfBiz1JWlBQ8KEfmf8uDlVzFlDt3+VF2VeY82tsMjHs=";
|
||||
"darwin-x64.zip" = "sha256-J5JJH9GAQaQKahimb09fLC59VchPP15iMHY9bDMfdf8=";
|
||||
};
|
||||
android-x64-release = {
|
||||
"artifacts.zip" = "sha256-TcfMeA+8Uf9yRrYdEIsjip0cKmSUm2Ow1tkoE9803XY=";
|
||||
"linux-x64.zip" = "sha256-D6efb6pj9+xjPnJu3O+ZCmwfatBzasuFZEFRntAiU9U=";
|
||||
"darwin-x64.zip" = "sha256-hDftGgKqW6tzH/+jFOYfzxssbS01XtiWEeycJr3QSoc=";
|
||||
};
|
||||
android-x86 = {
|
||||
"artifacts.zip" = "sha256-nN66nIrcbJHq2S4oIT5e2NCv7mS5Kw+HBv3ReHs+d3Y=";
|
||||
|
@ -39,8 +45,46 @@
|
|||
android-x86-jit-release = {
|
||||
"artifacts.zip" = "sha256-A8F6K78Ykp1rMsUmjD7B9nFFPAubZnqAqgWSzbNCRwk=";
|
||||
};
|
||||
darwin-arm64 = {
|
||||
"artifacts.zip" = "sha256-lfkEToKFBBOee7KgOl1z/ZeMQwEBWkmAYb2Hbfk8dfg=";
|
||||
"font-subset.zip" = "sha256-W7GnLvCobED7uyhpURF4T4SL4yZIQmE2JFQVQIxl0NI=";
|
||||
};
|
||||
darwin-arm64-profile = {
|
||||
"artifacts.zip" = "sha256-DfYS+FEqjtq02jFRBqVR3SVWe4LAoPa5MMKWCbvF7mI=";
|
||||
};
|
||||
darwin-arm64-release = {
|
||||
"artifacts.zip" = "sha256-gG/OcCJE3XPO6T8bltMtPxdlYX5HQ/4qYsdHe0OdDaE=";
|
||||
};
|
||||
darwin-x64 = {
|
||||
"FlutterEmbedder.framework.zip" = "sha256-G84GGK6gtR+CYu9S/GhdNTL4KWqgFBp8QdvWOq+IZlk=";
|
||||
"FlutterMacOS.framework.zip" = "sha256-1/txBoXDIs7Gn5zsZ4jYQXK73+iaZV4sRdYKqEBUTxU=";
|
||||
"artifacts.zip" = "sha256-H7Moy6E1eRrOXYYAIgiJHOmstyy3YaCnu8O3IPr9BK8=";
|
||||
"font-subset.zip" = "sha256-VSkG3zZw/4DDInwxPaMXT2B1LXIb0Ejkb2xf5SVrwW4=";
|
||||
"gen_snapshot.zip" = "sha256-Pknv1fUcXGbWzt6So0DgWnvL4b43k51KMWiX1YXd2As=";
|
||||
};
|
||||
darwin-x64-profile = {
|
||||
"FlutterMacOS.framework.zip" = "sha256-3umN1HNX4UA00EFsBnWS0X04QRKlcCnChDYd9L6x1L4=";
|
||||
"artifacts.zip" = "sha256-8Aj2+nTKKeVLEYN+swVlVqRB/3fVSwrb3i1g1JUDsNY=";
|
||||
"gen_snapshot.zip" = "sha256-bi3RqSdOQODpPmY+eBUQPiNeZ/bECoOUx/pOADpTZiA=";
|
||||
};
|
||||
darwin-x64-release = {
|
||||
"FlutterMacOS.dSYM.zip" = "sha256-LfDQuCcBXEV3Jao/sbfIvjn1d2ZfZrWgzNzFE1zE3Rw=";
|
||||
"FlutterMacOS.framework.zip" = "sha256-2xuPPJifdu/kvvtR0viMvbTOXfv8ndtNAhTmef8863o=";
|
||||
"artifacts.zip" = "sha256-3p41zRjvWYCl/Kk/7/0MjV2FS10XEtyX1hYmxTHT8lU=";
|
||||
"gen_snapshot.zip" = "sha256-ExXwj1QO1XQznZ49rW08tibA5BaURShE6pUYDokZfpE=";
|
||||
};
|
||||
"flutter_patched_sdk.zip" = "sha256-Pvsjttm5OwpJ/pW4UQXvvEiJYCM5CoZZfVXz5jef37k=";
|
||||
"flutter_patched_sdk_product.zip" = "sha256-fhj2uUOrLwrzHrM6RNVpPNize5Qu6mLQDcSzLT2TbRA=";
|
||||
ios = {
|
||||
"artifacts.zip" = "sha256-yqJ4+lNsedRFbe11dBK4KGMX5+Nilj1V0i2E94n7q+0=";
|
||||
};
|
||||
ios-profile = {
|
||||
"artifacts.zip" = "sha256-ZguLM1QoYyg5dXPw3Fl1zSLdbirShV3xZuxl1CfEf50=";
|
||||
};
|
||||
ios-release = {
|
||||
"Flutter.dSYM.zip" = "sha256-Y57wt1y4NIdbRMM1r/d1Dv8bekwO9/9gpLkTEcw7Hfs=";
|
||||
"artifacts.zip" = "sha256-Sm4Pkm1mWu3k5S+aws+kRpth+o3yTBYITg23LhnSViE=";
|
||||
};
|
||||
linux-arm64 = {
|
||||
"artifacts.zip" = "sha256-xyKVaEFb5gVkVrPzDrOql5BmXGO0FnCSeXOoQ10ZFrw=";
|
||||
"font-subset.zip" = "sha256-Ulwb6q2SzB4suMJhAM3zAwWOzlEImlu9Ha+w5u4QqIU=";
|
||||
|
@ -75,10 +119,12 @@
|
|||
android-arm-profile = {
|
||||
"artifacts.zip" = "sha256-MZK1zaSv9yuZaVDR1dReCM7WRDxKql0yxsPa8WFc1yw=";
|
||||
"linux-x64.zip" = "sha256-9OlBv2C6Msj73g624TixbstudCTbdIJ6PzPMsbQENy4=";
|
||||
"darwin-x64.zip" = "sha256-lVJ31F7UMaXQym3touJQ2cN8svKBaWJurDTVZPeMzCo=";
|
||||
};
|
||||
android-arm-release = {
|
||||
"artifacts.zip" = "sha256-tjHckwoxQkkKoyTl6+wBKK40mFDmSDvCPNhBHVA+xxw=";
|
||||
"linux-x64.zip" = "sha256-zE9oYkv4WBcbgEdYfYIcdDXX3tnYfCg+3KA3oA03nYA=";
|
||||
"darwin-x64.zip" = "sha256-mCr29gIn808NF4k8kdC7oLTSU6AXq7I/bJF3BBdJlAo=";
|
||||
};
|
||||
android-arm64 = {
|
||||
"artifacts.zip" = "sha256-8W/JrOGhAzHWpM2Jh9vjdkaB6ODmCItqcmF47GqbNQk=";
|
||||
|
@ -86,10 +132,12 @@
|
|||
android-arm64-profile = {
|
||||
"artifacts.zip" = "sha256-9SGBWp05lxLQTpLuzq8FYSQQOpjo8UL93Pv4YYFD4QE=";
|
||||
"linux-x64.zip" = "sha256-5nH2AAxupRIhn8gNH+1V+vSP+qqfx5MS97EC4s3QHe8=";
|
||||
"darwin-x64.zip" = "sha256-kkutEwKcj1wKJREbxbx8+DW53WVbizg6zKIFFVujgAM=";
|
||||
};
|
||||
android-arm64-release = {
|
||||
"artifacts.zip" = "sha256-7O7RBfEo6enZtVNsnt4HH0bex8Xpz9mqCvb2LNLbg3Q=";
|
||||
"linux-x64.zip" = "sha256-loucmX4+0R11L1nzewiMTeRZoB6wLK0WasW5W3rIvYU=";
|
||||
"darwin-x64.zip" = "sha256-0bpNQDfIzQqwQpzThLfOXEEEpH/uCJCRF331d0/pzfs=";
|
||||
};
|
||||
android-x64 = {
|
||||
"artifacts.zip" = "sha256-j7AezbyzH07yOR0/W1ttfCjMHMdOlXLQjAsu/ExqmqA=";
|
||||
|
@ -97,10 +145,12 @@
|
|||
android-x64-profile = {
|
||||
"artifacts.zip" = "sha256-J8cqdcHoj1hpo6zY5R6S9lvkVXp7wvzQlurM7TEUe+k=";
|
||||
"linux-x64.zip" = "sha256-YuRHctkDjLZVGQr+m5uM+AxYNLkfqycV4UNcAp7JavE=";
|
||||
"darwin-x64.zip" = "sha256-Mw8C279cVbQHTdIsHhIT5HWe52X8XXbkIDpVcEz1tWc=";
|
||||
};
|
||||
android-x64-release = {
|
||||
"artifacts.zip" = "sha256-uhq3fXcxXjF4/YHSkf6V4wToL9jOUKBm3978j/7xI/s=";
|
||||
"linux-x64.zip" = "sha256-iJfatLW7jVcrfNdVx/QOPiyON5ce0tSNGOBx0TILrKE=";
|
||||
"darwin-x64.zip" = "sha256-3P3QZ+jW3Jl6PJvRY9pBHQdhj8UcsHFAjln8q6UlL+A=";
|
||||
};
|
||||
android-x86 = {
|
||||
"artifacts.zip" = "sha256-/xLacCi65hg1gEahty0btrc+NR/jfebSAIt31qwIlZY=";
|
||||
|
@ -108,8 +158,46 @@
|
|||
android-x86-jit-release = {
|
||||
"artifacts.zip" = "sha256-Ntq0i+sFruDhlyp9VBxBnsNqqGoQeXMeIwfi+BNlr0Q=";
|
||||
};
|
||||
darwin-arm64 = {
|
||||
"artifacts.zip" = "sha256-A21Tnn4jC5IzdL3c7n6/q9H6uJ/ofvJ+K9W8PPpAoYM=";
|
||||
"font-subset.zip" = "sha256-NhnUOK1Gn4ekKOf5rDoy4HodzhlS8ylf/MN/6l4Dk18=";
|
||||
};
|
||||
darwin-arm64-profile = {
|
||||
"artifacts.zip" = "sha256-aDWrz3bebC6kZRe2LgunsmFhbxJhmP1bsZv5A/SGF2Y=";
|
||||
};
|
||||
darwin-arm64-release = {
|
||||
"artifacts.zip" = "sha256-F44e39KSX8juojFBV/CSvFES+RQW+gHKDWtfnydqiNo=";
|
||||
};
|
||||
darwin-x64 = {
|
||||
"FlutterEmbedder.framework.zip" = "sha256-+S2unNH8cpfqUiPLTwGUUW00DdNYFDN8KM/O1pMdxQs=";
|
||||
"FlutterMacOS.framework.zip" = "sha256-iCGXzxBhJGR6rWcECRg0W5Qv4I6ePo7UrWIqjQK1bWI=";
|
||||
"artifacts.zip" = "sha256-2Ng0rxVDeMCH3kFHS7rhVd6R8oiJqvfsNDp+rzgtA50=";
|
||||
"font-subset.zip" = "sha256-5IyNNLUT27WUCr61LjnMjmAZEv63ZaF+rl/p2XHFlVU=";
|
||||
"gen_snapshot.zip" = "sha256-zPJaXPdvbQGx79c41XdRrBW/+3aV/INaPtO47+hHdxM=";
|
||||
};
|
||||
darwin-x64-profile = {
|
||||
"FlutterMacOS.framework.zip" = "sha256-PV4sTACDGeLLPz+AchxngWrQypmmUVQ48bQlAfH323w=";
|
||||
"artifacts.zip" = "sha256-LBosuXu9mPh5WT0Mmgu9rX5Nuy+iIGN8Xvi7uVAyFhc=";
|
||||
"gen_snapshot.zip" = "sha256-douXVnavzSGBuld3WhwHagBNK6FEU679puM8/fNGz2I=";
|
||||
};
|
||||
darwin-x64-release = {
|
||||
"FlutterMacOS.dSYM.zip" = "sha256-A8kyc1fmsGemgUVhI46yTC6XNkrXdoPYvwXomHoW6kM=";
|
||||
"FlutterMacOS.framework.zip" = "sha256-dZ/MO9J+zanoGfvPaAinnANte92bQOlh697fd/LvGqA=";
|
||||
"artifacts.zip" = "sha256-T/wxPd1LmstfGHr2Fx6cfhRifaGm6CUlig6cBMcOO5g=";
|
||||
"gen_snapshot.zip" = "sha256-qeZxVp6btr/fUQRf7nOhlnSC03+QTcRaggiVOmPxVuo=";
|
||||
};
|
||||
"flutter_patched_sdk.zip" = "sha256-kRRFCqQGBDimqwMiSn4yRMNRfZHt03YJqsKW47IBIvQ=";
|
||||
"flutter_patched_sdk_product.zip" = "sha256-BowamIQHPZgfcZbWG7OFrB5GeEwdcA7AdUrF2Y+KIds=";
|
||||
ios = {
|
||||
"artifacts.zip" = "sha256-VoofDPEBUW2jBrXg3Z556uC2UdrD9JCpioZNhX1p/P0=";
|
||||
};
|
||||
ios-profile = {
|
||||
"artifacts.zip" = "sha256-5jDIqk7tWuRxXsAzrjBq9xzQrt/eREmmoEF3zc2xQ5M=";
|
||||
};
|
||||
ios-release = {
|
||||
"Flutter.dSYM.zip" = "sha256-TuDld2LcHshl1mXcuIwfZgWLm1My4RpXUwI2B/QbLRk=";
|
||||
"artifacts.zip" = "sha256-bGuUCKVqNNWWGVccVVKIBmCxTqgu4Q2Kj/Znnl9ZR2Q=";
|
||||
};
|
||||
linux-arm64 = {
|
||||
"artifacts.zip" = "sha256-jME3ivE+M+ceAt3aGPSeVwPaW8UhwGQOoL5lmRUqrOU=";
|
||||
"font-subset.zip" = "sha256-MqavBMXOlx5JX94Oe/8GGuuDNh7A2UkjiOrEhCDW5cc=";
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
, src
|
||||
, lib
|
||||
, stdenv
|
||||
, darwin
|
||||
, git
|
||||
, which
|
||||
}:
|
||||
|
@ -18,6 +19,8 @@ let
|
|||
outputs = [ "out" "cache" ];
|
||||
|
||||
buildInputs = [ git ];
|
||||
nativeBuildInputs = [ ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ];
|
||||
|
||||
preConfigure = ''
|
||||
if [ "$(< bin/internal/engine.version)" != '${engineVersion}' ]; then
|
||||
|
@ -69,8 +72,8 @@ let
|
|||
|
||||
# Certain prebuilts should be replaced with Nix-built (or at least Nix-patched) equivalents.
|
||||
rm -r \
|
||||
bin/cache/dart-sdk \
|
||||
bin/cache/artifacts/engine
|
||||
$FLUTTER_ROOT/bin/cache/dart-sdk \
|
||||
$FLUTTER_ROOT/bin/cache/artifacts/engine
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
@ -84,7 +87,8 @@ let
|
|||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [ which ];
|
||||
nativeInstallCheckInputs = [ which ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ];
|
||||
installCheckPhase = ''
|
||||
runHook preInstallCheck
|
||||
|
||||
|
@ -112,7 +116,7 @@ let
|
|||
'';
|
||||
homepage = "https://flutter.dev";
|
||||
license = licenses.bsd3;
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||
maintainers = with maintainers; [ babariviere ericdallo FlafyDev gilice hacker1024 ];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, darwin
|
||||
, callPackage
|
||||
, flutter
|
||||
, supportsLinuxDesktop ? stdenv.hostPlatform.isLinux
|
||||
, supportsAndroid ? stdenv.hostPlatform.isx86_64
|
||||
, supportsAndroid ? (stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isDarwin)
|
||||
, supportsDarwin ? stdenv.hostPlatform.isDarwin
|
||||
, supportsIOS ? stdenv.hostPlatform.isDarwin
|
||||
, includedEngineArtifacts ? {
|
||||
common = [
|
||||
"flutter_patched_sdk"
|
||||
|
@ -12,6 +15,10 @@
|
|||
platform = {
|
||||
android = lib.optionalAttrs supportsAndroid
|
||||
((lib.genAttrs [ "arm" "arm64" "x64" ] (architecture: [ "profile" "release" ])) // { x86 = [ "jit-release" ]; });
|
||||
darwin = lib.optionalAttrs supportsDarwin
|
||||
((lib.genAttrs [ "arm64" "x64" ] (architecture: [ "profile" "release" ])));
|
||||
ios = lib.optionalAttrs supportsIOS
|
||||
((lib.genAttrs [ "" ] (architecture: [ "profile" "release" ])));
|
||||
linux = lib.optionalAttrs supportsLinuxDesktop
|
||||
(lib.genAttrs ((lib.optional stdenv.hostPlatform.isx86_64 "x64") ++ (lib.optional stdenv.hostPlatform.isAarch64 "arm64"))
|
||||
(architecture: [ "debug" "profile" "release" ]));
|
||||
|
@ -158,7 +165,9 @@ let
|
|||
in
|
||||
(callPackage ./sdk-symlink.nix { }) (runCommandLocal "flutter-wrapped"
|
||||
{
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ];
|
||||
|
||||
passthru = flutter.passthru // {
|
||||
inherit (flutter) version;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, makeDesktopItem, copyDesktopItems, icoutils, fdupes, imagemagick, jdk11, fetchzip }:
|
||||
{ lib, stdenv, makeDesktopItem, icoutils, fdupes, imagemagick, jdk11, fetchzip }:
|
||||
# TODO: JDK16 causes STM32CubeMX to crash right now, so we fixed the version to JDK11
|
||||
# This may be fixed in a future version of STM32CubeMX. This issue has been reported to ST:
|
||||
# https://community.st.com/s/question/0D53W00000jnOzPSAU/stm32cubemx-crashes-on-launch-with-openjdk16
|
||||
|
@ -17,22 +17,28 @@ stdenv.mkDerivation rec {
|
|||
stripRoot = false;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ icoutils fdupes imagemagick copyDesktopItems];
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "stm32CubeMX";
|
||||
exec = "stm32cubemx";
|
||||
desktopName = "STM32CubeMX";
|
||||
categories = [ "Development" ];
|
||||
comment = "STM32Cube initialization code generator";
|
||||
icon = "stm32cubemx";
|
||||
})
|
||||
];
|
||||
nativeBuildInputs = [ icoutils fdupes imagemagick ];
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "STM32CubeMX";
|
||||
exec = "stm32cubemx";
|
||||
desktopName = "STM32CubeMX";
|
||||
categories = [ "Development" ];
|
||||
icon = "stm32cubemx";
|
||||
comment = meta.description;
|
||||
terminal = false;
|
||||
startupNotify = false;
|
||||
mimeTypes = [
|
||||
"x-scheme-handler/sgnl"
|
||||
"x-scheme-handler/signalcaptcha"
|
||||
];
|
||||
};
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p $out/{bin,opt/STM32CubeMX}
|
||||
mkdir -p $out/{bin,opt/STM32CubeMX,share/applications}
|
||||
|
||||
cp -r $src/MX/. $out/opt/STM32CubeMX/
|
||||
chmod +rx $out/opt/STM32CubeMX/STM32CubeMX
|
||||
|
||||
cat << EOF > $out/bin/${pname}
|
||||
#!${stdenv.shell}
|
||||
${jdk11}/bin/java -jar $out/opt/STM32CubeMX/STM32CubeMX
|
||||
|
@ -52,6 +58,8 @@ stdenv.mkDerivation rec {
|
|||
$out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png
|
||||
fi
|
||||
done;
|
||||
|
||||
cp ${desktopItem}/share/applications/*.desktop $out/share/applications
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -1 +1 @@
|
|||
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.107/ -A '*.tar.xz' )
|
||||
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.108/ -A '*.tar.xz' )
|
||||
|
|
|
@ -13,8 +13,8 @@ mkDerivation {
|
|||
buildInputs = [
|
||||
kactivities karchive kconfig kconfigwidgets kcoreaddons kdbusaddons
|
||||
kdeclarative kglobalaccel kguiaddons ki18n kiconthemes kio knotifications
|
||||
kwayland kwindowsystem kxmlgui qtdeclarative qtscript qtx11extras kirigami2
|
||||
kwayland kwindowsystem kxmlgui qtdeclarative qtscript qtx11extras
|
||||
qtquickcontrols2
|
||||
];
|
||||
propagatedBuildInputs = [ kpackage kservice qtbase ];
|
||||
propagatedBuildInputs = [ kpackage kservice qtbase kirigami2 ];
|
||||
}
|
||||
|
|
|
@ -4,667 +4,667 @@
|
|||
|
||||
{
|
||||
attica = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/attica-5.107.0.tar.xz";
|
||||
sha256 = "1y0kxrr0janlba0pris35kaf31y8xqjksj0f6vpmww63jz53rjzx";
|
||||
name = "attica-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/attica-5.108.0.tar.xz";
|
||||
sha256 = "15didd7llqamp9wbvrynnf9cap2dqmwr51mz0pcjdk0iqs6ym4qq";
|
||||
name = "attica-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
baloo = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/baloo-5.107.0.tar.xz";
|
||||
sha256 = "0i3sfzx9hsypzpw28n913kcrvg4vy1sb8civx86jdggamxslwhz2";
|
||||
name = "baloo-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/baloo-5.108.0.tar.xz";
|
||||
sha256 = "1n65nhr45vl0banbdjxhjf6wk5ypdx06qygqzqjbd9xbv7djj883";
|
||||
name = "baloo-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
bluez-qt = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/bluez-qt-5.107.0.tar.xz";
|
||||
sha256 = "0wffp7vsl9z6kdfgjga5kf7dj48nm5r5nd7whiw4s0g9h63b0aig";
|
||||
name = "bluez-qt-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/bluez-qt-5.108.0.tar.xz";
|
||||
sha256 = "1yf2rbqp9997318ybnd8myvj26pzdkx55j6w86ibvn7hwgb77hhs";
|
||||
name = "bluez-qt-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
breeze-icons = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/breeze-icons-5.107.0.tar.xz";
|
||||
sha256 = "0fhhpy34s05gx8nk7izc9ahdacbcl6yrfcr9q7k6825sngpmzck7";
|
||||
name = "breeze-icons-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/breeze-icons-5.108.0.tar.xz";
|
||||
sha256 = "175g6352lv8gq6sn4pkl91b51njdliryb82x2wdjbvzlc3zhfrcy";
|
||||
name = "breeze-icons-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
extra-cmake-modules = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/extra-cmake-modules-5.107.0.tar.xz";
|
||||
sha256 = "1v9klrfi7m1228zysr1m6r5qrn8h6nkzgai6x40mjshydpasls9r";
|
||||
name = "extra-cmake-modules-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/extra-cmake-modules-5.108.0.tar.xz";
|
||||
sha256 = "0yj4xpzzz5q8140mqkl2s5zabfbks76a3rqfq3cc4d5x3b9an57z";
|
||||
name = "extra-cmake-modules-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
frameworkintegration = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/frameworkintegration-5.107.0.tar.xz";
|
||||
sha256 = "0j5aa4j4v5dix8r80n49ihkp6f0mmgx420h4adq9sb80hsm1c67q";
|
||||
name = "frameworkintegration-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/frameworkintegration-5.108.0.tar.xz";
|
||||
sha256 = "09zba76xihqs2dpwm4gh7p36nj876ssa2gah55vl362wsj7xgf21";
|
||||
name = "frameworkintegration-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kactivities = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kactivities-5.107.0.tar.xz";
|
||||
sha256 = "0acv2grpq083289am1is012mjp8snsg7i57byw9qnniflwwrbdqr";
|
||||
name = "kactivities-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kactivities-5.108.0.tar.xz";
|
||||
sha256 = "0lqhfml91wh9376xr31ky8fl49yamfzz336bdjzj3i3ygqzyc7lh";
|
||||
name = "kactivities-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kactivities-stats = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kactivities-stats-5.107.0.tar.xz";
|
||||
sha256 = "1hp1ckmrjhmzx9ll2v974bf7hsccbpf76vlvxc47jl7b5x5l5337";
|
||||
name = "kactivities-stats-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kactivities-stats-5.108.0.tar.xz";
|
||||
sha256 = "03vpangw2zl2577vhcn0w1pp2hv3jgna79b18wv7i13s78v8k6ny";
|
||||
name = "kactivities-stats-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kapidox = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kapidox-5.107.0.tar.xz";
|
||||
sha256 = "1gxzxpv6lhz0hdkzq4vlv5dv715bfpf3wvdd9a0hm1v75lgl8aap";
|
||||
name = "kapidox-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kapidox-5.108.0.tar.xz";
|
||||
sha256 = "1xpapgzja66lwxagrynns2ycx4cdllld5b3xrxg67si3bjz9p70a";
|
||||
name = "kapidox-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
karchive = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/karchive-5.107.0.tar.xz";
|
||||
sha256 = "0zsay002lsq5a8a9dqg97zzcv75rlbkklyv21qv8za7qk95vk378";
|
||||
name = "karchive-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/karchive-5.108.0.tar.xz";
|
||||
sha256 = "1rbmh0sfrgv7nkmmnf8zyd5x66g9bh6kj9ry2yzivqn73ralk44y";
|
||||
name = "karchive-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kauth = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kauth-5.107.0.tar.xz";
|
||||
sha256 = "1zwgvf1qhi2ls4lal735xgfgibk0q7h9x84v2s7zymww7fdpzg86";
|
||||
name = "kauth-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kauth-5.108.0.tar.xz";
|
||||
sha256 = "0xn0v1rzjsv1a856zcw9s9qkbfaq184663akc5rrapvvfcrm2vjz";
|
||||
name = "kauth-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kbookmarks = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kbookmarks-5.107.0.tar.xz";
|
||||
sha256 = "16gd3ijfpkvs5rzvk6bx8ydbz9dx0chv3m3zxxq4khcqbk8gmlah";
|
||||
name = "kbookmarks-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kbookmarks-5.108.0.tar.xz";
|
||||
sha256 = "1547i2x7mrryg4w6ij47f37savmp1jmq8wp2nhiij65cdnla3qbb";
|
||||
name = "kbookmarks-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kcalendarcore = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kcalendarcore-5.107.0.tar.xz";
|
||||
sha256 = "0iswnbl73in465kgwbn9n3rllw82nasc31897nqc9ifcs6x45msl";
|
||||
name = "kcalendarcore-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kcalendarcore-5.108.0.tar.xz";
|
||||
sha256 = "1wxlixz7624p7693lwxgdzyi30n9zgs0mgvwldp0q0llzpxqp5yv";
|
||||
name = "kcalendarcore-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kcmutils = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kcmutils-5.107.0.tar.xz";
|
||||
sha256 = "1mahi2zxi3f8m45iynlgwxjz4g5aq0qg68sy7c85h6pvvg6dd626";
|
||||
name = "kcmutils-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kcmutils-5.108.0.tar.xz";
|
||||
sha256 = "1zhs84wrd8fkgzxwf793c6yha5nsnid4id8vs4iy7gcyahyajchr";
|
||||
name = "kcmutils-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kcodecs = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kcodecs-5.107.0.tar.xz";
|
||||
sha256 = "088jl5spmwm4ihmpgk17bsmkcjfn2323cypa12zrpcm4q1iqbc07";
|
||||
name = "kcodecs-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kcodecs-5.108.0.tar.xz";
|
||||
sha256 = "12vav9ncxcf0vpmfp7wps91ax7azrwaxhqdq8z52vcyl0rvgy341";
|
||||
name = "kcodecs-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kcompletion = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kcompletion-5.107.0.tar.xz";
|
||||
sha256 = "1xa9ckz9vhxb5m81m7hky68b96vfaq071vfhqs7zjaq9s9rn9ash";
|
||||
name = "kcompletion-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kcompletion-5.108.0.tar.xz";
|
||||
sha256 = "0fgz30fb6wp2jb7bii5wy6akdzjiqy73w5mnmv0hi15mj2jkpgdq";
|
||||
name = "kcompletion-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kconfig = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kconfig-5.107.0.tar.xz";
|
||||
sha256 = "04svxr0pckqwx1kkvzsbgcqk5m921x6hps7pk7gn4pi5lnyd95wn";
|
||||
name = "kconfig-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kconfig-5.108.0.tar.xz";
|
||||
sha256 = "0gq30f5yx3razkn12zq7224sivl76jikf7c4xdfc9fw1k54sxbjd";
|
||||
name = "kconfig-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kconfigwidgets = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kconfigwidgets-5.107.0.tar.xz";
|
||||
sha256 = "0s608laxgdkzn33p0bb22yaa2w3brapbw4dcpnylc6rimdw8avgi";
|
||||
name = "kconfigwidgets-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kconfigwidgets-5.108.0.tar.xz";
|
||||
sha256 = "1raz1bxra0dvcwwzvhfmz1y0hvfrffpdymd116xyi5lnavyzdp46";
|
||||
name = "kconfigwidgets-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kcontacts = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kcontacts-5.107.0.tar.xz";
|
||||
sha256 = "17dhbzgizqv5g3qf4wsaf8jgragjfmcrly4c761x5l3c7vwwrjiv";
|
||||
name = "kcontacts-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kcontacts-5.108.0.tar.xz";
|
||||
sha256 = "15x6f05ngs3nmxpdi11bi4k4zpjnvx5cy3yxbdklls3f2wpq6jd4";
|
||||
name = "kcontacts-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kcoreaddons = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kcoreaddons-5.107.0.tar.xz";
|
||||
sha256 = "115g3qmfpirvvqj0a2jyi9lgpahw19wc9351mfc2gasj914fxfk4";
|
||||
name = "kcoreaddons-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kcoreaddons-5.108.0.tar.xz";
|
||||
sha256 = "0l8f59ijmcjvrpgysvrw2nmh3jqlzhlqxmgrvybipxpywams3cy8";
|
||||
name = "kcoreaddons-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kcrash = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kcrash-5.107.0.tar.xz";
|
||||
sha256 = "15gngmgridnxzz04f4mrw9c53l95qi9z3sj9wprlx9d0kgacs5sl";
|
||||
name = "kcrash-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kcrash-5.108.0.tar.xz";
|
||||
sha256 = "1990yfssxcmbpbq9pz2nv07fpnjih4q9ql2bz1nfnanrm858pi9y";
|
||||
name = "kcrash-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kdav = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kdav-5.107.0.tar.xz";
|
||||
sha256 = "0vwv1b3vlz1gizwrj1x4hkdzbkc1vad2mih0qlbhwdlxnx6sb7ap";
|
||||
name = "kdav-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kdav-5.108.0.tar.xz";
|
||||
sha256 = "0knpyzdfa0m1pyakq32pw2hwbaq2dkqj87p3n6p86wlf2rn66vir";
|
||||
name = "kdav-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kdbusaddons = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kdbusaddons-5.107.0.tar.xz";
|
||||
sha256 = "1f09xf4cm8qk4iklnr60yr2nm054ixnbh85diajbcm5j3v1y75jf";
|
||||
name = "kdbusaddons-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kdbusaddons-5.108.0.tar.xz";
|
||||
sha256 = "1siv9ndk0zr9yq6pwjs248zzsh4kgllfj1294jym80rxcb0z6g9r";
|
||||
name = "kdbusaddons-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kdeclarative = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kdeclarative-5.107.0.tar.xz";
|
||||
sha256 = "0m88i376jc4m80vlzz8wprg1cwvxvr4438n2i89jpz3nh63fsl6z";
|
||||
name = "kdeclarative-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kdeclarative-5.108.0.tar.xz";
|
||||
sha256 = "1kdg18a2xpgl6xkrk68nnbj57nwn8rv5yd5q5bfbfc8chibk9y4z";
|
||||
name = "kdeclarative-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kded = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kded-5.107.0.tar.xz";
|
||||
sha256 = "0fxpx3k9j8xnrwvqszj9m7s8vpdxjkz9jschc0m6pfqiqk7hhbyg";
|
||||
name = "kded-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kded-5.108.0.tar.xz";
|
||||
sha256 = "08aa3vjzr0mj4jahzqd2z7k8whavyyvcyhk67swqlpil9rmxm0s1";
|
||||
name = "kded-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kdelibs4support = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/portingAids/kdelibs4support-5.107.0.tar.xz";
|
||||
sha256 = "13qccs1f26ap4q1naiyknvp0p746zw4439yj4m3p6c3jd25md57g";
|
||||
name = "kdelibs4support-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/portingAids/kdelibs4support-5.108.0.tar.xz";
|
||||
sha256 = "1pqpcn4i6zcli8a2yf7fda6rwr0vs55jd9bjl0fgallyd6wl8qkf";
|
||||
name = "kdelibs4support-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kdesignerplugin = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/portingAids/kdesignerplugin-5.107.0.tar.xz";
|
||||
sha256 = "0lxyfyyfs7ykdz201zlycphnpr9lf3qr61a1914a5rkxqczc93b8";
|
||||
name = "kdesignerplugin-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/portingAids/kdesignerplugin-5.108.0.tar.xz";
|
||||
sha256 = "0ibd1sgyiawl7b25ag1qs80s0vai16ab1zmdrhx85gd1583vkyab";
|
||||
name = "kdesignerplugin-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kdesu = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kdesu-5.107.0.tar.xz";
|
||||
sha256 = "12hma81sqirfb848vac6igs68vb982rk5pyj3ypnc7jn13jif43x";
|
||||
name = "kdesu-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kdesu-5.108.0.tar.xz";
|
||||
sha256 = "1rhygp1r6099zrmnfvl2ldpm6rsilcy2x3bcb580bvqd536ir2yh";
|
||||
name = "kdesu-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kdewebkit = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/portingAids/kdewebkit-5.107.0.tar.xz";
|
||||
sha256 = "0dxnshx629az0dgpiy126by079x3gpxbhhg01z65c06dnlcjhl35";
|
||||
name = "kdewebkit-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/portingAids/kdewebkit-5.108.0.tar.xz";
|
||||
sha256 = "11d8swj6n24hdi7dr2nz8fi20ra8jfl9rkzlcsyzyblwaqc0fpzi";
|
||||
name = "kdewebkit-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kdnssd = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kdnssd-5.107.0.tar.xz";
|
||||
sha256 = "1jnh3dx2yxf9pz09majdzms7n398zfard1ggjp19jqnpa51vap0m";
|
||||
name = "kdnssd-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kdnssd-5.108.0.tar.xz";
|
||||
sha256 = "0pxlkwjjl2gzfjf9pd7j9m1nhc6jas0wd8994jgljgxc5dc94cn8";
|
||||
name = "kdnssd-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kdoctools = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kdoctools-5.107.0.tar.xz";
|
||||
sha256 = "0l0mf5hahn2s5yj7khqrxc8w1fxgwibbx5zz35s0xqaz7x4s0mlx";
|
||||
name = "kdoctools-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kdoctools-5.108.0.tar.xz";
|
||||
sha256 = "0zi3va3jn4jps9h9h94ivxkzxw7v5vqwxgikb321hnnjgxy4nzwr";
|
||||
name = "kdoctools-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kemoticons = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kemoticons-5.107.0.tar.xz";
|
||||
sha256 = "0k1yjm8ybbhm55xh46hl2h6c4cqh4hq8sryc6pjjg1fh6a179y2n";
|
||||
name = "kemoticons-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kemoticons-5.108.0.tar.xz";
|
||||
sha256 = "0p7q5s9mv7j0sy4mm513warzhqm44wiz4vxcp9kxbqcsw0awfad6";
|
||||
name = "kemoticons-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kfilemetadata = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kfilemetadata-5.107.0.tar.xz";
|
||||
sha256 = "1bcapkmz0zlbknl57byiyalrpk42gvgdycwq6jy9ij5p8m6z7d7d";
|
||||
name = "kfilemetadata-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kfilemetadata-5.108.0.tar.xz";
|
||||
sha256 = "0hhq8p6wpfbi33b604ls7q9309n6pm4aa4cgjwxrspn2q8yn6p7w";
|
||||
name = "kfilemetadata-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kglobalaccel = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kglobalaccel-5.107.0.tar.xz";
|
||||
sha256 = "1n4y6hwr53paabi4vlzsl8z82blrmvh3g3xhswdcw4dq6m1q4x58";
|
||||
name = "kglobalaccel-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kglobalaccel-5.108.0.tar.xz";
|
||||
sha256 = "0sf6v86pfhxva7n465p9pfidyzfjviam5kk8d6lrc23zjb559f3w";
|
||||
name = "kglobalaccel-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kguiaddons = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kguiaddons-5.107.0.tar.xz";
|
||||
sha256 = "1hc4k7vynxrvbrb66vw3la2ixhm96dz3basbwl6j6g6xlxn6wbxd";
|
||||
name = "kguiaddons-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kguiaddons-5.108.0.tar.xz";
|
||||
sha256 = "01yfv2ybqi894g7d1fy584x0nbmqlm7vi0b998zc52233blh8j51";
|
||||
name = "kguiaddons-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kholidays = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kholidays-5.107.0.tar.xz";
|
||||
sha256 = "0b23lb2dqhnkizr3pa9bj2z6rq1613q3cyfh770pksfps7lp0mna";
|
||||
name = "kholidays-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kholidays-5.108.0.tar.xz";
|
||||
sha256 = "03g484nm37vv8mnj4q6y6pdrhhiglni3s63gpxhc54zzhzxshpy5";
|
||||
name = "kholidays-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
khtml = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/portingAids/khtml-5.107.0.tar.xz";
|
||||
sha256 = "1zcms5h78nc0c69ah60lmjxq6ymb3213ya41hfx7q998dzd9fi9v";
|
||||
name = "khtml-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/portingAids/khtml-5.108.0.tar.xz";
|
||||
sha256 = "0kasxgkxfibdj81a6iiv4ciqy5fd180lsk9sa1byd8y0bydd8kjv";
|
||||
name = "khtml-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
ki18n = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/ki18n-5.107.0.tar.xz";
|
||||
sha256 = "1q4bbv14davg8pcxr1ngkbzk2q37m6lf2wzxiim7ydkm3giqzp8p";
|
||||
name = "ki18n-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/ki18n-5.108.0.tar.xz";
|
||||
sha256 = "0kpza0n900j8lf27d60ikl963616vcqnns8va6cg8y2lf2pmxvsr";
|
||||
name = "ki18n-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kiconthemes = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kiconthemes-5.107.0.tar.xz";
|
||||
sha256 = "0by44ra385kwj006l9jkqlpyqci79cspg3y41h3f0m4xpi4dn5sx";
|
||||
name = "kiconthemes-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kiconthemes-5.108.0.tar.xz";
|
||||
sha256 = "0r8lz4jkb1g46ll79pdv8bmig1ij8fp7k6cpcy9nhkkhq0ra7svk";
|
||||
name = "kiconthemes-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kidletime = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kidletime-5.107.0.tar.xz";
|
||||
sha256 = "0b3plz0hkxw0i8kklv79mfbk79x6p1swz6ffs4dz04hj3cl9lh1v";
|
||||
name = "kidletime-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kidletime-5.108.0.tar.xz";
|
||||
sha256 = "0cqb33xyqxh507332c30ja5anq99zj250b4sl6r6bn1z6j7yfzx7";
|
||||
name = "kidletime-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kimageformats = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kimageformats-5.107.0.tar.xz";
|
||||
sha256 = "1hfisk63anns3zsakgc4k4fhbx9ic2a4k75jxsmd337rdg9ql9cp";
|
||||
name = "kimageformats-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kimageformats-5.108.0.tar.xz";
|
||||
sha256 = "07myvknlvp28kn20l30x6q22fkva72qrfziryinxgsqlhgc3j87c";
|
||||
name = "kimageformats-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kinit = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kinit-5.107.0.tar.xz";
|
||||
sha256 = "1p28m3cvifgdw1rjzqy5xbvyzq383yhr50bkq6xn6b12ar239znf";
|
||||
name = "kinit-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kinit-5.108.0.tar.xz";
|
||||
sha256 = "1i03gn0s01jg2ridlymxf34ib88rkf30yz27h38g9fzaijjr46fi";
|
||||
name = "kinit-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kio = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kio-5.107.0.tar.xz";
|
||||
sha256 = "1bj8mi112xh5zi56i84d96jdc2ji2h72rhl126kfj88chdb1hsj5";
|
||||
name = "kio-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kio-5.108.0.tar.xz";
|
||||
sha256 = "1v5bpj90s5pwdvdkzcfpfgsgym7pxb3r22m4r7w9piq6n9s4c122";
|
||||
name = "kio-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kirigami2 = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kirigami2-5.107.0.tar.xz";
|
||||
sha256 = "1jdr1i74f90wkjgfyd3ickxwcjmkn1y78v3ggybkrqfx7lvd3hzm";
|
||||
name = "kirigami2-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kirigami2-5.108.0.tar.xz";
|
||||
sha256 = "0kbzqkvq169w9kl4z7l7zd21mgxqdsyv8ia2j6cwd3qqn4xd3nbp";
|
||||
name = "kirigami2-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kitemmodels = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kitemmodels-5.107.0.tar.xz";
|
||||
sha256 = "1bqiia07c4kbw89j0rw9dx7idflml7wr7sdkg9rmyq6hlpkamxdp";
|
||||
name = "kitemmodels-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kitemmodels-5.108.0.tar.xz";
|
||||
sha256 = "05dd1d1dxkbjrr6x73ndsrabzaa02m3cn1h4dmsgpydy1rkzbj9v";
|
||||
name = "kitemmodels-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kitemviews = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kitemviews-5.107.0.tar.xz";
|
||||
sha256 = "05qbl1r0js6rxdgz9ym6kpv3rlq4prxy121f8z0c224vivp0qinm";
|
||||
name = "kitemviews-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kitemviews-5.108.0.tar.xz";
|
||||
sha256 = "13dcy804lv6ws1gdfjczkbnlyig11ir4p2mi26ashbgrdfpywxv1";
|
||||
name = "kitemviews-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kjobwidgets = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kjobwidgets-5.107.0.tar.xz";
|
||||
sha256 = "14kbj31ghmx2wsl79dmgvkfzxlbrpds1z12mj6z91665vrmspq96";
|
||||
name = "kjobwidgets-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kjobwidgets-5.108.0.tar.xz";
|
||||
sha256 = "0vhv9gx8qq73hvalcyx4g8c1ji9qxb2rn5wp4mdl7n9pypd0gscq";
|
||||
name = "kjobwidgets-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kjs = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/portingAids/kjs-5.107.0.tar.xz";
|
||||
sha256 = "0d985bsvrqbfj068l3si3z0a6b9m6xz4zm6k3p7qh4382blb8dka";
|
||||
name = "kjs-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/portingAids/kjs-5.108.0.tar.xz";
|
||||
sha256 = "0xwih1jrdkgymr29cqr2jbj7byf8kqnbapr7wc8s0jxm5cwj2fgh";
|
||||
name = "kjs-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kjsembed = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/portingAids/kjsembed-5.107.0.tar.xz";
|
||||
sha256 = "1aridyby0aiakqsn58575hajhh8il5w48n41dh4ng6ax86d4jvkj";
|
||||
name = "kjsembed-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/portingAids/kjsembed-5.108.0.tar.xz";
|
||||
sha256 = "1nfi9mfph3yjglafm8clw8d1z4f4h9b71j5z4l50qsds65yv9b9a";
|
||||
name = "kjsembed-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kmediaplayer = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/portingAids/kmediaplayer-5.107.0.tar.xz";
|
||||
sha256 = "1m0iik73qia33yvpkirn3f8vpmwxyz69gaddxm2ac0n0xjznxrmj";
|
||||
name = "kmediaplayer-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/portingAids/kmediaplayer-5.108.0.tar.xz";
|
||||
sha256 = "1vkx11736wq0idxrzmfg6s2lcrilgl7yh7a97la6c3qqj2aggi08";
|
||||
name = "kmediaplayer-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
knewstuff = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/knewstuff-5.107.0.tar.xz";
|
||||
sha256 = "16zjjamp2myb45v4wm6k00h9ghp7rgszjdb3ph1sh9fm86x3bnbq";
|
||||
name = "knewstuff-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/knewstuff-5.108.0.tar.xz";
|
||||
sha256 = "1hlzkacybf35lnl92vk8xkapkq5pygy8fqngskvj9f4692k6562s";
|
||||
name = "knewstuff-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
knotifications = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/knotifications-5.107.0.tar.xz";
|
||||
sha256 = "0xigm6cgsdfa74nn4p3f66xfi4rkb1ynmisbf3bh6kf58rq4f7gf";
|
||||
name = "knotifications-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/knotifications-5.108.0.tar.xz";
|
||||
sha256 = "05qdmjjxj362zhwyk0vv83wfzsgjd4nxnvk2avhiscr2k46swn96";
|
||||
name = "knotifications-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
knotifyconfig = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/knotifyconfig-5.107.0.tar.xz";
|
||||
sha256 = "0ydjxyalmx4364m2idmqahzyb351mq4bi1jf7ibs934lra7mdwg8";
|
||||
name = "knotifyconfig-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/knotifyconfig-5.108.0.tar.xz";
|
||||
sha256 = "1dby6ycqicsij9ngyk6ab7v14ybnsmxd51fkcy25k4c326w6yyca";
|
||||
name = "knotifyconfig-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kpackage = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kpackage-5.107.0.tar.xz";
|
||||
sha256 = "1ch4qj1sjwsf56ywqgns9ka07lc4dcw0j5hr75pibdvaap0n1bph";
|
||||
name = "kpackage-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kpackage-5.108.0.tar.xz";
|
||||
sha256 = "18185xi48an6fi0dinzfcc50lzq8cb5dx16sikmavcnhmfvlvw1g";
|
||||
name = "kpackage-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kparts = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kparts-5.107.0.tar.xz";
|
||||
sha256 = "1yx9iyd9r740hph24mc96gfql0vdd5s4mrixyk0lr3lj8j35bf00";
|
||||
name = "kparts-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kparts-5.108.0.tar.xz";
|
||||
sha256 = "0fckq2dpdqkqyaig61fnjanw2y9j28fckx1zrywnvyzd8q6hs4db";
|
||||
name = "kparts-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kpeople = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kpeople-5.107.0.tar.xz";
|
||||
sha256 = "18hr9ci9qbgrwds44knv1xcqxi71b04bw4xh3v1h2sw44srnwplj";
|
||||
name = "kpeople-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kpeople-5.108.0.tar.xz";
|
||||
sha256 = "0k2jnyp05rnjb4j31w4xi95qwparkqvp1m9664gvygwp9xxlnf4k";
|
||||
name = "kpeople-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kplotting = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kplotting-5.107.0.tar.xz";
|
||||
sha256 = "0gnk1rsrznmyq11f3r9i5pgfb9szscyhif1x0pns1qj24ax3sv2c";
|
||||
name = "kplotting-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kplotting-5.108.0.tar.xz";
|
||||
sha256 = "1rnkwxxms2raqswgwm0i4xgjqpzkz7wl2kbdra2gqscfz7a23s4p";
|
||||
name = "kplotting-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kpty = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kpty-5.107.0.tar.xz";
|
||||
sha256 = "1y0k92p8j3hpi6si3lqlvh121v8wqybqxhqkf3ygqhld23scazlh";
|
||||
name = "kpty-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kpty-5.108.0.tar.xz";
|
||||
sha256 = "11k1jv2wazlxbz5y7l94zsykcq544k1zbb49ximbdh45r3p5hdgw";
|
||||
name = "kpty-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kquickcharts = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kquickcharts-5.107.0.tar.xz";
|
||||
sha256 = "1xxrnkxxc8rjvy15zdp3fgiwrfzf67ib7jaxlax8f1s74mr76b4l";
|
||||
name = "kquickcharts-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kquickcharts-5.108.0.tar.xz";
|
||||
sha256 = "1wdmgala480qjipzpq9v85vy1i3n0qgria0rgn26ibhm2wmvmrpw";
|
||||
name = "kquickcharts-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kross = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/portingAids/kross-5.107.0.tar.xz";
|
||||
sha256 = "13myij7bx0id6vrwnrimfgjq3dwjw5rnpdpg09iawbzjx9yaq3iz";
|
||||
name = "kross-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/portingAids/kross-5.108.0.tar.xz";
|
||||
sha256 = "0j459d9610aayvzb1d9m045c71dmkgqx5bsx3lv8x1wffk8064sd";
|
||||
name = "kross-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
krunner = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/krunner-5.107.0.tar.xz";
|
||||
sha256 = "06r27jmhqjifpv7fkyhin8qdygf3qzgmz2n34sa366qk5h1fij3m";
|
||||
name = "krunner-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/krunner-5.108.0.tar.xz";
|
||||
sha256 = "0yam10c31jzwsl4qzrrcr4caxk79jqg1fyrsavjzg14ahsknb5ih";
|
||||
name = "krunner-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kservice = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kservice-5.107.0.tar.xz";
|
||||
sha256 = "0bgr2jv11cjfb5fkq5ki39xin3kjqk0jbrjg419pay8xj90nsgq6";
|
||||
name = "kservice-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kservice-5.108.0.tar.xz";
|
||||
sha256 = "10dfnq3x9b30kbkpq1ifg6ywj8dmdqvd1szgrwf71077yzgsh9w2";
|
||||
name = "kservice-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
ktexteditor = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/ktexteditor-5.107.0.tar.xz";
|
||||
sha256 = "165wrv5bdmixczcf1jr0j06fh31n5rchq24d4856p18vl56wg4cg";
|
||||
name = "ktexteditor-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/ktexteditor-5.108.0.tar.xz";
|
||||
sha256 = "0raz9h9y7zfynvacg4grwj0sd4v6w2kwpjkirvjr14zmfjq92mif";
|
||||
name = "ktexteditor-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
ktextwidgets = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/ktextwidgets-5.107.0.tar.xz";
|
||||
sha256 = "1yx0dlvz5ssn5wqpx606vrzdfq14akpvmlayg41sx6hs4xzv0rjy";
|
||||
name = "ktextwidgets-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/ktextwidgets-5.108.0.tar.xz";
|
||||
sha256 = "1qz1ayrrqxarhx4h24ym2hm8gkjskgdi268jv16yvd33b122fv2c";
|
||||
name = "ktextwidgets-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kunitconversion = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kunitconversion-5.107.0.tar.xz";
|
||||
sha256 = "1y96gqkh7qvs37kb4f0gcqx2f2ilgcryxvcyfbngp3l4fpnvxxaw";
|
||||
name = "kunitconversion-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kunitconversion-5.108.0.tar.xz";
|
||||
sha256 = "1kwz5wx0s522mwb5gxjz6cxqdkzflcckmra9qikpjrzsngamrq3j";
|
||||
name = "kunitconversion-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kwallet = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kwallet-5.107.0.tar.xz";
|
||||
sha256 = "0xqx3gvqbgjvbp362wr0d42p4wcvwk0f5gqib8qa6zik3w0nly9f";
|
||||
name = "kwallet-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kwallet-5.108.0.tar.xz";
|
||||
sha256 = "1zx80h8mj3ijj1mm5m3396vwkfhpdm8qpb63rhg8szm9hwqhd5sq";
|
||||
name = "kwallet-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kwayland = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kwayland-5.107.0.tar.xz";
|
||||
sha256 = "0j8hjv9v2yxn922xd1lxlx017c658w2zs3ah0f343sl8cwbj2p45";
|
||||
name = "kwayland-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kwayland-5.108.0.tar.xz";
|
||||
sha256 = "11xk1rzizmqb0haqkg24kdd54a3fdqrxr2kh056irbnksp9p8k03";
|
||||
name = "kwayland-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kwidgetsaddons = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kwidgetsaddons-5.107.0.tar.xz";
|
||||
sha256 = "1jc7x0n1052pykmps3mpb06jj2pyyvcv0f5v2qymbxf36fcrp88g";
|
||||
name = "kwidgetsaddons-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kwidgetsaddons-5.108.0.tar.xz";
|
||||
sha256 = "1a7svxd0c5dzx5pqjddc38cybf21wrg1hfz91gkrlv9f7ai0k878";
|
||||
name = "kwidgetsaddons-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kwindowsystem = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kwindowsystem-5.107.0.tar.xz";
|
||||
sha256 = "07lkqqzbgnx6v4fzrcdi5xwznxs21rgg96j8ghs6s3zph8y7ram3";
|
||||
name = "kwindowsystem-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kwindowsystem-5.108.0.tar.xz";
|
||||
sha256 = "0112cgy09qw069v1lzaz6rp84p128mq3xqp3xink398xhp3nrkqd";
|
||||
name = "kwindowsystem-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kxmlgui = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/kxmlgui-5.107.0.tar.xz";
|
||||
sha256 = "1rc420zlmiivb4x00dlr9z8035crw974gviwzs6xag1v9j022j2b";
|
||||
name = "kxmlgui-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/kxmlgui-5.108.0.tar.xz";
|
||||
sha256 = "0v6nzq86wvbalbqq3dp47vymp31ws098c8dq0g43f6g7q3xjfxa1";
|
||||
name = "kxmlgui-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kxmlrpcclient = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/portingAids/kxmlrpcclient-5.107.0.tar.xz";
|
||||
sha256 = "0yfbbqkwbrfsanwf0kph5d81xyply17swxmnz5w5qwasdhk19chc";
|
||||
name = "kxmlrpcclient-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/portingAids/kxmlrpcclient-5.108.0.tar.xz";
|
||||
sha256 = "0pf5c5ja1mwdlf9pmc2601frwskkzhksz0n8w4qcwmwbaxrbspv0";
|
||||
name = "kxmlrpcclient-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
modemmanager-qt = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/modemmanager-qt-5.107.0.tar.xz";
|
||||
sha256 = "0ff4sq4wq12qdrkb53wbnjdsccarf8bl6kpv831q0jhhbv06xpy1";
|
||||
name = "modemmanager-qt-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/modemmanager-qt-5.108.0.tar.xz";
|
||||
sha256 = "1rkz1m2dlfhny9zvy8axzgjxgh41cfnmpb52rwargmrsgplcx7rz";
|
||||
name = "modemmanager-qt-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
networkmanager-qt = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/networkmanager-qt-5.107.0.tar.xz";
|
||||
sha256 = "0zqrsgq68n5wdw06sq75sgk63by41lr24dink6gkh8r0yqzgspv9";
|
||||
name = "networkmanager-qt-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/networkmanager-qt-5.108.0.tar.xz";
|
||||
sha256 = "0y9h1n4hccdzk5rp2bq7dyq617yg5myq7dcwnpnp1aik40647vjf";
|
||||
name = "networkmanager-qt-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
oxygen-icons5 = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/oxygen-icons5-5.107.0.tar.xz";
|
||||
sha256 = "1l6glxkq62lzpzr6hvqwn3xb4jfw79w69nwjbbs5imbxndcrmz9s";
|
||||
name = "oxygen-icons5-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/oxygen-icons5-5.108.0.tar.xz";
|
||||
sha256 = "0w9zcgii9z91060cnqcalv8vnj03xrnjr5k6crx28szrpplqcvxd";
|
||||
name = "oxygen-icons5-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-framework = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/plasma-framework-5.107.0.tar.xz";
|
||||
sha256 = "0ahgpwmaz2nnyg4qwf8ppdk70a718v65ldk8si6gvglf95daalv0";
|
||||
name = "plasma-framework-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/plasma-framework-5.108.0.tar.xz";
|
||||
sha256 = "131zxamyim4bpk006nmfw2zmcay5qnmm7lmy8rvcxn96vflrs6bb";
|
||||
name = "plasma-framework-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
prison = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/prison-5.107.0.tar.xz";
|
||||
sha256 = "172alrpknjnc97ds1dizwgki40z82p1vzld2gib6pwykgzgjww6c";
|
||||
name = "prison-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/prison-5.108.0.tar.xz";
|
||||
sha256 = "1pn62pd7jy589z9y5r00m8d5rcqvrbskyr4a2yyfs24xv21x8lw4";
|
||||
name = "prison-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
purpose = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/purpose-5.107.0.tar.xz";
|
||||
sha256 = "0b4x7x3kia5vn913mzfk0k0f0lhf0gpc3kjsw9pgy1mna8dg7kcr";
|
||||
name = "purpose-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/purpose-5.108.0.tar.xz";
|
||||
sha256 = "0gzgdycf96z0x61vs08dh46n9c2zc11zpjscfwzhrg2k9wsb90qd";
|
||||
name = "purpose-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
qqc2-desktop-style = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/qqc2-desktop-style-5.107.0.tar.xz";
|
||||
sha256 = "0hpjy5w72hzihc7famdjj5arac8fw0d149iqpywldyzhk6bnrfaw";
|
||||
name = "qqc2-desktop-style-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/qqc2-desktop-style-5.108.0.tar.xz";
|
||||
sha256 = "1icv871q0z2wh147j3bg9xqizp2cyrsrsrsgbyyscpa9x5nlpvw9";
|
||||
name = "qqc2-desktop-style-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
solid = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/solid-5.107.0.tar.xz";
|
||||
sha256 = "1w5b62hx8icjz8wkhkn0mhaykdm4mglf6d8qh759160v85fi2ia2";
|
||||
name = "solid-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/solid-5.108.0.tar.xz";
|
||||
sha256 = "0m4i7csrz167nm6h4pcd0413x6jvnd39cx13k9ayga9my36ba2r8";
|
||||
name = "solid-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
sonnet = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/sonnet-5.107.0.tar.xz";
|
||||
sha256 = "0ix7jqjdlcd4jksrvgy5whpbl0i2ljs7pxkm9f8yg2pm3h5clgda";
|
||||
name = "sonnet-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/sonnet-5.108.0.tar.xz";
|
||||
sha256 = "00azygjvv0fw5agd28v3kqxc3qx1wa8j4afvn5y3ncarhb5ac7p1";
|
||||
name = "sonnet-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
syndication = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/syndication-5.107.0.tar.xz";
|
||||
sha256 = "0jpqn34za7q62f8x2njyggq52h9riljr053ng25ykqvp3z2khk95";
|
||||
name = "syndication-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/syndication-5.108.0.tar.xz";
|
||||
sha256 = "0q1yhziwxj2dllqyapkqnsskhvzsjm5iz2my4pn8n0lfm90rdf8h";
|
||||
name = "syndication-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
syntax-highlighting = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/syntax-highlighting-5.107.0.tar.xz";
|
||||
sha256 = "1narmiqlmgnhzxbwmcm4si8w684q3fdp4zh25w0kvwdvxvlx2bk7";
|
||||
name = "syntax-highlighting-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/syntax-highlighting-5.108.0.tar.xz";
|
||||
sha256 = "1lri80bv4i50xsd2wgyv383sqkxpav3smgk9ql5dil2n8pl219ky";
|
||||
name = "syntax-highlighting-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
threadweaver = {
|
||||
version = "5.107.0";
|
||||
version = "5.108.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/frameworks/5.107/threadweaver-5.107.0.tar.xz";
|
||||
sha256 = "1wis770hbmzq920fnfg0pvz35bf4abbkkbnx7za9f89b7jpzmi66";
|
||||
name = "threadweaver-5.107.0.tar.xz";
|
||||
url = "${mirror}/stable/frameworks/5.108/threadweaver-5.108.0.tar.xz";
|
||||
sha256 = "094nfqbhgg8yfri7fghn8dkjdf1k5iccshj0ns2b30snw87w8b29";
|
||||
name = "threadweaver-5.108.0.tar.xz";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -15,7 +15,11 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
owner = "Nitrokey";
|
||||
repo = "libnitrokey";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-9ZMR1g04gNzslax6NpD6KykfUfjpKFIizaMMn06iJa0=";
|
||||
hash = "sha256-4PEZ31QyVOmdhpKqTN8fwcHoLuu+w+OJ3fZeqwlE+io=";
|
||||
# On OSX, libnitrokey depends on a custom version of hidapi in a submodule.
|
||||
# Monitor https://github.com/Nitrokey/libnitrokey/issues/140 to see if we
|
||||
# can remove this extra work one day.
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{ lib, stdenv, fetchFromGitHub, which }:
|
||||
{ lib, stdenv, fetchFromGitHub, which, squawk }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libpg_query";
|
||||
version = "15-4.2.1";
|
||||
version = "15-4.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pganalyze";
|
||||
repo = "libpg_query";
|
||||
rev = version;
|
||||
hash = "sha256-wbWW2r8Ai4Y+JBI5DbMuVx326bAxmEgQlTd6nnzqDXw=";
|
||||
hash = "sha256-DjpfJj7WtQ4bACX8/lFDl+mwQGbeCJX+YN2hjZa0kks=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ which ];
|
||||
|
@ -24,10 +24,14 @@ stdenv.mkDerivation rec {
|
|||
doCheck = true;
|
||||
checkTarget = "test";
|
||||
|
||||
passthru.tests = {
|
||||
inherit squawk;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/pganalyze/libpg_query";
|
||||
description = "C library for accessing the PostgreSQL parser outside of the server environment";
|
||||
changelog = "https://github.com/pganalyze/libpg_query/raw/${version}/CHANGELOG.md";
|
||||
changelog = "https://github.com/pganalyze/libpg_query/blob/${version}/CHANGELOG.md";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.marsam ];
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
let
|
||||
pname = "php-cs-fixer";
|
||||
version = "3.16.0";
|
||||
version = "3.21.1";
|
||||
in
|
||||
mkDerivation {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar";
|
||||
sha256 = "sha256-B4VzfsSwcffR/t4eREMLH9jRWCTumYel6GM4rpumVBY=";
|
||||
sha256 = "sha256-f/hD2it/l2hWGVoIXQBJYDC7s7JPSE+7RzbpdeNNRvg=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "adafruit-platformdetect";
|
||||
version = "3.46.0";
|
||||
version = "3.47.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -15,7 +15,7 @@ buildPythonPackage rec {
|
|||
src = fetchPypi {
|
||||
pname = "Adafruit-PlatformDetect";
|
||||
inherit version;
|
||||
hash = "sha256-d8RhnMcTeHFDpVS+c5lETRz75vFPOMIaqbqPGVG4vHY=";
|
||||
hash = "sha256-42YG+brxKCo16xp72+EhmCkgABC2BAFYNWTKqTT1jeE=";
|
||||
};
|
||||
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, pexpect
|
||||
, fetchFromGitHub
|
||||
, pythonOlder
|
||||
, setuptools
|
||||
, setuptools-scm
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "argcomplete";
|
||||
version = "2.1.1";
|
||||
format = "setuptools";
|
||||
version = "3.1.1";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-cuCDQIUtMlREWcDBmq0bSKosOpbejG5XQkVrT1OMpS8=";
|
||||
src = fetchFromGitHub {
|
||||
owner = "kislyuk";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-N1Us/dpF/y638qIuwTzBiuv4vXfBMtWxmQnMBxNTUuc=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace '"coverage",' "" \
|
||||
--replace " + lint_require" ""
|
||||
'';
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pexpect
|
||||
nativeBuildInputs = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
# tries to build and install test packages which fails
|
||||
# Tries to build and install test packages which fails
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "bluetooth-sensor-state-data";
|
||||
version = "1.6.1";
|
||||
version = "1.6.2";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
|
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
|||
owner = "Bluetooth-Devices";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-3qZlk6zV/AeFG4OSRONQ7EMw9Kk/yHjVHV2o64bxCGM=";
|
||||
hash = "sha256-NC0l3wbQKz4MVM0kHbXBAUol74ir7V/JQgeYCVuyRs4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
76
pkgs/development/python-modules/celery-singleton/default.nix
Normal file
76
pkgs/development/python-modules/celery-singleton/default.nix
Normal file
|
@ -0,0 +1,76 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchpatch
|
||||
, fetchFromGitHub
|
||||
, poetry-core
|
||||
, celery
|
||||
, redis
|
||||
, pytestCheckHook
|
||||
, pytest-celery
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "celery-singleton";
|
||||
version = "0.3.1";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "steinitzu";
|
||||
repo = "celery-singleton";
|
||||
rev = version;
|
||||
hash = "sha256-fHlakxxjYIADELZdxIj6rvsZ/+1QfnKvAg3w5cdzvDc=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# Disable coverage reporting in tests
|
||||
substituteInPlace setup.cfg \
|
||||
--replace "--cov" "" \
|
||||
--replace "--no-cov-on-fail" ""
|
||||
'';
|
||||
|
||||
patches = [
|
||||
# chore(poetry): use poetry-core
|
||||
# https://github.com/steinitzu/celery-singleton/pull/54
|
||||
(fetchpatch {
|
||||
name = "use-poetry-core.patch";
|
||||
url = "https://github.com/steinitzu/celery-singleton/pull/54/commits/634a001c92a1dff1fae513fc95d733ea9b87e4cf.patch";
|
||||
hash = "sha256-lXN4khwyL96pWyBS+iuSkGEkegv4HxYtym+6JUcPa94=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
celery
|
||||
redis
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
pytest-celery
|
||||
];
|
||||
|
||||
pytestFlagsArray = [ "tests" ];
|
||||
|
||||
# Tests require a running Redis backend
|
||||
disabledTests = [
|
||||
"TestLock"
|
||||
"TestUnlock"
|
||||
"TestClear"
|
||||
"TestSimpleTask"
|
||||
"TestRaiseOnDuplicateConfig"
|
||||
"TestUniqueOn"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "celery_singleton" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Seamlessly prevent duplicate executions of celery tasks";
|
||||
homepage = "https://github.com/steinitzu/celery-singleton";
|
||||
changelog = "https://github.com/steinitzu/celery-singleton/blob/${src.rev}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ onny ];
|
||||
};
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
{ lib
|
||||
, argcomplete
|
||||
, backoff
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
|
@ -17,7 +18,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "censys";
|
||||
version = "2.2.0";
|
||||
version = "2.2.4";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -26,7 +27,7 @@ buildPythonPackage rec {
|
|||
owner = "censys";
|
||||
repo = "censys-python";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-CtW6EN9oH/OIZ4XaoSuKlMYK9Mh/ewRs6y34xbfY234=";
|
||||
hash = "sha256-gCq01lfAoKoS74C8gjj84mZpXDMtdNVaRLwhlEXwiPI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -35,6 +36,7 @@ buildPythonPackage rec {
|
|||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
argcomplete
|
||||
backoff
|
||||
requests
|
||||
rich
|
||||
|
@ -73,6 +75,7 @@ buildPythonPackage rec {
|
|||
meta = with lib; {
|
||||
description = "Python API wrapper for the Censys Search Engine (censys.io)";
|
||||
homepage = "https://github.com/censys/censys-python";
|
||||
changelog = "https://github.com/censys/censys-python/releases/tag/v${version}";
|
||||
license = with licenses; [ asl20 ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
|
|
54
pkgs/development/python-modules/django-cachalot/default.nix
Normal file
54
pkgs/development/python-modules/django-cachalot/default.nix
Normal file
|
@ -0,0 +1,54 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, django
|
||||
, django-debug-toolbar
|
||||
, psycopg2
|
||||
, beautifulsoup4
|
||||
, python
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-cachalot";
|
||||
version = "2.5.3";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "noripyt";
|
||||
repo = "django-cachalot";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ayAN+PgK3aIpt4R8aeC6c6mRGTnfObycmkoXPTjx4WI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Disable tests for unsupported caching and database types which would
|
||||
# require additional running backends
|
||||
./disable-unsupported-tests.patch
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
django
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
beautifulsoup4
|
||||
django-debug-toolbar
|
||||
psycopg2
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "cachalot" ];
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
${python.interpreter} runtests.py
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "No effort, no worry, maximum performance";
|
||||
homepage = "https://github.com/noripyt/django-cachalot";
|
||||
changelog = "https://github.com/noripyt/django-cachalot/blob/${src.rev}/CHANGELOG.rst";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ onny ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
diff --git a/cachalot/tests/models.py b/cachalot/tests/models.py
|
||||
index 8c48640..817602c 100644
|
||||
--- a/cachalot/tests/models.py
|
||||
+++ b/cachalot/tests/models.py
|
||||
@@ -77,11 +77,6 @@ class PostgresModel(Model):
|
||||
date_range = DateRangeField(null=True, blank=True)
|
||||
datetime_range = DateTimeRangeField(null=True, blank=True)
|
||||
|
||||
- class Meta:
|
||||
- # Tests schema name in table name.
|
||||
- db_table = '"public"."cachalot_postgresmodel"'
|
||||
-
|
||||
-
|
||||
class UnmanagedModel(Model):
|
||||
name = CharField(max_length=50)
|
||||
|
||||
diff --git a/settings.py b/settings.py
|
||||
index 19d7560..7095367 100644
|
||||
--- a/settings.py
|
||||
+++ b/settings.py
|
||||
@@ -8,18 +8,9 @@ DATABASES = {
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
'NAME': 'cachalot.sqlite3',
|
||||
},
|
||||
- 'postgresql': {
|
||||
- 'ENGINE': 'django.db.backends.postgresql',
|
||||
- 'NAME': 'cachalot',
|
||||
- 'USER': 'cachalot',
|
||||
- 'PASSWORD': 'password',
|
||||
- 'HOST': '127.0.0.1',
|
||||
- },
|
||||
- 'mysql': {
|
||||
- 'ENGINE': 'django.db.backends.mysql',
|
||||
- 'NAME': 'cachalot',
|
||||
- 'USER': 'root',
|
||||
- 'HOST': '127.0.0.1',
|
||||
+ 'test': {
|
||||
+ 'ENGINE': 'django.db.backends.sqlite3',
|
||||
+ 'NAME': ':memory:',
|
||||
},
|
||||
}
|
||||
if 'MYSQL_PASSWORD' in os.environ:
|
||||
@@ -36,22 +27,6 @@ DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
|
||||
DATABASE_ROUTERS = ['cachalot.tests.db_router.PostgresRouter']
|
||||
|
||||
CACHES = {
|
||||
- 'redis': {
|
||||
- 'BACKEND': 'django_redis.cache.RedisCache',
|
||||
- 'LOCATION': 'redis://127.0.0.1:6379/0',
|
||||
- 'OPTIONS': {
|
||||
- # Since we are using both Python 2 & 3 in tests, we need to use
|
||||
- # a compatible pickle version to avoid unpickling errors when
|
||||
- # running a Python 2 test after a Python 3 test.
|
||||
- 'PICKLE_VERSION': 2,
|
||||
- },
|
||||
- },
|
||||
- 'memcached': {
|
||||
- 'BACKEND': 'django.core.cache.backends.memcached.'
|
||||
- + ('PyMemcacheCache' if __DJ_V[0] > 2
|
||||
- and (__DJ_V[1] > 1 or __DJ_V[0] > 3) else 'MemcachedCache'),
|
||||
- 'LOCATION': '127.0.0.1:11211',
|
||||
- },
|
||||
'locmem': {
|
||||
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
|
||||
'OPTIONS': {
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "faraday-agent-parameters-types";
|
||||
version = "1.2.0";
|
||||
version = "1.3.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -17,7 +17,7 @@ buildPythonPackage rec {
|
|||
src = fetchPypi {
|
||||
pname = "faraday_agent_parameters_types";
|
||||
inherit version;
|
||||
hash = "sha256-jQgE/eR8Gd9nMGijH9unhHCrLUn7DbWFkTauoz3O/sM=";
|
||||
hash = "sha256-XWuWg8PzXdLIuUTZ5dnpFmFmqEhOReqIEmBbCpzdzrg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -6,9 +6,7 @@
|
|||
, hatchling
|
||||
, ipykernel
|
||||
, ipython
|
||||
, ipython_genutils
|
||||
, jupyter-client
|
||||
, packaging
|
||||
, psutil
|
||||
, python-dateutil
|
||||
, pythonOlder
|
||||
|
@ -39,9 +37,7 @@ buildPythonPackage rec {
|
|||
entrypoints
|
||||
ipykernel
|
||||
ipython
|
||||
ipython_genutils
|
||||
jupyter-client
|
||||
packaging
|
||||
psutil
|
||||
python-dateutil
|
||||
pyzmq
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pycfmodel";
|
||||
version = "0.20.2";
|
||||
version = "0.20.3";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -18,7 +18,7 @@ buildPythonPackage rec {
|
|||
owner = "Skyscanner";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-TumqpNaxH9YET56PhTXJVG/OQw3syXaYNtHn+Vyh6xI=";
|
||||
hash = "sha256-dHgd6vnmlg+VXMp7QUZoT2aic1X05lJGm8hDrowALvk=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyxbe";
|
||||
version = "1.0.1";
|
||||
version = "1.0.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -16,7 +16,7 @@ buildPythonPackage rec {
|
|||
owner = "mborgerson";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-oOY0g1F5sxGUxXAT19Ygq5q7pnxEhIAKmyYELR1PHEA=";
|
||||
hash = "sha256-sm8/Lcsk3aL8/MB0cVrKNb8MoQPxGCGpHkEPWv+mPdo=";
|
||||
};
|
||||
|
||||
nativeCheckInputs = [
|
||||
|
@ -26,7 +26,7 @@ buildPythonPackage rec {
|
|||
# Update location for run with pytest
|
||||
preCheck = ''
|
||||
substituteInPlace tests/test_load.py \
|
||||
--replace "'xbefiles'" "'tests/xbefiles'"
|
||||
--replace '"xbefiles"' '"tests/xbefiles"'
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "sentry-sdk";
|
||||
version = "1.27.0";
|
||||
version = "1.27.1";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -49,7 +49,7 @@ buildPythonPackage rec {
|
|||
owner = "getsentry";
|
||||
repo = "sentry-python";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-MU/Uaul46jfVg30zMYgx5QJdXociFqZY+vsi53NqY5c=";
|
||||
hash = "sha256-IXmSQg5I78wwKIzKyuJHypAJeMMGu2vuoo3bqyK1K+c=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "socid-extractor";
|
||||
version = "0.0.23";
|
||||
version = "0.0.24";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
@ -17,8 +17,8 @@ buildPythonPackage rec {
|
|||
src = fetchFromGitHub {
|
||||
owner = "soxoj";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-tDKwYgW1vEyPzuouPGK9tdTf3vNr+UaosHtQe23srG0=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-INewgfm+E2t4QfE+SRAm5a74AKsifNtnwC0WPBqPUns=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -28,9 +28,9 @@ buildPythonPackage rec {
|
|||
];
|
||||
|
||||
postPatch = ''
|
||||
# https://github.com/soxoj/socid-extractor/pull/125
|
||||
# https://github.com/soxoj/socid-extractor/pull/150
|
||||
substituteInPlace requirements.txt \
|
||||
--replace "beautifulsoup4~=4.10.0" "beautifulsoup4>=4.10.0"
|
||||
--replace "beautifulsoup4~=4.11.1" "beautifulsoup4>=4.10.0"
|
||||
'';
|
||||
|
||||
# Test require network access
|
||||
|
@ -43,6 +43,7 @@ buildPythonPackage rec {
|
|||
meta = with lib; {
|
||||
description = "Python module to extract details from personal pages";
|
||||
homepage = "https://github.com/soxoj/socid-extractor";
|
||||
changelog = "https://github.com/soxoj/socid-extractor/blob/v${version}/CHANGELOG.md";
|
||||
license = with licenses; [ gpl3Only ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
|
|
|
@ -6,16 +6,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "cloud-nuke";
|
||||
version = "0.31.2";
|
||||
version = "0.32.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gruntwork-io";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-t7LFAWdqbJLOmrac6IXgo+9TK53B7FWLFo1YAY4sPqs=";
|
||||
hash = "sha256-jxhFBfz5CWycEXx86jL9inlP8nxNK7vbVn2U8EzQ7QA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-AbHjwHwgFwDOwgbuQI3D+zNY71ikA5CPlJUFQIDjhm0=";
|
||||
vendorHash = "sha256-C2YXjfn3Pk0kL4G/cHsmr2VHUYGO+3s3eSiWVJZ2dX8=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeBinaryWrapper
|
||||
|
|
|
@ -8,16 +8,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "go-task";
|
||||
version = "3.26.0";
|
||||
version = "3.27.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = "task";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-BmQL9e7/53IEDUGeiTcFQbK64/JDTwJvBVRrxGFmzMA=";
|
||||
hash = "sha256-MwZtdxoWo5yeJKzbMIfigt0WUjZ52B8MeRsx43D8n1k=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-iO4VzY/UyPJeSxDYAPq+dLuAD2FOaac8rlmAVM4GYB8=";
|
||||
vendorHash = "sha256-05+/NbLks9Dp9Z7KscK9yeEzFJug7VFBqViievX6UOs=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
|
|
@ -12,13 +12,13 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "kdash";
|
||||
version = "0.3.7";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kdash-rs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-qaPRC5W+dLNbrCYc8fKdaSm54OuObJ20tVYCF7ZANYs=";
|
||||
sha256 = "sha256-U2Ne0wDgPkNZa68KbJ9Hke5l+tBAf7imu1Cj+r/uZUE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ perl python3 pkg-config ];
|
||||
|
@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
|
|||
buildInputs = [ openssl xorg.xcbutil ]
|
||||
++ lib.optional stdenv.isDarwin AppKit;
|
||||
|
||||
cargoHash = "sha256-Z//EsuizhCZIItKfxF8xJs0aQQlhiprV0I2cIWEGsqg=";
|
||||
cargoHash = "sha256-dX5p+eLhZlU1Xg2SoqtEYb8T3/lvoJa78zgQStLPZNE=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple and fast dashboard for Kubernetes";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, buildNpmPackage, fetchFromGitHub, vscode }:
|
||||
{ lib, stdenv, buildNpmPackage, fetchFromGitHub, vscodium, vscode-extensions }:
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "vscode-langservers-extracted";
|
||||
|
@ -11,20 +11,14 @@ buildNpmPackage rec {
|
|||
hash = "sha256-RLRDEHfEJ2ckn0HTMu0WbMK/o9W20Xwm+XI6kCq57u8=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-QhiSj/DigsI4Bfwmk3wG4lDQOWuDDduc/sfJlXiEoGE=";
|
||||
|
||||
postPatch = ''
|
||||
# TODO: Add vscode-eslint as a dependency
|
||||
# Eliminate the vscode-eslint bin
|
||||
sed -i '/^\s*"vscode-eslint-language-server":.*bin\//d' package.json package-lock.json
|
||||
'';
|
||||
npmDepsHash = "sha256-DhajWr+O0zgJALr7I/Nc5GmkOsa9QXfAQpZCaULV47M=";
|
||||
|
||||
buildPhase =
|
||||
let
|
||||
extensions =
|
||||
if stdenv.isDarwin
|
||||
then "${vscode}/Applications/Visual\\ Studio\\ Code.app/Contents/Resources/app/extensions"
|
||||
else "${vscode}/lib/vscode/resources/app/extensions";
|
||||
then "${vscodium}/Applications/VSCodium.app/Contents/Resources/app/extensions"
|
||||
else "${vscodium}/lib/vscode/resources/app/extensions";
|
||||
in
|
||||
''
|
||||
npx babel ${extensions}/css-language-features/server/dist/node \
|
||||
|
@ -35,11 +29,13 @@ buildNpmPackage rec {
|
|||
--out-dir lib/json-language-server/node/
|
||||
npx babel ${extensions}/markdown-language-features/server/dist/node \
|
||||
--out-dir lib/markdown-language-server/node/
|
||||
cp -r ${vscode-extensions.dbaeumer.vscode-eslint}/share/vscode/extensions/dbaeumer.vscode-eslint/server/out \
|
||||
lib/eslint-language-server
|
||||
mv lib/markdown-language-server/node/workerMain.js lib/markdown-language-server/node/main.js
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "HTML/CSS/JSON/ESLint language servers extracted from vscode.";
|
||||
description = "HTML/CSS/JSON/ESLint language servers extracted from vscode";
|
||||
homepage = "https://github.com/hrsh7th/vscode-langservers-extracted";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ lord-valen ];
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "ls-lint";
|
||||
version = "2.0.0";
|
||||
version = "2.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "loeffel-io";
|
||||
repo = "ls-lint";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-eEP/l3vdObdxUYIp8eSSCn3W0ypcmykbwQTDP083MVE=";
|
||||
sha256 = "sha256-JG3gDmPfeGyiiIsFX0jFN1Xi9lY4eednmEfJLdu0atA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-nSHhU6z3ItCKBZy8ENBcAkXqSVo3DU6hAyezQczKShM=";
|
||||
vendorHash = "sha256-/6Y20AvhUShaE1sNTccB62x8YkVLLjhl6fg5oY4gL4I=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "An extremely fast file and directory name linter";
|
||||
|
|
25
pkgs/development/tools/misc/complgen/default.nix
Normal file
25
pkgs/development/tools/misc/complgen/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "complgen";
|
||||
version = "unstable-2023-07-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "adaszko";
|
||||
repo = "complgen";
|
||||
rev = "e23474c3bd4544a8e6f7b51947616dbdb18fe1dd";
|
||||
hash = "sha256-Ura4/yMLVRlgTiNiXNPMtKu4cPWge0bLQp/n+tgeDiM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-P7wHKrRUVlrLAaLYhVH/p3oOc7UCGP3aQZotVxyeJTs=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Generate {bash,fish,zsh} completions from a single EBNF-like grammar";
|
||||
homepage = "https://github.com/adaszko/complgen";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ figsoda ];
|
||||
};
|
||||
}
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-llvm-cov";
|
||||
version = "0.5.22";
|
||||
version = "0.5.23";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-nvDeKHOpDhszLxPFh1CZhA+NrFnKbminv8qlIT0qvx0=";
|
||||
sha256 = "sha256-sAuarLfvgX6qjZV2eum3+wY5gRiCbRSbJUBgFIHd8y0=";
|
||||
};
|
||||
cargoSha256 = "sha256-krpvo55PNECVLh1SjZhXwFVjI6s2u7l/MPCYeDFsylM=";
|
||||
cargoSha256 = "sha256-gGzVQqPHvjERvQV2Yo3wFP7n/w3atuLrHSch1CWui4I=";
|
||||
|
||||
# skip tests which require llvm-tools-preview
|
||||
checkFlags = [
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, fetchCrate
|
||||
, installShellFiles
|
||||
, stdenv
|
||||
, nix-update-script
|
||||
|
@ -9,16 +9,14 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-show-asm";
|
||||
version = "0.2.18";
|
||||
version = "0.2.19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pacak";
|
||||
repo = "cargo-show-asm";
|
||||
rev = version;
|
||||
hash = "sha256-K7hWXRS6bb9XZxIgZQeu22Gtt3WmXI63Xd97Unm6mHs=";
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
hash = "sha256-bIaEXlMIEQ2pnzjp7ll6iJFGAQjGb3HVBTbfGSPHrvg=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-fLvJyWoZ2ncbw8ksKfuQ/0oTYFOdzBBCrmtVbbMSXjo=";
|
||||
cargoHash = "sha256-qmxd6qt8pL/5TWPDCiBQrvqb6r7VAJOrSR1OSpibQFU=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
|
59
pkgs/os-specific/darwin/aldente/default.nix
Normal file
59
pkgs/os-specific/darwin/aldente/default.nix
Normal file
|
@ -0,0 +1,59 @@
|
|||
{ lib
|
||||
, stdenvNoCC
|
||||
, fetchurl
|
||||
, undmg
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "aldente";
|
||||
version = "1.22";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/davidwernhart/aldente-charge-limiter/releases/download/${finalAttrs.version}/AlDente.dmg";
|
||||
hash = "sha256-y8S9SCDbvoKGtNqGQvJDSpbLhh7GqXUo7pLcMzuCnjo=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
dontFixup = true;
|
||||
|
||||
nativeBuildInputs = [ undmg ];
|
||||
|
||||
# AlDente.dmg is not HFS formatted, default unpackPhase fails
|
||||
# https://discourse.nixos.org/t/help-with-error-only-hfs-file-systems-are-supported-on-ventura
|
||||
unpackCmd = ''
|
||||
if ! [[ "$curSrc" =~ \.dmg$ ]]; then return 1; fi
|
||||
mnt=$(mktemp -d -t ci-XXXXXXXXXX)
|
||||
|
||||
function finish {
|
||||
/usr/bin/hdiutil detach $mnt -force
|
||||
}
|
||||
trap finish EXIT
|
||||
|
||||
/usr/bin/hdiutil attach -nobrowse -readonly $src -mountpoint $mnt
|
||||
|
||||
shopt -s extglob
|
||||
DEST="$PWD"
|
||||
(cd "$mnt"; cp -a !(Applications) "$DEST/")
|
||||
'';
|
||||
|
||||
sourceRoot = "AlDente.app";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/Applications/AlDente.app
|
||||
cp -R . $out/Applications/AlDente.app
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "macOS tool to limit maximum charging percentage";
|
||||
homepage = "https://apphousekitchen.com";
|
||||
changelog = "https://github.com/davidwernhart/aldente-charge-limiter/releases/tag/${finalAttrs.version}";
|
||||
license = with licenses; [ unfree ];
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
maintainers = with maintainers; [ stepbrobd ];
|
||||
platforms = [ "aarch64-darwin" "x86_64-darwin" ];
|
||||
};
|
||||
})
|
|
@ -23,13 +23,21 @@ stdenv.mkDerivation rec {
|
|||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
# Based on hostapd's defconfig. Only differences are tracked.
|
||||
extraConfig = ''
|
||||
# Use epoll(7) instead of select(2) on linux
|
||||
CONFIG_ELOOP_EPOLL=y
|
||||
|
||||
# Drivers
|
||||
CONFIG_DRIVER_WIRED=y
|
||||
CONFIG_LIBNL32=y
|
||||
CONFIG_DRIVER_NONE=y
|
||||
|
||||
# Integrated EAP server
|
||||
CONFIG_EAP_SIM=y
|
||||
CONFIG_EAP_AKA=y
|
||||
CONFIG_EAP_AKA_PRIME=y
|
||||
CONFIG_EAP_PAX=y
|
||||
CONFIG_EAP_PSK=y
|
||||
CONFIG_EAP_PWD=y
|
||||
CONFIG_EAP_SAKE=y
|
||||
CONFIG_EAP_GPSK=y
|
||||
|
@ -38,29 +46,48 @@ stdenv.mkDerivation rec {
|
|||
CONFIG_EAP_IKEV2=y
|
||||
CONFIG_EAP_TNC=y
|
||||
CONFIG_EAP_EKE=y
|
||||
CONFIG_RADIUS_SERVER=y
|
||||
CONFIG_IEEE80211R=y
|
||||
CONFIG_IEEE80211N=y
|
||||
CONFIG_IEEE80211AC=y
|
||||
CONFIG_IEEE80211AX=y
|
||||
CONFIG_FULL_DYNAMIC_VLAN=y
|
||||
CONFIG_VLAN_NETLINK=y
|
||||
|
||||
CONFIG_TLS=openssl
|
||||
CONFIG_TLSV11=y
|
||||
CONFIG_TLSV12=y
|
||||
CONFIG_INTERNETWORKING=y
|
||||
CONFIG_HS20=y
|
||||
CONFIG_ACS=y
|
||||
CONFIG_GETRANDOM=y
|
||||
|
||||
CONFIG_SAE=y
|
||||
CONFIG_SAE_PK=y
|
||||
|
||||
CONFIG_OWE=y
|
||||
CONFIG_OCV=y
|
||||
|
||||
# TKIP is considered insecure and upstream support will be removed in the future
|
||||
CONFIG_NO_TKIP=y
|
||||
|
||||
# Misc
|
||||
CONFIG_RADIUS_SERVER=y
|
||||
CONFIG_FULL_DYNAMIC_VLAN=y
|
||||
CONFIG_VLAN_NETLINK=y
|
||||
CONFIG_GETRANDOM=y
|
||||
CONFIG_INTERWORKING=y
|
||||
CONFIG_HS20=y
|
||||
CONFIG_FST=y
|
||||
CONFIG_FST_TEST=y
|
||||
CONFIG_ACS=y
|
||||
CONFIG_WNM=y
|
||||
CONFIG_MBO=y
|
||||
|
||||
CONFIG_IEEE80211R=y
|
||||
CONFIG_IEEE80211W=y
|
||||
CONFIG_IEEE80211N=y
|
||||
CONFIG_IEEE80211AC=y
|
||||
CONFIG_IEEE80211AX=y
|
||||
'' + lib.optionalString (sqlite != null) ''
|
||||
CONFIG_SQLITE=y
|
||||
'';
|
||||
|
||||
passAsFile = [ "extraConfig" ];
|
||||
|
||||
configurePhase = ''
|
||||
cd hostapd
|
||||
cp -v defconfig .config
|
||||
echo "$extraConfig" >> .config
|
||||
cat $extraConfigPath >> .config
|
||||
cat -n .config
|
||||
substituteInPlace Makefile --replace /usr/local $out
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags libnl-3.0)"
|
||||
|
|
|
@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
|
|||
CONFIG_LIBNL32=y
|
||||
CONFIG_OWE=y
|
||||
CONFIG_P2P=y
|
||||
CONFIG_SAE_PK=y
|
||||
CONFIG_TDLS=y
|
||||
CONFIG_TLS=openssl
|
||||
CONFIG_TLSV11=y
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
, kernel ? null
|
||||
, stdenv
|
||||
, linuxKernel
|
||||
, removeLinuxDRM ? false
|
||||
, ...
|
||||
} @ args:
|
||||
|
||||
|
@ -11,10 +12,13 @@ in
|
|||
callPackage ./generic.nix args {
|
||||
# check the release notes for compatible kernels
|
||||
kernelCompatible =
|
||||
if stdenv'.isx86_64
|
||||
if stdenv'.isx86_64 || removeLinuxDRM
|
||||
then kernel.kernelOlder "6.4"
|
||||
else kernel.kernelOlder "6.2";
|
||||
latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_3;
|
||||
latestCompatibleLinuxPackages = if stdenv'.isx86_64 || removeLinuxDRM then
|
||||
linuxKernel.packages.linux_6_3
|
||||
else
|
||||
linuxKernel.packages.linux_6_1;
|
||||
|
||||
# this package should point to the latest release.
|
||||
version = "2.1.12";
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
, kernel ? null
|
||||
, stdenv
|
||||
, linuxKernel
|
||||
, removeLinuxDRM ? false
|
||||
, ...
|
||||
} @ args:
|
||||
|
||||
|
@ -13,19 +14,22 @@ callPackage ./generic.nix args {
|
|||
# NOTE:
|
||||
# zfs-2.1.9<=x<=2.1.10 is broken with aarch64-linux-6.2
|
||||
# for future releases, please delete this condition.
|
||||
kernelCompatible = if stdenv'.isx86_64
|
||||
then kernel.kernelOlder "6.3"
|
||||
kernelCompatible = if stdenv'.isx86_64 || removeLinuxDRM
|
||||
then kernel.kernelOlder "6.4"
|
||||
else kernel.kernelOlder "6.2";
|
||||
latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_1;
|
||||
|
||||
latestCompatibleLinuxPackages = if stdenv'.isx86_64 || removeLinuxDRM then
|
||||
linuxKernel.packages.linux_6_3
|
||||
else
|
||||
linuxKernel.packages.linux_6_1;
|
||||
|
||||
# this package should point to a version / git revision compatible with the latest kernel release
|
||||
# IMPORTANT: Always use a tagged release candidate or commits from the
|
||||
# zfs-<version>-staging branch, because this is tested by the OpenZFS
|
||||
# maintainers.
|
||||
version = "2.1.12-staging-2023-04-18";
|
||||
rev = "e25f9131d679692704c11dc0c1df6d4585b70c35";
|
||||
version = "2.1.12";
|
||||
|
||||
sha256 = "tJLwyqUj1l5F0WKZDeMGrEFa8fc/axKqm31xtN51a5M=";
|
||||
sha256 = "eYUR5d4gpTrlFu6j1uL83DWL9uPGgAUDRdSEb73V5i4=";
|
||||
|
||||
isUnstable = true;
|
||||
}
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "gobgpd";
|
||||
version = "3.15.0";
|
||||
version = "3.16.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osrg";
|
||||
repo = "gobgp";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-s4kZepphr3QMUFpxdJW5exZKfUPVTisFTRN81tZnQUY=";
|
||||
hash = "sha256-RdZk2I7QvIWEeiL81N5PLJYE0KHYbkvjJeDXTg3F9c4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Z7vYpDQIKc4elVBLiGtxF3D9pec4QNvWFLpux/29t1Y=";
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, go
|
||||
, pkgs
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, fetchurl
|
||||
|
@ -32,10 +31,10 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "2.44.0";
|
||||
version = "2.45.0";
|
||||
webUiStatic = fetchurl {
|
||||
url = "https://github.com/prometheus/prometheus/releases/download/v${version}/prometheus-web-ui-${version}.tar.gz";
|
||||
sha256 = "sha256-4FNW78V5bQWbTwmaEpvKaB5f/+uYqXjf0F+FONZq5c4=";
|
||||
hash = "sha256-xfIxq1cFkLjSxjPPdCjgv+FOvbUGdeZpRecbSIFUAXo=";
|
||||
};
|
||||
in
|
||||
buildGoModule rec {
|
||||
|
@ -48,10 +47,10 @@ buildGoModule rec {
|
|||
owner = "prometheus";
|
||||
repo = "prometheus";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-JCEJQ0GjP0jxyQudmgo2krjxXmsOFSwzh9Cm1XsrFZo=";
|
||||
hash = "sha256-smc51YrWW8jPzmIkOi0kKaAGUS3TUXpzGDLyslhRVUE=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-dR69FWhiT5FLQjZ1G0uf2QPCu9nEp2YkRjrkP1a/948=";
|
||||
vendorHash = "sha256-W958ODhmRL4GAM6hZd71BgEmrwrzR2XHoDrc+rBo4TI=";
|
||||
|
||||
excludedPackages = [ "documentation/prometheus-mixin" ];
|
||||
|
||||
|
|
40
pkgs/servers/rinetd/default.nix
Normal file
40
pkgs/servers/rinetd/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ lib
|
||||
, autoreconfHook
|
||||
, fetchFromGitHub
|
||||
, rinetd
|
||||
, stdenv
|
||||
, testers
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rinetd";
|
||||
version = "0.73";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "samhocevar";
|
||||
repo = "rinetd";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-W8PLGd3RwmBTh1kw3k8+ZfP6AzRhZORCkxZzQ9ZbPN4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
./bootstrap
|
||||
'';
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = rinetd;
|
||||
command = "rinetd --version";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "TCP/UDP port redirector";
|
||||
homepage = "https://github.com/samhocevar/rinetd";
|
||||
changelog = "https://github.com/samhocevar/rinetd/blob/${src.rev}/CHANGES.md";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ janik ];
|
||||
};
|
||||
}
|
|
@ -8,16 +8,16 @@
|
|||
|
||||
buildNpmPackage rec {
|
||||
pname = "zigbee2mqtt";
|
||||
version = "1.32.0";
|
||||
version = "1.32.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Koenkk";
|
||||
repo = "zigbee2mqtt";
|
||||
rev = version;
|
||||
hash = "sha256-OUd6Q9/JtllTSAzR879MrgWz5MZnRsEolGsuQbxURh8=";
|
||||
hash = "sha256-HHu3aycYvcv7c4CMvv9GzeB4ZAleLDW/nRKmWahSQ88=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-GoowjWCBfMcN5qWG2rV6wSPx01TozIb5KDh77D49F/M=";
|
||||
npmDepsHash = "sha256-uryyBFGNdsOVferTNTQ8+O3gv+lJ3mCuaU/47UzqcMk=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
{ lib, stdenv, fetchFromGitHub, makeWrapper
|
||||
, perl, pandoc, python3Packages, git
|
||||
, perl, pandoc, python3, git
|
||||
, par2cmdline ? null, par2Support ? true
|
||||
}:
|
||||
|
||||
assert par2Support -> par2cmdline != null;
|
||||
|
||||
let version = "0.32"; in
|
||||
let
|
||||
version = "0.33.2";
|
||||
|
||||
pythonDeps = with python3.pkgs; [ setuptools tornado ]
|
||||
++ lib.optionals (!stdenv.isDarwin) [ pyxattr pylibacl fuse ];
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "bup";
|
||||
|
@ -15,23 +20,13 @@ stdenv.mkDerivation {
|
|||
repo = "bup";
|
||||
owner = "bup";
|
||||
rev = version;
|
||||
sha256 = "sha256-SWnEJ5jwu/Jr2NLsTS8ajWay0WX/gYbOc3J6w00DndI=";
|
||||
hash = "sha256-DDVCrY4SFqzKukXm8rIq90xAW2U+yYyhyPmUhslMMWI=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
git
|
||||
(python3Packages.python.withPackages
|
||||
(p: with p; [ setuptools tornado ]
|
||||
++ lib.optionals (!stdenv.isDarwin) [ pyxattr pylibacl fuse ]))
|
||||
];
|
||||
buildInputs = [ git python3 ];
|
||||
nativeBuildInputs = [ pandoc perl makeWrapper ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
substituteInPlace Makefile --replace "-Werror" ""
|
||||
'' + lib.optionalString par2Support ''
|
||||
substituteInPlace cmd/fsck-cmd.py --replace "'par2'" "'${par2cmdline}/bin/par2'"
|
||||
'';
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
dontAddPrefix = true;
|
||||
|
||||
|
@ -44,7 +39,8 @@ stdenv.mkDerivation {
|
|||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/bup \
|
||||
--prefix PATH : ${git}/bin
|
||||
--prefix PATH : ${lib.makeBinPath [ git par2cmdline ]} \
|
||||
--prefix NIX_PYTHONPATH : ${lib.makeSearchPathOutput "lib" python3.sitePackages pythonDeps}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -58,6 +54,6 @@ stdenv.mkDerivation {
|
|||
'';
|
||||
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ ];
|
||||
maintainers = with maintainers; [ rnhmjoj ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, runCommand, fetchFromSavannah, flex, bison, python3, autoconf, automake, libtool, bash
|
||||
{ lib, stdenv, runCommand, fetchFromSavannah, fetchpatch, flex, bison, python3, autoconf, automake, libtool, bash
|
||||
, rsync, gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkg-config
|
||||
, buildPackages
|
||||
, nixosTests
|
||||
|
@ -83,6 +83,14 @@ stdenv.mkDerivation rec {
|
|||
patches = [
|
||||
./fix-bash-completion.patch
|
||||
./add-hidden-menu-entries.patch
|
||||
|
||||
# Revert upstream commit that breaks reading XFS filesystems
|
||||
# FIXME: remove when fixed upstream
|
||||
(fetchpatch {
|
||||
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=ef7850c757fb3dd2462a512cfa0ff19c89fcc0b1";
|
||||
revert = true;
|
||||
hash = "sha256-p8Kcv9d7ri4eJU6Fgqyzdj0hV5MHSe50AF02FPDJx2Y=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = if kbdcompSupport then ''
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
{ lib, fetchFromGitHub, perlPackages, autoreconfHook, iproute2, perl }:
|
||||
|
||||
perlPackages.buildPerlPackage rec {
|
||||
pname = "ddclient";
|
||||
version = "3.10.0";
|
||||
|
||||
outputs = [ "out" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ddclient";
|
||||
repo = "ddclient";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-wWUkjXwVNZRJR1rXPn3IkDRi9is9vsRuNC/zq8RpB1E=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
touch Makefile.PL
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
buildInputs = with perlPackages; [ IOSocketINET6 IOSocketSSL JSONPP ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
# patch sheebang ddclient script which only exists after buildPhase
|
||||
preConfigure
|
||||
install -Dm755 ddclient $out/bin/ddclient
|
||||
install -Dm644 -t $out/share/doc/ddclient COP* README.* ChangeLog.md
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# TODO: run upstream tests
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Client for updating dynamic DNS service entries";
|
||||
homepage = "https://ddclient.net/";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ SuperSandro2000 ];
|
||||
};
|
||||
}
|
|
@ -5,13 +5,13 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "cfripper";
|
||||
version = "1.13.1";
|
||||
version = "1.13.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Skyscanner";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-V27eZoeg5r+h8W1H66eNauGOvV8tT/oo4fRfSLhz1MY=";
|
||||
hash = "sha256-wcOtj56l2bUYE+WdbDwtB3aWlP2zEAFaaqw4THcHxbY=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
|
@ -43,6 +43,11 @@ python3.pkgs.buildPythonApplication rec {
|
|||
"tests/config/test_pluggy.py"
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# Assertion fails
|
||||
"test_multiple_resources_with_wildcard_resources_are_detected"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"cfripper"
|
||||
];
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "exploitdb";
|
||||
version = "2023-07-05";
|
||||
version = "2023-07-08";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "exploit-database";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-YJ7RR4PMa87Fw8dtRK4t+rDI1uyLfW8vQ/Rp1gr/Qw0=";
|
||||
hash = "sha256-hOPTK7nkKmLsVb6GJIE4FTdCGU6PdjQtUpTXzhsMXXo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{ lib
|
||||
, buildNpmPackage
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, installShellFiles
|
||||
}:
|
||||
|
||||
|
@ -15,16 +16,22 @@ buildNpmPackage rec {
|
|||
hash = "sha256-W/ZQXJXvFEIgj5PeI+jvw4nIkNP4qa1NyQCOv0unIuA=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-WOsStvm7UC2Jnb803mHoJxDUs1I8dDT7HRPdpIXQne8=";
|
||||
npmDepsHash = "sha256-x/Oc39S6XwZ/ZsS/lmMU9OkHLlKuUxETYmD8pdHAIg8=";
|
||||
|
||||
patches = [
|
||||
# djot.js v0.2.3 doesn't include package-lock.json in the repository
|
||||
# remove at next release
|
||||
(fetchpatch {
|
||||
name = "add-package-lock-json-and-yarn-lock-to-repository.patch";
|
||||
url = "https://github.com/jgm/djot.js/commit/15ed52755b2968932d4a9a80805b9ea6183fe539.patch";
|
||||
hash = "sha256-saNmU7z4IOOG3ptXMFDSNci5uu0d2GiVZ/FAlaNccTc=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
ln -s ${./package-lock.json} package-lock.json
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
installManPage doc/djot.1
|
||||
'';
|
||||
|
|
5556
pkgs/tools/text/djot-js/package-lock.json
generated
5556
pkgs/tools/text/djot-js/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -146,6 +146,7 @@ mapAliases ({
|
|||
bitcoind-classic = throw "bitcoind-classic has been removed: the Bitcoin Classic project has closed down, https://bitcoinclassic.com/news/closing.html"; # Added 2022-11-24
|
||||
bitcoin-gold = throw "bitcoin-gold has been removed since it's unnmaintained and will stop building with Qt > 5.14"; # Added 2022-11-24
|
||||
bitcoind-gold = throw "bitcoin-gold has been removed since it's unnmaintained: https://github.com/BTCGPU/BTCGPU/graphs/code-frequency"; # Added 2022-11-24
|
||||
ddclient = throw "ddclient has been removed on the request of the upstream maintainer because it is unmaintained and has bugs. Please switch to a different software like `inadyn` or `knsupdate`."; # Added 2023-07-04
|
||||
digibyte = throw "digibyte has been removed since it's unnmaintained and will stop building with Qt > 5.14"; # Added 2022-11-24
|
||||
digibyted = throw "digibyted has been removed since it's unnmaintained: https://github.com/digibyte/digibyte/graphs/code-frequency"; # Added 2022-11-24
|
||||
bitsnbots = throw "bitsnbots has been removed because it was broken and upstream missing"; # Added 2021-08-22
|
||||
|
|
|
@ -6993,8 +6993,6 @@ with pkgs;
|
|||
|
||||
ddcutil = callPackage ../tools/misc/ddcutil { };
|
||||
|
||||
ddclient = callPackage ../tools/networking/ddclient { };
|
||||
|
||||
dd_rescue = callPackage ../tools/system/dd_rescue { };
|
||||
|
||||
ddh = callPackage ../tools/system/ddh { };
|
||||
|
@ -9798,9 +9796,8 @@ with pkgs;
|
|||
|
||||
npmHooks = callPackage ../build-support/node/build-npm-package/hooks { };
|
||||
|
||||
inherit (callPackage ../build-support/node/fetch-npm-deps {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
}) fetchNpmDeps prefetch-npm-deps;
|
||||
inherit (callPackage ../build-support/node/fetch-npm-deps { })
|
||||
fetchNpmDeps prefetch-npm-deps;
|
||||
|
||||
nodePackages_latest = dontRecurseIntoAttrs nodejs_latest.pkgs;
|
||||
|
||||
|
@ -18495,6 +18492,8 @@ with pkgs;
|
|||
|
||||
complexity = callPackage ../development/tools/misc/complexity { };
|
||||
|
||||
complgen = callPackage ../development/tools/misc/complgen { };
|
||||
|
||||
conan = callPackage ../development/tools/build-managers/conan { };
|
||||
|
||||
cookiecutter = with python3Packages; toPythonApplication cookiecutter;
|
||||
|
@ -27017,6 +27016,8 @@ with pkgs;
|
|||
|
||||
acpitool = callPackage ../os-specific/linux/acpitool { };
|
||||
|
||||
aldente = callPackage ../os-specific/darwin/aldente { };
|
||||
|
||||
alfred = callPackage ../os-specific/linux/batman-adv/alfred.nix { };
|
||||
|
||||
alertmanager-bot = callPackage ../servers/monitoring/alertmanager-bot { };
|
||||
|
@ -39241,6 +39242,8 @@ with pkgs;
|
|||
stdenv = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
|
||||
});
|
||||
|
||||
rinetd = callPackage ../servers/rinetd { };
|
||||
|
||||
rink = callPackage ../applications/science/misc/rink {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
|
|
|
@ -1711,6 +1711,8 @@ self: super: with self; {
|
|||
|
||||
celery-redbeat = callPackage ../development/python-modules/celery-redbeat { };
|
||||
|
||||
celery-singleton = callPackage ../development/python-modules/celery-singleton { };
|
||||
|
||||
cement = callPackage ../development/python-modules/cement { };
|
||||
|
||||
cemm = callPackage ../development/python-modules/cemm { };
|
||||
|
@ -2707,6 +2709,8 @@ self: super: with self; {
|
|||
|
||||
django-bootstrap4 = callPackage ../development/python-modules/django-bootstrap4 { };
|
||||
|
||||
django-cachalot = callPackage ../development/python-modules/django-cachalot { };
|
||||
|
||||
django-cache-url = callPackage ../development/python-modules/django-cache-url { };
|
||||
|
||||
django-cacheops = callPackage ../development/python-modules/django-cacheops { };
|
||||
|
|
Loading…
Reference in a new issue