mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-10-04 14:00:04 +00:00
Merge master into haskell-updates
This commit is contained in:
@@ -11,6 +11,8 @@ Accepted arguments are:
|
||||
Packages to be installed for the main host's architecture (i.e. x86_64 on x86_64 installations). Along with libraries binaries are also installed.
|
||||
- `multiPkgs`
|
||||
Packages to be installed for all architectures supported by a host (i.e. i686 and x86_64 on x86_64 installations). Only libraries are installed by default.
|
||||
- `multiArch`
|
||||
Whether to install 32bit multiPkgs into the FHSEnv in 64bit environments
|
||||
- `extraBuildCommands`
|
||||
Additional commands to be executed for finalizing the directory structure.
|
||||
- `extraBuildCommandsMulti`
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -196,12 +196,14 @@ buildNpmPackage rec {
|
||||
* `npmDepsHash`: The output hash of the dependencies for this project. Can be calculated in advance with [`prefetch-npm-deps`](#javascript-buildNpmPackage-prefetch-npm-deps).
|
||||
* `makeCacheWritable`: Whether to make the cache writable prior to installing dependencies. Don't set this unless npm tries to write to the cache directory, as it can slow down the build.
|
||||
* `npmBuildScript`: The script to run to build the project. Defaults to `"build"`.
|
||||
* `npmWorkspace`: The workspace directory within the project to build and install.
|
||||
* `dontNpmBuild`: Option to disable running the build script. Set to `true` if the package does not have a build script. Defaults to `false`. Alternatively, setting `buildPhase` explicitly also disables this.
|
||||
* `dontNpmInstall`: Option to disable running `npm install`. Defaults to `false`. Alternatively, setting `installPhase` explicitly also disables this.
|
||||
* `npmFlags`: Flags to pass to all npm commands.
|
||||
* `npmInstallFlags`: Flags to pass to `npm ci` and `npm prune`.
|
||||
* `npmInstallFlags`: Flags to pass to `npm ci`.
|
||||
* `npmBuildFlags`: Flags to pass to `npm run ${npmBuildScript}`.
|
||||
* `npmPackFlags`: Flags to pass to `npm pack`.
|
||||
* `npmPruneFlags`: Flags to pass to `npm prune`. Defaults to the value of `npmInstallFlags`.
|
||||
|
||||
#### prefetch-npm-deps {#javascript-buildNpmPackage-prefetch-npm-deps}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -4604,6 +4604,12 @@
|
||||
githubId = 54799;
|
||||
name = "Edward Tjörnhammar";
|
||||
};
|
||||
ee2500 = {
|
||||
email = "earthengine@skiff.com";
|
||||
github = "ee2500";
|
||||
githubId = 134107129;
|
||||
name = "EarthEngine";
|
||||
};
|
||||
eelco = {
|
||||
email = "edolstra+nixpkgs@gmail.com";
|
||||
github = "edolstra";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -28,7 +28,7 @@ in
|
||||
type = types.package;
|
||||
default = pkgs.xonsh;
|
||||
defaultText = literalExpression "pkgs.xonsh";
|
||||
example = literalExpression "pkgs.xonsh.override { configFile = \"/path/to/xonshrc\"; }";
|
||||
example = literalExpression "pkgs.xonsh.override { extraPackages = ps: [ ps.requests ]; }";
|
||||
description = lib.mdDoc ''
|
||||
xonsh package to use.
|
||||
'';
|
||||
@@ -83,4 +83,3 @@ in
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -250,9 +250,9 @@ in
|
||||
|
||||
environment = {
|
||||
LEMMY_UI_HOST = "127.0.0.1:${toString cfg.ui.port}";
|
||||
LEMMY_INTERNAL_HOST = "127.0.0.1:${toString cfg.settings.port}";
|
||||
LEMMY_EXTERNAL_HOST = cfg.settings.hostname;
|
||||
LEMMY_HTTPS = "false";
|
||||
LEMMY_UI_LEMMY_INTERNAL_HOST = "127.0.0.1:${toString cfg.settings.port}";
|
||||
LEMMY_UI_LEMMY_EXTERNAL_HOST = cfg.settings.hostname;
|
||||
LEMMY_UI_HTTPS = "false";
|
||||
};
|
||||
|
||||
documentation = [
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
|
||||
@@ -268,6 +268,17 @@ in
|
||||
environment.systemPackages = [ sddm ];
|
||||
services.dbus.packages = [ sddm ];
|
||||
|
||||
# We're not using the upstream unit, so copy these: https://github.com/sddm/sddm/blob/develop/services/sddm.service.in
|
||||
systemd.services.display-manager.after = [
|
||||
"systemd-user-sessions.service"
|
||||
"getty@tty7.service"
|
||||
"plymouth-quit.service"
|
||||
"systemd-logind.service"
|
||||
];
|
||||
systemd.services.display-manager.conflicts = [
|
||||
"getty@tty7.service"
|
||||
];
|
||||
|
||||
# To enable user switching, allow sddm to allocate TTYs/displays dynamically.
|
||||
services.xserver.tty = null;
|
||||
services.xserver.display = null;
|
||||
|
||||
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}";
|
||||
|
||||
@@ -98,7 +98,8 @@ in
|
||||
type = types.path;
|
||||
# Dimensions are 48x48 to match GDM logo
|
||||
default = "${nixos-icons}/share/icons/hicolor/48x48/apps/nix-snowflake-white.png";
|
||||
defaultText = literalExpression ''pkgs.fetchurl {
|
||||
defaultText = literalExpression ''"''${nixos-icons}/share/icons/hicolor/48x48/apps/nix-snowflake-white.png"'';
|
||||
example = literalExpression ''pkgs.fetchurl {
|
||||
url = "https://nixos.org/logo/nixos-hires.png";
|
||||
sha256 = "1ivzgd7iz0i06y36p8m5w48fd8pjqwxhdaavc0pxs7w1g7mcy5si";
|
||||
}'';
|
||||
@@ -134,6 +135,13 @@ in
|
||||
# XXX: Needed because we supply a different set of plugins in initrd.
|
||||
environment.etc."plymouth/plugins".source = "${plymouth}/lib/plymouth";
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /run/plymouth 0755 root root 0 -"
|
||||
"L+ /run/plymouth/plymouthd.defaults - - - - /etc/plymouth/plymouthd.defaults"
|
||||
"L+ /run/plymouth/themes - - - - /etc/plymouth/themes"
|
||||
"L+ /run/plymouth/plugins - - - - /etc/plymouth/plugins"
|
||||
];
|
||||
|
||||
systemd.packages = [ plymouth ];
|
||||
|
||||
systemd.services.plymouth-kexec.wantedBy = [ "kexec.target" ];
|
||||
@@ -160,8 +168,8 @@ in
|
||||
contents = {
|
||||
# Files
|
||||
"/etc/plymouth/plymouthd.conf".source = configFile;
|
||||
"/etc/plymouth/plymouthd.defaults".source = "${plymouth}/share/plymouth/plymouthd.defaults";
|
||||
"/etc/plymouth/logo.png".source = cfg.logo;
|
||||
"/etc/plymouth/plymouthd.defaults".source = "${plymouth}/share/plymouth/plymouthd.defaults";
|
||||
# Directories
|
||||
"/etc/plymouth/plugins".source = pkgs.runCommand "plymouth-initrd-plugins" {} ''
|
||||
# Check if the actual requested theme is here
|
||||
@@ -174,8 +182,8 @@ in
|
||||
|
||||
mkdir -p $out/renderers
|
||||
# module might come from a theme
|
||||
cp ${themesEnv}/lib/plymouth/{text,details,label,$moduleName}.so $out
|
||||
cp ${plymouth}/lib/plymouth/renderers/{drm,frame-buffer}.so $out/renderers
|
||||
cp ${themesEnv}/lib/plymouth/*.so $out
|
||||
cp ${plymouth}/lib/plymouth/renderers/*.so $out/renderers
|
||||
'';
|
||||
"/etc/plymouth/themes".source = pkgs.runCommand "plymouth-initrd-themes" {} ''
|
||||
# Check if the actual requested theme is here
|
||||
@@ -184,19 +192,24 @@ in
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir $out
|
||||
cp -r ${themesEnv}/share/plymouth/themes/${cfg.theme} $out
|
||||
mkdir -p $out/${cfg.theme}
|
||||
cp -r ${themesEnv}/share/plymouth/themes/${cfg.theme}/* $out/${cfg.theme}
|
||||
# Copy more themes if the theme depends on others
|
||||
for theme in $(grep -hRo '/etc/plymouth/themes/.*$' $out | xargs -n1 basename); do
|
||||
for theme in $(grep -hRo '/share/plymouth/themes/.*$' $out | xargs -n1 basename); do
|
||||
if [[ -d "${themesEnv}/share/plymouth/themes/$theme" ]]; then
|
||||
if [[ ! -d "$out/$theme" ]]; then
|
||||
echo "Adding dependent theme: $theme"
|
||||
cp -r "${themesEnv}/share/plymouth/themes/$theme" $out
|
||||
mkdir -p "$out/$theme"
|
||||
cp -r "${themesEnv}/share/plymouth/themes/$theme"/* "$out/$theme"
|
||||
fi
|
||||
else
|
||||
echo "Missing theme dependency: $theme"
|
||||
fi
|
||||
done
|
||||
# Fixup references
|
||||
for theme in $out/*/*.plymouth; do
|
||||
sed -i "s,${builtins.storeDir}/.*/share/plymouth/themes,$out," "$theme"
|
||||
done
|
||||
'';
|
||||
|
||||
# Fonts
|
||||
@@ -225,6 +238,11 @@ in
|
||||
plymouth-switch-root-initramfs.wantedBy = [ "halt.target" "kexec.target" "plymouth-switch-root-initramfs.service" "poweroff.target" "reboot.target" ];
|
||||
plymouth-switch-root.wantedBy = [ "initrd-switch-root.target" ];
|
||||
};
|
||||
# Link in runtime files before starting
|
||||
services.plymouth-start.preStart = ''
|
||||
mkdir -p /run/plymouth
|
||||
ln -sf /etc/plymouth/{plymouthd.defaults,themes,plugins} /run/plymouth/
|
||||
'';
|
||||
};
|
||||
|
||||
# Insert required udev rules. We take stage 2 systemd because the udev
|
||||
@@ -249,8 +267,8 @@ in
|
||||
|
||||
mkdir -p $out/lib/plymouth/renderers
|
||||
# module might come from a theme
|
||||
cp ${themesEnv}/lib/plymouth/{text,details,label,$moduleName}.so $out/lib/plymouth
|
||||
cp ${plymouth}/lib/plymouth/renderers/{drm,frame-buffer}.so $out/lib/plymouth/renderers
|
||||
cp ${themesEnv}/lib/plymouth/*.so $out/lib/plymouth
|
||||
cp ${plymouth}/lib/plymouth/renderers/*.so $out/lib/plymouth/renderers
|
||||
|
||||
mkdir -p $out/share/plymouth/themes
|
||||
cp ${plymouth}/share/plymouth/plymouthd.defaults $out/share/plymouth
|
||||
@@ -267,7 +285,7 @@ in
|
||||
chmod -R +w themes
|
||||
find themes -type f | while read file
|
||||
do
|
||||
sed -i "s,/nix/.*/share/plymouth/themes,$out/share/plymouth/themes,g" $file
|
||||
sed -i "s,${builtins.storeDir}/.*/share/plymouth/themes,$out/share/plymouth/themes,g" $file
|
||||
done
|
||||
|
||||
# Install themes
|
||||
@@ -275,7 +293,7 @@ in
|
||||
|
||||
# Install logo
|
||||
mkdir -p $out/etc/plymouth
|
||||
cp -r -L ${themesEnv}/etc/plymouth $out
|
||||
cp -r -L ${themesEnv}/etc/plymouth $out/etc
|
||||
|
||||
# Setup font
|
||||
mkdir -p $out/share/fonts
|
||||
@@ -304,11 +322,11 @@ in
|
||||
boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) (mkAfter ''
|
||||
mkdir -p /etc/plymouth
|
||||
mkdir -p /run/plymouth
|
||||
ln -s $extraUtils/etc/plymouth/logo.png /etc/plymouth/logo.png
|
||||
ln -s ${configFile} /etc/plymouth/plymouthd.conf
|
||||
ln -s $extraUtils/share/plymouth/plymouthd.defaults /etc/plymouth/plymouthd.defaults
|
||||
ln -s $extraUtils/share/plymouth/logo.png /etc/plymouth/logo.png
|
||||
ln -s $extraUtils/share/plymouth/themes /etc/plymouth/themes
|
||||
ln -s $extraUtils/lib/plymouth /etc/plymouth/plugins
|
||||
ln -s $extraUtils/share/plymouth/plymouthd.defaults /run/plymouth/plymouthd.defaults
|
||||
ln -s $extraUtils/share/plymouth/themes /run/plymouth/themes
|
||||
ln -s $extraUtils/lib/plymouth /run/plymouth/plugins
|
||||
ln -s $extraUtils/etc/fonts /etc/fonts
|
||||
|
||||
plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -85,6 +85,14 @@ in {
|
||||
considered failed and systemd will attempt to restart it.
|
||||
'';
|
||||
};
|
||||
|
||||
ui = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc ''
|
||||
Enables the (experimental) LXD UI.
|
||||
'');
|
||||
|
||||
package = mkPackageOption pkgs.lxd "ui" { };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -143,6 +151,10 @@ in {
|
||||
path = [ pkgs.util-linux ]
|
||||
++ optional cfg.zfsSupport config.boot.zfs.package;
|
||||
|
||||
environment = mkIf (cfg.ui.enable) {
|
||||
"LXD_UI" = cfg.ui.package;
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "@${cfg.package}/bin/lxd lxd --group lxd";
|
||||
ExecStartPost = "${cfg.package}/bin/lxd waitready --timeout=${cfg.startTimeout}";
|
||||
|
||||
@@ -436,6 +436,7 @@ in {
|
||||
lxd = handleTest ./lxd.nix {};
|
||||
lxd-nftables = handleTest ./lxd-nftables.nix {};
|
||||
lxd-image-server = handleTest ./lxd-image-server.nix {};
|
||||
lxd-ui = handleTest ./lxd-ui.nix {};
|
||||
#logstash = handleTest ./logstash.nix {};
|
||||
lorri = handleTest ./lorri/default.nix {};
|
||||
maddy = discoverTests (import ./maddy { inherit handleTest; });
|
||||
|
||||
@@ -25,8 +25,6 @@ in
|
||||
site_name = "Lemmy FTW";
|
||||
admin_email = "mightyiam@example.com";
|
||||
};
|
||||
# https://github.com/LemmyNet/lemmy/blob/50efb1d519c63a7007a07f11cc8a11487703c70d/crates/utils/src/settings/mod.rs#L52
|
||||
database.uri = "postgres:///lemmy?host=/run/postgresql&user=lemmy";
|
||||
};
|
||||
secretFile = /etc/lemmy-config.hjson;
|
||||
caddy.enable = true;
|
||||
|
||||
35
nixos/tests/lxd-ui.nix
Normal file
35
nixos/tests/lxd-ui.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||
name = "lxd-ui";
|
||||
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ jnsgruk ];
|
||||
};
|
||||
|
||||
nodes.machine = { lib, ... }: {
|
||||
virtualisation = {
|
||||
lxd.enable = true;
|
||||
lxd.ui.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.curl ];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("sockets.target")
|
||||
machine.wait_for_unit("lxd.service")
|
||||
machine.wait_for_file("/var/lib/lxd/unix.socket")
|
||||
|
||||
# Wait for lxd to settle
|
||||
machine.succeed("lxd waitready")
|
||||
|
||||
# Configure LXC listen address
|
||||
machine.succeed("lxc config set core.https_address :8443")
|
||||
machine.succeed("systemctl restart lxd")
|
||||
|
||||
# Check that the LXD_UI environment variable is populated in the systemd unit
|
||||
machine.succeed("cat /etc/systemd/system/lxd.service | grep 'LXD_UI'")
|
||||
|
||||
# Ensure the endpoint returns an HTML page with 'LXD UI' in the title
|
||||
machine.succeed("curl -kLs https://localhost:8443/ui | grep '<title>LXD UI</title>'")
|
||||
'';
|
||||
})
|
||||
@@ -23,14 +23,14 @@ let
|
||||
enableOCR = true;
|
||||
|
||||
testScript = { nodes, ... }: let
|
||||
user = nodes.machine.config.users.users.alice;
|
||||
user = nodes.machine.users.users.alice;
|
||||
in ''
|
||||
start_all()
|
||||
machine.wait_for_text("(?i)select your user")
|
||||
machine.screenshot("sddm")
|
||||
machine.send_chars("${user.password}\n")
|
||||
machine.wait_for_file("${user.home}/.Xauthority")
|
||||
machine.succeed("xauth merge ${user.home}/.Xauthority")
|
||||
machine.wait_for_file("/tmp/xauth_*")
|
||||
machine.succeed("xauth merge /tmp/xauth_*")
|
||||
machine.wait_for_window("^IceWM ")
|
||||
'';
|
||||
};
|
||||
@@ -55,12 +55,10 @@ let
|
||||
services.xserver.windowManager.icewm.enable = true;
|
||||
};
|
||||
|
||||
testScript = { nodes, ... }: let
|
||||
user = nodes.machine.config.users.users.alice;
|
||||
in ''
|
||||
testScript = { nodes, ... }: ''
|
||||
start_all()
|
||||
machine.wait_for_file("${user.home}/.Xauthority")
|
||||
machine.succeed("xauth merge ${user.home}/.Xauthority")
|
||||
machine.wait_for_file("/tmp/xauth_*")
|
||||
machine.succeed("xauth merge /tmp/xauth_*")
|
||||
machine.wait_for_window("^IceWM ")
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
'';
|
||||
|
||||
@@ -16,7 +16,7 @@ let
|
||||
in appimageTools.wrapType2 {
|
||||
inherit pname version src;
|
||||
|
||||
multiPkgs = null; # no 32bit needed
|
||||
multiArch = false; # no 32bit needed
|
||||
extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ];
|
||||
|
||||
extraInstallCommands = ''
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "ptcollab";
|
||||
version = "0.6.4.6";
|
||||
version = "0.6.4.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yuxshao";
|
||||
repo = "ptcollab";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-G0QQV0mvrrBAC2LSy45/NnEbHHA8/E0SZKJXvuVidRE=";
|
||||
hash = "sha256-KYNov/HbKM2d8VVO8iyWA3XWFDE9iWeKkRCNC1xlPNw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -28,7 +28,7 @@ let
|
||||
in appimageTools.wrapType2 rec {
|
||||
inherit name src;
|
||||
|
||||
multiPkgs = null; # no p32bit needed
|
||||
multiArch = false; # no p32bit needed
|
||||
extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
|
||||
|
||||
extraInstallCommands = ''
|
||||
|
||||
@@ -1,59 +1,44 @@
|
||||
{ mkDerivation, lib, fetchFromGitHub, fetchpatch
|
||||
, cmake, extra-cmake-modules, pkg-config, libxcb, libpthreadstubs
|
||||
, libXdmcp, libXau, qtbase, qtdeclarative, qtquickcontrols2, qttools, pam, systemd
|
||||
{ mkDerivation, lib, fetchFromGitHub
|
||||
, cmake, extra-cmake-modules, pkg-config, qttools
|
||||
, libxcb, libXau, pam, qtbase, qtdeclarative, qtquickcontrols2, systemd, xkeyboardconfig
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.19.0";
|
||||
|
||||
in mkDerivation {
|
||||
mkDerivation rec {
|
||||
pname = "sddm";
|
||||
inherit version;
|
||||
version = "0.20.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sddm";
|
||||
repo = "sddm";
|
||||
rev = "v${version}";
|
||||
sha256 = "1s6icb5r1n6grfs137gdzfrcvwsb3hvlhib2zh6931x8pkl1qvxa";
|
||||
hash = "sha256-ctZln1yQov+p/outkQhcWZp46IKITC04e22RfePwEM4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./sddm-ignore-config-mtime.patch
|
||||
./sddm-default-session.patch
|
||||
# Load `/etc/profile` for `environment.variables` with zsh default shell.
|
||||
# See: https://github.com/sddm/sddm/pull/1382
|
||||
(fetchpatch {
|
||||
url = "https://github.com/sddm/sddm/commit/e1dedeeab6de565e043f26ac16033e613c222ef9.patch";
|
||||
sha256 = "sha256-OPyrUI3bbH+PGDBfoL4Ohb4wIvmy9TeYZhE0JxR/D58=";
|
||||
})
|
||||
# Fix build with Qt 5.15.3
|
||||
# See: https://github.com/sddm/sddm/pull/1325
|
||||
(fetchpatch {
|
||||
url = "https://github.com/sddm/sddm/commit/e93bf95c54ad8c2a1604f8d7be05339164b19308.patch";
|
||||
sha256 = "sha256:1rh6sdvzivjcl5b05fczarvxhgpjhi7019hvf2gadnwgwdg104r4";
|
||||
})
|
||||
# Fix fails to start while starting X server
|
||||
# See: https://github.com/sddm/sddm/pull/1324
|
||||
(fetchpatch {
|
||||
url = "https://github.com/sddm/sddm/commit/adfaa222fdfa6115ea2b320b0bbc2126db9270a5.patch";
|
||||
sha256 = "sha256-q/YLlAjxluzHMKUUQglLo3RyyhERQGPHXGr56+4R9VU=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch =
|
||||
# Fix missing include for gettimeofday()
|
||||
''
|
||||
sed -e '1i#include <sys/time.h>' -i src/helper/HelperApp.cpp
|
||||
'';
|
||||
postPatch = ''
|
||||
substituteInPlace src/greeter/waylandkeyboardbackend.cpp \
|
||||
--replace "/usr/share/X11/xkb/rules/evdev.xml" "${xkeyboardconfig}/share/X11/xkb/rules/evdev.xml"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake extra-cmake-modules pkg-config qttools ];
|
||||
|
||||
buildInputs = [
|
||||
libxcb libpthreadstubs libXdmcp libXau pam qtbase qtdeclarative qtquickcontrols2 systemd
|
||||
libxcb
|
||||
libXau
|
||||
pam
|
||||
qtbase
|
||||
qtdeclarative
|
||||
qtquickcontrols2
|
||||
systemd
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCONFIG_FILE=/etc/sddm.conf"
|
||||
"-DCONFIG_DIR=/etc/sddm.conf.d"
|
||||
|
||||
# Set UID_MIN and UID_MAX so that the build script won't try
|
||||
# to read them from /etc/login.defs (fails in chroot).
|
||||
# The values come from NixOS; they may not be appropriate
|
||||
@@ -62,9 +47,15 @@ in mkDerivation {
|
||||
"-DUID_MIN=1000"
|
||||
"-DUID_MAX=29999"
|
||||
|
||||
# we still want to run the DM on VT 7 for the time being, as 1-6 are
|
||||
# occupied by getties by default
|
||||
"-DSDDM_INITIAL_VT=7"
|
||||
|
||||
"-DQT_IMPORTS_DIR=${placeholder "out"}/${qtbase.qtQmlPrefix}"
|
||||
"-DCMAKE_INSTALL_SYSCONFDIR=${placeholder "out"}/etc"
|
||||
"-DSYSTEMD_SYSTEM_UNIT_DIR=${placeholder "out"}/lib/systemd/system"
|
||||
"-DSYSTEMD_SYSUSERS_DIR=${placeholder "out"}/lib/sysusers.d"
|
||||
"-DSYSTEMD_TMPFILES_DIR=${placeholder "out"}/lib/tmpfiles.d"
|
||||
"-DDBUS_CONFIG_DIR=${placeholder "out"}/share/dbus-1/system.d"
|
||||
];
|
||||
|
||||
|
||||
@@ -1,38 +1,39 @@
|
||||
diff --git a/src/common/Configuration.h b/src/common/Configuration.h
|
||||
index cf44a62..7bb9c03 100644
|
||||
index 54bcace..49cf5cb 100644
|
||||
--- a/src/common/Configuration.h
|
||||
+++ b/src/common/Configuration.h
|
||||
@@ -44,6 +44,7 @@ namespace SDDM {
|
||||
"NOTE: Currently ignored if autologin is enabled."));
|
||||
@@ -48,6 +48,8 @@ namespace SDDM {
|
||||
Entry(InputMethod, QString, QStringLiteral("qtvirtualkeyboard"), _S("Input method module"));
|
||||
Entry(Namespaces, QStringList, QStringList(), _S("Comma-separated list of Linux namespaces for user session to enter"));
|
||||
Entry(GreeterEnvironment, QStringList, QStringList(), _S("Comma-separated list of environment variables to be set"));
|
||||
+ Entry(DefaultSession, QString, QString(), _S("System-wide default session"));
|
||||
+
|
||||
// Name Entries (but it's a regular class again)
|
||||
Section(Theme,
|
||||
Entry(ThemeDir, QString, _S(DATA_INSTALL_DIR "/themes"), _S("Theme directory path"));
|
||||
diff --git a/src/greeter/SessionModel.cpp b/src/greeter/SessionModel.cpp
|
||||
index 1953c76..54fe2f2 100644
|
||||
index d8698b7..df3e3c4 100644
|
||||
--- a/src/greeter/SessionModel.cpp
|
||||
+++ b/src/greeter/SessionModel.cpp
|
||||
@@ -43,6 +43,7 @@ namespace SDDM {
|
||||
beginResetModel();
|
||||
populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get());
|
||||
@@ -49,6 +49,7 @@ namespace SDDM {
|
||||
if (dri_active)
|
||||
populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get());
|
||||
populate(Session::X11Session, mainConfig.X11.SessionDir.get());
|
||||
+ selectDefaultSession();
|
||||
endResetModel();
|
||||
|
||||
|
||||
// refresh everytime a file is changed, added or removed
|
||||
@@ -52,6 +53,7 @@ namespace SDDM {
|
||||
d->sessions.clear();
|
||||
populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get());
|
||||
@@ -62,6 +63,7 @@ namespace SDDM {
|
||||
if (dri_active)
|
||||
populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get());
|
||||
populate(Session::X11Session, mainConfig.X11.SessionDir.get());
|
||||
+ selectDefaultSession();
|
||||
endResetModel();
|
||||
});
|
||||
watcher->addPath(mainConfig.Wayland.SessionDir.get());
|
||||
@@ -149,11 +151,25 @@ namespace SDDM {
|
||||
else
|
||||
watcher->addPaths(mainConfig.Wayland.SessionDir.get());
|
||||
@@ -164,11 +166,25 @@ namespace SDDM {
|
||||
delete si;
|
||||
}
|
||||
}
|
||||
+ }
|
||||
+
|
||||
@@ -58,14 +59,13 @@ index 1953c76..54fe2f2 100644
|
||||
}
|
||||
}
|
||||
diff --git a/src/greeter/SessionModel.h b/src/greeter/SessionModel.h
|
||||
index 2e2efa9..a93315c 100644
|
||||
index 8f4d539..02f77ce 100644
|
||||
--- a/src/greeter/SessionModel.h
|
||||
+++ b/src/greeter/SessionModel.h
|
||||
@@ -58,6 +58,7 @@ namespace SDDM {
|
||||
@@ -59,6 +59,7 @@ namespace SDDM {
|
||||
SessionModelPrivate *d { nullptr };
|
||||
|
||||
void populate(Session::Type type, const QString &path);
|
||||
|
||||
void populate(Session::Type type, const QStringList &dirPaths);
|
||||
+ void selectDefaultSession();
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
, variant
|
||||
, src
|
||||
, patches ? _: [ ]
|
||||
, meta
|
||||
}:
|
||||
|
||||
{ lib
|
||||
@@ -391,44 +392,7 @@ mkDerivation (finalAttrs: (lib.optionalAttrs withNativeCompilation {
|
||||
treeSitter = builtins.trace "emacs.passthru: treeSitter was renamed to withTreeSitter and will be removed in 23.11" withTreeSitter;
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = if variant == "macport"
|
||||
then "https://bitbucket.org/mituharu/emacs-mac/"
|
||||
else "https://www.gnu.org/software/emacs/";
|
||||
description = "The extensible, customizable GNU text editor"
|
||||
+ lib.optionalString (variant == "macport") " - with macport patches";
|
||||
longDescription = ''
|
||||
GNU Emacs is an extensible, customizable text editor—and more. At its
|
||||
core is an interpreter for Emacs Lisp, a dialect of the Lisp programming
|
||||
language with extensions to support text editing.
|
||||
|
||||
The features of GNU Emacs include: content-sensitive editing modes,
|
||||
including syntax coloring, for a wide variety of file types including
|
||||
plain text, source code, and HTML; complete built-in documentation,
|
||||
including a tutorial for new users; full Unicode support for nearly all
|
||||
human languages and their scripts; highly customizable, using Emacs Lisp
|
||||
code or a graphical interface; a large number of extensions that add other
|
||||
functionality, including a project planner, mail and news reader, debugger
|
||||
interface, calendar, and more. Many of these extensions are distributed
|
||||
with GNU Emacs; others are available separately.
|
||||
''
|
||||
+ lib.optionalString (variant == "macport") ''
|
||||
|
||||
This release is built from Mitsuharu Yamamoto's patched, MacOS X-specific
|
||||
source code.
|
||||
'';
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [
|
||||
AndersonTorres
|
||||
adisbladis
|
||||
atemu
|
||||
jwiegley
|
||||
lovek323
|
||||
matthewbauer
|
||||
];
|
||||
platforms = if variant == "macport"
|
||||
then lib.platforms.darwin
|
||||
else lib.platforms.all;
|
||||
meta = meta // {
|
||||
broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform);
|
||||
};
|
||||
}))
|
||||
|
||||
@@ -3,6 +3,37 @@
|
||||
, fetchFromSavannah
|
||||
}:
|
||||
|
||||
let
|
||||
mainlineMeta = {
|
||||
homepage = "https://www.gnu.org/software/emacs/";
|
||||
description = "The extensible, customizable GNU text editor";
|
||||
longDescription = ''
|
||||
GNU Emacs is an extensible, customizable text editor—and more. At its core
|
||||
is an interpreter for Emacs Lisp, a dialect of the Lisp programming
|
||||
language with extensions to support text editing.
|
||||
|
||||
The features of GNU Emacs include: content-sensitive editing modes,
|
||||
including syntax coloring, for a wide variety of file types including
|
||||
plain text, source code, and HTML; complete built-in documentation,
|
||||
including a tutorial for new users; full Unicode support for nearly all
|
||||
human languages and their scripts; highly customizable, using Emacs Lisp
|
||||
code or a graphical interface; a large number of extensions that add other
|
||||
functionality, including a project planner, mail and news reader, debugger
|
||||
interface, calendar, and more. Many of these extensions are distributed
|
||||
with GNU Emacs; others are available separately.
|
||||
'';
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [
|
||||
AndersonTorres
|
||||
adisbladis
|
||||
atemu
|
||||
jwiegley
|
||||
lovek323
|
||||
matthewbauer
|
||||
];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
in
|
||||
{
|
||||
emacs28 = import ./generic.nix {
|
||||
pname = "emacs";
|
||||
@@ -13,6 +44,8 @@
|
||||
rev = "28.2";
|
||||
hash = "sha256-4oSLcUDR0MOEt53QOiZSVU8kPJ67GwugmBxdX3F15Ag=";
|
||||
};
|
||||
|
||||
meta = mainlineMeta;
|
||||
};
|
||||
|
||||
emacs29 = import ./generic.nix {
|
||||
@@ -24,6 +57,8 @@
|
||||
rev = "29.0.92";
|
||||
hash = "sha256-Vkry+2zYejZVwZKQlmQiAJnbjsj87DiIZ1ungooYd8A=";
|
||||
};
|
||||
|
||||
meta = mainlineMeta;
|
||||
};
|
||||
|
||||
emacs-macport = import ./generic.nix {
|
||||
@@ -36,5 +71,17 @@
|
||||
rev = "emacs-28.2-mac-9.1";
|
||||
hash = "sha256-Ne2jQ2nVLNiQmnkkOXVc5AkLVkTpm8pFC7VNY2gQjPE=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://bitbucket.org/mituharu/emacs-mac/";
|
||||
description = mainlineMeta.description + " - with macport patches";
|
||||
longDescription = mainlineMeta.longDescription + ''
|
||||
|
||||
This release is built from Mitsuharu Yamamoto's patched source code
|
||||
tailoired for MacOS X.
|
||||
'';
|
||||
inherit (mainlineMeta) license maintainers;
|
||||
platforms = lib.platforms.darwin;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,38 +1,45 @@
|
||||
{ callPackage, lib, stdenv, appimageTools, autoPatchelfHook, desktop-file-utils
|
||||
, fetchurl, libsecret }:
|
||||
{ lib, stdenv, fetchurl, dpkg, makeWrapper, electron, libsecret
|
||||
, desktop-file-utils , callPackage }:
|
||||
|
||||
let
|
||||
|
||||
srcjson = builtins.fromJSON (builtins.readFile ./src.json);
|
||||
version = srcjson.version;
|
||||
pname = "standardnotes";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
|
||||
|
||||
src = fetchurl (srcjson.appimage.${stdenv.hostPlatform.system} or throwSystem);
|
||||
in
|
||||
|
||||
appimageContents = appimageTools.extract {
|
||||
inherit name src;
|
||||
};
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook desktop-file-utils ];
|
||||
pname = "standardnotes";
|
||||
|
||||
in appimageTools.wrapType2 rec {
|
||||
inherit name src;
|
||||
src = fetchurl (srcjson.deb.${stdenv.hostPlatform.system} or throwSystem);
|
||||
|
||||
extraPkgs = pkgs: with pkgs; [
|
||||
libsecret
|
||||
];
|
||||
inherit (srcjson) version;
|
||||
|
||||
extraInstallCommands = ''
|
||||
# directory in /nix/store so readonly
|
||||
cd $out
|
||||
chmod -R +w $out
|
||||
mv $out/bin/${name} $out/bin/${pname}
|
||||
dontConfigure = true;
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper dpkg desktop-file-utils ];
|
||||
|
||||
unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin $out/share/standardnotes
|
||||
cp -R usr/share/{applications,icons} $out/share
|
||||
cp -R opt/Standard\ Notes/resources/app.asar $out/share/standardnotes/
|
||||
|
||||
makeWrapper ${electron}/bin/electron $out/bin/standardnotes \
|
||||
--add-flags $out/share/standardnotes/app.asar \
|
||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret stdenv.cc.cc.lib ]}
|
||||
|
||||
# fixup and install desktop file
|
||||
${desktop-file-utils}/bin/desktop-file-install --dir $out/share/applications \
|
||||
--set-key Exec --set-value ${pname} ${appimageContents}/standard-notes.desktop
|
||||
ln -s ${appimageContents}/usr/share/icons share
|
||||
--set-key Exec --set-value standardnotes usr/share/applications/standard-notes.desktop
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = callPackage ./update.nix {};
|
||||
@@ -47,6 +54,6 @@ in appimageTools.wrapType2 rec {
|
||||
license = licenses.agpl3;
|
||||
maintainers = with maintainers; [ mgregoire chuangzhu squalus ];
|
||||
sourceProvenance = [ sourceTypes.binaryNativeCode ];
|
||||
platforms = builtins.attrNames srcjson.appimage;
|
||||
platforms = builtins.attrNames srcjson.deb;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"version": "3.162.8",
|
||||
"appimage": {
|
||||
"deb": {
|
||||
"x86_64-linux": {
|
||||
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.162.8/standard-notes-3.162.8-linux-x86_64.AppImage",
|
||||
"hash": "sha512-+JoY/x99RDLLjERaFhye0Bsg5FWFAgTPr6tqjXOYjHYuztYhmOZnieIGF8hS0iZsSPoQG9mm2mUVOTEHhXvm8A=="
|
||||
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.162.8/standard-notes-3.162.8-linux-amd64.deb",
|
||||
"hash": "sha512-XxSz1ZXCVzNBqX5BQ4nytFla1igEttV/pQ40r3HW6BQfy6yprQqmQ94OMJSx7kpfeQpxnwBMOUsA58QM3W7y1w=="
|
||||
},
|
||||
"aarch64-linux": {
|
||||
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.162.8/standard-notes-3.162.8-linux-arm64.AppImage",
|
||||
"hash": "sha512-7/oHUJQBlTr4mL8ETESW6PC9rWewAUGHLtdCwNmnhh9zTBWxc0jO8fLikDDql5vrlCCGhZqmnmmlvMGNFFLBdw=="
|
||||
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.162.8/standard-notes-3.162.8-linux-arm64.deb",
|
||||
"hash": "sha512-Y1+89UaPfB+UKiVg3JWo3zwH1rFnjdKuU1CBwIjMblzf1775gEMXicU0n+6FpWTphcVmEeah9VISoq0oBHNHtg=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ writeScript "update-standardnotes" ''
|
||||
fi
|
||||
|
||||
function getDownloadUrl() {
|
||||
jq -r ".assets[] | select(.name==\"standard-notes-$newVersion-$1.AppImage\") | .browser_download_url" < "$jsonPath"
|
||||
jq -r ".assets[] | select(.name==\"standard-notes-$newVersion-$1.deb\") | .browser_download_url" < "$jsonPath"
|
||||
}
|
||||
|
||||
function setJsonKey() {
|
||||
@@ -44,11 +44,11 @@ writeScript "update-standardnotes" ''
|
||||
url=$(getDownloadUrl "$upstreamPlatform")
|
||||
hash=$(nix-prefetch-url "$url" --type sha512)
|
||||
sriHash=$(nix hash to-sri --type sha512 $hash)
|
||||
setJsonKey .appimage[\""$nixPlatform"\"].url "$url"
|
||||
setJsonKey .appimage[\""$nixPlatform"\"].hash "$sriHash"
|
||||
setJsonKey .deb[\""$nixPlatform"\"].url "$url"
|
||||
setJsonKey .deb[\""$nixPlatform"\"].hash "$sriHash"
|
||||
}
|
||||
|
||||
updatePlatform x86_64-linux linux-x86_64
|
||||
updatePlatform x86_64-linux linux-amd64
|
||||
updatePlatform aarch64-linux linux-arm64
|
||||
setJsonKey .version "$newVersion"
|
||||
''
|
||||
|
||||
@@ -173,24 +173,24 @@ final: prev:
|
||||
|
||||
LazyVim = buildVimPluginFrom2Nix {
|
||||
pname = "LazyVim";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "LazyVim";
|
||||
repo = "LazyVim";
|
||||
rev = "0b020dc37b30fd93a199f1124a95028cb544eac7";
|
||||
sha256 = "19w7j41xbvy4fcbd2jgmi1jh77bil9cnp64vflfdc3fal2s90mxa";
|
||||
rev = "abea2807ce13c994d5697f0ff19d80f85f678b1b";
|
||||
sha256 = "0wiwh3kis2xs3z006b41c8d8ljl4id4l2hqp9cz2l8gw90g7vicb";
|
||||
};
|
||||
meta.homepage = "https://github.com/LazyVim/LazyVim/";
|
||||
};
|
||||
|
||||
LeaderF = buildVimPluginFrom2Nix {
|
||||
pname = "LeaderF";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Yggdroot";
|
||||
repo = "LeaderF";
|
||||
rev = "e9287c46952a9c434fee71538e5addd5e632f4cb";
|
||||
sha256 = "1vv14p5ysfpc0py0dgvm5hda57cb4nzyqn3mn8brqz91703accns";
|
||||
rev = "5d94b8ce87c8e9eff7d3b9476b2657c081d0e853";
|
||||
sha256 = "178jvc7gdw57afniisllmi2sn31diclpxglc0dkhdd4q9z3qpapm";
|
||||
};
|
||||
meta.homepage = "https://github.com/Yggdroot/LeaderF/";
|
||||
};
|
||||
@@ -305,12 +305,12 @@ final: prev:
|
||||
|
||||
SchemaStore-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "SchemaStore.nvim";
|
||||
version = "2023-06-30";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "b0o";
|
||||
repo = "SchemaStore.nvim";
|
||||
rev = "0ba3914a03a4689441170d6b6796500a09b5c189";
|
||||
sha256 = "1bh5idm700li7757il9k2wk6i84n7ghxz9753gz9d1bdw9rxkg7b";
|
||||
rev = "2c14f75d92d2e68392b4b9957a02040b28004779";
|
||||
sha256 = "1hshbzchifqvck03nrvzy1687hzhsvgxi2wv29czs1dly2d8c74m";
|
||||
};
|
||||
meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
|
||||
};
|
||||
@@ -377,12 +377,12 @@ final: prev:
|
||||
|
||||
SpaceVim = buildVimPluginFrom2Nix {
|
||||
pname = "SpaceVim";
|
||||
version = "2023-07-03";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "SpaceVim";
|
||||
repo = "SpaceVim";
|
||||
rev = "8f8ec15692fe834148ebe13eda2b711bb2309c6f";
|
||||
sha256 = "0cmmnlpjyqq6994qwm7fsnhxhn2r5vcxa8wgmsgh0hi30nncs2jx";
|
||||
rev = "b3906e4eaf53c5931b33c9cd26a847093642a5e7";
|
||||
sha256 = "0svg2n2l680zaszr3r16rrdchv7yj61kxd3b1hkqzh6sj14chr36";
|
||||
};
|
||||
meta.homepage = "https://github.com/SpaceVim/SpaceVim/";
|
||||
};
|
||||
@@ -449,12 +449,12 @@ final: prev:
|
||||
|
||||
YouCompleteMe = buildVimPluginFrom2Nix {
|
||||
pname = "YouCompleteMe";
|
||||
version = "2023-06-27";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ycm-core";
|
||||
repo = "YouCompleteMe";
|
||||
rev = "f93c2e92ce28ffe2a8cbf0560c5af3e05d7a7aa2";
|
||||
sha256 = "110v75v0biqbvhhcjm56ka2kxds4rbym35dlmwkk9yxxi16y10i0";
|
||||
rev = "142a559acd70a4da190e36b1b05b9f1eec67acd0";
|
||||
sha256 = "1mvw668wq30zqlx1adyx9ikw86wkswaf0m22dczfh7i793457lnl";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
|
||||
@@ -595,12 +595,12 @@ final: prev:
|
||||
|
||||
aniseed = buildVimPluginFrom2Nix {
|
||||
pname = "aniseed";
|
||||
version = "2023-02-19";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Olical";
|
||||
repo = "aniseed";
|
||||
rev = "44d2886a9ec38abac61b4c73c2e57fb752232cfe";
|
||||
sha256 = "1kd6l0vy1mnpmchjjrmfmfizia5vs8rsnin9cdwb8awa4hlsf37h";
|
||||
rev = "7bc09736f3651c10d29b82d1a465b7f540614be1";
|
||||
sha256 = "19r8kvrl8nghk9f5wdig26kj51p3dbp0g73gcvn07sjpchbb2fm0";
|
||||
};
|
||||
meta.homepage = "https://github.com/Olical/aniseed/";
|
||||
};
|
||||
@@ -931,12 +931,12 @@ final: prev:
|
||||
|
||||
barbar-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "barbar.nvim";
|
||||
version = "2023-06-13";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "romgrk";
|
||||
repo = "barbar.nvim";
|
||||
rev = "c5e120848c1e505090684589b3adbedac9dcb893";
|
||||
sha256 = "0v2kalfs0xvqbpksnypab7q114s2q13d36ayyjx7anzgs085i06i";
|
||||
rev = "8cca17ea0ced3ba564e5da972a25600edafe7d7b";
|
||||
sha256 = "1fr0207nxmcdpc7whlmmryy4qs7nl5mp1p6h1qi0jv51r705xrpw";
|
||||
};
|
||||
meta.homepage = "https://github.com/romgrk/barbar.nvim/";
|
||||
};
|
||||
@@ -1675,12 +1675,12 @@ final: prev:
|
||||
|
||||
cmp-nvim-ultisnips = buildVimPluginFrom2Nix {
|
||||
pname = "cmp-nvim-ultisnips";
|
||||
version = "2023-01-12";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "quangnguyen30192";
|
||||
repo = "cmp-nvim-ultisnips";
|
||||
rev = "43b69a235b2dc54db692049fe0d5cc60c6b58b4b";
|
||||
sha256 = "0h3xm2pclylvr923sw9g9jj6bh867n0f2c4a9ndg803wky0pxmh0";
|
||||
rev = "24bca5c3e137b28cd87442d4fc51a2b312dd99cc";
|
||||
sha256 = "0frkj8xv1jm96klsff4x2hbqbbyxbfz9iaxq3wx1bldhdb71r88r";
|
||||
};
|
||||
meta.homepage = "https://github.com/quangnguyen30192/cmp-nvim-ultisnips/";
|
||||
};
|
||||
@@ -1987,12 +1987,12 @@ final: prev:
|
||||
|
||||
codeium-vim = buildVimPluginFrom2Nix {
|
||||
pname = "codeium.vim";
|
||||
version = "2023-07-03";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Exafunction";
|
||||
repo = "codeium.vim";
|
||||
rev = "053edb7da8cc32d7a5daeb56d9ad47bb9c05349f";
|
||||
sha256 = "0dshmmclmc1qijac32b3pjk0pifqmi1mppmnsxz2dbmjz8s0wnm7";
|
||||
rev = "7e0054abd2e63bc295bf0ba3aba5ce0d39d11752";
|
||||
sha256 = "1fqcl3npfgzb1z1lh9fv6chsdcgih3dqb3cxwgdzr0q1ciz1xbqy";
|
||||
};
|
||||
meta.homepage = "https://github.com/Exafunction/codeium.vim/";
|
||||
};
|
||||
@@ -2287,24 +2287,24 @@ final: prev:
|
||||
|
||||
coq-artifacts = buildVimPluginFrom2Nix {
|
||||
pname = "coq.artifacts";
|
||||
version = "2023-07-02";
|
||||
version = "2023-07-04";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ms-jpq";
|
||||
repo = "coq.artifacts";
|
||||
rev = "071b03a146b2384ef048751d1ca89b05d011009f";
|
||||
sha256 = "05xbx43d0b5pxqnlx71d368876z70814sq2i89cl72w30455va9h";
|
||||
rev = "6070a67e52212060f6b64646a254cc0c4ee29758";
|
||||
sha256 = "10p3cxlys6vfjf583y93gwab43afr1sn683mc3j9q0nchfy4dz6r";
|
||||
};
|
||||
meta.homepage = "https://github.com/ms-jpq/coq.artifacts/";
|
||||
};
|
||||
|
||||
coq-thirdparty = buildVimPluginFrom2Nix {
|
||||
pname = "coq.thirdparty";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ms-jpq";
|
||||
repo = "coq.thirdparty";
|
||||
rev = "c8c143b3939f4c652ac09f88786bfd1e3a86804e";
|
||||
sha256 = "132vajsrhhqsmnak0k0ngi22qz7w58m0cr0g9cr9kp2ix20635b0";
|
||||
rev = "813bd80f2233314aa6756ae747cc9bf41d816e49";
|
||||
sha256 = "0r2sb0qfivvy26mpvkzd3xlkzmv7vydmv1kw4aqfds1zad59pn2q";
|
||||
};
|
||||
meta.homepage = "https://github.com/ms-jpq/coq.thirdparty/";
|
||||
};
|
||||
@@ -2323,12 +2323,12 @@ final: prev:
|
||||
|
||||
coq_nvim = buildVimPluginFrom2Nix {
|
||||
pname = "coq_nvim";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ms-jpq";
|
||||
repo = "coq_nvim";
|
||||
rev = "c8c141c15d9a6e8d4d6ebff703c6e56afe220b97";
|
||||
sha256 = "0pny8f5xia01n9wj3qxdxpqdv2rxy618m7zczp1cnwib7n9zlg7j";
|
||||
rev = "6027cc975c976de5e96318cbde185e11843a8fbb";
|
||||
sha256 = "14i443hj3bk95nimwfdcrs4pajylp7ks7krmlyd47qr7f0fnabv3";
|
||||
};
|
||||
meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
|
||||
};
|
||||
@@ -2587,12 +2587,12 @@ final: prev:
|
||||
|
||||
deol-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "deol.nvim";
|
||||
version = "2023-07-03";
|
||||
version = "2023-07-04";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Shougo";
|
||||
repo = "deol.nvim";
|
||||
rev = "49721ff72998a9e6cd843574dd2487726b3c5a56";
|
||||
sha256 = "07c4xdkrbc2myai7xwx69j5wj2xllr1lqrn3mkwdp3b71lm2j3wh";
|
||||
rev = "6a471522fa69ec2cabc5fdbb55f5224fe10460a8";
|
||||
sha256 = "1sm81lgwks2yakd4f511zxdn2gx817xw0qrn6jxhrkwhjy3zhgmh";
|
||||
};
|
||||
meta.homepage = "https://github.com/Shougo/deol.nvim/";
|
||||
};
|
||||
@@ -2877,12 +2877,12 @@ final: prev:
|
||||
|
||||
diffview-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "diffview.nvim";
|
||||
version = "2023-06-29";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "sindrets";
|
||||
repo = "diffview.nvim";
|
||||
rev = "766a4f210e67e522659302dc6bd8a8d3b8c08c54";
|
||||
sha256 = "1fyq8d68j4n9659s1gpm7bgkx9x0y17hf5mdgh51rhcmfqx148ah";
|
||||
rev = "94f5f40543e393d9028bae9ce2fedf6da3af701a";
|
||||
sha256 = "0bbj9fr2ijcdj91qf8vw8zm4q3whb7z28mbzazwgw7wm155rg8c4";
|
||||
};
|
||||
meta.homepage = "https://github.com/sindrets/diffview.nvim/";
|
||||
};
|
||||
@@ -2949,12 +2949,12 @@ final: prev:
|
||||
|
||||
dropbar-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "dropbar.nvim";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Bekaboo";
|
||||
repo = "dropbar.nvim";
|
||||
rev = "499058f3f5d8bc7cc73a77b0e0dd7ba4e9fe8ab5";
|
||||
sha256 = "0l1hwya5xydhpr7zwvj3a2vr1dvmq685hrrdcjdypak9xrh5a7d7";
|
||||
rev = "62590d609c806563b9ff9a8e8818d3ce60e4a049";
|
||||
sha256 = "0pzq4vq263vwngykw1zm0p3rs7mby5q347qwr0d17kr37b3sh9m7";
|
||||
};
|
||||
meta.homepage = "https://github.com/Bekaboo/dropbar.nvim/";
|
||||
};
|
||||
@@ -3034,12 +3034,12 @@ final: prev:
|
||||
|
||||
elixir-tools-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "elixir-tools.nvim";
|
||||
version = "2023-06-29";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "elixir-tools";
|
||||
repo = "elixir-tools.nvim";
|
||||
rev = "bb9f59b2b51612bc99c2f1efbc6c5241b3213286";
|
||||
sha256 = "1q1hivrvbcf48ryldpr6g5b839fyyqz7fs750bsny2mq5v11bq2y";
|
||||
rev = "e0c713f86333faf0484543b4c50d14ce8d1de1d2";
|
||||
sha256 = "1nxydkvdypbb4q29sfq6axw1vc4554n02bmsv59h0kxlsyaa7hl1";
|
||||
};
|
||||
meta.homepage = "https://github.com/elixir-tools/elixir-tools.nvim/";
|
||||
};
|
||||
@@ -3288,12 +3288,12 @@ final: prev:
|
||||
|
||||
flash-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "flash.nvim";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "folke";
|
||||
repo = "flash.nvim";
|
||||
rev = "780ad57dedb464bfe8361356959b3ac5aaed533d";
|
||||
sha256 = "1vk76jgjhl2vdd0h7nf3vyx6pf7zd7kjlfai9hc6xg2s5r9cn4hz";
|
||||
rev = "21f8e9613bacb7a70ced583d4bcf04ae8067916d";
|
||||
sha256 = "0cv7q900a3rgv68n3vmh4wncvz0ghry6ypyn84xhzb0mkp0d66yf";
|
||||
};
|
||||
meta.homepage = "https://github.com/folke/flash.nvim/";
|
||||
};
|
||||
@@ -3372,12 +3372,12 @@ final: prev:
|
||||
|
||||
flutter-tools-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "flutter-tools.nvim";
|
||||
version = "2023-06-17";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "akinsho";
|
||||
repo = "flutter-tools.nvim";
|
||||
rev = "5de1b5fca5e07849b2626c8aeda81d2ba6362af1";
|
||||
sha256 = "06f48a45wdd67y7rzfrnq3ccyfnmhpzkl0gin1yfi5g7gcgbsh8v";
|
||||
rev = "7850a771c4e773dc49d63081f508d004b416c13e";
|
||||
sha256 = "0vjnhsy0bm4xz9rpxda5n2yiy37yl8h90sh15lw04yc5rwcz88wi";
|
||||
};
|
||||
meta.homepage = "https://github.com/akinsho/flutter-tools.nvim/";
|
||||
};
|
||||
@@ -3408,12 +3408,12 @@ final: prev:
|
||||
|
||||
friendly-snippets = buildVimPluginFrom2Nix {
|
||||
pname = "friendly-snippets";
|
||||
version = "2023-07-03";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rafamadriz";
|
||||
repo = "friendly-snippets";
|
||||
rev = "17245edcd1195ad88d60ae13fb1e90d1df9b2fc9";
|
||||
sha256 = "0n8imakzhqirgvxwhvrgp8lc2zsp1xkyc4pajv4clyjlm4shjzvi";
|
||||
rev = "a94db1ee6ddfd238e725b0f90163fdd65d382464";
|
||||
sha256 = "0y8lrwnrm3xza6mh329fd3xcnwmiqlvsycksiqr3am8gjmd3ir4z";
|
||||
};
|
||||
meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
|
||||
};
|
||||
@@ -3516,12 +3516,12 @@ final: prev:
|
||||
|
||||
fzf-lua = buildVimPluginFrom2Nix {
|
||||
pname = "fzf-lua";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ibhagwan";
|
||||
repo = "fzf-lua";
|
||||
rev = "6363b14efe02d2fbb42858132606b24e15b5a78e";
|
||||
sha256 = "0bgkagw10sgyf7bv9qp47spdwa9jz9vwlfvmdk3cj07zh46yvzvx";
|
||||
rev = "d04bbd91d2d96869071d965564aae34cae103ca1";
|
||||
sha256 = "0b94m1sb3mwkw8zh82f2i7v3irz67b18g1c0khch1vkh710kdqcs";
|
||||
};
|
||||
meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
|
||||
};
|
||||
@@ -3744,12 +3744,12 @@ final: prev:
|
||||
|
||||
go-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "go.nvim";
|
||||
version = "2023-06-21";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ray-x";
|
||||
repo = "go.nvim";
|
||||
rev = "97b76f3188c64d4dacfc17c7c1543f775a3fb8e8";
|
||||
sha256 = "0pp5p9fwy7jwwk8k7vz8y4irggnxhzfqs1c7ka98cmxdy8234lrs";
|
||||
rev = "6550ddf5ce491d17af009c397aceb25310566eaa";
|
||||
sha256 = "01im6m0h7pa04dzh0daxkll5y1i7zf5kxlj01cribghl04zlhdxc";
|
||||
};
|
||||
meta.homepage = "https://github.com/ray-x/go.nvim/";
|
||||
};
|
||||
@@ -3947,12 +3947,12 @@ final: prev:
|
||||
|
||||
haskell-tools-nvim = buildNeovimPlugin {
|
||||
pname = "haskell-tools.nvim";
|
||||
version = "2023-07-02";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "MrcJkb";
|
||||
repo = "haskell-tools.nvim";
|
||||
rev = "415e184f7f534952664db723ca23edc11b149858";
|
||||
sha256 = "1f9yxz1iqp25ks8910wxcl08ncawbzxxsspzmimwxy258zwjmgiv";
|
||||
rev = "a258726a71cf9f874ba997f49929360232a1eda4";
|
||||
sha256 = "16qxzxaa19kv62s3qxbyplrxb30b2gagz2n72v3pdmf57fgwssl8";
|
||||
};
|
||||
meta.homepage = "https://github.com/MrcJkb/haskell-tools.nvim/";
|
||||
};
|
||||
@@ -3995,12 +3995,12 @@ final: prev:
|
||||
|
||||
heirline-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "heirline.nvim";
|
||||
version = "2023-05-17";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rebelot";
|
||||
repo = "heirline.nvim";
|
||||
rev = "2a151df2dc870e79b138a59ebaaaddf3d1b0d703";
|
||||
sha256 = "1sx2nl6w78m03n0aipv8v9r5w32zivx24ljfa6m00ni39acm0d1a";
|
||||
rev = "76136ccd93ed608e8109762f032cf1118981ebbd";
|
||||
sha256 = "09mqjrbzhfbfs6n1hg4dv5kfr1xbwbq5qhd8b52550bs6a43r9bg";
|
||||
};
|
||||
meta.homepage = "https://github.com/rebelot/heirline.nvim/";
|
||||
};
|
||||
@@ -4246,12 +4246,12 @@ final: prev:
|
||||
|
||||
indent-blankline-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "indent-blankline.nvim";
|
||||
version = "2023-05-30";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "lukas-reineke";
|
||||
repo = "indent-blankline.nvim";
|
||||
rev = "7075d7861f7a6bbf0de0298c83f8a13195e6ec01";
|
||||
sha256 = "0hcjr1a4vasjvgs8w7hpg0rdfr2aji6n376g062xjynh0302826q";
|
||||
rev = "4541d690816cb99a7fc248f1486aa87f3abce91c";
|
||||
sha256 = "1f83fwbd97a26wsnfilv7fq2a3vb19yi5012j4xsmbyv329i3wvr";
|
||||
};
|
||||
meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
|
||||
};
|
||||
@@ -4463,12 +4463,12 @@ final: prev:
|
||||
|
||||
julia-vim = buildVimPluginFrom2Nix {
|
||||
pname = "julia-vim";
|
||||
version = "2023-07-02";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "JuliaEditorSupport";
|
||||
repo = "julia-vim";
|
||||
rev = "88ebda5043ec13a6e6f0ac20b279dc12ecc10311";
|
||||
sha256 = "1pxi7xi1svwfjxp4mc2jw451cm576bcydxkbw83bxvk9h4zyngwg";
|
||||
rev = "69dd4b076b9b4f863647b424f856bbe6d5ba0cd4";
|
||||
sha256 = "1rvrm39xcm30mxxd6zbhxfqqz677d4vn55qcm0rxr08zcy431p89";
|
||||
};
|
||||
meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
|
||||
};
|
||||
@@ -4583,12 +4583,12 @@ final: prev:
|
||||
|
||||
lazy-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "lazy.nvim";
|
||||
version = "2023-07-01";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "folke";
|
||||
repo = "lazy.nvim";
|
||||
rev = "f8611632d0f9c6818e8eb54f9bcd1dad122b5a7f";
|
||||
sha256 = "1j4478wxn40b5j4hylpppr7ja6fdd9j7yx348ragbn92kj0vllqx";
|
||||
rev = "5af331ea65418dc9361769891921fdee4bcc837a";
|
||||
sha256 = "1sfwn7bczp15mz8risxlg5nmqyhnd6xzr5184sjsz4d0qy1gclbn";
|
||||
};
|
||||
meta.homepage = "https://github.com/folke/lazy.nvim/";
|
||||
};
|
||||
@@ -4607,12 +4607,12 @@ final: prev:
|
||||
|
||||
lean-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "lean.nvim";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Julian";
|
||||
repo = "lean.nvim";
|
||||
rev = "de68d366d28c4136584fe8b20723f268d7e68e42";
|
||||
sha256 = "1cnv756nmisc4prbm5snwgbsg3yz29m9mjngckykjih5fxy0ssnm";
|
||||
rev = "e80616c64506a339500bf7480801fa50b3f1b450";
|
||||
sha256 = "1sz2zkl610lw03svcgv2widwyfvvqcww9qsvbn6fbjzwg5im6z3x";
|
||||
};
|
||||
meta.homepage = "https://github.com/Julian/lean.nvim/";
|
||||
};
|
||||
@@ -4655,12 +4655,12 @@ final: prev:
|
||||
|
||||
legendary-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "legendary.nvim";
|
||||
version = "2023-06-29";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mrjones2014";
|
||||
repo = "legendary.nvim";
|
||||
rev = "09beae8257a821a0ad4cc3f9178c3ba80067258c";
|
||||
sha256 = "0j0zd825bvyh1gm1hl65phd31g8s6k5hc5bz3v8nbyxr45pgm9kx";
|
||||
rev = "9327bb22e9095d05f50dd64b202c71247b958491";
|
||||
sha256 = "1n8fnx4hh59ca26vxp0k0nfcwnnc5rabcn132apg1k2qmbw7kl8d";
|
||||
};
|
||||
meta.homepage = "https://github.com/mrjones2014/legendary.nvim/";
|
||||
};
|
||||
@@ -5110,12 +5110,12 @@ final: prev:
|
||||
|
||||
luasnip = buildVimPluginFrom2Nix {
|
||||
pname = "luasnip";
|
||||
version = "2023-06-29";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "l3mon4d3";
|
||||
repo = "luasnip";
|
||||
rev = "105b5f7f72c13e682a3aa5d29eac2408ae513b22";
|
||||
sha256 = "1vb4crvs7dcasac7kdjqa58l2wjibm85r7hg47ia7pw258d575gc";
|
||||
rev = "a658ae2906344a1d2b9c507738e585cf68e685c7";
|
||||
sha256 = "039l4v639iy7mh1wnwd7hbylq9dpa8i4icfb91r1q6ssff54mxjy";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
meta.homepage = "https://github.com/l3mon4d3/luasnip/";
|
||||
@@ -5207,12 +5207,12 @@ final: prev:
|
||||
|
||||
mason-lspconfig-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "mason-lspconfig.nvim";
|
||||
version = "2023-06-29";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "williamboman";
|
||||
repo = "mason-lspconfig.nvim";
|
||||
rev = "4f1c72767bec31397d59554f84096909b2887195";
|
||||
sha256 = "0bw94dqidb294xy8zkqxz4xbvpf0f311wpbxpk1zvwv19vxqvba3";
|
||||
rev = "82685fdd0f67a694b244cb058b83761f54664d68";
|
||||
sha256 = "0j8mc4mx666a2x6w4cgqsa0l8xkmaib6in2s7ks49hyd4svy7d56";
|
||||
};
|
||||
meta.homepage = "https://github.com/williamboman/mason-lspconfig.nvim/";
|
||||
};
|
||||
@@ -5255,12 +5255,12 @@ final: prev:
|
||||
|
||||
material-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "material.nvim";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "marko-cerovac";
|
||||
repo = "material.nvim";
|
||||
rev = "5a1880bb98b6844b9e9722b2a6128733d19ed20f";
|
||||
sha256 = "0midmi1gxag8f97x8yg57riy66kq3ka3xgrk70bf2pqgy4s934lp";
|
||||
rev = "c7631d373d3ae02ef502ec6b8620a8ff36ab922e";
|
||||
sha256 = "192xaw1k2sa5m92f046g6nbp4jw3yxb8xzzk33824h03adykblcl";
|
||||
};
|
||||
meta.homepage = "https://github.com/marko-cerovac/material.nvim/";
|
||||
};
|
||||
@@ -5663,12 +5663,12 @@ final: prev:
|
||||
|
||||
neo-tree-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "neo-tree.nvim";
|
||||
version = "2023-06-29";
|
||||
version = "2023-07-03";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-neo-tree";
|
||||
repo = "neo-tree.nvim";
|
||||
rev = "f765e75e7d2444629b5ace3cd7609c12251de254";
|
||||
sha256 = "0bybiksbxx5z9gwg9xivhi3bsqimkvlvdz4xmxh7pkqnbw5qq2am";
|
||||
rev = "7f6fa04dbd8e8c79d1af33bc90e856b65d8641da";
|
||||
sha256 = "1hq3gxqv5jsih4cj78y8shn5ncna3hi8mwzgkl2qjhy490vc7kpa";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/";
|
||||
};
|
||||
@@ -5711,12 +5711,12 @@ final: prev:
|
||||
|
||||
neodev-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "neodev.nvim";
|
||||
version = "2023-06-28";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "folke";
|
||||
repo = "neodev.nvim";
|
||||
rev = "a2b1d8fb9fa4daa35d3fd9123bccccccbd4a3520";
|
||||
sha256 = "1ym0xb23kk3z2v0sgg16dj1fyqck1mslzsg7r8zaj6nn77pghr8n";
|
||||
rev = "0705c72c281626f45c78d0916151d3e2bfb53fae";
|
||||
sha256 = "09drcn241msk956qpils11dhajj2sh7f2dnrs6s2867z25112a3g";
|
||||
};
|
||||
meta.homepage = "https://github.com/folke/neodev.nvim/";
|
||||
};
|
||||
@@ -5747,12 +5747,12 @@ final: prev:
|
||||
|
||||
neogit = buildVimPluginFrom2Nix {
|
||||
pname = "neogit";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "NeogitOrg";
|
||||
repo = "neogit";
|
||||
rev = "06113a4eec1a60553b7112934883982fef603aae";
|
||||
sha256 = "072pphkmr7c8ax5vbx8j5vhl0q9kzn1q64s52awq27jsbrpaw0wh";
|
||||
rev = "72824006f2dcf775cc498cc4a046ddd2c99d20a3";
|
||||
sha256 = "1a21ybxxw9wsx8d27bpr9zw41w3c7w471mpiv0r5zynby5a36cfl";
|
||||
};
|
||||
meta.homepage = "https://github.com/NeogitOrg/neogit/";
|
||||
};
|
||||
@@ -5807,12 +5807,12 @@ final: prev:
|
||||
|
||||
neorg = buildVimPluginFrom2Nix {
|
||||
pname = "neorg";
|
||||
version = "2023-06-20";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-neorg";
|
||||
repo = "neorg";
|
||||
rev = "6fece1546d051a5f2a2d932d5978beec1ef920ab";
|
||||
sha256 = "1wy0kb19xw21bh893fipd6nypi0fizac6021h3spf466bvlb82dz";
|
||||
rev = "32bae172814611f82e90b696b72cac99ff8de0e9";
|
||||
sha256 = "1jq69ijpz7bf37m6kahqpqyxwdmnka7qafnrgkwrbw8bmrhvzhrx";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-neorg/neorg/";
|
||||
};
|
||||
@@ -6191,12 +6191,12 @@ final: prev:
|
||||
|
||||
neuron-vim = buildVimPluginFrom2Nix {
|
||||
pname = "neuron.vim";
|
||||
version = "2022-06-02";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "fiatjaf";
|
||||
repo = "neuron.vim";
|
||||
rev = "e4e7f0b012d39d8e5dfb7d13ca199eaa130279ba";
|
||||
sha256 = "06qqbg4d0gk8d236f08sr847m5icbfknxsya2q3f52alnlpjry32";
|
||||
rev = "6a45eea4a8a42ade05f0f6aca51facc452a0adec";
|
||||
sha256 = "0pspzkl6py8k4k224580jzchg0fpzcjw2piz4jyliarzp06p1fma";
|
||||
};
|
||||
meta.homepage = "https://github.com/fiatjaf/neuron.vim/";
|
||||
};
|
||||
@@ -6371,12 +6371,12 @@ final: prev:
|
||||
|
||||
null-ls-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "null-ls.nvim";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "jose-elias-alvarez";
|
||||
repo = "null-ls.nvim";
|
||||
rev = "07897774c3b2f14d71b2ca51f3014d1055da9657";
|
||||
sha256 = "07dmnfzqphbzk7ndjw7wkm1bchqj27006i3wh90wavwlz2w567ki";
|
||||
rev = "db09b6c691def0038c456551e4e2772186449f35";
|
||||
sha256 = "133qcapq5klinnbhvbqmww5ibwfrrqn9ysg5gjx1kg2vva7nv8p8";
|
||||
};
|
||||
meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/";
|
||||
};
|
||||
@@ -6395,12 +6395,12 @@ final: prev:
|
||||
|
||||
nvchad = buildVimPluginFrom2Nix {
|
||||
pname = "nvchad";
|
||||
version = "2023-07-02";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvchad";
|
||||
repo = "nvchad";
|
||||
rev = "83aac1ecc0c84726d3aace3ed97d7001add4694b";
|
||||
sha256 = "1rd93qik41hqrgrc40b3g2jkgad1pkknic17ffpz933ps0ljz8xl";
|
||||
rev = "08f3deb9010c259dc3e6e060bbc49568cbcc50ba";
|
||||
sha256 = "0rfqpi8pbjz4yhrg08dldf4zm7id2g688afn9bpg7msbxbsvh7hf";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvchad/nvchad/";
|
||||
};
|
||||
@@ -6539,12 +6539,12 @@ final: prev:
|
||||
|
||||
nvim-cokeline = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-cokeline";
|
||||
version = "2023-07-03";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "willothy";
|
||||
repo = "nvim-cokeline";
|
||||
rev = "709a379255157520f29aee6bfb3d33c92b0e019a";
|
||||
sha256 = "03qzim5rj09wwd6gdjx50iivybxj5fdxfsqc8s0asbmrf26b2f4j";
|
||||
rev = "904dc18d017cdf5c7c52a6455fd2a8d6f9a8bc3b";
|
||||
sha256 = "1wbfa9g22d2hshl2v0ksg5xmjhrdclqqq7zf33d9pxxr4bp62xyp";
|
||||
};
|
||||
meta.homepage = "https://github.com/willothy/nvim-cokeline/";
|
||||
};
|
||||
@@ -6767,12 +6767,12 @@ final: prev:
|
||||
|
||||
nvim-highlite = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-highlite";
|
||||
version = "2023-06-25";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Iron-E";
|
||||
repo = "nvim-highlite";
|
||||
rev = "74cf01de9b0fe734054a164427a260e40a74bc60";
|
||||
sha256 = "0w2rpywdd29lg9qd4w8x0vqv1i3c4yyl74cvcvf24mwq6vxs8kmh";
|
||||
rev = "2121a3bdb9b5d8dcfdd60f0892b5a73bc280c220";
|
||||
sha256 = "1wxzqq2dz0c0m2vj61p69fra52xvqd9gc4m3wk60744hzg60kn5c";
|
||||
};
|
||||
meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
|
||||
};
|
||||
@@ -6899,12 +6899,12 @@ final: prev:
|
||||
|
||||
nvim-lspconfig = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-lspconfig";
|
||||
version = "2023-06-30";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "neovim";
|
||||
repo = "nvim-lspconfig";
|
||||
rev = "0011c435282f043a018e23393cae06ed926c3f4a";
|
||||
sha256 = "12b1gbzj84jj8k4q5d5lb30yh923711fi0b5fqlya73y39bzmffp";
|
||||
rev = "51739a8bc531542079698c58512feb68469f5d27";
|
||||
sha256 = "05xpc6zysb9ydkvsxjz3s7k0d5fq4ryg6fdgshfx81ns8mdrjqmh";
|
||||
};
|
||||
meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
|
||||
};
|
||||
@@ -6983,24 +6983,24 @@ final: prev:
|
||||
|
||||
nvim-navbuddy = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-navbuddy";
|
||||
version = "2023-06-25";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "SmiteshP";
|
||||
repo = "nvim-navbuddy";
|
||||
rev = "f0a2f66cb1e0b5f7bd803c5724e4b4456b5578a6";
|
||||
sha256 = "11hma1f115rvmq4jzsfc4asy8g16y88y6hafpchwdwghhcfh7pab";
|
||||
rev = "244a4cded6f2b568403684131d148048efe4e8af";
|
||||
sha256 = "10886zx97s7nc288fxsw0w1029vf65f5qazksr8x0h97zi7m2pfk";
|
||||
};
|
||||
meta.homepage = "https://github.com/SmiteshP/nvim-navbuddy/";
|
||||
};
|
||||
|
||||
nvim-navic = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-navic";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "smiteshp";
|
||||
repo = "nvim-navic";
|
||||
rev = "d046a2f6bbad220f8baa4bf9161730cfef3dd026";
|
||||
sha256 = "14a1qyimv5zwx0f6qcjkg6hqn5lyqxrybwcf91cbaq1wvn2wqlzj";
|
||||
rev = "e3b9d8a974bec71b88d5640f1c87bf5b4a7e4113";
|
||||
sha256 = "0yx03zl48djvlz4g33xgidz4av2grznl1j9dlf9nbv16xg2cn1k7";
|
||||
};
|
||||
meta.homepage = "https://github.com/smiteshp/nvim-navic/";
|
||||
};
|
||||
@@ -7115,12 +7115,12 @@ final: prev:
|
||||
|
||||
nvim-scrollview = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-scrollview";
|
||||
version = "2023-06-28";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dstein64";
|
||||
repo = "nvim-scrollview";
|
||||
rev = "445f21d6e73e7c62c79e45ea70a45285c2deb153";
|
||||
sha256 = "11n7fbdzw38k0l242cq2v4bsxzac7aik5s31590r0k3hifly2p4g";
|
||||
rev = "0559908210bd6da1b8c7fab5be1cfe5606fb89a2";
|
||||
sha256 = "1hwkdffxaww51j4bgxx8l4dal50ywi9pyx40k42s2b4mjkv989hq";
|
||||
};
|
||||
meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
|
||||
};
|
||||
@@ -7235,12 +7235,12 @@ final: prev:
|
||||
|
||||
nvim-treesitter = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-treesitter";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-treesitter";
|
||||
repo = "nvim-treesitter";
|
||||
rev = "896f2c76229f03d6978d29fa7b12421d7c18102f";
|
||||
sha256 = "1rapiq1vcggz3m5i1gcl2d7a2sl1w0qayx06j4s7yl99340xdllq";
|
||||
rev = "1ef286e5b0cfd17f56586a8445cd83d61647f851";
|
||||
sha256 = "0ani5vi127zyhznqzjs0ghr5x1xnlpv53443mcry1nj30wslgdia";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
|
||||
};
|
||||
@@ -7402,24 +7402,24 @@ final: prev:
|
||||
|
||||
nvim_context_vt = buildVimPluginFrom2Nix {
|
||||
pname = "nvim_context_vt";
|
||||
version = "2023-05-25";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "haringsrob";
|
||||
repo = "nvim_context_vt";
|
||||
rev = "dcfd29699e614035dd6ab863039e1c1811cace91";
|
||||
sha256 = "0k324mvnhlg4syy0ysk0n7g7q2inqn3ymfys8fx8bzvqmq029w10";
|
||||
rev = "f44f46ecad6e6983fd04dac84c5a5c03815d3427";
|
||||
sha256 = "0a8bdi6d58m5v851gkyph4qngxzsa5saizhsp1klpjnj57akz078";
|
||||
};
|
||||
meta.homepage = "https://github.com/haringsrob/nvim_context_vt/";
|
||||
};
|
||||
|
||||
nvimdev-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "nvimdev.nvim";
|
||||
version = "2022-12-23";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "neovim";
|
||||
repo = "nvimdev.nvim";
|
||||
rev = "63eba53a0ed93c8495623aee194ee0d4d44162f0";
|
||||
sha256 = "00acn9iq7p00280ixwh9325wh6k4r8a1s84afwsz3a2yvsvyssrf";
|
||||
rev = "e31cbf722290b640cbf80634792fcaa27dc7b699";
|
||||
sha256 = "02krpnqg1k0hnvrhrvk2z7lb1lg38w355xs63p4i34nrmnc5fygp";
|
||||
};
|
||||
meta.homepage = "https://github.com/neovim/nvimdev.nvim/";
|
||||
};
|
||||
@@ -7535,12 +7535,12 @@ final: prev:
|
||||
|
||||
onedarkpro-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "onedarkpro.nvim";
|
||||
version = "2023-06-22";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "olimorris";
|
||||
repo = "onedarkpro.nvim";
|
||||
rev = "f97db0e46ea5e55874892ac3e3cb2fc619d74c7f";
|
||||
sha256 = "10n7a19gmakv1nk96b2zsc5d3dnzasacg53iz620s0wkixrl8lsv";
|
||||
rev = "9454a13714cf771f6c61c2abb3094c0737d9d176";
|
||||
sha256 = "12nbm4p421jcj17az0vmk4cj44ixm0v2i2i6p74llpwn7bzdza3f";
|
||||
};
|
||||
meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
|
||||
};
|
||||
@@ -7811,12 +7811,12 @@ final: prev:
|
||||
|
||||
plenary-nvim = buildNeovimPlugin {
|
||||
pname = "plenary.nvim";
|
||||
version = "2023-06-30";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-lua";
|
||||
repo = "plenary.nvim";
|
||||
rev = "102c02903c74b93c705406bf362049383abc87c8";
|
||||
sha256 = "1h0d4qz14s63h0c6g2lf89bvaj6ksn75f2wsk2z326bpnlyz255k";
|
||||
rev = "bda256fab0eb66a15e8190937e417e6a14ee5d72";
|
||||
sha256 = "1rsybpshyvzrfzn4dnbhqawn7inrmsfb84rmsklf781chzfjp49l";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
|
||||
};
|
||||
@@ -8173,12 +8173,12 @@ final: prev:
|
||||
|
||||
rest-nvim = buildNeovimPlugin {
|
||||
pname = "rest.nvim";
|
||||
version = "2023-06-07";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rest-nvim";
|
||||
repo = "rest.nvim";
|
||||
rev = "aea7c64bdff1073beed9bd7fddb60cce7796d7ff";
|
||||
sha256 = "08xh9x05z2zfq2ynnbkhqpgmbks940mw22x6987qf6rnqw4khp5p";
|
||||
rev = "0d4b6176ce7fee2d33a716402d47d65a35acf173";
|
||||
sha256 = "05cd2gvfix5k6gxbgnnrgz1izq0g3xik0vjbk8n1qwf5xsd1l6g7";
|
||||
};
|
||||
meta.homepage = "https://github.com/rest-nvim/rest.nvim/";
|
||||
};
|
||||
@@ -8305,12 +8305,12 @@ final: prev:
|
||||
|
||||
satellite-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "satellite.nvim";
|
||||
version = "2023-06-30";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "lewis6991";
|
||||
repo = "satellite.nvim";
|
||||
rev = "18c3b4d581cb0eb1a81c00a7f0d268aab842d404";
|
||||
sha256 = "1cxazg2sb9vhssih4mrmrnj7piszb2sjd2kndvr22w9pf1j6q076";
|
||||
rev = "a414ee7b55c51a9bb8491b76e6f1d4782bae8712";
|
||||
sha256 = "1iqdgm7g3nilkxfrqnhwjz5gpsc18vvxp9i9yf876wzahbbvpfps";
|
||||
};
|
||||
meta.homepage = "https://github.com/lewis6991/satellite.nvim/";
|
||||
};
|
||||
@@ -9403,12 +9403,12 @@ final: prev:
|
||||
|
||||
telescope-nvim = buildNeovimPlugin {
|
||||
pname = "telescope.nvim";
|
||||
version = "2023-07-02";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-telescope";
|
||||
repo = "telescope.nvim";
|
||||
rev = "0e0600908d1ad5ac4992fa0ab578e23e9d9d6f37";
|
||||
sha256 = "0nf1pc84mk6cncb120j6dwcynkbxf2s6crji30aq99zs92n3wi0w";
|
||||
rev = "276362a8020c6e94c7a76d49aa00d4923b0c02f3";
|
||||
sha256 = "043rrifqhg5bsksqhfdc20f96i2s2xyd6qyga4918fr75sf8hmib";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
|
||||
};
|
||||
@@ -9656,24 +9656,24 @@ final: prev:
|
||||
|
||||
toggleterm-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "toggleterm.nvim";
|
||||
version = "2023-07-03";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "akinsho";
|
||||
repo = "toggleterm.nvim";
|
||||
rev = "b84fc9905271bb0f3a45004d623731e9229b0a16";
|
||||
sha256 = "1ac4jymsy2f7ibblkb2vcbg8r0clzxkqlq2zggf6zh36vr0wj3v6";
|
||||
rev = "2249e974faed67e795ffc2ca2be13b93c5d51938";
|
||||
sha256 = "0zdlrclaf45hhryixi6ivimbhgn6v62r6y25a3xikd8vzxaxa7y2";
|
||||
};
|
||||
meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
|
||||
};
|
||||
|
||||
tokyonight-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "tokyonight.nvim";
|
||||
version = "2023-07-01";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "folke";
|
||||
repo = "tokyonight.nvim";
|
||||
rev = "d785293494c59ce0940c00b8b044fc672d2902b1";
|
||||
sha256 = "0mgiplv49yrr686fj8qh619sk9szsq8slcf556b8zw9d7m945m3i";
|
||||
rev = "284667adfff02b9a0adc65968c553c6096b543b6";
|
||||
sha256 = "0r9scw1r8vd761pqf9zl2aly70xc04h8fqy17ra49p879sx254wd";
|
||||
};
|
||||
meta.homepage = "https://github.com/folke/tokyonight.nvim/";
|
||||
};
|
||||
@@ -9872,12 +9872,12 @@ final: prev:
|
||||
|
||||
unison = buildVimPluginFrom2Nix {
|
||||
pname = "unison";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "unisonweb";
|
||||
repo = "unison";
|
||||
rev = "12d2bc27cff3992d4530a6dec07a3762b6e2ded5";
|
||||
sha256 = "0p6ajvmc93qcjdggxa3qv4iikqylb3mzaafk9k2vh6bm8gkrgf7d";
|
||||
rev = "9fb8bc0df971de1939bae160f820b215a4db9195";
|
||||
sha256 = "1rwpynfbf4aa1ii12c6il6jcfgla4wa5gl1n8mzbhf2056d34csy";
|
||||
};
|
||||
meta.homepage = "https://github.com/unisonweb/unison/";
|
||||
};
|
||||
@@ -9968,12 +9968,12 @@ final: prev:
|
||||
|
||||
vifm-vim = buildVimPluginFrom2Nix {
|
||||
pname = "vifm.vim";
|
||||
version = "2023-07-03";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vifm";
|
||||
repo = "vifm.vim";
|
||||
rev = "705ae3a0370fea068b5c617b1633bb20381401bc";
|
||||
sha256 = "0m583v9brxgkm2xhzizv3n43z6k3j4x23gq0pqdqy00n0s6pf5sm";
|
||||
rev = "2d8b2d2003c01e1fada6ec23938f6f983540a2a5";
|
||||
sha256 = "1hrg0172p85q227x8w070jx5qglnl4wqm9n48hcg10wn9sncm6xw";
|
||||
};
|
||||
meta.homepage = "https://github.com/vifm/vifm.vim/";
|
||||
};
|
||||
@@ -12610,12 +12610,12 @@ final: prev:
|
||||
|
||||
vim-markbar = buildVimPluginFrom2Nix {
|
||||
pname = "vim-markbar";
|
||||
version = "2022-07-10";
|
||||
version = "2023-07-04";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Yilin-Yang";
|
||||
repo = "vim-markbar";
|
||||
rev = "8da283528c36a3e1c25d7c40c259f3a8082d1467";
|
||||
sha256 = "1dfvi3afqxi5142n2j9zz78mjxcnsh77v83247ax15y679ww9h64";
|
||||
rev = "8c5a4d28a4d315db3d64cc2cd3859dbad675fb66";
|
||||
sha256 = "1xg0vsijcmp4sjsk2cz3379zyhrqs7fin15gsknzgpxwnmpjfg0v";
|
||||
};
|
||||
meta.homepage = "https://github.com/Yilin-Yang/vim-markbar/";
|
||||
};
|
||||
@@ -12839,12 +12839,12 @@ final: prev:
|
||||
|
||||
vim-nerdtree-syntax-highlight = buildVimPluginFrom2Nix {
|
||||
pname = "vim-nerdtree-syntax-highlight";
|
||||
version = "2021-01-11";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tiagofumo";
|
||||
repo = "vim-nerdtree-syntax-highlight";
|
||||
rev = "5178ee4d7f4e7761187df30bb709f703d91df18a";
|
||||
sha256 = "0i690a9sd3a9193mdm150q5yx43mihpzkm0k5glllsmnwpngrq1a";
|
||||
rev = "35e70334a2ff6e89b82a145d1ac889e82d1ddb4e";
|
||||
sha256 = "0rkr3w7mcc7ha5g6m4lg0ik52v10hrx1mn2ahxnvb30h0isdyzb8";
|
||||
};
|
||||
meta.homepage = "https://github.com/tiagofumo/vim-nerdtree-syntax-highlight/";
|
||||
};
|
||||
@@ -12887,12 +12887,12 @@ final: prev:
|
||||
|
||||
vim-nickel = buildVimPluginFrom2Nix {
|
||||
pname = "vim-nickel";
|
||||
version = "2023-06-30";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nickel-lang";
|
||||
repo = "vim-nickel";
|
||||
rev = "6e91be2605b6b83d04fbdb402f205defc748d998";
|
||||
sha256 = "0n1b6l29fffsbm1hn7fj34ky4l01a9izyshsgg7wda8wq7lk2xgr";
|
||||
rev = "535196c1e6b77e05f31a5ba50a5eaef393bbf280";
|
||||
sha256 = "042n288b6c58jihbgsxhilycx56llbqck341zw7gf8sk4sypqhhr";
|
||||
};
|
||||
meta.homepage = "https://github.com/nickel-lang/vim-nickel/";
|
||||
};
|
||||
@@ -14965,12 +14965,12 @@ final: prev:
|
||||
|
||||
vimtex = buildVimPluginFrom2Nix {
|
||||
pname = "vimtex";
|
||||
version = "2023-07-03";
|
||||
version = "2023-07-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "lervag";
|
||||
repo = "vimtex";
|
||||
rev = "91fbb48c0b850684a082801138dddc941a427d38";
|
||||
sha256 = "1mh5fzc08bjpkhcwj83xpgiw9vr9087zpaspz8xj6mbaac0g7jki";
|
||||
rev = "bab96ed04dd951b22663b08c670ff33960fc6419";
|
||||
sha256 = "1mpy9wqdy3bpgsd1727pn2nxpjhhxlazfhcykccqcjnx2m1k00wa";
|
||||
};
|
||||
meta.homepage = "https://github.com/lervag/vimtex/";
|
||||
};
|
||||
@@ -15121,12 +15121,12 @@ final: prev:
|
||||
|
||||
wiki-vim = buildVimPluginFrom2Nix {
|
||||
pname = "wiki.vim";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "lervag";
|
||||
repo = "wiki.vim";
|
||||
rev = "7058ef96ae53788238f30259a3402742f8ba45c9";
|
||||
sha256 = "010s76b6z4cl25qjj0si5yix2x1spcl3fylcxp6xzkk343laxbx7";
|
||||
rev = "ba0dfb47cdd3018df2cc46ce045e93b5fbb394ca";
|
||||
sha256 = "0gchas7sfb602cmwwqfbzd7g65ph1vvj1rc2rq5b828ncqin7ww5";
|
||||
};
|
||||
meta.homepage = "https://github.com/lervag/wiki.vim/";
|
||||
};
|
||||
@@ -15410,12 +15410,12 @@ final: prev:
|
||||
|
||||
catppuccin-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "catppuccin-nvim";
|
||||
version = "2023-07-04";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "nvim";
|
||||
rev = "c75562cbc954136f279ced91661251543b6f2a20";
|
||||
sha256 = "15r9ybczzvz9qgz1vnhsfzzm3gm033ah9cjz1lmhbn6khkjwfbwb";
|
||||
rev = "15043d363729f1ef20e615c41bbd8b7e92c1453e";
|
||||
sha256 = "0wncps157mw0mazmz4qcv9314qbnlcvq6vglhw471i68805kqiqi";
|
||||
};
|
||||
meta.homepage = "https://github.com/catppuccin/nvim/";
|
||||
};
|
||||
@@ -15434,12 +15434,12 @@ final: prev:
|
||||
|
||||
chad = buildVimPluginFrom2Nix {
|
||||
pname = "chad";
|
||||
version = "2023-07-03";
|
||||
version = "2023-07-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ms-jpq";
|
||||
repo = "chadtree";
|
||||
rev = "f472d5e35468d5741df072b6d06376c839e65e09";
|
||||
sha256 = "0cw99qiajs2pqxww138m4cvbxsv5l2sysaw2c6zvbl7hnwbf6h50";
|
||||
rev = "a47aa0967967e2b07dce61b54645eeccf4f7a498";
|
||||
sha256 = "1440qj7bfi16ay1il60g04pcj9fpsgm772xqm3dplzlx2dkkc88f";
|
||||
};
|
||||
meta.homepage = "https://github.com/ms-jpq/chadtree/";
|
||||
};
|
||||
|
||||
@@ -269,12 +269,12 @@
|
||||
};
|
||||
cuda = buildGrammar {
|
||||
language = "cuda";
|
||||
version = "0.0.0+rev=90446ed";
|
||||
version = "0.0.0+rev=c9ba632";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-cuda";
|
||||
rev = "90446edd3e2e1eed0cb77755a083d9ed91ddea63";
|
||||
hash = "sha256-jYD77AomQ4Wkhd6ZjcyCduFRbe2BhneuYQ9Dt/u73GI=";
|
||||
rev = "c9ba632aa68d24f32d2f97e356795f45f85e6c55";
|
||||
hash = "sha256-2Wtkmlzhq+ShqFUnlofeFEN24toLaLD/O0/zSzbEZEE=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
|
||||
};
|
||||
@@ -347,12 +347,12 @@
|
||||
};
|
||||
dockerfile = buildGrammar {
|
||||
language = "dockerfile";
|
||||
version = "0.0.0+rev=fd30df6";
|
||||
version = "0.0.0+rev=c0a9d69";
|
||||
src = fetchFromGitHub {
|
||||
owner = "camdencheek";
|
||||
repo = "tree-sitter-dockerfile";
|
||||
rev = "fd30df68c4178964ed012ef7f745055db76f8ebf";
|
||||
hash = "sha256-k5KQ0GfTveXadgQk0xay2QY7uCvFYneQ/0AKwZqAG48=";
|
||||
rev = "c0a9d694d9bf8ab79a919f5f9c7bc9c169caf321";
|
||||
hash = "sha256-dNrLw9E3I3LqQUqYx+YUBZTlSoAp/qoOf6+RL7Lv3ew=";
|
||||
};
|
||||
meta.homepage = "https://github.com/camdencheek/tree-sitter-dockerfile";
|
||||
};
|
||||
@@ -491,12 +491,12 @@
|
||||
};
|
||||
foam = buildGrammar {
|
||||
language = "foam";
|
||||
version = "0.0.0+rev=0244495";
|
||||
version = "0.0.0+rev=7ef88a8";
|
||||
src = fetchFromGitHub {
|
||||
owner = "FoamScience";
|
||||
repo = "tree-sitter-foam";
|
||||
rev = "024449594c2841c944463481b741b141d1ab5727";
|
||||
hash = "sha256-GUXet7WkH4yVoLBtPmmXR4VLwQ0MjwabH2dRS963ZsY=";
|
||||
rev = "7ef88a8c652073785bffd7ce9c3effc68035aa11";
|
||||
hash = "sha256-k/m1kz2/9Q15Lt6/hrKolvb29Gl0b/z2oelgkyS1wTM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/FoamScience/tree-sitter-foam";
|
||||
};
|
||||
@@ -711,12 +711,12 @@
|
||||
};
|
||||
groovy = buildGrammar {
|
||||
language = "groovy";
|
||||
version = "0.0.0+rev=7ebfaf3";
|
||||
version = "0.0.0+rev=54c7da8";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Decodetalkers";
|
||||
repo = "tree-sitter-groovy";
|
||||
rev = "7ebfaf33a0f68f9283be17903ebecfdac05a1f3b";
|
||||
hash = "sha256-9Jngzug6N8agdiWHs0DMK8LyhSg0s8hWpP6kInwDPY0=";
|
||||
rev = "54c7da8b167261e76c79513c0364a01836093526";
|
||||
hash = "sha256-83JIW+oOKbpqormWiNjU6uI2WAknVnUAXNFSAvdq83o=";
|
||||
};
|
||||
meta.homepage = "https://github.com/Decodetalkers/tree-sitter-groovy";
|
||||
};
|
||||
@@ -799,12 +799,12 @@
|
||||
};
|
||||
hlsl = buildGrammar {
|
||||
language = "hlsl";
|
||||
version = "0.0.0+rev=eeb138a";
|
||||
version = "0.0.0+rev=ddb6082";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-hlsl";
|
||||
rev = "eeb138aba44de8379dae474624fef65d4288476a";
|
||||
hash = "sha256-FIf8rKxM0jTfisjHhNUm/5IXj7njCVhPOXFR8Fhr3Ek=";
|
||||
rev = "ddb608219fa99d56ed98de2d60f396f575cc6590";
|
||||
hash = "sha256-UQTXdrHg4OfHnRgSAoo2gGZenE35NOypNeqUCsc4zdM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
|
||||
};
|
||||
@@ -1008,12 +1008,12 @@
|
||||
};
|
||||
kotlin = buildGrammar {
|
||||
language = "kotlin";
|
||||
version = "0.0.0+rev=8d43d90";
|
||||
version = "0.0.0+rev=2878163";
|
||||
src = fetchFromGitHub {
|
||||
owner = "fwcd";
|
||||
repo = "tree-sitter-kotlin";
|
||||
rev = "8d43d90d568a97afee0891949d7cead3294ca94d";
|
||||
hash = "sha256-nY+tGg8aD7ayAhE5HTBsrVMyYBl1lfjXmcTTYuYTSbY=";
|
||||
rev = "2878163ee7cad7eaebd3df1729e86610891fe0ee";
|
||||
hash = "sha256-BRmKlQf78MkK5d2w6J4B5p6Nos+kSon+1M95lOJEkd0=";
|
||||
};
|
||||
meta.homepage = "https://github.com/fwcd/tree-sitter-kotlin";
|
||||
};
|
||||
@@ -1175,12 +1175,12 @@
|
||||
};
|
||||
mermaid = buildGrammar {
|
||||
language = "mermaid";
|
||||
version = "0.0.0+rev=d787c66";
|
||||
version = "0.0.0+rev=e26a5f8";
|
||||
src = fetchFromGitHub {
|
||||
owner = "monaqa";
|
||||
repo = "tree-sitter-mermaid";
|
||||
rev = "d787c66276e7e95899230539f556e8b83ee16f6d";
|
||||
hash = "sha256-JwQ3jfwwOvM9eJWP/D3wXUBDysRxpa+mktYFajwA3IA=";
|
||||
rev = "e26a5f8898a8174f02b4cc9a9050eb3ccfb799f3";
|
||||
hash = "sha256-qDJy2kPpx3wPl8IuhPM5ynhI2DjgutSFWAg5EQY5F+8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/monaqa/tree-sitter-mermaid";
|
||||
};
|
||||
@@ -1553,12 +1553,12 @@
|
||||
};
|
||||
racket = buildGrammar {
|
||||
language = "racket";
|
||||
version = "0.0.0+rev=bbdb0bf";
|
||||
version = "0.0.0+rev=92bf637";
|
||||
src = fetchFromGitHub {
|
||||
owner = "6cdh";
|
||||
repo = "tree-sitter-racket";
|
||||
rev = "bbdb0bfbaf0dd5f6650b97a393a06a19cef50562";
|
||||
hash = "sha256-in/VhL0PkhOXaeiMje8oqTxYJ9/VirLTfzF9QZg/Fuk=";
|
||||
rev = "92bf6372c63bb413c2d3c1535383d266838d1911";
|
||||
hash = "sha256-r/4tT+dPhyQCQfeprISH0E30hUyxSnJHpcVN/VLM6Rw=";
|
||||
};
|
||||
meta.homepage = "https://github.com/6cdh/tree-sitter-racket";
|
||||
};
|
||||
@@ -1663,12 +1663,12 @@
|
||||
};
|
||||
scheme = buildGrammar {
|
||||
language = "scheme";
|
||||
version = "0.0.0+rev=0c763bd";
|
||||
version = "0.0.0+rev=ca8af22";
|
||||
src = fetchFromGitHub {
|
||||
owner = "6cdh";
|
||||
repo = "tree-sitter-scheme";
|
||||
rev = "0c763bd5f85b18e354bc338d17cf1daa23b478b1";
|
||||
hash = "sha256-MHQdWH7nNBAJGLb6DN0NmpwQIIyO0+JznVPkTvryupU=";
|
||||
rev = "ca8af220aaf2a80aaf609bfb0df193817e4f064b";
|
||||
hash = "sha256-m+ZFC82hWMfP0cRo64mFglS3jdya8DAQfVACNZfRfuM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/6cdh/tree-sitter-scheme";
|
||||
};
|
||||
@@ -1740,12 +1740,12 @@
|
||||
};
|
||||
sql = buildGrammar {
|
||||
language = "sql";
|
||||
version = "0.0.0+rev=5bf5e52";
|
||||
version = "0.0.0+rev=dd5fe77";
|
||||
src = fetchFromGitHub {
|
||||
owner = "derekstride";
|
||||
repo = "tree-sitter-sql";
|
||||
rev = "5bf5e5256949b5d0b1bfecd9ac7ee86630760aea";
|
||||
hash = "sha256-vj5nE7fi1Y/d0rRK25qFHShpWrIFKBEHs/tVEP/gK0I=";
|
||||
rev = "dd5fe7713cec874506c6f75409ce03776748b146";
|
||||
hash = "sha256-CQ7k7o1iMaUjv/5C+eY2eLANZO7lJQPhXrGEKkykaiI=";
|
||||
};
|
||||
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
|
||||
};
|
||||
@@ -2110,12 +2110,12 @@
|
||||
};
|
||||
wing = buildGrammar {
|
||||
language = "wing";
|
||||
version = "0.0.0+rev=b9fa34c";
|
||||
version = "0.0.0+rev=c4a42cd";
|
||||
src = fetchFromGitHub {
|
||||
owner = "winglang";
|
||||
repo = "wing";
|
||||
rev = "b9fa34ca30af7ef40d35cb844fd8677872ddf0bd";
|
||||
hash = "sha256-3Fce0WD/pLRlM5hpJLvul9Q9vOE1tOky9u3yWIkL4WQ=";
|
||||
rev = "c4a42cd02490e52cb9ba517f88f6636327f2bc82";
|
||||
hash = "sha256-idzWuw5MgP3ayMfKTl+sX6sOVH8Lpk4Lnkz+JUi30XI=";
|
||||
};
|
||||
location = "libs/tree-sitter-wing";
|
||||
generate = true;
|
||||
|
||||
@@ -483,7 +483,7 @@ https://github.com/KeitaNakamura/neodark.vim/,,
|
||||
https://github.com/folke/neodev.nvim/,HEAD,
|
||||
https://github.com/sbdchd/neoformat/,,
|
||||
https://github.com/danymat/neogen/,HEAD,
|
||||
https://github.com/TimUntersberger/neogit/,,
|
||||
https://github.com/NeogitOrg/neogit/,,
|
||||
https://github.com/Shougo/neoinclude.vim/,,
|
||||
https://github.com/neomake/neomake/,,
|
||||
https://github.com/Shougo/neomru.vim/,,
|
||||
|
||||
71
pkgs/applications/graphics/oculante/Cargo.lock
generated
71
pkgs/applications/graphics/oculante/Cargo.lock
generated
@@ -316,9 +316,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "bitstream-io"
|
||||
version = "1.6.0"
|
||||
version = "1.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9d28070975aaf4ef1fd0bd1f29b739c06c2cdd9972e090617fb6dca3b2cb564e"
|
||||
checksum = "82704769cb85a22df2c54d6bdd6a158b7931d256cf3248a07d6ecbe9d58b31d7"
|
||||
|
||||
[[package]]
|
||||
name = "block"
|
||||
@@ -2021,9 +2021,9 @@ checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
|
||||
|
||||
[[package]]
|
||||
name = "is-terminal"
|
||||
version = "0.4.8"
|
||||
version = "0.4.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "24fddda5af7e54bf7da53067d6e802dbcc381d0a8eef629df528e3ebf68755cb"
|
||||
checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
|
||||
dependencies = [
|
||||
"hermit-abi 0.3.2",
|
||||
"rustix 0.38.3",
|
||||
@@ -3016,6 +3016,17 @@ dependencies = [
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-derive"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.23",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-integer"
|
||||
version = "0.1.45"
|
||||
@@ -3181,7 +3192,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oculante"
|
||||
version = "0.6.67"
|
||||
version = "0.6.68"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arboard",
|
||||
@@ -3710,7 +3721,7 @@ dependencies = [
|
||||
"nasm-rs",
|
||||
"new_debug_unreachable",
|
||||
"noop_proc_macro",
|
||||
"num-derive",
|
||||
"num-derive 0.3.3",
|
||||
"num-traits 0.2.15",
|
||||
"once_cell",
|
||||
"paste",
|
||||
@@ -4032,9 +4043,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rustls"
|
||||
version = "0.21.2"
|
||||
version = "0.21.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e32ca28af694bc1bbf399c33a516dbdf1c90090b8ab23c2bc24f834aa2247f5f"
|
||||
checksum = "b19faa85ecb5197342b54f987b142fb3e30d0c90da40f80ef4fa9a726e6676ed"
|
||||
dependencies = [
|
||||
"log",
|
||||
"ring",
|
||||
@@ -4053,9 +4064,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rustls-webpki"
|
||||
version = "0.100.1"
|
||||
version = "0.101.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b"
|
||||
checksum = "15f36a6828982f422756984e47912a7a51dcbc2a197aa791158f8ca61cd8204e"
|
||||
dependencies = [
|
||||
"ring",
|
||||
"untrusted",
|
||||
@@ -4185,18 +4196,18 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.166"
|
||||
version = "1.0.167"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d01b7404f9d441d3ad40e6a636a7782c377d2abdbe4fa2440e2edcc2f4f10db8"
|
||||
checksum = "7daf513456463b42aa1d94cff7e0c24d682b429f020b9afa4f5ba5c40a22b237"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.166"
|
||||
version = "1.0.167"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5dd83d6dde2b6b2d466e14d9d1acce8816dedee94f735eac6395808b3483c6d6"
|
||||
checksum = "b69b106b68bc8054f0e974e70d19984040f8a5cf9215ca82626ea4853f82c4b9"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -4331,9 +4342,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "smallvec"
|
||||
version = "1.10.0"
|
||||
version = "1.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
|
||||
checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
|
||||
|
||||
[[package]]
|
||||
name = "smithay-client-toolkit"
|
||||
@@ -4509,7 +4520,7 @@ dependencies = [
|
||||
"cfg-expr",
|
||||
"heck",
|
||||
"pkg-config",
|
||||
"toml 0.7.5",
|
||||
"toml 0.7.6",
|
||||
"version-compare",
|
||||
]
|
||||
|
||||
@@ -4550,18 +4561,18 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "1.0.41"
|
||||
version = "1.0.43"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
|
||||
checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42"
|
||||
dependencies = [
|
||||
"thiserror-impl",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror-impl"
|
||||
version = "1.0.41"
|
||||
version = "1.0.43"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
|
||||
checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -4719,9 +4730,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "toml"
|
||||
version = "0.7.5"
|
||||
version = "0.7.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ebafdf5ad1220cb59e7d17cf4d2c72015297b75b19a10472f99b89225089240"
|
||||
checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_spanned",
|
||||
@@ -4740,9 +4751,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "toml_edit"
|
||||
version = "0.19.11"
|
||||
version = "0.19.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "266f016b7f039eec8a1a80dfe6156b633d208b9fccca5e4db1d6775b0c4e34a7"
|
||||
checksum = "c500344a19072298cd05a7224b3c0c629348b78692bf48466c5238656e315a78"
|
||||
dependencies = [
|
||||
"indexmap 2.0.0",
|
||||
"serde",
|
||||
@@ -4987,13 +4998,13 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "v_frame"
|
||||
version = "0.3.4"
|
||||
version = "0.3.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e3753f70d50a77f5d381103ba2693a889fed0d84273dd5cbdf4eb8bda720f0c6"
|
||||
checksum = "bec8189c996a12ac77c50065f9c9f64961e56eb940d0ae1a4ccc7bea238bb4bc"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"noop_proc_macro",
|
||||
"num-derive",
|
||||
"num-derive 0.4.0",
|
||||
"num-traits 0.2.15",
|
||||
"rust_hawktracer",
|
||||
]
|
||||
@@ -5535,9 +5546,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "winnow"
|
||||
version = "0.4.7"
|
||||
version = "0.4.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448"
|
||||
checksum = "a9482fe6ceabdf32f3966bfdd350ba69256a97c30253dc616fe0005af24f164e"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
@@ -21,13 +21,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "oculante";
|
||||
version = "0.6.67";
|
||||
version = "0.6.68";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "woelper";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-SpHv6bZff3Z5SnOjamOFf8SRuUlovsLXSFOrqYtNwEs=";
|
||||
hash = "sha256-afkRId4PuRKnnloFLh2rD+npcCCUqDngKcnWbEf+6vk=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
}:
|
||||
|
||||
let fhsEnv = {
|
||||
# Many WINE games need 32bit
|
||||
multiArch = true;
|
||||
|
||||
targetPkgs = pkgs: with pkgs; [
|
||||
bottles-unwrapped
|
||||
# This only allows to enable the toggle, vkBasalt won't work if not installed with environment.systemPackages (or nix-env)
|
||||
|
||||
@@ -14,7 +14,7 @@ in appimageTools.wrapAppImage rec {
|
||||
};
|
||||
};
|
||||
|
||||
multiPkgs = null;
|
||||
multiArch = false;
|
||||
extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
|
||||
p.glib
|
||||
];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -47,7 +47,7 @@ let
|
||||
export LC_ALL=C.UTF-8
|
||||
'';
|
||||
|
||||
multiPkgs = null; # no 32bit needed
|
||||
multiArch = false; # no 32bit needed
|
||||
extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
|
||||
extraInstallCommands = ''
|
||||
mv $out/bin/{${name},${pname}}
|
||||
|
||||
@@ -18,6 +18,9 @@ in buildFHSEnv {
|
||||
|
||||
runScript = "lutris";
|
||||
|
||||
# Many native and WINE games need 32bit
|
||||
multiArch = true;
|
||||
|
||||
targetPkgs = pkgs: with pkgs; [
|
||||
lutris-unwrapped
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ appimageTools.wrapType2 rec {
|
||||
export LC_ALL=C.UTF-8
|
||||
'';
|
||||
|
||||
multiPkgs = null; # no 32bit needed
|
||||
multiArch = false; # no 32bit needed
|
||||
extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
|
||||
p.libsecret
|
||||
p.xorg.libxkbfile
|
||||
|
||||
@@ -26,7 +26,7 @@ appimageTools.wrapType2 rec {
|
||||
export LC_ALL=C.UTF-8
|
||||
'';
|
||||
|
||||
multiPkgs = null; # no 32bit needed
|
||||
multiArch = false; # no 32bit needed
|
||||
extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [ p.at-spi2-atk p.at-spi2-core ];
|
||||
extraInstallCommands = ''
|
||||
mv $out/bin/{${name},${pname}}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -21,7 +21,7 @@ in
|
||||
appimageTools.wrapType2 rec {
|
||||
inherit name src;
|
||||
|
||||
multiPkgs = null; # no 32bit needed
|
||||
multiArch = false; # no 32bit needed
|
||||
extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ texlive pandoc ];
|
||||
extraInstallCommands = ''
|
||||
mv $out/bin/{${name},${pname}}
|
||||
|
||||
@@ -17,7 +17,7 @@ appimageTools.wrapType2 rec {
|
||||
export LC_ALL=C.UTF-8
|
||||
'';
|
||||
|
||||
multiPkgs = null; # no 32bit needed
|
||||
multiArch = false; # no 32bit needed
|
||||
extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
|
||||
extraInstallCommands = "mv $out/bin/{${name},${pname}}";
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ let
|
||||
in appimageTools.wrapType2 {
|
||||
inherit pname src version;
|
||||
|
||||
multiPkgs = null;
|
||||
multiArch = false;
|
||||
extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ];
|
||||
|
||||
extraInstallCommands = ''
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "glooctl";
|
||||
version = "1.14.9";
|
||||
version = "1.14.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "solo-io";
|
||||
repo = "gloo";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-PJvr62slTW3IoauLtRH88BDMpf3qGOWADjj4L4wQBLo=";
|
||||
hash = "sha256-eBfguD4vugGdLj6Qs1VkJVyhXYMrpcqsdTdYEDM86cc=";
|
||||
};
|
||||
|
||||
subPackages = [ "projects/gloo/cli/cmd" ];
|
||||
|
||||
@@ -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,13 +12,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "kubebuilder";
|
||||
version = "3.11.0";
|
||||
version = "3.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes-sigs";
|
||||
repo = "kubebuilder";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-R4piek1mhMy5QPB6weR3F7PiIq0LvwkRAnIndbar9tg=";
|
||||
hash = "sha256-VT9S8Ijf684rowfoU1kvgPSTzR8ZGr3GwxWiYHWLANc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-5XUYmAfFH6UlLF09PqcSLUxkgZ5iHZGj0Vurab+Jl1g=";
|
||||
|
||||
@@ -27,7 +27,7 @@ let
|
||||
export LC_ALL=C.UTF-8
|
||||
'';
|
||||
|
||||
multiPkgs = null; # no 32bit needed
|
||||
multiArch = false; # no 32bit needed
|
||||
extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
|
||||
extraInstallCommands =
|
||||
let appimageContents = appimageTools.extractType2 { inherit name src; }; in
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
let
|
||||
pname = "openlens";
|
||||
version = "6.5.2-356";
|
||||
version = "6.5.2-366";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/MuhammedKalkan/OpenLens/releases/download/v${version}/OpenLens-${version}.x86_64.AppImage";
|
||||
sha256 = "sha256-ZOLfnAKZMqO/MkpjX2SQhtBIeWRGTkPBWdAw67a3l9Q=";
|
||||
sha256 = "sha256-ZAltAS/U/xh4kCT7vQ+NHAzWV7z0uE5GMQICHKSdj8k=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
|
||||
@@ -46,11 +46,11 @@
|
||||
"vendorHash": "sha256-xZ0pS7XxfYGbG2kEw5FAjABDQZmektaI7OhToiFMXKk="
|
||||
},
|
||||
"alicloud": {
|
||||
"hash": "sha256-SYzc8mvLdSHWR75+Fy4Egn2BO8t89aowYHhZ6MlyEIU=",
|
||||
"hash": "sha256-F69Otml1zH5TtD6dRPIXc2pOq2aM8NEsTsnmJDQEdxk=",
|
||||
"homepage": "https://registry.terraform.io/providers/aliyun/alicloud",
|
||||
"owner": "aliyun",
|
||||
"repo": "terraform-provider-alicloud",
|
||||
"rev": "v1.207.1",
|
||||
"rev": "v1.207.2",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
@@ -390,13 +390,13 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"flexibleengine": {
|
||||
"hash": "sha256-WO99FOJ6zZ0GPxoYwH55Ul0HTktH2UZ3yWRrwjk3qA4=",
|
||||
"hash": "sha256-Y7rplfN7acrDWNO9Q4K3WaM5reFxi5ms012+wTm+EF0=",
|
||||
"homepage": "https://registry.terraform.io/providers/FlexibleEngineCloud/flexibleengine",
|
||||
"owner": "FlexibleEngineCloud",
|
||||
"repo": "terraform-provider-flexibleengine",
|
||||
"rev": "v1.38.0",
|
||||
"rev": "v1.39.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-DSdE0CkAIJje71/S64no9fMJMUhAnFiK3lWewvcyE14="
|
||||
"vendorHash": "sha256-RqYzqKPzb5GcrzHnEDZC7GaBt1zP8g28Wo3WNAe07Ck="
|
||||
},
|
||||
"fly": {
|
||||
"hash": "sha256-9QB2fbggCKcJz8tkSYgq/X8r+MB2M76VCWXgsHARTkU=",
|
||||
@@ -1034,11 +1034,11 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"snowflake": {
|
||||
"hash": "sha256-QxqzIaDzVxvxnf10rLWl4CUUIvzWLsSyWHXBg5S1608=",
|
||||
"hash": "sha256-Cou96AjZDi6GTz6i7+x/nJfwHkHrHB9E9g8RzX4/QKo=",
|
||||
"homepage": "https://registry.terraform.io/providers/Snowflake-Labs/snowflake",
|
||||
"owner": "Snowflake-Labs",
|
||||
"repo": "terraform-provider-snowflake",
|
||||
"rev": "v0.67.0",
|
||||
"rev": "v0.68.1",
|
||||
"spdx": "MIT",
|
||||
"vendorHash": "sha256-ZNkZ2GMSBZHz+L626VqT7pTeb8fSYkaCi84O5ggd1FM="
|
||||
},
|
||||
@@ -1106,11 +1106,11 @@
|
||||
"vendorHash": "sha256-GNSKSlaFBj2P+z40U+0uwPSOuQBy+9vOVFfPe8p0A24="
|
||||
},
|
||||
"tencentcloud": {
|
||||
"hash": "sha256-evdKIbPPaHMFOYb77vogr3h8n34fcJf0sJVw5GjaHc8=",
|
||||
"hash": "sha256-BflyXfxfth9wjPCd8aW9maemjjHTzuL8KvxQsvRUKLw=",
|
||||
"homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud",
|
||||
"owner": "tencentcloudstack",
|
||||
"repo": "terraform-provider-tencentcloud",
|
||||
"rev": "v1.81.11",
|
||||
"rev": "v1.81.12",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "terragrunt";
|
||||
version = "0.48.0";
|
||||
version = "0.48.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gruntwork-io";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-Grm2TlBdfRqEeyW+Mvf4lMJokctrCDscm1AmkNzcZps=";
|
||||
hash = "sha256-zBjIUoH5s7Yo1qrzSY4LhxPBDcxxqZmvJt8z50FRro0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-5Umoqi2D6iUk2Ut7YB/nmkOyA6Rx2qFhy/ZbfqoX5qA=";
|
||||
|
||||
@@ -33,6 +33,10 @@ in
|
||||
buildFHSEnv {
|
||||
name = "dropbox";
|
||||
|
||||
# dropbox-cli (i.e. nautilus-dropbox) needs the PID to confirm dropbox is running.
|
||||
# Dropbox's internal limit-to-one-instance check also relies on the PID.
|
||||
unsharePid = false;
|
||||
|
||||
targetPkgs = pkgs: with pkgs; with xorg; [
|
||||
libICE libSM libX11 libXcomposite libXdamage libXext libXfixes libXrender
|
||||
libXxf86vm libxcb xkeyboardconfig
|
||||
|
||||
@@ -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`.
|
||||
|
||||
@@ -20,7 +20,7 @@ in appimageTools.wrapType2 rec {
|
||||
export LC_ALL=C.UTF-8
|
||||
'';
|
||||
|
||||
multiPkgs = null;
|
||||
multiArch = false;
|
||||
extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
|
||||
extraInstallCommands = ''
|
||||
mv $out/bin/{${name},${pname}}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ mkDerivation, backintime-common, python3 }:
|
||||
|
||||
let
|
||||
python' = python3.withPackages (ps: with ps; [ pyqt5 backintime-common ]);
|
||||
python' = python3.withPackages (ps: with ps; [ pyqt5 backintime-common packaging ]);
|
||||
in
|
||||
mkDerivation {
|
||||
inherit (backintime-common)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ lib, stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles, fetchpatch
|
||||
, makeWrapper
|
||||
, enableCmount ? true, fuse, macfuse-stubs
|
||||
, librclone
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
@@ -58,6 +59,10 @@ buildGoModule rec {
|
||||
--prefix LD_LIBRARY_PATH : "${fuse}/lib"
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
inherit librclone;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Command line program to sync files and directories to and from major cloud storage";
|
||||
homepage = "https://rclone.org";
|
||||
|
||||
@@ -31,7 +31,7 @@ in appimageTools.wrapType2 rec {
|
||||
export LC_ALL=C.UTF-8
|
||||
'';
|
||||
|
||||
multiPkgs = null; # no 32bit needed
|
||||
multiArch = false; # no 32bit needed
|
||||
extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
|
||||
extraInstallCommands = ''
|
||||
mv $out/bin/{${pname}-${version},${pname}}
|
||||
|
||||
32
pkgs/applications/radio/fm-tune/default.nix
Normal file
32
pkgs/applications/radio/fm-tune/default.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ lib, stdenv, fetchFromGitHub, pkg-config, liquid-dsp, soapysdr }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fm-tune";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "viraptor";
|
||||
repo = "fm_tune";
|
||||
rev = version;
|
||||
sha256 = "pwL2G1Ni1Ixw/N0diSoGGIoVrtmF92mWZ5i57OOvkX4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ liquid-dsp soapysdr ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Find initial calibration offset for SDR devices";
|
||||
longDescription = ''
|
||||
fm_tune finds the initial offset for calibrating an SDR device. This is
|
||||
based a given FM radio station frequency. The offset given by this tool is
|
||||
not precise, but can be useful as a starting point for other tools which
|
||||
cannot correct for very large errors.
|
||||
'';
|
||||
homepage = "https://github.com/viraptor/fm_tune";
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ viraptor ];
|
||||
mainProgram = "fm_tune";
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
buildKodiAddon rec {
|
||||
pname = "urllib3";
|
||||
namespace = "script.module.urllib3";
|
||||
version = "1.26.13+matrix.1";
|
||||
version = "1.26.16+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-pymhHS1TqRv9o/3zBtmP8QSLMXSgFYno0VaR+YqhJqY=";
|
||||
sha256 = "sha256-HI99Cle/SpwulbDCVoDNy/0EfHVt4q7+LR60YRMaSFY=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -41,7 +41,7 @@ stdenvNoCC.mkDerivation rec {
|
||||
'';
|
||||
homepage = "https://distrobox.privatedns.org/";
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.all;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ atila ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
sway-unwrapped.overrideAttrs (oldAttrs: rec {
|
||||
pname = "swayfx";
|
||||
version = "0.3.1";
|
||||
version = "0.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "WillPower3309";
|
||||
repo = "swayfx";
|
||||
rev = version;
|
||||
sha256 = "sha256-Ox+ror8sCc4mFOqZ1H9782hWbkTSUs5IVYEubHuyoJQ=";
|
||||
sha256 = "sha256-Gwewb0yDVhEBrefSSGDf1hLtpWcntzifPCPJQhqLqI0=";
|
||||
};
|
||||
|
||||
# This patch was backported into SwayFX
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
, profile ? ""
|
||||
, targetPkgs ? pkgs: []
|
||||
, multiPkgs ? pkgs: []
|
||||
, multiArch ? false # Whether to include 32bit packages
|
||||
, extraBuildCommands ? ""
|
||||
, extraBuildCommandsMulti ? ""
|
||||
, extraOutputsToInstall ? []
|
||||
@@ -35,8 +36,8 @@
|
||||
let
|
||||
inherit (stdenv) is64bit;
|
||||
|
||||
# use of glibc_multi is only supported on x86_64-linux
|
||||
isMultiBuild = multiPkgs != null && stdenv.isx86_64 && stdenv.isLinux;
|
||||
# "use of glibc_multi is only supported on x86_64-linux"
|
||||
isMultiBuild = multiArch && stdenv.system == "x86_64-linux";
|
||||
isTargetBuild = !isMultiBuild;
|
||||
|
||||
# list of packages (usually programs) which are only be installed for the
|
||||
@@ -51,21 +52,34 @@ let
|
||||
# these match the host's architecture, glibc_multi is used for multilib
|
||||
# builds. glibcLocales must be before glibc or glibc_multi as otherwiese
|
||||
# the wrong LOCALE_ARCHIVE will be used where only C.UTF-8 is available.
|
||||
basePkgs = with pkgs;
|
||||
[ glibcLocales
|
||||
(if isMultiBuild then glibc_multi else glibc)
|
||||
(toString gcc.cc.lib) bashInteractiveFHS coreutils less shadow su
|
||||
gawk diffutils findutils gnused gnugrep
|
||||
gnutar gzip bzip2 xz
|
||||
];
|
||||
baseMultiPkgs = with pkgsi686Linux;
|
||||
[ (toString gcc.cc.lib)
|
||||
];
|
||||
basePkgs = with pkgs; [
|
||||
glibcLocales
|
||||
(if isMultiBuild then glibc_multi else glibc)
|
||||
(toString gcc.cc.lib)
|
||||
bashInteractiveFHS
|
||||
coreutils
|
||||
less
|
||||
shadow
|
||||
su
|
||||
gawk
|
||||
diffutils
|
||||
findutils
|
||||
gnused
|
||||
gnugrep
|
||||
gnutar
|
||||
gzip
|
||||
bzip2
|
||||
xz
|
||||
];
|
||||
baseMultiPkgs = with pkgsi686Linux; [
|
||||
(toString gcc.cc.lib)
|
||||
];
|
||||
|
||||
ldconfig = writeShellScriptBin "ldconfig" ''
|
||||
# due to a glibc bug, 64-bit ldconfig complains about patchelf'd 32-bit libraries, so we're using 32-bit ldconfig
|
||||
exec ${if stdenv.isx86_64 && stdenv.isLinux then pkgsi686Linux.glibc.bin else pkgs.glibc.bin}/bin/ldconfig -f /etc/ld.so.conf -C /etc/ld.so.cache "$@"
|
||||
exec ${if stdenv.system == "x86_64-linux" then pkgsi686Linux.glibc.bin else pkgs.glibc.bin}/bin/ldconfig -f /etc/ld.so.conf -C /etc/ld.so.cache "$@"
|
||||
'';
|
||||
|
||||
etcProfile = writeText "profile" ''
|
||||
export PS1='${name}-chrootenv:\u@\h:\w\$ '
|
||||
export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive'
|
||||
@@ -104,7 +118,7 @@ let
|
||||
# Compose /etc for the chroot environment
|
||||
etcPkg = runCommandLocal "${name}-chrootenv-etc" { } ''
|
||||
mkdir -p $out/etc
|
||||
cd $out/etc
|
||||
pushd $out/etc
|
||||
|
||||
# environment variables
|
||||
ln -s ${etcProfile} profile
|
||||
@@ -172,13 +186,18 @@ let
|
||||
ln -s lib64 lib
|
||||
|
||||
# copy glibc stuff
|
||||
cp -rsHf ${staticUsrProfileTarget}/lib/32/* lib32/ && chmod u+w -R lib32/
|
||||
cp -rsHf ${staticUsrProfileTarget}/lib/32/* lib32/
|
||||
chmod u+w -R lib32/
|
||||
|
||||
# copy content of multiPaths (32bit libs)
|
||||
[ -d ${staticUsrProfileMulti}/lib ] && cp -rsHf ${staticUsrProfileMulti}/lib/* lib32/ && chmod u+w -R lib32/
|
||||
if [ -d ${staticUsrProfileMulti}/lib ]; then
|
||||
cp -rsHf ${staticUsrProfileMulti}/lib/* lib32/
|
||||
chmod u+w -R lib32/
|
||||
fi
|
||||
|
||||
# copy content of targetPaths (64bit libs)
|
||||
cp -rsHf ${staticUsrProfileTarget}/lib/* lib64/ && chmod u+w -R lib64/
|
||||
cp -rsHf ${staticUsrProfileTarget}/lib/* lib64/
|
||||
chmod u+w -R lib64/
|
||||
|
||||
# symlink 32-bit ld-linux.so
|
||||
ln -Ls ${staticUsrProfileTarget}/lib/32/ld-linux.so.2 lib/
|
||||
@@ -191,13 +210,15 @@ let
|
||||
# the target profile is the actual profile that will be used for the chroot
|
||||
setupTargetProfile = ''
|
||||
mkdir -m0755 usr
|
||||
cd usr
|
||||
pushd usr
|
||||
|
||||
${setupLibDirs}
|
||||
${lib.optionalString isMultiBuild ''
|
||||
|
||||
'' + lib.optionalString isMultiBuild ''
|
||||
if [ -d "${staticUsrProfileMulti}/share" ]; then
|
||||
cp -rLf ${staticUsrProfileMulti}/share share
|
||||
fi
|
||||
''}
|
||||
'' + ''
|
||||
if [ -d "${staticUsrProfileTarget}/share" ]; then
|
||||
if [ -d share ]; then
|
||||
chmod -R 755 share
|
||||
@@ -223,18 +244,19 @@ let
|
||||
ln -s "$i"
|
||||
fi
|
||||
done
|
||||
|
||||
popd
|
||||
'';
|
||||
|
||||
in runCommandLocal "${name}-fhs" {
|
||||
passthru = {
|
||||
inherit args multiPaths targetPaths;
|
||||
inherit args multiPaths targetPaths ldconfig;
|
||||
};
|
||||
} ''
|
||||
mkdir -p $out
|
||||
cd $out
|
||||
pushd $out
|
||||
|
||||
${setupTargetProfile}
|
||||
cd $out
|
||||
${extraBuildCommands}
|
||||
cd $out
|
||||
${lib.optionalString isMultiBuild extraBuildCommandsMulti}
|
||||
''
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
, npmBuildScript ? "build"
|
||||
# Flags to pass to all npm commands.
|
||||
, npmFlags ? [ ]
|
||||
# Flags to pass to `npm ci` and `npm prune`.
|
||||
# Flags to pass to `npm ci`.
|
||||
, npmInstallFlags ? [ ]
|
||||
# Flags to pass to `npm rebuild`.
|
||||
, npmRebuildFlags ? [ ]
|
||||
@@ -30,6 +30,10 @@
|
||||
, npmBuildFlags ? [ ]
|
||||
# Flags to pass to `npm pack`.
|
||||
, npmPackFlags ? [ ]
|
||||
# Flags to pass to `npm prune`.
|
||||
, npmPruneFlags ? npmInstallFlags
|
||||
# Value for npm `--workspace` flag and directory in which the files to be installed are found.
|
||||
, npmWorkspace ? null
|
||||
, ...
|
||||
} @ args:
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ npmBuildHook() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! npm run "$npmBuildScript" $npmBuildFlags "${npmBuildFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}"; then
|
||||
if ! npm run ${npmWorkspace+--workspace=$npmWorkspace} "$npmBuildScript" $npmBuildFlags "${npmBuildFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}"; then
|
||||
echo
|
||||
echo 'ERROR: `npm build` failed'
|
||||
echo
|
||||
|
||||
@@ -13,8 +13,8 @@ npmInstallHook() {
|
||||
while IFS= read -r file; do
|
||||
local dest="$packageOut/$(dirname "$file")"
|
||||
mkdir -p "$dest"
|
||||
cp "$file" "$dest"
|
||||
done < <(@jq@ --raw-output '.[0].files | map(.path) | join("\n")' <<< "$(npm pack --json --dry-run $npmPackFlags "${npmPackFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}")")
|
||||
cp "${npmWorkspace-.}/$file" "$dest"
|
||||
done < <(@jq@ --raw-output '.[0].files | map(.path) | join("\n")' <<< "$(npm pack --json --dry-run ${npmWorkspace+--workspace=$npmWorkspace} $npmPackFlags "${npmPackFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}")")
|
||||
|
||||
while IFS=" " read -ra bin; do
|
||||
mkdir -p "$out/bin"
|
||||
@@ -22,13 +22,13 @@ npmInstallHook() {
|
||||
done < <(@jq@ --raw-output '(.bin | type) as $typ | if $typ == "string" then
|
||||
.name + " " + .bin
|
||||
elif $typ == "object" then .bin | to_entries | map(.key + " " + .value) | join("\n")
|
||||
else "invalid type " + $typ | halt_error end' package.json)
|
||||
else "invalid type " + $typ | halt_error end' "${npmWorkspace-.}/package.json")
|
||||
|
||||
local -r nodeModulesPath="$packageOut/node_modules"
|
||||
|
||||
if [ ! -d "$nodeModulesPath" ]; then
|
||||
if [ -z "${dontNpmPrune-}" ]; then
|
||||
npm prune --omit dev --no-save $npmInstallFlags "${npmInstallFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}"
|
||||
npm prune --omit=dev --no-save ${npmWorkspace+--workspace=$npmWorkspace} $npmPruneFlags "${npmPruneFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}"
|
||||
fi
|
||||
|
||||
find node_modules -maxdepth 1 -type d -empty -delete
|
||||
|
||||
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,
|
||||
})
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user