summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2024-05-25 14:53:04 -0500
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2024-06-11 14:03:57 -0500
commit297726bfe48f2c83408c125ebf9947bc25a57111 (patch)
tree43e1e59131f79ab3fcb9414bda05fe7657fc20b7
parenteddd59782fc02b481e89579aa909d250c3ac598f (diff)
downloadpackages-297726bfe48f2c83408c125ebf9947bc25a57111.tar.gz
packages-297726bfe48f2c83408c125ebf9947bc25a57111.tar.bz2
packages-297726bfe48f2c83408c125ebf9947bc25a57111.tar.xz
packages-297726bfe48f2c83408c125ebf9947bc25a57111.zip
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.
-rw-r--r--system/git/APKBUILD6
-rw-r--r--system/git/perl-getopt-long.patch459
2 files changed, 463 insertions, 2 deletions
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 <awilfox@adelielinux.org>
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 <tmz@pobox.com>
+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 <tmz@pobox.com>
+Signed-off-by: Junio C Hamano <gitster@pobox.com>
+---
+ 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 <<EOT;
+-git send-email' [<options>] <file|directory>
+-git send-email' [<options>] <format-patch options>
++git send-email [<options>] <file|directory>
++git send-email [<options>] <format-patch options>
+ git send-email --dump-aliases
+
+ Composing:
+From d13a73e383076636534e10ba799af0c9a2b85357 Mon Sep 17 00:00:00 2001
+From: Todd Zullinger <tmz@pobox.com>
+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 <tmz@pobox.com>
+Signed-off-by: Junio C Hamano <gitster@pobox.com>
+---
+ 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 <normalperson@yhbt.net>
+ # 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 <tmz@pobox.com>
+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 <tmz@pobox.com>
+Signed-off-by: Junio C Hamano <gitster@pobox.com>
+---
+ 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,