<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix.git/nix/nix-daemon, branch merge-deploy</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=merge-deploy</id>
<link rel='self' href='https://git.jakob.space/guix.git/atom?h=merge-deploy'/>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/'/>
<updated>2019-02-04T15:20:01Z</updated>
<entry>
<title>daemon: Add "/guix" to default 'nixLibexecDir'.</title>
<updated>2019-02-04T15:20:01Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-02-04T15:14:09Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=959eaa1eb834fd47ceab3c5bbbe4967e808d530b'/>
<id>urn:sha1:959eaa1eb834fd47ceab3c5bbbe4967e808d530b</id>
<content type='text'>
This makes it easier to run the uninstalled daemon.

* nix/local.mk (libstore_a_CPPFLAGS): Append "/guix" to
NIX_LIBEXEC_DIR.
* build-aux/pre-inst-env.in (NIX_LIBEXEC_DIR): Adjust comment.
* nix/libstore/builtins.cc (builtinDownload): Remove SUBDIR and its
use.
* nix/libstore/local-store.cc (runAuthenticationProgram): Ditto.
* nix/libstore/gc.cc (addAdditionalRoots): Remove "/guix" prefix.
* nix/nix-daemon/guix-daemon.cc (main): Ditto.
</content>
</entry>
<entry>
<title>daemon: Remove the 'NIX_SUBSTITUTERS' environment variable.</title>
<updated>2019-02-04T15:20:01Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-02-04T13:17:46Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=4d4a38f620520acc787ff5db2be3736923e14235'/>
<id>urn:sha1:4d4a38f620520acc787ff5db2be3736923e14235</id>
<content type='text'>
* nix/libstore/globals.cc (Settings:update): Remove changes to
'substituters'.
* nix/nix-daemon/guix-daemon.cc (main): Set 'settings.substituters'
directly instead of changing the 'NIX_SUBSTITUTERS' environment variable.
* build-aux/pre-inst-env.in: Remove reference to 'NIX_SUBSTITUTERS'.
</content>
</entry>
<entry>
<title>daemon: Use unbranded phrases in comments and messages.</title>
<updated>2018-12-16T15:28:07Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-12-15T22:50:24Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=8327e733966cc4a93dfaadd1a761ca1088078baa'/>
<id>urn:sha1:8327e733966cc4a93dfaadd1a761ca1088078baa</id>
<content type='text'>
* nix/libstore/build.cc, nix/libstore/globals.cc,
nix/libstore/gc.cc, nix/libstore/local-store.cc,
nix/libstore/optimise-store.cc, nix/libstore/store-api.cc,
nix/libutil/archive.cc, nix/nix-daemon/nix-daemon.cc: Replace "Nix
store" by "store", and "Nix daemon" by "build daemon".
</content>
</entry>
<entry>
<title>daemon: Ignore '--keep-failed' for TCP/IP clients.</title>
<updated>2018-11-24T18:52:16Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-11-24T14:59:26Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=bb640d6133dea0ede7e80db9ca64a9b2e451317a'/>
<id>urn:sha1:bb640d6133dea0ede7e80db9ca64a9b2e451317a</id>
<content type='text'>
* nix/nix-daemon/nix-daemon.cc (performOp) &lt;wopSetOptions&gt;: When
'isRemoteConnection' is true, set 'settings.keepFailed' to zero.
* doc/guix.texi (Common Build Options): Document this behavior.
</content>
</entry>
<entry>
<title>daemon: Install 'authenticate' script under LIBEXECDIR/guix.</title>
<updated>2018-11-14T20:34:08Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-11-14T17:11:58Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=0fe1fba4af41f267c4bb2c006fb37f42422ab703'/>
<id>urn:sha1:0fe1fba4af41f267c4bb2c006fb37f42422ab703</id>
<content type='text'>
That way it is handled in the same way as other helper scripts.

* nix/scripts/guix-authenticate.in: Rename to...
* nix/scripts/authenticate.in: ... this.
* config-daemon.ac: Adjust accordingly.
* nix/local.mk (libstore_a_CPPFLAGS): Remove -DOPENSSL_PATH.
(nodist_libexec_SCRIPTS): Remove.
(nodist_pkglibexec_SCRIPTS): New variable.
* nix/nix-daemon/guix-daemon.cc (main): Remove 'setenv' call for
"PATH".
* nix/libstore/local-store.cc (runAuthenticationProgram): New function.
(LocalStore::exportPath, LocalStore::importPath): Use it instead of
'runProgram' and OPENSSL_PATH.
</content>
</entry>
<entry>
<title>daemon: Support multiplexed build output.</title>
<updated>2018-10-15T20:40:35Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-10-15T20:40:35Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=6ef61cc4c30e94acbd7437f19c893f63a7112267'/>
<id>urn:sha1:6ef61cc4c30e94acbd7437f19c893f63a7112267</id>
<content type='text'>
This allows clients to tell whether output comes from the daemon or, if
it comes from a builder, from which builder it comes.  The latter is
particularly useful when MAX-BUILD-JOBS &gt; 1.

