From unknown Sat Aug 16 19:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72157: Current master (commit 4e6eff3597649782def55fc1dfeeec92cec4b15e) is unusable Resent-From: Dario Gjorgjevski Original-Sender: "Debbugs-submit" Resent-CC: bug-automake@gnu.org Resent-Date: Wed, 17 Jul 2024 15:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 72157 X-GNU-PR-Package: automake X-GNU-PR-Keywords: To: 72157@debbugs.gnu.org X-Debbugs-Original-To: bug-automake@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.172122838714274 (code B ref -1); Wed, 17 Jul 2024 15:00:02 +0000 Received: (at submit) by debbugs.gnu.org; 17 Jul 2024 14:59:47 +0000 Received: from localhost ([127.0.0.1]:36056 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sU68A-0003iA-Mz for submit@debbugs.gnu.org; Wed, 17 Jul 2024 10:59:47 -0400 Received: from lists.gnu.org ([209.51.188.17]:48852) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sU688-0003i2-Me for submit@debbugs.gnu.org; Wed, 17 Jul 2024 10:59:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sU684-0005n2-Mw for bug-automake@gnu.org; Wed, 17 Jul 2024 10:59:41 -0400 Received: from mail-lj1-x232.google.com ([2a00:1450:4864:20::232]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sU682-0006Kn-8M for bug-automake@gnu.org; Wed, 17 Jul 2024 10:59:40 -0400 Received: by mail-lj1-x232.google.com with SMTP id 38308e7fff4ca-2eefeab807dso8238191fa.3 for ; Wed, 17 Jul 2024 07:59:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721228375; x=1721833175; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=rHYFoA2naxALNeN+/VvmYP5NSwOC63UPcGH/8UsQ4P8=; b=Jy3sDpsWTeABk7VSaA91Q8CPc4td078ZjwTssEkakacXbswn+hd2sMCan+kGY6/vHi kEkYbrHQa1G3U0P0BCagkJqUtjF0ebBxf70cvCpYQNCNettKz6bWyImgYuhx/iB4Gpgt jhQs4Zk+Sv+qmzvMZYeB2IHE747Avsb0ZZH88Bv6iO7s5Pr84XJynynVk9Da8Q420KKL xJhnqijFYHsfCZz92vKHV31t1mEV47Kikb6/wQisViuiBiNdlK8dDkeCe1tc+eOZsUrf ci08ZAb821/PWL+JTc9Ooc3EqMBb/jwooCMvXof8Nz9jbeYcqJM1yIok/7HmLqf5hzt3 YkDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721228375; x=1721833175; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=rHYFoA2naxALNeN+/VvmYP5NSwOC63UPcGH/8UsQ4P8=; b=e7hIp89qE21L5Pn8j45gEeo2Vs7vfd2ieOSUgGqFA8f4l/5wz4A8kUfiyg9XsaHBbw AYLU2baFaWG+U25/BLQpjA4YrKkd2YZun+dxeBz1c/TiYcB2tglaoKSyaJ4aF2nak7qm swWORjJnoY+THj9q5giVi0iT17cjWnbJrfk2jWp64SmDfJYr6fS9U0KL9xYo605fima+ gtkfzcoNE7V/tK5rgBZdmmkiFmtQjCTjnWf66nl3jVGgpKqbOSBaFfnglCwdGPi1yCow Tp5osK1AzTsC2J82vOM5/2VJ+OVhrQew1610OarCfdKu718LJyiyPc9PW/7m9meCh5wS ptjA== X-Gm-Message-State: AOJu0YyaQF5GjTEzoZGBwfndkJMHRuG8+VFEbORJ/D+VoWz+rXsfwuKK f30KEHqRnHddkWrTa9iM0fpnc2YEqOiJEo5FYlV/CFwoWdLV709ydFIt/WHFr3nlRLsO7bQ797p zyltcpTKdK5J+jrHm7Vxtu6Wzb1RSmi0n X-Google-Smtp-Source: AGHT+IHWHsf8CUGyEXj2AY+EUXBqzAjTRGymrr1Ni3nVjjJjz6KjoMfh62gLOkivO2J2QlXVhOGVKW36TBPIv6PL4TI= X-Received: by 2002:a05:651c:1508:b0:2ee:4d05:631b with SMTP id 38308e7fff4ca-2eefd0c1972mr15352441fa.27.1721228375153; Wed, 17 Jul 2024 07:59:35 -0700 (PDT) MIME-Version: 1.0 From: Dario Gjorgjevski Date: Wed, 17 Jul 2024 16:58:59 +0200 Message-ID: Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=2a00:1450:4864:20::232; envelope-from=dario.gjorgjevski@gmail.com; helo=mail-lj1-x232.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Automake installed from the current master (commit 4e6eff3597649782def55fc1dfeeec92cec4b15e) is unusable: automake: error: version is incorrect: 1.17.0.90 automake: Please contact . at $prefix/share/automake-1.17/Automake/Channels.pm line 661, line 73. Automake::Channels::msg("automake", "", "version is incorrect: 1.17.0.90") called at $prefix/share/automake-1.17/Automake/ChannelDefs.pm line 233 Automake::ChannelDefs::prog_error("version is incorrect: 1.17.0.90") called at $prefix/share/automake-1.17/Automake/Version.pm line 128 Automake::Version::check("1.17.0.90", "1.16.3") called at $prefix/share/automake-1.17/Automake/Options.pm line 384 Automake::Options::_process_option_list(HASH(0x7fdb82147640), HASH(0x7fdb84872710), HASH(0x7fdb84872770), HASH(0x7fdb848727d0), HASH(0x7fdb84872830)) called at $prefix/share/automake-1.17/Automake/Options.pm line 428 Automake::Options::process_global_option_list(HASH(0x7fdb84872710), HASH(0x7fdb84872770), HASH(0x7fdb848727d0), HASH(0x7fdb84872830)) called at $prefix/bin/automake line 5499 Automake::scan_autoconf_traces("configure.ac") called at $prefix/bin/automake line 5599 Automake::scan_autoconf_files() called at $prefix/bin/automake line 8501 autoreconf: error: automake failed with exit status: 29 I suppose Automake::Version::split fails when given "1.17.0.90" as input? Best regards, Dario From unknown Sat Aug 16 19:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72157: Current master (commit 4e6eff3597649782def55fc1dfeeec92cec4b15e) is unusable References: Resent-From: Karl Berry Original-Sender: "Debbugs-submit" Resent-CC: bug-automake@gnu.org Resent-Date: Wed, 17 Jul 2024 21:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72157 X-GNU-PR-Package: automake X-GNU-PR-Keywords: To: dario.gjorgjevski@gmail.com Cc: 72157@debbugs.gnu.org Received: via spool by 72157-submit@debbugs.gnu.org id=B72157.172125275120524 (code B ref 72157); Wed, 17 Jul 2024 21:46:02 +0000 Received: (at 72157) by debbugs.gnu.org; 17 Jul 2024 21:45:51 +0000 Received: from localhost ([127.0.0.1]:36303 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUCT8-0005Ky-NV for submit@debbugs.gnu.org; Wed, 17 Jul 2024 17:45:50 -0400 Received: from frenzy.freefriends.org ([198.99.81.75]:52290 helo=freefriends.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUCT6-0005Ko-00 for 72157@debbugs.gnu.org; Wed, 17 Jul 2024 17:45:49 -0400 X-Envelope-From: karl@freefriends.org Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.16.1/8.16.1) with ESMTPS id 46HLjY8o802604 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 17 Jul 2024 15:45:34 -0600 Received: (from apache@localhost) by freefriends.org (8.16.1/8.14.7/Submit) id 46HLjYdw802603; Wed, 17 Jul 2024 15:45:34 -0600 Date: Wed, 17 Jul 2024 15:45:34 -0600 Message-Id: <202407172145.46HLjYdw802603@freefriends.org> From: Karl Berry In-Reply-To: X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Automake installed from the current master (commit 4e6eff3597649782def55fc1dfeeec92cec4b15e) is unusable: Thanks for the report. Will look into it asap. Hopefully someone else (Bogdan?) will beat me to it. --best, karl. From unknown Sat Aug 16 19:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72157: Current master (commit 4e6eff3597649782def55fc1dfeeec92cec4b15e) is unusable References: Resent-From: Karl Berry Original-Sender: "Debbugs-submit" Resent-CC: bug-automake@gnu.org Resent-Date: Tue, 10 Sep 2024 22:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72157 X-GNU-PR-Package: automake X-GNU-PR-Keywords: To: dario.gjorgjevski@gmail.com Cc: 72157@debbugs.gnu.org Received: via spool by 72157-submit@debbugs.gnu.org id=B72157.172600839729220 (code B ref 72157); Tue, 10 Sep 2024 22:47:02 +0000 Received: (at 72157) by debbugs.gnu.org; 10 Sep 2024 22:46:37 +0000 Received: from localhost ([127.0.0.1]:37132 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1so9d6-0007bC-FP for submit@debbugs.gnu.org; Tue, 10 Sep 2024 18:46:37 -0400 Received: from frenzy.freefriends.org ([198.99.81.75]:53312 helo=freefriends.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1so9d1-0007ai-7Z; Tue, 10 Sep 2024 18:46:32 -0400 X-Envelope-From: karl@freefriends.org Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.16.1/8.16.1) with ESMTPS id 48AMk6gc396700 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 10 Sep 2024 16:46:06 -0600 Received: (from apache@localhost) by freefriends.org (8.16.1/8.14.7/Submit) id 48AMk6LY396686; Tue, 10 Sep 2024 16:46:06 -0600 Date: Tue, 10 Sep 2024 16:46:06 -0600 Message-Id: <202409102246.48AMk6LY396686@freefriends.org> From: Karl Berry In-Reply-To: X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Dario - thanks for the report. I've made the changes below to try to support the new four-part numeric version numbers, like 1.17.0.91 (which is now the current dev version). All the tests pass for me, so I hope it's also usable. I won't be surprised if something is still messed up somewhere, but hoping for the best, so will provisionally close this. --thanks, karl. ----------------------------------------------------------------------------- automake: recognize all-numeric MAJ.MIN.MICROa.ALPHA versions better. * HACKING: more doc on version numbers. * configure.ac (AC_INIT): 1.17.0.91, since we want (I guess) to retain odd numbers for development and even numbers for pretests. * m4/amversion.m4 (AM_AUTOMAKE_VERSION): 1.17.0.91 (auto-update). (AM_SET_CURRENT_AUTOMAKE_VERSION): likewise. * lib/Automake/Options.pm (_process_option_list): recognize four-part numeric versions as Automake options. * lib/Automake/Version.pm (split): recognize four-part numeric versions. * t/pm/Version.pl (@tests, @bad_versions): update test to check (not reject) four-part numeric versions. diff --git a/HACKING b/HACKING index f8d2fb043..cd28dbe82 100644 --- a/HACKING +++ b/HACKING @@ -529,16 +529,23 @@ * Check NEWS; in particular, ensure that all the relevant differences with the last release are included. -* Update the AC_INIT version number in configure.ac. Leading up to a release, - say 1.17, pretests should be numbered from 1.16.90. Even numbers - (1.16.90, 1.16.92, ...) should be the pretest releases; odd numbers - (1.16.91, 1.16.93, ...) should be only the development versions. - Leading up to a release 1.17.1, we would have 1.17.0.90, etc. - Before 1.17 (July 2024), we used suffixed letters for pretests, - as is traditional, but deficient sorting algorithms did not like that. +* Update the AC_INIT version number in configure.ac. Leading up to a + minor release (x.y), say 1.17, pretests should be numbered from + 1.16.90. Even numbers (1.16.90, 1.16.92, ...) should be pretest + releases; odd numbers (1.16.91, 1.16.93, ...) should be only + development versions. Leading up to a micro release (x.y.z), say + 1.17.1, we would have 1.17.0.91 for the initial post-release + development version, 1.17.0.92 for the first pretest, etc. + + Before 1.17 (July 2024), we used suffixed letters for pretests, as is + traditional, but deficient sorting algorithms did not like that. The + code in lib/Automake/Version.pm, along with the regexp in + lib/Automake/Options.pm, has to be updated to understand any change in + version number schemes. The test t/pm/Version[.pl] comprehensively + checks valid and invalid version strings. * If making a minor or major release (1.x), also update APIVERSION - in configure.ac. + in configure.ac. But not micro. * Create an announcement message with "make announcement". Edit the generated 'announcement' file appropriately, in particularly filling @@ -602,9 +609,10 @@ make web-manual The ready-to-be-uploaded manuals (in several formats) will be left - in the 'doc/web-manuals' directory. + in the 'doc/web-manual' directory. - - Commit the updated manuals to web CVS: + - Commit the updated manuals to web CVS. This requires the "cvsu" + utility from the "cvsutils" package. make web-manual-update If your local username is different from your username at Savannah, diff --git a/configure.ac b/configure.ac index 54cd709d1..e4c7a126c 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ # along with this program. If not, see . AC_PREREQ([2.69]) -AC_INIT([GNU Automake], [1.17.0.90], [bug-automake@gnu.org]) +AC_INIT([GNU Automake], [1.17.0.91], [bug-automake@gnu.org]) AC_CONFIG_SRCDIR([bin/automake.in]) AC_CONFIG_AUX_DIR([lib]) diff --git a/lib/Automake/Options.pm b/lib/Automake/Options.pm index 98d3fd9e5..2dc7899f8 100644 --- a/lib/Automake/Options.pm +++ b/lib/Automake/Options.pm @@ -378,7 +378,8 @@ sub _process_option_list (\%@) $ret = 0; } } - elsif (/^\d+\.\d+(?:\.\d+)?[a-z]?(?:-[A-Za-z0-9]+)?$/) + elsif (/^\d+\.\d+(?:\.\d+)?(?:\.\d+)?[a-z]?(?:-[A-Za-z0-9]+)?$/) + # MAJOR.MINOR (all digits) are required, all else optional. { # Got a version number. if (Automake::Version::check ($VERSION, $&)) diff --git a/lib/Automake/Version.pm b/lib/Automake/Version.pm index daba71ffe..7da0560c9 100644 --- a/lib/Automake/Version.pm +++ b/lib/Automake/Version.pm @@ -39,12 +39,12 @@ as they are used in Automake. A version is a string that looks like C where C, C, and -C are digits, C is a character, and C any -alphanumeric word. +C are digits, C is either a character or another C<.NUM>, +and C any alphanumeric word. Usually, C is used to label alpha releases or intermediate snapshots, C is used for git branches or patched releases, and -C is used for bug fixes releases on the C branch. +C is used for bug fix releases on the C branch. For the purpose of ordering, C<1.4> is the same as C<1.4.0>, but C<1.4g> is the same as C<1.4.99g>. The C identifier is ignored @@ -53,6 +53,18 @@ versions were labeled like C<1.4-p3a>, this is the same as an alpha release labeled C<1.4.3a>. Yes, it's horrible, but Automake did not support two-dot versions in the past. +In 2024, Automake switched from using letter suffixes like C<1.4g> for +pretests to the C<.90> form (used by nearly all other GNU packages), +e.g., C<1.16.90> was a pretest leading up to C<1.17>. Thus we also have +to support four-part version numbers, since test releases leading up to +C<1.17.1> have to be C<1.17.0.92>, etc., to follow the pattern. In this +case, all four version parts have to be present and all-numeric; the +C<-FORK> is still optional (but entirely ignored). + +Aggravatingly, version number syntax is also recognized in +lib/Automake/Options.pm, since bare version numbers are also valid +Automake options, as tested in C. + =head2 FUNCTIONS =over 4 @@ -61,7 +73,8 @@ support two-dot versions in the past. Split the string C<$version> into the corresponding C<(MAJOR, MINOR, MICRO, ALPHA, FORK)> tuple. For instance C<'1.4g'> would be split -into C<(1, 4, 99, 'g', '')>. Return C<()> on error. +into C<(1, 4, 99, 'g', '')> and C<'1.17.0.91'> into C<1, 17, 0, 91, ''>. +Return C<()> on error. =cut @@ -69,16 +82,22 @@ sub split ($) { my ($ver) = @_; - # Special case for versions like 1.4-p2a. + # Recognize MAJOR.MINOR, plus special case for versions like 1.4-p2a. if ($ver =~ /^(\d+)\.(\d+)(?:-p(\d+)([a-z]+)?)$/) { return ($1, $2, $3, $4 || '', ''); } - # Common case. + # Recognize MAJOR.MINOR and MAJOR.MINOR.MICRO, as well as + # the pre-2024 case with possible letters in the alpha part. elsif ($ver =~ /^(\d+)\.(\d+)(?:\.(\d+))?([a-z])?(?:-([A-Za-z0-9]+))?$/) { return ($1, $2, $3 || (defined $4 ? 99 : 0), $4 || '', $5 || ''); } + # 2024ff. case with all numbers: MAJOR.MINOR.MICRO.ALPHA[-FORK]. + elsif ($ver =~ /^(\d+)\.(\d+).(\d+)\.(\d+)(?:-([A-Za-z0-9]+))?$/) + { + return ($1, $2, $3, $4, $5 || ''); + } return (); } diff --git a/m4/amversion.m4 b/m4/amversion.m4 index eaf900ea7..5a5ec0868 100644 --- a/m4/amversion.m4 +++ b/m4/amversion.m4 @@ -15,7 +15,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.17' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.17.0.90], [], +m4_if([$1], [1.17.0.91], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -31,7 +31,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.17.0.90])dnl +[AM_AUTOMAKE_VERSION([1.17.0.91])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) diff --git a/t/pm/Version.pl b/t/pm/Version.pl index b33d74b94..1312eb258 100644 --- a/t/pm/Version.pl +++ b/t/pm/Version.pl @@ -92,6 +92,11 @@ my @tests = ( ['1.5.1a', '1.5.1f', -1], ['1.5.1f', '1.5.1a', 1], ['1.5.1f', '1.5.1f', 0], +# with four-part numeric versions, starting 2024 + ['1.17.0.91', '1.17.0.91', 0], + ['1.17.0.91', '1.17.0.92', -1], + ['1.17.0.91', '1.17.1', -1], + ['1.17.0.91', '1.17', 1], # special exceptions ['1.6-p5a', '1.6.5a', 0], ['1.6', '1.6-p5a', -1], @@ -103,7 +108,7 @@ my @tests = ( ); my @bad_versions = ( - '', 'a', '1', '1a', '1.2.3.4', '-1.2' + '', 'a', '1', '1a', '-1.2' ); test_version_compare (@{$_}) foreach @tests; compile finished at Tue Sep 10 15:44:43 2024 From unknown Sat Aug 16 19:18:24 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Dario Gjorgjevski Subject: bug#72157: closed (Re: bug#72157: Current master (commit 4e6eff3597649782def55fc1dfeeec92cec4b15e) is unusable) Message-ID: References: <202409102246.48AMk6LY396686@freefriends.org> X-Gnu-PR-Message: they-closed 72157 X-Gnu-PR-Package: automake Reply-To: 72157@debbugs.gnu.org Date: Tue, 10 Sep 2024 22:47:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1726008423-29284-1" This is a multi-part message in MIME format... ------------=_1726008423-29284-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #72157: Current master (commit 4e6eff3597649782def55fc1dfeeec92cec4b15e) is= unusable which was filed against the automake package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 72157@debbugs.gnu.org. --=20 72157: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D72157 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1726008423-29284-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 72157-done) by debbugs.gnu.org; 10 Sep 2024 22:46:38 +0000 Received: from localhost ([127.0.0.1]:37134 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1so9d7-0007bF-7s for submit@debbugs.gnu.org; Tue, 10 Sep 2024 18:46:37 -0400 Received: from frenzy.freefriends.org ([198.99.81.75]:53312 helo=freefriends.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1so9d1-0007ai-7Z; Tue, 10 Sep 2024 18:46:32 -0400 X-Envelope-From: karl@freefriends.org Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.16.1/8.16.1) with ESMTPS id 48AMk6gc396700 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 10 Sep 2024 16:46:06 -0600 Received: (from apache@localhost) by freefriends.org (8.16.1/8.14.7/Submit) id 48AMk6LY396686; Tue, 10 Sep 2024 16:46:06 -0600 Date: Tue, 10 Sep 2024 16:46:06 -0600 Message-Id: <202409102246.48AMk6LY396686@freefriends.org> From: Karl Berry To: dario.gjorgjevski@gmail.com Subject: Re: bug#72157: Current master (commit 4e6eff3597649782def55fc1dfeeec92cec4b15e) is unusable In-Reply-To: X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 72157-done Cc: 72157@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Dario - thanks for the report. I've made the changes below to try to support the new four-part numeric version numbers, like 1.17.0.91 (which is now the current dev version). All the tests pass for me, so I hope it's also usable. I won't be surprised if something is still messed up somewhere, but hoping for the best, so will provisionally close this. --thanks, karl. ----------------------------------------------------------------------------- automake: recognize all-numeric MAJ.MIN.MICROa.ALPHA versions better. * HACKING: more doc on version numbers. * configure.ac (AC_INIT): 1.17.0.91, since we want (I guess) to retain odd numbers for development and even numbers for pretests. * m4/amversion.m4 (AM_AUTOMAKE_VERSION): 1.17.0.91 (auto-update). (AM_SET_CURRENT_AUTOMAKE_VERSION): likewise. * lib/Automake/Options.pm (_process_option_list): recognize four-part numeric versions as Automake options. * lib/Automake/Version.pm (split): recognize four-part numeric versions. * t/pm/Version.pl (@tests, @bad_versions): update test to check (not reject) four-part numeric versions. diff --git a/HACKING b/HACKING index f8d2fb043..cd28dbe82 100644 --- a/HACKING +++ b/HACKING @@ -529,16 +529,23 @@ * Check NEWS; in particular, ensure that all the relevant differences with the last release are included. -* Update the AC_INIT version number in configure.ac. Leading up to a release, - say 1.17, pretests should be numbered from 1.16.90. Even numbers - (1.16.90, 1.16.92, ...) should be the pretest releases; odd numbers - (1.16.91, 1.16.93, ...) should be only the development versions. - Leading up to a release 1.17.1, we would have 1.17.0.90, etc. - Before 1.17 (July 2024), we used suffixed letters for pretests, - as is traditional, but deficient sorting algorithms did not like that. +* Update the AC_INIT version number in configure.ac. Leading up to a + minor release (x.y), say 1.17, pretests should be numbered from + 1.16.90. Even numbers (1.16.90, 1.16.92, ...) should be pretest + releases; odd numbers (1.16.91, 1.16.93, ...) should be only + development versions. Leading up to a micro release (x.y.z), say + 1.17.1, we would have 1.17.0.91 for the initial post-release + development version, 1.17.0.92 for the first pretest, etc. + + Before 1.17 (July 2024), we used suffixed letters for pretests, as is + traditional, but deficient sorting algorithms did not like that. The + code in lib/Automake/Version.pm, along with the regexp in + lib/Automake/Options.pm, has to be updated to understand any change in + version number schemes. The test t/pm/Version[.pl] comprehensively + checks valid and invalid version strings. * If making a minor or major release (1.x), also update APIVERSION - in configure.ac. + in configure.ac. But not micro. * Create an announcement message with "make announcement". Edit the generated 'announcement' file appropriately, in particularly filling @@ -602,9 +609,10 @@ make web-manual The ready-to-be-uploaded manuals (in several formats) will be left - in the 'doc/web-manuals' directory. + in the 'doc/web-manual' directory. - - Commit the updated manuals to web CVS: + - Commit the updated manuals to web CVS. This requires the "cvsu" + utility from the "cvsutils" package. make web-manual-update If your local username is different from your username at Savannah, diff --git a/configure.ac b/configure.ac index 54cd709d1..e4c7a126c 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ # along with this program. If not, see . AC_PREREQ([2.69]) -AC_INIT([GNU Automake], [1.17.0.90], [bug-automake@gnu.org]) +AC_INIT([GNU Automake], [1.17.0.91], [bug-automake@gnu.org]) AC_CONFIG_SRCDIR([bin/automake.in]) AC_CONFIG_AUX_DIR([lib]) diff --git a/lib/Automake/Options.pm b/lib/Automake/Options.pm index 98d3fd9e5..2dc7899f8 100644 --- a/lib/Automake/Options.pm +++ b/lib/Automake/Options.pm @@ -378,7 +378,8 @@ sub _process_option_list (\%@) $ret = 0; } } - elsif (/^\d+\.\d+(?:\.\d+)?[a-z]?(?:-[A-Za-z0-9]+)?$/) + elsif (/^\d+\.\d+(?:\.\d+)?(?:\.\d+)?[a-z]?(?:-[A-Za-z0-9]+)?$/) + # MAJOR.MINOR (all digits) are required, all else optional. { # Got a version number. if (Automake::Version::check ($VERSION, $&)) diff --git a/lib/Automake/Version.pm b/lib/Automake/Version.pm index daba71ffe..7da0560c9 100644 --- a/lib/Automake/Version.pm +++ b/lib/Automake/Version.pm @@ -39,12 +39,12 @@ as they are used in Automake. A version is a string that looks like C where C, C, and -C are digits, C is a character, and C any -alphanumeric word. +C are digits, C is either a character or another C<.NUM>, +and C any alphanumeric word. Usually, C is used to label alpha releases or intermediate snapshots, C is used for git branches or patched releases, and -C is used for bug fixes releases on the C branch. +C is used for bug fix releases on the C branch. For the purpose of ordering, C<1.4> is the same as C<1.4.0>, but C<1.4g> is the same as C<1.4.99g>. The C identifier is ignored @@ -53,6 +53,18 @@ versions were labeled like C<1.4-p3a>, this is the same as an alpha release labeled C<1.4.3a>. Yes, it's horrible, but Automake did not support two-dot versions in the past. +In 2024, Automake switched from using letter suffixes like C<1.4g> for +pretests to the C<.90> form (used by nearly all other GNU packages), +e.g., C<1.16.90> was a pretest leading up to C<1.17>. Thus we also have +to support four-part version numbers, since test releases leading up to +C<1.17.1> have to be C<1.17.0.92>, etc., to follow the pattern. In this +case, all four version parts have to be present and all-numeric; the +C<-FORK> is still optional (but entirely ignored). + +Aggravatingly, version number syntax is also recognized in +lib/Automake/Options.pm, since bare version numbers are also valid +Automake options, as tested in C. + =head2 FUNCTIONS =over 4 @@ -61,7 +73,8 @@ support two-dot versions in the past. Split the string C<$version> into the corresponding C<(MAJOR, MINOR, MICRO, ALPHA, FORK)> tuple. For instance C<'1.4g'> would be split -into C<(1, 4, 99, 'g', '')>. Return C<()> on error. +into C<(1, 4, 99, 'g', '')> and C<'1.17.0.91'> into C<1, 17, 0, 91, ''>. +Return C<()> on error. =cut @@ -69,16 +82,22 @@ sub split ($) { my ($ver) = @_; - # Special case for versions like 1.4-p2a. + # Recognize MAJOR.MINOR, plus special case for versions like 1.4-p2a. if ($ver =~ /^(\d+)\.(\d+)(?:-p(\d+)([a-z]+)?)$/) { return ($1, $2, $3, $4 || '', ''); } - # Common case. + # Recognize MAJOR.MINOR and MAJOR.MINOR.MICRO, as well as + # the pre-2024 case with possible letters in the alpha part. elsif ($ver =~ /^(\d+)\.(\d+)(?:\.(\d+))?([a-z])?(?:-([A-Za-z0-9]+))?$/) { return ($1, $2, $3 || (defined $4 ? 99 : 0), $4 || '', $5 || ''); } + # 2024ff. case with all numbers: MAJOR.MINOR.MICRO.ALPHA[-FORK]. + elsif ($ver =~ /^(\d+)\.(\d+).(\d+)\.(\d+)(?:-([A-Za-z0-9]+))?$/) + { + return ($1, $2, $3, $4, $5 || ''); + } return (); } diff --git a/m4/amversion.m4 b/m4/amversion.m4 index eaf900ea7..5a5ec0868 100644 --- a/m4/amversion.m4 +++ b/m4/amversion.m4 @@ -15,7 +15,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.17' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.17.0.90], [], +m4_if([$1], [1.17.0.91], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -31,7 +31,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.17.0.90])dnl +[AM_AUTOMAKE_VERSION([1.17.0.91])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) diff --git a/t/pm/Version.pl b/t/pm/Version.pl index b33d74b94..1312eb258 100644 --- a/t/pm/Version.pl +++ b/t/pm/Version.pl @@ -92,6 +92,11 @@ my @tests = ( ['1.5.1a', '1.5.1f', -1], ['1.5.1f', '1.5.1a', 1], ['1.5.1f', '1.5.1f', 0], +# with four-part numeric versions, starting 2024 + ['1.17.0.91', '1.17.0.91', 0], + ['1.17.0.91', '1.17.0.92', -1], + ['1.17.0.91', '1.17.1', -1], + ['1.17.0.91', '1.17', 1], # special exceptions ['1.6-p5a', '1.6.5a', 0], ['1.6', '1.6-p5a', -1], @@ -103,7 +108,7 @@ my @tests = ( ); my @bad_versions = ( - '', 'a', '1', '1a', '1.2.3.4', '-1.2' + '', 'a', '1', '1a', '-1.2' ); test_version_compare (@{$_}) foreach @tests; compile finished at Tue Sep 10 15:44:43 2024 ------------=_1726008423-29284-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 17 Jul 2024 14:59:47 +0000 Received: from localhost ([127.0.0.1]:36056 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sU68A-0003iA-Mz for submit@debbugs.gnu.org; Wed, 17 Jul 2024 10:59:47 -0400 Received: from lists.gnu.org ([209.51.188.17]:48852) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sU688-0003i2-Me for submit@debbugs.gnu.org; Wed, 17 Jul 2024 10:59:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sU684-0005n2-Mw for bug-automake@gnu.org; Wed, 17 Jul 2024 10:59:41 -0400 Received: from mail-lj1-x232.google.com ([2a00:1450:4864:20::232]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sU682-0006Kn-8M for bug-automake@gnu.org; Wed, 17 Jul 2024 10:59:40 -0400 Received: by mail-lj1-x232.google.com with SMTP id 38308e7fff4ca-2eefeab807dso8238191fa.3 for ; Wed, 17 Jul 2024 07:59:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721228375; x=1721833175; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=rHYFoA2naxALNeN+/VvmYP5NSwOC63UPcGH/8UsQ4P8=; b=Jy3sDpsWTeABk7VSaA91Q8CPc4td078ZjwTssEkakacXbswn+hd2sMCan+kGY6/vHi kEkYbrHQa1G3U0P0BCagkJqUtjF0ebBxf70cvCpYQNCNettKz6bWyImgYuhx/iB4Gpgt jhQs4Zk+Sv+qmzvMZYeB2IHE747Avsb0ZZH88Bv6iO7s5Pr84XJynynVk9Da8Q420KKL xJhnqijFYHsfCZz92vKHV31t1mEV47Kikb6/wQisViuiBiNdlK8dDkeCe1tc+eOZsUrf ci08ZAb821/PWL+JTc9Ooc3EqMBb/jwooCMvXof8Nz9jbeYcqJM1yIok/7HmLqf5hzt3 YkDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721228375; x=1721833175; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=rHYFoA2naxALNeN+/VvmYP5NSwOC63UPcGH/8UsQ4P8=; b=e7hIp89qE21L5Pn8j45gEeo2Vs7vfd2ieOSUgGqFA8f4l/5wz4A8kUfiyg9XsaHBbw AYLU2baFaWG+U25/BLQpjA4YrKkd2YZun+dxeBz1c/TiYcB2tglaoKSyaJ4aF2nak7qm swWORjJnoY+THj9q5giVi0iT17cjWnbJrfk2jWp64SmDfJYr6fS9U0KL9xYo605fima+ gtkfzcoNE7V/tK5rgBZdmmkiFmtQjCTjnWf66nl3jVGgpKqbOSBaFfnglCwdGPi1yCow Tp5osK1AzTsC2J82vOM5/2VJ+OVhrQew1610OarCfdKu718LJyiyPc9PW/7m9meCh5wS ptjA== X-Gm-Message-State: AOJu0YyaQF5GjTEzoZGBwfndkJMHRuG8+VFEbORJ/D+VoWz+rXsfwuKK f30KEHqRnHddkWrTa9iM0fpnc2YEqOiJEo5FYlV/CFwoWdLV709ydFIt/WHFr3nlRLsO7bQ797p zyltcpTKdK5J+jrHm7Vxtu6Wzb1RSmi0n X-Google-Smtp-Source: AGHT+IHWHsf8CUGyEXj2AY+EUXBqzAjTRGymrr1Ni3nVjjJjz6KjoMfh62gLOkivO2J2QlXVhOGVKW36TBPIv6PL4TI= X-Received: by 2002:a05:651c:1508:b0:2ee:4d05:631b with SMTP id 38308e7fff4ca-2eefd0c1972mr15352441fa.27.1721228375153; Wed, 17 Jul 2024 07:59:35 -0700 (PDT) MIME-Version: 1.0 From: Dario Gjorgjevski Date: Wed, 17 Jul 2024 16:58:59 +0200 Message-ID: Subject: Current master (commit 4e6eff3597649782def55fc1dfeeec92cec4b15e) is unusable To: bug-automake@gnu.org Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=2a00:1450:4864:20::232; envelope-from=dario.gjorgjevski@gmail.com; helo=mail-lj1-x232.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Automake installed from the current master (commit 4e6eff3597649782def55fc1dfeeec92cec4b15e) is unusable: automake: error: version is incorrect: 1.17.0.90 automake: Please contact . at $prefix/share/automake-1.17/Automake/Channels.pm line 661, line 73. Automake::Channels::msg("automake", "", "version is incorrect: 1.17.0.90") called at $prefix/share/automake-1.17/Automake/ChannelDefs.pm line 233 Automake::ChannelDefs::prog_error("version is incorrect: 1.17.0.90") called at $prefix/share/automake-1.17/Automake/Version.pm line 128 Automake::Version::check("1.17.0.90", "1.16.3") called at $prefix/share/automake-1.17/Automake/Options.pm line 384 Automake::Options::_process_option_list(HASH(0x7fdb82147640), HASH(0x7fdb84872710), HASH(0x7fdb84872770), HASH(0x7fdb848727d0), HASH(0x7fdb84872830)) called at $prefix/share/automake-1.17/Automake/Options.pm line 428 Automake::Options::process_global_option_list(HASH(0x7fdb84872710), HASH(0x7fdb84872770), HASH(0x7fdb848727d0), HASH(0x7fdb84872830)) called at $prefix/bin/automake line 5499 Automake::scan_autoconf_traces("configure.ac") called at $prefix/bin/automake line 5599 Automake::scan_autoconf_files() called at $prefix/bin/automake line 8501 autoreconf: error: automake failed with exit status: 29 I suppose Automake::Version::split fails when given "1.17.0.90" as input? Best regards, Dario ------------=_1726008423-29284-1--