Before that, something like:
(call-with-container
(lambda ()
(match (primitive-fork)
…)))
would hang in 'primitive-fork' as the child process (the one started in
the container) would try to pthread_join the finalization thread in
'stop_finalization_thread' in libguile, not knowing that this thread is
nonexistent.
* guix/build/syscalls.scm (%set-automatic-finalization-enabled?!): New
procedure.
(without-automatic-finalization): New macro.
(clone): Wrap PROC call in 'without-automatic-finalization'.
In 2.2, 'fport_close' no longer swallows EBADF and instead raises a
'system-error' for this. This commit adjusts for 2.2.
* guix/zlib.scm (close-procedure): Remove.
(make-gzip-input-port): Use 'port->fdes' instead of 'fileno'.
Use 'gzclose' instead of 'close-procedure'.
(make-gzip-output-port): Likewise.
* tests/zlib.scm ("compression/decompression pipe"): Don't check whether
PARENT is closed using 'port-closed?'. Instead, use 'seek' on the
underlying FD and check for EBADF.
See 'NEWS' and 'ChangeLog' in the source distribution for more
information about the security-related bug fixes.
* gnu/packages/w3m.scm (w3m): Update to 0.5.3+git20170102.
This change embedded store references in the shebangs of scripts that
were meant to be copied out of the store. Those scripts would break when
the interpreters expected by the shebangs were garbage collected.
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25966#28>
This reverts commit d0c16adb19.
* guix/scripts/pack.scm (self-contained-tarball): Add #:tar option.
[build](tar-supports-sort?): New variable. Use it.
* tests/pack.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
* guix/scripts/pack.scm (<compressor>)[tar-option]: Remove.
[command]: New field.
(%compressors): Provide complete commands. Use '-9' or equivalent for
each compressor; use '-n' for gzip.
(self-contained-tarball)[build]: Adjust accordingly.
* guix/scripts/pack.scm (self-contained-tarball): Add #:localstatedir?
parameter and honor it.
(%options, show-help): Add '--localstatedir'.
(guix-pack): Honor it.
* gnu/build/install.scm (populate-single-profile-directory): Add
#:register? parameter and honor it.
* doc/guix.texi (Binary Installation): Use '--localstatedir' in
example.
(Invoking guix pack): Document it.
Version 2.1 was apparently time-sensitive and started failing like this:
======================================================================
FAIL: testFloat (tests.TestDelta.test)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/guix-build-python2-parsedatetime-2.1.drv-0/parsedatetime-2.1/tests/TestDelta.py", line 64, in testFloat
self.cal.parse('1.4 months ago', self.source), months=-1.4)
File "/tmp/guix-build-python2-parsedatetime-2.1.drv-0/parsedatetime-2.1/tests/TestDelta.py", line 37, in assertDelta
self.assertTrue(diff < 0.05, '%s is not less than 0.05' % diff)
AssertionError: 0.0666666666667 is not less than 0.05
----------------------------------------------------------------------
* gnu/packages/python.scm (python-parsedatetime): Update to 2.3.
[native-inputs]: Add PYTHON-PYTEST and PYTHON-PYTEST-RUNNER.
[propagated-inputs]: New field.
* build-aux/compile-all.scm (%default-optimizations)
(%lightweight-optimizations): New variables.
(optimization-options): New procedure.
(compile-file*): Use it.