--- Begin Message ---
Subject: |
[PATCH 0/3] installer: Run the installation inside a container. |
Date: |
Thu, 13 Aug 2020 14:23:23 +0200 |
Hello,
When the store overlay is mounted, other processes such as kmscon, udev
and guix-daemon may open files from the store, preventing the
underlying install support from being umounted. See:
https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html.
To avoid this situation, mount the store overlay inside a container,
and run the installation from within that container.
Thanks,
Mathieu
Mathieu Othacehe (3):
install: Factorize cow-store procedure.
linux-container: Add a jail? argument.
installer: Run the installation inside a container.
gnu/build/install.scm | 44 +++++++++++-
gnu/build/linux-container.scm | 20 +++---
gnu/installer/final.scm | 125 +++++++++++++++++-----------------
gnu/installer/newt/final.scm | 7 --
gnu/services/base.scm | 60 +++++++++-------
gnu/system/install.scm | 52 ++++----------
6 files changed, 166 insertions(+), 142 deletions(-)
--
2.28.0
--- End Message ---
--- Begin Message ---
Subject: |
Re: [bug#42849] [PATCH 3/3] installer: Run the installation inside a container. |
Date: |
Wed, 02 Sep 2020 17:15:30 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Hey Ludo,
> So perhaps we can settle on the solution you sent, but let’s see if we
> can move complexity out of sight. For example, if we can arrange to
> have a ‘fork+exec-command/container’ procedure that can be passed the
> PID of a namespace, such that the ‘start’ method of guix-daemon is just
> a few more lines its current definition, I’ll be happy.
>
> How does that sound?
Sounds fine! I added a "fork+exec-command/container" in (gnu build
shepherd) module, that uses "container-excursion" to enter the
namespaces of the process passed as argument.
I also took your other remarks into account and pushed this
serie. Thanks a lot for diving into this harsh stuff :).
Locally, the installer tests behave fine, but I'll monitor the CI to see
how it goes.
Now, the only installation test failure I'm aware of is
https://issues.guix.gnu.org/41948. The good news, is that I have a Guile
patch that seem to solve it[1].
Thanks,
Mathieu
[1]: https://lists.gnu.org/archive/html/bug-guile/2020-08/msg00023.html
--- End Message ---