* nix/libstore/build.cc (DerivationGoal::tryBuildHook)
(DerivationGoal::startBuilder): Print the child's PID in "@ build-started"
traces.
(DerivationGoal::handleChildOutput): Define 'prefix', pass it to
'writeToStderr'.
* nix/libstore/globals.cc (Settings:Settings): Initialize
'multiplexedBuildOutput'.
(Settings::update): Likewise.
* nix/libstore/globals.hh (Settings)[multiplexedBuildOutput]: New field.
Update 'printBuildTrace' documentation.
* nix/libstore/worker-protocol.hh (PROTOCOL_VERSION): Bump to 0.163.
* nix/nix-daemon/nix-daemon.cc (performOp) &lt;wopSetOptions&gt;: Special-case
"multiplexed-build-output" and remove "use-ssh-substituter".
* guix/store.scm (set-build-options): Add #:multiplexed-build-output?
and honor it.
(%protocol-version): Bump to #x163.
* tests/store.scm ("multiplexed-build-output"): New test.

fixlet
</content>
</entry>
<entry>
<title>guix-daemon: Disable garbage collection for remote connections.</title>
<updated>2018-04-19T17:06:26Z</updated>
<author>
<name>Roel Janssen</name>
<email>roel@gnu.org</email>
</author>
<published>2018-04-19T15:11:30Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=5cefb13ddd4d51a63a387e74c138035b7b8b8537'/>
<id>urn:sha1:5cefb13ddd4d51a63a387e74c138035b7b8b8537</id>
<content type='text'>
* nix/nix-daemon/nix-daemon.cc (isRemoteConnection): New variable.
  (performOp): For wopCollectGarbage, throw an error when isRemoteConnection
  is set.
  (acceptConnection): Set isRemoteConnection when connection is not AF_UNIX.
* tests/guix-daemon.sh: Add a test for the new behavior.
</content>
</entry>
<entry>
<title>daemon: Make libbz2 an optional dependency.</title>
<updated>2018-01-07T22:47:22Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-01-05T16:48:23Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=f997137d0e2eba27bb1e2b282ee19ea474c41e12'/>
<id>urn:sha1:f997137d0e2eba27bb1e2b282ee19ea474c41e12</id>
<content type='text'>
* config-daemon.ac: Don't bail out when libbz2 is missing.  Define
'HAVE_LIBBZ2' Automake conditional.
* nix/libstore/build.cc: Wrap relevant bits in '#if HAVE_BZLIB_H'.
* nix/libstore/globals.cc (Settings::Settings): 'logCompression'
defaults to COMPRESSION_GZIP when HAVE_BZLIB_H is false.
* nix/libstore/globals.hh (CompressionType): Make 'COMPRESSION_BZIP2'
conditional on HAVE_BZLIB_H.
* nix/local.mk (guix_register_LDADD, guix_daemon_LDADD): Add -lbz2 only
when HAVE_LIBBZ2.
* nix/nix-daemon/guix-daemon.cc (parse_opt): Ignore "bzip2" when not
HAVE_BZLIB_H.
</content>
</entry>
<entry>
<title>daemon: Add gzip log compression.</title>
<updated>2018-01-07T22:47:22Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-01-05T16:15:41Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=29a686688674dc875775305312513405fa396a06'/>
<id>urn:sha1:29a686688674dc875775305312513405fa396a06</id>
<content type='text'>
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_LOG_COMPRESSION): New macro.
(options): Mark "disable-log-compression" as hidden and add
"log-compression".
(parse_opt): Handle GUIX_OPT_LOG_COMPRESSION.
* nix/libstore/build.cc (DerivationGoal): Add 'gzLogFile'.
(openLogFile): Initialize it when 'logCompression' is COMPRESSION_GZIP.
(closeLogFile, handleChildOutput): Honor 'gzLogFile'.
* nix/libstore/globals.hh (Settings)[compressLog]: Remove.
[logCompression]: New field.
(CompressionType): New enum.
* nix/libstore/globals.cc (Settings::Settings): Initialize it.
(update): Remove '_get' call for 'compressLog'.
* nix/local.mk (guix_daemon_LDADD, guix_register_LDADD): Add -lz.
* guix/store.scm (log-file): Handle '.gz' log files.
* tests/guix-daemon.sh: Add test with '--log-compression=gzip'.
* doc/guix.texi (Invoking guix-daemon): Adjust accordingly.
* config-daemon.ac: Check for libz and zlib.h.
</content>
</entry>
<entry>
<title>daemon: Flush the sink upon 'exportPath' errors.</title>
<updated>2017-07-17T13:13:41Z</updated>
<author>
<name>Jan Nieuwenhuizen</name>
<email>janneke@gnu.org</email>
</author>
<published>2017-07-17T13:00:01Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=2e009ae7cdaee4ce871b3a79d50118762ee29fb6'/>
<id>urn:sha1:2e009ae7cdaee4ce871b3a79d50118762ee29fb6</id>
<content type='text'>
Prior to this change, errors such as wrong permissions on
/etc/guix/signing-key.sec would give:

  guix-daemon: nix/libutil/serialise.cc:15: virtual nix::BufferedSink::~BufferedSink(): Assertion `!bufPos' failed.

This patch correctly propagates the error to the client and thus changes
that to:

  error: build failed: file `/etc/guix/signing-key.sec' should be secret (inaccessible to everybody else)!

* nix/nix-daemon/nix-daemon.cc (performOp): Wrap 'exportPath' call in
'try' block.

Co-authored-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
</entry>
</feed>
