From 123126f6781065be52389bb20362545c35acf058 Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Wed, 22 Sep 2021 23:37:24 +0200 Subject: [PATCH] Released as 20210922 ('Vindelev') --- .gitignore | 2 + NEWS | 25 ++++++++++ README | 24 +++++----- configure | 20 ++++---- configure.ac | 2 +- doc/citation-notice-faq.txt | 55 ++++++++++++++-------- doc/haikus | 3 ++ doc/release_new_version | 24 +++++----- packager/obs/home:tange/parallel/.osc/_files | 14 +++--- .../obs/home:tange/parallel/.osc/parallel.spec | 2 +- src/env_parallel.ash | 2 +- src/env_parallel.bash | 2 +- src/env_parallel.dash | 2 +- src/env_parallel.ksh | 2 +- src/env_parallel.mksh | 2 +- src/env_parallel.sh | 2 +- src/env_parallel.zsh | 2 +- src/niceload | 2 +- src/parallel | 53 ++++++++++++--------- src/parallel.pod | 15 +++--- src/parallel_alternatives.pod | 13 +++-- src/parsort | 2 +- src/sql | 2 +- testsuite/Makefile | 15 ++++-- testsuite/tests-to-run/parallel-remote1.sh | 4 +- 25 files changed, 182 insertions(+), 109 deletions(-) rewrite packager/obs/home:tange/parallel/.osc/_files (97%) diff --git a/.gitignore b/.gitignore index beb99571..026e3db0 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ src/*.pdf src/*.texi src/*.1 src/*.7 +src/sphinx/source/*.rst +src/sphinx/build/* diff --git a/NEWS b/NEWS index 491554d5..f8a5165b 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,28 @@ +20210922 + +New in this release: + + +* Bug fixes and man page updates. + + +News about GNU Parallel: + + +* 3 Programs that will Level Up your Bash Game + https://medium.com/codex/3-programs-that-will-level-up-your-bash-game-bf14e17e2291 + +* I Summarized 100+ Command-Line Tools for Data Scientists in 15 + Minutes + https://towardsdatascience.com/i-summarized-100-command-line-tools-for-data-scientists-in-15-minutes-976def544ffe + +* Speed up Your Builds by Parallelizing + https://www.incredibuild.com/blog/speed-up-your-builds-by-parallelizing + +* Bash: GNU Parallel with Curl + https://gist.github.com/dinh/93b936a55de9a331199d6582bc2921d2 + + 20210822 New in this release: diff --git a/README b/README index b2454174..f9d527ba 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-20210822.tar.bz2 - wget https://ftpmirror.gnu.org/parallel/parallel-20210822.tar.bz2.sig - gpg parallel-20210822.tar.bz2.sig - bzip2 -dc parallel-20210822.tar.bz2 | tar xvf - - cd parallel-20210822 + wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2 + wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2.sig + gpg parallel-20210922.tar.bz2.sig + bzip2 -dc parallel-20210922.tar.bz2 | tar xvf - + cd parallel-20210922 ./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-20210822.tar.bz2 - wget https://ftpmirror.gnu.org/parallel/parallel-20210822.tar.bz2.sig - gpg parallel-20210822.tar.bz2.sig - bzip2 -dc parallel-20210822.tar.bz2 | tar xvf - - cd parallel-20210822 + wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2 + wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2.sig + gpg parallel-20210922.tar.bz2.sig + bzip2 -dc parallel-20210922.tar.bz2 | tar xvf - + cd parallel-20210922 ./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. (2021, August 22). GNU Parallel 20210822 ('Kabul'). - Zenodo. https://doi.org/10.5281/zenodo.5233953 + Tange, O. (2021, September 22). GNU Parallel 20210922 ('Vindelev'). + Zenodo. https://doi.org/10.5281/zenodo.5523272 Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ole Tange, http://ole.tange.dk and diff --git a/configure b/configure index 12b85edb..b0cab614 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 20210822. +# Generated by GNU Autoconf 2.69 for parallel 20210922. # # Report bugs to . # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='parallel' PACKAGE_TARNAME='parallel' -PACKAGE_VERSION='20210822' -PACKAGE_STRING='parallel 20210822' +PACKAGE_VERSION='20210922' +PACKAGE_STRING='parallel 20210922' 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 20210822 to adapt to many kinds of systems. +\`configure' configures parallel 20210922 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 20210822:";; + short | recursive ) echo "Configuration of parallel 20210922:";; 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 20210822 +parallel configure 20210922 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 20210822, which was +It was created by parallel $as_me 20210922, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2237,7 +2237,7 @@ fi # Define the identity of the package. PACKAGE='parallel' - VERSION='20210822' + VERSION='20210922' cat >>confdefs.h <<_ACEOF @@ -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 20210822, which was +This file was extended by parallel $as_me 20210922, 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 20210822 +parallel config.status 20210922 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 19bd40c2..1723c0f1 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([parallel], [20210822], [bug-parallel@gnu.org]) +AC_INIT([parallel], [20210922], [bug-parallel@gnu.org]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ diff --git a/doc/citation-notice-faq.txt b/doc/citation-notice-faq.txt index 39fc69f3..f57bad08 100644 --- a/doc/citation-notice-faq.txt +++ b/doc/citation-notice-faq.txt @@ -1,15 +1,16 @@ -== Citation FAQ == +=== Citation FAQ === -> Why does GNU Parallel show a citation notice? +== Why does GNU Parallel show a citation notice? == GNU Parallel is indirectly funded through citations. GNU Parallel is funded by me having a paid job that allows for maintaining GNU Parallel. This is much easier to get if GNU Parallel is cited in scientific journals, and history has shown that -researchers forget to do this if they are not reminded explicitly. +researchers forget to do this if the notice is only put in the +documentation. -It is therefore important for the long-term survival of GNU Parallel +It is therefore crucial for the long-term survival of GNU Parallel that it is cited. The citation notice makes users aware of this. See also: https://lists.gnu.org/archive/html/parallel/2013-11/msg00006.html @@ -24,7 +25,7 @@ single solution that just works: * https://www.numfocus.org/blog/why-is-numpy-only-now-getting-funded/ -> Is the citation notice compatible with GPLv3? +== Is the citation notice compatible with GPLv3? == Yes. The wording has been cleared by Richard M. Stallman to be compatible with GPLv3. This is because the citation notice is not part @@ -34,15 +35,30 @@ Therefore the notice is not adding a term that would require citation as mentioned on: https://www.gnu.org/licenses/gpl-faq.en.html#RequireCitation +If you disagree with Richard M. Stallman's interpretation and feel the +citation notice does not adhere to GPLv3, you should treat the +software as if it is not available under GPLv3. And since GPLv3 is the +only thing that would give you the right to change it, you would not +be allowed to change the software. -> Do automated scripts break if the notice is not silenced? +In other words: If you want to remove the citation notice to make the +software compliant with your interpretation of GPLv3, you first have +to accept that the software is already compliant with GPLv3, because +nothing else gives you the right to change it. And if you accept this, +you do not need to change it to make it compliant. + +So: If you do not feel the citation notice adheres to GPLv3, you need +to treat it as software that you have no license to use. + + +== Do automated scripts break if the notice is not silenced? == No. Not a single time has that happened. This is due to the notice only being printed, if the output is to the screen - not if the output is to a file or a pipe. -> How do I silence the citation notice? +== How do I silence the citation notice? == Run this once: @@ -60,12 +76,12 @@ academic tradition requires you to cite in scientific articles. That tradition requires you to cite even if there had been no notice. -> I do not write scientific articles. Does the notice apply to me? +== I do not write scientific articles. Does the notice apply to me? == The notice is only relevant if you write scientific articles. -> What shows citing software is an academic tradition? +== What shows citing software is an academic tradition? == These links say: Yes, you should cite software, and if the author suggests a way of citing, use that. @@ -78,6 +94,7 @@ suggests a way of citing, use that. * https://journals.aas.org/policy-statement-on-software/ * https://guides.lib.monash.edu/c.php?g=219786&p=1454293 * https://www.maxqda.com/how-to-cite-maxqda +* https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files If you feel the benefit from using GNU Parallel is too small to warrant a citation, then prove that by simply using another tool. If @@ -87,7 +104,7 @@ use of GNU Parallel, then it is a good indication that the benefit is big enough to warrant a citation. -> Do other software tools show how to cite? +== Do other software tools show how to cite? == Here are other examples of software showing how to cite. Some of these refer to peer-reviewed articles - others do not: @@ -107,7 +124,7 @@ refer to peer-reviewed articles - others do not: * https://github.com/UnixJunkie/PAR/blob/master/README -> I do not like the notice. Can I fork GNU Parallel and remove it? +== I do not like the notice. Can I fork GNU Parallel and remove it? == Yes. GNU Parallel is released under GNU GPLv3 and thus you are allowed to fork the code. But you have to make sure that your forked version @@ -130,9 +147,9 @@ and do not want to see it wither away like many of the competitors, then this is a bad idea, as it will lead to less funding. -> How important is the notice for the survival of GNU Parallel? +== How important is the notice for the survival of GNU Parallel? == -Citations is what indirectly funds maintaining GNU Parallel. Before +Citations are what indirectly fund maintaining GNU Parallel. Before the citation notice was implemented hardly anyone cited GNU Parallel, and that would not have been sustainable in the long term. Funding development aligns well with "We will give back to the free software @@ -146,7 +163,7 @@ removed (and staying in main). In other words: It is preferable having fewer users, who all know they should cite, over having many users, who do not know they should cite. -This is because a long-term survival with funding is more important +This is because long-term survival with funding is more important than short-term gains in popularity that can be achieved by being distributed as part of a distribution. @@ -154,7 +171,7 @@ If the goal had been to get more users, then the license would have been public domain. -> Is there another way I can get rid of the citation notice? +== Is there another way I can get rid of the citation notice? == Yes. Find a way to finance future development of GNU Parallel. If you pay me a normal salary, I will be happy to remove the citation notice. @@ -162,7 +179,7 @@ pay me a normal salary, I will be happy to remove the citation notice. The citation notice is about (indirect) funding - nothing else. -> I do not think it is fair having to cite +== I do not think it is fair having to cite == If the inconvenience of having to cite is too big for you, then you should use another tool. @@ -174,7 +191,7 @@ help you find an alternative: https://www.gnu.org/software/parallel/parallel_alternatives.html -> I do not want to run 'parallel --citation' +== I do not want to run 'parallel --citation' == If the inconvenience of running 'parallel --citation' one single time after installing GNU Parallel is too big, then you do not have to do @@ -184,7 +201,7 @@ notice. But it really only takes 10 seconds to run. -> I do not want to see the citation notice at every run +== I do not want to see the citation notice at every run == You do not have to. Spend 10 seconds on running 'parallel --citation' and the notice is silenced. This is similar to clicking 'OK. Do not @@ -194,7 +211,7 @@ If GNU Parallel does not save you more than 10 seconds, then you should probably not be using it anyway. -> I do not want to help finance the development +== I do not want to help finance the development == If you care so little about GNU Parallel that you do not want to help finance development, then you should contemplate whether GNU Parallel diff --git a/doc/haikus b/doc/haikus index c3289c78..a840dee3 100644 --- a/doc/haikus +++ b/doc/haikus @@ -128,6 +128,9 @@ https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html === Used === + Take a look at GNU Parallel. It’s magnificent. + -- Siira@ycombinator.com + Safe to say, @GnuParallel was a life changer during my PhD! It helped me optimise so many of my tasks and analyses. -- Parice Brandies @PariceBrandies@twitter diff --git a/doc/release_new_version b/doc/release_new_version index 203886ad..9469d69e 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -255,33 +255,31 @@ from:tange@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org stable-bcc: Jesse Alama -Subject: GNU Parallel 20210822 ('Kabul') released +Subject: GNU Parallel 20210922 ('<<>>Vindelev/Chris Donahue/Ida') released <<[stable]>> -GNU Parallel 20210822 ('Kabul') has been released. It is available for download at: lbry://@GnuParallel:4 +GNU Parallel 20210922 ('Vindelev') [stable] has been released. It is available for download at: lbry://@GnuParallel:4 + +No new functionality was introduced so this is a good candidate for a +stable release. Quote of the month: - Safe to say, @GnuParallel was a life changer during my PhD! It helped - me optimise so many of my tasks and analyses. - -- Parice Brandies @PariceBrandies@twitter + Take a look at GNU Parallel. It’s magnificent. + -- Siira@ycombinator.com New in this release: -* --ctag/--ctagstring colors the tag in different colors for each job. - -* You can use unit prefixes (k, m, g, etc) with -n -N -L. - * Bug fixes and man page updates. - News about GNU Parallel: -* Parallelising jobs with GNU parallel https://blog.ronin.cloud/gnu-parallel/ +* 3 Programs that will Level Up your Bash Game https://medium.com/codex/3-programs-that-will-level-up-your-bash-game-bf14e17e2291 -* Use multiple CPU Cores with your Linux commands - awk, sed, bzip2, grep, wc, etc. https://cdmana.com/2021/07/20210728132344693t.html +* I Summarized 100+ Command-Line Tools for Data Scientists in 15 Minutes https://towardsdatascience.com/i-summarized-100-command-line-tools-for-data-scientists-in-15-minutes-976def544ffe -* How to execute commands in parallel in Linux https://net2.com/how-to-execute-commands-in-parallel-in-linux/ +* Speed up Your Builds by Parallelizing https://www.incredibuild.com/blog/speed-up-your-builds-by-parallelizing +* Bash: GNU Parallel with Curl https://gist.github.com/dinh/93b936a55de9a331199d6582bc2921d2 Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html diff --git a/packager/obs/home:tange/parallel/.osc/_files b/packager/obs/home:tange/parallel/.osc/_files dissimilarity index 97% index 72006bb9..a888fb75 100644 --- a/packager/obs/home:tange/parallel/.osc/_files +++ b/packager/obs/home:tange/parallel/.osc/_files @@ -1,7 +1,7 @@ - - - - - - - + + + + + + + diff --git a/packager/obs/home:tange/parallel/.osc/parallel.spec b/packager/obs/home:tange/parallel/.osc/parallel.spec index 4a5064b4..1cc87774 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: 20210822 +Version: 20210922 Release: 1.3 License: GPL-3.0-or-later Group: Productivity/File utilities diff --git a/src/env_parallel.ash b/src/env_parallel.ash index 27570899..b4a76ae6 100755 --- a/src/env_parallel.ash +++ b/src/env_parallel.ash @@ -385,7 +385,7 @@ _parset_main() { return 255 fi if [ "$_parset_NAME" = "--version" ] ; then - echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" + echo "parset 20210922 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.bash b/src/env_parallel.bash index 6f16b461..eee7b482 100755 --- a/src/env_parallel.bash +++ b/src/env_parallel.bash @@ -384,7 +384,7 @@ _parset_main() { return 255 fi if [ "$_parset_NAME" = "--version" ] ; then - echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" + echo "parset 20210922 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.dash b/src/env_parallel.dash index 0674942f..9aaf2341 100755 --- a/src/env_parallel.dash +++ b/src/env_parallel.dash @@ -385,7 +385,7 @@ _parset_main() { return 255 fi if [ "$_parset_NAME" = "--version" ] ; then - echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" + echo "parset 20210922 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.ksh b/src/env_parallel.ksh index 73dcf8be..eb5eb9ed 100755 --- a/src/env_parallel.ksh +++ b/src/env_parallel.ksh @@ -363,7 +363,7 @@ _parset_main() { return 255 fi if [ "$_parset_NAME" = "--version" ] ; then - echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" + echo "parset 20210922 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.mksh b/src/env_parallel.mksh index 0b69c961..c87fe6e7 100644 --- a/src/env_parallel.mksh +++ b/src/env_parallel.mksh @@ -365,7 +365,7 @@ _parset_main() { return 255 fi if [ "$_parset_NAME" = "--version" ] ; then - echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" + echo "parset 20210922 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.sh b/src/env_parallel.sh index 0f584ba3..798893f4 100755 --- a/src/env_parallel.sh +++ b/src/env_parallel.sh @@ -390,7 +390,7 @@ _parset_main() { return 255 fi if [ "$_parset_NAME" = "--version" ] ; then - echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" + echo "parset 20210922 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.zsh b/src/env_parallel.zsh index 54001c6a..fb18607f 100755 --- a/src/env_parallel.zsh +++ b/src/env_parallel.zsh @@ -355,7 +355,7 @@ _parset_main() { return 255 fi if [ "$_parset_NAME" = "--version" ] ; then - echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" + echo "parset 20210922 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/niceload b/src/niceload index a36402e3..e4e2cee4 100755 --- a/src/niceload +++ b/src/niceload @@ -26,7 +26,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20210822; +$Global::version = 20210922; 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 d2f03960..97686149 100755 --- a/src/parallel +++ b/src/parallel @@ -1604,9 +1604,11 @@ sub options_hash() { "gnu" => \$opt::gnu, "link|xapply" => \$opt::link, "linkinputsource|xapplyinputsource=i" => \@opt::linkinputsource, - # Before changing this line, please read + # Before changing these lines, please read # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt + # You accept to be put in a public hall of shame by removing + # the lines. "bibtex|citation" => \$opt::citation, "wc|willcite|will-cite|nn|nonotice|no-notice" => \$opt::willcite, # Termination and retries @@ -1761,9 +1763,11 @@ sub parse_options(@) { my @argv_before = @ARGV; @ARGV = read_options(); - # Before changing this line, please read + # Before changing these line, please read # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt + # You accept to be added to a public hall of shame by + # removing the lines. if(defined $opt::citation) { citation(\@argv_before,\@ARGV); wait_and_exit(0); @@ -2118,11 +2122,10 @@ sub parse_options(@) { # If you want GNU Parallel to be maintained in the future you # should keep this line. citation_notice(); - # Seriously: _YOU_ will be harming free software by removing the - # notice. _YOU_ make it harder to justify spending time developing - # it. If you *do* remove the line, please email - # hallofshame@tange.dk if you want to avoid being put in a hall of - # shame. + # _YOU_ will be harming free software by removing the notice. You + # accept to be added to a public hall of shame by removing the + # line. This is because _YOU_ actively make it harder to justify + # spending time developing GNU Parallel. parse_halt(); @@ -2241,7 +2244,7 @@ sub check_invalid_option_combinations() { sub init_globals() { # Defaults: - $Global::version = 20210822; + $Global::version = 20210922; $Global::progname = 'parallel'; $::name = "GNU Parallel"; $Global::infinity = 2**31; @@ -5052,12 +5055,14 @@ sub usage() { "If you use programs that use GNU Parallel to process data for an article in a", "scientific publication, please cite:", "", - " Tange, O. (2021, August 22). GNU Parallel 20210822 ('Kabul').", - " Zenodo. https://doi.org/10.5281/zenodo.5233953", + " Tange, O. (2021, September 22). GNU Parallel 20210922 ('Vindelev').", + " Zenodo. https://doi.org/10.5281/zenodo.5523272", "", - # Before changing this line, please read + # Before changing these lines, please read # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice - # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt + # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt + # You accept to be put in a public hall of shame by removing + # the lines. "This helps funding further development; AND IT WON'T COST YOU A CENT.", "If you pay 10000 EUR you should feel free to use GNU Parallel without citing.", "", @@ -5083,12 +5088,14 @@ 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. (2021, August 22). GNU Parallel 20210822 ('Kabul').", - " Zenodo. https://doi.org/10.5281/zenodo.5233953", + " Tange, O. (2021, September 22). GNU Parallel 20210922 ('Vindelev').", + " Zenodo. https://doi.org/10.5281/zenodo.5523272", "", - # Before changing this line, please read + # Before changing these line, please read # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt + # You accept to be put in a public hall of shame by + # removing the lines. "This helps funding further development; AND IT WON'T COST YOU A CENT.", "If you pay 10000 EUR you should feel free to use GNU Parallel without citing.", "", @@ -5207,24 +5214,26 @@ sub citation() { "If you use programs that use GNU Parallel to process data for an article in a", "scientific publication, please cite:", "", - "\@software{tange_2021_5233953,", + "\@software{tange_2021_5523272,", " author = {Tange, Ole},", - " title = {GNU Parallel 20210822 ('Kabul')},", - " month = Aug,", + " title = {GNU Parallel 20210922 ('Vindelev')},", + " month = Sep,", " year = 2021,", " 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.5233953},", - " url = {https://doi.org/10.5281/zenodo.5233953}", + " doi = {10.5281/zenodo.5523272},", + " url = {https://doi.org/10.5281/zenodo.5523272}", "}", "", - "(Feel free to use \\nocite{tange_2021_5233953})", + "(Feel free to use \\nocite{tange_2021_5523272})", "", - # Before changing this line, please read + # Before changing these lines, please read # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt + # You accept to be put in a public hall of shame by removing + # the lines. "This helps funding further development; AND IT WON'T COST YOU A CENT.", "If you pay 10000 EUR you should feel free to use GNU Parallel without citing.", "", diff --git a/src/parallel.pod b/src/parallel.pod index 7a8a9c22..1be4e5ec 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -576,7 +576,10 @@ See also: B<--fg>, B. Implies B<--semaphore>. +=cut +# You accept to be added to a public hall of shame by +# removing this section. =item B<--bibtex> =item B<--citation> @@ -740,12 +743,12 @@ Even quoted newlines are parsed correctly: When used with B<--pipe> only pass full CSV-records. -=item B<--ctag> I (alpha testing) +=item B<--ctag> I (beta testing) Color tag. See B<--tag>. -=item B<--ctagstring> I (alpha testing) +=item B<--ctagstring> I (beta testing) Color tagstring. See B<--tagstring>. @@ -1882,9 +1885,9 @@ it to the command. Only used with B<--pipe>. -=item B<--results> I (beta testing) +=item B<--results> I -=item B<--res> I (beta testing) +=item B<--res> I Save the output into files. @@ -2707,7 +2710,7 @@ to GNU B giving each child its own process group, which is then killed. Process groups are dependant on the tty. -=item B<--tag> (alpha testing) +=item B<--tag> (beta testing) Tag lines with arguments. Each output line will be prepended with the arguments and TAB (\t). When combined with B<--onall> or B<--nonall> @@ -2718,7 +2721,7 @@ B<--tag> is ignored when using B<-u>. B<--ctag> gives the tag a color. -=item B<--tagstring> I (alpha testing) +=item B<--tagstring> I (beta testing) Tag lines with a string. Each output line will be prepended with I and TAB (\t). I can contain replacement strings such as diff --git a/src/parallel_alternatives.pod b/src/parallel_alternatives.pod index f9a0dfd3..93a3944c 100644 --- a/src/parallel_alternatives.pod +++ b/src/parallel_alternatives.pod @@ -13,11 +13,13 @@ parallel_alternatives - Alternatives to GNU B =head1 DIFFERENCES BETWEEN GNU Parallel AND ALTERNATIVES -There are a lot programs with some of the functionality of GNU -B. GNU B strives to include the best of the -functionality without sacrificing ease of use. +There are a lot programs that share functionality with GNU +B. Some of these are specialized tools, and while GNU +B can emulate many of them, a specialized tool can be better +at a given task. GNU B strives to include the best of the +general functionality without sacrificing ease of use. -B has existed since 2002 and as GNU B since +B has existed since 2002-01-06 and as GNU B since 2010. A lot of the alternatives have not had the vitality to survive that long, but have come and gone during that time. @@ -293,6 +295,9 @@ contain space, " or '). ls | xargs -d "\n" -P8 -I {} bash -c "wc {} >{}.wc" ls | xargs -d "\n" -P8 -I {} bash -c "echo {}; ls {}|wc" +A more extreme example can be found on: +https://unix.stackexchange.com/q/405552/ + https://www.gnu.org/software/findutils/ diff --git a/src/parsort b/src/parsort index 85c22897..92854880 100755 --- a/src/parsort +++ b/src/parsort @@ -122,7 +122,7 @@ GetOptions( "help" => \$opt::dummy, ) || exit(255); $Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1]; -$Global::version = 20210822; +$Global::version = 20210922; if($opt::version) { version(); exit 0; } @Global::sortoptions = shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]); diff --git a/src/sql b/src/sql index 6a462470..89235bfa 100755 --- a/src/sql +++ b/src/sql @@ -600,7 +600,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20210822; + $Global::version = 20210922; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/testsuite/Makefile b/testsuite/Makefile index 65579d12..3a0a34a4 100644 --- a/testsuite/Makefile +++ b/testsuite/Makefile @@ -104,11 +104,20 @@ prereqlocal: installparallel startvm prereqremote: installparallel startvm parallel -j0 --timeout 10 --tag ssh vagrant@parallel-server{} parallel --minversion 20121021 ::: 1 2 || (echo parallel on remote required for testsuite; /bin/true) -startvm: - parallel --tag -k 'ping -w 1 -c 1 {} || (cd vagrant/*/{} && vagrant up; wssh vagrant@{} echo {} is up)' ::: centos8 freebsd11 freebsd12 rhel8 centos3 & +ignore=bytes.of.data|ping.statistics|packets.transmitted|64.bytes.from|\ + min/avg/max/mdev|default +start=(stdout ping -w 1 -c 1 {} || \ + (cd vagrant/*/{} && vagrant up; \ + wssh vagrant@{} echo {} is up) ) | \ + grep -Ev "${ignore}" +stop=(stdout ping -w 1 -c 1 {} && \ + (cd vagrant/*/{} && vagrant suspend) ) | \ + grep -Ev "${ignore}" +startvm: + parallel --tag -k '${start}' ::: centos8 freebsd11 freebsd12 rhel8 centos3 & stopvm: - parallel --tag -k 'ping -w 1 -c 1 {} && cd vagrant/*/{} && vagrant suspend' ::: centos8 freebsd11 freebsd12 rhel8 centos3 || true + parallel --tag -k '${stop}' ::: centos8 freebsd11 freebsd12 rhel8 centos3 || true startdb: true TODO should start Oracle in vagrant diff --git a/testsuite/tests-to-run/parallel-remote1.sh b/testsuite/tests-to-run/parallel-remote1.sh index c1c62799..854d9e96 100644 --- a/testsuite/tests-to-run/parallel-remote1.sh +++ b/testsuite/tests-to-run/parallel-remote1.sh @@ -58,7 +58,9 @@ par_controlmaster_is_faster() { par_workdir_in_HOME() { echo '### test --workdir . in $HOME' cd && mkdir -p parallel-test && cd parallel-test && - echo OK > testfile && parallel --workdir . --transfer -S $SSHLOGIN1 cat {} ::: testfile + echo OK > testfile && + stdout parallel --workdir . --transfer -S $SSHLOGIN1 cat {} ::: testfile | + grep -v 'Permanently added' } export -f $(compgen -A function | grep par_) -- 2.11.4.GIT