diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix index c17395874edc..0cc7d5e91b07 100644 --- a/pkgs/tools/misc/coreutils/default.nix +++ b/pkgs/tools/misc/coreutils/default.nix @@ -16,6 +16,7 @@ selinuxSupport ? false, libselinux, libsepol, + texinfo, # No openssl in default version, so openssl-induced rebuilds aren't too big. # It makes *sum functions significantly faster. minimal ? true, @@ -45,13 +46,15 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "coreutils" + (optionalString (!minimal) "-full"); - version = "9.9"; + version = "9.10"; # TODO: remove texinfo dep and the patch on next release. src = fetchurl { url = "mirror://gnu/coreutils/coreutils-${finalAttrs.version}.tar.xz"; - hash = "sha256-Gby2yoZxg8V9dxVerpRsXs7YgYMUO0XKUa19JsYoynU="; + hash = "sha256-FlNamt8LEANzZOLWEqrT2fTso6NElJztdNEvr0vVHSU="; }; + patches = [ ./fix-kill-doctest.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 @@ -131,6 +134,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ perl + texinfo xz.bin ]; @@ -151,6 +155,8 @@ stdenv.mkDerivation (finalAttrs: { configureFlags = [ "--with-packager=https://nixos.org" + "--with-selinux" + "--enable-install-program=kill,uptime" ] ++ optional (singleBinary != false) ( "--enable-single-binary" + optionalString (isString singleBinary) "=${singleBinary}" @@ -229,27 +235,19 @@ stdenv.mkDerivation (finalAttrs: { # # binlore only spots exec in runcon on some platforms (i.e., not # darwin; see comment on inverse case below) - binlore.out = binlore.synthesize finalAttrs.finalPackage ( - '' - execer can bin/{chroot,env,install,nice,nohup,sort,split,stdbuf,timeout} - execer cannot bin/{[,b2sum,base32,base64,basename,basenc,cat,chgrp,chmod,chown,cksum,comm,cp,csplit,cut,date,dd,df,dir,dircolors,dirname,du,echo,expand,expr,factor,false,fmt,fold,groups,head,hostid,id,join,kill,link,ln,logname,ls,md5sum,mkdir,mkfifo,mknod,mktemp,mv,nl,nproc,numfmt,od,paste,pathchk,pinky,pr,printenv,printf,ptx,pwd,readlink,realpath,rm,rmdir,seq,sha1sum,sha224sum,sha256sum,sha384sum,sha512sum,shred,shuf,sleep,stat,stty,sum,sync,tac,tail,tee,test,touch,tr,true,truncate,tsort,tty,uname,unexpand,uniq,unlink,uptime,users,vdir,wc,who,whoami,yes} - '' - + optionalString selinuxSupport '' - execer can bin/runcon - execer cannot bin/chcon - '' - ); + binlore.out = binlore.synthesize finalAttrs.finalPackage '' + execer can bin/{chroot,env,install,nice,nohup,runcon,sort,split,stdbuf,timeout} + execer cannot bin/{[,b2sum,base32,base64,basename,basenc,cat,chcon,chgrp,chmod,chown,cksum,comm,cp,csplit,cut,date,dd,df,dir,dircolors,dirname,du,echo,expand,expr,factor,false,fmt,fold,groups,head,hostid,id,join,kill,link,ln,logname,ls,md5sum,mkdir,mkfifo,mknod,mktemp,mv,nl,nproc,numfmt,od,paste,pathchk,pinky,pr,printenv,printf,ptx,pwd,readlink,realpath,rm,rmdir,seq,sha1sum,sha224sum,sha256sum,sha384sum,sha512sum,shred,shuf,sleep,stat,stty,sum,sync,tac,tail,tee,test,touch,tr,true,truncate,tsort,tty,uname,unexpand,uniq,unlink,uptime,users,vdir,wc,who,whoami,yes} + ''; } // optionalAttrs (singleBinary == false) { # binlore only spots exec in runcon on some platforms (i.e., not # darwin; I have a note that the behavior may need selinux?). # hard-set it so people working on macOS don't miss cases of # runcon until ofBorg fails. - binlore.out = binlore.synthesize finalAttrs.finalPackage ( - optionalString selinuxSupport '' - execer can bin/runcon - '' - ); + binlore.out = binlore.synthesize finalAttrs.finalPackage '' + execer can bin/runcon + ''; }; meta = { diff --git a/pkgs/tools/misc/coreutils/fix-kill-doctest.patch b/pkgs/tools/misc/coreutils/fix-kill-doctest.patch new file mode 100644 index 000000000000..1e54ed3fc783 --- /dev/null +++ b/pkgs/tools/misc/coreutils/fix-kill-doctest.patch @@ -0,0 +1,61 @@ +From 088c011bfc66643a16b22db77a3c458bb7412ea2 Mon Sep 17 00:00:00 2001 +From: Collin Funk +Date: Thu, 5 Feb 2026 21:18:25 -0800 +Subject: [PATCH] doc: kill: adjust documentation to produce html anchors for + --help + +* doc/coreutils.texi (kill invocation): Adjust documentation to use the +@optItem macros. +Fixes https://bugs.gnu.org/80339 +Fixes https://github.com/coreutils/coreutils/issues/185 +--- + doc/coreutils.texi | 36 ++++++++++++++++++++++++------------ + 1 file changed, 24 insertions(+), 12 deletions(-) + +diff --git a/doc/coreutils.texi b/doc/coreutils.texi +index a02e8d73b0..4559307462 100644 +--- a/doc/coreutils.texi ++++ b/doc/coreutils.texi +@@ -18354,18 +18354,30 @@ The first form of the @command{kill} command succeeds if every @var{pid} + argument specifies at least one process that the signal was sent to. + + The second form of the @command{kill} command lists signal information. +-Either the @option{-l} or @option{--list} option, or the @option{-t} +-or @option{--table} option must be specified. Without any +-@var{signal} argument, all supported signals are listed. The output +-of @option{-l} or @option{--list} is a list of the signal names, one +-per line; if @var{signal} is already a name, the signal number is +-printed instead. The output of @option{-t} or @option{--table} is a +-table of signal numbers, names, and descriptions. This form of the +-@command{kill} command succeeds if all @var{signal} arguments are valid +-and if there is no output error. +- +-The @command{kill} command also supports the @option{--help} and +-@option{--version} options. @xref{Common options}. ++This form of the @command{kill} command succeeds if all @var{signal} ++arguments are valid and if there is no output error. ++ ++The program accepts the following options. Also see @ref{Common options}. ++ ++@table @samp ++ ++@optAnchor{kill,-SIGNAL} ++@optItem{kill,-s,} ++@optItemx{kill,--signal,} ++Specify the name or number of the signal to be sent. ++ ++@optItem{kill,-l,} ++@optItemx{kill,--list,} ++List the supported signal names one per line if the @var{signal} option ++is omitted. If one or more @var{signal} options are provided, they are ++converted between signal names and signal numbers. ++ ++@optItem{kill,-t,} ++@optItemx{kill,--table,} ++This option behaves the same way as @option{--list} except it prints a ++table of signal numbers, names, and descriptions. ++ ++@end table + + A @var{signal} may be a signal name like @samp{HUP}, or a signal + number like @samp{1}, or an exit status of a process terminated by the