diff options
author | happysalada <raphael@megzari.com> | 2021-10-30 14:12:55 +0900 |
---|---|---|
committer | Raphael Megzari <raphael@megzari.com> | 2021-10-31 16:46:50 +0900 |
commit | 441a141e7278143625c3a01b42ab0cdb0929aae1 (patch) | |
tree | d94765b333a62640e1e382f00806240f26aeaba2 /pkgs/tools/misc/coreutils | |
parent | e4e8cd182e2f8dd9ee201bf2c466a6222f6d3799 (diff) |
coreutils: switch to version 9 for darwin
Diffstat (limited to 'pkgs/tools/misc/coreutils')
-rw-r--r-- | pkgs/tools/misc/coreutils/8.nix | 162 | ||||
-rw-r--r-- | pkgs/tools/misc/coreutils/sys-getdents-undeclared.patch | 100 |
2 files changed, 0 insertions, 262 deletions
diff --git a/pkgs/tools/misc/coreutils/8.nix b/pkgs/tools/misc/coreutils/8.nix deleted file mode 100644 index f22a7268fbc93..0000000000000 --- a/pkgs/tools/misc/coreutils/8.nix +++ /dev/null @@ -1,162 +0,0 @@ -{ stdenv, lib, buildPackages -, autoreconfHook, bison, texinfo, fetchurl, perl, xz, libiconv, gmp ? null -, aclSupport ? stdenv.isLinux, acl ? null -, attrSupport ? stdenv.isLinux, attr ? null -, selinuxSupport? false, libselinux ? null, libsepol ? null -# No openssl in default version, so openssl-induced rebuilds aren't too big. -# It makes *sum functions significantly faster. -, minimal ? true, withOpenssl ? !minimal, openssl ? null -, withPrefix ? false -, singleBinary ? "symlinks" # you can also pass "shebangs" or false -}: - -# Note: this package is used for bootstrapping fetchurl, and thus -# cannot use fetchpatch! All mutable patches (generated by GitHub or -# cgit) that are needed here should be included directly in Nixpkgs as -# files. - -assert aclSupport -> acl != null; -assert selinuxSupport -> libselinux != null && libsepol != null; - -with lib; - -stdenv.mkDerivation (rec { - pname = "coreutils"; - version = "8.32"; - - src = fetchurl { - url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz"; - sha256 = "sha256-RFjY3nhJ30TMqxXhaxVIsoUiTbul8I+sBwwcDgvMTPo="; - }; - - patches = [ ./sys-getdents-undeclared.patch ] - ++ optional stdenv.hostPlatform.isCygwin ./coreutils-8.23-4.cygwin.patch - # fix gnulib tests on 32-bit ARM. Included on coreutils master. - # https://lists.gnu.org/r/bug-gnulib/2020-08/msg00225.html - ++ optional stdenv.hostPlatform.isAarch32 ./fix-gnulib-tests-arm.patch; - - postPatch = '' - # The test tends to fail on btrfs,f2fs and maybe other unusual filesystems. - sed '2i echo Skipping dd sparse test && exit 77' -i ./tests/dd/sparse.sh - sed '2i echo Skipping du threshold test && exit 77' -i ./tests/du/threshold.sh - sed '2i echo Skipping cp sparse test && exit 77' -i ./tests/cp/sparse.sh - sed '2i echo Skipping rm deep-2 test && exit 77' -i ./tests/rm/deep-2.sh - sed '2i echo Skipping du long-from-unreadable test && exit 77' -i ./tests/du/long-from-unreadable.sh - - # Depends on the mountpoints - sed '2i echo Skipping df df-symlink test && exit 77' -i ./tests/df/df-symlink.sh - - # Some target platforms, especially when building inside a container have - # issues with the inotify test. - sed '2i echo Skipping tail inotify dir recreate test && exit 77' -i ./tests/tail-2/inotify-dir-recreate.sh - - # sandbox does not allow setgid - sed '2i echo Skipping chmod setgid test && exit 77' -i ./tests/chmod/setgid.sh - substituteInPlace ./tests/install/install-C.sh \ - --replace 'mode3=2755' 'mode3=1755' - - sed '2i print "Skipping env -S test"; exit 77;' -i ./tests/misc/env-S.pl - - # Fails on systems with a rootfs. Looks like a bug in the test, see - # https://lists.gnu.org/archive/html/bug-coreutils/2019-12/msg00000.html - sed '2i print "Skipping df skip-rootfs test"; exit 77' -i ./tests/df/skip-rootfs.sh - - # these tests fail in the unprivileged nix sandbox (without nix-daemon) as we break posix assumptions - for f in ./tests/chgrp/{basic.sh,recurse.sh,default-no-deref.sh,no-x.sh,posix-H.sh}; do - sed '2i echo Skipping chgrp && exit 77' -i "$f" - done - for f in gnulib-tests/{test-chown.c,test-fchownat.c,test-lchown.c}; do - echo "int main() { return 77; }" > "$f" - done - - # tests try to access user 1000 which is forbidden in sandbox - sed '2i print "Skipping id uid test"; exit 77' -i ./tests/id/uid.sh - sed '2i print "Skipping id zero test"; exit 77' -i ./tests/id/zero.sh - sed '2i print "Skipping misc help-versiob test"; exit 77' -i ./tests/misc/help-version.sh - sed '2i print "Skipping chown separator test"; exit 77' -i ./tests/chown/separator.sh - '' + optionalString (stdenv.hostPlatform.libc == "musl") (lib.concatStringsSep "\n" [ - '' - echo "int main() { return 77; }" > gnulib-tests/test-parse-datetime.c - echo "int main() { return 77; }" > gnulib-tests/test-getlogin.c - '' - ]); - - outputs = [ "out" "info" ]; - - nativeBuildInputs = [ perl xz.bin ] - ++ optionals stdenv.hostPlatform.isCygwin [ autoreconfHook texinfo ]; # due to patch - configureFlags = [ "--with-packager=https://NixOS.org" ] - ++ optional (singleBinary != false) - ("--enable-single-binary" + optionalString (isString singleBinary) "=${singleBinary}") - ++ optional withOpenssl "--with-openssl" - ++ optional stdenv.hostPlatform.isSunOS "ac_cv_func_inotify_init=no" - ++ optional withPrefix "--program-prefix=g" - ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.libc == "glibc") [ - # TODO(19b98110126fde7cbb1127af7e3fe1568eacad3d): Needed for fstatfs() I - # don't know why it is not properly detected cross building with glibc. - "fu_cv_sys_stat_statfs2_bsize=yes" - ]; - - - buildInputs = [ gmp ] - ++ optional aclSupport acl - ++ optional attrSupport attr - ++ optional withOpenssl openssl - ++ optionals selinuxSupport [ libselinux libsepol ] - # TODO(@Ericson2314): Investigate whether Darwin could benefit too - ++ optional (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.libc != "glibc") libiconv; - - # The tests are known broken on Cygwin - # (http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/19025), - # Darwin (http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/19351), - # and {Open,Free}BSD. - # With non-standard storeDir: https://github.com/NixOS/nix/issues/512 - doCheck = stdenv.hostPlatform == stdenv.buildPlatform - && (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.isMusl) - && !stdenv.isAarch32; - - # Prevents attempts of running 'help2man' on cross-built binaries. - PERL = if stdenv.hostPlatform == stdenv.buildPlatform then null else "missing"; - - # Saw random failures like ‘help2man: can't get '--help' info from - # man/sha512sum.td/sha512sum’. - enableParallelBuilding = false; - - NIX_LDFLAGS = optionalString selinuxSupport "-lsepol"; - FORCE_UNSAFE_CONFIGURE = optionalString stdenv.hostPlatform.isSunOS "1"; - - # Works around a bug with 8.26: - # Makefile:3440: *** Recursive variable 'INSTALL' references itself (eventually). Stop. - preInstall = optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - sed -i Makefile -e 's|^INSTALL =.*|INSTALL = ${buildPackages.coreutils}/bin/install -c|' - ''; - - postInstall = optionalString (stdenv.hostPlatform != stdenv.buildPlatform && !minimal) '' - rm $out/share/man/man1/* - cp ${buildPackages.coreutils-full}/share/man/man1/* $out/share/man/man1 - '' - # du: 8.7 M locale + 0.4 M man pages - + optionalString minimal '' - rm -r "$out/share" - ''; - - meta = { - homepage = "https://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. - ''; - license = licenses.gpl3Plus; - platforms = platforms.unix ++ platforms.windows; - priority = 10; - maintainers = [ maintainers.eelco ]; - }; -} // optionalAttrs stdenv.hostPlatform.isMusl { - # Work around a bogus warning in conjunction with musl. - NIX_CFLAGS_COMPILE = "-Wno-error"; -} // lib.optionalAttrs stdenv.hostPlatform.isAndroid { - NIX_CFLAGS_COMPILE = "-D__USE_FORTIFY_LEVEL=0"; -}) diff --git a/pkgs/tools/misc/coreutils/sys-getdents-undeclared.patch b/pkgs/tools/misc/coreutils/sys-getdents-undeclared.patch deleted file mode 100644 index 0af5de68415a9..0000000000000 --- a/pkgs/tools/misc/coreutils/sys-getdents-undeclared.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 10fcb97bd728f09d4a027eddf8ad2900f0819b0a Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Thu, 5 Mar 2020 17:25:29 -0800 -Subject: ls: restore 8.31 behavior on removed directories - -* NEWS: Mention this. -* src/ls.c: Do not include <sys/sycall.h> -(print_dir): Don't worry about whether the directory is removed. -* tests/ls/removed-directory.sh: Adjust to match new (i.e., old) -behavior. ---- - NEWS (removed diff in nixpkgs)| 6 ++++++ - src/ls.c | 22 ---------------------- - tests/ls/removed-directory.sh | 10 ++-------- - 3 files changed, 8 insertions(+), 30 deletions(-) - -diff --git a/src/ls.c b/src/ls.c -index 24b983287..4acf5f44d 100644 ---- a/src/ls.c -+++ b/src/ls.c -@@ -49,10 +49,6 @@ - # include <sys/ptem.h> - #endif - --#ifdef __linux__ --# include <sys/syscall.h> --#endif -- - #include <stdio.h> - #include <assert.h> - #include <setjmp.h> -@@ -2896,7 +2892,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) - struct dirent *next; - uintmax_t total_blocks = 0; - static bool first = true; -- bool found_any_entries = false; - - errno = 0; - dirp = opendir (name); -@@ -2972,7 +2967,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) - next = readdir (dirp); - if (next) - { -- found_any_entries = true; - if (! file_ignored (next->d_name)) - { - enum filetype type = unknown; -@@ -3018,22 +3012,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) - if (errno != EOVERFLOW) - break; - } --#ifdef __linux__ -- else if (! found_any_entries) -- { -- /* If readdir finds no directory entries at all, not even "." or -- "..", then double check that the directory exists. */ -- if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1 -- && errno != EINVAL) -- { -- /* We exclude EINVAL as that pertains to buffer handling, -- and we've passed NULL as the buffer for simplicity. -- ENOENT is returned if appropriate before buffer handling. */ -- file_failure (command_line_arg, _("reading directory %s"), name); -- } -- break; -- } --#endif - else - break; - -diff --git a/tests/ls/removed-directory.sh b/tests/ls/removed-directory.sh -index e8c835dab..fe8f929a1 100755 ---- a/tests/ls/removed-directory.sh -+++ b/tests/ls/removed-directory.sh -@@ -26,20 +26,14 @@ case $host_triplet in - *) skip_ 'non linux kernel' ;; - esac - --LS_FAILURE=2 -- --cat <<\EOF >exp-err || framework_failure_ --ls: reading directory '.': No such file or directory --EOF -- - cwd=$(pwd) - mkdir d || framework_failure_ - cd d || framework_failure_ - rmdir ../d || framework_failure_ - --returns_ $LS_FAILURE ls >../out 2>../err || fail=1 -+ls >../out 2>../err || fail=1 - cd "$cwd" || framework_failure_ - compare /dev/null out || fail=1 --compare exp-err err || fail=1 -+compare /dev/null err || fail=1 - - Exit $fail --- -cgit v1.2.1 - |