From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-4.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 Received: by atuin.qyliss.net (Postfix, from userid 496) id A500E2CE99; Tue, 1 Feb 2022 17:55:26 +0000 (UTC) Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 418472CE14; Tue, 1 Feb 2022 17:55:12 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 496) id 91D7F2CDF0; Tue, 1 Feb 2022 17:55:09 +0000 (UTC) Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com [64.147.123.24]) by atuin.qyliss.net (Postfix) with ESMTPS id D339E2CDEE for ; Tue, 1 Feb 2022 17:55:05 +0000 (UTC) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id B113F3200AB0; Tue, 1 Feb 2022 12:55:02 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Tue, 01 Feb 2022 12:55:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alyssa.is; h=cc :cc:content-transfer-encoding:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:sender:subject:subject:to:to; s=fm2; bh=kFb0I4pMdEkqcF6hI8bTJF9xizTZRrRQY70jChUyW6A=; b=MZKFO 5ACo7Mma0MeqHDRyPxhKR+SQVrWd6quvQr0Qm8SbFOrB4ZBTCPe+t7Gi2YrsL8oV yoO7OBpTM9V5YZC0gioUIFwUDfEGIXhwr7cmrqv8X6N0dOnsDQTJ4aQzCEV8Z+Rz LArUFQCAF13LWAL8EAl8Bgyy9EV17C1xs7/B9h+Gu/2IsZlenqeU7D3wzSXcT3mh hyJEOYx54kTM6Kg78lvqx/Cjln8jjst5rMaMT5IC949nyJMEBOiB26uT4JOaiH+/ KWl1SNRVUCEU/YwRoKHkWPH6hHCxwtRXMIHI9wGLZh5DR0bUA5TWePLeQTznAS+Y flnxoyn34WOWk5nvg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :from:from:in-reply-to:message-id:mime-version:reply-to:sender :subject:subject:to:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=kFb0I4pMdEkqcF6hI8bTJF9xizTZR rRQY70jChUyW6A=; b=jZubRn6on5trJrszZ+Y1lAQsGcSm9x9XFjOx8D7c81sJP l9QpFLeavC1CsxPPglV4yJ7N484X0NsYKmPONTzlsedauTm4lCGM/7oC1LiHSDYq 5ZWgUdV1P2PYsidZXhKei0kaRdOqWxiSMM+PchpZZpH3BdivMLPuLDLiIPwd9uh4 PTbMwZjBQYFCKBiwUj481dD7+kR9JKFh0iqnHD+jFEtkjCthJ22j85SZiZZKegZE UqoJsTjIiiZLgLo4JrMOgoUKDR4l32oYHGx1b2GSirtSBHfW/w2KhBCogcDZnpJ4 LTDWWc3htEnE+j+FMto39KnmlolGJd+TEr6ABIxeg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddrgeefgddutdehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgggfestdekredtre dttdenucfhrhhomheptehlhihsshgrucftohhsshcuoehhihesrghlhihsshgrrdhisheq necuggftrfgrthhtvghrnhephedvfffghfetieejgfetfedtgffhvdehueehvdejudfgge fgleejgfelfeevgfefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghi lhhfrhhomhepqhihlhhishhssegvvhgvrdhqhihlihhsshdrnhgvth X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 1 Feb 2022 12:55:01 -0500 (EST) Received: by eve.qyliss.net (Postfix, from userid 1000) id 6920680D0; Tue, 1 Feb 2022 17:54:59 +0000 (UTC) From: Alyssa Ross To: devel@spectrum-os.org Subject: [PATCH] installer: operate on FAT image directly Date: Tue, 1 Feb 2022 17:51:39 +0000 Message-Id: <20220201175138.43759-1-hi@alyssa.is> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: DCOGEXINU6E3OIQFQ2CLRPIPZG2M6C5S X-Message-ID-Hash: DCOGEXINU6E3OIQFQ2CLRPIPZG2M6C5S X-MailFrom: qyliss@eve.qyliss.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Yureka X-Mailman-Version: 3.3.4 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --- It feels cleaner to me to operate directly on the FAT image, rather than constructing the directory on the build filesystem and then copying it into the FAT image at the end. But, I'm wondering if maybe there's a reason it's better to do it the other way that I've missed? installer/default.nix | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/installer/default.nix b/installer/default.nix index f7e84ac..0818091 100644 --- a/installer/default.nix +++ b/installer/default.nix @@ -24,6 +24,7 @@ let esp = runCommand "esp.img" { nativeBuildInputs = [ grub libfaketime dosfstools mtools ]; + grubTargetDir = "${grub}/lib/grub/${grub.grubTarget}"; # Definition copied from util/grub-install-common.c. # Last checked: GRUB 2.06 pkglib_DATA = [ @@ -31,23 +32,23 @@ let "parttool.lst" "video.lst" "crypto.lst" "terminal.lst" "modinfo.sh" ]; } '' - mkdir -p files/grub/${grub.grubTarget} - cp ${grubCfg} files/grub/grub.cfg - cp ${grub}/lib/grub/${grub.grubTarget}/*.mod files/grub/${grub.grubTarget} + truncate -s 15M $out + faketime "1970-01-01 00:00:00" mkfs.vfat -i 0x2178694e -n EFI $out + mmd -i $out ::/EFI ::/EFI/BOOT \ + ::/grub ::/grub/${grub.grubTarget} ::/grub/fonts + + mcopy -i $out ${grubCfg} ::/grub/grub.cfg + mcopy -i $out $grubTargetDir/*.mod ::/grub/${grub.grubTarget} for file in $pkglib_DATA; do - path="${grub}/lib/grub/${grub.grubTarget}/$file" - ! [ -e "$path" ] || cp "$path" files/grub/${grub.grubTarget} + path="$grubTargetDir/$file" + ! [ -e "$path" ] || mcopy -i $out "$path" ::/grub/${grub.grubTarget} done + mcopy -i $out ${grub}/share/grub/unicode.pf2 ::/grub/fonts - install -D ${grub}/share/grub/unicode.pf2 files/grub/fonts/unicode.pf2 grub-mkimage -o grubx64.efi -p "(hd0,gpt1)/grub" -O ${grub.grubTarget} part_gpt fat - install -D grubx64.efi files/EFI/BOOT/BOOTX64.EFI + mcopy -i $out grubx64.efi ::/EFI/BOOT/BOOTX64.EFI - img=$out - truncate -s 15M $img - faketime "1970-01-01 00:00:00" mkfs.vfat -i 0x2178694e -n EFI $img - (cd files; mcopy -psvm -i $img ./* ::) - fsck.vfat -vn $img + fsck.vfat -n $out ''; installer = runCommand "installer.img" { -- 2.33.0