Merge master into staging-next

This commit is contained in:
github-actions[bot] 2022-04-02 00:02:09 +00:00 committed by GitHub
commit 8b4f11bb87
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
46 changed files with 563 additions and 88 deletions

View file

@ -117,8 +117,55 @@ rec {
callPackageWith = autoArgs: fn: args: callPackageWith = autoArgs: fn: args:
let let
f = if lib.isFunction fn then fn else import fn; f = if lib.isFunction fn then fn else import fn;
auto = builtins.intersectAttrs (lib.functionArgs f) autoArgs; fargs = lib.functionArgs f;
in makeOverridable f (auto // args);
# All arguments that will be passed to the function
# This includes automatic ones and ones passed explicitly
allArgs = builtins.intersectAttrs fargs autoArgs // args;
# A list of argument names that the function requires, but
# wouldn't be passed to it
missingArgs = lib.attrNames
# Filter out arguments that have a default value
(lib.filterAttrs (name: value: ! value)
# Filter out arguments that would be passed
(removeAttrs fargs (lib.attrNames allArgs)));
# Get a list of suggested argument names for a given missing one
getSuggestions = arg: lib.pipe (autoArgs // args) [
lib.attrNames
# Only use ones that are at most 2 edits away. While mork would work,
# levenshteinAtMost is only fast for 2 or less.
(lib.filter (lib.strings.levenshteinAtMost 2 arg))
# Put strings with shorter distance first
(lib.sort (x: y: lib.strings.levenshtein x arg < lib.strings.levenshtein y arg))
# Only take the first couple results
(lib.take 3)
# Quote all entries
(map (x: "\"" + x + "\""))
];
prettySuggestions = suggestions:
if suggestions == [] then ""
else if lib.length suggestions == 1 then ", did you mean ${lib.elemAt suggestions 0}?"
else ", did you mean ${lib.concatStringsSep ", " (lib.init suggestions)} or ${lib.last suggestions}?";
errorForArg = arg:
let
loc = builtins.unsafeGetAttrPos arg fargs;
# loc' can be removed once lib/minver.nix is >2.3.4, since that includes
# https://github.com/NixOS/nix/pull/3468 which makes loc be non-null
loc' = if loc != null then loc.file + ":" + toString loc.line
else if ! lib.isFunction fn then
toString fn + lib.optionalString (lib.sources.pathIsDirectory fn) "/default.nix"
else "<unknown location>";
in "Function called without required argument \"${arg}\" at "
+ "${loc'}${prettySuggestions (getSuggestions arg)}";
# Only show the error for the first missing argument
error = errorForArg (lib.head missingArgs);
in if missingArgs == [] then makeOverridable f allArgs else throw error;
/* Like callPackage, but for a function that returns an attribute /* Like callPackage, but for a function that returns an attribute

View file

@ -774,4 +774,131 @@ rec {
(x: if stringLength x == 0 then "unknown" else x) (x: if stringLength x == 0 then "unknown" else x)
]; ];
/* Computes the Levenshtein distance between two strings.
Complexity O(n*m) where n and m are the lengths of the strings.
Algorithm adjusted from https://stackoverflow.com/a/9750974/6605742
Type: levenshtein :: string -> string -> int
Example:
levenshtein "foo" "foo"
=> 0
levenshtein "book" "hook"
=> 1
levenshtein "hello" "Heyo"
=> 3
*/
levenshtein = a: b: let
# Two dimensional array with dimensions (stringLength a + 1, stringLength b + 1)
arr = lib.genList (i:
lib.genList (j:
dist i j
) (stringLength b + 1)
) (stringLength a + 1);
d = x: y: lib.elemAt (lib.elemAt arr x) y;
dist = i: j:
let c = if substring (i - 1) 1 a == substring (j - 1) 1 b
then 0 else 1;
in
if j == 0 then i
else if i == 0 then j
else lib.min
( lib.min (d (i - 1) j + 1) (d i (j - 1) + 1))
( d (i - 1) (j - 1) + c );
in d (stringLength a) (stringLength b);
/* Returns the length of the prefix common to both strings.
*/
commonPrefixLength = a: b:
let
m = lib.min (stringLength a) (stringLength b);
go = i: if i >= m then m else if substring i 1 a == substring i 1 b then go (i + 1) else i;
in go 0;
/* Returns the length of the suffix common to both strings.
*/
commonSuffixLength = a: b:
let
m = lib.min (stringLength a) (stringLength b);
go = i: if i >= m then m else if substring (stringLength a - i - 1) 1 a == substring (stringLength b - i - 1) 1 b then go (i + 1) else i;
in go 0;
/* Returns whether the levenshtein distance between two strings is at most some value
Complexity is O(min(n,m)) for k <= 2 and O(n*m) otherwise
Type: levenshteinAtMost :: int -> string -> string -> bool
Example:
levenshteinAtMost 0 "foo" "foo"
=> true
levenshteinAtMost 1 "foo" "boa"
=> false
levenshteinAtMost 2 "foo" "boa"
=> true
levenshteinAtMost 2 "This is a sentence" "this is a sentense."
=> false
levenshteinAtMost 3 "This is a sentence" "this is a sentense."
=> true
*/
levenshteinAtMost = let
infixDifferAtMost1 = x: y: stringLength x <= 1 && stringLength y <= 1;
# This function takes two strings stripped by their common pre and suffix,
# and returns whether they differ by at most two by Levenshtein distance.
# Because of this stripping, if they do indeed differ by at most two edits,
# we know that those edits were (if at all) done at the start or the end,
# while the middle has to have stayed the same. This fact is used in the
# implementation.
infixDifferAtMost2 = x: y:
let
xlen = stringLength x;
ylen = stringLength y;
# This function is only called with |x| >= |y| and |x| - |y| <= 2, so
# diff is one of 0, 1 or 2
diff = xlen - ylen;
# Infix of x and y, stripped by the left and right most character
xinfix = substring 1 (xlen - 2) x;
yinfix = substring 1 (ylen - 2) y;
# x and y but a character deleted at the left or right
xdelr = substring 0 (xlen - 1) x;
xdell = substring 1 (xlen - 1) x;
ydelr = substring 0 (ylen - 1) y;
ydell = substring 1 (ylen - 1) y;
in
# A length difference of 2 can only be gotten with 2 delete edits,
# which have to have happened at the start and end of x
# Example: "abcdef" -> "bcde"
if diff == 2 then xinfix == y
# A length difference of 1 can only be gotten with a deletion on the
# right and a replacement on the left or vice versa.
# Example: "abcdef" -> "bcdez" or "zbcde"
else if diff == 1 then xinfix == ydelr || xinfix == ydell
# No length difference can either happen through replacements on both
# sides, or a deletion on the left and an insertion on the right or
# vice versa
# Example: "abcdef" -> "zbcdez" or "bcdefz" or "zabcde"
else xinfix == yinfix || xdelr == ydell || xdell == ydelr;
in k: if k <= 0 then a: b: a == b else
let f = a: b:
let
alen = stringLength a;
blen = stringLength b;
prelen = commonPrefixLength a b;
suflen = commonSuffixLength a b;
presuflen = prelen + suflen;
ainfix = substring prelen (alen - presuflen) a;
binfix = substring prelen (blen - presuflen) b;
in
# Make a be the bigger string
if alen < blen then f b a
# If a has over k more characters than b, even with k deletes on a, b can't be reached
else if alen - blen > k then false
else if k == 1 then infixDifferAtMost1 ainfix binfix
else if k == 2 then infixDifferAtMost2 ainfix binfix
else levenshtein ainfix binfix <= k;
in f;
} }

