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 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
#include
#include
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
#include
+#include
+#include
#include
#include
+#include
/* 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. 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