all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Igor Goryachev via Guix-patches via <guix-patches@gnu.org>
To: 71527@debbugs.gnu.org
Cc: Igor Goryachev <igor@goryachev.org>
Subject: [bug#71527] [PATCH 01/20] gnu: rebar3: Make rebar3 escriptize reproducible.
Date: Thu, 13 Jun 2024 09:17:38 +0300	[thread overview]
Message-ID: <caf959b8e2f2f8a115095e72b59a38c15e8c94f1.1718205806.git.igor@goryachev.org> (raw)
In-Reply-To: <cover.1718205806.git.igor@goryachev.org>

* gnu/packages/erlang.scm (rebar3): Make rebar3 escriptize reproducible.

Change-Id: Id5897566f870afe62a97154becc752025a1b323e
---
 gnu/packages/erlang.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index c53cb72c2e..975e989055 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2022 jgart <jgart@dismail.de>
 ;;; Copyright © 2023 wrobell <wrobell@riseup.net>
 ;;; Copyright © 2023 Tim Johann <t1m@phrogstar.de>
+;;; Copyright © 2024 Igor Goryachev <igor@goryachev.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -638,6 +639,29 @@ (define-public rebar3
                     "eunit_formatters" "getopt" "hex_core" "erlware_commons"
                     "parse_trans" "relx" "ssl_verify_fun" "providers"))))
          (delete 'configure)
+         ;; By default rebar3 produces escripts with embedded ZIP archives
+         ;; with files with current timestamps which is not suitable for
+         ;; reproducible builds. We fix it by setting predefined timestamps.
+         (add-before 'build 'make-escriptize-reproducible
+           (lambda _
+             (let ((escriptize "src/rebar_prv_escriptize.erl"))
+               (substitute* escriptize
+                 (("\\[dir_entries\\(filename:dirname\\(Filename1\\)\\),")
+                  (string-append "FilePath = filename:join(Dir, Filename),"
+                                 "{ok, FileInfo0} = file:read_file_info(FilePath),"
+                                 "DateTime = {{1970, 1, 1}, {0, 0, 1}},"
+                                 "FileInfo = FileInfo0#file_info{mtime = DateTime},"
+                                 "[dir_entries(filename:dirname(Filename1)),")))
+               (substitute* escriptize
+                 (((string-append
+                    "\\{Filename1, file_contents\\(filename:join\\(Dir, "
+                    "Filename\\)\\)\\}\\]."))
+                  "{Filename1, file_contents(FilePath), FileInfo}]."))
+               (substitute* escriptize
+                 (((string-append "\\[\\{FName,FBin\\} \\|\\| \\{FName,FBin\\} <- "
+                                  "Files, FBin =/= <<>>\\]\\."))
+                  (string-append "[{FName,FBin,FInfo} || {FName,FBin,FInfo} <- "
+                                 "Files, FBin =/= <<>>]."))))))
          (replace 'build
            (lambda _
              (setenv "HOME" (getcwd))
-- 
2.45.1





  reply	other threads:[~2024-06-13  7:59 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-12 15:25 [bug#71527] [PATCH 00/20] Update erlang, elixir things, add xxkb Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` Igor Goryachev via Guix-patches via [this message]
2024-06-13  6:17 ` [bug#71527] [PATCH 02/20] gnu: erlang: Update to 26.2.5 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 03/20] gnu: erlang-certifi: Update to 2.13.0 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 04/20] gnu: erlang-covertool: Update to 2.0.6 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 05/20] gnu: erlang-cth-readable: Update to 1.6.0 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 06/20] gnu: erlang-edown: Update to 0.9.1 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 07/20] gnu: erlang-erlware-commons: Update to 1.7.0 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 08/20] gnu: erlang-getopt: Update to 1.0.3 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 09/20] gnu: erlang-hex-core: Update to 0.10.0 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 10/20] gnu: erlang-jsone: Update to 1.8.1 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 11/20] gnu: erlang-parse-trans: Update to 3.4.2 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 12/20] gnu: erlang-relx: Update to 4.9.0 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 13/20] gnu: erlang-ssl-verify-fun: Update to 1.1.7 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 14/20] gnu: rebar3: Update to 3.23.0 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 15/20] gnu: erlang-lfe: Update to 2.1.4 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 16/20] gnu: elixir: Update to 1.16.3 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 17/20] gnu: elixir-hex: Update to 2.1.1 Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 18/20] gnu: elixir: Add src output, metas correction, lint warnings fix Igor Goryachev via Guix-patches via
2024-06-20 12:29   ` Andrew Tropin via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 19/20] gnu: erlang: Add chunks compilation Igor Goryachev via Guix-patches via
2024-06-13  6:17 ` [bug#71527] [PATCH 20/20] gnu: Add xxkb Igor Goryachev via Guix-patches via
2024-06-20 12:37 ` [bug#71527] [PATCH 00/20] Update erlang, elixir things, add xxkb Andrew Tropin via Guix-patches via

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=caf959b8e2f2f8a115095e72b59a38c15e8c94f1.1718205806.git.igor@goryachev.org \
    --to=guix-patches@gnu.org \
    --cc=71527@debbugs.gnu.org \
    --cc=igor@goryachev.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.