View file

@ -913,4 +913,156 @@ runTests {
}; };
}; };
## Levenshtein distance functions and co.
testCommonPrefixLengthEmpty = {
expr = strings.commonPrefixLength "" "hello";
expected = 0;
};
testCommonPrefixLengthSame = {
expr = strings.commonPrefixLength "hello" "hello";
expected = 5;
};
testCommonPrefixLengthDiffering = {
expr = strings.commonPrefixLength "hello" "hey";
expected = 2;
};
testCommonSuffixLengthEmpty = {
expr = strings.commonSuffixLength "" "hello";
expected = 0;
};
testCommonSuffixLengthSame = {
expr = strings.commonSuffixLength "hello" "hello";
expected = 5;
};
testCommonSuffixLengthDiffering = {
expr = strings.commonSuffixLength "test" "rest";
expected = 3;
};
testLevenshteinEmpty = {
expr = strings.levenshtein "" "";
expected = 0;
};
testLevenshteinOnlyAdd = {
expr = strings.levenshtein "" "hello there";
expected = 11;
};
testLevenshteinOnlyRemove = {
expr = strings.levenshtein "hello there" "";
expected = 11;
};
testLevenshteinOnlyTransform = {
expr = strings.levenshtein "abcdef" "ghijkl";
expected = 6;
};
testLevenshteinMixed = {
expr = strings.levenshtein "kitchen" "sitting";
expected = 5;
};
testLevenshteinAtMostZeroFalse = {
expr = strings.levenshteinAtMost 0 "foo" "boo";
expected = false;
};
testLevenshteinAtMostZeroTrue = {
expr = strings.levenshteinAtMost 0 "foo" "foo";
expected = true;
};
testLevenshteinAtMostOneFalse = {
expr = strings.levenshteinAtMost 1 "car" "ct";
expected = false;
};
testLevenshteinAtMostOneTrue = {
expr = strings.levenshteinAtMost 1 "car" "cr";
expected = true;
};
# We test levenshteinAtMost 2 particularly well because it uses a complicated
# implementation
testLevenshteinAtMostTwoIsEmpty = {
expr = strings.levenshteinAtMost 2 "" "";
expected = true;
};
testLevenshteinAtMostTwoIsZero = {
expr = strings.levenshteinAtMost 2 "abcdef" "abcdef";
expected = true;
};
testLevenshteinAtMostTwoIsOne = {
expr = strings.levenshteinAtMost 2 "abcdef" "abddef";
expected = true;
};
testLevenshteinAtMostTwoDiff0False = {
expr = strings.levenshteinAtMost 2 "abcdef" "aczyef";
expected = false;
};
testLevenshteinAtMostTwoDiff0Outer = {
expr = strings.levenshteinAtMost 2 "abcdef" "zbcdez";
expected = true;
};
testLevenshteinAtMostTwoDiff0DelLeft = {
expr = strings.levenshteinAtMost 2 "abcdef" "bcdefz";
expected = true;
};
testLevenshteinAtMostTwoDiff0DelRight = {
expr = strings.levenshteinAtMost 2 "abcdef" "zabcde";
expected = true;
};
testLevenshteinAtMostTwoDiff1False = {
expr = strings.levenshteinAtMost 2 "abcdef" "bddez";
expected = false;
};
testLevenshteinAtMostTwoDiff1DelLeft = {
expr = strings.levenshteinAtMost 2 "abcdef" "bcdez";
expected = true;
};
testLevenshteinAtMostTwoDiff1DelRight = {
expr = strings.levenshteinAtMost 2 "abcdef" "zbcde";
expected = true;
};
testLevenshteinAtMostTwoDiff2False = {
expr = strings.levenshteinAtMost 2 "hello" "hxo";
expected = false;
};
testLevenshteinAtMostTwoDiff2True = {
expr = strings.levenshteinAtMost 2 "hello" "heo";
expected = true;
};
testLevenshteinAtMostTwoDiff3 = {
expr = strings.levenshteinAtMost 2 "hello" "ho";
expected = false;
};
testLevenshteinAtMostThreeFalse = {
expr = strings.levenshteinAtMost 3 "hello" "Holla!";
expected = false;
};
testLevenshteinAtMostThreeTrue = {
expr = strings.levenshteinAtMost 3 "hello" "Holla";
expected = true;
};
} }

