unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Mathieu Othacehe <m.othacehe@gmail.com>
Cc: 29409@debbugs.gnu.org
Subject: [bug#29409] [PATCH] build: utils: Introduce dd.
Date: Mon, 04 Dec 2017 15:43:39 +0100	[thread overview]
Message-ID: <871skao8o4.fsf@gnu.org> (raw)
In-Reply-To: <87609m5zu5.fsf@gmail.com> (Mathieu Othacehe's message of "Mon, 04 Dec 2017 15:31:46 +0100")

Mathieu Othacehe <m.othacehe@gmail.com> skribis:

>> Granted, that’s a bit more verbose, but it’s also very lightweight
>> compared to using ‘dd’.
>
> Here's a new implementation, using your snippet. I tested it with
> "installed-extlinux-os", it seems ok.
>
> Mathieu
>
> From 742662ceec2a40d664520f01977ddc4cbe64d369 Mon Sep 17 00:00:00 2001
> From: Mathieu Othacehe <m.othacehe@gmail.com>
> Date: Fri, 1 Dec 2017 14:09:38 +0100
> Subject: [PATCH] bootloader: extlinux: Stop using dd binary.
>
> * gnu/bootloader/extlinux.scm (dd): Remove it,
> (install-extlinux): replace dd call by Guile I/O procedures.
> * gnu/system/vm.scm (qemu-image): Add (ice-9 binary-ports) to module-closure
> and used-modules list to provide "get-bytevector-n" and "put-bytevector".
> * guix/scripts/system.scm (bootloader-installer-derivation): Ditto.

Nice!

> +        (unless
> +            (and (zero? (system* extlinux "--install" install-dir))
> +                 (call-with-input-file (string-append syslinux-dir "/" #$mbr)
> +                   (lambda (input)
> +                     (let ((bv (get-bytevector-n input 440))
> +                           (output (open-file device "wb0")))
> +                       (put-bytevector output bv)
> +                       (close-port output)))))

I think you can use ‘call-with-output-file’ for DEVICE no?

> --- a/gnu/system/vm.scm
> +++ b/gnu/system/vm.scm
> @@ -274,11 +274,13 @@ the image."
>    (expression->derivation-in-linux-vm
>     name
>     (with-imported-modules (source-module-closure '((gnu build vm)
> -                                                   (guix build utils)))
> +                                                   (guix build utils)
> +                                                   (ice-9 binary-ports)))

No: this would import the host Guile’s (ice-9 binary-ports) module into
the guest, thereby making the result dependent on the Guile version
being used “outside”.

>       #~(begin
>           (use-modules (gnu build vm)
>                        (guix build utils)
> -                      (srfi srfi-26))
> +                      (srfi srfi-26)
> +                      (ice-9 binary-ports))

This yes.

>           (let ((inputs
>                  '#$(append (list qemu parted e2fsprogs dosfstools)
> diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
> index 91d151d..5116b82 100644
> --- a/guix/scripts/system.scm
> +++ b/guix/scripts/system.scm
> @@ -674,9 +674,11 @@ any, are available.  Raise an error if they're not."
>  and TARGET arguments."
>    (with-monad %store-monad
>      (gexp->file "bootloader-installer"
> -                (with-imported-modules '((guix build utils))
> +                (with-imported-modules '((guix build utils)
> +                                         (ice-9 binary-ports))

No.

>                    #~(begin
> -                      (use-modules (guix build utils))
> +                      (use-modules (guix build utils)
> +                                   (ice-9 binary-ports))

OK.

Could you send an updated patch?

Thanks!

Ludo’.

  reply	other threads:[~2017-12-04 14:44 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-23  9:45 [bug#29409] GuixSD ARM port Mathieu Othacehe
2017-11-23  9:49 ` [bug#29409] [PATCH] linux-libre: Adapt some arm options to match intel conf Mathieu Othacehe
2017-11-23 15:43   ` Ludovic Courtès
2017-11-23 19:09     ` bug#29409: " Mathieu Othacehe
2017-11-25  8:35   ` [bug#29409] " Danny Milosavljevic
2017-11-25 17:22     ` Mathieu Othacehe
2017-11-26  8:16       ` Danny Milosavljevic
2017-11-24 16:49 ` [bug#29409] [PATCH] vm: Use os-defined initrd intead of base-initrd Mathieu Othacehe
2017-11-24 21:36   ` Ludovic Courtès
2017-11-26 12:49     ` Mathieu Othacehe
2017-11-28  9:22 ` [bug#29409] [PATCH] gnu: dtc: Fix build on 32 bits platforms m.othacehe
2017-11-28  9:28 ` [bug#29409] [PATCH] gnu: grub: Disable tests on ARM platforms m.othacehe
2017-11-28 21:00   ` Leo Famulari
2017-11-29 14:03     ` Mathieu Othacehe
2017-11-29 14:20 ` [bug#29409] [PATCH] utils: Add target-arm? procedure m.othacehe
2017-11-29 14:20   ` [bug#29409] [PATCH] system: vm: Do not add EFI partition on ARM system m.othacehe
2017-12-01 20:14     ` Danny Milosavljevic
2017-12-02 12:46       ` Mathieu Othacehe
2017-12-08  9:24       ` Ludovic Courtès
2017-11-30 17:09   ` [bug#29409] [PATCH] utils: Add target-arm? procedure Ludovic Courtès
2017-12-01  9:21     ` Mathieu Othacehe
2017-11-29 17:34 ` [bug#29409] [PATCH] tests: install: Increase extlinux install partition size m.othacehe
2017-11-30 17:12   ` Ludovic Courtès
2017-12-01 13:02     ` Mathieu Othacehe
2017-12-01 14:57       ` Mathieu Othacehe
2017-12-01 16:07         ` Ludovic Courtès
2017-12-02 12:02           ` Mathieu Othacehe
2017-12-02 13:16             ` Mathieu Othacehe
2017-12-02 23:34             ` Ludovic Courtès
2017-12-03 19:31         ` Ludovic Courtès
2017-12-03 21:19           ` Mathieu Othacehe
2017-12-04  8:37             ` Ludovic Courtès
2017-12-04 14:29               ` Mathieu Othacehe
2017-12-04 14:30     ` Mathieu Othacehe
2017-11-30 10:47 ` [bug#29409] [PATCH] build: utils: Introduce dd m.othacehe
2017-12-01 12:47   ` Ludovic Courtès
2017-12-01 13:03     ` Mathieu Othacehe
2017-12-04 14:31     ` Mathieu Othacehe
2017-12-04 14:43       ` Ludovic Courtès [this message]
2017-12-04 15:53         ` Mathieu Othacehe
2017-12-04 17:17           ` Ludovic Courtès
2017-12-04 17:27             ` Mathieu Othacehe
2017-12-01 10:38 ` [bug#29409] [PATCH] utils: Add target-arm32? procedure m.othacehe
2017-12-01 10:38   ` [bug#29409] [PATCH] system: vm: Do not add EFI partition on ARM system m.othacehe
2017-12-01 11:01     ` Ludovic Courtès
2017-12-01 12:58       ` Mathieu Othacehe
2017-12-01 10:58   ` [bug#29409] [PATCH] utils: Add target-arm32? procedure Ludovic Courtès
2017-12-04 16:52 ` [bug#29409] [PATCH] build: vm: Use netdev qemu parameter m.othacehe
2017-12-04 18:19   ` Leo Famulari
2017-12-05  8:58     ` Mathieu Othacehe
2017-12-04 17:35 ` [bug#29409] [PATCH] build: vm: Use qemu drive device parameter m.othacehe
2017-12-08  9:38   ` Ludovic Courtès
2017-12-08 10:22     ` Mathieu Othacehe
2017-12-06 12:59 ` [bug#29409] [PATCH 0/4] ARM port m.othacehe
2017-12-06 12:59   ` [bug#29409] [PATCH 1/4] build: vm: Use netdev qemu parameter m.othacehe
2017-12-11 16:32     ` Ludovic Courtès
2017-12-11 17:36       ` Mathieu Othacehe
2017-12-12  9:00         ` Ludovic Courtès
2017-12-06 12:59   ` [bug#29409] [PATCH 2/4] build: vm: Use qemu drive device parameter m.othacehe
2017-12-11 16:33     ` Ludovic Courtès
2017-12-11 16:34     ` Ludovic Courtès
2017-12-06 12:59   ` [bug#29409] [PATCH 3/4] build: vm: Adapt qemu command to ARM m.othacehe
2017-12-11 16:38     ` Ludovic Courtès
2017-12-11 17:41       ` Mathieu Othacehe
2017-12-12  9:03         ` Ludovic Courtès
2017-12-06 12:59   ` [bug#29409] [PATCH 4/4] bootloader: Factorize write-file-on-device m.othacehe
2017-12-11 16:40     ` Ludovic Courtès
2017-12-11 17:41       ` Mathieu Othacehe
2017-12-07  8:52 ` [bug#29409] [PATCH] system: Add BeagleBone Black installer m.othacehe
2017-12-11 16:47   ` Ludovic Courtès
2017-12-11 17:32     ` ng0
2017-12-11 17:57     ` Mathieu Othacehe
2017-12-13 11:02 ` [bug#29409] [PATCH v2 1/4] vm: Adapt qemu command to ARM m.othacehe
2017-12-13 11:02   ` [bug#29409] [PATCH v2 2/4] bootloader: Factorize write-file-on-device m.othacehe
2017-12-15 10:34     ` Ludovic Courtès
2017-12-15 10:53       ` Mathieu Othacehe
2017-12-13 11:02   ` [bug#29409] [PATCH v2 3/4] scripts: system: Add --expression option m.othacehe
2017-12-15 10:39     ` Ludovic Courtès
2017-12-15 11:18       ` Mathieu Othacehe
2017-12-15 14:03         ` Ludovic Courtès
2017-12-15 15:38           ` Mathieu Othacehe
2017-12-13 11:02   ` [bug#29409] [PATCH v2 4/4] system: Add BeagleBone Black installer m.othacehe
2017-12-15 10:40     ` Ludovic Courtès
2017-12-15 10:33   ` [bug#29409] [PATCH v2 1/4] vm: Adapt qemu command to ARM Ludovic Courtès
2017-12-15 10:45     ` Mathieu Othacehe
2017-12-18 13:56 ` [bug#29409] [PATCH] system: examples: Add a template for BeagleBone Black m.othacehe
2017-12-18 14:22   ` Ludovic Courtès
2017-12-18 14:29     ` Mathieu Othacehe
2017-12-20 19:15 ` [bug#29409] Remove hugetlb control group on ARM32 Mathieu Othacehe
2017-12-21  1:16   ` Tobias Geerinckx-Rice
2017-12-21 10:07     ` Ludovic Courtès
2017-12-21  8:57   ` Danny Milosavljevic
2017-12-21 15:52     ` Ludovic Courtès
2017-12-22  7:54       ` Mathieu Othacehe
2017-12-22 10:50         ` Ludovic Courtès
2017-12-22 14:28           ` Mathieu Othacehe

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=871skao8o4.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=29409@debbugs.gnu.org \
    --cc=m.othacehe@gmail.com \
    /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).