Merge remote-tracking branch 'origin/staging-next' into staging

This commit is contained in:
Martin Weinelt 2023-12-09 00:35:45 +01:00
commit aaf05fa3c4
No known key found for this signature in database
GPG key ID: 87C1E9888F856759
18 changed files with 119 additions and 44 deletions

View file

@ -5,7 +5,7 @@ let
intersectAttrs; intersectAttrs;
inherit (lib) inherit (lib)
functionArgs isFunction mirrorFunctionArgs isAttrs setFunctionArgs functionArgs isFunction mirrorFunctionArgs isAttrs setFunctionArgs
optionalAttrs attrNames filter elemAt concatStringsSep sort take length optionalAttrs attrNames filter elemAt concatStringsSep sortOn take length
filterAttrs optionalString flip pathIsDirectory head pipe isDerivation listToAttrs filterAttrs optionalString flip pathIsDirectory head pipe isDerivation listToAttrs
mapAttrs seq flatten deepSeq warnIf isInOldestRelease extends mapAttrs seq flatten deepSeq warnIf isInOldestRelease extends
; ;
@ -174,7 +174,7 @@ rec {
# levenshteinAtMost is only fast for 2 or less. # levenshteinAtMost is only fast for 2 or less.
(filter (levenshteinAtMost 2 arg)) (filter (levenshteinAtMost 2 arg))
# Put strings with shorter distance first # Put strings with shorter distance first
(sort (x: y: levenshtein x arg < levenshtein y arg)) (sortOn (levenshtein arg))
# Only take the first couple results # Only take the first couple results
(take 3) (take 3)
# Quote all entries # Quote all entries

View file

@ -91,7 +91,7 @@ let
inherit (self.lists) singleton forEach foldr fold foldl foldl' imap0 imap1 inherit (self.lists) singleton forEach foldr fold foldl foldl' imap0 imap1
concatMap flatten remove findSingle findFirst any all count concatMap flatten remove findSingle findFirst any all count
optional optionals toList range replicate partition zipListsWith zipLists optional optionals toList range replicate partition zipListsWith zipLists
reverseList listDfs toposort sort naturalSort compareLists take reverseList listDfs toposort sort sortOn naturalSort compareLists take
drop sublist last init crossLists unique allUnique intersectLists drop sublist last init crossLists unique allUnique intersectLists
subtractLists mutuallyExclusive groupBy groupBy'; subtractLists mutuallyExclusive groupBy groupBy';
inherit (self.strings) concatStrings concatMapStrings concatImapStrings inherit (self.strings) concatStrings concatMapStrings concatImapStrings

View file

@ -4,6 +4,7 @@ let
inherit (lib.strings) toInt; inherit (lib.strings) toInt;
inherit (lib.trivial) compare min id; inherit (lib.trivial) compare min id;
inherit (lib.attrsets) mapAttrs; inherit (lib.attrsets) mapAttrs;
inherit (lib.lists) sort;
in in
rec { rec {
@ -591,9 +592,15 @@ rec {
the second argument. The returned list is sorted in an increasing the second argument. The returned list is sorted in an increasing
order. The implementation does a quick-sort. order. The implementation does a quick-sort.
See also [`sortOn`](#function-library-lib.lists.sortOn), which applies the
default comparison on a function-derived property, and may be more efficient.
Example: Example:
sort (a: b: a < b) [ 5 3 7 ] sort (p: q: p < q) [ 5 3 7 ]
=> [ 3 5 7 ] => [ 3 5 7 ]
Type:
sort :: (a -> a -> Bool) -> [a] -> [a]
*/ */
sort = builtins.sort or ( sort = builtins.sort or (
strictLess: list: strictLess: list:
@ -612,6 +619,42 @@ rec {
if len < 2 then list if len < 2 then list
else (sort strictLess pivot.left) ++ [ first ] ++ (sort strictLess pivot.right)); else (sort strictLess pivot.left) ++ [ first ] ++ (sort strictLess pivot.right));
/*
Sort a list based on the default comparison of a derived property `b`.
The items are returned in `b`-increasing order.
**Performance**:
The passed function `f` is only evaluated once per item,
unlike an unprepared [`sort`](#function-library-lib.lists.sort) using
`f p < f q`.
**Laws**:
```nix
sortOn f == sort (p: q: f p < f q)
```
Example:
sortOn stringLength [ "aa" "b" "cccc" ]
=> [ "b" "aa" "cccc" ]
Type:
sortOn :: (a -> b) -> [a] -> [a], for comparable b
*/
sortOn = f: list:
let
# Heterogenous list as pair may be ugly, but requires minimal allocations.
pairs = map (x: [(f x) x]) list;
in
map
(x: builtins.elemAt x 1)
(sort
# Compare the first element of the pairs
# Do not factor out the `<`, to avoid calls in hot code; duplicate instead.
(a: b: head a < head b)
pairs);
/* Compare two lists element-by-element. /* Compare two lists element-by-element.
Example: Example:

View file

@ -650,6 +650,28 @@ runTests {
expected = [2 30 40 42]; expected = [2 30 40 42];
}; };
testSortOn = {
expr = sortOn stringLength [ "aa" "b" "cccc" ];
expected = [ "b" "aa" "cccc" ];
};
testSortOnEmpty = {
expr = sortOn (throw "nope") [ ];
expected = [ ];
};
testSortOnIncomparable = {
expr =
map
(x: x.f x.ok)
(sortOn (x: x.ok) [
{ ok = 1; f = x: x; }
{ ok = 3; f = x: x + 3; }
{ ok = 2; f = x: x; }
]);
expected = [ 1 2 6 ];
};
testReplicate = { testReplicate = {
expr = replicate 3 "a"; expr = replicate 3 "a";
expected = ["a" "a" "a"]; expected = ["a" "a" "a"];

View file

@ -18571,6 +18571,12 @@
githubId = 1486805; githubId = 1486805;
name = "Toon Nolten"; name = "Toon Nolten";
}; };
tornax = {
email = "tornax@pm.me";
github = "TornaxO7";
githubId = 50843046;
name = "tornax";
};
toschmidt = { toschmidt = {
email = "tobias.schmidt@in.tum.de"; email = "tobias.schmidt@in.tum.de";
github = "toschmidt"; github = "toschmidt";

View file

@ -13,7 +13,7 @@ let
mkIf mkIf
mkOption mkOption
optionalString optionalString
sort sortOn
types types
; ;
@ -37,7 +37,7 @@ let
genConfig = set: genConfig = set:
let let
pairs = mapAttrsToList (name: value: { inherit name value; }) set; pairs = mapAttrsToList (name: value: { inherit name value; }) set;
sortedPairs = sort (a: b: prioOf a < prioOf b) pairs; sortedPairs = sortOn prioOf pairs;
in in
concatMap genPair sortedPairs; concatMap genPair sortedPairs;
genSection = sec: secName: value: genSection = sec: secName: value:

View file

@ -30,7 +30,7 @@ in
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
buildInputs = with perlPackages; [ perl MusicBrainz MusicBrainzDiscID ]; buildInputs = with perlPackages; [ perl MusicBrainz MusicBrainzDiscID IOSocketSSL ];
installFlags = [ "sysconfdir=$(out)/etc" ]; installFlags = [ "sysconfdir=$(out)/etc" ];

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "clusterctl"; pname = "clusterctl";
version = "1.5.3"; version = "1.6.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kubernetes-sigs"; owner = "kubernetes-sigs";
repo = "cluster-api"; repo = "cluster-api";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-yACUJY//y1nqu0PfmCuREC8k/koJEB6yPV5IXLnweB0="; hash = "sha256-EzJl4BfjRFzj7Qq3bc7rQlD7D1xnb6zIr2wgeaZ9Dhk=";
}; };
vendorHash = "sha256-wOf9OWbqjxYJio57lMBdp77RG5hhRrVU75iJiI8g0EM="; vendorHash = "sha256-wSjd40rvrtpsE+wF3u3b+IRehksJOuRLThLuYOOHaAY=";
subPackages = [ "cmd/clusterctl" ]; subPackages = [ "cmd/clusterctl" ];

View file

@ -11,11 +11,11 @@
}: }:
let let
pname = "beeper"; pname = "beeper";
version = "3.85.17"; version = "3.89.3";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "https://download.todesktop.com/2003241lzgn20jd/beeper-3.85.17-build-231109zg8yl8v6s.AppImage"; url = "https://download.todesktop.com/2003241lzgn20jd/beeper-3.89.3-build-231206totezhepd.AppImage";
hash = "sha256-sYdfN535Fg3Bm26XKQNyuTItV+1dT3W/2HGH51ncEM0="; hash = "sha256-o4mD2LcWnlw9EIuv0v//51uByaAAxKcJNz9mKjp/Jp8=";
}; };
appimage = appimageTools.wrapType2 { appimage = appimageTools.wrapType2 {
inherit version pname src; inherit version pname src;

View file

@ -48,23 +48,23 @@ let
# and often with different versions. We write them on three lines # and often with different versions. We write them on three lines
# like this (rather than using {}) so that the updater script can # like this (rather than using {}) so that the updater script can
# find where to edit them. # find where to edit them.
versions.aarch64-darwin = "5.16.6.24664"; versions.aarch64-darwin = "5.16.10.25689";
versions.x86_64-darwin = "5.16.6.24664"; versions.x86_64-darwin = "5.16.10.25689";
versions.x86_64-linux = "5.16.6.382"; versions.x86_64-linux = "5.16.10.668";
srcs = { srcs = {
aarch64-darwin = fetchurl { aarch64-darwin = fetchurl {
url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64"; url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64";
name = "zoomusInstallerFull.pkg"; name = "zoomusInstallerFull.pkg";
hash = "sha256-5xccYYisVRZw7tJ6uri52BuaeURadaHypse4vjwPQIY="; hash = "sha256-FIvUDbK1dwOdF8Y70Y3PHTxM/Kl5BMkmvNwcqbV+pog=";
}; };
x86_64-darwin = fetchurl { x86_64-darwin = fetchurl {
url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg"; url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg";
hash = "sha256-N3jzvxoRY3W5fw1Fs0qevgHC+7cLLYvoGA/ZYiE71JA="; hash = "sha256-z8nDNaJtSUtb/KeoxiSgU3HU/VY7JxGp9Ug5roD0y3U=";
}; };
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz"; url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz";
hash = "sha256-2O8jGQHGyF5XLQUxHUWA3h9K792lRQmOC2mS0rTukSw="; hash = "sha256-dZQHbpvU8uNafmHtGoPhj6WsDhO20Dma/XwY6oa3Xes=";
}; };
}; };

View file

@ -31,6 +31,8 @@ let
rlinkLibs = if stdenv.isDarwin then [ rlinkLibs = if stdenv.isDarwin then [
darwin.libobjc darwin.libobjc
darwin.apple_sdk_11_0.frameworks.AppKit darwin.apple_sdk_11_0.frameworks.AppKit
darwin.apple_sdk_11_0.frameworks.AVFoundation
darwin.apple_sdk_11_0.frameworks.Vision
] else [ ] else [
(lib.getLib gcc-unwrapped) (lib.getLib gcc-unwrapped)
fontconfig fontconfig
@ -49,16 +51,16 @@ let
in in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "rio"; pname = "rio";
version = "0.0.28"; version = "0.0.29";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "raphamorim"; owner = "raphamorim";
repo = "rio"; repo = "rio";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-OkJYGX/yWOUb4cDwacDgDRgzc/fkAnNcCzUrHimiVgM="; hash = "sha256-S+mqamTm8GHCyJF/L1V4XnhJDuhwo9n3Zf+UCKXg8p8=";
}; };
cargoHash = "sha256-vcIv3EGM8LEdg//FM/d+gDLLQFWukEE1/wfLVTXqN9w="; cargoHash = "sha256-aKj3L1s+FgN8T4IrBuTAQyzfKOPgCt2R0C6+YIv56Zw=";
nativeBuildInputs = [ nativeBuildInputs = [
ncurses ncurses
@ -112,7 +114,7 @@ rustPlatform.buildRustPackage rec {
description = "A hardware-accelerated GPU terminal emulator powered by WebGPU"; description = "A hardware-accelerated GPU terminal emulator powered by WebGPU";
homepage = "https://raphamorim.io/rio"; homepage = "https://raphamorim.io/rio";
license = lib.licenses.mit; license = lib.licenses.mit;
maintainers = with lib.maintainers; [ otavio oluceps ]; maintainers = with lib.maintainers; [ tornax otavio oluceps ];
platforms = lib.platforms.unix; platforms = lib.platforms.unix;
changelog = "https://github.com/raphamorim/rio/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/raphamorim/rio/blob/v${version}/CHANGELOG.md";
mainProgram = "rio"; mainProgram = "rio";

View file

@ -95,10 +95,10 @@ in {
sourceVersion = { sourceVersion = {
major = "3"; major = "3";
minor = "12"; minor = "12";
patch = "0"; patch = "1";
suffix = ""; suffix = "";
}; };
hash = "sha256-eVw09E30Wg6blxDIxxwVxnGHFSTNQSyhTe8hLozLFV0="; hash = "sha256-jfuPQm/NImZX+eK9Xx6W5TJkllF2+hfTJljoc1ka6yE=";
inherit (darwin) configd; inherit (darwin) configd;
inherit passthruFun; inherit passthruFun;
}; };

View file

@ -4,28 +4,19 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "python-qt"; pname = "python-qt";
version = "3.3.0"; version = "3.4.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "MeVisLab"; owner = "MeVisLab";
repo = "pythonqt"; repo = "pythonqt";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-zbQ6X4Q2/QChaw3GAz/aVBj2JjWEz52YuPuHbBz935k="; hash = "sha256-xJYOD07ACOKtY3psmfHNSCjm6t0fr8JU9CrL0w5P5G0=";
}; };
patches = [
(fetchpatch {
name = "remove-unneeded-pydebug-include.patch";
url = "https://github.com/MeVisLab/pythonqt/commit/a93104dea4d9c79351276ec963e931ca617625ec.patch";
includes = [ "src/PythonQt.cpp" ];
hash = "sha256-Tc4+6dIdvrda/z3Nz1s9Xz+ZWJLV2BQh8i552UynSI0=";
})
];
# https://github.com/CsoundQt/CsoundQt/blob/develop/BUILDING.md#pythonqt # https://github.com/CsoundQt/CsoundQt/blob/develop/BUILDING.md#pythonqt
postPatch = '' postPatch = ''
substituteInPlace build/python.prf \ substituteInPlace build/python.prf \
--replace "unix:PYTHON_VERSION=2.7" "unix:PYTHON_VERSION=${python.pythonVersion}" --replace "PYTHON_VERSION=2.7" "PYTHON_VERSION=${python.pythonVersion}"
''; '';
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];

View file

@ -175,4 +175,13 @@ rec {
aarch64-darwin = "2fc319c53f6dc61e2e424d46712caead7022b5124c9674f3b15b45c556dd0623"; aarch64-darwin = "2fc319c53f6dc61e2e424d46712caead7022b5124c9674f3b15b45c556dd0623";
headers = "1pb8xhaarkmgss00ap4jbf693i03z4mwh5ilpkz6dsg1b9fka84q"; headers = "1pb8xhaarkmgss00ap4jbf693i03z4mwh5ilpkz6dsg1b9fka84q";
}; };
electron_28-bin = mkElectron "28.0.0" {
armv7l-linux = "e41686b6ce7be7efb74d1f3fb4c912be31506b51770ceffa4e66b94164dac5b8";
aarch64-linux = "32f9f7592359cf8b341946b41d758466533bd7a2bc0dc316072a3a1af4b92d84";
x86_64-linux = "d66b6774b886bd57519d49b9eb8e6e745b523519414a8819f67aa19f76e2b53c";
x86_64-darwin = "a5fdc70519b2c17a708920af2b998fc067ff0a18ba9f97d690cfab6bac23bd7a";
aarch64-darwin = "d64947fee370a3b111f170399969977959848f2a2f544a1ae5dc081fc2df75cf";
headers = "1lrwc03ffrf4bi2faampkx7yg0iqsrcp86znp9fw6ajwdwgqsc81";
};
} }

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "xc"; pname = "xc";
version = "0.5.0"; version = "0.6.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "joerdav"; owner = "joerdav";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-cVTa2ot95Hcm+1V1QXnlxSL9OjmoQNR9nVUgW/rZhl0="; sha256 = "sha256-0Er8MqAqKCyz928bdbYRO3D9sGZ/JJBrCXhlq9M2dEA=";
}; };
vendorHash = "sha256-J4/a4ujM7A6bDwRlLCYt/PmJf6HZUmdYcJMux/3KyUI="; vendorHash = "sha256-J4/a4ujM7A6bDwRlLCYt/PmJf6HZUmdYcJMux/3KyUI=";

View file

@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
license = licenses.bsd2; license = licenses.bsd2;
maintainers = with maintainers; [ ryota-ka thehedgeh0g ]; maintainers = with maintainers; [ ryota-ka thehedgeh0g ];
platforms = platforms.unix; platforms = platforms.unix;
mainProgram = "yarn";
}; };
} }

View file

@ -13,13 +13,13 @@
}: }:
buildGoModule rec { buildGoModule rec {
pname = "cosign"; pname = "cosign";
version = "2.2.1"; version = "2.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "sigstore"; owner = "sigstore";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-J/CQonW/ICrNUSQXVZPMR+WACZYJH0eH6bXhdXE27TY="; hash = "sha256-QZWF0ysZFu3rt8dIXb5uddyDhT2FfWUyder8YR2BtQc=";
}; };
buildInputs = buildInputs =
@ -28,7 +28,7 @@ buildGoModule rec {
nativeBuildInputs = [ pkg-config installShellFiles ]; nativeBuildInputs = [ pkg-config installShellFiles ];
vendorHash = "sha256-RPwU6W6a9mnfriyz3ASvamZ3jEG6C2ug/MTp1Pahc/Q="; vendorHash = "sha256-WeNRg3Nw2b6NiV8z7tGZIlWUHZxXuTG7MPF9DgfdmUQ=";
subPackages = [ subPackages = [
"cmd/cosign" "cmd/cosign"

View file

@ -18493,7 +18493,8 @@ with pkgs;
electron_24-bin electron_24-bin
electron_25-bin electron_25-bin
electron_26-bin electron_26-bin
electron_27-bin; electron_27-bin
electron_28-bin;
electron_10 = electron_10-bin; electron_10 = electron_10-bin;
electron_11 = electron_11-bin; electron_11 = electron_11-bin;
@ -18513,7 +18514,7 @@ with pkgs;
electron_25 = electron_25-bin; electron_25 = electron_25-bin;
electron_26 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_26 then electron-source.electron_26 else electron_26-bin; electron_26 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_26 then electron-source.electron_26 else electron_26-bin;
electron_27 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_27 then electron-source.electron_27 else electron_27-bin; electron_27 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_27 then electron-source.electron_27 else electron_27-bin;
electron_28 = electron-source.electron_28; electron_28 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_28 then electron-source.electron_28 else electron_28-bin;
electron = electron_27; electron = electron_27;
autobuild = callPackage ../development/tools/misc/autobuild { }; autobuild = callPackage ../development/tools/misc/autobuild { };