View file

@ -8549,7 +8549,7 @@
}; };
msfjarvis = { msfjarvis = {
github = "msfjarvis"; github = "msfjarvis";
githubId = 3348378; githubId = 13348378;
name = "Harsh Shandilya"; name = "Harsh Shandilya";
email = "nixos@msfjarvis.dev"; email = "nixos@msfjarvis.dev";
keys = [{ keys = [{

View file

@ -17,7 +17,7 @@ $ diskutil list
[..] [..]
$ diskutil unmountDisk diskN $ diskutil unmountDisk diskN
Unmount of all volumes on diskN was successful Unmount of all volumes on diskN was successful
$ sudo dd if=nix.iso of=/dev/rdiskN $ sudo dd if=nix.iso of=/dev/rdiskN bs=1M
</programlisting> </programlisting>
<para> <para>
Using the 'raw' <literal>rdiskN</literal> device instead of Using the 'raw' <literal>rdiskN</literal> device instead of

View file

@ -1412,6 +1412,35 @@
versions. versions.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
A new option group
<literal>systemd.network.wait-online</literal> was added, with
options to configure
<literal>systemd-networkd-wait-online.service</literal>:
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
<literal>anyInterface</literal> allows specifying that the
network should be considered online when <emphasis>at
least one</emphasis> interface is online (useful on
laptops)
</para>
</listitem>
<listitem>
<para>
<literal>timeout</literal> defines how long to wait for
the network to come online
</para>
</listitem>
<listitem>
<para>
<literal>extraArgs</literal> for everything else
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem> <listitem>
<para> <para>
The <literal>influxdb2</literal> package was split into The <literal>influxdb2</literal> package was split into

View file

@ -18,7 +18,7 @@ $ diskutil list
[..] [..]
$ diskutil unmountDisk diskN $ diskutil unmountDisk diskN
Unmount of all volumes on diskN was successful Unmount of all volumes on diskN was successful
$ sudo dd if=nix.iso of=/dev/rdiskN $ sudo dd if=nix.iso of=/dev/rdiskN bs=1M
``` ```
Using the \'raw\' `rdiskN` device instead of `diskN` completes in Using the \'raw\' `rdiskN` device instead of `diskN` completes in

View file

@ -502,6 +502,11 @@ In addition to numerous new and upgraded packages, this release has the followin
still under heavy development and behavior is not always flawless. still under heavy development and behavior is not always flawless.
Furthermore, not all Electron apps use the latest Electron versions. Furthermore, not all Electron apps use the latest Electron versions.
- A new option group `systemd.network.wait-online` was added, with options to configure `systemd-networkd-wait-online.service`:
- `anyInterface` allows specifying that the network should be considered online when *at least one* interface is online (useful on laptops)
- `timeout` defines how long to wait for the network to come online
- `extraArgs` for everything else
- The `influxdb2` package was split into `influxdb2-server` and - The `influxdb2` package was split into `influxdb2-server` and
`influxdb2-cli`, matching the split that took place upstream. A `influxdb2-cli`, matching the split that took place upstream. A
combined `influxdb2` package is still provided in this release for combined `influxdb2` package is still provided in this release for

View file

@ -1,4 +1,4 @@
{ config, lib, ... }: { config, lib, pkgs, ... }:
with lib; with lib;
let let
cfg = config.services.jenkinsSlave; cfg = config.services.jenkinsSlave;
@ -46,6 +46,15 @@ in {
this is the home of the "jenkins" user. this is the home of the "jenkins" user.
''; '';
}; };
javaPackage = mkOption {
default = pkgs.jdk;
defaultText = literalExpression "pkgs.jdk";
description = ''
Java package to install.
'';
type = types.package;
};
}; };
}; };
@ -64,5 +73,10 @@ in {
uid = config.ids.uids.jenkins; uid = config.ids.uids.jenkins;
}; };
}; };
programs.java = {
enable = true;
package = cfg.javaPackage;
};
}; };
} }

View file

