diff --git a/NEWS b/NEWS index 6e849272..efbaa6c1 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,29 @@ +20101202 + +* Implemented {/} for the input line with the path removed (basename). + +* Implemented {/.} for the input line with extension and path removed + (basename). + +* Output from --progress is now sent to standard error instead of + standard output. + +* --eta was broken and counted down from 0. Now fixed. + +* Standard output and standard error are flushed after every job so if + standard output does not end with a newline it will still be grouped + with the rest of standard output. + +* --command, -c, --file, and -f are now removed as options. They were + never used in practice. + +* GetOptionsFromArray rewritten to work with old Perl libraries. + +* The file COPYING now contains the GNU General Public License 3 + +* Major rewrite to make the code more object oriented and easier to + maintain in the future. + 20101113 * Using -j myfile the number of jobs can be changed while GNU Parallel diff --git a/configure b/configure index 0631ff9d..15588950 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.67 for parallel 20101122. +# Generated by GNU Autoconf 2.67 for parallel 20101202. # # Report bugs to . # @@ -551,8 +551,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='parallel' PACKAGE_TARNAME='parallel' -PACKAGE_VERSION='20101122' -PACKAGE_STRING='parallel 20101122' +PACKAGE_VERSION='20101202' +PACKAGE_STRING='parallel 20101202' PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_URL='' @@ -1168,7 +1168,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 20101122 to adapt to many kinds of systems. +\`configure' configures parallel 20101202 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1234,7 +1234,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of parallel 20101122:";; + short | recursive ) echo "Configuration of parallel 20101202:";; esac cat <<\_ACEOF @@ -1301,7 +1301,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -parallel configure 20101122 +parallel configure 20101202 generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. @@ -1318,7 +1318,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 20101122, which was +It was created by parallel $as_me 20101202, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ @@ -2133,7 +2133,7 @@ fi # Define the identity of the package. PACKAGE='parallel' - VERSION='20101122' + VERSION='20101202' cat >>confdefs.h <<_ACEOF @@ -2684,7 +2684,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 20101122, which was +This file was extended by parallel $as_me 20101202, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2746,7 +2746,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 20101122 +parallel config.status 20101202 configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index d587b1ee..a3666580 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([parallel], [20101122], [bug-parallel@gnu.org]) +AC_INIT([parallel], [20101202], [bug-parallel@gnu.org]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ diff --git a/doc/promo b/doc/promo new file mode 100644 index 00000000..937bfde4 --- /dev/null +++ b/doc/promo @@ -0,0 +1,74 @@ +=head1 search terms + +run commands in parallel + +Parallel shell loops + +multi threading in bash xargs + +# TAGS: parallel | parallel processing | multicore | multiprocessor | Clustering/Distributed Networks +# job control | multiple jobs | parallelization | text processing | cluster | filters +# Clustering Tools | Command Line Tools | Utilities | System Administration +# Bash parallel + +GNU parallel execution shell bash script simultaneous concurrent linux +scripting run xargs ppss code.google.com/p/ppss/ + +@vvuksan @ychaker @ncb000gt +xargs can lead to nasty surprises caused by the separator problem +http://nd.gd/0t GNU Parallel http://nd.gd/0s may be better. + +Comments: + +http://nd.gd/0u http://www.gnu.org/software/parallel/ +http://nd.gd/0s http://www.youtube.com/watch?v=OpaiGYxkSuQ +http://nd.gd/0t http://en.wikipedia.org/wiki/Xargs#The_separator_problem +http://nd.gd/3k http://www.gnu.org/software/parallel/man.html#differences_between_xargs_and_gnu_parallel + +Watch the intro video for GNU Parallel: http://nd.gd/0s + +If your input file names are generated by users, you need to deal with +surprising file names containing space, ', or " in the filename. + +xargs can give nasty surprises due to the separator problem +http://en.wikipedia.org/wiki/Xargs#The_separator_problem +http://nd.gd/0t + +GNU Parallel http://nd.gd/0s may be better. + +@jaylyerly @stevenf xargs will bite you if file names contain +space http://nd.gd/0t. Use GNU Parallel instead: http://nd.gd/0s + +Please repay by spreading the word about GNU Parallel to your +contacts/blog/facebook/linkedin/mailing lists/user group + +Your use of xargs can lead to nasty surprises because of the separator +problem http://en.wikipedia.org/wiki/Xargs#The_separator_problem + +GNU Parallel http://www.gnu.org/software/parallel/ does not have that +problem. + +Watch the intro video for GNU Parallel: +http://www.youtube.com/watch?v=OpaiGYxkSuQ + +If you have GNU Parallel http://www.gnu.org/software/parallel/ installed you can do this: + +Watch the intro video for GNU Parallel to learn more: +http://www.youtube.com/watch?v=OpaiGYxkSuQ + + +GNU Parallel also makes it possible to run small scripts. Try this: + +ls *.zip | parallel ‘mkdir {.}; cd {.}; unzip ../{}’ + += Other people says = + +fawxtin‎: Using GNU Parallel to run things simultaneously, neat! ;) +cowsandmilk‎: if you haven't quit xargs for gnu parallel yet, you're really missing out +afader‎: GNU Parallel is cool +ecyrd‎: Okay, why hasn't anyone told me of GNU parallel before? +cashion‎: very cool! Did not know about GNU parallel. +toorghezi‎: Writing shell scripts? You should know about GNU Parallel! +Racecar564 : GNU Parallel rocks! +arclight : Very nice! I especially like the {} -> {.}.bz2 syntax. +nwp8861 : I surprised that it's so comfortable! diff --git a/doc/release_new_version b/doc/release_new_version index 743ec82a..2f7d8a90 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -40,6 +40,7 @@ make dist-bzip2 == Test the package == +YYYYMMDD=`yyyymmdd` cp parallel-$YYYYMMDD.tar.bz2 /tmp cd /tmp tar xjvf parallel-$YYYYMMDD.tar.bz2 @@ -125,77 +126,36 @@ cc:Peter Simons , Sandro Cazzaniga , Rogério Brito , Jonathan Palardy , Koen Vervloesem , R. Tyler Croy -Subject: GNU Parallel 20101113 released +Subject: GNU Parallel 20101202 released -GNU Parallel 20101113 has been released. It is available for +GNU Parallel 20101202 has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/ New in this release: -* Using -j myfile the number of jobs can be changed while GNU Parallel - is running simply by changing the content of myfile. +* Implemented {/} for the input line with the path removed (basename). -* Implemented --profile to use different .parallel/config for - different situations. +* Implemented {/.} for the input line with extension and path removed + (basename). -* Ugly newlines in $PARALLEL and .parallel/config are no longer - needed. Instead you have to use \ in front of special shell - characters. +* Output from --progress is now sent to standard error instead of + standard output. -* --workdir puts the files transferred to remote machines in a - specified directory. +* --eta was broken and counted down from 0. Now fixed. -* $PARALLEL_PID is set to the process id of GNU Parallel. +* Standard output and standard error are flushed after every job so if + standard output does not end with a newline it will still be grouped + with the rest of standard output. -* $PARALLEL_SEQ is set to the sequence number of the job. +* --command, -c, --file, and -f are now removed as options. They were + never used in practice. -* -v now only shows the command to run. Use -v -v to show the - ssh/rsync wrapping. +* GetOptionsFromArray rewritten to work with old Perl libraries. -* Slow spawning error is now only a warning. - -* If stdin is a tty and input is read from stdin you now get a - warning. - -* GNU sql: \n and \x0a in arguments is replaced with newline. - -* Patch for Debian package and spelling mistakes. Thanks to Rogério - Brito - -* Mac OS X Homebrew package. Thanks to Jonathan Palardy - -* FreeBSD port. Thanks to Chris Howey - -* Pardus package. Thanks to Fethican Coşkuner - - -* First review in Chinese. Thanks to 曾義峰: - http://antbsd.twbbs.org/~ant/wordpress/?p=2876 - -* First review in print: - http://www.linux-magazine.com/Issues/2010 Nov 2010 - -* First review in Spanish: - http://www.muylinux.com/2010/10/18/gnu-parallel-computacion-paralela-a-golpe-de-comando - -* First review in Dutch thanks to Koen Vervloesem : - http://techworld.nl/technologie/33493/gebruik-al-je-processorkernen-met-gnu-parallel.html - -* Blog review thanks to R. Tyler Croy : - http://unethicalblogger.com/posts/2010/11/gnuparallel_changed_my_life - -* 5000 views of the intro video: - http://www.youtube.com/watch?v=OpaiGYxkSuQ - -* As usual a bunch of bugfixes and more usage examples in the man - page. - -* GNU Parallel was presented at FSCONS 2010-11-07: - http://www.fscons.org/fs/gnu-parallel Hopefully the - video will be online soon. +* The file COPYING now contains the GNU General Public License 3 +* Major rewrite to make the code more object oriented and easier to + maintain in the future. = About GNU Parallel = diff --git a/packager/debian/README b/packager/debian/README index 8f58e6df..24941469 100644 --- a/packager/debian/README +++ b/packager/debian/README @@ -1 +1,2 @@ make +Edit 20100906-2 to the version number diff --git a/packager/debian/debian-template/changelog b/packager/debian/debian-template/changelog index f25fb198..73f92ac6 100644 --- a/packager/debian/debian-template/changelog +++ b/packager/debian/debian-template/changelog @@ -1,46 +1,3 @@ -parallel (20100922-4) unstable; urgency=low - - * Change package to be non-native. - * Move to format "3.0 (quilt)". - * debian/compat: - + update to 7. - * debian/rules: - + don't configure the package in the clean target. - + create a configure (and configure-stamp) target. - * debian/control: - + update debhelper dependency to >= 7. - + add dh-autoreconf to build-dependency. - + indicate that the package conforms to Policy 3.9.1. - + set myself as maintainer and Ole as uploader. - * debian/rules: - + use dh(7) style file with autoreconf add-on. - * debian/doc-base: - + properly register the documentation with doc-base. - * debian/patches: - + include some patches to fix spelling errors detected by lintian. - * debian/dirs: - + remove, not needed. - - -- Rogério Brito Mon, 25 Oct 2010 03:44:37 -0200 - -parallel (20100922-3) unstable; urgency=low - - * New upstream version - 3rd try - - -- Ole Tange Tue, 21 Sep 2010 22:15:05 +0200 - -parallel (20100922-2) unstable; urgency=low - - * New upstream version - - -- Ole Tange Tue, 21 Sep 2010 22:13:53 +0200 - -parallel (20100922-1) unstable; urgency=low - - * New upstream version - - -- Ole Tange Tue, 21 Sep 2010 22:12:22 +0200 - parallel (20100906-1) unstable; urgency=low * New upstream version diff --git a/packager/debian/debian-template/compat b/packager/debian/debian-template/compat index 7f8f011e..7ed6ff82 100644 --- a/packager/debian/debian-template/compat +++ b/packager/debian/debian-template/compat @@ -1 +1 @@ -7 +5 diff --git a/packager/debian/debian-template/control b/packager/debian/debian-template/control index da5abfe3..e7fb4c11 100644 --- a/packager/debian/debian-template/control +++ b/packager/debian/debian-template/control @@ -1,10 +1,9 @@ Source: parallel Section: utils Priority: extra -Maintainer: Rogério Brito -Uploaders: Ole Tange -Build-Depends: debhelper (>= 7.0.50~), dh-autoreconf -Standards-Version: 3.9.1 +Maintainer: Ole Tange +Build-Depends: debhelper (>= 5) +Standards-Version: 3.8.3 Homepage: https://www.gnu.org/software/parallel/ Package: parallel diff --git a/packager/debian/debian-template/copyright b/packager/debian/debian-template/copyright index 523908f3..0889d6d9 100644 --- a/packager/debian/debian-template/copyright +++ b/packager/debian/debian-template/copyright @@ -31,8 +31,7 @@ License: The Debian packaging is: - Copyright © 2010 Ole Tange - Copyright © 2010 Rogério Theodoro de Brito + Copyright (C) 2010 Ole Tange and is licensed under the GPL version 3, see `/usr/share/common-licenses/GPL-3'. diff --git a/packager/debian/debian-template/dirs b/packager/debian/debian-template/dirs new file mode 100644 index 00000000..74c50691 --- /dev/null +++ b/packager/debian/debian-template/dirs @@ -0,0 +1,2 @@ +usr/bin + diff --git a/packager/debian/debian-template/doc-base b/packager/debian/debian-template/doc-base deleted file mode 100644 index 6854cda8..00000000 --- a/packager/debian/debian-template/doc-base +++ /dev/null @@ -1,11 +0,0 @@ -Document: parallel -Title: Manual of GNU parallel -Author: Ole Tange -Abstract: This manual describes the use of GNU parallel, - provides an introduction to the subject and also presents - comparisons against similar utilities. -Section: System/Administration - -Format: HTML -Index: /usr/share/doc/parallel/parallel.html -Files: /usr/share/doc/parallel/*.html diff --git a/packager/debian/debian-template/files b/packager/debian/debian-template/files new file mode 100644 index 00000000..b362486b --- /dev/null +++ b/packager/debian/debian-template/files @@ -0,0 +1 @@ +parallel_20100906-6_all.deb utils extra diff --git a/packager/debian/debian-template/parallel.debhelper.log b/packager/debian/debian-template/parallel.debhelper.log new file mode 100644 index 00000000..11de83b8 --- /dev/null +++ b/packager/debian/debian-template/parallel.debhelper.log @@ -0,0 +1,13 @@ +dh_prep +dh_installdirs +dh_installchangelogs +dh_installdocs +dh_installexamples +dh_installman +dh_link +dh_compress +dh_fixperms +dh_installdeb +dh_gencontrol +dh_md5sums +dh_builddeb diff --git a/packager/debian/debian-template/parallel.substvars b/packager/debian/debian-template/parallel.substvars new file mode 100644 index 00000000..abd3ebeb --- /dev/null +++ b/packager/debian/debian-template/parallel.substvars @@ -0,0 +1 @@ +misc:Depends= diff --git a/packager/debian/debian-template/patches/01-fix-spelling.patch b/packager/debian/debian-template/patches/01-fix-spelling.patch deleted file mode 100644 index bfe12f50..00000000 --- a/packager/debian/debian-template/patches/01-fix-spelling.patch +++ /dev/null @@ -1,52 +0,0 @@ -Description: Fix spelling errors in some manpages -Author: Rogério Brito -Forwarded: no -Last-Update: 2010-10-24 - ---- a/src/parallel -+++ b/src/parallel -@@ -1095,7 +1095,7 @@ - - =head1 EXAMPLE: Group output lines - --When runnning jobs that output data, you often do not want the output -+When running jobs that output data, you often do not want the output - of multiple jobs to run together. GNU B defaults to grouping the - output of each job, so the output is printed when the job finishes. If - you want the output to be printed while the job is running you can use -@@ -1311,12 +1311,12 @@ - B - - --=head1 EXAMPLE: Working as cat | sh. Ressource inexpensive jobs and evaluation -+=head1 EXAMPLE: Working as cat | sh. Resource inexpensive jobs and evaluation - - GNU B can work similar to B. - --A ressource inexpensive job is a job that takes very little CPU, disk --I/O and network I/O. Ping is an example of a ressource inexpensive -+A resource inexpensive job is a job that takes very little CPU, disk -+I/O and network I/O. Ping is an example of a resource inexpensive - job. wget is too - if the webpages are small. - - The content of the file jobs_to_run: -@@ -2976,7 +2976,7 @@ - # Number of parallel processes to run - - sub compute_number_of_processes { -- # Number of processes wanted and limited by system ressources -+ # Number of processes wanted and limited by system resources - # Returns: - # Number of processes - my $opt_P = shift; ---- a/src/sql -+++ b/src/sql -@@ -118,7 +118,7 @@ - - =item B<-s> I - --Field separator. Use I as seperator between columns. -+Field separator. Use I as separator between columns. - - - =item B<--skip-first-line> diff --git a/packager/debian/debian-template/patches/series b/packager/debian/debian-template/patches/series deleted file mode 100644 index adab849f..00000000 --- a/packager/debian/debian-template/patches/series +++ /dev/null @@ -1 +0,0 @@ -01-fix-spelling.patch diff --git a/packager/debian/debian-template/rules b/packager/debian/debian-template/rules index 6b4a3cfc..a8d1c225 100755 --- a/packager/debian/debian-template/rules +++ b/packager/debian/debian-template/rules @@ -1,7 +1,64 @@ #!/usr/bin/make -f -%: - dh $@ --with autoreconf +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. -override_dh_clean: - rm -f src/sem - dh_clean +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +build: build-stamp + +build-stamp: + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + + touch $@ + +clean: + dh_testdir + dh_testroot + dh_installdirs + rm -f build-stamp + + # Add here commands to clean up after the build process. + ./configure --prefix=/usr + $(MAKE) clean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_prep || dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/parallel. + $(MAKE) DESTDIR=$(CURDIR)/debian/parallel install + + +# Build architecture-independent files here. +binary-indep: install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples + dh_installman + dh_link + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +# Build architecture-dependent files here. +binary-arch: install + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/packager/debian/debian-template/source/format b/packager/debian/debian-template/source/format deleted file mode 100644 index 163aaf8d..00000000 --- a/packager/debian/debian-template/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/src/parallel b/src/parallel index 508e7986..a3f440e7 100755 --- a/src/parallel +++ b/src/parallel @@ -2641,7 +2641,7 @@ sub get_options_from_array { sub parse_options { # Returns: N/A # Defaults: - $Global::version = 20101126; + $Global::version = 20101202; $Global::progname = 'parallel'; $Global::debug = 0; $Global::verbose = 0; diff --git a/src/sql b/src/sql index 9e5c0c90..7b128637 100755 --- a/src/sql +++ b/src/sql @@ -528,7 +528,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20101122; + $Global::version = 20101202; $Global::progname = 'sql'; # This must be done first as this may exec myself