From 9aabffc52a6c030fde527dcef57f570895060789 Mon Sep 17 00:00:00 2001 From: Toast Date: Tue, 10 Dec 2024 11:13:29 +0100 Subject: [PATCH] Flake: remove uneeded nixpkgs patches --- flake.nix | 2 - nixpkgs-patches/pr355973.patch | 213 --------------------------------- nixpkgs-patches/pr359282.patch | 92 -------------- 3 files changed, 307 deletions(-) delete mode 100644 nixpkgs-patches/pr355973.patch delete mode 100644 nixpkgs-patches/pr359282.patch diff --git a/flake.nix b/flake.nix index 6d54e22..7da03e7 100644 --- a/flake.nix +++ b/flake.nix @@ -99,9 +99,7 @@ name = "patched-nixpkgs-unstable"; src = nixpkgs-unstable-raw; patches = [ - ./nixpkgs-patches/pr359282.patch ./nixpkgs-patches/pr361364.patch - ./nixpkgs-patches/pr355973.patch ]; }; nixpkgs-patched = nixpkgs-raw.legacyPackages.x86_64-linux.applyPatches { diff --git a/nixpkgs-patches/pr355973.patch b/nixpkgs-patches/pr355973.patch deleted file mode 100644 index 579b9d2..0000000 --- a/nixpkgs-patches/pr355973.patch +++ /dev/null @@ -1,213 +0,0 @@ -From cb9f9a1e5a51a87d59b373db7016cee1608debd5 Mon Sep 17 00:00:00 2001 -From: Atemu -Date: Thu, 14 Nov 2024 20:07:25 +0100 -Subject: [PATCH 1/2] fetchgit{,hub}: add tag argument - -It's become a common pattern to use `rev = "refs/tags/${version}"` rather than -just `rev = version` to ensure that the tag gets fetched rather than a branch -that has the same name. This has so far been done using boilerplate though, so -let's add a simple abstraction to fetch a tag instead. ---- - doc/build-helpers/fetchers.chapter.md | 5 ++++- - pkgs/build-support/fetchgit/default.nix | 5 ++++- - pkgs/build-support/fetchgithub/default.nix | 11 ++++++++--- - 3 files changed, 16 insertions(+), 5 deletions(-) - -diff --git a/doc/build-helpers/fetchers.chapter.md b/doc/build-helpers/fetchers.chapter.md -index d37a2fecaccda..567d47a1499be 100644 ---- a/doc/build-helpers/fetchers.chapter.md -+++ b/doc/build-helpers/fetchers.chapter.md -@@ -755,6 +755,9 @@ Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `hash` - - Used with Git. Expects `url` to a Git repo, `rev`, and `hash`. `rev` in this case can be full the git commit id (SHA1 hash) or a tag name like `refs/tags/v1.0`. - -+If you want to fetch a tag you should pass the `tag` parameter instead of `rev` which has the same effect as setting `rev = "refs/tags"/${version}"`. -+This is safer than just setting `rev = version` w.r.t. possible branch and tag name conflicts. -+ - Additionally, the following optional arguments can be given: - - *`fetchSubmodules`* (Boolean) -@@ -833,7 +836,7 @@ A number of fetcher functions wrap part of `fetchurl` and `fetchzip`. They are m - - ## `fetchFromGitHub` {#fetchfromgithub} - --`fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `hash` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available, but `hash` is currently preferred. -+`fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. If you need to fetch a tag however, you should prefer to use the `tag` parameter which achieves this in a safer way with less boilerplate. Finally, `hash` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available, but `hash` is currently preferred. - - To use a different GitHub instance, use `githubBase` (defaults to `"github.com"`). - -diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix -index 4c40cbcef7e16..6f4cbba982a0e 100644 ---- a/pkgs/build-support/fetchgit/default.nix -+++ b/pkgs/build-support/fetchgit/default.nix -@@ -13,7 +13,10 @@ in - lib.makeOverridable (lib.fetchers.withNormalizedHash { } ( - # NOTE Please document parameter additions or changes in - # doc/build-helpers/fetchers.chapter.md --{ url, rev ? "HEAD", leaveDotGit ? deepClone -+{ url -+, tag ? null -+, rev ? if tag != null then "refs/tags/${tag}" else "HEAD" # FIXME fetching HEAD by default is problematic at best -+, leaveDotGit ? deepClone - , outputHash ? lib.fakeHash, outputHashAlgo ? null - , fetchSubmodules ? true, deepClone ? false - , branchName ? null -diff --git a/pkgs/build-support/fetchgithub/default.nix b/pkgs/build-support/fetchgithub/default.nix -index d27a3df7d3df7..de9912465a937 100644 ---- a/pkgs/build-support/fetchgithub/default.nix -+++ b/pkgs/build-support/fetchgithub/default.nix -@@ -1,7 +1,10 @@ - { lib, fetchgit, fetchzip }: - - lib.makeOverridable ( --{ owner, repo, rev, name ? "source" -+{ owner, repo -+, tag ? null -+, rev ? if tag != null then "refs/tags/${tag}" else null -+, name ? "source" - , fetchSubmodules ? false, leaveDotGit ? null - , deepClone ? false, private ? false, forceFetchGit ? false - , fetchLFS ? false -@@ -11,6 +14,8 @@ lib.makeOverridable ( - , ... # For hash agility - }@args: - -+assert (lib.assertMsg (rev != null) "You must provide `fetchFromGitHub with a `rev` or `tag`."); -+ - let - - position = (if args.meta.description or null != null -@@ -24,7 +29,7 @@ let - # to indicate where derivation originates, similar to make-derivation.nix's mkDerivation - position = "${position.file}:${toString position.line}"; - }; -- passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "forceFetchGit" "private" "githubBase" "varPrefix" ]; -+ passthruAttrs = removeAttrs args [ "owner" "repo" "tag" "rev" "fetchSubmodules" "forceFetchGit" "private" "githubBase" "varPrefix" ]; - varBase = "NIX${lib.optionalString (varPrefix != null) "_${varPrefix}"}_GITHUB_PRIVATE_"; - useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || fetchLFS || (sparseCheckout != []); - # We prefer fetchzip in cases we don't need submodules as the hash -@@ -53,7 +58,7 @@ let - - fetcherArgs = (if useFetchGit - then { -- inherit rev deepClone fetchSubmodules sparseCheckout fetchLFS; url = gitRepoUrl; -+ inherit tag rev deepClone fetchSubmodules sparseCheckout fetchLFS; url = gitRepoUrl; - } // lib.optionalAttrs (leaveDotGit != null) { inherit leaveDotGit; } - else { - url = "${baseUrl}/archive/${rev}.tar.gz"; - -From e9a31f51468e43aaf8df79d10dca5a3d6447877b Mon Sep 17 00:00:00 2001 -From: Atemu -Date: Wed, 4 Dec 2024 01:37:01 +0100 -Subject: [PATCH 2/2] fetchgit{,hub}: assert illegal tag + rev combinations - -It's quite a bit more complex due to this but this was asked for during review ---- - pkgs/build-support/fetchgit/default.nix | 27 ++++++++++++++++++---- - pkgs/build-support/fetchgithub/default.nix | 11 +++++---- - 2 files changed, 30 insertions(+), 8 deletions(-) - -diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix -index 6f4cbba982a0e..f2b4726fef09d 100644 ---- a/pkgs/build-support/fetchgit/default.nix -+++ b/pkgs/build-support/fetchgit/default.nix -@@ -15,14 +15,14 @@ lib.makeOverridable (lib.fetchers.withNormalizedHash { } ( - # doc/build-helpers/fetchers.chapter.md - { url - , tag ? null --, rev ? if tag != null then "refs/tags/${tag}" else "HEAD" # FIXME fetching HEAD by default is problematic at best -+, rev ? null - , leaveDotGit ? deepClone - , outputHash ? lib.fakeHash, outputHashAlgo ? null - , fetchSubmodules ? true, deepClone ? false - , branchName ? null - , sparseCheckout ? [] - , nonConeMode ? false --, name ? urlToName url rev -+, name ? null - , # Shell code executed after the file has been fetched - # successfully. This can do things like check or transform the file. - postFetch ? "" -@@ -62,12 +62,30 @@ lib.makeOverridable (lib.fetchers.withNormalizedHash { } ( - assert deepClone -> leaveDotGit; - assert nonConeMode -> (sparseCheckout != []); - -+let -+ revWithTag = -+ let -+ warningMsg = "fetchgit requires one of either `rev` or `tag` to be provided (not both)."; -+ otherIsNull = other: lib.assertMsg (other == null) warningMsg; -+ in -+ if tag != null then -+ assert (otherIsNull rev); -+ "refs/tags/${tag}" -+ else if rev != null then -+ assert (otherIsNull tag); -+ rev -+ else -+ # FIXME fetching HEAD if no rev or tag is provided is problematic at best -+ "HEAD"; -+in -+ - if builtins.isString sparseCheckout then - # Changed to throw on 2023-06-04 - throw "Please provide directories/patterns for sparse checkout as a list of strings. Passing a (multi-line) string is not supported any more." - else - stdenvNoCC.mkDerivation { -- inherit name; -+ name = if name != null then name else urlToName url revWithTag; -+ - builder = ./builder.sh; - fetcher = ./nix-prefetch-git; - -@@ -82,7 +100,8 @@ stdenvNoCC.mkDerivation { - # > from standard in as a newline-delimited list instead of from the arguments. - sparseCheckout = builtins.concatStringsSep "\n" sparseCheckout; - -- inherit url rev leaveDotGit fetchLFS fetchSubmodules deepClone branchName nonConeMode postFetch; -+ inherit url leaveDotGit fetchLFS fetchSubmodules deepClone branchName nonConeMode postFetch; -+ rev = revWithTag; - - postHook = if netrcPhase == null then null else '' - ${netrcPhase} -diff --git a/pkgs/build-support/fetchgithub/default.nix b/pkgs/build-support/fetchgithub/default.nix -index de9912465a937..f80e012955336 100644 ---- a/pkgs/build-support/fetchgithub/default.nix -+++ b/pkgs/build-support/fetchgithub/default.nix -@@ -3,7 +3,7 @@ - lib.makeOverridable ( - { owner, repo - , tag ? null --, rev ? if tag != null then "refs/tags/${tag}" else null -+, rev ? null - , name ? "source" - , fetchSubmodules ? false, leaveDotGit ? null - , deepClone ? false, private ? false, forceFetchGit ? false -@@ -14,13 +14,16 @@ lib.makeOverridable ( - , ... # For hash agility - }@args: - --assert (lib.assertMsg (rev != null) "You must provide `fetchFromGitHub with a `rev` or `tag`."); -+assert (lib.assertMsg (lib.xor (tag == null) (rev == null)) "fetchFromGitHub requires one of either `rev` or `tag` to be provided (not both)."); - - let - - position = (if args.meta.description or null != null - then builtins.unsafeGetAttrPos "description" args.meta -- else builtins.unsafeGetAttrPos "rev" args -+ else if tag != null then -+ builtins.unsafeGetAttrPos "tag" args -+ else -+ builtins.unsafeGetAttrPos "rev" args - ); - baseUrl = "https://${githubBase}/${owner}/${repo}"; - newMeta = meta // { -@@ -61,7 +64,7 @@ let - inherit tag rev deepClone fetchSubmodules sparseCheckout fetchLFS; url = gitRepoUrl; - } // lib.optionalAttrs (leaveDotGit != null) { inherit leaveDotGit; } - else { -- url = "${baseUrl}/archive/${rev}.tar.gz"; -+ url = "${baseUrl}/archive/${if tag != null then "refs/tags/${tag}" else rev}.tar.gz"; - - passthru = { - inherit gitRepoUrl; diff --git a/nixpkgs-patches/pr359282.patch b/nixpkgs-patches/pr359282.patch deleted file mode 100644 index df16636..0000000 --- a/nixpkgs-patches/pr359282.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 40b3e9f1d39626c1bf38a315e78a1aafd3f378d4 Mon Sep 17 00:00:00 2001 -From: Toast <39011842+toast003@users.noreply.github.com> -Date: Tue, 26 Nov 2024 13:36:45 +0100 -Subject: [PATCH 1/2] handheld-daemon: 3.4.1 -> 3.5.7 - -Also install hhd's hwdb file, since it is needed for buttons to work -properly on the MSI Claw, among other things ---- - pkgs/by-name/ha/handheld-daemon/package.nix | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/pkgs/by-name/ha/handheld-daemon/package.nix b/pkgs/by-name/ha/handheld-daemon/package.nix -index 286566a2710a4..e21fe848b0942 100644 ---- a/pkgs/by-name/ha/handheld-daemon/package.nix -+++ b/pkgs/by-name/ha/handheld-daemon/package.nix -@@ -8,14 +8,14 @@ - }: - python3.pkgs.buildPythonApplication rec { - pname = "handheld-daemon"; -- version = "3.4.1"; -+ version = "3.5.7"; - pyproject = true; - - src = fetchFromGitHub { - owner = "hhd-dev"; - repo = "hhd"; - rev = "refs/tags/v${version}"; -- hash = "sha256-hup9G4pTlTl68zLzhaDmH7nV8fp/I94Nuis68B8K2wY="; -+ hash = "sha256-nUHEPyTHU7LD6BZg+2cLl4M/ZPb5MQl6xxtJW1iZkEY="; - }; - - propagatedBuildInputs = with python3.pkgs; [ -@@ -27,6 +27,7 @@ python3.pkgs.buildPythonApplication rec { - setuptools - toybox - xlib -+ pyserial - ]; - - # This package doesn't have upstream tests. -@@ -46,6 +47,7 @@ python3.pkgs.buildPythonApplication rec { - - postInstall = '' - install -Dm644 $src/usr/lib/udev/rules.d/83-hhd.rules -t $out/lib/udev/rules.d/ -+ install -Dm644 $src/usr/lib/udev/hwdb.d/83-hhd.hwdb -t $out/lib/udev/hwdb.d/ - ''; - - meta = with lib; { - -From efc1301777818548a2f23f31248486e680502456 Mon Sep 17 00:00:00 2001 -From: Toast <39011842+toast003@users.noreply.github.com> -Date: Tue, 26 Nov 2024 17:50:06 +0100 -Subject: [PATCH 2/2] handheld-daemon: 3.5.7 -> 3.6.1 - -Version 3.6.0 added lsof as a dependency ---- - pkgs/by-name/ha/handheld-daemon/package.nix | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/pkgs/by-name/ha/handheld-daemon/package.nix b/pkgs/by-name/ha/handheld-daemon/package.nix -index e21fe848b0942..b99cd1c581476 100644 ---- a/pkgs/by-name/ha/handheld-daemon/package.nix -+++ b/pkgs/by-name/ha/handheld-daemon/package.nix -@@ -5,17 +5,18 @@ - lib, - python3, - toybox, -+ lsof - }: - python3.pkgs.buildPythonApplication rec { - pname = "handheld-daemon"; -- version = "3.5.7"; -+ version = "3.6.1"; - pyproject = true; - - src = fetchFromGitHub { - owner = "hhd-dev"; - repo = "hhd"; - rev = "refs/tags/v${version}"; -- hash = "sha256-nUHEPyTHU7LD6BZg+2cLl4M/ZPb5MQl6xxtJW1iZkEY="; -+ hash = "sha256-IdpSRb66G+WzTv/BC29r2OjO1b4VdWbV6OSzOoiFAO0="; - }; - - propagatedBuildInputs = with python3.pkgs; [ -@@ -28,6 +29,7 @@ python3.pkgs.buildPythonApplication rec { - toybox - xlib - pyserial -+ lsof - ]; - - # This package doesn't have upstream tests.