@ -1745,6 +1745,48 @@ in
})); }));
}; };
systemd.network.wait-online = {
anyInterface = mkOption {
description = ''
Whether to consider the network online when any interface is online, as opposed to all of them.
This is useful on portable machines with a wired and a wireless interface, for example.
'';
type = types.bool;
default = false;
};
ignoredInterfaces = mkOption {
description = ''
Network interfaces to be ignored when deciding if the system is online.
'';
type = with types; listOf str;
default = [];
example = [ "wg0" ];
};
timeout = mkOption {
description = ''
Time to wait for the network to come online, in seconds. Set to 0 to disable.
'';
type = types.ints.unsigned;
default = 120;
example = 0;
};
extraArgs = mkOption {
description = ''
Extra command-line arguments to pass to systemd-networkd-wait-online.
These also affect per-interface <literal>systemd-network-wait-online@</literal> services.
See <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd-networkd-wait-online.service.html">
<citerefentry><refentrytitle>systemd-networkd-wait-online.service</refentrytitle><manvolnum>8</manvolnum>
</citerefentry></link> for all available options.
'';
type = with types; listOf str;
default = [];
};
};
}; };
config = mkMerge [ config = mkMerge [
@ -1753,6 +1795,11 @@ in
{ {
systemd.network.units = mapAttrs' (n: v: nameValuePair "${n}.link" (linkToUnit n v)) cfg.links; systemd.network.units = mapAttrs' (n: v: nameValuePair "${n}.link" (linkToUnit n v)) cfg.links;
environment.etc = unitFiles; environment.etc = unitFiles;
systemd.network.wait-online.extraArgs =
[ "--timeout=${toString cfg.wait-online.timeout}" ]
++ optional cfg.wait-online.anyInterface "--any"
++ map (i: "--ignore=${i}") cfg.wait-online.ignoredInterfaces;
} }
(mkIf config.systemd.network.enable { (mkIf config.systemd.network.enable {
@ -1781,6 +1828,10 @@ in
systemd.services.systemd-networkd-wait-online = { systemd.services.systemd-networkd-wait-online = {
wantedBy = [ "network-online.target" ]; wantedBy = [ "network-online.target" ];
serviceConfig.ExecStart = [
""
"${config.systemd.package}/lib/systemd/systemd-networkd-wait-online ${utils.escapeSystemdExecArgs cfg.wait-online.extraArgs}"
];
}; };
systemd.services."systemd-network-wait-online@" = { systemd.services."systemd-network-wait-online@" = {
@ -1791,7 +1842,7 @@ in
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
ExecStart = "${config.systemd.package}/lib/systemd/systemd-networkd-wait-online -i %I"; ExecStart = "${config.systemd.package}/lib/systemd/systemd-networkd-wait-online -i %I ${utils.escapeSystemdExecArgs cfg.wait-online.extraArgs}";
}; };
}; };

View file

@ -6,7 +6,10 @@ let
inherit (lib) mkOption types; inherit (lib) mkOption types;
podmanPackage = (pkgs.podman.override { inherit (cfg) extraPackages; }); podmanPackage = (pkgs.podman.override {
extraPackages = cfg.extraPackages
++ lib.optional (builtins.elem "zfs" config.boot.supportedFilesystems) config.boot.zfs.package;
});
# Provides a fake "docker" binary mapping to podman # Provides a fake "docker" binary mapping to podman
dockerCompat = pkgs.runCommand "${podmanPackage.pname}-docker-compat-${podmanPackage.version}" { dockerCompat = pkgs.runCommand "${podmanPackage.pname}-docker-compat-${podmanPackage.version}" {

View file

@ -90,6 +90,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
slave.fail("systemctl is-enabled jenkins.service") slave.fail("systemctl is-enabled jenkins.service")
slave.succeed("java -fullversion")
with subtest("jobs are declarative"): with subtest("jobs are declarative"):
# Check that jobs are created on disk. # Check that jobs are created on disk.
master.wait_for_unit("jenkins-job-builder") master.wait_for_unit("jenkins-job-builder")

View file

@ -9,16 +9,16 @@ let
in buildGoModule rec { in buildGoModule rec {
pname = "go-ethereum"; pname = "go-ethereum";
version = "1.10.16"; version = "1.10.17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ethereum"; owner = "ethereum";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-l+hxAUw55d9MYLIUdF6qSEIelJQYRCvHyw1yuossmyA="; sha256 = "sha256-GBlrg4wOiqEQTZC3CtfAZbIvS16/pSjEedEDrPGNUtY=";
}; };
vendorSha256 = "sha256-keeox2d2WEzY9ynEcovPaU95YzVQlbTu1i7PLpjkjZU="; vendorSha256 = "sha256-D4odWuGFipSvbKbNlA6PkTo3rWGTCptJcn/7V7ZA7qs=";
doCheck = false; doCheck = false;

View file

@ -45,19 +45,19 @@
} }
}, },
"ungoogled-chromium": { "ungoogled-chromium": {
"version": "99.0.4844.84", "version": "100.0.4896.60",
"sha256": "05bma8lsm5lad58mlfiv8bg0fw5k5mxh0v6g1ik7xp2bsd71iv10", "sha256": "1p7zggnhsz9gj3zil0nyas4ym5bd94vs0z6mdg7r1l0s0vrsaphf",
"sha256bin64": "0sdnsnp7hnpip91hwbz3hiw2727g0a3ydf55ldqv9bgik3vn1wln", "sha256bin64": "07wavs9r6ilwx5rzyqvydcjskg6sml5b8m6mw7qzykvhs8bnvfh5",
"deps": { "deps": {
"gn": { "gn": {
"version": "2022-01-10", "version": "2022-01-21",
"url": "https://gn.googlesource.com/gn", "url": "https://gn.googlesource.com/gn",
"rev": "80a40b07305373617eba2d5878d353532af77da3", "rev": "0725d7827575b239594fbc8fd5192873a1d62f44",
"sha256": "1103lf38h7412949j6nrk48m2vv2rrxacn42sjg33lg88nyv7skv" "sha256": "1dzdvcn2r5c9giknvasf3y5y4901kav7igivjvrpww66ywsj8fzr"
}, },
"ungoogled-patches": { "ungoogled-patches": {
"rev": "99.0.4844.84-1", "rev": "100.0.4896.60-1",
"sha256": "1j02zcam09mdw7wg30r1mx27b8bw0s9dvk4qjl6vrhp24rbmscs7" "sha256": "02q7ghxynkgkbilcb8bx8q26s80fvd4hbc58zq74pnzpmn7qi342"
} }
} }
} }

View file

@ -11,7 +11,7 @@ assert withQt -> qt5 != null;
with lib; with lib;
let let
version = "3.6.2"; version = "3.6.3";
variant = if withQt then "qt" else "cli"; variant = if withQt then "qt" else "cli";
in stdenv.mkDerivation { in stdenv.mkDerivation {
@ -21,7 +21,7 @@ in stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz"; url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
sha256 = "sha256-XZAaVXKu+VPwStwlPtKgaZ1MYnedMkkCHh6FQaAkww4="; sha256 = "sha256-tgNkpMAGihCBGrP9B1ymwesOddRGACcbiKIO2Tou9jE=";
}; };
cmakeFlags = [ cmakeFlags = [

View file

@ -1,14 +1,14 @@
{ {
"version": "14.9.1", "version": "14.9.2",
"repo_hash": "0jkhvglisaj3h9ls8q8wrxnnp4xp3zggc8vmwg6jqqjsmbpi332h", "repo_hash": "sha256-+tZN6isOb7LtUVwGshx9TP+P42sftJmQGVk1L9UJqcY=",
"yarn_hash": "1bq1ka0nlb2nkjx70qpwpm8x6crbkfj0c8m39pwwc42j8wn10r9g", "yarn_hash": "1mya6y0cb9x8491gpf7f1i7qi2rb0l7d9g5yzj44vvy3mb4rcqaj",
"owner": "gitlab-org", "owner": "gitlab-org",
"repo": "gitlab", "repo": "gitlab",
"rev": "v14.9.1-ee", "rev": "v14.9.2-ee",
"passthru": { "passthru": {
"GITALY_SERVER_VERSION": "14.9.1", "GITALY_SERVER_VERSION": "14.9.2",
"GITLAB_PAGES_VERSION": "1.56.0", "GITLAB_PAGES_VERSION": "1.56.1",
"GITLAB_SHELL_VERSION": "13.24.0", "GITLAB_SHELL_VERSION": "13.24.0",
"GITLAB_WORKHORSE_VERSION": "14.9.1" "GITLAB_WORKHORSE_VERSION": "14.9.2"
} }
} }

View file

@ -11,7 +11,7 @@ let
gemdir = ./.; gemdir = ./.;
}; };
version = "14.9.1"; version = "14.9.2";
gitaly_package = "gitlab.com/gitlab-org/gitaly/v${lib.versions.major version}"; gitaly_package = "gitlab.com/gitlab-org/gitaly/v${lib.versions.major version}";
in in
@ -23,7 +23,7 @@ buildGoModule {
owner = "gitlab-org"; owner = "gitlab-org";
repo = "gitaly"; repo = "gitaly";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-mk6JZuu6b2r/OqRI4ZUf8AV/ObRKhTIQT9bQE8sH894="; sha256 = "sha256-eEo+WZ2N/5bLfvwJCNf9qt+h/V5dIVqCjVJeomzw/Ps=";
}; };
vendorSha256 = "sha256-kEjgWA/Task23PScPYrqdDu3vdVR/FJl7OilUug/Bds="; vendorSha256 = "sha256-kEjgWA/Task23PScPYrqdDu3vdVR/FJl7OilUug/Bds=";

View file

@ -5,7 +5,7 @@ in
buildGoModule rec { buildGoModule rec {
pname = "gitlab-workhorse"; pname = "gitlab-workhorse";
version = "14.9.1"; version = "14.9.2";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = data.owner; owner = data.owner;

View file

@ -67,7 +67,7 @@ gem 'akismet', '~> 3.0'
gem 'invisible_captcha', '~> 1.1.0' gem 'invisible_captcha', '~> 1.1.0'
# Two-factor authentication # Two-factor authentication
gem 'devise-two-factor', '~> 4.0.0' gem 'devise-two-factor', '~> 4.0.2'
gem 'rqrcode-rails3', '~> 0.1.7' gem 'rqrcode-rails3', '~> 0.1.7'
gem 'attr_encrypted', '~> 3.1.0' gem 'attr_encrypted', '~> 3.1.0'
gem 'u2f', '~> 0.2.1' gem 'u2f', '~> 0.2.1'

View file

@ -263,11 +263,11 @@ GEM
railties (>= 4.1.0) railties (>= 4.1.0)
responders responders
warden (~> 1.2.3) warden (~> 1.2.3)
devise-two-factor (4.0.0) devise-two-factor (4.0.2)
activesupport (< 6.2) activesupport (< 7.1)
attr_encrypted (>= 1.3, < 4, != 2) attr_encrypted (>= 1.3, < 4, != 2)
devise (~> 4.0) devise (~> 4.0)
railties (< 6.2) railties (< 7.1)
rotp (~> 6.0) rotp (~> 6.0)
diff-lcs (1.4.4) diff-lcs (1.4.4)
diff_match_patch (0.1.0) diff_match_patch (0.1.0)
@ -1450,7 +1450,7 @@ DEPENDENCIES
derailed_benchmarks derailed_benchmarks
device_detector device_detector
devise (~> 4.7.2) devise (~> 4.7.2)
devise-two-factor (~> 4.0.0) devise-two-factor (~> 4.0.2)
diff_match_patch (~> 0.1.0) diff_match_patch (~> 0.1.0)
diffy (~> 3.3) diffy (~> 3.3)
discordrb-webhooks (~> 3.4) discordrb-webhooks (~> 3.4)

View file

@ -1088,10 +1088,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "148pfr6g8dwikdq3994gsid2a3n6p5h4z1a1dzh1898shr5f9znc"; sha256 = "04f5rb8fg4cvzm32v413z3h53wc0fgxg927q8rqd546hdrlx4j35";
type = "gem"; type = "gem";
}; };
version = "4.0.0"; version = "4.0.2";
}; };
diff-lcs = { diff-lcs = {
groups = ["default" "development" "test"]; groups = ["default" "development" "test"];

View file

@ -17,13 +17,13 @@
buildGoModule rec { buildGoModule rec {
pname = "podman"; pname = "podman";
version = "4.0.2"; version = "4.0.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containers"; owner = "containers";
repo = "podman"; repo = "podman";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-uLpvTnn2EWEI8+5gC3ofMjsZ9O7nLOaaUGGuvSE1gdE="; sha256 = "sha256-o/CIs+3LnbaUUpOQI1hijrxH7f1qBnrQw56TJ18jKQw=";
}; };
vendorSha256 = null; vendorSha256 = null;

View file

@ -9,7 +9,7 @@
}: }:
buildPythonPackage rec { buildPythonPackage rec {
version = "0.1.6"; version = "0.1.8";
pname = "cdcs"; pname = "cdcs";
format = "setuptools"; format = "setuptools";
@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "usnistgov"; owner = "usnistgov";
repo = "pycdcs"; repo = "pycdcs";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-w9CBNOK9oXTIUa+SsnepRN0wAz7WPZGfUNDSbtVn1L8="; sha256 = "sha256-s+COE7hus1J5I8PTdagl7KEK5QFoidjQ3ee46kOWmkE=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -11,7 +11,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "dropbox"; pname = "dropbox";
version = "11.28.0"; version = "11.29.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "dropbox"; owner = "dropbox";
repo = "dropbox-sdk-python"; repo = "dropbox-sdk-python";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-xNenBmeCRIYxQqAkV8IDpPpIHyVAYJs1jAFr8w1tz2Y="; sha256 = "sha256-TKJb34hJYzZtQcqgopLpN8c1utWCNjmev9epY+hYU7M=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -9,14 +9,14 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "jsbeautifier"; pname = "jsbeautifier";
version = "1.14.1"; version = "1.14.2";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-ZfT3dLDkywIutJmbRc1ndi92Qnxe80CCq6VLwdjvI+s="; hash = "sha256-PskybkfTilQ5W97/h2lWakcnWOcLnhG6fMVs/spqm/Y=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -6,13 +6,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "param"; pname = "param";
version = "1.12.0"; version = "1.12.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "holoviz"; owner = "holoviz";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "02zmd4bwyn8b4q1l9jgddc70ii1i7bmynacanl1cvbr6la4v9b2c"; sha256 = "sha256-MehTz0qCpWe/11PZ5jmFxHE54TA+QX2KfqvKB8L79V4=";
}; };
checkInputs = [ checkInputs = [

View file

@ -9,7 +9,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pycfmodel"; pname = "pycfmodel";
version = "0.17.1"; version = "0.18.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "Skyscanner"; owner = "Skyscanner";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-Rw0sZ2k+tXo04mvlL83hUgdHIND5NIsVH/CzrfmbKlE="; hash = "sha256-g249Nq4u4pPQLbW9Kw5vLwVKCaZoots5LD6yk1NPv6s=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -15,7 +15,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyoverkiz"; pname = "pyoverkiz";
version = "1.3.13"; version = "1.3.14";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "iMicknl"; owner = "iMicknl";
repo = "python-overkiz-api"; repo = "python-overkiz-api";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-CkEo8H5S2/nf7jWU51sVN+GCqaL5Kgx77m6669Pr4dU="; hash = "sha256-dyT2hrTQwYoKEZAVIed2N4259YlR2JmvOEpAuPLCur4=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -3,11 +3,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pypugjs"; pname = "pypugjs";
version = "5.9.10"; version = "5.9.11";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "082dae87d44e184030b66da9ea9bd1a0209f86c089d8f2bd61064b97a7511a28"; sha256 = "sha256-kStaT1S8cPJF+iDFk/jLGKi3JVOMmtf7PzeYDKCdD0E=";
}; };
propagatedBuildInputs = [ six chardet ]; propagatedBuildInputs = [ six chardet ];

