commit moreutils for openSUSE:Factory
Hello community, here is the log from the commit of package moreutils for openSUSE:Factory checked in at 2018-03-01 12:08:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/moreutils (Old) and /work/SRC/openSUSE:Factory/.moreutils.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "moreutils" Thu Mar 1 12:08:16 2018 rev:4 rq:581384 version:0.62 Changes: -------- --- /work/SRC/openSUSE:Factory/moreutils/moreutils.changes 2017-05-22 18:09:46.682610385 +0200 +++ /work/SRC/openSUSE:Factory/.moreutils.new/moreutils.changes 2018-03-01 12:08:19.280994238 +0100 @@ -1,0 +2,20 @@ +Wed Feb 28 19:00:11 UTC 2018 - aloisio@gmx.com + +- Update to version 0.62 + * ts: Add -m option to use monotonic clock. + Thanks, Ben Leinweber + * ts: Added %.T format like %T but with hi-res. + Thanks, Matt Koscica + * pee: Ignore SIGPIPE and write errors caused by the command + not consuming all its input. Closes: #697052 + Thanks, Ole Jørgen Brønner + * chronic: document return value semantics of -e option. + Closes: #867167 + Thanks, Daniel Shahaf + * vidir: reword man page to more explicit mention 'file' args. + Closes: #885221 + Thanks, Daniel Shahaf + * pee: Don't buffer input, bringing behavior into line with tee. + Thanks, Sauerbeck Tilman + +------------------------------------------------------------------- Old: ---- moreutils-0.61.tar.gz New: ---- moreutils-0.62.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ moreutils.spec ++++++ --- /var/tmp/diff_new_pack.ezrbxq/_old 2018-03-01 12:08:21.004932350 +0100 +++ /var/tmp/diff_new_pack.ezrbxq/_new 2018-03-01 12:08:21.004932350 +0100 @@ -1,7 +1,7 @@ # # spec file for package moreutils # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,11 +17,11 @@ Name: moreutils -Version: 0.61 +Version: 0.62 Release: 0 Summary: Additional Unix Utilities License: GPL-2.0+ and GPL-2.0 and MIT -Group: System/Management +Group: Productivity/File utilities Url: https://joeyh.name/code/moreutils/ Source: https://git.joeyh.name/index.cgi/moreutils.git/snapshot/%{name}-%{version}.tar.gz BuildRequires: docbook-xsl-stylesheets @@ -56,7 +56,7 @@ %package parallel Summary: Additional unix utility - parallel command -Group: Applications/System +Group: Productivity/File utilities Requires: %{name} = %{version}-%{release} Conflicts: gnu_parallel ++++++ moreutils-0.61.tar.gz -> moreutils-0.62.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/moreutils-0.61/Makefile new/moreutils-0.62/Makefile --- old/moreutils-0.61/Makefile 2017-04-19 16:31:30.000000000 +0200 +++ new/moreutils-0.62/Makefile 2017-12-31 17:02:11.000000000 +0100 @@ -16,7 +16,8 @@ all: $(BINS) $(MANS) clean: - rm -f $(BINS) $(MANS) dump.c errnos.h errno.o + rm -f $(BINS) $(MANS) dump.c errnos.h errno.o \ + is_utf8/*.o is_utf8/isutf8 isutf8: is_utf8/*.c is_utf8/*.h $(MAKE) -C is_utf8/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/moreutils-0.61/chronic new/moreutils-0.62/chronic --- old/moreutils-0.61/chronic 2017-04-19 16:31:30.000000000 +0200 +++ new/moreutils-0.62/chronic 2017-12-31 17:02:11.000000000 +0100 @@ -36,6 +36,9 @@ Stderr triggering. Triggers output when stderr output length is non-zero. Without -e chronic needs non-zero return value to trigger output. +In this mode, chronic's return value will be C<2> if the command's return +value is C<0> but the command printed to stderr. + =back =head1 AUTHOR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/moreutils-0.61/debian/changelog new/moreutils-0.62/debian/changelog --- old/moreutils-0.61/debian/changelog 2017-04-19 16:31:30.000000000 +0200 +++ new/moreutils-0.62/debian/changelog 2017-12-31 17:02:11.000000000 +0100 @@ -1,3 +1,22 @@ +moreutils (0.62) unstable; urgency=medium + + * ts: Add -m option to use monotonic clock. + Thanks, Ben Leinweber + * ts: Added %.T format like %T but with hi-res. + Thanks, Matt Koscica + * pee: Ignore SIGPIPE and write errors caused by the command not + consuming all its input. Closes: #697052 + Thanks, Ole Jørgen Brønner + * chronic: document return value semantics of -e option. Closes: #867167 + Thanks, Daniel Shahaf + * vidir: reword man page to more explicit mention 'file' args. + Closes: #885221 + Thanks, Daniel Shahaf + * pee: Don't buffer input, bringing behavior into line with tee. + Thanks, Sauerbeck Tilman + + -- Joey Hess <id@joeyh.name> Sun, 31 Dec 2017 12:02:05 -0400 + moreutils (0.61) unstable; urgency=medium * chronic: Flush output more often to better preserve stdout,err ordering. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/moreutils-0.61/lckdo.c new/moreutils-0.62/lckdo.c --- old/moreutils-0.61/lckdo.c 2017-04-19 16:31:30.000000000 +0200 +++ new/moreutils-0.62/lckdo.c 2017-12-31 17:02:11.000000000 +0100 @@ -6,7 +6,6 @@ */ #define _GNU_SOURCE -#define _BSD_SOURCE #include <unistd.h> #include <fcntl.h> #include <stdio.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/moreutils-0.61/pee.c new/moreutils-0.62/pee.c --- old/moreutils-0.61/pee.c 2017-04-19 16:31:30.000000000 +0200 +++ new/moreutils-0.62/pee.c 2017-12-31 17:02:11.000000000 +0100 @@ -1,7 +1,10 @@ #include <stdlib.h> #include <stdio.h> +#include <unistd.h> +#include <string.h> #include <sys/types.h> #include <sys/wait.h> +#include <errno.h> /* Licensed under the GPL * Copyright (c) Miek Gieben, 2006 @@ -28,12 +31,43 @@ int main(int argc, char **argv) { + int ignore_write_error = 1; + int ignore_sigpipe = 1; size_t i, r; FILE **pipes; + int *inactive_pipe; + int inactive_pipes = 0; char buf[BUFSIZ]; + while(argc > 1) { + if (!strcmp(argv[1], "--no-ignore-sigpipe")) { + argc--, argv++; + ignore_sigpipe = 0; + continue; + } else if (!strcmp(argv[1], "--ignore-sigpipe")) { + argc--, argv++; + ignore_sigpipe = 1; + continue; + } else if (!strcmp(argv[1], "--no-ignore-write-errors")) { + argc--, argv++; + ignore_write_error = 0; + continue; + } else if (!strcmp(argv[1], "--ignore-write-errors")) { + argc--, argv++; + ignore_write_error = 1; + continue; + } + break; + } + + if (ignore_sigpipe && (signal(SIGPIPE, SIG_IGN) == SIG_ERR)) { + fprintf(stderr, "Unable to ignore SIGPIPE\n"); + exit(EXIT_FAILURE); + } + pipes = malloc(((argc - 1) * sizeof *pipes)); - if (!pipes) + inactive_pipe = calloc((argc - 1), (sizeof *inactive_pipe)); + if (!pipes || !inactive_pipe) exit(EXIT_FAILURE); for (i = 1; i < argc; i++) { @@ -44,17 +78,41 @@ exit(EXIT_FAILURE); } + + setbuf(pipes[i - 1], NULL); } argc--; - - while(!feof(stdin) && (!ferror(stdin))) { - r = fread(buf, sizeof(char), BUFSIZ, stdin); + + for (;;) { + r = read(STDIN_FILENO, buf, BUFSIZ); + + /* Interrupted by signal? Try again. */ + if (r == -1 && errno == EINTR) + continue; + + /* Other error or EOF. */ + if (r < 1) + break; + for(i = 0; i < argc; i++) { - if (fwrite(buf, sizeof(char), r, pipes[i]) != r) { - fprintf(stderr, "Write error to `%s\'\n", argv[i + 1]); + if (inactive_pipe[i]) + continue; + + if (fwrite(buf, sizeof(char), r, pipes[i]) == r) + continue; + + inactive_pipes++; + + if (!ignore_write_error) + fprintf(stderr, "Write error to `%s\'\n", + argv[i + 1]); + + if (!ignore_write_error || (inactive_pipes == argc)) { close_pipes(pipes, argc); exit(EXIT_FAILURE); } + + inactive_pipe[i] = 1; } } exit(close_pipes(pipes, argc)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/moreutils-0.61/pee.docbook new/moreutils-0.62/pee.docbook --- old/moreutils-0.61/pee.docbook 2017-04-19 16:31:30.000000000 +0200 +++ new/moreutils-0.62/pee.docbook 2017-12-31 17:02:11.000000000 +0100 @@ -33,7 +33,7 @@ <firstname>Joey</firstname> <surname>Hess</surname> </author> - <date>2006-03-14</date> + <date>2016-12-20</date> </refentryinfo> <refmeta> @@ -51,6 +51,8 @@ <refsynopsisdiv> <cmdsynopsis> <command>pee</command> + <arg>--[no-]ignore-sigpipe</arg> + <arg>--[no-]ignore-write-errors</arg> <group choice="opt"> <arg rep="repeat"><replaceable>"command"</replaceable></arg> </group> @@ -70,6 +72,41 @@ to stdout, like tee does. If that is desired, use <command>pee cat ...</command></para> </refsect1> + + <refsect1> + <title>OPTIONS</title> + + <variablelist> + <varlistentry> + <term><option>--ignore-sigpipe</option></term> + <term><option>--no-ignore-sigpipe</option></term> + <listitem> + <para>Do (not) ignore SIGPIPE. Any command started + by <command>pee</command> might cause a SIGPIPE + when it exists. If you ignore SIGPIPE, you + probably also want to ignore write errors (see + below). Ignoring SIGPIPE is the default + behaviour.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--ignore-write-errors</option></term> + <term><option>--no-ignore-write-errors</option></term> + <listitem> + <para>Do (not) ignore write errors. When a command + started by <command>pee</command> is no more + accepting data via the pipe between itself and + <command>pee</command>, a write error occurs in + <command>pee</command>. If this error is not + ignored, <command>pee</command> is going to + terminate all child processes and exists. Ignoring + write errors is the default behaviour.</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> <refsect1> <title>SEE ALSO</title> @@ -77,6 +114,9 @@ <para> <citerefentry> <refentrytitle>tee</refentrytitle><manvolnum>1</manvolnum> + </citerefentry>, + <citerefentry> + <refentrytitle>pipe</refentrytitle><manvolnum>7</manvolnum> </citerefentry> </para> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/moreutils-0.61/ts new/moreutils-0.62/ts --- old/moreutils-0.61/ts 2017-04-19 16:31:30.000000000 +0200 +++ new/moreutils-0.62/ts 2017-12-31 17:02:11.000000000 +0100 @@ -14,9 +14,10 @@ The optional format parameter controls how the timestamp is formatted, as used by L<strftime(3)>. The default format is "%b %d %H:%M:%S". In -addition to the regular strftime conversion specifications, "%.S" and "%.s" -are like "%S" and "%s", but provide subsecond resolution -(ie, "30.00001" and "1301682593.00001"). +addition to the regular strftime conversion specifications, +"%.S" and "%.s" and "%.T" +are like "%S" and "%s" and "%T", but provide subsecond resolution +(ie, "30.00001" and "1301682593.00001" and "1:15:30.00001"). If the -r switch is passed, it instead converts existing timestamps in the input to relative times, such as "15m5s ago". Many common timestamp @@ -33,6 +34,8 @@ The default format changes to "%H:%M:%S", and "%.S" and "%.s" can be used as well. +The -m switch makes the system's monotonic clock be used. + =head1 ENVIRONMENT The standard TZ environment variable controls what time zone dates @@ -56,8 +59,14 @@ my $rel=0; my $inc=0; my $sincestart=0; +my $mono=0; use Getopt::Long; -GetOptions("r" => \$rel, "i" => \$inc, "s" => \$sincestart) || die "usage: ts [-r] [-i | -s] [format]\n"; +GetOptions( + "r" => \$rel, + "i" => \$inc, + "s" => \$sincestart, + "m" => \$mono +) || die "usage: ts [-r] [-i | -s] [-m] [format]\n"; if ($rel) { eval q{ @@ -77,17 +86,26 @@ # For subsecond resolution, Time::HiRes is needed. my $hires=0; -if ($format=~/\%\.[Ss]/) { +if ($format=~/\%\.[SsT]/ || $mono) { require Time::HiRes; + use Time::HiRes qw(CLOCK_MONOTONIC); $hires=1; } my $lastseconds = 0; my $lastmicroseconds = 0; +my $monodelta; -if ($hires) { +if ($mono) { + my $raw_time = Time::HiRes::clock_gettime(CLOCK_MONOTONIC); + $lastseconds = time; + $lastmicroseconds = int(1000000 * ($raw_time - int($raw_time))); + $monodelta = time - int($raw_time); +} +elsif ($hires) { ($lastseconds, $lastmicroseconds) = Time::HiRes::gettimeofday(); -} else { +} +else { $lastseconds = time; } @@ -96,7 +114,18 @@ if (! $rel) { if ($hires) { my $f=$format; - my ($seconds, $microseconds) = Time::HiRes::gettimeofday(); + my $seconds; + my $microseconds; + if ($mono) { + my $raw_time = + Time::HiRes::clock_gettime(CLOCK_MONOTONIC); + $seconds = $monodelta + int($raw_time); + $microseconds = int(1000000 * ($raw_time - $seconds)); + } + else { + ($seconds, $microseconds) = Time::HiRes::gettimeofday(); + } + if ($inc || $sincestart) { my $deltaseconds = $seconds - $lastseconds; my $deltamicroseconds = $microseconds - $lastmicroseconds; @@ -112,7 +141,7 @@ $microseconds = $deltamicroseconds; } my $s=sprintf("%06i", $microseconds); - $f=~s/\%\.([Ss])/%$1.$s/g; + $f=~s/\%\.([SsT])/%$1.$s/g; print strftime($f, localtime($seconds)); } else { @@ -123,7 +152,8 @@ $lastseconds = $seconds; } print strftime($format, localtime($deltaseconds)); - } else { + } + else { print strftime($format, localtime); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/moreutils-0.61/vidir new/moreutils-0.62/vidir --- old/moreutils-0.61/vidir 2017-04-19 16:31:30.000000000 +0200 +++ new/moreutils-0.62/vidir 2017-12-31 17:02:11.000000000 +0100 @@ -2,16 +2,16 @@ =head1 NAME -vidir - edit directory +vidir - edit directories and filenames =head1 SYNOPSIS -B<vidir> [--verbose] [directory|file|-] ... +B<vidir> [B<--verbose>] [I<directory>|I<file>|B<->]... =head1 DESCRIPTION -vidir allows editing of the contents of a directory in a text editor. If no -directory is specified, the current directory is edited. +B<vidir> allows editing of directories and filenames in a text editor. If no +I<directory> is specified, the filenames of the current directory are edited. When editing a directory, each item in the directory will appear on its own numbered line. These numbers are how vidir keeps track of what items are @@ -19,9 +19,10 @@ edit filenames to rename files. You can also switch pairs of numbers to swap filenames. -Note that if "-" is specified as the directory to edit, it reads a list of -filenames from stdin and displays those for editing. Alternatively, a list -of files can be specified on the command line. +Filenames to be edited may be given any combination of I<directory>s (which +will be expanded to the non-recursive list of all files within I<directory>), +I<file>s, or I<->. If the latter is specified, B<vidir> reads a list of +filenames from stdin and displays those for editing. =head1 OPTIONS
participants (1)
-
root@hilbert.suse.de