diff --git a/pkgs/tools/misc/ethtool/default.nix b/pkgs/tools/misc/ethtool/default.nix
index d46815e8bf2a..f80de50ea551 100644
--- a/pkgs/tools/misc/ethtool/default.nix
+++ b/pkgs/tools/misc/ethtool/default.nix
@@ -3,15 +3,16 @@
, fetchurl
, libmnl
, pkg-config
+, writeScript
}:
stdenv.mkDerivation rec {
pname = "ethtool";
- version = "5.16";
+ version = "5.17";
src = fetchurl {
url = "mirror://kernel/software/network/${pname}/${pname}-${version}.tar.xz";
- sha256 = "sha256-qi/vGTbdShF1XfoL25Pw7FvqRSCNJ8l1S8Or4apCwcs=";
+ sha256 = "sha256-ZKuRS5xrRQRyRdkfQLh2CycomSqeWvInF8ZEI46IkTM=";
};
nativeBuildInputs = [
@@ -22,6 +23,22 @@ stdenv.mkDerivation rec {
libmnl
];
+ passthru = {
+ updateScript = writeScript "update-ethtool" ''
+ #!/usr/bin/env nix-shell
+ #!nix-shell -i bash -p curl pcre common-updater-scripts
+
+ set -eu -o pipefail
+
+ # Expect the text in format of '...'
+ # The page always lists versions newest to oldest. Pick the first one.
+ new_version="$(curl -s https://mirrors.edge.kernel.org/pub/software/network/ethtool/ |
+ pcregrep -o1 '' |
+ head -n1)"
+ update-source-version ${pname} "$new_version"
+ '';
+ };
+
meta = with lib; {
description = "Utility for controlling network drivers and hardware";
homepage = "https://www.kernel.org/pub/software/network/ethtool/";