View file

@ -6,14 +6,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "sabyenc3"; pname = "sabyenc3";
version = "5.1.5"; version = "5.1.6";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-JwCzy3QRCzxT8B0VM5SXIIWlYi08tT8eLj/QKtMYLRE="; hash = "sha256-DHHil9ZQsrKLgw5dje0Yo1J5FZAFrY1tn5y3mdBJHWg=";
}; };
# Tests are not included in pypi distribution # Tests are not included in pypi distribution

View file

@ -3,10 +3,10 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "include-what-you-use"; pname = "include-what-you-use";
# Also bump llvmPackages in all-packages.nix to the supported version! # Also bump llvmPackages in all-packages.nix to the supported version!
version = "0.17"; version = "0.18";
src = fetchurl { src = fetchurl {
sha256 = "sha256-7KfAT4tBa2OF7QDjNmmn+kaTzSbLcrUizeVYgo6wxmU="; sha256 = "sha256-kQL8hBkpR1ffhqic5uwwX42QqBjR8lmKE50V6xiUuPM=";
url = "${meta.homepage}/downloads/${pname}-${version}.src.tar.gz"; url = "${meta.homepage}/downloads/${pname}-${version}.src.tar.gz";
}; };

View file

@ -5,13 +5,13 @@
buildGoModule rec { buildGoModule rec {
pname = "tfsec"; pname = "tfsec";
version = "1.15.2"; version = "1.15.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "aquasecurity"; owner = "aquasecurity";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-nXrWKKHb64HGHttppBveLp45qKLnGvkElqxn8f/cWok="; sha256 = "sha256-IYmS3Q2WWkOYISx0jI8yggArk0fhl3WQWrsc+Zfg8gU=";
}; };
ldflags = [ ldflags = [

View file

@ -5,6 +5,8 @@
, php , php
, lib, stdenv , lib, stdenv
, installShellFiles , installShellFiles
, which
, python3
}: }:
# Make a custom wrapper. If `wrapProgram` is used, arcanist thinks .arc-wrapped is being # Make a custom wrapper. If `wrapProgram` is used, arcanist thinks .arc-wrapped is being
@ -14,7 +16,7 @@
let makeArcWrapper = toolset: '' let makeArcWrapper = toolset: ''
cat << WRAPPER > $out/bin/${toolset} cat << WRAPPER > $out/bin/${toolset}
#!$shell -e #!$shell -e
export PATH='${php}/bin/'\''${PATH:+':'}\$PATH export PATH='${php}/bin:${which}/bin'\''${PATH:+':'}\$PATH
exec ${php}/bin/php $out/libexec/arcanist/bin/${toolset} "\$@" exec ${php}/bin/php $out/libexec/arcanist/bin/${toolset} "\$@"
WRAPPER WRAPPER
chmod +x $out/bin/${toolset} chmod +x $out/bin/${toolset}
@ -32,7 +34,9 @@ stdenv.mkDerivation {
sha256 = "0jiv4aj4m5750dqw9r8hizjkwiyxk4cg4grkr63sllsa2dpiibxw"; sha256 = "0jiv4aj4m5750dqw9r8hizjkwiyxk4cg4grkr63sllsa2dpiibxw";
}; };
buildInputs = [ php ]; patches = [ ./dont-require-python3-in-path.patch ];
buildInputs = [ php python3 ];
nativeBuildInputs = [ bison flex installShellFiles ]; nativeBuildInputs = [ bison flex installShellFiles ];

