summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Collapse)Author
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.
2016-04-15download: Add 'current-terminal-columns' parameter.Ludovic Courtès
* guix/build/download.scm (current-terminal-columns): New variable. (progress-proc): Use it instead of the hard-coded "80".
2016-04-15download: Send an ANSI erase-in-line sequence in addition to CR.Ludovic Courtès
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.
2016-04-14download: Follow HTTP 307 "Temporary Redirection".Alex Kost
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.
2016-04-01cvs: Disable compression.Ludovic Courtès
Reported by Jan Nieuwenhuizen <janneke@gnu.org>. * guix/build/cvs.scm (cvs-fetch): Use -z0.
2016-04-01cvs: Allow checkouts when /tmp is a different device.Jan Nieuwenhuizen
* guix/build/cvs.scm (cvs-fetch): Use 'copy-recursively' instead of 'rename-file'. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-03-31ant-build-system: Keep jar manifest.Ricardo Wurmus
* guix/build/ant-build-system.scm (default-build.xml): Generate default manifest. (strip-jar-timestamps): Repack jar archive with zip.
2016-03-25syscalls: <interface> printer correctly handles lack of sockaddr.Ludovic Courtès
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.
2016-03-17download: Add 'close-connection'.Ludovic Courtès
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.
2016-03-14build: Add Ant build system.Ricardo Wurmus
* 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.
2016-02-27grafts: Make sure files are not created world-writable.Ludovic Courtès
* guix/build/graft.scm (rewrite-directory): Add 'umask' call.
2016-02-08Add (guix build bournish) and use it in the initrd.Ludovic Courtès
* 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.
2016-02-03syscalls: 'all-network-interface-names' accepts non-alphanumeric characters.Ludovic Courtès
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:]].
2016-01-19build-system/haskell: Fix package.conf parsing.Eric Bavier
* guix/build/haskell-build-system.scm (register)[conf-depends]: Properly react to EOF while reading GHC package conf files.
2016-01-13Merge branch 'master' into core-updatesLudovic Courtès
2016-01-11ruby: Abstract out path to GEM_HOME.Ben Woodcroft
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.
2016-01-06build: ruby: Remove cached gem after install.Ben Woodcroft
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.
2016-01-05build: pull: Compile .scm files in one process.Taylan Ulrich Bayırlı/Kammer
* guix/build/pull.scm (call-with-process, report-build-progress) (p-for-each): Remove. (build-guix): Load and compile files in one process.
2016-01-05build-system/gnu: Add 'set-SOURCE-DATE-EPOCH' phase.Ludovic Courtès
This phase is inherited by other build systems, which ensures 'SOURCE_DATE_EPOCH' is always set in practice. * guix/build/python-build-system.scm (set-SOURCE-DATE-EPOCH): Remove. (%standard-phases): Don't add it. * guix/build/gnu-build-system.scm (set-SOURCE-DATE-EPOCH): New procedure. (%standard-phases): Add it. (gnu-build): Remove 'setenv' call for "SOURCE_DATE_EPOCH".
2016-01-05git-download: Correctly implement recursive checkouts.Ludovic Courtès
Previously, the 'git checkout' invocation would remove sub-modules that had been initialized by 'git clone --recursive'. * guix/build/git.scm (git-fetch): Never use "git clone --recursive". Invoke "git submodule update --init --recursive" after "git checkout". Remove '.git' directories as the last step.
2016-01-01build-system/gnu: Use the long option name for deterministic archives.Ludovic Courtès
This is a followup to 3eb34c6. * guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Use "--enable-deterministic-archives" instead of "-D" to work around Binutils bug <https://sourceware.org/bugzilla/show_bug.cgi?id=17671>. * guix/build/gnu-build-system.scm (strip): Likewise.
2015-12-18build-system/gnu: Always pass "-D" to strip/objcopy.Ludovic Courtès
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Add "-D" to #:strip-flags. * guix/build/gnu-build-system.scm (strip): Likewise. Also pass "-D" to OBJCOPY-COMMAND.
2015-12-12Merge branch 'master' into core-updatesLudovic Courtès
2015-11-29gnu: python: Set SOURCE_DATE_EPOCH to 1 instead of 0.Ludovic Courtès
* gnu/packages/python.scm (python-2)[arguments]: Set SOURCE_DATE_EPOCH to 1 to match what the daemon does. * guix/build/python-build-system.scm (set-SOURCE-DATE-EPOCH): Likewise.
2015-11-29gnu: python-2: Honor 'SOURCE_DATE_EPOCH'.Ludovic Courtès
* gnu/packages/patches/python-2.7-source-date-epoch.patch: New file. * gnu/packages/python.scm (python-2)[source]: Use it. [arguments]: Set SOURCE_DATE_EPOCH in 'patch-lib-shells' phase. * guix/build/python-build-system.scm (set-SOURCE-DATE-EPOCH): New procedure. (%standard-phases): Add it. * gnu-system.am (dist_patch_DATA): Add patch.
2015-11-16graft: Graft files in parallel.Ludovic Courtès
* guix/build/graft.scm (rewrite-directory): Use 'n-par-for-each' instead of 'for-each'.
2015-11-16graft: Graft files in a deterministic order.Ludovic Courtès
* guix/build/graft.scm (rewrite-directory)[rewrite-leaf]: Change to take a single parameter. Add call to 'lstat'. Factorize result of 'destination'. Use 'find-files' instead of 'file-system-fold'.
2015-11-14build-system/gnu: Set 'SOURCE_DATE_EPOCH'.Alex Kost
Suggested by Ludovic Courtès <ludo@gnu.org>. * guix/build/gnu-build-system.scm (gnu-build): Set SOURCE_DATE_EPOCH for deterministic builds.
2015-11-12download: Always use AI_ADDRCONFIG when resolving host names.Ludovic Courtès
* guix/build/download.scm (open-socket-for-uri): Always pass AI_ADDRCONFIG to 'getaddrinfo' as recommended in the fine Guile manual. * guix/ftp-client.scm (ftp-open): Ditto.
2015-11-12download: Add timeout parameter for connections.Ludovic Courtès
* guix/build/download.scm (ensure-uri): New procedure. (current-http-proxy): New variable. (open-socket-for-uri): Copy from Guile commit aaea5b2, but add #:timeout parameter and use 'connect*' instead of 'connect'. (open-connection-for-uri): Add #:timeout parameter and pass it to 'open-socket-for-uri'.
2015-10-29gnu: ghc: Add GHC_PACKAGE_PATH native search path.Eric Bavier
Benefits include: 'guix environment' more useful for ghc libraries, more useful 'guix package --search-paths' for installed ghc libraries, cleaner package recipes: no longer need to propagate runtime package dependencies. * guix/build/haskell-build-system.scm (configure): Unset GHC_PACKAGE_PATH around cabal configure. (make-ghc-package-database): Use pattern directory search. (register): Install complete package database for the current package. * gnu/packages/haskell.scm (ghc): Add native-search-paths field.
2015-10-29utils: Have search-path-as-list pattern search for directories.Eric Bavier
* guix/build/utils.scm (search-path-as-list)[pattern]: Check requested file type. Check pattern against directory names. * guix/search-paths.scm (evaluate-search-paths)[pattern]: Remove symlink hack.
2015-10-26build-system/haskell: CONFIG_SHELL env variable.Paul van der Walt
For Cabal packages with "build-type: Configure", a configure shell script is run to set up build parameters. These scripts need the CONFIG_SHELL environment variable to be set to function properly. * guix/build/haskell-build-system.scm (configure): Set CONFIG_SHELL if necessary.
2015-10-17syscalls: Fix ABI mismatch for 'clone'.Ludovic Courtès
Fixes <http://bugs.gnu.org/21694>. * guix/build/syscalls.scm (clone): Change 'syscall' parameter types to LONG, UNSIGNED-LONG, or '*; make sure it has 6 parameters. Adjust caller accordingly.
2015-10-07Merge branch 'master' into core-updatesMark H Weaver
2015-10-04Use "normalized codesets" everywhere.Ludovic Courtès
In other words, change "xx_YY.UTF-8" to "xx_YY.utf8". * guix/profiles.scm (ca-certificate-bundle): Use "en_US.utf8" instead of "en_US.UTF-8". * guix/packages.scm (patch-and-repack): Likewise. * guix/build/gnu-build-system.scm (install-locale): Likewise. * guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Likewise. * gnu/packages/python.scm (python-ipython): Likewise. * gnu/packages/gawk.scm (gawk): Likewise. * build-aux/hydra/demo-os.scm: Likewise. * gnu/packages/guile.scm (guile-ncurses)[arguments]: Remove 'change-locale' phase.