From: "Ludovic Courtès" <ludo@gnu.org>
To: bug-grub@gnu.org
Cc: 35283@debbugs.gnu.org
Subject: bug#35283: [PATCH] grub-mkrescue: Allow users to specify a FAT serial number
Date: Sun, 21 Apr 2019 18:32:21 +0200 [thread overview]
Message-ID: <871s1v720a.fsf_-___3693.3582670585$1555864401$gmane$org@gnu.org> (raw)
In-Reply-To: <11201672983044432889@scdbackup.webframe.org> (Thomas Schmitt's message of "Fri, 19 Apr 2019 14:46:48 +0200")
[-- Attachment #1: Type: text/plain, Size: 694 bytes --]
Hello,
While investigating reproducible ISO images for Guix¹, I found that
‘grub-mkrescue’ would invoke ’mformat’ without the ‘-N’ option.
Consequently, ‘mformat’ would pick a random serial number, thereby
making the ‘efi.img’ build process non-deterministic.
I came up with the gross hack attached: the ‘grub-mkrescue’ caller can
set the ‘GRUB_FAT_SERIAL_NUMBER’ environment variable, which
‘grub-mkrescue’ translates into a ‘-N’ flag for ‘mformat’.
We could perhaps achieve the same result differently, for instance by
adding an option to ‘grub-mkrescue’.
WDYT?
Thanks,
Ludo’.
¹ https://issues.guix.info/issue/35283
[-- Attachment #2: the patch --]
[-- Type: text/x-patch, Size: 1262 bytes --]
Change 'grub-mkrescue' to honor the 'GRUB_FAT_SERIAL_NUMBER'
environment variable. That way, the caller can specify a fixed
serial number (instead of the randomly chosen one) to create EFI
images (the 'efi.img' file) that are reproducible bit-for-bit.
Patch by Ludovic Courtès <ludo@gnu.org>.
--- grub-2.02/util/grub-mkrescue.c 2019-04-20 19:15:26.180242812 +0200
+++ grub-2.02/util/grub-mkrescue.c 2019-04-20 21:56:34.672370849 +0200
@@ -788,8 +788,15 @@ main (int argc, char *argv[])
efiimgfat = grub_util_path_concat (2, iso9660_dir, "efi.img");
int rv;
- rv = grub_util_exec ((const char * []) { "mformat", "-C", "-f", "2880", "-L", "16", "-i",
- efiimgfat, "::", NULL });
+
+ const char *fat_serial_number = getenv ("GRUB_FAT_SERIAL_NUMBER");
+ const char *mformat_args[] =
+ { "mformat", "-C", "-f", "2880", "-L", "16",
+ fat_serial_number != NULL ? "-N" : "-C",
+ fat_serial_number != NULL ? fat_serial_number : "-C",
+ "-i", efiimgfat, "::", NULL };
+
+ rv = grub_util_exec (mformat_args);
if (rv != 0)
grub_util_error ("`%s` invocation failed\n", "mformat");
rv = grub_util_exec ((const char * []) { "mcopy", "-s", "-i", efiimgfat, efidir_efi, "::/", NULL });
next prev parent reply other threads:[~2019-04-21 16:33 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-06 0:02 bug#33639: ISO installer image is broken on i686 Ludovic Courtès
2018-12-06 7:19 ` Ludovic Courtès
2018-12-06 10:34 ` Ludovic Courtès
2018-12-06 14:08 ` Thomas Schmitt
2018-12-06 15:34 ` Ludovic Courtès
2018-12-06 16:59 ` Thomas Schmitt
2018-12-15 18:40 ` Thomas Schmitt
2018-12-15 19:24 ` Thomas Schmitt
2018-12-16 15:52 ` Ludovic Courtès
2018-12-16 16:52 ` Thomas Schmitt
2018-12-18 11:16 ` Ludovic Courtès
2018-12-18 21:45 ` Thomas Schmitt
2018-12-19 14:05 ` Ludovic Courtès
2018-12-19 14:51 ` Thomas Schmitt
2018-12-20 13:38 ` Thomas Schmitt
2018-12-21 20:44 ` Ludovic Courtès
2018-12-21 21:42 ` Thomas Schmitt
2019-04-07 20:18 ` pelzflorian (Florian Pelz)
2019-04-07 21:35 ` Thomas Schmitt
2019-04-08 8:50 ` Ludovic Courtès
2019-04-09 22:13 ` pelzflorian (Florian Pelz)
2019-04-10 11:17 ` Thomas Schmitt
2019-04-10 21:23 ` pelzflorian (Florian Pelz)
2019-04-12 21:26 ` Ludovic Courtès
2019-04-13 6:37 ` Thomas Schmitt
2019-04-13 13:46 ` pelzflorian (Florian Pelz)
2019-04-13 16:20 ` Thomas Schmitt
2019-04-14 21:43 ` Ludovic Courtès
2019-04-15 6:07 ` pelzflorian (Florian Pelz)
2019-04-15 8:16 ` Thomas Schmitt
2019-04-15 8:35 ` Thomas Schmitt
2019-04-19 11:40 ` bug#35283: ISO images are not reproducible Ludovic Courtès
2019-04-19 12:46 ` Thomas Schmitt
2019-04-20 22:57 ` Ludovic Courtès
2019-04-21 8:17 ` Thomas Schmitt
2019-04-21 16:42 ` Ludovic Courtès
2019-04-21 18:44 ` Thomas Schmitt
2019-04-20 23:03 ` bug#35283: [PATCH] mformat: initialize boot sector before writing it Ludovic Courtès
2019-04-21 16:32 ` Ludovic Courtès [this message]
2019-04-14 15:47 ` bug#33639: ISO installer image is broken on i686 Ludovic Courtès
2019-04-15 16:54 ` pelzflorian (Florian Pelz)
2019-04-15 17:55 ` Thomas Schmitt
2019-04-16 9:57 ` Gábor Boskovits
2019-04-16 21:01 ` Ludovic Courtès
2019-04-17 9:03 ` pelzflorian (Florian Pelz)
2018-12-06 16:28 ` Ludovic Courtès
2018-12-06 17:29 ` Thomas Schmitt
2018-12-07 22:51 ` Ludovic Courtès
2018-12-08 12:42 ` Thomas Schmitt
2018-12-06 9:35 ` swedebugia
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
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='871s1v720a.fsf_-___3693.3582670585$1555864401$gmane$org@gnu.org' \
--to=ludo@gnu.org \
--cc=35283@debbugs.gnu.org \
--cc=bug-grub@gnu.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 public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).