From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 0/7] Add "guix system docker-image" command Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Feb 2018 10:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 30572@debbugs.gnu.org Cc: Chris Marusich X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.151929540925748 (code B ref -1); Thu, 22 Feb 2018 10:31:02 +0000 Received: (at submit) by debbugs.gnu.org; 22 Feb 2018 10:30:09 +0000 Received: from localhost ([127.0.0.1]:55294 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eoo8e-0006hE-MP for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:30:08 -0500 Received: from eggs.gnu.org ([208.118.235.92]:60976) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eoo8c-0006fS-2J for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:30:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eoo8V-0007kv-G7 for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:30:00 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:33084) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eoo8V-0007ki-C7 for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:29:59 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51938) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eoo8U-0008VD-2G for guix-patches@gnu.org; Thu, 22 Feb 2018 05:29:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eoo8Q-0007hA-St for guix-patches@gnu.org; Thu, 22 Feb 2018 05:29:58 -0500 Received: from mail-pg0-x229.google.com ([2607:f8b0:400e:c05::229]:46857) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eoo8Q-0007fu-M1 for guix-patches@gnu.org; Thu, 22 Feb 2018 05:29:54 -0500 Received: by mail-pg0-x229.google.com with SMTP id m1so1839481pgp.13 for ; Thu, 22 Feb 2018 02:29:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=sNjuUXPOBLxTKidL4LjYGpgHcm/gJvF3Tb6cMbGw7rw=; b=MMQWyHhSJTRvTeR/egvcliuKxQpd+oK8ip5q0w4Q5l61DNmY5i+3Lsr+Ao/CrsEkKG M7W4eXbl/SxcD+9537gdRnZ4AKEthuks+LZZJPrg0e2vteE67cNmN8H86Sxe2+brCsfZ FH5QVL3Vv0ifWDBj1KmcP7QHsqLAcKXwkaMl09SDvG6WkVd3gnoVkemGV6VwERRoNUlf peZoaUPQZFFGGk6mGZy559Xd/4kRNQ/p4iF9AUmtlLfEsoz99mgvw+iJa1hm0NPYGudB DeKgR7IlaMvrVDhMX3I0XDFReumn6nn3s9gGbW7wUTOxFDJ0bFO0Cl8YOLc99q9G4gIR yk8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=sNjuUXPOBLxTKidL4LjYGpgHcm/gJvF3Tb6cMbGw7rw=; b=GoRT3Hy30VbzeOMBXp3Xf8LBc7b+KTL0XX2/Q6y8ZN5ASbOnSqdHkuzcy/reB/eCYG bDnh0Mg6wDEAWra5tay8ojjm58DVkycmQ+8j1WX3SSz91ZurRRydUgy0dqswvGx4RqR+ 1Y5hQnyUhuu0UyeM7Z364VwEppMGHZUXTiV1YFluVTmwnhVS9TqGwhIiAXciqJ3cv1+U JCkdiqXpoooIoJTmXi5czeYsX8edpe8hKYm0IBdrwfl4hy9nIMFgC5I2huusmOXtmN8c hjeEwhlOSWkHpZZMiSf9K8Fe65hp5TUV0ICb4fcXALy0yY5fppClPX0l2798Wvcs29YT u5qA== X-Gm-Message-State: APf1xPDBi8n3D28mCl+79c4NGxe7rN7vMgL5gHoxWVyvzyN63/WKPYLR OuhnnT2+xw3MyPIgZ3wY7YJSyA== X-Google-Smtp-Source: AH8x226129IzhX79dE0kVfZr/qBoPZaTkAbrwnrN4HKHjBqa9k/uXN8KyqCeikcGo2lHnwhESgDM3A== X-Received: by 10.99.125.69 with SMTP id m5mr5196135pgn.77.1519295392877; Thu, 22 Feb 2018 02:29:52 -0800 (PST) Received: from garuda.local.net (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id f190sm48744302pfb.158.2018.02.22.02.29.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 02:29:51 -0800 (PST) From: Chris Marusich Date: Thu, 22 Feb 2018 11:29:33 +0100 Message-Id: <20180222102933.4978-1-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) Hi, This patch series adds a new command: "guix system docker-image". I have the following questions for reviewers: * In raw-initrd and base-initrd (gnu/system/linux-initrd.scm), why is %guile-static-stripped the right Guile to use by default? * Instead of passing a Guile package to raw-initrd and base-initrd, would it be better to use a parameter (e.g., %guile-for-initrd), like we do for %guile-for-build? * In system-docker-image (gnu/system/vm.scm), why is it necessary to define a custom (guix config) module? I copied some of the logic from docker-image (guix/scripts/pack.scm), and it works, but I do not understand this part. * Similarly, in gnu/system/vm.scm, why do we autoload libgcrypt? I do not understand why we cannot simply #:use-module (gnu packages gnupg) like we do with all the other modules here. * Similarly, in gnu/system/vm.scm, why do we use (ungexp-native json)? In the code, this is #+json and it occurs close to the comment "Guile-JSON is required by (guix docker)." * Similarly, in gnu/system/vm.scm, there is a vestigial comment which says "This variable is unused but allows us to add INPUTS-TO-COPY as inputs" - this comment actually occurs in multiple places, not just the code I've added. I think it refers to a variable that no longer exists, and I think that my variable to-register serves the intended purpose now, which is: add os-drv's inputs to the inputs of the gexp I'm building, so that they will be available on the build side. So I'm thinking maybe we should just change this comment to say something more like that. WDYT? I have verified that this change builds and its tests pass. I am using it to run my very own Docker image today. I hope you find it useful, too! Chris Marusich (7): tests: Add tests for "guix pack". vm: Allow control of deduplication in root-partition-initializer. system: Allow customization of the initrd's Guile. docker: Allow the use of a custom temporary directory. docker: Allow the addition of extra files into the image. system: Add "guix system docker-image" command. tests: Add tests for "guix system disk-image" et al. Makefile.am | 1 + doc/guix.texi | 74 ++++++++++++++++------ gnu/build/vm.scm | 12 ++-- gnu/system/examples/docker-image.tmpl | 47 ++++++++++++++ gnu/system/linux-initrd.scm | 31 ++++++--- gnu/system/vm.scm | 116 ++++++++++++++++++++++++++++++++++ guix/docker.scm | 29 +++++++-- guix/scripts/system.scm | 10 ++- tests/guix-pack.sh | 43 +++++++++++++ tests/guix-system.sh | 13 ++++ 10 files changed, 333 insertions(+), 43 deletions(-) create mode 100644 gnu/system/examples/docker-image.tmpl create mode 100644 tests/guix-pack.sh -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] tests: Add tests for "guix pack". Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Feb 2018 10:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 30572@debbugs.gnu.org Cc: Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151929578726312 (code B ref 30572); Thu, 22 Feb 2018 10:37:02 +0000 Received: (at 30572) by debbugs.gnu.org; 22 Feb 2018 10:36:27 +0000 Received: from localhost ([127.0.0.1]:55299 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEa-0006ps-GM for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:25 -0500 Received: from mail-pg0-f47.google.com ([74.125.83.47]:33982) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEY-0006pg-OA for 30572@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:15 -0500 Received: by mail-pg0-f47.google.com with SMTP id m19so1857112pgn.1 for <30572@debbugs.gnu.org>; Thu, 22 Feb 2018 02:36:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p8upY54nMu5q9S4d2wawpkH9TzrAaOR7g7dV5Ypqu1s=; b=PDJXcIrwB1B/Jx4mlWYD+K3ekZTzs4+5yT787HkbRZcWKlqeWoZ0bqq439SVP/3RIU xs4ui7cqEMQOrET5IgIU0kAwjJc/kZwDmwQ7hFolwuhRrtfaragknir54YtGN5bNukNY jX/HPWMtDoNApj+jWcLB3U8eNvSgzcjkRzt0CFb7q7rE+gXMCvK+rCd6kc19gGlUYGy7 955CK8fBR5sKWy0r2VVVuF6MlVnYJTbHXrVfvuT50ndEiS2Npp895Fsvp0JbIYDITQhi 07Z8J3BPI6Yjxhtc3g49Ndy28r+khA77iBvw6gLmLiakfxhWUsatgcU6eLcHxwgtrELZ YOOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=p8upY54nMu5q9S4d2wawpkH9TzrAaOR7g7dV5Ypqu1s=; b=kNunTvy2xcEE3FWHTHFHjMruMihx6K/TOEgILybGqTRuJxKhwlozAYUR41eTRzu4fk fH0ZQmQAPaFXY4y3WctogR2wzq3xMI7hJscX6SqEw5JquLESsHooSfuoTO/sEwJnZKu1 0JvIfNAEWvtYqtKcIh5z5iQ1J1pNJtNpgCS1PPZTQIk6pyk6eWJuf+lyy4TUmX9vEO3e LLU8zl+K+x9zdeu2qLtMrj3L52fPE0zpX2hPRfr3ZSHsSS7dWyaBajLlpM7mHTeHZarQ G9vj/lgqoM8ukcHG3aBw2Fw0HR9UpyH+apDUnl9YpFTEOepExHCPy5uKOWhZbE2Lap2a IFIA== X-Gm-Message-State: APf1xPBklnESAXwKgSLswGZqkjm+830JZaAWhE26NI5gqi6QG8k8bOvJ cOVkSSskqbwmqJ2EQQlV7vl/lw== X-Google-Smtp-Source: AH8x2274g8Qp9O02N9AI6zWU0QjP8zOXRU/OIHcvrUNECZrl7eELUr58SWYTjU9ZbE8gA+/ibpdV3g== X-Received: by 10.99.125.16 with SMTP id y16mr5225291pgc.3.1519295768442; Thu, 22 Feb 2018 02:36:08 -0800 (PST) Received: from garuda.local.net (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id n67sm7793838pfh.150.2018.02.22.02.36.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 02:36:07 -0800 (PST) From: Chris Marusich Date: Thu, 22 Feb 2018 11:35:22 +0100 Message-Id: <20180222103528.5108-1-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) * Makefile.am (SH_TESTS): Add guix-pack.sh. * tests/guix-pack.sh: New file. --- Makefile.am | 1 + tests/guix-pack.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 tests/guix-pack.sh diff --git a/Makefile.am b/Makefile.am index e2c940ca8..c4c37e327 100644 --- a/Makefile.am +++ b/Makefile.am @@ -372,6 +372,7 @@ SH_TESTS = \ tests/guix-download.sh \ tests/guix-gc.sh \ tests/guix-hash.sh \ + tests/guix-pack.sh \ tests/guix-package.sh \ tests/guix-package-net.sh \ tests/guix-system.sh \ diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh new file mode 100644 index 000000000..00c925666 --- /dev/null +++ b/tests/guix-pack.sh @@ -0,0 +1,43 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2018 Chris Marusich +# +# This file is part of GNU Guix. +# +# GNU Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# GNU Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Guix. If not, see . + +# +# Test the `guix pack' command-line utility. +# + +guix pack --version + +# Use --no-substitutes because we need to verify we can do this ourselves. +# Use --dry-run because it takes too long to actually build everything. +GUIX_BUILD_OPTIONS="--no-substitutes --dry-run" +export GUIX_BUILD_OPTIONS + +# Build a tarball. +guix pack coreutils + +# Build a tarball with a symlink. +guix pack -S /opt/gnu/bin=bin coreutils + +# Build a Docker image. +guix pack -f docker coreutils + +# Build a Docker image with a symlink. +guix pack -f docker -S /opt/gnu=/ coreutils + +# Build a tarball pack of cross-compiled software. +guix pack --target=arm-unknown-linux-gnueabihf coreutils -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 2/7] vm: Allow control of deduplication in root-partition-initializer. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Feb 2018 10:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 30572@debbugs.gnu.org Cc: Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151929578826326 (code B ref 30572); Thu, 22 Feb 2018 10:37:02 +0000 Received: (at 30572) by debbugs.gnu.org; 22 Feb 2018 10:36:28 +0000 Received: from localhost ([127.0.0.1]:55304 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEl-0006qL-H6 for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:27 -0500 Received: from mail-pl0-f66.google.com ([209.85.160.66]:41217) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEg-0006pu-J0 for 30572@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:22 -0500 Received: by mail-pl0-f66.google.com with SMTP id k8so2657786pli.8 for <30572@debbugs.gnu.org>; Thu, 22 Feb 2018 02:36:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=IzJtdH9BL8kNQDVXu60KkpRirSzTnbZeIpHaiHysCPE=; b=lAPsJEmboqCi/nJUdl9SrOlzszn27YNKAkWxozYGZOx+SY8TuAfQx4KZBX8yJ2Zu7Q azmfmgk254L9PUM2NTVQ2bvF2G6G4/ML2ngpoLPF1cMXNGv90gPHCZ7p36U37TsF12cV IP5XfBAiQxCx9rMbuHEdvGTAN3dIn9dnMwhXjpw2tVQcLzM9rMI0hQwOzd2P4Pltg883 MKz2JB0l//wWCx7NuKy7fH1hOV2f4Vt7/i6APnxW6xWgbDg4MiUm61+DK81jZ6bXpnTr NyGVtLrfcCJBwmskbyTPVJr2sGVXjlOBivTY9Dl3xGI9Xrvft3Bd/7qkpMbHemOiNGk6 IUmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=IzJtdH9BL8kNQDVXu60KkpRirSzTnbZeIpHaiHysCPE=; b=IkBvTFNZ9iFjmX8I68c01b/FWjvOrxlRdyUiOaMAx0iZQRnft+YAH29dHMFhacY8Rt dcROGyELry+T0dnOHZffRWFgYKLoBm8QB/GFL7ok3C7a3eRqIqpQhW1lgMYyZjClHgCB y8CHSnBM5fUw9rgNJkC6MPSDTo2m39HVe4BwVe1SE+1sN9Dp8DNxxgGYr8jyJ6ZwTMoX AOMLx8lD9ka3bi4P1NhWYRxjmkeC+ETp/5mQ9dYoxKGO8Raz3p9SdeOgCJe5IxMPmk4Q UoBe3ZAd+NG/lbWVN9FZvSbWEi0Ynn0yIZ188LRsHqdcaRyks55uqK+TSsgX1BvGXtp6 wq4w== X-Gm-Message-State: APf1xPB2R9HoLUJ6TMJBuXxnp65pt7YSeB8ZsjzJz4+1ka93P67vYKuw JZH8XyDNfsvc9UpArZzvSuGRbA== X-Google-Smtp-Source: AH8x224o3Y+EUGGUMVnuZyRg3bXCQ++PPqv7GDSuiJP0JIrTdGl0SB3YLkoYY6gxl6khmZtB1RkKbQ== X-Received: by 2002:a17:902:724b:: with SMTP id c11-v6mr6156974pll.352.1519295776379; Thu, 22 Feb 2018 02:36:16 -0800 (PST) Received: from garuda.local.net (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id n67sm7793838pfh.150.2018.02.22.02.36.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 02:36:15 -0800 (PST) From: Chris Marusich Date: Thu, 22 Feb 2018 11:35:23 +0100 Message-Id: <20180222103528.5108-2-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180222103528.5108-1-cmmarusich@gmail.com> References: <20180222103528.5108-1-cmmarusich@gmail.com> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) * gnu/build/vm.scm (root-partition-initializer): Add #:deduplicate? keyword argument. --- gnu/build/vm.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index fe003ea45..6196b56ca 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -318,11 +318,14 @@ it, run its initializer, and unmount it." (define* (root-partition-initializer #:key (closures '()) copy-closures? (register-closures? #t) - system-directory) + system-directory + (deduplicate? #t)) "Return a procedure to initialize a root partition. -If REGISTER-CLOSURES? is true, register all of CLOSURES is the partition's -store. If COPY-CLOSURES? is true, copy all of CLOSURES to the partition. +If REGISTER-CLOSURES? is true, register all of CLOSURES in the partition's +store. If DEDUPLICATE? is true, then also deduplicate files common to +CLOSURES and the rest of the store when registering the closures. If +COPY-CLOSURES? is true, copy all of CLOSURES to the partition. SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." (lambda (target) (define target-store @@ -347,7 +350,8 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." (display "registering closures...\n") (for-each (lambda (closure) (register-closure target - (string-append "/xchg/" closure))) + (string-append "/xchg/" closure) + #:deduplicate? deduplicate?)) closures) (unless copy-closures? (umount target-store))) -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 3/7] system: Allow customization of the initrd's Guile. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Feb 2018 10:37:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 30572@debbugs.gnu.org Cc: Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151929578826337 (code B ref 30572); Thu, 22 Feb 2018 10:37:03 +0000 Received: (at 30572) by debbugs.gnu.org; 22 Feb 2018 10:36:28 +0000 Received: from localhost ([127.0.0.1]:55307 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEl-0006qZ-SF for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:28 -0500 Received: from mail-pl0-f65.google.com ([209.85.160.65]:33610) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEi-0006pw-1h for 30572@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:24 -0500 Received: by mail-pl0-f65.google.com with SMTP id x18so2664403pln.0 for <30572@debbugs.gnu.org>; Thu, 22 Feb 2018 02:36:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=g/g2B8+zic7NUxy7eaN+9VDRWlx3SbUeRWHqb+LbKjI=; b=iTGyOzSKj8Z+frcGWbtO0bInAiKP/+cRQ7CI8pPR+Vsjh0bxxCKqUvSLreyrmp/ius iEq5GCUPY5xk+Xozlt7GCPJbwLyDTOVUei00bu3rpL50avctrOWol34eAlTZFsXKwyPS eeoOTAMH8SzQAoaM3gqJOBNSicNsMdDC85NvbBp2JRXJDlskZR7XZ2AT17U0A8MrumjX AOktBbFDSvyIbUitojsE0+00x9//9NGV9wxr50OxTZRbCl2JO62a/rfWJCLYgqiWlQZ8 OCpkRz6Vfd76ksHC3Fsp/aVfXUEDVkWf7waTLDPyp3h1ZWTu9TwjliUOGwcpGXSnuj9H suLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=g/g2B8+zic7NUxy7eaN+9VDRWlx3SbUeRWHqb+LbKjI=; b=lw6vwRq8u5j+tDBaoObwBCd7QTbeIJ6qLOTjsnYpjVon3Fr1uUBTs5dIpw6yKtE9gY EpVoVePyADeOk10f5whLNJHN5HGTMTGXoAagEaid1zQC4BBZj8UGTEoYViECLH8zDm0R qWn/O+90Z6jM0gP3pAQPC4Ukw5kX4S2bMo1Zr8lB3dvJUE0caMUOM7ySMjiuQhCGo/tW E3fm44F451GrmOsy4R8HM1FPd+IHr8yUROae0iBzOGDtLq1M+dRtnNS7qjhxYaVjVtlc 1/dpdmJyPtrAR2BVpkgQaAkbGSrzVDKp3d09ec7cHTXhtb9e0BibIeuSEcsOEiM/GbUf 699g== X-Gm-Message-State: APf1xPA6V4tGODfCJbuRfz52occ0ZdYF5JoEbr2bhd5zR58VI/uxC1RN my+O5yt06CT6Is8iJA17vD7rpQ== X-Google-Smtp-Source: AH8x225YCDRW84iArcsOpdjrEVqtCcCGkqCYUHrDxP13y63wdjnTlZFVIN/xggm+srH7HyLW7t8GCw== X-Received: by 2002:a17:902:6c4d:: with SMTP id h13-v6mr3015512pln.273.1519295777909; Thu, 22 Feb 2018 02:36:17 -0800 (PST) Received: from garuda.local.net (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id n67sm7793838pfh.150.2018.02.22.02.36.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 02:36:16 -0800 (PST) From: Chris Marusich Date: Thu, 22 Feb 2018 11:35:24 +0100 Message-Id: <20180222103528.5108-3-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180222103528.5108-1-cmmarusich@gmail.com> References: <20180222103528.5108-1-cmmarusich@gmail.com> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) * gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Add the #:guile keyword argument. * doc/guix.texi (Initial Ram Disk) : Update their documentation. --- doc/guix.texi | 40 +++++++++++++++++++++++----------------- gnu/system/linux-initrd.scm | 31 ++++++++++++++++++++++--------- 2 files changed, 45 insertions(+), 26 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7ed39ff13..5e8c27486 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -18849,33 +18849,39 @@ here is how to use it and customize it further. @cindex initrd @cindex initial RAM disk @deffn {Monadic Procedure} raw-initrd @var{file-systems} @ + [#:linux linux-libre] [#:linux-modules '()] [#:mapped-devices '()] @ - [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] -Return a monadic derivation that builds a raw initrd. @var{file-systems} is -a list of file systems to be mounted by the initrd, possibly in addition to -the root file system specified on the kernel command line via @code{--root}. -@var{linux-modules} is a list of kernel modules to be loaded at boot time. -@var{mapped-devices} is a list of device mappings to realize before -@var{file-systems} are mounted (@pxref{Mapped Devices}). -@var{helper-packages} is a list of packages to be copied in the initrd. It may -include @code{e2fsck/static} or other packages needed by the initrd to check -the root file system. + [#:helper-packages '()] [#:guile %guile-static-stripped] + [#:qemu-networking? #f] [#:volatile-root? #f] +Return a monadic derivation that builds a raw initrd, with kernel +modules taken from @var{linux}. @var{file-systems} is a list of file +systems to be mounted by the initrd, possibly in addition to the root +file system specified on the kernel command line via @code{--root}. +@var{linux-modules} is a list of kernel modules to be loaded at boot +time. @var{mapped-devices} is a list of device mappings to realize +before @var{file-systems} are mounted (@pxref{Mapped Devices}). +@var{helper-packages} is a list of packages to be copied in the +initrd. It may include @code{e2fsck/static} or other packages needed by +the initrd to check root partition. @var{guile} is the Guile to use in +the initrd. When @var{qemu-networking?} is true, set up networking with the standard QEMU -parameters. When @var{virtio?} is true, load additional modules so that the -initrd can be used as a QEMU guest with para-virtualized I/O drivers. +parameters. When @var{volatile-root?} is true, the root file system is writable but any changes to it are lost. @end deffn @deffn {Monadic Procedure} base-initrd @var{file-systems} @ - [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f]@ + [#:linux linux-libre] + [#:mapped-devices '()] [#:guile %guile-static-stripped] + [#:qemu-networking? #f] [#:volatile-root? #f]@ [#:virtio? #t] [#:extra-modules '()] -Return a monadic derivation that builds a generic initrd. @var{file-systems} is -a list of file systems to be mounted by the initrd like for @code{raw-initrd}. -@var{mapped-devices}, @var{qemu-networking?} and @var{volatile-root?} -also behaves as in @code{raw-initrd}. +Return a monadic derivation that builds a generic initrd, with kernel +modules taken from @var{linux}. @var{file-systems} is a list of file +systems to be mounted by the initrd like for @code{raw-initrd}. +@var{mapped-devices}, @var{guile}, @var{qemu-networking?} and +@var{volatile-root?} also behave as in @code{raw-initrd}. When @var{virtio?} is true, load additional modules so that the initrd can be used as a QEMU guest with para-virtualized I/O drivers. diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 330438bce..aa2f1ae29 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -154,17 +154,18 @@ MODULES and taken from LINUX." (linux-modules '()) (mapped-devices '()) (helper-packages '()) + (guile %guile-static-stripped) qemu-networking? volatile-root? (on-error 'debug)) - "Return a monadic derivation that builds a raw initrd, with kernel -modules taken from LINUX. FILE-SYSTEMS is a list of file-systems to be -mounted by the initrd, possibly in addition to the root file system specified -on the kernel command line via '--root'. LINUX-MODULES is a list of kernel -modules to be loaded at boot time. MAPPED-DEVICES is a list of device -mappings to realize before FILE-SYSTEMS are mounted. -HELPER-PACKAGES is a list of packages to be copied in the initrd. It may include -e2fsck/static or other packages needed by the initrd to check root partition. + "Return a monadic derivation that builds a raw initrd, with kernel modules +taken from LINUX. FILE-SYSTEMS is a list of file-systems to be mounted by the +initrd, possibly in addition to the root file system specified on the kernel +command line via '--root'. LINUX-MODULES is a list of kernel modules to be +loaded at boot time. MAPPED-DEVICES is a list of device mappings to realize +before FILE-SYSTEMS are mounted. HELPER-PACKAGES is a list of packages to be +copied in the initrd. It may include e2fsck/static or other packages needed by +the initrd to check root partition. GUILE is the Guile to use in the initrd. When QEMU-NETWORKING? is true, set up networking with the standard QEMU parameters. @@ -221,9 +222,15 @@ upon error." #:linux-modules '#$linux-modules #:linux-module-directory '#$kodir #:qemu-guest-networking? #$qemu-networking? +<<<<<<< HEAD #:volatile-root? '#$volatile-root? #:on-error '#$on-error))) #:name "raw-initrd")) +======= + #:volatile-root? '#$volatile-root?))) + #:name "raw-initrd" + #:guile guile)) +>>>>>>> system: Allow customization of the initrd's Guile. (define* (file-system-packages file-systems #:key (volatile-root? #f)) "Return the list of statically-linked, stripped packages to check @@ -246,6 +253,7 @@ FILE-SYSTEMS." #:key (linux linux-libre) (mapped-devices '()) + (guile %guile-static-stripped) qemu-networking? volatile-root? (virtio? #t) @@ -255,7 +263,8 @@ FILE-SYSTEMS." modules taken from LINUX. FILE-SYSTEMS is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via '--root'. MAPPED-DEVICES is a list of device -mappings to realize before FILE-SYSTEMS are mounted. +mappings to realize before FILE-SYSTEMS are mounted. GUILE is the Guile to +use in the initrd. QEMU-NETWORKING? and VOLATILE-ROOT? behaves as in raw-initrd. @@ -325,6 +334,10 @@ loaded at boot time in the order in which they appear." #:helper-packages helper-packages #:qemu-networking? qemu-networking? #:volatile-root? volatile-root? +<<<<<<< HEAD #:on-error on-error)) +======= + #:guile guile)) +>>>>>>> system: Allow customization of the initrd's Guile. ;;; linux-initrd.scm ends here -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 4/7] docker: Allow the use of a custom temporary directory. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Feb 2018 10:37:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 30572@debbugs.gnu.org Cc: Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151929579026357 (code B ref 30572); Thu, 22 Feb 2018 10:37:03 +0000 Received: (at 30572) by debbugs.gnu.org; 22 Feb 2018 10:36:30 +0000 Received: from localhost ([127.0.0.1]:55311 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEo-0006r2-Gz for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:30 -0500 Received: from mail-pl0-f53.google.com ([209.85.160.53]:33022) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEj-0006q0-LY for 30572@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:27 -0500 Received: by mail-pl0-f53.google.com with SMTP id x18so2664433pln.0 for <30572@debbugs.gnu.org>; Thu, 22 Feb 2018 02:36:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=df/BMSLZBn1Cyr+jwqa9PYjYhdaA5zObYEuAuLYl/rg=; b=rP2G+duoUKz2xu5tb6Auh0Gdrd3V0jl8pZT/CP43zmW9EeluOqe9KaI1ip5VnjkHNg TVXHPIgfmtNjsxPrTtQVGHAfOsN5gRSrHJQ7WLliTPkZgkwbW1uY1jf3tzMpfZLFSGiH xJt+XNWC2hROINd32CCE8oWTpmgIe0foBqs0XvCPBaujqFKyt5YbUZQQ4Otc8szhSz48 rOFvVcBMmAmmf2DOoH62BjKMSTqj/U9Y81G13DwZeaLFOcm40BYmWAkBYyFKhvYNc5gY yb0kCa11ZJ9rmqTyvZPCLbvFW4ZqsyfgHePwdmEMFGv7zeWfr9F7ToBwnH8/O6OweQr3 idoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=df/BMSLZBn1Cyr+jwqa9PYjYhdaA5zObYEuAuLYl/rg=; b=r5aZNhW8P4yT+mzkLBvNbxC1RmgKxrTkd2I42fNG1qENLVqjwIpZUy4/iCZOZgvMKz ja73uuc3R7IvC8IfQv8G9oJRlf9ZKVZf16+vJ3xkbH+H0UBJ/wDKHgG/RJJk4YjafjwF nyzLYBZAkf5Ax+OW/2in5HMqLdKJ0x+YeGEdHgkVCIG/GUMh0GtbnGhEjRRWjsT8//Ji br9WWhafWSJBuQS9Z9ztoVFnXH88HD1WI5N0uPfTowhL9rFcfH0X9zZVJ2KayrqykqVs RaZ7xPY+qke0fY+2Ymw8iSGOGZ7TsBCRQ0/KZYBXCtk6rw4nyAyHqhQLiA6vdEPTH0PC byaQ== X-Gm-Message-State: APf1xPCrgeE4LZ02CO9UkkWaUMu704AWxe0qkccTD4MgOesdmR5urt3U nMTS+HMwt3a6Pi+/8ANXCfD+Dg== X-Google-Smtp-Source: AH8x224vy3WsXJYVVq9Gqan2py2jvf2s/MfU8+4mrZD+fE/E+Til6mR/5o/j7yodo919cAEwJZonyw== X-Received: by 2002:a17:902:d83:: with SMTP id 3-v6mr6291363plv.47.1519295779558; Thu, 22 Feb 2018 02:36:19 -0800 (PST) Received: from garuda.local.net (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id n67sm7793838pfh.150.2018.02.22.02.36.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 02:36:18 -0800 (PST) From: Chris Marusich Date: Thu, 22 Feb 2018 11:35:25 +0100 Message-Id: <20180222103528.5108-4-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180222103528.5108-1-cmmarusich@gmail.com> References: <20180222103528.5108-1-cmmarusich@gmail.com> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) * guix/docker.scm: (build-docker-image): Add #:tmpdir keyword argument. --- guix/docker.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/guix/docker.scm b/guix/docker.scm index 060232148..693b4426f 100644 --- a/guix/docker.scm +++ b/guix/docker.scm @@ -106,7 +106,8 @@ return \"a\"." #:key closure compressor (symlinks '()) (system (utsname:machine (uname))) - (creation-time (current-time time-utc))) + (creation-time (current-time time-utc)) + (tmpdir "/tmp")) "Write to IMAGE a Docker image archive from the given store PATH. The image contains the closure of PATH, as specified in CLOSURE (a file produced by #:references-graphs). SYMLINKS must be a list of (SOURCE -> TARGET) tuples @@ -115,8 +116,13 @@ to PATH. SYSTEM is a GNU triplet (or prefix thereof) of the system the binaries at PATH are for; it is used to produce metadata in the image. Use COMPRESSOR, a command such as '(\"gzip\" \"-9n\"), to compress IMAGE. Use -CREATION-TIME, a SRFI-19 time-utc object, as the creation time in metadata." - (let ((directory "/tmp/docker-image") ;temporary working directory +CREATION-TIME, a SRFI-19 time-utc object, as the creation time in metadata. + +TMPDIR is the name of the temporary working directory to use. This can be +useful if you need to use a specific temporary directory, for example because +the default temporary directory lies on a file system with insufficient +space." + (let ((directory (string-append tmpdir "/docker-image")) ;temporary working directory (closure (canonicalize-path closure)) (id (docker-id path)) (time (date->string (time-utc->date creation-time) "~4")) -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 5/7] docker: Allow the addition of extra files into the image. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Feb 2018 10:37:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 30572@debbugs.gnu.org Cc: Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151929579126364 (code B ref 30572); Thu, 22 Feb 2018 10:37:03 +0000 Received: (at 30572) by debbugs.gnu.org; 22 Feb 2018 10:36:31 +0000 Received: from localhost ([127.0.0.1]:55313 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEo-0006r4-OL for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:30 -0500 Received: from mail-pf0-f178.google.com ([209.85.192.178]:33490) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEl-0006q2-Ex for 30572@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:27 -0500 Received: by mail-pf0-f178.google.com with SMTP id q13so1921998pff.0 for <30572@debbugs.gnu.org>; Thu, 22 Feb 2018 02:36:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+qcGuXEVOZc9zY5CNT5c9Y7nIUDKnZStUeb6P6zYSDc=; b=SZxmLl7dMu4nUHvkxVI85MJXzuB8KxhYpxEqHpQjk7mrgo48eRNNdqClSmXOo77Vn/ EkIgnmNoBn1xc3EfU4WUrRTNxWfzJWYt3HubwsAha7Bn7bqgddFx1rT2VUkMLR8XrqSo iGsywfflK9uM6EGD4GzP3wemfe2dTeYpa1vkMGMzVB41f6f9hm7EfxXdNTyvR6pOedkm Qe6ysOvVFvYDrQiiwapnjE1F1kurMxXtUYnXPPuLV+btdaQeQ5EcKcQqMI77ig5psFpQ c2IDXh79IaDXx6W4gvEKEv627B/Mx/w/mPzgkyC9rFRy8MNPdbiIdSIrwhc2QfhwGOf9 Jrkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+qcGuXEVOZc9zY5CNT5c9Y7nIUDKnZStUeb6P6zYSDc=; b=c5CGHSjOdQphijo6zBD+BnL9ws7m0l0/2jYvQcTGCcevhqym/vwjNDV32vherX1V3G MtSUxbayn4Wv4uI4hHDP5CAMcnD6jsMSvh/neCoCHHTHVc5YEWT1f8F9vRQt1T+HFpqB a2qjRjb5d5/HRMNr46uWxgRRTpF0zx6/aX8aKcgL4G/PGuDNt7B96QDdEgbB/yVGWVn0 AYgUQIy9RCZ79sI837KvOEls3KTKg1AL5G4dq4T2LXXU5zkw3EOPb7NrcuCQg3bTfs9e 8Ts3p9bkUHk4l8WINfsSTBkVZOA6Aw/50mGb1kmMxrzbhsbbtU8ueDx+b4vooptTRpHF FoCw== X-Gm-Message-State: APf1xPDfjGs7AyCVsza4zPao53PWzm5Sg/mrbhGsyV0S5PoslrTqa4Ob k0FaIZw7rzCw8TeEDKxBPrGuUw== X-Google-Smtp-Source: AH8x225Rw5TDW5IWfhnSh+dR6XEPOkEcKpjmn+Efrr63SgWtGRosktINuozWl3uMtikkQBLbMVj9mQ== X-Received: by 10.167.131.199 with SMTP id j7mr6338919pfn.99.1519295781187; Thu, 22 Feb 2018 02:36:21 -0800 (PST) Received: from garuda.local.net (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id n67sm7793838pfh.150.2018.02.22.02.36.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 02:36:19 -0800 (PST) From: Chris Marusich Date: Thu, 22 Feb 2018 11:35:26 +0100 Message-Id: <20180222103528.5108-5-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180222103528.5108-1-cmmarusich@gmail.com> References: <20180222103528.5108-1-cmmarusich@gmail.com> X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) * guix/docker.scm (build-docker-image): Add #:extra-items-dir keyword argument. --- guix/docker.scm | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/guix/docker.scm b/guix/docker.scm index 693b4426f..1b9b36a3b 100644 --- a/guix/docker.scm +++ b/guix/docker.scm @@ -107,7 +107,8 @@ return \"a\"." (symlinks '()) (system (utsname:machine (uname))) (creation-time (current-time time-utc)) - (tmpdir "/tmp")) + (tmpdir "/tmp") + extra-items-dir) "Write to IMAGE a Docker image archive from the given store PATH. The image contains the closure of PATH, as specified in CLOSURE (a file produced by #:references-graphs). SYMLINKS must be a list of (SOURCE -> TARGET) tuples @@ -121,7 +122,12 @@ CREATION-TIME, a SRFI-19 time-utc object, as the creation time in metadata. TMPDIR is the name of the temporary working directory to use. This can be useful if you need to use a specific temporary directory, for example because the default temporary directory lies on a file system with insufficient -space." +space. + +EXTRA-ITEMS-DIR is the name of a directory containing extra files to add to +the image; the entire directory tree rooted at EXTRA-ITEMS-DIR will be copied +into the root directory of the image, so a file EXTRA-ITEMS-DIR/foo will wind +up at /foo in the final Docker image." (let ((directory (string-append tmpdir "/docker-image")) ;temporary working directory (closure (canonicalize-path closure)) (id (docker-id path)) @@ -165,9 +171,14 @@ space." (append %tar-determinism-options items (map symlink-source symlinks)))) - (for-each delete-file-recursively - (map (compose topmost-component symlink-source) - symlinks))))) + (begin + (for-each delete-file-recursively + (map (compose topmost-component symlink-source) + symlinks)) + (zero? (apply system* "tar" "-C" extra-items-dir + "-rf" "layer.tar" + (append %tar-determinism-options + '(".")))))))) (with-output-to-file "config.json" (lambda () -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 6/7] system: Add "guix system docker-image" command. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Feb 2018 10:37:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 30572@debbugs.gnu.org Cc: Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151929579126373 (code B ref 30572); Thu, 22 Feb 2018 10:37:04 +0000 Received: (at 30572) by debbugs.gnu.org; 22 Feb 2018 10:36:31 +0000 Received: from localhost ([127.0.0.1]:55315 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEo-0006rB-Vb for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:31 -0500 Received: from mail-pf0-f176.google.com ([209.85.192.176]:33809) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEn-0006qA-3r for 30572@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:29 -0500 Received: by mail-pf0-f176.google.com with SMTP id k2so1922982pfi.1 for <30572@debbugs.gnu.org>; Thu, 22 Feb 2018 02:36:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=wzUZ5L3PQi9Prjo+5GD/1+x/Mw2abvJyPahaniNBZRU=; b=WMqZIM9cpEXcSwuAIlprdtLflMV2ZfsxyH3lmj7em1AsZcu9LSKJZ4HLwzU0TGmzWe yxour/r0AlffVUeALvyhKigZ6bXJ09VwKMJeZSFdJbeKLIsP/Jl+k1kSMe2sXtLTdpnK D6SPj9CcdJ3Tv9TuBXbpA8shI5/Y4nNV89r3hYV0ULcyM+FYgKZ/SG2zekxVMCW6aMIG y7duVsv5Lr+jeo8+pJxiNEylIvazRyUSNfMEhvGokA40QyHBxHxyKwOErlsZDRYhoXIf lwCyMD4+R3D9JANKMOhzof9o8CnghY19qVJ+Hdk3kZ8nikK05iTFfoCW7EkPTWmZyXDP xzsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=wzUZ5L3PQi9Prjo+5GD/1+x/Mw2abvJyPahaniNBZRU=; b=OGGxJZIBN/fJJ41PThYWAXRwduPpnJzc94XjylX/2SO1DP2UQceBO5axAlmf1qt6Y0 omyPU/ZCREGwlPvGjGwWyxvYs7VekfnyhDSIKQ25an/7UwduEvBX09H1dqqCjjl5e0Bp dwlDrJ4rEICp3AdeDq5Ct1rlL0GxGgA/RBCfYyCMbBc6PhVgKJVk0wma3AfHQ4MZuqHq 2Wc2in+E5d4Vi8scaX4yNw9L+ERqt5I7EeTnkPcEO0jsThhQIQznK5fkrZ1QLD7OHcKR 3GSY2QViUlK6SprkRaWrAIOYuBa3yaZGbBbgkVGuUrO4bzawpccuD76BLVstJiFUlYpp lKxg== X-Gm-Message-State: APf1xPAV18Ih8XHc9q69yy8LS31dmRtaP/jAgx4fXmTk7td4A9cwVn+6 0Nng+63r8qShd6czJDriVAIupw== X-Google-Smtp-Source: AH8x227XC6o2pyZn+ZZYTQyqfWw2GHGZ4e7jx9QcoTmLcmjOECh5BxAbQ8X5Yaf9oH4vhL0NtR1oTg== X-Received: by 10.98.93.193 with SMTP id n62mr6463378pfj.83.1519295782812; Thu, 22 Feb 2018 02:36:22 -0800 (PST) Received: from garuda.local.net (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id n67sm7793838pfh.150.2018.02.22.02.36.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 02:36:21 -0800 (PST) From: Chris Marusich Date: Thu, 22 Feb 2018 11:35:27 +0100 Message-Id: <20180222103528.5108-6-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180222103528.5108-1-cmmarusich@gmail.com> References: <20180222103528.5108-1-cmmarusich@gmail.com> X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) * gnu/system/vm.scm (system-docker-image): New procedure. * guix/scripts/system.scm (system-derivation-for-action): Add a case for docker-image, and in that case, call system-docker-image. (show-help): Document docker-image. (guix-system): Parse arguments for docker-image. * doc/guix.texi (Invoking guix system): Document "guix system docker-image". * gnu/system/examples/docker-image.tmpl: New file. --- doc/guix.texi | 34 ++++++++-- gnu/system/examples/docker-image.tmpl | 47 ++++++++++++++ gnu/system/vm.scm | 116 ++++++++++++++++++++++++++++++++++ guix/scripts/system.scm | 10 ++- 4 files changed, 200 insertions(+), 7 deletions(-) create mode 100644 gnu/system/examples/docker-image.tmpl diff --git a/doc/guix.texi b/doc/guix.texi index 5e8c27486..ea39642c9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -19282,10 +19282,14 @@ size of the image. @item vm-image @itemx disk-image -Return a virtual machine or disk image of the operating system declared -in @var{file} that stands alone. By default, @command{guix system} -estimates the size of the image needed to store the system, but you can -use the @option{--image-size} option to specify a value. +@itemx docker-image +Return a virtual machine, disk image, or Docker image of the operating +system declared in @var{file} that stands alone. By default, +@command{guix system} estimates the size of the image needed to store +the system, but you can use the @option{--image-size} option to specify +a value. Docker images are built to contain exactly what they need, so +the @option{--image-size} option is ignored in the case of +@code{docker-image}. You can specify the root file system type by using the @option{--file-system-type} option. It defaults to @code{ext4}. @@ -19303,6 +19307,28 @@ using the following command: # dd if=$(guix system disk-image my-os.scm) of=/dev/sdc @end example +When using @code{docker-image}, a Docker image is produced. Guix builds +the image from scratch, not from a pre-existing Docker base image. As a +result, it contains @emph{exactly} what you define in the operating +system configuration file. You can then load the image and launch a +Docker container using commands like the following: + +@example +image_id="$(docker load < guixsd-docker-image.tar.gz)" +docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\ + --entrypoint /var/guix/profiles/system/profile/bin/guile \\ + $image_id /var/guix/profiles/system/boot +@end example + +This command starts a new Docker container from the specified image. It +will boot the GuixSD system in the usual manner, which means it will +start any services you have defined in the operating system +configuration. Depending on what you run in the Docker container, it +may be necessary to give the container additional permissions. For +example, if you intend to build software using Guix inside of the Docker +container, you may need to pass the @option{--privileged} option to +@code{docker-run}. + @item container Return a script to run the operating system declared in @var{file} within a container. Containers are a set of lightweight isolation diff --git a/gnu/system/examples/docker-image.tmpl b/gnu/system/examples/docker-image.tmpl new file mode 100644 index 000000000..d73187398 --- /dev/null +++ b/gnu/system/examples/docker-image.tmpl @@ -0,0 +1,47 @@ +;; This is an operating system configuration template for a "Docker image" +;; setup, so it has barely any services at all. + +(use-modules (gnu)) + +(operating-system + (host-name "komputilo") + (timezone "Europe/Berlin") + (locale "en_US.utf8") + + ;; This is where user accounts are specified. The "root" account is + ;; implicit, and is initially created with the empty password. + (users (cons (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + (supplementary-groups '("wheel" + "audio" "video")) + (home-directory "/home/alice")) + %base-user-accounts)) + + ;; Globally-installed packages. + (packages %base-packages) + + ;; Because the system will run in a Docker container, we may omit many + ;; things that would normally be required in an operating system + ;; configuration file. These things include: + ;; + ;; * bootloader + ;; * file-systems + ;; * services such as mingetty, udevd, slim, networking, dhcp + ;; + ;; Either these things are simply not required, or Docker provides + ;; similar services for us. + + ;; This will be ignored. + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (target "does-not-matter"))) + ;; This will be ignored, too. + (file-systems (list (file-system + (device "does-not-matter") + (mount-point "/") + (type "does-not-matter")))) + + ;; Guix is all you need! + (services (list (guix-service)))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 345cecedd..08f33b462 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -22,6 +22,7 @@ (define-module (gnu system vm) #:use-module (guix config) + #:use-module (guix docker) #:use-module (guix store) #:use-module (guix gexp) #:use-module (guix derivations) @@ -29,14 +30,18 @@ #:use-module (guix monads) #:use-module (guix records) #:use-module (guix modules) + #:use-module (guix scripts pack) #:use-module (guix utils) #:use-module ((gnu build vm) #:select (qemu-command)) #:use-module (gnu packages base) + #:use-module (gnu packages bootloaders) #:use-module (gnu packages cdrom) + #:use-module (gnu packages compression) #:use-module (gnu packages guile) + #:autoload (gnu packages gnupg) (libgcrypt) #:use-module (gnu packages gawk) #:use-module (gnu packages bash) #:use-module (gnu packages less) @@ -73,6 +78,7 @@ system-qemu-image/shared-store system-qemu-image/shared-store-script system-disk-image + system-docker-image virtual-machine virtual-machine?)) @@ -366,6 +372,116 @@ the image." #:disk-image-format disk-image-format #:references-graphs inputs)) +(define* (system-docker-image os + #:key + (name "guixsd-docker-image") + register-closures?) + "Build a docker image. OS is the desired . NAME is the +base name to use for the output file. When REGISTER-CLOSURES? is not #f, +register the closure of OS with Guix in the resulting Docker image. This only +makes sense when you want to build a GuixSD Docker image that has Guix +installed inside of it. If you don't need Guix (e.g., your GuixSD Docker +image just contains a web server that is started by Shepherd), then you should +set REGISTER-CLOSURES? to #f." + (define not-config? + (match-lambda + (('guix 'config) #f) + (('guix rest ...) #t) + (('gnu rest ...) #t) + (rest #f))) + + (define config + ;; (guix config) module for consumption by (guix gcrypt). + (scheme-file "gcrypt-config.scm" + #~(begin + (define-module (guix config) + #:export (%libgcrypt)) + + ;; XXX: Work around . + (eval-when (expand load eval) + (define %libgcrypt + #+(file-append libgcrypt "/lib/libgcrypt")))))) + + (define json + ;; Pick the guile-json package that corresponds to the Guile used to build + ;; derivations. + (if (string-prefix? "2.0" (package-version (default-guile))) + guile2.0-json + guile-json)) + + (mlet %store-monad ((os-drv (operating-system-derivation os #:container? #t)) + (name -> (string-append name ".tar.gz")) + (system-graph-name -> "system") + ;; Use a Guile that supports dlopen because it needs to + ;; dlopen libgcrypt in the initrd. See: + ;; https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00233.html + (initrd (base-initrd %linux-vm-file-systems + #:virtio? #t + #:guile guile-2.2))) + (define build + (with-imported-modules `(,@(source-module-closure '((guix docker) + (gnu build vm) + (guix build utils) + (guix build syscalls)) + #:select? not-config?) + ((guix config) => ,config)) + #~(begin + ;; Guile-JSON is required by (guix docker). + (add-to-load-path + (string-append #+json "/share/guile/site/" + (effective-version))) + (use-modules (gnu build vm) + (guix build utils) + (guix build syscalls) + (srfi srfi-26) + (ice-9 match) + (guix docker) + (srfi srfi-19)) + + (let* ((inputs + '#$(append (list tree parted e2fsprogs dosfstools tar) + (map canonical-package + (list sed grep coreutils findutils gawk)) + (if register-closures? (list guix) '()))) + + ;; This variable is unused but allows us to add INPUTS-TO-COPY + ;; as inputs. + (to-register '#$os-drv) + (initialize (root-partition-initializer + #:closures '(#$system-graph-name) + #:register-closures? #$register-closures? + #:system-directory #$os-drv + ;; De-duplication would fail due to + ;; cross-device link errors, so don't do it. + #:deduplicate? #f)) + (root "/tmp/root")) + + (set-path-environment-variable "PATH" '("bin" "sbin") inputs) + (mkdir-p root) + (initialize root) + ;; Use a temporary directory inside xchg to avoid hitting space + ;; limitations in the initrd's root file system. + (let ((tmpdir "/xchg/tmp")) + (mkdir tmpdir) + (build-docker-image + (string-append "/xchg/" #$name) ;; The output file. + #$os-drv + #:closure (string-append "/xchg/" #$system-graph-name) + #:compressor '(#+(file-append gzip "/bin/gzip") "-9n") + #:creation-time (make-time time-utc 0 1) + #:tmpdir tmpdir + #:extra-items-dir root) + (delete-file-recursively tmpdir)))))) + (expression->derivation-in-linux-vm + name + build + #:initrd initrd + #:make-disk-image? #f + #:single-file-output? #t + #:references-graphs `((,system-graph-name ,os-drv)) + ;; Our larger initrd requires more memory. + #:memory-size 512))) + ;;; ;;; VM and disk images. diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 999ffb010..20919d1b1 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -670,7 +670,9 @@ procedure of its type." ("iso9660" "image.iso") (_ "disk-image")) #:disk-image-size image-size - #:file-system-type file-system-type)))) + #:file-system-type file-system-type)) + ((docker-image) + (system-docker-image os #:register-closures? #t)))) (define (maybe-suggest-running-guix-pull) "Suggest running 'guix pull' if this has never been done before." @@ -867,6 +869,8 @@ Some ACTIONS support additional ARGS.\n")) vm-image build a freestanding virtual machine image\n")) (display (G_ "\ disk-image build a disk image, suitable for a USB stick\n")) + (display (G_ "\ + docker-image build a Docker image\n")) (display (G_ "\ init initialize a root file system to run GNU\n")) (display (G_ "\ @@ -1098,7 +1102,7 @@ argument list and OPTS is the option alist." (case action ((build container vm vm-image disk-image reconfigure init extension-graph shepherd-graph list-generations roll-back - switch-generation search) + switch-generation search docker-image) (alist-cons 'action action result)) (else (leave (G_ "~a: unknown action~%") action)))))) @@ -1127,7 +1131,7 @@ argument list and OPTS is the option alist." (exit 1)) (case action - ((build container vm vm-image disk-image reconfigure) + ((build container vm vm-image disk-image docker-image reconfigure) (unless (or (= count 1) (and expr (= count 0))) (fail))) -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 7/7] tests: Add tests for "guix system disk-image" et al. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Feb 2018 10:37:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 30572@debbugs.gnu.org Cc: Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151929579626386 (code B ref 30572); Thu, 22 Feb 2018 10:37:04 +0000 Received: (at 30572) by debbugs.gnu.org; 22 Feb 2018 10:36:36 +0000 Received: from localhost ([127.0.0.1]:55317 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEu-0006rV-If for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:36 -0500 Received: from mail-pg0-f48.google.com ([74.125.83.48]:43014) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eooEo-0006qH-0l for 30572@debbugs.gnu.org; Thu, 22 Feb 2018 05:36:30 -0500 Received: by mail-pg0-f48.google.com with SMTP id f6so1845678pgs.10 for <30572@debbugs.gnu.org>; Thu, 22 Feb 2018 02:36:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=zOPmL+VA805n9hmsVIDa7/RNmZyIc9OqHeUFkirqj3c=; b=lZSNvPIsY6UvZmI9WA4UNMl5BBmeFwMjaVfMOyah2JwVj15zRK79FGdDhwPXAnFB5/ 9Bxr5ykzX7R/Qx70p+3OYNc+bcdE8yEIGMC7LIZDymC/ICDciAr104OgzMpFHbmbKPM6 sTBtn5772z7m9BDWpYuQ28sctPgUhFRJ1WKNLtrzLkBS3t99Y7fbMpFzm1CclETyH+3+ +sEDf0jw+vrJI0dtkFz7DBSHfBDD89a7WD85SgbmW2t2/Cmv8WMMrj53c7I2CSSEPgy3 aigFMGwR0L7wMozOtLAx2zuFrAdZBEPldLqP/yRfmOs7p3bcW3XZSSneVX/AAvwj9h6N 4Bhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=zOPmL+VA805n9hmsVIDa7/RNmZyIc9OqHeUFkirqj3c=; b=YLPwWmyHimAFVSaXu/owKE5m7C6UZmwM29aEPnZtnXDFDoMcwZaw57sAZ5tRavL3GT bLO6T5LlnJwoQmd/D0Uc+uqUMwiwO7sOUQdbt5FY5nB8V021OT0Jc+M1H0Wa3IHSuxFE in/bkKuhRS6sTYyVOQbP7P/wAYQGzJqzpIlrv0LiKMetmY9Tjp+4OzVIPBsi0hZ4XAF6 y3RA/hssAMoqvAlWh7XJjpn3mJZwnWxWhCFgzlIrN0WhTp/XDRCFz0lTJDtBIWsAj9ds ifkgdn56OfUwCdvYL/W/t60jUotLxDg4peZikaLgAEIU0uFapjNRH4sLcuFHT7gonmE8 V/OA== X-Gm-Message-State: APf1xPD4mIbuRUr8yEwlamN8ZP8DsqbxBFNV5mlvRhgT0qhjD2Qmd7+E dOnjTscLHySw9SJePNLyFiNZRQ== X-Google-Smtp-Source: AH8x224ScCorCokXUIKtDfvBNrjazgzEufeMo8l/ZFl6LxRAU8ml2cDNRqdr/saQK+92OopTqJ4KEQ== X-Received: by 10.98.8.92 with SMTP id c89mr5260728pfd.154.1519295784071; Thu, 22 Feb 2018 02:36:24 -0800 (PST) Received: from garuda.local.net (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id n67sm7793838pfh.150.2018.02.22.02.36.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 02:36:23 -0800 (PST) From: Chris Marusich Date: Thu, 22 Feb 2018 11:35:28 +0100 Message-Id: <20180222103528.5108-7-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180222103528.5108-1-cmmarusich@gmail.com> References: <20180222103528.5108-1-cmmarusich@gmail.com> X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) * tests/guix-system.sh: Add test cases that exercise (1) all of the example files in gnu/system/examples, and (2) all of the "image" creation commands: vm, vm-image, disk-image, and docker-image. --- tests/guix-system.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/guix-system.sh b/tests/guix-system.sh index ed8563c8a..13907934f 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -267,3 +267,16 @@ guix system build "$tmpdir/config.scm" -n # Searching. guix system search tor | grep "^name: tor" guix system search anonym network | grep "^name: tor" + +# Verify the example files. +for example in gnu/system/examples/*; do + guix system -d disk-image -d $example +done + +# Verify the disk image types. +guix system -d vm gnu/system/examples/vm-image.tmpl +guix system -d vm-image gnu/system/examples/vm-image.tmpl +# This invocation was taken care of in the loop above: +# guix system -d disk-image gnu/system/examples/bare-bones.tmpl +guix system -d disk-image --file-system-type=iso9660 gnu/system/examples/bare-bones.tmpl +guix system -d docker-image gnu/system/examples/docker-image.tmpl -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 3/7] system: Allow customization of the initrd's Guile. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Feb 2018 12:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151930144710287 (code B ref 30572); Thu, 22 Feb 2018 12:11:01 +0000 Received: (at 30572) by debbugs.gnu.org; 22 Feb 2018 12:10:47 +0000 Received: from localhost ([127.0.0.1]:55376 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eopi3-0002fr-4e for submit@debbugs.gnu.org; Thu, 22 Feb 2018 07:10:47 -0500 Received: from mail-it0-f51.google.com ([209.85.214.51]:53547) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eopi1-0002fe-P1 for 30572@debbugs.gnu.org; Thu, 22 Feb 2018 07:10:46 -0500 Received: by mail-it0-f51.google.com with SMTP id w63so5987317ita.3 for <30572@debbugs.gnu.org>; Thu, 22 Feb 2018 04:10:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:references:date:in-reply-to:message-id:user-agent :mime-version; bh=s079TLX7hXvqPfgpunHgvdd5NTPYZQIvr7NLLLfLB6k=; b=FJCMWWtc5Jqpws9PdhrS+OcaauAvhxMPVIfLmCr5JzLQRIilADBk8KWuAhBJgglgOT Vz6bYE2dih7dA4Z/KWtbm6ie4g7xLW3k/7euG35vYOZvfbMATykWWYYFRLHJg1KmXxUc abqAtFZdrCowErc141qD8dbi5I8F0omMj8lMbIzOXAaf/J3kFHv94ow7sIuicKjMECQ1 kgiJdRmM5vfEE0yDHgBnoidfJ1Si+8xOEeN2ChtJwAwSx1pOtMKlOrhH/U1oBLFjAybX CAE17MvjxC51aTmmazEwd7aOFF6q65Gu0LjyrszmN1QAvZ9uevGcmJ3HB0ZyIQ3uJ00o sfSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=s079TLX7hXvqPfgpunHgvdd5NTPYZQIvr7NLLLfLB6k=; b=tlmTzAyFUMEqMwsAKrIQVmbblSnRrQ7uR7Y7dr86z1j4QFD6V7abwQxlpacbCcH3yC JWQvqVyPJ0ySQuFKNz1/7XuokWyL/RaLkx0W1PUDOKqvFWCRluCvTNS6TxVAjMSMmmvi 5DOI7EAcxN92g+/UNTLkW6pYn5p6ydRWSg0421mdtaxy1qEsxt+wnaTy2vo+6EgS51mt GB1/yTrscOCPbRGThGsJkuhlvIcoIgZXfaT0XLpo4BgZcpqulX8BQNqGHNZo9I1JSYgD +y1xwUcX6cREhTJVp2ialKbtCKnI5/nwhkqX+FMn3TcbGsNAPqOCuo1BejYfA65LdAWX MidA== X-Gm-Message-State: APf1xPCNLw36rJG6ecIWskKhBj2/+JsazvyQhTMqq7mLjJZWqr9yoViU p3mJewQud8qaQII3KKf2UoSUCQ== X-Google-Smtp-Source: AH8x226Z8ifJozfXLCeILJU9Q7VSeXlacWl6ZliKmQ9r+xkbVMtsOjgO2bKs3yO32/UM6U54qH5ZqA== X-Received: by 10.36.40.137 with SMTP id h131mr7969917ith.118.1519301439617; Thu, 22 Feb 2018 04:10:39 -0800 (PST) Received: from garuda.local (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id y81sm10877617ioy.29.2018.02.22.04.10.37 for <30572@debbugs.gnu.org> (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 22 Feb 2018 04:10:38 -0800 (PST) From: Chris Marusich References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-3-cmmarusich@gmail.com> Date: Thu, 22 Feb 2018 13:10:33 +0100 In-Reply-To: <20180222103528.5108-3-cmmarusich@gmail.com> (Chris Marusich's message of "Thu, 22 Feb 2018 11:35:24 +0100") Message-ID: <87371t8bt2.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Chris Marusich writes: > +<<<<<<< HEAD > #:volatile-root? '#$volatile-root? > #:on-error '#$on-error))) > #:name "raw-initrd")) > +=3D=3D=3D=3D=3D=3D=3D > + #:volatile-root? '#$volatile-root?))) > + #:name "raw-initrd" > + #:guile guile)) > +>>>>>>> system: Allow customization of the initrd's Guile. > > ... > > +<<<<<<< HEAD > #:on-error on-error)) > +=3D=3D=3D=3D=3D=3D=3D > + #:guile guile)) > +>>>>>>> system: Allow customization of the initrd's Guile. This is obviously not correct. I accidentally forgot to resolve these conflicts when rebasing my branch onto origin/master. Please disregard patch 3/7 in favor of the attached patch, which resolves the conflicts. I've verified (for sure, this time!) that this patch series builds successfully after it has been applied. Sorry for the additional churn! =2D-=20 Chris --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0003-system-Allow-customization-of-the-initrd-s-Guile.patch Content-Transfer-Encoding: quoted-printable From=2044a4d91853c5c83f6ac32d16d16fab1c342d3b4e Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Mon, 19 Feb 2018 04:47:42 +0100 Subject: [PATCH] system: Allow customization of the initrd's Guile. * gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Add the #:guile keyword argument. * doc/guix.texi (Initial Ram Disk) : Update their documentation. =2D-- doc/guix.texi | 40 +++++++++++++++++++++++----------------- gnu/system/linux-initrd.scm | 27 ++++++++++++++++----------- 2 files changed, 39 insertions(+), 28 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7ed39ff13..5e8c27486 100644 =2D-- a/doc/guix.texi +++ b/doc/guix.texi @@ -18849,33 +18849,39 @@ here is how to use it and customize it further. @cindex initrd @cindex initial RAM disk @deffn {Monadic Procedure} raw-initrd @var{file-systems} @ + [#:linux linux-libre] [#:linux-modules '()] [#:mapped-devices '()] @ =2D [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root?= #f] =2DReturn a monadic derivation that builds a raw initrd. @var{file-systems= } is =2Da list of file systems to be mounted by the initrd, possibly in addition= to =2Dthe root file system specified on the kernel command line via @code{--ro= ot}. =2D@var{linux-modules} is a list of kernel modules to be loaded at boot tim= e. =2D@var{mapped-devices} is a list of device mappings to realize before =2D@var{file-systems} are mounted (@pxref{Mapped Devices}). =2D@var{helper-packages} is a list of packages to be copied in the initrd. = It may =2Dinclude @code{e2fsck/static} or other packages needed by the initrd to c= heck =2Dthe root file system. + [#:helper-packages '()] [#:guile %guile-static-stripped] + [#:qemu-networking? #f] [#:volatile-root? #f] +Return a monadic derivation that builds a raw initrd, with kernel +modules taken from @var{linux}. @var{file-systems} is a list of file +systems to be mounted by the initrd, possibly in addition to the root +file system specified on the kernel command line via @code{--root}. +@var{linux-modules} is a list of kernel modules to be loaded at boot +time. @var{mapped-devices} is a list of device mappings to realize +before @var{file-systems} are mounted (@pxref{Mapped Devices}). +@var{helper-packages} is a list of packages to be copied in the +initrd. It may include @code{e2fsck/static} or other packages needed by +the initrd to check root partition. @var{guile} is the Guile to use in +the initrd. =20 When @var{qemu-networking?} is true, set up networking with the standard Q= EMU =2Dparameters. When @var{virtio?} is true, load additional modules so that= the =2Dinitrd can be used as a QEMU guest with para-virtualized I/O drivers. +parameters. =20 When @var{volatile-root?} is true, the root file system is writable but an= y changes to it are lost. @end deffn =20 @deffn {Monadic Procedure} base-initrd @var{file-systems} @ =2D [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? = #f]@ + [#:linux linux-libre] + [#:mapped-devices '()] [#:guile %guile-static-stripped] + [#:qemu-networking? #f] [#:volatile-root? #f]@ [#:virtio? #t] [#:extra-modules '()] =2DReturn a monadic derivation that builds a generic initrd. @var{file-sys= tems} is =2Da list of file systems to be mounted by the initrd like for @code{raw-in= itrd}. =2D@var{mapped-devices}, @var{qemu-networking?} and @var{volatile-root?} =2Dalso behaves as in @code{raw-initrd}. +Return a monadic derivation that builds a generic initrd, with kernel +modules taken from @var{linux}. @var{file-systems} is a list of file +systems to be mounted by the initrd like for @code{raw-initrd}. +@var{mapped-devices}, @var{guile}, @var{qemu-networking?} and +@var{volatile-root?} also behave as in @code{raw-initrd}. =20 When @var{virtio?} is true, load additional modules so that the initrd can be used as a QEMU guest with para-virtualized I/O drivers. diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 330438bce..301e6cffa 100644 =2D-- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -154,17 +154,18 @@ MODULES and taken from LINUX." (linux-modules '()) (mapped-devices '()) (helper-packages '()) + (guile %guile-static-stripped) qemu-networking? volatile-root? (on-error 'debug)) =2D "Return a monadic derivation that builds a raw initrd, with kernel =2Dmodules taken from LINUX. FILE-SYSTEMS is a list of file-systems to be =2Dmounted by the initrd, possibly in addition to the root file system spec= ified =2Don the kernel command line via '--root'. LINUX-MODULES is a list of kern= el =2Dmodules to be loaded at boot time. MAPPED-DEVICES is a list of device =2Dmappings to realize before FILE-SYSTEMS are mounted. =2DHELPER-PACKAGES is a list of packages to be copied in the initrd. It may= include =2De2fsck/static or other packages needed by the initrd to check root parti= tion. + "Return a monadic derivation that builds a raw initrd, with kernel modul= es +taken from LINUX. FILE-SYSTEMS is a list of file-systems to be mounted by= the +initrd, possibly in addition to the root file system specified on the kern= el +command line via '--root'. LINUX-MODULES is a list of kernel modules to be +loaded at boot time. MAPPED-DEVICES is a list of device mappings to reali= ze +before FILE-SYSTEMS are mounted. HELPER-PACKAGES is a list of packages to= be +copied in the initrd. It may include e2fsck/static or other packages neede= d by +the initrd to check root partition. GUILE is the Guile to use in the init= rd. =20 When QEMU-NETWORKING? is true, set up networking with the standard QEMU parameters. @@ -223,7 +224,8 @@ upon error." #:qemu-guest-networking? #$qemu-networking? #:volatile-root? '#$volatile-root? #:on-error '#$on-error))) =2D #:name "raw-initrd")) + #:name "raw-initrd" + #:guile guile)) =20 (define* (file-system-packages file-systems #:key (volatile-root? #f)) "Return the list of statically-linked, stripped packages to check @@ -246,6 +248,7 @@ FILE-SYSTEMS." #:key (linux linux-libre) (mapped-devices '()) + (guile %guile-static-stripped) qemu-networking? volatile-root? (virtio? #t) @@ -255,7 +258,8 @@ FILE-SYSTEMS." modules taken from LINUX. FILE-SYSTEMS is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specif= ied on the kernel command line via '--root'. MAPPED-DEVICES is a list of devi= ce =2Dmappings to realize before FILE-SYSTEMS are mounted. +mappings to realize before FILE-SYSTEMS are mounted. GUILE is the Guile to +use in the initrd. =20 QEMU-NETWORKING? and VOLATILE-ROOT? behaves as in raw-initrd. =20 @@ -325,6 +329,7 @@ loaded at boot time in the order in which they appear." #:helper-packages helper-packages #:qemu-networking? qemu-networking? #:volatile-root? volatile-root? =2D #:on-error on-error)) + #:on-error on-error + #:guile guile)) =20 ;;; linux-initrd.scm ends here =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqOszkACgkQ3UCaFdgi Rp1FMhAAoXtKx5ZPfJ04XWHxfjCHUM+x7kyXxHGGZwwfXwso0AnMkUhodXUbzQkF YbDIOT31ntTNqVsjD+M9Z5/xcFavg+oWqAlenSFxy6i3+Qwp4Q8jWaCVCYOmN5Cu QnxHs6aN8hYrxzmCH5fhNoLAnCenrWDmfKJ6CRE0ZB5V4r37TG+3F70a6BDBP/JL hCsiek4dqip/nZKMHKywf9mCWmP2WzJIHdYqiwcsZKMYDROPa7QISkem0sXP6YTU IaZn4tpz5c7Rm+dv/vg+FRLL0gFFbBiDSxu2iNiP/Yh0CauxRiRsaW47H6ysLw+y zxwNZ2KJIRBqMmDQd87eKyXKh3kXSnAr5jSrq7bY5p+HBDwfUh6SqpKEm+5DbN3p bSKK8+2xSgbi7AWXhDOuuIu7X3h7KO9ddxQRdbddYpKEVH1uu0jduPQaMlitGZqj NuNDk/q5aE1mP/Lp4Betc0UCuS15QLJkMqIhTAjXGTJlpYZ5IZYiuR9zYHLLm5t9 lLMRh4NGLtYl0fWK1CYtaiTZxPW1Lai35g3rYof8Mj28XYFIz++pyRYD/E3CjZIr xtgtFto++sSEgwpaD7Zjvi8bZ6YwBKsQq5FRaUkjTM7ZSAFeMO+NlAUioacoj6of vixt9R0DyvgQwwiQSGK+AVyGEKTCG+5i085Wh6DGzWv72VPmzdI= =JfQn -----END PGP SIGNATURE----- --==-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 2/7] vm: Allow control of deduplication in root-partition-initializer. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 25 Feb 2018 14:03:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15195673461057 (code B ref 30572); Sun, 25 Feb 2018 14:03:01 +0000 Received: (at 30572) by debbugs.gnu.org; 25 Feb 2018 14:02:26 +0000 Received: from localhost ([127.0.0.1]:59534 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1epwsk-0000Gy-3J for submit@debbugs.gnu.org; Sun, 25 Feb 2018 09:02:26 -0500 Received: from dd26836.kasserver.com ([85.13.145.193]:40922) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1epwsh-0000Gp-VE for 30572@debbugs.gnu.org; Sun, 25 Feb 2018 09:02:24 -0500 Received: from localhost (77.118.165.54.wireless.dyn.drei.com [77.118.165.54]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 3A1693360483; Sun, 25 Feb 2018 15:02:22 +0100 (CET) Date: Sun, 25 Feb 2018 15:02:18 +0100 From: Danny Milosavljevic Message-ID: <20180225150218.4d4da3da@scratchpost.org> In-Reply-To: <20180222103528.5108-2-cmmarusich@gmail.com> References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-2-cmmarusich@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: LGTM [...] Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [85.13.145.193 listed in list.dnswl.org] 2.5 BODY_SINGLE_WORD Message body is only one word (no spaces) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: LGTM [...] Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [85.13.145.193 listed in list.dnswl.org] 2.5 BODY_SINGLE_WORD Message body is only one word (no spaces) LGTM From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 7/7] tests: Add tests for "guix system disk-image" et al. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 25 Feb 2018 14:06:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15195675351326 (code B ref 30572); Sun, 25 Feb 2018 14:06:01 +0000 Received: (at 30572) by debbugs.gnu.org; 25 Feb 2018 14:05:35 +0000 Received: from localhost ([127.0.0.1]:59539 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1epwvm-0000LJ-Ki for submit@debbugs.gnu.org; Sun, 25 Feb 2018 09:05:34 -0500 Received: from dd26836.kasserver.com ([85.13.145.193]:41190) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1epwvh-0000L3-Ri for 30572@debbugs.gnu.org; Sun, 25 Feb 2018 09:05:32 -0500 Received: from localhost (77.118.165.54.wireless.dyn.drei.com [77.118.165.54]) by dd26836.kasserver.com (Postfix) with ESMTPSA id DDAB933606CB; Sun, 25 Feb 2018 15:05:28 +0100 (CET) Date: Sun, 25 Feb 2018 15:05:20 +0100 From: Danny Milosavljevic Message-ID: <20180225150520.5a135d58@scratchpost.org> In-Reply-To: <20180222103528.5108-7-cmmarusich@gmail.com> References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-7-cmmarusich@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: LGTM [...] Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [85.13.145.193 listed in list.dnswl.org] 2.5 BODY_SINGLE_WORD Message body is only one word (no spaces) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: LGTM [...] Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [85.13.145.193 listed in list.dnswl.org] 2.5 BODY_SINGLE_WORD Message body is only one word (no spaces) LGTM From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 5/7] docker: Allow the addition of extra files into the image. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 25 Feb 2018 23:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151960181526737 (code B ref 30572); Sun, 25 Feb 2018 23:37:02 +0000 Received: (at 30572) by debbugs.gnu.org; 25 Feb 2018 23:36:55 +0000 Received: from localhost ([127.0.0.1]:60729 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eq5qh-0006xB-Ch for submit@debbugs.gnu.org; Sun, 25 Feb 2018 18:36:55 -0500 Received: from dd26836.kasserver.com ([85.13.145.193]:54308) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eq5qg-0006x3-08 for 30572@debbugs.gnu.org; Sun, 25 Feb 2018 18:36:54 -0500 Received: from localhost (77.118.165.54.wireless.dyn.drei.com [77.118.165.54]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 609F73362F1B; Mon, 26 Feb 2018 00:36:51 +0100 (CET) Date: Mon, 26 Feb 2018 00:36:47 +0100 From: Danny Milosavljevic Message-ID: <20180226003647.6174ad02@scratchpost.org> In-Reply-To: <20180222103528.5108-5-cmmarusich@gmail.com> References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-5-cmmarusich@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) > + (zero? (apply system* "tar" "-C" extra-items-dir > + "-rf" "layer.tar" > + (append %tar-determinism-options > + '(".")))))))) -C is order-sensitive. Apparently it still doesn't cause layer.tar to be created inside extra-items-dir (huh...), but for clarity, I'd prefer: tar -rf layer.tar -C extra-items-dir . Otherwise LGTM! From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 4/7] docker: Allow the use of a custom temporary directory. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 26 Feb 2018 00:50:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.1519606147661 (code B ref 30572); Mon, 26 Feb 2018 00:50:01 +0000 Received: (at 30572) by debbugs.gnu.org; 26 Feb 2018 00:49:07 +0000 Received: from localhost ([127.0.0.1]:60775 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eq6yZ-0000Aa-Fi for submit@debbugs.gnu.org; Sun, 25 Feb 2018 19:49:07 -0500 Received: from dd26836.kasserver.com ([85.13.145.193]:59612) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eq6yX-0000AS-RC for 30572@debbugs.gnu.org; Sun, 25 Feb 2018 19:49:06 -0500 Received: from localhost (77.118.165.54.wireless.dyn.drei.com [77.118.165.54]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 42C583361672; Mon, 26 Feb 2018 01:49:03 +0100 (CET) Date: Mon, 26 Feb 2018 01:48:59 +0100 From: Danny Milosavljevic Message-ID: <20180226014859.4f7fe37c@scratchpost.org> In-Reply-To: <20180222103528.5108-4-cmmarusich@gmail.com> References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-4-cmmarusich@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Hmm, I have a slight preference for not magically adding "/docker-image" here but rather adding it in the caller and in the default. But LGTM... From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 4/7] docker: Allow the use of a custom temporary directory. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 26 Feb 2018 16:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Danny Milosavljevic Cc: 30572@debbugs.gnu.org, Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151966224718163 (code B ref 30572); Mon, 26 Feb 2018 16:25:02 +0000 Received: (at 30572) by debbugs.gnu.org; 26 Feb 2018 16:24:07 +0000 Received: from localhost ([127.0.0.1]:33699 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqLZP-0004it-9n for submit@debbugs.gnu.org; Mon, 26 Feb 2018 11:24:07 -0500 Received: from mail-pl0-f45.google.com ([209.85.160.45]:39116) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqLZM-0004iP-U2 for 30572@debbugs.gnu.org; Mon, 26 Feb 2018 11:24:05 -0500 Received: by mail-pl0-f45.google.com with SMTP id s13so9538808plq.6 for <30572@debbugs.gnu.org>; Mon, 26 Feb 2018 08:24:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=aNiGgo299q1S2+OfuCk6bls3MOLgHIQt2Wq5NDXeFd4=; b=iufdXMy+DykskniEdOWlY6Wm6a7ltHZnYnC3IPnFKVMSCrLX3dS7GoYNCpOI8cBtPE OVOnRTbQ5RKfk5yjmVoBqrHeqACC6+mCKimGQ3QPhYEnT0BEuJtAy79Wt40PeFds9Zpk 7KP6IQNq6taX5E7ezDLmhz8vqFlXM3h/FbW1QbWTxqneLE342HXEhlwh6QN93U3GoUFd tgyWU5flGDvf69Qu6MolGRUBCKwSv5z1OgvahcJ1nObfgVRbijP6A2NmL1q/kG4zKQeo bsigF/7jfHuKSpqrgGsZ9oDL283XnkyLm+mg5p6hmVPS+IHRRi+Jsld89JshiM0yizBx U5Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=aNiGgo299q1S2+OfuCk6bls3MOLgHIQt2Wq5NDXeFd4=; b=lk1lx9jLstOFZDej8sg4vTZwzBK24N8iyk1Tigs6H1pflu3y9w7V9eJ87pJUo6CiTU oscKx5K9cQvGiL2wGR8tse0R4RNqsEuRJPHKRLCZnwv0a2pvgH6SNoLI5ldoRW2EZpWE LphaNjRFAzuV48b+liGKbelzCONudbXcw6zv8aFBrR6kpqhLGqRdnGWpjyzJYwF5Ilgs +ByKR1afAQ0OVdaNX7Q6aXK0oYjx0S9J3pUgNKLC6YffrokbhV97R+PocvKKAATznjYE JE7KNdcP2yGcBiEKTiu2doQu86aTe3gp1C+kL8MqmEslPTzenyRvlV8TEsjSlr6A8mdb 1JEA== X-Gm-Message-State: APf1xPDFHRjxW1EL8M1bt/QOQ/BMjzEkjit0aoMjE0LbeYOiGY2nIY4l uoYQ4deWjrO9OuvznjU2pGyWng== X-Google-Smtp-Source: AH8x226LPn0oCIxfiCeNwd8I/1rcEhRQAxy4x8OItB2DheL6B3YlDL+in5V60i0PM3+X+A3iAglDCw== X-Received: by 2002:a17:902:6f17:: with SMTP id w23-v6mr11163069plk.336.1519662238490; Mon, 26 Feb 2018 08:23:58 -0800 (PST) Received: from garuda.local (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id q65sm19891324pfd.140.2018.02.26.08.23.56 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 26 Feb 2018 08:23:56 -0800 (PST) From: Chris Marusich X-Google-Original-From: Chris Marusich References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-4-cmmarusich@gmail.com> <20180226014859.4f7fe37c@scratchpost.org> Date: Mon, 26 Feb 2018 17:23:55 +0100 In-Reply-To: <20180226014859.4f7fe37c@scratchpost.org> (Danny Milosavljevic's message of "Mon, 26 Feb 2018 01:48:59 +0100") Message-ID: <87po4rra78.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Danny Milosavljevic writes: > Hmm, I have a slight preference for not magically adding "/docker-image" = here > but rather adding it in the caller and in the default. Good idea. Here's a new version of Patch 4/7 which does what you suggest! What do you think? =2D-=20 Chris --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0004-docker-Allow-the-use-of-a-custom-temporary-directory.patch Content-Transfer-Encoding: quoted-printable From=20dcb8dfd9c6c12f585ec9b64fb42489ce5b4fa9ae Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Mon, 19 Feb 2018 05:45:03 +0100 Subject: [PATCH 4/8] docker: Allow the use of a custom temporary directory. * guix/docker.scm: (build-docker-image): Add #:tmpdir keyword argument. =2D-- guix/docker.scm | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/guix/docker.scm b/guix/docker.scm index 060232148..305e8273b 100644 =2D-- a/guix/docker.scm +++ b/guix/docker.scm @@ -106,7 +106,8 @@ return \"a\"." #:key closure compressor (symlinks '()) (system (utsname:machine (uname))) =2D (creation-time (current-time time-utc))) + (creation-time (current-time time-utc)) + (tmpdir "/tmp/docker-image")) "Write to IMAGE a Docker image archive from the given store PATH. The i= mage contains the closure of PATH, as specified in CLOSURE (a file produced by #:references-graphs). SYMLINKS must be a list of (SOURCE -> TARGET) tuples @@ -115,9 +116,13 @@ to PATH. SYSTEM is a GNU triplet (or prefix thereof) = of the system the binaries at PATH are for; it is used to produce metadata in the image. =20 Use COMPRESSOR, a command such as '(\"gzip\" \"-9n\"), to compress IMAGE. = Use =2DCREATION-TIME, a SRFI-19 time-utc object, as the creation time in metada= ta." =2D (let ((directory "/tmp/docker-image") ;temporary working dir= ectory =2D (closure (canonicalize-path closure)) +CREATION-TIME, a SRFI-19 time-utc object, as the creation time in metadata. + +TMPDIR is the name of the temporary working directory to use. This can be +useful if you need to use a specific temporary directory, for example beca= use +the default temporary directory lies on a file system with insufficient +space." + (let ((closure (canonicalize-path closure)) (id (docker-id path)) (time (date->string (time-utc->date creation-time) "~4")) (arch (let-syntax ((cond* (syntax-rules () @@ -133,9 +138,9 @@ CREATION-TIME, a SRFI-19 time-utc object, as the creati= on time in metadata." ("arm" "arm") ("mips64" "mips64le"))))) ;; Make sure we start with a fresh, empty working directory. =2D (mkdir directory) + (mkdir-p tmpdir) =20 =2D (and (with-directory-excursion directory + (and (with-directory-excursion tmpdir (mkdir id) (with-directory-excursion id (with-output-to-file "VERSION" @@ -174,10 +179,10 @@ CREATION-TIME, a SRFI-19 time-utc object, as the crea= tion time in metadata." (lambda () (scm->json (repositories path id))))) =20 =2D (and (zero? (apply system* "tar" "-C" directory "-cf" image + (and (zero? (apply system* "tar" "-C" tmpdir "-cf" image `(,@%tar-determinism-options ,@(if compressor (list "-I" (string-join compressor)) '()) "."))) =2D (begin (delete-file-recursively directory) #t))))) + (begin (delete-file-recursively tmpdir) #t))))) =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqUNJsACgkQ3UCaFdgi Rp16vA//WmhUXdY/MsWaP3Sj/diyuHtxXvpBjwC6LNLdWBsmFolE4ZkiJ0gTR3+P ZoLbuKRluphmaRTz1yhVk4/GrTgRI9NY6NhhZOCE/PONk9SGt4lCmsarq1xoe8/5 4UZ5BsuaEbUEUWPlPetaE6BuciKm/YRjUK/RJebusVCLCHdmDMuH80H/rwIlb0Od hQXnyYcKNkfBWF0LK7kyW+SZUQ4KS9PTiMDk8YTeW8Qw0jsl3WN/aQCH+hXVnH9K 4f3NbHbvwg4uRnZsOxpRrgfI7TGng7DrQh1fwmA+u7xVwhncxl56oomAn2j79jqx GzhsY2x+ROlw6vMqXS3UeUECKwfohcZHyCJSlecwWDdqaz6qFIvTlw7nc50GRdFc +g5LSjfDNtQ30+C68oBUzcDXXBee3+1KJ5GgOiib6FlCJOU3EQE7/Pjej0LepMug CwRv2u1Tjm1JNebQdfIkLq1+mxhdVegUUBrfuyD1FRu/47uQKn4e1iZ/U8i9NT/a yFKuduRE/Y8EzFT3o8S54d36T6jMONcbm6Pm+hmxOtf2JGkadXpOBc0E4xIdeghm UpoRwogqA54BQRcAfwWfb3wcoYljxpPQ3dmKXnLDS4jK4LSZ81ktcHAwxFa4VSpH g6c7SlCJcfnbEi90mEYZ79Tr74yWEvDOaSt4YO2f9IxsBZsB3TA= =8D8s -----END PGP SIGNATURE----- --==-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 5/7] docker: Allow the addition of extra files into the image. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 26 Feb 2018 16:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Danny Milosavljevic Cc: 30572@debbugs.gnu.org, Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151966233418290 (code B ref 30572); Mon, 26 Feb 2018 16:26:01 +0000 Received: (at 30572) by debbugs.gnu.org; 26 Feb 2018 16:25:34 +0000 Received: from localhost ([127.0.0.1]:33703 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqLan-0004kw-My for submit@debbugs.gnu.org; Mon, 26 Feb 2018 11:25:33 -0500 Received: from mail-pf0-f180.google.com ([209.85.192.180]:41380) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqLak-0004ki-6R for 30572@debbugs.gnu.org; Mon, 26 Feb 2018 11:25:31 -0500 Received: by mail-pf0-f180.google.com with SMTP id f80so1602283pfa.8 for <30572@debbugs.gnu.org>; Mon, 26 Feb 2018 08:25:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=eTKWilHGJuwtF54+d0jcjtYg7709nFKhFCgiLh8pyS8=; b=NpE2CLob5kstKwOdpH+GB6IeNbuxblIB6U6+lOKD1BnvvduXotoalDPCiQ1f0kqhXl NNK4GwmgfUm5Jvxtyy3OSsgrn7vcwA30mzeTL8+WQ9s8zdnV9jheniQfER1z4HojszkE JaujEMGFkqkghW+WZpYWsA1M4XlJFWp9an5yrDo6xV1FhFGCCLxvgTECwAqEFS9eCbax ho7hgiVSyxImlOF6bCb4Je+n5udzX7zYkVWod5zIGwFX1dRpMoaBxTryPwDMOo1bojP3 EvngeIbCSeyvrfqtzXoWCdnoGQDEntSBT2pI2/8mHzbMV4/gFvpzV3NE+NSxryutpM0Z xNWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=eTKWilHGJuwtF54+d0jcjtYg7709nFKhFCgiLh8pyS8=; b=KfDeBBiWMx/mON/uWzs4GXdKY6GO4A40WNQGyT536tYZd7IW3IHr56hU7jd9VZd7KU 71F2svgXopCj1qINohq2eKg2asqm4N5yK0L33jDT3iPFbgrSpa0/7U+2SPFOVOpzsRRH 46aKxaBI/txY3OWuBXRjaPdiLayb3UR4I9UDeyYcnQTxUAdi80zsZU/t1h5MRf/Zu7qH aCeNxyH0mXqFw9YQ3uKfWmHyWVJxTKLVNQGhOp5X4Phzbxr5SOsPX7YTbLnQyHiT+SAZ 7ai+9Fe2O2ZaXQGOwewKKFjQ1AqG5ktD3clk8C/rQxapH7ibz6eD5h65NZFW6ZFTMlC4 7YcQ== X-Gm-Message-State: APf1xPAUXSjLYXEWKVevmrrnRiNx10xfNsTd3MeEQ8IyVl19mkFp0fGE J9PCXiaUqHkGvrTQIYNGklg6KQ== X-Google-Smtp-Source: AH8x226ChMdwWC2oMgDsOT/YlGhcT5b+8OaTzLG1SCqFiRFEI6gc5ox1P3A5gkPzfxHm37NZ9xVgHg== X-Received: by 10.99.127.80 with SMTP id p16mr8859864pgn.144.1519662323799; Mon, 26 Feb 2018 08:25:23 -0800 (PST) Received: from garuda.local (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id h186sm19058685pfg.15.2018.02.26.08.25.22 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 26 Feb 2018 08:25:22 -0800 (PST) From: Chris Marusich X-Google-Original-From: Chris Marusich References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-5-cmmarusich@gmail.com> <20180226003647.6174ad02@scratchpost.org> Date: Mon, 26 Feb 2018 17:25:21 +0100 In-Reply-To: <20180226003647.6174ad02@scratchpost.org> (Danny Milosavljevic's message of "Mon, 26 Feb 2018 00:36:47 +0100") Message-ID: <87muzvra4u.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Danny Milosavljevic writes: >> + (zero? (apply system* "tar" "-C" extra-items-dir >> + "-rf" "layer.tar" >> + (append %tar-determinism-options >> + '(".")))))))) > > -C is order-sensitive. Apparently it still doesn't cause layer.tar > to be created inside extra-items-dir (huh...), but for clarity, I'd prefe= r: > > tar -rf layer.tar -C extra-items-dir . I didn't realize this was the case. I agree it would be best to reverse the order here. I've attached a patch which does this. How does it look? =2D-=20 Chris --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0005-docker-Allow-the-addition-of-extra-files-into-the-im.patch Content-Transfer-Encoding: quoted-printable From=205a889e7d8dc6847c2d9a8ae526df7c974688a947 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Mon, 19 Feb 2018 05:53:16 +0100 Subject: [PATCH 5/8] docker: Allow the addition of extra files into the ima= ge. * guix/docker.scm (build-docker-image): Add #:extra-items-dir keyword argument. =2D-- guix/docker.scm | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/guix/docker.scm b/guix/docker.scm index 305e8273b..ef92714e0 100644 =2D-- a/guix/docker.scm +++ b/guix/docker.scm @@ -107,7 +107,8 @@ return \"a\"." (symlinks '()) (system (utsname:machine (uname))) (creation-time (current-time time-utc)) =2D (tmpdir "/tmp/docker-image")) + (tmpdir "/tmp/docker-image") + extra-items-dir) "Write to IMAGE a Docker image archive from the given store PATH. The i= mage contains the closure of PATH, as specified in CLOSURE (a file produced by #:references-graphs). SYMLINKS must be a list of (SOURCE -> TARGET) tuples @@ -121,7 +122,12 @@ CREATION-TIME, a SRFI-19 time-utc object, as the creat= ion time in metadata. TMPDIR is the name of the temporary working directory to use. This can be useful if you need to use a specific temporary directory, for example beca= use the default temporary directory lies on a file system with insufficient =2Dspace." +space. + +EXTRA-ITEMS-DIR is the name of a directory containing extra files to add to +the image; the entire directory tree rooted at EXTRA-ITEMS-DIR will be cop= ied +into the root directory of the image, so a file EXTRA-ITEMS-DIR/foo will w= ind +up at /foo in the final Docker image." (let ((closure (canonicalize-path closure)) (id (docker-id path)) (time (date->string (time-utc->date creation-time) "~4")) @@ -166,7 +172,12 @@ space." (map symlink-source symlinks)))) (for-each delete-file-recursively (map (compose topmost-component symlink-sour= ce) =2D symlinks))))) + symlinks)) + extra-items-dir + (zero? (apply system* "tar" "-rf" "layer.tar" + "-C" extra-items-dir + (append %tar-determinism-options + '("."))))))) =20 (with-output-to-file "config.json" (lambda () =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqUNPEACgkQ3UCaFdgi Rp3j9Q//T/dRavhYw/jwoHGrtbGvYSzXWPHJmdoG/V3kZowRge9Y3H+o1EdHGBnC j9xmEE0eMl4UPC4LDOrYOeON+mEZI+52rWfbgNtPbpx3dOdZDbLZSdv1UmDQGlBk Q1pImuoLTV2Q/cxNObdq7JcKMvWcyGtJAmzr0Agaks4MrQCV/Dvm8PYNoFTCSg63 j+ude7M7IF/IUD/oJgqR/CD6Ou3MZs0nRNWKcTcypSv4rH4Gxn74C7ngjTRl3Z10 9VZg3pLyu0RSeHUBDXjP/BaTRGr6K9a0eROwcgCr3fku+nGX4UHkxaRt3pLLfKwc CcD+P3OQ0gQTi7rn0NE0+m1bldZv2EsNKBHrEKmGwJURc+qF1JjfGTdCUMlbQjSM M9Zf3W5jj6SgWTTCaOZ6ff/6wZhcXWW2F0hwQnY/eVLMxBPZYGbU0eyupPcNuQMG SWhBW8JC5/cSanGyUa3/L6xcs+2v+4UHs45+iOS+jDEjJGBRYl3nQyuWIMDhmUa7 K0g67ZU0VSOSuvKBxMrKRheImfTuIyqE+x0qpeNtDEq1LLzk95WIlZdfmP8HG3Dp pc1wthHtdR+8lAY8JcyClbNVGwww6sFme7xSeEv3EHYzaccU3LeMxGpOZgBmYV7O PEGl1nu7nF3Ju8/ADdUedS7NtM1vYEiO1/TjcvOyiwoq2DNyYvI= =QAcT -----END PGP SIGNATURE----- --==-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 6/7] system: Add "guix system docker-image" command. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 26 Feb 2018 16:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151966265818828 (code B ref 30572); Mon, 26 Feb 2018 16:31:01 +0000 Received: (at 30572) by debbugs.gnu.org; 26 Feb 2018 16:30:58 +0000 Received: from localhost ([127.0.0.1]:33711 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqLg1-0004tb-JV for submit@debbugs.gnu.org; Mon, 26 Feb 2018 11:30:58 -0500 Received: from mail-pg0-f42.google.com ([74.125.83.42]:37129) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqLfz-0004tO-Im for 30572@debbugs.gnu.org; Mon, 26 Feb 2018 11:30:56 -0500 Received: by mail-pg0-f42.google.com with SMTP id y26so6367524pgv.4 for <30572@debbugs.gnu.org>; Mon, 26 Feb 2018 08:30:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=2Q/5IyZYIl8cyIy6Sd9uoT4wzfWeBkO3UnQG8O3W2ms=; b=RR0lDlrg9CKE/bxaXrK9dyZ0DBdNm+MbseeYGXG0KEZSzRPboWrMqFp4x8OA3qiDrv r4pBcWlfCpL/BPscFSFdaDDNNvPK5ETcYfwoGocB+dykxGwwcva0+nhSzm4XogjD8dOv 7jrsDrENpPg6+U8yfSC5t6LnvunG1KMilZiOEBKgtgARor49T+hIuldPSm9KjmwLkz5H PHSYU5acFxSSAXHjxtfxp+LgRj01eMTbCOqMSuKqeHlgEPAAvjYJy9DrxlEJtx9msDc6 n4Cvv5533Fp2WxFVwi816EbwwCKJPw5LFKC9dk6hYWyO4jJRbYHinjoptVgE1frUXlaD 03hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=2Q/5IyZYIl8cyIy6Sd9uoT4wzfWeBkO3UnQG8O3W2ms=; b=i9LuZ8DSNyAcOhuUSAsVnluzUJAJIoi4Vijo0XWNh3hoiJQiu/0TEFmX7YwvH0o/Ue LV6pQzbJ+NweqFdiPvhhGt0eFjnalhf9WKtQqJaqmvRuTazZA7EFLrYui6+FUeuOF0RS FCUpFz2F3WVHGYvO/cokF+RoJA1/ZiK+VnABaFLpuGJirWUAModEgJgyHhKxR3YeiQaa erv4EyO6yCmpVaMIGUfqMNVhaPV7PcSoNywwvtHucIhoZncEIg2oeCU8A84P4YLDfzq9 0AQr/2KS8zOdjrlZ+s+d747QxPfL6M/4mkQsaehebxdzhNzyjDBxIIFBTKOKWi5/+A6S pMnw== X-Gm-Message-State: APf1xPCvv7bV7Me5Kbg5lycg8AtPJG8jYtwvoZsIde1iHHR90qZtfzHw b7uFS3IQ7UZiycUgzIS+r3oBvw== X-Google-Smtp-Source: AH8x225jv5zTElZI5QtVuvf7mpTqQbAaLEK8vQDwzN1UMPTURKdCDCLhqeIucH521+NKX79HDqQ59A== X-Received: by 10.98.224.208 with SMTP id d77mr11176693pfm.194.1519662649256; Mon, 26 Feb 2018 08:30:49 -0800 (PST) Received: from garuda.local (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id n1sm14599459pge.19.2018.02.26.08.30.47 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 26 Feb 2018 08:30:47 -0800 (PST) From: Chris Marusich X-Google-Original-From: Chris Marusich References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-6-cmmarusich@gmail.com> Date: Mon, 26 Feb 2018 17:30:46 +0100 In-Reply-To: <20180222103528.5108-6-cmmarusich@gmail.com> (Chris Marusich's message of "Thu, 22 Feb 2018 11:35:27 +0100") Message-ID: <87k1uzr9vt.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Chris Marusich writes: > + (let ((tmpdir "/xchg/tmp")) > + (mkdir tmpdir) > + (build-docker-image > + (string-append "/xchg/" #$name) ;; The output file. > + #$os-drv > + #:closure (string-append "/xchg/" #$system-graph-name) > + #:compressor '(#+(file-append gzip "/bin/gzip") "-9n") > + #:creation-time (make-time time-utc 0 1) > + #:tmpdir tmpdir > + #:extra-items-dir root) > + (delete-file-recursively tmpdir)))))) I've adjusted this section to take into account the changes I made to patches earlier in the series. Please find attached a new Patch 6/7, which incorporates these minor adjustments. =2D-=20 Chris --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0006-system-Add-guix-system-docker-image-command.patch Content-Transfer-Encoding: quoted-printable From=201b325723f87ac09d4ac0b860f76982a07e14a985 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Tue, 20 Feb 2018 09:12:48 +0100 Subject: [PATCH 6/8] system: Add "guix system docker-image" command. * gnu/system/vm.scm (system-docker-image): New procedure. * guix/scripts/system.scm (system-derivation-for-action): Add a case for docker-image, and in that case, call system-docker-image. (show-help): Document docker-image. (guix-system): Parse arguments for docker-image. * doc/guix.texi (Invoking guix system): Document "guix system docker-image". * gnu/system/examples/docker-image.tmpl: New file. =2D-- doc/guix.texi | 34 ++++++++-- gnu/system/examples/docker-image.tmpl | 47 ++++++++++++++ gnu/system/vm.scm | 114 ++++++++++++++++++++++++++++++= ++++ guix/scripts/system.scm | 10 ++- 4 files changed, 198 insertions(+), 7 deletions(-) create mode 100644 gnu/system/examples/docker-image.tmpl diff --git a/doc/guix.texi b/doc/guix.texi index 32e132d87..3a1708e54 100644 =2D-- a/doc/guix.texi +++ b/doc/guix.texi @@ -19294,10 +19294,14 @@ size of the image. =20 @item vm-image @itemx disk-image =2DReturn a virtual machine or disk image of the operating system declared =2Din @var{file} that stands alone. By default, @command{guix system} =2Destimates the size of the image needed to store the system, but you can =2Duse the @option{--image-size} option to specify a value. +@itemx docker-image +Return a virtual machine, disk image, or Docker image of the operating +system declared in @var{file} that stands alone. By default, +@command{guix system} estimates the size of the image needed to store +the system, but you can use the @option{--image-size} option to specify +a value. Docker images are built to contain exactly what they need, so +the @option{--image-size} option is ignored in the case of +@code{docker-image}. =20 You can specify the root file system type by using the @option{--file-system-type} option. It defaults to @code{ext4}. @@ -19315,6 +19319,28 @@ using the following command: # dd if=3D$(guix system disk-image my-os.scm) of=3D/dev/sdc @end example =20 +When using @code{docker-image}, a Docker image is produced. Guix builds +the image from scratch, not from a pre-existing Docker base image. As a +result, it contains @emph{exactly} what you define in the operating +system configuration file. You can then load the image and launch a +Docker container using commands like the following: + +@example +image_id=3D"$(docker load < guixsd-docker-image.tar.gz)" +docker run -e GUIX_NEW_SYSTEM=3D/var/guix/profiles/system \\ + --entrypoint /var/guix/profiles/system/profile/bin/guile \\ + $image_id /var/guix/profiles/system/boot +@end example + +This command starts a new Docker container from the specified image. It +will boot the GuixSD system in the usual manner, which means it will +start any services you have defined in the operating system +configuration. Depending on what you run in the Docker container, it +may be necessary to give the container additional permissions. For +example, if you intend to build software using Guix inside of the Docker +container, you may need to pass the @option{--privileged} option to +@code{docker-run}. + @item container Return a script to run the operating system declared in @var{file} within a container. Containers are a set of lightweight isolation diff --git a/gnu/system/examples/docker-image.tmpl b/gnu/system/examples/do= cker-image.tmpl new file mode 100644 index 000000000..d73187398 =2D-- /dev/null +++ b/gnu/system/examples/docker-image.tmpl @@ -0,0 +1,47 @@ +;; This is an operating system configuration template for a "Docker image" +;; setup, so it has barely any services at all. + +(use-modules (gnu)) + +(operating-system + (host-name "komputilo") + (timezone "Europe/Berlin") + (locale "en_US.utf8") + + ;; This is where user accounts are specified. The "root" account is + ;; implicit, and is initially created with the empty password. + (users (cons (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + (supplementary-groups '("wheel" + "audio" "video")) + (home-directory "/home/alice")) + %base-user-accounts)) + + ;; Globally-installed packages. + (packages %base-packages) + + ;; Because the system will run in a Docker container, we may omit many + ;; things that would normally be required in an operating system + ;; configuration file. These things include: + ;; + ;; * bootloader + ;; * file-systems + ;; * services such as mingetty, udevd, slim, networking, dhcp + ;; + ;; Either these things are simply not required, or Docker provides + ;; similar services for us. + + ;; This will be ignored. + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (target "does-not-matter"))) + ;; This will be ignored, too. + (file-systems (list (file-system + (device "does-not-matter") + (mount-point "/") + (type "does-not-matter")))) + + ;; Guix is all you need! + (services (list (guix-service)))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 345cecedd..e9a94019d 100644 =2D-- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -22,6 +22,7 @@ =20 (define-module (gnu system vm) #:use-module (guix config) + #:use-module (guix docker) #:use-module (guix store) #:use-module (guix gexp) #:use-module (guix derivations) @@ -29,14 +30,18 @@ #:use-module (guix monads) #:use-module (guix records) #:use-module (guix modules) + #:use-module (guix scripts pack) #:use-module (guix utils) =20 #:use-module ((gnu build vm) #:select (qemu-command)) #:use-module (gnu packages base) + #:use-module (gnu packages bootloaders) #:use-module (gnu packages cdrom) + #:use-module (gnu packages compression) #:use-module (gnu packages guile) + #:autoload (gnu packages gnupg) (libgcrypt) #:use-module (gnu packages gawk) #:use-module (gnu packages bash) #:use-module (gnu packages less) @@ -73,6 +78,7 @@ system-qemu-image/shared-store system-qemu-image/shared-store-script system-disk-image + system-docker-image =20 virtual-machine virtual-machine?)) @@ -366,6 +372,114 @@ the image." #:disk-image-format disk-image-format #:references-graphs inputs)) =20 +(define* (system-docker-image os + #:key + (name "guixsd-docker-image") + register-closures?) + "Build a docker image. OS is the desired . NAME is t= he +base name to use for the output file. When REGISTER-CLOSURES? is not #f, +register the closure of OS with Guix in the resulting Docker image. This = only +makes sense when you want to build a GuixSD Docker image that has Guix +installed inside of it. If you don't need Guix (e.g., your GuixSD Docker +image just contains a web server that is started by Shepherd), then you sh= ould +set REGISTER-CLOSURES? to #f." + (define not-config? + (match-lambda + (('guix 'config) #f) + (('guix rest ...) #t) + (('gnu rest ...) #t) + (rest #f))) + + (define config + ;; (guix config) module for consumption by (guix gcrypt). + (scheme-file "gcrypt-config.scm" + #~(begin + (define-module (guix config) + #:export (%libgcrypt)) + + ;; XXX: Work around . + (eval-when (expand load eval) + (define %libgcrypt + #+(file-append libgcrypt "/lib/libgcrypt")))))) + + (define json + ;; Pick the guile-json package that corresponds to the Guile used to b= uild + ;; derivations. + (if (string-prefix? "2.0" (package-version (default-guile))) + guile2.0-json + guile-json)) + + (mlet %store-monad ((os-drv (operating-system-derivation os #:container?= #t)) + (name -> (string-append name ".tar.gz")) + (system-graph-name -> "system") + ;; Use a Guile that supports dlopen because it needs= to + ;; dlopen libgcrypt in the initrd. See: + ;; https://lists.gnu.org/archive/html/guix-devel/201= 7-10/msg00233.html + (initrd (base-initrd %linux-vm-file-systems + #:virtio? #t + #:guile guile-2.2))) + (define build + (with-imported-modules `(,@(source-module-closure '((guix docker) + (gnu build vm) + (guix build util= s) + (guix build sysc= alls)) + #:select? not-conf= ig?) + ((guix config) =3D> ,config)) + #~(begin + ;; Guile-JSON is required by (guix docker). + (add-to-load-path + (string-append #+json "/share/guile/site/" + (effective-version))) + (use-modules (gnu build vm) + (guix build utils) + (guix build syscalls) + (srfi srfi-26) + (ice-9 match) + (guix docker) + (srfi srfi-19)) + + (let* ((inputs + '#$(append (list tree parted e2fsprogs dosfstools tar) + (map canonical-package + (list sed grep coreutils findutils gaw= k)) + (if register-closures? (list guix) '()))) + + ;; This variable is unused but allows us to add INPUTS-= TO-COPY + ;; as inputs. + (to-register '#$os-drv) + (initialize (root-partition-initializer + #:closures '(#$system-graph-name) + #:register-closures? #$register-closures? + #:system-directory #$os-drv + ;; De-duplication would fail due to + ;; cross-device link errors, so don't do i= t. + #:deduplicate? #f)) + (root "/tmp/root")) + + (set-path-environment-variable "PATH" '("bin" "sbin") inputs) + (mkdir-p root) + (initialize root) + ;; Use a temporary directory inside xchg to avoid hitting sp= ace + ;; limitations in the initrd's root file system. + (let ((tmpdir "/xchg/tmp/docker-image")) + (build-docker-image + (string-append "/xchg/" #$name) ;; The output file. + #$os-drv + #:closure (string-append "/xchg/" #$system-graph-name) + #:compressor '(#+(file-append gzip "/bin/gzip") "-9n") + #:creation-time (make-time time-utc 0 1) + #:tmpdir tmpdir + #:extra-items-dir root)))))) + (expression->derivation-in-linux-vm + name + build + #:initrd initrd + #:make-disk-image? #f + #:single-file-output? #t + #:references-graphs `((,system-graph-name ,os-drv)) + ;; Our larger initrd requires more memory. + #:memory-size 512))) + ;;; ;;; VM and disk images. diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 999ffb010..20919d1b1 100644 =2D-- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -670,7 +670,9 @@ procedure of its type." ("iso9660" "image.iso") (_ "disk-image")) #:disk-image-size image-size =2D #:file-system-type file-system-type)))) + #:file-system-type file-system-type)) + ((docker-image) + (system-docker-image os #:register-closures? #t)))) =20 (define (maybe-suggest-running-guix-pull) "Suggest running 'guix pull' if this has never been done before." @@ -867,6 +869,8 @@ Some ACTIONS support additional ARGS.\n")) vm-image build a freestanding virtual machine image\n")) (display (G_ "\ disk-image build a disk image, suitable for a USB stick\n")) + (display (G_ "\ + docker-image build a Docker image\n")) (display (G_ "\ init initialize a root file system to run GNU\n")) (display (G_ "\ @@ -1098,7 +1102,7 @@ argument list and OPTS is the option alist." (case action ((build container vm vm-image disk-image reconfigure init extension-graph shepherd-graph list-generations roll-back =2D switch-generation search) + switch-generation search docker-image) (alist-cons 'action action result)) (else (leave (G_ "~a: unknown action~%") action)))))) =20 @@ -1127,7 +1131,7 @@ argument list and OPTS is the option alist." (exit 1)) =20 (case action =2D ((build container vm vm-image disk-image reconfigure) + ((build container vm vm-image disk-image docker-image reconfigure) (unless (or (=3D count 1) (and expr (=3D count 0))) (fail))) =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqUNjYACgkQ3UCaFdgi Rp0yXw/8CfPVp+h90rWXeAcEZ0MQYEHRFYSlsM630AjQUe/boN/1cEbeOYQPKu82 UFFRIJAg6dqszVo4p76wxoza3JXrDJ47RNz3lnsGe2uuyGKb4teG/sk3Y+XYG0qb 8lzspU4QVa9eBl4QANce1Cy/wBUpB/VA66pMm3Hfsj9Ut0+7JXP4dQgu5SHsk28q g8NwgL9XibKcC+lFPUl8fObwPeRmTF5eAPVRBLKoquNSqfQkyhZuQcVc0Im1Fp2F p+ka2X6XO12xSN6dSBGCfUVoZdsnMopKvwT95yEjGq3C4IXo3yG//zUDI03i5Ayb DSqPSYa32iI7+cL5jeeTF1ZgfR4DiJ00xYzQYCmoLI8t2kXtTtNlkuvKp0i+GK4M In+74zjV2YoDvRYpP90yw1sqqOb7YindgNeLnxgE6W9dSMedg4z98yhd4QaFluNT bCtF33RyM4aq1uQ2/u0y4gOdXCmQThPc8X6q5RfGFIODpX9dmv1ciTbZGaYGjwhs 332LEExAl1DhIuhMoZd+nBaRAPC8HxgmB7wVsjUL+HNZfvcHJl28l67HG+I+1o89 nw2tplwBZP299GdM+tP238V2pxgIKbvl8ouu2FT3ByDSDWnl7M/hZTDRzG796dr1 71iF0ZMeWTy1Fbrdjkz9NwavCBfxsE2KctS4lhEpY7PiFZ4qMJQ= =rM0N -----END PGP SIGNATURE----- --==-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 4/7] docker: Allow the use of a custom temporary directory. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 26 Feb 2018 23:48:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151968882915268 (code B ref 30572); Mon, 26 Feb 2018 23:48:01 +0000 Received: (at 30572) by debbugs.gnu.org; 26 Feb 2018 23:47:09 +0000 Received: from localhost ([127.0.0.1]:34106 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqSU9-0003yB-5W for submit@debbugs.gnu.org; Mon, 26 Feb 2018 18:47:09 -0500 Received: from dd26836.kasserver.com ([85.13.145.193]:53572) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqSU6-0003y2-Nn for 30572@debbugs.gnu.org; Mon, 26 Feb 2018 18:47:07 -0500 Received: from localhost (77.118.239.24.wireless.dyn.drei.com [77.118.239.24]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 76F5E3362AB9; Tue, 27 Feb 2018 00:47:04 +0100 (CET) Date: Tue, 27 Feb 2018 00:46:58 +0100 From: Danny Milosavljevic Message-ID: <20180227004658.4cefda82@scratchpost.org> In-Reply-To: <87po4rra78.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-4-cmmarusich@gmail.com> <20180226014859.4f7fe37c@scratchpost.org> <87po4rra78.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Hi Chris, On Mon, 26 Feb 2018 17:23:55 +0100 Chris Marusich wrote: > Danny Milosavljevic writes: > > > Hmm, I have a slight preference for not magically adding "/docker-image" here > > but rather adding it in the caller and in the default. > > Good idea. Here's a new version of Patch 4/7 which does what you > suggest! What do you think? + (and (zero? (apply system* "tar" "-C" tmpdir "-cf" image Apparently this works as-is, but also here, I'd write + (and (zero? (apply system* "tar" "-cf" image "-C" tmpdir Otherwise LGTM! From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 5/7] docker: Allow the addition of extra files into the image. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 26 Feb 2018 23:48:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151968886015311 (code B ref 30572); Mon, 26 Feb 2018 23:48:03 +0000 Received: (at 30572) by debbugs.gnu.org; 26 Feb 2018 23:47:40 +0000 Received: from localhost ([127.0.0.1]:34109 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqSUe-0003yt-De for submit@debbugs.gnu.org; Mon, 26 Feb 2018 18:47:40 -0500 Received: from dd26836.kasserver.com ([85.13.145.193]:53608) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqSUc-0003yl-FF for 30572@debbugs.gnu.org; Mon, 26 Feb 2018 18:47:39 -0500 Received: from localhost (77.118.239.24.wireless.dyn.drei.com [77.118.239.24]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 4E62F3362AB9; Tue, 27 Feb 2018 00:47:37 +0100 (CET) Date: Tue, 27 Feb 2018 00:47:34 +0100 From: Danny Milosavljevic Message-ID: <20180227004734.54c30f7c@scratchpost.org> In-Reply-To: <87muzvra4u.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-5-cmmarusich@gmail.com> <20180226003647.6174ad02@scratchpost.org> <87muzvra4u.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: LGTM! [...] Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [85.13.145.193 listed in list.dnswl.org] 2.5 BODY_SINGLE_WORD Message body is only one word (no spaces) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: LGTM! [...] Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [85.13.145.193 listed in list.dnswl.org] 2.5 BODY_SINGLE_WORD Message body is only one word (no spaces) LGTM! From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 4/7] docker: Allow the use of a custom temporary directory. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 27 Feb 2018 04:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Danny Milosavljevic Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15197066508202 (code B ref 30572); Tue, 27 Feb 2018 04:45:02 +0000 Received: (at 30572) by debbugs.gnu.org; 27 Feb 2018 04:44:10 +0000 Received: from localhost ([127.0.0.1]:34226 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqX7a-00028D-7s for submit@debbugs.gnu.org; Mon, 26 Feb 2018 23:44:10 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:44018) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqX7Y-000280-Rs for 30572@debbugs.gnu.org; Mon, 26 Feb 2018 23:44:09 -0500 Received: by mail-pg0-f65.google.com with SMTP id e9so2769087pgs.10 for <30572@debbugs.gnu.org>; Mon, 26 Feb 2018 20:44:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=OJo2OWtUEfmvITHYh3j6RCKOl/8eKE8IChwJTpIUQ2E=; b=ljnqMhgmsUjnliqA55ERAZoFd35KaBzLQF6MNziMOiPCs4D04Nuec9O0CQPHa4IQ1L rWBtz0l638mSdGIvTViXq9nBg2EKcpTILgj1bgHxhPZipphslKoByEaNKZi6rgXGrvZ2 3ybRbexQH1thRC7yLtswFkcafADvELf4iq7JyosazIMbuI1t8fs6F1PaZSTkBUMsieij RwEQKLzQdL/0mGQQNqhWwHnZPJmR0/oh6A/A7OvSR47Kzf5saR1YsuiiWgP4JxrRngbk 14yOwjt80Z99tO3QEPdErhlek8gthqIdHg3pIU/fa6ICzca+jirY8OxWFEmyuUbzMcn8 7Jhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=OJo2OWtUEfmvITHYh3j6RCKOl/8eKE8IChwJTpIUQ2E=; b=a3jTyaKg2MU1vS3sUN7EhLspS2Z4qCpOx3XSopcMmn7/j6nrfk+NoQlOVGu5sLQ3Mq RoDbauQ4YwW49d9SsvyAnYzgPppyXp4XvSMJLjBTHO2dNdIDsd/oPOD0fDkfaEVMcaDZ CIabWyOorO1sHev0zyWnhgFLHkox3U/yP6d86L2NvqulLlJyM8tjco5VHfWWx7HMkAy0 Wa7php3o9YM2w32+ZoAtAA4p4N3g2NHFK99YayHjM3dvme0ckputyIQqsL0w9VJlPLZ4 AUVCifbiXHEM9TQRTZzBUrZfLpl4zIZutQEa6jzCJJTBr/7KmD3KN2E3F5hlz12H0E3W VQ0g== X-Gm-Message-State: APf1xPAvJNvgjsXqkfEJ1PRW7esfjjlnxsLqEpmkRmOmGlUXhqJJixNl n74ZzmKJ/64RfFO9tqidWCEEOw== X-Google-Smtp-Source: AH8x226vxYa8TquRhfAFi6DEi7uNNaVYJHOiYxds4RMu5l0ALQR+zQWdVVcuYHx3vRXsLgIwYLdgSA== X-Received: by 10.98.12.11 with SMTP id u11mr12984040pfi.192.1519706642432; Mon, 26 Feb 2018 20:44:02 -0800 (PST) Received: from garuda.local (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id b123sm20489242pfb.179.2018.02.26.20.44.00 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 26 Feb 2018 20:44:00 -0800 (PST) From: Chris Marusich References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-4-cmmarusich@gmail.com> <20180226014859.4f7fe37c@scratchpost.org> <87po4rra78.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> <20180227004658.4cefda82@scratchpost.org> Date: Tue, 27 Feb 2018 05:43:59 +0100 In-Reply-To: <20180227004658.4cefda82@scratchpost.org> (Danny Milosavljevic's message of "Tue, 27 Feb 2018 00:46:58 +0100") Message-ID: <87y3jfvy7k.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Danny Milosavljevic writes: > + (and (zero? (apply system* "tar" "-C" tmpdir "-cf" image > > Apparently this works as-is, but also here, I'd write > > + (and (zero? (apply system* "tar" "-cf" image "-C" tmpdir > > Otherwise LGTM! Good catch! I've attached a new patch that does what you suggest. =2D-=20 Chris --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0004-docker-Allow-the-use-of-a-custom-temporary-directory.patch Content-Transfer-Encoding: quoted-printable From=204bca56cc619e90b1c820c2a7f8f7a5fe1f4a8645 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Mon, 19 Feb 2018 05:45:03 +0100 Subject: [PATCH 4/8] docker: Allow the use of a custom temporary directory. * guix/docker.scm: (build-docker-image): Add #:tmpdir keyword argument. =2D-- guix/docker.scm | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/guix/docker.scm b/guix/docker.scm index 060232148..659d228aa 100644 =2D-- a/guix/docker.scm +++ b/guix/docker.scm @@ -106,7 +106,8 @@ return \"a\"." #:key closure compressor (symlinks '()) (system (utsname:machine (uname))) =2D (creation-time (current-time time-utc))) + (creation-time (current-time time-utc)) + (tmpdir "/tmp/docker-image")) "Write to IMAGE a Docker image archive from the given store PATH. The i= mage contains the closure of PATH, as specified in CLOSURE (a file produced by #:references-graphs). SYMLINKS must be a list of (SOURCE -> TARGET) tuples @@ -115,9 +116,13 @@ to PATH. SYSTEM is a GNU triplet (or prefix thereof) = of the system the binaries at PATH are for; it is used to produce metadata in the image. =20 Use COMPRESSOR, a command such as '(\"gzip\" \"-9n\"), to compress IMAGE. = Use =2DCREATION-TIME, a SRFI-19 time-utc object, as the creation time in metada= ta." =2D (let ((directory "/tmp/docker-image") ;temporary working dir= ectory =2D (closure (canonicalize-path closure)) +CREATION-TIME, a SRFI-19 time-utc object, as the creation time in metadata. + +TMPDIR is the name of the temporary working directory to use. This can be +useful if you need to use a specific temporary directory, for example beca= use +the default temporary directory lies on a file system with insufficient +space." + (let ((closure (canonicalize-path closure)) (id (docker-id path)) (time (date->string (time-utc->date creation-time) "~4")) (arch (let-syntax ((cond* (syntax-rules () @@ -133,9 +138,9 @@ CREATION-TIME, a SRFI-19 time-utc object, as the creati= on time in metadata." ("arm" "arm") ("mips64" "mips64le"))))) ;; Make sure we start with a fresh, empty working directory. =2D (mkdir directory) + (mkdir-p tmpdir) =20 =2D (and (with-directory-excursion directory + (and (with-directory-excursion tmpdir (mkdir id) (with-directory-excursion id (with-output-to-file "VERSION" @@ -174,10 +179,10 @@ CREATION-TIME, a SRFI-19 time-utc object, as the crea= tion time in metadata." (lambda () (scm->json (repositories path id))))) =20 =2D (and (zero? (apply system* "tar" "-C" directory "-cf" image + (and (zero? (apply system* "tar" "-cf" image "-C" tmpdir `(,@%tar-determinism-options ,@(if compressor (list "-I" (string-join compressor)) '()) "."))) =2D (begin (delete-file-recursively directory) #t))))) + (begin (delete-file-recursively tmpdir) #t))))) =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqU4g8ACgkQ3UCaFdgi Rp1Vcw/+JiEeCQEZzjMqDP7wdhHZzUS9VXWKQ2zi7+ypsqW14kHPapuxLP+icOTp 4ntO8+9TFD3xrj8M3cuLwlSSBxapuGea9WZ/HHEqxSlLfH4c9lVdc47IZC1YnUpY wZd8/LmfJwYaiITCQtbgcsG1FFT4Zsjm1KOpyStx4W8Mfiuc2wePp71gcxAtgPlo BoizExkCBIigdaPwgE5edO/2c7o1BTW1n63ycEGr0HRKjhX0wKqw3EowWEGcLorP zVl/FoUxuZUYv3p4WEQWgMiO9Q4NPfLsJFTEEXQHdY/9q5lMCfcVQUVGAm7k3w3g d6TAus3+XvoM9irCtg/Jhstn3+vmzaBckfaBhdoVlCqhkczVw7CdSOduTtiQPcIV OgRZpQb7awHlabLTV5nbqEQKpdtXyr2IVv62pujyJDOhtiBLF94+ElJzAd9G2PLJ sTl8qNR/lARhz91R5OJbmfbRrCikcDosNTVtzvkS5GNEIVaWVSeVQqXi8TzVqZsv uiCbz1HkeCowa4r9r/djmAqGWKhEC+XdHyqmc6BCzk9ajP03GQXh6C5/bl8Gb4Vi rTxUWvwf1E2eoh+LLhY8ITLNSCozC2S1H5990S1g5QzW8kLNvJFgFuc3WhySvluf oVzu+W9aIl3To0uoBr7JpOp2EuNFM0nv4MuhPdVZ6vX22c2eOcE= =ocWZ -----END PGP SIGNATURE----- --==-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] tests: Add tests for "guix pack". Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 27 Feb 2018 16:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.151974915227067 (code B ref 30572); Tue, 27 Feb 2018 16:33:02 +0000 Received: (at 30572) by debbugs.gnu.org; 27 Feb 2018 16:32:32 +0000 Received: from localhost ([127.0.0.1]:35827 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqiB6-00072U-AJ for submit@debbugs.gnu.org; Tue, 27 Feb 2018 11:32:32 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:53254) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqiB4-00072K-GK for 30572@debbugs.gnu.org; Tue, 27 Feb 2018 11:32:31 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 7023610CBE; Tue, 27 Feb 2018 17:32:29 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MJaUFaxs2zkz; Tue, 27 Feb 2018 17:32:28 +0100 (CET) Received: from ribbon (unknown [193.50.110.216]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 8B3751054D; Tue, 27 Feb 2018 17:32:28 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222103528.5108-1-cmmarusich@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 9 =?UTF-8?Q?Vent=C3=B4se?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Tue, 27 Feb 2018 17:32:28 +0100 In-Reply-To: <20180222103528.5108-1-cmmarusich@gmail.com> (Chris Marusich's message of "Thu, 22 Feb 2018 11:35:22 +0100") Message-ID: <87y3jez943.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Hello Chris, Chris Marusich skribis: > * Makefile.am (SH_TESTS): Add guix-pack.sh. > * tests/guix-pack.sh: New file. That=E2=80=99s a great idea, and indeed something that should have been done earlier on. Some comments: > +# Use --dry-run because it takes too long to actually build everything. > +GUIX_BUILD_OPTIONS=3D"--no-substitutes --dry-run" > +export GUIX_BUILD_OPTIONS > + > +# Build a tarball. > +guix pack coreutils It would be ideal if we could actually build something, but built something cheap. The way we do that in those tests is by: 1. Using the =E2=80=98guile-bootstrap=E2=80=99 package as an example, und= er the assumption that it=E2=80=99s already available, does not require networking, and is built in one or two seconds. 2. Using =E2=80=98--bootstrap=E2=80=99 or a similar option so that the de= rivations use =E2=80=98guile-bootstrap=E2=80=99 instead of =E2=80=98guile-final=E2= =80=99, for the same reason. See for instance tests/guix-package.sh. Would you be willing to try something along these lines? Thanks, Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 4/7] docker: Allow the use of a custom temporary directory. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 27 Feb 2018 17:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15197508344651 (code B ref 30572); Tue, 27 Feb 2018 17:01:02 +0000 Received: (at 30572) by debbugs.gnu.org; 27 Feb 2018 17:00:34 +0000 Received: from localhost ([127.0.0.1]:35843 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqicD-0001Cx-W3 for submit@debbugs.gnu.org; Tue, 27 Feb 2018 12:00:34 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:53572) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqicC-0001Cp-Jy for 30572@debbugs.gnu.org; Tue, 27 Feb 2018 12:00:32 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id A9AE17076; Tue, 27 Feb 2018 18:00:31 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9rPwadfSZZPw; Tue, 27 Feb 2018 18:00:31 +0100 (CET) Received: from ribbon (unknown [193.50.110.216]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 01C646FD7; Tue, 27 Feb 2018 18:00:30 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-4-cmmarusich@gmail.com> <20180226014859.4f7fe37c@scratchpost.org> <87po4rra78.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> <20180227004658.4cefda82@scratchpost.org> <87y3jfvy7k.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 9 =?UTF-8?Q?Vent=C3=B4se?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Tue, 27 Feb 2018 18:00:30 +0100 In-Reply-To: <87y3jfvy7k.fsf@gmail.com> (Chris Marusich's message of "Tue, 27 Feb 2018 05:43:59 +0100") Message-ID: <87r2p6z7td.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Hello Chris, Chris Marusich skribis: > +TMPDIR is the name of the temporary working directory to use. This can = be > +useful if you need to use a specific temporary directory, for example be= cause > +the default temporary directory lies on a file system with insufficient > +space." Usually this code is used in a derivation, where it doesn=E2=80=99t really matter which directory is used, no? Thanks, Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 3/7] system: Allow customization of the initrd's Guile. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 27 Feb 2018 17:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15197510444976 (code B ref 30572); Tue, 27 Feb 2018 17:05:01 +0000 Received: (at 30572) by debbugs.gnu.org; 27 Feb 2018 17:04:04 +0000 Received: from localhost ([127.0.0.1]:35848 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqifc-0001IC-Dg for submit@debbugs.gnu.org; Tue, 27 Feb 2018 12:04:04 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:53602) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqifa-0001Ht-3C for 30572@debbugs.gnu.org; Tue, 27 Feb 2018 12:04:02 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id A559D10800; Tue, 27 Feb 2018 18:04:01 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BELEEnluvFt2; Tue, 27 Feb 2018 18:04:01 +0100 (CET) Received: from ribbon (unknown [193.50.110.216]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 0FE127076; Tue, 27 Feb 2018 18:04:01 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-3-cmmarusich@gmail.com> <87371t8bt2.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 9 =?UTF-8?Q?Vent=C3=B4se?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Tue, 27 Feb 2018 18:04:00 +0100 In-Reply-To: <87371t8bt2.fsf@gmail.com> (Chris Marusich's message of "Thu, 22 Feb 2018 13:10:33 +0100") Message-ID: <87muzuz7nj.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Hello! Chris Marusich skribis: > @deffn {Monadic Procedure} base-initrd @var{file-systems} @ > - [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? = #f]@ > + [#:linux linux-libre] > + [#:mapped-devices '()] [#:guile %guile-static-stripped] > + [#:qemu-networking? #f] [#:volatile-root? #f]@ Nitpick: you need an @ at the end of intermediate lines. :-) Otherwise LGTM. Thanks, Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 5/7] docker: Allow the addition of extra files into the image. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 27 Feb 2018 17:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15197512875326 (code B ref 30572); Tue, 27 Feb 2018 17:09:01 +0000 Received: (at 30572) by debbugs.gnu.org; 27 Feb 2018 17:08:07 +0000 Received: from localhost ([127.0.0.1]:35853 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqijX-0001Nq-25 for submit@debbugs.gnu.org; Tue, 27 Feb 2018 12:08:07 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:53694) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqijW-0001Nj-7e for 30572@debbugs.gnu.org; Tue, 27 Feb 2018 12:08:06 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id B827711AEA; Tue, 27 Feb 2018 18:08:05 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wcToHHgdfxRB; Tue, 27 Feb 2018 18:08:05 +0100 (CET) Received: from ribbon (unknown [193.50.110.216]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 97E0010800; Tue, 27 Feb 2018 18:08:04 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-5-cmmarusich@gmail.com> <20180226003647.6174ad02@scratchpost.org> <87muzvra4u.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 9 =?UTF-8?Q?Vent=C3=B4se?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Tue, 27 Feb 2018 18:08:04 +0100 In-Reply-To: <87muzvra4u.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> (Chris Marusich's message of "Mon, 26 Feb 2018 17:25:21 +0100") Message-ID: <87inaiz7gr.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Chris Marusich skribis: > From 5a889e7d8dc6847c2d9a8ae526df7c974688a947 Mon Sep 17 00:00:00 2001 > From: Chris Marusich > Date: Mon, 19 Feb 2018 05:53:16 +0100 > Subject: [PATCH 5/8] docker: Allow the addition of extra files into the i= mage. > > * guix/docker.scm (build-docker-image): Add #:extra-items-dir keyword > argument. What about simply changing the existing =E2=80=98path=E2=80=99 argument to = =E2=80=98paths=E2=80=99 (plural)? Would that work for you? It would seem more natural to me. Besides, I think we should keep avoiding abbreviations like =E2=80=9Cdir=E2= =80=9D (see =E2=80=9CFormatting Code=E2=80=9D in the manual :-)). Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 6/7] system: Add "guix system docker-image" command. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 27 Feb 2018 17:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15197518366173 (code B ref 30572); Tue, 27 Feb 2018 17:18:01 +0000 Received: (at 30572) by debbugs.gnu.org; 27 Feb 2018 17:17:16 +0000 Received: from localhost ([127.0.0.1]:35862 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqisO-0001bU-65 for submit@debbugs.gnu.org; Tue, 27 Feb 2018 12:17:16 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:53802) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eqisM-0001bN-NB for 30572@debbugs.gnu.org; Tue, 27 Feb 2018 12:17:15 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 1F2B711A3A; Tue, 27 Feb 2018 18:17:14 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pzRoHPfmvmHb; Tue, 27 Feb 2018 18:17:13 +0100 (CET) Received: from ribbon (unknown [193.50.110.216]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 068171054D; Tue, 27 Feb 2018 18:17:12 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-6-cmmarusich@gmail.com> <87k1uzr9vt.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 9 =?UTF-8?Q?Vent=C3=B4se?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Tue, 27 Feb 2018 18:17:12 +0100 In-Reply-To: <87k1uzr9vt.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> (Chris Marusich's message of "Mon, 26 Feb 2018 17:30:46 +0100") Message-ID: <87efl6z71j.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Chris Marusich skribis: > + (mlet %store-monad ((os-drv (operating-system-derivation os #:containe= r? #t)) Since has a gexp compiler, this line is no longer needed. Instead you can write: #~(do something with #$os) > + (name -> (string-append name ".tar.gz")) > + (system-graph-name -> "system") > + ;; Use a Guile that supports dlopen because it nee= ds to > + ;; dlopen libgcrypt in the initrd. See: > + ;; https://lists.gnu.org/archive/html/guix-devel/2= 017-10/msg00233.html > + (initrd (base-initrd %linux-vm-file-systems > + #:virtio? #t > + #:guile guile-2.2))) Uh, that must be a big initrd indeed. :-) > + (define build > + (with-imported-modules `(,@(source-module-closure '((guix docker) > + (gnu build vm) > + (guix build ut= ils) > + (guix build sy= scalls)) > + #:select? not-co= nfig?) > + ((guix config) =3D> ,config)) > + #~(begin > + ;; Guile-JSON is required by (guix docker). > + (add-to-load-path > + (string-append #+json "/share/guile/site/" > + (effective-version))) > + (use-modules (gnu build vm) > + (guix build utils) > + (guix build syscalls) > + (srfi srfi-26) > + (ice-9 match) > + (guix docker) > + (srfi srfi-19)) > + > + (let* ((inputs > + '#$(append (list tree parted e2fsprogs dosfstools ta= r) > + (map canonical-package > + (list sed grep coreutils findutils g= awk)) > + (if register-closures? (list guix) '()))) > + > + ;; This variable is unused but allows us to add INPUT= S-TO-COPY > + ;; as inputs. > + (to-register '#$os-drv) > + (initialize (root-partition-initializer > + #:closures '(#$system-graph-name) > + #:register-closures? #$register-closures? > + #:system-directory #$os-drv > + ;; De-duplication would fail due to > + ;; cross-device link errors, so don't do= it. > + #:deduplicate? #f)) > + (root "/tmp/root")) > + > + (set-path-environment-variable "PATH" '("bin" "sbin") inpu= ts) > + (mkdir-p root) > + (initialize root) > + ;; Use a temporary directory inside xchg to avoid hitting = space > + ;; limitations in the initrd's root file system. > + (let ((tmpdir "/xchg/tmp/docker-image")) > + (build-docker-image > + (string-append "/xchg/" #$name) ;; The output file. > + #$os-drv > + #:closure (string-append "/xchg/" #$system-graph-name) > + #:compressor '(#+(file-append gzip "/bin/gzip") "-9n") > + #:creation-time (make-time time-utc 0 1) > + #:tmpdir tmpdir > + #:extra-items-dir root)))))) > + (expression->derivation-in-linux-vm > + name > + build What about here replacing =E2=80=98build=E2=80=99 on the line above with so= mething like: #~(execl #$(program-file "build-docker-image.scm" build) "build-docker-image") This would create a =E2=80=98build-docker-image.scm=E2=80=99 script that us= es the real Guile 2.2, but we could still use guile-static-stripped in the initrd. WDYT? Thanks! Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 6/7] system: Add "guix system docker-image" command. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 03 Mar 2018 07:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152006229631996 (code B ref 30572); Sat, 03 Mar 2018 07:32:01 +0000 Received: (at 30572) by debbugs.gnu.org; 3 Mar 2018 07:31:36 +0000 Received: from localhost ([127.0.0.1]:41768 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1es1do-0008K0-9y for submit@debbugs.gnu.org; Sat, 03 Mar 2018 02:31:36 -0500 Received: from mail-pg0-f42.google.com ([74.125.83.42]:38690) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1es1dm-0008Jl-MT for 30572@debbugs.gnu.org; Sat, 03 Mar 2018 02:31:35 -0500 Received: by mail-pg0-f42.google.com with SMTP id l24so4700804pgc.5 for <30572@debbugs.gnu.org>; Fri, 02 Mar 2018 23:31:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=nY3VbRcD7gbRBIO/fVn7wB01VLy0AmaQgMN1j3P0dlA=; b=KiFYWuSMq609/8JaOcwT3aJlSTVqyySWnjg+IfNpCL3JKqKg11UHhZCY+oPNKLalDG YWWBp2IDm1Km/xAYYJIuWdFRWnWy1JmEpcUENWCCX4ibE2hmL54w5VFKgfWucc5x/exd vlDpjXR1st7ZdSdc2Yw5cnGSq/EOlmLWs4HI8nhC1oX8MyjE6WBKJ+xNACBtxscn6S35 pfG0yLnEBRW7GzV0W9Ba2tze5BPHCh6JEhtWFGVHrdsa43uxdxqIPFDQCaOgLhCpPeVU 7bSw3LG3Qs1Vhrm+9FinYqp1nBzVbQy9AEgMmjYjs1A5V005ZzuNlAMhyvR9V7eYKi03 a8sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=nY3VbRcD7gbRBIO/fVn7wB01VLy0AmaQgMN1j3P0dlA=; b=m0PGLeunnFo15qjmp4Dq+JXpHSMn5gyRRRmqLhUm4kndv1+42sVxLtrSS+dBXEdchb NR7lbI63wijQsNLNw6ULttCJbK2MIVvRAdQ9bPPpv8+AxIRM8R/Ep4NKPmUTU6Ky8kHt WA/Jb7YCF34J3WAcdO6pzXU72fIV1j8FMbB8KsoCu6zU+5Bde/zlAlZz9t6AJlh2iUBS 1F5frW5gSuDtoHbveK29KFuJWqsMfGfV4BzXVcYRbb8Vg7oNtYnGWdQwabDLqIqluX9u laSl+fRKbk3h0LwEl5zouPJg5xKDKpi6yDbxNXOuS2Swt7VySZCj455ae6X/z8jt9f3+ SwNg== X-Gm-Message-State: APf1xPDctooPQtieLnaC9YaQMkdBFsEHKE+pySzn7oryPIkb01r+6goi a9o7MVjoLiPQQJWjMvUHpl1GDg== X-Google-Smtp-Source: AG47ELtdzT43MsPtVDWAZLX6VzniBOhRikQbN7fWjs7b2El41Je2j/oklbPfTkE+qumvtD+GTQuvjg== X-Received: by 10.99.176.68 with SMTP id z4mr6458842pgo.74.1520062288185; Fri, 02 Mar 2018 23:31:28 -0800 (PST) Received: from garuda.local (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id e19sm12197427pga.8.2018.03.02.23.31.26 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 02 Mar 2018 23:31:26 -0800 (PST) From: Chris Marusich References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-6-cmmarusich@gmail.com> <87k1uzr9vt.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> <87efl6z71j.fsf@gnu.org> Date: Sat, 03 Mar 2018 08:31:25 +0100 In-Reply-To: <87efl6z71j.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 27 Feb 2018 18:17:12 +0100") Message-ID: <87po4l8vjm.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Ludo, Thank you for taking the time to review the patch series! ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Chris Marusich skribis: > >> + (mlet %store-monad ((os-drv (operating-system-derivation os #:contain= er? #t)) > > Since has a gexp compiler, this line is no longer > needed. Instead you can write: > > #~(do something with #$os) Will this work even though I need #:container? to be #t? > What about here replacing =E2=80=98build=E2=80=99 on the line above with = something like: > > #~(execl #$(program-file "build-docker-image.scm" build) > "build-docker-image") > > This would create a =E2=80=98build-docker-image.scm=E2=80=99 script that = uses the real > Guile 2.2, but we could still use guile-static-stripped in the initrd. > > WDYT? That sounds like a good idea. I'll look into it and send an update in a few days. By the way, if you have any thoughts regarding the questions I asked in the very first email of this patch series, I'd love to hear them! =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqaT00ACgkQ3UCaFdgi Rp1MsA//efQUobfBhsugsZn9MpH0YUQyPhorvlmzXsLaDERqwiGaH5EdgbdjHTEO 9Q7m8o1ikYw93aEZT1S2OFfd5vkpUlWgvtZiw74/tGVb4wNbcz4v4FvIG5tWmcXe b4dSxfJDHirRkUNdH+D+hfyhLkCfXDHmPuREOrV/IhSkYfKore3DYw+cJduKPQNk 2j4OCUQ1YqkmWTUUybZh8ay4WfWZN6gz6qw38DTIsbacyiRqvsQbWyg17uyWuymi nlwWxu5/OwJCvWViPTJljHqBhsdr+3N+devsgfuHdOUZ4kc92Cv553cTf5fWVYuc LsP43dbZqcEcOn035ixf8hCIkf97hzTLty7VWIQ9i2Th6JmECeXXQOlj1Ae48C/8 BrjL/98zgElwbhg6uNsneb8pXwUhMFZibur4GnMMqBITbCgRwmXMlJr9CfqzSJ9k j56Np+zlUrGm9vFxTkiCudwtceoVBk3c7CQlDxa/foVv/2dMTjpGb55oF+b9g5Wy LglBU/P/FS6jOdTOQT1mvDs1EuhtAsgO4oscfujQpERunhwtDgr6CH1FIRbNQOf9 RjP7VWMIKZEAD50as5GVEBpeaFpPjgONuSOsWuUh+NeT7M9et9wRH2w23GydYGzC 3EeSjKGPDUGxZ+3pJ1+rMjyPpXp5scnGl0a1hCIrDNopXcSf6co= =sZsd -----END PGP SIGNATURE----- --=-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] tests: Add tests for "guix pack". Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 06 Mar 2018 05:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15203156599015 (code B ref 30572); Tue, 06 Mar 2018 05:55:02 +0000 Received: (at 30572) by debbugs.gnu.org; 6 Mar 2018 05:54:19 +0000 Received: from localhost ([127.0.0.1]:46735 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1et5YC-0002LG-Tk for submit@debbugs.gnu.org; Tue, 06 Mar 2018 00:54:19 -0500 Received: from mail-it0-f47.google.com ([209.85.214.47]:53899) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1et5Y6-0002Kd-Dz for 30572@debbugs.gnu.org; Tue, 06 Mar 2018 00:54:11 -0500 Received: by mail-it0-f47.google.com with SMTP id w63so12325869ita.3 for <30572@debbugs.gnu.org>; Mon, 05 Mar 2018 21:54:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=NNMDufunhGlAQxz9oPGw51M11l8NAtfV4IwMAs63XAE=; b=qNfgQtSagn5KSxhdtPzKza4jaPJglkJivO7vgoJPu62Ia8jOBXGvqPmkIzkuhP9gUC YOa5pFgO8a5xe4Y/ODpiUgmKMTBHxRqavryYAFsTnZO5GTtV1xTczS46TCI6ee9imXUZ LLmDFMqO21HcGanN1GfeUstyrZMxQygWneRlD6meeigtqNIrIZXJxOg6c3rSk9rP5d/o XHZyPv8Be7z/Yb1etXlFUWwTp0jy2JWMnqG4wtrdF9ZfpquMLaT5GIO8PRNbFUnQTNVB gBFKPr06Rki+/Mf0FJ8I+3AmzhG45z1tsiDHRwuOvrluhthffKZCbMty30yVxVfWPt7e d3PA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=NNMDufunhGlAQxz9oPGw51M11l8NAtfV4IwMAs63XAE=; b=eTrheig13LEkQDcyVd97KyFYFN4bB8woycc4FkuqXb4XusGFbFjS5BadyTLvT6FXIJ SVwzWFyXElVGyJT1bEm9XgJoJ+1CFpfYVmM/Q2DD/FvFRXeiQgqAfxnLo2Di10ivgRS4 OWkraDMvFUhJO28EDunGc6MLhG8/6lxIPWWsPWt4G865F0aUyoHJgejMO9DXhDMi5y3d QsW7OzHgdgufV7lYWyyiHxLXLoBPWRvRRpNgNSUMnEZjf4AIR6JE1VJocnQ71BoV7EIx dqOaLqmGij+Oeo1uzO05u62LMHkiPdYFRTZdIQLjVBjuU56T/eK0nsXgTJtvKuMiLtNp AWRA== X-Gm-Message-State: AElRT7GFR7C5w5gmo2UDDiW1cr1LhZi1x2sxI0XVEY5nXBgauiRK6g/7 7b2DX/lO+v3bYOmr5VXz1Q5HJA== X-Google-Smtp-Source: AG47ELuO72kwoPZ28LjTNMT/RxgEn65JoZeCDkY8L7na9wcD8n3BQt7p+ej0IAq9FZTc6/S2mkEYmA== X-Received: by 10.36.127.10 with SMTP id r10mr17176440itc.101.1520315640191; Mon, 05 Mar 2018 21:54:00 -0800 (PST) Received: from garuda.local (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id t7sm6167319itt.6.2018.03.05.21.53.57 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 Mar 2018 21:53:58 -0800 (PST) From: Chris Marusich References: <20180222103528.5108-1-cmmarusich@gmail.com> <87y3jez943.fsf@gnu.org> Date: Tue, 06 Mar 2018 06:53:51 +0100 In-Reply-To: <87y3jez943.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 27 Feb 2018 17:32:28 +0100") Message-ID: <87woyphhqo.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) writes: >> +# Use --dry-run because it takes too long to actually build everything. >> +GUIX_BUILD_OPTIONS=3D"--no-substitutes --dry-run" >> +export GUIX_BUILD_OPTIONS >> + >> +# Build a tarball. >> +guix pack coreutils > > It would be ideal if we could actually build something, but built > something cheap. > > The way we do that in those tests is by: > > 1. Using the =E2=80=98guile-bootstrap=E2=80=99 package as an example, u= nder the > assumption that it=E2=80=99s already available, does not require > networking, and is built in one or two seconds. > > 2. Using =E2=80=98--bootstrap=E2=80=99 or a similar option so that the = derivations use > =E2=80=98guile-bootstrap=E2=80=99 instead of =E2=80=98guile-final=E2= =80=99, for the same reason. > > See for instance tests/guix-package.sh. > > Would you be willing to try something along these lines? That's a good idea! I tried it (see attached patch). Unfortunately, even after adding a --bootstrap option, "guix pack" tries to build many things, so tests/guix-pack.sh takes hours to run the first time you try it (it ran for 2 hours on my laptop and then failed because gcc failed to build for unrelated reasons): =2D-8<---------------cut here---------------start------------->8--- + GUIX_BUILD_OPTIONS=3D--no-substitutes + export GUIX_BUILD_OPTIONS + guix pack --bootstrap guile-bootstrap accepted connection from pid 25978, user marusich The following derivations will be built: /home/marusich/guix-wip-docker/test-tmp/store/5306akcwzxpl00jq237i5np684= j0vmzl-tarball-pack.tar.gz.drv /home/marusich/guix-wip-docker/test-tmp/store/cdvscfg50aw5jxnd259x1h9bp3= 0lfkdj-module-import.drv /home/marusich/guix-wip-docker/test-tmp/store/wr7q9d2fzkw1fi6q8ms8fkx9iv= xjkqqg-module-import-compiled.drv /home/marusich/guix-wip-docker/test-tmp/store/yirhq0bk23hs1ygx0b1ny3v56x= 9c9fji-tar-1.29.tar.xz.drv /home/marusich/guix-wip-docker/test-tmp/store/fwlyz9ll798kzb509zklkqbgf6= px4sj9-lzip-1.19.drv /home/marusich/guix-wip-docker/test-tmp/store/dncnbczz63kq6zmdrr8vf5h5c2= sb71pg-ed-1.14.2.drv /home/marusich/guix-wip-docker/test-tmp/store/9fnrsfhfa4sh8fm86s7451gm9l= ma3ys1-pkg-config-0.29.2.drv /home/marusich/guix-wip-docker/test-tmp/store/6vddknc0jvxl6nbqvimn6mdilv= xavln4-m4-1.4.18.drv /home/marusich/guix-wip-docker/test-tmp/store/ww1wddpxfj4ynbi3gspdnfpi1w= 6zh19l-expat-2.2.5.drv /home/marusich/guix-wip-docker/test-tmp/store/77hapsriz2k7ix77gqgmsj5m2d= xzshy3-gettext-minimal-0.19.8.1.drv /home/marusich/guix-wip-docker/test-tmp/store/kprlkrdl1bmxghi1q53vm4bc3c= xfiw61-attr-2.4.47.drv /home/marusich/guix-wip-docker/test-tmp/store/93rzrq8dnl74rlfzvv1a4k1m55= 3s7g57-libcap-2.25.drv /home/marusich/guix-wip-docker/test-tmp/store/d5kc96m4why9yvnlvyal8qb5ar= 6gi7sw-perl-5.26.1.drv /home/marusich/guix-wip-docker/test-tmp/store/w282an05cm2900wv8l7hk51rv1= df3kl6-gmp-6.1.2.drv /home/marusich/guix-wip-docker/test-tmp/store/xk9l4cnqqc0jq611vm7i5gm5f2= zh505n-acl-2.2.52.drv /home/marusich/guix-wip-docker/test-tmp/store/32m2qgabizs50hm70rjdc3zx4a= 64c1sx-libsigsegv-2.11.drv /home/marusich/guix-wip-docker/test-tmp/store/0jv6207vr9d8dd1j4ipiqbvgsx= xwb9ax-m4-1.4.18.drv /home/marusich/guix-wip-docker/test-tmp/store/hdr6lkf7fwv7zgpryd9rnx2n9q= qy017q-libatomic-ops-7.4.8.drv /home/marusich/guix-wip-docker/test-tmp/store/15kqh766smp6jy64is5zy49yix= 20l4h9-libltdl-2.4.6.drv /home/marusich/guix-wip-docker/test-tmp/store/2amv52bswrhvq82y6cx2dgbbaw= 1vnq32-libffi-3.2.1.drv /home/marusich/guix-wip-docker/test-tmp/store/4niik1n2j3f62xv01x5h6jwmzm= 0f3nvz-libgc-7.6.0.drv /home/marusich/guix-wip-docker/test-tmp/store/hy8c34s1q5a0af6jc61z4z3159= c8gryq-gmp-6.1.2.drv /home/marusich/guix-wip-docker/test-tmp/store/illsqfj4c1zdkszwyyw8b9r593= lx8xvx-libunistring-0.9.8.drv /home/marusich/guix-wip-docker/test-tmp/store/jz05x01mb6y7i3by3mwzj9bwqn= mcvr6m-pkg-config-0.29.2.drv /home/marusich/guix-wip-docker/test-tmp/store/rfcacc8gajq6sqvx5166cxal3q= qjdv48-perl-boot0-5.26.1.drv /home/marusich/guix-wip-docker/test-tmp/store/0sy6428wjldm79ksdmgif7ak6j= 63fsda-module-import.drv /home/marusich/guix-wip-docker/test-tmp/store/rglsxbjr8aplljbl87ibqwq32f= 0zbfz5-module-import-compiled.drv /home/marusich/guix-wip-docker/test-tmp/store/vgqjcfc86maww541pvkl8lzhbk= ayy427-gzip-1.8.drv /home/marusich/guix-wip-docker/test-tmp/store/1malkdjyhma8payi1q39gpas81= 9drs7m-module-import.drv /home/marusich/guix-wip-docker/test-tmp/store/1n2b3c5drfdmc8ammc4fhhnz6w= iqxlfg-tar-1.29.drv /home/marusich/guix-wip-docker/test-tmp/store/3rm7z6iwjk36ccw2q2cchn5cy2= 5gpbw9-glibc-utf8-locales-2.26.105-g0890d5379c.drv /home/marusich/guix-wip-docker/test-tmp/store/9svg3a4sggjwjh7xjpra68mms3= qrnzyy-bash-minimal-4.4.12.drv /home/marusich/guix-wip-docker/test-tmp/store/9y3vbqgvzgf3z0a8wrh6n710m2= nca3k1-gcc-5.5.0.drv /home/marusich/guix-wip-docker/test-tmp/store/av9n8ds39jzxp13h6pzls4wlq6= 2nd1ry-grep-3.1.drv /home/marusich/guix-wip-docker/test-tmp/store/c1rm58rv7xyhkw5jqw0hljzdwk= x87vv4-guile-2.2.3.drv /home/marusich/guix-wip-docker/test-tmp/store/cc9nalqm463s7kwz9j093iaph4= 5zmbm1-findutils-4.6.0.drv /home/marusich/guix-wip-docker/test-tmp/store/dhz1a4ascsmfypkd1fl782fj1w= n75k04-gzip-1.8.drv /home/marusich/guix-wip-docker/test-tmp/store/gxgvm9d4x7n72pzfmr8bisq2j2= jd5dw9-bzip2-1.0.6.drv /home/marusich/guix-wip-docker/test-tmp/store/ixysd07gjzcfi3l7x61n7k4mby= i2mgzl-gawk-4.1.4.drv /home/marusich/guix-wip-docker/test-tmp/store/plfrsghh3kk0kjjwsl9qh7mh4p= pm4s7j-coreutils-8.28.drv /home/marusich/guix-wip-docker/test-tmp/store/plsnrf4f6mfyw5270f3f46hfq9= agikxi-make-4.2.1.drv /home/marusich/guix-wip-docker/test-tmp/store/q6g6axx4i927mw8jx7kl8brjsx= gkwgsp-ld-wrapper-0.drv /home/marusich/guix-wip-docker/test-tmp/store/v97fmq5lbcawz4z3ljic971djd= if5ayh-xz-5.2.3.drv /home/marusich/guix-wip-docker/test-tmp/store/x34halk6yz9nmkd2wcipxgn6fm= ygdyn8-patch-2.7.5.drv /home/marusich/guix-wip-docker/test-tmp/store/xa3a93dyfv3pkkg79jmaz37lb4= p57s96-diffutils-3.6.drv /home/marusich/guix-wip-docker/test-tmp/store/xyb0kwdmish8a299smx7hkq0fg= rfn4qw-sed-4.4.drv /home/marusich/guix-wip-docker/test-tmp/store/z0z9f2cxk2za96i8fczq23mh3h= 70d4n9-file-5.32.drv /home/marusich/guix-wip-docker/test-tmp/store/z6ads1hjgrcj5jcaf7jinrh9bn= 2m7rmk-module-import-compiled.drv /home/marusich/guix-wip-docker/test-tmp/store/gqb0hng3ndhgi8ddxnwn1lbi58= vpbawl-gzip-1.8.drv /home/marusich/guix-wip-docker/test-tmp/store/w9s9c0b8szkkx79qi910r7jjs1= zwkzaw-tar-1.29.drv =2D-8<---------------cut here---------------end--------------->8--- It's quicker after the first time, but it's a hefty one-time cost. I think so many things need to be built because "guix pack" creates the pack using a gexp that uses packages. For example, instead of executing "tar" by looking it up in the current environment (e.g. via system*), it builds the "tar" package and executes the resulting "tar" program in the gexp that creates the pack. Therefore, even though we do use guile-bootstrap to run the gexp, Guix still need to build tar and all of its dependencies, so the test takes hours to run. Can we do better? Maybe we could share the host's store with the test. I don't think this will help, though, since the package definitions used by the installed Guix are often different than the package definitions in the Git repository. If we tried to do this, I think we'd probably just wind up building tar etc. before running the test, instead of during the test. The total time required to prepare and run the test probably wouldn't change. Maybe we could move tests like these to a "long-running" test target (e.g., "make check-long-running"). I think this could work, but I would much rather just write tests that run quickly. Maybe we could rewrite "guix pack" so that it uses system* to run tar. I think this might actually be a good idea, but I'm curious to know what you think. It's neat that one can write a program (like "guix pack") whose runtime dependencies are built just-in-time by Guix. However, these runtime dependencies (e.g., tar) could theoretically be garbage collected by Guix in-between invocations of "guix pack", and it clearly makes the program a little more difficult to test. Finally, maybe we could stick with running the tests in "dry-run" mode. I'm in favor of this idea, but obviously I'm a little biased. :-) =2D-=20 Chris --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-tests-Add-tests-for-guix-pack.patch Content-Transfer-Encoding: quoted-printable From=2072e672e795fe8f4d67f7e1805ba8b88c874f3fb1 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Tue, 20 Feb 2018 02:17:54 +0100 Subject: [PATCH 1/7] tests: Add tests for "guix pack". * guix/scripts/pack.scm (%options): Add the --bootstrap option. (show-help): Document it. (guix-pack): Honor it. * doc/guix.texi (Invoking guix pack): Document the new --bootstrap option. * tests/guix-pack.sh: New file. * Makefile.am (SH_TESTS): Add guix-pack.sh. * gnu/packages/package-management.scm (guix) : Add util-linux. =2D-- Makefile.am | 1 + doc/guix.texi | 4 +++ gnu/packages/package-management.scm | 2 ++ guix/scripts/pack.scm | 51 ++++++++++++++++++++------------ tests/guix-pack.sh | 59 +++++++++++++++++++++++++++++++++= ++++ 5 files changed, 98 insertions(+), 19 deletions(-) create mode 100644 tests/guix-pack.sh diff --git a/Makefile.am b/Makefile.am index e2c940ca8..c4c37e327 100644 =2D-- a/Makefile.am +++ b/Makefile.am @@ -372,6 +372,7 @@ SH_TESTS =3D \ tests/guix-download.sh \ tests/guix-gc.sh \ tests/guix-hash.sh \ + tests/guix-pack.sh \ tests/guix-package.sh \ tests/guix-package-net.sh \ tests/guix-system.sh \ diff --git a/doc/guix.texi b/doc/guix.texi index fb2834942..1d06f6a87 100644 =2D-- a/doc/guix.texi +++ b/doc/guix.texi @@ -2894,6 +2894,10 @@ added to it or removed from it after extraction of t= he pack. =20 One use case for this is the Guix self-contained binary tarball (@pxref{Binary Installation}). + +@item --bootstrap +Use the bootstrap Guile to build the pack. This option is only useful +to Guix developers. @end table =20 In addition, @command{guix pack} supports all the common build options diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-man= agement.scm index 32a7a30e7..5e11eaedd 100644 =2D-- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -257,6 +257,8 @@ ;; Many tests rely on the 'guile-bootstrap' package, which is why= we ;; have it here. ("boot-guile" ,(bootstrap-guile-origin (%current-system))) + ;; Some of the tests use "unshare" when it is available. + ("util-linux" ,util-linux) ,@(if (and (not (%current-target-system)) (string=3D? (%current-system) "x86_64-linux")) `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux")= )) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 59dd117ed..460e9f2f2 100644 =2D-- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -33,6 +33,7 @@ #:use-module (guix derivations) #:use-module (guix scripts build) #:use-module (gnu packages) + #:use-module (gnu packages bootstrap) #:use-module (gnu packages compression) #:autoload (gnu packages base) (tar) #:autoload (gnu packages package-management) (guix) @@ -325,6 +326,9 @@ the image." (option '("localstatedir") #f #f (lambda (opt name arg result) (alist-cons 'localstatedir? #t result))) + (option '("bootstrap") #f #f + (lambda (opt name arg result) + (alist-cons 'bootstrap? #t result))) =20 (append %transformation-options %standard-build-options))) @@ -352,6 +356,8 @@ Create a bundle of PACKAGE.\n")) -m, --manifest=3DFILE create a pack with the manifest from FILE")) (display (G_ " --localstatedir include /var/guix in the resulting pack")) + (display (G_ " + --bootstrap use the bootstrap Guile to build the pack")) (newline) (display (G_ " -h, --help display this help and exit")) @@ -393,28 +399,35 @@ Create a bundle of PACKAGE.\n")) (else (packages->manifest packages))))) =20 (with-error-handling =2D (parameterize ((%graft? (assoc-ref opts 'graft?))) =2D (let* ((dry-run? (assoc-ref opts 'dry-run?)) =2D (manifest (manifest-from-args opts)) =2D (pack-format (assoc-ref opts 'format)) =2D (name (string-append (symbol->string pack-format) =2D "-pack")) =2D (target (assoc-ref opts 'target)) =2D (compressor (assoc-ref opts 'compressor)) =2D (symlinks (assoc-ref opts 'symlinks)) =2D (build-image (match (assq-ref %formats pack-format) =2D ((? procedure? proc) proc) =2D (#f =2D (leave (G_ "~a: unknown pack format") =2D format)))) =2D (localstatedir? (assoc-ref opts 'localstatedir?))) =2D (with-store store =2D ;; Set the build options before we do anything else. =2D (set-build-options-from-command-line store opts) =2D + (let* ((dry-run? (assoc-ref opts 'dry-run?)) + (manifest (manifest-from-args opts)) + (pack-format (assoc-ref opts 'format)) + (name (string-append (symbol->string pack-format) + "-pack")) + (target (assoc-ref opts 'target)) + (compressor (assoc-ref opts 'compressor)) + (symlinks (assoc-ref opts 'symlinks)) + (build-image (match (assq-ref %formats pack-format) + ((? procedure? proc) proc) + (#f + (leave (G_ "~a: unknown pack format") + format)))) + (localstatedir? (assoc-ref opts 'localstatedir?)) + (bootstrap? (assoc-ref opts 'bootstrap?))) + (with-store store + (parameterize ((%graft? (assoc-ref opts 'graft?)) + (%guile-for-build (package-derivation + store + (if (assoc-ref opts 'bootstrap?) + %bootstrap-guile + (canonical-package guile-2.2= ))))) (run-with-store store (mlet* %store-monad ((profile (profile-derivation manifest + #:hooks (if bootstrap? + '() + %default-profile-ho= oks) + #:locales? (not bootstrap?) #:target target)) (drv (build-image name profile #:target diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh new file mode 100644 index 000000000..a754324d1 =2D-- /dev/null +++ b/tests/guix-pack.sh @@ -0,0 +1,59 @@ +# GNU Guix --- Functional package management for GNU +# Copyright =C2=A9 2018 Chris Marusich +# +# This file is part of GNU Guix. +# +# GNU Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# GNU Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Guix. If not, see . + +# +# Test the `guix pack' command-line utility. +# + +guix pack --version + +# Use --no-substitutes because we need to verify we can do this ourselves. +GUIX_BUILD_OPTIONS=3D"--no-substitutes" +export GUIX_BUILD_OPTIONS + +# Build a tarball. +guix pack --bootstrap guile-bootstrap + +# Build a tarball with a symlink. +the_pack=3D"$(guix pack --bootstrap -S /opt/gnu/bin=3Dbin guile-bootstrap)" + +is_available () { + # Use the "type" shell builtin to see if the program is on PATH. + type "$1" +} + +if is_available chroot && is_available unshare; then + # Verify we can extract and use it. + test_directory=3D"$(mktemp -d)" + trap 'rm -rf "$test_directory"' EXIT + cd "$test_directory" + tar -xf "$the_pack" + unshare -mrf chroot . /opt/gnu/bin/guile --version + cd - +else + echo "chroot/unshare not available, skipping verification of pack cont= ents" +fi + +# Build a Docker image. +guix pack --bootstrap -f docker guile-bootstrap + +# Build a Docker image with a symlink. +guix pack --bootstrap -f docker -S /opt/gnu=3D/ guile-bootstrap + +# Build a tarball pack of cross-compiled software. +guix pack --bootstrap --target=3Darm-unknown-linux-gnueabihf guile-bootstr= ap =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqeLO8ACgkQ3UCaFdgi Rp0RshAAxHYoEqSBofhFMJW9Qk3OyV2sY5218OH0DJJ0+UYuOYSHmOw2C92hUYJj 9HvRwljeHYsyRTW+uQAow7lsS3h2/TuvbAaS7wTv3b/3mZiOPLtETlxh12Tyrbxl rLIg/8sGk21XdkdSXfbntHxt/9zYPioof6ZUddnfUoEy1jMC6H5BvrlWr1Hw66un ktbk5pt/hllSlrXE2MwQXPLw59AVNP2wU7TcWRf8A1m/0hPaUAQOYkfgYcADSDq9 uEZhAFa453PfnScuzJWXOGpJDiOrj4RRet+6GsCCdTIKAxgoGXb2mXAIE86H1TJx ugcuVFZyppr26pNGoWzQB/t2GBHaRjZ484y5yNkNVfiGcmE4e0LsY7FcnF+2fEH4 ujHg7GClPK/VQ8XEDC8owyryHAK2SKX4lLmaAJiYe1j2dX9jJ19KNZPcPVWRFJe5 iW+8mYmMgMRPwhLTmvzDlwuR5Tw6Vkj2NspN99MNib3+A+uMtAVdmK5eBBJjHH/n +AGQs9Y8MqCizCVtdeC91HxFhXqGIt7nfqU/V7kDPDYzKIhiFilIjBBQtnHMa/Na b/Nx5IqiGD9DPGzdTL4QWK58OdEyqCyQlzacDpjonod8HDKJ9R82doi468+/gv9u JNcRY6kGMVfwf0DRZhTelfAxfKnZaxn/YQ05XPGuOeZ+2qGyhwQ= =IxtS -----END PGP SIGNATURE----- --==-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 3/7] system: Allow customization of the initrd's Guile. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 07 Mar 2018 05:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152040218810813 (code B ref 30572); Wed, 07 Mar 2018 05:57:01 +0000 Received: (at 30572) by debbugs.gnu.org; 7 Mar 2018 05:56:28 +0000 Received: from localhost ([127.0.0.1]:48368 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etS3v-0002oK-Tr for submit@debbugs.gnu.org; Wed, 07 Mar 2018 00:56:28 -0500 Received: from mail-it0-f46.google.com ([209.85.214.46]:39733) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etS3t-0002o5-ES for 30572@debbugs.gnu.org; Wed, 07 Mar 2018 00:56:25 -0500 Received: by mail-it0-f46.google.com with SMTP id l187so1895002ith.4 for <30572@debbugs.gnu.org>; Tue, 06 Mar 2018 21:56:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=sZ4Cj2viXZiWoZuymwJAq4yDCOrqxO4ylvX7961fRlU=; b=jMG/zwc4D1P5pxAWS9a6AHetp8qOTZydDSW4Dn12c7zy1EkI/yYMes4LKmTEVNdSWu JsJF60o52VOh2WskVz64/GNs/HyfOh6aQHxe7D2sbp/fINhciN2g96VOyE+Zb11jRicC vbRfevVOPN5J3kn03zQr4zYRg10J5kgKMUnQpuLAc2ocfmVaA7URALdMvlgCeLDk9hBF tOqZADDa57xQkW5D671lKTQ4hgV6D7JIv7BnFDee2XvwRyqFlFSO6XnPkfI/QHvigtRd VckEzn7VlHvdnv2IQ2Gq4kMNqeIso0R96M5+hK+XpOFXjEdL0mPdxu0G9Ia2BYZQjBvn xTEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=sZ4Cj2viXZiWoZuymwJAq4yDCOrqxO4ylvX7961fRlU=; b=YSqJIT6u/c5fzRgtsv3483wV/PxuoVWBqYslxS8l+74kFpo5SfyLle+lsMbD0/DXnq l1u3nVgzknDbZU4JIv4wJSvq1CHq6NNPlfs5GC59YFO8bdWzsVykEUXCDK4xthLO04aD w4YncbtAPWyg1TM4ECHzhF6ivJgQXkCHXxEZL/dNVaLFrUkr13l3ps1MzvCSXoQ/qSRh 41OQIR5BCPT0Td21HsxaANXkcPuhWNDzP+37R61eY5+1FHdANubkRrhheWHpcgg4/zSX hqsMbfgaeh97SfsDzgp14aARpKZxzSUio5LsJ4rwM1GI0ioJhRo2nCRSg9J1o2A3VlHH JbOg== X-Gm-Message-State: AElRT7FDvEMhuHHSV0uOi8k94OfjDkjbAuCVj13EpgXZJgYtdetbj6RR SHwPxpM05CUJ2Q+G9Fk56Z/ylQ== X-Google-Smtp-Source: AG47ELvUoPRmGHyoDM5AornYmQqeNw63qgNK0X7WIEUhgnyzmlm/fXiL1VkqX/8Mu+a8Zkk0IH8+lw== X-Received: by 10.36.90.212 with SMTP id v203mr22703383ita.150.1520402179215; Tue, 06 Mar 2018 21:56:19 -0800 (PST) Received: from garuda.local (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id v8sm8527901itv.3.2018.03.06.21.56.16 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 Mar 2018 21:56:17 -0800 (PST) From: Chris Marusich References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-3-cmmarusich@gmail.com> <87371t8bt2.fsf@gmail.com> <87muzuz7nj.fsf@gnu.org> Date: Wed, 07 Mar 2018 06:56:12 +0100 In-Reply-To: <87muzuz7nj.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 27 Feb 2018 18:04:00 +0100") Message-ID: <87o9k0ig3n.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Chris Marusich skribis: > >> @deffn {Monadic Procedure} base-initrd @var{file-systems} @ >> - [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root?= #f]@ >> + [#:linux linux-libre] >> + [#:mapped-devices '()] [#:guile %guile-static-stripped] >> + [#:qemu-networking? #f] [#:volatile-root? #f]@ > > Nitpick: you need an @ at the end of intermediate lines. :-) Thank you; I appreciate nit-picking, since these are the kinds of things that are easy to overlook! I've added the @ symbols (see attached). However, are they really necessary? According to (texinfo) Multiple Spaces, inserting an @ followed by a newline inserts a single space into the output. That's what we're doing here, right? But even when I omit the @ symbols at the end of the lines, the TexInfo manual builds without error, and the procedure definition appears to render just fine in the stand-alone Info reader. Unless the intent here really is to insert just one extra space between some, but not all, of the arguments, I think we can probably omit all of these @ symbols. WDYT? =2D-=20 Chris --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0003-system-Allow-customization-of-the-initrd-s-Guile.patch Content-Transfer-Encoding: quoted-printable From=2032c9a237c4db4d42fe6542be0c418b39c3a68aa1 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Mon, 19 Feb 2018 04:47:42 +0100 Subject: [PATCH 3/7] system: Allow customization of the initrd's Guile. * gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Add the #:guile keyword argument. * doc/guix.texi (Initial Ram Disk) : Update their documentation. =2D-- doc/guix.texi | 42 ++++++++++++++++++++++++------------------ gnu/system/linux-initrd.scm | 27 ++++++++++++++++----------- 2 files changed, 40 insertions(+), 29 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index fb2834942..adac7530a 100644 =2D-- a/doc/guix.texi +++ b/doc/guix.texi @@ -18861,33 +18861,39 @@ here is how to use it and customize it further. @cindex initrd @cindex initial RAM disk @deffn {Monadic Procedure} raw-initrd @var{file-systems} @ =2D [#:linux-modules '()] [#:mapped-devices '()] @ =2D [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root?= #f] =2DReturn a monadic derivation that builds a raw initrd. @var{file-systems= } is =2Da list of file systems to be mounted by the initrd, possibly in addition= to =2Dthe root file system specified on the kernel command line via @code{--ro= ot}. =2D@var{linux-modules} is a list of kernel modules to be loaded at boot tim= e. =2D@var{mapped-devices} is a list of device mappings to realize before =2D@var{file-systems} are mounted (@pxref{Mapped Devices}). =2D@var{helper-packages} is a list of packages to be copied in the initrd. = It may =2Dinclude @code{e2fsck/static} or other packages needed by the initrd to c= heck =2Dthe root file system. + [#:linux linux-libre]@ + [#:linux-modules '()] [#:mapped-devices '()]@ + [#:helper-packages '()] [#:guile %guile-static-stripped]@ + [#:qemu-networking? #f] [#:volatile-root? #f] +Return a monadic derivation that builds a raw initrd, with kernel +modules taken from @var{linux}. @var{file-systems} is a list of file +systems to be mounted by the initrd, possibly in addition to the root +file system specified on the kernel command line via @code{--root}. +@var{linux-modules} is a list of kernel modules to be loaded at boot +time. @var{mapped-devices} is a list of device mappings to realize +before @var{file-systems} are mounted (@pxref{Mapped Devices}). +@var{helper-packages} is a list of packages to be copied in the +initrd. It may include @code{e2fsck/static} or other packages needed by +the initrd to check root partition. @var{guile} is the Guile to use in +the initrd. =20 When @var{qemu-networking?} is true, set up networking with the standard Q= EMU =2Dparameters. When @var{virtio?} is true, load additional modules so that= the =2Dinitrd can be used as a QEMU guest with para-virtualized I/O drivers. +parameters. =20 When @var{volatile-root?} is true, the root file system is writable but an= y changes to it are lost. @end deffn =20 @deffn {Monadic Procedure} base-initrd @var{file-systems} @ =2D [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? = #f]@ + [#:linux linux-libre] [#:mapped-devices '()]@ + [#:guile %guile-static-stripped]@ + [#:qemu-networking? #f] [#:volatile-root? #f]@ [#:virtio? #t] [#:extra-modules '()] =2DReturn a monadic derivation that builds a generic initrd. @var{file-sys= tems} is =2Da list of file systems to be mounted by the initrd like for @code{raw-in= itrd}. =2D@var{mapped-devices}, @var{qemu-networking?} and @var{volatile-root?} =2Dalso behaves as in @code{raw-initrd}. +Return a monadic derivation that builds a generic initrd, with kernel +modules taken from @var{linux}. @var{file-systems} is a list of file +systems to be mounted by the initrd like for @code{raw-initrd}. +@var{mapped-devices}, @var{guile}, @var{qemu-networking?} and +@var{volatile-root?} also behave as in @code{raw-initrd}. =20 When @var{virtio?} is true, load additional modules so that the initrd can be used as a QEMU guest with para-virtualized I/O drivers. diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 330438bce..301e6cffa 100644 =2D-- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -154,17 +154,18 @@ MODULES and taken from LINUX." (linux-modules '()) (mapped-devices '()) (helper-packages '()) + (guile %guile-static-stripped) qemu-networking? volatile-root? (on-error 'debug)) =2D "Return a monadic derivation that builds a raw initrd, with kernel =2Dmodules taken from LINUX. FILE-SYSTEMS is a list of file-systems to be =2Dmounted by the initrd, possibly in addition to the root file system spec= ified =2Don the kernel command line via '--root'. LINUX-MODULES is a list of kern= el =2Dmodules to be loaded at boot time. MAPPED-DEVICES is a list of device =2Dmappings to realize before FILE-SYSTEMS are mounted. =2DHELPER-PACKAGES is a list of packages to be copied in the initrd. It may= include =2De2fsck/static or other packages needed by the initrd to check root parti= tion. + "Return a monadic derivation that builds a raw initrd, with kernel modul= es +taken from LINUX. FILE-SYSTEMS is a list of file-systems to be mounted by= the +initrd, possibly in addition to the root file system specified on the kern= el +command line via '--root'. LINUX-MODULES is a list of kernel modules to be +loaded at boot time. MAPPED-DEVICES is a list of device mappings to reali= ze +before FILE-SYSTEMS are mounted. HELPER-PACKAGES is a list of packages to= be +copied in the initrd. It may include e2fsck/static or other packages neede= d by +the initrd to check root partition. GUILE is the Guile to use in the init= rd. =20 When QEMU-NETWORKING? is true, set up networking with the standard QEMU parameters. @@ -223,7 +224,8 @@ upon error." #:qemu-guest-networking? #$qemu-networking? #:volatile-root? '#$volatile-root? #:on-error '#$on-error))) =2D #:name "raw-initrd")) + #:name "raw-initrd" + #:guile guile)) =20 (define* (file-system-packages file-systems #:key (volatile-root? #f)) "Return the list of statically-linked, stripped packages to check @@ -246,6 +248,7 @@ FILE-SYSTEMS." #:key (linux linux-libre) (mapped-devices '()) + (guile %guile-static-stripped) qemu-networking? volatile-root? (virtio? #t) @@ -255,7 +258,8 @@ FILE-SYSTEMS." modules taken from LINUX. FILE-SYSTEMS is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specif= ied on the kernel command line via '--root'. MAPPED-DEVICES is a list of devi= ce =2Dmappings to realize before FILE-SYSTEMS are mounted. +mappings to realize before FILE-SYSTEMS are mounted. GUILE is the Guile to +use in the initrd. =20 QEMU-NETWORKING? and VOLATILE-ROOT? behaves as in raw-initrd. =20 @@ -325,6 +329,7 @@ loaded at boot time in the order in which they appear." #:helper-packages helper-packages #:qemu-networking? qemu-networking? #:volatile-root? volatile-root? =2D #:on-error on-error)) + #:on-error on-error + #:guile guile)) =20 ;;; linux-initrd.scm ends here =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqffvwACgkQ3UCaFdgi Rp2iow/+J6XkhrPhp1CCKyCRXL61ZotWQXnke2FlmStu1VIyXwEvxRNHJjy1ncbH sWebY8Yn919htja+IDx4ZLhM86/8+V2jY6JFa8WV0vuEWC5DGtKMhPkhU1uWEF6b ygeZtss0Zd99g5RC/+EkQCkUg8eAvfQjusYhDQhinUi2Af6lhYVvK02x3Gszze9P +eIBldwyWvQ8Zq3yIU5RSjYuERNZ7b7ICHNdsup4Y4ngpM/rOKylMbrmd8NerYOa fxBDA5+scZpuzjas4C2SNnZ3JIc1qDjoUlbLIBmVzHW8qO3fMLDv+pIgSNYMJiqQ PDuGiyoSdtY0sE+YKGRJOhMdZGBzDlHdwYIQnmq2syWSs7l1BtBCHxOtrp3+Skpv 8jiT2ZRbIBHMDay7LHONrzBkXOjoOTJ2hCR2fEfDbsyn+zP+S7xPfbPtdrdeI2gg pV+QqcH8dfO+CN6dN1WMKs9/KPCV2Sxcpdsj+i+TfMr6GtfdV409y+n2UTRmNzcQ ZuhDaE2ypZGIcghbel+DqFTu8XODF8ojEuyVFQAUSrUlNPKZdlumXZgf1mRSOL/3 CJDuoS+13lbetXeNuvtsj1U/4kXK8DIDW0wYmP7Yb2WduYylu9kS+DYlCrBwanu9 he/TMmAg8ASa3AkpjZv2QhdxrTUjaeJUayi/6/EQIAgBFT537p8= =ZkIc -----END PGP SIGNATURE----- --==-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 4/7] docker: Allow the use of a custom temporary directory. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 07 Mar 2018 06:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152040388314168 (code B ref 30572); Wed, 07 Mar 2018 06:25:02 +0000 Received: (at 30572) by debbugs.gnu.org; 7 Mar 2018 06:24:43 +0000 Received: from localhost ([127.0.0.1]:48375 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etSVH-0003gS-Ei for submit@debbugs.gnu.org; Wed, 07 Mar 2018 01:24:43 -0500 Received: from mail-it0-f48.google.com ([209.85.214.48]:53134) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etSVG-0003gE-Du for 30572@debbugs.gnu.org; Wed, 07 Mar 2018 01:24:42 -0500 Received: by mail-it0-f48.google.com with SMTP id k135so1949687ite.2 for <30572@debbugs.gnu.org>; Tue, 06 Mar 2018 22:24:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=wnt2zr60qlDYXi3LQAyI9QPeUyFVuL6OZdoOTRuAD1M=; b=F5yY/tgaVnnVvihBG00m2X/eqN0f713dHwTO8Z3r/078DTl/nZakMjKI5X6Lk88Rwb 0zRzN64/Q/To8tiTw+QEpJJsxeFFANiWCeAemzTV917pG5Dygr7PkrkHHTVr4ptfCKa1 BuDk07iiIPlJvYGNyJIU+VKvsOvq14DoMfRhSbJXBjCY7qa2M1w7M3UfauEPcFDeisO7 zdWstSsaHSJ550qk/c/fgEYVejNrefu1xIiLhGVfZnMtdSfZDsk7jnJ/i9Ki3EZqUw+p FqE5fdd1hK2pFAsUWNh09IU1yREeCCx+Iw9VqABRFD+AtgLNCCDz3USAnDN2mjdLpApN y2pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=wnt2zr60qlDYXi3LQAyI9QPeUyFVuL6OZdoOTRuAD1M=; b=mnPqC4kzkUCVF0r3aNASOWHtLzHJl9OZ8xM/xiXXSTk04WBtR12/vY7UdUfFfjoybt CgW40Pkez8wXz106tij4r1aKqs+1CCrUUGBVeK0WvUuvZ7p6qzHJkDOetYp4+uPXiFGn ewun0HIXljoxBjPlIGFOcCWliBVovsO/Lx4lEuBm3tHJuAgWf4ZMhgahbJnhxPspte24 k/3oovCd8bCWqb0qd4yYdRs2KYFlJ0bGJS/M+avHEa10Vm8fqhhzI3gNk92/NwK2vWiC +bHpXHbghc8H4hXhU+R9tnGB5suIUV0PefQ43Bysaouqwoxb+njMODVaooRfLno7ShXA N38w== X-Gm-Message-State: AElRT7EAUh4l/wuxg/wvIhf3kea33Hl7e7EdzeaypXWSOWD+TAqYE0Q7 1OPNfO56+uAB2Z4nxdcg6Po= X-Google-Smtp-Source: AG47ELuIE5EWObasqfGvK+wo20PRu0W2gwjMl/Hzy3DmIRtjA6ZdytYD1x6JoxFFiVhb26rm0wOHkQ== X-Received: by 10.36.237.204 with SMTP id r195mr23107842ith.67.1520403876616; Tue, 06 Mar 2018 22:24:36 -0800 (PST) Received: from garuda.local (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id m127sm10985452ioa.40.2018.03.06.22.24.33 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 Mar 2018 22:24:34 -0800 (PST) From: Chris Marusich References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-4-cmmarusich@gmail.com> <20180226014859.4f7fe37c@scratchpost.org> <87po4rra78.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> <20180227004658.4cefda82@scratchpost.org> <87y3jfvy7k.fsf@gmail.com> <87r2p6z7td.fsf@gnu.org> Date: Wed, 07 Mar 2018 07:24:30 +0100 In-Reply-To: <87r2p6z7td.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 27 Feb 2018 18:00:30 +0100") Message-ID: <87k1uoiesh.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Chris Marusich skribis: > >> +TMPDIR is the name of the temporary working directory to use. This can= be >> +useful if you need to use a specific temporary directory, for example b= ecause >> +the default temporary directory lies on a file system with insufficient >> +space." > > Usually this code is used in a derivation, where it doesn=E2=80=99t really > matter which directory is used, no? I added this because I thought I needed it in order to implement "guix system docker-image". I build the Docker image in a VM, and the VM's file system is too small to hold all the transient files that are created by build-docker-image (in guix/docker.scm). Without this change, the derivation fails due to lack of space within the VM. I work around this limitation by using the /xchg directory as the temporary directory in the VM, which does have enough space to hold all the transient files. However, thinking about this now, maybe the right thing to do is to adjust the heuristics for guessing the right disk size in expression->derivation-in-linux-vm (in gnu/system/vm.scm). Or maybe I can just provide my own estimate via the #:disk-image-size argument. Maybe if I adjust that, I will be able to build the Docker image without specifying a custom temporary directory. That would be nice; I'll try to do it and let you know how it goes. Another option here would be to build the Docker image without using a VM in the first place. Perhaps we can use namespaces, but I haven't tried that yet, since the VM approach worked. I tried without a VM first, and I quickly found that I couldn't do many things in a normal derivation that I needed to do in order to build the image (e.g., create device files). I don't know if I can do all those necessary things without using a VM. But I think we can iterate on that after this patch series gets committed. What do you think? =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqfhZ4ACgkQ3UCaFdgi Rp15Dw//Z5kKz0TMqKyJNHwwM9wdQHrx38pe3SggegI2mq33IDxtM8T1sqYqYZ7U p8evarFKbaFCG1abSjKCBBptS1eYk/krKSsQrfGsceFgkMOlr3cGCwZ6rfpkXVx+ p8l1atVTNYQg9n6mzeTWlweRJ/SeLSTptv1o7FIt9EW++SSrc8ZwzbbTQiGr/uFD Zy/V0kBUvau3A7FUPufk8bXMDijzWvoL4dKZrvybXCbcuBlJfb0cuGYSfpKFG4mR agS5Z2ArnSYdGb5SXhfG/p+kBktAV1ofT/A0xz1yDsZhT9U81s36mQGH78n5Jk8Z nrXKflPQEdx8xs93Dt5wxGa4+f+iXB1vi6d47zQ9QUTTFbwSZhAVHwmyso6r7bkG my6yoh7QFeDqIrKddAGJ5EGCpnOw5n/voFa08GFFHC/NkQ1ZxZV+RsCekyegDn0L B2bG65H0zP8N1/fk5tXSWqfsJHfq9SpdAc4SVNiEHyFWHkzT9T5mhjOptW7sBNix 3+JlSLK9MvPSyZy3xj3NxvCC5N1uo+nghtNag5mZBWHMKYQlMhAGpmhOhTZJotLb vr9hjmPmAhnzj6dORYZ2F5rJIPhih2kaPLgIbdN3+674SmjPSg+sd5hZh0vPd9aN ZuH8nk3/iixGmjbiwJpE0JHL9cnGfoM9EfjaqwzCSlUweuxETlA= =3KG5 -----END PGP SIGNATURE----- --=-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 3/7] system: Allow customization of the initrd's Guile. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 07 Mar 2018 15:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15204360561898 (code B ref 30572); Wed, 07 Mar 2018 15:21:02 +0000 Received: (at 30572) by debbugs.gnu.org; 7 Mar 2018 15:20:56 +0000 Received: from localhost ([127.0.0.1]:49676 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etasC-0000UY-Jk for submit@debbugs.gnu.org; Wed, 07 Mar 2018 10:20:56 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:45732) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etasB-0000UR-TM for 30572@debbugs.gnu.org; Wed, 07 Mar 2018 10:20:56 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 6791511D05; Wed, 7 Mar 2018 16:20:55 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gxehhF7YidiN; Wed, 7 Mar 2018 16:20:54 +0100 (CET) Received: from ribbon (vpn-0-27.aquilenet.fr [IPv6:2a0c:e300:4:27::]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 617021034F; Wed, 7 Mar 2018 16:20:54 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-3-cmmarusich@gmail.com> <87371t8bt2.fsf@gmail.com> <87muzuz7nj.fsf@gnu.org> <87o9k0ig3n.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 17 =?UTF-8?Q?Vent=C3=B4se?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 07 Mar 2018 16:20:46 +0100 In-Reply-To: <87o9k0ig3n.fsf@gmail.com> (Chris Marusich's message of "Wed, 07 Mar 2018 06:56:12 +0100") Message-ID: <87a7vjsyi9.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Chris Marusich skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) writes: > >> Chris Marusich skribis: >> >>> @deffn {Monadic Procedure} base-initrd @var{file-systems} @ >>> - [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root= ? #f]@ >>> + [#:linux linux-libre] >>> + [#:mapped-devices '()] [#:guile %guile-static-stripped] >>> + [#:qemu-networking? #f] [#:volatile-root? #f]@ >> >> Nitpick: you need an @ at the end of intermediate lines. :-) > > Thank you; I appreciate nit-picking, since these are the kinds of things > that are easy to overlook! I've added the @ symbols (see attached). > However, are they really necessary? > > According to (texinfo) Multiple Spaces, inserting an @ followed by a > newline inserts a single space into the output. That's what we're doing > here, right? But even when I omit the @ symbols at the end of the > lines, the TexInfo manual builds without error, and the procedure > definition appears to render just fine in the stand-alone Info reader. > Unless the intent here really is to insert just one extra space between > some, but not all, of the arguments, I think we can probably omit all of > these @ symbols. WDYT? It surely builds without error, but I think Texinfo considers the lines that follow the @deffn line as the body of @deffn and not as the continuation of the @deffn line. Thanks, Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 4/7] docker: Allow the use of a custom temporary directory. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 07 Mar 2018 15:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15204362822308 (code B ref 30572); Wed, 07 Mar 2018 15:25:01 +0000 Received: (at 30572) by debbugs.gnu.org; 7 Mar 2018 15:24:42 +0000 Received: from localhost ([127.0.0.1]:49682 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etavq-0000b9-3V for submit@debbugs.gnu.org; Wed, 07 Mar 2018 10:24:42 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:45750) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etavo-0000b1-Hs for 30572@debbugs.gnu.org; Wed, 07 Mar 2018 10:24:40 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id DA96D11FA3; Wed, 7 Mar 2018 16:24:39 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CGOfsgvrTf5T; Wed, 7 Mar 2018 16:24:38 +0100 (CET) Received: from ribbon (vpn-0-27.aquilenet.fr [IPv6:2a0c:e300:4:27::]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 7D30811D05; Wed, 7 Mar 2018 16:24:38 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222103528.5108-1-cmmarusich@gmail.com> <20180222103528.5108-4-cmmarusich@gmail.com> <20180226014859.4f7fe37c@scratchpost.org> <87po4rra78.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> <20180227004658.4cefda82@scratchpost.org> <87y3jfvy7k.fsf@gmail.com> <87r2p6z7td.fsf@gnu.org> <87k1uoiesh.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 17 =?UTF-8?Q?Vent=C3=B4se?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 07 Mar 2018 16:24:30 +0100 In-Reply-To: <87k1uoiesh.fsf@gmail.com> (Chris Marusich's message of "Wed, 07 Mar 2018 07:24:30 +0100") Message-ID: <876067syc1.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Hello, Chris Marusich skribis: > Another option here would be to build the Docker image without using a > VM in the first place. Perhaps we can use namespaces, but I haven't > tried that yet, since the VM approach worked. I tried without a VM > first, and I quickly found that I couldn't do many things in a normal > derivation that I needed to do in order to build the image (e.g., create > device files). I don't know if I can do all those necessary things > without using a VM. We need a VM so that we can be root and create and mount file systems, right? That=E2=80=99s a good reason to use a VM. :-) What about making /tmp in the VM a 9p mount of /tmp outside the VM? That way this would be transparent, and no need to fiddle with the VM disk sizes. WDYT? Thanks, Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] tests: Add tests for "guix pack". Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 08 Mar 2018 21:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152054314617899 (code B ref 30572); Thu, 08 Mar 2018 21:06:02 +0000 Received: (at 30572) by debbugs.gnu.org; 8 Mar 2018 21:05:46 +0000 Received: from localhost ([127.0.0.1]:51529 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eu2jS-0004ec-CM for submit@debbugs.gnu.org; Thu, 08 Mar 2018 16:05:46 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:54834) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eu2jQ-0004eT-51 for 30572@debbugs.gnu.org; Thu, 08 Mar 2018 16:05:45 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 84B32120B5; Thu, 8 Mar 2018 22:05:43 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2OYh0IHWpd74; Thu, 8 Mar 2018 22:05:42 +0100 (CET) Received: from ribbon (unknown [IPv6:2a01:e0a:1d:7270:af76:b9b:ca24:c465]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 0A4C0120B4; Thu, 8 Mar 2018 22:05:41 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222103528.5108-1-cmmarusich@gmail.com> <87y3jez943.fsf@gnu.org> <87woyphhqo.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 18 =?UTF-8?Q?Vent=C3=B4se?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Thu, 08 Mar 2018 22:05:41 +0100 In-Reply-To: <87woyphhqo.fsf@gmail.com> (Chris Marusich's message of "Tue, 06 Mar 2018 06:53:51 +0100") Message-ID: <878tb2l1lm.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Howdy, Chris Marusich skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) writes: > >>> +# Use --dry-run because it takes too long to actually build everything. >>> +GUIX_BUILD_OPTIONS=3D"--no-substitutes --dry-run" >>> +export GUIX_BUILD_OPTIONS >>> + >>> +# Build a tarball. >>> +guix pack coreutils >> >> It would be ideal if we could actually build something, but built >> something cheap. >> >> The way we do that in those tests is by: >> >> 1. Using the =E2=80=98guile-bootstrap=E2=80=99 package as an example, = under the >> assumption that it=E2=80=99s already available, does not require >> networking, and is built in one or two seconds. >> >> 2. Using =E2=80=98--bootstrap=E2=80=99 or a similar option so that the= derivations use >> =E2=80=98guile-bootstrap=E2=80=99 instead of =E2=80=98guile-final= =E2=80=99, for the same reason. >> >> See for instance tests/guix-package.sh. >> >> Would you be willing to try something along these lines? > > That's a good idea! I tried it (see attached patch). Unfortunately, > even after adding a --bootstrap option, "guix pack" tries to build many > things, so tests/guix-pack.sh takes hours to run the first time you try > it (it ran for 2 hours on my laptop and then failed because gcc failed > to build for unrelated reasons): [...] > It's quicker after the first time, but it's a hefty one-time cost. > > I think so many things need to be built because "guix pack" creates the > pack using a gexp that uses packages. For example, instead of executing > "tar" by looking it up in the current environment (e.g. via system*), it > builds the "tar" package and executes the resulting "tar" program in the > gexp that creates the pack. Therefore, even though we do use > guile-bootstrap to run the gexp, Guix still need to build tar and all of > its dependencies, so the test takes hours to run. Can we do better? Ah indeed, I hadn=E2=80=99t thought about tar. We could arrange for =E2=80=98--bootstrap=E2=80=99 to use: (search-bootstrap-binary "tar") instead of the =E2=80=98tar=E2=80=99 package. We could do the same for =E2= =80=98xz=E2=80=99. (You=E2=80=99d need a =E2=80=98trivial-build-system=E2=80=99 package that copies these two= binaries in $out/bin.) How does that sound? > Maybe we could move tests like these to a "long-running" test target > (e.g., "make check-long-running"). I think this could work, but I would > much rather just write tests that run quickly. We could do that but let=E2=80=99s see if we can avoid it for now. :-) > Maybe we could rewrite "guix pack" so that it uses system* to run tar. I=E2=80=99d rather not hinder reproducibility =E2=80=9Cjust=E2=80=9D for a = test. > Finally, maybe we could stick with running the tests in "dry-run" mode. > I'm in favor of this idea, but obviously I'm a little biased. :-) Well, that would work too, indeed. :-) > From 72e672e795fe8f4d67f7e1805ba8b88c874f3fb1 Mon Sep 17 00:00:00 2001 > From: Chris Marusich > Date: Tue, 20 Feb 2018 02:17:54 +0100 > Subject: [PATCH 1/7] tests: Add tests for "guix pack". > > * guix/scripts/pack.scm (%options): Add the --bootstrap option. > (show-help): Document it. > (guix-pack): Honor it. > * doc/guix.texi (Invoking guix pack): Document the new --bootstrap > option. > * tests/guix-pack.sh: New file. > * Makefile.am (SH_TESTS): Add guix-pack.sh. > * gnu/packages/package-management.scm (guix) : Add util-linux. [...] > +# Build a tarball with a symlink. > +the_pack=3D"$(guix pack --bootstrap -S /opt/gnu/bin=3Dbin guile-bootstra= p)" In general we use backticks instead of $(=E2=80=A6) to stick to POSIX shell= s. > +# Build a tarball pack of cross-compiled software. > +guix pack --bootstrap --target=3Darm-unknown-linux-gnueabihf guile-boots= trap This one is a little bit too costly (plus it wouldn=E2=80=99t work because guile-bootstrap is not actually cross-compilable), so I=E2=80=99d suggest a= dd =E2=80=98--dry-run=E2=80=99 and removing =E2=80=98-bootstrap=E2=80=99. :-) HTH! Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 0/7] Add "guix system docker-image" command (v2) Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 15 Mar 2018 04:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: bug#30572 <30572@debbugs.gnu.org> Cc: Danny Milosavljevic , Ludovic =?UTF-8?Q?Court=C3=A8s?= , Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15210869923629 (code B ref 30572); Thu, 15 Mar 2018 04:10:02 +0000 Received: (at 30572) by debbugs.gnu.org; 15 Mar 2018 04:09:52 +0000 Received: from localhost ([127.0.0.1]:33864 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKD9-0000wT-So for submit@debbugs.gnu.org; Thu, 15 Mar 2018 00:09:52 -0400 Received: from mail-pl0-f54.google.com ([209.85.160.54]:36106) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKD8-0000wD-Du for 30572@debbugs.gnu.org; Thu, 15 Mar 2018 00:09:50 -0400 Received: by mail-pl0-f54.google.com with SMTP id 61-v6so3033527plf.3 for <30572@debbugs.gnu.org>; Wed, 14 Mar 2018 21:09:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ZHH2SaGHRTl905mIAo89/c6/m5zKpvo2TJL4S06pNNY=; b=oSkmPc7V0Zv4JNvu/vfnMCbgC/RkFx7fZ3iSCvEscZphz/ABC6GaPf/qaYc7/eCluB oeAksMd+eQKY/AU/KV+STWVMsItl7TzpgtOtXQVdBpW/5ccpvHUGq9mp9L6cChOdkJ6d Oxm0oDufN6ldAuEd1kfYYb1TNK7fJ8baPl6+ukd1bQcoT9SvoYS2sJkZuWsluLN540gW F5rML2nBfj85uNnqNyTadKT29X0kRreF1eEXAAaYZ4KXG74dpTam3xiAtrJpSvl/lY2m FiwgUm5v0eyY3Tr6GMXVkmX7oJIB4i1v7q4KJp2ytoZ5ClfznrLs6+1WtM4GcLP5UWGz nwmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ZHH2SaGHRTl905mIAo89/c6/m5zKpvo2TJL4S06pNNY=; b=hHyc5C/6olyQP/nNTCOL9VozuiVi/HxlcUKXLq2mMFYzodOvxVm4SBq55+Ka9ZHZZR GJ/65fD4xqveZ910AvnY3VLIZlJagl/Ae4EzlMEgIjskRHJB9X0iJhput4/rFYMZBkXy cX8KDvjE/1Xf+H70RW/EJ1ib9Vj9IPwCRTqVbpl6ThmV1a9Zq1Cwqy+hOMeqU0MkGdk5 Aa85E5WuR/PT9kqqkG9/diZI2CpEuGGOJN5dVdX8+0vSv8nL4z/jqZcnMbNsLqsvmV+P 9scvtBJiw3rQEYORGup0D14KxD1Br0yNl0bx1oS2elv0tijx9svHZfSRezIfXWGddExK Wm4w== X-Gm-Message-State: AElRT7FXZMwiLwZL/5UmJaAUIT0uZFEwudejLSvPaMXfgDWE4ZdxuXJB rooQzFz9/gSAbafIGYV/7kkyCw== X-Google-Smtp-Source: AG47ELsOkEFbaJw0iK2OSxx7Ig7I8wQ2ogpNrY1o/X8sd8Ds44KwvmcVufLuq3Qg2cN/i3g5DqvhHA== X-Received: by 2002:a17:902:bf03:: with SMTP id bi3-v6mr6422060plb.343.1521086984054; Wed, 14 Mar 2018 21:09:44 -0700 (PDT) Received: from garuda.local.net ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id u28sm8397914pfl.19.2018.03.14.21.09.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 21:09:42 -0700 (PDT) From: Chris Marusich Date: Thu, 15 Mar 2018 05:09:08 +0100 Message-Id: <20180315040915.5556-1-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180222102933.4978-1-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) Hi Danny and Ludo, Thank you for the feedback! Please find attached a new patch series, which incorporates all the feedback I've received so far. I've verified the following: * This new patch series applies cleanly to b4bf9516. * For every patch in this new series, "make" succeeds and "make check" succeeds for the relevant tests: guix-system.sh, guix-pack.sh (when it exists), pack.scm, and system.scm. * After applying all patches, there are no new test failures for both "make check" and "make check-system"; the tests which passed before continue to pass. However, note that there are some existing unrelated failures for both targets as of commit b4bf9516. I will open a bug report for those unrelated failures shortly. * I built a GuixSD Docker image from the example file docker-image.tmpl, loaded it into Docker on another machine, and successfully installed and ran GNU Hello via Guix in the Docker container. Some notable differences from the first patch series are as follows: * There is no longer any need to modify base-initrd or raw-initrd. To work around the dlopen problem, we use a workaround like the one Ludo suggested. * The --bootstrap option (and tests) for "guix pack" are improved. The new option will cause "guix pack" to use not just the bootstrap Guile, but also the bootstrap tar and xz. * When building in a VM, share a temporary directory by default. This solves the problem of limited space in /tmp in the VM. * Rewrite build-docker-image significantly to allow adding more paths. The rest is largely the same. Please let me know what you think. I still have the following questions from my original email: * In system-docker-image (gnu/system/vm.scm), why is it necessary to define a custom (guix config) module? I copied some of the logic from docker-image (guix/scripts/pack.scm), and it works, but I do not understand this part. * Similarly, in gnu/system/vm.scm, why do we autoload libgcrypt? I do not understand why we cannot simply #:use-module (gnu packages gnupg) like we do with all the other modules here. Is it just for improved performance? * Similarly, in gnu/system/vm.scm, why do we use (ungexp-native json)? In the code, this is #+json and it occurs close to the comment "Guile-JSON is required by (guix docker)." It seems to me like we often mix the use of ugexp and ungexp-native for no apparent reason, and that in many cases it doesn't matter which one we use. If anyone can answer those questions, I'd really appreciate it! Chris Marusich (7): gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. tests: Add tests for "guix pack". vm: Allow control of deduplication in root-partition-initializer. gnu: When building in a VM, share a temporary directory. guix: Rewrite build-docker-image to allow more paths. system: Add "guix system docker-image" command. tests: Add tests for "guix system disk-image" et al. Makefile.am | 1 + doc/guix.texi | 42 ++++++- gnu/build/vm.scm | 20 +++- gnu/packages/bootstrap.scm | 34 ++++++ gnu/packages/package-management.scm | 2 + gnu/system/examples/docker-image.tmpl | 47 ++++++++ gnu/system/vm.scm | 125 ++++++++++++++++++++- guix/docker.scm | 200 +++++++++++++++++++++------------- guix/scripts/pack.scm | 70 ++++++++---- guix/scripts/system.scm | 12 +- tests/guix-pack.sh | 74 +++++++++++++ tests/guix-system.sh | 17 +++ 12 files changed, 531 insertions(+), 113 deletions(-) create mode 100644 gnu/system/examples/docker-image.tmpl create mode 100644 tests/guix-pack.sh -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 15 Mar 2018 04:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: bug#30572 <30572@debbugs.gnu.org> Cc: Danny Milosavljevic , Ludovic =?UTF-8?Q?Court=C3=A8s?= , Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15210869993654 (code B ref 30572); Thu, 15 Mar 2018 04:10:02 +0000 Received: (at 30572) by debbugs.gnu.org; 15 Mar 2018 04:09:59 +0000 Received: from localhost ([127.0.0.1]:33867 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDH-0000wr-8q for submit@debbugs.gnu.org; Thu, 15 Mar 2018 00:09:59 -0400 Received: from mail-pl0-f52.google.com ([209.85.160.52]:42425) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDF-0000wZ-Gw for 30572@debbugs.gnu.org; Thu, 15 Mar 2018 00:09:57 -0400 Received: by mail-pl0-f52.google.com with SMTP id w15-v6so3022340plq.9 for <30572@debbugs.gnu.org>; Wed, 14 Mar 2018 21:09:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cWe4zu/dRqheQ50e/2Ts+ZUPeH+FR0JMBPPrkHavJP0=; b=JI6PfgIeW0p03jzojlH3MCmALP6BNrGDM1LUW5oBv0X49/OSKaMpFWnGKHuBAkyHYL I3iwi3ymKllKAVPc5nPDTDj45rZDssyXFoVbPFZzfEVMGwiZIqimODI0IcRweb4NWlQj 6rr2fZHyax5PunMPeyJVksF6RL9+B9ON9Lolgqjbx+PJJn+U/bX2bL9ys+CDFTgCwN/7 CEPgdivYXEaTA6OkeKjOtuM6I5rnO+W440/7ano+yjM62SX0s6F4s9z4RJvnmdlwrM5B s8+q8/AtEDy7ADBKJ5KbKSdDDLfnYDt8yzI5L+sgqVGNZMnEflAm6v2B3KXlngUOBTKt AVpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cWe4zu/dRqheQ50e/2Ts+ZUPeH+FR0JMBPPrkHavJP0=; b=IQsNrf6I+TlKbNmv02JJNRTq6g54z7dSJ95HCz2ru/Aem+DHFnV3C5em3voYCbh1sl x1JkYqL52l/dpy+6YfkgELPWbQ28ZkMmNxxKOjhKI44Yj4BWjCizwjCFQ0kOvCgS8vPR YWjAQA37Y+lzJjor76WVFnDA1jvFAqffok3BeA1NHxqKXWuDuRI1BL53UcJnHGFjYRat EvP9ocV46y1TYLR8ydecenwpL9mGLi/KUkTvqI7nNkcziz9f1vR2TzJ4cN5iEIejLY3u tdesZlA+mahu7rsuow+q1XpR27iYmpChoyCFE5zpyQkkjzOQHsZTYc8Nz5aQnFfCM7F3 QeKw== X-Gm-Message-State: AElRT7ET6cOti9dWQSFP0f0PNk9QX0nWCIZxDjd5mCkq6emD8R+LkmTH uvhZlVTrZaz1OOhnwue2oj0hLA== X-Google-Smtp-Source: AG47ELuZqgqzXFW4RpHSDLvryS1HFWc/40zbpOvFE53gjKzzxhVv4hQA9kFPgS39Uiip8SQ0FiBJ9Q== X-Received: by 2002:a17:902:7291:: with SMTP id d17-v6mr5126393pll.65.1521086991611; Wed, 14 Mar 2018 21:09:51 -0700 (PDT) Received: from garuda.local.net ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id u28sm8397914pfl.19.2018.03.14.21.09.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 21:09:50 -0700 (PDT) From: Chris Marusich Date: Thu, 15 Mar 2018 05:09:09 +0100 Message-Id: <20180315040915.5556-2-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180315040915.5556-1-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) * gnu/packages/bootstrap.scm (bootstrap-binary): New procedure. (%bootstrap-bash, %bootstrap-mkdir, %bootstrap-tar, %bootstrap-xz): Use it to create these new packages, and export them. --- gnu/packages/bootstrap.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 27f2053c4..fff294971 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2018 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +44,10 @@ bootstrap-guile-origin %bootstrap-guile + %bootstrap-bash + %bootstrap-mkdir + %bootstrap-tar + %bootstrap-xz %bootstrap-coreutils&co %bootstrap-binutils %bootstrap-gcc @@ -345,6 +350,35 @@ $out/bin/guile --version~%" (home-page #f) (license lgpl3+)))) +(define (bootstrap-binary program-name) + (package + (name (string-append program-name "-bootstrap")) + ;; The version may differ depending on the program. + (version "unknown") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:guile ,%bootstrap-guile + #:builder (let ((out (assoc-ref %outputs "out")) + (program (assoc-ref %build-inputs ,program-name))) + (mkdir out) + (mkdir (string-append out "/bin")) + (symlink program (string-append out "/bin/" ,program-name))))) + (inputs `((,program-name ,(search-bootstrap-binary program-name (%current-system))))) + (description (string-append "The bootstrap " program-name ".")) + (synopsis (string-append "The bootstrap " program-name ".")) + (license gpl3+) + (home-page #f))) + +;; These trivial packages provide individual binaries that are also included +;; in %bootstrap-coreutils&co. However, these packages are more minimal than +;; %bootstrap-coreutils&co, and they do not require network access to build +;; because these specific binaries are included in the Guix source tree. +(define %bootstrap-bash (bootstrap-binary "bash")) +(define %bootstrap-mkdir (bootstrap-binary "mkdir")) +(define %bootstrap-tar (bootstrap-binary "tar")) +(define %bootstrap-xz (bootstrap-binary "xz")) + (define %bootstrap-coreutils&co (package-from-tarball "bootstrap-binaries" (lambda (system) -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 3/7] vm: Allow control of deduplication in root-partition-initializer. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 15 Mar 2018 04:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: bug#30572 <30572@debbugs.gnu.org> Cc: Danny Milosavljevic , Ludovic =?UTF-8?Q?Court=C3=A8s?= , Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15210870073721 (code B ref 30572); Thu, 15 Mar 2018 04:11:01 +0000 Received: (at 30572) by debbugs.gnu.org; 15 Mar 2018 04:10:07 +0000 Received: from localhost ([127.0.0.1]:33874 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDP-0000xx-K2 for submit@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:07 -0400 Received: from mail-pg0-f65.google.com ([74.125.83.65]:37796) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDN-0000wz-Ac for 30572@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:05 -0400 Received: by mail-pg0-f65.google.com with SMTP id t186so2317037pgc.4 for <30572@debbugs.gnu.org>; Wed, 14 Mar 2018 21:10:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=h3YP9KVUHAAVTU0MdRl5h8RapqUfKSWS3OZaNIQA9jY=; b=X82QL93lMRS/FlMGAI4z2CAv7NW2V72E9Vn65PVvgIxezjnndKRTdk3N81XsHWtUVW blZHIZxxqNrmWwuVvC7AccMu1dACgXQ5Usus1SKuJLl9pil+3YQ0ehJIdnrznSprugVl dL8vbDcSEhqatyEVxy4DHKGMnEXEA71SU4nUKIgOpYckh3zDuFBRmHlAxIbzPUNLFh75 uJC8DPZ+glOz3Bon+ZlFH1GJT2E+6LVMq4G4VR6kxiBiX9Y+8BmO3B8tNX2Ib1r25pvM QM+f+Ecly9xryRCAHd23vucGDKxLIBp5IuptN1Jzg2xjs4dg0lbXXLbYWTGGbB8L5MZA H3VQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=h3YP9KVUHAAVTU0MdRl5h8RapqUfKSWS3OZaNIQA9jY=; b=pTV+lwtJaJ91sFJsNU5+tgesXOcCD9853n8oQimnlk2VINZrxOpD5BFJL+Yek6xZlL UKIKz7QllcWIxPyEKB/uX9YN4iPDD9EDlt1MdS4bwMRqugq1ta0WoyYYI2V3twP9VUTt VpnAhPUGdiQasIy4ibyYtyGqXE4RuIiw5mFjZ5/PBEF1V9rsE+TNqpuza9Ej1IMvw0Od iO3JFKYE8TMlV4oqStgFOk06pDOjfnaD2CuUvbp8uaP5JsyC/MygBsG4hu2ohUxpjYaf rc7mi3dysxn2uwfq/S75lnJbAGR6ThlJXwmqsYegIt8B1XseuzrijrzndUEUYSscMGkf Ypug== X-Gm-Message-State: AElRT7H5rCrgN4Vk2p+a+PtAfcBF8nNR0V3kJ/7LS5P4y5Iwkb/UN3ek Q/Hqp0pFVUb/zX4l7bhMyDpY0g== X-Google-Smtp-Source: AG47ELsN283wAPmKoesQsFkLURg4mIhIg4haLVKqIzI0EB7y2zFT/m2Fj6q0c6NpyccKs5MPxB+vVQ== X-Received: by 10.101.97.26 with SMTP id z26mr5693171pgu.44.1521086999006; Wed, 14 Mar 2018 21:09:59 -0700 (PDT) Received: from garuda.local.net ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id u28sm8397914pfl.19.2018.03.14.21.09.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 21:09:57 -0700 (PDT) From: Chris Marusich Date: Thu, 15 Mar 2018 05:09:11 +0100 Message-Id: <20180315040915.5556-4-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180315040915.5556-1-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) * gnu/build/vm.scm (root-partition-initializer): Add #:deduplicate? keyword argument. --- gnu/build/vm.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index fe003ea45..6380df0a1 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2018 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -318,11 +319,14 @@ it, run its initializer, and unmount it." (define* (root-partition-initializer #:key (closures '()) copy-closures? (register-closures? #t) - system-directory) + system-directory + (deduplicate? #t)) "Return a procedure to initialize a root partition. -If REGISTER-CLOSURES? is true, register all of CLOSURES is the partition's -store. If COPY-CLOSURES? is true, copy all of CLOSURES to the partition. +If REGISTER-CLOSURES? is true, register all of CLOSURES in the partition's +store. If DEDUPLICATE? is true, then also deduplicate files common to +CLOSURES and the rest of the store when registering the closures. If +COPY-CLOSURES? is true, copy all of CLOSURES to the partition. SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." (lambda (target) (define target-store @@ -347,7 +351,8 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." (display "registering closures...\n") (for-each (lambda (closure) (register-closure target - (string-append "/xchg/" closure))) + (string-append "/xchg/" closure) + #:deduplicate? deduplicate?)) closures) (unless copy-closures? (umount target-store))) -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 4/7] gnu: When building in a VM, share a temporary directory. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 15 Mar 2018 04:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: bug#30572 <30572@debbugs.gnu.org> Cc: Danny Milosavljevic , Ludovic =?UTF-8?Q?Court=C3=A8s?= , Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15210870103739 (code B ref 30572); Thu, 15 Mar 2018 04:11:02 +0000 Received: (at 30572) by debbugs.gnu.org; 15 Mar 2018 04:10:10 +0000 Received: from localhost ([127.0.0.1]:33877 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDR-0000yD-SY for submit@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:10 -0400 Received: from mail-pg0-f52.google.com ([74.125.83.52]:45721) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDO-0000x3-L5 for 30572@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:06 -0400 Received: by mail-pg0-f52.google.com with SMTP id s13so2304994pgn.12 for <30572@debbugs.gnu.org>; Wed, 14 Mar 2018 21:10:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KsNd7nyoQ+fqDv26/ds+cdFZ0AdS3lNBPjcGYPL17AA=; b=kV01kIkHF4kYeu65nmB1oeQBWEN4pFb8Lq//2rQakrA8+Sljin1A2CNO6NEOYslbvF cDjMbaW1suSvD6KfzrQx2PrWKpCBukutB9L7iwPs7aWYeiONFgbXfZ62DBj0KgxMyNl6 5hoXfM0iDSsNTGWr1In7kytNM/ucogzacNOI3/SzmiiKxx7hUU+dbhgaxaIXxsJ+6H/C DPK+s4rUaNC1k/cuke4+K6CPJ/TVb324dpPmtBCc77Bu9E159ecQHPC83DtVRqkY2spT XblZNsSOeNjJZFl4k+yVUmpl3TnsiItAz1qXSlWcIsSRyGWjjBRD1dt5FUxhtfttSNda fSNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KsNd7nyoQ+fqDv26/ds+cdFZ0AdS3lNBPjcGYPL17AA=; b=WmWE3+3r5eODo9ODGkTQjEDH5+to/iv7/9PzBCtLalr/wuQ9DcmzoVY8ko02LSQ0XZ NohaweJx3CUCuwPgUvHa46Xrvt/9H8Sga6l1n1yl2U043SLK/U9wrGdzoDZbIGRW7g7H JXlD3t7LYPTRG9eLXOLBdU3VT39/zt+L4VKYAxPEXCHJdhDBPhEVPH02RxTch0XByhmA IdARhhsyQ4Gg8/VuPRg3/jbCowx9Xe9KlP2q3Q+Ry2Y+uPYDFjMIE1qSEOeVVDZ0Baoh 5/lzjkjLnzduMc1Y83twPhYeq0hUKdlXreBXfHS6Rchyp90PRCiLTTxClCWHPqaRtAR7 zjiw== X-Gm-Message-State: AElRT7EJVuarbL5nz79iWZDJXtLMkjlVDPAyBDWYYIXjkllLKNP09fSf eml42ttvQKphq/DpN5sLKomkng== X-Google-Smtp-Source: AG47ELsu1SQDVGPQHYkTMy79hZiwxJwsDgSfuvMBqkCjpMvDZ2ZKLj2ow2rxn834hD9GjJbWAF3s0Q== X-Received: by 10.98.141.205 with SMTP id p74mr6469200pfk.211.1521087000678; Wed, 14 Mar 2018 21:10:00 -0700 (PDT) Received: from garuda.local.net ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id u28sm8397914pfl.19.2018.03.14.21.09.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 21:09:59 -0700 (PDT) From: Chris Marusich Date: Thu, 15 Mar 2018 05:09:12 +0100 Message-Id: <20180315040915.5556-5-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180315040915.5556-1-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) * gnu/build/vm.scm (load-in-linux-vm): Make a shared temporary directory available in the VM. * gnu/system/vm.scm (%linux-vm-file-systems): Add a corresponding entry. --- gnu/build/vm.scm | 7 +++++++ gnu/system/vm.scm | 12 ++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 6380df0a1..806744a64 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -128,6 +128,7 @@ the #:references-graphs parameter of 'derivation'." (error "qemu-img failed"))) (mkdir "xchg") + (mkdir "tmp") (match references-graphs ((graph-files ...) @@ -149,6 +150,12 @@ the #:references-graphs parameter of 'derivation'." "-virtfs" (string-append "local,id=xchg_dev,path=xchg" ",security_model=none,mount_tag=xchg") + "-virtfs" + ;; Some programs require more space in /tmp than is normally + ;; available in the guest. Accommodate such programs by + ;; sharing a temporary directory. + (string-append "local,id=tmp_dev,path=tmp" + ",security_model=none,mount_tag=tmp") "-kernel" linux "-initrd" initrd "-append" (string-append "console=ttyS0 --load=" diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index ae8780d2e..d239fa56a 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2018 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -87,8 +88,8 @@ ;;; Code: (define %linux-vm-file-systems - ;; File systems mounted for 'derivation-in-linux-vm'. The store and /xchg - ;; directory are shared with the host over 9p. + ;; File systems mounted for 'derivation-in-linux-vm'. These are shared with + ;; the host over 9p. (list (file-system (mount-point (%store-prefix)) (device "store") @@ -102,6 +103,13 @@ (type "9p") (needed-for-boot? #t) (options "trans=virtio") + (check? #f)) + (file-system + (mount-point "/tmp") + (device "tmp") + (type "9p") + (needed-for-boot? #t) + (options "trans=virtio") (check? #f)))) (define* (expression->derivation-in-linux-vm name exp -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 5/7] guix: Rewrite build-docker-image to allow more paths. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 15 Mar 2018 04:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: bug#30572 <30572@debbugs.gnu.org> Cc: Danny Milosavljevic , Ludovic =?UTF-8?Q?Court=C3=A8s?= , Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15210870123749 (code B ref 30572); Thu, 15 Mar 2018 04:11:02 +0000 Received: (at 30572) by debbugs.gnu.org; 15 Mar 2018 04:10:12 +0000 Received: from localhost ([127.0.0.1]:33880 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDS-0000yF-5N for submit@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:10 -0400 Received: from mail-pg0-f49.google.com ([74.125.83.49]:36537) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDQ-0000xR-9g for 30572@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:08 -0400 Received: by mail-pg0-f49.google.com with SMTP id i14so2322016pgv.3 for <30572@debbugs.gnu.org>; Wed, 14 Mar 2018 21:10:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=27NofaJzMJORo47TuE9gQJ0pI05u81KVAs7MNF0NYaU=; b=dbi40CH9bwFONAS8zM1qErBDYOPR/CVzdvj0QMcvqxUbD1ZBc+hZuV9qrJbxqeIIUp oEWaPOWxRkUNGhfMyh8wImES3ggN9gTaDkB2HHo7+rexwYs7CCrOod6b7vS/wzAY3abE wbtaklbxDIBI8SQBi69IG+XSPl2K9EMk9bnj4SpCe4cE715jnDOP7My/mjymVwI+GkAL LGuPAFIY7gnjzDdojyYNY3kWm/YtSx+SwTjMu1wzB/mnbUt6cN0Wrfhr/s8wy5ZuLNwq //aSBfDAntkdFS+vqccBKoVSJs0zk8vLSvsXDMX4lrUtGL2xtTEhwy9GEL+QCiZnHuxC d+BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=27NofaJzMJORo47TuE9gQJ0pI05u81KVAs7MNF0NYaU=; b=rcSL0puuis8q1ar6Q52gnpwr2Tl7AT4FSR6I65FfVChhD0djpwI1ovBssE5qsgvHoP 4VahEaubhs2V+A80O5U2ASnmVplqSBb63ug7IzK1RLNiy5PFr+ZsvegtJNjUIHOlD81W UFoFT99aXGvKNP/DVHw3QLDnZdJCEewJj5pKQvh9BQdQzcb7N+rxl3tX2tdvCBVP4RPB 8AIoE9K5o5Avt7sUwrXkAdZaMKFuiSTH6QDRliImCrMbxFPKPrWbgc7KgWKJmT1A3We7 GfzKaJPp733Fc5Mo02qz0doXWp64XohNefA7GsTiLETy0Ptw+wU4bJB7Bo2C+b3mFzCB lR8g== X-Gm-Message-State: AElRT7GrSD6dJXTYsdgR1LNeh6+OlWj1B9ALuPPdC8gH/yGAAw2cs9nK 72bJwgdSl0dXiY5e/DBAEBHvMg== X-Google-Smtp-Source: AG47ELu7rqjlUMd2Mie99WjxSHsqlKU+F3sJW6pdxYtLFvIPaBYYixQD1FR1xdkHikMrdbqEuY3ShQ== X-Received: by 10.98.60.15 with SMTP id j15mr6497892pfa.7.1521087002153; Wed, 14 Mar 2018 21:10:02 -0700 (PDT) Received: from garuda.local.net ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id u28sm8397914pfl.19.2018.03.14.21.10.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 21:10:01 -0700 (PDT) From: Chris Marusich Date: Thu, 15 Mar 2018 05:09:13 +0100 Message-Id: <20180315040915.5556-6-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180315040915.5556-1-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) * guix/docker.scm (build-docker-image): Rename "path" argument to "prefix" to reflect the fact that it is used as a prefix for the symlink targets. Add the "paths" argument, and remove the "closure" argument, since it is now redundant. Add a "transformations" argument. * guix/scripts/pack.scm (docker-image): Read the profile's reference graph and provide its paths to build-docker-image via the new "paths" argument. --- guix/docker.scm | 200 ++++++++++++++++++++++++++++++-------------------- guix/scripts/pack.scm | 9 ++- 2 files changed, 128 insertions(+), 81 deletions(-) diff --git a/guix/docker.scm b/guix/docker.scm index 060232148..a75534c33 100644 --- a/guix/docker.scm +++ b/guix/docker.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2018 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,9 +24,12 @@ #:use-module ((guix build utils) #:select (mkdir-p delete-file-recursively - with-directory-excursion)) - #:use-module (guix build store-copy) + with-directory-excursion + invoke)) #:use-module (srfi srfi-19) + #:use-module (srfi srfi-26) + #:use-module ((texinfo string-utils) + #:select (escape-special-chars)) #:use-module (rnrs bytevectors) #:use-module (ice-9 match) #:export (build-docker-image)) @@ -33,8 +37,7 @@ ;; Load Guile-JSON at run time to simplify the job of 'imported-modules' & co. (module-use! (current-module) (resolve-interface '(json))) -;; Generate a 256-bit identifier in hexadecimal encoding for the Docker image -;; containing the closure at PATH. +;; Generate a 256-bit identifier in hexadecimal encoding for the Docker image. (define docker-id (compose bytevector->base16-string sha256 string->utf8)) @@ -102,82 +105,123 @@ return \"a\"." ((first rest ...) first))) -(define* (build-docker-image image path - #:key closure compressor +(define* (build-docker-image image paths prefix + #:key (symlinks '()) + (transformations '()) (system (utsname:machine (uname))) + compressor (creation-time (current-time time-utc))) - "Write to IMAGE a Docker image archive from the given store PATH. The image -contains the closure of PATH, as specified in CLOSURE (a file produced by -#:references-graphs). SYMLINKS must be a list of (SOURCE -> TARGET) tuples -describing symlinks to be created in the image, where each TARGET is relative -to PATH. SYSTEM is a GNU triplet (or prefix thereof) of the system the -binaries at PATH are for; it is used to produce metadata in the image. - -Use COMPRESSOR, a command such as '(\"gzip\" \"-9n\"), to compress IMAGE. Use -CREATION-TIME, a SRFI-19 time-utc object, as the creation time in metadata." - (let ((directory "/tmp/docker-image") ;temporary working directory - (closure (canonicalize-path closure)) - (id (docker-id path)) - (time (date->string (time-utc->date creation-time) "~4")) - (arch (let-syntax ((cond* (syntax-rules () - ((_ (pattern clause) ...) - (cond ((string-prefix? pattern system) - clause) - ... - (else - (error "unsupported system" - system))))))) - (cond* ("x86_64" "amd64") - ("i686" "386") - ("arm" "arm") - ("mips64" "mips64le"))))) + "Write to IMAGE a Docker image archive containing the given PATHS. PREFIX +must be a store path that is a prefix of any store paths in PATHS. + +SYMLINKS must be a list of (SOURCE -> TARGET) tuples describing symlinks to be +created in the image, where each TARGET is relative to PREFIX. +TRANSFORMATIONS must be a list of (OLD -> NEW) tuples describing how to +transform the PATHS. Any path in PATHS that begins with OLD will be rewritten +in the Docker image so that it begins with NEW instead. If a path is a +non-empty directory, then its contents will be recursively added, as well. + +SYSTEM is a GNU triplet (or prefix thereof) of the system the binaries in +PATHS are for; it is used to produce metadata in the image. Use COMPRESSOR, a +command such as '(\"gzip\" \"-9n\"), to compress IMAGE. Use CREATION-TIME, a +SRFI-19 time-utc object, as the creation time in metadata." + (define (sanitize path-fragment) + (escape-special-chars + ;; GNU tar strips the leading slash off of absolute paths before applying + ;; the transformations, so we need to do the same, or else our + ;; replacements won't match any paths. + (string-trim path-fragment #\/) + ;; Escape the basic regexp special characters (see: "(sed) BRE syntax"). + ;; We also need to escape "/" because we use it as a delimiter. + "/*.^$[]\\" + #\\)) + (define transformation->replacement + (match-lambda + ((old '-> new) + ;; See "(tar) transform" for details on the expression syntax. + (string-append "s/^" (sanitize old) "/" (sanitize new) "/")))) + (define (transformations->expression transformations) + (let ((replacements (map transformation->replacement transformations))) + (string-append + ;; Avoid transforming link targets, since that would break some links + ;; (e.g., symlinks that point to an absolute store path). + "flags=rSH;" + (string-join replacements ";") + ;; Some paths might still have a leading path delimiter even after tar + ;; transforms them (e.g., "/a/b" might be transformed into "/b"), so + ;; strip any leading path delimiters that remain. + ";s,^//*,,"))) + (define transformation-options + (if (eq? '() transformations) + '() + `("--transform" ,(transformations->expression transformations)))) + (let* ((directory "/tmp/docker-image") ;temporary working directory + (id (docker-id prefix)) + (time (date->string (time-utc->date creation-time) "~4")) + (arch (let-syntax ((cond* (syntax-rules () + ((_ (pattern clause) ...) + (cond ((string-prefix? pattern system) + clause) + ... + (else + (error "unsupported system" + system))))))) + (cond* ("x86_64" "amd64") + ("i686" "386") + ("arm" "arm") + ("mips64" "mips64le"))))) ;; Make sure we start with a fresh, empty working directory. (mkdir directory) - - (and (with-directory-excursion directory - (mkdir id) - (with-directory-excursion id - (with-output-to-file "VERSION" - (lambda () (display schema-version))) - (with-output-to-file "json" - (lambda () (scm->json (image-description id time)))) - - ;; Wrap it up. - (let ((items (call-with-input-file closure - read-reference-graph))) - ;; Create SYMLINKS. - (for-each (match-lambda - ((source '-> target) - (let ((source (string-trim source #\/))) - (mkdir-p (dirname source)) - (symlink (string-append path "/" target) - source)))) - symlinks) - - (and (zero? (apply system* "tar" "-cf" "layer.tar" - (append %tar-determinism-options - items - (map symlink-source symlinks)))) - (for-each delete-file-recursively - (map (compose topmost-component symlink-source) - symlinks))))) - - (with-output-to-file "config.json" - (lambda () - (scm->json (config (string-append id "/layer.tar") - time arch)))) - (with-output-to-file "manifest.json" - (lambda () - (scm->json (manifest path id)))) - (with-output-to-file "repositories" - (lambda () - (scm->json (repositories path id))))) - - (and (zero? (apply system* "tar" "-C" directory "-cf" image - `(,@%tar-determinism-options - ,@(if compressor - (list "-I" (string-join compressor)) - '()) - "."))) - (begin (delete-file-recursively directory) #t))))) + (with-directory-excursion directory + (mkdir id) + (with-directory-excursion id + (with-output-to-file "VERSION" + (lambda () (display schema-version))) + (with-output-to-file "json" + (lambda () (scm->json (image-description id time)))) + + ;; Create SYMLINKS. + (for-each (match-lambda + ((source '-> target) + (let ((source (string-trim source #\/))) + (mkdir-p (dirname source)) + (symlink (string-append prefix "/" target) + source)))) + symlinks) + + (apply invoke "tar" "-cf" "layer.tar" + `(,@transformation-options + ,@%tar-determinism-options + ,@paths + ,@(map symlink-source symlinks))) + ;; It is possible for "/" to show up in the archive, especially when + ;; applying transformations. For example, the transformation + ;; "s,^/a,," will (perhaps surprisingly) cause GNU tar to transform + ;; the path "/a" into "/". The presence of "/" in the archive is + ;; probably benign, but it is definitely safe to remove it, so let's + ;; do that. This fails when "/" is not in the archive, so use system* + ;; instead of invoke to avoid an exception in that case. + (system* "tar" "--delete" "/" "-f" "layer.tar") + (for-each delete-file-recursively + (map (compose topmost-component symlink-source) + symlinks))) + + (with-output-to-file "config.json" + (lambda () + (scm->json (config (string-append id "/layer.tar") + time arch)))) + (with-output-to-file "manifest.json" + (lambda () + (scm->json (manifest prefix id)))) + (with-output-to-file "repositories" + (lambda () + (scm->json (repositories prefix id))))) + + (apply invoke "tar" "-cf" image "-C" directory + `(,@%tar-determinism-options + ,@(if compressor + (list "-I" (string-join compressor)) + '()) + ".")) + (delete-file-recursively directory))) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 64ed44460..fba17f8e5 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -235,6 +235,7 @@ the image." (define build (with-imported-modules `(,@(source-module-closure '((guix docker)) #:select? not-config?) + (guix build store-copy) ((guix config) => ,config)) #~(begin ;; Guile-JSON is required by (guix docker). @@ -242,13 +243,15 @@ the image." (string-append #+json "/share/guile/site/" (effective-version))) - (use-modules (guix docker) (srfi srfi-19)) + (use-modules (guix docker) (srfi srfi-19) (guix build store-copy)) (setenv "PATH" (string-append #$tar "/bin")) - (build-docker-image #$output #$profile + (build-docker-image #$output + (call-with-input-file "profile" + read-reference-graph) + #$profile #:system (or #$target (utsname:machine (uname))) - #:closure "profile" #:symlinks '#$symlinks #:compressor '#$(compressor-command compressor) #:creation-time (make-time time-utc 0 1))))) -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 6/7] system: Add "guix system docker-image" command. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 15 Mar 2018 04:11:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: bug#30572 <30572@debbugs.gnu.org> Cc: Danny Milosavljevic , Ludovic =?UTF-8?Q?Court=C3=A8s?= , Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15210870133771 (code B ref 30572); Thu, 15 Mar 2018 04:11:03 +0000 Received: (at 30572) by debbugs.gnu.org; 15 Mar 2018 04:10:13 +0000 Received: from localhost ([127.0.0.1]:33883 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDV-0000yk-0S for submit@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:13 -0400 Received: from mail-pl0-f43.google.com ([209.85.160.43]:43389) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDR-0000xi-SG for 30572@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:10 -0400 Received: by mail-pl0-f43.google.com with SMTP id f23-v6so3018845plr.10 for <30572@debbugs.gnu.org>; Wed, 14 Mar 2018 21:10:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wxfL+PIeMWVEHA2Okuz2X0IvXNupyR7IuOTQdwgnmGQ=; b=dYiH29HQXm59YFU+eGNusKBksF3NduD/ivmJsy9om1rC1Tn1PPmf/tnQ/f3lgsY0tp y3oVNtBTtvhw3LLLlB1c5odpSvKbD6mBcaGIWU10VUaVQgJUNZ3Jjvl5IVABUReO52YQ eSMa1VJxGbfIfqyfZow2LsK/LFG7bg/dkAJ9ztPiD8eQlFB4MKaABgKL62ZdRGDanZ1A YcQvyeuahmQKanyWocduQLxRcnfMobM39YMrYRKVqP6co/3ZZ4U+gIMhNOsGzFTeEOKR oCn4Ex5LrBYiNio498M9GiNM0a8Zt2awWDtKgJ3hPwOe0rBYF1N4PbxnDXnaITazA2Cx hTaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wxfL+PIeMWVEHA2Okuz2X0IvXNupyR7IuOTQdwgnmGQ=; b=Ba/8qQ3fmhclyTEuMME9xhbexhH6KJ+LdYAqyMNxOanjSE7fN4bnirpIfSoyuuL19W o4Yx4m0uR6fZOHclZJ44eeNSXJTn6ANMKecAQd/4I6VFz0fbKvqm7hK+FWumKYMcaTaO TTJGQ0lsIvRCyS4rYqD5rvg5Yw/IYK16hiFygwmIFHtjHYo3vLMB5grc60V8d+Ssy7Vx mbusOO1V8GCKwGjEvRmny1YD4Jy1uekumVfsB7bGLnBcMzuF3mKD+hfpj2G/G47oBArc rMqf53EM6mOh5M7zLmN64LtML/ilfQVj5NZM6ZUs4Ro1gKu00xwyanADh9D+LdYlzYx8 fyLA== X-Gm-Message-State: AElRT7G2otE3sep/Tr4cly41JSTUpHtOdO61LvEFiHeaGyHXi7gqi3hE rfT1YlUW5pvYFk9fuytNakw0Kw== X-Google-Smtp-Source: AG47ELuRLdvtk+vIUE1G0B9SH7vlgfg+uZDhrqxve1dh0x1MRzTsgmsC1YhxLjFBPmIkIFOBSWNgdQ== X-Received: by 2002:a17:902:20c2:: with SMTP id v2-v6mr6652768plg.82.1521087003812; Wed, 14 Mar 2018 21:10:03 -0700 (PDT) Received: from garuda.local.net ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id u28sm8397914pfl.19.2018.03.14.21.10.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 21:10:02 -0700 (PDT) From: Chris Marusich Date: Thu, 15 Mar 2018 05:09:14 +0100 Message-Id: <20180315040915.5556-7-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180315040915.5556-1-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) * gnu/system/vm.scm (system-docker-image): New procedure. * guix/scripts/system.scm (system-derivation-for-action): Add a case for docker-image, and in that case, call system-docker-image. (show-help): Document docker-image. (guix-system): Parse arguments for docker-image. * doc/guix.texi (Invoking guix system): Document "guix system docker-image". * gnu/system/examples/docker-image.tmpl: New file. --- doc/guix.texi | 36 +++++++++-- gnu/system/examples/docker-image.tmpl | 47 ++++++++++++++ gnu/system/vm.scm | 113 ++++++++++++++++++++++++++++++++++ guix/scripts/system.scm | 12 ++-- 4 files changed, 200 insertions(+), 8 deletions(-) create mode 100644 gnu/system/examples/docker-image.tmpl diff --git a/doc/guix.texi b/doc/guix.texi index 792539a12..8d38c3d4a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -20361,12 +20361,18 @@ containing at least the kernel, initrd, and bootloader data files must be created. The @code{--image-size} option can be used to specify the size of the image. +@cindex System images, creation in various formats +@cindex Creating system images in various formats @item vm-image @itemx disk-image -Return a virtual machine or disk image of the operating system declared -in @var{file} that stands alone. By default, @command{guix system} -estimates the size of the image needed to store the system, but you can -use the @option{--image-size} option to specify a value. +@itemx docker-image +Return a virtual machine, disk image, or Docker image of the operating +system declared in @var{file} that stands alone. By default, +@command{guix system} estimates the size of the image needed to store +the system, but you can use the @option{--image-size} option to specify +a value. Docker images are built to contain exactly what they need, so +the @option{--image-size} option is ignored in the case of +@code{docker-image}. You can specify the root file system type by using the @option{--file-system-type} option. It defaults to @code{ext4}. @@ -20384,6 +20390,28 @@ using the following command: # dd if=$(guix system disk-image my-os.scm) of=/dev/sdc @end example +When using @code{docker-image}, a Docker image is produced. Guix builds +the image from scratch, not from a pre-existing Docker base image. As a +result, it contains @emph{exactly} what you define in the operating +system configuration file. You can then load the image and launch a +Docker container using commands like the following: + +@example +image_id="$(docker load < guixsd-docker-image.tar.gz)" +docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\ + --entrypoint /var/guix/profiles/system/profile/bin/guile \\ + $image_id /var/guix/profiles/system/boot +@end example + +This command starts a new Docker container from the specified image. It +will boot the GuixSD system in the usual manner, which means it will +start any services you have defined in the operating system +configuration. Depending on what you run in the Docker container, it +may be necessary to give the container additional permissions. For +example, if you intend to build software using Guix inside of the Docker +container, you may need to pass the @option{--privileged} option to +@code{docker run}. + @item container Return a script to run the operating system declared in @var{file} within a container. Containers are a set of lightweight isolation diff --git a/gnu/system/examples/docker-image.tmpl b/gnu/system/examples/docker-image.tmpl new file mode 100644 index 000000000..d73187398 --- /dev/null +++ b/gnu/system/examples/docker-image.tmpl @@ -0,0 +1,47 @@ +;; This is an operating system configuration template for a "Docker image" +;; setup, so it has barely any services at all. + +(use-modules (gnu)) + +(operating-system + (host-name "komputilo") + (timezone "Europe/Berlin") + (locale "en_US.utf8") + + ;; This is where user accounts are specified. The "root" account is + ;; implicit, and is initially created with the empty password. + (users (cons (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + (supplementary-groups '("wheel" + "audio" "video")) + (home-directory "/home/alice")) + %base-user-accounts)) + + ;; Globally-installed packages. + (packages %base-packages) + + ;; Because the system will run in a Docker container, we may omit many + ;; things that would normally be required in an operating system + ;; configuration file. These things include: + ;; + ;; * bootloader + ;; * file-systems + ;; * services such as mingetty, udevd, slim, networking, dhcp + ;; + ;; Either these things are simply not required, or Docker provides + ;; similar services for us. + + ;; This will be ignored. + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (target "does-not-matter"))) + ;; This will be ignored, too. + (file-systems (list (file-system + (device "does-not-matter") + (mount-point "/") + (type "does-not-matter")))) + + ;; Guix is all you need! + (services (list (guix-service)))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index d239fa56a..dd3641151 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -23,6 +23,7 @@ (define-module (gnu system vm) #:use-module (guix config) + #:use-module (guix docker) #:use-module (guix store) #:use-module (guix gexp) #:use-module (guix derivations) @@ -30,6 +31,7 @@ #:use-module (guix monads) #:use-module (guix records) #:use-module (guix modules) + #:use-module (guix scripts pack) #:use-module (guix utils) #:use-module (guix hash) #:use-module (guix base32) @@ -39,7 +41,9 @@ #:use-module (gnu packages base) #:use-module (gnu packages bootloaders) #:use-module (gnu packages cdrom) + #:use-module (gnu packages compression) #:use-module (gnu packages guile) + #:autoload (gnu packages gnupg) (libgcrypt) #:use-module (gnu packages gawk) #:use-module (gnu packages bash) #:use-module (gnu packages less) @@ -76,6 +80,7 @@ system-qemu-image/shared-store system-qemu-image/shared-store-script system-disk-image + system-docker-image virtual-machine virtual-machine?)) @@ -376,6 +381,114 @@ the image." #:disk-image-format disk-image-format #:references-graphs inputs)) +(define* (system-docker-image os + #:key + (name "guixsd-docker-image") + register-closures?) + "Build a docker image. OS is the desired . NAME is the +base name to use for the output file. When REGISTER-CLOSURES? is not #f, +register the closure of OS with Guix in the resulting Docker image. This only +makes sense when you want to build a GuixSD Docker image that has Guix +installed inside of it. If you don't need Guix (e.g., your GuixSD Docker +image just contains a web server that is started by the Shepherd), then you +should set REGISTER-CLOSURES? to #f." + (define not-config? + (match-lambda + (('guix 'config) #f) + (('guix rest ...) #t) + (('gnu rest ...) #t) + (rest #f))) + + (define config + ;; (guix config) module for consumption by (guix gcrypt). + (scheme-file "gcrypt-config.scm" + #~(begin + (define-module (guix config) + #:export (%libgcrypt)) + + ;; XXX: Work around . + (eval-when (expand load eval) + (define %libgcrypt + #+(file-append libgcrypt "/lib/libgcrypt")))))) + + (define json + ;; Pick the guile-json package that corresponds to the Guile used to build + ;; derivations. + (if (string-prefix? "2.0" (package-version (default-guile))) + guile2.0-json + guile-json)) + + (mlet %store-monad ((os-drv (operating-system-derivation os #:container? #t)) + (name -> (string-append name ".tar.gz")) + (graph -> "system-graph")) + (define build + (with-imported-modules `(,@(source-module-closure '((guix docker) + (guix build utils) + (gnu build vm)) + #:select? not-config?) + (guix build store-copy) + ((guix config) => ,config)) + #~(begin + ;; Guile-JSON is required by (guix docker). + (add-to-load-path + (string-append #+json "/share/guile/site/" + (effective-version))) + (use-modules (guix docker) + (guix build utils) + (gnu build vm) + (srfi srfi-19) + (guix build store-copy)) + + (let* ((inputs '#$(append (list tar) + (if register-closures? + (list guix) + '()))) + ;; This initializer requires elevated privileges that are + ;; not normally available in the build environment (e.g., + ;; it needs to create device nodes). In order to obtain + ;; such privileges, we run it as root in a VM. + (initialize (root-partition-initializer + #:closures '(#$graph) + #:register-closures? #$register-closures? + #:system-directory #$os-drv + ;; De-duplication would fail due to + ;; cross-device link errors, so don't do it. + #:deduplicate? #f)) + ;; Even as root in a VM, the initializer would fail due to + ;; lack of privileges if we use a root-directory that is on + ;; a file system that is shared with the host (e.g., /tmp). + (root-directory "/guixsd-system-root")) + (set-path-environment-variable "PATH" '("bin" "sbin") inputs) + (mkdir root-directory) + (initialize root-directory) + (build-docker-image + (string-append "/xchg/" #$name) ;; The output file. + (cons* root-directory + (call-with-input-file (string-append "/xchg/" #$graph) + read-reference-graph)) + #$os-drv + #:compressor '(#+(file-append gzip "/bin/gzip") "-9n") + #:creation-time (make-time time-utc 0 1) + #:transformations `((,root-directory -> ""))))))) + (expression->derivation-in-linux-vm + name + ;; The VM's initrd Guile doesn't support dlopen, but our "build" gexp + ;; needs to be run by a Guile that can dlopen libgcrypt. The following + ;; hack works around that problem by putting the "build" gexp into an + ;; executable script (created by program-file) which, when executed, will + ;; run using a Guile that supports dlopen. That way, the VM's initrd + ;; Guile can just execute it via invoke, without using dlopen. See: + ;; https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00233.html + (with-imported-modules `((guix build utils)) + #~(begin + (use-modules (guix build utils)) + ;; If we use execl instead of invoke here, the VM will crash with a + ;; kernel panic. + (invoke #$(program-file "build-docker-image" build)))) + #:make-disk-image? #f + #:single-file-output? #t + #:references-graphs `((,graph ,os-drv))))) + ;;; ;;; VM and disk images. diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index acfccce96..09f99b300 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2016 Alex Kost -;;; Copyright © 2016, 2017 Chris Marusich +;;; Copyright © 2016, 2017, 2018 Chris Marusich ;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. @@ -701,7 +701,9 @@ checking this by themselves in their 'check' procedure." ("iso9660" "image.iso") (_ "disk-image")) #:disk-image-size image-size - #:file-system-type file-system-type)))) + #:file-system-type file-system-type)) + ((docker-image) + (system-docker-image os #:register-closures? #t)))) (define (maybe-suggest-running-guix-pull) "Suggest running 'guix pull' if this has never been done before." @@ -899,6 +901,8 @@ Some ACTIONS support additional ARGS.\n")) vm-image build a freestanding virtual machine image\n")) (display (G_ "\ disk-image build a disk image, suitable for a USB stick\n")) + (display (G_ "\ + docker-image build a Docker image\n")) (display (G_ "\ init initialize a root file system to run GNU\n")) (display (G_ "\ @@ -1130,7 +1134,7 @@ argument list and OPTS is the option alist." (case action ((build container vm vm-image disk-image reconfigure init extension-graph shepherd-graph list-generations roll-back - switch-generation search) + switch-generation search docker-image) (alist-cons 'action action result)) (else (leave (G_ "~a: unknown action~%") action)))))) @@ -1159,7 +1163,7 @@ argument list and OPTS is the option alist." (exit 1)) (case action - ((build container vm vm-image disk-image reconfigure) + ((build container vm vm-image disk-image docker-image reconfigure) (unless (or (= count 1) (and expr (= count 0))) (fail))) -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 2/7] tests: Add tests for "guix pack". Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 15 Mar 2018 04:11:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: bug#30572 <30572@debbugs.gnu.org> Cc: Danny Milosavljevic , Ludovic =?UTF-8?Q?Court=C3=A8s?= , Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15210870213787 (code B ref 30572); Thu, 15 Mar 2018 04:11:03 +0000 Received: (at 30572) by debbugs.gnu.org; 15 Mar 2018 04:10:21 +0000 Received: from localhost ([127.0.0.1]:33885 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDV-0000ym-JB for submit@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:20 -0400 Received: from mail-pl0-f49.google.com ([209.85.160.49]:36114) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDL-0000wp-FT for 30572@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:12 -0400 Received: by mail-pl0-f49.google.com with SMTP id 61-v6so3033869plf.3 for <30572@debbugs.gnu.org>; Wed, 14 Mar 2018 21:10:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=W9o6G7r+ES8ARk2vE5V7ggWcezoW5Y5+DNP/68HmjMY=; b=uOvDvqiJexA6fjtHEYAL7DJl3RegzEXT5aHf1n/H1UAjDZLz5BW6OVpspk0OZtrrKm LNUCY5oCwV3N64US776kNuxeBdBCdjO/MGX1/qrzYUwQ+v9A3+IY8Yt6GDGy79bhUd71 xigsZfLLnedU+f6Un7u0GR6NVXz5iMKoQC1rFu7kH40QjZKvpg3RUBkNUcdXa2wGOfAa lbKcDkYzwBAy/QSl3rLV3LL+D6b7f1/qrZvA9pmexAGY1QmV7CcYs4GgtR/I7uG1UuFJ Nd0KbwPIczusoqvFb5rwe30EYwI1VghNbAfhwngSsyrz6oUi3ywPhsd1QBIgCUi8fpyP TZ2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=W9o6G7r+ES8ARk2vE5V7ggWcezoW5Y5+DNP/68HmjMY=; b=t+/IirFjIPWR8zAasafU59Vy2Hm9yBL1Cnp1a920c9o9js+i+GgUtNknbXGAivvOd3 q6UR4KTESpYBPiKiSJuNe3DRuAoDRBVnGiGge5rzvb/9JNOJXP5/W7bbriKwudBvK6if i3IaSgFvOfuFjOudz6tQ2qUTV93wHmN9ebymy77tQJmkxhdPwGldJUKEo9+fcM6FKm7u dlmzitlx6CsutkHO93gf3318SJ1dFgIUETzSpKqmFzx4znSnQvL/NzXzsPIpvC4Nflni ihA1uQhOSG1W+ISY0t0TxSZioLDi5T3YZpG4iWfPtFJfHfzmI9K4qXVv+AzPlJc0ucyd luXA== X-Gm-Message-State: AElRT7FMXm0ZEBF7WeeGMLhCAGP9i2LEu4DZamiP3G419xTohkcaVfuO oXaZz7UjbrT8cc8lXvOfa2Q2Zg== X-Google-Smtp-Source: AG47ELuQ62tUIoF4gKCO8pNx06WJPKytTTgkPxMZh+kNrFtkJo55sq8DwhD2DmM6S5uVEEmkW7d2cA== X-Received: by 2002:a17:902:858c:: with SMTP id e12-v6mr6548602plo.39.1521086997480; Wed, 14 Mar 2018 21:09:57 -0700 (PDT) Received: from garuda.local.net ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id u28sm8397914pfl.19.2018.03.14.21.09.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 21:09:56 -0700 (PDT) From: Chris Marusich Date: Thu, 15 Mar 2018 05:09:10 +0100 Message-Id: <20180315040915.5556-3-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180315040915.5556-1-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) * guix/scripts/pack.scm (%compressors) : New compressor. (%options) <--bootstrap>: New option. (show-help): Document the new --bootstrap option. (guix-pack): When --bootstrap is specified, use the bootstrap Guile, tar, and xz to build the pack, and do not use any profile hooks or locales. * doc/guix.texi (Invoking guix pull): Document the new --bootstrap option. * tests/guix-pack.sh: New file. * Makefile.am (SH_TESTS): Add guix-pack.sh. * gnu/packages/package-management.scm (guix) : Add util-linux. --- Makefile.am | 1 + doc/guix.texi | 6 ++- gnu/packages/package-management.scm | 2 + guix/scripts/pack.scm | 61 +++++++++++++++++++++--------- tests/guix-pack.sh | 74 +++++++++++++++++++++++++++++++++++++ 5 files changed, 126 insertions(+), 18 deletions(-) create mode 100644 tests/guix-pack.sh diff --git a/Makefile.am b/Makefile.am index 6556799e6..637c934ed 100644 --- a/Makefile.am +++ b/Makefile.am @@ -374,6 +374,7 @@ SH_TESTS = \ tests/guix-download.sh \ tests/guix-gc.sh \ tests/guix-hash.sh \ + tests/guix-pack.sh \ tests/guix-package.sh \ tests/guix-package-net.sh \ tests/guix-system.sh \ diff --git a/doc/guix.texi b/doc/guix.texi index d3a7908f9..792539a12 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -23,7 +23,7 @@ Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* -Copyright @copyright{} 2016, 2017 Chris Marusich@* +Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* @@ -2899,6 +2899,10 @@ added to it or removed from it after extraction of the pack. One use case for this is the Guix self-contained binary tarball (@pxref{Binary Installation}). + +@item --bootstrap +Use the bootstrap binaries to build the pack. This option is only +useful to Guix developers. @end table In addition, @command{guix pack} supports all the common build options diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 709cdfd0f..a90ba7a21 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -257,6 +257,8 @@ ;; Many tests rely on the 'guile-bootstrap' package, which is why we ;; have it here. ("boot-guile" ,(bootstrap-guile-origin (%current-system))) + ;; Some of the tests use "unshare" when it is available. + ("util-linux" ,util-linux) ,@(if (and (not (%current-target-system)) (string=? (%current-system) "x86_64-linux")) `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux"))) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 59dd117ed..64ed44460 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2018 Konrad Hinsen +;;; Copyright © 2018 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,7 +34,9 @@ #:use-module (guix derivations) #:use-module (guix scripts build) #:use-module (gnu packages) + #:use-module (gnu packages bootstrap) #:use-module (gnu packages compression) + #:use-module (gnu packages guile) #:autoload (gnu packages base) (tar) #:autoload (gnu packages package-management) (guix) #:autoload (gnu packages gnupg) (libgcrypt) @@ -63,6 +66,8 @@ #~(#+(file-append lzip "/bin/lzip") "-9")) (compressor "xz" ".xz" #~(#+(file-append xz "/bin/xz") "-e -T0")) + (compressor "bootstrap-xz" ".xz" + #~(#+(file-append %bootstrap-xz "/bin/xz") "-e -T0")) (compressor "bzip2" ".bz2" #~(#+(file-append bzip2 "/bin/bzip2") "-9")) (compressor "none" "" #f))) @@ -325,6 +330,9 @@ the image." (option '("localstatedir") #f #f (lambda (opt name arg result) (alist-cons 'localstatedir? #t result))) + (option '("bootstrap") #f #f + (lambda (opt name arg result) + (alist-cons 'bootstrap? #t result))) (append %transformation-options %standard-build-options))) @@ -352,6 +360,8 @@ Create a bundle of PACKAGE.\n")) -m, --manifest=FILE create a pack with the manifest from FILE")) (display (G_ " --localstatedir include /var/guix in the resulting pack")) + (display (G_ " + --bootstrap use the bootstrap binaries to build the pack")) (newline) (display (G_ " -h, --help display this help and exit")) @@ -393,28 +403,43 @@ Create a bundle of PACKAGE.\n")) (else (packages->manifest packages))))) (with-error-handling - (parameterize ((%graft? (assoc-ref opts 'graft?))) - (let* ((dry-run? (assoc-ref opts 'dry-run?)) - (manifest (manifest-from-args opts)) - (pack-format (assoc-ref opts 'format)) - (name (string-append (symbol->string pack-format) - "-pack")) - (target (assoc-ref opts 'target)) - (compressor (assoc-ref opts 'compressor)) - (symlinks (assoc-ref opts 'symlinks)) - (build-image (match (assq-ref %formats pack-format) - ((? procedure? proc) proc) - (#f - (leave (G_ "~a: unknown pack format") - format)))) - (localstatedir? (assoc-ref opts 'localstatedir?))) - (with-store store + (let* ((dry-run? (assoc-ref opts 'dry-run?)) + (manifest (manifest-from-args opts)) + (pack-format (assoc-ref opts 'format)) + (name (string-append (symbol->string pack-format) + "-pack")) + (target (assoc-ref opts 'target)) + (bootstrap? (assoc-ref opts 'bootstrap?)) + (compressor (if bootstrap? + (lookup-compressor "bootstrap-xz") + (assoc-ref opts 'compressor))) + (tar (if bootstrap? + %bootstrap-tar + tar)) + (symlinks (assoc-ref opts 'symlinks)) + (build-image (match (assq-ref %formats pack-format) + ((? procedure? proc) proc) + (#f + (leave (G_ "~a: unknown pack format") + format)))) + (localstatedir? (assoc-ref opts 'localstatedir?))) + (with-store store + (parameterize ((%graft? (assoc-ref opts 'graft?)) + (%guile-for-build (package-derivation + store + (if (assoc-ref opts 'bootstrap?) + %bootstrap-guile + (canonical-package guile-2.2))))) ;; Set the build options before we do anything else. (set-build-options-from-command-line store opts) (run-with-store store (mlet* %store-monad ((profile (profile-derivation manifest + #:hooks (if bootstrap? + '() + %default-profile-hooks) + #:locales? (not bootstrap?) #:target target)) (drv (build-image name profile #:target @@ -424,7 +449,9 @@ Create a bundle of PACKAGE.\n")) #:symlinks symlinks #:localstatedir? - localstatedir?))) + localstatedir? + #:tar + tar))) (mbegin %store-monad (show-what-to-build* (list drv) #:use-substitutes? diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh new file mode 100644 index 000000000..cb141e628 --- /dev/null +++ b/tests/guix-pack.sh @@ -0,0 +1,74 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2018 Chris Marusich +# +# This file is part of GNU Guix. +# +# GNU Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# GNU Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Guix. If not, see . + +# +# Test the `guix pack' command-line utility. +# + +guix pack --version + +# Use --no-substitutes because we need to verify we can do this ourselves. +GUIX_BUILD_OPTIONS="--no-substitutes" +export GUIX_BUILD_OPTIONS + +# Build a tarball with no compression. +guix pack --compression=none --bootstrap guile-bootstrap + +# Build a tarball (with compression). +guix pack --bootstrap guile-bootstrap + +# Build a tarball with a symlink. +the_pack="`guix pack --bootstrap -S /opt/gnu/bin=bin guile-bootstrap`" + +is_available () { + # Use the "type" shell builtin to see if the program is on PATH. + type "$1" +} + +if is_available chroot && is_available unshare; then + # Verify we can extract and use it. + test_directory="`mktemp -d`" + trap 'rm -rf "$test_directory"' EXIT + cd "$test_directory" + tar -xf "$the_pack" + unshare -r chroot . /opt/gnu/bin/guile --version + cd - +else + echo "skipping pack verification because chroot or unshare is unavailable" +fi + +# For the tests that build Docker images below, we currently have to use +# --dry-run because if we don't, there are only two possible cases: +# +# Case 1: We do not use --bootstrap, and the build takes hours to finish +# because it needs to build tar etc. +# +# Case 2: We use --bootstrap, and the build fails because the bootstrap +# Guile cannot dlopen shared libraries. Not to mention the fact +# that we would still have to build many non-bootstrap inputs +# (e.g., guile-json) in order to create the Docker image. + +# Build a Docker image. +guix pack --dry-run --bootstrap -f docker guile-bootstrap + +# Build a Docker image with a symlink. +guix pack --dry-run --bootstrap -f docker -S /opt/gnu=/ guile-bootstrap + +# Build a tarball pack of cross-compiled software. Use coreutils because +# guile-bootstrap is not intended to be cross-compiled. +guix pack --dry-run --bootstrap --target=arm-unknown-linux-gnueabihf coreutils -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 7/7] tests: Add tests for "guix system disk-image" et al. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 15 Mar 2018 04:11:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: bug#30572 <30572@debbugs.gnu.org> Cc: Danny Milosavljevic , Ludovic =?UTF-8?Q?Court=C3=A8s?= , Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15210870213793 (code B ref 30572); Thu, 15 Mar 2018 04:11:04 +0000 Received: (at 30572) by debbugs.gnu.org; 15 Mar 2018 04:10:21 +0000 Received: from localhost ([127.0.0.1]:33887 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDd-0000z2-3Y for submit@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:21 -0400 Received: from mail-pl0-f51.google.com ([209.85.160.51]:39002) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewKDT-0000xq-CK for 30572@debbugs.gnu.org; Thu, 15 Mar 2018 00:10:12 -0400 Received: by mail-pl0-f51.google.com with SMTP id k22-v6so2189159pls.6 for <30572@debbugs.gnu.org>; Wed, 14 Mar 2018 21:10:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=onwsi5f2R0ws/p6qAT91vCx2vl1Gw4CP+99lTCcwjU4=; b=TQPRaMyT3vKMYYpJf4ga6XR2HpD6Fu5+WursGllx0SDm+P+N7u09T+OTQ4gb5AfoFn sC5db9P1H/YilLnf3xMLm6XwGy0w5Sno6Eck16cAnSyqbbMsGpWO2gNL2fNeWUyinrOZ A6QazcoP6wVOFYuF6n27jr0MuftXqArFdX+ipm6hL4BTJmFMiaeXVtifB/aqQg1Ijtf0 N/hdSAwWSaF6M6xkK9DiohewJ0rGeEZ9auPZK1nj96RsqinoRtz3woF/1CakWSg5pQIP hWgZADCWQvTBChGGbM626jq/IFUaH2PtSrfa5OrrqWjVDKh9JtWUMvfuJhO+qzwbWJIS IMmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=onwsi5f2R0ws/p6qAT91vCx2vl1Gw4CP+99lTCcwjU4=; b=Hh9kVTjSCAfKZYjU+7Rn0UZ54k3R8C2qVBMqyD+HqlozguiVVgg3nt7rKJPFVXiKVr jHwJ88deegNr+dWJ/PUhitb0c9mGmD2m9I6I1V7f4zzeiWuCzR2xW3xA5CvNlwSg5liH mfZrBhMDSou8gmOJoFyMAIg38C517NMGz1Xdrdoz7Q0B4XtbFv81QfgRtshlX2HZCNfI Erz0B9v1+qeqZxGksLIBc4mAe7DpXk4iW9umGG9SyTuCxeh9jbafZNtECnxa5xmjxByP CqD3WtiYOfGqnEE9rTDBksCnrO0t1mG9vRHLW512t2lytybEZB4ZYN88yBsMY/Kr2yqe 4RGw== X-Gm-Message-State: AElRT7HKHc0GIB9vEEa+ZBIKG0v9xF9AA4MkGtKtcIVsIIz6ktd0FpbP BL5dGSKPmRbG/sPHNo7TtORQJQ== X-Google-Smtp-Source: AG47ELuj86irQI8+vQcUpEv8nSbezv4/J69CPqmX5dKt0oJgOGAj8JwevTzmN/K4JbuwLAeSIs3aBg== X-Received: by 2002:a17:902:6c01:: with SMTP id q1-v6mr6643218plk.142.1521087005454; Wed, 14 Mar 2018 21:10:05 -0700 (PDT) Received: from garuda.local.net ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id u28sm8397914pfl.19.2018.03.14.21.10.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 21:10:04 -0700 (PDT) From: Chris Marusich Date: Thu, 15 Mar 2018 05:09:15 +0100 Message-Id: <20180315040915.5556-8-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180315040915.5556-1-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) * tests/guix-system.sh: Add test cases that exercise (1) all of the example files in gnu/system/examples, and (2) all of the "image" creation commands: vm, vm-image, disk-image, and docker-image. --- tests/guix-system.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/guix-system.sh b/tests/guix-system.sh index ed8563c8a..211c26f43 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -1,6 +1,7 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès # Copyright © 2017 Tobias Geerinckx-Rice +# Copyright © 2018 Chris Marusich # # This file is part of GNU Guix. # @@ -267,3 +268,19 @@ guix system build "$tmpdir/config.scm" -n # Searching. guix system search tor | grep "^name: tor" guix system search anonym network | grep "^name: tor" + +# Below, use -n (--dry-run) for the tests because if we actually tried to +# build these images, the commands would take hours to run in the worst case. + +# Verify that the examples can be built. +for example in gnu/system/examples/*; do + guix system -n disk-image $example +done + +# Verify that the disk image types can be built. +guix system -n vm gnu/system/examples/vm-image.tmpl +guix system -n vm-image gnu/system/examples/vm-image.tmpl +# This invocation was taken care of in the loop above: +# guix system -n disk-image gnu/system/examples/bare-bones.tmpl +guix system -n disk-image --file-system-type=iso9660 gnu/system/examples/bare-bones.tmpl +guix system -n docker-image gnu/system/examples/docker-image.tmpl -- 2.15.1 From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 3/7] vm: Allow control of deduplication in root-partition-initializer. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 16 Mar 2018 20:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: bug#30572 <30572@debbugs.gnu.org> Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15212332346886 (code B ref 30572); Fri, 16 Mar 2018 20:48:02 +0000 Received: (at 30572) by debbugs.gnu.org; 16 Mar 2018 20:47:14 +0000 Received: from localhost ([127.0.0.1]:37329 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewwFu-0001n0-16 for submit@debbugs.gnu.org; Fri, 16 Mar 2018 16:47:14 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:55828) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewwFs-0001mq-9V for 30572@debbugs.gnu.org; Fri, 16 Mar 2018 16:47:12 -0400 Received: from localhost (178.113.244.42.wireless.dyn.drei.com [178.113.244.42]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 171C03360CA2; Fri, 16 Mar 2018 21:47:09 +0100 (CET) Date: Fri, 16 Mar 2018 21:47:03 +0100 From: Danny Milosavljevic Message-ID: <20180316214636.34059779@scratchpost.org> In-Reply-To: <20180315040915.5556-4-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-4-cmmarusich@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/DTcm4iO1m5zp28SrEcKu74Y"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/DTcm4iO1m5zp28SrEcKu74Y Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable LGTM! --Sig_/DTcm4iO1m5zp28SrEcKu74Y Content-Type: application/pgp-signature Content-Description: Digitale Signatur von OpenPGP -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlqsLUcACgkQ5xo1VCww uqUOHQf/Tt3DLwT0nEoUbuX5jDGiL5b/C+h0qLUPWHVz/na2gaswZLJUS/FA6gGt 8XL9Qg5aBdLc+WlDF6jUX1Tz9BLI3A4YhprckxzK91uT2MVnDmoeovLEK/vyH4PZ 9IGcvrHp4q6H3aTJkOviFby8H+rLHDvu6HiFLbIYTiYn/MjDOctrtp25q3u2O9N4 LPEWX3eNgYC6n9V618KAVFrYilVQmliA2usBcQOdjnLxTVWwGGpKA2TTy/JoVIAq 5TbtngphJ34+CO5A2xa0HCZSBoJdDt8j3e/Y5vL7/n30BglBMLve6Huo9GIdG4gn ejESyZ3yy2/qn/Zr78KANJgzk0+CBQ== =nuOB -----END PGP SIGNATURE----- --Sig_/DTcm4iO1m5zp28SrEcKu74Y-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 2/7] tests: Add tests for "guix pack". Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 16 Mar 2018 21:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: bug#30572 <30572@debbugs.gnu.org>, Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15212344718769 (code B ref 30572); Fri, 16 Mar 2018 21:08:02 +0000 Received: (at 30572) by debbugs.gnu.org; 16 Mar 2018 21:07:51 +0000 Received: from localhost ([127.0.0.1]:37341 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewwZr-0002HM-Eh for submit@debbugs.gnu.org; Fri, 16 Mar 2018 17:07:51 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:57524) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewwZp-0002HF-Kz for 30572@debbugs.gnu.org; Fri, 16 Mar 2018 17:07:49 -0400 Received: from localhost (178.113.244.42.wireless.dyn.drei.com [178.113.244.42]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 4862E3360A8E; Fri, 16 Mar 2018 22:07:48 +0100 (CET) Date: Fri, 16 Mar 2018 22:07:32 +0100 From: Danny Milosavljevic Message-ID: <20180316220732.19c2375a@scratchpost.org> In-Reply-To: <20180315040915.5556-3-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-3-cmmarusich@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/.ix.V3AENvfqyWWfBmcIv0q"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/.ix.V3AENvfqyWWfBmcIv0q Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable > +is_available () { > + # Use the "type" shell builtin to see if the program is on PATH. > + type "$1" Maybe >/dev/null ? Then it would only complain if it needed to. > +else > + echo "skipping pack verification because chroot or unshare is unavai= lable" echo "warning: Skipping pack verification because chroot or unshare is unav= ailable" >&2 Otherwise LGTM! --Sig_/.ix.V3AENvfqyWWfBmcIv0q Content-Type: application/pgp-signature Content-Description: Digitale Signatur von OpenPGP -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlqsMhQACgkQ5xo1VCww uqV/igf/R/I2tFIpIQkBf7HpfzCB04rdmkGJgmf1+HN32w2Qkf4nGLwQCV6z3i8s 9lMH9peNABjUf11iBdG7nmB4OrsNgCg9V5FamrApFYDgP36rAESalHzx/1r8kIai ATzuSRLIROuGaCkIdyxR+pRZKKaM/vBQ4JLOsWwybtLnIFu/w1ogxNbHm5FQXnR5 fGm/DFejrVM0Vmw8C5/Cfz9wGIBIPVN2j5oirsY6SbLc97vXHg+uRvKsrOwS+bHh mjmrigE2LPDQGMzO8EDHmUWJwwP3lOESJNpJBXYCsIcJ0pOHP7eorgR0/rEBM0BA Xm4qSwafbNRJzus5rBqwZ0wFRIqEfQ== =0fd4 -----END PGP SIGNATURE----- --Sig_/.ix.V3AENvfqyWWfBmcIv0q-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 4/7] gnu: When building in a VM, share a temporary directory. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 16 Mar 2018 22:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: bug#30572 <30572@debbugs.gnu.org>, Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152123765113700 (code B ref 30572); Fri, 16 Mar 2018 22:01:02 +0000 Received: (at 30572) by debbugs.gnu.org; 16 Mar 2018 22:00:51 +0000 Received: from localhost ([127.0.0.1]:37360 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewxP9-0003Yt-AB for submit@debbugs.gnu.org; Fri, 16 Mar 2018 18:00:51 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:32830) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewxP7-0003Yl-8W for 30572@debbugs.gnu.org; Fri, 16 Mar 2018 18:00:49 -0400 Received: from localhost (77.118.168.112.wireless.dyn.drei.com [77.118.168.112]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 915503360CA2; Fri, 16 Mar 2018 23:00:47 +0100 (CET) Date: Fri, 16 Mar 2018 23:00:45 +0100 From: Danny Milosavljevic Message-ID: <20180316230045.63ad8439@scratchpost.org> In-Reply-To: <20180315040915.5556-5-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-5-cmmarusich@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/S9pjeh7zlnSNEzYehTRh./F"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/S9pjeh7zlnSNEzYehTRh./F Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable LGTM! There are now three manual "-virtfs" arguments to qemu. It's starting to i= rk me a little. It might make sense to generate those from %linux-vm-filesystems in order to not have so much duplication and places where things can go wro= ng when maintaining. If you'd like, could you maybe pass the %linux-vm-filesystems to load-in-linux-vm and then automatically calculate those -virtfs entries? (In a future patchset - I don't wanna hold up this one) There's already common-qemu-options which would support , and %store-mapping, so actually it would make sense to use those (probably = easiest to move build/vm.scm's load-in-linux-vm into system/vm.scm expression->derivation-in-linux-vm so the qemu stuff isn't scattered all ov= er the place - right now, half is in gnu/system/vm.scm and a mostly redundant = half is in gnu/build/vm.scm ... not ideal). There's a "mapping->file-system" helper, so it might make sense to use instead of in %linux-vm-filesystems. So all in all: * Modify %linux-vm-filesystems to be file-system-mappings instead of file-s= ystems. Also modify the place it is used. * Move load-in-linux-vm to gnu/system/vm.scm (maybe inline into caller). * Modify load-in-linux-vm to use common-qemu-options. Notice that the "-append" option is passed twice. Bug... <-- I just fixed = that in master If you want I can do it. --Sig_/S9pjeh7zlnSNEzYehTRh./F Content-Type: application/pgp-signature Content-Description: Digitale Signatur von OpenPGP -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlqsPo0ACgkQ5xo1VCww uqWzggf9FMY4/5HtQlLiOJ3+eAb+KxPxCsnHLgY/s+NvC81IwnlhEg/M7vfx8dJ2 G2HN59cQMivFnGEAYeB0PmYsQOELaV8LEm9M2uiMVUarrO0Bi1825V8g+CRgiMgD IqfnFw7PvY8ye0gpq1PfmIIWHU24wMocuXdUItAqAJ6EOfYgo9O1vGSo/lZ7qDnB gKM2Dyp8MMe7gZMnmMoeGJoWQkxdWWxwyhp17d28sf/q3ukwMIxv0hJZYusl5TfB 7+vlOal8YQIwvNezuvRQiw8Gmu8yRxZryF432bwgej2v1MVOr1T1p33rkiliwnj1 t2IthTgBvK19COaaDZzVJIsfBo0aBg== =qcJX -----END PGP SIGNATURE----- --Sig_/S9pjeh7zlnSNEzYehTRh./F-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 7/7] tests: Add tests for "guix system disk-image" et al. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 16 Mar 2018 22:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: bug#30572 <30572@debbugs.gnu.org>, Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152123785914014 (code B ref 30572); Fri, 16 Mar 2018 22:05:01 +0000 Received: (at 30572) by debbugs.gnu.org; 16 Mar 2018 22:04:19 +0000 Received: from localhost ([127.0.0.1]:37365 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewxSU-0003dy-Q4 for submit@debbugs.gnu.org; Fri, 16 Mar 2018 18:04:18 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:33106) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewxSS-0003do-Ag for 30572@debbugs.gnu.org; Fri, 16 Mar 2018 18:04:16 -0400 Received: from localhost (77.118.168.112.wireless.dyn.drei.com [77.118.168.112]) by dd26836.kasserver.com (Postfix) with ESMTPSA id EB7763360CA2; Fri, 16 Mar 2018 23:04:14 +0100 (CET) Date: Fri, 16 Mar 2018 23:04:09 +0100 From: Danny Milosavljevic Message-ID: <20180316230409.53bb606d@scratchpost.org> In-Reply-To: <20180315040915.5556-8-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-8-cmmarusich@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/Ymyeu_1AH8rMlOzK6flMhKB"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/Ymyeu_1AH8rMlOzK6flMhKB Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable LGTM! --Sig_/Ymyeu_1AH8rMlOzK6flMhKB Content-Type: application/pgp-signature Content-Description: Digitale Signatur von OpenPGP -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlqsP1kACgkQ5xo1VCww uqWfaAf9EQfQdZhqXl3cJF261N3GRDgxLSQw/qSApR6UTkHHckIEWUuzZzxkBl5V f0NyyYZYJSGxEFBoaL4JIzPIiht40dh4jykncTD0ItfGsDuEq92pF72ppdBi39L5 BHZvDskw8BucyDx0maaTJvpr1n0aKmioCOCKMKWw4LhckTj25u20LsPsu754YsIv omeTdfaLgbWneKK1uNPp8wVVla1Juzyyk2QK61Rycg0ZbbtRoUevrELLce5OwGHn 3Z10ETiUI+KlQI+YCl53KnZDMYMhktU+4zVddJ15FwOvgFdP3ndHu188wWAzVuqo u6oV2EMA0CMNQLFXhQFecbgFKnu6UQ== =FEjX -----END PGP SIGNATURE----- --Sig_/Ymyeu_1AH8rMlOzK6flMhKB-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 6/7] system: Add "guix system docker-image" command. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 16 Mar 2018 22:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: bug#30572 <30572@debbugs.gnu.org>, Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152123832614680 (code B ref 30572); Fri, 16 Mar 2018 22:13:02 +0000 Received: (at 30572) by debbugs.gnu.org; 16 Mar 2018 22:12:06 +0000 Received: from localhost ([127.0.0.1]:37371 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewxa2-0003oi-Hr for submit@debbugs.gnu.org; Fri, 16 Mar 2018 18:12:06 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:33612) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewxa0-0003oa-W9 for 30572@debbugs.gnu.org; Fri, 16 Mar 2018 18:12:05 -0400 Received: from localhost (77.118.168.112.wireless.dyn.drei.com [77.118.168.112]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 703713360CA2; Fri, 16 Mar 2018 23:12:03 +0100 (CET) Date: Fri, 16 Mar 2018 23:11:55 +0100 From: Danny Milosavljevic Message-ID: <20180316231155.7917fa62@scratchpost.org> In-Reply-To: <20180315040915.5556-7-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-7-cmmarusich@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/TqkNGJX3dsfm1bIQd=rpKIh"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/TqkNGJX3dsfm1bIQd=rpKIh Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable LGTM! --Sig_/TqkNGJX3dsfm1bIQd=rpKIh Content-Type: application/pgp-signature Content-Description: Digitale Signatur von OpenPGP -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlqsQSsACgkQ5xo1VCww uqVw2wf9F3Sx8y4+xB3W8/+8k9yKeA0OWYTm/Di2wCBYSJ3aqD66pcH06p5i0kid 7iriWcHoZuhAPY0MukOidw5JjVoa+S9+EPizbswneJy0qvYEURTEa7kOGZ+U6Agf PdrxK25l8zMqkVuno+1CbWK8KdHvkjHtC1zBKLgXkwOQ5iiSO7ni388cZcdg0QXC YteibqSd2fHkhIxaCZQAvjchr0NZWGRGK9Dxi/KqDQVmM9LCGuctR3owB8KO/idU YlMijZTkjW9QJPR9Uy9lh9ILtTKgO8ZV6eYFFVlv8e53v6h2Km9PYdz7grWMIKuy StU77kOkDHZGOLdh+3Iopnzd1pJFaQ== =HBue -----END PGP SIGNATURE----- --Sig_/TqkNGJX3dsfm1bIQd=rpKIh-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 16 Mar 2018 22:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: bug#30572 <30572@debbugs.gnu.org>, Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152123862115170 (code B ref 30572); Fri, 16 Mar 2018 22:17:02 +0000 Received: (at 30572) by debbugs.gnu.org; 16 Mar 2018 22:17:01 +0000 Received: from localhost ([127.0.0.1]:37375 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewxen-0003wV-4p for submit@debbugs.gnu.org; Fri, 16 Mar 2018 18:17:01 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:33968) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewxel-0003wO-EB for 30572@debbugs.gnu.org; Fri, 16 Mar 2018 18:16:59 -0400 Received: from localhost (77.118.168.112.wireless.dyn.drei.com [77.118.168.112]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 2BD4F3360CA2; Fri, 16 Mar 2018 23:16:58 +0100 (CET) Date: Fri, 16 Mar 2018 23:16:51 +0100 From: Danny Milosavljevic Message-ID: <20180316231651.6889c44a@scratchpost.org> In-Reply-To: <20180315040915.5556-2-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-2-cmmarusich@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/qWsYhn8ye_IhWhAzDAc8xw3"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/qWsYhn8ye_IhWhAzDAc8xw3 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable > +(define (bootstrap-binary program-name) ... > + (license gpl3+) I can't believe I'm nitpicking on this - but can we fish that out of the pa= ckage (search-bootstrap-binary program-name (%current-system)) using package-license ? Otherwise LGTM! --Sig_/qWsYhn8ye_IhWhAzDAc8xw3 Content-Type: application/pgp-signature Content-Description: Digitale Signatur von OpenPGP -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlqsQlMACgkQ5xo1VCww uqUlFwgAoG4A03fwKM8BKYHc47Wi4wwJkftaAwVLjQFdACNBbB3MofcQ7S1WznZI OxsfdpIFQBAJUQ0vDsF8xrJC8W7WEkBORyn+9VxvBioDMPBLpp+Od31JV/qunddm IeEs2Nbgn7epxReLI4nzC5MaZHdmDjF4SJQ24MPxHWJVHTxGM4YRJJTsYFqQMf01 kyrzMwh0DUFKb+hsD7R6zR6+todk5GlgrkAzb9y9gwYdsntJFjt/ZzUQdX8U4NJr m2lM13n/rJEdWqAzs9iuqJmmALbBDLgb5CSCaLyKXNbfCppQCN8whnw9zrzToqF6 p/8DDad0NvJmE+BUvAlozO/cEJP8Pw== =QHjr -----END PGP SIGNATURE----- --Sig_/qWsYhn8ye_IhWhAzDAc8xw3-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 5/7] guix: Rewrite build-docker-image to allow more paths. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 16 Mar 2018 22:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: bug#30572 <30572@debbugs.gnu.org>, Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152123939216350 (code B ref 30572); Fri, 16 Mar 2018 22:30:02 +0000 Received: (at 30572) by debbugs.gnu.org; 16 Mar 2018 22:29:52 +0000 Received: from localhost ([127.0.0.1]:37384 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewxrE-0004Fe-I0 for submit@debbugs.gnu.org; Fri, 16 Mar 2018 18:29:52 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:35160) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewxrC-0004FU-NA for 30572@debbugs.gnu.org; Fri, 16 Mar 2018 18:29:51 -0400 Received: from localhost (77.118.168.112.wireless.dyn.drei.com [77.118.168.112]) by dd26836.kasserver.com (Postfix) with ESMTPSA id E086D33602B5; Fri, 16 Mar 2018 23:29:48 +0100 (CET) Date: Fri, 16 Mar 2018 23:29:41 +0100 From: Danny Milosavljevic Message-ID: <20180316232941.3040c051@scratchpost.org> In-Reply-To: <20180315040915.5556-6-cmmarusich@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-6-cmmarusich@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/L=Xc26NEk0.t41dbEIgOR2g"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/L=Xc26NEk0.t41dbEIgOR2g Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable > + (define (sanitize path-fragment) > + (escape-special-chars > + ;; GNU tar strips the leading slash off of absolute paths before ap= plying > + ;; the transformations, so we need to do the same, or else our > + ;; replacements won't match any paths. > + (string-trim path-fragment #\/) > + ;; Escape the basic regexp special characters (see: "(sed) BRE synt= ax"). > + ;; We also need to escape "/" because we use it as a delimiter. > + "/*.^$[]\\" > + #\\)) I'm not such a fan of using blacklist. Those can easily get out of sync and nobody notices. But in this case I guess people take care not to extend basic regexp special characters in sed (tar) without the user specifying a = flag requiring it. LGTM! --Sig_/L=Xc26NEk0.t41dbEIgOR2g Content-Type: application/pgp-signature Content-Description: Digitale Signatur von OpenPGP -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlqsRVUACgkQ5xo1VCww uqW/cwf+P0zLKHQ94eoYPQDS9FU94L+lHXEN0BIBeNyspmYnZzvPOIen5blwLGGX aEMXkGQlAO7YacaiGlxaouuJYSxINUyxY98LHoA9q77FEb5vE8W4pawrF1uSbyFu w7l4YFvA2Zpd9YVk3s+V55jKCLGB7jw2Ikv7VigpvNqK7sFTtIcG66uMjWnf7Ogy +uupCk4wW/vk7g4GK9f6q85xkwZVWVJIL+X3Jn1XKYKCaJ5hbMAAEmtAOPjl1sX+ +JOwiffCJf4FantT6DU6Bl5EW4Lj1BLrap0tuMr+QRg4ONmZHho1F44zbq1eumj6 LDJ7m4NHRwQ1NNl7jJbTExI8soyCnQ== =GfIU -----END PGP SIGNATURE----- --Sig_/L=Xc26NEk0.t41dbEIgOR2g-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 3/7] vm: Allow control of deduplication in root-partition-initializer. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 17 Mar 2018 18:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: Danny Milosavljevic , bug#30572 <30572@debbugs.gnu.org> Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152131090221986 (code B ref 30572); Sat, 17 Mar 2018 18:22:02 +0000 Received: (at 30572) by debbugs.gnu.org; 17 Mar 2018 18:21:42 +0000 Received: from localhost ([127.0.0.1]:38646 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exGSb-0005iY-RR for submit@debbugs.gnu.org; Sat, 17 Mar 2018 14:21:41 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:47944) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exGSa-0005iQ-C1 for 30572@debbugs.gnu.org; Sat, 17 Mar 2018 14:21:40 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id C0CF113205; Sat, 17 Mar 2018 19:21:39 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IZKLUsTFtL6j; Sat, 17 Mar 2018 19:21:39 +0100 (CET) Received: from ribbon (unknown [IPv6:2a01:e0a:1d:7270:af76:b9b:ca24:c465]) by hera.aquilenet.fr (Postfix) with ESMTPSA id C3B561244B; Sat, 17 Mar 2018 19:21:38 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-4-cmmarusich@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 27 =?UTF-8?Q?Vent=C3=B4se?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Sat, 17 Mar 2018 19:21:37 +0100 In-Reply-To: <20180315040915.5556-4-cmmarusich@gmail.com> (Chris Marusich's message of "Thu, 15 Mar 2018 05:09:11 +0100") Message-ID: <87efkipnpq.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Chris Marusich skribis: > * gnu/build/vm.scm (root-partition-initializer): Add #:deduplicate? > keyword argument. LGTM! From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 2/7] tests: Add tests for "guix pack". Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 17 Mar 2018 18:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Danny Milosavljevic Cc: bug#30572 <30572@debbugs.gnu.org>, Chris Marusich Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152131101522184 (code B ref 30572); Sat, 17 Mar 2018 18:24:01 +0000 Received: (at 30572) by debbugs.gnu.org; 17 Mar 2018 18:23:35 +0000 Received: from localhost ([127.0.0.1]:38650 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exGUR-0005lk-5N for submit@debbugs.gnu.org; Sat, 17 Mar 2018 14:23:35 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:47972) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exGUP-0005lc-15 for 30572@debbugs.gnu.org; Sat, 17 Mar 2018 14:23:33 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 8FC8C131EE; Sat, 17 Mar 2018 19:23:32 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5PyZc8j7qGmT; Sat, 17 Mar 2018 19:23:31 +0100 (CET) Received: from ribbon (unknown [IPv6:2a01:e0a:1d:7270:af76:b9b:ca24:c465]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 71EE61244D; Sat, 17 Mar 2018 19:23:31 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-3-cmmarusich@gmail.com> <20180316220732.19c2375a@scratchpost.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 27 =?UTF-8?Q?Vent=C3=B4se?= an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Sat, 17 Mar 2018 19:23:29 +0100 In-Reply-To: <20180316220732.19c2375a@scratchpost.org> (Danny Milosavljevic's message of "Fri, 16 Mar 2018 22:07:32 +0100") Message-ID: <87a7v6pnmm.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Danny Milosavljevic skribis: >> +is_available () { >> + # Use the "type" shell builtin to see if the program is on PATH. >> + type "$1" > > Maybe >/dev/null ? Then it would only complain if it needed to. > >> +else >> + echo "skipping pack verification because chroot or unshare is unavailable" > > echo "warning: Skipping pack verification because chroot or unshare is unavailable" >&2 > > Otherwise LGTM! +1! Ludo'. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 6/7] system: Add "guix system docker-image" command. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 17 Mar 2018 21:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: Danny Milosavljevic , bug#30572 <30572@debbugs.gnu.org> Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152132377216828 (code B ref 30572); Sat, 17 Mar 2018 21:57:02 +0000 Received: (at 30572) by debbugs.gnu.org; 17 Mar 2018 21:56:12 +0000 Received: from localhost ([127.0.0.1]:38793 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exJoC-0004NM-4x for submit@debbugs.gnu.org; Sat, 17 Mar 2018 17:56:12 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:49292) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exJoA-0004NE-De for 30572@debbugs.gnu.org; Sat, 17 Mar 2018 17:56:10 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id B7ABD1323C; Sat, 17 Mar 2018 22:56:09 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yUkR3g95JjTf; Sat, 17 Mar 2018 22:56:09 +0100 (CET) Received: from ribbon (unknown [IPv6:2a01:e0a:1d:7270:af76:b9b:ca24:c465]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 895C31323B; Sat, 17 Mar 2018 22:56:08 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-7-cmmarusich@gmail.com> Date: Sat, 17 Mar 2018 22:56:07 +0100 In-Reply-To: <20180315040915.5556-7-cmmarusich@gmail.com> (Chris Marusich's message of "Thu, 15 Mar 2018 05:09:14 +0100") Message-ID: <877eqal62w.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Hello Chris, Chris Marusich skribis: > * gnu/system/vm.scm (system-docker-image): New procedure. > * guix/scripts/system.scm (system-derivation-for-action): Add a case for > docker-image, and in that case, call system-docker-image. > (show-help): Document docker-image. > (guix-system): Parse arguments for docker-image. > * doc/guix.texi (Invoking guix system): Document "guix system > docker-image". > * gnu/system/examples/docker-image.tmpl: New file. Neat! > +When using @code{docker-image}, a Docker image is produced. Guix builds > +the image from scratch, not from a pre-existing Docker base image. As a > +result, it contains @emph{exactly} what you define in the operating > +system configuration file. You can then load the image and launch a > +Docker container using commands like the following: > + > +@example > +image_id=3D"$(docker load < guixsd-docker-image.tar.gz)" > +docker run -e GUIX_NEW_SYSTEM=3D/var/guix/profiles/system \\ > + --entrypoint /var/guix/profiles/system/profile/bin/guile \\ > + $image_id /var/guix/profiles/system/boot > +@end example > + > +This command starts a new Docker container from the specified image. It > +will boot the GuixSD system in the usual manner, which means it will > +start any services you have defined in the operating system > +configuration. Depending on what you run in the Docker container, it > +may be necessary to give the container additional permissions. For > +example, if you intend to build software using Guix inside of the Docker > +container, you may need to pass the @option{--privileged} option to > +@code{docker run}. Awesome. > + (define json > + ;; Pick the guile-json package that corresponds to the Guile used to= build > + ;; derivations. > + (if (string-prefix? "2.0" (package-version (default-guile))) > + guile2.0-json > + guile-json)) I think we can use =E2=80=98guile-json=E2=80=99 unconditionally here. > + (mkdir root-directory) > + (initialize root-directory) > + (build-docker-image > + (string-append "/xchg/" #$name) ;; The output file. > + (cons* root-directory > + (call-with-input-file (string-append "/xchg/" #$gr= aph) > + read-reference-graph)) > + #$os-drv > + #:compressor '(#+(file-append gzip "/bin/gzip") "-9n") > + #:creation-time (make-time time-utc 0 1) > + #:transformations `((,root-directory -> ""))))))) Am I right that the whole point of passing several file names to =E2=80=98build-docker-image=E2=80=99 is that here we don=E2=80=99t need to = copy the whole store to =E2=80=98root-directory=E2=80=99, right? I liked the simplicity of accepting a single file name in =E2=80=98build-docker-image=E2=80=99 (no need for #:transformations in that= case), but I reckon that copying everything around just to meet this requirement is inefficient. Otherwise LGTM, thanks! Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 17 Mar 2018 22:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: Danny Milosavljevic , bug#30572 <30572@debbugs.gnu.org> Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152132394217075 (code B ref 30572); Sat, 17 Mar 2018 22:00:02 +0000 Received: (at 30572) by debbugs.gnu.org; 17 Mar 2018 21:59:02 +0000 Received: from localhost ([127.0.0.1]:38797 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exJqv-0004RA-K6 for submit@debbugs.gnu.org; Sat, 17 Mar 2018 17:59:01 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:49318) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1exJqu-0004Qw-IN for 30572@debbugs.gnu.org; Sat, 17 Mar 2018 17:59:00 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 089D61323E; Sat, 17 Mar 2018 22:59:00 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SA82VWk4nugz; Sat, 17 Mar 2018 22:58:59 +0100 (CET) Received: from ribbon (unknown [IPv6:2a01:e0a:1d:7270:af76:b9b:ca24:c465]) by hera.aquilenet.fr (Postfix) with ESMTPSA id E60A81323B; Sat, 17 Mar 2018 22:58:58 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-2-cmmarusich@gmail.com> Date: Sat, 17 Mar 2018 22:58:58 +0100 In-Reply-To: <20180315040915.5556-2-cmmarusich@gmail.com> (Chris Marusich's message of "Thu, 15 Mar 2018 05:09:09 +0100") Message-ID: <87370yl5y5.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Chris Marusich skribis: > * gnu/packages/bootstrap.scm (bootstrap-binary): New procedure. > (%bootstrap-bash, %bootstrap-mkdir, %bootstrap-tar, %bootstrap-xz): > Use it to create these new packages, and export them. For =E2=80=98guix pack --bootstrap=E2=80=99, I believe we could avoid defin= ing these packages and simply use =E2=80=98%bootstrap-coreutils&co=E2=80=99 when =E2= =80=98--bootstrap=E2=80=99 is used. Would that work for you? I=E2=80=99m asking because we may not keep these 4 binaries around forever. Thanks, Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 20 Mar 2018 03:14:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Danny Milosavljevic Cc: 30572@debbugs.gnu.org, Chris Marusich , Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15215156376118 (code B ref 30572); Tue, 20 Mar 2018 03:14:01 +0000 Received: (at 30572) by debbugs.gnu.org; 20 Mar 2018 03:13:57 +0000 Received: from localhost ([127.0.0.1]:42476 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ey7in-0001ab-H1 for submit@debbugs.gnu.org; Mon, 19 Mar 2018 23:13:57 -0400 Received: from mail-pg0-f47.google.com ([74.125.83.47]:45154) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ey7ik-0001aN-UM for 30572@debbugs.gnu.org; Mon, 19 Mar 2018 23:13:55 -0400 Received: by mail-pg0-f47.google.com with SMTP id s13so101576pgn.12 for <30572@debbugs.gnu.org>; Mon, 19 Mar 2018 20:13:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=4xlXnOSOqmwObTeS2kBxDolIqjsF7iWtaKVgwyjVI9E=; b=Hl7lFCHbgBnjpycYEwf3eUj68vGUWby4bKwapEvhDijQqCtPpGQJyuwQSCOD35JoqS +7DxEyDgKmE99REw25ciyoSWFqGvBTCwBC1TXes5C5TrUQIUgdCkFnWK9rqhQzGjLhq4 IUl1xcZEVNgL4SeKilsdDaDDD/4r+gBLQRDJ9IHNcNox0Lj1ETb92tTgdHK6gWVzqRnz NXpDW72uHWsXUNmXAIqZDfPfDmrcpIvir/wly8QB3WtYAVDvwn2QTd3L4jkjESa/b/pV VwEGE36HqZiXtLX0MYrDjlpHg1TtxkAzNcwCboc0Lmha/cgtroY1RUjxizeKnkTsVDFt Hkgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=4xlXnOSOqmwObTeS2kBxDolIqjsF7iWtaKVgwyjVI9E=; b=g9K1km9A6Nm4x7DfHfEDJa2yu35AV+VsjmRWEPw375OE/mXThcSdiqYxxCtVlv+kba GxL8F+gsnz/k9fzDe5ZL7XiPh0Pcq/Hp6twiCHfdWJ744D/HwnH+yVTSiEfGgRmtAkjM H+BHAHeveiTWKTr8wu42z/fOs7FbNXletwgklpgPTmBsgiwl3FDuDfdKN/r2ZztWKUBz mvD+BJAXARDICb5ueIoKoIShCs0RQrRd9oRsrspyQM4NjrZsNCyaAiQgFZLV/H4wERxd uNTINq4r4jSzO8ENprUyE6WQCujD57esKBm0HOqi46aPBpxsW/JpM9Ae0ugp0Kw+EQvn ScbA== X-Gm-Message-State: AElRT7HkgqHpv27UdusuCiAEaXIPsYb5UURBh3qLip8cRrCfTYhvooHU RhXKTLZddR+zVWUlUns6Z74= X-Google-Smtp-Source: AG47ELu7Ivf6UmrAcJ8qwoRa2LdrEBoIyMSFYUGvIwTfCineKfuFCe9S/GOzg+/ie0TwmMKbgBMIAw== X-Received: by 10.99.169.10 with SMTP id u10mr10969565pge.163.1521515628799; Mon, 19 Mar 2018 20:13:48 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id w27sm679194pge.20.2018.03.19.20.13.46 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 19 Mar 2018 20:13:47 -0700 (PDT) From: Chris Marusich X-Google-Original-From: Chris Marusich References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-2-cmmarusich@gmail.com> <20180316231651.6889c44a@scratchpost.org> Date: Tue, 20 Mar 2018 04:13:41 +0100 In-Reply-To: <20180316231651.6889c44a@scratchpost.org> (Danny Milosavljevic's message of "Fri, 16 Mar 2018 23:16:51 +0100") Message-ID: <87y3inwiai.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Danny Milosavljevic writes: >> +(define (bootstrap-binary program-name) > ... >> + (license gpl3+) > > I can't believe I'm nitpicking on this - but can we fish that out of the = package > > (search-bootstrap-binary program-name (%current-system)) > > using package-license ? At first I tried to do what you suggest, but then it occurred to me that this might create a loop in the module dependency graph. For example, if in the case of "bash" I use a form like (package-license bash) to obtain the actual license used by the canonical bash package, the (gnu packages bootstrap) module will now depend on the (gnu packages bash) module. I don't know how that will interact with the rest of Guix; it seems safer to just avoid adding that and accept this small discrepancy in the bootstrap packages. It is simpler. Note that the bootstrap binaries' licenses are not currently correctly surfaced in every place to begin with. For example, the license of the "bootstrap-binaries" package (i.e., the %bootstrap-coreutils&co) is defined to be gpl3+, even though it contains xz, which actually uses gpl2+ and lgpl2.1+. Since (I suspect) these packages are intended for internal use, and since the canonical versions of these packages do have correct sources, licenses, and so forth, I'm not so sure we need to be very concerned about minor discrepancies like this. ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Chris Marusich skribis: > >> * gnu/packages/bootstrap.scm (bootstrap-binary): New procedure. >> (%bootstrap-bash, %bootstrap-mkdir, %bootstrap-tar, %bootstrap-xz): >> Use it to create these new packages, and export them. > > For =E2=80=98guix pack --bootstrap=E2=80=99, I believe we could avoid def= ining these > packages and simply use =E2=80=98%bootstrap-coreutils&co=E2=80=99 when = =E2=80=98--bootstrap=E2=80=99 is > used. > > Would that work for you? I considered this. However, my understanding is that a network connection is required to build %bootstrap-coreutils&co. Would we want to use it in tests even if it requires a network connection? =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqwfGcACgkQ3UCaFdgi Rp1wDQ//fv3k9+LO1QuyOqAOEaFvm93l8BFoTvJ2MpJsC+oqwZ8ZY8b0cc+dVNTr PgChHmNPiEW9e05dSIUOmbKU1m4shWFwQ4/Vlb/AZb5UAwgvlAJtiOEXzhpcMYRp 2bh90vjo2XQpu0mNYzQmDLZXKqlVj1WPKGgzoIhzngQBFIt8Ll0yOLoFWRt/a/Aj 9PLeyZDnVADMIbeyH9hgv/OiD+Uh3BcodvnUGO4MeRy0pd/dsrPoC1+3f4qlNBYX HpUp3yYLIviWB0+gjOEDBPkowSDvNDugYaa6Opi6dLnX70zgzcDy69qM6+USaL20 LPJJks1mcw/0CfgO6WdnpH8osljxRYWZW82zSdHo2eCCk5M5sDNuDnk/BYh8MBGv TRnB7xSbxevxb74zMF0D9OYFfNvTZCxlhlVfZryQv+L3T9Abr4EmA2MXQT3gogLo I/+KTvQOddi+UQ2Pk1bEOnKMJKRHNyFS6vBbAyVR2WVm+pxqm0MsxY4kgXBwZNUp yeIzKXnYvj9XuhCaXj2HiocAltF78RDk3e+y7EfEqt3nJiivOukEJuwyCzafUsua xTRDrZi9bx0ZLbpYAyTstUjKXFEul21sH33lGhN6aUh5sbV+nRQ6tRiftYpSaixc ATo4nOdPhvx86Gsndfi6A37n9IPlePhVXjAv6RT2yAXhMNtw0PA= =Jml8 -----END PGP SIGNATURE----- --=-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 4/7] gnu: When building in a VM, share a temporary directory. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 20 Mar 2018 03:21:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Danny Milosavljevic Cc: 30572@debbugs.gnu.org, Chris Marusich , Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15215160506778 (code B ref 30572); Tue, 20 Mar 2018 03:21:01 +0000 Received: (at 30572) by debbugs.gnu.org; 20 Mar 2018 03:20:50 +0000 Received: from localhost ([127.0.0.1]:42480 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ey7pS-0001lG-Al for submit@debbugs.gnu.org; Mon, 19 Mar 2018 23:20:50 -0400 Received: from mail-pl0-f48.google.com ([209.85.160.48]:45269) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ey7pQ-0001l3-J5 for 30572@debbugs.gnu.org; Mon, 19 Mar 2018 23:20:48 -0400 Received: by mail-pl0-f48.google.com with SMTP id n15-v6so165676plp.12 for <30572@debbugs.gnu.org>; Mon, 19 Mar 2018 20:20:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=qxAUCL24fBgWo7FVgaVnxC9fy2yCUfXMJl/Wjmdyexw=; b=E7QBIDiE7vaPHYOS9HaGofGLguhtWdrGZI15UhfXkPtphxZHEcx5isj7dFm/yyjVuV OWADoPBzN+YcdCsh8SaBiIBasgv1cpCVfaqzS2s+5rIMpbQwkbKhGA0CVNn9v4IpLq3N RiO1A7+OT++vP5ZquDTlb2OnUUg8dbJAmUJhc9EjEXzz7gvlNEhQPJwHT5t2MkvbjFHW Od1QuTYXMEidaQKKa1u0q0saL9F1r9C/aQESAwKPTVEliNjUmompmvu9BI9KUNkzA4aY th0Xr2iQGpJmuZuCl87wFiMR9D3BAYvfP5ELFNPgiqFbdueX0Szyvjn1B7E6WuMy5v5n m4tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=qxAUCL24fBgWo7FVgaVnxC9fy2yCUfXMJl/Wjmdyexw=; b=PTvMltMvCveq+VvNdvM3edeAYeI5q4qArETdY9lE51ASphdWK2v/Le/TPPWIZCebK8 04I/ZhQvDW/zbdP1JyOqX2HewliXRPYm6QZFaO50pKSMmjwZ44ghoAkKrntwCY7jbaMS yCi/pvXz8AMHZhHZVdJZAVLbwW5Fq2k/RyLuQ1rquiI55dukKUn5n8tFtAnQX5jip/o4 b8y6z9uTRh2dGFTif5Otv6lboukWDW4oYOv0RSma9zbCPR+IjXHCCP0jFCVK4GfWa1b7 IsOh812xP6K4Xnk7NFASJ04Zfmzu+bueIGDxK4I97C+otZ4/nFXuB/aojH5TCXhJAYDF 461g== X-Gm-Message-State: AElRT7Fi39y05m2TujifJFC7j0SSXpsio+wHJsM+2EtA919l+iEcndJK WOhwCKDRkGfRePlFlER6wUQ= X-Google-Smtp-Source: AG47ELsRlEyuOT2unCITz3XdXyhhMZhZVp2fUEgLE0r9d+MbobiS7uoXg5NyCOERULlZkP1EwOnYBw== X-Received: by 2002:a17:902:102:: with SMTP id 2-v6mr14892770plb.48.1521516042554; Mon, 19 Mar 2018 20:20:42 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id 26sm783139pfn.68.2018.03.19.20.20.40 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 19 Mar 2018 20:20:41 -0700 (PDT) From: Chris Marusich X-Google-Original-From: Chris Marusich References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-5-cmmarusich@gmail.com> <20180316230045.63ad8439@scratchpost.org> Date: Tue, 20 Mar 2018 04:20:39 +0100 In-Reply-To: <20180316230045.63ad8439@scratchpost.org> (Danny Milosavljevic's message of "Fri, 16 Mar 2018 23:00:45 +0100") Message-ID: <87vadrwhyw.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Danny Milosavljevic writes: > There are now three manual "-virtfs" arguments to qemu. It's starting to= irk me > a little. It might make sense to generate those from %linux-vm-filesyste= ms > in order to not have so much duplication and places where things can go w= rong > when maintaining. > > If you'd like, could you maybe pass the %linux-vm-filesystems to > load-in-linux-vm and then automatically calculate those -virtfs entries? > > (In a future patchset - I don't wanna hold up this one) I agree this would be nice. I also agree we should do it in a future patch series. > There's already common-qemu-options which would support >, > and %store-mapping, so actually it would make sense to use those (probabl= y easiest > to move build/vm.scm's load-in-linux-vm into system/vm.scm > expression->derivation-in-linux-vm so the qemu stuff isn't scattered all = over > the place - right now, half is in gnu/system/vm.scm and a mostly redundan= t half > is in gnu/build/vm.scm ... not ideal). > > There's a "mapping->file-system" helper, so it might make sense to use > instead of in %linux-vm-filesystems. > > So all in all: > > * Modify %linux-vm-filesystems to be file-system-mappings instead of file= -systems. > Also modify the place it is used. > * Move load-in-linux-vm to gnu/system/vm.scm (maybe inline into caller). > * Modify load-in-linux-vm to use common-qemu-options. > Notice that the "-append" option is passed twice. Bug... <-- I just fixe= d that in master Good catch! Thank you for fixing it. > If you want I can do it. I wish I could say "I'll do it!", but honestly I might not be able to get to it for a few weeks. So if you have the time, by all means please do it! Otherwise, I might get around to it eventually. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqwfgcACgkQ3UCaFdgi Rp1qzQ//cRn3PuFOdUXe8uA3vhloM5bd4QpClK0fXxeBhXQxFUkR9wMarZkBbV98 cAFly/GtuPVDBQTUiTOcSdNxxPxupju0lBEBo9Z6tfjO0cZB64Y34Jouh0awemjR GQTjdiv7R+7hu85nYiJ9ALCn5yL2vLrnGK0dKXbORdleaH9Hl2HXJrzK9HMZCrcr f2AwAoiJH7xxhAfzRBBPchgnzxqVC2wz8fwqVx2Nb5f+0WmrFjVsSuZhQEvOw2qG 6wC1JXxPyVI0zOvguWwi2iq8P4sHOhxOmAQrA1VfQ54DUZeO5fZUrSQfOT368W3a B7YKzjGpzVXHxs6P6NwlfCk906xBru0zM86x8rN/GuPS2v3SnUNYE+fZO+XgRXn/ J7FbVHqDR4Hm8Bjap5dqKK5+Fna2ma+FeWv45ClSPCGW7rmnnMpQPW/A7A9tN2hU zW/mcI1EE7LhnRXXIzEWWDlvbmXX9ySkhHW4mCZK1S7WITdgM4dVKJ0UcWMjr1xt zRZ21fas7+gDUlncJWhhYeRlsEiDWZbeaB3eq4Lo8puMfMk6CsrjxwhjUqysiB/K 9CD7rgrgR9q+R/kbQp1lazPjqq/6nMnZhZu8U6ojmuRiAwFzwpGg5mt9mx+DJFMG 6MGRSgq8WcVYz5rNJDjzsmd/zFIKG2G7YUw2M9MI5AYtiBlKHN8= =NFz2 -----END PGP SIGNATURE----- --=-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 5/7] guix: Rewrite build-docker-image to allow more paths. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 20 Mar 2018 03:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Danny Milosavljevic Cc: 30572@debbugs.gnu.org, Chris Marusich , Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15215163717313 (code B ref 30572); Tue, 20 Mar 2018 03:27:02 +0000 Received: (at 30572) by debbugs.gnu.org; 20 Mar 2018 03:26:11 +0000 Received: from localhost ([127.0.0.1]:42484 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ey7ud-0001tt-28 for submit@debbugs.gnu.org; Mon, 19 Mar 2018 23:26:11 -0400 Received: from mail-pg0-f44.google.com ([74.125.83.44]:46348) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ey7ub-0001tf-8y for 30572@debbugs.gnu.org; Mon, 19 Mar 2018 23:26:09 -0400 Received: by mail-pg0-f44.google.com with SMTP id g8so113687pgq.13 for <30572@debbugs.gnu.org>; Mon, 19 Mar 2018 20:26:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=c/Z4s7rqjXL8cRVXxuVV6UMmLZhZ22FU/tnRx4uVgDo=; b=VZS/vEF8hjL59qQ9Ahj5vRThRCH1i/gN1yoedCDJSpQxW2OefEAoZF3YEDT0C/ejVp u69Amk0DM4pm28tZr+iOVrFolSTy7QE3wHXrFGYGHMF1UEphgFk5yrBGAfer2f6iS5L6 muW3lJjQhWMlQoplwPD0hq2OyccMTdB/aq7jotPY75w5+6WYF5FJzkKclgTW12mSn3I8 F1dUIYdCeorAh0K73GqqmU4HU79EWoNitU2Oho52+2HMg1OINy87zwhkqf3ZfxkahpoC OMDqi3pyYtHMXEF2c9F4ya+Xa+Btlwq07LhV798hIpvvsGaEuCPl1EyB6eEx4sus+/iw Arww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=c/Z4s7rqjXL8cRVXxuVV6UMmLZhZ22FU/tnRx4uVgDo=; b=niI0sJMqoE2O1CHOiWtEEAidzCutqgR52T2n1lZ76vLT5UztuTn80H50thnzwuNqIL RqH8OKPOrGvozyILlBVEnDibXTV30rsQ9AJE8/hWSn2dmLaz88a7E24GbzxpnPGEnWJu l0MNaN68kJ+gZZ7xRLBq69dBmhopYWp5jHzS7B3MmYro2BcXdZlj5obX9Eo52QgiSecV 4+fQ5KOM4wV2DJOYPU3A0njVctgsjU+doECfh5W0bVSdD6on3lHz7yHW+HRd7R9VmRDk Btp5AZZ9GKTHJ0wnMRZKqwI1VDWKkrD+oXNmLd7u/iiF3NKJfTlcMHVtMOE19IFEgNfD 04PQ== X-Gm-Message-State: AElRT7GbXoILhqrxJYbwxdr88Kl/458nAMtMSmh8+AuqKgcU+3T6UtVQ MjkJxVKC8Uh3dUhuxIDvQXQ= X-Google-Smtp-Source: AG47ELvXL0acDt0jB4zAw/ZAkcjEj+qlDdHhpojnWeNcxu9xCTH1vSjP0Ehshor79NYFz2kQRkEX0Q== X-Received: by 10.101.73.7 with SMTP id p7mr10801793pgs.250.1521516363481; Mon, 19 Mar 2018 20:26:03 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id j23sm788247pfi.78.2018.03.19.20.26.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 19 Mar 2018 20:26:02 -0700 (PDT) From: Chris Marusich X-Google-Original-From: Chris Marusich References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-6-cmmarusich@gmail.com> <20180316232941.3040c051@scratchpost.org> Date: Tue, 20 Mar 2018 04:26:00 +0100 In-Reply-To: <20180316232941.3040c051@scratchpost.org> (Danny Milosavljevic's message of "Fri, 16 Mar 2018 23:29:41 +0100") Message-ID: <87sh8vwhpz.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Danny Milosavljevic writes: >> + (define (sanitize path-fragment) >> + (escape-special-chars >> + ;; GNU tar strips the leading slash off of absolute paths before a= pplying >> + ;; the transformations, so we need to do the same, or else our >> + ;; replacements won't match any paths. >> + (string-trim path-fragment #\/) >> + ;; Escape the basic regexp special characters (see: "(sed) BRE syn= tax"). >> + ;; We also need to escape "/" because we use it as a delimiter. >> + "/*.^$[]\\" >> + #\\)) > > I'm not such a fan of using blacklist. Those can easily get out of sync = and > nobody notices. But in this case I guess people take care not to extend > basic regexp special characters in sed (tar) without the user specifying = a flag > requiring it. That's a good point. However, I think we're OK here, since we are in full control over how we invoke tar. To give us full control over how we invoke tar, I specifically took care to hide the fact that we are using tar under the covers to do the transformations. Even if tar silently changes its contract (that seems unlikely to me), we can just change our code accordingly, and callers will be none the wiser. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqwf0gACgkQ3UCaFdgi Rp3AYg/+JEdbcF+xFgdWdVsr+JXQS3m3Bau4alo07PjGivu/3IsPwek7GLIJyUu0 3s6G0SpSMv/hyuB3wWWP/hzIywWTg/PIlltm48M2ReAwwfpkWx9zfU+aOznu31jx E6FN72LHplrayRYpIlNY3ec0Xo/2vWom2Cud4WWbCMC1F2rnEaL+jVil+p2opqwZ erbYHDAvX5Qp9XjmXBFQ0IK/Adkc5UizE0qeHNf9is2ync36k4e8p12h59Dpyylm X9qa0anAWYGPseLPW0sM9rLHnMI45bHF3JAc0EmG11e8H/U//idWcQZLlJ3aM4ny HwveMVfgvWYGDdb9LysNLTDX3w07V+ZoLSiBEz7TcG719DxHNG0En9kJyC/A+83s 1ArwmiQCVvCDBfWeExhdCbEtD+TZvrL5bs0xk8hMLSxRIPIjw4FyWDFljxIBWAD3 VFKnutXfvFogOJfUcCuXfVNSyh1O7dXBjA1oFz9qQPOGLyqMrvcVFRLY+OrpAnFN GtspAK9sQB8+WKZdw55Cct7/iZcMuy8ps2xJFOblGIAA6jxGf2AqXmJlQhZvEeQc nHbmtEZo0GWg47h039CO09GhdJQmJRu5uOqvOD6QYMX2cTYU+w5hnGldw+Ai0zO/ IPAnwjuCdORtvP8VLl9xY02UHJ4CWTmNFtUkroHdZSFgaVMUfKY= =dzG3 -----END PGP SIGNATURE----- --=-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 20 Mar 2018 10:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org, Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152154060412629 (code B ref 30572); Tue, 20 Mar 2018 10:11:01 +0000 Received: (at 30572) by debbugs.gnu.org; 20 Mar 2018 10:10:04 +0000 Received: from localhost ([127.0.0.1]:42711 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyEDS-0003Ha-AG for submit@debbugs.gnu.org; Tue, 20 Mar 2018 06:10:04 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:55866) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyEDQ-0003H6-QV for 30572@debbugs.gnu.org; Tue, 20 Mar 2018 06:10:01 -0400 Received: from localhost (77.118.211.107.wireless.dyn.drei.com [77.118.211.107]) by dd26836.kasserver.com (Postfix) with ESMTPSA id AC4E03360FA2; Tue, 20 Mar 2018 11:09:57 +0100 (CET) Date: Tue, 20 Mar 2018 11:09:26 +0100 From: Danny Milosavljevic Message-ID: <20180320110926.4791097d@scratchpost.org> In-Reply-To: <87y3inwiai.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-2-cmmarusich@gmail.com> <20180316231651.6889c44a@scratchpost.org> <87y3inwiai.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/1A9yK9_fOZupSg916rrKJha"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/1A9yK9_fOZupSg916rrKJha Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hi Chris, On Tue, 20 Mar 2018 04:13:41 +0100 Chris Marusich wrote: > module. I don't know how that will interact with the rest of Guix; it > seems safer to just avoid adding that and accept this small discrepancy > in the bootstrap packages. It is simpler. It would still be possible to do it using module-ref, but I'd advise against it. How about just passing an explicit license to the bootstrap-binary procedure? >For example, the license of the >"bootstrap-binaries" package (i.e., the %bootstrap-coreutils&co) > defined to be gpl3+, even though it contains xz, which actually uses > gpl2+ and lgpl2.1+. Yeah, I don't like that either. > Since (I suspect) these packages are intended for > internal use, and since the canonical versions of these packages do have > correct sources, licenses, and so forth, I'm not so sure we need to be > very concerned about minor discrepancies like this. Yeah, it's just a nitpick. I'm fine with it being #f or with it being a parameter to bootstrap-binary. But (license license:gpl3+) when it's not actually gpl3 is where I draw the line. Wrong license like this is never going to be flagged again except by adversaries. --Sig_/1A9yK9_fOZupSg916rrKJha Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlqw3dYACgkQ5xo1VCww uqXlBwf+OmD/QKyr5nZCeoln83HBD5LsF970WYjXDBX/HvxcBO59nov9QMCluC7J muqV7yIXLVuG1Mf1hOIfiDW8ancy8xVDRbIQrGMVDKfmZdxGArJ/oY3iLeL12rOp Qw3UbonL/vkP+1M4S6ghfHV1f/OClsXm3Z6eQzUzGSdjrSlnkYJEaKPk8eWVyvbn NRFkGwYszib7AJyDX8VKC4K1hxci2im5YjeZvb1yWDU5MaI0DX1lHgyFyTVJAayP 5wXTH/tUi6nHXzf2lverUGkb/AD8Z5k1W5s4ZnR32arq3tkF6O8JXQ33jGLjrpLU JTS86st+B07TGzWPj3MqIplf9Z5yjg== =nFo6 -----END PGP SIGNATURE----- --Sig_/1A9yK9_fOZupSg916rrKJha-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 6/7] system: Add "guix system docker-image" command. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 21 Mar 2018 03:59:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152160473026328 (code B ref 30572); Wed, 21 Mar 2018 03:59:01 +0000 Received: (at 30572) by debbugs.gnu.org; 21 Mar 2018 03:58:50 +0000 Received: from localhost ([127.0.0.1]:44676 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyUtm-0006qa-0V for submit@debbugs.gnu.org; Tue, 20 Mar 2018 23:58:50 -0400 Received: from mail-pl0-f49.google.com ([209.85.160.49]:41183) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyUtj-0006qM-E6 for 30572@debbugs.gnu.org; Tue, 20 Mar 2018 23:58:47 -0400 Received: by mail-pl0-f49.google.com with SMTP id b7-v6so2400719plr.8 for <30572@debbugs.gnu.org>; Tue, 20 Mar 2018 20:58:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:in-reply-to:references:user-agent:date :message-id:mime-version; bh=J2cbMkK8wqGnnVeDzKrmewe1T+X15J1jfspLWa1uqfY=; b=GLB5sEvtcy4uYQNp/jwHY0ZCAjrBJLsWrcuO1eLlH3LJpw6CgueovKW2FDa8i8+YZZ 5FSpjaKP58b9k/98jIuXHtPraF6YRh9vi9c54OJODGeyD9W0tb1GuyGHL0nBEbCes/0J bE03vAwNU9vURePdY7x31TSFGXjf2LmuYGHBTGHupKrzmfC7dcc97jhna72ZG+klxL77 oBjWhMFaYv+ouzxltSQQlr6ApV5zVOEGGzRJcJ3PBVkR0EuC6z2HMVpSA/FgwlGswUmb UYz75CrO/qsJoLN48Ie4B8h+cJh2JwnfADYSqO9rAUwcgWb5hfYN8s57SLnLvlN0Esgu 9U5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references :user-agent:date:message-id:mime-version; bh=J2cbMkK8wqGnnVeDzKrmewe1T+X15J1jfspLWa1uqfY=; b=KRY3EqbXGxlAMKWlYmFKfBTCzHdV4ttItoSevR5MVwFj4I5Fke4UY82y/7YmzPZfPI 8RhKo5CAFwEtM/vkUmJKuaOUaDWmmAMMvo1BAGs+oreIECDWBx9OKhZh5p2iQR6smkeR kmvRNiyHF7cYWwTF4fDFm1GUH8zcixu+b8DhjLyo9tHfm/jcZQJU8wgBFU4YHLWbfr4x 0cz2hndH5oJ3ZeF3zMYWWjWcAXn501AACKs3uWBllNe3ggF54pKIUrmDV4uuz86U6mQz cUiPet4baz+7iApfvpfoQ0Y5QtLnsXssyQiHUhoADT4A8+tM3r0KfkpthbBffC+3k6wK fYhQ== X-Gm-Message-State: AElRT7HCJ5EbQ3e4WyhSgWq8sfTA7SQP7v1cQ8MhffiLHIMGUpqQMCkz 9I8W17Cc/CE0XYNY3BO0Wig= X-Google-Smtp-Source: AG47ELu8Iu9GeWvNCE3Sh7UqUP2b1elqR+VRncljPb71UIC/zpEFIqBDhrkH5+QK5LFGcCZO9LYemQ== X-Received: by 2002:a17:902:7843:: with SMTP id e3-v6mr19443718pln.83.1521604721139; Tue, 20 Mar 2018 20:58:41 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id g26sm4427973pfk.173.2018.03.20.20.58.38 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 20 Mar 2018 20:58:39 -0700 (PDT) From: Chris Marusich In-Reply-To: <877eqal62w.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sat, 17 Mar 2018 22:56:07 +0100") References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-7-cmmarusich@gmail.com> <877eqal62w.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) Date: Wed, 21 Mar 2018 04:58:35 +0100 Message-ID: <87370u6pw4.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) writes: >> + (define json >> + ;; Pick the guile-json package that corresponds to the Guile used t= o build >> + ;; derivations. >> + (if (string-prefix? "2.0" (package-version (default-guile))) >> + guile2.0-json >> + guile-json)) > > I think we can use =E2=80=98guile-json=E2=80=99 unconditionally here. Good point. Nobody using this new code will be using Guile 2.0, so we can just use guile-json unconditionally. Does that mean we can also clean up the same conditional statement from other places in Guix code now? >> + (mkdir root-directory) >> + (initialize root-directory) >> + (build-docker-image >> + (string-append "/xchg/" #$name) ;; The output file. >> + (cons* root-directory >> + (call-with-input-file (string-append "/xchg/" #$g= raph) >> + read-reference-graph)) >> + #$os-drv >> + #:compressor '(#+(file-append gzip "/bin/gzip") "-9n") >> + #:creation-time (make-time time-utc 0 1) >> + #:transformations `((,root-directory -> ""))))))) > > Am I right that the whole point of passing several file names to > =E2=80=98build-docker-image=E2=80=99 is that here we don=E2=80=99t need t= o copy the whole store > to =E2=80=98root-directory=E2=80=99, right? The primary reason why I made this change was because it was the simplest way I could find to re-use the existing code. The fact that we copy less is a nice secondary effect, but it is not the primary reason why I structured it this way. There might be a simpler way to accomplish this, but this way works, which I think is a good start. I would like to commit this as-is for now. If we can figure out a simpler way to implement the same logic, I'd be all for it, but it seems tricky. The original role of the "PATH" argument was surprising (for example, it was not actually used for adding any paths to the final Docker image!). In addition, the original code assumed that all the paths to add (loaded from the "CLOSURE" graph file argument - not from PATH!) are store paths, which is not true when creating a GuixSD Docker image (unless we try to copy everything created by root-partition-initializer back into the store). So, some of the paths I need to add are store paths, and some of them are paths to special files outside the store, like device files. Maybe we can copy all of this (including device files and socket files) into a single directory in the store (or outside of the store). I don't know. If it's possible, I agree it would be a nice improvement. But I tried various methods, and my latest patch was the simplest method I found that worked. I would definitely be happy if we could simplify it even more, but I also want to move forward with this patch series. Is it OK to commit this as-is (with just the guile-json change you suggested above)? =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqx2GsACgkQ3UCaFdgi Rp3/+Q/+IWSE0eqtcK1ZsWSKWUcTXliWW2Amd7Lc04lQuFsWGg+sHjXPha0tuDJ3 ANnnU/j0B5HkHQPB9YRTDTvh/iAib+LP46YhDrLI5Cx8J2Iw9er3+N8aIECtF1h6 8viKEjXqg0JtNVbCppsfAJ16Ou48FKds54nGDhuPR1i7kGA/pMbXXcInruoUiOp8 1Yz+cMQgBNOkdYKIUxzKoCQayBP8Sndb6BuTNZH7yqQCGoDikeTTRuhX/SpLGzfJ tyP1M3o8AtADszOXUQQYnPzLn3ZBLVx2LjBMJMshx2I3kmKmAEfrR6eaU2fKdz2a 4PwgemZzCWYHVhN8lyIMeOUJFr/d9+8Hqq0Ro7+wFYR5YKXZFpCmozl0Lt5TqtK7 G3NzV+gVdSHPWLO5DzkHDVitCgaE1FvV/XmsY2KjYrCcL+Xdyv4358e8OO+h2FXp cKd99t7jMvROPy1leZchIPejU04NWXmWMVGPV8pM6MZkDheYR+Mcd4Vj62vnoR5W F3NnMG1v3Lh5/6lMw/xeyGU7sAdCOFV0Zng61ak6mz2LNakTwIiAKIFkTixLFuvo SvUChu/0MNdwyV9m5xymGc1wJpP9hlDPr5SfcgeWb9sdaf6RVbA3tke8Mg3IH9sU 14jnobPoaCq+q6VLxsUw9FzIVMY764Azq9kMbUp7yiYLFg9ngp8= =Fo3l -----END PGP SIGNATURE----- --=-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 2/7] tests: Add tests for "guix pack". Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 21 Mar 2018 04:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152160486326667 (code B ref 30572); Wed, 21 Mar 2018 04:02:02 +0000 Received: (at 30572) by debbugs.gnu.org; 21 Mar 2018 04:01:03 +0000 Received: from localhost ([127.0.0.1]:44680 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyUvv-0006w2-GW for submit@debbugs.gnu.org; Wed, 21 Mar 2018 00:01:03 -0400 Received: from mail-pl0-f43.google.com ([209.85.160.43]:43337) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyUvt-0006vS-NL for 30572@debbugs.gnu.org; Wed, 21 Mar 2018 00:01:02 -0400 Received: by mail-pl0-f43.google.com with SMTP id f23-v6so2397523plr.10 for <30572@debbugs.gnu.org>; Tue, 20 Mar 2018 21:01:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=eKT5ZiWS9DqOHf5IpKZd3S5rkdOVVjhol/WGfbA9Pf0=; b=BmBHo6ti521b704T1oBRe2HbCcKDFL+yOvJsL2ADQa8Hb+6809LKptsG5iHynu5LHH sXFIGpzN/U5XF/GXdhXyIDvssXBDiRRoZe/nxqVl2ZD0aZF/CCYFHJ7w9M7dLtuad+I6 wfmUnRY3MpX5bCPx+TeoBReFIRkW43pyL2Dl9D2eRWyhkCp3+MgclN4EcMcV5O8xXYxy WNMYN1gWbDKVxkaiyWLVlaksZ3MFR1Aajho5H3WXPX6Ss/w26wWgU8qcyRwPKWyw/Zvb l9fTrO1FUEqGI14NSn6JFIJBJwsjs+iEDm9Pxm4b6utsaBi3hAZNADbhen1AnjrvK80K ep2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=eKT5ZiWS9DqOHf5IpKZd3S5rkdOVVjhol/WGfbA9Pf0=; b=a12U7khc66eN6oM7sfkijdn44p6i1rdnBaE8iBDkUZ/g9nZAorYfy8HqM1zwPC3FCE H+MdqHQS9e8Gd6jbY0RVGyEgNvpSejrfKmmoENDF+uN+w8ilPyPKpSNuzxvdayU+qHK0 bgMKFE15r6lGv1qdCPX32AH9lBdtJqNACE3a+5Hh3zusBw8QbSSfxZliEuM1iz94Wt8R 5txOLpW9qlrO8LwNoWxZu2kqY0KCY2KFSWQ120RXeeOgX2m1JPKvINjmUbDMuuL+5veF BtbIYXrGW0vky1kjP8Jo1+hDQIIKNLsx9xA8lWwtUS9GKM+zl7biR0xYfQsud7jazaXS muqg== X-Gm-Message-State: AElRT7Gx5xJ6MJBgEfYkH9lhaabMVWjXfrADaYpyUQwftF8jQSFnBacB 8nNr6xbJe1f+gOAF1mZJ49Do++GT X-Google-Smtp-Source: AG47ELvqCI9CshPjTqTEKa2o18yk4wq5n5MDJ2+KK5Uq8rAQ/4dbpNXEDDdXO1I/327o67B8oCVPFQ== X-Received: by 2002:a17:902:5910:: with SMTP id o16-v6mr2300243pli.258.1521604855801; Tue, 20 Mar 2018 21:00:55 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id e3sm5952046pfe.125.2018.03.20.21.00.54 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 20 Mar 2018 21:00:54 -0700 (PDT) From: Chris Marusich References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-3-cmmarusich@gmail.com> <20180316220732.19c2375a@scratchpost.org> <87a7v6pnmm.fsf@gnu.org> Date: Wed, 21 Mar 2018 05:00:53 +0100 In-Reply-To: <87a7v6pnmm.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sat, 17 Mar 2018 19:23:29 +0100") Message-ID: <87y3im5b7u.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Danny Milosavljevic skribis: > >>> +is_available () { >>> + # Use the "type" shell builtin to see if the program is on PATH. >>> + type "$1" >> >> Maybe >/dev/null ? Then it would only complain if it needed to. >> >>> +else >>> + echo "skipping pack verification because chroot or unshare is unav= ailable" >> >> echo "warning: Skipping pack verification because chroot or unshare is u= navailable" >&2 >> >> Otherwise LGTM! > > +1! > > Ludo'. Sure thing. I'll include this change when pushing to origin. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqx2PUACgkQ3UCaFdgi Rp0PRBAAu2WNG+oLi8xuWCgC7cDqE6ezLKUK5h+2sFd0PQFKydP0hTIYRmTDlsmb Yc2qj8iafdOj88yXiTJSn29l+dUMM2/7wSkUPH1nS1hg0iZFgD2GgKb/pnXjcDix IHC7CaZtVBAQBBVnynIbBXQWOfYKkHfLizWwteEoQKKjgs2mfZ3hBakIXJ9kYctM t5bHamO4JdJ49jY2Bp2WU0hiW9eovmaBMv3ZGcJqAk6mbGpdZVZa2G7Xe/wGJSlC llgO2ZWYmcl8ToPcclT0VoIF2t+BQTfu7AnMqmPAGzWeBhzanS+NdabgoWY0qJFz WzHrz/bxVn62ccZdnagS93s5ZRxGgdS8sIbnNIJIT8XYCK1Dmku70mhzcz1rT3Yh U3R/mLlHCW3dZjToLo+EvxunPSPAcvvnqKDIzkh1oxqMqlqZ5PL0khra4tVfwUEW WhB9Jfy4fL5QiHp1vffPGCI1RNsVCSa14Re1gGbSNDUgfGwsP1tRBOtAb6Dej+QZ 6Mp3q64I+5E2Zc+tIswnv4kpOByBn7ge7RPCK7oNIZOkbAg84aikKwvKf1A6RXRF 5CVyMn1Bx0a2oEfmwZIBW7paB6EB4AFdlD+kHyL5vzjqtRzvgpAUPmQlS8jp2BiW jFTUB7NInIGEysXFabMZ/faSRdUC+/lUSHScCYYlaocB4a+3Y0Y= =+c9S -----END PGP SIGNATURE----- --=-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 21 Mar 2018 04:20:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Danny Milosavljevic Cc: 30572@debbugs.gnu.org, Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152160595828269 (code B ref 30572); Wed, 21 Mar 2018 04:20:02 +0000 Received: (at 30572) by debbugs.gnu.org; 21 Mar 2018 04:19:18 +0000 Received: from localhost ([127.0.0.1]:44686 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyVDa-0007Ls-3c for submit@debbugs.gnu.org; Wed, 21 Mar 2018 00:19:18 -0400 Received: from mail-pl0-f43.google.com ([209.85.160.43]:37904) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyVDY-0007Lg-Py for 30572@debbugs.gnu.org; Wed, 21 Mar 2018 00:19:17 -0400 Received: by mail-pl0-f43.google.com with SMTP id m22-v6so2434910pls.5 for <30572@debbugs.gnu.org>; Tue, 20 Mar 2018 21:19:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=xkpVs5jB3L0vKWQOfVM70wY3dFciRksn50A7L5BzjWw=; b=rFIRpmN8rTyUMqzTDfdIU1fEuwpJBxSmOwkobUECBUnZlnlWIa1+M9nGhdI7Hr1qfP KwyMnOA/9SxGorpV9HA2y6JLm9LPV8KgJ7cX1qRsndOsFsMoCCSvasmCOrhrvhj7A/ta KKclwOjszahyqxqhpwrJ79weK/i7rqUCwmats/WVry++l1dkMBsYDHexn/saPI0CSr79 he1JDRL7ifIyIaNjFa6N8CJMI5E2SxSpBzcppus7wkaCzNx1nTUeqvotxfxZzb67RCh5 f8kwXzqQcHls93EKnxddDxumiP7bdqxRD8cVAp3YSoGJ7YwZR32IlcMnobjqPvofKsFU kuYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=xkpVs5jB3L0vKWQOfVM70wY3dFciRksn50A7L5BzjWw=; b=jMSwrKlMn6xrmV8CGl3dJGT0FOB5UVbJXqilXO77vGUqDzCMHpBIBDrToTuZY5AwWy n/mvpgXMVU6G9afQWyjCsXFxqjqGDeVB6ekCrnyJCYOx3Zm6p/IWCgqPAYriN3g4pp14 kWOk021Q8bSjLocnAMBYEm4HI6h01Zvj2PBNAfidndHXa9vWMdqtNvV6ckhj536AK0vq 3SlLkuPYHqqZojCwIqSXCxGl0Wk4Gk1nPmNcge0WVcmRCKPSgwS+dbl5NmpV0/pTozEf syl/HvpaeoHuD2iq5XB6BetXqE7fuwyBblzGe0MQJMll9dcIgqV//TWGpBGyY+outr1X uQag== X-Gm-Message-State: AElRT7HPtzVraXFmmh+rzdnRYJzUL5g4qB7OIyM15vOEfvuY/Kx3KbuK /GyZRC1ZJ+qO9wq6UWAhbx8= X-Google-Smtp-Source: AG47ELt7nZWAMv3kmK1VFjSbvH+3K7poQOEDGANkE0couEjKxHsu3RWuObm+kxOKGVTCuv6eqcdqfg== X-Received: by 2002:a17:902:8c8e:: with SMTP id t14-v6mr9895056plo.206.1521605951019; Tue, 20 Mar 2018 21:19:11 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id x13sm5639164pfh.115.2018.03.20.21.19.09 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 20 Mar 2018 21:19:09 -0700 (PDT) From: Chris Marusich References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-2-cmmarusich@gmail.com> <20180316231651.6889c44a@scratchpost.org> <87y3inwiai.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> <20180320110926.4791097d@scratchpost.org> Date: Wed, 21 Mar 2018 05:19:07 +0100 In-Reply-To: <20180320110926.4791097d@scratchpost.org> (Danny Milosavljevic's message of "Tue, 20 Mar 2018 11:09:26 +0100") Message-ID: <87r2oe5adg.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Danny Milosavljevic writes: > Hi Chris, > > On Tue, 20 Mar 2018 04:13:41 +0100 > Chris Marusich wrote: > >> module. I don't know how that will interact with the rest of Guix; it >> seems safer to just avoid adding that and accept this small discrepancy >> in the bootstrap packages. It is simpler. > > It would still be possible to do it using module-ref, but I'd advise > against it. How about just passing an explicit license to the > bootstrap-binary procedure? Yes, that sounds like the right way to me. >>For example, the license of the >>"bootstrap-binaries" package (i.e., the %bootstrap-coreutils&co) >> defined to be gpl3+, even though it contains xz, which actually uses >> gpl2+ and lgpl2.1+. > > Yeah, I don't like that either. > >> Since (I suspect) these packages are intended for >> internal use, and since the canonical versions of these packages do have >> correct sources, licenses, and so forth, I'm not so sure we need to be >> very concerned about minor discrepancies like this. > > Yeah, it's just a nitpick. I'm fine with it being #f or with it being > a parameter to bootstrap-binary. But (license license:gpl3+) when it's > not actually gpl3 is where I draw the line. Wrong license like this is > never going to be flagged again except by adversaries. I understand. It isn't hard to fix, so here's a new patch that adds correct licenses. How does it look? =2D-=20 Chris --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-gnu-bootstrap-Add-trivial-packages-for-bash-mkdir-ta.patch Content-Transfer-Encoding: quoted-printable From=205398d4d98decd9e74dbf557203c6523107ce559b Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sun, 11 Mar 2018 01:13:01 +0100 Subject: [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. * gnu/packages/bootstrap.scm (bootstrap-binary): New procedure. (%bootstrap-bash, %bootstrap-mkdir, %bootstrap-tar, %bootstrap-xz): Use it to create these new packages, and export them. =2D-- gnu/packages/bootstrap.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 27f2053c4..1480880ae 100644 =2D-- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -2,6 +2,7 @@ ;;; Copyright =C2=A9 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Court=C3= =A8s ;;; Copyright =C2=A9 2014, 2015 Mark H Weaver ;;; Copyright =C2=A9 2017 Efraim Flashner +;;; Copyright =C2=A9 2018 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +44,10 @@ bootstrap-guile-origin =20 %bootstrap-guile + %bootstrap-bash + %bootstrap-mkdir + %bootstrap-tar + %bootstrap-xz %bootstrap-coreutils&co %bootstrap-binutils %bootstrap-gcc @@ -345,6 +350,35 @@ $out/bin/guile --version~%" (home-page #f) (license lgpl3+)))) =20 +(define (bootstrap-binary program-name license) + (package + (name (string-append program-name "-bootstrap")) + ;; The version may differ depending on the program. + (version "unknown") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:guile ,%bootstrap-guile + #:builder (let ((out (assoc-ref %outputs "out")) + (program (assoc-ref %build-inputs ,program-name))) + (mkdir out) + (mkdir (string-append out "/bin")) + (symlink program (string-append out "/bin/" ,program-na= me))))) + (inputs `((,program-name ,(search-bootstrap-binary program-name (%curr= ent-system))))) + (description (string-append "The bootstrap " program-name ".")) + (synopsis (string-append "The bootstrap " program-name ".")) + (license license) + (home-page #f))) + +;; These trivial packages provide individual binaries that are also includ= ed +;; in %bootstrap-coreutils&co. However, these packages are more minimal t= han +;; %bootstrap-coreutils&co, and they do not require network access to build +;; because these specific binaries are included in the Guix source tree. +(define %bootstrap-bash (bootstrap-binary "bash" gpl3+)) +(define %bootstrap-mkdir (bootstrap-binary "mkdir" gpl3+)) +(define %bootstrap-tar (bootstrap-binary "tar" gpl3+)) +(define %bootstrap-xz (bootstrap-binary "xz" (list gpl2+ lgpl2.1+))) + (define %bootstrap-coreutils&co (package-from-tarball "bootstrap-binaries" (lambda (system) =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqx3TwACgkQ3UCaFdgi Rp33GhAAsGJSQqz7hvbcdJqSBv+zgXzsnFB4uRRXdxRjV8UJ5tLOF5633/JsjZQ+ KdwkIG/rXg0LqcbaUDbxlNvkmOsOhf80+LBEwLXJUzhzjRhiZ/77cvGm0tBQe9Hg A3PG7mBt/Zw8wcwh4w/jxchc6b2lAmubzjsxgDrD7Iq7NobdtocSReLgJVT2tvsL My6r+3Vy3lZrl59eQCXpY5X8wd7waiXcdk8RxrEVW1Dg+fedfxvmv22oYJUWLWPU E7FVO94rujndGjZdneUVqvdeaZPUjQ5fJGlrkdsgTZPS1OBPj6WR/bGZ6AVRMw5E icbLprnD0wA8ObeLRoJzMgerauv7/n109mxL7kTsglYhrpqdGJYi+X4F6QV077PY R6FDiWf8/EV0nh6O9KufZloSDe/b5992XRn4FqyDiyeiSylFDLDhju+4NRl9Pfat 45v2PKIdWryJ+1I6a7jqyQd5BTJFFe+4/A8Jd/0z2V68b5WBY0w9MvX/l/s2YphN P5FkXSel7q2BCBug4JGFHrwzIPW4S7LL7U4HkmBI+woEkSfpshkW3E2f0JuseEN1 aPJXFIlHCryzxyker4ydr6+6e8biXGMcCQvrsT2kSu4XOx+LMa+/9RWZx0WMGEyp 3eR/qPgRyTH3cVYKyKli6MPmuCFIbaWnzrCrHkKB5wB7G9Jx0Pk= =D+kj -----END PGP SIGNATURE----- --==-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 21 Mar 2018 04:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152160618728704 (code B ref 30572); Wed, 21 Mar 2018 04:24:01 +0000 Received: (at 30572) by debbugs.gnu.org; 21 Mar 2018 04:23:07 +0000 Received: from localhost ([127.0.0.1]:44698 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyVHH-0007Su-AQ for submit@debbugs.gnu.org; Wed, 21 Mar 2018 00:23:07 -0400 Received: from mail-pf0-f174.google.com ([209.85.192.174]:43337) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyVHF-0007S0-LB for 30572@debbugs.gnu.org; Wed, 21 Mar 2018 00:23:06 -0400 Received: by mail-pf0-f174.google.com with SMTP id j2so1551447pff.10 for <30572@debbugs.gnu.org>; Tue, 20 Mar 2018 21:23:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=edYttxvm7xtv0TXqawSUr2yfoJw4Q1cFj1zkEVd0HJU=; b=ZityEaizWcNd9FZjPiGPXepBJ2pR1SnlOnk4mgquORvGuLUGvs8XgEFOaOCtNsQQDP F1EYVnraeewBYRdD3PsZzBdoXKioE0V97lV1sZCOb+/cN6uOa7G0NfHeQrEZ94h/6jCd B/ypeLbi8+iD8XYzGCYHbOHFVJtcw+sdVQzM6NL9M6PMGXHrF8FwqoyWkBk/kefCKV1i tN0L3RiT7/r3vJkGZIdJMZnz3088/VtOu9dcy5ad238VntqmaCAWv+jNMyAMgW6SfTtI 5timPgbQyZ2iaNhI9GY03VvdCCVdXemi28zCqn1+EOxcfpGkmEtW790a59bDNcksxenX M9EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=edYttxvm7xtv0TXqawSUr2yfoJw4Q1cFj1zkEVd0HJU=; b=qHI5ewyHWZaDfOpeW+N7TeiHYzPfgQglRU9UkiJQxhTPverpdWgMgTKEYsnu9ZM998 WDRmZ2gg5nmaZkCz/G08FC2uJ+jkCT5j4SsPx2HqfgFk9Vy8p22MRxquj2uoMbESsnmN f2t8JJRRj1i4qu/TKlrZ9Li7ljwQeo8cyJEIXyzQFki3fXuR8PqPigSrrdlCxc7anJrx KmCgwwd4RhGdd0yJXCWuE2ZBbOsm8gqg53pgtu3qAJJ/ItPA2jO1b4WFXiWZDi7q1Tls eaR8J/sqaK/83zrFnRhsLImYExGG13lijSE5+q4oaMRUTybP+SyJZaP7SUC0V6NJkkGE EwvA== X-Gm-Message-State: AElRT7FTfKU7vb0mtiW4Ty68j51kbfO1TfkHHC2tvOioCb7lERiGbmsQ iACbbqS9YNACv2IAG03l2VTCnY+D X-Google-Smtp-Source: AG47ELvBoDRqbdujapvEs45tvc6o9ESNltDMkRUoi+5jS/r+Bxf8eSKaZYKRg3GPDdk8xgs6+hqYHQ== X-Received: by 10.99.106.68 with SMTP id f65mr13868141pgc.343.1521606179950; Tue, 20 Mar 2018 21:22:59 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id l129sm6542061pfl.82.2018.03.20.21.22.58 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 20 Mar 2018 21:22:58 -0700 (PDT) From: Chris Marusich References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-2-cmmarusich@gmail.com> <87370yl5y5.fsf@gnu.org> Date: Wed, 21 Mar 2018 05:22:57 +0100 In-Reply-To: <87370yl5y5.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sat, 17 Mar 2018 22:58:58 +0100") Message-ID: <87muz25a72.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Chris Marusich skribis: > >> * gnu/packages/bootstrap.scm (bootstrap-binary): New procedure. >> (%bootstrap-bash, %bootstrap-mkdir, %bootstrap-tar, %bootstrap-xz): >> Use it to create these new packages, and export them. > > For =E2=80=98guix pack --bootstrap=E2=80=99, I believe we could avoid def= ining these > packages and simply use =E2=80=98%bootstrap-coreutils&co=E2=80=99 when = =E2=80=98--bootstrap=E2=80=99 is > used. > > Would that work for you? > > I=E2=80=99m asking because we may not keep these 4 binaries around foreve= r. %bootstrap-coreutils&co requires a network connection to build. Is it OK to use it in tests even though it requires a network connection? If it's OK, then I'll use it, but I thought we wanted to avoid relying on a network connection in tests, which is why I defined new packages that do not rely on the network. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqx3iEACgkQ3UCaFdgi Rp1rfBAAxhFgZwQEuIJ5VAsLlZiXvA3k0WqJgZtaWzXY28xf0WGIiNqgwiOq8Biz KrsbzROVQauFmR/Mfkquo0rm/1ua8nIdonjvY9pAml/RppnuNj1efSSDemXl5sVP 2whcL5nwFtY9h07iFY7pLiCbA8J480OeoMS0wnqHdDBgf6VE66me+PFO79zHptlj AjlYZRm6y3NV/WcmfHQrD03yuvrSfgSyc8V7e2XZiRPVy72dFXENSDYzHdFkQ0Q8 sHGvWSyO366SfDVx5MUAFAKyQs6Y4Ag3yI9/hdmzIkbBZJrjuacM7dg7oakWrVCY pZHL7CcehbrgMbFzFOWQfVopuy2IuqotYHbbGtIj/krczSh+7YR8iH24MiMWLhz0 vrYOw36oyjhK4QfZnNWsPT+THUH5K536qhceo8fN7vBWnkdAmHjxaacNB2FwHB2V JmGKH7KVOxwBEx71E1smrTHiTUQlig5OZ7ONu0O3J3OPTu0s/1pOmsiE36LAMtMA Uda29SHQaD9NR2vAvSLclUbVHVr/EWEOYMjayekYndklWoKlvYyU0z9a5lTf/4Kx 59fgZF0hc+RtrMlwq8mYL5U7sZ+mujP0nxQFHnA/yMWdxWWM0LJgai6h4KQQToU4 /096zCaWwQcAsD4aICVM63gHtkprEaut/gudYMpp4jsmQjgONXg= =kaYD -----END PGP SIGNATURE----- --=-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 6/7] system: Add "guix system docker-image" command. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 21 Mar 2018 04:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152160633828934 (code B ref 30572); Wed, 21 Mar 2018 04:26:01 +0000 Received: (at 30572) by debbugs.gnu.org; 21 Mar 2018 04:25:38 +0000 Received: from localhost ([127.0.0.1]:44702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyVJh-0007Wb-OP for submit@debbugs.gnu.org; Wed, 21 Mar 2018 00:25:38 -0400 Received: from mail-pl0-f50.google.com ([209.85.160.50]:43714) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyVJf-0007WO-Q5 for 30572@debbugs.gnu.org; Wed, 21 Mar 2018 00:25:36 -0400 Received: by mail-pl0-f50.google.com with SMTP id f23-v6so2435137plr.10 for <30572@debbugs.gnu.org>; Tue, 20 Mar 2018 21:25:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=VaB05Uf/jTaA81Iku4oUxoD0XskugHGP+GFFTH344GE=; b=kmzhejlCMareesfIWMEwSjfzLXrLKo2YiaDlfpSUb1MHAi2AMgDjR3DOWReMA8PeR8 Vc64lFw1rUStKxlK5veI3EJ72noi5o5qqG3zLNpRFEolyO375sYj1a6AuMLEmPupUU8c zyhbxoh1lt1uk4ebS+A+USMXZSHSL4emLwHpE8g2E3SgC3PH07PY9Djp/pc1W319YPT1 NRDuYTscWnkEo6zlwJLz7cHrmunaAqakRamdCdSSTxYJg2Nd7S2DmShVffq+ermiOZPa 0bFE9wyOsOi7R4sJqemCfGdQdKa98FGPIfs+myAyEhznjFARWbq2OS1OnP4UTlgJ2uR2 NluA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=VaB05Uf/jTaA81Iku4oUxoD0XskugHGP+GFFTH344GE=; b=Abqehk6s3johWWQs0oGyMWVhpkKLn8YlU2nlyhEWGKsquVx2hQfPedLjoal0q/ibW1 G3F3Kjrs9OFre15OgECuSznsNjTB0COgblG3fH18muM6A2cFwva3YAUJr/5lr9j3/cF3 ayoJvoZGZMZ7x0gDizuAq8JyuZMiNDjYSzos3pQgLVDiofyoaj7vvpD46OdQ3rI+UFpp h/WcWsG7Frm9H3qY2UJhuor0tWMd31kkC1TpFX681VltL0YFdQ8cwjg4pz0RjHk8n/do NKBHVYmd44eReQE8/DYhy2TnANHh/gqrpb3OEMzdAgW9oU1XnxvSaqi1swT3cka/LPbh xktA== X-Gm-Message-State: AElRT7ECff3ej4W7t75HLg0Lj3JVWS9xTHBSXwnkWNPAb6aI7/scJLjZ uK4lCWej+or8n37A9yYzERQ= X-Google-Smtp-Source: AG47ELtRbUSKYaD6+4j72gPvqT23vE1fcqzYJP9vm9NEsxHElIwzoaXqmtXs8YcpRIaYrBD/CLAIBQ== X-Received: by 2002:a17:902:9a8b:: with SMTP id w11-v6mr12744992plp.136.1521606330106; Tue, 20 Mar 2018 21:25:30 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id l129sm6552908pfl.82.2018.03.20.21.25.28 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 20 Mar 2018 21:25:28 -0700 (PDT) From: Chris Marusich References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-7-cmmarusich@gmail.com> <877eqal62w.fsf@gnu.org> <87370u6pw4.fsf@gmail.com> Date: Wed, 21 Mar 2018 05:25:27 +0100 In-Reply-To: <87370u6pw4.fsf@gmail.com> (Chris Marusich's message of "Wed, 21 Mar 2018 04:58:35 +0100") Message-ID: <87k1u65a2w.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Chris Marusich writes: > Is it OK to commit this as-is (with just the guile-json change you > suggested above)? Here's an updated patch which contains the guile-json change. =2D-=20 Chris --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0006-system-Add-guix-system-docker-image-command.patch Content-Transfer-Encoding: quoted-printable From=2035f930186bcdc7863ac6ce19b0dba428b3cfab3a Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Mon, 19 Feb 2018 05:45:03 +0100 Subject: [PATCH 6/7] system: Add "guix system docker-image" command. * gnu/system/vm.scm (system-docker-image): New procedure. * guix/scripts/system.scm (system-derivation-for-action): Add a case for docker-image, and in that case, call system-docker-image. (show-help): Document docker-image. (guix-system): Parse arguments for docker-image. * doc/guix.texi (Invoking guix system): Document "guix system docker-image". * gnu/system/examples/docker-image.tmpl: New file. =2D-- doc/guix.texi | 36 ++++++++++-- gnu/system/examples/docker-image.tmpl | 47 +++++++++++++++ gnu/system/vm.scm | 105 ++++++++++++++++++++++++++++++= ++++ guix/scripts/system.scm | 12 ++-- 4 files changed, 192 insertions(+), 8 deletions(-) create mode 100644 gnu/system/examples/docker-image.tmpl diff --git a/doc/guix.texi b/doc/guix.texi index 792539a12..8d38c3d4a 100644 =2D-- a/doc/guix.texi +++ b/doc/guix.texi @@ -20361,12 +20361,18 @@ containing at least the kernel, initrd, and bootl= oader data files must be created. The @code{--image-size} option can be used to specify the size of the image. =20 +@cindex System images, creation in various formats +@cindex Creating system images in various formats @item vm-image @itemx disk-image =2DReturn a virtual machine or disk image of the operating system declared =2Din @var{file} that stands alone. By default, @command{guix system} =2Destimates the size of the image needed to store the system, but you can =2Duse the @option{--image-size} option to specify a value. +@itemx docker-image +Return a virtual machine, disk image, or Docker image of the operating +system declared in @var{file} that stands alone. By default, +@command{guix system} estimates the size of the image needed to store +the system, but you can use the @option{--image-size} option to specify +a value. Docker images are built to contain exactly what they need, so +the @option{--image-size} option is ignored in the case of +@code{docker-image}. =20 You can specify the root file system type by using the @option{--file-system-type} option. It defaults to @code{ext4}. @@ -20384,6 +20390,28 @@ using the following command: # dd if=3D$(guix system disk-image my-os.scm) of=3D/dev/sdc @end example =20 +When using @code{docker-image}, a Docker image is produced. Guix builds +the image from scratch, not from a pre-existing Docker base image. As a +result, it contains @emph{exactly} what you define in the operating +system configuration file. You can then load the image and launch a +Docker container using commands like the following: + +@example +image_id=3D"$(docker load < guixsd-docker-image.tar.gz)" +docker run -e GUIX_NEW_SYSTEM=3D/var/guix/profiles/system \\ + --entrypoint /var/guix/profiles/system/profile/bin/guile \\ + $image_id /var/guix/profiles/system/boot +@end example + +This command starts a new Docker container from the specified image. It +will boot the GuixSD system in the usual manner, which means it will +start any services you have defined in the operating system +configuration. Depending on what you run in the Docker container, it +may be necessary to give the container additional permissions. For +example, if you intend to build software using Guix inside of the Docker +container, you may need to pass the @option{--privileged} option to +@code{docker run}. + @item container Return a script to run the operating system declared in @var{file} within a container. Containers are a set of lightweight isolation diff --git a/gnu/system/examples/docker-image.tmpl b/gnu/system/examples/do= cker-image.tmpl new file mode 100644 index 000000000..d73187398 =2D-- /dev/null +++ b/gnu/system/examples/docker-image.tmpl @@ -0,0 +1,47 @@ +;; This is an operating system configuration template for a "Docker image" +;; setup, so it has barely any services at all. + +(use-modules (gnu)) + +(operating-system + (host-name "komputilo") + (timezone "Europe/Berlin") + (locale "en_US.utf8") + + ;; This is where user accounts are specified. The "root" account is + ;; implicit, and is initially created with the empty password. + (users (cons (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + (supplementary-groups '("wheel" + "audio" "video")) + (home-directory "/home/alice")) + %base-user-accounts)) + + ;; Globally-installed packages. + (packages %base-packages) + + ;; Because the system will run in a Docker container, we may omit many + ;; things that would normally be required in an operating system + ;; configuration file. These things include: + ;; + ;; * bootloader + ;; * file-systems + ;; * services such as mingetty, udevd, slim, networking, dhcp + ;; + ;; Either these things are simply not required, or Docker provides + ;; similar services for us. + + ;; This will be ignored. + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (target "does-not-matter"))) + ;; This will be ignored, too. + (file-systems (list (file-system + (device "does-not-matter") + (mount-point "/") + (type "does-not-matter")))) + + ;; Guix is all you need! + (services (list (guix-service)))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index d239fa56a..af49065f3 100644 =2D-- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -23,6 +23,7 @@ =20 (define-module (gnu system vm) #:use-module (guix config) + #:use-module (guix docker) #:use-module (guix store) #:use-module (guix gexp) #:use-module (guix derivations) @@ -30,6 +31,7 @@ #:use-module (guix monads) #:use-module (guix records) #:use-module (guix modules) + #:use-module (guix scripts pack) #:use-module (guix utils) #:use-module (guix hash) #:use-module (guix base32) @@ -39,7 +41,9 @@ #:use-module (gnu packages base) #:use-module (gnu packages bootloaders) #:use-module (gnu packages cdrom) + #:use-module (gnu packages compression) #:use-module (gnu packages guile) + #:autoload (gnu packages gnupg) (libgcrypt) #:use-module (gnu packages gawk) #:use-module (gnu packages bash) #:use-module (gnu packages less) @@ -76,6 +80,7 @@ system-qemu-image/shared-store system-qemu-image/shared-store-script system-disk-image + system-docker-image =20 virtual-machine virtual-machine?)) @@ -376,6 +381,106 @@ the image." #:disk-image-format disk-image-format #:references-graphs inputs)) =20 +(define* (system-docker-image os + #:key + (name "guixsd-docker-image") + register-closures?) + "Build a docker image. OS is the desired . NAME is t= he +base name to use for the output file. When REGISTER-CLOSURES? is not #f, +register the closure of OS with Guix in the resulting Docker image. This = only +makes sense when you want to build a GuixSD Docker image that has Guix +installed inside of it. If you don't need Guix (e.g., your GuixSD Docker +image just contains a web server that is started by the Shepherd), then you +should set REGISTER-CLOSURES? to #f." + (define not-config? + (match-lambda + (('guix 'config) #f) + (('guix rest ...) #t) + (('gnu rest ...) #t) + (rest #f))) + + (define config + ;; (guix config) module for consumption by (guix gcrypt). + (scheme-file "gcrypt-config.scm" + #~(begin + (define-module (guix config) + #:export (%libgcrypt)) + + ;; XXX: Work around . + (eval-when (expand load eval) + (define %libgcrypt + #+(file-append libgcrypt "/lib/libgcrypt")))))) + (mlet %store-monad ((os-drv (operating-system-derivation os #:container?= #t)) + (name -> (string-append name ".tar.gz")) + (graph -> "system-graph")) + (define build + (with-imported-modules `(,@(source-module-closure '((guix docker) + (guix build util= s) + (gnu build vm)) + #:select? not-conf= ig?) + (guix build store-copy) + ((guix config) =3D> ,config)) + #~(begin + ;; Guile-JSON is required by (guix docker). + (add-to-load-path + (string-append #+guile-json "/share/guile/site/" + (effective-version))) + (use-modules (guix docker) + (guix build utils) + (gnu build vm) + (srfi srfi-19) + (guix build store-copy)) + + (let* ((inputs '#$(append (list tar) + (if register-closures? + (list guix) + '()))) + ;; This initializer requires elevated privileges that a= re + ;; not normally available in the build environment (e.g= ., + ;; it needs to create device nodes). In order to obtain + ;; such privileges, we run it as root in a VM. + (initialize (root-partition-initializer + #:closures '(#$graph) + #:register-closures? #$register-closures? + #:system-directory #$os-drv + ;; De-duplication would fail due to + ;; cross-device link errors, so don't do i= t. + #:deduplicate? #f)) + ;; Even as root in a VM, the initializer would fail due= to + ;; lack of privileges if we use a root-directory that i= s on + ;; a file system that is shared with the host (e.g., /t= mp). + (root-directory "/guixsd-system-root")) + (set-path-environment-variable "PATH" '("bin" "sbin") inputs) + (mkdir root-directory) + (initialize root-directory) + (build-docker-image + (string-append "/xchg/" #$name) ;; The output file. + (cons* root-directory + (call-with-input-file (string-append "/xchg/" #$grap= h) + read-reference-graph)) + #$os-drv + #:compressor '(#+(file-append gzip "/bin/gzip") "-9n") + #:creation-time (make-time time-utc 0 1) + #:transformations `((,root-directory -> ""))))))) + (expression->derivation-in-linux-vm + name + ;; The VM's initrd Guile doesn't support dlopen, but our "build" gexp + ;; needs to be run by a Guile that can dlopen libgcrypt. The followi= ng + ;; hack works around that problem by putting the "build" gexp into an + ;; executable script (created by program-file) which, when executed, = will + ;; run using a Guile that supports dlopen. That way, the VM's initrd + ;; Guile can just execute it via invoke, without using dlopen. See: + ;; https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00233.html + (with-imported-modules `((guix build utils)) + #~(begin + (use-modules (guix build utils)) + ;; If we use execl instead of invoke here, the VM will crash wi= th a + ;; kernel panic. + (invoke #$(program-file "build-docker-image" build)))) + #:make-disk-image? #f + #:single-file-output? #t + #:references-graphs `((,graph ,os-drv))))) + ;;; ;;; VM and disk images. diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index acfccce96..09f99b300 100644 =2D-- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2014, 2015, 2016, 2017, 2018 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2016 Alex Kost =2D;;; Copyright =C2=A9 2016, 2017 Chris Marusich +;;; Copyright =C2=A9 2016, 2017, 2018 Chris Marusich ;;; Copyright =C2=A9 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. @@ -701,7 +701,9 @@ checking this by themselves in their 'check' procedure." ("iso9660" "image.iso") (_ "disk-image")) #:disk-image-size image-size =2D #:file-system-type file-system-type)))) + #:file-system-type file-system-type)) + ((docker-image) + (system-docker-image os #:register-closures? #t)))) =20 (define (maybe-suggest-running-guix-pull) "Suggest running 'guix pull' if this has never been done before." @@ -899,6 +901,8 @@ Some ACTIONS support additional ARGS.\n")) vm-image build a freestanding virtual machine image\n")) (display (G_ "\ disk-image build a disk image, suitable for a USB stick\n")) + (display (G_ "\ + docker-image build a Docker image\n")) (display (G_ "\ init initialize a root file system to run GNU\n")) (display (G_ "\ @@ -1130,7 +1134,7 @@ argument list and OPTS is the option alist." (case action ((build container vm vm-image disk-image reconfigure init extension-graph shepherd-graph list-generations roll-back =2D switch-generation search) + switch-generation search docker-image) (alist-cons 'action action result)) (else (leave (G_ "~a: unknown action~%") action)))))) =20 @@ -1159,7 +1163,7 @@ argument list and OPTS is the option alist." (exit 1)) =20 (case action =2D ((build container vm vm-image disk-image reconfigure) + ((build container vm vm-image disk-image docker-image reconfigure) (unless (or (=3D count 1) (and expr (=3D count 0))) (fail))) =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqx3rcACgkQ3UCaFdgi Rp0KQxAAmRGdxpnZx5SqeI//vEhuP9PzgDunZCLX7QvIhiNUKjS9OoQHv76l/naT 5bXh1CXzNpDhCF69eiDaYTprktPXZ1/fKOCZB/5YXT5NqtCPkWvwTNlmbFosaboW 93OwA2jdijEkUS18haVKIV+o+pQZ1DILShlL5nE24N4rijskc7UejDy8+7haDjpn HJl0Ye2UmnRBEowitejH+YRQbQ3K/jOUVoEnO0VMtwYXyedInrlnxe1OWFF96cQE Csf541B8PASdDQ3kvhYXderDlBCGExvWuR3J450d9u7kmdOXRZIrGPMWclavN9mn vv2KEEYRmRhgNgQH3O+2ccNpY+7J9clH38owwrY1jiy75Y6oKlhisPATlKIUvRxb pxVau/IjJBn2yuJwbBE0GwG4whE2ZcAZRAKhAYUqnHuquYSN+oR+kEnRzVcMk5iS q5j4AJ2gulWgcsFHf5uhGvcbIRp7mM1z4GzwXzwINWRdC/GTlu1DIBtyomQWVoAz 8hCAE3riAdPnAizwixwDqPnQvygHWTmuonUEd35sJr0CT5KBI6exmDAjuethhkF4 nkZvnyf2neGXig3Whq5V9M8DPOe15KifM2EUyi4LoKn9ouTauvPMtHkVGVsfcbKA QLI/7uPmpBh6YSAOc0kkNaFsmp5xpvAd2h7aXOkXX7J5qjUDlbc= =Bwaa -----END PGP SIGNATURE----- --==-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 2/7] tests: Add tests for "guix pack". Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 21 Mar 2018 04:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152160650429221 (code B ref 30572); Wed, 21 Mar 2018 04:29:02 +0000 Received: (at 30572) by debbugs.gnu.org; 21 Mar 2018 04:28:24 +0000 Received: from localhost ([127.0.0.1]:44716 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyVMI-0007b7-Ju for submit@debbugs.gnu.org; Wed, 21 Mar 2018 00:28:24 -0400 Received: from mail-pg0-f47.google.com ([74.125.83.47]:33797) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyVM9-0007ak-0X for 30572@debbugs.gnu.org; Wed, 21 Mar 2018 00:28:17 -0400 Received: by mail-pg0-f47.google.com with SMTP id m15so1536734pgc.1 for <30572@debbugs.gnu.org>; Tue, 20 Mar 2018 21:28:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=k6PWOhLSlUe0TDDmS3e2t8KANDca+qZ6tcMGYaUtFD8=; b=Cmh4S0+KcQVpgo73fyj1z799258HHZmL9LssdkYKuE15QadHwKTuxgaacfLVqDkIF+ TAbf50i8oJzTG/WmKCPqp3wnfJmkKF6EfhNNqmYcdeUO3QylX8a/xa54L2Xevei445Pk 8xEIplAO/QSkBTQM6NgIYVtipQuPVaNmosBBttwywDgW/rPXnAk8b21quetvTB6UCg0H LSbQNmryfneHg/JDLD/eym+J5jMZaJMsh/wwIG9QH42W2+K/LGG1kgga3Hyv+MQeNu/E 5/kNMnM2XQM3s4tpbuUJtrl+L3JG1/ofq9P8A56Zee2eFlzEguK+7fxku2LabS1f97FH jBAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=k6PWOhLSlUe0TDDmS3e2t8KANDca+qZ6tcMGYaUtFD8=; b=LvQl6zNA863XQVl1rbpqGZF3RV0uuH5W4M6biKNbZVofeWhl2TfPG/Sa6rqG6aad2b c3o/3rUMAM6wX+eZ86jgVBQHP4fCwTXqnOiI8BGzTZCYJEmOe5kIRrltmAxwGV2QRJq/ RH55jb5xTJB+1AVVY9IiHbpLeDb4UJa/Ay7+bFDfRhFw6xeGstyAha0M9rWgSowJEziK i8JRDouvkSY3Dd0mRsZyDc0L2mOcZUWVaNF+HtqpzJ1r21tzQ/nh4PczP1hzJfCUSLff XdUXJXo5fQlsNTokJnOMPKSb4+vuCn8TiaBqfPNkFOWV6ykXc0FAVSDVRu7tvWuRKPJd iBbg== X-Gm-Message-State: AElRT7H72Obyp9wUZwMQy0MQvhkj1npojbqVqAWJ6YZkDjrD85I4Srlo 6XyQJ2DzKwIX6MpVVeijq6QtDNgE X-Google-Smtp-Source: AG47ELvsp1o307k1+HpSzv+c1MuMGkmt/WNNxd+vn287cS0v+UcHL1rUhw3Duif2af6tm6Snv+qrWg== X-Received: by 10.99.164.18 with SMTP id c18mr5241096pgf.85.1521606483369; Tue, 20 Mar 2018 21:28:03 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id p1sm5472533pgr.67.2018.03.20.21.28.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 20 Mar 2018 21:28:01 -0700 (PDT) From: Chris Marusich References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-3-cmmarusich@gmail.com> <20180316220732.19c2375a@scratchpost.org> <87a7v6pnmm.fsf@gnu.org> <87y3im5b7u.fsf@gmail.com> Date: Wed, 21 Mar 2018 05:28:00 +0100 In-Reply-To: <87y3im5b7u.fsf@gmail.com> (Chris Marusich's message of "Wed, 21 Mar 2018 05:00:53 +0100") Message-ID: <87h8pa59yn.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Chris Marusich writes: > Sure thing. I'll include this change when pushing to origin. For the record, here's a new version of the patch with the two suggested improvements (put "warning:" in the warning message, and redirect superfluous output to /dev/null). =2D-=20 Chris --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0002-tests-Add-tests-for-guix-pack.patch Content-Transfer-Encoding: quoted-printable From=20dcb928d92bf92ef5ceff94501b91f98ed28a4226 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Tue, 20 Feb 2018 02:17:54 +0100 Subject: [PATCH 2/7] tests: Add tests for "guix pack". * guix/scripts/pack.scm (%compressors) : New compressor. (%options) <--bootstrap>: New option. (show-help): Document the new --bootstrap option. (guix-pack): When --bootstrap is specified, use the bootstrap Guile, tar, and xz to build the pack, and do not use any profile hooks or locales. * doc/guix.texi (Invoking guix pull): Document the new --bootstrap option. * tests/guix-pack.sh: New file. * Makefile.am (SH_TESTS): Add guix-pack.sh. * gnu/packages/package-management.scm (guix) : Add util-linux. =2D-- Makefile.am | 1 + doc/guix.texi | 6 ++- gnu/packages/package-management.scm | 2 + guix/scripts/pack.scm | 61 +++++++++++++++++++++--------- tests/guix-pack.sh | 74 +++++++++++++++++++++++++++++++++= ++++ 5 files changed, 126 insertions(+), 18 deletions(-) create mode 100644 tests/guix-pack.sh diff --git a/Makefile.am b/Makefile.am index 6556799e6..637c934ed 100644 =2D-- a/Makefile.am +++ b/Makefile.am @@ -374,6 +374,7 @@ SH_TESTS =3D \ tests/guix-download.sh \ tests/guix-gc.sh \ tests/guix-hash.sh \ + tests/guix-pack.sh \ tests/guix-package.sh \ tests/guix-package-net.sh \ tests/guix-system.sh \ diff --git a/doc/guix.texi b/doc/guix.texi index d3a7908f9..792539a12 100644 =2D-- a/doc/guix.texi +++ b/doc/guix.texi @@ -23,7 +23,7 @@ Copyright @copyright{} 2015 Taylan Ulrich Bay=C4=B1rl=C4= =B1/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* =2DCopyright @copyright{} 2016, 2017 Chris Marusich@* +Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* @@ -2899,6 +2899,10 @@ added to it or removed from it after extraction of t= he pack. =20 One use case for this is the Guix self-contained binary tarball (@pxref{Binary Installation}). + +@item --bootstrap +Use the bootstrap binaries to build the pack. This option is only +useful to Guix developers. @end table =20 In addition, @command{guix pack} supports all the common build options diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-man= agement.scm index 709cdfd0f..a90ba7a21 100644 =2D-- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -257,6 +257,8 @@ ;; Many tests rely on the 'guile-bootstrap' package, which is why= we ;; have it here. ("boot-guile" ,(bootstrap-guile-origin (%current-system))) + ;; Some of the tests use "unshare" when it is available. + ("util-linux" ,util-linux) ,@(if (and (not (%current-target-system)) (string=3D? (%current-system) "x86_64-linux")) `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux")= )) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 59dd117ed..64ed44460 100644 =2D-- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -3,6 +3,7 @@ ;;; Copyright =C2=A9 2017 Efraim Flashner ;;; Copyright =C2=A9 2017 Ricardo Wurmus ;;; Copyright =C2=A9 2018 Konrad Hinsen +;;; Copyright =C2=A9 2018 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,7 +34,9 @@ #:use-module (guix derivations) #:use-module (guix scripts build) #:use-module (gnu packages) + #:use-module (gnu packages bootstrap) #:use-module (gnu packages compression) + #:use-module (gnu packages guile) #:autoload (gnu packages base) (tar) #:autoload (gnu packages package-management) (guix) #:autoload (gnu packages gnupg) (libgcrypt) @@ -63,6 +66,8 @@ #~(#+(file-append lzip "/bin/lzip") "-9")) (compressor "xz" ".xz" #~(#+(file-append xz "/bin/xz") "-e -T0")) + (compressor "bootstrap-xz" ".xz" + #~(#+(file-append %bootstrap-xz "/bin/xz") "-e -T0")) (compressor "bzip2" ".bz2" #~(#+(file-append bzip2 "/bin/bzip2") "-9")) (compressor "none" "" #f))) @@ -325,6 +330,9 @@ the image." (option '("localstatedir") #f #f (lambda (opt name arg result) (alist-cons 'localstatedir? #t result))) + (option '("bootstrap") #f #f + (lambda (opt name arg result) + (alist-cons 'bootstrap? #t result))) =20 (append %transformation-options %standard-build-options))) @@ -352,6 +360,8 @@ Create a bundle of PACKAGE.\n")) -m, --manifest=3DFILE create a pack with the manifest from FILE")) (display (G_ " --localstatedir include /var/guix in the resulting pack")) + (display (G_ " + --bootstrap use the bootstrap binaries to build the pack")) (newline) (display (G_ " -h, --help display this help and exit")) @@ -393,28 +403,43 @@ Create a bundle of PACKAGE.\n")) (else (packages->manifest packages))))) =20 (with-error-handling =2D (parameterize ((%graft? (assoc-ref opts 'graft?))) =2D (let* ((dry-run? (assoc-ref opts 'dry-run?)) =2D (manifest (manifest-from-args opts)) =2D (pack-format (assoc-ref opts 'format)) =2D (name (string-append (symbol->string pack-format) =2D "-pack")) =2D (target (assoc-ref opts 'target)) =2D (compressor (assoc-ref opts 'compressor)) =2D (symlinks (assoc-ref opts 'symlinks)) =2D (build-image (match (assq-ref %formats pack-format) =2D ((? procedure? proc) proc) =2D (#f =2D (leave (G_ "~a: unknown pack format") =2D format)))) =2D (localstatedir? (assoc-ref opts 'localstatedir?))) =2D (with-store store + (let* ((dry-run? (assoc-ref opts 'dry-run?)) + (manifest (manifest-from-args opts)) + (pack-format (assoc-ref opts 'format)) + (name (string-append (symbol->string pack-format) + "-pack")) + (target (assoc-ref opts 'target)) + (bootstrap? (assoc-ref opts 'bootstrap?)) + (compressor (if bootstrap? + (lookup-compressor "bootstrap-xz") + (assoc-ref opts 'compressor))) + (tar (if bootstrap? + %bootstrap-tar + tar)) + (symlinks (assoc-ref opts 'symlinks)) + (build-image (match (assq-ref %formats pack-format) + ((? procedure? proc) proc) + (#f + (leave (G_ "~a: unknown pack format") + format)))) + (localstatedir? (assoc-ref opts 'localstatedir?))) + (with-store store + (parameterize ((%graft? (assoc-ref opts 'graft?)) + (%guile-for-build (package-derivation + store + (if (assoc-ref opts 'bootstrap?) + %bootstrap-guile + (canonical-package guile-2.2= ))))) ;; Set the build options before we do anything else. (set-build-options-from-command-line store opts) =20 (run-with-store store (mlet* %store-monad ((profile (profile-derivation manifest + #:hooks (if bootstrap? + '() + %default-profile-ho= oks) + #:locales? (not bootstrap?) #:target target)) (drv (build-image name profile #:target @@ -424,7 +449,9 @@ Create a bundle of PACKAGE.\n")) #:symlinks symlinks #:localstatedir? =2D localstatedir?))) + localstatedir? + #:tar + tar))) (mbegin %store-monad (show-what-to-build* (list drv) #:use-substitutes? diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh new file mode 100644 index 000000000..34692888b =2D-- /dev/null +++ b/tests/guix-pack.sh @@ -0,0 +1,74 @@ +# GNU Guix --- Functional package management for GNU +# Copyright =C2=A9 2018 Chris Marusich +# +# This file is part of GNU Guix. +# +# GNU Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# GNU Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Guix. If not, see . + +# +# Test the `guix pack' command-line utility. +# + +guix pack --version + +# Use --no-substitutes because we need to verify we can do this ourselves. +GUIX_BUILD_OPTIONS=3D"--no-substitutes" +export GUIX_BUILD_OPTIONS + +# Build a tarball with no compression. +guix pack --compression=3Dnone --bootstrap guile-bootstrap + +# Build a tarball (with compression). +guix pack --bootstrap guile-bootstrap + +# Build a tarball with a symlink. +the_pack=3D"`guix pack --bootstrap -S /opt/gnu/bin=3Dbin guile-bootstrap`" + +is_available () { + # Use the "type" shell builtin to see if the program is on PATH. + type "$1" > /dev/null +} + +if is_available chroot && is_available unshare; then + # Verify we can extract and use it. + test_directory=3D"`mktemp -d`" + trap 'rm -rf "$test_directory"' EXIT + cd "$test_directory" + tar -xf "$the_pack" + unshare -r chroot . /opt/gnu/bin/guile --version + cd - +else + echo "warning: skipping pack verification because chroot or unshare is= unavailable" >&2 +fi + +# For the tests that build Docker images below, we currently have to use +# --dry-run because if we don't, there are only two possible cases: +# +# Case 1: We do not use --bootstrap, and the build takes hours to fini= sh +# because it needs to build tar etc. +# +# Case 2: We use --bootstrap, and the build fails because the bootstrap +# Guile cannot dlopen shared libraries. Not to mention the fa= ct +# that we would still have to build many non-bootstrap inputs +# (e.g., guile-json) in order to create the Docker image. + +# Build a Docker image. +guix pack --dry-run --bootstrap -f docker guile-bootstrap + +# Build a Docker image with a symlink. +guix pack --dry-run --bootstrap -f docker -S /opt/gnu=3D/ guile-bootstrap + +# Build a tarball pack of cross-compiled software. Use coreutils because +# guile-bootstrap is not intended to be cross-compiled. +guix pack --dry-run --bootstrap --target=3Darm-unknown-linux-gnueabihf cor= eutils =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqx31AACgkQ3UCaFdgi Rp1wfRAA2NMKTRX2lXIYv7v0uhMQUmYp9e+AwqrVbOsJODpk2afXqonfQCQfA26n lPbxvFY+oQjpxReF3Q6qxUlb4b8CYlCXSrhlQahkKAUa3HQ3/IKcq77q2JiHenQK z5azTjGJVJwrVZAmO1FmHxSK5cu+0A0mdBGdFD7maqyxQzN4vVXU+gSvVV/3Mx47 XkLmaKm2MJ7hk21kGP8o0PjFZaICiUZa1aLq/MaTPd3Z9ewOtr+hch2P98Ad+Fz8 V2L2VoYSfDfwyb22bbN8YJaes+CRbGWjKwe5g2tw2xMcQmVbJuM19HRol1DgO9mf 2q2onNJNqpoCL62Vndac8DbCu587iyRx6c90EV79eRQAsXVz6kKHxlIbGHm5ba0v 30A0DkN04FBa5ty0xmbYFh4zErNKoBmZN5iNgiHvRgHkNMCbrefoaw0k2dLkVoEh 3pUGolluwzqTPHy4hQJupZddwO5fzP65mf+6bd3eKXqifomYD9HcfMJ72zMQQyue XPYD4S+Y2lAzmSsUVXvXGd97Gt/yJWsA6C4AkS8QntGPYkNxEeIhR1YA7gXeVpBD vBo581+bkTe9amM+EslxL5MRAMxDmDHvirU5MkkvbhDMU2I1vG/MVqJk4hGhAwY+ 0OOWy+JtLLa26wiGUw5kOab+WqGUi0Z52I87dGevuRu8w6gMAsM= =GVwB -----END PGP SIGNATURE----- --==-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 21 Mar 2018 09:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: 30572@debbugs.gnu.org, Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152162385023935 (code B ref 30572); Wed, 21 Mar 2018 09:18:01 +0000 Received: (at 30572) by debbugs.gnu.org; 21 Mar 2018 09:17:30 +0000 Received: from localhost ([127.0.0.1]:44866 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyZsA-0006Dz-Bd for submit@debbugs.gnu.org; Wed, 21 Mar 2018 05:17:30 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:54818) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyZs4-0006Dn-IP for 30572@debbugs.gnu.org; Wed, 21 Mar 2018 05:17:25 -0400 Received: from localhost (77.118.211.107.wireless.dyn.drei.com [77.118.211.107]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 8FF29336040F; Wed, 21 Mar 2018 10:17:22 +0100 (CET) Date: Wed, 21 Mar 2018 10:17:17 +0100 From: Danny Milosavljevic Message-ID: <20180321101717.624a4c48@scratchpost.org> In-Reply-To: <87r2oe5adg.fsf@gmail.com> References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-2-cmmarusich@gmail.com> <20180316231651.6889c44a@scratchpost.org> <87y3inwiai.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> <20180320110926.4791097d@scratchpost.org> <87r2oe5adg.fsf@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/J+FetL0KcZYrABFl2E28n65"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/J+FetL0KcZYrABFl2E28n65 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable > I understand. It isn't hard to fix, so here's a new patch that adds > correct licenses. How does it look? LGTM! --Sig_/J+FetL0KcZYrABFl2E28n65 Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlqyIx0ACgkQ5xo1VCww uqUlPgf/doL0ayaH5+oI5KyOtSJjm9g2D771G7X51Gxlx1z6xs5Jh03aJm8nFtyL PnEkUazAcJIGR5bx2JVVOKw6Nd9FK24eZZzpNHPmfVUBwsyuaDyCMSypN2k6RCSJ KBYkkFc+QC9lAwzHqsBKA0V9umxNXSm6N/mf2iUEFqauO+qXRSG6mGEBBiJLjhBK uXgyATLNItjMor+J6Ved/LvZE1/pHFZLtLCgxFzFLP9kXn3dRE52NXA4MlkkU8+j oA6fAyMVKNrjmmpbqRI+6h8W6CSylfwcV1LO4rIgML1qInSL0U5Lvb8P3mTPRtFu h66fzjAvxfoPA9iwqWYBXVNF75/gOw== =8qDj -----END PGP SIGNATURE----- --Sig_/J+FetL0KcZYrABFl2E28n65-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 6/7] system: Add "guix system docker-image" command. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 21 Mar 2018 20:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15216654075242 (code B ref 30572); Wed, 21 Mar 2018 20:51:01 +0000 Received: (at 30572) by debbugs.gnu.org; 21 Mar 2018 20:50:07 +0000 Received: from localhost ([127.0.0.1]:46306 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eykgR-0001MU-H0 for submit@debbugs.gnu.org; Wed, 21 Mar 2018 16:50:07 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:54776) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eykgO-0001MK-5J for 30572@debbugs.gnu.org; Wed, 21 Mar 2018 16:50:06 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 8E5C61295A; Wed, 21 Mar 2018 21:50:03 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fopfqsuhqBhU; Wed, 21 Mar 2018 21:50:02 +0100 (CET) Received: from ribbon (unknown [IPv6:2a01:e0a:1d:7270:6a6c:dc17:fc02:cfda]) by hera.aquilenet.fr (Postfix) with ESMTPSA id AD09612925; Wed, 21 Mar 2018 21:50:01 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) In-Reply-To: <87370u6pw4.fsf@gmail.com> (Chris Marusich's message of "Wed, 21 Mar 2018 04:58:35 +0100") References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-7-cmmarusich@gmail.com> <877eqal62w.fsf@gnu.org> <87370u6pw4.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 1 Germinal an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 21 Mar 2018 21:50:00 +0100 Message-ID: <87o9jhf91j.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Hi Chris, Chris Marusich skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) writes: > >>> + (define json >>> + ;; Pick the guile-json package that corresponds to the Guile used = to build >>> + ;; derivations. >>> + (if (string-prefix? "2.0" (package-version (default-guile))) >>> + guile2.0-json >>> + guile-json)) >> >> I think we can use =E2=80=98guile-json=E2=80=99 unconditionally here. > > Good point. Nobody using this new code will be using Guile 2.0, Specifically, we know that derivations are built with =E2=80=98guile-final= =E2=80=99, which is now 2.2. > so we can just use guile-json unconditionally. Does that mean we can > also clean up the same conditional statement from other places in Guix > code now? Yes, indeed! >>> + (mkdir root-directory) >>> + (initialize root-directory) >>> + (build-docker-image >>> + (string-append "/xchg/" #$name) ;; The output file. >>> + (cons* root-directory >>> + (call-with-input-file (string-append "/xchg/" #$= graph) >>> + read-reference-graph)) >>> + #$os-drv >>> + #:compressor '(#+(file-append gzip "/bin/gzip") "-9n") >>> + #:creation-time (make-time time-utc 0 1) >>> + #:transformations `((,root-directory -> ""))))))) >> >> Am I right that the whole point of passing several file names to >> =E2=80=98build-docker-image=E2=80=99 is that here we don=E2=80=99t need = to copy the whole store >> to =E2=80=98root-directory=E2=80=99, right? > > The primary reason why I made this change was because it was the > simplest way I could find to re-use the existing code. The fact that we > copy less is a nice secondary effect, but it is not the primary reason > why I structured it this way. There might be a simpler way to > accomplish this, but this way works, which I think is a good start. I > would like to commit this as-is for now. If we can figure out a simpler > way to implement the same logic, I'd be all for it, but it seems tricky. > > The original role of the "PATH" argument was surprising (for example, it > was not actually used for adding any paths to the final Docker image!). > In addition, the original code assumed that all the paths to add (loaded > from the "CLOSURE" graph file argument - not from PATH!) are store > paths, which is not true when creating a GuixSD Docker image (unless we > try to copy everything created by root-partition-initializer back into > the store). So, some of the paths I need to add are store paths, and > some of them are paths to special files outside the store, like device > files. Maybe we can copy all of this (including device files and socket > files) into a single directory in the store (or outside of the store). > I don't know. If it's possible, I agree it would be a nice improvement. > But I tried various methods, and my latest patch was the simplest method > I found that worked. I would definitely be happy if we could simplify > it even more, but I also want to move forward with this patch series. I see, thanks for taking the time to explain! I=E2=80=99m always wary about adding too many options in an interface, but = like you wrote, it may be unavoidable here. > Is it OK to commit this as-is (with just the guile-json change you > suggested above)? Yes, sure; sorry for the extra delay. We can always adjust later if we have a better idea. Thanks a lot for working on this! Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 21 Mar 2018 20:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15216656825669 (code B ref 30572); Wed, 21 Mar 2018 20:55:02 +0000 Received: (at 30572) by debbugs.gnu.org; 21 Mar 2018 20:54:42 +0000 Received: from localhost ([127.0.0.1]:46315 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eykks-0001TN-DO for submit@debbugs.gnu.org; Wed, 21 Mar 2018 16:54:42 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:54814) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eykkq-0001TF-EA for 30572@debbugs.gnu.org; Wed, 21 Mar 2018 16:54:40 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id CF68C12949; Wed, 21 Mar 2018 21:54:39 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Pi2zPWgBmGb4; Wed, 21 Mar 2018 21:54:38 +0100 (CET) Received: from ribbon (unknown [IPv6:2a01:e0a:1d:7270:6a6c:dc17:fc02:cfda]) by hera.aquilenet.fr (Postfix) with ESMTPSA id DA0421291A; Wed, 21 Mar 2018 21:54:37 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-2-cmmarusich@gmail.com> <87370yl5y5.fsf@gnu.org> <87muz25a72.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 1 Germinal an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 21 Mar 2018 21:54:37 +0100 In-Reply-To: <87muz25a72.fsf@gmail.com> (Chris Marusich's message of "Wed, 21 Mar 2018 05:22:57 +0100") Message-ID: <87h8p9f8tu.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Chris Marusich skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) writes: > >> Chris Marusich skribis: >> >>> * gnu/packages/bootstrap.scm (bootstrap-binary): New procedure. >>> (%bootstrap-bash, %bootstrap-mkdir, %bootstrap-tar, %bootstrap-xz): >>> Use it to create these new packages, and export them. >> >> For =E2=80=98guix pack --bootstrap=E2=80=99, I believe we could avoid de= fining these >> packages and simply use =E2=80=98%bootstrap-coreutils&co=E2=80=99 when = =E2=80=98--bootstrap=E2=80=99 is >> used. >> >> Would that work for you? >> >> I=E2=80=99m asking because we may not keep these 4 binaries around forev= er. > > %bootstrap-coreutils&co requires a network connection to build. Is it > OK to use it in tests even though it requires a network connection? If > it's OK, then I'll use it, but I thought we wanted to avoid relying on a > network connection in tests, which is why I defined new packages that do > not rely on the network. Oh, I see. I think it=E2=80=99s OK to use =E2=80=98bootstrap-coreutils&co= =E2=80=99 nevertheless, and to simply check for networking in the test, as done in tests/guix-package-net.sh and tests/guix-environment.sh. The downside is that those tests will indeed require networking (though they remain cheap). The upside is that we don=E2=80=99t clutter the packag= e set with =E2=80=9Cweird=E2=80=9D packages. :-) Another option would be to define these packages in a temporary file in the test and add that to GUIX_PACKAGE_PATH, but maybe that=E2=80=99s overki= ll=E2=80=A6 Thoughts? Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz. Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Mar 2018 04:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15216934454921 (code B ref 30572); Thu, 22 Mar 2018 04:38:02 +0000 Received: (at 30572) by debbugs.gnu.org; 22 Mar 2018 04:37:25 +0000 Received: from localhost ([127.0.0.1]:46542 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyryf-0001HI-Hq for submit@debbugs.gnu.org; Thu, 22 Mar 2018 00:37:25 -0400 Received: from mail-pf0-f176.google.com ([209.85.192.176]:33984) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyrye-0001H6-8H for 30572@debbugs.gnu.org; Thu, 22 Mar 2018 00:37:24 -0400 Received: by mail-pf0-f176.google.com with SMTP id j20so2912305pfi.1 for <30572@debbugs.gnu.org>; Wed, 21 Mar 2018 21:37:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=k851xSF/1AoF0IlOSCvpLPEY0zvxAUtc3rVY/sx6bAg=; b=eoNGf38sElILR8KMsGBtKrRfkd1PDmoiWN0FntKOSEno2GDNtWvVNFLtSRt2yDCuLN gaQsZgtkzTn2zkioLlJZLoEffAxYvuGdh15Bb69g/hT3DGGSQ+FQmqzJYQPGnhR5qyoA YqCk4RYzCKaYkgr3l/Ng5uY77fyKCAnZTgyAqvTqiSUukgKCVO8Fn2f60ld1ciuvPZBc QchB2ehW1KLeOtmiaqkNdzOtUdl10t0AvwaIQqPugkCXE3oFUwk896oARvxIy1GyTDlL nXNOo7v+z769m3/+4tJwIgHUd0dYyvk872EPeFESzN+kAgK+306FVfCczF4/Bn5H2PEW ReIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=k851xSF/1AoF0IlOSCvpLPEY0zvxAUtc3rVY/sx6bAg=; b=RIiAokPC35HxhadcT+Ywdo8gx5TsdqhPe+VJPyO1WmLn9QHgMEqRx0aKeVm52Qv5Cc +CmBKen9lZD9FIDlBNUbdN8c8z1ElyWwJt6q7oGWzWcvXD4wmRBo1n/BQDoCQUdJ8aME Wykc8pshwbJ7VzlVSl8o/owmI0kZxLL9RD074otjZIjynpnyZJYPX/K9eLh54gv0CJAJ M3tiDnmQmZHcP+QjzG0oETiJR5/MjwvbV5tZiA6kzQ+l6alcYRBKD3HciVX4N09D5I1W VOlKunLVwkw2BHnxOi8xwHn2uVMcLcIn+F/hZVCOGkjnYWzwQg3wQR9IPnWwIcoyINKf 1eew== X-Gm-Message-State: AElRT7E9RwK7i4cC7KKkR3ps8CKhfRiXhYOp35EQcAoF5+QwylsvDW6n +vs1trlVyfC30Ylc0JHKY9Q= X-Google-Smtp-Source: AG47ELsTJgPeOIALrYFDDFa5pTKDARXLJVtyTjRGDioVbKKOp+3vFd8i8LhSyk9m0KmKO7fsI6d7mA== X-Received: by 10.101.72.9 with SMTP id h9mr11198457pgs.88.1521693437704; Wed, 21 Mar 2018 21:37:17 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id m13sm9237827pgs.25.2018.03.21.21.37.15 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 Mar 2018 21:37:16 -0700 (PDT) From: Chris Marusich References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-2-cmmarusich@gmail.com> <87370yl5y5.fsf@gnu.org> <87muz25a72.fsf@gmail.com> <87h8p9f8tu.fsf@gnu.org> Date: Thu, 22 Mar 2018 05:37:12 +0100 In-Reply-To: <87h8p9f8tu.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Wed, 21 Mar 2018 21:54:37 +0100") Message-ID: <87lgekd8uf.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) writes: > I think it=E2=80=99s OK to use =E2=80=98bootstrap-coreutils&co=E2=80=99 n= evertheless, and to > simply check for networking in the test, as done in > tests/guix-package-net.sh and tests/guix-environment.sh. > > The downside is that those tests will indeed require networking (though > they remain cheap). The upside is that we don=E2=80=99t clutter the pack= age set > with =E2=80=9Cweird=E2=80=9D packages. :-) That sounds good to me! I agree it's best to avoid adding "weird" packages. I'll remove this patch from the series, then, and update patch #2 appropriately. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqzMvgACgkQ3UCaFdgi Rp3+ZBAAqClPfFYSgsVTw9+tVGogS8xvBqPm1n6b4R9xhDSE75BkU6HYXGs1iWsx WWNOwpW23D77qXBSx7MgMDDnn3AeZuXp8QUZrlQE5rY7VenENO3oTwRkpan4w8BK 6pFOfEbdUftGWAcBupYxeUEXbjUomBT+uNFmElo3Q7J3x3WbRe2J4jmHhcjQRkyh ryvasxdjrtQyBY9BFKgCWsoEq2Ql4CbpNBzoJB1wJIHTxptfdGkoroYOSrwo4rTB wIxauL2InWNlnyaa+3Dr/IRDjxY617o/+TtFSwhrO9TZEvo223eVZVWyNfiCmhZv 2YIvFazJP4UYo+ecshhDEo2tMpzxQ/g7r8izlS9/Qb8RnL/MvtkRkNbaan12Jx2C cALGUy/lvFp75bpWG+vZy4ER7D3C40gThG57YjVOdU+9yUJEl+kOH9a0lO2rBiDL B07WBlOLgvPcsYmQrGr6+JQ0fEXBryDrnNpa3lnB67DfvXBGYrghfniaZ8FzlsFd +n5gFbtz+zBznNumOk52odABOvghzR7j944sVjEOVmc2GZgz6s2dcyYMg5/jKCyt nFFWttmP9SWqyO6tRJ2AFaLk7ywvsJlA/laMw7OsoGkbZl6Xm/C1G1QRDM9MPw59 Aul1gmQ6gZSBdy4mnwzpRNlRQzp7R7u6/1ELywlNH9uzdkPGbI4= =drd0 -----END PGP SIGNATURE----- --=-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 2/7] tests: Add tests for "guix pack". Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Mar 2018 04:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.15216936925305 (code B ref 30572); Thu, 22 Mar 2018 04:42:02 +0000 Received: (at 30572) by debbugs.gnu.org; 22 Mar 2018 04:41:32 +0000 Received: from localhost ([127.0.0.1]:46546 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eys2Y-0001NP-4F for submit@debbugs.gnu.org; Thu, 22 Mar 2018 00:41:32 -0400 Received: from mail-pl0-f49.google.com ([209.85.160.49]:42940) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eys2O-0001N2-QQ for 30572@debbugs.gnu.org; Thu, 22 Mar 2018 00:41:24 -0400 Received: by mail-pl0-f49.google.com with SMTP id w15-v6so4591199plq.9 for <30572@debbugs.gnu.org>; Wed, 21 Mar 2018 21:41:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=qoI6FvAA9ZCCQNe54qkehg352JLsmHRxyK0JFe0flHs=; b=bFk+1gWMSSt7ghhOv6o+CfUkxwfZn8NCyz2tDDKOq4t253xhoXTUYDdGy3OmLBEIsb gkv8CnpZGvsfLxxxT5A+wHfwPxqIr/w/zCtXaiS+z1SiJNCmslGeKSuZ59ze+lNRqa+6 CVR6uN9TIjCc3TuVk+inqfhM4fmQ20KmLYDycAKn18oQUwtRiuvQXBPHYCUJDGWPOCWA EKEKVpRfv/OKifKasmtSjCUjZjqI4TOzn6Ui/P7nvE1zya2WkbsGQCPL7A6slINlQ8AU QuVe4hNztg5m+pE5XtSiRGyyI7EzMSI/qCyLV8ggBlihRSKD8JG7or0WimwUSIou3lbS VpbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=qoI6FvAA9ZCCQNe54qkehg352JLsmHRxyK0JFe0flHs=; b=pktbCWd97sQqwKZIlfIbQCxTjeQPCK2jqkeF4Drk2X6QcOXSDJsFSI2+lrLCikBkn7 nYBWVIoNkLQfOOtxsV9K9QcO7K2WE2khB6yCU8Wu9p8v6/L6r9IE/Uvx0Xsw4tE4Dcll qFX8JNDCcL4CmaG6BvZE4Rn8RGLos/nzEQN/12Gkw85tBe8m8+baW7tGwPJfNw4d5/of X0+VtS70FtQl7GGJ7EJSw0KwqB4nqhXykNyGa4w2blkud9q2HDWGSC2NmdUhfa9DoD5e 0SssURPOmU6eHnDwE7lW2/Ls6HFx6lxVTm7GdjdHNEu2IkWcHiuiRSba5Gq3ZJg4a/C6 h0+A== X-Gm-Message-State: AElRT7EXuCvzi3rrUEWcPVvkHVHTD3lLUFzrxneqja+AjPJNx7gBdOVp it1qSaYxMGwmSO0vrAsQJy7gGsoF X-Google-Smtp-Source: AG47ELs2Js2sCaPMOC15wM95tjWNYjHrdcbIt+Qp4gNbjWeMCO70sA6k2MG4JaXlHCwjuOIHWlgrgg== X-Received: by 2002:a17:902:43e4:: with SMTP id j91-v6mr5605638pld.118.1521693671059; Wed, 21 Mar 2018 21:41:11 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id k7sm9431179pgt.41.2018.03.21.21.41.09 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 Mar 2018 21:41:09 -0700 (PDT) From: Chris Marusich References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-3-cmmarusich@gmail.com> <20180316220732.19c2375a@scratchpost.org> <87a7v6pnmm.fsf@gnu.org> <87y3im5b7u.fsf@gmail.com> <87h8pa59yn.fsf@gmail.com> Date: Thu, 22 Mar 2018 05:41:08 +0100 In-Reply-To: <87h8pa59yn.fsf@gmail.com> (Chris Marusich's message of "Wed, 21 Mar 2018 05:28:00 +0100") Message-ID: <87in9od8nv.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Chris Marusich writes: > Chris Marusich writes: > >> Sure thing. I'll include this change when pushing to origin. > > For the record, here's a new version of the patch with the two suggested > improvements (put "warning:" in the warning message, and redirect > superfluous output to /dev/null). And here is another version that (1) uses the existing %bootstrap-coreutils&co package, and (2) skips the test when no network connection is available. Let me know if you think this is good, and I'll go ahead and push the entire patch series. Thank you for your feedback! =2D-=20 Chris --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-tests-Add-tests-for-guix-pack.patch Content-Transfer-Encoding: quoted-printable From=204385831672436b2339f7a5da9f45f429dc3178dc Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sun, 11 Mar 2018 01:13:01 +0100 Subject: [PATCH 1/6] tests: Add tests for "guix pack". * guix/scripts/pack.scm (bootstrap-xz): New variable. (%options) <--bootstrap>: New option. (show-help): Document the new --bootstrap option. (guix-pack): When --bootstrap is specified, use the bootstrap Guile, tar, and xz to build the pack, and do not use any profile hooks or locales. * doc/guix.texi (Invoking guix pull): Document the new --bootstrap option. * tests/guix-pack.sh: New file. * Makefile.am (SH_TESTS): Add guix-pack.sh. * gnu/packages/package-management.scm (guix) : Add util-linux. =2D-- Makefile.am | 1 + doc/guix.texi | 6 ++- gnu/packages/package-management.scm | 2 + guix/scripts/pack.scm | 64 +++++++++++++++++++++-------- tests/guix-pack.sh | 80 +++++++++++++++++++++++++++++++++= ++++ 5 files changed, 135 insertions(+), 18 deletions(-) create mode 100644 tests/guix-pack.sh diff --git a/Makefile.am b/Makefile.am index 6556799e6..637c934ed 100644 =2D-- a/Makefile.am +++ b/Makefile.am @@ -374,6 +374,7 @@ SH_TESTS =3D \ tests/guix-download.sh \ tests/guix-gc.sh \ tests/guix-hash.sh \ + tests/guix-pack.sh \ tests/guix-package.sh \ tests/guix-package-net.sh \ tests/guix-system.sh \ diff --git a/doc/guix.texi b/doc/guix.texi index d3a7908f9..792539a12 100644 =2D-- a/doc/guix.texi +++ b/doc/guix.texi @@ -23,7 +23,7 @@ Copyright @copyright{} 2015 Taylan Ulrich Bay=C4=B1rl=C4= =B1/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* =2DCopyright @copyright{} 2016, 2017 Chris Marusich@* +Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* @@ -2899,6 +2899,10 @@ added to it or removed from it after extraction of t= he pack. =20 One use case for this is the Guix self-contained binary tarball (@pxref{Binary Installation}). + +@item --bootstrap +Use the bootstrap binaries to build the pack. This option is only +useful to Guix developers. @end table =20 In addition, @command{guix pack} supports all the common build options diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-man= agement.scm index 709cdfd0f..a90ba7a21 100644 =2D-- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -257,6 +257,8 @@ ;; Many tests rely on the 'guile-bootstrap' package, which is why= we ;; have it here. ("boot-guile" ,(bootstrap-guile-origin (%current-system))) + ;; Some of the tests use "unshare" when it is available. + ("util-linux" ,util-linux) ,@(if (and (not (%current-target-system)) (string=3D? (%current-system) "x86_64-linux")) `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux")= )) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 59dd117ed..0ec1ef4d2 100644 =2D-- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -3,6 +3,7 @@ ;;; Copyright =C2=A9 2017 Efraim Flashner ;;; Copyright =C2=A9 2017 Ricardo Wurmus ;;; Copyright =C2=A9 2018 Konrad Hinsen +;;; Copyright =C2=A9 2018 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,7 +34,9 @@ #:use-module (guix derivations) #:use-module (guix scripts build) #:use-module (gnu packages) + #:use-module (gnu packages bootstrap) #:use-module (gnu packages compression) + #:use-module (gnu packages guile) #:autoload (gnu packages base) (tar) #:autoload (gnu packages package-management) (guix) #:autoload (gnu packages gnupg) (libgcrypt) @@ -67,6 +70,11 @@ #~(#+(file-append bzip2 "/bin/bzip2") "-9")) (compressor "none" "" #f))) =20 +;; This one is only for use in this module, so don't put it in %compressor= s. +(define bootstrap-xz + (compressor "bootstrap-xz" ".xz" + #~(#+(file-append %bootstrap-coreutils&co "/bin/xz") "-e -T0= "))) + (define (lookup-compressor name) "Return the compressor object called NAME. Error out if it could not be found." @@ -325,6 +333,9 @@ the image." (option '("localstatedir") #f #f (lambda (opt name arg result) (alist-cons 'localstatedir? #t result))) + (option '("bootstrap") #f #f + (lambda (opt name arg result) + (alist-cons 'bootstrap? #t result))) =20 (append %transformation-options %standard-build-options))) @@ -352,6 +363,8 @@ Create a bundle of PACKAGE.\n")) -m, --manifest=3DFILE create a pack with the manifest from FILE")) (display (G_ " --localstatedir include /var/guix in the resulting pack")) + (display (G_ " + --bootstrap use the bootstrap binaries to build the pack")) (newline) (display (G_ " -h, --help display this help and exit")) @@ -393,28 +406,43 @@ Create a bundle of PACKAGE.\n")) (else (packages->manifest packages))))) =20 (with-error-handling =2D (parameterize ((%graft? (assoc-ref opts 'graft?))) =2D (let* ((dry-run? (assoc-ref opts 'dry-run?)) =2D (manifest (manifest-from-args opts)) =2D (pack-format (assoc-ref opts 'format)) =2D (name (string-append (symbol->string pack-format) =2D "-pack")) =2D (target (assoc-ref opts 'target)) =2D (compressor (assoc-ref opts 'compressor)) =2D (symlinks (assoc-ref opts 'symlinks)) =2D (build-image (match (assq-ref %formats pack-format) =2D ((? procedure? proc) proc) =2D (#f =2D (leave (G_ "~a: unknown pack format") =2D format)))) =2D (localstatedir? (assoc-ref opts 'localstatedir?))) =2D (with-store store + (let* ((dry-run? (assoc-ref opts 'dry-run?)) + (manifest (manifest-from-args opts)) + (pack-format (assoc-ref opts 'format)) + (name (string-append (symbol->string pack-format) + "-pack")) + (target (assoc-ref opts 'target)) + (bootstrap? (assoc-ref opts 'bootstrap?)) + (compressor (if bootstrap? + bootstrap-xz + (assoc-ref opts 'compressor))) + (tar (if bootstrap? + %bootstrap-coreutils&co + tar)) + (symlinks (assoc-ref opts 'symlinks)) + (build-image (match (assq-ref %formats pack-format) + ((? procedure? proc) proc) + (#f + (leave (G_ "~a: unknown pack format") + format)))) + (localstatedir? (assoc-ref opts 'localstatedir?))) + (with-store store + (parameterize ((%graft? (assoc-ref opts 'graft?)) + (%guile-for-build (package-derivation + store + (if (assoc-ref opts 'bootstrap?) + %bootstrap-guile + (canonical-package guile-2.2= ))))) ;; Set the build options before we do anything else. (set-build-options-from-command-line store opts) =20 (run-with-store store (mlet* %store-monad ((profile (profile-derivation manifest + #:hooks (if bootstrap? + '() + %default-profile-ho= oks) + #:locales? (not bootstrap?) #:target target)) (drv (build-image name profile #:target @@ -424,7 +452,9 @@ Create a bundle of PACKAGE.\n")) #:symlinks symlinks #:localstatedir? =2D localstatedir?))) + localstatedir? + #:tar + tar))) (mbegin %store-monad (show-what-to-build* (list drv) #:use-substitutes? diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh new file mode 100644 index 000000000..681faf80a =2D-- /dev/null +++ b/tests/guix-pack.sh @@ -0,0 +1,80 @@ +# GNU Guix --- Functional package management for GNU +# Copyright =C2=A9 2018 Chris Marusich +# +# This file is part of GNU Guix. +# +# GNU Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# GNU Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Guix. If not, see . + +# +# Test the `guix pack' command-line utility. +# + +# A network connection is required to build %bootstrap-coreutils&co, +# which is required to run these tests with the --bootstrap option. +if ! guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/nu= ll; then + exit 77 +fi + +guix pack --version + +# Use --no-substitutes because we need to verify we can do this ourselves. +GUIX_BUILD_OPTIONS=3D"--no-substitutes" +export GUIX_BUILD_OPTIONS + +# Build a tarball with no compression. +guix pack --compression=3Dnone --bootstrap guile-bootstrap + +# Build a tarball (with compression). +guix pack --bootstrap guile-bootstrap + +# Build a tarball with a symlink. +the_pack=3D"`guix pack --bootstrap -S /opt/gnu/bin=3Dbin guile-bootstrap`" + +is_available () { + # Use the "type" shell builtin to see if the program is on PATH. + type "$1" > /dev/null +} + +if is_available chroot && is_available unshare; then + # Verify we can extract and use it. + test_directory=3D"`mktemp -d`" + trap 'rm -rf "$test_directory"' EXIT + cd "$test_directory" + tar -xf "$the_pack" + unshare -r chroot . /opt/gnu/bin/guile --version + cd - +else + echo "warning: skipping pack verification because chroot or unshare is= unavailable" >&2 +fi + +# For the tests that build Docker images below, we currently have to use +# --dry-run because if we don't, there are only two possible cases: +# +# Case 1: We do not use --bootstrap, and the build takes hours to fini= sh +# because it needs to build tar etc. +# +# Case 2: We use --bootstrap, and the build fails because the bootstrap +# Guile cannot dlopen shared libraries. Not to mention the fa= ct +# that we would still have to build many non-bootstrap inputs +# (e.g., guile-json) in order to create the Docker image. + +# Build a Docker image. +guix pack --dry-run --bootstrap -f docker guile-bootstrap + +# Build a Docker image with a symlink. +guix pack --dry-run --bootstrap -f docker -S /opt/gnu=3D/ guile-bootstrap + +# Build a tarball pack of cross-compiled software. Use coreutils because +# guile-bootstrap is not intended to be cross-compiled. +guix pack --dry-run --bootstrap --target=3Darm-unknown-linux-gnueabihf cor= eutils =2D-=20 2.15.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlqzM+QACgkQ3UCaFdgi Rp0vdg/9HYv5Zz3CCVjXfGVIAPsdvONgbBB2yF2fymX+TsysbqXHMlmFZ4STd8RH IAqGiAyJLZq4eRkBSFpjAlvwXLh4WJDqLjsEv8CHxZW5r6Ff/OGqBWERWvpPg0pf qesKZBAPnvqqN8ke1SwGyUQiQoD85nZcZ08UCC5C9DifC/nv8YlCf+qwojWSScPS Y3RIVxXAPysUFtxRsHLVc0TTL+cEgyaGDM+g/1sPPmt7L8QcQWjaKUFSiB+mdbgO kOhIsui0mMhqJcRgtKNd3zrreSYEzrdXEXCqvCD53/TGesV+neXs1BoPgHjBcuLu Iu1bXWOxozRI/xNobUh5zQm7GWyfEXbOZYcZQhil8pBn2l99ntXbcxhoUYtjWC7V l+CfLLloasxT0cN5pJqexz6DNQDryoPQHlPn/l1rnFtBombUdBv3ocyhvyodb938 P1hm2ZllOFyb4AwYC5qKiRn7tMVTTJczFei9iGw0tyRhrauAAwHknSTWrDyinQpf uoVWs8IvG0xZb7YWkJjWo7Q5r3Al7D7yazoX/M8HQGHKGX1NvkPUwby7PzSSLe0A xthwQ/0pVDI1/eb4+6sudB60LxgMsWU38mwggXzTWjki/9EUXZ1U0m4OJaJBXvxu EIZ2OsppBsUEH+IzWeEqe+VfeNF90sWQto1Ut1yppbbpoMl/6wg= =fZ3K -----END PGP SIGNATURE----- --==-=-=-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 2/7] tests: Add tests for "guix pack". Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 22 Mar 2018 09:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: Danny Milosavljevic , 30572@debbugs.gnu.org Received: via spool by 30572-submit@debbugs.gnu.org id=B30572.152171054132669 (code B ref 30572); Thu, 22 Mar 2018 09:23:01 +0000 Received: (at 30572) by debbugs.gnu.org; 22 Mar 2018 09:22:21 +0000 Received: from localhost ([127.0.0.1]:46760 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eywQP-0008Ur-3U for submit@debbugs.gnu.org; Thu, 22 Mar 2018 05:22:21 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:58682) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eywQN-0008Uh-3m for 30572@debbugs.gnu.org; Thu, 22 Mar 2018 05:22:19 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 28D9B12A92; Thu, 22 Mar 2018 10:22:18 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5N6tZMrnJoGy; Thu, 22 Mar 2018 10:22:16 +0100 (CET) Received: from ribbon (vpn-0-27.aquilenet.fr [IPv6:2a0c:e300:4:27::]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 8AFD712A8E; Thu, 22 Mar 2018 10:22:16 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-3-cmmarusich@gmail.com> <20180316220732.19c2375a@scratchpost.org> <87a7v6pnmm.fsf@gnu.org> <87y3im5b7u.fsf@gmail.com> <87h8pa59yn.fsf@gmail.com> <87in9od8nv.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 2 Germinal an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Thu, 22 Mar 2018 10:22:15 +0100 In-Reply-To: <87in9od8nv.fsf@gmail.com> (Chris Marusich's message of "Thu, 22 Mar 2018 05:41:08 +0100") Message-ID: <87a7v0lb20.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Hello Chris! Chris Marusich skribis: > From 4385831672436b2339f7a5da9f45f429dc3178dc Mon Sep 17 00:00:00 2001 > From: Chris Marusich > Date: Sun, 11 Mar 2018 01:13:01 +0100 > Subject: [PATCH 1/6] tests: Add tests for "guix pack". > > * guix/scripts/pack.scm (bootstrap-xz): New variable. > (%options) <--bootstrap>: New option. > (show-help): Document the new --bootstrap option. > (guix-pack): When --bootstrap is specified, use the bootstrap Guile, > tar, and xz to build the pack, and do not use any profile hooks or > locales. > * doc/guix.texi (Invoking guix pull): Document the new --bootstrap > option. > * tests/guix-pack.sh: New file. > * Makefile.am (SH_TESTS): Add guix-pack.sh. > * gnu/packages/package-management.scm (guix) : Add util-linux. Awesome! [...] > +if is_available chroot && is_available unshare; then > + # Verify we can extract and use it. > + test_directory=3D"`mktemp -d`" > + trap 'rm -rf "$test_directory"' EXIT > + cd "$test_directory" > + tar -xf "$the_pack" > + unshare -r chroot . /opt/gnu/bin/guile --version > + cd - > +else > + echo "warning: skipping pack verification because chroot or unshare = is unavailable" >&2 > +fi I just realized we could unconditionally extra the pack, do test -x "$test_directory/opt/gnu/bin/guile" and keep only the =E2=80=98unshare=E2=80=99 bit in the conditional. But I=E2=80=99m nitpicking, please push, with or without this change! :-) Thanks for your patience, Ludo=E2=80=99. From unknown Sun Jun 22 04:06:03 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Chris Marusich Subject: bug#30572: closed (Re: [bug#30572] [PATCH 2/7] tests: Add tests for "guix pack".) Message-ID: References: <87in9mw7mc.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> <20180222102933.4978-1-cmmarusich@gmail.com> X-Gnu-PR-Message: they-closed 30572 X-Gnu-PR-Package: guix-patches X-Gnu-PR-Keywords: patch Reply-To: 30572@debbugs.gnu.org Date: Sat, 24 Mar 2018 02:06:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1521857162-8577-1" This is a multi-part message in MIME format... ------------=_1521857162-8577-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #30572: [PATCH 0/7] Add "guix system docker-image" command which was filed against the guix-patches package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 30572@debbugs.gnu.org. --=20 30572: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D30572 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1521857162-8577-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 30572-done) by debbugs.gnu.org; 24 Mar 2018 02:05:43 +0000 Received: from localhost ([127.0.0.1]:50281 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ezYYx-0002Du-9i for submit@debbugs.gnu.org; Fri, 23 Mar 2018 22:05:43 -0400 Received: from mail-pl0-f51.google.com ([209.85.160.51]:38096) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ezYYv-0002Dg-Sd for 30572-done@debbugs.gnu.org; Fri, 23 Mar 2018 22:05:42 -0400 Received: by mail-pl0-f51.google.com with SMTP id m22-v6so8518082pls.5 for <30572-done@debbugs.gnu.org>; Fri, 23 Mar 2018 19:05:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=nbbgNQ65zZNTQMZQBCukk7xOOo5xRAZISH5xwT+oIkA=; b=pEHvkBg2eQMh+y+J08RV20ot2241OETzvhpz96lLsPIxKfIzgWnK3Jf6uTsqQ0mD8/ xZ8koqCJbS1PYcu5zGLNmmW6dyO/AD0FQvYCdS04R1GuG0ftGz/OsRFTCLqdmL/8T5g/ OrCDstpGQAkG3NLjUZCfAOjnQz/KI3uqfBskN8tUqj/EELBig3cC1xCdAEsAM3SDNla4 Xg+X646h3xjuqrahPrZZ5CWPudub42gCV2HhrU/1nbGnM8YS0yWJlDEvjIWBILf6p0oD Q9fdJTzwwihxIDOblEIZe04CVrSpDMI5xe1hNQ6QDUhiV6/ul4k9A4FBMkYJ63hPcSHd r87A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=nbbgNQ65zZNTQMZQBCukk7xOOo5xRAZISH5xwT+oIkA=; b=iQ9a8P57/AmOCdKOYdy3zNkq+7+sHh3naXOmJM703sXaNYpdjwQWdz0ye/OXFO4HGq lzlDeVy7J3M9mqXiao3hZk6pxP8iMwXZewm77yE0t5a+oHyQUf3gU4lFgVtdlOpaSzBY 5hGgixuzbhBmxD/ToUoeu8hJ+KLa7RE63SvdImR5rfWIUV23r36Kbqgv8OkatmMapfQt d58mS4+tOY+rR2FkHkubYIdz0S3j2B5Gh0OXFLJooluyARL88CwCEYFswx7/ki2Yk3bO /pILwtIVj2YqpqhWqJn1Xk4uanWsHfX9mCM1sp1dlLNaBLwdNLBC+di/NuzcYeYoTy2M C0Tg== X-Gm-Message-State: AElRT7FEWLQ6uMyvgd7Gr3VZ/FJjopgl4f3G1emBAI3H1OvmkfX4Lgi+ 1FkY0mBT99ZpES5VqbFtknHs39+x X-Google-Smtp-Source: AG47ELvrUGG4EKR91EgwNOHO6M7b/SAmxrdx+b4pQzV/y0/sjIOVKEKrdcT3rcMbvGAtfMvUYPkPCw== X-Received: by 2002:a17:902:143:: with SMTP id 61-v6mr32085586plb.345.1521857135476; Fri, 23 Mar 2018 19:05:35 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id a5sm18996990pfn.66.2018.03.23.19.05.33 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 23 Mar 2018 19:05:33 -0700 (PDT) From: Chris Marusich X-Google-Original-From: Chris Marusich To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=), Danny Milosavljevic Subject: Re: [bug#30572] [PATCH 2/7] tests: Add tests for "guix pack". References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-3-cmmarusich@gmail.com> <20180316220732.19c2375a@scratchpost.org> <87a7v6pnmm.fsf@gnu.org> <87y3im5b7u.fsf@gmail.com> <87h8pa59yn.fsf@gmail.com> <87in9od8nv.fsf@gmail.com> <87a7v0lb20.fsf@gnu.org> Date: Sat, 24 Mar 2018 03:05:31 +0100 In-Reply-To: <87a7v0lb20.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Thu, 22 Mar 2018 10:22:15 +0100") Message-ID: <87in9mw7mc.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 30572-done Cc: 30572-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Ludo and Danny, I've committed this patch set to master (8e88f6fa8236a1fe66912957ecacae348355ec15 is the last commit in the series)! I'll watch Hydra to make sure it doesn't cause any unexpected breakage. ludo@gnu.org (Ludovic Court=C3=A8s) writes: >> +if is_available chroot && is_available unshare; then >> + # Verify we can extract and use it. >> + test_directory=3D"`mktemp -d`" >> + trap 'rm -rf "$test_directory"' EXIT >> + cd "$test_directory" >> + tar -xf "$the_pack" >> + unshare -r chroot . /opt/gnu/bin/guile --version >> + cd - >> +else >> + echo "warning: skipping pack verification because chroot or unshare= is unavailable" >&2 >> +fi > > I just realized we could unconditionally extra the pack, do > > test -x "$test_directory/opt/gnu/bin/guile" > > and keep only the =E2=80=98unshare=E2=80=99 bit in the conditional. > > But I=E2=80=99m nitpicking, please push, with or without this change! :-) That's a good idea. I've included that improvement in my changes. > Thanks for your patience, Thank you and Danny for taking the time to review this patch series! Your feedback definitely helped make the code better. Now I just need to go write a blog post... :-) =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlq1smsACgkQ3UCaFdgi Rp2igRAAxQAJtNPeHmSspKOh39NfsHxbMrceYoWgLk5DuLFReLniJybtjGhNyxfo 9gHrUbWC7VFMXm3dqx0NLoXhNJ7hmehlNfMBi/rw4XjB/A4gXPEXrc9eOEUQxMU5 rGjaSIor6zpLMOb1rlfl9f7My96Z6Dxjxhk79/Cjq3c3cnPIHqnDnXzabPXJImkF QukWx3AyRiBGGu7Kc6YgIMQDd7+9emVWkNYihETpP896gPlgBaiapElnZAQjVQwF 42jJ/FxiW9QMXvqEoj8naFmT1M/bgeBDeuwde1TLqFQcjkdRw4t5sedyGqIKPlGN RYu4qrq1dILwrgTWB7Vpml4/aj/V4kPkLdl7c5pPgzv8/qYdljhspnmLSsb4kH4a 19TeftHq5vbqBmil3qayuwiryHrkNR56S/XrpWO/RdZKJK9MP5cj3/a3EcYONBOk 9y9rc7ShOsjnu8udVmBfnEtsXFVxBuZETEzK9s+dS7+XruVhK7I54dPAC94OO8UM jL/VEXsg5W2Vdhhz8OiI8XHAJoS4WJxWYBJqDSjf5FzELxBSSirK1MbWHD19bBJF lvcZNwFgL1ZPVCDHRg6DmXAwoymTxwFPobYEfjilZ9WXW4jSse2aP3gW6YHPCdcg gorK5qekshLkAp0dYgkOyn03KSpuphG7N533WnXpOn5Koqr7Dxo= =67YO -----END PGP SIGNATURE----- --=-=-=-- ------------=_1521857162-8577-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 22 Feb 2018 10:30:09 +0000 Received: from localhost ([127.0.0.1]:55294 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eoo8e-0006hE-MP for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:30:08 -0500 Received: from eggs.gnu.org ([208.118.235.92]:60976) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eoo8c-0006fS-2J for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:30:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eoo8V-0007kv-G7 for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:30:00 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:33084) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eoo8V-0007ki-C7 for submit@debbugs.gnu.org; Thu, 22 Feb 2018 05:29:59 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51938) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eoo8U-0008VD-2G for guix-patches@gnu.org; Thu, 22 Feb 2018 05:29:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eoo8Q-0007hA-St for guix-patches@gnu.org; Thu, 22 Feb 2018 05:29:58 -0500 Received: from mail-pg0-x229.google.com ([2607:f8b0:400e:c05::229]:46857) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eoo8Q-0007fu-M1 for guix-patches@gnu.org; Thu, 22 Feb 2018 05:29:54 -0500 Received: by mail-pg0-x229.google.com with SMTP id m1so1839481pgp.13 for ; Thu, 22 Feb 2018 02:29:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=sNjuUXPOBLxTKidL4LjYGpgHcm/gJvF3Tb6cMbGw7rw=; b=MMQWyHhSJTRvTeR/egvcliuKxQpd+oK8ip5q0w4Q5l61DNmY5i+3Lsr+Ao/CrsEkKG M7W4eXbl/SxcD+9537gdRnZ4AKEthuks+LZZJPrg0e2vteE67cNmN8H86Sxe2+brCsfZ FH5QVL3Vv0ifWDBj1KmcP7QHsqLAcKXwkaMl09SDvG6WkVd3gnoVkemGV6VwERRoNUlf peZoaUPQZFFGGk6mGZy559Xd/4kRNQ/p4iF9AUmtlLfEsoz99mgvw+iJa1hm0NPYGudB DeKgR7IlaMvrVDhMX3I0XDFReumn6nn3s9gGbW7wUTOxFDJ0bFO0Cl8YOLc99q9G4gIR yk8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=sNjuUXPOBLxTKidL4LjYGpgHcm/gJvF3Tb6cMbGw7rw=; b=GoRT3Hy30VbzeOMBXp3Xf8LBc7b+KTL0XX2/Q6y8ZN5ASbOnSqdHkuzcy/reB/eCYG bDnh0Mg6wDEAWra5tay8ojjm58DVkycmQ+8j1WX3SSz91ZurRRydUgy0dqswvGx4RqR+ 1Y5hQnyUhuu0UyeM7Z364VwEppMGHZUXTiV1YFluVTmwnhVS9TqGwhIiAXciqJ3cv1+U JCkdiqXpoooIoJTmXi5czeYsX8edpe8hKYm0IBdrwfl4hy9nIMFgC5I2huusmOXtmN8c hjeEwhlOSWkHpZZMiSf9K8Fe65hp5TUV0ICb4fcXALy0yY5fppClPX0l2798Wvcs29YT u5qA== X-Gm-Message-State: APf1xPDBi8n3D28mCl+79c4NGxe7rN7vMgL5gHoxWVyvzyN63/WKPYLR OuhnnT2+xw3MyPIgZ3wY7YJSyA== X-Google-Smtp-Source: AH8x226129IzhX79dE0kVfZr/qBoPZaTkAbrwnrN4HKHjBqa9k/uXN8KyqCeikcGo2lHnwhESgDM3A== X-Received: by 10.99.125.69 with SMTP id m5mr5196135pgn.77.1519295392877; Thu, 22 Feb 2018 02:29:52 -0800 (PST) Received: from garuda.local.net (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id f190sm48744302pfb.158.2018.02.22.02.29.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 02:29:51 -0800 (PST) From: Chris Marusich To: guix-patches@gnu.org Subject: [PATCH 0/7] Add "guix system docker-image" command Date: Thu, 22 Feb 2018 11:29:33 +0100 Message-Id: <20180222102933.4978-1-cmmarusich@gmail.com> X-Mailer: git-send-email 2.15.1 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit Cc: Chris Marusich X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) Hi, This patch series adds a new command: "guix system docker-image". I have the following questions for reviewers: * In raw-initrd and base-initrd (gnu/system/linux-initrd.scm), why is %guile-static-stripped the right Guile to use by default? * Instead of passing a Guile package to raw-initrd and base-initrd, would it be better to use a parameter (e.g., %guile-for-initrd), like we do for %guile-for-build? * In system-docker-image (gnu/system/vm.scm), why is it necessary to define a custom (guix config) module? I copied some of the logic from docker-image (guix/scripts/pack.scm), and it works, but I do not understand this part. * Similarly, in gnu/system/vm.scm, why do we autoload libgcrypt? I do not understand why we cannot simply #:use-module (gnu packages gnupg) like we do with all the other modules here. * Similarly, in gnu/system/vm.scm, why do we use (ungexp-native json)? In the code, this is #+json and it occurs close to the comment "Guile-JSON is required by (guix docker)." * Similarly, in gnu/system/vm.scm, there is a vestigial comment which says "This variable is unused but allows us to add INPUTS-TO-COPY as inputs" - this comment actually occurs in multiple places, not just the code I've added. I think it refers to a variable that no longer exists, and I think that my variable to-register serves the intended purpose now, which is: add os-drv's inputs to the inputs of the gexp I'm building, so that they will be available on the build side. So I'm thinking maybe we should just change this comment to say something more like that. WDYT? I have verified that this change builds and its tests pass. I am using it to run my very own Docker image today. I hope you find it useful, too! Chris Marusich (7): tests: Add tests for "guix pack". vm: Allow control of deduplication in root-partition-initializer. system: Allow customization of the initrd's Guile. docker: Allow the use of a custom temporary directory. docker: Allow the addition of extra files into the image. system: Add "guix system docker-image" command. tests: Add tests for "guix system disk-image" et al. Makefile.am | 1 + doc/guix.texi | 74 ++++++++++++++++------ gnu/build/vm.scm | 12 ++-- gnu/system/examples/docker-image.tmpl | 47 ++++++++++++++ gnu/system/linux-initrd.scm | 31 ++++++--- gnu/system/vm.scm | 116 ++++++++++++++++++++++++++++++++++ guix/docker.scm | 29 +++++++-- guix/scripts/system.scm | 10 ++- tests/guix-pack.sh | 43 +++++++++++++ tests/guix-system.sh | 13 ++++ 10 files changed, 333 insertions(+), 43 deletions(-) create mode 100644 gnu/system/examples/docker-image.tmpl create mode 100644 tests/guix-pack.sh -- 2.15.1 ------------=_1521857162-8577-1-- From unknown Sun Jun 22 04:06:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#30572] [PATCH 2/7] tests: Add tests for "guix pack". Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 24 Mar 2018 17:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30572 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Chris Marusich Cc: Danny Milosavljevic , 30572-done@debbugs.gnu.org Received: via spool by 30572-done@debbugs.gnu.org id=D30572.152191173016416 (code D ref 30572); Sat, 24 Mar 2018 17:16:01 +0000 Received: (at 30572-done) by debbugs.gnu.org; 24 Mar 2018 17:15:30 +0000 Received: from localhost ([127.0.0.1]:51689 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ezmlO-0004Gi-47 for submit@debbugs.gnu.org; Sat, 24 Mar 2018 13:15:30 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:54002) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ezmlM-0004Ga-Nx for 30572-done@debbugs.gnu.org; Sat, 24 Mar 2018 13:15:28 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 420BE130B9; Sat, 24 Mar 2018 18:15:28 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZEeBX04Ya-ak; Sat, 24 Mar 2018 18:15:27 +0100 (CET) Received: from ribbon (vpn-0-27.aquilenet.fr [IPv6:2a0c:e300:4:27::]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 62A2A119DA; Sat, 24 Mar 2018 18:15:27 +0100 (CET) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180222102933.4978-1-cmmarusich@gmail.com> <20180315040915.5556-1-cmmarusich@gmail.com> <20180315040915.5556-3-cmmarusich@gmail.com> <20180316220732.19c2375a@scratchpost.org> <87a7v6pnmm.fsf@gnu.org> <87y3im5b7u.fsf@gmail.com> <87h8pa59yn.fsf@gmail.com> <87in9od8nv.fsf@gmail.com> <87a7v0lb20.fsf@gnu.org> <87in9mw7mc.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 4 Germinal an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Sat, 24 Mar 2018 18:15:25 +0100 In-Reply-To: <87in9mw7mc.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> (Chris Marusich's message of "Sat, 24 Mar 2018 03:05:31 +0100") Message-ID: <87d0ztjsya.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Hey Chris, Chris Marusich skribis: > I've committed this patch set to master > (8e88f6fa8236a1fe66912957ecacae348355ec15 is the last commit in the > series)! I'll watch Hydra to make sure it doesn't cause any unexpected > breakage. Woohoo! > Now I just need to go write a blog post... :-) Definitely. Thank you! Ludo=E2=80=99.