Merge master into staging-next

authored by

github-actions[bot] and committed by
GitHub
cc41bb58 2b997301

+275 -97
+5 -1
doc/languages-frameworks/dotnet.section.md
··· 77 * `runtimeDeps` is used to wrap libraries into `LD_LIBRARY_PATH`. This is how dotnet usually handles runtime dependencies. 78 * `buildType` is used to change the type of build. Possible values are `Release`, `Debug`, etc. By default, this is set to `Release`. 79 * `dotnet-sdk` is useful in cases where you need to change what dotnet SDK is being used. 80 - * `dotnet-runtime` is useful in cases where you need to change what dotnet runtime is being used. 81 * `dotnetRestoreFlags` can be used to pass flags to `dotnet restore`. 82 * `dotnetBuildFlags` can be used to pass flags to `dotnet build`. 83 * `dotnetInstallFlags` can be used to pass flags to `dotnet install`. 84 * `dotnetFlags` can be used to pass flags to all of the above phases. 85
··· 77 * `runtimeDeps` is used to wrap libraries into `LD_LIBRARY_PATH`. This is how dotnet usually handles runtime dependencies. 78 * `buildType` is used to change the type of build. Possible values are `Release`, `Debug`, etc. By default, this is set to `Release`. 79 * `dotnet-sdk` is useful in cases where you need to change what dotnet SDK is being used. 80 + * `dotnet-runtime` is useful in cases where you need to change what dotnet runtime is being used. This can be either a regular dotnet runtime, or an aspnetcore. 81 + * `dotnet-test-sdk` is useful in cases where unit tests expect a different dotnet SDK. By default, this is set to the `dotnet-sdk` attribute. 82 + * `testProjectFile` is useful in cases where the regular project file does not contain the unit tests. By default, this is set to the `projectFile` attribute. 83 + * `disabledTests` is used to disable running specific unit tests. This gets passed as: `dotnet test --filter "FullyQualifiedName!={}"`, to ensure compatibility with all unit test frameworks. 84 * `dotnetRestoreFlags` can be used to pass flags to `dotnet restore`. 85 * `dotnetBuildFlags` can be used to pass flags to `dotnet build`. 86 + * `dotnetTestFlags` can be used to pass flags to `dotnet test`. 87 * `dotnetInstallFlags` can be used to pass flags to `dotnet install`. 88 * `dotnetFlags` can be used to pass flags to all of the above phases. 89
+53 -9
lib/modules.nix
··· 52 53 rec { 54 55 - /* Evaluate a set of modules. The result is a set of two 56 - attributes: ‘options’: the nested set of all option declarations, 57 - and ‘config’: the nested set of all option values. 58 !!! Please think twice before adding to this argument list! The more 59 that is specified here instead of in the modules themselves the harder 60 it is to transparently move a set of modules to be a submodule of another 61 config (as the proper arguments need to be replicated at each call to 62 evalModules) and the less declarative the module set is. */ 63 - evalModules = { modules 64 , prefix ? [] 65 , # This should only be used for special arguments that need to be evaluated 66 # when resolving module structure (like in imports). For everything else, ··· 120 }; 121 122 config = { 123 - _module.args = args; 124 }; 125 }; 126 ··· 183 else throw baseMsg 184 else null; 185 186 - result = builtins.seq checkUnmatched { 187 - inherit options; 188 - config = removeAttrs config [ "_module" ]; 189 - inherit (config) _module; 190 }; 191 in result; 192
··· 52 53 rec { 54 55 + /* 56 + Evaluate a set of modules. The result is a set with the attributes: 57 + 58 + ‘options’: The nested set of all option declarations, 59 + 60 + ‘config’: The nested set of all option values. 61 + 62 + ‘type’: A module system type representing the module set as a submodule, 63 + to be extended by configuration from the containing module set. 64 + 65 + ‘extendModules’: A function similar to ‘evalModules’ but building on top 66 + of the module set. Its arguments, ‘modules’ and ‘specialArgs’ are 67 + added to the existing values. 68 + 69 + Using ‘extendModules’ a few times has no performance impact as long 70 + as you only reference the final ‘options’ and ‘config’. 71 + If you do reference multiple ‘config’ (or ‘options’) from before and 72 + after ‘extendModules’, performance is the same as with multiple 73 + ‘evalModules’ invocations, because the new modules' ability to 74 + override existing configuration fundamentally requires a new 75 + fixpoint to be constructed. 76 + 77 + ‘_module’: A portion of the configuration tree which is elided from 78 + ‘config’. It contains some values that are mostly internal to the 79 + module system implementation. 80 + 81 !!! Please think twice before adding to this argument list! The more 82 that is specified here instead of in the modules themselves the harder 83 it is to transparently move a set of modules to be a submodule of another 84 config (as the proper arguments need to be replicated at each call to 85 evalModules) and the less declarative the module set is. */ 86 + evalModules = evalModulesArgs@ 87 + { modules 88 , prefix ? [] 89 , # This should only be used for special arguments that need to be evaluated 90 # when resolving module structure (like in imports). For everything else, ··· 144 }; 145 146 config = { 147 + _module.args = { 148 + inherit extendModules; 149 + } // args; 150 }; 151 }; 152 ··· 209 else throw baseMsg 210 else null; 211 212 + checked = builtins.seq checkUnmatched; 213 + 214 + extendModules = extendArgs@{ 215 + modules ? [], 216 + specialArgs ? {}, 217 + prefix ? [], 218 + }: 219 + evalModules (evalModulesArgs // { 220 + modules = evalModulesArgs.modules ++ modules; 221 + specialArgs = evalModulesArgs.specialArgs or {} // specialArgs; 222 + prefix = extendArgs.prefix or evalModulesArgs.prefix; 223 + }); 224 + 225 + type = lib.types.submoduleWith { 226 + inherit modules specialArgs; 227 + }; 228 + 229 + result = { 230 + options = checked options; 231 + config = checked (removeAttrs config [ "_module" ]); 232 + _module = checked (config._module); 233 + inherit extendModules type; 234 }; 235 in result; 236
+7 -3
lib/options.nix
··· 74 apply ? null, 75 # Whether the option is for NixOS developers only. 76 internal ? null, 77 - # Whether the option shows up in the manual. 78 visible ? null, 79 # Whether the option can be set only once 80 readOnly ? null, ··· 180 description = opt.description or (lib.warn "Option `${name}' has no description." "This option has no description."); 181 declarations = filter (x: x != unknownModule) opt.declarations; 182 internal = opt.internal or false; 183 - visible = opt.visible or true; 184 readOnly = opt.readOnly or false; 185 type = opt.type.description or null; 186 } ··· 192 subOptions = 193 let ss = opt.type.getSubOptions opt.loc; 194 in if ss != {} then optionAttrSetToDocList' opt.loc ss else []; 195 in 196 - [ docOption ] ++ optionals docOption.visible subOptions) (collect isOption options); 197 198 199 /* This function recursively removes all derivation attributes from
··· 74 apply ? null, 75 # Whether the option is for NixOS developers only. 76 internal ? null, 77 + # Whether the option shows up in the manual. Default: true. Use false to hide the option and any sub-options from submodules. Use "shallow" to hide only sub-options. 78 visible ? null, 79 # Whether the option can be set only once 80 readOnly ? null, ··· 180 description = opt.description or (lib.warn "Option `${name}' has no description." "This option has no description."); 181 declarations = filter (x: x != unknownModule) opt.declarations; 182 internal = opt.internal or false; 183 + visible = 184 + if (opt?visible && opt.visible == "shallow") 185 + then true 186 + else opt.visible or true; 187 readOnly = opt.readOnly or false; 188 type = opt.type.description or null; 189 } ··· 195 subOptions = 196 let ss = opt.type.getSubOptions opt.loc; 197 in if ss != {} then optionAttrSetToDocList' opt.loc ss else []; 198 + subOptionsVisible = docOption.visible && opt.visible or null != "shallow"; 199 in 200 + [ docOption ] ++ optionals subOptionsVisible subOptions) (collect isOption options); 201 202 203 /* This function recursively removes all derivation attributes from
+7
lib/tests/modules.sh
··· 179 # which evaluates all the modules defined by the type) 180 checkConfigOutput "submodule" options.submodule.type.description ./declare-submoduleWith-modules.nix 181 182 ## Paths should be allowed as values and work as expected 183 checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.nix 184
··· 179 # which evaluates all the modules defined by the type) 180 checkConfigOutput "submodule" options.submodule.type.description ./declare-submoduleWith-modules.nix 181 182 + ## submodules can be declared using (evalModules {...}).type 183 + checkConfigOutput "true" config.submodule.inner ./declare-submodule-via-evalModules.nix 184 + checkConfigOutput "true" config.submodule.outer ./declare-submodule-via-evalModules.nix 185 + # Should also be able to evaluate the type name (which evaluates freeformType, 186 + # which evaluates all the modules defined by the type) 187 + checkConfigOutput "submodule" options.submodule.type.description ./declare-submodule-via-evalModules.nix 188 + 189 ## Paths should be allowed as values and work as expected 190 checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.nix 191
+28
lib/tests/modules/declare-submodule-via-evalModules.nix
···
··· 1 + { lib, ... }: { 2 + options.submodule = lib.mkOption { 3 + inherit (lib.evalModules { 4 + modules = [ 5 + { 6 + options.inner = lib.mkOption { 7 + type = lib.types.bool; 8 + default = false; 9 + }; 10 + } 11 + ]; 12 + }) type; 13 + default = {}; 14 + }; 15 + 16 + config.submodule = lib.mkMerge [ 17 + ({ lib, ... }: { 18 + options.outer = lib.mkOption { 19 + type = lib.types.bool; 20 + default = false; 21 + }; 22 + }) 23 + { 24 + inner = true; 25 + outer = true; 26 + } 27 + ]; 28 + }
+28 -28
lib/types.nix
··· 505 then setFunctionArgs (args: unify (value args)) (functionArgs value) 506 else unify (if shorthandOnlyDefinesConfig then { config = value; } else value); 507 508 - allModules = defs: modules ++ imap1 (n: { value, file }: 509 if isAttrs value || isFunction value then 510 # Annotate the value with the location of its definition for better error messages 511 coerce (lib.modules.unifyModuleSyntax file "${toString file}-${toString n}") value 512 else value 513 ) defs; 514 515 - freeformType = (evalModules { 516 - inherit modules specialArgs; 517 - args.name = "‹name›"; 518 - })._module.freeformType; 519 520 in 521 mkOptionType rec { ··· 523 description = freeformType.description or name; 524 check = x: isAttrs x || isFunction x || path.check x; 525 merge = loc: defs: 526 - (evalModules { 527 - modules = allModules defs; 528 - inherit specialArgs; 529 - args.name = last loc; 530 prefix = loc; 531 }).config; 532 emptyValue = { value = {}; }; 533 - getSubOptions = prefix: (evalModules 534 - { inherit modules prefix specialArgs; 535 - # This is a work-around due to the fact that some sub-modules, 536 - # such as the one included in an attribute set, expects a "args" 537 - # attribute to be given to the sub-module. As the option 538 - # evaluation does not have any specific attribute name, we 539 - # provide a default one for the documentation. 540 - # 541 - # This is mandatory as some option declaration might use the 542 - # "name" attribute given as argument of the submodule and use it 543 - # as the default of option declarations. 544 - # 545 - # Using lookalike unicode single angle quotation marks because 546 - # of the docbook transformation the options receive. In all uses 547 - # &gt; and &lt; wouldn't be encoded correctly so the encoded values 548 - # would be used, and use of `<` and `>` would break the XML document. 549 - # It shouldn't cause an issue since this is cosmetic for the manual. 550 - args.name = "‹name›"; 551 - }).options // optionalAttrs (freeformType != null) { 552 # Expose the sub options of the freeform type. Note that the option 553 # discovery doesn't care about the attribute name used here, so this 554 # is just to avoid conflicts with potential options from the submodule
··· 505 then setFunctionArgs (args: unify (value args)) (functionArgs value) 506 else unify (if shorthandOnlyDefinesConfig then { config = value; } else value); 507 508 + allModules = defs: imap1 (n: { value, file }: 509 if isAttrs value || isFunction value then 510 # Annotate the value with the location of its definition for better error messages 511 coerce (lib.modules.unifyModuleSyntax file "${toString file}-${toString n}") value 512 else value 513 ) defs; 514 515 + base = evalModules { 516 + inherit specialArgs; 517 + modules = [{ 518 + # This is a work-around for the fact that some sub-modules, 519 + # such as the one included in an attribute set, expects an "args" 520 + # attribute to be given to the sub-module. As the option 521 + # evaluation does not have any specific attribute name yet, we 522 + # provide a default for the documentation and the freeform type. 523 + # 524 + # This is necessary as some option declaration might use the 525 + # "name" attribute given as argument of the submodule and use it 526 + # as the default of option declarations. 527 + # 528 + # We use lookalike unicode single angle quotation marks because 529 + # of the docbook transformation the options receive. In all uses 530 + # &gt; and &lt; wouldn't be encoded correctly so the encoded values 531 + # would be used, and use of `<` and `>` would break the XML document. 532 + # It shouldn't cause an issue since this is cosmetic for the manual. 533 + _module.args.name = lib.mkOptionDefault "‹name›"; 534 + }] ++ modules; 535 + }; 536 + 537 + freeformType = base._module.freeformType; 538 539 in 540 mkOptionType rec { ··· 542 description = freeformType.description or name; 543 check = x: isAttrs x || isFunction x || path.check x; 544 merge = loc: defs: 545 + (base.extendModules { 546 + modules = [ { _module.args.name = last loc; } ] ++ allModules defs; 547 prefix = loc; 548 }).config; 549 emptyValue = { value = {}; }; 550 + getSubOptions = prefix: (base.extendModules 551 + { inherit prefix; }).options // optionalAttrs (freeformType != null) { 552 # Expose the sub options of the freeform type. Note that the option 553 # discovery doesn't care about the attribute name used here, so this 554 # is just to avoid conflicts with potential options from the submodule
+1 -1
nixos/lib/eval-config.nix
··· 61 args = extraArgs; 62 specialArgs = 63 { modulesPath = builtins.toString ../modules; } // specialArgs; 64 - }) config options _module; 65 66 # These are the extra arguments passed to every module. In 67 # particular, Nixpkgs is passed through the "pkgs" argument.
··· 61 args = extraArgs; 62 specialArgs = 63 { modulesPath = builtins.toString ../modules; } // specialArgs; 64 + }) config options _module type; 65 66 # These are the extra arguments passed to every module. In 67 # particular, Nixpkgs is passed through the "pkgs" argument.
+7 -15
nixos/tests/kernel-generic.nix
··· 23 assert "${linuxPackages.kernel.modDirVersion}" in machine.succeed("uname -a") 24 ''; 25 }) args); 26 - kernels = { 27 - inherit (pkgs) 28 - linuxPackages_4_4 29 - linuxPackages_4_9 30 - linuxPackages_4_14 31 - linuxPackages_4_19 32 - linuxPackages_5_4 33 - linuxPackages_5_10 34 - linuxPackages_5_14 35 - 36 - linuxPackages_4_14_hardened 37 - linuxPackages_4_19_hardened 38 - linuxPackages_5_4_hardened 39 - linuxPackages_5_10_hardened 40 41 - linuxPackages_testing; 42 }; 43 44 in mapAttrs (_: lP: testsForLinuxPackages lP) kernels // {
··· 23 assert "${linuxPackages.kernel.modDirVersion}" in machine.succeed("uname -a") 24 ''; 25 }) args); 26 + kernels = pkgs.linuxKernel.vanillaPackages // { 27 + inherit (pkgs.linuxKernel.packages) 28 + linux_4_14_hardened 29 + linux_4_19_hardened 30 + linux_5_4_hardened 31 + linux_5_10_hardened 32 33 + linux_testing; 34 }; 35 36 in mapAttrs (_: lP: testsForLinuxPackages lP) kernels // {
+3 -4
pkgs/applications/audio/plexamp/default.nix
··· 3 let 4 pname = "plexamp"; 5 version = "3.7.1"; 6 - name = "${pname}-${version}"; 7 8 src = fetchurl { 9 url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage"; ··· 12 }; 13 14 appimageContents = appimageTools.extractType2 { 15 - inherit name src; 16 }; 17 in appimageTools.wrapType2 { 18 - inherit name src; 19 20 multiPkgs = null; # no 32bit needed 21 extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ]; 22 23 extraInstallCommands = '' 24 - ln -s $out/bin/${name} $out/bin/${pname} 25 install -m 444 -D ${appimageContents}/plexamp.desktop $out/share/applications/plexamp.desktop 26 install -m 444 -D ${appimageContents}/plexamp.png \ 27 $out/share/icons/hicolor/512x512/apps/plexamp.png
··· 3 let 4 pname = "plexamp"; 5 version = "3.7.1"; 6 7 src = fetchurl { 8 url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage"; ··· 11 }; 12 13 appimageContents = appimageTools.extractType2 { 14 + inherit pname version src; 15 }; 16 in appimageTools.wrapType2 { 17 + inherit pname version src; 18 19 multiPkgs = null; # no 32bit needed 20 extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ]; 21 22 extraInstallCommands = '' 23 + ln -s $out/bin/${pname}-${version} $out/bin/${pname} 24 install -m 444 -D ${appimageContents}/plexamp.desktop $out/share/applications/plexamp.desktop 25 install -m 444 -D ${appimageContents}/plexamp.png \ 26 $out/share/icons/hicolor/512x512/apps/plexamp.png
+10
pkgs/applications/graphics/monado/default.nix
··· 1 { lib 2 , stdenv 3 , fetchFromGitLab 4 , writeText 5 , cmake 6 , doxygen ··· 53 rev = "v${version}"; 54 sha256 = "07zxs96i3prjqww1f68496cl2xxqaidx32lpfyy0pn5am4c297zc"; 55 }; 56 57 nativeBuildInputs = [ 58 cmake
··· 1 { lib 2 , stdenv 3 , fetchFromGitLab 4 + , fetchpatch 5 , writeText 6 , cmake 7 , doxygen ··· 54 rev = "v${version}"; 55 sha256 = "07zxs96i3prjqww1f68496cl2xxqaidx32lpfyy0pn5am4c297zc"; 56 }; 57 + 58 + patches = [ 59 + # https://github.com/NixOS/nixpkgs/issues/137245 60 + # Fix warning after Vulkan 1.2.174 VK_NULL_HANDLE change 61 + (fetchpatch { 62 + url = "https://gitlab.freedesktop.org/monado/monado/-/commit/c47775a95d8e139a2f234063793eb6726f830510.patch"; 63 + sha256 = "093ymvi9ifpk4vyjcwhhci9cnscxwbv5f80xdbppcqa0j92nmkmp"; 64 + }) 65 + ]; 66 67 nativeBuildInputs = [ 68 cmake
+2 -2
pkgs/applications/graphics/weylus/default.nix
··· 14 15 stdenv.mkDerivation rec { 16 pname = "weylus"; 17 - version = "0.11.3"; 18 19 src = fetchzip { 20 url = "https://github.com/H-M-H/Weylus/releases/download/v${version}/linux.zip"; 21 - sha256 = "sha256-1nEdn3KKCMWIzYv4ryqTxtQvR9eln9IX1Z4Y6/vuo7o="; 22 stripRoot = false; 23 }; 24
··· 14 15 stdenv.mkDerivation rec { 16 pname = "weylus"; 17 + version = "0.11.4"; 18 19 src = fetchzip { 20 url = "https://github.com/H-M-H/Weylus/releases/download/v${version}/linux.zip"; 21 + sha256 = "sha256-EW3TdI4F4d4X/BeSqI05QtS77ym1U5jdswFfNtSFyFk="; 22 stripRoot = false; 23 }; 24
+2 -2
pkgs/applications/misc/logseq/default.nix
··· 2 3 stdenv.mkDerivation rec { 4 pname = "logseq"; 5 - version = "0.4.2"; 6 7 src = fetchurl { 8 url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage"; 9 - sha256 = "BEDScQtGfkp74Gx3RKK8ItNQ9JD8AJkl1zdS/gZqyXk="; 10 name = "${pname}-${version}.AppImage"; 11 }; 12
··· 2 3 stdenv.mkDerivation rec { 4 pname = "logseq"; 5 + version = "0.4.5"; 6 7 src = fetchurl { 8 url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage"; 9 + sha256 = "EMybZH3heUWeCP74KdFr6zJY1R3hePo6RssbJXrkd9g="; 10 name = "${pname}-${version}.AppImage"; 11 }; 12
+2
pkgs/applications/networking/instant-messengers/pidgin/default.nix
··· 10 , gnutls ? null 11 , libgcrypt ? null 12 , plugins, symlinkJoin 13 }: 14 15 # FIXME: clean the mess around choosing the SSL library (nss by default) ··· 59 "--with-nss-includes=${nss.dev}/include/nss" 60 "--with-nss-libs=${nss.out}/lib" 61 "--with-ncurses-headers=${ncurses.dev}/include" 62 "--disable-meanwhile" 63 "--disable-nm" 64 "--disable-tcl"
··· 10 , gnutls ? null 11 , libgcrypt ? null 12 , plugins, symlinkJoin 13 + , cacert 14 }: 15 16 # FIXME: clean the mess around choosing the SSL library (nss by default) ··· 60 "--with-nss-includes=${nss.dev}/include/nss" 61 "--with-nss-libs=${nss.out}/lib" 62 "--with-ncurses-headers=${ncurses.dev}/include" 63 + "--with-system-ssl-certs=${cacert}/etc/ssl/certs" 64 "--disable-meanwhile" 65 "--disable-nm" 66 "--disable-tcl"
+12 -2
pkgs/applications/networking/mailreaders/neomutt/default.nix
··· 1 { lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which 2 , ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl 3 , lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib 4 }: 5 6 stdenv.mkDerivation rec { 7 - version = "20211022"; 8 pname = "neomutt"; 9 10 src = fetchFromGitHub { 11 owner = "neomutt"; 12 repo = "neomutt"; 13 rev = version; 14 - sha256 = "sha256-gPMbl+g9tU7YmT3uJoJozCdDBb/4eFyVyvHdREK1Ss0="; 15 }; 16 17 buildInputs = [ ··· 22 23 nativeBuildInputs = [ 24 docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib w3m 25 ]; 26 27 enableParallelBuilding = true;
··· 1 { lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which 2 , ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl 3 , lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib 4 + , fetchpatch 5 }: 6 7 stdenv.mkDerivation rec { 8 + version = "20211029"; 9 pname = "neomutt"; 10 11 src = fetchFromGitHub { 12 owner = "neomutt"; 13 repo = "neomutt"; 14 rev = version; 15 + sha256 = "sha256-haPDZorAfKuIEMiBCXJRMALAYnurQyjmCSOnj9IsoKk="; 16 }; 17 18 buildInputs = [ ··· 23 24 nativeBuildInputs = [ 25 docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib w3m 26 + ]; 27 + 28 + patches = [ 29 + # Remove on next update, see 30 + # https://github.com/NixOS/nixpkgs/pull/143641#issuecomment-954991746 for context. 31 + (fetchpatch { 32 + url = "https://github.com/neomutt/neomutt/commit/4242a31313e0b600693215c01047bbda8a6dd25a.patch"; 33 + sha256 = "sha256-fcuNeBkPjqln5QA9VFcfXCQD/VrUoSEMSxQ//Xj+yxY="; 34 + }) 35 ]; 36 37 enableParallelBuilding = true;
+28
pkgs/build-support/build-dotnet-module/default.nix
··· 2 3 { name ? "${args.pname}-${args.version}" 4 , enableParallelBuilding ? true 5 # Flags to pass to `makeWrapper`. This is done to avoid double wrapping. 6 , makeWrapperArgs ? [] 7 ··· 9 , dotnetRestoreFlags ? [] 10 # Flags to pass to `dotnet build`. 11 , dotnetBuildFlags ? [] 12 # Flags to pass to `dotnet install`. 13 , dotnetInstallFlags ? [] 14 # Flags to pass to dotnet in all phases. ··· 27 # These get wrapped into `LD_LIBRARY_PATH`. 28 , runtimeDeps ? [] 29 30 # The type of build to perform. This is passed to `dotnet` with the `--configuration` flag. Possible values are `Release`, `Debug`, etc. 31 , buildType ? "Release" 32 # The dotnet SDK to use. 33 , dotnet-sdk ? dotnetCorePackages.sdk_5_0 34 # The dotnet runtime to use. 35 , dotnet-runtime ? dotnetCorePackages.runtime_5_0 36 , ... } @ args: 37 38 assert projectFile == null -> throw "Defining the `projectFile` attribute is required. This is usually an `.csproj`, or `.sln` file."; ··· 117 "''${dotnetFlags[@]}" 118 119 runHook postBuild 120 ''; 121 122 installPhase = args.installPhase or ''
··· 2 3 { name ? "${args.pname}-${args.version}" 4 , enableParallelBuilding ? true 5 + , doCheck ? false 6 # Flags to pass to `makeWrapper`. This is done to avoid double wrapping. 7 , makeWrapperArgs ? [] 8 ··· 10 , dotnetRestoreFlags ? [] 11 # Flags to pass to `dotnet build`. 12 , dotnetBuildFlags ? [] 13 + # Flags to pass to `dotnet test`, if running tests is enabled. 14 + , dotnetTestFlags ? [] 15 # Flags to pass to `dotnet install`. 16 , dotnetInstallFlags ? [] 17 # Flags to pass to dotnet in all phases. ··· 30 # These get wrapped into `LD_LIBRARY_PATH`. 31 , runtimeDeps ? [] 32 33 + # Tests to disable. This gets passed to `dotnet test --filter "FullyQualifiedName!={}"`, to ensure compatibility with all frameworks. 34 + # See https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test#filter-option-details for more details. 35 + , disabledTests ? [] 36 + # The project file to run unit tests against. This is usually the regular project file, but sometimes it needs to be manually set. 37 + , testProjectFile ? projectFile 38 + 39 # The type of build to perform. This is passed to `dotnet` with the `--configuration` flag. Possible values are `Release`, `Debug`, etc. 40 , buildType ? "Release" 41 # The dotnet SDK to use. 42 , dotnet-sdk ? dotnetCorePackages.sdk_5_0 43 # The dotnet runtime to use. 44 , dotnet-runtime ? dotnetCorePackages.runtime_5_0 45 + # The dotnet SDK to run tests against. This can differentiate from the SDK compiled against. 46 + , dotnet-test-sdk ? dotnet-sdk 47 , ... } @ args: 48 49 assert projectFile == null -> throw "Defining the `projectFile` attribute is required. This is usually an `.csproj`, or `.sln` file."; ··· 128 "''${dotnetFlags[@]}" 129 130 runHook postBuild 131 + ''; 132 + 133 + checkPhase = args.checkPhase or '' 134 + runHook preCheck 135 + 136 + ${lib.getBin dotnet-test-sdk}/bin/dotnet test "$testProjectFile" \ 137 + -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \ 138 + -p:ContinuousIntegrationBuild=true \ 139 + -p:Deterministic=true \ 140 + --configuration "$buildType" \ 141 + --no-build \ 142 + --logger "console;verbosity=normal" \ 143 + ${lib.optionalString (disabledTests != []) "--filter \"FullyQualifiedName!=${lib.concatStringsSep "|FullyQualifiedName!=" disabledTests}\""} \ 144 + "''${dotnetTestFlags[@]}" \ 145 + "''${dotnetFlags[@]}" 146 + 147 + runHook postCheck 148 ''; 149 150 installPhase = args.installPhase or ''
+12 -6
pkgs/development/python-modules/ibis/default.nix
··· 2 , buildPythonPackage 3 , fetchFromGitHub 4 , python 5 - , isPy27 6 }: 7 8 buildPythonPackage rec { 9 pname = "ibis"; 10 - version = "1.6.0"; 11 - disabled = isPy27; 12 13 src = fetchFromGitHub { 14 owner = "dmulholl"; 15 repo = pname; 16 rev = version; 17 - sha256 = "0xqhk397gzanvj2znwcgy4n5l1lc9r310smxkhjbm1xwvawpixx0"; 18 }; 19 20 checkPhase = '' 21 ${python.interpreter} test_ibis.py 22 ''; 23 24 meta = with lib; { 25 - description = "A lightweight template engine"; 26 homepage = "https://github.com/dmulholland/ibis"; 27 license = licenses.publicDomain; 28 - maintainers = [ maintainers.costrouc ]; 29 }; 30 }
··· 2 , buildPythonPackage 3 , fetchFromGitHub 4 , python 5 + , pythonOlder 6 }: 7 8 buildPythonPackage rec { 9 pname = "ibis"; 10 + version = "3.2.0"; 11 + format = "setuptools"; 12 + 13 + disabled = pythonOlder "3.8"; 14 15 src = fetchFromGitHub { 16 owner = "dmulholl"; 17 repo = pname; 18 rev = version; 19 + sha256 = "sha256-EPz9zHnxR75WoRaiHKJNiCRWFwU1TBpC4uHz62jUOqM="; 20 }; 21 22 checkPhase = '' 23 ${python.interpreter} test_ibis.py 24 ''; 25 + 26 + pythonImportsCheck = [ 27 + "ibis" 28 + ]; 29 30 meta = with lib; { 31 + description = "Lightweight template engine"; 32 homepage = "https://github.com/dmulholland/ibis"; 33 license = licenses.publicDomain; 34 + maintainers = with maintainers; [ costrouc ]; 35 }; 36 }
+2 -2
pkgs/development/python-modules/icmplib/default.nix
··· 8 9 buildPythonPackage rec { 10 pname = "icmplib"; 11 - version = "3.0.1"; 12 disabled = pythonOlder "3.7"; 13 14 src = fetchFromGitHub { 15 owner = "ValentinBELYN"; 16 repo = pname; 17 rev = "v${version}"; 18 - sha256 = "sha256-avCy/s54JOeHf6py4sPDV+QC2oq2AU6A6J2YOnrQsm0="; 19 }; 20 21 propagatedBuildInputs = [
··· 8 9 buildPythonPackage rec { 10 pname = "icmplib"; 11 + version = "3.0.2"; 12 disabled = pythonOlder "3.7"; 13 14 src = fetchFromGitHub { 15 owner = "ValentinBELYN"; 16 repo = pname; 17 rev = "v${version}"; 18 + sha256 = "sha256-4aq89Nw55OL7JQx3Ra6Ppp5yKLdS6Lc0YA8UJxVhz84="; 19 }; 20 21 propagatedBuildInputs = [
+4 -5
pkgs/os-specific/linux/bcc/default.nix
··· 1 { lib, stdenv, fetchFromGitHub 2 , makeWrapper, cmake, llvmPackages, kernel 3 , flex, bison, elfutils, python, luajit, netperf, iperf, libelf 4 - , systemtap, bash, libbpf 5 }: 6 7 python.pkgs.buildPythonApplication rec { 8 pname = "bcc"; 9 - version = "0.20.0"; 10 11 disabled = !stdenv.isLinux; 12 ··· 14 owner = "iovisor"; 15 repo = "bcc"; 16 rev = "v${version}"; 17 - sha256 = "1xnpz2zv445dp5h0160drv6xlvrnwfj23ngc4dp3clcd59jh1baq"; 18 }; 19 format = "other"; 20 ··· 22 llvm llvm.dev libclang kernel 23 elfutils luajit netperf iperf 24 systemtap.stapBuild flex bash 25 - libbpf 26 ]; 27 28 patches = [ ··· 41 "-DREVISION=${version}" 42 "-DENABLE_USDT=ON" 43 "-DENABLE_CPP_API=ON" 44 - "-DCMAKE_USE_LIBBPF_PACKAGE=ON" 45 ]; 46 47 postPatch = ''
··· 1 { lib, stdenv, fetchFromGitHub 2 , makeWrapper, cmake, llvmPackages, kernel 3 , flex, bison, elfutils, python, luajit, netperf, iperf, libelf 4 + , systemtap, bash 5 }: 6 7 python.pkgs.buildPythonApplication rec { 8 pname = "bcc"; 9 + version = "0.22.0"; 10 11 disabled = !stdenv.isLinux; 12 ··· 14 owner = "iovisor"; 15 repo = "bcc"; 16 rev = "v${version}"; 17 + sha256 = "sha256-7FQz02APzjCjxCaw+e3H2GWz+UKsH0Dzgk9LoDgwDpU="; 18 + fetchSubmodules = true; 19 }; 20 format = "other"; 21 ··· 23 llvm llvm.dev libclang kernel 24 elfutils luajit netperf iperf 25 systemtap.stapBuild flex bash 26 ]; 27 28 patches = [ ··· 41 "-DREVISION=${version}" 42 "-DENABLE_USDT=ON" 43 "-DENABLE_CPP_API=ON" 44 ]; 45 46 postPatch = ''
+18
pkgs/os-specific/linux/kernel/linux-5.15.nix
···
··· 1 + { lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args: 2 + 3 + with lib; 4 + 5 + buildLinux (args // rec { 6 + version = "5.15"; 7 + 8 + # modDirVersion needs to be x.y.z, will automatically add .0 if needed 9 + modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; 10 + 11 + # branchVersion needs to be x.y 12 + extraMeta.branch = versions.majorMinor version; 13 + 14 + src = fetchurl { 15 + url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; 16 + sha256 = "sha256-V7LPaZGRDjtnobNJACLooGdLaWXHTBLaHpnRONGZHug="; 17 + }; 18 + } // (args.argsOverride or { }))
+8
pkgs/os-specific/linux/nvidia-x11/default.nix
··· 45 url = "https://developer.nvidia.com/vulkan-beta-${lib.concatStrings (lib.splitString "." version)}-linux"; 46 }; 47 48 # Last one supporting x86 49 legacy_390 = generic { 50 version = "390.143";
··· 45 url = "https://developer.nvidia.com/vulkan-beta-${lib.concatStrings (lib.splitString "." version)}-linux"; 46 }; 47 48 + # Last one supporting Kepler architecture 49 + legacy_470 = generic { 50 + version = "470.82.00"; 51 + sha256_64bit = "sha256:0i35frgil917ig1s2qsgqww58h66gabnxz3q39vcl3rlwb0pmgfh"; 52 + settingsSha256 = "sha256:1kacgifzqqi2zjq62m404w99iv168j5a4xg7xbfnll62vzx7yr5j"; 53 + persistencedSha256 = "sha256:06qsjp0n872b37wvhnwaddn1nrwn668zskmkcmpx33bv1940apsk"; 54 + }; 55 + 56 # Last one supporting x86 57 legacy_390 = generic { 58 version = "390.143";
+5 -1
pkgs/tools/games/opentracker/default.nix
··· 25 }; 26 27 dotnet-runtime = dotnetCorePackages.runtime_3_1; 28 projectFile = "OpenTracker.sln"; 29 - nugetDeps = ./deps.nix; 30 executables = [ "OpenTracker" ]; 31 32 nativeBuildInputs = [ 33 autoPatchelfHook
··· 25 }; 26 27 dotnet-runtime = dotnetCorePackages.runtime_3_1; 28 + nugetDeps = ./deps.nix; 29 + 30 projectFile = "OpenTracker.sln"; 31 executables = [ "OpenTracker" ]; 32 + 33 + doCheck = true; 34 + dotnet-test-sdk = dotnetCorePackages.sdk_3_1; 35 36 nativeBuildInputs = [ 37 autoPatchelfHook
+3 -3
pkgs/tools/networking/sniffglue/default.nix
··· 2 3 rustPlatform.buildRustPackage rec { 4 pname = "sniffglue"; 5 - version = "0.13.1"; 6 7 src = fetchFromGitHub { 8 owner = "kpcyrd"; 9 repo = pname; 10 rev = "v${version}"; 11 - sha256 = "sha256-P8ubw523sw1O6Gpruy1Wa/Y0I3qJgvMdT53wBBoEGhE="; 12 }; 13 14 - cargoSha256 = "sha256-+Wh+/C9LvYppCghv11e8NKNhiMy0SV4S3nEWA6b1hQk="; 15 16 nativeBuildInputs = [ pkg-config ]; 17
··· 2 3 rustPlatform.buildRustPackage rec { 4 pname = "sniffglue"; 5 + version = "0.14.0"; 6 7 src = fetchFromGitHub { 8 owner = "kpcyrd"; 9 repo = pname; 10 rev = "v${version}"; 11 + sha256 = "sha256-s+2YzfSy7+o0VZZ4j/Cfd6F5GvBytthmDJqrPw+7SU0="; 12 }; 13 14 + cargoSha256 = "sha256-4G1OGY7/vE8NKBFeuOZzqyZ0DQN4hy/HBO9qrEtBYlM="; 15 16 nativeBuildInputs = [ pkg-config ]; 17
+16 -10
pkgs/tools/security/sedutil/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub, autoreconfHook }: 2 3 stdenv.mkDerivation rec { 4 pname = "sedutil"; 5 - version = "1.15.1"; 6 7 src = fetchFromGitHub { 8 - owner = "Drive-Trust-Alliance"; 9 - repo = "sedutil"; 10 - rev = version; 11 - sha256 = "0zg5v27vbrzzl2vqzks91zj48z30qgcshkqkm1g8ycnhi145l0mf"; 12 }; 13 14 postPatch = '' 15 patchShebangs . 16 ''; 17 18 - nativeBuildInputs = [ autoreconfHook ]; 19 20 enableParallelBuilding = true; 21 22 meta = with lib; { 23 description = "DTA sedutil Self encrypting drive software"; 24 - homepage = "https://www.drivetrust.com"; 25 - license = licenses.gpl3; 26 - platforms = platforms.linux; 27 }; 28 }
··· 1 + { lib 2 + , stdenv 3 + , fetchFromGitHub 4 + , autoreconfHook 5 + }: 6 7 stdenv.mkDerivation rec { 8 pname = "sedutil"; 9 + version = "1.20.0"; 10 11 src = fetchFromGitHub { 12 + owner = "Drive-Trust-Alliance"; 13 + repo = "sedutil"; 14 + rev = version; 15 + sha256 = "sha256-NG/7aqe48ShHWW5hW8axYWV4+zX0dBE7Wy9q58l0S3E="; 16 }; 17 18 postPatch = '' 19 patchShebangs . 20 ''; 21 22 + nativeBuildInputs = [ 23 + autoreconfHook 24 + ]; 25 26 enableParallelBuilding = true; 27 28 meta = with lib; { 29 description = "DTA sedutil Self encrypting drive software"; 30 + homepage = "https://www.drivetrust.com"; 31 + license = licenses.gpl3Plus; 32 + platforms = platforms.linux; 33 }; 34 }
+2 -2
pkgs/tools/text/crowdin-cli/default.nix
··· 12 13 stdenv.mkDerivation rec { 14 pname = "crowdin-cli"; 15 - version = "3.7.0"; 16 17 src = fetchurl { 18 url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip"; 19 - sha256 = "sha256-2TQL5k2ndckFjOOXNz7clVpwPUMStR4xgd1P+qUhNC8="; 20 }; 21 22 nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
··· 12 13 stdenv.mkDerivation rec { 14 pname = "crowdin-cli"; 15 + version = "3.7.1"; 16 17 src = fetchurl { 18 url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip"; 19 + sha256 = "sha256-WoDFBV1Nid1y57MIrTFMOB2yqHRUrvhp974Dz5agar0="; 20 }; 21 22 nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
+10 -1
pkgs/top-level/linux-kernels.nix
··· 174 ]; 175 }; 176 177 linux_testing = callPackage ../os-specific/linux/kernel/linux-testing.nix { 178 kernelPatches = [ 179 kernelPatches.bridge_stp_helper ··· 320 321 nvidia_x11_legacy340 = nvidiaPackages.legacy_340; 322 nvidia_x11_legacy390 = nvidiaPackages.legacy_390; 323 nvidia_x11_beta = nvidiaPackages.beta; 324 nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta; 325 nvidia_x11 = nvidiaPackages.stable; ··· 467 linux_5_4 = recurseIntoAttrs (packagesFor kernels.linux_5_4); 468 linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10); 469 linux_5_14 = recurseIntoAttrs (packagesFor kernels.linux_5_14); 470 }; 471 472 rtPackages = { ··· 512 packageAliases = { 513 linux_default = packages.linux_5_10; 514 # Update this when adding the newest kernel major version! 515 - linux_latest = packages.linux_5_14; 516 linux_mptcp = packages.linux_mptcp_95; 517 linux_rt_default = packages.linux_rt_5_4; 518 linux_rt_latest = packages.linux_rt_5_11;
··· 174 ]; 175 }; 176 177 + linux_5_15 = callPackage ../os-specific/linux/kernel/linux-5.15.nix { 178 + kernelPatches = [ 179 + kernelPatches.bridge_stp_helper 180 + kernelPatches.request_key_helper 181 + ]; 182 + }; 183 + 184 linux_testing = callPackage ../os-specific/linux/kernel/linux-testing.nix { 185 kernelPatches = [ 186 kernelPatches.bridge_stp_helper ··· 327 328 nvidia_x11_legacy340 = nvidiaPackages.legacy_340; 329 nvidia_x11_legacy390 = nvidiaPackages.legacy_390; 330 + nvidia_x11_legacy470 = nvidiaPackages.legacy_470; 331 nvidia_x11_beta = nvidiaPackages.beta; 332 nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta; 333 nvidia_x11 = nvidiaPackages.stable; ··· 475 linux_5_4 = recurseIntoAttrs (packagesFor kernels.linux_5_4); 476 linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10); 477 linux_5_14 = recurseIntoAttrs (packagesFor kernels.linux_5_14); 478 + linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15); 479 }; 480 481 rtPackages = { ··· 521 packageAliases = { 522 linux_default = packages.linux_5_10; 523 # Update this when adding the newest kernel major version! 524 + linux_latest = packages.linux_5_15; 525 linux_mptcp = packages.linux_mptcp_95; 526 linux_rt_default = packages.linux_rt_5_4; 527 linux_rt_latest = packages.linux_rt_5_11;