View file

@ -0,0 +1,26 @@
Don't require python3 in PATH
Once packaged, the arcanoid.py script has an absolute path shebang to
python3, so there is no need to also require python3 in PATH.
This prevents leaking in a python3 in PATH in the environment which arc
runs linters etc.
Author: bjorn.forsman@gmail.com
diff -uNr arcanist.orig/src/workflow/ArcanistAnoidWorkflow.php arcanist.new/src/workflow/ArcanistAnoidWorkflow.php
--- arcanist.orig/src/workflow/ArcanistAnoidWorkflow.php 2022-03-31 13:23:30.865095192 +0200
+++ arcanist.new/src/workflow/ArcanistAnoidWorkflow.php 2022-04-01 12:19:15.644159639 +0200
@@ -24,13 +24,6 @@
}
public function runWorkflow() {
- if (!Filesystem::binaryExists('python3')) {
- throw new PhutilArgumentUsageException(
- pht(
- 'The "arc anoid" workflow requires "python3" to be available '.
- 'in your $PATH.'));
- }
-
$support_dir = phutil_get_library_root('arcanist');
$support_dir = dirname($support_dir);
$support_dir = $support_dir.'/support/';

View file

@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-spellcheck"; pname = "cargo-spellcheck";
version = "0.11.1"; version = "0.11.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "drahnr"; owner = "drahnr";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Iafhx0bK386grGadsJc/t1lLjd/C89fCVuHrq3FMaE0="; sha256 = "sha256-ZiRa4XYnY4fwbMenRLnvFQms66tIyGbm5saK8gN39ag=";
}; };
cargoSha256 = "sha256-ZYZA4H1LvsFQR6mvKAie9Tha3MWocAVpNtG7LwdtcPg="; cargoSha256 = "sha256-gWQbhFPdBDhPZY1LHxFlWO9xG4AXfyhZp0UnZ3Y86/Y=";
buildInputs = lib.optional stdenv.isDarwin Security; buildInputs = lib.optional stdenv.isDarwin Security;

