This allows for more accurate status tracking and parsing of extended
build traces.
* guix/status.scm (multiplexed-output-supported?): New procedure.
(print-build-event): Don't print \r when PRINT-LOG? is true.
Adjust 'build-log' handling for when 'multiplexed-output-supported?'
returns true.
(bytevector-index, split-lines): New procedures.
(build-event-output-port)[%build-output-pid, %build-output]
[%build-output-left]: New variables.
[process-line]: Handle "@ build-output" traces.
[process-build-output]: New procedure.
[write!]: Add case for when %BUILD-OUTPUT-PID is true. Use
'bytevector-index' rather than 'string-index'.
(compute-status): Add #:derivation-path->output-path. Use it.
* tests/status.scm ("compute-status, multiplexed build output"):
New test.
("build-output-port, UTF-8")
("current-build-output-port, UTF-8 + garbage"): Adjust to new
'build-log' output.
* guix/scripts/build.scm (set-build-options-from-command-line):
Pass #:multiplexed-build-output?.
(%default-options): Add 'multiplexed-build-output?'.
* guix/scripts/environment.scm (%default-options): Likewise.
* guix/scripts/pack.scm (%default-options): Likewise.
* guix/scripts/package.scm (%default-options): Likewise.
* guix/scripts/pull.scm (%default-options): Likewise.
* guix/scripts/system.scm (%default-options): Likewise.
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 > 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) <wopSetOptions>: 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
This is a follow-up to 0627f93db6.
* gnu/packages/patches/libsantitizer-ustat-fix.patch: Rename to
gnu/packages/patches/libsanitizer-ustat-fix.patch.
* gnu/packages/llvm.scm (clang-runtime@3.7, clang-runtime@3.8,
clang-runtime@3.9)[patches]: Fix patch name.
* gnu/packages/llvm.scm (clang-runtime@3.7, clang-runtime@3.8,
clang-runtime@3.9)[patches]: Add patch to work around removed ustat.h.
* gnu/packages/patches/clang-3.5-libsanitizer-ustat-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/video.scm (x265)[source]: Update list of patches.
[arguments]: Change configure flag to ensure PIC for all architectures.
* gnu/packages/patches/x265-arm-asm-primitives.patch: Remove file.
* gnu/packages/patches/x265-detect512-all-arches.patch: New file.
* gnu/local.mk (dist_patch_DATA): Update patch registry.
* gnu/packages/fabric-management.scm (opensm): Update to 3.3.21.
[source]: Update tarball URI.
[native-inputs]: Add autoconf, automake, and libtool.
[arguments]: Rename 'doc' phase to 'install-doc'.
Omit AUTHORS and ChangeLog files. They are more than a decade old.
Fixes a regression introduced in
795d430d90 whereby 'guix describe' would
no longer display the generation number of ~/.config/guix/current.
* guix/scripts/describe.scm (guix-describe): Call 'canonicalize-profile'.
This is a followup to 8155a20907.
* guix/scripts/pull.scm (migrate-generations): Compute the right target
for /var/guix/profiles/per-user/USER/current-guix. Previously we'd
return "current-N-link" instead of "current-guix-N-link'.
Reported by Formbi on #guix.
* guix/scripts/pull.scm (migrate-generations): Use 'symlink' and
'delete-file' instead of 'rename-file'. The latter could lead to EXDEV
when $HOME and /var were different partitions.
Reported by Mark H Weaver <mhw@netris.org>.
Fixes <https://bugs.gnu.org/33023>.
* configure.ac: Remove use of 'GUIX_ASSERT_LIBGCRYPT_USABLE'.
Add "^GUIX_" to the forbidden M4 patterns.
Previously the migration code would fail to create that file, so
~/.config/guix/current would be dangling.
* guix/scripts/pull.scm (migrate-generations): Create
/var/guix/profiles/per-user/USER/current-guix.
* gnu/packages/bootloaders.scm (u-boot): Update to 2018.09.
(u-boot-tools)[arguments]: Substitute "coverage" for "python-coverage". Update
workaround for only 99% test coverage.
Signed-off-by: Leo Famulari <leo@famulari.name>
Fixes <https://bugs.gnu.org/32183>.
Reported by Pjotr Prins <pjotr.public12@thebird.nl>
and Konrad Hinsen <konrad.hinsen@fastmail.net>.
* gnu/packages/package-management.scm (guix-daemon)[arguments]: Execute
/var/guix/profiles/per-user/root/current-guix/bin/guix instead of ~root/….
This is more consistent with what 'guix package' does, more pleasant for
users (we no longer clobber ~/.config/guix), and more
cluster-friendly (since /var/guix/profiles is usually an NFS share
already.)
* guix/scripts/pull.scm (%current-profile, %user-profile-directory): New
variables.
(migrate-generations, ensure-default-profile): New procedures.
(guix-pull): Use %CURRENT-PROFILE by default. Call
'ensure-default-profile'.
* doc/guix.texi (Invoking guix pull): Adjust 'guix package -p
~/.config/guix/current' example.
* guix/scripts.scm (warn-about-old-distro): Check %PROFILE-DIRECTORY
"/current-guix".