diff --git a/Makefile.in b/Makefile.in index 55c2ee69..d53da25d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -132,7 +132,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck + cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, @@ -301,8 +301,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -435,7 +435,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ diff --git a/NEWS b/NEWS index 75e9382f..144844ea 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,28 @@ +20200622 + +New in this release: + +* No new functionality + +* Bug fixes and man page updates. + +News about GNU Parallel: + +* GNU Parallel is used at NERSC: https://www.nersc.gov/assets/Uploads/08-Workflows-20200616.pdf + +* Resumable batch jobs with GNU Parallel https://igor.io/parallel/ + +* Lab Meeting technical talk https://www.slideshare.net/hoffmanlab/gnu-parallel-194030490 + +* Open Sky Software Website Credits https://www.openskysoftware.com/site-credits.htm + +* Speed up your Python Scripts using Ubuntu and GNU Parallel https://ecce.esri.ca/wpecce/2019/12/24/speed-up-your-python-scripts-using-ubuntu-and-gnu-parallel/ + +* Indispensable command-line tools https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html + +* GNU Parallel for simulations http://pdebuyl.be/blog/2020/gnu-parallel-for-simulations.html + +* Introduction to GNU parallel https://bioinformaticsworkbook.org/Appendix/GNUparallel/GNU_parallel_examples.html 20200522 diff --git a/README b/README index 2492bba9..fee63972 100644 --- a/README +++ b/README @@ -57,11 +57,11 @@ document. Full installation of GNU Parallel is as simple as: - wget https://ftpmirror.gnu.org/parallel/parallel-20200522.tar.bz2 - wget https://ftpmirror.gnu.org/parallel/parallel-20200522.tar.bz2.sig - gpg parallel-20200522.tar.bz2.sig - bzip2 -dc parallel-20200522.tar.bz2 | tar xvf - - cd parallel-20200522 + wget https://ftpmirror.gnu.org/parallel/parallel-20200622.tar.bz2 + wget https://ftpmirror.gnu.org/parallel/parallel-20200622.tar.bz2.sig + gpg parallel-20200622.tar.bz2.sig + bzip2 -dc parallel-20200622.tar.bz2 | tar xvf - + cd parallel-20200622 ./configure && make && sudo make install @@ -70,11 +70,11 @@ Full installation of GNU Parallel is as simple as: If you are not root you can add ~/bin to your path and install in ~/bin and ~/share: - wget https://ftpmirror.gnu.org/parallel/parallel-20200522.tar.bz2 - wget https://ftpmirror.gnu.org/parallel/parallel-20200522.tar.bz2.sig - gpg parallel-20200522.tar.bz2.sig - bzip2 -dc parallel-20200522.tar.bz2 | tar xvf - - cd parallel-20200522 + wget https://ftpmirror.gnu.org/parallel/parallel-20200622.tar.bz2 + wget https://ftpmirror.gnu.org/parallel/parallel-20200622.tar.bz2.sig + gpg parallel-20200622.tar.bz2.sig + bzip2 -dc parallel-20200622.tar.bz2 | tar xvf - + cd parallel-20200622 ./configure --prefix=$HOME && make && make install Or if your system lacks 'make' you can simply copy src/parallel @@ -122,8 +122,8 @@ will love you for it. When using programs that use GNU Parallel to process data for publication please cite: - Tange, O. (2020, May 22). GNU Parallel 20200522 ('Kraftwerk'). - Zenodo. https://doi.org/10.5281/zenodo.3840974 + Tange, O. (2020, June 22). GNU Parallel 20200622 ('Floyd'). + Zenodo. https://doi.org/10.5281/zenodo.3903853 = New versions = diff --git a/aclocal.m4 b/aclocal.m4 index 22dd4fca..bfd67c2f 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.]) # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' +[am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15.1], [], +m4_if([$1], [1.16.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15.1])dnl +[AM_AUTOMAKE_VERSION([1.16.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -143,7 +143,7 @@ fi])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -230,8 +230,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. @@ -298,7 +298,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -340,7 +340,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -361,7 +361,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2017 Free Software Foundation, Inc. +# Copyright (C) 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -382,7 +382,7 @@ AC_SUBST([am__leading_dot])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -421,7 +421,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -452,7 +452,7 @@ AC_DEFUN([_AM_IF_OPTION], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -533,7 +533,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -593,7 +593,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -621,7 +621,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2017 Free Software Foundation, Inc. +# Copyright (C) 2006-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -640,7 +640,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2017 Free Software Foundation, Inc. +# Copyright (C) 2004-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/configure b/configure index bf03861f..ae8e8ecc 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for parallel 20200522. +# Generated by GNU Autoconf 2.69 for parallel 20200622. # # Report bugs to . # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='parallel' PACKAGE_TARNAME='parallel' -PACKAGE_VERSION='20200522' -PACKAGE_STRING='parallel 20200522' +PACKAGE_VERSION='20200622' +PACKAGE_STRING='parallel 20200622' PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_URL='' @@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures parallel 20200522 to adapt to many kinds of systems. +\`configure' configures parallel 20200622 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1281,7 +1281,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of parallel 20200522:";; + short | recursive ) echo "Configuration of parallel 20200622:";; esac cat <<\_ACEOF @@ -1357,7 +1357,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -parallel configure 20200522 +parallel configure 20200622 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by parallel $as_me 20200522, which was +It was created by parallel $as_me 20200622, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -1722,7 +1722,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -am__api_version='1.15' +am__api_version='1.16' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -2237,7 +2237,7 @@ fi # Define the identity of the package. PACKAGE='parallel' - VERSION='20200522' + VERSION='20200622' cat >>confdefs.h <<_ACEOF @@ -2267,8 +2267,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The @@ -2319,7 +2319,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -2880,7 +2880,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by parallel $as_me 20200522, which was +This file was extended by parallel $as_me 20200622, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2942,7 +2942,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -parallel config.status 20200522 +parallel config.status 20200622 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 9469a878..8e3c9fdd 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([parallel], [20200522], [bug-parallel@gnu.org]) +AC_INIT([parallel], [20200622], [bug-parallel@gnu.org]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ diff --git a/doc/haikus b/doc/haikus index c004213d..e4936137 100644 --- a/doc/haikus +++ b/doc/haikus @@ -4,9 +4,6 @@ GNU parallel, which works a little bit like xargs, but has a much more friendly https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html - Who needs spark when GNU Parallel exists - -- MatthijsB @MatthijsBrs@twitter - GNU parallel all the way! -- David Manouchehri @DaveManouchehri@twitter @@ -61,6 +58,9 @@ https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html === Used === + Who needs spark when GNU Parallel exists + -- MatthijsB @MatthijsBrs@twitter + GNU Parallel: dead simple process-level parallelization of ad hoc tasks. Write for a chunk, let gnu manage the splitting, permutations and pool concurrency. diff --git a/doc/release_new_version b/doc/release_new_version index b1a6627f..4575ce72 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -188,7 +188,7 @@ from:tange@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org stable-bcc: Jesse Alama -Subject: GNU Parallel 20200622 ('SpaceX/Floyd') released <<[stable]>> +Subject: GNU Parallel 20200622 ('Floyd') released <<[stable]>> GNU Parallel 20200622 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ @@ -200,20 +200,29 @@ Quote of the month: New in this release: -* -https://www.slideshare.net/hoffmanlab/gnu-parallel-194030490 -https://www.openskysoftware.com/site-credits.htm - +* No new functionality * Bug fixes and man page updates. News about GNU Parallel: -https://bioinformaticsworkbook.org/Appendix/GNUparallel/GNU_parallel_examples.html#gsc.tab=0 +* GNU Parallel is used at NERSC: https://www.nersc.gov/assets/Uploads/08-Workflows-20200616.pdf -http://pdebuyl.be/blog/2020/gnu-parallel-for-simulations.html +* Resumable batch jobs with GNU Parallel https://igor.io/parallel/ -https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html +* Lab Meeting technical talk https://www.slideshare.net/hoffmanlab/gnu-parallel-194030490 + +* Open Sky Software Website Credits https://www.openskysoftware.com/site-credits.htm + +* Speed up your Python Scripts using Ubuntu and GNU Parallel https://ecce.esri.ca/wpecce/2019/12/24/speed-up-your-python-scripts-using-ubuntu-and-gnu-parallel/ + +* Indispensable command-line tools https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html + +* GNU Parallel for simulations http://pdebuyl.be/blog/2020/gnu-parallel-for-simulations.html + +* Introduction to GNU parallel https://bioinformaticsworkbook.org/Appendix/GNUparallel/GNU_parallel_examples.html + +* Bug fixes and man page updates. Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html diff --git a/install-sh b/install-sh index 59990a10..8175c640 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2014-09-12.12; # UTC +scriptversion=2018-03-11.20; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -271,15 +271,18 @@ do fi dst=$dst_arg - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. + # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst - dst=$dstdir/`basename "$src"` + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac dstdir_status=0 else dstdir=`dirname "$dst"` @@ -288,6 +291,11 @@ do fi fi + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + obsolete_mkdir_used=false if test $dstdir_status != 0; then @@ -324,14 +332,16 @@ do # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) - # $RANDOM is not portable (e.g. dash); use it when possible to - # lower collision chance + # Note that $RANDOM variable is not portable (e.g. dash); Use it + # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 - # As "mkdir -p" follows symlinks and we work in /tmp possibly; so - # create the $tmpdir first (and fail if unsuccessful) to make sure - # that nobody tries to guess the $tmpdir name. + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p' feature. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 @@ -434,8 +444,8 @@ do else # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 @@ -500,9 +510,9 @@ do done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/missing b/missing index f62bbae3..625aeb11 100755 --- a/missing +++ b/missing @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ scriptversion=2013-10-28.13; # UTC # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ else exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/packager/obs/home:tange/parallel/.osc/_files b/packager/obs/home:tange/parallel/.osc/_files index c4b6b112..1ad721ae 100644 --- a/packager/obs/home:tange/parallel/.osc/_files +++ b/packager/obs/home:tange/parallel/.osc/_files @@ -1,6 +1,5 @@ - - - - - + + + + diff --git a/packager/obs/home:tange/parallel/.osc/parallel.spec b/packager/obs/home:tange/parallel/.osc/parallel.spec index 37cb0cbc..834d388f 100644 --- a/packager/obs/home:tange/parallel/.osc/parallel.spec +++ b/packager/obs/home:tange/parallel/.osc/parallel.spec @@ -1,7 +1,7 @@ Summary: Shell tool for executing jobs in parallel Name: parallel -Version: 20200522 +Version: 20200622 Release: 1.3 License: GPL-3.0-or-later Group: Productivity/File utilities diff --git a/src/Makefile.in b/src/Makefile.in index 33b90893..2b716156 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -297,8 +297,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -458,7 +458,10 @@ ctags CTAGS: cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/src/env_parallel.fish b/src/env_parallel.fish index 55ca64a4..ed391eb7 100755 --- a/src/env_parallel.fish +++ b/src/env_parallel.fish @@ -157,7 +157,7 @@ function env_parallel ($name,$val)=split(/ /,$_,2); # Ignore read-only vars $name=~/^(HOME|USER|COLUMNS|FISH_VERSION|LINES|PWD|SHLVL|_| - history|status|version)$/x and next; + fish_pid|history|hostname|status|version)$/x and next; # Single quote $val if($val =~ /[^-_.+a-z0-9\/]/i) { $val =~ s/\047/\047"\047"\047/g; # "-quote single quotes diff --git a/src/niceload b/src/niceload index a6f3845e..fd05a4cd 100755 --- a/src/niceload +++ b/src/niceload @@ -23,7 +23,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20200522; +$Global::version = 20200622; Getopt::Long::Configure("bundling","require_order"); get_options_from_array(\@ARGV) || die_usage(); if($opt::version) { diff --git a/src/parallel b/src/parallel index 9aec3657..fe7a7af0 100755 --- a/src/parallel +++ b/src/parallel @@ -2157,7 +2157,7 @@ sub check_invalid_option_combinations() { sub init_globals() { # Defaults: - $Global::version = 20200522; + $Global::version = 20200622; $Global::progname = 'parallel'; $::name = "GNU Parallel"; $Global::infinity = 2**31; @@ -4904,8 +4904,8 @@ sub usage() { "If you use programs that use GNU Parallel to process data for an article in a", "scientific publication, please cite:", "", - " Tange, O. (2020, May 22). GNU Parallel 20200522 ('Kraftwerk').", - " Zenodo. https://doi.org/10.5281/zenodo.3840974", + " Tange, O. (2020, June 22). GNU Parallel 20200622 ('Floyd').", + " Zenodo. https://doi.org/10.5281/zenodo.3903853", "", # Before changing this line, please read # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice @@ -4935,8 +4935,8 @@ sub citation_notice() { "If you use programs that use GNU Parallel to process data for an article in a", "scientific publication, please cite:", "", - " Tange, O. (2020, May 22). GNU Parallel 20200522 ('Kraftwerk').", - " Zenodo. https://doi.org/10.5281/zenodo.3840974", + " Tange, O. (2020, June 22). GNU Parallel 20200622 ('Floyd').", + " Zenodo. https://doi.org/10.5281/zenodo.3903853", "", # Before changing this line, please read # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and @@ -5049,20 +5049,20 @@ sub citation() { "If you use programs that use GNU Parallel to process data for an article in a", "scientific publication, please cite:", "", - "\@software{tange_2020_3840974,", + "\@software{tange_2020_3903853,", " author = {Tange, Ole},", - " title = {GNU Parallel 20200522 ('Kraftwerk')},", - " month = May,", + " title = {GNU Parallel 20200622 ('Floyd')},", + " month = Jun,", " year = 2020,", " note = {{GNU Parallel is a general parallelizer to run", " multiple serial command line programs in parallel", " without changing them.}},", " publisher = {Zenodo},", - " doi = {10.5281/zenodo.3840974},", - " url = {https://doi.org/10.5281/zenodo.3840974}", + " doi = {10.5281/zenodo.3903853},", + " url = {https://doi.org/10.5281/zenodo.3903853}", "}", "", - "(Feel free to use \\nocite{tange_2020_3840974})", + "(Feel free to use \\nocite{tange_2020_3903853})", "", # Before changing this line, please read # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and diff --git a/src/sql b/src/sql index 51ff40d4..76a5d661 100755 --- a/src/sql +++ b/src/sql @@ -574,7 +574,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20200522; + $Global::version = 20200622; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/testsuite/REQUIREMENTS b/testsuite/REQUIREMENTS index 35350261..2062e779 100644 --- a/testsuite/REQUIREMENTS +++ b/testsuite/REQUIREMENTS @@ -7,19 +7,21 @@ install_packages() { # The testsuite depends on this: test_pkgs="imagemagick expect autossh sshpass jq libpod-simple-perl pod2pdf gawk" - test_pkgs="$test_pkgs lua5.3 clisp php-cli nodejs mono-csharp-shell" + test_pkgs="$test_pkgs lua5.3 clisp php-cli nodejs mono-csharp-shell libevent-dev" + test_pkgs="$test_pkgs tcl libtext-csv-perl" # DEBIAN package - packaging_pkgs="dpkg-dev build-essential debhelper osc cvs" + packaging_pkgs="dpkg-dev build-essential debhelper osc cvs automake-1.15 python3-m2crypto" # SHEBANG TOOLS shebang_pkgs="gnuplot octave ruby r-base-core" # SQL TOOLS sql_pkgs="libdbd-pg-perl libdbd-sqlite3-perl libdbd-csv-perl libdbd-mysql-perl rlwrap" # Compression - compression_pkgs="zstd clzip liblz4-tool lzop pigz pixz pxz gzip plzip pbzip2 lzma xz-utils lzip bzip2 lbzip2 lrzip" + compression_pkgs="zstd clzip liblz4-tool lzop pigz pixz gzip plzip pbzip2 lzma xz-utils lzip bzip2 lbzip2 lrzip" + compression_pkgs_missing="pxz" # Shells # (csh = bsd-csh that is broken) - shell_pkgs="ash dash fdclone fish fizsh ksh mksh posh rc rush sash tcsh yash zsh" + shell_pkgs="ash dash fdclone fish fizsh ksh ksh93 mksh posh rc rush sash tcsh yash zsh" # Databases database_pkgs="postgresql mysql-server sqlite" if $INSTALL $test_pkgs $packaging_pkgs $shebang_pkgs $sql_pkgs $compression_pkgs $shell_pkgs $database_pkgs; then @@ -58,7 +60,7 @@ add_server_to_hosts() { } shellsplus() { - shells="bash sh csh ash dash tcsh zsh ksh fish fizsh mksh posh rc sash yash nopathbash nopathcsh" + shells="bash sh csh ash dash tcsh zsh ksh ksh2020 ksh93 fish fizsh mksh posh rc sash yash nopathbash nopathcsh" shellsplus="parallel $shells" parallel -k echo ::: $shellsplus } @@ -101,7 +103,8 @@ create_shell_logins() { echo '# (Re-)create user' # Racecondition: if multiple adds a group it will the same group ID - shellsplus | parallel --timeout 15 --retries 5 --tag -j1 del_add_user + shellsplus | parallel --timeout 15 --retries 5 --tag -j1 del_add_user || + (echo Creation failed: $?; false) } copy_ssh_keys() { @@ -117,9 +120,9 @@ copy_ssh_keys() { ssh $shell@lo "echo ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxg+dh+BL1myqo6A+pHcQCKVV5v7cewdkN8xGtMDqm7xGgh+e5A44W7qKViIx641d6yoWb012XzDz2MKetG4Kosoma8Z/qkS27p6901RmI3ap2JFffzBESlpQtW1FyxQPlMyBfrd4ONy8xW6R/gEkjC3yOcXCQO2494/c46ouXs5gtE84Cusr3RsopR4bI7oloH1GQZ4vsHSFSakq8IwcujaSh1mmribMONLb2TjDpmE7tAY+yfOVWHPQ2J+EU1//Go60EZfSRKOu81oxW7SJ2uGgWfWcs2T1lRtT8Yh+TwVTz8UFV75kVtpZ10x5baN+ncsSpaBK+8sFLfoMvA9yQQ'==' tange@freebsd71.tange.dk >> .ssh/authorized_keys" && echo Do env_parallel --install && ssh $shell@lo 'mkdir -p .parallel; touch .parallel/will-cite; env_parallel --install' && - echo OK Created $shell && + echo OK make_sshkey $shell && echo >&2 && - echo OK Created $shell >&2 && + echo OK make_sshkey $shell >&2 && echo } export -f make_sshkey @@ -129,7 +132,7 @@ copy_ssh_keys() { ssh_a_to_b() { ssh $1@lo ssh $2@lo echo OK || - echo failed && false + (echo failed && false) } export -f ssh_a_to_b echo "# copy id from X to X" @@ -145,7 +148,7 @@ copy_ssh_keys() { echo '# copy id from any X to any Y' parallel -u --bar -j3 --timeout 3 --retries 10 --tag ssh_copy_id {1}@lo {2}@lo ::: $(shellsplus) ::: $(shellsplus) echo '# Test the copying went well' - parallel -j2 --timeout 10 --retries 10 --tag ssh_a_to_b ::: $(shellsplus) ::: $(shellsplus) + parallel --bar -j2 --timeout 9 --retries 10 --tag ssh_a_to_b ::: $(shellsplus) ::: $(shellsplus) echo '# change paths to no path' ( @@ -188,7 +191,7 @@ add_freebsd() { echo no matching host key type found. Their offer: ssh-dss echo echo Add to /etc/ssh/sshd_config - echo Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc + echo Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc echo KexAlgorithms diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,curve25519-sha256@libssh.org,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1 echo echo If you get: @@ -227,7 +230,8 @@ misc() { sudo locale-gen zh_HK } -install_packages && +run() { + install_packages && setup_databases && add_server_to_hosts && create_shell_logins && @@ -236,3 +240,4 @@ install_packages && add_freebsd && tmux_versions && misc +} diff --git a/testsuite/input-files/shebang/shebangwrap.py b/testsuite/input-files/shebang/shebangwrap.py index b01b64d5..b316b631 100755 --- a/testsuite/input-files/shebang/shebangwrap.py +++ b/testsuite/input-files/shebang/shebangwrap.py @@ -1,5 +1,5 @@ -#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/python +#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/python3 import sys -print str(sys.argv[1]) +print(str(sys.argv[1])) diff --git a/testsuite/tests-to-run/parallel-local-0.3s.sh b/testsuite/tests-to-run/parallel-local-0.3s.sh index 93fa7e46..4291b4ca 100644 --- a/testsuite/tests-to-run/parallel-local-0.3s.sh +++ b/testsuite/tests-to-run/parallel-local-0.3s.sh @@ -783,4 +783,5 @@ par_plus_slot_replacement() { export -f $(compgen -A function | grep par_) compgen -A function | grep par_ | LC_ALL=C sort | - parallel --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' + parallel --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' | + perl -pe 's:/usr/bin:/bin:g' diff --git a/testsuite/tests-to-run/parallel-local-10s.sh b/testsuite/tests-to-run/parallel-local-10s.sh index 12451478..c6f3a7c4 100644 --- a/testsuite/tests-to-run/parallel-local-10s.sh +++ b/testsuite/tests-to-run/parallel-local-10s.sh @@ -493,7 +493,7 @@ par_shellquote() { "$shell" -c perl\ -e\ \'print\ pack\(\"c\*\",1..255\)\'\ \|\ parallel\ -0\ --shellquote } export -f doit - parallel --tag -q -k doit {} ::: ash bash csh dash fish fizsh ksh ksh93 lksh mksh posh rzsh sash sh static-sh tcsh yash zsh csh tcsh + parallel --tag -q -k doit {} ::: ash bash csh dash fish fizsh ksh2020 ksh93 lksh mksh posh rzsh sash sh static-sh tcsh yash zsh csh tcsh } par_tmp_full() { diff --git a/testsuite/tests-to-run/parallel-local-1s.sh b/testsuite/tests-to-run/parallel-local-1s.sh index 384087ea..fcb8b857 100644 --- a/testsuite/tests-to-run/parallel-local-1s.sh +++ b/testsuite/tests-to-run/parallel-local-1s.sh @@ -3965,9 +3965,14 @@ par_block_negative_prefix() { par_sql_colsep() { echo '### SQL should add Vn columns for --colsep' - parallel -C' ' --sqlandworker sqlite3:///%2ftmp%2ffoo/bar echo /{1}/{2}/{3}/{4}/ \ + parallel -k -C' ' --sqlandworker sqlite3:///%2ftmp%2ffoo/bar echo /{1}/{2}/{3}/{4}/ \ ::: 'a A' 'b B' 'c C' ::: '1 11' '2 22' '3 33' - parallel -C' ' -N3 --sqlandworker sqlite3:///%2ftmp%2ffoo/bar echo \ + parallel -k -C' ' echo /{1}/{2}/{3}/{4}/ \ + ::: 'a A' 'b B' 'c C' ::: '1 11' '2 22' '3 33' + # TODO this is wrong + parallel -k -C' ' -N3 --sqlandworker sqlite3:///%2ftmp%2ffoo/bar echo \ + ::: 'a A' 'b B' 'c C' ::: '1 11' '2 22' '3 33' '4 44' '5 55' '6 66' + parallel -k -C' ' -N3 echo \ ::: 'a A' 'b B' 'c C' ::: '1 11' '2 22' '3 33' '4 44' '5 55' '6 66' } @@ -3983,4 +3988,5 @@ par_sql_CSV() { export -f $(compgen -A function | grep par_) compgen -A function | grep par_ | LC_ALL=C sort | - parallel --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' + parallel --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' | + perl -pe 's:/usr/bin:/bin:g;' diff --git a/testsuite/tests-to-run/parallel-local-300s.sh b/testsuite/tests-to-run/parallel-local-300s.sh index 900729ac..dd1e9ad7 100644 --- a/testsuite/tests-to-run/parallel-local-300s.sh +++ b/testsuite/tests-to-run/parallel-local-300s.sh @@ -147,4 +147,5 @@ par_test_build_and_install() { export -f $(compgen -A function | grep par_) compgen -A function | grep par_ | LC_ALL=C sort | - parallel --timeout 1000% -j10 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' + parallel --timeout 1000% -j10 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' | + perl -pe 's:/usr/bin:/bin:g' diff --git a/testsuite/tests-to-run/parallel-local-3s.sh b/testsuite/tests-to-run/parallel-local-3s.sh index a72aa510..bfd59dd1 100644 --- a/testsuite/tests-to-run/parallel-local-3s.sh +++ b/testsuite/tests-to-run/parallel-local-3s.sh @@ -394,7 +394,7 @@ par_test_diff_roundrobin_k() { doit() { # Sleep random time ever 10k line # to mix up which process gets the next block - perl -ne '$t++ % 10000 or select(undef, undef, undef, rand()/1000);print' | + perl -ne '$t++ % 1000 or select(undef, undef, undef, rand()/1000);print' | md5sum } export -f doit diff --git a/testsuite/tests-to-run/parallel-local-sql01.sh b/testsuite/tests-to-run/parallel-local-sql01.sh index de9216d3..b3ff7833 100644 --- a/testsuite/tests-to-run/parallel-local-sql01.sh +++ b/testsuite/tests-to-run/parallel-local-sql01.sh @@ -6,7 +6,7 @@ export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db export PG=pg://`whoami`:`whoami`@lo/`whoami` export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami` -export CSV=csv:///%2Frun%2Fshm%2Fcsv +export CSV=csv:///%2Frun%2Fshm/parallel.csv export DEBUG=false rm -f /run/shm/parallel.db diff --git a/testsuite/tests-to-run/parallel-local-ssh5.sh b/testsuite/tests-to-run/parallel-local-ssh5.sh index c51c63ae..8b6c9e97 100644 --- a/testsuite/tests-to-run/parallel-local-ssh5.sh +++ b/testsuite/tests-to-run/parallel-local-ssh5.sh @@ -3,13 +3,15 @@ # SSH only allowed to localhost/lo par_autossh() { - echo '### --ssh autossh - add commands that fail here' + echo '### --ssh autossh' export PARALLEL_SSH=autossh; export AUTOSSH_PORT=0 parallel -S lo echo ::: OK echo OK | parallel --pipe -S lo cat parallel -S lo false ::: a || echo OK should fail + echo '### --ssh autossh - add commands that fail here' touch foo_autossh stdout parallel -S csh@lo --trc {}.out touch {}.out ::: foo_autossh + ls foo_autossh* rm foo_autossh* } diff --git a/testsuite/tests-to-run/parallel-local-ssh7.sh b/testsuite/tests-to-run/parallel-local-ssh7.sh index a60a6dc7..8f497b05 100755 --- a/testsuite/tests-to-run/parallel-local-ssh7.sh +++ b/testsuite/tests-to-run/parallel-local-ssh7.sh @@ -291,7 +291,7 @@ par_fish_man() { echo exit value $status should be 255 `sleep 1` _EOF ) - ssh fish@lo "$myscript" + ssh fish@lo "$myscript" | LC_ALL=C sort } par_ksh_man() { @@ -1513,8 +1513,8 @@ par_fish_env_parallel() { myscript=$(cat <<'_EOF' echo 'bug #50435: Remote fifo broke in 20150522' # Due to $PARALLEL_TMP being transferred + env_parallel --session set OK OK - echo TODO fix env_parallel --fifo echo data from stdin | env_parallel --pipe -S lo --fifo 'cat {}; and echo $OK' echo data from stdin | env_parallel --pipe -S lo --cat 'cat {}; and echo $OK' _EOF @@ -3319,4 +3319,5 @@ compgen -A function | grep par_ | LC_ALL=C sort -r | s/:\d?\d\d:/:XXX:/; s/sh\[\d+\]/sh[XXX]/; s/.*(tange|zenodo).*//i; + s:/usr/bin:/bin:g; ' diff --git a/testsuite/tests-to-run/parallel-local21.sh b/testsuite/tests-to-run/parallel-local21.sh index 114bb69c..e717ce5d 100644 --- a/testsuite/tests-to-run/parallel-local21.sh +++ b/testsuite/tests-to-run/parallel-local21.sh @@ -75,10 +75,10 @@ EOF par_shebang_wrap_python() { F=/tmp/shebang_wrap_python cat <<'EOF' > $F -#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/python +#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/python3 import sys -print 'Arguments', str(sys.argv) +print('Arguments', str(sys.argv)) EOF chmod 755 $F $F arg1 arg2 arg3 diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index ee426e3d..5bf2d548 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -817,8 +817,8 @@ par_shellquote fish ' par_shellquote fish par_shellquote fish  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' par_shellquote fizsh ' par_shellquote fizsh par_shellquote fizsh  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' -par_shellquote ksh ' -par_shellquote ksh par_shellquote ksh  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' +par_shellquote ksh2020 ' +par_shellquote ksh2020 par_shellquote ksh2020  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' par_shellquote ksh93 ' par_shellquote ksh93 par_shellquote ksh93  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' par_shellquote lksh ' diff --git a/testsuite/wanted-results/parallel-local-1s b/testsuite/wanted-results/parallel-local-1s index 0e8d9ba0..81d8fa1d 100644 --- a/testsuite/wanted-results/parallel-local-1s +++ b/testsuite/wanted-results/parallel-local-1s @@ -252,7 +252,7 @@ par_profiles_with_space echo '/bin/bash=/bin/bash' par_profiles_with_space /bin/bash=/bin/bash par_profiles_with_space With script in $PARALLEL /bin/bash=~/privat/parallel/testsuite par_pxz_complains bug #44250: pxz complains File format not recognized but decompresses anyway -par_pxz_complains ls: cannot access '/OK-if-missing-file': No such file or directory +par_pxz_complains pxz: execution of xz binary failed: No such file or directory par_pxz_complains can not seek in input: Illegal seek par_pxz_complains ls: cannot access '/OK-if-missing-file': No such file or directory par_replacement_rename ### Test --basenamereplace @@ -576,8 +576,7 @@ par_seqreplace_long_line 1 parallel: Error: Command line too long (309 >= par_sql_CSV ### CSV write to the right place par_sql_CSV ran OK par_sql_CSV ok -par_sql_CSV DBI connect('','',...) failed: No such directory '/must/fail at /usr/local/bin/parallel line 00000. -par_sql_CSV No such directory '/must/fail at /usr/local/bin/parallel line 00000. +par_sql_CSV parallel: Error: /must/fail is not a directory. par_sql_colsep ### SQL should add Vn columns for --colsep par_sql_colsep /a/A/1/11/ par_sql_colsep /a/A/2/22/ @@ -588,8 +587,23 @@ par_sql_colsep /b/B/3/33/ par_sql_colsep /c/C/1/11/ par_sql_colsep /c/C/2/22/ par_sql_colsep /c/C/3/33/ +par_sql_colsep /a/A/1/11/ +par_sql_colsep /a/A/2/22/ +par_sql_colsep /a/A/3/33/ +par_sql_colsep /b/B/1/11/ +par_sql_colsep /b/B/2/22/ +par_sql_colsep /b/B/3/33/ +par_sql_colsep /c/C/1/11/ +par_sql_colsep /c/C/2/22/ +par_sql_colsep /c/C/3/33/ par_sql_colsep a A 1 11 a A 2 22 a A 3 33 a A 4 44 a A 5 55 a A 6 66 b B 1 11 b B 2 22 b B 3 33 par_sql_colsep b B 4 44 b B 5 55 b B 6 66 c C 1 11 c C 2 22 c C 3 33 c C 4 44 c C 5 55 c C 6 66 +par_sql_colsep a A 1 11 a A 2 22 a A 3 33 +par_sql_colsep a A 4 44 a A 5 55 a A 6 66 +par_sql_colsep b B 1 11 b B 2 22 b B 3 33 +par_sql_colsep b B 4 44 b B 5 55 b B 6 66 +par_sql_colsep c C 1 11 c C 2 22 c C 3 33 +par_sql_colsep c C 4 44 c C 5 55 c C 6 66 par_test_E ### Test -E par_test_E 1 2 3 par_test_E 1 2 4 diff --git a/testsuite/wanted-results/parallel-local-300s b/testsuite/wanted-results/parallel-local-300s index c89da450..3eb7b994 100644 --- a/testsuite/wanted-results/parallel-local-300s +++ b/testsuite/wanted-results/parallel-local-300s @@ -192,7 +192,7 @@ par_test_build_and_install make[0]: Leaving directory '~/privat/parallel' par_test_build_and_install if test -d "parallel-00000000"; then find "parallel-00000000" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "parallel-00000000" || { sleep 5 && rm -rf "parallel-00000000"; }; else :; fi par_test_build_and_install make[0]: Leaving directory '~/privat/parallel' par_test_build_and_install ### Test normal build and install -par_test_build_and_install checking for a BSD-compatible install... /usr/bin/install -c +par_test_build_and_install checking for a BSD-compatible install... /bin/install -c par_test_build_and_install checking whether build environment is sane... yes par_test_build_and_install checking for a thread-safe mkdir -p... /bin/mkdir -p par_test_build_and_install checking for gawk... gawk @@ -209,18 +209,18 @@ par_test_build_and_install Making install in src par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin' -par_test_build_and_install /usr/bin/install -c parallel sql niceload parcat parset parsort env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin' +par_test_build_and_install /bin/install -c parallel sql niceload parcat parset parsort env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin' par_test_build_and_install make install-exec-hook par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install rm /tmp/parallel-install/bin/sem || true par_test_build_and_install ln -s parallel /tmp/parallel-install/bin/sem par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel' -par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel' +par_test_build_and_install /bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1' -par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 parsort.1 '/tmp/parallel-install/share/man/man1' +par_test_build_and_install /bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 parsort.1 '/tmp/parallel-install/share/man/man1' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7' -par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7' +par_test_build_and_install /bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000' @@ -231,7 +231,7 @@ par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000' par_test_build_and_install ### Test installation missing pod2* -par_test_build_and_install checking for a BSD-compatible install... /usr/bin/install -c +par_test_build_and_install checking for a BSD-compatible install... /bin/install -c par_test_build_and_install checking whether build environment is sane... yes par_test_build_and_install checking for a thread-safe mkdir -p... /bin/mkdir -p par_test_build_and_install checking for gawk... gawk @@ -469,7 +469,7 @@ par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin' -par_test_build_and_install /usr/bin/install -c parallel sql niceload parcat parset parsort env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin' +par_test_build_and_install /bin/install -c parallel sql niceload parcat parset parsort env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin' par_test_build_and_install make install-exec-hook par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install rm /tmp/parallel-install/bin/sem || true @@ -630,7 +630,7 @@ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel' -par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel' +par_test_build_and_install /bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel' par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 ./parallel.pod > ./parallel.1n \ par_test_build_and_install && mv ./parallel.1n ./parallel.1 \ @@ -698,9 +698,9 @@ par_test_build_and_install || echo "Warning: pod2man not found. Using old parset par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parset.1 par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1' -par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 parsort.1 '/tmp/parallel-install/share/man/man1' +par_test_build_and_install /bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 parsort.1 '/tmp/parallel-install/share/man/man1' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7' -par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7' +par_test_build_and_install /bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000' diff --git a/testsuite/wanted-results/parallel-local-30s b/testsuite/wanted-results/parallel-local-30s index 5f0bd360..1c6d128d 100644 --- a/testsuite/wanted-results/parallel-local-30s +++ b/testsuite/wanted-results/parallel-local-30s @@ -1197,13 +1197,13 @@ par_macron par_macron -q "" par_macron -q par_macron -q "" -par_macron -q /bin/bash: $'echo \257': command not found +par_macron -q /usr/bin/bash: $'echo \257': command not found par_macron -Xq par_macron -Xq par_macron -Xq "" par_macron -Xq par_macron -Xq "" -par_macron -Xq /bin/bash: $'echo \257': command not found +par_macron -Xq /usr/bin/bash: $'echo \257': command not found par_macron -k par_macron -k par_macron -k @@ -1221,13 +1221,13 @@ par_macron par_macron -q "" par_macron -q par_macron -q "" -par_macron -q /bin/bash: $'echo \257\256': command not found +par_macron -q /usr/bin/bash: $'echo \257\256': command not found par_macron -Xq par_macron -Xq par_macron -Xq "" par_macron -Xq par_macron -Xq "" -par_macron -Xq /bin/bash: $'echo \257\256': command not found +par_macron -Xq /usr/bin/bash: $'echo \257\256': command not found par_macron -k par_macron -k par_macron -k @@ -1245,13 +1245,13 @@ par_macron par_macron -q "" par_macron -q par_macron -q "" -par_macron -q /bin/bash: $'echo \257\257\256': command not found +par_macron -q /usr/bin/bash: $'echo \257\257\256': command not found par_macron -Xq par_macron -Xq par_macron -Xq "" par_macron -Xq par_macron -Xq "" -par_macron -Xq /bin/bash: $'echo \257\257\256': command not found +par_macron -Xq /usr/bin/bash: $'echo \257\257\256': command not found par_macron -k par_macron -k par_macron -k @@ -1261,29 +1261,29 @@ par_macron par_macron <<>> -X <<>> par_macron <<>> -X <<>> <<>> par_macron <<>> -X <<>><<>> -par_macron <<>> -X /bin/bash: -c: line 0: syntax error near unexpected token `newline' -par_macron <<>> -X /bin/bash: -c: line 0: `echo <<>>' -par_macron <<>> -X /bin/bash: : No such file or directory -par_macron <<>> -X /bin/bash: : No such file or directory +par_macron <<>> -X /usr/bin/bash: -c: line 0: syntax error near unexpected token `newline' +par_macron <<>> -X /usr/bin/bash: -c: line 0: `echo <<>>' +par_macron <<>> -X /usr/bin/bash: : No such file or directory +par_macron <<>> -X /usr/bin/bash: : No such file or directory par_macron <<>> -q <<>> par_macron <<>> -q <<>> <<>> par_macron <<>> -q "<<>>" <<>> par_macron <<>> -q <<>><<>> par_macron <<>> -q "<<>>"<<>> -par_macron <<>> -q /bin/bash: $'echo \257<\257<\257>\257>': command not found +par_macron <<>> -q /usr/bin/bash: $'echo \257<\257<\257>\257>': command not found par_macron <<>> -Xq <<>> par_macron <<>> -Xq <<>> <<>> par_macron <<>> -Xq "<<>>" <<>> par_macron <<>> -Xq <<>><<>> par_macron <<>> -Xq "<<>>"<<>> -par_macron <<>> -Xq /bin/bash: $'echo \257<\257<\257>\257>': command not found +par_macron <<>> -Xq /usr/bin/bash: $'echo \257<\257<\257>\257>': command not found par_macron <<>> -k <<>> par_macron <<>> -k <<>> <<>> par_macron <<>> -k <<>><<>> -par_macron <<>> -k /bin/bash: -c: line 0: syntax error near unexpected token `newline' -par_macron <<>> -k /bin/bash: -c: line 0: `echo <<>>' -par_macron <<>> -k /bin/bash: : No such file or directory -par_macron <<>> -k /bin/bash: : No such file or directory +par_macron <<>> -k /usr/bin/bash: -c: line 0: syntax error near unexpected token `newline' +par_macron <<>> -k /usr/bin/bash: -c: line 0: `echo <<>>' +par_macron <<>> -k /usr/bin/bash: : No such file or directory +par_macron <<>> -k /usr/bin/bash: : No such file or directory par_max_length_len_128k ### BUG: The length for -X is not close to max (131072) par_max_length_len_128k 131xxx par_max_length_len_128k 131xxx @@ -1417,63 +1417,63 @@ par_slow_total_jobs 1 par_slow_total_jobs 2 par_slow_total_jobs parallel: Warning: Reading X arguments took longer than XX seconds. par_test_detected_shell ### bug #42913: Dont use $SHELL but the shell currently running -par_test_detected_shell test_unknown_shell ash Global::shell /bin/bash -par_test_detected_shell test_unknown_shell bash Global::shell /bin/bash -par_test_detected_shell test_unknown_shell csh Global::shell /bin/bash -par_test_detected_shell test_unknown_shell dash Global::shell /bin/bash -par_test_detected_shell test_unknown_shell fish Global::shell /bin/bash +par_test_detected_shell test_unknown_shell ash Global::shell /usr/bin/bash +par_test_detected_shell test_unknown_shell bash Global::shell /usr/bin/bash +par_test_detected_shell test_unknown_shell csh Global::shell /usr/bin/bash +par_test_detected_shell test_unknown_shell dash Global::shell /usr/bin/bash +par_test_detected_shell test_unknown_shell fish Global::shell /usr/bin/bash par_test_detected_shell test_unknown_shell fizsh Global::shell /usr/bin/zsh -par_test_detected_shell test_unknown_shell ksh Global::shell /bin/bash -par_test_detected_shell test_unknown_shell ksh93 Global::shell /bin/bash -par_test_detected_shell test_unknown_shell mksh Global::shell /bin/bash -par_test_detected_shell test_unknown_shell posh Global::shell /bin/bash -par_test_detected_shell test_unknown_shell rbash Global::shell /bin/bash +par_test_detected_shell test_unknown_shell ksh Global::shell /usr/bin/bash +par_test_detected_shell test_unknown_shell ksh93 Global::shell /usr/bin/bash +par_test_detected_shell test_unknown_shell mksh Global::shell /usr/bin/bash +par_test_detected_shell test_unknown_shell posh Global::shell /usr/bin/bash +par_test_detected_shell test_unknown_shell rbash Global::shell /usr/bin/bash par_test_detected_shell test_unknown_shell rush Local configuration error occurred. par_test_detected_shell test_unknown_shell rush Contact the systems administrator for further assistance. -par_test_detected_shell test_unknown_shell rzsh Global::shell /bin/bash -par_test_detected_shell test_unknown_shell sash Global::shell /bin/sh -par_test_detected_shell test_unknown_shell sh Global::shell /bin/bash +par_test_detected_shell test_unknown_shell rzsh Global::shell /usr/bin/bash +par_test_detected_shell test_unknown_shell sash Global::shell /usr/bin/sh +par_test_detected_shell test_unknown_shell sh Global::shell /usr/bin/bash par_test_detected_shell test_unknown_shell static-sh test_unknown_shell_static-sh: applet not found -par_test_detected_shell test_unknown_shell tcsh Global::shell /bin/bash -par_test_detected_shell test_unknown_shell yash Global::shell /bin/bash -par_test_detected_shell test_unknown_shell zsh Global::shell /bin/bash -par_test_detected_shell test_known_shell_c ash Global::shell /bin/ash -par_test_detected_shell test_known_shell_c bash Global::shell /bin/bash -par_test_detected_shell test_known_shell_c csh Global::shell /bin/csh -par_test_detected_shell test_known_shell_c dash Global::shell /bin/dash +par_test_detected_shell test_unknown_shell tcsh Global::shell /usr/bin/bash +par_test_detected_shell test_unknown_shell yash Global::shell /usr/bin/bash +par_test_detected_shell test_unknown_shell zsh Global::shell /usr/bin/bash +par_test_detected_shell test_known_shell_c ash Global::shell /usr/bin/ash +par_test_detected_shell test_known_shell_c bash Global::shell /usr/bin/bash +par_test_detected_shell test_known_shell_c csh Global::shell /usr/bin/csh +par_test_detected_shell test_known_shell_c dash Global::shell /usr/bin/dash par_test_detected_shell test_known_shell_c fish Global::shell /usr/bin/fish par_test_detected_shell test_known_shell_c fizsh Global::shell /usr/bin/zsh par_test_detected_shell test_known_shell_c ksh Global::shell /usr/bin/ksh -par_test_detected_shell test_known_shell_c ksh93 Global::shell /bin/ksh93 -par_test_detected_shell test_known_shell_c mksh Global::shell /bin/mksh +par_test_detected_shell test_known_shell_c ksh93 Global::shell /usr/bin/ksh93 +par_test_detected_shell test_known_shell_c mksh Global::shell /usr/bin/mksh par_test_detected_shell test_known_shell_c posh Global::shell /usr/bin/posh -par_test_detected_shell test_known_shell_c rbash Global::shell /bin/rbash +par_test_detected_shell test_known_shell_c rbash Global::shell /usr/bin/rbash par_test_detected_shell test_known_shell_c rush Local configuration error occurred. par_test_detected_shell test_known_shell_c rush Contact the systems administrator for further assistance. -par_test_detected_shell test_known_shell_c rzsh Global::shell /bin/rzsh -par_test_detected_shell test_known_shell_c sash Global::shell /bin/sh -par_test_detected_shell test_known_shell_c sh Global::shell /bin/sh -par_test_detected_shell test_known_shell_c static-sh Global::shell /bin/static-sh +par_test_detected_shell test_known_shell_c rzsh Global::shell /usr/bin/rzsh +par_test_detected_shell test_known_shell_c sash Global::shell /usr/bin/sh +par_test_detected_shell test_known_shell_c sh Global::shell /usr/bin/sh +par_test_detected_shell test_known_shell_c static-sh Global::shell /usr/bin/static-sh par_test_detected_shell test_known_shell_c tcsh Global::shell /usr/bin/tcsh par_test_detected_shell test_known_shell_c yash Global::shell /usr/bin/yash par_test_detected_shell test_known_shell_c zsh Global::shell /usr/bin/zsh -par_test_detected_shell test_known_shell_pipe ash Global::shell /bin/ash -par_test_detected_shell test_known_shell_pipe bash Global::shell /bin/bash -par_test_detected_shell test_known_shell_pipe csh Global::shell /bin/csh -par_test_detected_shell test_known_shell_pipe dash Global::shell /bin/dash +par_test_detected_shell test_known_shell_pipe ash Global::shell /usr/bin/ash +par_test_detected_shell test_known_shell_pipe bash Global::shell /usr/bin/bash +par_test_detected_shell test_known_shell_pipe csh Global::shell /usr/bin/csh +par_test_detected_shell test_known_shell_pipe dash Global::shell /usr/bin/dash par_test_detected_shell test_known_shell_pipe fish Global::shell /usr/bin/fish par_test_detected_shell test_known_shell_pipe fizsh Global::shell /usr/bin/fizsh par_test_detected_shell test_known_shell_pipe ksh Global::shell /usr/bin/ksh -par_test_detected_shell test_known_shell_pipe ksh93 Global::shell /bin/ksh93 -par_test_detected_shell test_known_shell_pipe mksh Global::shell /bin/mksh +par_test_detected_shell test_known_shell_pipe ksh93 Global::shell /usr/bin/ksh93 +par_test_detected_shell test_known_shell_pipe mksh Global::shell /usr/bin/mksh par_test_detected_shell test_known_shell_pipe posh Global::shell /usr/bin/posh -par_test_detected_shell test_known_shell_pipe rbash Global::shell /bin/rbash +par_test_detected_shell test_known_shell_pipe rbash Global::shell /usr/bin/rbash par_test_detected_shell test_known_shell_pipe rush Local configuration error occurred. par_test_detected_shell test_known_shell_pipe rush Contact the systems administrator for further assistance. -par_test_detected_shell test_known_shell_pipe rzsh Global::shell /bin/rzsh -par_test_detected_shell test_known_shell_pipe sash Global::shell /bin/sh -par_test_detected_shell test_known_shell_pipe sh Global::shell /bin/sh -par_test_detected_shell test_known_shell_pipe static-sh Global::shell /bin/static-sh +par_test_detected_shell test_known_shell_pipe rzsh Global::shell /usr/bin/rzsh +par_test_detected_shell test_known_shell_pipe sash Global::shell /usr/bin/sh +par_test_detected_shell test_known_shell_pipe sh Global::shell /usr/bin/sh +par_test_detected_shell test_known_shell_pipe static-sh Global::shell /usr/bin/static-sh par_test_detected_shell test_known_shell_pipe tcsh Global::shell /usr/bin/tcsh par_test_detected_shell test_known_shell_pipe yash Global::shell /usr/bin/yash par_test_detected_shell test_known_shell_pipe zsh Global::shell /usr/bin/zsh diff --git a/testsuite/wanted-results/parallel-local-ssh5 b/testsuite/wanted-results/parallel-local-ssh5 index c8e207c4..9caf18fe 100644 --- a/testsuite/wanted-results/parallel-local-ssh5 +++ b/testsuite/wanted-results/parallel-local-ssh5 @@ -542,41 +542,11 @@ par_basefile_cleanup bug_46520 par_basefile_cleanup bug_46520 par_basefile_cleanup bug_46520 par_basefile_cleanup ls: cannot access 'bug_46520': No such file or directory -par_autossh ### --ssh autossh - add commands that fail here +par_autossh ### --ssh autossh par_autossh OK par_autossh OK -par_autossh /usr/lib/autossh/autossh: invalid option -- '-' -par_autossh usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS] -par_autossh -par_autossh -M specifies monitor port. Overrides the environment -par_autossh variable AUTOSSH_PORT. 0 turns monitoring loop off. -par_autossh Alternatively, a port for an echo service on the remote -par_autossh machine may be specified. (Normally port 7.) -par_autossh -f run in background (autossh handles this, and does not -par_autossh pass it to ssh.) -par_autossh -V print autossh version and exit. -par_autossh -par_autossh Environment variables are: -par_autossh AUTOSSH_GATETIME - how long must an ssh session be established -par_autossh before we decide it really was established -par_autossh (in seconds). Default is 30 seconds; use of -f -par_autossh flag sets this to 0. -par_autossh AUTOSSH_LOGFILE - file to log to (default is to use the syslog -par_autossh facility) -par_autossh AUTOSSH_LOGLEVEL - level of log verbosity -par_autossh AUTOSSH_MAXLIFETIME - set the maximum time to live (seconds) -par_autossh AUTOSSH_MAXSTART - max times to restart (default is no limit) -par_autossh AUTOSSH_MESSAGE - message to append to echo string (max 64 bytes) -par_autossh AUTOSSH_PATH - path to ssh if not default -par_autossh AUTOSSH_PIDFILE - write pid to this file -par_autossh AUTOSSH_POLL - how often to check the connection (seconds) -par_autossh AUTOSSH_FIRST_POLL - time before first connection check (seconds) -par_autossh AUTOSSH_PORT - port to use for monitor connection -par_autossh AUTOSSH_DEBUG - turn logging to maximum verbosity and log to -par_autossh stderr -par_autossh -par_autossh rsync: connection unexpectedly closed (0 bytes received so far) [sender] -par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(235) [sender=3.1.2] +par_autossh OK should fail +par_autossh ### --ssh autossh - add commands that fail here par_autossh /usr/lib/autossh/autossh: invalid option -- '-' par_autossh usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS] par_autossh @@ -608,4 +578,5 @@ par_autossh AUTOSSH_DEBUG - turn logging to maximum verbosity and log par_autossh stderr par_autossh par_autossh rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] -par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.2] +par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.3] +par_autossh foo_autossh diff --git a/testsuite/wanted-results/parallel-local-ssh7 b/testsuite/wanted-results/parallel-local-ssh7 index 936998ff..fbd2096a 100644 --- a/testsuite/wanted-results/parallel-local-ssh7 +++ b/testsuite/wanted-results/parallel-local-ssh7 @@ -736,8 +736,8 @@ par_mksh_underscore variables in aliases in and arrays in functions work par_mksh_underscore variables in aliases in and arrays in functions work par_mksh_underscore variables in aliases in and arrays in functions work par_mksh_underscore variables in aliases in and arrays in functions work -par_mksh_underscore /bin/mksh: not_copied_alias: not found -par_mksh_underscore /bin/mksh: not_copied_func: not found +par_mksh_underscore /bin/mksh: not_copied_alias: inaccessible or not found +par_mksh_underscore /bin/mksh: not_copied_func: inaccessible or not found par_mksh_underscore error=OK par_mksh_underscore error=OK par_mksh_underscore aliases in and arrays in functions work @@ -748,9 +748,9 @@ par_mksh_underscore aliases in functions work par_mksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ par_mksh_underscore aliases in functions work par_mksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_mksh_underscore /bin/mksh: myfunc: not found +par_mksh_underscore /bin/mksh: myfunc: inaccessible or not found par_mksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ -par_mksh_underscore /bin/mksh: myfunc: not found +par_mksh_underscore /bin/mksh: myfunc: inaccessible or not found par_mksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ par_mksh_parset parset par_mksh_parset ### parset into array @@ -886,7 +886,7 @@ par_mksh_environment_too_big OK_bigfunc_remote par_mksh_environment_too_big OK_bigfunc_quote par_mksh_environment_too_big OK_bigfunc_quote_remote par_mksh_environment_too_big Rest should fail -par_mksh_environment_too_big mksh: /usr/bin/perl: Argument list too long +par_mksh_environment_too_big mksh: /bin/perl: Argument list too long par_mksh_environment_too_big env_parallel: Error: Your environment is too big. par_mksh_environment_too_big env_parallel: Error: You can try 3 different approaches: par_mksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -897,7 +897,7 @@ par_mksh_environment_too_big env_parallel: Error: env_parallel --record-env par_mksh_environment_too_big env_parallel: Error: And then use '--env _' par_mksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote -par_mksh_environment_too_big mksh: /usr/bin/perl: Argument list too long +par_mksh_environment_too_big mksh: /bin/perl: Argument list too long par_mksh_environment_too_big env_parallel: Error: Your environment is too big. par_mksh_environment_too_big env_parallel: Error: You can try 3 different approaches: par_mksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -908,7 +908,7 @@ par_mksh_environment_too_big env_parallel: Error: env_parallel --record-env par_mksh_environment_too_big env_parallel: Error: And then use '--env _' par_mksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote -par_mksh_environment_too_big mksh: /usr/bin/perl: Argument list too long +par_mksh_environment_too_big mksh: /bin/perl: Argument list too long par_mksh_environment_too_big env_parallel: Error: Your environment is too big. par_mksh_environment_too_big env_parallel: Error: You can try 3 different approaches: par_mksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -919,7 +919,7 @@ par_mksh_environment_too_big env_parallel: Error: env_parallel --record-env par_mksh_environment_too_big env_parallel: Error: And then use '--env _' par_mksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_remote -par_mksh_environment_too_big mksh: /usr/bin/perl: Argument list too long +par_mksh_environment_too_big mksh: /bin/perl: Argument list too long par_mksh_environment_too_big env_parallel: Error: Your environment is too big. par_mksh_environment_too_big env_parallel: Error: You can try 3 different approaches: par_mksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -934,12 +934,12 @@ par_mksh_env_parallel_session ### Test env_parallel --session par_mksh_env_parallel_session ### level0 should be hidden, level1 should be transferred par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level0func: not found -par_mksh_env_parallel_session /bin/mksh: level0alias: not found +par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found +par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level0func: not found -par_mksh_env_parallel_session /bin/mksh: level0alias: not found +par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found +par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found par_mksh_env_parallel_session l1var par_mksh_env_parallel_session l1func par_mksh_env_parallel_session l1alias @@ -951,20 +951,20 @@ par_mksh_env_parallel_session level1 array OK par_mksh_env_parallel_session ### level0+1 should be hidden, level2 should be transferred par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level0func: not found -par_mksh_env_parallel_session /bin/mksh: level0alias: not found +par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found +par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level0func: not found -par_mksh_env_parallel_session /bin/mksh: level0alias: not found +par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found +par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level1func: not found -par_mksh_env_parallel_session /bin/mksh: level1alias: not found +par_mksh_env_parallel_session /bin/mksh: level1func: inaccessible or not found +par_mksh_env_parallel_session /bin/mksh: level1alias: inaccessible or not found par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level1func: not found -par_mksh_env_parallel_session /bin/mksh: level1alias: not found +par_mksh_env_parallel_session /bin/mksh: level1func: inaccessible or not found +par_mksh_env_parallel_session /bin/mksh: level1alias: inaccessible or not found par_mksh_env_parallel_session l2var par_mksh_env_parallel_session l2func par_mksh_env_parallel_session l2alias @@ -976,12 +976,12 @@ par_mksh_env_parallel_session level2 array OK par_mksh_env_parallel_session ### level0 should be hidden, level1+2 should be transferred par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level0func: not found -par_mksh_env_parallel_session /bin/mksh: level0alias: not found +par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found +par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level0func: not found -par_mksh_env_parallel_session /bin/mksh: level0alias: not found +par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found +par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found par_mksh_env_parallel_session l1var par_mksh_env_parallel_session l1func par_mksh_env_parallel_session l1alias @@ -1023,10 +1023,10 @@ par_mksh_env_parallel_session l2var par_mksh_env_parallel_session l2func par_mksh_env_parallel_session l2alias par_mksh_env_parallel_session level2 array OK -par_mksh_env_parallel_session /bin/mksh: aliasbefore: not found -par_mksh_env_parallel_session /bin/mksh: aliasbefore: not found -par_mksh_env_parallel_session /bin/mksh: funcbefore: not found -par_mksh_env_parallel_session /bin/mksh: funcbefore: not found +par_mksh_env_parallel_session /bin/mksh: aliasbefore: inaccessible or not found +par_mksh_env_parallel_session /bin/mksh: aliasbefore: inaccessible or not found +par_mksh_env_parallel_session /bin/mksh: funcbefore: inaccessible or not found +par_mksh_env_parallel_session /bin/mksh: funcbefore: inaccessible or not found par_mksh_env_parallel_session no_before par_mksh_env_parallel_session no_before par_mksh_env_parallel_session no_before @@ -1075,21 +1075,21 @@ par_ksh_underscore variables in aliases in and arrays in functions work par_ksh_underscore variables in aliases in and arrays in functions work par_ksh_underscore variables in aliases in and arrays in functions work par_ksh_underscore variables in aliases in and arrays in functions work -par_ksh_underscore /usr/bin/ksh: line 4: not_copied_alias: not found -par_ksh_underscore /usr/bin/ksh: line 4: not_copied_func: not found +par_ksh_underscore /bin/ksh: line 4: not_copied_alias: not found +par_ksh_underscore /bin/ksh: line 4: not_copied_func: not found par_ksh_underscore error=OK par_ksh_underscore error=OK par_ksh_underscore aliases in and arrays in functions work par_ksh_underscore aliases in and arrays in functions work par_ksh_underscore aliases in functions work par_ksh_underscore aliases in functions work -par_ksh_underscore /usr/bin/ksh: myecho: not found [No such file or directory] +par_ksh_underscore /bin/ksh: myecho: not found [No such file or directory] par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_ksh_underscore /usr/bin/ksh: myecho: not found [No such file or directory] +par_ksh_underscore /bin/ksh: myecho: not found [No such file or directory] par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_ksh_underscore /usr/bin/ksh: myfunc: not found +par_ksh_underscore /bin/ksh: myfunc: not found par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ -par_ksh_underscore /usr/bin/ksh: myfunc: not found +par_ksh_underscore /bin/ksh: myfunc: not found par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ par_ksh_parset parset par_ksh_parset ### parset into array @@ -1196,9 +1196,9 @@ par_ksh_man work, par_ksh_man too par_ksh_man This may never work par_ksh_man https://unix.stackexchange.com/questions/457031/extract-full-function-definitions -par_ksh_man /usr/bin/ksh: line XXX: syntax error at line XXX: `(' unexpected -par_ksh_man /usr/bin/ksh: line XXX: syntax error at line XXX: `(' unexpected -par_ksh_man /usr/bin/ksh: line XXX: syntax error at line XXX: `(' unexpected +par_ksh_man /bin/ksh: line XXX: syntax error at line XXX: `(' unexpected +par_ksh_man /bin/ksh: line XXX: syntax error at line XXX: `(' unexpected +par_ksh_man /bin/ksh: line XXX: syntax error at line XXX: `(' unexpected par_ksh_man exit value 2 should be 2 par_ksh_man Unknown option: no-such-option par_ksh_man exit value 255 should be 255 @@ -1229,7 +1229,7 @@ par_ksh_environment_too_big OK_bigfunc_remote par_ksh_environment_too_big OK_bigfunc_quote par_ksh_environment_too_big OK_bigfunc_quote_remote par_ksh_environment_too_big Rest should fail -par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[XXX]: perl: /bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -1240,7 +1240,7 @@ par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_ksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote -par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[XXX]: perl: /bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -1251,7 +1251,7 @@ par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_ksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote -par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[XXX]: perl: /bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -1262,7 +1262,7 @@ par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_ksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_remote -par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[XXX]: perl: /bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -1272,7 +1272,7 @@ par_ksh_environment_too_big env_parallel: Error: 3. Try running this in a clean par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[XXX]: perl: /bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -1286,12 +1286,12 @@ par_ksh_env_parallel_session ### Test env_parallel --session par_ksh_env_parallel_session ### level0 should be hidden, level1 should be transferred par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory] par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory] par_ksh_env_parallel_session l1var par_ksh_env_parallel_session l1func par_ksh_env_parallel_session l1alias @@ -1303,20 +1303,20 @@ par_ksh_env_parallel_session level1 array OK par_ksh_env_parallel_session ### level0+1 should be hidden, level2 should be transferred par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory] par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory] par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level1func: not found [No such file or directory] -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level1alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level1func: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level1alias: not found [No such file or directory] par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level1func: not found [No such file or directory] -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level1alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level1func: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level1alias: not found [No such file or directory] par_ksh_env_parallel_session l2var par_ksh_env_parallel_session l2func par_ksh_env_parallel_session l2alias @@ -1328,12 +1328,12 @@ par_ksh_env_parallel_session level2 array OK par_ksh_env_parallel_session ### level0 should be hidden, level1+2 should be transferred par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory] par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session /usr/bin/ksh[XXX]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory] par_ksh_env_parallel_session l1var par_ksh_env_parallel_session l1func par_ksh_env_parallel_session l1alias @@ -1375,10 +1375,10 @@ par_ksh_env_parallel_session l2var par_ksh_env_parallel_session l2func par_ksh_env_parallel_session l2alias par_ksh_env_parallel_session level2 array OK -par_ksh_env_parallel_session /usr/bin/ksh: line 3: aliasbefore: not found -par_ksh_env_parallel_session /usr/bin/ksh: line 3: aliasbefore: not found -par_ksh_env_parallel_session /usr/bin/ksh: line 3: funcbefore: not found -par_ksh_env_parallel_session /usr/bin/ksh: line 3: funcbefore: not found +par_ksh_env_parallel_session /bin/ksh: line 3: aliasbefore: not found +par_ksh_env_parallel_session /bin/ksh: line 3: aliasbefore: not found +par_ksh_env_parallel_session /bin/ksh: line 3: funcbefore: not found +par_ksh_env_parallel_session /bin/ksh: line 3: funcbefore: not found par_ksh_env_parallel_session no_before par_ksh_env_parallel_session no_before par_ksh_env_parallel_session no_before @@ -1436,19 +1436,13 @@ par_fish_underscore aliases and arrays in functions work par_fish_underscore aliases and arrays in functions work par_fish_underscore aliases functions work par_fish_underscore aliases functions work -par_fish_underscore myecho $myarray functions $argv -par_fish_underscore ^ -par_fish_underscore in function 'myfunc' -par_fish_underscore called on standard input -par_fish_underscore with parameter list 'work' -par_fish_underscore +par_fish_underscore myecho $myarray functions $argv +par_fish_underscore ^ +par_fish_underscore in function 'myfunc' with arguments 'work' par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho -par_fish_underscore myecho $myarray functions $argv -par_fish_underscore ^ -par_fish_underscore in function 'myfunc' -par_fish_underscore called on standard input -par_fish_underscore with parameter list 'work' -par_fish_underscore +par_fish_underscore myecho $myarray functions $argv +par_fish_underscore ^ +par_fish_underscore in function 'myfunc' with arguments 'work' par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho par_fish_underscore myfunc work par_fish_underscore ^ @@ -1517,7 +1511,7 @@ par_fish_funky space 6 par_fish_funky par_fish_funky par_fish_funky -par_fish_funky Funky- par_fish_funky   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_fish_funky Funky- par_fish_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky par_fish_funky Funkyenv- par_fish_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyenv par_fish_funky par_fish_funky @@ -1532,28 +1526,28 @@ par_fish_funky space 6 par_fish_funky par_fish_funky par_fish_funky -par_fish_funky Funky- par_fish_funky   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_fish_funky Funky- par_fish_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky par_fish_funky Funkyenv- par_fish_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyenv par_fish_funky par_fish_funky par_fish_funky par_fish_funky -par_fish_funky ' par_fish_funky   !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' +par_fish_funky ' par_fish_funky  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' par_fish_environment_too_big Not implemented par_fish_env_parallel_session ### Test env_parallel --session -par_fish_env_parallel_session fish: Unknown command 'aliasbefore must_fail' +par_fish_env_parallel_session fish: Unknown command: aliasbefore par_fish_env_parallel_session fish: par_fish_env_parallel_session aliasbefore must_fail par_fish_env_parallel_session ^ -par_fish_env_parallel_session fish: Unknown command 'aliasbefore must_fail' +par_fish_env_parallel_session fish: Unknown command: aliasbefore par_fish_env_parallel_session fish: par_fish_env_parallel_session aliasbefore must_fail par_fish_env_parallel_session ^ -par_fish_env_parallel_session fish: Unknown command 'funcbefore must_fail' +par_fish_env_parallel_session fish: Unknown command: funcbefore par_fish_env_parallel_session fish: par_fish_env_parallel_session funcbefore must_fail par_fish_env_parallel_session ^ -par_fish_env_parallel_session fish: Unknown command 'funcbefore must_fail' +par_fish_env_parallel_session fish: Unknown command: funcbefore par_fish_env_parallel_session fish: par_fish_env_parallel_session funcbefore must_fail par_fish_env_parallel_session ^ @@ -1570,9 +1564,13 @@ par_fish_env_parallel_session after varafter_OK par_fish_env_parallel_session array after arrayafter_OK par_fish_env_parallel_session array after arrayafter_OK par_fish_env_parallel bug #50435: Remote fifo broke in 20150522 -par_fish_env_parallel TODO fix env_parallel --fifo -par_fish_env_parallel parallel: Error: Command line too long (XXX >= XXX) at input 0: $PARALLEL_TMP -par_fish_env_parallel parallel: Error: Command line too long (XXX >= XXX) at input 0: $PARALLEL_TMP +par_fish_env_parallel data from stdin +par_fish_env_parallel OK +par_fish_env_parallel data from stdin +par_fish_env_parallel OK +par_fish_env_parallel fish: $? is not the exit status. In fish, please use $status. +par_fish_env_parallel cat $PARALLEL_TMP; and echo $OK;perl -e '$bash=shift;$csh=shift;for(@ARGV){unlink;rmdir;}if($bash=~s/h//){exit$bash;}exit$csh;' "$?h" "$status" $PARALLEL_TMP +par_fish_env_parallel ^ par_dash_underscore ### dash par_dash_underscore ### Testing of --env _ par_dash_underscore variables in aliases work @@ -2087,7 +2085,7 @@ par_bash_environment_too_big OK_bigfunc_remote par_bash_environment_too_big OK_bigfunc_quote par_bash_environment_too_big OK_bigfunc_quote_remote par_bash_environment_too_big Rest should fail -par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -2098,7 +2096,7 @@ par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote -par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -2109,7 +2107,7 @@ par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote -par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -2120,7 +2118,7 @@ par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_remote -par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set @@ -2130,7 +2128,7 @@ par_bash_environment_too_big env_parallel: Error: 3. Try running this in a clean par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set diff --git a/testsuite/wanted-results/parallel-local13 b/testsuite/wanted-results/parallel-local13 index 4959fd87..981a403f 100644 --- a/testsuite/wanted-results/parallel-local13 +++ b/testsuite/wanted-results/parallel-local13 @@ -441,9 +441,7 @@ stdout parallel -k -r echo this plus that < space.xi echo '### -t -0 echo this plus that < space.xi' ### -t -0 echo this plus that < space.xi stdout xargs -t -0 echo this plus that < space.xi -echo this plus that - - +echo this plus that ''$'\n'' '$'\f\r\t\v\n' this plus that