diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml
index 53066456f98..8abab809023 100644
--- a/.github/workflows/backport.yml
+++ b/.github/workflows/backport.yml
@@ -26,14 +26,11 @@ jobs:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs
- # should be kept in sync with `version`
- uses: zeebe-io/backport-action@v0.0.5
+ uses: zeebe-io/backport-action@v0.0.8
with:
# Config README: https://github.com/zeebe-io/backport-action#backport-action
github_token: ${{ secrets.GITHUB_TOKEN }}
github_workspace: ${{ github.workspace }}
- # should be kept in sync with `uses`
- version: v0.0.5
pull_description: |-
Bot-based backport to `${target_branch}`, triggered by a label in #${pull_number}.
diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md
index 4c245a7544e..1baa135ae58 100644
--- a/doc/languages-frameworks/dotnet.section.md
+++ b/doc/languages-frameworks/dotnet.section.md
@@ -71,7 +71,7 @@ The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given
To package Dotnet applications, you can use `buildDotnetModule`. This has similar arguments to `stdenv.mkDerivation`, with the following additions:
-* `projectFile` has to be used for specifying the dotnet project file relative to the source root. These usually have `.sln` or `.csproj` file extensions. This can be an array of multiple projects as well.
+* `projectFile` is used for specifying the dotnet project file, relative to the source root. These usually have `.sln` or `.csproj` file extensions. This can be a list of multiple projects as well. Most of the time dotnet can figure this location out by itself, so this should only be set if necessary.
* `nugetDeps` takes either a path to a `deps.nix` file, or a derivation. The `deps.nix` file can be generated using the script attached to `passthru.fetch-deps`. This file can also be generated manually using `nuget-to-nix` tool, which is available in nixpkgs. If the argument is a derivation, it will be used directly and assume it has the same output as `mkNugetDeps`.
* `packNupkg` is used to pack project as a `nupkg`, and installs it to `$out/share`. If set to `true`, the derivation can be used as a dependency for another dotnet project by adding it to `projectReferences`.
* `projectReferences` can be used to resolve `ProjectReference` project items. Referenced projects can be packed with `buildDotnetModule` by setting the `packNupkg = true` attribute and passing a list of derivations to `projectReferences`. Since we are sharing referenced projects as NuGets they must be added to csproj/fsproj files as `PackageReference` as well.
@@ -100,7 +100,7 @@ To package Dotnet applications, you can use `buildDotnetModule`. This has simila
* `dotnetPackFlags` can be used to pass flags to `dotnet pack`. Used only if `packNupkg` is set to `true`.
* `dotnetFlags` can be used to pass flags to all of the above phases.
-When packaging a new application, you need to fetch it's dependencies. You can set `nugetDeps` to an empty string to make the derivation temporarily evaluate, and then run `nix-build -A package.passthru.fetch-deps` to generate it's dependency fetching script. After running the script, you should have the location of the generated lockfile printed to the console. This can be copied to a stable directory. Note that if either `projectFile` or `nugetDeps` are unset, this script cannot be generated!
+When packaging a new application, you need to fetch its dependencies. You can run `nix-build -A package.fetch-deps` to generate a script that will build a lockfile for you. After running the script you should have the location of the generated lockfile printed to the console, which can be copied to a stable directory. Then set `nugetDeps = ./deps.nix` and you're ready to build the derivation.
Here is an example `default.nix`, using some of the previously discussed arguments:
```nix
diff --git a/nixos/tests/zfs.nix b/nixos/tests/zfs.nix
index 0b44961a3de..29df691cecb 100644
--- a/nixos/tests/zfs.nix
+++ b/nixos/tests/zfs.nix
@@ -8,7 +8,9 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
let
makeZfsTest = name:
- { kernelPackage ? if enableUnstable then pkgs.linuxPackages_latest else pkgs.linuxPackages
+ { kernelPackage ? if enableUnstable
+ then pkgs.zfsUnstable.latestCompatibleLinuxPackages
+ else pkgs.linuxPackages
, enableUnstable ? false
, extraTest ? ""
}:
diff --git a/pkgs/applications/audio/cider/default.nix b/pkgs/applications/audio/cider/default.nix
index bb59a6d498c..7a042f6ceb1 100644
--- a/pkgs/applications/audio/cider/default.nix
+++ b/pkgs/applications/audio/cider/default.nix
@@ -2,11 +2,11 @@
appimageTools.wrapType2 rec {
pname = "cider";
- version = "1.4.1.1680";
+ version = "1.5.6";
src = fetchurl {
- url = "https://github.com/ciderapp/cider-releases/releases/download/v${version}/Cider-${builtins.concatStringsSep "." (lib.take 3 (lib.splitVersion version))}-alpha.${builtins.elemAt (lib.splitVersion version) 3}.AppImage";
- sha256 = "sha256-hEv+vfMMH+Trwa1UF5R8EtyYeyiRVLP0BrXOK2+1q8M=";
+ url = "https://github.com/ciderapp/cider-releases/releases/download/v${version}/Cider-${version}.AppImage";
+ sha256 = "sha256-gn0dRoPPolujZ1ukuo/esSLwbhiPdcknIe9+W6iRaYw=";
};
extraInstallCommands =
diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix
index 0e8e4e6e24a..1047da60906 100644
--- a/pkgs/applications/audio/ft2-clone/default.nix
+++ b/pkgs/applications/audio/ft2-clone/default.nix
@@ -13,13 +13,13 @@
stdenv.mkDerivation rec {
pname = "ft2-clone";
- version = "1.57";
+ version = "1.58";
src = fetchFromGitHub {
owner = "8bitbubsy";
repo = "ft2-clone";
rev = "v${version}";
- sha256 = "sha256-47MDroiO8zvYDdHe0350ukczzemRbesEzIXZ2KoXZUI=";
+ sha256 = "sha256-FHhASs1PKTz6G1sAKNUeft0BHbWgl44l7eiOnyQXZb8=";
};
# Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
diff --git a/pkgs/applications/science/chemistry/jmol/default.nix b/pkgs/applications/science/chemistry/jmol/default.nix
index 3ff22bad3ce..ea0eba2249e 100644
--- a/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/pkgs/applications/science/chemistry/jmol/default.nix
@@ -25,14 +25,14 @@ let
};
in
stdenv.mkDerivation rec {
- version = "14.32.74";
+ version = "14.32.75";
pname = "jmol";
src = let
baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
in fetchurl {
url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
- sha256 = "sha256-wqZJn/kp3nd94AVe1kJpIa6VU1HYhiM4WoY6fRaJoNg=";
+ sha256 = "sha256-2D2WBrBmmA84RVLsICFMeQKLvv5nIekbS/EGlmlvtYQ=";
};
patchPhase = ''
diff --git a/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix b/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
index 645b4c3eb9a..8e765824b22 100644
--- a/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "git-cliff";
- version = "0.9.1";
+ version = "0.9.2";
src = fetchFromGitHub {
owner = "orhun";
repo = "git-cliff";
rev = "v${version}";
- sha256 = "sha256-dtvA7wH2RNqaFnT8SbHHe3dCEBjWdEC21SWEWxI8XrU=";
+ sha256 = "sha256-6OxYIr2ElyB4QHiPV/KAELmKC+qFGpgerhlDPjLvsio=";
};
- cargoSha256 = "sha256-e6YifzTPZ6XS50F7rLomhgdXYY2WC24xLvnLkTj494U=";
+ cargoSha256 = "sha256-+C7MXmn3FrhD9UVdRmRZbH/rzleATBT0bdlQUSOae5Y=";
# attempts to run the program on .git in src which is not deterministic
doCheck = false;
diff --git a/pkgs/applications/version-management/tortoisehg/default.nix b/pkgs/applications/version-management/tortoisehg/default.nix
index 6a9903c25b2..7d74f86975a 100644
--- a/pkgs/applications/version-management/tortoisehg/default.nix
+++ b/pkgs/applications/version-management/tortoisehg/default.nix
@@ -7,11 +7,11 @@
python3Packages.buildPythonApplication rec {
pname = "tortoisehg";
- version = "6.1";
+ version = "6.2.2";
src = fetchurl {
url = "https://www.mercurial-scm.org/release/tortoisehg/targz/tortoisehg-${version}.tar.gz";
- sha256 = "sha256-UG13BlFY9DcsCPWaBiYa6r2oA3ieJtTYfXknDoKNkYI=";
+ sha256 = "sha256-Xbvg/FcuX/AL2reWsaM2oaFyLby3+HDCfYtRyswE7DA=";
};
# Extension point for when thg's mercurial is lagging behind mainline.
@@ -54,6 +54,6 @@ python3Packages.buildPythonApplication rec {
homepage = "https://tortoisehg.bitbucket.io/";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
- maintainers = with lib.maintainers; [ danbst ];
+ maintainers = with lib.maintainers; [ danbst gbtb ];
};
}
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
index 470d2d47ff9..b65aecd7e05 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/default.nix
+++ b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
@@ -1,18 +1,18 @@
{ lib
, stdenvNoCC
, callPackage
+, writeShellScript
+, writeText
+, srcOnly
, linkFarmFromDrvs
+, symlinkJoin
+, makeWrapper
, dotnetCorePackages
, dotnetPackages
, mkNugetSource
, mkNugetDeps
-, srcOnly
-, writeShellScript
-, writeText
-, makeWrapper
, nuget-to-nix
, cacert
-, symlinkJoin
, coreutils
}:
@@ -20,88 +20,87 @@
, pname ? name
, enableParallelBuilding ? true
, doCheck ? false
-# Flags to pass to `makeWrapper`. This is done to avoid double wrapping.
-, makeWrapperArgs ? []
+ # Flags to pass to `makeWrapper`. This is done to avoid double wrapping.
+, makeWrapperArgs ? [ ]
-# Flags to pass to `dotnet restore`.
-, dotnetRestoreFlags ? []
-# Flags to pass to `dotnet build`.
-, dotnetBuildFlags ? []
-# Flags to pass to `dotnet test`, if running tests is enabled.
-, dotnetTestFlags ? []
-# Flags to pass to `dotnet install`.
-, dotnetInstallFlags ? []
-# Flags to pass to `dotnet pack`.
-, dotnetPackFlags ? []
-# Flags to pass to dotnet in all phases.
-, dotnetFlags ? []
+ # Flags to pass to `dotnet restore`.
+, dotnetRestoreFlags ? [ ]
+ # Flags to pass to `dotnet build`.
+, dotnetBuildFlags ? [ ]
+ # Flags to pass to `dotnet test`, if running tests is enabled.
+, dotnetTestFlags ? [ ]
+ # Flags to pass to `dotnet install`.
+, dotnetInstallFlags ? [ ]
+ # Flags to pass to `dotnet pack`.
+, dotnetPackFlags ? [ ]
+ # Flags to pass to dotnet in all phases.
+, dotnetFlags ? [ ]
-# The path to publish the project to. When unset, the directory "$out/lib/$pname" is used.
+ # The path to publish the project to. When unset, the directory "$out/lib/$pname" is used.
, installPath ? null
-# The binaries that should get installed to `$out/bin`, relative to `$out/lib/$pname/`. These get wrapped accordingly.
-# Unfortunately, dotnet has no method for doing this automatically.
-# If unset, all executables in the projects root will get installed. This may cause bloat!
+ # The binaries that should get installed to `$out/bin`, relative to `$out/lib/$pname/`. These get wrapped accordingly.
+ # Unfortunately, dotnet has no method for doing this automatically.
+ # If unset, all executables in the projects root will get installed. This may cause bloat!
, executables ? null
-# Packs a project as a `nupkg`, and installs it to `$out/share`. If set to `true`, the derivation can be used as a dependency for another dotnet project by adding it to `projectReferences`.
+ # Packs a project as a `nupkg`, and installs it to `$out/share`. If set to `true`, the derivation can be used as a dependency for another dotnet project by adding it to `projectReferences`.
, packNupkg ? false
-# The packages project file, which contains instructions on how to compile it. This can be an array of multiple project files as well.
+ # The packages project file, which contains instructions on how to compile it. This can be an array of multiple project files as well.
, projectFile ? null
-# The NuGet dependency file. This locks all NuGet dependency versions, as otherwise they cannot be deterministically fetched.
-# This can be generated by running the `passthru.fetch-deps` script.
+ # The NuGet dependency file. This locks all NuGet dependency versions, as otherwise they cannot be deterministically fetched.
+ # This can be generated by running the `passthru.fetch-deps` script.
, nugetDeps ? null
-# A list of derivations containing nupkg packages for local project references.
-# Referenced derivations can be built with `buildDotnetModule` with `packNupkg=true` flag.
-# Since we are sharing them as nugets they must be added to csproj/fsproj files as `PackageReference` as well.
-# For example, your project has a local dependency:
-#
-# To enable discovery through `projectReferences` you would need to add a line:
-#
-#
-, projectReferences ? []
-# Libraries that need to be available at runtime should be passed through this.
-# These get wrapped into `LD_LIBRARY_PATH`.
-, runtimeDeps ? []
+ # A list of derivations containing nupkg packages for local project references.
+ # Referenced derivations can be built with `buildDotnetModule` with `packNupkg=true` flag.
+ # Since we are sharing them as nugets they must be added to csproj/fsproj files as `PackageReference` as well.
+ # For example, your project has a local dependency:
+ #
+ # To enable discovery through `projectReferences` you would need to add a line:
+ #
+ #
+, projectReferences ? [ ]
+ # Libraries that need to be available at runtime should be passed through this.
+ # These get wrapped into `LD_LIBRARY_PATH`.
+, runtimeDeps ? [ ]
-# Tests to disable. This gets passed to `dotnet test --filter "FullyQualifiedName!={}"`, to ensure compatibility with all frameworks.
-# See https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test#filter-option-details for more details.
-, disabledTests ? []
-# The project file to run unit tests against. This is usually referenced in the regular project file, but sometimes it needs to be manually set.
-# It gets restored and build, but not installed. You may need to regenerate your nuget lockfile after setting this.
+ # Tests to disable. This gets passed to `dotnet test --filter "FullyQualifiedName!={}"`, to ensure compatibility with all frameworks.
+ # See https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test#filter-option-details for more details.
+, disabledTests ? [ ]
+ # The project file to run unit tests against. This is usually referenced in the regular project file, but sometimes it needs to be manually set.
+ # It gets restored and build, but not installed. You may need to regenerate your nuget lockfile after setting this.
, testProjectFile ? ""
-# The type of build to perform. This is passed to `dotnet` with the `--configuration` flag. Possible values are `Release`, `Debug`, etc.
+ # The type of build to perform. This is passed to `dotnet` with the `--configuration` flag. Possible values are `Release`, `Debug`, etc.
, buildType ? "Release"
-# If set to true, builds the application as a self-contained - removing the runtime dependency on dotnet
+ # If set to true, builds the application as a self-contained - removing the runtime dependency on dotnet
, selfContainedBuild ? false
-# The dotnet SDK to use.
+ # The dotnet SDK to use.
, dotnet-sdk ? dotnetCorePackages.sdk_6_0
-# The dotnet runtime to use.
+ # The dotnet runtime to use.
, dotnet-runtime ? dotnetCorePackages.runtime_6_0
-# The dotnet SDK to run tests against. This can differentiate from the SDK compiled against.
+ # The dotnet SDK to run tests against. This can differentiate from the SDK compiled against.
, dotnet-test-sdk ? dotnet-sdk
-, ... } @ args:
-
-assert projectFile == null -> throw "Defining the `projectFile` attribute is required. This is usually an `.csproj`, or `.sln` file.";
-
-# TODO: Automatically generate a dependency file when a lockfile is present.
-# This file is unfortunately almost never present, as Microsoft recommands not to push this in upstream repositories.
-assert nugetDeps == null -> throw "Defining the `nugetDeps` attribute is required, as to lock the NuGet dependencies. This file can be generated by running the `passthru.fetch-deps` script.";
+, ...
+} @ args:
let
inherit (callPackage ./hooks {
inherit dotnet-sdk dotnet-test-sdk disabledTests nuget-source dotnet-runtime runtimeDeps buildType;
}) dotnetConfigureHook dotnetBuildHook dotnetCheckHook dotnetInstallHook dotnetFixupHook;
- localDeps = if (projectReferences != [])
+ localDeps =
+ if (projectReferences != [ ])
then linkFarmFromDrvs "${name}-project-references" projectReferences
else null;
- _nugetDeps = if lib.isDerivation nugetDeps
- then nugetDeps
- else mkNugetDeps { inherit name; nugetDeps = import nugetDeps; };
+ _nugetDeps =
+ if (nugetDeps != null) then
+ if lib.isDerivation nugetDeps
+ then nugetDeps
+ else mkNugetDeps { inherit name; nugetDeps = import nugetDeps; }
+ else throw "Defining the `nugetDeps` attribute is required, as to lock the NuGet dependencies. This file can be generated by running the `passthru.fetch-deps` script.";
# contains the actual package dependencies
- _dependenciesSource = mkNugetSource {
+ dependenciesSource = mkNugetSource {
name = "${name}-dependencies-source";
description = "A Nuget source with the dependencies for ${name}";
deps = [ _nugetDeps ] ++ lib.optional (localDeps != null) localDeps;
@@ -110,22 +109,23 @@ let
# this contains all the nuget packages that are implictly referenced by the dotnet
# build system. having them as separate deps allows us to avoid having to regenerate
# a packages dependencies when the dotnet-sdk version changes
- _sdkDeps = mkNugetDeps {
+ sdkDeps = mkNugetDeps {
name = "dotnet-sdk-${dotnet-sdk.version}-deps";
nugetDeps = dotnet-sdk.passthru.packages;
};
- _sdkSource = mkNugetSource {
+ sdkSource = mkNugetSource {
name = "dotnet-sdk-${dotnet-sdk.version}-source";
- deps = [ _sdkDeps ];
+ deps = [ sdkDeps ];
};
nuget-source = symlinkJoin {
name = "${name}-nuget-source";
- paths = [ _dependenciesSource _sdkSource ];
+ paths = [ dependenciesSource sdkSource ];
};
-in stdenvNoCC.mkDerivation (args // {
- nativeBuildInputs = args.nativeBuildInputs or [] ++ [
+in
+stdenvNoCC.mkDerivation (args // {
+ nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [
dotnetConfigureHook
dotnetBuildHook
dotnetCheckHook
@@ -150,74 +150,109 @@ in stdenvNoCC.mkDerivation (args // {
passthru = {
inherit nuget-source;
- fetch-deps = let
- # Because this list is rather long its put in its own store path to maintain readability of the generated script
- exclusions = writeText "nuget-package-exclusions" (lib.concatStringsSep "\n" (dotnet-sdk.passthru.packages { fetchNuGet = attrs: attrs.pname; }));
+ fetch-deps =
+ let
+ # Because this list is rather long its put in its own store path to maintain readability of the generated script
+ exclusions = writeText "nuget-package-exclusions" (lib.concatStringsSep "\n" (dotnet-sdk.passthru.packages { fetchNuGet = attrs: attrs.pname; }));
- runtimeIds = map (system: dotnet-sdk.systemToDotnetRid system) (args.meta.platforms or dotnet-sdk.meta.platforms);
+ # Derivations may set flags such as `--runtime ` based on the host platform to avoid restoring/building nuget dependencies they dont have or dont need.
+ # This introduces an issue; In this script we loop over all platforms from `meta` and add the RID flag for it, as to fetch all required dependencies.
+ # The script would inherit the RID flag from the derivation based on the platform building the script, and set the flag for any iteration we do over the RIDs.
+ # That causes conflicts. To circumvent it we remove all occurances of the flag.
+ flags =
+ let
+ hasRid = flag: lib.any (v: v) (map (rid: lib.hasInfix rid flag) (lib.attrValues dotnet-sdk.runtimeIdentifierMap));
+ in
+ builtins.filter (flag: !(hasRid flag)) (dotnetFlags ++ dotnetRestoreFlags);
- # Derivations may set flags such as `--runtime ` based on the host platform to avoid restoring/building nuget dependencies they dont have or dont need.
- # This introduces an issue; In this script we loop over all platforms from `meta` and add the RID flag for it, as to fetch all required dependencies.
- # The script would inherit the RID flag from the derivation based on the platform building the script, and set the flag for any iteration we do over the RIDs.
- # That causes conflicts. To circumvent it we remove all occurances of the flag.
- flags =
- let
- hasRid = flag: lib.any (v: v) (map (rid: lib.hasInfix rid flag) (lib.attrValues dotnet-sdk.runtimeIdentifierMap));
- in
- builtins.filter (flag: !(hasRid flag)) (dotnetFlags ++ dotnetRestoreFlags);
+ runtimeIds = map (system: dotnet-sdk.systemToDotnetRid system) (args.meta.platforms or dotnet-sdk.meta.platforms);
+ in
+ writeShellScript "fetch-${pname}-deps" ''
+ set -euo pipefail
- in writeShellScript "fetch-${pname}-deps" ''
- set -euo pipefail
+ export PATH="${lib.makeBinPath [ coreutils dotnet-sdk nuget-to-nix ]}"
- export PATH="${lib.makeBinPath [ coreutils dotnet-sdk nuget-to-nix ]}"
+ for arg in "$@"; do
+ case "$arg" in
+ --keep-sources|-k)
+ keepSources=1
+ shift
+ ;;
+ --help|-h)
+ echo "usage: $0