diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix index 204a8914300..192c9ec413c 100644 --- a/nixos/modules/misc/locate.nix +++ b/nixos/modules/misc/locate.nix @@ -27,7 +27,7 @@ in locate = mkOption { type = package; - default = pkgs.findutils; + default = pkgs.findutils.locate; defaultText = literalExpression "pkgs.findutils"; example = literalExpression "pkgs.mlocate"; description = '' diff --git a/pkgs/tools/misc/findutils/default.nix b/pkgs/tools/misc/findutils/default.nix index 56d710c8545..3c3b15962a7 100644 --- a/pkgs/tools/misc/findutils/default.nix +++ b/pkgs/tools/misc/findutils/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { && (stdenv.hostPlatform.libc != "musl") && stdenv.hostPlatform == stdenv.buildPlatform; - outputs = [ "out" "info" ]; + outputs = [ "out" "info" "locate"]; configureFlags = [ # "sort" need not be on the PATH as a run-time dep, so we need to tell @@ -46,6 +46,18 @@ stdenv.mkDerivation rec { "-D__nonnull\\(params\\)=" ]; + postInstall = '' + moveToOutput bin/locate $locate + moveToOutput bin/updatedb $locate + ''; + + # can't move man pages in postInstall because the multi-output hook will move them back to $out + postFixup = '' + moveToOutput share/man/man5 $locate + moveToOutput share/man/man1/locate.1.gz $locate + moveToOutput share/man/man1/updatedb.1.gz $locate + ''; + enableParallelBuilding = true; meta = { @@ -62,9 +74,12 @@ stdenv.mkDerivation rec { The tools supplied with this package are: * find - search for files in a directory hierarchy; + * xargs - build and execute command lines from standard input. + + The following are available in the locate output: + * locate - list files in databases that match a pattern; * updatedb - update a file name database; - * xargs - build and execute command lines from standard input. ''; platforms = lib.platforms.all;