From patchwork Wed Apr 3 19:08:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 1845 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 0454F27BBE9; Wed, 3 Apr 2024 20:10:11 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable 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 B956D27BBE2 for ; Wed, 3 Apr 2024 20:10:07 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rs5zj-0007Q4-Jq; Wed, 03 Apr 2024 15:09:59 -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 1rs5zh-0007Pb-Me for guix-patches@gnu.org; Wed, 03 Apr 2024 15:09:58 -0400 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 1rs5zh-0006r9-EN for guix-patches@gnu.org; Wed, 03 Apr 2024 15:09:57 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rs5zl-0001mM-To for guix-patches@gnu.org; Wed, 03 Apr 2024 15:10:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#70169] [PATCH 0/7] Reproducible `make dist' tarball in defiance of Autotools and Gettext Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 03 Apr 2024 19:10:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 70169 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 70169@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.17121713416676 (code B ref -1); Wed, 03 Apr 2024 19:10:01 +0000 Received: (at submit) by debbugs.gnu.org; 3 Apr 2024 19:09:01 +0000 Received: from localhost ([127.0.0.1]:59645 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rs5ym-0001jY-QG for submit@debbugs.gnu.org; Wed, 03 Apr 2024 15:09:01 -0400 Received: from lists.gnu.org ([2001:470:142::17]:39818) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rs5yi-0001jG-Js for submit@debbugs.gnu.org; Wed, 03 Apr 2024 15:08:59 -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 1rs5yY-0006jB-B9 for guix-patches@gnu.org; Wed, 03 Apr 2024 15:08:46 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rs5yX-0006cP-QL; Wed, 03 Apr 2024 15:08:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=Ucp83uaQSzFaAZqJQ3LjYeSjl286TvXhc2qR4aJZNEQ=; b=hrZprcx8ojkiD7 in36bgrM8b82MDSNhk3jR9za5nKV76NhyQDPUbDE9f4VZFASZhSTwLGE/lNLcYe3iJUp0Bd05dPqS MpaBouz0YxSuj/F8J+aGGC8fNcjlrPP1n8D43+4K7RZG4jfHf7LJbEuyDZUecpPvgMn4/nDQhksR6 a6rG2c9Iyl0opcWFUP2I7iOZimQzC9V4XSR15Rlt3pPYjZMk6HZYj0lPd4ar4ZsVd/Dr4oGPvwm6t DOfU/skGmpyqM0RbsxDyGoP+opXmzJLhISpgMGiD5OqWDOYDgI0iu8CRV0Gb+EaBHJE4+Ayox9yUP nI/cqB2DCeN7v2E94YOA==; From: Janneke Nieuwenhuizen Date: Wed, 3 Apr 2024 21:08:40 +0200 Message-ID: X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 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 Hi, The recent XZ-utils debacle inspired me to resurrect and finish my patch set for creating a reproducible source tarball for Guix, i.e., finally have `make dist' be reproducible (when run from Git). I've been using a version of these patches in simpler projects for some years now and stole one from Timothy Samplet's Gash project. Autotools and Gettext still make it harder than necessary to do reproducible (responsible?) computing, which is especially sad given the fact that the Reproducible Builds project recently had their 10th birthday . Gettext tooling embeds timestamps found in the file-system, fails to respect SOURCE_DATE_EPOCH, and lacks options like `--pot-creation-date' so that we have to resort to SED to fixup. The caching of all sorts of information, in separate build stages, also doesn't help. To create a reproducible source tarball, having a reproducible build environment is a prerequitite, so this would have to be recorded too. Using this patch set, I created a tarball doing something like --8<---------------cut here---------------start------------->8--- guix pull --commit=1dbe492b993a7629df3b35146ce0272b52913776 guix shell bootstrap && ./configure --localstatedir=/var --sysconfdir=/etc && make dist guix hash guix-1.3.0.57425-80a228.tar.gz 0mk59ay5k2dxmjni9fx4i8qyfhvlgxbhqzsjpg2pbw381nskkxbj --8<---------------cut here---------------end--------------->8--- and I've uploaded it to https://lilypond.org/janneke/guix/guix-1.3.0.57425-80a228.tar.gz Who can reproduce it...and WDYT? (I've also pushed this patch set to `wip-tarball', as a slight difference may already produce another tarball). Greetings, Janneke Janneke Nieuwenhuizen (6): maint: Cater for running `make dist' from a worktree. maint: Use reproducible timestamps and name for tarball. maint: Help help2man generate reproducible man-pages. maint: Generate 'doc/version-LANG.texi' reproducibly. maint: Use reproducible Git timestamp for POT-Creation-Date. maint: Ensure generated file reproducibility for dist. Timothy Sample (1): maint: Generate 'doc/version.texi' reproducibly. Makefile.am | 18 ++++++++++++++--- doc/local.mk | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ po/doc/local.mk | 16 +++++++++++---- 3 files changed, 81 insertions(+), 7 deletions(-) base-commit: df64d48e6f9f648044aa5279c045b8d6f7bee604