summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2019-10-16daemon: Make 'profiles/per-user' non-world-writable....Fixes <https://bugs.gnu.org/37744>. Reported at <https://www.openwall.com/lists/oss-security/2019/10/09/4>. Based on Nix commit 5a303093dcae1e5ce9212616ef18f2ca51020b0d by Eelco Dolstra <edolstra@gmail.com>. * nix/libstore/local-store.cc (LocalStore::LocalStore): Set 'perUserDir' to #o755 instead of #o1777. (LocalStore::createUser): New function. * nix/libstore/local-store.hh (LocalStore): Add it. * nix/libstore/store-api.hh (StoreAPI): Add it. * nix/nix-daemon/nix-daemon.cc (performOp): In 'wopSetOptions', add condition to handle "user-name" property and honor it. (processConnection): Add 'userId' parameter. Call 'store->createUser' when userId is not -1. * guix/profiles.scm (ensure-profile-directory): Note that this is now handled by the daemon. * guix/store.scm (current-user-name): New procedure. (set-build-options): Add #:user-name parameter and pass it to the daemon. * tests/guix-daemon.sh: Test the creation of 'profiles/per-user' when listening on a TCP socket. * tests/store.scm ("profiles/per-user exists and is not writable") ("profiles/per-user/$USER exists"): New tests. Ludovic Courtès
2019-10-15inferior: Set the error port when using older Guix versions....This makes the behaviour more consistent. * guix/inferior.scm (inferior-pipe): Wrap the second open-pipe* call with with-error-to-port, to match the first call to open-pipe*. Christopher Baines
2019-10-15inferior: Allow controlling the inferior error port....Previously, stderr for the inferior process would always be sent to /dev/null because the current-output-port when the process is launched is a void port. This change means that it's possible to pass in a different port to use. * guix/inferior.scm (inferior-pipe): Take the error-port as an argument. (open-inferior): Add new error-port keyword argument, with a default of (%make-void-port "w"). Christopher Baines
2019-10-15ssh: Add a longer SSH timeout by default....* guix/ssh.scm (open-ssh-session): Add #:timeout parameter, and add call to 'session-set!' to honor it. Ludovic Courtès
2019-10-15offload: Set a longer SSH session timeout....Fixes <https://bugs.gnu.org/37762>. * guix/scripts/offload.scm (open-ssh-session): Add 'max-silent-time' parameter. Add call to 'session-set!' before returning SESSION. (transfer-and-offload): Pass MAX-SILENT-TIME to 'open-ssh-session'. (%short-timeout): New variable. (choose-build-machine): Pass %SHORT-TIMEOUT to 'open-ssh-session'. (check-machine-availability): Likewise. (check-machine-status): Likewise. Ludovic Courtès
2019-10-14gexp: Use cross extensions when cross-compiling....* guix/gexp.scm (load-path-expression): Use ungexp-splicing instead of ungexp-native-splicing so that the cross extensions are used when target is set. Mathieu Othacehe
2019-10-14build-system/gnu: 'package-with-explicit-inputs' uses 'package-mapping'....* guix/build-system/gnu.scm (package-with-explicit-inputs): Rename to... (package-with-explicit-inputs/deprecated): ... this. (package-with-explicit-inputs*): New procedure. (package-with-explicit-inputs): Define as a 'case-lambda*'. Ludovic Courtès
2019-10-11gnu: Add nsis-x86_64 and nsis-i686....* guix/build-system/scons.scm (scons-build): Add build-targets and install-targets parameters. * guix/build/scons-build-system.scm (build, install): Adjust accordingly. * doc/guix.texi (Build Systems): Document it. * gnu/packages/installers.scm: New file, (make-nsis): New procedure, (nsis-x86_64, nsis-i686): New variables. * gnu/packages/patches/nsis-env-passthru.patch: New file. * gnu/local.mk (dist_patch_DATA, GNU_SYSTEM_MODULES): Adjust accordingly. Carl Dong
2019-10-06Merge branch 'master' into core-updatesRicardo Wurmus
2019-10-05syscalls: Add 'add-to-entropy-count'....* guix/build/syscalls.scm (RNDADDTOENTCNT): New variable. (add-to-entropy-count): New procedure. * tests/syscalls.scm ("add-to-entropy-count"): New test. Ludovic Courtès
2019-10-03gexp: 'load-path-expression' produces an expression that deletes duplicates....Fixes <https://bugs.gnu.org/37531>. "herd eval root '(length %load-path)'" on a freshly-booted bare-bones system now returns 8 instead of 119 before. * guix/gexp.scm (load-path-expression): Rewrite expression to that it deletes duplicates. Ludovic Courtès
2019-10-03environment: '--container' honors '--preserve'....* guix/scripts/environment.scm (launch-environment/container): Add #:white-list parameter and honor it. (guix-environment): Pass #:white-list to 'launch-environment/container'. * tests/guix-environment-container.sh: Add test. Ludovic Courtès
2019-10-02channels: Add quirk to build recent 'master' with Guile 2.2.4....Fixes <https://bugs.gnu.org/37506>. Reported by Marius Bakke <mbakke@fastmail.com>. * guix/channels.scm (syscalls-reexports-local-variables?) (guile-2.2.4, guile-for-source): New procedures. (%quirks): New variable. (build-from-source): Add calls to 'guile-for-source' and 'set-guile-for-build'. Ludovic Courtès
2019-10-01import: crate: Add '--recursive'....* guix/scripts/import/crate.scm (show-help, guix-import-crate): Add '--recursive'. * doc/guix.texi (Invoking guix import): Mention '--recursive'. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Martin Becze
2019-10-01import: crate: Support recursive imports....* guix/import/crate.scm (crate-recursive-import): New procedure. (crate->guix-package): Return dependencies as a second value. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Martin Becze
2019-10-01pull: Do not use '~*', which 'msgfmt' fails to interpret....Really fixes <https://bugs.gnu.org/37505>. This is a followup to f751b4646d3989d76dad9e33e39f9724c7c50be6. * guix/scripts/pull.scm (display-channel-news): Remove second occurrence of '~*' in a format string. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Konrad Hinsen
2019-10-01inferior: Change to use the (guix repl) module....Rather than (guix scripts repl), from which the machine-repl procedure was removed in [1]. 1: 92a4087bf4862d5ba9b77111eba3c68c2a1c4679 * guix/inferior.scm (inferior-pipe): Load (guix repl) rather than (guix scripts repl). Christopher Baines
2019-10-01Merge branch 'master' into core-updatesLudovic Courtès
2019-10-01pull: Do not use '~*', which 'msgfmt' fails to interpret....Fixes <https://bugs.gnu.org/37505>. Reported by Konrad Hinsen <konrad.hinsen@fastmail.net>. * guix/scripts/pull.scm (display-channel-news): Use ~a instead of ~* when reporting new channels. Ludovic Courtès
2019-10-01ui: 'show-what-to-build' colorizes store file names....* guix/ui.scm (colorize-store-file-name): New procedure. (show-what-to-build)[colorize-store-item]: New variable. Use it throughout. Ludovic Courtès
2019-09-29syscalls: 'define-as-needed' does not re-export local variables....Fixes <https://bugs.gnu.org/36723>. Reported by Timothy Sample <samplet@ngyro.com>. * guix/build/syscalls.scm (define-as-needed): Rewrite to use lower-level module primitives; define VARIABLE only if it's not already defined to avoid "re-exporting local variable" error. Ludovic Courtès
2019-09-28offload: Include the port number in the machine lock file name....This is useful when a single machine appears several time, with different port numbers. * guix/scripts/offload.scm (machine-slot-file): Add MACHINE's port to the file name. Ludovic Courtès
2019-09-27compile: Fix race condition on completion progress....This prevent a race condition where multiple compilation threads could report the same progress. * guix/build/compile.scm (compile-files)<completed>: Rename to... <progress>: ...this. Increment in same mutex region as the compilation is reported. Eric Bavier
2019-09-27Merge branch 'master' into core-updatesMarius Bakke
2019-09-26self: Mark trivial "-modules" derivations as non-substitutable....The resulting nar takes ~500KiB and it's quicker to build it locally than to download it. * guix/self.scm (node-source+compiled): Pass #:options to 'computed-file'. Ludovic Courtès
2019-09-26guix download: Ensure destination file-name is valid in the store....Avoid invalid store-file-name by explicitly passing the destination name, replacing any character not allowed in the store-file-name by an underscore. Fixes <http://issues.guix.gnu.org/issue/26175> * guix/scripts/download.scm (safe-naensure-valid-store-file-nameme): New function. (download-to-store*): Use it to generate a "safe" basename of URL. Hartmut Goebel
2019-09-26guix package: Add '--list-profiles'....* guix/scripts/package.scm (show-help, %options): Add '--list-profiles'. (process-query): Honor it. * tests/guix-package.sh: Add test. Ludovic Courtès
2019-09-25pull: Dim the commit ID when displaying news....* guix/scripts/pull.scm (display-news-entry): Dim the commit line. Ludovic Courtès
2019-09-25colors: Add 'dim'....* guix/colors.scm (coloring-procedure): New procedure. (%highlight-color): Remove. (highlight): Define in terms of 'coloring-procedure'. (dim): New procedure. Ludovic Courtès
2019-09-24Merge branch 'master' into core-updatesLudovic Courtès
2019-09-23pull: Use ~/.cache/guix/checkouts instead of ~/.cache/guix/pull....Previously 'channel-news-for-commit' would use the former while 'guix pull' would use the latter. Consequently, the first 'guix pull -N' would clone the repository anew. * guix/scripts/pull.scm (guix-pull): Remove 'cache', and leave %REPOSITORY-CACHE-DIRECTORY to its default value. Ludovic Courtès
2019-09-23gexp: Remove unused procedure....* guix/gexp.scm (syntax-location-string): Remove. Ludovic Courtès
2019-09-23gexp: Catch and report non-self-quoting gexp inputs....Previously we would, for example, generate build scripts in the store; when trying to run them, we'd get a 'read' error due to the presence of #<foo> syntax in there. * guix/gexp.scm (gexp->sexp)[self-quoting?]: New procedure. [reference->sexp]: Check whether the argument in a <gexp-input> box is self-quoting. Raise a '&gexp-input-error' condition if it's not. * tests/gexp.scm ("lower-gexp, non-self-quoting input"): New test. Ludovic Courtès
2019-09-23repl, marionette: 'self-quoting?' matches keywords....* guix/repl.scm (self-quoting?): Add 'keyword?' and 'array?'; remove 'vector?' and 'bytevector?'. * gnu/tests.scm (marionette-shepherd-service) <start>: Likewise. <modules>: Remove (rnrs bytevector). Ludovic Courtès
2019-09-23show, search: Add '--load-path'....* guix/scripts/search.scm (show-help, %options): Add -L/--load-path. * guix/scripts/show.scm (show-help, %options): Add -L/--load-path. Ludovic Courtès
2019-09-23build: ruby-build-system: Fix typo....* guix/build/ruby-build-system: Fix spelling of "invocation". Vagrant Cascadian
2019-09-23import: stackage: Fix typo....* guix/import/stackage: Fix spelling of "version". Vagrant Cascadian
2019-09-23inferior: Fix typo....* guix/inferior: Fix spelling of "specifications". Vagrant Cascadian
2019-09-23lint: Fix typo....* guix/lint: Fix spelling of "mentioning". Vagrant Cascadian
2019-09-23scripts: container: Fix typo....* guix/scripts/container/exec (show-help): Fix spelling of COMMAND. Vagrant Cascadian
2019-09-23deploy: Add '--verbosity' and properly interpret build log....This is a followup to 91300526b7d9d775bd98a700ed3758420ef9eac6. * guix/scripts/deploy.scm (show-help, %options): Add '--verbosity'. (guix-deploy): Wrap 'with-store' in 'with-status-verbosity'. Ludovic Courtès
2019-09-23pull: Display news titles directly upon 'pull'....* guix/scripts/pull.scm (display-profile-news): Return true when there's more to display. (display-news-entry-title): New procedure. (display-news-entry): Use it. (display-channel-specific-news): Return true when there's more to display. (display-channel-news-headlines): New procedure. (build-and-install): Call it. When 'display-channel-news-headlines' or 'display-profile-news' returns #t, print a hint to run "pull --news". (display-new/upgraded-packages): Return true when there's more to display. Ludovic Courtès
2019-09-23pull: '-l' displays channel news....* guix/scripts/pull.scm (display-channel-news): Make 'previous' a parameter. (process-query)[list-generations]: Call 'display-channel-news'. Ludovic Courtès
2019-09-23pull: Display channel news....* guix/scripts/pull.scm (display-news-entry) (display-channel-specific-news): New procedures. (display-channel-news): Call it. (display-new/upgraded-packages): Adjust hint message. * doc/guix.texi (Invoking guix pull): Mention it. Ludovic Courtès
2019-09-23ui: Add 'current-message-language'....* guix/ui.scm (%default-message-language): New variable. (current-message-language): New procedure. Ludovic Courtès
2019-09-23channels: Allow news entries to refer to a tag....Suggested by Ricardo Wurmus <rekado@elephly.net>. * guix/channels.scm (<channel-news-entry>)[tag]: New field. (sexp->channel-news-entry): Accept either 'commit' or 'tag' in 'entry' forms. (resolve-channel-news-entry-tag): New procedure. (channel-news-for-commit): Move 'with-repository' form one level higher. Call 'resolve-channel-news-entry-tag' on all the news entries. * guix/tests/git.scm (populate-git-repository): Add clause for 'tag'. * tests/channels.scm ("channel-news, one entry"): Create a tag and add an entry with a tag. Check that the tag is resolved and also visible in the <channel-news-entry> record. * doc/guix.texi (Channels): Mention tags in news entries. Ludovic Courtès
2019-09-23channels: Add support for a news file....* guix/channels.scm (<channel-metadata>)[news-file]: New field. (read-channel-metadata): Set the 'news-file' field. (read-channel-metadata-from-source): Likewise. (<channel-news>, <channel-news-entry>): New record types. (sexp->channel-news-entry, read-channel-news) (channel-news-for-commit): New procedures. * guix/tests/git.scm (populate-git-repository): For 'add', allow CONTENTS to be a procedure. * tests/channels.scm ("channel-news, no news") ("channel-news, one entry"): New tests. * doc/guix.texi (Channels): Document it. Ludovic Courtès
2019-09-23git: Add 'commit-difference'....* guix/git.scm (commit-closure, commit-difference): New procedures. * guix/tests/git.scm, tests/git.scm: New files. * Makefile.am (dist_noinst_DATA): Add guix/tests/git.scm. (SCM_TESTS): Add tests/git.scm. Ludovic Courtès
2019-09-23git: 'update-cached-checkout' avoids network access when unnecessary....* guix/git.scm (reference-available?): New procedure. (update-cached-checkout): Avoid call to 'remote-fetch' when REPOSITORY already contains REF. Ludovic Courtès
2019-09-23pull: '--news' shows the list of channels added or removed....* guix/scripts/pull.scm (display-channel, channel=?) (display-channel-news, display-news): New procedures. (process-query): Call 'display-news' instead of 'display-profile-news'. Ludovic Courtès