The impetus for this is that XZ 5.2.2 requires pthreads. However, when
using the bootstrap GCC, using '-pthread' doesn't work because it tries
to refer to /nix/store/eeeeee-glibc-2.18. XZ eventually fails to build
with undefined references to pthread symbols.
* gnu/packages/texinfo.scm (texinfo)[inputs]: Remove XZ, which was
unneeded.
Reported by Jan Synáček <jan.synacek@gmail.com>
at <https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00522.html>.
* gnu/packages/patches/libarchive-bsdtar-test.patch: New file.
* gnu/packages/backup.scm (libarchive)[source]: Use it.
* gnu-system.am (dist_patch_DATA): Add it.
Reported by Efraim Flashner <efraim@flashner.co.il>
at <https://lists.gnu.org/archive/html/guix-devel/2015-12/msg00202.html>.
* guix/gnu-maintenance.scm (latest-ftp-release): Call KEEP-FILE? on
directories too.
(latest-gnome-release)[even-minor-version?]: Protect again MINOR being
false; change pattern to match VERSION with two or more numbers. Remove
use of 'version-major+minor'.
[even-numbered-tarball?]: Rename to...
[even-numbered?]: ... this. Use 'package-name->name+version'. When
VERSION is #f, check NAME.
This allows (guix config) to contain valid values of %GZIP et al. even
when configured with --disable-daemon.
* config-daemon.ac: Move 'AC_PATH_PROG' invocations for
gzip & co. to...
* configure.ac: ... here.
* emacs/guix-command.el (guix-command-improve-common-build-argument):
Use "R" key for '--rounds' option to avoid conflicts with "r" key in
'build' popup (--root) and 'package' popup (--remove).
Rather than using $<host-TMPDIR>/nix-build-<drvname>-<number>, the
temporary directory is now always /tmp/nix-build-<drvname>-0. This
improves bitwise-exact reproducibility for builds that store $TMPDIR
in their build output. (Of course, those should still be fixed...)
* nix/libstore/build.cc (DerivationGoal)[tmpDirInSandbox]: New field.
(DerivationGoal::startBuilder): Initialize 'useChroot' earlier. Compute
'tmpDirInSandbox', and use it when populating 'dirsInChroot'.
* doc/guix.texi (Build Environment Setup): Document it.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* guix/derivations.scm (substitution-oracle): Add #:mode parameter and
honor it.
(derivation-prerequisites-to-build): Likewise.
[derivation-built?]: Take it into account.
* guix/ui.scm (show-what-to-build): Add #:mode parameter. Pass it to
'substitute-oracle' and 'derivations-prerequisites-to-build'.
* tests/derivations.scm ("derivation-prerequisites-to-build in 'check'
mode"): New test.
This makes it easy to detect non-deterministic builds.
* nix/libstore/build.cc (DerivationGoal): Remove 'InodesSeen'; add
'curRound', 'nrRound', and 'prevInfos'.
(DerivationGoal::inputsRealised): Initialize 'nrRound'.
(NotDeterministic): New error type.
(DerivationGoal::buildDone): Check whether we need to repeat.
(DerivationGoal::startBuilder): Adjust message.
(DerivationGoal::registerOutputs): Check whether we get the same result.
* nix/libstore/globals.cc (Settings::get(const string & name, int def)):
New method.
* nix/libstore/globals.hh (Settings): Add it.
* nix/libstore/store-api.hh (ValidPathInfo): Add operator ==.
* nix/nix-daemon/nix-daemon.cc (performOp): Allow "build-repeat" for
"untrusted" users.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/linux.scm (numactl)[source]: Update to 2.0.10.
[arguments]: Adapt phases to use the autotools machinery.
[native-inputs]: Add autotools packages.
Suggested by Efraim Flashner <efraim@flashner.co.il>.
* guix/gnu-maintenance.scm (latest-ftp-release): Add #:keep-file?
parameter and honor it.
(latest-gnome-release)[%not-dot]: New variable.
[even-minor-version?, even-numbered-tarball?]: New procedures.
Pass EVEN-NUMBERED-TARBALL? as #:keep-file? argument.
* guix/gnu-maintenance.scm (latest-ftp-release): Add #:file->signature
parameter. Honor it.
(latest-gnome-release): Pass #:file->signature.
* guix/upstream.scm (coalesce-sources): Keep 'signature-urls' as #f
unless both sources provide it.
With this, (latest-release "gcc") returns an <upstream-source> with URL:
ftp://ftp.gnu.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.gz
Previous it would omit "gcc-5.3.0/" from the URL.
Fixes a regression introduced in 0a7c5a0.
* guix/gnu-maintenance.scm (latest-release)[file->url, file->source]:
Add 'directory' parameter. Update users.
The Node build system was previously building its own copies of
OpenSSL (yikes!), libuv, and zlib.
* gnu/packages/node.scm (node)[inputs]: Add openssl, libuv, and zlib.
[arguments]: Add configure flags for using system libraries. Use
'modify-phases' syntax.
* gnu/packages/tls.scm (openssl): Update to 1.0.2e.
[arguments]: Rename 'fix-man-dir' phase to 'patch-Makefile.org',
and patch SHELL in Makefile.org. Add 'fix-broken-symlinks' phase.
Return #t from 'patch-tests' phase.