{ buildPackages, fetchurl, lib, stdenv, libgcrypt, readline, libgpg-error }:

stdenv.mkDerivation rec {
  version = "1.6.14";
  pname = "freeipmi";

  src = fetchurl {
    url = "mirror://gnu/freeipmi/${pname}-${version}.tar.gz";
    sha256 = "sha256-Gj2sXHa3zMTU+GqhK475shK673SJvwXombiau34U7bU=";
  };

  depsBuildBuild = [ buildPackages.stdenv.cc ];

  buildInputs = [ libgcrypt readline libgpg-error ];

  configureFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform)
    [ "ac_cv_file__dev_urandom=true" "ac_cv_file__dev_random=true" ];

  doCheck = true;

  meta = {
    description = "Implementation of the Intelligent Platform Management Interface";

    longDescription =
      '' GNU FreeIPMI provides in-band and out-of-band IPMI software based on
         the IPMI v1.5/2.0 specification.  The IPMI specification defines a
         set of interfaces for platform management and is implemented by a
         number vendors for system management.  The features of IPMI that
         most users will be interested in are sensor monitoring, system event
         monitoring, power control, and serial-over-LAN (SOL).  The FreeIPMI
         tools and libraries listed below should provide users with the
         ability to access and utilize these and many other features.  A
         number of useful features for large HPC or cluster environments have
         also been implemented into FreeIPMI. See the README or FAQ for more
         info.
      '';

    homepage = "https://www.gnu.org/software/freeipmi/";
    downloadPage = "https://www.gnu.org/software/freeipmi/download.html";

    license = lib.licenses.gpl3Plus;

    maintainers = with lib.maintainers; [ raskin ];
    platforms = lib.platforms.gnu ++ lib.platforms.linux;  # arbitrary choice
  };
}
