--- a/src/parallel
+++ b/src/parallel
@@ -1980,11 +1980,6 @@ sub options_completion_hash() {
"gnu[Behave like GNU parallel]" => \$opt::gnu,
"link|xapply[Link input sources]" => \$opt::link,
"linkinputsource|xapplyinputsource=i" => \@opt::linkinputsource,
- # 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
- # these lines
("bibtex|citation".
"[Print the citation notice and BibTeX entry for GNU parallel, ".
"silence citation notice for all future runs, and exit. ".
@@ -2226,14 +2221,6 @@ sub parse_options(@) {
init_globals();
my @argv_before = @ARGV;
@ARGV = read_options();
- # 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);
- }
# no-* overrides *
if($opt::nokeeporder) { $opt::keeporder = undef; }
@@ -2559,88 +2546,6 @@ sub parse_options(@) {
}
}
- # If you want GNU Parallel to be maintained in the future you
- # should keep this.
- # *YOU* will be harming free software by removing the notice.
- #
- # Funding a free software project is hard. GNU Parallel is no
- # exception. On top of that it seems the less visible a project
- # is, the harder it is to get funding. And the nature of GNU
- # Parallel is that it will never be seen by "the guy with the
- # checkbook", but only by the people doing the actual work.
- #
- # This problem has been covered by others - though no solution has
- # been found:
- # https://www.slideshare.net/NadiaEghbal/consider-the-maintainer
- # https://www.numfocus.org/blog/why-is-numpy-only-now-getting-funded/
- #
- # The FAQ tells you why the citation notice exists:
- # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt
- #
- # If you want GNU Parallel to be maintained in the future, and not
- # just wither away like so many other free software tools, you
- # need to help finance the development.
- #
- # The citation notice is a simple way of doing so, as citations
- # makes it possible to me to get a job where I can maintain GNU
- # Parallel as part of the job.
- #
- # This means you can help financing development
- #
- # WITHOUT PAYING A SINGLE CENT!
- #
- # Before implementing the citation notice it was discussed with
- # the users:
- # https://lists.gnu.org/archive/html/parallel/2013-11/msg00006.html
- #
- # Having to spend 10 seconds on running 'parallel --citation' once
- # is no doubt not an ideal solution, but no one has so far come up
- # with an ideal solution - neither for funding GNU Parallel nor
- # other free software.
- #
- # If you believe you have the perfect solution, you should try it
- # out, and if it works, you should post it on the email
- # list. Ideas that will cost work and which have not been tested
- # are, however, unlikely to be prioritized.
- #
- # Please note that GPL version 3 gives you the right to fork GNU
- # Parallel under a new name, but it does not give you the right to
- # distribute modified copies with the citation notice disabled in
- # a way where the software can be confused with GNU Parallel. To
- # do that you need to be the owner of the GNU Parallel
- # trademark. The xt:Commerce case shows this.
- #
- # Description of the xt:Commerce case in OLG Duesseldorf
- # https://web.archive.org/web/20180715073746/http://www.inta.org/INTABulletin/Pages/GERMANYGeneralPublicLicenseDoesNotPermitUseofThird-PartyTrademarksforAdvertisingModifiedVersionsofOpen-SourceSoftware.aspx
- #
- # The verdict in German
- # https://www.admody.com/urteilsdatenbank/cafe6fdaeed3/OLG-Duesseldorf_Urteil_vom_28-September-2010_Az_I-20-U-41-09
- # https://web.archive.org/web/20180715073717/https://www.admody.com/urteilsdatenbank/cafe6fdaeed3/OLG-Duesseldorf_Urteil_vom_28-September-2010_Az_I-20-U-41-09
- #
- # Other free software limiting derivates by the same name:
- # https://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux_derivatives#Legal_aspects
- # https://tm.joomla.org/trademark-faq.html
- # https://www.mozilla.org/en-US/foundation/trademarks/faq/
- #
- # Running 'parallel --citation' one single time takes less than 10
- # seconds, and will silence the citation notice for future
- # runs. If that is too much trouble for you, why not use one of
- # the alternatives instead?
- # See a list in: 'man parallel_alternatives'
- #
- # If you want GNU Parallel to be maintained in the future, you
- # should keep this line:
- citation_notice();
- # This is because _YOU_ actively make it harder to justify
- # spending time developing GNU Parallel by removing it.
-
- # If you disagree, please read (especially 77-):
- # https://www.fordfoundation.org/media/2976/roads-and-bridges-the-unseen-labor-behind-our-digital-infrastructure.pdf
-
- # *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. That includes you, George and Andreas.
-
parse_halt();
if($ENV{'PARALLEL_ENV'}) {
@@ -5837,86 +5742,9 @@ sub usage() {
"--recstart str Record start separator for --pipe.",
"",
"GNU Parallel can do much more. See 'man $Global::progname' for details",
- "",
- "Academic tradition requires you to cite works you base your article on.",
- "If you use programs that use GNU Parallel to process data for an article in a",
- "scientific publication, please cite:",
- "",
- " Tange, O. (2024, March 22). GNU Parallel 20240322 ('Sweden').",
- " Zenodo. https://doi.org/10.5281/zenodo.10901541",
- "",
- # 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
- # these 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.",
- "",
"",);
}
-sub citation_notice() {
- # if --will-cite or --plain: do nothing
- # if stderr redirected: do nothing
- # if $PARALLEL_HOME/will-cite: do nothing
- # else: print citation notice to stderr
- if($opt::willcite
- or
- $opt::plain
- or
- not -t $Global::original_stderr
- or
- grep { -e "$_/will-cite" } @Global::config_dirs) {
- # skip
- } else {
- ::status
- ("Academic tradition requires you to cite works you base your article on.",
- "If you use programs that use GNU Parallel to process data for an article in a",
- "scientific publication, please cite:",
- "",
- " Tange, O. (2024, March 22). GNU Parallel 20240322 ('Sweden').",
- " Zenodo. https://doi.org/10.5281/zenodo.10901541",
- "",
- # 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 these 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.",
- "",
- "More about funding GNU Parallel and the citation notice:",
- "https://www.gnu.org/software/parallel/parallel_design.html#citation-notice",
- "",
- "To silence this citation notice: run 'parallel --citation' once.",
- ""
- );
- mkdir $Global::config_dir;
- # Number of times the user has run GNU Parallel without showing
- # willingness to cite
- my $runs = 0;
- if(open (my $fh, "<", $Global::config_dir.
- "/runs-without-willing-to-cite")) {
- $runs = <$fh>;
- close $fh;
- }
- $runs++;
- if(open (my $fh, ">", $Global::config_dir.
- "/runs-without-willing-to-cite")) {
- print $fh $runs;
- close $fh;
- if($runs >= 10) {
- ::status("Come on: You have run parallel $runs times. ".
- "Isn't it about time ",
- "you run 'parallel --citation' once to silence ".
- "the citation notice?",
- "");
- }
- }
- }
-}
-
sub status(@) {
my @w = @_;
my $fh = $Global::status_fd || *STDERR;
@@ -5981,97 +5809,7 @@ sub version() {
"This is free software: you are free to change and redistribute it.",
"GNU $Global::progname comes with no warranty.",
"",
- "Web site: https://www.gnu.org/software/${Global::progname}\n",
- "When using programs that use GNU Parallel to process data for publication",
- "please cite as described in 'parallel --citation'.\n",
- );
-}
-
-sub citation() {
- # Returns: N/A
- my ($all_argv_ref,$argv_options_removed_ref) = @_;
- my $all_argv = "@$all_argv_ref";
- my $no_opts = "@$argv_options_removed_ref";
- $all_argv=~s/--citation//;
- if($all_argv ne $no_opts) {
- ::warning("--citation ignores all other options and arguments.");
- ::status("");
- }
-
- ::status(
- "Academic tradition requires you to cite works you base your article on.",
- "If you use programs that use GNU Parallel to process data for an article in a",
- "scientific publication, please cite:",
- "",
- "\@software{tange_2024_10901541,",
- " author = {Tange, Ole},",
- " title = {GNU Parallel 20240322 ('Sweden')},",
- " month = Mar,",
- " year = 2023,",
- " 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.10901541},",
- " url = {https://doi.org/10.5281/zenodo.10901541}",
- "}",
- "",
- "(Feel free to use \\nocite{tange_2024_10901541})",
- "",
- # 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
- # these 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.",
- "",
- "More about funding GNU Parallel and the citation notice:",
- "https://lists.gnu.org/archive/html/parallel/2013-11/msg00006.html",
- "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",
- ""
);
- while(not grep { -e "$_/will-cite" } @Global::config_dirs) {
- print "\nType: 'will cite' and press enter.\n> ";
- my $input = <STDIN>;
- if(not defined $input) {
- exit(255);
- }
- if($input =~ /will cite/i) {
- if(mkdir $Global::config_dir) {
- # Recompute @Global::config_dirs so we can break out of the loop.
- init_globals();
- }
- if(open (my $fh, ">", $Global::config_dir."/will-cite")) {
- close $fh;
- ::status(
- "",
- "Thank you for your support: You are the reason why there is funding to",
- "continue maintaining GNU Parallel. On behalf of future versions of",
- "GNU Parallel, which would not exist without your support:",
- "",
- " THANK YOU SO MUCH",
- "",
- "It is really appreciated. The citation notice is now silenced.",
- "");
- } else {
- ::status(
- "",
- "Thank you for your support. It is much appreciated. The citation",
- "cannot permanently be silenced. Use '--will-cite' instead.",
- "",
- "If you use '--will-cite' in scripts to be run by others you are making",
- "it harder for others to see the citation notice. The development of",
- "GNU Parallel is indirectly financed through citations, so if users",
- "do not know they should cite then you are making it harder to finance",
- "development. However, if you pay 10000 EUR, you should feel free to",
- "use '--will-cite' in scripts.",
- "");
- last;
- }
- }
- }
}
sub show_limits() {