From 297726bfe48f2c83408c125ebf9947bc25a57111 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Sat, 25 May 2024 14:53:04 -0500 Subject: system/git: Update for Perl GetOpt::Long git-send-email has been updated upstream to handle the new GetOpt::Long. Bring in those patches until we can update Git. --- system/git/APKBUILD | 6 +- system/git/perl-getopt-long.patch | 459 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 463 insertions(+), 2 deletions(-) create mode 100644 system/git/perl-getopt-long.patch diff --git a/system/git/APKBUILD b/system/git/APKBUILD index cd84b9352..0562bfba2 100644 --- a/system/git/APKBUILD +++ b/system/git/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox pkgname=git pkgver=2.40.0 -pkgrel=0 +pkgrel=1 pkgdesc="Distributed version control system" url="https://www.git-scm.com/" arch="all" @@ -30,6 +30,7 @@ source="https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.xz git-daemon.confd disable-t2082-2.patch + perl-getopt-long.patch " _gitcoredir=/usr/libexec/git-core @@ -171,4 +172,5 @@ sha512sums="a2720f8f9a0258c0bb5e23badcfd68a147682e45a5d039a42c47128296c508109d50 4bcc8367478601c856e0977d46fc4842f62daf300093a576704ad27ccd9fae975f95d3fbfcb00e9fa7254b1db64cd074f49a94fb5cf0abd8d72d7edc9ab8798c dont-test-other-encodings.patch 89528cdd14c51fd568aa61cf6c5eae08ea0844e59f9af9292da5fc6c268261f4166017d002d494400945e248df6b844e2f9f9cd2d9345d516983f5a110e4c42a git-daemon.initd fbf1f425206a76e2a8f82342537ed939ff7e623d644c086ca2ced5f69b36734695f9f80ebda1728f75a94d6cd2fcb71bf845b64239368caab418e4d368c141ec git-daemon.confd -6d7cbb701584a078328056a67bfd32dde5795a80c0911734b38bd534699fb0165ac2b486b267c5c39b90bbb0d7c5ab0ab6ada1d068748865617326da28304eb4 disable-t2082-2.patch" +6d7cbb701584a078328056a67bfd32dde5795a80c0911734b38bd534699fb0165ac2b486b267c5c39b90bbb0d7c5ab0ab6ada1d068748865617326da28304eb4 disable-t2082-2.patch +9800318f9e6a8b6bfd8c700cce5cc326522a607b89236a868ef46940efe0566fdadf5d69dc3e72f989d61df66be8510b8989bd4ce3fc780f017f30652c7e9efa perl-getopt-long.patch" diff --git a/system/git/perl-getopt-long.patch b/system/git/perl-getopt-long.patch new file mode 100644 index 000000000..dd5776033 --- /dev/null +++ b/system/git/perl-getopt-long.patch @@ -0,0 +1,459 @@ +From 46edab516bf04c190cb2e100419dee817d3f33f6 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Wed, 15 Nov 2023 12:39:44 -0500 +Subject: [PATCH] send-email: remove stray characters from usage + +A few stray single quotes crept into the usage string in a2ce608244 +(send-email docs: add format-patch options, 2021-10-25). Remove them. + +Signed-off-by: Todd Zullinger +Signed-off-by: Junio C Hamano +--- + git-send-email.perl | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/git-send-email.perl b/git-send-email.perl +index 897cea6564fb50..85544a18bfe37e 100755 +--- a/git-send-email.perl ++++ b/git-send-email.perl +@@ -28,8 +28,8 @@ + + sub usage { + print <] +-git send-email' [] ++git send-email [] ++git send-email [] + git send-email --dump-aliases + + Composing: +From d13a73e383076636534e10ba799af0c9a2b85357 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Thu, 16 Nov 2023 14:30:10 -0500 +Subject: [PATCH] perl: bump the required Perl version to 5.8.1 from 5.8.0 + +The following commit will make use of a Getopt::Long feature which is +only present in Perl >= 5.8.1. Document that as the minimum version we +support. + +Many of our Perl scripts will continue to run with 5.8.0 but this change +allows us to adjust them as needed without breaking any promises to our +users. + +The Perl requirement was last changed in d48b284183 (perl: bump the +required Perl version to 5.8 from 5.6.[21], 2010-09-24). At that time, +5.8.0 was 8 years old. It is now over 21 years old. + +Signed-off-by: Todd Zullinger +Signed-off-by: Junio C Hamano +--- + Documentation/CodingGuidelines | 2 +- + INSTALL | 2 +- + contrib/diff-highlight/DiffHighlight.pm | 2 +- + contrib/mw-to-git/Git/Mediawiki.pm | 2 +- + git-archimport.perl | 2 +- + git-cvsexportcommit.perl | 2 +- + git-cvsimport.perl | 2 +- + git-cvsserver.perl | 2 +- + git-send-email.perl | 4 ++-- + git-svn.perl | 2 +- + gitweb/INSTALL | 2 +- + gitweb/gitweb.perl | 2 +- + perl/Git.pm | 2 +- + perl/Git/I18N.pm | 2 +- + perl/Git/LoadCPAN.pm | 2 +- + perl/Git/LoadCPAN/Error.pm | 2 +- + perl/Git/LoadCPAN/Mail/Address.pm | 2 +- + perl/Git/Packet.pm | 2 +- + t/t0202/test.pl | 2 +- + t/t5562/invoke-with-content-length.pl | 2 +- + t/t9700/test.pl | 2 +- + t/test-terminal.perl | 2 +- + 22 files changed, 23 insertions(+), 23 deletions(-) + +diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines +index 65af8d82cedd5f..aa0195d6ebab0b 100644 +--- a/Documentation/CodingGuidelines ++++ b/Documentation/CodingGuidelines +@@ -490,7 +490,7 @@ For Perl programs: + + - Most of the C guidelines above apply. + +- - We try to support Perl 5.8 and later ("use Perl 5.008"). ++ - We try to support Perl 5.8.1 and later ("use Perl 5.008001"). + + - use strict and use warnings are strongly preferred. + +diff --git a/INSTALL b/INSTALL +index 4b422888828d0e..06f29a8ae70022 100644 +--- a/INSTALL ++++ b/INSTALL +@@ -119,7 +119,7 @@ Issues of note: + - A POSIX-compliant shell is required to run some scripts needed + for everyday use (e.g. "bisect", "request-pull"). + +- - "Perl" version 5.8 or later is needed to use some of the ++ - "Perl" version 5.8.1 or later is needed to use some of the + features (e.g. sending patches using "git send-email", + interacting with svn repositories with "git svn"). If you can + live without these, use NO_PERL. Note that recent releases of +diff --git a/contrib/diff-highlight/DiffHighlight.pm b/contrib/diff-highlight/DiffHighlight.pm +index 376f577737591e..636add69680675 100644 +--- a/contrib/diff-highlight/DiffHighlight.pm ++++ b/contrib/diff-highlight/DiffHighlight.pm +@@ -1,6 +1,6 @@ + package DiffHighlight; + +-use 5.008; ++use 5.008001; + use warnings FATAL => 'all'; + use strict; + +diff --git a/contrib/mw-to-git/Git/Mediawiki.pm b/contrib/mw-to-git/Git/Mediawiki.pm +index 917d9e2d3222c1..ff7811225ee671 100644 +--- a/contrib/mw-to-git/Git/Mediawiki.pm ++++ b/contrib/mw-to-git/Git/Mediawiki.pm +@@ -1,6 +1,6 @@ + package Git::Mediawiki; + +-use 5.008; ++use 5.008001; + use strict; + use POSIX; + use Git; +diff --git a/git-archimport.perl b/git-archimport.perl +index b7c173c345544d..f5a317b89961ce 100755 +--- a/git-archimport.perl ++++ b/git-archimport.perl +@@ -54,7 +54,7 @@ =head1 Devel Notes + + =cut + +-use 5.008; ++use 5.008001; + use strict; + use warnings; + use Getopt::Std; +diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl +index 289d4bc684dc26..1e03ba94d1b271 100755 +--- a/git-cvsexportcommit.perl ++++ b/git-cvsexportcommit.perl +@@ -1,6 +1,6 @@ + #!/usr/bin/perl + +-use 5.008; ++use 5.008001; + use strict; + use warnings; + use Getopt::Std; +diff --git a/git-cvsimport.perl b/git-cvsimport.perl +index 7bf3c12d678974..07ea3443f7f336 100755 +--- a/git-cvsimport.perl ++++ b/git-cvsimport.perl +@@ -13,7 +13,7 @@ + # The head revision is on branch "origin" by default. + # You can change that with the '-o' option. + +-use 5.008; ++use 5.008001; + use strict; + use warnings; + use Getopt::Long; +diff --git a/git-cvsserver.perl b/git-cvsserver.perl +index 7b757360e28c01..124f598bdc0705 100755 +--- a/git-cvsserver.perl ++++ b/git-cvsserver.perl +@@ -15,7 +15,7 @@ + #### + #### + +-use 5.008; ++use 5.008001; + use strict; + use warnings; + use bytes; +diff --git a/git-send-email.perl b/git-send-email.perl +index 897cea6564fb50..041db702d46fcc 100755 +--- a/git-send-email.perl ++++ b/git-send-email.perl +@@ -16,7 +16,7 @@ + # and second line is the subject of the message. + # + +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + use Getopt::Long; +@@ -228,7 +228,7 @@ sub system_or_msg { + my @sprintf_args = ($cmd_name ? $cmd_name : $args->[0], $exit_code); + if (defined $msg) { + # Quiet the 'redundant' warning category, except we +- # need to support down to Perl 5.8, so we can't do a ++ # need to support down to Perl 5.8.1, so we can't do a + # "no warnings 'redundant'", since that category was + # introduced in perl 5.22, and asking for it will die + # on older perls. +diff --git a/git-svn.perl b/git-svn.perl +index be987e316f92ac..1d1c52f42468b1 100755 +--- a/git-svn.perl ++++ b/git-svn.perl +@@ -1,7 +1,7 @@ + #!/usr/bin/perl + # Copyright (C) 2006, Eric Wong + # License: GPL v2 or later +-use 5.008; ++use 5.008001; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + use strict; + use vars qw/ $AUTHOR $VERSION +diff --git a/gitweb/INSTALL b/gitweb/INSTALL +index a58e6b3c44b0ef..dadc6efa81f035 100644 +--- a/gitweb/INSTALL ++++ b/gitweb/INSTALL +@@ -29,7 +29,7 @@ Requirements + ------------ + + - Core git tools +- - Perl 5.8 ++ - Perl 5.8.1 + - Perl modules: CGI, Encode, Fcntl, File::Find, File::Basename. + - web server + +diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl +index e66eb3d9bad7cf..55e7c6567e6c47 100755 +--- a/gitweb/gitweb.perl ++++ b/gitweb/gitweb.perl +@@ -7,7 +7,7 @@ + # + # This program is licensed under the GPLv2 + +-use 5.008; ++use 5.008001; + use strict; + use warnings; + # handle ACL in file access tests +diff --git a/perl/Git.pm b/perl/Git.pm +index 117765dc73c4a8..03bf570bf4c852 100644 +--- a/perl/Git.pm ++++ b/perl/Git.pm +@@ -7,7 +7,7 @@ Git - Perl interface to the Git version control system + + package Git; + +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + +diff --git a/perl/Git/I18N.pm b/perl/Git/I18N.pm +index 895e759c57a9d9..5454c3a6d2c433 100644 +--- a/perl/Git/I18N.pm ++++ b/perl/Git/I18N.pm +@@ -1,5 +1,5 @@ + package Git::I18N; +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + BEGIN { +diff --git a/perl/Git/LoadCPAN.pm b/perl/Git/LoadCPAN.pm +index 0c360bc7998607..8c7fa805f97390 100644 +--- a/perl/Git/LoadCPAN.pm ++++ b/perl/Git/LoadCPAN.pm +@@ -1,5 +1,5 @@ + package Git::LoadCPAN; +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + +diff --git a/perl/Git/LoadCPAN/Error.pm b/perl/Git/LoadCPAN/Error.pm +index 5d84c202884b7c..5cecb0fcd6930a 100644 +--- a/perl/Git/LoadCPAN/Error.pm ++++ b/perl/Git/LoadCPAN/Error.pm +@@ -1,5 +1,5 @@ + package Git::LoadCPAN::Error; +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + use Git::LoadCPAN ( +diff --git a/perl/Git/LoadCPAN/Mail/Address.pm b/perl/Git/LoadCPAN/Mail/Address.pm +index 340e88a7a56be3..9f808090a66a16 100644 +--- a/perl/Git/LoadCPAN/Mail/Address.pm ++++ b/perl/Git/LoadCPAN/Mail/Address.pm +@@ -1,5 +1,5 @@ + package Git::LoadCPAN::Mail::Address; +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + use Git::LoadCPAN ( +diff --git a/perl/Git/Packet.pm b/perl/Git/Packet.pm +index d144f5168f37ad..d896e6952399b0 100644 +--- a/perl/Git/Packet.pm ++++ b/perl/Git/Packet.pm +@@ -1,5 +1,5 @@ + package Git::Packet; +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + BEGIN { +diff --git a/t/t0202/test.pl b/t/t0202/test.pl +index 2cbf7b95907384..47d96a2a13f93b 100755 +--- a/t/t0202/test.pl ++++ b/t/t0202/test.pl +@@ -1,5 +1,5 @@ + #!/usr/bin/perl +-use 5.008; ++use 5.008001; + use lib (split(/:/, $ENV{GITPERLLIB})); + use strict; + use warnings; +diff --git a/t/t5562/invoke-with-content-length.pl b/t/t5562/invoke-with-content-length.pl +index 718dd9b49d493e..9babb9a375e5fb 100644 +--- a/t/t5562/invoke-with-content-length.pl ++++ b/t/t5562/invoke-with-content-length.pl +@@ -1,4 +1,4 @@ +-use 5.008; ++use 5.008001; + use strict; + use warnings; + +diff --git a/t/t9700/test.pl b/t/t9700/test.pl +index 6d753708d2acb6..d8e85482ab2ba7 100755 +--- a/t/t9700/test.pl ++++ b/t/t9700/test.pl +@@ -1,7 +1,7 @@ + #!/usr/bin/perl + use lib (split(/:/, $ENV{GITPERLLIB})); + +-use 5.008; ++use 5.008001; + use warnings; + use strict; + +diff --git a/t/test-terminal.perl b/t/test-terminal.perl +index 1bcf01a9a42a61..3810e9bb431903 100755 +--- a/t/test-terminal.perl ++++ b/t/test-terminal.perl +@@ -1,5 +1,5 @@ + #!/usr/bin/perl +-use 5.008; ++use 5.008001; + use strict; + use warnings; + use IO::Pty; +From 6ff658cc78f36baa74c0f25314b0043a8f4b4fc6 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Thu, 16 Nov 2023 14:30:11 -0500 +Subject: [PATCH] send-email: avoid duplicate specification warnings + +A warning is issued for options which are specified more than once +beginning with perl-Getopt-Long >= 2.55. In addition to causing users +to see warnings, this results in test failures which compare the output. +An example, from t9001-send-email.37: + + | +++ diff -u expect actual + | --- expect 2023-11-14 10:38:23.854346488 +0000 + | +++ actual 2023-11-14 10:38:23.848346466 +0000 + | @@ -1,2 +1,7 @@ + | +Duplicate specification "no-chain-reply-to" for option "no-chain-reply-to" + | +Duplicate specification "to-cover|to-cover!" for option "to-cover" + | +Duplicate specification "cc-cover|cc-cover!" for option "cc-cover" + | +Duplicate specification "no-thread" for option "no-thread" + | +Duplicate specification "no-to-cover" for option "no-to-cover" + | fatal: longline.patch:35 is longer than 998 characters + | warning: no patches were sent + | error: last command exited with $?=1 + | not ok 37 - reject long lines + +Remove the duplicate option specs. These are primarily the explicit +'--no-' prefix opts which were added in f471494303 (git-send-email.perl: +support no- prefix with older GetOptions, 2015-01-30). This was done +specifically to support perl-5.8.0 which includes Getopt::Long 2.32[1]. + +Getopt::Long 2.33 added support for the '--no-' prefix natively by +appending '!' to the option specification string, which was included in +perl-5.8.1 and is not present in perl-5.8.0. The previous commit bumped +the minimum supported Perl version to 5.8.1 so we no longer need to +provide the '--no-' variants for negatable options manually. + +Teach `--git-completion-helper` to output the '--no-' options. They are +not included in the options hash and would otherwise be lost. + +Signed-off-by: Todd Zullinger +Signed-off-by: Junio C Hamano +--- + git-send-email.perl | 19 ++++++------------- + 1 file changed, 6 insertions(+), 13 deletions(-) + +diff --git a/git-send-email.perl b/git-send-email.perl +index 041db702d46fcc..60afafb375d8f4 100755 +--- a/git-send-email.perl ++++ b/git-send-email.perl +@@ -119,13 +119,16 @@ sub completion_helper { + + foreach my $key (keys %$original_opts) { + unless (exists $not_for_completion{$key}) { +- $key =~ s/!$//; ++ my $negatable = ($key =~ s/!$//); + + if ($key =~ /[:=][si]$/) { + $key =~ s/[:=][si]$//; + push (@send_email_opts, "--$_=") foreach (split (/\|/, $key)); + } else { + push (@send_email_opts, "--$_") foreach (split (/\|/, $key)); ++ if ($negatable) { ++ push (@send_email_opts, "--no-$_") foreach (split (/\|/, $key)); ++ } + } + } + } +@@ -491,7 +494,6 @@ sub config_regexp { + "bcc=s" => \@getopt_bcc, + "no-bcc" => \$no_bcc, + "chain-reply-to!" => \$chain_reply_to, +- "no-chain-reply-to" => sub {$chain_reply_to = 0}, + "sendmail-cmd=s" => \$sendmail_cmd, + "smtp-server=s" => \$smtp_server, + "smtp-server-option=s" => \@smtp_server_options, +@@ -506,34 +508,25 @@ sub config_regexp { + "smtp-auth=s" => \$smtp_auth, + "no-smtp-auth" => sub {$smtp_auth = 'none'}, + "annotate!" => \$annotate, +- "no-annotate" => sub {$annotate = 0}, + "compose" => \$compose, + "quiet" => \$quiet, + "cc-cmd=s" => \$cc_cmd, + "suppress-from!" => \$suppress_from, +- "no-suppress-from" => sub {$suppress_from = 0}, + "suppress-cc=s" => \@suppress_cc, + "signed-off-cc|signed-off-by-cc!" => \$signed_off_by_cc, +- "no-signed-off-cc|no-signed-off-by-cc" => sub {$signed_off_by_cc = 0}, +- "cc-cover|cc-cover!" => \$cover_cc, +- "no-cc-cover" => sub {$cover_cc = 0}, +- "to-cover|to-cover!" => \$cover_to, +- "no-to-cover" => sub {$cover_to = 0}, ++ "cc-cover!" => \$cover_cc, ++ "to-cover!" => \$cover_to, + "confirm=s" => \$confirm, + "dry-run" => \$dry_run, + "envelope-sender=s" => \$envelope_sender, + "thread!" => \$thread, +- "no-thread" => sub {$thread = 0}, + "validate!" => \$validate, +- "no-validate" => sub {$validate = 0}, + "transfer-encoding=s" => \$target_xfer_encoding, + "format-patch!" => \$format_patch, +- "no-format-patch" => sub {$format_patch = 0}, + "8bit-encoding=s" => \$auto_8bit_encoding, + "compose-encoding=s" => \$compose_encoding, + "force" => \$force, + "xmailer!" => \$use_xmailer, +- "no-xmailer" => sub {$use_xmailer = 0}, + "batch-size=i" => \$batch_size, + "relogin-delay=i" => \$relogin_delay, + "git-completion-helper" => \$git_completion_helper, -- cgit v1.2.3-60-g2f50