summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2016-05-14download: Support content-addressed mirrors.Ludovic Courtès
* guix/download.scm (%content-addressed-mirrors) (%content-addressed-mirror-file): New variables. * guix/download.scm (url-fetch)[builder]: Define 'value-from-environment. Pass #:hashes and #:content-addressed-mirrors to 'url-fetch'. Define "guix download hashes" environment variable. * guix/build/download.scm (url-fetch): Add #:content-addressed-mirrors and #:hashes. [content-addressed-urls]: New variable. Use it.
2016-05-14guix build: Catch 'getaddrinfo-error' for '--log-file'.Ludovic Courtès
* guix/scripts/build.scm (log-url)[valid-url?]: Catch 'getaddrinfo-error'.
2016-05-14guix build: Do not show what to build when '-d' is used.Ludovic Courtès
* guix/scripts/build.scm (guix-build): Don't call 'show-what-to-build' when OPTS contains 'derivations-only?'.
2016-05-11Merge branch 'master' into gnome-updatesMark H Weaver
2016-05-09guix: utils: Re-export 'memoize'.Alex Kost
Suggested by Ludovic Courtès <ludo@gnu.org>. * guix/utils.scm: Re-export 'memoize' to avoid a potential breakage of emacs interface. See <http://lists.gnu.org/archive/html/guix-devel/2016-05/msg00146.html> for details.
2016-05-08Merge branch 'master' into gnome-updates宋文武
2016-05-06syscalls: Use 'define-c-struct' for 'fcntl-flock'.Ludovic Courtès
* guix/build/syscalls.scm (%struct-flock): Use 'define-c-struct'. (fcntl-flock): Use 'write-flock!' and 'make-bytevector' instead of 'make-c-struct'.
2016-05-06utils: Move 'fcntl-flock' to (guix build syscalls).Ludovic Courtès
* guix/utils.scm (%struct-flock, F_SETLKW, F_SETLK, F_xxLCK) (fcntl-flock): Move to... * guix/build/syscalls.scm: ... here. New variables. * guix/nar.scm: Adjust imports accordingly. * tests/utils.scm ("fcntl-flock wait", "fcntl-flock non-blocking"): Move to... * tests/syscalls.scm: ... here. New tests. (temp-file): New variable.
2016-05-04utils: Move combinators to (guix combinators).Ludovic Courtès
* guix/utils.scm (compile-time-value, memoize, fold2) (fold-tree, fold-tree-leaves): Move to... * guix/combinators: ... here. New file. * tests/utils.scm ("fold2, 1 list", "fold2, 2 lists") (fold-tree tests): Move to... * tests/combinators.scm: ... here. New file. * Makefile.am (MODULES, SCM_TESTS): Add them. * gnu/packages.scm, gnu/packages/bootstrap.scm, gnu/services/herd.scm, guix/build-system/gnu.scm, guix/build-system/python.scm, guix/derivations.scm, guix/gnu-maintenance.scm, guix/import/elpa.scm, guix/scripts/archive.scm, guix/scripts/build.scm, guix/scripts/graph.scm, guix/scripts/lint.scm, guix/scripts/size.scm, guix/scripts/substitute.scm, guix/serialization.scm, guix/store.scm, guix/ui.scm: Adjust imports accordingly.
2016-05-04utils: Remove 'split'.Ludovic Courtès
This procedure was redundant with SRFI-1's 'break'. * guix/utils.scm (split): Remove. * tests/utils.scm ("split, element is in list") ("split, element is not in list"): Remove.
2016-05-04environment: Use 'break' instead of 'split'.Ludovic Courtès
* guix/scripts/environment.scm (parse-args): Use 'break' instead of 'split'.
2016-05-04services: herd: Move UI handling to 'guix system'.Ludovic Courtès
This makes (gnu services herd) independent of (guix ui). * gnu/services/herd.scm (&shepherd-error, &service-not-found-error) (&action-not-found-error, &action-exception-error) (&unknown-shepherd-error): New error condition types. (report-action-error): Remove. (raise-shepherd-error): New procedure. (display-message): Do not use 'info' and '_'. (invoke-action): Use 'raise-shepherd-error' instead of 'report-action-error'. Do not use 'warning'. (current-services): Do not use 'warning'. * guix/scripts/system.scm (with-shepherd-error-handling): New macro. (report-shepherd-error, call-with-service-upgrade-info): New procedures. (upgrade-shepherd-services): Use it.
2016-05-04Merge branch 'master' into gnome-updatesMark H Weaver
2016-05-03syscalls: Wrap TCSA* constants in 'tcsetattr-action' macro.Ludovic Courtès
* guix/build/syscalls.scm (tcsetattr-action): New macro. (TCSANOW, TCSADRAIN, TCSAFLUSH): Remove. (tcsetattr): Adjust docstring accordingly. * tests/syscalls.scm ("tcsetattr"): Adjust accordingly.
2016-05-02profiles: Factor out 'manifest-lookup-package'.宋文武
* guix/profiles.scm (manifest-lookup-package): New procedure. (gtk-icon-themes, xdg-desktop-database, xdg-mime-database): Use it.
2016-05-02profiles: Add xdg-mime-database hook.宋文武
* guix/profiles.scm (xdg-mime-database): New function. (%default-profile-hooks): Add it.
2016-05-02profiles: Add xdg-desktop-database hook.宋文武
* guix/profiles.scm (xdg-desktop-database): New function. (%default-profile-hooks): Add it.
2016-05-02syscalls: Add 'tcgetattr' and 'tcsetattr' bindings.Ludovic Courtès
* guix/build/syscalls.scm (bits->symbols-body, define-bits) (local-flags): New macros. (TCSANOW, TCSADRAIN, TCSAFLUSH): New variables. (<termios>): New record type. (%termios): New C structure. (tcgetattr, tcsetattr): New procedures. * tests/syscalls.scm ("tcgetattr ENOTTY", "tcgetattr") ("tcsetattr"): New tests.
2016-05-02syscalls: Implement arrays in 'define-c-struct' and use it.Ludovic Courtès
* guix/build/syscalls.scm (sizeof*, alignof*, write-type, read-type): Add support for (array ...) forms. * guix/build/syscalls.scm (<file-system>)[spare0, spare1]: Remove. [spare]: New field. * guix/build/syscalls.scm (%statfs)[identifier]: Change to (array int 2). [spare0, spare1]: Remove. [spare]: New field.
2016-05-02syscalls: 'statfs' explicitly binds 'statfs64'.Ludovic Courtès
* guix/build/syscalls.scm (statfs): Explicitly bind "statfs64".
2016-05-02syscalls: statfs: Add missing 'mount-flags' field of 'struct statfs'.Ludovic Courtès
* guix/build/syscalls.scm (<file-system>)[mount-flags]: New field. [spare2]: Remove. (%statfs): Likewise.
2016-05-02syscalls: Add 'tcgetattr' and 'tcsetattr' bindings.Ludovic Courtès
* guix/build/syscalls.scm (bits->symbols-body, define-bits) (local-flags): New macros. (TCSANOW, TCSADRAIN, TCSAFLUSH): New variables. (<termios>): New record type. (%termios): New C structure. (tcgetattr, tcsetattr): New procedures. * tests/syscalls.scm ("tcgetattr ENOTTY", "tcgetattr") ("tcsetattr"): New tests.
2016-05-02syscalls: Implement arrays in 'define-c-struct' and use it.Ludovic Courtès
* guix/build/syscalls.scm (sizeof*, alignof*, write-type, read-type): Add support for (array ...) forms. * guix/build/syscalls.scm (<file-system>)[spare0, spare1]: Remove. [spare]: New field. * guix/build/syscalls.scm (%statfs)[identifier]: Change to (array int 2). [spare0, spare1]: Remove. [spare]: New field.
2016-04-30syscalls: 'statfs' explicitly binds 'statfs64'.Ludovic Courtès
* guix/build/syscalls.scm (statfs): Explicitly bind "statfs64".
2016-04-30syscalls: statfs: Add missing 'mount-flags' field of 'struct statfs'.Ludovic Courtès
* guix/build/syscalls.scm (<file-system>)[mount-flags]: New field. [spare2]: Remove. (%statfs): Likewise.
2016-04-29guix system: Reduce size of image produced for 'vm' action.Ludovic Courtès
This reduces the size of the image produced by 'guix system vm' from 26 MiB to 9 MiB. * gnu/system/vm.scm (system-qemu-image/shared-store): (system-qemu-image/shared-store-script): Change the default value of #:disk-image-size to 30 MiB when not FULL-BOOT?. * guix/scripts/system.scm (system-derivation-for-action): Likewise for the 'vm' action.
2016-04-28lint: 'check-vulnerabilities' follows package replacements.Ludovic Courtès
* guix/scripts/lint.scm (check-vulnerabilities): Check the replacement of PACKAGE. * tests/lint.scm ("cve: patched vulnerability in replacement"): New test.
2016-04-27challenge: Use exit code 2 when discrepancies are found.Ludovic Courtès
Suggested by John Darrington <john@darrington.wattle.id.au>. * guix/scripts/challenge.scm (guix-challenge): Exit with 2 when MISSING is not empty. * doc/guix.texi (Invoking guix challenge): Document it.
2016-04-27lint: Report synopses/descriptions that are not strings.Ludovic Courtès
Suggested by John Darrington. * guix/scripts/lint.scm (check-description-style): Emit a warning when DESCRIPTION is not a string. (check-synopsis-style): Likewise. (check-gnu-synopsis+description): Likewise. * tests/lint.scm ("description: not a string", "synopsis: not a string"): New tests.
2016-04-25import: cpan: check version bounds on core modules.Eric Bavier
Modules may be removed from Perl's core, so we must check for a removal version. * guix/import/cpan.scm (cpan-module->sexp)[core-module?]: Also check version upper bound.
2016-04-25syscalls: 'terminal-columns' catches EINVAL on the TIOCGWINSZ ioctl.Ludovic Courtès
Reported by Mark H Weaver <mhw@netris.org>. * guix/build/syscalls.scm (terminal-columns): Tolerate EINVAL. * tests/syscalls.scm ("terminal-window-size ENOTTY"): Likewise.
2016-04-25guix gc: Add '--free-space'.Ludovic Courtès
* guix/scripts/gc.scm (show-help, %options): Add '--free-space'. (guix-gc)[ensure-free-space]: New procedure. Handle '--free-space'.
2016-04-25syscalls: Add 'statfs'.Ludovic Courtès
* guix/build/syscalls.scm (<file-system>): New record type. (fsword): New macro. (%statfs): New C struct. (statfs): New procedure.
2016-04-25syscalls: 'define-c-struct' computes the struct size.Ludovic Courtès
* guix/build/syscalls.scm (struct-alignment, struct-size): New macros. (define-c-struct): Add 'size' parameter and honor it. (sockaddr-in, sockaddr-in6, ifaddrs, winsize): Adjust accordingly. (%struct-ifaddrs-type, %sizeof-ifaddrs, winsize-struct): Remove. (terminal-window-size): Use 'make-bytevector' instead of 'make-c-struct'.
2016-04-25syscalls: Second argument of packed-struct read is now optional.Ludovic Courtès
* guix/build/syscalls.scm (define-c-struct)[read]: OFFSET defaults to 0. (unfold-interface-list): Remove second argument to 'read-ifaddrs'. (terminal-window-size): Remove second argument to 'read-winsize'.
2016-04-25syscalls: Move code around [NFC].Ludovic Courtès
* guix/build/syscalls.scm: Move packed structure handling to the top.
2016-04-21build: Move 'Makefile' fragments to subdirectories.Mathieu Lirzin
This follows a convention used by some other GNU packages like Autoconf, Bison, Coreutils, and Gnulib. * doc.am: Rename to ... * doc/local.mk: ... this. * emacs.am: Rename to ... * emacs/local.mk: ... this. * gnu-system.am: Rename to ... * gnu/local.mk: ... this. * daemon.am: Rename to ... * nix/local.mk: ... this. * Makefile.am: Adapt to them. * doc/guix.texi (Porting to a New Platform): Adapt documentation. * guix/config.scm.in (%state-directory, %config-directory): Adapt comments. * emacs/guix-config.el.in (guix-config-state-directory): Likewise.
2016-04-20substitute: Sanitize the client-provided column number.Ludovic Courtès
* guix/scripts/substitute.scm (client-terminal-columns): Sanitize the client's column number.
2016-04-20substitute: Install the client's locale.Ludovic Courtès
* guix/store.scm (set-build-options): Add #:locale parameter and honor it. * guix/scripts/substitute.scm (guix-substitute): Install the client's locale.
2016-04-20substitute: Internationalize signature and download messages.Ludovic Courtès
* guix/scripts/substitute.scm (assert-valid-narinfo): Use gettext for messages.
2016-04-20substitute: Better abbreviate substitute URL in progress report.Ludovic Courtès
Suggested by Danny Milosavljevic <dannym@scratchpost.org>. * guix/build/download.scm (nar-uri-abbreviation): New procedure. * guix/scripts/substitute.scm (process-substitution): Use it instead of 'store-path-abbreviation'.
2016-04-20download: 'uri-abbreviation' can abbreviate the URI's basename.Ludovic Courtès
* guix/build/download.scm (uri-abbreviation): Use 'ellipsis' instead of "...". Abbreviate the basename of PATH if needed.
2016-04-20download: Add "%COMPAT" to the priority string.Ludovic Courtès
Fixes <http://bugs.gnu.org/23311>. * guix/build/download.scm (tls-wrap): Add 'set-session-priorities!' call.
2016-04-18syscalls: If a syscall is not available, defer the error.Mark H Weaver
* guix/build/syscalls.scm (syscall->procedure): New procedure. (mount, umount, swapon, swapoff, clone, pivot-root): Use it. (clone): Add case for nonexistent syscall id. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-04-18utils: 'cache-directory' gracefully deals with unset 'HOME'.Ludovic Courtès
Fixes <http://bugs.gnu.org/23165>. * guix/utils.scm (cache-directory): Use 'getpwuid' when 'HOME' is unset.
2016-04-16syscalls: 'terminal-columns' ignores non-file ports.Ludovic Courtès
* guix/build/syscalls.scm (terminal-columns): Call 'terminal-window-size' only when PORT is a file port. * tests/syscalls.scm ("terminal-columns non-file port"): New test.
2016-04-15substitute: Honor the number of columns of the client terminal.Ludovic Courtès
* guix/store.scm (set-build-options): Add #:terminal-columns parameter and honor it. * guix/scripts/substitute.scm (client-terminal-columns): New procedure. (guix-substitute): Use it to parameterize 'current-terminal-columns'.
2016-04-15guix download: Honor the number of columns of the terminal.Ludovic Courtès
* guix/scripts/download.scm (guix-download): Parameterize 'current-terminal-columns'.
2016-04-15ui: Use 'terminal-columns'.Ludovic Courtès
* guix/ui.scm (%text-width): Default to (terminal-columns).
2016-04-15ui: 'package->recutils' accurately honors the number of columns.Ludovic Courtès
* guix/ui.scm (package->recutils)[width*]: New variable. Use it instead of WIDTH.