Merge staging-next into staging

This commit is contained in:
github-actions[bot]
2024-04-19 12:01:41 +00:00
committed by GitHub
215 changed files with 3050 additions and 1125 deletions
+43 -5
View File
@@ -5,7 +5,7 @@
let
inherit (builtins) head length;
inherit (lib.trivial) mergeAttrs warn;
inherit (lib.trivial) isInOldestRelease mergeAttrs warn warnIf;
inherit (lib.strings) concatStringsSep concatMapStringsSep escapeNixIdentifier sanitizeDerivationName;
inherit (lib.lists) foldr foldl' concatMap elemAt all partition groupBy take foldl;
in
@@ -885,15 +885,15 @@ rec {
# Type
```
cartesianProductOfSets :: AttrSet -> [AttrSet]
cartesianProduct :: AttrSet -> [AttrSet]
```
# Examples
:::{.example}
## `lib.attrsets.cartesianProductOfSets` usage example
## `lib.attrsets.cartesianProduct` usage example
```nix
cartesianProductOfSets { a = [ 1 2 ]; b = [ 10 20 ]; }
cartesianProduct { a = [ 1 2 ]; b = [ 10 20 ]; }
=> [
{ a = 1; b = 10; }
{ a = 1; b = 20; }
@@ -904,7 +904,7 @@ rec {
:::
*/
cartesianProductOfSets =
cartesianProduct =
attrsOfLists:
foldl' (listOfAttrs: attrName:
concatMap (attrs:
@@ -913,6 +913,40 @@ rec {
) [{}] (attrNames attrsOfLists);
/**
Return the result of function f applied to the cartesian product of attribute set value combinations.
Equivalent to using cartesianProduct followed by map.
# Inputs
`f`
: A function, given an attribute set, it returns a new value.
`attrsOfLists`
: Attribute set with attributes that are lists of values
# Type
```
mapCartesianProduct :: (AttrSet -> a) -> AttrSet -> [a]
```
# Examples
:::{.example}
## `lib.attrsets.mapCartesianProduct` usage example
```nix
mapCartesianProduct ({a, b}: "${a}-${b}") { a = [ "1" "2" ]; b = [ "3" "4" ]; }
=> [ "1-3" "1-4" "2-3" "2-4" ]
```
:::
*/
mapCartesianProduct = f: attrsOfLists: map f (cartesianProduct attrsOfLists);
/**
Utility function that creates a `{name, value}` pair as expected by `builtins.listToAttrs`.
@@ -1999,4 +2033,8 @@ rec {
# DEPRECATED
zip = warn
"lib.zip is a deprecated alias of lib.zipAttrsWith." zipAttrsWith;
# DEPRECATED
cartesianProductOfSets = warnIf (isInOldestRelease 2405)
"lib.cartesianProductOfSets is a deprecated alias of lib.cartesianProduct." cartesianProduct;
}
+2 -2
View File
@@ -86,8 +86,8 @@ let
zipAttrsWithNames zipAttrsWith zipAttrs recursiveUpdateUntil
recursiveUpdate matchAttrs mergeAttrsList overrideExisting showAttrPath getOutput
getBin getLib getDev getMan chooseDevOutputs zipWithNames zip
recurseIntoAttrs dontRecurseIntoAttrs cartesianProductOfSets
updateManyAttrsByPath;
recurseIntoAttrs dontRecurseIntoAttrs cartesianProduct cartesianProductOfSets
mapCartesianProduct updateManyAttrsByPath;
inherit (self.lists) singleton forEach foldr fold foldl foldl' imap0 imap1
concatMap flatten remove findSingle findFirst any all count
optional optionals toList range replicate partition zipListsWith zipLists
+19 -3
View File
@@ -1688,16 +1688,32 @@ rec {
## `lib.lists.crossLists` usage example
```nix
crossLists (x:y: "${toString x}${toString y}") [[1 2] [3 4]]
crossLists (x: y: "${toString x}${toString y}") [[1 2] [3 4]]
=> [ "13" "14" "23" "24" ]
```
The following function call is equivalent to the one deprecated above:
```nix
mapCartesianProduct (x: "${toString x.a}${toString x.b}") { a = [1 2]; b = [3 4]; }
=> [ "13" "14" "23" "24" ]
```
:::
*/
crossLists = warn
"lib.crossLists is deprecated, use lib.cartesianProductOfSets instead."
(f: foldl (fs: args: concatMap (f: map f args) fs) [f]);
''lib.crossLists is deprecated, use lib.mapCartesianProduct instead.
For example, the following function call:
nix-repl> lib.crossLists (x: y: x+y) [[1 2] [3 4]]
[ 4 5 5 6 ]
Can now be replaced by the following one:
nix-repl> lib.mapCartesianProduct ({x,y}: x+y) { x = [1 2]; y = [3 4]; }
[ 4 5 5 6 ]
''
(f: foldl (fs: args: concatMap (f: map f args) fs) [f]);
/**
Remove duplicate elements from the `list`. O(n^2) complexity.
+35 -15
View File
@@ -33,7 +33,7 @@ let
boolToString
callPackagesWith
callPackageWith
cartesianProductOfSets
cartesianProduct
cli
composeExtensions
composeManyExtensions
@@ -71,10 +71,10 @@ let
makeIncludePath
makeOverridable
mapAttrs
mapCartesianProduct
matchAttrs
mergeAttrs
meta
mkOption
mod
nameValuePair
optionalDrvAttr
@@ -117,7 +117,6 @@ let
expr = (builtins.tryEval expr).success;
expected = true;
};
testingDeepThrow = expr: testingThrow (builtins.deepSeq expr expr);
testSanitizeDerivationName = { name, expected }:
let
@@ -1415,7 +1414,7 @@ runTests {
};
testToPrettyMultiline = {
expr = mapAttrs (const (generators.toPretty { })) rec {
expr = mapAttrs (const (generators.toPretty { })) {
list = [ 3 4 [ false ] ];
attrs = { foo = null; bar.foo = "baz"; };
newlinestring = "\n";
@@ -1429,7 +1428,7 @@ runTests {
there
test'';
};
expected = rec {
expected = {
list = ''
[
3
@@ -1467,13 +1466,10 @@ runTests {
expected = "«foo»";
};
testToPlist =
let
deriv = derivation { name = "test"; builder = "/bin/sh"; system = "aarch64-linux"; };
in {
testToPlist = {
expr = mapAttrs (const (generators.toPlist { })) {
value = {
nested.values = rec {
nested.values = {
int = 42;
float = 0.1337;
bool = true;
@@ -1686,17 +1682,17 @@ runTests {
};
testCartesianProductOfEmptySet = {
expr = cartesianProductOfSets {};
expr = cartesianProduct {};
expected = [ {} ];
};
testCartesianProductOfOneSet = {
expr = cartesianProductOfSets { a = [ 1 2 3 ]; };
expr = cartesianProduct { a = [ 1 2 3 ]; };
expected = [ { a = 1; } { a = 2; } { a = 3; } ];
};
testCartesianProductOfTwoSets = {
expr = cartesianProductOfSets { a = [ 1 ]; b = [ 10 20 ]; };
expr = cartesianProduct { a = [ 1 ]; b = [ 10 20 ]; };
expected = [
{ a = 1; b = 10; }
{ a = 1; b = 20; }
@@ -1704,12 +1700,12 @@ runTests {
};
testCartesianProductOfTwoSetsWithOneEmpty = {
expr = cartesianProductOfSets { a = [ ]; b = [ 10 20 ]; };
expr = cartesianProduct { a = [ ]; b = [ 10 20 ]; };
expected = [ ];
};
testCartesianProductOfThreeSets = {
expr = cartesianProductOfSets {
expr = cartesianProduct {
a = [ 1 2 3 ];
b = [ 10 20 30 ];
c = [ 100 200 300 ];
@@ -1753,6 +1749,30 @@ runTests {
];
};
testMapCartesianProductOfOneSet = {
expr = mapCartesianProduct ({a}: a * 2) { a = [ 1 2 3 ]; };
expected = [ 2 4 6 ];
};
testMapCartesianProductOfTwoSets = {
expr = mapCartesianProduct ({a,b}: a + b) { a = [ 1 ]; b = [ 10 20 ]; };
expected = [ 11 21 ];
};
testMapCartesianProcutOfTwoSetsWithOneEmpty = {
expr = mapCartesianProduct (x: x.a + x.b) { a = [ ]; b = [ 10 20 ]; };
expected = [ ];
};
testMapCartesianProductOfThreeSets = {
expr = mapCartesianProduct ({a,b,c}: a + b + c) {
a = [ 1 2 3 ];
b = [ 10 20 30 ];
c = [ 100 200 300 ];
};
expected = [ 111 211 311 121 221 321 131 231 331 112 212 312 122 222 322 132 232 332 113 213 313 123 223 323 133 233 333 ];
};
# The example from the showAttrPath documentation
testShowAttrPathExample = {
expr = showAttrPath [ "foo" "10" "bar" ];
+16
View File
@@ -13394,6 +13394,12 @@
fingerprint = "64BE BF11 96C3 DD7A 443E 8314 1DC0 82FA DE5B A863";
}];
};
mlaradji = {
name = "Mohamed Laradji";
email = "mlaradji@pm.me";
github = "mlaradji";
githubId = 33703663;
};
mlatus = {
email = "wqseleven@gmail.com";
github = "Ninlives";
@@ -21545,6 +21551,16 @@
fingerprint = "DA03 D6C6 3F58 E796 AD26 E99B 366A 2940 479A 06FC";
}];
};
willbush = {
email = "git@willbush.dev";
matrix = "@willbush:matrix.org";
github = "willbush";
githubId = 2023546;
name = "Will Bush";
keys = [{
fingerprint = "4441 422E 61E4 C8F3 EBFE 5E33 3823 864B 54B1 3BDA";
}];
};
willcohen = {
github = "willcohen";
githubId = 5185341;
@@ -575,6 +575,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
and `services.kavita.settings.IpAddresses`. The file at `services.kavita.tokenKeyFile` now needs to contain a secret with
512+ bits instead of 128+ bits.
- `kavita` has been updated to 0.8.0, requiring a manual forced library scan on all libraries for migration. Refer to upstream's [release notes](https://github.com/Kareadita/Kavita/releases/tag/v0.8.0) for details.
- The `krb5` module has been rewritten and moved to `security.krb5`, moving all options but `security.krb5.enable` and `security.krb5.package` into `security.krb5.settings`.
- `services.soju` now has a wrapper for the `sojuctl` command, pointed at the service config file. It also has the new option `adminSocket.enable`, which creates a unix admin socket at `/run/soju/admin`.
+4 -1
View File
@@ -203,9 +203,12 @@ in
apply = pkg: pkg.override {
tesseract5 = pkg.tesseract5.override {
# always enable detection modules
# tesseract fails to build when eng is not present
enableLanguages = if cfg.settings ? PAPERLESS_OCR_LANGUAGE then
[ "equ" "osd" ]
lists.unique (
[ "equ" "osd" "eng" ]
++ lib.splitString "+" cfg.settings.PAPERLESS_OCR_LANGUAGE
)
else null;
};
};
+37 -4
View File
@@ -1,6 +1,8 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.podgrab;
stateDir = "/var/lib/podgrab";
in
{
options.services.podgrab = with lib; {
@@ -22,28 +24,59 @@ in
example = 4242;
description = "The port on which Podgrab will listen for incoming HTTP traffic.";
};
dataDirectory = mkOption {
type = types.path;
default = "${stateDir}/data";
example = "/mnt/podcasts";
description = "Directory to store downloads.";
};
user = mkOption {
type = types.str;
default = "podgrab";
description = "User under which Podgrab runs, and which owns the download directory.";
};
group = mkOption {
type = types.str;
default = "podgrab";
description = "Group under which Podgrab runs, and which owns the download directory.";
};
};
config = lib.mkIf cfg.enable {
systemd.tmpfiles.settings."10-pyload" = {
${cfg.dataDirectory}.d = { inherit (cfg) user group; };
};
systemd.services.podgrab = {
description = "Podgrab podcast manager";
wantedBy = [ "multi-user.target" ];
environment = {
CONFIG = "/var/lib/podgrab/config";
DATA = "/var/lib/podgrab/data";
CONFIG = "${stateDir}/config";
DATA = cfg.dataDirectory;
GIN_MODE = "release";
PORT = toString cfg.port;
};
serviceConfig = {
DynamicUser = true;
User = cfg.user;
Group = cfg.group;
EnvironmentFile = lib.optionals (cfg.passwordFile != null) [
cfg.passwordFile
];
ExecStart = "${pkgs.podgrab}/bin/podgrab";
WorkingDirectory = "${pkgs.podgrab}/share";
StateDirectory = [ "podgrab/config" "podgrab/data" ];
StateDirectory = [ "podgrab/config" ];
};
};
users.users.podgrab = lib.mkIf (cfg.user == "podgrab") {
isSystemUser = true;
group = cfg.group;
};
users.groups.podgrab = lib.mkIf (cfg.group == "podgrab") { };
};
meta.maintainers = with lib.maintainers; [ ambroisie ];
@@ -284,7 +284,7 @@ in
in
# We will generate every possible pair of WM and DM.
concatLists (
builtins.map
lib.mapCartesianProduct
({dm, wm}: let
sessionName = "${dm.name}${optionalString (wm.name != "none") ("+" + wm.name)}";
script = xsession dm wm;
@@ -312,7 +312,7 @@ in
providedSessions = [ sessionName ];
})
)
(cartesianProductOfSets { dm = dms; wm = wms; })
{ dm = dms; wm = wms; }
);
};
+1
View File
@@ -23,6 +23,7 @@ import ./make-test-python.nix ({ lib, ... }: {
};
services.paperless.settings = {
PAPERLESS_DBHOST = "/run/postgresql";
PAPERLESS_OCR_LANGUAGE = "deu";
};
};
}; in self;
+1 -1
View File
@@ -5,7 +5,7 @@
let
inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest;
testCombinations = pkgs.lib.cartesianProductOfSets {
testCombinations = pkgs.lib.cartesianProduct {
predictable = [true false];
withNetworkd = [true false];
systemdStage1 = [true false];
+4 -2
View File
@@ -6,12 +6,13 @@
, ncurses
, openssl
, Cocoa
, withALSA ? true, alsa-lib
, withALSA ? false, alsa-lib
, withClipboard ? true, libxcb, python3
, withCover ? false, ueberzug
, withPulseAudio ? false, libpulseaudio
, withPulseAudio ? true, libpulseaudio
, withPortAudio ? false, portaudio
, withMPRIS ? true, withNotify ? true, dbus
, withCrossterm ? true
, nix-update-script
, testers
, ncspot
@@ -54,6 +55,7 @@ rustPlatform.buildRustPackage rec {
++ lib.optional withPulseAudio "pulseaudio_backend"
++ lib.optional withPortAudio "portaudio_backend"
++ lib.optional withMPRIS "mpris"
++ lib.optional withCrossterm "crossterm_backend"
++ lib.optional withNotify "notify";
postInstall = ''
@@ -6,13 +6,13 @@
buildDotnetModule rec {
pname = "btcpayserver";
version = "1.12.5";
version = "1.13.1";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "sha256-qlqwIVk8NzfFZlzShfm3nTZWovObWLIKiNGAOCN8i7Y=";
sha256 = "sha256-p0GNwwbhsgChlSlPVD/RHhzWF/1URdYp/iYQmJxORU8=";
};
projectFile = "BTCPayServer/BTCPayServer.csproj";
+6 -5
View File
@@ -8,18 +8,18 @@
(fetchNuGet { pname = "AWSSDK.S3"; version = "3.3.110.10"; sha256 = "1lf1hfbx792dpa1hxgn0a0jrrvldd16hgbxx229dk2qcz5qlnc38"; })
(fetchNuGet { pname = "BIP78.Sender"; version = "0.2.2"; sha256 = "12pm2s35c0qzc06099q2z1pxwq94rq85n74yz8fs8gwvm2ksgp4p"; })
(fetchNuGet { pname = "BTCPayServer.Hwi"; version = "2.0.2"; sha256 = "0lh3n1qncqs4kbrmx65xs271f0d9c7irrs9qnsa9q51cbbqbljh9"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.All"; version = "1.5.3"; sha256 = "0nn6z1gjkkfy46w32pc5dvp4z5gjnwa9bn7xjkxgh7575m467jpp"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.All"; version = "1.6.0"; sha256 = "0xcqf7jz5rsi6nawcjfdbbdjlnqbx8xfzw8sn3a9ks8xjqv37krn"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.Charge"; version = "1.5.1"; sha256 = "1sb6qhm15d6qqyx9v5g7csvp8phhs6k2py5wmfmbpnjydaydf76g"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.CLightning"; version = "1.5.1"; sha256 = "13slknvqslxn8sp4dcwgbrnigrd9di84h9hribpls79kzw76gfpy"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.CLightning"; version = "1.6.0"; sha256 = "1bsmic9i1p2ya5hv1mscv46fxh6ibczfj1srylzwcpgs0mypy5y3"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.Common"; version = "1.3.21"; sha256 = "042xwfsxd30zgwiz0w14ynb755w5sldkplxgw1fkw68lrz66x5s4"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.Common"; version = "1.5.1"; sha256 = "1jy5k0nd2b10p3gyv8qm3nb31chkpcssrb9sjw2dqbac757nv154"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.Eclair"; version = "1.5.2"; sha256 = "1wmj66my2cg9dbz4bf8vrkxpkpl4wfqaxxzqxgs830vdk8h7pp50"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.LNBank"; version = "1.5.2"; sha256 = "0g2jv712lb3arlpf6j8p0ccq62gz1bjipb9ndzhdk7mwhaznkrwl"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.LND"; version = "1.5.2"; sha256 = "1yfs2ghh7xw4c98hfm3k8sdkij8qxwnfnb8fjw896jvj2jd3p3sr"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.LND"; version = "1.5.4"; sha256 = "0jqxy60msq9rl04lmqyiz9f02mjywypfh3apr9vcbyv2q47maxnd"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.LNDhub"; version = "1.5.2"; sha256 = "09i663w6i93675bxrq5x6l26kr60mafwfr6ny92xrppj8rmd2lzx"; })
(fetchNuGet { pname = "BTCPayServer.NETCore.Plugins"; version = "1.4.4"; sha256 = "0rk0prmb0539ji5fd33cqy3yvw51i5i8m5hb43admr5z8960dd6l"; })
(fetchNuGet { pname = "BTCPayServer.NETCore.Plugins.Mvc"; version = "1.4.4"; sha256 = "1kmmj5m7s41wc1akpqw1b1j7pp4c0vn6sqxb487980ibpj6hyisl"; })
(fetchNuGet { pname = "BTCPayServer.NTag424"; version = "1.0.20"; sha256 = "19nzikcg7vygpad83lcaw5jvkrp4pgvggnziwkmi95l8k38gkj5q"; })
(fetchNuGet { pname = "BTCPayServer.NTag424"; version = "1.0.22"; sha256 = "1gy81kqd745p2sak7yj5phn25k8blwwjzi39s5ikpwyqg3b0arsw"; })
(fetchNuGet { pname = "CsvHelper"; version = "15.0.5"; sha256 = "01y8bhsnxghn3flz0pr11vj6wjrpmia8rpdrsp7kjfc1zmhqlgma"; })
(fetchNuGet { pname = "Dapper"; version = "2.1.28"; sha256 = "15vpa9k11rr1mh5vb6hdchy8hqa03lqs83w19s3kxzh1089yl9m8"; })
(fetchNuGet { pname = "DigitalRuby.ExchangeSharp"; version = "1.0.4"; sha256 = "1hkdls4wjrxq6df1zq9saa6hn5hynalq3gxb486w59j7i9f3g7d8"; })
@@ -36,7 +36,7 @@
(fetchNuGet { pname = "Google.Apis.Core"; version = "1.38.0"; sha256 = "012gslhnx65vqfyzjnqx4bqk9kb8bwbx966q2f9fdgrfcn26gj9j"; })
(fetchNuGet { pname = "Google.Apis.Storage.v1"; version = "1.38.0.1470"; sha256 = "0mfrz7fmpfbjvp4zfpjasmnfbgxgxrrjkf8xgp9p6h9g8qh2f2h2"; })
(fetchNuGet { pname = "Google.Cloud.Storage.V1"; version = "2.3.0"; sha256 = "01jhrd6m6md8m28chzg2dkdfd4yris79j1xi7r1ydm1cfjhmlj64"; })
(fetchNuGet { pname = "HtmlSanitizer"; version = "8.0.723"; sha256 = "1x621v4ypgd1zrmq7zd7j9wcrc30f6rm9qh0i1sm4yfqd983yf4g"; })
(fetchNuGet { pname = "HtmlSanitizer"; version = "8.0.838"; sha256 = "1k05ld36872lzbhlby9m1vf9y7chlijbflbk2pzcni57b9rp2qrg"; })
(fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; })
(fetchNuGet { pname = "libsodium"; version = "1.0.18"; sha256 = "15qzl5k31yaaapqlijr336lh4lzz1qqxlimgxy8fdyig8jdmgszn"; })
(fetchNuGet { pname = "LNURL"; version = "0.0.34"; sha256 = "1sbkqsln7wq5fsbw63wdha8kqwxgd95j0iblv4kxa1shyg3c5d9x"; })
@@ -251,6 +251,7 @@
(fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "6.0.0"; sha256 = "1js98kmjn47ivcvkjqdmyipzknb9xbndssczm8gq224pbaj1p88c"; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "8.0.0"; sha256 = "0z53a42zjd59zdkszcm7pvij4ri5xbb8jly9hzaad9khlf69bcqp"; })
(fetchNuGet { pname = "System.Composition"; version = "6.0.0"; sha256 = "1p7hysns39cc24af6dwd4m48bqjsrr3clvi4aws152mh2fgyg50z"; })
(fetchNuGet { pname = "System.Composition.AttributedModel"; version = "6.0.0"; sha256 = "1mqrblb0l65hw39d0hnspqcv85didpn4wbiwhfgj4784wzqx2w6k"; })
(fetchNuGet { pname = "System.Composition.Convention"; version = "6.0.0"; sha256 = "02km3yb94p1c4s7liyhkmda0g71zm1rc8ijsfmy4bnlkq15xjw3b"; })
@@ -6,13 +6,13 @@
buildDotnetModule rec {
pname = "nbxplorer";
version = "2.5.0";
version = "2.5.2";
src = fetchFromGitHub {
owner = "dgarage";
repo = "NBXplorer";
rev = "v${version}";
sha256 = "sha256-yhOPv8J1unDx61xPc8ktQbIfkp00PPXRlOgdGo2QkB4=";
sha256 = "sha256-zfL+VoDfICUtw02KeRghaq3XPOa/YnSh8orhqmo3Auo=";
};
projectFile = "NBXplorer/NBXplorer.csproj";
+1 -1
View File
@@ -46,7 +46,7 @@
(fetchNuGet { pname = "NicolasDorier.CommandLine"; version = "2.0.0"; sha256 = "0gywvl0gqs3crlzwgwzcqf0qsrbhk3dxjycpimxqvs1ihg4dhb1f"; })
(fetchNuGet { pname = "NicolasDorier.CommandLine.Configuration"; version = "2.0.0"; sha256 = "1cng096r3kb85lf5wjill4yhxx8nv9v0d6ksbn1i1vvdawwl6fkw"; })
(fetchNuGet { pname = "NicolasDorier.StandardConfiguration"; version = "2.0.0"; sha256 = "0058dx34ja2idw468bmw7l3w21wr2am6yx57sqp7llhjl5ayy0wv"; })
(fetchNuGet { pname = "Npgsql"; version = "8.0.1"; sha256 = "01dqlqpwr450vfs7r113k1glrnpnr2fgc04x5ni6bj0k6aahhl7v"; })
(fetchNuGet { pname = "Npgsql"; version = "8.0.2"; sha256 = "0w1hm3bjh1vfnkzflp1x8bd4d723mpr4y6gb6ga79v5kkf09cmm2"; })
(fetchNuGet { pname = "RabbitMQ.Client"; version = "5.1.2"; sha256 = "195nxmnva1z2p0ahvn0kswv4d39f5bdy2sl3cxcvfziamc21xrmd"; })
(fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
(fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
@@ -17213,5 +17213,17 @@ final: prev:
meta.homepage = "https://github.com/jhradilek/vim-snippets/";
};
gitignore-nvim = buildVimPlugin {
pname = "gitignore-nvim";
version = "2024-03-25";
src = fetchFromGitHub {
owner = "wintermute-cell";
repo = "gitignore.nvim";
rev = "2455191ec94da8ed222806a4fe3aa358eac1e558";
sha256 = "sha256-p6k0NP3Vne6Kl98YodzSruVmJwxyrXziJj8N7u79o1w=";
};
meta.homepage = "https://github.com/wintermute-cell/gitignore.nvim/";
};
}
@@ -338,6 +338,7 @@ https://github.com/f-person/git-blame.nvim/,,
https://github.com/akinsho/git-conflict.nvim/,HEAD,
https://github.com/rhysd/git-messenger.vim/,,
https://github.com/ThePrimeagen/git-worktree.nvim/,,
https://github.com/wintermute-cell/gitignore.nvim/,HEAD,
https://github.com/vim-scripts/gitignore.vim/,,
https://github.com/ruifm/gitlinker.nvim/,,
https://github.com/lewis6991/gitsigns.nvim/,,
@@ -1,6 +1,6 @@
{
lib,
nodePackages,
pyright,
vscode-utils,
}:
@@ -12,7 +12,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
hash = "sha256-xJU/j5r/Idp/0VorEfciT4SFKRBpMCv9Z0LKO/++1Gk=";
};
buildInputs = [ nodePackages.pyright ];
buildInputs = [ pyright ];
meta = {
changelog = "https://marketplace.visualstudio.com/items/ms-python.vscode-pylance/changelog";
@@ -9,43 +9,43 @@
let
pname = "1password";
version = if channel == "stable" then "8.10.28" else "8.10.30-11.BETA";
version = if channel == "stable" then "8.10.30" else "8.10.30-20.BETA";
sources = {
stable = {
x86_64-linux = {
url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
hash = "sha256-1EfP8z+vH0yRklkcxCOPYExu13iFcs6jOdvWBzl64BA=";
hash = "sha256-q1PKFpBgjada7jmeXZYmH8dvy2A4lwfrQ0jQSoHVNcg=";
};
aarch64-linux = {
url = "https://downloads.1password.com/linux/tar/stable/aarch64/1password-${version}.arm64.tar.gz";
hash = "sha256-E4MfpHVIn5Vu/TcDgwkoHdSnKthaAMFJZArnmSH5cxA=";
hash = "sha256-Zv/mnykPi9PCDX44JtGi0GPrOujSmjx1BBJuEB81CwE=";
};
x86_64-darwin = {
url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
hash = "sha256-+cXirJyDnxfE5FN8HEIrEyyoGvVrJ+0ykBHON9oHAek=";
hash = "sha256-unC1cz5ooSdu4Csf7/daCyPdMy3/Lp3a76B7TBa/VXk=";
};
aarch64-darwin = {
url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
hash = "sha256-zKAgAKYIgy5gZbe2IpskV8DG8AKtamYqq8cF/mTpRss=";
hash = "sha256-DS6oCdr6srF+diL68a2gOskS4x+uj1i8DtL3uaaxv/I=";
};
};
beta = {
x86_64-linux = {
url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
hash = "sha256-6zyDZRsk9FZXJuGqqt1kCATcL99PjYP/wQzqE/4e4kg=";
hash = "sha256-6I/3o+33sIkfyef8xGUWczaWykHPcvvAGv0xy/jCkKI=";
};
aarch64-linux = {
url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
hash = "sha256-JwHk6Byqd5LxVWBT/blRVnYhgSeYfaVY3Ax4GkLcFxM=";
hash = "sha256-ph6DBBUzdUHtYCAQiA1me3bevtVPEgIxtwbgbdgQcGY=";
};
x86_64-darwin = {
url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
hash = "sha256-h7vJguOEQBEvX9Z9MjdLj0hPnn8hJpeWRoduVowznLg=";
hash = "sha256-XzZOj1pfoCTGMTsqZlI8hKTDRJ4w7debAPYHIIwsyyY=";
};
aarch64-darwin = {
url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
hash = "sha256-g6lorMdQ56B6gd4YN4WQSkztwHqIgO7QshM1zocpqTE=";
hash = "sha256-s+hnKhI2s6E1ZyJQxs3Wggy60LxCEr+u3tRtjTgjmZk=";
};
};
};
@@ -17,7 +17,9 @@ let
Type = "exec";
ExecStart = "@out@/bin/systembus-notify";
PrivateTmp = true;
ProtectHome = true;
# NB. We cannot `ProtectHome`, or it would block session dbus access.
InaccessiblePaths = "/home";
ReadOnlyPaths = "/run/user";
ProtectSystem = "strict";
Restart = "on-failure";
Slice = "background.slice";
@@ -2,16 +2,20 @@
buildGoModule rec {
pname = "writefreely";
version = "0.14.0";
version = "0.15.0";
src = fetchFromGitHub {
owner = "writefreely";
repo = pname;
rev = "v${version}";
sha256 = "sha256-vOoTAr33FMQaHIwpwIX0g/KJWQvDn3oVJg14kEY6FIQ=";
sha256 = "sha256-7KTNimthtfmQCgyXevAEj+CZ2MS+uOby73OO1fGNXfs=";
};
vendorHash = "sha256-xTo/zbz9pSjvNntr5dnytiJ7oRAdtEuyiu4mJZgwHTc=";
vendorHash = "sha256-6RTshhxX+w/gdK53wCHVMpm6EkkRtEJ2/Fe7MfZ0WvY=";
patches = [
./fix-go-version-error.patch
];
ldflags = [ "-s" "-w" "-X github.com/writefreely/writefreely.softwareVer=${version}" ];
@@ -0,0 +1,36 @@
diff --git a/go.mod b/go.mod
index c49d701..601443d 100644
--- a/go.mod
+++ b/go.mod
@@ -89,4 +89,6 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
)
-go 1.19
+go 1.21
+
+toolchain go1.21.6
diff --git a/go.sum b/go.sum
index a9256ea..28ad24f 100644
--- a/go.sum
+++ b/go.sum
@@ -72,6 +72,7 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
+github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg=
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/csrf v1.7.2 h1:oTUjx0vyf2T+wkrx09Trsev1TE+/EbDAeHtSTbtC2eI=
@@ -106,9 +107,11 @@ github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVY
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylemcc/twitter-text-go v0.0.0-20180726194232-7f582f6736ec h1:ZXWuspqypleMuJy4bzYEqlMhJnGAYpLrWe5p7W3CdvI=
github.com/kylemcc/twitter-text-go v0.0.0-20180726194232-7f582f6736ec/go.mod h1:voECJzdraJmolzPBgL9Z7ANwXf4oMXaTCsIkdiPpR/g=
github.com/mailgun/mailgun-go v2.0.0+incompatible h1:0FoRHWwMUctnd8KIR3vtZbqdfjpIMxOZgcSa51s8F8o=
@@ -103,7 +103,14 @@ let
"flac"
"libjpeg"
"libpng"
] ++ lib.optionals (!chromiumVersionAtLeast "124") [
# Use the vendored libwebp for M124+ until we figure out how to solve:
# Running phase: configurePhase
# ERROR Unresolved dependencies.
# //third_party/libavif:libavif_enc(//build/toolchain/linux/unbundle:default)
# needs //third_party/libwebp:libwebp_sharpyuv(//build/toolchain/linux/unbundle:default)
"libwebp"
] ++ [
"libxslt"
# "opus"
];
@@ -265,6 +272,15 @@ let
# Partial revert of https://github.com/chromium/chromium/commit/3687976b0c6d36cf4157419a24a39f6770098d61
# allowing us to use our rustc and our clang.
./patches/chromium-121-rust.patch
] ++ lib.optionals (chromiumVersionAtLeast "124" && !chromiumVersionAtLeast "125") [
# M124 shipped with broken --ozone-platform-hint flag handling, which we rely on
# for our NIXOS_OZONE_WL (wayland) environment variable.
# See <https://issues.chromium.org/issues/329678163>.
# This is the commit for the fix that landed in M125, which applies clean on M124.
(githubPatch {
commit = "c7f4c58f896a651eba80ad805ebdb49d19ebdbd4";
hash = "sha256-6nYWT2zN+j73xAIXLdGYT2eC71vGnGfiLCB0OwT0CAI=";
})
];
postPatch = ''
@@ -9,15 +9,15 @@
};
deps = {
gn = {
hash = "sha256-JvilCnnb4laqwq69fay+IdAujYC1EHD7uWpkF/C8tBw=";
rev = "d4f94f9a6c25497b2ce0356bb99a8d202c8c1d32";
hash = "sha256-aEL1kIhgPAFqdb174dG093HoLhCJ07O1Kpqfu7r14wQ=";
rev = "22581fb46c0c0c9530caa67149ee4dd8811063cf";
url = "https://gn.googlesource.com/gn";
version = "2024-02-19";
version = "2024-03-14";
};
};
hash = "sha256-7H7h621AHPyhFYbaVFO892TtS+SP3Qu7cYUVk3ICL14=";
hash_deb_amd64 = "sha256-tNkO1mPZg1xltBfoWeNhLekITtZV/WNgu//i2DJb17c=";
version = "123.0.6312.122";
hash = "sha256-apEniFKhIxPo4nhp9gCU+WpiV/EB40qif4RfE7Uniog=";
hash_deb_amd64 = "sha256-rSbigG5/xbL32d1ntOn6gnZyxSpgrg1h7lb/RD4YROI=";
version = "124.0.6367.60";
};
ungoogled-chromium = {
deps = {
@@ -44,13 +44,13 @@ rec {
thunderbird-115 = (buildMozillaMach rec {
pname = "thunderbird";
version = "115.9.0";
version = "115.10.1";
application = "comm/mail";
applicationName = "Mozilla Thunderbird";
binaryName = pname;
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
sha512 = "8ff0bed6e6d7f337ebae09011a10b59343ae7a8355ed1da2d72ec0d4218010adfae78e42565e5b784df26cef4702f313dc9616ac5ca5530fb772d77bdf7f2ea4";
sha512 = "0324811d3e7e6228bb45cbf01e8a4a08b8386e22d1b52eb79f9a9a3bda940eb9d534ec1230961e9a998a0162c299a1ad49d23c5fbfa8e287896bcc0fd1c398e0";
};
extraPatches = [
# The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
@@ -13,11 +13,11 @@
stdenv.mkDerivation rec {
pname = "twingate";
version = "2024.63.115357";
version = "2024.98.119300";
src = fetchurl {
url = "https://binaries.twingate.com/client/linux/DEB/x86_64/${version}/twingate-amd64.deb";
hash = "sha256-VSm9gnHfo9LPwUvNwLeX7OjqMYgFUgGYSxx/qDndfwo=";
hash = "sha256-N0cabYHaF5H1EeriQRQL7bN5UM85oOGrm9pxGr1AlEk=";
};
buildInputs = [
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "super-productivity";
version = "8.0.1";
version = "8.0.5";
src = fetchurl {
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
sha256 = "sha256-BW/4jP4lh3leAcdy3JHET/PUybN+0Cy9wxMSi57dAcw=";
sha256 = "sha256-nH7dCrXBhkAYbvb9CPc4zhslFiYtA1ChuYPoHMdBBwQ=";
name = "${pname}-${version}.AppImage";
};
@@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "iqtree";
version = "2.3.1";
version = "2.3.2";
src = fetchFromGitHub {
owner = "iqtree";
repo = "iqtree2";
rev = "v${version}";
hash = "sha256-GaNumiTGa6mxvFifv730JFgKrRxG41gJN+ci3imDbzs=";
hash = "sha256-hAJs48PhIyZSKSRZjQJKQwoJlt6DPRQwaDsuZ00VZII=";
fetchSubmodules = true;
};
@@ -39,14 +39,14 @@ let
in
buildGoModule rec {
pname = "forgejo";
version = "1.21.10-0";
version = "1.21.11-0";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "forgejo";
repo = "forgejo";
rev = "v${version}";
hash = "sha256-uCRAT9RiU9S+tP9alNshSQwbUgLmU9wE5HIQ4FPmXVE=";
hash = "sha256-Cp+dN4nTIboin42NJR/YUkVXbBC7uufH8EE7NgIVFzY=";
# Forgejo has multiple different version strings that need to be provided
# via ldflags. main.ForgejoVersion for example is a combination of a
# hardcoded gitea compatibility version string (in the Makefile) and
@@ -65,7 +65,7 @@ buildGoModule rec {
'';
};
vendorHash = "sha256-pgUSmM2CxYO8DralWoeR2groQxpxo9WtRcToYeaHXGk=";
vendorHash = "sha256-OuWNF+muWM6xqwkFxLIUsn/huqXj2VKg8BN9+JHVw58=";
subPackages = [ "." ];
@@ -18,13 +18,13 @@
mkDerivation rec {
pname = "anilibria-winmaclinux";
version = "1.2.16.1";
version = "1.2.16.2";
src = fetchFromGitHub {
owner = "anilibria";
repo = "anilibria-winmaclinux";
rev = version;
hash = "sha256-QQliz/tLeYsWgh/ZAO7FfbApAEqWhWoaQe9030QZxA8=";
hash = "sha256-IgNYJSadGemjclh7rtY8dHz7uSfBHoWEyLlRoZ+st6k=";
};
sourceRoot = "${src.name}/src";
@@ -8,7 +8,8 @@
{ name ? ""
, lib
, stdenvNoCC
, bintools ? null, libc ? null, coreutils ? null, shell ? stdenvNoCC.shell, gnugrep ? null
, runtimeShell
, bintools ? null, libc ? null, coreutils ? null, gnugrep ? null
, netbsd ? null, netbsdCross ? null
, sharedLibraryLoader ?
if libc == null then
@@ -28,7 +29,7 @@
, isGNU ? bintools.isGNU or false
, isLLVM ? bintools.isLLVM or false
, isCCTools ? bintools.isCCTools or false
, buildPackages ? {}
, expand-response-params
, targetPackages ? {}
, useMacosReexportHack ? false
, wrapGas ? false
@@ -131,10 +132,6 @@ let
else if hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"
else "";
expand-response-params =
optionalString (buildPackages ? stdenv && buildPackages.stdenv.hasCC && buildPackages.stdenv.cc != "/dev/null")
(import ../expand-response-params { inherit (buildPackages) stdenv; });
in
stdenvNoCC.mkDerivation {
@@ -418,8 +415,10 @@ stdenvNoCC.mkDerivation {
env = {
# for substitution in utils.bash
# TODO(@sternenseemann): invent something cleaner than passing in "" in case of absence
expandResponseParams = "${expand-response-params}/bin/expand-response-params";
shell = getBin shell + shell.shellPath or "";
# TODO(@sternenseemann): rename env var via stdenv rebuild
shell = (getBin runtimeShell + runtimeShell.shellPath or "");
gnugrep_bin = optionalString (!nativeTools) gnugrep;
wrapperName = "BINTOOLS_WRAPPER";
inherit dynamicLinker targetPrefix suffixSalt coreutils_bin;
+9 -6
View File
@@ -8,14 +8,15 @@
{ name ? ""
, lib
, stdenvNoCC
, cc ? null, libc ? null, bintools, coreutils ? null, shell ? stdenvNoCC.shell
, runtimeShell
, cc ? null, libc ? null, bintools, coreutils ? null
, zlib ? null
, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
, propagateDoc ? cc != null && cc ? man
, extraTools ? [], extraPackages ? [], extraBuildCommands ? ""
, nixSupport ? {}
, isGNU ? false, isClang ? cc.isClang or false, isCcache ? cc.isCcache or false, gnugrep ? null
, buildPackages ? {}
, expand-response-params
, libcxx ? null
# Whether or not to add `-B` and `-L` to `nix-support/cc-{c,ld}flags`
@@ -112,9 +113,6 @@ let
# unstable implementation detail, however.
suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config;
expand-response-params =
optionalString ((buildPackages.stdenv.hasCC or false) && buildPackages.stdenv.cc != "/dev/null") (import ../expand-response-params { inherit (buildPackages) stdenv; });
useGccForLibs = useCcForLibs
&& libcxx == null
&& !targetPlatform.isDarwin
@@ -297,6 +295,9 @@ stdenvNoCC.mkDerivation {
'(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)}))
'';
# Expose expand-response-params we are /actually/ using. In stdenv
# bootstrapping, expand-response-params usually comes from an earlier stage,
# so it is important to expose this for reference checking.
inherit expand-response-params;
inherit nixSupport;
@@ -738,8 +739,10 @@ stdenvNoCC.mkDerivation {
inherit isClang;
# for substitution in utils.bash
# TODO(@sternenseemann): invent something cleaner than passing in "" in case of absence
expandResponseParams = "${expand-response-params}/bin/expand-response-params";
shell = getBin shell + shell.shellPath or "";
# TODO(@sternenseemann): rename env var via stdenv rebuild
shell = getBin runtimeShell + runtimeShell.shellPath or "";
gnugrep_bin = optionalString (!nativeTools) gnugrep;
# stdenv.cc.cc should not be null and we have nothing better for now.
# if the native impure bootstrap is gotten rid of this can become `inherit cc;` again.
@@ -1,4 +1,4 @@
{ stdenv }:
{ stdenv, lib }:
# A "response file" is a sequence of arguments that is passed via a
# file, rather than via argv[].
@@ -25,4 +25,18 @@ stdenv.mkDerivation {
mkdir -p $prefix/bin
mv expand-response-params $prefix/bin/
'';
meta = {
description = "Internal tool used by the nixpkgs wrapper scripts for processing response files";
longDescription = ''
expand-response-params is a tool that allows for obtaining a full list of all
arguments passed in a given compiler command line including those passed via
so-called response files. The nixpkgs wrapper scripts for bintools and C
compilers use it for processing compiler flags. As it is developed in
conjunction with the nixpkgs wrapper scripts, it should be considered as
unstable and subject to change.
'';
license = lib.licenses.mit;
platforms = lib.platforms.all;
};
}
+3 -3
View File
@@ -5,16 +5,16 @@
buildGoModule rec {
pname = "api-linter";
version = "1.65.0";
version = "1.65.1";
src = fetchFromGitHub {
owner = "googleapis";
repo = "api-linter";
rev = "v${version}";
hash = "sha256-j5xvFg7C74sVjISZMWgURVHnJM6HBZtr90b0UXbGbdg=";
hash = "sha256-YGawN0mAJHfWkre+0tunPM/psd9aBWtSVsJoar0WVwY=";
};
vendorHash = "sha256-Bz7+4iVR2X36vt6wx3nIgWmVL+i9ncwdzYP9tBEpplk=";
vendorHash = "sha256-CsOnHHq3UjNWjfMy1TjXy20B0Bni6Fr3ZMJGvU7QDFA=";
subPackages = [ "cmd/api-linter" ];
+5 -5
View File
@@ -13,10 +13,10 @@ let
}.${system} or throwSystem;
hash = {
x86_64-linux = "sha256-AHjR6lHszYqZ2yC/uY2DmB67xMUFZliqI29Ptes2SoY=";
aarch64-linux = "sha256-2NYlec6gpVMJwZctEqwn5rQiTrb5PmaxEz3lQxF1qmk=";
x86_64-darwin = "sha256-OeMbO2lDK6XUF3ht+09ZWOL7UsEEVTrKyXOfhny8DhM=";
aarch64-darwin = "sha256-4CQvJkd3kI7XJz46QsSUBtWLmxDu7AcAJwRS3amv0SM=";
x86_64-linux = "sha256-6sIYDI6+1/p54Af+E/GmRAFlfDYJVwxhn0qF47ZH+Zg=";
aarch64-linux = "sha256-1ImcjAqCZm5KZZYHWhG1eO7ipAdrP4Qjj2eBxTst++s=";
x86_64-darwin = "sha256-yHthItxZYFejJlwJJ7BrM2csnLsZXjy/IbzF1iaCCyI=";
aarch64-darwin = "sha256-GIx0yABISj/rH/yVkkx6NBs5qF0P8nhpMyvnzXJ92mA=";
}.${system} or throwSystem;
bin = "$out/bin/codeium_language_server";
@@ -24,7 +24,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "codeium";
version = "1.8.22";
version = "1.8.25";
src = fetchurl {
name = "${finalAttrs.pname}-${finalAttrs.version}.gz";
url = "https://github.com/Exafunction/codeium/releases/download/language-server-v${finalAttrs.version}/language_server_${plat}.gz";
+195
View File
@@ -0,0 +1,195 @@
# This file was automatically generated by passthru.fetch-deps.
# Please dont edit it manually, your changes might get overwritten!
{ fetchNuGet }: [
(fetchNuGet { pname = "CoderPatros.AntPathMatching"; version = "0.1.1"; sha256 = "1a9xhigw6bc4gl7qg3d8m9y53bk0mn9kmw07w4y27f32gr6m9b2k"; })
(fetchNuGet { pname = "coverlet.collector"; version = "3.1.2"; sha256 = "0gsk2q93qw7pqxwd4pdyq5364wz0lvldcqqnf4amz13jaq86idmz"; })
(fetchNuGet { pname = "CsvHelper"; version = "29.0.0"; sha256 = "0x5i3x5jqrxi82sgzfbgyrqqd6nsgb35z5p4rhqzb0fhq9qf6hlw"; })
(fetchNuGet { pname = "CycloneDX.Core"; version = "6.0.0"; sha256 = "0lvllq1bb4w2l9va2ayjyd0kkbqyglkgjbha3y2hq71qkviqryd2"; })
(fetchNuGet { pname = "CycloneDX.Spdx"; version = "6.0.0"; sha256 = "032q2rp2626hirfhr8q6xhi2hs35ma137fswivsd1lkcz69vvl4h"; })
(fetchNuGet { pname = "CycloneDX.Spdx.Interop"; version = "6.0.0"; sha256 = "1c660hpq3bl3zaxyn9dkcn64f97nb1ri1bcdnky39ap4z6fp96ll"; })
(fetchNuGet { pname = "CycloneDX.Utils"; version = "6.0.0"; sha256 = "1zf57hppl586x2sc9c3j4n9mqyinfsnj2fp66rxdljgcrlsb1vd1"; })
(fetchNuGet { pname = "JetBrains.Annotations"; version = "2021.2.0"; sha256 = "0krvmg2h5ibh6mzs9yn7c8cdxgvr5hm7l884i49hlhnc1aiy5m1n"; })
(fetchNuGet { pname = "Json.More.Net"; version = "1.7.0"; sha256 = "0fbmrq88wqbfpngs9vfx03xdbg71liz07nyx620za82f294pcdzk"; })
(fetchNuGet { pname = "JsonPointer.Net"; version = "2.2.1"; sha256 = "16fhp2v2cqb9yaxy0nzq5ngmx1b089iz1phqfi0nhdjln3b2win6"; })
(fetchNuGet { pname = "JsonSchema.Net"; version = "3.3.2"; sha256 = "0sfp8qvdnxnh93q1vs9f9pjybjkh9jifvhaxjgfksf6zbz8dhp4v"; })
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.3.2"; sha256 = "1f05l2vm8inlwhk36lfbyszjlcnvdd2qw2832npaah0dldn6dz00"; })
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.4.1"; sha256 = "0z6d1i6xcf0c00z6rs75rgw4ncs9q2m8amasf6mmbf40fm02ry7g"; })
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.3.2"; sha256 = "0pm06nxqi8aw04lciqy7iz8ln1qm5mx06cpwgqa2dfwvnjp7zxnm"; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
(fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
(fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.3.2"; sha256 = "0bs38r5kdw1xpbjbi5l82xbhfnfbzr5xhg5520lk05pg914d1ln1"; })
(fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.3.2"; sha256 = "089nmaxzvm5xcf20pm4iiavz2k6lwh69r51xlbqg0ry605mnl869"; })
(fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
(fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
(fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.3"; sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; })
(fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
(fetchNuGet { pname = "NuGet.Frameworks"; version = "5.11.0"; sha256 = "0wv26gq39hfqw9md32amr5771s73f5zn1z9vs4y77cgynxr73s4z"; })
(fetchNuGet { pname = "protobuf-net"; version = "3.2.26"; sha256 = "1mcg46xnhgqwjacy6j8kvp3rylpi26wjnmhwv8mh5cwjya9nynqb"; })
(fetchNuGet { pname = "protobuf-net.Core"; version = "3.2.26"; sha256 = "1wrr38ygdanf121bkl8b1d4kz1pawm064z69bqf3qbr46h4j575w"; })
(fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
(fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
(fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
(fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
(fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
(fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
(fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
(fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
(fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
(fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
(fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
(fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
(fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
(fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
(fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
(fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
(fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
(fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
(fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
(fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
(fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
(fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
(fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
(fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
(fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
(fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
(fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
(fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
(fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
(fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
(fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
(fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
(fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
(fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
(fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
(fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
(fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
(fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
(fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
(fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
(fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
(fetchNuGet { pname = "Snapshooter"; version = "0.7.1"; sha256 = "04sn8pm1fgv8nasa6xi1wnm972xq9sq46lhc1p0945x44yvbrja9"; })
(fetchNuGet { pname = "Snapshooter.Xunit"; version = "0.7.1"; sha256 = "1z0v66nnaf7jj9b793x334z0da4llw6d4iddv4iy876q7a656rbx"; })
(fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
(fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
(fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
(fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
(fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
(fetchNuGet { pname = "System.CommandLine"; version = "2.0.0-beta1.21308.1"; sha256 = "09p3pr8sfx2znlwiig0m74qswziih0gn85y9i6bww5xprk4612np"; })
(fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
(fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
(fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
(fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
(fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
(fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
(fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
(fetchNuGet { pname = "System.Formats.Asn1"; version = "6.0.0"; sha256 = "1vvr7hs4qzjqb37r0w1mxq7xql2b17la63jwvmgv65s1hj00g8r9"; })
(fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
(fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
(fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
(fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
(fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
(fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
(fetchNuGet { pname = "System.IO.Abstractions"; version = "13.2.47"; sha256 = "0s7f3cx99k6ci9a32q7sfm3s878awqs2k75c989kl7qx7i0g7v54"; })
(fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
(fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
(fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
(fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
(fetchNuGet { pname = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; })
(fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
(fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
(fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
(fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
(fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
(fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
(fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
(fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
(fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
(fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
(fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
(fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
(fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
(fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
(fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
(fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
(fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
(fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
(fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
(fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
(fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
(fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
(fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
(fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
(fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
(fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
(fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
(fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
(fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
(fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
(fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
(fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
(fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
(fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
(fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
(fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
(fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
(fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
(fetchNuGet { pname = "System.Security.AccessControl"; version = "6.0.0"; sha256 = "0a678bzj8yxxiffyzy60z2w1nczzpi8v97igr4ip3byd2q89dv58"; })
(fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
(fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
(fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
(fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
(fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
(fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
(fetchNuGet { pname = "System.Security.Cryptography.Pkcs"; version = "6.0.1"; sha256 = "0wswhbvm3gh06azg9k1zfvmhicpzlh7v71qzd4x5zwizq4khv7iq"; })
(fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
(fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
(fetchNuGet { pname = "System.Security.Cryptography.Xml"; version = "6.0.1"; sha256 = "15d0np1njvy2ywf0qzdqyjk5sjs4zbfxg917jrvlbfwrqpqxb5dj"; })
(fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
(fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
(fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
(fetchNuGet { pname = "System.Text.Encodings.Web"; version = "7.0.0"; sha256 = "1151hbyrcf8kyg1jz8k9awpbic98lwz9x129rg7zk1wrs6vjlpxl"; })
(fetchNuGet { pname = "System.Text.Json"; version = "7.0.2"; sha256 = "1i6yinxvbwdk5g5z9y8l4a5hj2gw3h9ijlz2f1c1ngyprnwz2ivf"; })
(fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
(fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
(fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
(fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
(fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
(fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
(fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
(fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
(fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
(fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
(fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
(fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
(fetchNuGet { pname = "xunit"; version = "2.4.2"; sha256 = "0barl6x1qwx9srjxnanw9z0jik7lv1fp6cvmgqhk10aiv57dgqxm"; })
(fetchNuGet { pname = "xunit.abstractions"; version = "2.0.3"; sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh"; })
(fetchNuGet { pname = "xunit.analyzers"; version = "1.0.0"; sha256 = "0p4f24c462z49gvbh3k4z5ksa8ffa6p8abdgysqbbladl96im4c5"; })
(fetchNuGet { pname = "xunit.assert"; version = "2.4.1"; sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6"; })
(fetchNuGet { pname = "xunit.assert"; version = "2.4.2"; sha256 = "0ifdry9qq3yaw2lfxdll30ljx1jkyhwwy3ydw6gd97y3kifr3k60"; })
(fetchNuGet { pname = "xunit.core"; version = "2.4.1"; sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a"; })
(fetchNuGet { pname = "xunit.core"; version = "2.4.2"; sha256 = "1ir029igwm6b571lcm6585v5yxagy66rwrg26v4a1fnjq9dnh4cd"; })
(fetchNuGet { pname = "xunit.extensibility.core"; version = "2.4.1"; sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050"; })
(fetchNuGet { pname = "xunit.extensibility.core"; version = "2.4.2"; sha256 = "1h0a62xddsd82lljfjldn1nqy17imga905jb7j0ddr10wi8cqm62"; })
(fetchNuGet { pname = "xunit.extensibility.execution"; version = "2.4.1"; sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia"; })
(fetchNuGet { pname = "xunit.extensibility.execution"; version = "2.4.2"; sha256 = "0r9gczqz4bc59cwl6d6wali6pvlw210i97chc1nlwn2qh383m54p"; })
(fetchNuGet { pname = "xunit.runner.visualstudio"; version = "2.4.5"; sha256 = "0y8w33ci80z8k580pp24mfnaw1r8ji0w3az543xxcz6aagax9zhs"; })
]
+33
View File
@@ -0,0 +1,33 @@
{ lib
, buildDotnetModule
, fetchFromGitHub
}:
buildDotnetModule rec {
pname = "cyclonedx-cli";
version = "0.25.0";
src = fetchFromGitHub {
owner = "CycloneDX";
repo = "cyclonedx-cli";
rev = "refs/tags/v${version}";
hash = "sha256-kAMSdUMr/NhsbMBViFJQlzgUNnxWgi/CLb3CW9OpWFo=";
};
nugetDeps = ./deps.nix;
preFixup = ''
cd $out/bin
find . ! -name 'cyclonedx' -type f -exec rm -f {} +
'';
meta = with lib; {
description = "CycloneDX CLI tool for SBOM analysis, merging, diffs and format conversions";
homepage = "https://github.com/CycloneDX/cyclonedx-cli";
changelog = "https://github.com/CycloneDX/cyclonedx-cli/releases/tag/v${version}";
maintainers = with maintainers; [ thillux ];
license = licenses.asl20;
platforms = with platforms; (linux ++ darwin);
mainProgram = "cyclonedx";
};
}
@@ -1,20 +1,16 @@
{ lib, stdenvNoCC, fetchFromGitHub }:
{ lib
, stdenvNoCC
, fira-mono
}:
stdenvNoCC.mkDerivation rec {
pname = "fira";
version = "4.202";
src = fetchFromGitHub {
owner = "mozilla";
repo = "Fira";
rev = version;
hash = "sha256-HLReqgL0PXF5vOpwLN0GiRwnzkjGkEVEyOEV2Z4R0oQ=";
};
stdenvNoCC.mkDerivation {
pname = "fira-sans";
inherit (fira-mono) version src;
installPhase = ''
runHook preInstall
install --mode=-x -Dt $out/share/fonts/opentype otf/*.otf
install --mode=-x -Dt $out/share/fonts/opentype otf/FiraSans*.otf
runHook postInstall
'';
+23
View File
@@ -0,0 +1,23 @@
{ lib
, symlinkJoin
, fira-mono
, fira-sans
}:
symlinkJoin rec {
pname = "fira";
inherit (fira-mono) version;
name = "${pname}-${version}";
paths = [
fira-mono
fira-sans
];
meta = {
description = "Fira font family including Fira Sans and Fira Mono";
homepage = "https://mozilla.github.io/Fira/";
license = lib.licenses.ofl;
platforms = lib.platforms.all;
};
}
+33
View File
@@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "gtfocli";
version = "0.0.4";
src = fetchFromGitHub {
owner = "cmd-tools";
repo = "gtfocli";
rev = "refs/tags/${version}";
hash = "sha256-fSk/OyeUffYZOkHXM1m/a9traDxdllYBieMEfsv910Q=";
};
vendorHash = "sha256-yhN2Ve4mBw1HoC3zXYz+M8+2CimLGduG9lGTXi+rPNw=";
ldflags = [
"-s"
"-w"
];
meta = with lib; {
description = "GTFO Command Line Interface for search binaries commands to bypass local security restrictions";
homepage = "https://github.com/cmd-tools/gtfocli";
changelog = "https://github.com/cmd-tools/gtfocli/releases/tag/${version}";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
mainProgram = "gtfocli";
};
}
+2 -2
View File
@@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "hypridle";
version = "0.1.1";
version = "0.1.2";
src = fetchFromGitHub {
owner = "hyprwm";
repo = "hypridle";
rev = "v${finalAttrs.version}";
hash = "sha256-YayFU0PZkwnKn1RSV3+i2HlSha/IFkG5osXcT0b/EUw=";
hash = "sha256-7Ft5WZTMIjXOGgRCf31DZBwK6RK8xkeKlD5vFXz3gII=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -10,16 +10,16 @@
buildNpmPackage rec {
pname = "igir";
version = "2.6.2";
version = "2.6.3";
src = fetchFromGitHub {
owner = "emmercm";
repo = "igir";
rev = "v${version}";
hash = "sha256-bJPUGB9fyeOb5W9EzQldh4rRJQBat58MgjjfS1qh66w=";
hash = "sha256-0WA+7qw5ZuELHc8P0yizV+kEwSmoUBmgReM8ZosGnqs=";
};
npmDepsHash = "sha256-q8gpx5zwiO/7ZBB/YruhCUgukp71sfJju8nmF6SwTrc=";
npmDepsHash = "sha256-UfTq7/da1V9ubHh2wGvktP/SiWfyL8yF9iuCOq8Hxwg=";
# I have no clue why I have to do this
postPatch = ''
@@ -0,0 +1,65 @@
{
lib,
stdenvNoCC,
fetchFromGitea,
makeDesktopItem,
copyDesktopItems,
makeWrapper,
renpy,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "katawa-shoujo-re-engineered";
version = "1.4.4";
src = fetchFromGitea {
# GitHub mirror at fleetingheart/ksre
domain = "codeberg.org";
owner = "fhs";
repo = "katawa-shoujo-re-engineered";
rev = "v${finalAttrs.version}";
hash = "sha256-RYJM/wGVWqIRZzHLUtUZ5mKUrUftDVaOwS1f/EpW6Tk=";
};
desktopItems = [
(makeDesktopItem {
name = "katawa-shoujo-re-engineered";
desktopName = "Katawa Shoujo: Re-Engineered";
type = "Application";
icon = finalAttrs.meta.mainProgram;
categories = [ "Game" ];
exec = finalAttrs.meta.mainProgram;
})
];
nativeBuildInputs = [
makeWrapper
copyDesktopItems
];
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
makeWrapper ${lib.getExe' renpy "renpy"} $out/bin/${finalAttrs.meta.mainProgram} \
--add-flags ${finalAttrs.src} --add-flags run
install -D $src/web-icon.png $out/share/icons/hicolor/512x512/apps/${finalAttrs.meta.mainProgram}.png
runHook postInstall
'';
meta = {
description = "A fan-made modernization of the classic visual novel Katawa Shoujo";
homepage = "https://www.fhs.sh/projects";
license = with lib.licenses; [
# code
mpl20
# assets from the original game
cc-by-nc-nd-30
];
mainProgram = "katawa-shoujo-re-engineered";
maintainers = with lib.maintainers; [ quantenzitrone ];
platforms = renpy.meta.platforms;
};
})
+3 -3
View File
@@ -5,16 +5,16 @@
buildGoModule rec {
pname = "livekit";
version = "1.5.3";
version = "1.6.0";
src = fetchFromGitHub {
owner = "livekit";
repo = "livekit";
rev = "v${version}";
hash = "sha256-2MooX+wy7KetxEBgQoVoL4GuVkm+SbTzYgfWyLL7KU8=";
hash = "sha256-tgoVHRv8hnDkjFYShZ/3lieknhIobHv27RVvQOCtEWU=";
};
vendorHash = "sha256-8YR0Bl+sQsqpFtD+1GeYaydBdHeM0rRL2NbgAh9kCj0=";
vendorHash = "sha256-TZ435gu5naFi/JLz6B/1fpvGA3diJp4JIWL1zgNlb4Q=";
subPackages = [ "cmd/server" ];
+18 -5
View File
@@ -1,8 +1,14 @@
{ lib, buildGoModule, fetchFromGitHub, olm, config }:
{ buildGoModule
, config
, fetchFromGitHub
, lib
, nixosTests
, olm
}:
buildGoModule rec {
pname = "mautrix-meta";
version = "0.2.0";
version = "0.3.0";
subPackages = [ "." ];
@@ -10,14 +16,21 @@ buildGoModule rec {
owner = "mautrix";
repo = "meta";
rev = "v${version}";
hash = "sha256-n0FpEHgnMdg6W5wahIT5HaF9AP/QYlLuUWJS+VrElgg=";
hash = "sha256-QyVcy9rqj1n1Nn/+gBufd57LyEaXPyu0KQhAUTgNmBA=";
};
buildInputs = [ olm ];
vendorHash = "sha256-GkgIang3/1u0ybznHgK1l84bEiCj6u4qf8G+HgLGr90=";
vendorHash = "sha256-oQSjP1WY0LuxrMtIrvyKhize91wXJxTzWeH0Y3MsEL4=";
doCheck = false;
passthru = {
tests = {
inherit (nixosTests)
mautrix-meta-postgres
mautrix-meta-sqlite
;
};
};
meta = {
homepage = "https://github.com/mautrix/meta";
+3 -3
View File
@@ -1,7 +1,7 @@
{ lib, buildGoModule, fetchFromGitHub, nix-update-script
}:
let
version = "0.0.42";
version = "0.0.43";
in
buildGoModule {
@@ -13,10 +13,10 @@ buildGoModule {
repo = "mcap";
owner = "foxglove";
rev = "releases/mcap-cli/v${version}";
hash = "sha256-9fjzMUMWn5j8AJJq+tK+Hq0o8d3HpacitJZ5CfLiaLw=";
hash = "sha256-AWmPqymnNZxKbhxiQOO9djQXbP56mNh9Ucmty2jd+4Q=";
};
vendorHash = "sha256-Gl0zLBTWscKGtVOS6rPRL/r8KHYHpZwoUDbEyCL4Ijk=";
vendorHash = "sha256-YFbfrqu2H7yU6vANH56MnxipDxaJLT76qZkvqLCFTTg=";
modRoot = "go/cli/mcap";
+4 -4
View File
@@ -7,16 +7,16 @@
}:
buildGoModule rec {
pname = "nezha-agent";
version = "0.16.4";
version = "0.16.5";
src = fetchFromGitHub {
owner = "nezhahq";
repo = "agent";
rev = "v${version}";
hash = "sha256-xXv2FVPsl8BR51VMrFreaS3UQLEJwfObY4OeMMb8pms=";
hash = "sha256-WRHYI3/6qrVZRa4ANA6VBBJCaINP1N8Xjy0GWO4LqgA=";
};
vendorHash = "sha256-ZlheRFgl3vsUXVx8PKZQ59kme2NC31OQAL6EaNhbf70=";
vendorHash = "sha256-AtcRfvYBgTZJz9dpsMgacnV8RNi2Ph7QgUrcE6zzTo8=";
ldflags = [
"-s"
@@ -40,6 +40,6 @@ buildGoModule rec {
description = "Agent of Nezha Monitoring";
homepage = "https://github.com/nezhahq/agent";
license = licenses.asl20;
maintainers = with maintainers; [moraxyc];
maintainers = with maintainers; [ moraxyc ];
};
}
+2 -2
View File
@@ -5,13 +5,13 @@
}:
buildGoModule rec {
pname = "nom";
version = "2.1.6";
version = "2.2.1";
src = fetchFromGitHub {
owner = "guyfedwards";
repo = "nom";
rev = "v${version}";
hash = "sha256-NOPzznopH+PeSEMzO1vMHOSbmy9/v2yT4VC4kAsdbGw";
hash = "sha256-AAgkxBbGH45n140jm28+J3hqYxzUIL6IVLGWD9oBexo=";
};
vendorHash = "sha256-fP6yxfIQoVaBC9hYcrCyo3YP3ntEVDbDTwKMO9TdyDI=";
+35
View File
@@ -0,0 +1,35 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "nomore403";
version = "1.0.1";
src = fetchFromGitHub {
owner = "devploit";
repo = "nomore403";
rev = "refs/tags/${version}";
hash = "sha256-qA1i8l2oBQQ5IF8ho3K2k+TAndUTFGwb2NfhyFqfKzU=";
};
vendorHash = "sha256-IGnTbuaQH8A6aKyahHMd2RyFRh4WxZ3Vx/A9V3uelRg=";
ldflags = [
"-s"
"-w"
"-X=main.Version=${version}"
"-X=main.BuildDate=1970-01-01T00:00:00Z"
];
meta = with lib; {
description = "Tool to bypass 403/40X response codes";
homepage = "https://github.com/devploit/nomore403";
changelog = "https://github.com/devploit/nomore403/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
mainProgram = "nomore403";
};
}
+2 -2
View File
@@ -5,11 +5,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "proton-ge-bin";
version = "GE-Proton9-2";
version = "GE-Proton9-4";
src = fetchzip {
url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${finalAttrs.version}/${finalAttrs.version}.tar.gz";
hash = "sha256-NqBzKonCYH+hNpVZzDhrVf+r2i6EwLG/IFBXjE2mC7s=";
hash = "sha256-OR4SUqm5Xsycv/KVBW2Ug/lz4Xr6IQBp8gXacorRe3U=";
};
outputs = [ "out" "steamcompattool" ];
+193
View File
@@ -0,0 +1,193 @@
{
"name": "pyright-root",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "pyright-root",
"hasInstallScript": true,
"dependencies": {
"glob": "^7.2.3",
"jsonc-parser": "^3.2.1"
}
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/jsonc-parser": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
"integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
}
},
"dependencies": {
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"jsonc-parser": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
"integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
},
"minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"requires": {
"brace-expansion": "^1.1.7"
}
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"requires": {
"wrappy": "1"
}
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
}
}
}
+75
View File
@@ -0,0 +1,75 @@
{ lib, buildNpmPackage, fetchFromGitHub, runCommand, jq }:
let
version = "1.1.359";
src = fetchFromGitHub {
owner = "Microsoft";
repo = "pyright";
rev = "${version}";
hash = "sha256-gqMAfmYjYO6D9sRu+uJv4yJ/+csioFAwsUPBDF29VDs=";
};
patchedPackageJSON = runCommand "package.json" { } ''
${jq}/bin/jq '
.devDependencies |= with_entries(select(.key == "glob" or .key == "jsonc-parser"))
| .scripts = { }
' ${src}/package.json > $out
'';
pyright-root = buildNpmPackage {
pname = "pyright-root";
inherit version src;
npmDepsHash = "sha256-63kUhKrxtJhwGCRBnxBfOFXs2ARCNn+OOGu6+fSJey4=";
dontNpmBuild = true;
postPatch = ''
cp ${patchedPackageJSON} ./package.json
cp ${./package-lock.json} ./package-lock.json
'';
installPhase = ''
runHook preInstall
cp -r . "$out"
runHook postInstall
'';
};
pyright-internal = buildNpmPackage {
pname = "pyright-internal";
inherit version src;
sourceRoot = "${src.name}/packages/pyright-internal";
npmDepsHash = "sha256-p2KamNFJ3sJHmJm0MEPhI8L/8zAVzfc9NYy24rAdFcQ=";
dontNpmBuild = true;
installPhase = ''
runHook preInstall
cp -r . "$out"
runHook postInstall
'';
};
in
buildNpmPackage rec {
pname = "pyright";
inherit version src;
sourceRoot = "${src.name}/packages/pyright";
npmDepsHash = "sha256-U7WdMIYg9U4fJ8YtDruMzloRS2BQAa2QWExle9uwPbU=";
postPatch = ''
chmod +w ../../
ln -s ${pyright-root}/node_modules ../../node_modules
chmod +w ../pyright-internal
ln -s ${pyright-internal}/node_modules ../pyright-internal/node_modules
'';
dontNpmBuild = true;
passthru.updateScript = ./update.sh;
meta = {
changelog = "https://github.com/Microsoft/pyright/releases/tag/${version}";
description = "Type checker for the Python language";
homepage = "https://github.com/Microsoft/pyright";
license = lib.licenses.mit;
mainProgram = "pyright";
maintainers = with lib.maintainers; [ kalekseev ];
};
}
+44
View File
@@ -0,0 +1,44 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnused common-updater-scripts jq prefetch-npm-deps
set -euo pipefail
version=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s https://api.github.com/repos/microsoft/pyright/releases/latest | jq -r '.tag_name | sub("^v"; "")')
update-source-version pyright "$version"
root="$(dirname "$(readlink -f "$0")")"
FILE_PATH="$root/package.nix"
REPO_URL_PREFIX="https://github.com/microsoft/pyright/raw"
TEMP_DIR=$(mktemp -d)
trap 'rm -rf "$TEMP_DIR"' EXIT
# Function to download `package-lock.json` for a given source path and update hash
update_hash() {
local source_root_path="$1"
local existing_hash="$2"
# Formulate download URL
local download_url="${REPO_URL_PREFIX}/${version}${source_root_path}/package-lock.json"
# Download package-lock.json to temporary directory
curl -fsSL -o "${TEMP_DIR}/package-lock.json" "$download_url"
# Calculate the new hash
local new_hash
new_hash=$(prefetch-npm-deps "${TEMP_DIR}/package-lock.json")
# Update npmDepsHash in the original file
sed -i "s|$existing_hash|${new_hash}|" "$FILE_PATH"
}
while IFS= read -r source_root_line; do
[[ "$source_root_line" =~ sourceRoot ]] || continue
source_root_path=$(echo "$source_root_line" | sed -e 's/^.*"${src.name}\(.*\)";.*$/\1/')
# Extract the current npmDepsHash for this sourceRoot
existing_hash=$(grep -A1 "$source_root_line" "$FILE_PATH" | grep 'npmDepsHash' | sed -e 's/^.*npmDepsHash = "\(.*\)";$/\1/')
# Call the function to download and update the hash
update_hash "$source_root_path" "$existing_hash"
done < "$FILE_PATH"
+2 -2
View File
@@ -7,11 +7,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "quarkus-cli";
version = "3.9.3";
version = "3.9.4";
src = fetchurl {
url = "https://github.com/quarkusio/quarkus/releases/download/${finalAttrs.version}/quarkus-cli-${finalAttrs.version}.tar.gz";
hash = "sha256-VTgBwpE5b/OgM7kkzZijmj9H4d8jy0HNMGl5tfmBe4E=";
hash = "sha256-ez4D+czYDhs/GNrjRF8Bx999JRW0EigMxc39fOH54V8=";
};
nativeBuildInputs = [ makeWrapper ];
+36
View File
@@ -0,0 +1,36 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, sqlite
}:
rustPlatform.buildRustPackage rec {
pname = "rippkgs";
version = "1.1.0";
src = fetchFromGitHub {
owner = "replit";
repo = "rippkgs";
rev = "refs/tags/v${version}";
hash = "sha256-qQZnD9meczfsQv1R68IiUfPq730I2IyesurrOhtA3es=";
};
cargoHash = "sha256-hGSHgJ2HVCNqTBsTQIZlSE89FKqdMifuJyAGl3utF2I=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
sqlite
];
meta = {
description = "A CLI for indexing and searching packages in Nix expressions";
homepage = "https://github.com/replit/rippkgs";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ eclairevoyant ];
mainProgram = "rippkgs";
};
}
+48 -48
View File
@@ -110,7 +110,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
dependencies = [
"concurrent-queue",
"event-listener 5.2.0",
"event-listener 5.3.0",
"event-listener-strategy 0.5.1",
"futures-core",
"pin-project-lite",
@@ -118,9 +118,9 @@ dependencies = [
[[package]]
name = "async-executor"
version = "1.9.1"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10b3e585719c2358d2660232671ca8ca4ddb4be4ce8a1842d6c2dc8685303316"
checksum = "5f98c37cf288e302c16ef6c8472aad1e034c6c84ce5ea7b8101c98eb4a802fee"
dependencies = [
"async-lock 3.3.0",
"async-task",
@@ -244,7 +244,7 @@ checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -373,9 +373,9 @@ dependencies = [
[[package]]
name = "bumpalo"
version = "3.15.4"
version = "3.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
name = "bytemuck"
@@ -489,9 +489,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.0.90"
version = "1.0.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41"
[[package]]
name = "cesu8"
@@ -545,7 +545,7 @@ dependencies = [
"anstream",
"anstyle",
"clap_lex",
"strsim 0.11.0",
"strsim 0.11.1",
]
[[package]]
@@ -557,7 +557,7 @@ dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -642,7 +642,7 @@ version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
dependencies = [
"getrandom 0.2.12",
"getrandom 0.2.14",
"once_cell",
"tiny-keccak",
]
@@ -772,7 +772,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -843,7 +843,7 @@ dependencies = [
"ident_case",
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -876,7 +876,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
dependencies = [
"darling_core 0.20.8",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -968,7 +968,7 @@ dependencies = [
"prettyplease",
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -1079,7 +1079,7 @@ dependencies = [
"dioxus-core",
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -1183,7 +1183,7 @@ dependencies = [
"darling 0.20.8",
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -1244,9 +1244,9 @@ dependencies = [
[[package]]
name = "event-listener"
version = "5.2.0"
version = "5.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24"
dependencies = [
"concurrent-queue",
"parking",
@@ -1269,7 +1269,7 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3"
dependencies = [
"event-listener 5.2.0",
"event-listener 5.3.0",
"pin-project-lite",
]
@@ -1378,9 +1378,9 @@ dependencies = [
[[package]]
name = "freedesktop-desktop-entry"
version = "0.5.1"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "287f89b1a3d88dd04d2b65dfec39f3c381efbcded7b736456039c4ee49d54b17"
checksum = "c201444ddafb5506fe85265b48421664ff4617e3b7090ef99e42a0070c1aead0"
dependencies = [
"dirs 3.0.2",
"gettext-rs",
@@ -1495,7 +1495,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -1645,9 +1645,9 @@ dependencies = [
[[package]]
name = "getrandom"
version = "0.2.12"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
dependencies = [
"cfg-if",
"libc",
@@ -1822,7 +1822,7 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -2872,7 +2872,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7"
dependencies = [
"proc-macro2",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -3002,7 +3002,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
"getrandom 0.2.12",
"getrandom 0.2.14",
]
[[package]]
@@ -3050,7 +3050,7 @@ version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
dependencies = [
"getrandom 0.2.12",
"getrandom 0.2.14",
"libredox",
"thiserror",
]
@@ -3137,7 +3137,7 @@ dependencies = [
[[package]]
name = "rmenu"
version = "1.2.0"
version = "1.2.1"
dependencies = [
"cached 0.44.0",
"clap",
@@ -3168,7 +3168,7 @@ dependencies = [
[[package]]
name = "rmenu-plugin"
version = "0.0.1"
version = "0.0.2"
dependencies = [
"bincode",
"clap",
@@ -3358,7 +3358,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -3374,13 +3374,13 @@ dependencies = [
[[package]]
name = "serde_repr"
version = "0.1.18"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -3594,9 +3594,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "strsim"
version = "0.11.0"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "strum"
@@ -3639,9 +3639,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.57"
version = "2.0.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35"
checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
dependencies = [
"proc-macro2",
"quote",
@@ -3789,7 +3789,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -3870,7 +3870,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -3946,7 +3946,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
]
[[package]]
@@ -4135,7 +4135,7 @@ version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
dependencies = [
"getrandom 0.2.12",
"getrandom 0.2.14",
]
[[package]]
@@ -4211,7 +4211,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
"wasm-bindgen-shared",
]
@@ -4245,7 +4245,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.57",
"syn 2.0.58",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -4268,9 +4268,9 @@ dependencies = [
[[package]]
name = "webbrowser"
version = "0.8.13"
version = "0.8.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1b04c569c83a9bb971dd47ec6fd48753315f4bf989b9b04a2e7ca4d7f0dc950"
checksum = "dd595fb70f33583ac61644820ebc144a26c96028b625b96cafcd861f4743fbc8"
dependencies = [
"core-foundation",
"home",
@@ -4416,7 +4416,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "window"
version = "0.0.0"
version = "0.0.1"
dependencies = [
"anyhow",
"clap",
+7 -4
View File
@@ -11,13 +11,13 @@
}:
rustPlatform.buildRustPackage rec {
pname = "rmenu";
version = "1.2.0";
version = "1.2.1";
src = fetchFromGitHub {
rev = "v${version}";
owner = "imgurbot12";
repo = "rmenu";
hash = "sha256-mzY+M7GGJDxb8s7pusRDo/xfKE/S4uxPy4klRBjVGOA=";
hash = "sha256-JHJZfDxrDi0rJSloPdOVdvo/XkrFhvshd7yZWn/zELU=";
};
nativeBuildInputs = [
@@ -65,14 +65,17 @@ rustPlatform.buildRustPackage rec {
# fix config and theme
mkdir -p $out/share/rmenu
cp -vf $src/rmenu/public/config.yaml $out/share/rmenu/config.yaml
sed -i "s@~\/\.config\/rmenu\/themes@$out\/themes@g" $out/share/rmenu/config.yaml
sed -i "s@~\/\.config\/rmenu@$out\/plugins@g" $out/share/rmenu/config.yaml
substituteInPlace $out/share/rmenu/config.yaml --replace "~/.config/rmenu" "$out"
ln -sf $out/themes/dark.css $out/share/rmenu/style.css
'';
preFixup = ''
# rmenu expects the config to be in XDG_CONFIG_DIRS
# shell script plugins called from rmenu binary expect the rmenu-build binary to be on the PATH,
# which needs wrapping in temporary environments like shells and flakes
gappsWrapperArgs+=(
--suffix XDG_CONFIG_DIRS : "$out/share"
--suffix PATH : "$out/bin"
)
'';
+32
View File
@@ -0,0 +1,32 @@
{
lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "sbom-utility";
version = "0.15.0";
src = fetchFromGitHub {
owner = "CycloneDX";
repo = "sbom-utility";
rev = "refs/tags/v${version}";
hash = "sha256-tNLMrtJj1eeJ4sVhDRR24/KVI1HzZSRquiImuDTNZFI=";
};
vendorHash = "sha256-EdzI5ypwZRksQVmcfGDUgEMa4CeAPcm237ZaKqmWQDY=";
preCheck = ''
cd test
'';
meta = with lib; {
description = "Utility that provides an API platform for validating, querying and managing BOM data";
homepage = "https://github.com/CycloneDX/sbom-utility";
changelog = "https://github.com/CycloneDX/sbom-utility/releases/tag/v${version}";
license = licenses.asl20;
maintainers = with maintainers; [ thillux ];
mainProgram = "sbom-utility";
};
}
@@ -0,0 +1,13 @@
diff --git a/snapcraft_legacy/internal/build_providers/_lxd/_lxd.py b/snapcraft_legacy/internal/build_providers/_lxd/_lxd.py
index 5fa4f898..41264ebb 100644
--- a/snapcraft_legacy/internal/build_providers/_lxd/_lxd.py
+++ b/snapcraft_legacy/internal/build_providers/_lxd/_lxd.py
@@ -142,7 +142,7 @@ class LXD(Provider):
build_provider_flags=build_provider_flags,
)
# This endpoint is hardcoded everywhere lxc/lxd-pkg-snap#33
- lxd_socket_path = "/var/snap/lxd/common/lxd/unix.socket"
+ lxd_socket_path = "/var/lib/lxd/unix.socket"
endpoint = "http+unix://{}".format(urllib.parse.quote(lxd_socket_path, safe=""))
try:
self._lxd_client: pylxd.Client = pylxd.Client(endpoint=endpoint)
@@ -0,0 +1,21 @@
diff --git a/snapcraft/utils.py b/snapcraft/utils.py
index 511effe2..4af5a029 100644
--- a/snapcraft/utils.py
+++ b/snapcraft/utils.py
@@ -15,6 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Utilities for snapcraft."""
+
import multiprocessing
import os
import pathlib
@@ -91,7 +92,7 @@ def get_os_platform(
release = platform.release()
machine = platform.machine()
- if system == "Linux":
+ if system == "Linux" and "NixOS" not in platform.version():
try:
with filepath.open("rt", encoding="utf-8") as release_file:
lines = release_file.readlines()
+188
View File
@@ -0,0 +1,188 @@
{
fetchFromGitHub,
git,
glibc,
lib,
makeWrapper,
nix-update-script,
python3Packages,
squashfsTools,
stdenv,
}:
python3Packages.buildPythonApplication rec {
pname = "snapcraft";
version = "8.2.0";
pyproject = true;
# Somewhere deep in the dependency tree is 'versioningit', which depends
# on pydantic 2. Snapcraft will soon migrate to pydantic 2, and disabling
# this doesn't seem to affect the functionality of the application.
catchConflicts = false;
src = fetchFromGitHub {
owner = "canonical";
repo = "snapcraft";
rev = "refs/tags/${version}";
hash = "sha256-uRapRL+492FOju83o3OBsYK52hwOOG6b4EbdMVpAlBs=";
};
patches = [
# Snapcraft is only officially distributed as a snap, as is LXD. The socket
# path for LXD must be adjusted so that it's at the correct location for LXD
# on NixOS. This patch will likely never be accepted upstream.
./lxd-socket-path.patch
# In certain places, Snapcraft expects an /etc/os-release file to determine
# host info which doesn't exist in our test environment. This is a
# relatively naive patch which helps the test suite pass - without it *many*
# of the tests fail. This patch will likely never be accepted upstream.
./os-platform.patch
# Snapcraft will try to inject itself as a snap *from the host system* into
# the build system. This patch short-circuits that logic and ensures that
# Snapcraft is installed on the build system from the snap store - because
# there is no snapd on NixOS hosts that can be used for the injection. This
# patch will likely never be accepted upstream.
./set-channel-for-nix.patch
# Certain paths (for extensions, schemas) are packaged in the snap by the
# upstream, so the paths are well-known, except here where Snapcraft is
# *not* in a snap, so this patch changes those paths to point to the correct
# place in the Nix store. This patch will likely never be accepted upstream.
./snapcraft-data-dirs.patch
];
postPatch = ''
substituteInPlace setup.py \
--replace-fail 'version=determine_version()' 'version="${version}"' \
--replace-fail 'gnupg' 'python-gnupg'
substituteInPlace requirements.txt \
--replace-fail 'gnupg==2.3.1' 'python-gnupg'
substituteInPlace snapcraft/__init__.py \
--replace-fail '__version__ = _get_version()' '__version__ = "${version}"'
substituteInPlace snapcraft_legacy/__init__.py \
--replace-fail '__version__ = _get_version()' '__version__ = "${version}"'
substituteInPlace snapcraft/elf/elf_utils.py \
--replace-fail 'arch_linker_path = Path(arch_config.dynamic_linker)' \
'return str(Path("${glibc}/lib/ld-linux-x86-64.so.2"))'
'';
buildInputs = [ makeWrapper ];
propagatedBuildInputs = with python3Packages; [
attrs
catkin-pkg
click
craft-application
craft-archives
craft-cli
craft-grammar
craft-parts
craft-providers
craft-store
debian
docutils
jsonschema
launchpadlib
lazr-restfulclient
lxml
macaroonbakery
mypy-extensions
progressbar
pyelftools
pygit2
pylxd
python-apt
python-gnupg
raven
requests-toolbelt
simplejson
snap-helpers
tabulate
tinydb
];
nativeBuildInputs = with python3Packages; [
pythonRelaxDepsHook
setuptools
];
pythonRelaxDeps = [
"docutils"
"jsonschema"
"pygit2"
"urllib3"
];
postInstall = ''
wrapProgram $out/bin/snapcraft --prefix PATH : ${squashfsTools}/bin
'';
nativeCheckInputs = with python3Packages; [
pytest-check
pytest-cov
pytest-mock
pytest-subprocess
pytestCheckHook
responses
] ++ [
git
squashfsTools
];
preCheck = ''
mkdir -p check-phase
export HOME="$(pwd)/check-phase"
'';
pytestFlagsArray = [ "tests/unit" ];
disabledTests = [
"test_bin_echo"
"test_classic_linter_filter"
"test_classic_linter"
"test_complex_snap_yaml"
"test_get_base_configuration_snap_channel"
"test_get_base_configuration_snap_instance_name_default"
"test_get_base_configuration_snap_instance_name_not_running_as_snap"
"test_get_extensions_data_dir"
"test_get_os_platform_alternative_formats"
"test_get_os_platform_linux"
"test_get_os_platform_windows"
"test_lifecycle_pack_components_with_output"
"test_lifecycle_pack_components"
"test_lifecycle_write_component_metadata"
"test_parse_info_integrated"
"test_patch_elf"
"test_remote_builder_init"
"test_setup_assets_remote_icon"
"test_snap_command_fallback"
"test_validate_architectures_supported"
"test_validate_architectures_unsupported"
] ++ lib.optionals stdenv.isAarch64 [
"test_load_project"
];
disabledTestPaths = [
"tests/unit/commands/test_remote.py"
"tests/unit/elf"
"tests/unit/linters/test_classic_linter.py"
"tests/unit/linters/test_library_linter.py"
"tests/unit/parts/test_parts.py"
"tests/unit/services"
];
passthru.updateScript = nix-update-script { };
meta = {
mainProgram = "snapcraft";
description = "Build and publish Snap packages";
homepage = "https://github.com/canonical/snapcraft";
changelog = "https://github.com/canonical/snapcraft/releases/tag/${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ jnsgruk ];
platforms = lib.platforms.linux;
};
}
@@ -0,0 +1,30 @@
diff --git a/snapcraft/providers.py b/snapcraft/providers.py
index a999537a..dcd290a7 100644
--- a/snapcraft/providers.py
+++ b/snapcraft/providers.py
@@ -21,6 +21,7 @@ import sys
from pathlib import Path
from textwrap import dedent
from typing import Dict, Optional
+import platform
from craft_cli import emit
from craft_providers import Provider, ProviderError, bases, executor
@@ -178,14 +179,14 @@ def get_base_configuration(
# injecting a snap on a non-linux system is not supported, so default to
# install snapcraft from the store's stable channel
snap_channel = get_managed_environment_snap_channel()
- if sys.platform != "linux" and not snap_channel:
+ if snap_channel is None and (sys.platform != "linux" or "NixOS" in platform.version()):
emit.progress(
- "Using snapcraft from snap store channel 'latest/stable' in instance "
+ "Using snapcraft from snap store channel 'latest/beta' in instance "
"because snap injection is only supported on Linux hosts.",
permanent=True,
)
snap_name = "snapcraft"
- snap_channel = "stable"
+ snap_channel = "beta"
elif is_snapcraft_running_from_snap():
# Use SNAP_INSTANCE_NAME for snapcraft's snap name, as it may not be
# 'snapcraft' if the '--name' parameter was used to install snapcraft.
@@ -0,0 +1,26 @@
diff --git a/snapcraft_legacy/internal/common.py b/snapcraft_legacy/internal/common.py
index 6017b405..aacd99a5 100644
--- a/snapcraft_legacy/internal/common.py
+++ b/snapcraft_legacy/internal/common.py
@@ -34,14 +34,17 @@ from snaphelpers import SnapConfigOptions, SnapCtlError
from snapcraft_legacy.internal import errors
+# Get the path to the Nix store entry for Snapcraft at runtime
+drv = os.path.realpath(__file__).split("/")[3]
+
SNAPCRAFT_FILES = ["parts", "stage", "prime"]
-_DEFAULT_PLUGINDIR = os.path.join(sys.prefix, "share", "snapcraft", "plugins")
+_DEFAULT_PLUGINDIR = os.path.join(os.sep, "nix", "store", drv, "share", "snapcraft", "plugins")
_plugindir = _DEFAULT_PLUGINDIR
-_DEFAULT_SCHEMADIR = os.path.join(sys.prefix, "share", "snapcraft", "schema")
+_DEFAULT_SCHEMADIR = os.path.join(os.sep, "nix", "store", drv, "share", "snapcraft", "schema")
_schemadir = _DEFAULT_SCHEMADIR
-_DEFAULT_EXTENSIONSDIR = os.path.join(sys.prefix, "share", "snapcraft", "extensions")
+_DEFAULT_EXTENSIONSDIR = os.path.join(os.sep, "nix", "store", drv, "share", "snapcraft", "extensions")
_extensionsdir = _DEFAULT_EXTENSIONSDIR
-_DEFAULT_KEYRINGSDIR = os.path.join(sys.prefix, "share", "snapcraft", "keyrings")
+_DEFAULT_KEYRINGSDIR = os.path.join(os.sep, "nix", "store", drv, "share", "snapcraft", "keyrings")
_keyringsdir = _DEFAULT_KEYRINGSDIR
_DOCKERENV_FILE = "/.dockerenv"
+7 -8
View File
@@ -63,16 +63,15 @@ in stdenv.mkDerivation {
runHook postCheck
'';
meta = {
meta = with lib; {
description = "Sandboxed execution environment";
homepage = "https://github.com/solo5/solo5";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ ehmry ];
platforms = builtins.map ({arch, os}: "${arch}-${os}")
(lib.cartesianProductOfSets {
arch = [ "aarch64" "x86_64" ];
os = [ "freebsd" "genode" "linux" "openbsd" ];
});
license = licenses.isc;
maintainers = [ maintainers.ehmry ];
platforms = mapCartesianProduct ({ arch, os }: "${arch}-${os}") {
arch = [ "aarch64" "x86_64" ];
os = [ "freebsd" "genode" "linux" "openbsd" ];
};
};
}
+49
View File
@@ -0,0 +1,49 @@
{ lib
, stdenv
, fetchFromGitHub
, ninja
, cmake
, libpng
, libhwy
, lcms2
, giflib
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ssimulacra2";
version = "2.1";
src = fetchFromGitHub {
owner = "cloudinary";
repo = "ssimulacra2";
hash = "sha256-gOo8WCWMdXOSmny0mQSzCvHgURQTCNBFD4G4sxfmXik=";
rev = "tags/v${finalAttrs.version}";
};
nativeBuildInputs = [
ninja
cmake
];
buildInputs = [
libpng
libhwy
lcms2
giflib
];
sourceRoot = "${finalAttrs.src.name}/src";
installPhase = ''
runHook preInstall
install -m 755 -D ssimulacra2 -t $out/bin/
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/cloudinary/ssimulacra2";
maintainers = [ maintainers.viraptor ];
license = licenses.bsd3;
description = "Perceptual image comparison tool";
};
})
+3 -3
View File
@@ -10,14 +10,14 @@
buildGoModule rec {
pname = "symfony-cli";
version = "5.8.14";
vendorHash = "sha256-OBXurPjyB2/JCQBna+tk0p3+n8gPoNLXCppXkII3ZUc=";
version = "5.8.15";
vendorHash = "sha256-rkvQhZSoKZIl/gFgekLUelem2FGbRL9gp1LEzYN88Dc=";
src = fetchFromGitHub {
owner = "symfony-cli";
repo = "symfony-cli";
rev = "v${version}";
hash = "sha256-rwcULDbdYHZ1yFrGEGsJOZQG7Z29m0MOd79yalFIdkQ=";
hash = "sha256-HbBg2oCsogY3X4jgjknqwNe2bszXjylvE+h5/iyg2pM=";
};
ldflags = [
@@ -0,0 +1,29 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "taskchampion-sync-server";
version = "0.4.1-unstable-2024-04-08";
src = fetchFromGitHub {
owner = "GothenburgBitFactory";
repo = "taskchampion-sync-server";
rev = "31cb732f0697208ef9a8d325a79688612087185a";
fetchSubmodules = false;
sha256 = "sha256-CUgXJcrCOenbw9ZDFBody5FAvpT1dsZBojJk3wOv9U4=";
};
cargoHash = "sha256-TpShnVQ2eFNLXJzOTlWVaLqT56YkP4zCGCf3yVtNcvI=";
# cargo tests fail when checkType="release" (default)
checkType = "debug";
meta = {
description = "Sync server for Taskwarrior 3";
license = lib.licenses.mit;
homepage = "https://github.com/GothenburgBitFactory/taskchampion-sync-server";
maintainers = with lib.maintainers; [mlaradji];
mainProgram = "taskchampion-sync-server";
};
}
+83
View File
@@ -0,0 +1,83 @@
{
rustPlatform,
rustc,
cargo,
corrosion,
lib,
stdenv,
fetchFromGitHub,
cmake,
libuuid,
gnutls,
python3,
xdg-utils,
installShellFiles,
}:
stdenv.mkDerivation rec {
pname = "taskwarrior";
version = "3.0.0-unstable-2024-04-07";
src = fetchFromGitHub {
owner = "GothenburgBitFactory";
repo = "taskwarrior";
rev = "fd306712b85dda3ea89de4e617aebeb98b2ede80";
fetchSubmodules = true;
sha256 = "sha256-vzfHq/LHfnTx6CVGFCuO6W5aSqj1jVqldMdmyciSDDk=";
};
postPatch = ''
substituteInPlace src/commands/CmdNews.cpp \
--replace "xdg-open" "${lib.getBin xdg-utils}/bin/xdg-open"
'';
nativeBuildInputs = [
cmake
libuuid
python3
installShellFiles
corrosion
cargo
rustc
rustPlatform.cargoSetupHook
];
doCheck = true;
preCheck = ''
patchShebangs --build test
'';
checkTarget = "test";
cargoDeps = rustPlatform.fetchCargoTarball {
name = "${pname}-${version}-cargo-deps";
inherit src;
sourceRoot = src.name;
hash = "sha256-zQca/1tI/GUCekKhrg2iSL+h69SH6Ttsj3MqwDKj8HQ=";
};
cargoRoot = "./";
preConfigure = ''
export CMAKE_PREFIX_PATH="${corrosion}:$CMAKE_PREFIX_PATH"
'';
postInstall = ''
# ZSH is installed automatically from some reason, only bash and fish need
# manual installation
installShellCompletion --cmd task \
--bash $out/share/doc/task/scripts/bash/task.sh \
--fish $out/share/doc/task/scripts/fish/task.fish
rm -r $out/share/doc/task/scripts/bash
rm -r $out/share/doc/task/scripts/fish
# Install vim and neovim plugin
mkdir -p $out/share/vim-plugins
mv $out/share/doc/task/scripts/vim $out/share/vim-plugins/task
mkdir -p $out/share/nvim
ln -s $out/share/vim-plugins/task $out/share/nvim/site
'';
meta = with lib; {
description = "Highly flexible command-line tool to manage TODO lists";
homepage = "https://taskwarrior.org";
license = licenses.mit;
maintainers = with maintainers; [marcweber oxalica mlaradji];
mainProgram = "task";
platforms = platforms.unix;
};
}
+3 -4
View File
@@ -15,14 +15,13 @@ let
'');
in
builtins.listToAttrs (
map
texTest
(lib.attrsets.cartesianProductOfSets {
lib.mapCartesianProduct texTest
{
tex = [ "xelatex" "lualatex" ];
fonttype = [ "ttf" "otf" ];
package = [ "junicode" ];
file = [ ./test.tex ];
})
}
++
[
(texTest {
+6 -17
View File
@@ -2,29 +2,18 @@
stdenvNoCC.mkDerivation rec {
pname = "nasin-nanpa";
version = "2.5.1";
version = "3.1.0";
srcs = [
(fetchurl {
name = "nasin-nanpa.otf";
url = "https://github.com/ETBCOR/nasin-nanpa/releases/download/n${version}/nasin-nanpa-${version}.otf";
hash = "sha256-++uOrqFzQ6CB/OPEmBivpjMfAtFk3PSsCNpFBjOtGEg=";
})
(fetchurl {
name = "nasin-nanpa-lasina-kin.otf";
url = "https://github.com/ETBCOR/nasin-nanpa/releases/download/n${version}/nasin-nanpa-${version}-lasina-kin.otf";
hash = "sha256-4WIX74y2O4NaKi/JQrgTbOxlKDQKJ/F9wkQuoOdWuTI=";
})
];
src = fetchurl {
url = "https://github.com/ETBCOR/nasin-nanpa/releases/download/n${version}/nasin-nanpa-${version}.otf";
hash = "sha256-remTvvOt7kpvTdq9H8tFI2yU+BtqePXlDDLQv/jtETU=";
};
dontUnpack = true;
installPhase = ''
mkdir -p $out/share/fonts/opentype
for src in $srcs; do
file=$(stripHash $src)
cp $src $out/share/fonts/opentype/$file
done
cp $src $out/share/fonts/opentype/nasin-nanpa.otf
'';
meta = with lib; {
@@ -9,9 +9,8 @@ let
palette = [ "Frappe" "Latte" "Macchiato" "Mocha" ];
color = [ "Blue" "Dark" "Flamingo" "Green" "Lavender" "Light" "Maroon" "Mauve" "Peach" "Pink" "Red" "Rosewater" "Sapphire" "Sky" "Teal" "Yellow" ];
};
product = lib.attrsets.cartesianProductOfSets dimensions;
variantName = { palette, color }: (lib.strings.toLower palette) + color;
variants = map variantName product;
variants = lib.mapCartesianProduct variantName dimensions;
in
stdenvNoCC.mkDerivation rec {
pname = "catppuccin-cursors";
+1 -2
View File
@@ -7,14 +7,13 @@ let
thickness = [ "" "Slim_" ]; # Thick or slim edges.
handedness = [ "" "LH_" ]; # Right- or left-handed.
};
product = lib.cartesianProductOfSets dimensions;
variantName =
{ color, opacity, thickness, handedness }:
"${handedness}${opacity}${thickness}${color}";
variants =
# (The order of this list is already good looking enough to show in the
# meta.longDescription.)
map variantName product;
lib.mapCartesianProduct variantName dimensions;
in
stdenvNoCC.mkDerivation rec {
pname = "comixcursors";
+2 -2
View File
@@ -26,13 +26,13 @@ lib.checkListOfEnum "${pname}: theme tweaks" validTweaks tweaks
stdenvNoCC.mkDerivation
rec {
inherit pname;
version = "2024-04-01";
version = "2024-04-18";
src = fetchFromGitHub {
repo = "Orchis-theme";
owner = "vinceliuice";
rev = version;
hash = "sha256-gszyUZGWlgrBTQnaz6Ws7jzfTN5KAfX5SjVwmVrP9QE=";
hash = "sha256-Kvafbvw1q8F0+l47WshFHPfZEQhFXPPXuI0RjBJnP4s=";
};
nativeBuildInputs = [ gtk3 sassc ];
@@ -26,6 +26,9 @@
# The default `crystal build` options can be overridden with { foo.options = [ "--optionname" ]; }
, crystalBinaries ? { }
, enableParallelBuilding ? true
# Copy all shards dependencies instead of symlinking and add write permissions
# to make environment more local-like
, copyShardDeps ? false
, ...
}@args:
@@ -78,7 +81,8 @@ stdenv.mkDerivation (mkDerivationArgs // {
++ lib.optional (lockFile != null) "cp ${lockFile} ./shard.lock"
++ lib.optionals (shardsFile != null) [
"test -e lib || mkdir lib"
"for d in ${crystalLib}/*; do ln -s $d lib/; done"
(if copyShardDeps then "for d in ${crystalLib}/*; do cp -r $d/ lib/; done; chmod -R +w lib/"
else "for d in ${crystalLib}/*; do ln -s $d lib/; done")
"cp shard.lock lib/.shards.info"
]
++ [ "runHook postConfigure" ]
@@ -1,22 +1,22 @@
# Generated by update.sh script
{
"version" = "24.0.0";
"version" = "24.0.1";
"hashes" = {
"aarch64-linux" = {
sha256 = "1hz56nvl7av3xvwm7bxrzyri289h6hbawxsacn4zr7nm1snjn7i0";
url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.0/graalpy-community-24.0.0-linux-aarch64.tar.gz";
sha256 = "09zrp1l80294p4dzkfcvabs7l2hbs6500j1cibhdphcghjwip2l7";
url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.1/graalpy-community-24.0.1-linux-aarch64.tar.gz";
};
"x86_64-linux" = {
sha256 = "1ngqwrx1bc22jm12gmwqmqjfhhccpim1pai6885vg5xqsvc94y57";
url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.0/graalpy-community-24.0.0-linux-amd64.tar.gz";
sha256 = "06m4dw0mnhlnm764xzip3nxzzs8yxbbps2f1cs75zfyakmhpa5c2";
url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.1/graalpy-community-24.0.1-linux-amd64.tar.gz";
};
"x86_64-darwin" = {
sha256 = "07bh2fgk3l7vpws91ah48dsbrvvlq8wzfq88wq6ywilbikmnp0bw";
url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.0/graalpy-community-24.0.0-macos-amd64.tar.gz";
sha256 = "0x36l03fqkrjdazv4q50dpilx8y0jr27wsgvy8wqbdzjvbcf7rd4";
url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.1/graalpy-community-24.0.1-macos-amd64.tar.gz";
};
"aarch64-darwin" = {
sha256 = "00kljb24835l51jrnzdfblbhf2psdfw3wg00rllcdhpmiji40mbz";
url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.0/graalpy-community-24.0.0-macos-aarch64.tar.gz";
sha256 = "1mgpspjxs1s8rzsyw760xlm21zlx7gflgqvcslw3xfq59bf76npw";
url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.1/graalpy-community-24.0.1-macos-aarch64.tar.gz";
};
};
}
+4 -5
View File
@@ -15,12 +15,12 @@
ocamlPackages.buildDunePackage rec {
pname = "ligo";
version = "1.4.0";
version = "1.6.0";
src = fetchFromGitLab {
owner = "ligolang";
repo = "ligo";
rev = version;
sha256 = "sha256-N2RkeKJ+lEyNJwpmF5sORmOkDhNmTYRYAgvyR7Pc5EI=";
hash = "sha256-ZPHOgozuUij9+4YXZTnn1koddQEQZe/yrpb+OPHO+nA=";
fetchSubmodules = true;
};
@@ -30,8 +30,6 @@ ocamlPackages.buildDunePackage rec {
# This is a hack to work around the hack used in the dune files
OPAM_SWITCH_PREFIX = "${tezos-rust-libs}";
strictDeps = true;
nativeBuildInputs = [
ocaml-crunch
git
@@ -98,7 +96,7 @@ ocamlPackages.buildDunePackage rec {
bls12-381
bls12-381-signature
ptime
mtime_1
mtime
lwt_log
secp256k1-internal
resto
@@ -112,6 +110,7 @@ ocamlPackages.buildDunePackage rec {
simple-diff
seqes
stdint
tezt
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
];
@@ -5,13 +5,14 @@ mkCoqDerivation {
owner = "fblanqui";
inherit version;
defaultVersion = with lib.versions; lib.switch coq.version [
{case = range "8.14" "8.18"; out = "1.8.4"; }
{case = range "8.14" "8.19"; out = "1.8.5"; }
{case = range "8.12" "8.16"; out = "1.8.2"; }
{case = range "8.10" "8.11"; out = "1.7.0"; }
{case = range "8.8" "8.9"; out = "1.6.0"; }
{case = range "8.6" "8.7"; out = "1.4.0"; }
] null;
release."1.8.5".sha256 = "sha256-zKAyj6rKAasDF+iKExmpVHMe2WwgAwv2j1mmiVAl7ys=";
release."1.8.4".sha256 = "sha256-WlRiaLgnFFW5AY0z6EzdP1mevNe1GHsik6wULJLN4k0=";
release."1.8.3".sha256 = "sha256-mMUzIorkQ6WWQBJLk1ioUNwAdDdGHJyhenIvkAjALVU=";
release."1.8.2".sha256 = "sha256:1gvx5cxm582793vxzrvsmhxif7px18h9xsb2jljy2gkphdmsnpqj";
@@ -1,11 +1,9 @@
{
cudaVersion,
lib,
nvccCompatibilities,
cudaVersion,
pkgs,
overrideCC,
stdenv,
wrapCCWith,
stdenvAdapters,
}:
@@ -1,5 +1,7 @@
{ hostPlatform, lib }:
{ lib, stdenv }:
let
inherit (stdenv) hostPlatform;
# Samples are built around the CUDA Toolkit, which is not available for
# aarch64. Check for both CUDA version and platform.
platformIsSupported = hostPlatform.isx86_64 && hostPlatform.isLinux;
@@ -76,7 +76,7 @@ in
# CUTENSOR_ROOT is double escaped
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace "\''${CUTENSOR_ROOT}/include" "${cutensor.dev}/include"
--replace-fail "\''${CUTENSOR_ROOT}/include" "${cutensor.dev}/include"
'';
CUTENSOR_ROOT = cutensor;
@@ -1,7 +1,7 @@
{
cudaVersion,
hostPlatform,
lib,
stdenv,
}:
let
cudaVersionToHash = {
@@ -23,6 +23,8 @@ let
"12.3" = "sha256-fjVp0G6uRCWxsfe+gOwWTN+esZfk0O5uxS623u0REAk=";
};
inherit (stdenv) hostPlatform;
# Samples are built around the CUDA Toolkit, which is not available for
# aarch64. Check for both CUDA version and platform.
cudaVersionIsSupported = cudaVersionToHash ? ${cudaVersion};
@@ -11,6 +11,7 @@
hash,
lib,
pkg-config,
stdenv,
}:
let
inherit (lib) lists strings;
@@ -63,7 +64,7 @@ backendStdenv.mkDerivation (finalAttrs: {
installPhase = ''
runHook preInstall
install -Dm755 -t $out/bin bin/${backendStdenv.hostPlatform.parsed.cpu.name}/${backendStdenv.hostPlatform.parsed.kernel.name}/release/*
install -Dm755 -t $out/bin bin/${stdenv.hostPlatform.parsed.cpu.name}/${stdenv.hostPlatform.parsed.kernel.name}/release/*
runHook postInstall
'';
+271 -185
View File
@@ -1,122 +1,178 @@
{
cudaVersion,
lib,
addDriverRunpath,
}:
let
inherit (lib) attrsets lists strings;
# cudaVersionOlder : Version -> Boolean
cudaVersionOlder = strings.versionOlder cudaVersion;
# cudaVersionAtLeast : Version -> Boolean
cudaVersionAtLeast = strings.versionAtLeast cudaVersion;
filterAndCreateOverrides =
createOverrideAttrs: final: prev:
let
# It is imperative that we use `final.callPackage` to perform overrides,
# so the final package set is available to the override functions.
inherit (final) callPackage;
addBuildInputs =
drv: buildInputs:
drv.overrideAttrs (prevAttrs: {
buildInputs = prevAttrs.buildInputs ++ buildInputs;
});
in
# NOTE: Filter out attributes that are not present in the previous version of
# the package set. This is necessary to prevent the appearance of attributes
# like `cuda_nvcc` in `cudaPackages_10_0, which predates redistributables.
final: prev:
attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
libcufile = prev.libcufile.overrideAttrs (prevAttrs: {
buildInputs = prevAttrs.buildInputs ++ [
final.libcublas.lib
final.pkgs.numactl
final.pkgs.rdma-core
# NOTE(@connorbaker): We MUST use `lib` from `prev` because the attribute
# names CAN NOT depend on `final`.
inherit (prev.lib.attrsets) filterAttrs mapAttrs;
inherit (prev.lib.trivial) pipe;
# NOTE: Filter out attributes that are not present in the previous version of
# the package set. This is necessary to prevent the appearance of attributes
# like `cuda_nvcc` in `cudaPackages_10_0, which predates redistributables.
filterOutNewAttrs = filterAttrs (name: _: prev ? ${name});
# Apply callPackage to each attribute value, yielding a value to be passed
# to overrideAttrs.
callPackageThenOverrideAttrs = mapAttrs (
name: value: prev.${name}.overrideAttrs (callPackage value { })
);
in
pipe createOverrideAttrs [
filterOutNewAttrs
callPackageThenOverrideAttrs
];
# Before 11.7 libcufile depends on itself for some reason.
autoPatchelfIgnoreMissingDeps =
prevAttrs.autoPatchelfIgnoreMissingDeps
++ lists.optionals (cudaVersionOlder "11.7") [ "libcufile.so.0" ];
});
in
# Each attribute name is the name of an existing package in the previous version
# of the package set.
# The value is a function (to be provided to callPackage), which yields a value
# to be provided to overrideAttrs. This allows us to override the attributes of
# a package without losing access to the fixed point of the package set --
# especially useful given that some packages may depend on each other!
filterAndCreateOverrides {
libcufile =
{
cudaOlder,
lib,
libcublas,
numactl,
rdma-core,
}:
prevAttrs: {
buildInputs = prevAttrs.buildInputs ++ [
libcublas.lib
numactl
rdma-core
];
# Before 11.7 libcufile depends on itself for some reason.
autoPatchelfIgnoreMissingDeps =
prevAttrs.autoPatchelfIgnoreMissingDeps
++ lib.lists.optionals (cudaOlder "11.7") [ "libcufile.so.0" ];
};
libcusolver = addBuildInputs prev.libcusolver (
# Always depends on this
[ final.libcublas.lib ]
# Dependency from 12.0 and on
++ lists.optionals (cudaVersionAtLeast "12.0") [ final.libnvjitlink.lib ]
# Dependency from 12.1 and on
++ lists.optionals (cudaVersionAtLeast "12.1") [ final.libcusparse.lib ]
);
libcusolver =
{
cudaAtLeast,
lib,
libcublas,
libcusparse ? null,
libnvjitlink ? null,
}:
prevAttrs: {
buildInputs =
prevAttrs.buildInputs
# Always depends on this
++ [ libcublas.lib ]
# Dependency from 12.0 and on
++ lib.lists.optionals (cudaAtLeast "12.0") [ libnvjitlink.lib ]
# Dependency from 12.1 and on
++ lib.lists.optionals (cudaAtLeast "12.1") [ libcusparse.lib ];
libcusparse = addBuildInputs prev.libcusparse (
lists.optionals (cudaVersionAtLeast "12.0") [ final.libnvjitlink.lib ]
);
brokenConditions = prevAttrs.brokenConditions // {
"libnvjitlink missing (CUDA >= 12.0)" =
!(cudaAtLeast "12.0" -> (libnvjitlink != null && libnvjitlink.lib != null));
"libcusparse missing (CUDA >= 12.1)" =
!(cudaAtLeast "12.1" -> (libcusparse != null && libcusparse.lib != null));
};
};
cuda_cudart = prev.cuda_cudart.overrideAttrs (prevAttrs: {
# Remove once cuda-find-redist-features has a special case for libcuda
outputs =
prevAttrs.outputs
++ lists.optionals (!(builtins.elem "stubs" prevAttrs.outputs)) [ "stubs" ];
libcusparse =
{
cudaAtLeast,
lib,
libnvjitlink ? null,
}:
prevAttrs: {
buildInputs =
prevAttrs.buildInputs
# Dependency from 12.0 and on
++ lib.lists.optionals (cudaAtLeast "12.0") [ libnvjitlink.lib ];
allowFHSReferences = false;
brokenConditions = prevAttrs.brokenConditions // {
"libnvjitlink missing (CUDA >= 12.0)" =
!(cudaAtLeast "12.0" -> (libnvjitlink != null && libnvjitlink.lib != null));
};
};
# The libcuda stub's pkg-config doesn't follow the general pattern:
postPatch =
prevAttrs.postPatch or ""
+ ''
while IFS= read -r -d $'\0' path ; do
sed -i \
-e "s|^libdir\s*=.*/lib\$|libdir=''${!outputLib}/lib/stubs|" \
-e "s|^Libs\s*:\(.*\)\$|Libs: \1 -Wl,-rpath,${addDriverRunpath.driverLink}/lib|" \
"$path"
done < <(find -iname 'cuda-*.pc' -print0)
''
+ ''
# TODO(@connorbaker): cuda_cudart.dev depends on crt/host_config.h, which is from
# cuda_nvcc.dev. It would be nice to be able to encode that.
cuda_cudart =
{ addDriverRunpath, lib }:
prevAttrs: {
# Remove once cuda-find-redist-features has a special case for libcuda
outputs =
prevAttrs.outputs
++ lib.lists.optionals (!(builtins.elem "stubs" prevAttrs.outputs)) [ "stubs" ];
allowFHSReferences = false;
# The libcuda stub's pkg-config doesn't follow the general pattern:
postPatch =
prevAttrs.postPatch or ""
+ ''
while IFS= read -r -d $'\0' path; do
sed -i \
-e "s|^libdir\s*=.*/lib\$|libdir=''${!outputLib}/lib/stubs|" \
-e "s|^Libs\s*:\(.*\)\$|Libs: \1 -Wl,-rpath,${addDriverRunpath.driverLink}/lib|" \
"$path"
done < <(find -iname 'cuda-*.pc' -print0)
''
# Namelink may not be enough, add a soname.
# Cf. https://gitlab.kitware.com/cmake/cmake/-/issues/25536
if [[ -f lib/stubs/libcuda.so && ! -f lib/stubs/libcuda.so.1 ]] ; then
ln -s libcuda.so lib/stubs/libcuda.so.1
fi
'';
+ ''
if [[ -f lib/stubs/libcuda.so && ! -f lib/stubs/libcuda.so.1 ]]; then
ln -s libcuda.so lib/stubs/libcuda.so.1
fi
'';
postFixup =
prevAttrs.postFixup or ""
+ ''
moveToOutput lib/stubs "$stubs"
ln -s "$stubs"/lib/stubs/* "$stubs"/lib/
ln -s "$stubs"/lib/stubs "''${!outputLib}/lib/stubs"
'';
});
cuda_compat = prev.cuda_compat.overrideAttrs (prevAttrs: {
autoPatchelfIgnoreMissingDeps = prevAttrs.autoPatchelfIgnoreMissingDeps ++ [
"libnvrm_gpu.so"
"libnvrm_mem.so"
"libnvdla_runtime.so"
];
# `cuda_compat` only works on aarch64-linux, and only when building for Jetson devices.
badPlatformsConditions = prevAttrs.badPlatformsConditions // {
"Trying to use cuda_compat on aarch64-linux targeting non-Jetson devices" =
!final.flags.isJetsonBuild;
postFixup =
prevAttrs.postFixup or ""
+ ''
moveToOutput lib/stubs "$stubs"
ln -s "$stubs"/lib/stubs/* "$stubs"/lib/
ln -s "$stubs"/lib/stubs "''${!outputLib}/lib/stubs"
'';
};
});
cuda_gdb = addBuildInputs prev.cuda_gdb (
# x86_64 only needs gmp from 12.0 and on
lists.optionals (cudaVersionAtLeast "12.0") [ final.pkgs.gmp ]
);
cuda_nvcc = prev.cuda_nvcc.overrideAttrs (
oldAttrs:
let
# This replicates the logic in stdenvAdapters.useLibsFrom, except we use
# gcc from pkgsHostTarget and not from buildPackages.
ccForLibs-wrapper = final.pkgs.stdenv.cc;
gccMajorVersion = final.nvccCompatibilities.${cudaVersion}.gccMaxMajorVersion;
cc = final.pkgs.wrapCCWith {
cc = final.pkgs."gcc${gccMajorVersion}".cc;
useCcForLibs = true;
gccForLibs = ccForLibs-wrapper.cc;
cuda_compat =
{ flags, lib }:
prevAttrs: {
autoPatchelfIgnoreMissingDeps = prevAttrs.autoPatchelfIgnoreMissingDeps ++ [
"libnvrm_gpu.so"
"libnvrm_mem.so"
"libnvdla_runtime.so"
];
# `cuda_compat` only works on aarch64-linux, and only when building for Jetson devices.
badPlatformsConditions = prevAttrs.badPlatformsConditions // {
"Trying to use cuda_compat on aarch64-linux targeting non-Jetson devices" = !flags.isJetsonBuild;
};
in
};
cuda_gdb =
{
cudaAtLeast,
gmp,
lib,
}:
prevAttrs: {
buildInputs =
prevAttrs.buildInputs
# x86_64 only needs gmp from 12.0 and on
++ lib.lists.optionals (cudaAtLeast "12.0") [ gmp ];
};
outputs = oldAttrs.outputs ++ lists.optionals (!(builtins.elem "lib" oldAttrs.outputs)) [ "lib" ];
cuda_nvcc =
{
backendStdenv,
cuda_cudart,
lib,
setupCudaHook,
}:
prevAttrs: {
# Patch the nvcc.profile.
# Syntax:
# - `=` for assignment,
@@ -131,38 +187,37 @@ attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
# backend-stdenv.nix
postPatch =
(oldAttrs.postPatch or "")
(prevAttrs.postPatch or "")
+ ''
substituteInPlace bin/nvcc.profile \
--replace \
'$(TOP)/lib' \
"''${!outputLib}/lib" \
--replace \
--replace-fail \
'$(TOP)/$(_NVVM_BRANCH_)' \
"''${!outputBin}/nvvm" \
--replace \
--replace-fail \
'$(TOP)/$(_TARGET_DIR_)/include' \
"''${!outputDev}/include"
cat << EOF >> bin/nvcc.profile
# Fix a compatible backend compiler
PATH += ${lib.getBin cc}/bin:
PATH += "${backendStdenv.cc}/bin":
# Expose the split-out nvvm
LIBRARIES =+ -L''${!outputBin}/nvvm/lib
INCLUDES =+ -I''${!outputBin}/nvvm/include
# Expose cudart and the libcuda stubs
LIBRARIES =+ -L$static/lib" "-L${final.cuda_cudart.lib}/lib -L${final.cuda_cudart.lib}/lib/stubs
INCLUDES =+ -I${final.cuda_cudart.dev}/include
LIBRARIES =+ "-L''${!outputBin}/nvvm/lib"
INCLUDES =+ "-I''${!outputBin}/nvvm/include"
EOF
'';
propagatedBuildInputs = [ final.setupCudaHook ];
# NOTE(@connorbaker):
# Though it might seem odd or counter-intuitive to add the setup hook to `propagatedBuildInputs` instead of
# `propagatedNativeBuildInputs`, it is necessary! If you move the setup hook from `propagatedBuildInputs` to
# `propagatedNativeBuildInputs`, it stops being propagated to downstream packages during their build because
# setup hooks in `propagatedNativeBuildInputs` are not designed to affect the runtime or build environment of
# dependencies; they are only meant to affect the build environment of the package that directly includes them.
propagatedBuildInputs = (prevAttrs.propagatedBuildInputs or [ ]) ++ [ setupCudaHook ];
postInstall =
(oldAttrs.postInstall or "")
(prevAttrs.postInstall or "")
+ ''
moveToOutput "nvvm" "''${!outputBin}"
'';
@@ -170,48 +225,77 @@ attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
# The nvcc and cicc binaries contain hard-coded references to /usr
allowFHSReferences = true;
meta = (oldAttrs.meta or { }) // {
meta = (prevAttrs.meta or { }) // {
mainProgram = "nvcc";
};
}
);
};
cuda_nvprof = prev.cuda_nvprof.overrideAttrs (prevAttrs: {
buildInputs = prevAttrs.buildInputs ++ [ final.cuda_cupti.lib ];
});
cuda_nvprof =
{ cuda_cupti }: prevAttrs: { buildInputs = prevAttrs.buildInputs ++ [ cuda_cupti.lib ]; };
cuda_demo_suite = addBuildInputs prev.cuda_demo_suite [
final.pkgs.freeglut
final.pkgs.libGLU
final.pkgs.libglvnd
final.pkgs.mesa
final.libcufft.lib
final.libcurand.lib
];
cuda_demo_suite =
{
freeglut,
libcufft,
libcurand,
libGLU,
libglvnd,
mesa,
}:
prevAttrs: {
buildInputs = prevAttrs.buildInputs ++ [
freeglut
libcufft.lib
libcurand.lib
libGLU
libglvnd
mesa
];
};
nsight_compute = prev.nsight_compute.overrideAttrs (prevAttrs: {
nativeBuildInputs =
prevAttrs.nativeBuildInputs
++ (
if (strings.versionOlder prev.nsight_compute.version "2022.2.0") then
[ final.pkgs.qt5.wrapQtAppsHook ]
else
[ final.pkgs.qt6.wrapQtAppsHook ]
);
buildInputs =
prevAttrs.buildInputs
++ (
if (strings.versionOlder prev.nsight_compute.version "2022.2.0") then
[ final.pkgs.qt5.qtwebview ]
else
[ final.pkgs.qt6.qtwebview ]
);
});
nsight_systems = prev.nsight_systems.overrideAttrs (
nsight_compute =
{
lib,
qt5 ? null,
qt6 ? null,
}:
prevAttrs:
let
qt = if lib.versionOlder prevAttrs.version "2022.4.2.1" then final.pkgs.qt5 else final.pkgs.qt6;
inherit (lib.strings) versionOlder versionAtLeast;
inherit (prevAttrs) version;
qt = if versionOlder version "2022.2.0" then qt5 else qt6;
inherit (qt) wrapQtAppsHook qtwebview;
in
{
nativeBuildInputs = prevAttrs.nativeBuildInputs ++ [ wrapQtAppsHook ];
buildInputs = prevAttrs.buildInputs ++ [ qtwebview ];
brokenConditions = prevAttrs.brokenConditions // {
"Qt 5 missing (<2022.2.0)" = !(versionOlder version "2022.2.0" -> qt5 != null);
"Qt 6 missing (>=2022.2.0)" = !(versionAtLeast version "2022.2.0" -> qt6 != null);
};
};
nsight_systems =
{
cuda_cudart,
cudaOlder,
gst_all_1,
lib,
nss,
numactl,
pulseaudio,
qt5 ? null,
qt6 ? null,
rdma-core,
ucx,
wayland,
xorg,
}:
prevAttrs:
let
inherit (lib.strings) versionOlder versionAtLeast;
inherit (prevAttrs) version;
qt = if lib.strings.versionOlder prevAttrs.version "2022.4.2.1" then qt5 else qt6;
qtwayland =
if lib.versions.major qt.qtbase.version == "5" then
lib.getBin qt.qtwayland
@@ -223,55 +307,57 @@ attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
# An ad hoc replacement for
# https://github.com/ConnorBaker/cuda-redist-find-features/issues/11
env.rmPatterns = toString [
"nsight-systems/*/*/lib{arrow,jpeg}*"
"nsight-systems/*/*/lib{ssl,ssh,crypto}*"
"nsight-systems/*/*/libboost*"
"nsight-systems/*/*/libexec"
"nsight-systems/*/*/libQt*"
"nsight-systems/*/*/libstdc*"
"nsight-systems/*/*/libboost*"
"nsight-systems/*/*/lib{ssl,ssh,crypto}*"
"nsight-systems/*/*/lib{arrow,jpeg}*"
"nsight-systems/*/*/Mesa"
"nsight-systems/*/*/python/bin/python"
"nsight-systems/*/*/libexec"
"nsight-systems/*/*/Plugins"
"nsight-systems/*/*/python/bin/python"
];
postPatch =
prevAttrs.postPatch or ""
+ ''
for path in $rmPatterns ; do
for path in $rmPatterns; do
rm -r "$path"
done
'';
nativeBuildInputs = prevAttrs.nativeBuildInputs ++ [ qt.wrapQtAppsHook ];
buildInputs = prevAttrs.buildInputs ++ [
final.cuda_cudart.stubs
final.pkgs.alsa-lib
final.pkgs.boost178
final.pkgs.e2fsprogs
final.pkgs.gst_all_1.gst-plugins-base
final.pkgs.gst_all_1.gstreamer
final.pkgs.nss
final.pkgs.numactl
final.pkgs.pulseaudio
final.pkgs.rdma-core
final.pkgs.ucx
final.pkgs.wayland
final.pkgs.xorg.libXcursor
final.pkgs.xorg.libXdamage
final.pkgs.xorg.libXrandr
final.pkgs.xorg.libXtst
qt.qtbase
(qt.qtdeclarative or qt.full)
(qt.qtsvg or qt.full)
cuda_cudart.stubs
gst_all_1.gst-plugins-base
gst_all_1.gstreamer
nss
numactl
pulseaudio
qt.qtbase
qtWaylandPlugins
rdma-core
ucx
wayland
xorg.libXcursor
xorg.libXdamage
xorg.libXrandr
xorg.libXtst
];
# Older releases require boost 1.70 deprecated in Nixpkgs
meta.broken = prevAttrs.meta.broken or false || lib.versionOlder final.cudaVersion "11.8";
}
);
brokenConditions = prevAttrs.brokenConditions // {
# Older releases require boost 1.70, which is deprecated in Nixpkgs
"CUDA too old (<11.8)" = cudaOlder "11.8";
"Qt 5 missing (<2022.4.2.1)" = !(versionOlder version "2022.4.2.1" -> qt5 != null);
"Qt 6 missing (>=2022.4.2.1)" = !(versionAtLeast version "2022.4.2.1" -> qt6 != null);
};
};
nvidia_driver = prev.nvidia_driver.overrideAttrs {
# No need to support this package as we have drivers already
# in linuxPackages.
meta.broken = true;
};
nvidia_driver =
{ }:
prevAttrs: {
brokenConditions = prevAttrs.brokenConditions // {
"Package is not supported; use drivers from linuxPackages" = true;
};
};
}
@@ -15,9 +15,9 @@
{
cudaVersion,
flags,
hostPlatform,
lib,
mkVersionedPackageName,
stdenv,
}:
let
inherit (lib)
@@ -29,6 +29,8 @@ let
trivial
;
inherit (stdenv) hostPlatform;
redistName = "cutensor";
pname = "libcutensor";
+12 -1
View File
@@ -7,7 +7,7 @@
cudaForwardCompat ? (config.cudaForwardCompat or true),
lib,
cudaVersion,
hostPlatform,
stdenv,
# gpus :: List Gpu
gpus,
}:
@@ -20,6 +20,8 @@ let
trivial
;
inherit (stdenv) hostPlatform;
# Flags are determined based on your CUDA toolkit by default. You may benefit
# from improved performance, reduced file size, or greater hardware support by
# passing a configuration based on your specific GPU environment.
@@ -207,6 +209,11 @@ let
# E.g. "-gencode=arch=compute_75,code=sm_75 ... -gencode=arch=compute_86,code=compute_86"
gencodeString = strings.concatStringsSep " " gencode;
# cmakeCudaArchitecturesString :: String
# A semicolon-separated string of CUDA capabilities without dots, suitable for passing to CMake.
# E.g. "75;86"
cmakeCudaArchitecturesString = strings.concatMapStringsSep ";" dropDot cudaCapabilities;
# Jetson devices cannot be targeted by the same binaries which target non-Jetson devices. While
# NVIDIA provides both `linux-aarch64` and `linux-sbsa` packages, which both target `aarch64`,
# they are built with different settings and cannot be mixed.
@@ -270,6 +277,8 @@ assert
];
gencodeString = "-gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_86,code=compute_86";
cmakeCudaArchitecturesString = "75;86";
isJetsonBuild = false;
};
actual = formatCapabilities {
@@ -339,6 +348,8 @@ assert
];
gencodeString = "-gencode=arch=compute_62,code=sm_62 -gencode=arch=compute_72,code=sm_72 -gencode=arch=compute_72,code=compute_72";
cmakeCudaArchitecturesString = "62;72";
isJetsonBuild = true;
};
actual = formatCapabilities {
@@ -10,7 +10,6 @@
markForCudatoolkitRootHook,
flags,
stdenv,
hostPlatform,
# Builder-specific arguments
# Short package name (e.g., "cuda_cccl")
# pname : String
@@ -40,6 +39,8 @@ let
sourceTypes
;
inherit (stdenv) hostPlatform;
# Get the redist architectures for which package provides distributables.
# These are used by meta.platforms.
supportedRedistArchs = builtins.attrNames featureRelease;
@@ -48,7 +49,7 @@ let
# It is `"unsupported"` if the redistributable is not supported on the target platform.
redistArch = flags.getRedistArch hostPlatform.system;
sourceMatchesHost = flags.getNixSystem redistArch == stdenv.hostPlatform.system;
sourceMatchesHost = flags.getNixSystem redistArch == hostPlatform.system;
in
backendStdenv.mkDerivation (finalAttrs: {
# NOTE: Even though there's no actual buildPhase going on here, the derivations of the
@@ -127,7 +128,18 @@ backendStdenv.mkDerivation (finalAttrs: {
# brokenConditions :: AttrSet Bool
# Sets `meta.broken = true` if any of the conditions are true.
# Example: Broken on a specific version of CUDA or when a dependency has a specific version.
brokenConditions = { };
brokenConditions = {
# Unclear how this is handled by Nix internals.
"Duplicate entries in outputs" = finalAttrs.outputs != lists.unique finalAttrs.outputs;
# Typically this results in the static output being empty, as all libraries are moved
# back to the lib output.
"lib output follows static output" =
let
libIndex = lists.findFirstIndex (x: x == "lib") null finalAttrs.outputs;
staticIndex = lists.findFirstIndex (x: x == "static") null finalAttrs.outputs;
in
libIndex != null && staticIndex != null && libIndex > staticIndex;
};
# badPlatformsConditions :: AttrSet Bool
# Sets `meta.badPlatforms = meta.platforms` if any of the conditions are true.
@@ -137,44 +149,43 @@ backendStdenv.mkDerivation (finalAttrs: {
};
# src :: Optional Derivation
src = trivial.pipe redistArch [
# If redistArch doesn't exist in redistribRelease, return null.
(redistArch: redistribRelease.${redistArch} or null)
# If the release is non-null, fetch the source; otherwise, return null.
(trivial.mapNullable (
{ relative_path, sha256, ... }:
fetchurl {
url = "https://developer.download.nvidia.com/compute/${redistName}/redist/${relative_path}";
inherit sha256;
}
))
];
# Handle the pkg-config files:
# 1. No FHS
# 2. Location expected by the pkg-config wrapper
# 3. Generate unversioned names too
postPatch = ''
for path in pkg-config pkgconfig ; do
[[ -d "$path" ]] || continue
mkdir -p share/pkgconfig
mv "$path"/* share/pkgconfig/
rmdir "$path"
done
for pc in share/pkgconfig/*.pc ; do
sed -i \
-e "s|^cudaroot\s*=.*\$|cudaroot=''${!outputDev}|" \
-e "s|^libdir\s*=.*/lib\$|libdir=''${!outputLib}/lib|" \
-e "s|^includedir\s*=.*/include\$|includedir=''${!outputDev}/include|" \
"$pc"
done
# If redistArch doesn't exist in redistribRelease, return null.
src = trivial.mapNullable (
{ relative_path, sha256, ... }:
fetchurl {
url = "https://developer.download.nvidia.com/compute/${redistName}/redist/${relative_path}";
inherit sha256;
}
) (redistribRelease.${redistArch} or null);
postPatch =
# Pkg-config's setup hook expects configuration files in $out/share/pkgconfig
''
for path in pkg-config pkgconfig; do
[[ -d "$path" ]] || continue
mkdir -p share/pkgconfig
mv "$path"/* share/pkgconfig/
rmdir "$path"
done
''
# Rewrite FHS paths with store paths
# NOTE: output* fall back to out if the corresponding output isn't defined.
+ ''
for pc in share/pkgconfig/*.pc; do
sed -i \
-e "s|^cudaroot\s*=.*\$|cudaroot=''${!outputDev}|" \
-e "s|^libdir\s*=.*/lib\$|libdir=''${!outputLib}/lib|" \
-e "s|^includedir\s*=.*/include\$|includedir=''${!outputDev}/include|" \
"$pc"
done
''
# Generate unversioned names.
# E.g. cuda-11.8.pc -> cuda.pc
for pc in share/pkgconfig/*-"$majorMinorVersion.pc" ; do
ln -s "$(basename "$pc")" "''${pc%-$majorMinorVersion.pc}".pc
done
'';
+ ''
for pc in share/pkgconfig/*-"$majorMinorVersion.pc"; do
ln -s "$(basename "$pc")" "''${pc%-$majorMinorVersion.pc}".pc
done
'';
env.majorMinorVersion = cudaMajorMinorVersion;
@@ -233,7 +244,7 @@ backendStdenv.mkDerivation (finalAttrs: {
# Handle the existence of libPath, which requires us to re-arrange the lib directory
+ strings.optionalString (libPath != null) ''
full_lib_path="lib/${libPath}"
if [[ ! -d "$full_lib_path" ]] ; then
if [[ ! -d "$full_lib_path" ]]; then
echo "${finalAttrs.pname}: '$full_lib_path' does not exist, only found:" >&2
find lib/ -mindepth 1 -maxdepth 1 >&2
echo "This release might not support your CUDA version" >&2
@@ -264,9 +275,9 @@ backendStdenv.mkDerivation (finalAttrs: {
postInstallCheck = ''
echo "Executing postInstallCheck"
if [[ -z "''${allowFHSReferences-}" ]] ; then
if [[ -z "''${allowFHSReferences-}" ]]; then
mapfile -t outputPaths < <(for o in $(getAllOutputNames); do echo "''${!o}"; done)
if grep --max-count=5 --recursive --exclude=LICENSE /usr/ "''${outputPaths[@]}" ; then
if grep --max-count=5 --recursive --exclude=LICENSE /usr/ "''${outputPaths[@]}"; then
echo "Detected references to /usr" >&2
exit 1
fi
@@ -3,7 +3,7 @@
lib,
cudaVersion,
flags,
hostPlatform,
stdenv,
# Expected to be passed by the caller
mkVersionedPackageName,
# pname :: String
@@ -40,6 +40,8 @@ let
strings
;
inherit (stdenv) hostPlatform;
evaluatedModules = modules.evalModules {
modules = [
../modules
+16 -14
View File
@@ -17,9 +17,10 @@ let
cuda_cccl
cuda_cudart
cuda_nvcc
cudaAtLeast
cudaFlags
cudaOlder
cudatoolkit
cudaVersion
;
in
backendStdenv.mkDerivation (finalAttrs: {
@@ -33,6 +34,7 @@ backendStdenv.mkDerivation (finalAttrs: {
hash = "sha256-IF2tILwW8XnzSmfn7N1CO7jXL95gUp02guIW5n1eaig=";
};
__structuredAttrs = true;
strictDeps = true;
outputs = [
@@ -46,12 +48,12 @@ backendStdenv.mkDerivation (finalAttrs: {
autoAddDriverRunpath
python3
]
++ lib.optionals (lib.versionOlder cudaVersion "11.4") [ cudatoolkit ]
++ lib.optionals (lib.versionAtLeast cudaVersion "11.4") [ cuda_nvcc ];
++ lib.optionals (cudaOlder "11.4") [ cudatoolkit ]
++ lib.optionals (cudaAtLeast "11.4") [ cuda_nvcc ];
buildInputs =
lib.optionals (lib.versionOlder cudaVersion "11.4") [ cudatoolkit ]
++ lib.optionals (lib.versionAtLeast cudaVersion "11.4") [
lib.optionals (cudaOlder "11.4") [ cudatoolkit ]
++ lib.optionals (cudaAtLeast "11.4") [
cuda_nvcc.dev # crt/host_config.h
cuda_cudart
]
@@ -59,25 +61,25 @@ backendStdenv.mkDerivation (finalAttrs: {
# against other version, like below, it's important that we use the same format. Otherwise,
# we'll get incorrect results.
# For example, lib.versionAtLeast "12.0" "12.0.0" == false.
++ lib.optionals (lib.versionAtLeast cudaVersion "12.0") [ cuda_cccl ];
++ lib.optionals (cudaAtLeast "12.0") [ cuda_cccl ];
env.NIX_CFLAGS_COMPILE = toString [ "-Wno-unused-function" ];
preConfigure = ''
postPatch = ''
patchShebangs ./src/device/generate.py
makeFlagsArray+=(
"NVCC_GENCODE=${lib.concatStringsSep " " cudaFlags.gencode}"
)
'';
makeFlags =
[ "PREFIX=$(out)" ]
++ lib.optionals (lib.versionOlder cudaVersion "11.4") [
makeFlagsArray =
[
"PREFIX=$(out)"
"NVCC_GENCODE=${cudaFlags.gencodeString}"
]
++ lib.optionals (cudaOlder "11.4") [
"CUDA_HOME=${cudatoolkit}"
"CUDA_LIB=${lib.getLib cudatoolkit}/lib"
"CUDA_INC=${lib.getDev cudatoolkit}/include"
]
++ lib.optionals (lib.versionAtLeast cudaVersion "11.4") [
++ lib.optionals (cudaAtLeast "11.4") [
"CUDA_HOME=${cuda_nvcc}"
"CUDA_LIB=${lib.getLib cuda_cudart}/lib"
"CUDA_INC=${lib.getDev cuda_cudart}/include"
+11 -11
View File
@@ -10,8 +10,9 @@ let
cuda_cccl
cuda_cudart
cuda_nvcc
cudaAtLeast
cudaOlder
cudatoolkit
cudaVersion
flags
libcublas
setupCudaHook
@@ -24,6 +25,7 @@ backendStdenv.mkDerivation {
src = ./.;
__structuredAttrs = true;
strictDeps = true;
nativeBuildInputs =
@@ -31,24 +33,22 @@ backendStdenv.mkDerivation {
cmake
autoAddDriverRunpath
]
++ lib.optionals (lib.versionOlder cudaVersion "11.4") [ cudatoolkit ]
++ lib.optionals (lib.versionAtLeast cudaVersion "11.4") [ cuda_nvcc ];
++ lib.optionals (cudaOlder "11.4") [ cudatoolkit ]
++ lib.optionals (cudaAtLeast "11.4") [ cuda_nvcc ];
buildInputs =
lib.optionals (lib.versionOlder cudaVersion "11.4") [ cudatoolkit ]
++ lib.optionals (lib.versionAtLeast cudaVersion "11.4") [
lib.optionals (cudaOlder "11.4") [ cudatoolkit ]
++ lib.optionals (cudaAtLeast "11.4") [
(getDev libcublas)
(getLib libcublas)
(getOutput "static" libcublas)
cuda_cudart
]
++ lib.optionals (lib.versionAtLeast cudaVersion "12.0") [ cuda_cccl ];
++ lib.optionals (cudaAtLeast "12.0") [ cuda_cccl ];
cmakeFlags = [
cmakeFlagsArray = [
(lib.cmakeBool "CMAKE_VERBOSE_MAKEFILE" true)
(lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" (
with flags; lib.concatStringsSep ";" (lib.lists.map dropDot cudaCapabilities)
))
(lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" flags.cmakeCudaArchitecturesString)
];
meta = rec {
@@ -56,6 +56,6 @@ backendStdenv.mkDerivation {
license = lib.licenses.mit;
maintainers = lib.teams.cuda.members;
platforms = lib.platforms.unix;
badPlatforms = lib.optionals flags.isJetsonBuild platforms;
badPlatforms = lib.optionals (flags.isJetsonBuild && cudaOlder "11.4") platforms;
};
}
@@ -1,14 +1,25 @@
# shellcheck shell=bash
# Should we mimick cc-wrapper's "hygiene"?
[[ -z ${strictDeps-} ]] || (( "$hostOffset" < 0 )) || return 0
(( ${hostOffset:?} == -1 && ${targetOffset:?} == 0)) || return 0
echo "Sourcing mark-for-cudatoolkit-root-hook" >&2
markForCUDAToolkit_ROOT() {
mkdir -p "${prefix}/nix-support"
[[ -f "${prefix}/nix-support/include-in-cudatoolkit-root" ]] && return
echo "$pname-$output" > "${prefix}/nix-support/include-in-cudatoolkit-root"
mkdir -p "${prefix:?}/nix-support"
local markerPath="$prefix/nix-support/include-in-cudatoolkit-root"
# Return early if the file already exists.
[[ -f "$markerPath" ]] && return 0
# Always create the file, even if it's empty, since setup-cuda-hook relies on its existence.
# However, only populate it if strictDeps is not set.
touch "$markerPath"
# Return early if strictDeps is set.
[[ -n "${strictDeps-}" ]] && return 0
# Populate the file with the package name and output.
echo "${pname:?}-${output:?}" > "$markerPath"
}
fixupOutputHooks+=(markForCUDAToolkit_ROOT)
@@ -9,7 +9,7 @@ reason=
[[ -n ${cudaSetupHookOnce-} ]] && guard=Skipping && reason=" because the hook has been propagated more than once"
if (( "${NIX_DEBUG:-0}" >= 1 )) ; then
echo "$guard hostOffset=$hostOffset targetOffset=$targetOffset setupCudaHook$reason" >&2
echo "$guard hostOffset=$hostOffset targetOffset=$targetOffset setup-cuda-hook$reason" >&2
else
echo "$guard setup-cuda-hook$reason" >&2
fi
@@ -24,16 +24,19 @@ extendcudaHostPathsSeen() {
(( "${NIX_DEBUG:-0}" >= 1 )) && echo "extendcudaHostPathsSeen $1" >&2
local markerPath="$1/nix-support/include-in-cudatoolkit-root"
[[ ! -f "${markerPath}" ]] && return
[[ -v cudaHostPathsSeen[$1] ]] && return
[[ ! -f "${markerPath}" ]] && return 0
[[ -v cudaHostPathsSeen[$1] ]] && return 0
cudaHostPathsSeen["$1"]=1
# E.g. cuda_cudart-lib
local cudaOutputName
read -r cudaOutputName < "$markerPath"
# Fail gracefully if the file is empty.
# One reason the file may be empty: the package was built with strictDeps set, but the current build does not have
# strictDeps set.
read -r cudaOutputName < "$markerPath" || return 0
[[ -z "$cudaOutputName" ]] && return
[[ -z "$cudaOutputName" ]] && return 0
local oldPath="${cudaOutputToPath[$cudaOutputName]-}"
[[ -n "$oldPath" ]] && echo "extendcudaHostPathsSeen: warning: overwriting $cudaOutputName from $oldPath to $1" >&2
@@ -59,7 +62,7 @@ setupCUDAToolkitCompilers() {
echo Executing setupCUDAToolkitCompilers >&2
if [[ -n "${dontSetupCUDAToolkitCompilers-}" ]] ; then
return
return 0
fi
# Point NVCC at a compatible compiler
@@ -99,7 +102,7 @@ preConfigureHooks+=(setupCUDAToolkitCompilers)
propagateCudaLibraries() {
(( "${NIX_DEBUG:-0}" >= 1 )) && echo "propagateCudaLibraries: cudaPropagateToOutput=$cudaPropagateToOutput cudaHostPathsSeen=${!cudaHostPathsSeen[*]}" >&2
[[ -z "${cudaPropagateToOutput-}" ]] && return
[[ -z "${cudaPropagateToOutput-}" ]] && return 0
mkdir -p "${!cudaPropagateToOutput}/nix-support"
# One'd expect this should be propagated-bulid-build-deps, but that doesn't seem to work
@@ -1,12 +1,12 @@
{
cudaVersion,
final,
hostPlatform,
lib,
mkVersionedPackageName,
package,
patchelf,
requireFile,
stdenv,
...
}:
let
@@ -17,6 +17,7 @@ let
strings
versions
;
inherit (stdenv) hostPlatform;
# targetArch :: String
targetArch = attrsets.attrByPath [ hostPlatform.system ] "unsupported" {
x86_64-linux = "x86_64-linux-gnu";
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "LAStools";
version = "2.0.2";
version = "2.0.3";
src = fetchFromGitHub {
owner = "LAStools";
repo = "LAStools";
rev = "v${version}";
sha256 = "sha256-HL64koe0GNzJzyA0QP4I0M1y2HSxigsZTqOw67RCwNc=";
sha256 = "sha256-IyZjM8YvIVB0VPNuEhmHHw7EuKw5RanB2qhCnBD1fRY=";
};
patches = [
@@ -11,7 +11,7 @@
qtModule {
pname = "qtdeclarative";
strictDeps = true;
strictDeps = !stdenv.isDarwin; # fails to detect python3 otherwise
propagatedBuildInputs = [ qtbase qtlanguageserver qtshadertools openssl ];
nativeBuildInputs = [ python3 ];
patches = [
@@ -51,7 +51,6 @@
purs-tidy = "purs-tidy";
purty = "purty";
pscid = "pscid";
pyright = "pyright";
remod-cli = "remod";
svelte-language-server = "svelteserver";
teck-programmer = "teck-firmware-upgrade";
@@ -200,7 +200,6 @@
, "purescript-psa"
, "purs-tidy"
, "purty"
, "pyright"
, "remod-cli"
, "reveal.js"
, "rimraf"
@@ -0,0 +1,24 @@
{ lib
, fetchFromGitHub
, buildDunePackage
}:
buildDunePackage rec {
pname = "clap";
version = "0.3.0";
minimalOCamlVersion = "4.07";
src = fetchFromGitHub {
owner = "rbardou";
repo = pname;
rev = version;
hash = "sha256-IEol27AVYs55ntvNprBxOk3/EsBKAdPkF3Td3w9qOJg=";
};
meta = {
description = "Command-Line Argument Parsing, imperative style with a consumption mechanism";
license = lib.licenses.mit;
};
}
@@ -2,6 +2,7 @@
, fetchFromGitLab
, buildDunePackage
, ppx_hash
, bigstringaf
, either
, ezjsonm
, zarith
@@ -16,19 +17,12 @@
buildDunePackage rec {
pname = "data-encoding";
version = "0.7.1";
inherit (json-data-encoding) src version;
duneVersion = "3";
minimalOCamlVersion = "4.10";
src = fetchFromGitLab {
owner = "nomadic-labs";
repo = "data-encoding";
rev = "v${version}";
hash = "sha256-V3XiCCtoU+srOI+KVSJshtaSJLBJ4m4o10GpBfdYKCU=";
};
propagatedBuildInputs = [
bigstringaf
either
ezjsonm
ppx_hash
@@ -39,14 +33,10 @@ buildDunePackage rec {
json-data-encoding-bson
];
checkInputs = [
alcotest
crowbar
buildInputs = [
ppx_expect
];
doCheck = true;
meta = {
homepage = "https://gitlab.com/nomadic-labs/data-encoding";
description = "Library of JSON and binary encoding combinators";

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