diff options
author | Lluís Batlle i Rossell <viric@viric.name> | 2013-04-10 15:54:12 +0200 |
---|---|---|
committer | Lluís Batlle i Rossell <viric@viric.name> | 2013-04-10 15:56:14 +0200 |
commit | 91a94932d91a4452c31445c7351960a4b61b7f1e (patch) | |
tree | af0b58b36820b56c3f08af086e9be6f02cf9ee77 /pkgs/tools/misc/coreutils | |
parent | d8f98d1a8542bade5c342f0029ad6c58e65d4de2 (diff) | |
download | nixlib-91a94932d91a4452c31445c7351960a4b61b7f1e.tar nixlib-91a94932d91a4452c31445c7351960a4b61b7f1e.tar.gz nixlib-91a94932d91a4452c31445c7351960a4b61b7f1e.tar.bz2 nixlib-91a94932d91a4452c31445c7351960a4b61b7f1e.tar.lz nixlib-91a94932d91a4452c31445c7351960a4b61b7f1e.tar.xz nixlib-91a94932d91a4452c31445c7351960a4b61b7f1e.tar.zst nixlib-91a94932d91a4452c31445c7351960a4b61b7f1e.zip |
coreutils: fixing cross-build
coreutils can't generate the man pages cross-building. I do a trick to get them from a non-cross-built coreutils.
Diffstat (limited to 'pkgs/tools/misc/coreutils')
-rw-r--r-- | pkgs/tools/misc/coreutils/default.nix | 103 |
1 files changed, 60 insertions, 43 deletions
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix index 065d237a0731..f55fbc31925a 100644 --- a/pkgs/tools/misc/coreutils/default.nix +++ b/pkgs/tools/misc/coreutils/default.nix @@ -6,57 +6,74 @@ assert aclSupport -> acl != null; assert selinuxSupport -> libselinux != null && libsepol != null; -stdenv.mkDerivation rec { - name = "coreutils-8.21"; +let + self = stdenv.mkDerivation rec { + name = "coreutils-8.21"; - src = fetchurl { - url = "mirror://gnu/coreutils/${name}.tar.xz"; - sha256 = "064f512185iysqqcvhnhaf3bfmzrvcgs7n405qsyp99zmfyl9amd"; - }; - - nativeBuildInputs = [ perl ]; - buildInputs = [ gmp ] - ++ stdenv.lib.optional aclSupport acl - ++ stdenv.lib.optional selinuxSupport libselinux - ++ stdenv.lib.optional selinuxSupport libsepol; + src = fetchurl { + url = "mirror://gnu/coreutils/${name}.tar.xz"; + sha256 = "064f512185iysqqcvhnhaf3bfmzrvcgs7n405qsyp99zmfyl9amd"; + }; - crossAttrs = { + nativeBuildInputs = [ perl ]; buildInputs = [ gmp ] - ++ stdenv.lib.optional aclSupport acl.crossDrv - ++ stdenv.lib.optional selinuxSupport libselinux.crossDrv - ++ stdenv.lib.optional selinuxSupport libsepol.crossDrv - ++ stdenv.lib.optional (stdenv.gccCross.libc ? libiconv) - stdenv.gccCross.libc.libiconv.crossDrv; - - # Needed for fstatfs() - # I don't know why it is not properly detected cross building with glibc. - configureFlags = [ "fu_cv_sys_stat_statfs2_bsize=yes" ]; - doCheck = false; - }; + ++ stdenv.lib.optional aclSupport acl + ++ stdenv.lib.optional selinuxSupport libselinux + ++ stdenv.lib.optional selinuxSupport libsepol; + + crossAttrs = { + buildInputs = [ gmp ] + ++ stdenv.lib.optional aclSupport acl.crossDrv + ++ stdenv.lib.optional selinuxSupport libselinux.crossDrv + ++ stdenv.lib.optional selinuxSupport libsepol.crossDrv + ++ stdenv.lib.optional (stdenv.gccCross.libc ? libiconv) + stdenv.gccCross.libc.libiconv.crossDrv; + + buildPhase = '' + make || ( + pushd man + for a in *.x; do + touch `basename $a .x`.1 + done + popd; make ) + ''; + + postInstall = '' + rm $out/share/man/man1/* + cp ${self}/share/man/man1/* $out/share/man/man1 + ''; + + # Needed for fstatfs() + # I don't know why it is not properly detected cross building with glibc. + configureFlags = [ "fu_cv_sys_stat_statfs2_bsize=yes" ]; + doCheck = false; + }; - # The tests are known broken on Cygwin - # (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19025), - # Darwin (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19351), - # and {Open,Free}BSD. - doCheck = stdenv ? glibc; + # The tests are known broken on Cygwin + # (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19025), + # Darwin (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19351), + # and {Open,Free}BSD. + doCheck = stdenv ? glibc; - enableParallelBuilding = true; + enableParallelBuilding = true; - NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol"; + NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol"; - meta = { - homepage = http://www.gnu.org/software/coreutils/; - description = "The basic file, shell and text manipulation utilities of the GNU operating system"; + meta = { + homepage = http://www.gnu.org/software/coreutils/; + description = "The basic file, shell and text manipulation utilities of the GNU operating system"; - longDescription = '' - The GNU Core Utilities are the basic file, shell and text - manipulation utilities of the GNU operating system. These are - the core utilities which are expected to exist on every - operating system. - ''; + longDescription = '' + The GNU Core Utilities are the basic file, shell and text + manipulation utilities of the GNU operating system. These are + the core utilities which are expected to exist on every + operating system. + ''; - license = "GPLv3+"; + license = "GPLv3+"; - maintainers = [ stdenv.lib.maintainers.ludo ]; + maintainers = [ stdenv.lib.maintainers.ludo ]; + }; }; -} +in + self |