summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Collapse)Author
2016-08-09grafts: Make grafting faster.Mark H Weaver
* guix/build/graft.scm (replace-store-references): Reimplement for faster grafting. Use binary I/O instead of textual I/O. Replace 'mapping' argument (an alist) with 'replacement-table' (a vhash). (rewrite-directory): Adapt to mapping argument change in 'replace-store-references'. Remove 'with-fluids' that previously set '%default-port-encoding' to #f, since we now use binary I/O. (define-inline, hash-length): New macros. (nix-base32-char?): New variable.
2016-07-31download: Pass the raw file name to content-addressed mirrors.Ludovic Courtès
* guix/build/download.scm (url-fetch)[content-addressed-uris]: Call 'strip-store-file-name' on FILE before passing it to 'make-url'.
2016-07-22Merge branch 'master' into core-updatesLeo Famulari
Resolved conflicts: * gnu/packages/scheme.scm: Conflict in import of (guix licenses). On master, "#:hide (openssl)" was used. On core-updates, "#:select (some licenses)" was used. The latter won the conflict. * gnu/packages/version-control.scm (git)[arguments]: Whitespace conflict in 'install-shell-completion.
2016-07-20pull: Install (guix config) module to override the user's one.Ludovic Courtès
* build-aux/build-self.scm (zlib, gzip, bzip2, xz): New variables. (build)[storedir, localstatedir, sysconfdir, sbindir]: New variables. [builder]: Pass them to 'build-guix'. * guix/build/pull.scm (build-guix): Add #:system, #:storedir, #:localstatedir, #:sysconfdir, #:sbindir, #:package-name, #:package-version, #:bug-report-address, #:home-page-url, #:libgcrypt, #:zlib, #:gzip, #:bzip2, and #:xz. Remove #:gcrypt. Instantiate all the substitution variables in (guix config). Remove code to delete OUT/guix/config.{scm,go}. * guix/config.scm.in: Add note about (guix script pull).
2016-07-20download: Prepare to support the 'guix publish' /file URLs.Ludovic Courtès
* guix/download.scm (%content-addressed-mirrors): Add 'file' parameter to the lambda. * guix/build/download.scm (url-fetch)[content-addressed-uris]: Adjust accordingly.
2016-07-20Merge branch 'master' into core-updatesLudovic Courtès
2016-07-03guix: Support authentication when fetching from SVN.Ricardo Wurmus
* guix/svn-download.scm (<svn-reference>): Add fields for optional credentials. (svn-fetch): Pass credentials to build-side "svn-fetch". * guix/build/svn.scm (svn-fetch): Pass optional credentials to svn command.
2016-06-29download: Use basic authentication when userinfo is present in URI.David Thompson
* guix/download.scm (url-fetch): Include (guix base64) module on the build-side. * guix/build/download.scm (http-fetch): Add "Authorization" header when userinfo is present in the URI.
2016-06-27Merge branch 'master' into core-updatesLudovic Courtès
2016-06-23bournish: Add 'wc' command.Efraim Flashner
* guix/build/bournish.scm (lines+chars, file-exists?*, wc-print) (wc-l-print, wc-c-print, wc-command, wc-command-implementation) (wc-l-command-implementation, wc-c-command-implementation): New procedures. (%commands): Add 'wc'. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-06-22build: emacs: Search for elisp in "share/emacs/site-lisp".Alex Kost
* guix/build/emacs-build-system.scm (emacs-inputs-el-directories): Add ".../share/emacs/site-lisp" directory to the returned result as elisp files can also be placed there.
2016-06-17Merge branch 'master' into core-updatesLudovic Courtès
2016-06-15guix: Add downloader for Mercurial repositories.Ricardo Wurmus
* guix/build/hg.scm: New file. * guix/hg-download.scm: New file. * Makefile.am (MODULES): Add them.
2016-06-13syscalls: Use 'syscall->procedure' everywhere.Ludovic Courtès
* guix/build/syscalls.scm (mkdtemp!, setns, %ioctl, network-interfaces): (free-ifaddrs): Use 'syscall->procedure'.
2016-06-13utils: 'with-atomic-file-output' calls 'fdatasync'.Ludovic Courtès
Suggested by Danny Milosavljevic <dannym@scratchpost.org> at <https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00456.html>. * guix/build/syscalls.scm (fdatasync): New procedure. * guix/utils.scm (with-atomic-file-output): Use it. Use 'close-port' instead of 'close'.
2016-06-07Merge branch 'master' into core-updatesLudovic Courtès
2016-06-06bournish: Allow compilation of multiple expressions.Ludovic Courtès
* guix/build/bournish.scm (%bournish-language): Add a joiner to SCHEME. Compile only to Scheme. * tests/bournish.scm: New file. * Makefile.am (SCM_TESTS): Add it.
2016-06-06bournish: Handle EOF in the reader.Ludovic Courtès
* guix/build/bournish.scm (read-bournish): Add case for EOF.
2016-05-30build: emacs: Handle sources that are a single elisp file.David Thompson
* guix/build/emacs-build-system.scm (gnu:unpack) (store-file->elisp-source-file, unpack): New procedures. (%standard-phases): Use the new unpack procedure.
2016-05-27download: Default to a 10s connection establishment timeout.Ludovic Courtès
* guix/build/download.scm (ftp-fetch): Add #:timeout and pass it to 'ftp-open'. (http-fetch): Add #:timeout and pass it to 'open-connection-for-uri' and in recursive calls. (url-fetch): Add #:timeout and pass it to 'http-fetch' and 'ftp-fetch'.
2016-05-27download: Use URI objects for content-addressed mirrors.Ludovic Courtès
This fixes a bug whereby 'http-fetch' would be passed a string instead of a URI object. * guix/build/download.scm (url-fetch): Rename 'content-addressed-urls' to 'content-addressed-uris', and call 'string->uri'.
2016-05-25guix: ruby-build-system: Extract gemspec during 'extract-gemspec'.Ben Woodcroft
* guix/build/ruby-build-system.scm (build): Move extraction from here ... (extract-gemspec): ... to here. New variable. (first-gemspec): New variable. (%standard-phases): Add 'extract-gemspec' phase.
2016-05-24graft: Fail when one of the threads raises an exception.Ludovic Courtès
Fixes <http://bugs.gnu.org/23581>. * guix/build/graft.scm (exit-on-exception): New procedure. (rewrite-directory): Use it to wrap REWRITE-LEAF.
2016-05-23union: Compare inode numbers in 'file=?'.Ludovic Courtès
* guix/build/union.scm (file=?): Compare the inode of ST1 and ST2.
2016-05-23Merge branch 'master' into core-updatesLudovic Courtès
2016-05-21grafts: Rename files whose name matches a graft.Ludovic Courtès
Fixes <http://bugs.gnu.org/23132>. Reported by Mark H Weaver <mhw@netris.org>. * guix/build/graft.scm (rename-matching-files): New procedure. (rewrite-directory): Use it. * tests/grafts.scm ("graft-derivation, renaming"): New test.
2016-05-21grafts: Preserve empty directories when grafting.Ludovic Courtès
* guix/build/graft.scm (rewrite-directory)[rewrite-leaf]: Add case for 'directory. Pass #:directories? #t to 'find-files'.
2016-05-20ant-build-system: Add unpack phase.Ricardo Wurmus
* guix/build/ant-build-system.scm (unpack): New procedure. (%standard-phases): Use it.
2016-05-16build: Accept dates with space-padded hour field.Ricardo Wurmus
* guix/build/download.scm: Replace "parse-rfc-822-date" from the (web http) module.
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-13Merge branch 'master' into core-updatesLeo Famulari
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-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-02Merge branch 'master' into core-updatesMathieu Lirzin
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-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-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-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-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-15syscalls: Add TIOCGWINSZ bindings.Ludovic Courtès
* guix/build/syscalls.scm (TIOCGWINSZ): New macro. (<window-size>): New record type. (winsize): New C struct. (winsize-struct): New variable. (terminal-window-size, terminal-columns): New procedures.