Loading pkgs/os-specific/linux/mstflint_access/default.nix 0 → 100644 +40 −0 Original line number Diff line number Diff line { lib, stdenv, fetchurl, kernel, kmod, mstflint }: stdenv.mkDerivation rec { pname = "mstflint_access"; inherit (mstflint) version; src = fetchurl { url = "https://github.com/Mellanox/mstflint/releases/download/v${version}/kernel-mstflint-${version}.tar.gz"; hash = "sha256-rfZts0m8x6clVazpbAa2xK+dYgRU9Us5rbcWa0uHJ1M="; }; nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies; makeFlags = kernel.makeFlags ++ [ "KVER=${kernel.modDirVersion}" "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; enableParallelBuilding = true; preConfigure = lib.optionals (lib.versionAtLeast kernel.version "6.4") '' sed -i "s/class_create(THIS_MODULE, dev->name)/class_create(dev->name)/g" mst_main.c ''; installPhase = '' runHook preInstall install -D ${pname}.ko $out/lib/modules/${kernel.modDirVersion}/extra/${pname}.ko runHook postInstall ''; meta = with lib; { description = "A kernel module for Nvidia NIC firmware update"; homepage = "https://github.com/Mellanox/mstflint"; license = [ licenses.gpl2Only ]; maintainers = with maintainers; [ thillux ]; platforms = platforms.linux; }; } pkgs/tools/misc/mstflint/default.nix +89 −5 Original line number Diff line number Diff line { lib , stdenv , fetchurl , libibmad , rdma-core , openssl , zlib , xz , expat , boost , curl , pkg-config , libxml2 , pciutils , busybox , python3 , automake , autoconf , libtool , git # use this to shrink the package's footprint if necessary (e.g. for hardened appliances) , onlyFirmwareUpdater ? false # contains binary-only libraries , enableDPA ? true }: stdenv.mkDerivation rec { pname = "mstflint"; version = "4.17.0-1"; version = "4.26.0-1"; src = fetchurl { url = "https://github.com/Mellanox/mstflint/releases/download/v${version}/mstflint-${version}.tar.gz"; sha256 = "030vpiv44sxmjf0dng91ziq1cggwj33yp0l4xc6cdhnrv2prjs7y"; hash = "sha256-P8XACcz6d8UTOhFFeTijfFOthBqnUghGlDj9K145sZ8="; }; nativeBuildInputs = [ autoconf automake libtool pkg-config libxml2 git ]; buildInputs = [ libibmad openssl rdma-core zlib libxml2 openssl ] ++ lib.optionals (!onlyFirmwareUpdater) [ boost curl expat xz python3 ]; preConfigure = '' export CPPFLAGS="-I$(pwd)/tools_layouts -isystem ${libxml2.dev}/include/libxml2" export INSTALL_BASEDIR=$out ./autogen.sh ''; # Cannot use wrapProgram since the python script's logic depends on the # filename and will get messed up if the executable is named ".xyz-wrapped". # That is why the python executable and runtime dependencies are injected # this way. # # Remove host_cpu replacement again (see https://github.com/Mellanox/mstflint/pull/865), # needs to hit master or a release. master_devel may be rebased. # # Remove patch for regex check, after https://github.com/Mellanox/mstflint/pull/871 # got merged. prePatch = [ '' patchShebangs eval_git_sha.sh substituteInPlace configure.ac \ --replace "build_cpu" "host_cpu" substituteInPlace common/compatibility.h \ --replace "#define ROOT_PATH \"/\"" "#define ROOT_PATH \"$out/\"" substituteInPlace configure.ac \ --replace 'Whether to use GNU C regex])' 'Whether to use GNU C regex])],[AC_MSG_RESULT([yes])' '' (lib.optionals (!onlyFirmwareUpdater) '' substituteInPlace common/python_wrapper.sh \ --replace \ 'exec $PYTHON_EXEC $SCRIPT_PATH "$@"' \ 'export PATH=$PATH:${lib.makeBinPath [ (placeholder "out") pciutils busybox]}; exec ${python3}/bin/python3 $SCRIPT_PATH "$@"' '') ]; configureFlags = [ "--enable-xml2" "--datarootdir=${placeholder "out"}/share" ] ++ lib.optionals (!onlyFirmwareUpdater) [ "--enable-adb-generic-tools" "--enable-cs" "--enable-dc" "--enable-fw-mgr" "--enable-inband" "--enable-rdmem" ] ++ lib.optionals enableDPA [ "--enable-dpa" ]; enableParallelBuilding = true; hardeningDisable = [ "format" ]; dontDisableStatic = true; # the build fails without this. should probably be reported upstream Loading @@ -29,6 +112,7 @@ stdenv.mkDerivation rec { description = "Open source version of Mellanox Firmware Tools (MFT)"; homepage = "https://github.com/Mellanox/mstflint"; license = with licenses; [ gpl2 bsd2 ]; maintainers = with maintainers; [ thillux ]; platforms = platforms.linux; }; } pkgs/top-level/linux-kernels.nix +2 −0 Original line number Diff line number Diff line Loading @@ -387,6 +387,8 @@ in { lttng-modules = callPackage ../os-specific/linux/lttng-modules { }; mstflint_access = callPackage ../os-specific/linux/mstflint_access { }; broadcom_sta = callPackage ../os-specific/linux/broadcom-sta { }; tbs = callPackage ../os-specific/linux/tbs { }; Loading Loading
pkgs/os-specific/linux/mstflint_access/default.nix 0 → 100644 +40 −0 Original line number Diff line number Diff line { lib, stdenv, fetchurl, kernel, kmod, mstflint }: stdenv.mkDerivation rec { pname = "mstflint_access"; inherit (mstflint) version; src = fetchurl { url = "https://github.com/Mellanox/mstflint/releases/download/v${version}/kernel-mstflint-${version}.tar.gz"; hash = "sha256-rfZts0m8x6clVazpbAa2xK+dYgRU9Us5rbcWa0uHJ1M="; }; nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies; makeFlags = kernel.makeFlags ++ [ "KVER=${kernel.modDirVersion}" "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; enableParallelBuilding = true; preConfigure = lib.optionals (lib.versionAtLeast kernel.version "6.4") '' sed -i "s/class_create(THIS_MODULE, dev->name)/class_create(dev->name)/g" mst_main.c ''; installPhase = '' runHook preInstall install -D ${pname}.ko $out/lib/modules/${kernel.modDirVersion}/extra/${pname}.ko runHook postInstall ''; meta = with lib; { description = "A kernel module for Nvidia NIC firmware update"; homepage = "https://github.com/Mellanox/mstflint"; license = [ licenses.gpl2Only ]; maintainers = with maintainers; [ thillux ]; platforms = platforms.linux; }; }
pkgs/tools/misc/mstflint/default.nix +89 −5 Original line number Diff line number Diff line { lib , stdenv , fetchurl , libibmad , rdma-core , openssl , zlib , xz , expat , boost , curl , pkg-config , libxml2 , pciutils , busybox , python3 , automake , autoconf , libtool , git # use this to shrink the package's footprint if necessary (e.g. for hardened appliances) , onlyFirmwareUpdater ? false # contains binary-only libraries , enableDPA ? true }: stdenv.mkDerivation rec { pname = "mstflint"; version = "4.17.0-1"; version = "4.26.0-1"; src = fetchurl { url = "https://github.com/Mellanox/mstflint/releases/download/v${version}/mstflint-${version}.tar.gz"; sha256 = "030vpiv44sxmjf0dng91ziq1cggwj33yp0l4xc6cdhnrv2prjs7y"; hash = "sha256-P8XACcz6d8UTOhFFeTijfFOthBqnUghGlDj9K145sZ8="; }; nativeBuildInputs = [ autoconf automake libtool pkg-config libxml2 git ]; buildInputs = [ libibmad openssl rdma-core zlib libxml2 openssl ] ++ lib.optionals (!onlyFirmwareUpdater) [ boost curl expat xz python3 ]; preConfigure = '' export CPPFLAGS="-I$(pwd)/tools_layouts -isystem ${libxml2.dev}/include/libxml2" export INSTALL_BASEDIR=$out ./autogen.sh ''; # Cannot use wrapProgram since the python script's logic depends on the # filename and will get messed up if the executable is named ".xyz-wrapped". # That is why the python executable and runtime dependencies are injected # this way. # # Remove host_cpu replacement again (see https://github.com/Mellanox/mstflint/pull/865), # needs to hit master or a release. master_devel may be rebased. # # Remove patch for regex check, after https://github.com/Mellanox/mstflint/pull/871 # got merged. prePatch = [ '' patchShebangs eval_git_sha.sh substituteInPlace configure.ac \ --replace "build_cpu" "host_cpu" substituteInPlace common/compatibility.h \ --replace "#define ROOT_PATH \"/\"" "#define ROOT_PATH \"$out/\"" substituteInPlace configure.ac \ --replace 'Whether to use GNU C regex])' 'Whether to use GNU C regex])],[AC_MSG_RESULT([yes])' '' (lib.optionals (!onlyFirmwareUpdater) '' substituteInPlace common/python_wrapper.sh \ --replace \ 'exec $PYTHON_EXEC $SCRIPT_PATH "$@"' \ 'export PATH=$PATH:${lib.makeBinPath [ (placeholder "out") pciutils busybox]}; exec ${python3}/bin/python3 $SCRIPT_PATH "$@"' '') ]; configureFlags = [ "--enable-xml2" "--datarootdir=${placeholder "out"}/share" ] ++ lib.optionals (!onlyFirmwareUpdater) [ "--enable-adb-generic-tools" "--enable-cs" "--enable-dc" "--enable-fw-mgr" "--enable-inband" "--enable-rdmem" ] ++ lib.optionals enableDPA [ "--enable-dpa" ]; enableParallelBuilding = true; hardeningDisable = [ "format" ]; dontDisableStatic = true; # the build fails without this. should probably be reported upstream Loading @@ -29,6 +112,7 @@ stdenv.mkDerivation rec { description = "Open source version of Mellanox Firmware Tools (MFT)"; homepage = "https://github.com/Mellanox/mstflint"; license = with licenses; [ gpl2 bsd2 ]; maintainers = with maintainers; [ thillux ]; platforms = platforms.linux; }; }
pkgs/top-level/linux-kernels.nix +2 −0 Original line number Diff line number Diff line Loading @@ -387,6 +387,8 @@ in { lttng-modules = callPackage ../os-specific/linux/lttng-modules { }; mstflint_access = callPackage ../os-specific/linux/mstflint_access { }; broadcom_sta = callPackage ../os-specific/linux/broadcom-sta { }; tbs = callPackage ../os-specific/linux/tbs { }; Loading