summaryrefslogtreecommitdiff
path: root/guix/build
Commit message (Collapse)AuthorAge
* pull: Install (guix config) module to override the user's one.Ludovic Courtès2016-07-20
| | | | | | | | | | | | | * 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).
* download: Prepare to support the 'guix publish' /file URLs.Ludovic Courtès2016-07-20
| | | | | | | * guix/download.scm (%content-addressed-mirrors): Add 'file' parameter to the lambda. * guix/build/download.scm (url-fetch)[content-addressed-uris]: Adjust accordingly.
* guix: Support authentication when fetching from SVN.Ricardo Wurmus2016-07-03
| | | | | | | | * 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.
* download: Use basic authentication when userinfo is present in URI.David Thompson2016-06-29
| | | | | | | * 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.
* bournish: Add 'wc' command.Efraim Flashner2016-06-23
| | | | | | | | | * 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>
* build: emacs: Search for elisp in "share/emacs/site-lisp".Alex Kost2016-06-22
| | | | | | * 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.
* guix: Add downloader for Mercurial repositories.Ricardo Wurmus2016-06-15
| | | | | | * guix/build/hg.scm: New file. * guix/hg-download.scm: New file. * Makefile.am (MODULES): Add them.
* syscalls: Use 'syscall->procedure' everywhere.Ludovic Courtès2016-06-13
| | | | | * guix/build/syscalls.scm (mkdtemp!, setns, %ioctl, network-interfaces): (free-ifaddrs): Use 'syscall->procedure'.
* utils: 'with-atomic-file-output' calls 'fdatasync'.Ludovic Courtès2016-06-13
| | | | | | | | | 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'.
* bournish: Allow compilation of multiple expressions.Ludovic Courtès2016-06-06
| | | | | | | * 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.
* bournish: Handle EOF in the reader.Ludovic Courtès2016-06-06
| | | | * guix/build/bournish.scm (read-bournish): Add case for EOF.
* build: emacs: Handle sources that are a single elisp file.David Thompson2016-05-30
| | | | | | * guix/build/emacs-build-system.scm (gnu:unpack) (store-file->elisp-source-file, unpack): New procedures. (%standard-phases): Use the new unpack procedure.
* download: Default to a 10s connection establishment timeout.Ludovic Courtès2016-05-27
| | | | | | | | * 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'.
* download: Use URI objects for content-addressed mirrors.Ludovic Courtès2016-05-27
| | | | | | | | 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'.
* guix: ruby-build-system: Extract gemspec during 'extract-gemspec'.Ben Woodcroft2016-05-25
| | | | | | | * 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.
* graft: Fail when one of the threads raises an exception.Ludovic Courtès2016-05-24
| | | | | | | Fixes <http://bugs.gnu.org/23581>. * guix/build/graft.scm (exit-on-exception): New procedure. (rewrite-directory): Use it to wrap REWRITE-LEAF.
* union: Compare inode numbers in 'file=?'.Ludovic Courtès2016-05-23
| | | | * guix/build/union.scm (file=?): Compare the inode of ST1 and ST2.
* grafts: Rename files whose name matches a graft.Ludovic Courtès2016-05-21
| | | | | | | | | 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.
* grafts: Preserve empty directories when grafting.Ludovic Courtès2016-05-21
| | | | | | * guix/build/graft.scm (rewrite-directory)[rewrite-leaf]: Add case for 'directory. Pass #:directories? #t to 'find-files'.
* ant-build-system: Add unpack phase.Ricardo Wurmus2016-05-20
| | | | | * guix/build/ant-build-system.scm (unpack): New procedure. (%standard-phases): Use it.
* build: Accept dates with space-padded hour field.Ricardo Wurmus2016-05-16
| | | | | * guix/build/download.scm: Replace "parse-rfc-822-date" from the (web http) module.
* download: Support content-addressed mirrors.Ludovic Courtès2016-05-14
| | | | | | | | | | | | | * 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.
* syscalls: Use 'define-c-struct' for 'fcntl-flock'.Ludovic Courtès2016-05-06
| | | | | | * guix/build/syscalls.scm (%struct-flock): Use 'define-c-struct'. (fcntl-flock): Use 'write-flock!' and 'make-bytevector' instead of 'make-c-struct'.
* utils: Move 'fcntl-flock' to (guix build syscalls).Ludovic Courtès2016-05-06
| | | | | | | | | | | * 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.
* syscalls: Wrap TCSA* constants in 'tcsetattr-action' macro.Ludovic Courtès2016-05-03
| | | | | | | * guix/build/syscalls.scm (tcsetattr-action): New macro. (TCSANOW, TCSADRAIN, TCSAFLUSH): Remove. (tcsetattr): Adjust docstring accordingly. * tests/syscalls.scm ("tcsetattr"): Adjust accordingly.
* syscalls: Add 'tcgetattr' and 'tcsetattr' bindings.Ludovic Courtès2016-05-02
| | | | | | | | | | | * 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.
* syscalls: Implement arrays in 'define-c-struct' and use it.Ludovic Courtès2016-05-02
| | | | | | | | | | * 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.
* syscalls: 'statfs' explicitly binds 'statfs64'.Ludovic Courtès2016-04-30
| | | | * guix/build/syscalls.scm (statfs): Explicitly bind "statfs64".
* syscalls: statfs: Add missing 'mount-flags' field of 'struct statfs'.Ludovic Courtès2016-04-30
| | | | | | * guix/build/syscalls.scm (<file-system>)[mount-flags]: New field. [spare2]: Remove. (%statfs): Likewise.
* syscalls: 'terminal-columns' catches EINVAL on the TIOCGWINSZ ioctl.Ludovic Courtès2016-04-25
| | | | | | | Reported by Mark H Weaver <mhw@netris.org>. * guix/build/syscalls.scm (terminal-columns): Tolerate EINVAL. * tests/syscalls.scm ("terminal-window-size ENOTTY"): Likewise.
* syscalls: Add 'statfs'.Ludovic Courtès2016-04-25
| | | | | | | * guix/build/syscalls.scm (<file-system>): New record type. (fsword): New macro. (%statfs): New C struct. (statfs): New procedure.
* syscalls: 'define-c-struct' computes the struct size.Ludovic Courtès2016-04-25
| | | | | | | | * 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'.
* syscalls: Second argument of packed-struct read is now optional.Ludovic Courtès2016-04-25
| | | | | | * 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'.
* syscalls: Move code around [NFC].Ludovic Courtès2016-04-25
| | | | * guix/build/syscalls.scm: Move packed structure handling to the top.
* substitute: Better abbreviate substitute URL in progress report.Ludovic Courtès2016-04-20
| | | | | | | | 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'.
* download: 'uri-abbreviation' can abbreviate the URI's basename.Ludovic Courtès2016-04-20
| | | | | * guix/build/download.scm (uri-abbreviation): Use 'ellipsis' instead of "...". Abbreviate the basename of PATH if needed.
* download: Add "%COMPAT" to the priority string.Ludovic Courtès2016-04-20
| | | | | | Fixes <http://bugs.gnu.org/23311>. * guix/build/download.scm (tls-wrap): Add 'set-session-priorities!' call.
* syscalls: If a syscall is not available, defer the error.Mark H Weaver2016-04-18
| | | | | | | | * 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>
* syscalls: 'terminal-columns' ignores non-file ports.Ludovic Courtès2016-04-16
| | | | | | * 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.
* syscalls: Add TIOCGWINSZ bindings.Ludovic Courtès2016-04-15
| | | | | | | | * 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.
* download: Add 'current-terminal-columns' parameter.Ludovic Courtès2016-04-15
| | | | | * guix/build/download.scm (current-terminal-columns): New variable. (progress-proc): Use it instead of the hard-coded "80".
* download: Send an ANSI erase-in-line sequence in addition to CR.Ludovic Courtès2016-04-15
| | | | | | | | Partly fixes <http://bugs.gnu.org/22536>. Reported by Danny Milosavljevic <dannym@scratchpost.org>. * guix/build/download.scm (progress-proc): Send an ANSI erase-in-line sequence.
* download: Follow HTTP 307 "Temporary Redirection".Alex Kost2016-04-14
| | | | | | | | Fixes <http://bugs.gnu.org/23275>. Reported by Albin Söderqvist <albin@fripost.org>. * guix/build/download.scm (http-fetch): Follow redirections upon 307. This is what 'binaries.openttd.org' does.
* cvs: Disable compression.Ludovic Courtès2016-04-01
| | | | | | Reported by Jan Nieuwenhuizen <janneke@gnu.org>. * guix/build/cvs.scm (cvs-fetch): Use -z0.
* cvs: Allow checkouts when /tmp is a different device.Jan Nieuwenhuizen2016-04-01
| | | | | | | * guix/build/cvs.scm (cvs-fetch): Use 'copy-recursively' instead of 'rename-file'. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* ant-build-system: Keep jar manifest.Ricardo Wurmus2016-03-31
| | | | | | * guix/build/ant-build-system.scm (default-build.xml): Generate default manifest. (strip-jar-timestamps): Repack jar archive with zip.
* syscalls: <interface> printer correctly handles lack of sockaddr.Ludovic Courtès2016-03-25
| | | | | | | | Reported by Danny Milosavljevic <dannym@scratchpost.org> in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22612#16>. * guix/build/syscalls.scm (write-interface): Check whether ADDRESS is true.
* download: Add 'close-connection'.Ludovic Courtès2016-03-17
| | | | | | | | | | Partially fixes <http://bugs.gnu.org/20145>. * guix/build/download.scm (add-weak-reference): Remove. (%tls-ports): New variable. (register-tls-record-port): New procedure. (tls-wrap): Use it instead of 'add-weak-reference'. (close-connection): New procedure.
* build: Add Ant build system.Ricardo Wurmus2016-03-14
| | | | | | | * guix/build-system/ant.scm: New file. * guix/build/ant-build-system: New file. * Makefile.am (MODULES): Add new files. * doc/guix.texi (Build Systems): Document ant-build-system.
* grafts: Make sure files are not created world-writable.Ludovic Courtès2016-02-27
| | | | * guix/build/graft.scm (rewrite-directory): Add 'umask' call.