Age | Commit message (Collapse) | Author |
|
* nix/guix-register/guix-register.cc (GUIX_OPT_DEDUPLICATE): New macro.
(options): Add --no-deduplication.
(deduplication): New variable.
(parse_opt): Handle GUIX_OPT_DEDUPLICATE.
(register_validity): Add 'optimize' parameter and honor it.
(main): Move 'store' instanatiation after 'settings.nixStore'
assignment.
* tests/guix-register.sh: Add test for deduplication.
* guix/nar.scm (finalize-store-file): Update comment above
'register-path' call.
|
|
* nix/guix-register/guix-register.cc (GUIX_OPT_STATE_DIRECTORY): New
macro.
(parse_opt): Honor it.
* tests/guix-register.sh: Add test with '--state-directory'.
* guix/store.scm (register-path): Add #:state-directory parameter.
|
|
* nix/guix-register/guix-register.cc (main): Add calls to
'gcry_check_version' and 'gcry_control', to appease libgcrypt.
|
|
* nix/scripts/list-runtime-roots.in (lsof-roots): Fix typo in 'catch'
tag. Add 'parent' variable. Wrap 'open-pipe*' call in 'catch'.
Reported by Andreas Enge <andreas@enge.fr>.
|
|
* nix/nix-daemon/guix-daemon.cc (main): Check whether getenv ("PATH")
returns NULL before blindly initializing 'search_path'. Before that
'guix-daemon' would abort when run in an environment where 'PATH' is
undefined.
|
|
* nix/nix-daemon/guix-daemon.cc (main): When --no-substitutes is used,
clear NIX_SUBSTITUTERS. Before that, and after
89faa5c75cb3a419c6d02c51f56955275b7ae351, '--no-substitutes' would
lead to attempts to use 'download-using-manifests.pl', which in
practice would gracelessly fail.
|
|
* nix/nix-daemon/guix-daemon.cc (parse_opt): Use 'settings.set' instead
of direct field access for 'buildCores', 'maxBuildJobs', and
'useSubstitutes'.
(main): Call 'settings.update' after 'argp_parse'.
|
|
Reported by Andreas Enge <andreas@enge.fr>:
<https://lists.gnu.org/archive/html/guix-devel/2014-03/msg00211.html>.
* nix/nix-daemon/guix-daemon.cc (main): Set the 'NIX_SUBSTITUTERS'
env. var. Leave 'settings.substituters' unchanged.
|
|
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_GC_KEEP_OUTPUTS,
GUIX_OPT_GC_KEEP_DERIVATIONS): New macros.
(options): Add 'gc-keep-outputs' and 'gc-keep-derivations'.
(string_to_bool): New function.
(parse_opt): Honor GUIX_OPT_GC_KEEP_DERIVATIONS and
GUIX_OPT_GC_KEEP_OUTPUTS.
* doc/guix.texi (Invoking guix-daemon): Document --gc-keep-outputs and
--gc-keep-derivations.
|
|
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_NO_BUILD_HOOK): New macro.
(options): Add '--no-build-hook'.
(parse_opt): Handle it.
(main)[HAVE_DAEMON_OFFLOAD_HOOK]: Set 'useBuildHook' by default.
Set $NIX_BUILD_HOOK to our offload hook unless otherwise specified.
[!HAVE_DAEMON_OFFLOAD_HOOK]: Clear 'useBuildHook'.
* pre-inst-env.in: Set and export NIX_BUILD_HOOK.
* nix/scripts/offload.in, guix/scripts/offload.scm: New files.
* guix/ui.scm (show-guix-help)[internal?]: Add "offload".
* config-daemon.ac: Call 'GUIX_CHECK_UNBUFFERED_CBIP'.
Instantiate 'nix/scripts/offload'. Set 'BUILD_DAEMON_OFFLOAD'
conditional, and optionally define 'HAVE_DEAMON_OFFLOAD_HOOK' cpp
macro.
* daemon.am (nodist_pkglibexec_SCRIPTS)[BUILD_DAEMON_OFFLOAD]: Add it.
* Makefile.am (MODULES)[BUILD_DAEMON_OFFLOAD]: Add
'guix/scripts/offload.scm'.
(EXTRA_DIST)[!BUILD_DAEMON_OFFLOAD]: Likewise.
* m4/guix.m4 (GUIX_CHECK_UNBUFFERED_CBIP): New macro.
* doc/guix.texi (Setting Up the Daemon): Move most of the body to...
(Build Environment Setup): ... this. New subsection.
(Daemon Offload Setup): New subsection.
|
|
* nix/guix-register/guix-register.cc (register_validity): Leave
'info.path' unmodified when PREFIX is empty.
(main): Call 'settings.processEnvironment' early on.
Leave 'settings.nixStore' unmodified when PREFIX is empty.
|
|
* guix/scripts/authenticate.scm, nix/scripts/guix-authenticate.in,
tests/signing-key.pub, tests/signing-key.sec: New files.
* po/POTFILES.in: Add 'guix/scripts/authenticate.scm'.
* guix/store.scm (dump-port): New procedure.
(process-stderr): Add 'user-port' optional parameter. Handle
the %STDERR-WRITE and %STDERR-READ cases as expected.
(import-paths, export-path, export-paths): New procedures.
* tests/store.scm ("export/import several paths", "import corrupt
path"): New tests.
* Makefile.am (MODULES): Add 'guix/scripts/authenticate.scm'.
(EXTRA_DIST): Add 'tests/signing-key.{pub,sec}'.
* daemon.am (libstore_a_CPPFLAGS)[-DNIX_CONF_DIR]: Change 'NIX_CONF_DIR'
to .../guix. Change 'OPENSSL_PATH' to 'guix-authenticate'.
* config-daemon.ac: Instantiate 'nix/scripts/guix-authenticate'.
* nix/nix-daemon/guix-daemon.cc (main): Augment $PATH to include
'settings.nixLibexecDir'.
* test-env.in: Export 'NIX_CONF_DIR' and 'NIX_LIBEXEC_DIR'. Populate
$NIX_CONF_DIR.
|
|
Reported by Andreas Enge <andreas@enge.fr>.
* nix/sync-with-upstream: Expand use of {cc,hh}, to placate dash.
|
|
Before that, calls to 'HashSink::currentHash()' would eventually lead to
a segfault because the underlying gcrypt handle has been closed. (Note
that this method is only used via 'importPaths' and 'exportPath', though.)
* nix/libutil/gcrypt-hash.hh (struct guix_hash_context): Add a
constructor and a copy constructor; move out of 'extern "C"'.
* nix/libutil/gcrypt-hash.cc (guix_hash_final): Clear 'md_handle' upon
exit.
* nix/sync-with-upstream (top_srcdir): Change hash.{cc,hh} to read
'struct Ctx' instead of 'union Ctx'.
|
|
* nix/nix-daemon/guix-daemon.cc (main): Add 'gcry_control' call.
|
|
Inspired by <https://github.com/NixOS/nix/compare/772b70952f75...4ddd077bfa9a>.
* nix/scripts/list-runtime-roots.in (%store-directory): New variable.
(proc-environ-roots): New procedure.
(<top-level>): Use it.
|
|
* nix/nix-daemon/guix-daemon.cc (main): Add 'umask' call.
* test-env.in: Remove use of 'umask'.
|
|
This fixes a bug whereby 'guix-register' would bail out when trying to
create NIX_STORE_DIR/.links when NIX_STORE_DIR is read-only.
* nix/guix-register/guix-register.cc (parse_opt): Initialize
'settings.nixStore' to PREFIX + NIX_STORE_DIR.
(main): Change 'settings.nixStore' once the 'LocalStore' has been
instantiated.
|
|
* nix/guix-register/guix-register.cc (prefix): New variable.
(parse_opt): Use it.
(register_validity): Change 'info.path' to the final store name.
Hash the final under its real path.
* tests/guix-register.sh: Adjust the contents of $closure accordingly.
Rename 'NIX_LOCALSTATE_DIR' to 'NIX_STATE_DIR'. Don't try to call
'valid-path?'. Add test using 'sqlite3'.
|
|
* nix/guix-register/guix-register.cc, tests/guix-register.sh: New
files.
* Makefile.am (SH_TESTS)[BUILD_DAEMON]: Add tests/guix-register.sh.
* daemon.am (sbin_PROGRAMS, guix_register_SOURCES,
guix_register_CPPFLAGS, guix_register_LDADD): New variables.
* test-env.in: Export 'storedir', 'prefix', 'datarootdir', 'datadir',
and 'localstatedir'.
|
|
Fixes compilation with the forthcoming libgcrypt 1.6.x.
Reported by Matthias Wachs <wachs@net.in.tum.de>
and NIIBE Yutaka <gniibe@fsij.org>.
* nix/libutil/gcrypt-hash.cc (guix_hash_init, guix_hash_final): Use
'int' as the type of the 'algo' parameter.
* nix/libutil/gcrypt-hash.hh: Update declarations accordingly.
|
|
* nix/nix-daemon/guix-daemon.cc (parse_opt): Cast return value to
`error_t' for the sake of GNU/Hurd.
Reported by Matthew Lien <bluet@bluet.org> at
<http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00002.html>.
|
|
* nix/sync-with-upstream: Remove schema.sql.hh.
|
|
Suggested by Mark H. Weaver.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_NO_SUBSTITUTES): New macro.
(options): Add `--no-substitutes'.
(parse_opt): Add `GUIX_OPT_NO_SUBSTITUTES' case.
(main): Leave `settings.substituters' empty when
`settings.useSubstitutes' is false.
|
|
* nix/nix-daemon/guix-daemon.cc (main): Really enable the substituter by
default. Reported by Mark H. Weaver.
|
|
* guix/scripts/substitute-binary.scm: New file.
* Makefile.am (MODULES): Add it.
* nix/scripts/substitute-binary.in: New file.
* config-daemon.ac: Produce nix/scripts/substitute-binary.
* daemon.am (nodist_pkglibexec_SCRIPTS): Add
nix/scripts/substitute-binary.
* guix/store.scm (substitutable-path-info): Use the
`query-substitutable-path-infos' RPC.
* nix/nix-daemon/guix-daemon.cc (main): Honor `NIX_SUBSTITUTERS'.
* pre-inst-env.in: Set `NIX_SUBSTITUTERS'.
* test-env.in: Leave `NIX_SUBSTITUTERS' unchanged. Set
`GUIX_BINARY_SUBSTITUTE_URL, and create
$NIX_STATE_DIR/substituter-data.
Run `guix-daemon' within `./pre-inst-env'.
* tests/store.scm ("substitute query"): New test.
|
|
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_LISTEN): New macro.
(options): Add `--listen'.
(parse_opt): Handle it.
* doc/guix.texi (Invoking guix-daemon): Mention it.
|
|
Conflicts:
guix/build/union.scm
|
|
* nix/nix-daemon/guix-daemon.cc (main): Fix warning message when running
as root without `--build-users-group'.
|
|
* nix/nix-daemon/guix-daemon.cc (options): Change `--build-cores' to
`--cores', and `-C' to `-c'.
(parse_opt): Adjust accordingly.
|
|
* distro/packages/openssl.scm, m4/guix.m4, nix/sync-with-upstream:
Update headers.
|
|
Change all license headers, except guix/build/* and ld-wrapper.scm, with
this code:
(use-modules (guix build utils)
(srfi srfi-1))
(fluid-set! %default-port-encoding "UTF-8")
(substitute* (remove (lambda (f)
(or (string-contains f ".tar.")
(string-contains f ".git/")
(string-contains f ".so")
(string-suffix? ".o" f)
(string-suffix? ".a" f)
(string-suffix? ".go" f)
(string-suffix? ".pdf" f)
(string-suffix? ".png" f)
(string-suffix? ".info" f)
(equal? (basename f) "guix-daemon")
(equal? (basename f) "nix-setuid-helper")
(string-contains f "nix-upstream/")
(string-contains f "distro/packages/bootstrap/")))
(find-files "." "\\.[a-z]+$"))
(("^([[:graph:]]+) This file is part of Guix." _ comment-start)
(string-append comment-start " This file is part of GNU Guix."))
(("^([[:graph:]]+) Guix --- Nix package management.*" _ comment-start)
(string-append comment-start
" GNU Guix --- Functional package management for GNU\n"))
(("^([[:graph:]]+) Guix is " _ comment-start)
(string-append comment-start " GNU Guix is "))
(("^([[:graph:]]+) along with Guix." _ comment-start)
(string-append comment-start " along with GNU Guix."))
(("^([[:graph:]]+) Copyright \\(C\\)" _ comment-start)
(string-append comment-start " Copyright ©")))
Change headers using C-style comments manually.
|
|
* nix/nix-daemon/guix-daemon.cc (main)[HAVE_CHROOT]: Display the
contents of `settings.dirsInChroot' at `lvlDebug'.
|
|
* nix/nix-daemon/guix-daemon.cc (main): Call `gcry_check_version'.
|
|
* nix/nix-daemon/guix-daemon.cc (main): Run Nix code in an exception
handler; gracefully print error messages, and exit with EXIT_FAILURE.
|
|
* nix/nix-daemon/guix-daemon.cc (main): Recommend using
`--build-users-group' when running as root without a build users
group.
|
|
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_CHROOT_DIR): New macro.
(options): Add `--chroot-directory'.
(parse_opt): Handle it.
|
|
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_DEBUG): New macro.
(options): Add `--debug'.
(parse_opt): Set `verbosity' upon GUIX_OPT_DEBUG.
|
|
* nix/nix-daemon/guix-daemon.cc (main): Set `settings.useSubstitutes' to
false, and `settings.substituters' to the empty list.
|
|
* nix/sync-with-upstream: Avoid brace expansion, for the sake of Dash.
|
|
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_BUILD_USERS_GROUP,
GUIX_OPT_CACHE_FAILURES, GUIX_OPT_LOSE_LOGS,
GUIX_OPT_DISABLE_STORE_OPTIMIZATION, GUIX_OPT_IMPERSONATE_LINUX_26):
New macros.
(options)["build-users-group", "cache-failures", "lose-logs",
"disable-store-optimization", "impersonate-linux-2.6"]: New options.
(parse_opt): Handle them.
|
|
* nix/scripts/list-runtime-roots.in: New file.
* config-daemon.ac: Add `AC_CONFIG_FILES' invocation for it.
* daemon.am (nodist_pkglibexec_SCRIPTS): New variable.
(AM_TESTS_ENVIRONMENT): Define `top_builddir'.
* tests/guix-daemon.sh: Export `NIX_ROOT_FINDER'.
* nix/sync-with-upstream: Substitute the path to the root finder in
libstore/gc.cc.
|
|
* nix/nix-daemon/guix-daemon.cc (options)[!HAVE_CHROOT]: Mention that
`--disable-chroot' has no effect.
(main)[!HAVE_CHROOT]: Set `useChroot' to false.
|
|
* nix/libutil/md5.h (MD5_Final): Pass RESBUF as the first argument to
`guix_hash_final'.
* nix/libutil/sha1.h (SHA1_Final): Likewise.
* nix/libutil/sha256.h (SHA256_Final): Likewise.
|
|
* bootstrap, nix/sync-with-upstream: New files.
* Makefile.am (EXTRA_DIST): Add `bootstrap'.
* daemon.am (EXTRA_DIST): Add `nix/sync-with-upstream'.
|
|
* configure.ac: Call `AC_USE_SYSTEM_EXTENSIONS', and
`GUIX_SYSTEM_TYPE'. Add `--with-store-dir' option, and substitute
`storedir'. Include `config-daemon.ac'.
* config-daemon.ac: New file.
* Makefile.am [BUILD_DAEMON]: Include `daemon.am'.
* daemon.am: New file.
* m4/guix.m4 (GUIX_SYSTEM_TYPE): New macro.
* nix/libutil/gcrypt-hash.cc, nix/libutil/gcrypt-hash.hh,
nix/libutil/md5.h, nix/libutil/sha1.h, nix/libutil/sha256.h,
nix/nix-daemon/guix-daemon.cc, nix/nix-daemon/shared.hh: New files.
|