View file

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "stylua"; pname = "stylua";
version = "0.12.5"; version = "0.13.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "johnnymorganz"; owner = "johnnymorganz";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-4tQQTTAdIAhlkBJevwwwGXOKd6bJJOyG4nlbCv7909Y="; sha256 = "sha256-Ecv6am4JT4cJKAApieOWQZG3XZkeCpmLrs6K7+4c8xA=";
}; };
cargoSha256 = "sha256-DGe2lB8xZgY9ikTsIHDOdHzTyHfDaSlmy8FU/S9FDCI="; cargoSha256 = "sha256-r09fTZTmOZQCI3qIWcnQnhUXYLVK8pF5y0y/dQl88CI=";
buildFeatures = lib.optional lua52Support "lua52" buildFeatures = lib.optional lua52Support "lua52"
++ lib.optional luauSupport "luau"; ++ lib.optional luauSupport "luau";

View file

@ -11,11 +11,11 @@ in
with python3.pkgs; with python3.pkgs;
buildPythonApplication rec { buildPythonApplication rec {
pname = "matrix-synapse"; pname = "matrix-synapse";
version = "1.55.0"; version = "1.55.2";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-IfLyp6IexNTMrq795qUMAPQ62mrMPwFyLE1yL8cu0T0="; sha256 = "sha256-MCdwatNo4cDAaq9a3UFwSLJzT1ZxhoYqPOu/a957D2Y=";
}; };
buildInputs = [ openssl ]; buildInputs = [ openssl ];

View file

