From unknown Fri Jun 20 20:03:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#46744: Make automake ourput reproducible Resent-From: Josef =?UTF-8?Q?M=C3=B6llers?= Original-Sender: "Debbugs-submit" Resent-CC: bug-automake@gnu.org Resent-Date: Wed, 24 Feb 2021 08:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 46744 X-GNU-PR-Package: automake X-GNU-PR-Keywords: To: 46744@debbugs.gnu.org X-Debbugs-Original-To: bug-automake@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.1614154912598 (code B ref -1); Wed, 24 Feb 2021 08:22:02 +0000 Received: (at submit) by debbugs.gnu.org; 24 Feb 2021 08:21:52 +0000 Received: from localhost ([127.0.0.1]:33232 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lEpQe-00009a-Bk for submit@debbugs.gnu.org; Wed, 24 Feb 2021 03:21:52 -0500 Received: from lists.gnu.org ([209.51.188.17]:58764) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lEp03-0007wR-Pn for submit@debbugs.gnu.org; Wed, 24 Feb 2021 02:54:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57792) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lEp03-0000Lo-Gk for bug-automake@gnu.org; Wed, 24 Feb 2021 02:54:23 -0500 Received: from mx2.suse.de ([195.135.220.15]:34678) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lEp01-00005G-3V for bug-automake@gnu.org; Wed, 24 Feb 2021 02:54:22 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1614153257; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=FUjEzkr+zcOxugqf8tVgGTgvN/33B4kHDVhONVpgFss=; b=OR1ivUxD7JaHtoHGqPOsWEgWzuNS4RuOmXX9+J097oAChaUPqOB/ld6PMhtoaAx98yx1LH 87+T+csApcHlAu7fN4jONhw/fN6nJqkOt7iX5pchoDMWi4bCyhEcEjpfluQhU7MuMKOfCo f8Pux2mr6zV0HdlF3DVCHIhyPEsNJpk= Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 8D699AEBD for ; Wed, 24 Feb 2021 07:54:17 +0000 (UTC) From: Josef =?UTF-8?Q?M=C3=B6llers?= Message-ID: <1e3b6fa3-9556-c911-e62f-f11be894afda@suse.com> Date: Wed, 24 Feb 2021 08:54:17 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2428C6F524B8080FED55613D" Content-Language: en-US Received-SPF: pass client-ip=195.135.220.15; envelope-from=josef.moellers@suse.com; helo=mx2.suse.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Mailman-Approved-At: Wed, 24 Feb 2021 03:21:51 -0500 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.4 (--) This is a multi-part message in MIME format. --------------2428C6F524B8080FED55613D Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Hi, We rely on builds to be reproducible. The PERL script bin/automake.in calls the perl function "keys" at several places. The returned list, unfortunately, changes between invocation of the script. "sort"ing the returned list makes the process reproducible again. Attached is a patch courtesy of Dirk Müller. Josef --------------2428C6F524B8080FED55613D Content-Type: text/x-patch; charset=UTF-8; name="automake-reproducible.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="automake-reproducible.patch" --- automake-1.16.3/bin/automake.in +++ automake-1.16.3/bin/automake.in @@ -2388,7 +2388,7 @@ $var->requires_variables ("\@${lt}LIBOBJS\@ used", $lt . 'LIBOBJS') if ! keys %libsources; - foreach my $iter (keys %libsources) + foreach my $iter (sort keys %libsources) { my $dir = ''; if ($iter =~ /^(.*)(\.[cly])$/) @@ -4692,7 +4692,7 @@ DIST_CLEAN, [], MAINTAINER_CLEAN, []); - foreach my $file (keys %clean_files) + foreach my $file (sort keys %clean_files) { my $when = $clean_files{$file}; prog_error 'invalid entry in %clean_files' @@ -4762,7 +4762,7 @@ . "not 'install-hook'"); # Install the -local hooks. - foreach (keys %dependencies) + foreach (sort keys %dependencies) { # Hooks are installed on the -am targets. s/-am$// or next; @@ -4784,7 +4784,7 @@ } # All the required targets are phony. - depend ('.PHONY', keys %required_targets); + depend ('.PHONY', sort keys %required_targets); # Actually output gathered targets. foreach (sort target_cmp keys %dependencies) @@ -5260,7 +5260,7 @@ # has a precise meaning for AC_CONFIG_FILES and so on. $traces .= join (' ', map { "--trace=$_" . ':\$f:\$l::\$d::\$n::\${::}%' } - (keys %traced)); + (sort keys %traced)); verb "running WARNINGS=$ENV{WARNINGS} $traces"; my $tracefh = new Automake::XFile ("$traces $filename |"); @@ -5831,7 +5831,7 @@ { my ($self) = @_; - foreach my $prog (keys %known_programs) + foreach my $prog (sort keys %known_programs) { lang_vala_finish_target ($self, $prog); } --------------2428C6F524B8080FED55613D-- From unknown Fri Jun 20 20:03:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#46744: Make automake ourput reproducible References: <1e3b6fa3-9556-c911-e62f-f11be894afda@suse.com> Resent-From: Karl Berry Original-Sender: "Debbugs-submit" Resent-CC: bug-automake@gnu.org Resent-Date: Sat, 27 Feb 2021 17:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 46744 X-GNU-PR-Package: automake X-GNU-PR-Keywords: To: josef.moellers@suse.com Cc: 46744@debbugs.gnu.org Received: via spool by 46744-submit@debbugs.gnu.org id=B46744.16144461377376 (code B ref 46744); Sat, 27 Feb 2021 17:16:02 +0000 Received: (at 46744) by debbugs.gnu.org; 27 Feb 2021 17:15:37 +0000 Received: from localhost ([127.0.0.1]:45271 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lG3Bp-0001up-Ay for submit@debbugs.gnu.org; Sat, 27 Feb 2021 12:15:37 -0500 Received: from freefriends.org ([96.88.95.60]:53432) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lG3BZ-0001uF-Qr; Sat, 27 Feb 2021 12:15:35 -0500 X-Envelope-From: karl@freefriends.org Received: from freefriends.org (freefriends.org [96.88.95.60]) by freefriends.org (8.14.7/8.14.7) with ESMTP id 11RHFKWq005036 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 27 Feb 2021 10:15:21 -0700 Received: (from apache@localhost) by freefriends.org (8.14.7/8.14.7/Submit) id 11RHFKOk005035; Sat, 27 Feb 2021 10:15:20 -0700 Date: Sat, 27 Feb 2021 10:15:20 -0700 Message-Id: <202102271715.11RHFKOk005035@freefriends.org> From: Karl Berry In-Reply-To: <1e3b6fa3-9556-c911-e62f-f11be894afda@suse.com> 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: -3.3 (---) "sort"ing the returned list makes the process reproducible again. Attached is a patch courtesy of Dirk M``ller. Thanks Josef (and Dirk). Applied. --karl From unknown Fri Jun 20 20:03:27 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: Josef =?UTF-8?Q?M=C3=B6llers?= Subject: bug#46744: closed (Re: bug#46744: Make automake ourput reproducible) Message-ID: References: <202102271715.11RHFKOk005035@freefriends.org> <1e3b6fa3-9556-c911-e62f-f11be894afda@suse.com> X-Gnu-PR-Message: they-closed 46744 X-Gnu-PR-Package: automake Reply-To: 46744@debbugs.gnu.org Date: Sat, 27 Feb 2021 17:16:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1614446163-7424-1" This is a multi-part message in MIME format... ------------=_1614446163-7424-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #46744: Make automake ourput reproducible 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 46744@debbugs.gnu.org. --=20 46744: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D46744 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1614446163-7424-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 46744-done) by debbugs.gnu.org; 27 Feb 2021 17:15:37 +0000 Received: from localhost ([127.0.0.1]:45269 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lG3Bp-0001un-2L for submit@debbugs.gnu.org; Sat, 27 Feb 2021 12:15:37 -0500 Received: from freefriends.org ([96.88.95.60]:53432) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lG3BZ-0001uF-Qr; Sat, 27 Feb 2021 12:15:35 -0500 X-Envelope-From: karl@freefriends.org Received: from freefriends.org (freefriends.org [96.88.95.60]) by freefriends.org (8.14.7/8.14.7) with ESMTP id 11RHFKWq005036 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 27 Feb 2021 10:15:21 -0700 Received: (from apache@localhost) by freefriends.org (8.14.7/8.14.7/Submit) id 11RHFKOk005035; Sat, 27 Feb 2021 10:15:20 -0700 Date: Sat, 27 Feb 2021 10:15:20 -0700 Message-Id: <202102271715.11RHFKOk005035@freefriends.org> From: Karl Berry To: josef.moellers@suse.com Subject: Re: bug#46744: Make automake ourput reproducible In-Reply-To: <1e3b6fa3-9556-c911-e62f-f11be894afda@suse.com> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 46744-done Cc: 46744@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: -3.3 (---) "sort"ing the returned list makes the process reproducible again. Attached is a patch courtesy of Dirk M``ller. Thanks Josef (and Dirk). Applied. --karl ------------=_1614446163-7424-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 24 Feb 2021 08:21:52 +0000 Received: from localhost ([127.0.0.1]:33232 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lEpQe-00009a-Bk for submit@debbugs.gnu.org; Wed, 24 Feb 2021 03:21:52 -0500 Received: from lists.gnu.org ([209.51.188.17]:58764) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lEp03-0007wR-Pn for submit@debbugs.gnu.org; Wed, 24 Feb 2021 02:54:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57792) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lEp03-0000Lo-Gk for bug-automake@gnu.org; Wed, 24 Feb 2021 02:54:23 -0500 Received: from mx2.suse.de ([195.135.220.15]:34678) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lEp01-00005G-3V for bug-automake@gnu.org; Wed, 24 Feb 2021 02:54:22 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1614153257; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=FUjEzkr+zcOxugqf8tVgGTgvN/33B4kHDVhONVpgFss=; b=OR1ivUxD7JaHtoHGqPOsWEgWzuNS4RuOmXX9+J097oAChaUPqOB/ld6PMhtoaAx98yx1LH 87+T+csApcHlAu7fN4jONhw/fN6nJqkOt7iX5pchoDMWi4bCyhEcEjpfluQhU7MuMKOfCo f8Pux2mr6zV0HdlF3DVCHIhyPEsNJpk= Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 8D699AEBD for ; Wed, 24 Feb 2021 07:54:17 +0000 (UTC) To: bug-automake@gnu.org From: =?UTF-8?Q?Josef_M=c3=b6llers?= Subject: Make automake ourput reproducible Message-ID: <1e3b6fa3-9556-c911-e62f-f11be894afda@suse.com> Date: Wed, 24 Feb 2021 08:54:17 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2428C6F524B8080FED55613D" Content-Language: en-US Received-SPF: pass client-ip=195.135.220.15; envelope-from=josef.moellers@suse.com; helo=mx2.suse.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Wed, 24 Feb 2021 03:21:51 -0500 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.4 (--) This is a multi-part message in MIME format. --------------2428C6F524B8080FED55613D Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Hi, We rely on builds to be reproducible. The PERL script bin/automake.in calls the perl function "keys" at several places. The returned list, unfortunately, changes between invocation of the script. "sort"ing the returned list makes the process reproducible again. Attached is a patch courtesy of Dirk Müller. Josef --------------2428C6F524B8080FED55613D Content-Type: text/x-patch; charset=UTF-8; name="automake-reproducible.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="automake-reproducible.patch" --- automake-1.16.3/bin/automake.in +++ automake-1.16.3/bin/automake.in @@ -2388,7 +2388,7 @@ $var->requires_variables ("\@${lt}LIBOBJS\@ used", $lt . 'LIBOBJS') if ! keys %libsources; - foreach my $iter (keys %libsources) + foreach my $iter (sort keys %libsources) { my $dir = ''; if ($iter =~ /^(.*)(\.[cly])$/) @@ -4692,7 +4692,7 @@ DIST_CLEAN, [], MAINTAINER_CLEAN, []); - foreach my $file (keys %clean_files) + foreach my $file (sort keys %clean_files) { my $when = $clean_files{$file}; prog_error 'invalid entry in %clean_files' @@ -4762,7 +4762,7 @@ . "not 'install-hook'"); # Install the -local hooks. - foreach (keys %dependencies) + foreach (sort keys %dependencies) { # Hooks are installed on the -am targets. s/-am$// or next; @@ -4784,7 +4784,7 @@ } # All the required targets are phony. - depend ('.PHONY', keys %required_targets); + depend ('.PHONY', sort keys %required_targets); # Actually output gathered targets. foreach (sort target_cmp keys %dependencies) @@ -5260,7 +5260,7 @@ # has a precise meaning for AC_CONFIG_FILES and so on. $traces .= join (' ', map { "--trace=$_" . ':\$f:\$l::\$d::\$n::\${::}%' } - (keys %traced)); + (sort keys %traced)); verb "running WARNINGS=$ENV{WARNINGS} $traces"; my $tracefh = new Automake::XFile ("$traces $filename |"); @@ -5831,7 +5831,7 @@ { my ($self) = @_; - foreach my $prog (keys %known_programs) + foreach my $prog (sort keys %known_programs) { lang_vala_finish_target ($self, $prog); } --------------2428C6F524B8080FED55613D-- ------------=_1614446163-7424-1--