summary refs log blame commit diff
path: root/pkgs/os-specific/linux/util-linux-ng/default.nix
blob: aa0b99a25269cfa35bb861a55b52354d5774c01c (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14













                                                        
                                                                            

                  

                                                                                       


































                                                                                                                    
{ stdenv, fetchurl, ncurses ? null

, # Util-linux-ng requires libuuid and libblkid.
  e2fsprogs

, # Build mount/umount only.
  buildMountOnly ? false
  
, # A directory containing mount helpers programs
  # (i.e. `mount.<fstype>') to be used instead of /sbin.
  mountHelpers ? null
}:

stdenv.mkDerivation {
  name = (if buildMountOnly then "mount-" else "") + "util-linux-ng-2.14.2";

  src = fetchurl {
    url = mirror://kernel/linux/utils/util-linux-ng/v2.14/util-linux-ng-2.14.2.tar.bz2;
    sha256 = "03k3w0f1ljwvv31glnxkk1f66fzyw0wdshgqxz0aixh7l3ln73hh";
  };

  configureFlags = ''
    --disable-use-tty-group
    ${if ncurses == null then "--without-ncurses" else ""}
  '';

  buildInputs = [e2fsprogs]
    ++ stdenv.lib.optional (ncurses != null) ncurses;

  inherit mountHelpers;

  preConfigure = ''
    makeFlagsArray=(usrbinexecdir=$out/bin usrsbinexecdir=$out/sbin datadir=$out/share exampledir=$out/share/getopt)
    if test -n "$mountHelpers"; then
      substituteInPlace mount/mount.c --replace /sbin/mount. $mountHelpers/mount.
      substituteInPlace mount/umount.c --replace /sbin/umount. $mountHelpers/umount.
    fi
  '';

  buildPhase =
    if buildMountOnly then ''
      make "''${makeFlagsArray[@]}" -C lib
      make "''${makeFlagsArray[@]}" -C mount
    '' else "";

  installPhase =
    if buildMountOnly then ''
      make "''${makeFlagsArray[@]}" -C lib install
      make "''${makeFlagsArray[@]}" -C mount install
    '' else "";

  # Hack to get static builds to work.
  NIX_CFLAGS_COMPILE = "-DHAVE___PROGNAME=1"; 
}