@ -2,7 +2,7 @@
buildGoModule rec { buildGoModule rec {
pname = "grafana"; pname = "grafana";
version = "8.4.4"; version = "8.4.5";
excludedPackages = [ "alert_webhook_listener" "clean-swagger" "release_publisher" "slow_proxy" "slow_proxy_mac" "macaron" ]; excludedPackages = [ "alert_webhook_listener" "clean-swagger" "release_publisher" "slow_proxy" "slow_proxy_mac" "macaron" ];
@ -10,15 +10,15 @@ buildGoModule rec {
rev = "v${version}"; rev = "v${version}";
owner = "grafana"; owner = "grafana";
repo = "grafana"; repo = "grafana";
sha256 = "sha256-WLmmf2GlP7axuYj0TLJlDwe1k/9xNQbLvAggG+AshKg="; sha256 = "sha256-CdGg979c7XD5V3jZbVeHUGylAarGc+cR+bFi5FngKtU=";
}; };
srcStatic = fetchurl { srcStatic = fetchurl {
url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz"; url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
sha256 = "sha256-eH6L7X1WvvL+9+R9FrpvVMxVJYcrHicaLkH2LUJs3AQ="; sha256 = "sha256-PjDTEmzjDmT1WQGqF3GwojJ6mG2whBoPK0KWfXI8AB4=";
}; };
vendorSha256 = "sha256-RugV5cHlpR739CA1C/7FkXasvkv18m7pPsK6mxfSkC0="; vendorSha256 = "sha256-iOJEy7dCZGRTaOuL/09wcMlNDHjRi9SIr9bialdcKi4=";
nativeBuildInputs = [ wire ]; nativeBuildInputs = [ wire ];

View file

@ -2,7 +2,7 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "Tautulli"; pname = "Tautulli";
version = "2.9.4"; version = "2.9.5";
format = "other"; format = "other";
pythonPath = [ setuptools ]; pythonPath = [ setuptools ];
@ -12,7 +12,7 @@ buildPythonApplication rec {
owner = "Tautulli"; owner = "Tautulli";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Hgu1peKv00+FZtszewqofwRueC5ZfUFMM/5ax2Gnf44="; sha256 = "sha256-agkYfLWmeQOD+dtoYvTcNPXjfU3kv56c15AFeB7eVTw=";
}; };
installPhase = '' installPhase = ''

View file

@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "fclones"; pname = "fclones";
version = "0.18.1"; version = "0.19.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pkolaczk"; owner = "pkolaczk";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0dj82dds788q0qlsrbal3n3lajmi9931svy8wk482jfqq0f8nna5"; sha256 = "0m6l6c71f40a6wc8w7cdikwx3blwqxw55p4frrww25qgd0xdcgls";
}; };
cargoSha256 = "131pbjf9s6l6g4dl6fnjh1p0ydd4nry0cvg1qrjba8qk7qwpc7jb"; cargoSha256 = "1pl4lrr1p3c7j9fb0mb4spjzgcn9zvr67nskzgmhrbr3kyzc2ssc";
buildInputs = lib.optionals stdenv.isDarwin [ buildInputs = lib.optionals stdenv.isDarwin [
AppKit AppKit

View file

@ -5,13 +5,13 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "cfripper"; pname = "cfripper";
version = "1.7.0"; version = "1.7.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Skyscanner"; owner = "Skyscanner";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-bYKusyEItnhj1mU6Tucsdi5pdMoWrUK4Y91SK8dNGE4="; hash = "sha256-Q1J5M6RyYjVi2rkOCThFQdBCxVKkza+wytO67vLlVQg=";
}; };
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [

View file

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "sn0int"; pname = "sn0int";
version = "0.24.1"; version = "0.24.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kpcyrd"; owner = "kpcyrd";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-AP/3QCol2qOvRqNW9F/m9JpiZrqtfXvr//Ku2XE3vqY="; sha256 = "sha256-WcCNNLNvOtYiSWVvXA8mnlXOV2T/yIXFzZky5y3tYJ4=";
}; };
cargoSha256 = "sha256-gdDQjYU8hJdkQCh1Iswn5KlPW2BT/J5vCSOS/KHvbH4="; cargoSha256 = "sha256-5pVxOkm9OLSX5Lxe3DSM0mVSMhlHfFBCiMMR37WrZbI=";
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "difftastic"; pname = "difftastic";
version = "0.24.0"; version = "0.25.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "wilfred"; owner = "wilfred";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-Yp0WwzGo8nuRZuiHdUPxPM1SYBeeVA3SMDfHnQmqUqY="; sha256 = "sha256-TJMMy1fMwqUMVhztMOlN4yQhW5IF36yahOhDTJ9kadA=";
}; };
cargoSha256 = "sha256-m80PT2UQYhA5KEh7ax/fhh6vuse0DXhbFsh2x4pwkWY="; cargoSha256 = "sha256-crH2SodT+Wy3auk3uli253rIrHyKsibQcYGtpxwbJJQ=";
meta = with lib; { meta = with lib; {
description = "A syntax-aware diff"; description = "A syntax-aware diff";

View file

@ -33,6 +33,10 @@ buildPythonApplication rec {
inherit sha256; inherit sha256;
}; };
patches = [
./remove-update-check.patch
];
# remove need for git history # remove need for git history
prePatch = '' prePatch = ''
substituteInPlace setup.py \ substituteInPlace setup.py \

View file

@ -0,0 +1,11 @@
--- a/linodecli/cli.py
+++ b/linodecli/cli.py
@@ -555,7 +555,7 @@
if self.debug_request:
self.print_response_debug_info(result)
- if not self.suppress_warnings:
+ if False:
# check the major/minor version API reported against what we were built
# with to see if an upgrade should be available
api_version_higher = False

View file

@ -15351,7 +15351,7 @@ with pkgs;
img = callPackage ../development/tools/img { }; img = callPackage ../development/tools/img { };
include-what-you-use = callPackage ../development/tools/analysis/include-what-you-use { include-what-you-use = callPackage ../development/tools/analysis/include-what-you-use {
llvmPackages = llvmPackages_13; llvmPackages = llvmPackages_14;
}; };
indent = callPackage ../development/tools/misc/indent { }; indent = callPackage ../development/tools/misc/indent { };