<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix.git/gnu/build/linux-container.scm, branch master</title>
<subtitle>Personal branch of https://git.savannah.gnu.org/cgit/guix.git/ for implementing 'guix deploy'.
</subtitle>
<id>https://git.jakob.space/guix.git/atom?h=master</id>
<link rel='self' href='https://git.jakob.space/guix.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/'/>
<updated>2019-06-23T17:53:03Z</updated>
<entry>
<title>linux-container: Remove dependency on (guix utils).</title>
<updated>2019-06-23T17:53:03Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-06-23T17:43:39Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=40c369b23442ace588d8c85f62f1741c17ed65c0'/>
<id>urn:sha1:40c369b23442ace588d8c85f62f1741c17ed65c0</id>
<content type='text'>
Fixes a bug whereby derivations importing (gnu build linux-container),
such as the 'bitlbee' and 'tor' services, would depend on the
user's (guix config) file, which was pulled as a dependency of (guix
utils).  As a result, those derivations would vary from user to user.

* gnu/build/linux-container.scm (call-with-temporary-directory): New
procedure.
</content>
</entry>
<entry>
<title>linux-container: Make the guest UID and GID a parameter.</title>
<updated>2019-04-02T16:15:37Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-04-02T08:34:48Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=af76c020bf19de5fe2e92f31d8b85cbd55c481de'/>
<id>urn:sha1:af76c020bf19de5fe2e92f31d8b85cbd55c481de</id>
<content type='text'>
* gnu/build/linux-container.scm (initialize-user-namespace): Add
 #:guest-uid and #:guest-gid parameters and honor them.
(run-container): Likewise.
(call-with-container): Likewise.
* tests/containers.scm ("call-with-container, user namespace, guest UID/GID"):
New test.
</content>
</entry>
<entry>
<title>linux-container: Work around EBADF errors upon exit.</title>
<updated>2018-01-15T22:29:33Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-01-15T15:01:10Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=95aa64bc48cae061effafa7675ea9d9ccbe311a4'/>
<id>urn:sha1:95aa64bc48cae061effafa7675ea9d9ccbe311a4</id>
<content type='text'>
Typically 'read-pid-file/container' would fail when starting services in
containers such as BitlBee.

* gnu/build/linux-container.scm (call-with-clean-exit): Use
'primitive-_exit' instead of 'primitive-exit'.
(container-excursion*): Close OUT.
</content>
</entry>
<entry>
<title>file-systems: 'mount-file-system' now takes a &lt;file-system&gt; object.</title>
<updated>2017-10-11T09:12:33Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2017-10-03T21:25:38Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=1c65cca5743e9171bbd94307195f123d26c0535e'/>
<id>urn:sha1:1c65cca5743e9171bbd94307195f123d26c0535e</id>
<content type='text'>
* gnu/build/file-systems.scm (mount-file-system): Rename 'spec' to 'fs'
and assume it's a &lt;file-system&gt;.
* gnu/build/linux-boot.scm (boot-system): Assume MOUNTS is a list of
&lt;file-system&gt; and adjust accordingly.
* gnu/build/linux-container.scm (mount-file-systems): Remove
'file-system-&gt;spec' call.
* gnu/services/base.scm (file-system-shepherd-service): Add
'spec-&gt;file-system' call.  Add (gnu system file-systems) to 'modules'.
* gnu/system/linux-initrd.scm (raw-initrd): Use (gnu system
file-systems).  Add 'spec-&gt;file-system' call for #:mounts.
</content>
</entry>
<entry>
<title>linux-container: Add 'container-excursion*'.</title>
<updated>2017-02-06T23:08:10Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2017-02-06T22:45:00Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=c90db25f4cf1f98f3f4f3af38d175a14ffb8c32a'/>
<id>urn:sha1:c90db25f4cf1f98f3f4f3af38d175a14ffb8c32a</id>
<content type='text'>
* gnu/build/linux-container.scm (container-excursion*): New procedure.
* tests/containers.scm ("container-excursion*")
("container-excursion*, same namespaces"): New tests.
</content>
</entry>
<entry>
<title>linux-container: Add comment on exception handling.</title>
<updated>2017-02-06T09:51:25Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2017-02-04T17:14:12Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=36c4917c910f434524aae32725582d5bc51a44e0'/>
<id>urn:sha1:36c4917c910f434524aae32725582d5bc51a44e0</id>
<content type='text'>
* gnu/build/linux-container.scm (run-container): Add note about writing
the exceptions.
</content>
</entry>
<entry>
<title>linux-container: Do not rely on 'isatty?'.</title>
<updated>2017-02-06T09:51:25Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2017-02-04T17:10:14Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=168aba297866295d96779239e9662821ce9e66ae'/>
<id>urn:sha1:168aba297866295d96779239e9662821ce9e66ae</id>
<content type='text'>
This avoids problems where 'isatty?' return #t but 'ttyname' fails with
ENOTTY or such.

