From patchwork Fri Jan 12 00:33:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomas Volf <~@wolfsden.cz> X-Patchwork-Id: 58813 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 2306527BBEA; Fri, 12 Jan 2024 00:34:30 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,DKIM_ADSP_ALL, DKIM_INVALID,DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id B498E27BBE2 for ; Fri, 12 Jan 2024 00:34:28 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rO5Uz-000071-SR; Thu, 11 Jan 2024 19:34:13 -0500 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 1rO5Uy-00006n-0A for guix-patches@gnu.org; Thu, 11 Jan 2024 19:34:12 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rO5Ux-0004mq-Nx; Thu, 11 Jan 2024 19:34:11 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rO5Un-0001Qf-OT; Thu, 11 Jan 2024 19:34:01 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#68394] [PATCH python-team] gnu: python: Make the build reproducible. Resent-From: Tomas Volf <~@wolfsden.cz> Original-Sender: "Debbugs-submit" Resent-CC: lars@6xq.net, marius@gnu.org, me@bonfacemunyoki.com, jgart@dismail.de, guix-patches@gnu.org Resent-Date: Fri, 12 Jan 2024 00:34:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 68394 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 68394@debbugs.gnu.org Cc: Tomas Volf <~@wolfsden.cz>, Lars-Dominik Braun , Marius Bakke , Munyoki Kilyungi , jgart X-Debbugs-Original-To: guix-patches@gnu.org X-Debbugs-Original-Xcc: Lars-Dominik Braun , Marius Bakke , Munyoki Kilyungi , jgart Received: via spool by submit@debbugs.gnu.org id=B.17050196335478 (code B ref -1); Fri, 12 Jan 2024 00:34:01 +0000 Received: (at submit) by debbugs.gnu.org; 12 Jan 2024 00:33:53 +0000 Received: from localhost ([127.0.0.1]:34362 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rO5Ue-0001QH-US for submit@debbugs.gnu.org; Thu, 11 Jan 2024 19:33:53 -0500 Received: from lists.gnu.org ([2001:470:142::17]:57612) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <~@wolfsden.cz>) id 1rO5Ub-0001Pz-82 for submit@debbugs.gnu.org; Thu, 11 Jan 2024 19:33:51 -0500 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 <~@wolfsden.cz>) id 1rO5UX-00005n-Ut for guix-patches@gnu.org; Thu, 11 Jan 2024 19:33:45 -0500 Received: from wolfsden.cz ([37.205.8.62]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <~@wolfsden.cz>) id 1rO5UV-0004XH-HE for guix-patches@gnu.org; Thu, 11 Jan 2024 19:33:45 -0500 Received: by wolfsden.cz (Postfix, from userid 104) id 61C6624EEE9; Fri, 12 Jan 2024 00:33:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1705019620; bh=DiwVstw38yyACwBMKivmYsVcdoQwkA1Je97ABAhB1+Q=; h=From:To:Cc:Subject:Date; b=goYG3JqZxgcyICad5Fgst8DTMkgC7Dj4Ve2hTy7/oK1CtH66BAOECA4GFXUB+0Uj2 8tKD2AMEQIRkFdNXnuuHTI9/4qLtBQHgzcKZh3/eo0jz0nd1ULOrBslVRSf3HPP3Zj /cSyrKBzZRsUpsPAZz4ECrzI23Or2XW1DVr0K9gyT8Aad5Png7Vx2zXidSPCxy0jnW JW3dS40FtwPFk0DX9J9eFp6HLIB9nw5PdLyCeFmdWyuoctl0BW2ZHpizw3xfUOMYF/ TXy7umiM6jw+Fd1qHktvMyG7qE1LcP4LqsFb6IiblwR/oy4wm5CTMqoU/tzNQTU0E6 Em/T+0sjEYnyJKt/VyVPdnlW9t9neBXs059Whzy593cWQmzIz8NOmWss0PNNIMFck7 atIAJFV666npXfwguvcNXrS3YZbFwZUzG+a8SnHXYD3GFPZHBK/B2Y2P+BaIcMemch 69eD+9jCC6yMM5plhcKMfaADqST7KePdlZ6XKPnklg8vSZmmlX1jb6KsrCEf2fxNmn VLFbtnuYokXZb5Enmwki5nf+m+J3x6jw9vvyKt1nFXKOB/C9cWZ8z6lckb93mwmLHN oKFO5QUwSgJnmSjqgo7MqiJ42UokCm+DGIYZvjrLe4gs1diVuDxn31QtFEkMafnwtH yqnavKt3Qfo8FcCiYKTFH7To= Received: from localhost (unknown [193.32.127.158]) by wolfsden.cz (Postfix) with ESMTPSA id AD397250E1A; Fri, 12 Jan 2024 00:33:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1705019619; bh=DiwVstw38yyACwBMKivmYsVcdoQwkA1Je97ABAhB1+Q=; h=From:To:Cc:Subject:Date; b=nJn5zCPBCdFLzAj618nGfy5OmLA6h9vgyminTfcyOhwEox7WJ3A9JKJQIUBWDLtYo cqXlF7PR4+2da2nQlH2kYyVnvjTJPtImOTvbv7bM8MraFSvs1xnp7tZsIo7QvVsL4K HAH2uzg3QoGrf8j2YL+b/l0ejJZNKsUsO01hpa4PhK11gcTV7RjjEQtdwkg7wIcm6p HwXJ3Tf2mrLthgNDq6h3S7L4TnLRPs6P7AWrxF546d0X2aBQV00fI43T8yW4E2HASB 142830EGyztTj5pkfWg7daudgNitBCLK2udJHvCXoADypkcS8j68Z+GgZlI1V3JJJg txVKrahE14ZE4+NjsdUTW07O7JTEIjzMLpbjjVqTXhW4RYaW4oNWhFiFGADu+sYehD EBM+fkv8nGxDIw0nG1ExszSaBJYHxmlJx7LVvBRyMkXpS4mpb0pUvPqA8s0t167Chx lXxbGFDDbYHbq+eTwEqv4N7L0nalZOgnMUkl+tVZochHN8Cut1bEOcDeo8heME8Tzs peU8WRosrpT8Vs6jZ033qAqln49Ye5G9zIEr1c0aGAukTWDh/avfgWU0qCxgzM+ZrR fBwUD0nKmyEgf7/PaG+ItfVtDpV1KS7jhMjJ+TxVI/vnmGb+41pe7PSQ4+pSiV/tF5 2lnJQtRkze9yCP2OZqGb097g= From: Tomas Volf <~@wolfsden.cz> Date: Fri, 12 Jan 2024 01:33:16 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Received-SPF: pass client-ip=37.205.8.62; envelope-from=~@wolfsden.cz; helo=wolfsden.cz 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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches While python build was reproducible on a single machine, once multiple file systems entered the picture, it was no longer true. My local builds on BTRFS differed from build on ext4 done in a virtual machine. The distutils library present in current python is sensitive to file system ordering. The solution is the same opensuse used, sorting the list of files. With this patch, build on my machine (BTRFS) and in a guix system vm (ext4) produce the same store item. More info: https://bugzilla.opensuse.org/show_bug.cgi?id=1049186 * gnu/packages/python.scm (python-3.10)[arguments]<#:phases>: Add 'patch-distutils phase. Change-Id: I0273dc0f8511a7acdcc2b462a26cc29a9756c801 --- gnu/packages/python.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) base-commit: 5c0f77f4241c9beac0c82deae946bfdc70b49ff0 diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 51d5f598d7..319a917b4b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -515,6 +515,19 @@ (define-public python-3.10 (substitute* "Makefile.pre.in" (("-j0") "-j1"))))) '()) + (add-after 'unpack 'patch-distutils + (lambda _ + ;; Ensure byte_compile produces the same output regardless + ;; filesystem ordering. For more information see: + ;; https://bugzilla.opensuse.org/show_bug.cgi?id=1049186 + (let* ((file "Lib/distutils/util.py") + (old-content (call-with-input-file file get-string-all))) + (substitute* file + (("^ for file in py_files:\n$") + " for file in sorted(py_files):\n")) + (if (string=? old-content + (call-with-input-file file get-string-all)) + (error "substitute did nothing, phase requires an update"))))) (add-after 'unpack 'remove-windows-binaries (lambda _ ;; Delete .exe from embedded .whl (zip) files