From patchwork Sun May 17 10:01:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 22118 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 6167827BBE3; Sun, 17 May 2020 11:02:08 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id DC4EC27BBE1 for ; Sun, 17 May 2020 11:02:07 +0100 (BST) Received: from localhost ([::1]:43088 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaG7T-000424-FS for patchwork@mira.cbaines.net; Sun, 17 May 2020 06:02:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39762) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaG7O-00041e-1t for guix-patches@gnu.org; Sun, 17 May 2020 06:02:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59005) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaG7N-0003Ny-Os for guix-patches@gnu.org; Sun, 17 May 2020 06:02:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jaG7N-0000L7-Na for guix-patches@gnu.org; Sun, 17 May 2020 06:02:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41350] [PATCH 0/3] Use native qemu to build vm-image. Resent-From: Jan Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 17 May 2020 10:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 41350 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41350@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.15897096791254 (code B ref -1); Sun, 17 May 2020 10:02:01 +0000 Received: (at submit) by debbugs.gnu.org; 17 May 2020 10:01:19 +0000 Received: from localhost ([127.0.0.1]:42318 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaG6g-0000KA-VB for submit@debbugs.gnu.org; Sun, 17 May 2020 06:01:19 -0400 Received: from lists.gnu.org ([209.51.188.17]:42068) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaG6g-0000K3-AY for submit@debbugs.gnu.org; Sun, 17 May 2020 06:01:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39672) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaG6g-0003xZ-20 for guix-patches@gnu.org; Sun, 17 May 2020 06:01:18 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:56738) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaG6f-0003K5-NW; Sun, 17 May 2020 06:01:17 -0400 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=59138 helo=dundal.peder.onsbrabantnet.nl) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jaG6a-0002Wj-6I; Sun, 17 May 2020 06:01:13 -0400 From: Jan Nieuwenhuizen Organization: AvatarAcademy.nl X-Url: http://AvatarAcademy.nl Date: Sun, 17 May 2020 12:01:10 +0200 Message-ID: <87mu66q3rt.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) 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" X-getmail-retrieved-from-mailbox: Patches Hi! Cross-building a vm-image used to be done using a cross-qemu, e.g, qemu-ARM. That does not work for the Hurd, as there is no qemu-HURD. This patch switches to cross building vm-images using a native qemu vm. If there a reason for using qemu-TARGET we may want to make this switch conditional for cross building to the Hurd? There is a tricky aspect to this: the "user-builder" includes all the cross-built packages for TARGET, but we need to hard the native qemu a native #+LOADER, loading native #+LINUX and #+INITRD. To accomplish this NATIVE/CROSS mixt, the builder is then run with a native guile, like so --8<---------------cut here---------------start------------->8--- (system* #+(file-append (default-guile) "/bin/guile") "--no-auto-compile" #$(preserve-target user-builder)) --8<---------------cut here---------------end--------------->8--- while the packages in USER-BUILDER will still be cross-built. However, because the builder has (with-extensions gcrypt-sqlite3&co (use-modules (gnu store database)) ...) this makes the native guile "see" the cross-built .GO files. That would "only" be a secondary problem except that loading (sqlite3) throws an exception when dynamic-loading the .SO fails. Seeing it like this I am not so sure anymore this is a bug, WDYT? ...so instead ...the problem is now avoided by removing the sqlite dependency when cross-building by not registering closures and postponing the loading of (gnu store database) and thus (sqlite3). I have reset wip-hurd-vm onto these changes, so you can also look there. Doing ./pre-inst-env guix system vm-image --target=i586-pc-gnu --no-grafts \ gnu/system/examples/bare-hurd.tmpl now produces a pretty nice hurd VM :-) Greetings, Janneke Jan (janneke) Nieuwenhuizen (3): utils: Move 'reset-timestamps' out of database. system: vm: Do not register-closures when cross-building. system: vm: Build vm-image using native qemu. gnu/bootloader/grub.scm | 4 +-- gnu/build/vm.scm | 3 ++- gnu/system/vm.scm | 54 ++++++++++++++++++++++++++--------------- guix/store/database.scm | 41 +++---------------------------- guix/utils.scm | 41 ++++++++++++++++++++++++++++--- 5 files changed, 79 insertions(+), 64 deletions(-)