* gnu/build/linux-container.scm (mount-file-systems): Remove call of
'isatty?'.  Directly call 'ttyname' and catch 'system-error'.
</content>
</entry>
<entry>
<title>container: Pass a list of &lt;file-system&gt; objects as things to mount.</title>
<updated>2016-11-10T17:01:44Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2016-11-10T16:45:54Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=5970e8e248f6327c41c83b86bb2c89be7c3b1b4e'/>
<id>urn:sha1:5970e8e248f6327c41c83b86bb2c89be7c3b1b4e</id>
<content type='text'>
* gnu/build/linux-container.scm (mount-file-systems): 'mounts' is now a
list of &lt;file-system&gt; objects instead of a list of lists ("specs").
Add call to 'file-system-&gt;spec' as the argument to 'mount-file-system'.
(run-container, call-with-container): Adjust docstring accordingly.
* gnu/system/file-systems.scm (spec-&gt;file-system): New procedure.
* gnu/system/linux-container.scm (container-script)[script]: Call
'spec-&gt;file-system' inside gexp.
* guix/scripts/environment.scm (launch-environment/container): Remove
call to 'file-system-&gt;spec'.
* tests/containers.scm ("call-with-container, mnt namespace")
("call-with-container, mnt namespace, wrong bind mount"): Pass a list of
&lt;file-system&gt; objects.
</content>
</entry>
<entry>
<title>container: Allow 'container-excursion' to the same namespaces.</title>
<updated>2016-10-19T13:54:10Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2016-10-18T21:22:03Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=7fee5b53973fb4fe049aa0bc5db58093727bdf30'/>
<id>urn:sha1:7fee5b53973fb4fe049aa0bc5db58093727bdf30</id>
<content type='text'>
Before that, 'container-excursion' would call 'setns' even when the
target namespace is the one the caller is already in, which would fail.

* gnu/build/linux-container.scm (container-excursion): Introduce
'source' and 'target'.  Compare the result of 'readlink' on these
instead of comparing file descriptors to decide whether to call
'setns'.
* tests/containers.scm ("container-excursion, same namespace"): New test.
</content>
</entry>
<entry>
<title>container: Gracefully report mount errors in the child process.</title>
<updated>2016-05-30T22:11:04Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2016-05-30T20:44:58Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=c06f6db7a424fd47e3cd2625dbfda2367316f3bd'/>
<id>urn:sha1:c06f6db7a424fd47e3cd2625dbfda2367316f3bd</id>
<content type='text'>
Fixes &lt;http://bugs.gnu.org/23306&gt;.

* gnu/build/linux-container.scm (run-container): Use 'socketpair'
instead of 'pipe'.  Rename 'in' to 'child' and 'out' to 'parent'.  Send
a 'ready message or an exception argument list from the child to the
parent; adjust the parent accordingly.
* tests/containers.scm ("call-with-container, mnt namespace, wrong bind
mount"): New test.
* tests/guix-environment-container.sh: Add test with
--expose=/does-not-exist.
</content>
</entry>
</feed>
