diff --git a/Makefile.am b/Makefile.am index a18695c009..0c05160e95 100644 --- a/Makefile.am +++ b/Makefile.am @@ -41,6 +41,7 @@ nobase_dist_guilemodule_DATA = \ distro/m4-readlink-EINVAL.patch \ distro/m4-s_isdir.patch \ distro/make-impure-dirs.patch \ + distro/findutils-absolute-paths.patch \ distro/readline-link-ncurses.patch nobase_nodist_guilemodule_DATA = $(GOBJECTS) diff --git a/distro/base.scm b/distro/base.scm index bb634340fe..16f5b40e30 100644 --- a/distro/base.scm +++ b/distro/base.scm @@ -177,6 +177,48 @@ files (as archives).") (license "GPLv3+") (home-page "http://www.gnu.org/software/tar/"))) +(define-public findutils + (package + (name "findutils") + (version "4.4.2") + (source (origin + (method http-fetch) + (uri (string-append "http://ftp.gnu.org/gnu/findutils/findutils-" + version ".tar.gz")) + (sha256 + (base32 + "0amn0bbwqvsvvsh6drfwz20ydc2czk374lzw5kksbh6bf78k4ks3")))) + (build-system gnu-build-system) + (native-inputs + `(("patch/absolute-paths" + ,(search-path %load-path "distro/findutils-absolute-paths.patch")))) + (arguments + (case-lambda + ((system) + `(#:patches (list (assoc-ref %build-inputs "patch/absolute-paths")))) + ((system cross-system) + ;; Work around cross-compilation failure. + ;; See . + `(#:configure-flags '("gl_cv_func_wcwidth_works=yes") + ,@(arguments cross-system))))) + (description "Basic directory searching utilities of the GNU operating +system") + (long-description + "The GNU Find Utilities are the basic directory searching utilities of +the GNU operating system. These programs are typically used in conjunction +with other programs to provide modular and powerful directory search and file +locating capabilities to other commands. + +The tools supplied with this package are: + + * find - search for files in a directory hierarchy; + * locate - list files in databases that match a pattern; + * updatedb - update a file name database; + * xargs - build and execute command lines from standard input. +") + (license "GPLv3+") + (home-page "http://www.gnu.org/software/findutils/"))) + (define-public m4 (package (name "m4") diff --git a/distro/findutils-absolute-paths.patch b/distro/findutils-absolute-paths.patch new file mode 100644 index 0000000000..96341e281f --- /dev/null +++ b/distro/findutils-absolute-paths.patch @@ -0,0 +1,29 @@ +Fix use of LFS-style absolute paths. + +Patches from Nixpkgs by Armijn Hemel +and Wouter den Breejen . + +diff -ruN findutils-4.2.20/locate/updatedb.sh findutils-4.2.20.new/locate/updatedb.sh +--- findutils-4.2.20/locate/updatedb.sh 2005-01-24 17:12:35.000000000 +0100 ++++ findutils-4.2.20.new/locate/updatedb.sh 2005-08-23 14:37:10.000000000 +0200 +@@ -141,7 +141,7 @@ + : ${code:=${LIBEXECDIR}/@code@} + + +-PATH=/bin:/usr/bin:${BINDIR}; export PATH ++PATH=/bin:/usr/bin:${BINDIR}:${PATH}; export PATH + + : ${PRUNEFS="nfs NFS proc afs proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs sysfs shfs"} + +diff -Naur findutils-4.2.30/xargs/xargs.c findutils-4.2.30_new/xargs/xargs.c +--- findutils-4.2.30/xargs/xargs.c 2007-02-27 11:21:08.000000000 +0100 ++++ findutils-4.2.30_new/xargs/xargs.c 2007-07-17 19:02:05.000000000 +0200 +@@ -402,7 +402,7 @@ + int show_limits = 0; /* --show-limits */ + int always_run_command = 1; + char *input_file = "-"; /* "-" is stdin */ +- char *default_cmd = "/bin/echo"; ++ char *default_cmd = "echo"; + int (*read_args) PARAMS ((void)) = read_line; + void (*act_on_init_result)(void) = noop; + int env_too_big = 0;