summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Expand)Author
2016-06-13syscalls: Use 'syscall->procedure' everywhere....* guix/build/syscalls.scm (mkdtemp!, setns, %ioctl, network-interfaces): (free-ifaddrs): Use 'syscall->procedure'. Ludovic Courtès
2016-06-13utils: 'with-atomic-file-output' calls 'fdatasync'....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'. Ludovic Courtès
2016-06-06bournish: Allow compilation of multiple expressions....* 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. Ludovic Courtès
2016-06-06bournish: Handle EOF in the reader....* guix/build/bournish.scm (read-bournish): Add case for EOF. Ludovic Courtès
2016-05-30build: emacs: Handle sources that are a single elisp file....* guix/build/emacs-build-system.scm (gnu:unpack) (store-file->elisp-source-file, unpack): New procedures. (%standard-phases): Use the new unpack procedure. David Thompson
2016-05-27download: Default to a 10s connection establishment timeout....* 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'. Ludovic Courtès
2016-05-27download: Use URI objects for content-addressed mirrors....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'. Ludovic Courtès
2016-05-25guix: ruby-build-system: Extract gemspec during 'extract-gemspec'....* 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. Ben Woodcroft
2016-05-24graft: Fail when one of the threads raises an exception....Fixes <http://bugs.gnu.org/23581>. * guix/build/graft.scm (exit-on-exception): New procedure. (rewrite-directory): Use it to wrap REWRITE-LEAF. Ludovic Courtès
2016-05-23union: Compare inode numbers in 'file=?'....* guix/build/union.scm (file=?): Compare the inode of ST1 and ST2. Ludovic Courtès
2016-05-21grafts: Rename files whose name matches a graft....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. Ludovic Courtès
2016-05-21grafts: Preserve empty directories when grafting....* guix/build/graft.scm (rewrite-directory)[rewrite-leaf]: Add case for 'directory. Pass #:directories? #t to 'find-files'. Ludovic Courtès
2016-05-20ant-build-system: Add unpack phase....* guix/build/ant-build-system.scm (unpack): New procedure. (%standard-phases): Use it. Ricardo Wurmus
2016-05-16build: Accept dates with space-padded hour field....* guix/build/download.scm: Replace "parse-rfc-822-date" from the (web http) module. Ricardo Wurmus
2016-05-14download: Support content-addressed mirrors....* 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. Ludovic Courtès
2016-05-06syscalls: Use 'define-c-struct' for 'fcntl-flock'....* guix/build/syscalls.scm (%struct-flock): Use 'define-c-struct'. (fcntl-flock): Use 'write-flock!' and 'make-bytevector' instead of 'make-c-struct'. Ludovic Courtès
2016-05-06utils: Move 'fcntl-flock' to (guix build syscalls)....* 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. Ludovic Courtès
2016-05-03syscalls: Wrap TCSA* constants in 'tcsetattr-action' macro....* guix/build/syscalls.scm (tcsetattr-action): New macro. (TCSANOW, TCSADRAIN, TCSAFLUSH): Remove. (tcsetattr): Adjust docstring accordingly. * tests/syscalls.scm ("tcsetattr"): Adjust accordingly. Ludovic Courtès
2016-05-02syscalls: Add 'tcgetattr' and 'tcsetattr' bindings....* 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. Ludovic Courtès
2016-05-02syscalls: Implement arrays in 'define-c-struct' and use it....* 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. Ludovic Courtès
2016-04-30syscalls: 'statfs' explicitly binds 'statfs64'....* guix/build/syscalls.scm (statfs): Explicitly bind "statfs64". Ludovic Courtès
2016-04-30syscalls: statfs: Add missing 'mount-flags' field of 'struct statfs'....* guix/build/syscalls.scm (<file-system>)[mount-flags]: New field. [spare2]: Remove. (%statfs): Likewise. Ludovic Courtès
2016-04-25syscalls: 'terminal-columns' catches EINVAL on the TIOCGWINSZ ioctl....Reported by Mark H Weaver <mhw@netris.org>. * guix/build/syscalls.scm (terminal-columns): Tolerate EINVAL. * tests/syscalls.scm ("terminal-window-size ENOTTY"): Likewise. Ludovic Courtès
2016-04-25syscalls: Add 'statfs'....* guix/build/syscalls.scm (<file-system>): New record type. (fsword): New macro. (%statfs): New C struct. (statfs): New procedure. Ludovic Courtès
2016-04-25syscalls: 'define-c-struct' computes the struct size....* 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'. Ludovic Courtès
2016-04-25syscalls: Second argument of packed-struct read is now optional....* 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'. Ludovic Courtès
2016-04-25syscalls: Move code around [NFC]....* guix/build/syscalls.scm: Move packed structure handling to the top. Ludovic Courtès
2016-04-20substitute: Better abbreviate substitute URL in progress report....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'. Ludovic Courtès
2016-04-20download: 'uri-abbreviation' can abbreviate the URI's basename....* guix/build/download.scm (uri-abbreviation): Use 'ellipsis' instead of "...". Abbreviate the basename of PATH if needed. Ludovic Courtès
2016-04-20download: Add "%COMPAT" to the priority string....Fixes <http://bugs.gnu.org/23311>. * guix/build/download.scm (tls-wrap): Add 'set-session-priorities!' call. Ludovic Courtès
2016-04-18syscalls: If a syscall is not available, defer the error....* 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> Mark H Weaver
2016-04-16syscalls: 'terminal-columns' ignores non-file ports....* 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. Ludovic Courtès
2016-04-15syscalls: Add TIOCGWINSZ bindings....* 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. Ludovic Courtès
2016-04-15download: Add 'current-terminal-columns' parameter....* guix/build/download.scm (current-terminal-columns): New variable. (progress-proc): Use it instead of the hard-coded "80". Ludovic Courtès
2016-04-15download: Send an ANSI erase-in-line sequence in addition to CR....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. Ludovic Courtès
2016-04-14download: Follow HTTP 307 "Temporary Redirection"....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. Alex Kost
2016-04-01cvs: Disable compression....Reported by Jan Nieuwenhuizen <janneke@gnu.org>. * guix/build/cvs.scm (cvs-fetch): Use -z0. Ludovic Courtès
2016-04-01cvs: Allow checkouts when /tmp is a different device....* guix/build/cvs.scm (cvs-fetch): Use 'copy-recursively' instead of 'rename-file'. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Jan Nieuwenhuizen
2016-03-31ant-build-system: Keep jar manifest....* guix/build/ant-build-system.scm (default-build.xml): Generate default manifest. (strip-jar-timestamps): Repack jar archive with zip. Ricardo Wurmus
2016-03-25syscalls: <interface> printer correctly handles lack of sockaddr....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. Ludovic Courtès
2016-03-17download: Add 'close-connection'....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. Ludovic Courtès
2016-03-14build: Add Ant build system....* 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. Ricardo Wurmus
2016-02-27grafts: Make sure files are not created world-writable....* guix/build/graft.scm (rewrite-directory): Add 'umask' call. Ludovic Courtès
2016-02-08Add (guix build bournish) and use it in the initrd....* guix/build/bournish.scm: New file. * Makefile.am (MODULES): Add it. * gnu/system/linux-initrd.scm (base-initrd): Add (guix build bournish) and use it. Ludovic Courtès
2016-02-03syscalls: 'all-network-interface-names' accepts non-alphanumeric characters....This fixes interfaces with a dash or other characters being ignored. Suggested by Jookia <166291@gmail.com>. * guix/build/syscalls.scm (%interface-line): Use [[:graph:]] instead of [[:alnum:]]. Ludovic Courtès
2016-01-19build-system/haskell: Fix package.conf parsing....* guix/build/haskell-build-system.scm (register)[conf-depends]: Properly react to EOF while reading GHC package conf files. Eric Bavier
2016-01-13Merge branch 'master' into core-updatesLudovic Courtès
2016-01-11ruby: Abstract out path to GEM_HOME....Previously paths to the GEM_HOME of certain Ruby packages were hard-coded, so packages failed to build when Ruby was updated to 2.3.0. * guix/build/ruby-build-system.scm (gem-home): New procedure. * gnu/packages/ruby.scm (ruby-metaclass, ruby-instantiator, ruby-introspection, ruby-mocha, ruby-minitest-tu-shim): Use it. Ben Woodcroft
2016-01-06build: ruby: Remove cached gem after install....The .gem file stored in GEM_HOME after install is both redundant and an archive that stores timestamped files which makes builds non-deterministic, so delete it after 'gem install'. * guix/build/ruby-build-system.scm (install): Remove cached gem after install. Ben Woodcroft
2016-01-05build: pull: Compile .scm files in one process....* guix/build/pull.scm (call-with-process, report-build-progress) (p-for-each): Remove. (build-guix): Load and compile files in one process. Taylan Ulrich Bayırlı/Kammer