su: Make the su package a provider of only the su binary

Additionally, provide su with the base system and remove su from the
util-linux package as it is now provided by shadow.
This commit is contained in:
William A. Kennington III 2014-04-05 13:41:23 -05:00
parent 4ab58240a9
commit 28ab3acb58
4 changed files with 13 additions and 2 deletions

View File

@ -46,6 +46,7 @@ let
pkgs.rsync
pkgs.strace
pkgs.sysvtools
pkgs.su
pkgs.time
pkgs.usbutils
pkgs.utillinux

View File

@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
patches = [ ./keep-path.patch dots_in_usernames ];
outputs = [ "out" "su" ];
# Assume System V `setpgrp (void)', which is the default on GNU variants
# (`AC_FUNC_SETPGRP' is not cross-compilation capable.)
preConfigure = "export ac_cv_func_setpgrp_void=yes";
@ -35,10 +37,14 @@ stdenv.mkDerivation rec {
substituteInPlace lib/nscd.c --replace /usr/sbin/nscd ${glibc}/sbin/nscd
'';
# Don't install groups, since coreutils already provides it.
postInstall =
''
# Don't install groups, since coreutils already provides it.
rm $out/bin/groups $out/share/man/man1/groups.*
# Move the su binary into the su package
mkdir -p $su/bin
mv $out/bin/su $su/bin
'';
meta = {

View File

@ -36,6 +36,10 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional (ncurses != null) ncurses
++ stdenv.lib.optional (perl != null) perl;
postInstall = ''
rm $out/bin/su # su should be supplied by the su package (shadow)
'';
enableParallelBuilding = true;
meta = {

View File

@ -1995,7 +1995,7 @@ let
stunnel = callPackage ../tools/networking/stunnel { };
su = shadow;
su = shadow.su;
surfraw = callPackage ../tools/networking/surfraw { };