{ lib , stdenv , fetchurl , libmnl , pkg-config , writeScript }: stdenv.mkDerivation rec { pname = "ethtool"; version = "6.9"; src = fetchurl { url = "mirror://kernel/software/network/${pname}/${pname}-${version}.tar.xz"; sha256 = "sha256-pxsDVAEGYcXPF4vGBu1Q/LkYBc8Yl60OsoGDh6X9DNk="; }; nativeBuildInputs = [ pkg-config ]; buildInputs = [ 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/"; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = with maintainers; [ bjornfor ]; mainProgram = "ethtool"; }; }