summary refs log blame commit diff
path: root/pkgs/os-specific/linux/eudev/default.nix
blob: 7807f475e9b170cdc73f6fa463dd1295c932cd6c (plain) (tree)



















                                                                 
    
 



                       
    




                 

    



                          
 



                                     

                 


                                                   


                                                                                                    
                  




                                              
                                              







                                                                          

    
{ lib
, stdenv
, fetchFromGitHub
, autoreconfHook
, glib
, gperf
, kmod
, pkg-config
, util-linux
}:

stdenv.mkDerivation rec {
  pname = "eudev";
  version = "3.2.11";

  src = fetchFromGitHub {
    owner = "eudev-project";
    repo = pname;
    rev = "v${version}";
    hash = "sha256-W5nL4hicQ4fxz5rqoP+hhkE1tVn8lJZjMq4UaiXH6jc=";
  };

  nativeBuildInputs = [
    autoreconfHook
    gperf
    pkg-config
  ];

  buildInputs = [
    glib
    kmod
    util-linux
  ];

  configureFlags = [
    "--localstatedir=/var"
    "--sysconfdir=/etc"
  ];

  makeFlags = [
    "hwdb_bin=/var/lib/udev/hwdb.bin"
    "udevrulesdir=/etc/udev/rules.d"
    ];

  preInstall = ''
    # Disable install-exec-hook target,
    # as it conflicts with our move-sbin setup-hook

    sed -i 's;$(MAKE) $(AM_MAKEFLAGS) install-exec-hook;$(MAKE) $(AM_MAKEFLAGS);g' src/udev/Makefile
  '';

  installFlags = [
    "localstatedir=$(TMPDIR)/var"
    "sysconfdir=$(out)/etc"
    "udevconfdir=$(out)/etc/udev"
    "udevhwdbbin=$(out)/var/lib/udev/hwdb.bin"
    "udevhwdbdir=$(out)/var/lib/udev/hwdb.d"
    "udevrulesdir=$(out)/var/lib/udev/rules.d"
  ];

  meta = with lib; {
    homepage = "https://github.com/eudev-project/eudev";
    description = "A fork of udev with the aim of isolating it from init";
    license = licenses.gpl2Plus ;
    maintainers = with maintainers; [ raskin AndersonTorres ];
    platforms = platforms.linux;
  };
}