summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Expand)Author
2015-09-22Merge branch 'master' into core-updatesMark H Weaver
2015-09-17download: Only show hours in the elapsed time if necessary....* guix/build/download.scm (seconds->string): Conditionally include hours in timestamp. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Steve Sprang
2015-09-16substitute: Improve readability of download progress report....* guix/build/download.scm (string-pad-middle, store-url-abbreviation, store-path-abbreviation): New procedures. (progress-proc): Add #:abbreviation parameter and use it. Generate a better indeterminate progress string. * guix/scripts/substitute.scm (assert-valid-narinfo): Add newlines to output. (process-substitution): Use byte-count->string and store-path-abbreviation. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Steve Sprang
2015-09-14download: Avoid type errors when formatting download progress output....* guix/build/download.scm (nearest-exact-integer): New procedure. (seconds->string, byte-count->string): Use it. Steve Sprang
2015-09-14build: ruby: Add support for tarball and directory sources....Previously, the Ruby build system only knew how to work with gem archives, which made it difficult to build unreleased gems from a Git repository or released gems in tarball form. * gnu/build/ruby-build-system.scm (gnu:unpack, gem-archive?): New procedures. (unpack): Use GNU build system unpack phase for non-gem sources. (build): Rebuild the gemspec iff the source is a gem archive. * guix.texi ("ruby-build-system"): Mention that tarballs and directories are acceptable. David Thompson
2015-09-13Merge branch 'master' into core-updatesLudovic Courtès
2015-09-11build-system/glib-or-gtk: Don't generate 'icon-theme.cache'....* guix/build-system/glib-or-gtk.scm (default-gtk+): Remove. (lower): Adjust accordingly. * guix/build/glib-or-gtk-build-system.scm (generate-icon-cache): Remove. (%standard-phases): Remove 'glib-or-gtk-icon-cache' phase. 宋文武
2015-09-08build: Improve information density and appearance of download progress output....* guix/build/download.scm (seconds->string): New function. (byte-count->string): New function. (progress-bar): New function. (throughput->string): Remove function. (progress-proc): Display base file name, elapsed time, and progress bar. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Steve Sprang
2015-09-07build: container: Use the same clone flags as fork(3)....The intent is to make 'clone' behave a lot more like 'primitive-fork', which calls clone(2) with SIGCHLD, CLONE_CHILD_CLEARTID, and CLONE_CHILD_SETTID flags. Notably, running 'clone' at the REPL without these flags would break the REPL beyond repair. * guix/build/syscalls.scm (CLONE_CHILD_CLEARTID, CLONE_CHILD_SETTID): New variables. * gnu/build/linux-container.scm (namespaces->bit-mask): Add CLONE_CHILD_CLEARTID and CLONE_CHILD_SETTID to bit mask. David Thompson
2015-09-07build: ruby: Avoid long build directory names....Having the hash of the source gem in the source directory file name proved to be problematic when running the test suite for the 'pg' gem that creates UNIX-domain sockets in the source directory and exceeded the 108 character limit on GNU/Linux systems. * guix/build/ruby-build-system.scm (unpack): Rename unpacked gem directory to "gem". David Thompson
2015-09-06utils: find-files: Add DIRECTORIES? and FAIL-ON-ERROR? arguments....* guix/build/utils.scm (find-files): Add DIRECTORIES? and FAIL-ON-ERROR? keyword arguments. Mark H Weaver
2015-09-06emacs-build-system: Fix a file name of info directory....* guix/build/emacs-build-system.scm (move-doc): Adjust to use "/share/info" instead of its sub-directory. Alex Kost
2015-09-05build: syscalls: Properly handle clone errors....* guix/build/syscalls.scm (clone): Catch -1 return value and throw error. David Thompson
2015-08-31build: Add R build system....* guix/build-system/r.scm: New file. * guix/build/r-build-system: New file. * Makefile.am (MODULES): Add new files. * doc/guix.texi (Build Systems): Document r-build-system. Ricardo Wurmus
2015-08-30utils: Move 'package-name->name+version' to (guix build utils)....* guix/utils.scm (package-name->name+version): Move to... * guix/build/utils.scm (package-name->name+version): ... here. New procedure. * guix/build/emacs-build-system.scm (package-name->name+version): Remove. Ludovic Courtès
2015-08-30utils: Add 'strip-store-file-name'....* guix/build/utils.scm (strip-store-file-name): New procedure. * guix/build/emacs-build-system.scm (store-directory->name-version): Remove. Update callers to use 'strip-store-file-name'. * gnu/packages/gcc.scm (make-libstdc++-doc)[arguments]: Use 'strip-store-file-name' instead of 'string-drop'. Ludovic Courtès
2015-08-30build-system/gnu: Use monotic time to measure elapsed time....* guix/build/gnu-build-system.scm (gnu-build)[elapsed-time]: New procedure. Use it, and use (current-time time-monotonic) instead of (gettimeofday). Show one digit after the comma for the elapsed time. Ludovic Courtès
2015-08-29utils: Add 'install-file'....* guix/build/utils.scm (install-file): New procedure. Ludovic Courtès
2015-08-18build: ruby: Rewrite build system to use gem archives....Co-Authored-By: Pjotr Prins <pjotr.public01@thebird.nl> * guix/build-system/ruby.scm (lower): Remove git dependency. (rubygems-uri): New procedure. * guix/build/ruby-build-system (gitify): Delete. (unpack): Use 'gem unpack' utility. (check): Add docstring. (build): Repack modified gem. (install): Rebuild unpacked gem and install it. (%standard-phases): Remove gitify and build phases. * gnu/packages/ruby.scm (ruby-hoe, ruby-rake-compiler, ruby-i18n, ruby-rspec-support, ruby-rspec-core, ruby-diff-lcs-for-rspec, ruby-rspec-expectations, ruby-rspec-mocks, ruby-rspec, bundler, ruby-useragent, ruby-bacon, ruby-arel, ruby-connection-pool, ruby-net-http-persistent, ruby-minitest, ruby-minitest-sprint, ruby-minitest-bacon, ruby-daemons, ruby-git, ruby-slop, ruby-multipart-post): Convert to new build system. * doc/guix.texi (ruby-build-system): Document the gem archive requirement. David Thompson
2015-08-17syscalls: setns: Skip binding if there is no such C function....On systems with a glibc prior to 2.14, the 'setns' function is not available. Thanks to Eric Bavier for reporting the issue. * guix/build/syscalls.scm (setns): Wrap with 'false-if-exception'. David Thompson
2015-08-06python-build-system: Fix 'get-python-version'....* guix/build/python-build-system.scm (get-python-version): Rewrite to handle multiple-digit version number components. Mark H Weaver
2015-08-01build: emacs: Fix bug and improvement robustness....* guix/build/emacs-build-system.scm (emacs-inputs): Fix matching pattern. (patch-el-files): Improve regexp pattern. Federico Beffa
2015-07-25syscalls: Add 'network-interfaces', which wraps libc's 'getifaddrs'....Based on discussions with Rohan Prinja <rohan.prinja@gmail.com>. * guix/build/syscalls.scm (<interface>): New record type. (write-interface, values->interface, unfold-interface-list, network-interfaces, free-ifaddrs): New procedures. (ifaddrs): New C struct. (%struct-ifaddrs-type, %sizeof-ifaddrs): New macros. * tests/syscalls.scm ("network-interfaces returns one or more interfaces", "network-interfaces returns \"lo\""): New tests. Ludovic Courtès
2015-07-25syscalls: 'define-c-struct' properly align reads....* guix/build/syscalls.scm (alignof*, align): New macros. (write-types, read-types): Use 'align' to compute the actual offset to read/write a value of TYPE0. Ludovic Courtès
2015-07-25syscalls: 'read-socket-address' gracefully handles unsupported families....* guix/build/syscalls.scm (PF_PACKET, AF_PACKET): New variables. (read-socket-address): Make 'index' optional. Return (vector FAMILY) when FAMILY is neither AF_INET nor AF_INET6. Ludovic Courtès
2015-07-25syscalls: 'define-c-struct' distinguishes pointers from integers....* guix/build/syscalls.scm (read-type): Add special-case for when TYPE is '*. Ludovic Courtès
2015-07-25syscalls: Rename 'network-interfaces' and 'all-network-interfaces'....* guix/build/syscalls.scm (network-interfaces): Rename to... (network-interface-names): ... this. (all-network-interfaces): Rename to... (all-network-interface-names): ... this. * gnu/services/networking.scm (dhcp-client-service): Adjust accordingly. * tests/syscalls.scm ("all-network-interfaces"): Rename to... ("all-network-interface-names"): ... this, and adjust accordingly. ("network-interfaces"): Rename to... ("network-interface-names"): ... this, and adjust accordingly. Ludovic Courtès
2015-07-19Merge branch 'master' into core-updatesMark H Weaver
2015-07-18build-system/ruby: Add #:gem-flags parameter....* guix/build-system/ruby.scm (build): add 'gem-flags' key * guix/build/ruby-build-system.scm (build): use 'gem-flags' key * doc/guix.texi (Build Systems): Mention #:gem-flags. Co-authored-by: Ludovic Courtès <ludo@gnu.org> pjotrp
2015-07-17syscalls: Struct deserializer can now return arbitrary objects....* guix/build/syscalls.scm (read-types): Add RETURN and VALUES parameters. (define-c-struct): Add WRAP-FIELDS parameter and pass it to 'read-types'. (sockaddr-in, sockaddr-in6): Add first argument that uses 'make-socket-address'. (read-socket-address): Remove 'match' on the result of 'read-sockaddr-in' and 'read-sockaddr-in6'. Ludovic Courtès
2015-07-17download: Remove spurious warning about 'https_proxy'....* guix/build/download.scm (open-connection-for-uri)[with-https-proxy]: Warn about 'https_proxy' only when 'getenv' returns a non-empty string. Ludovic Courtès
2015-07-16python-build-system: Add 'ensure-no-mtimes-pre-1980' phase....* guix/build/python-build-system.scm (ensure-no-mtimes-pre-1980): New phase. (%standard-phases): Add it after 'unpack'. Mark H Weaver
2015-07-13build-system/gnu: Pass --build=<triplet> to configure by default....* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Accept #:build keyword argument. Pass it to 'gnu-build' on the build side. * guix/build/gnu-build-system.scm (configure): Accept #:build keyword argument. Unless it is false, pass --build to configure. Mark H Weaver
2015-07-08build: Add 'emacs-build-system'....* Makefile.am (MODULES): Add 'guix/build-system/emacs.scm' and 'guix/build/emacs-build-system.scm'. * guix/build-system/emacs.scm: New file. * guix/build/emacs-build-system.scm: New file. * doc/guix.texi (Build Systems): Document it. Federico Beffa
2015-07-08build: emacs-utils: Add 'emacs-byte-compile-directory'....* guix/build/emacs-utils.scm (emacs-byte-compile-directory): New procedure. Federico Beffa
2015-07-07build: syscalls: Add pivot-root....* guix/build/syscalls.scm (pivot-root): New procedure. * tests/syscalls.scm ("pivot-root"): New test. David Thompson
2015-07-07build: syscalls: Add setns....* guix/build/syscalls.scm (setns): New procedure. * tests/syscalls.scm ("setns"): New test. squash: setns David Thompson
2015-07-07build: syscalls: Add clone....* guix/build/syscalls.scm (clone): New procedure. (CLONE_NEWNS, CLONE_NEWUTS, CLONE_NEWIPC, CLONE_NEWUSER, CLONE_NEWPID, CLONE_NEWNET): New variables. * tests/syscalls.scm ("clone"): New test. David Thompson
2015-07-07build: syscalls: Add mkdtemp!...* guix/build/syscalls.scm (mkdtemp!): New procedure. * tests/syscalls.scm ("mkdtemp!"): New test. David Thompson
2015-07-07build: syscalls: Add unmount flags....* guix/build/syscalls.scm (MNT_FORCE, MNT_DETACH, MNT_EXPIRE) (UMOUNT_NOFOLLOW): New variables. David Thompson
2015-07-07build: syscalls: Add additional mount flags....* guix/build/syscalls.scm (MS_NOSUID, MS_NODEV, MS_NOEXEC, MS_STRICTATIME): New variables. David Thompson
2015-07-07build: ruby: Run 'rake gem' when gemspec is missing....* guix/build/ruby-build-system.scm (build): Run 'rake gem' when there is no gemspec in the source tree. Co-Authored-By: David Thompson <davet@gnu.org> pjotrp
2015-06-11build-system/haskell: install config for any package that creates it....A Cabal package is allowed to declare an "empty" library, in an otherwise executable-only package, for the purpose of allowing Cabal to use it as a dependency for other packages. See e.g. hspec-discover. * guix/build/haskell-build-system.scm (register): Unconditionally call setup script with "register", and install any config file generated. Eric Bavier
2015-05-27profiles: Export 'ensure-writable-directory' and use it....* guix/build/profiles.scm (ensure-writable-directory): Export. * guix/profiles.scm (gtk-icon-themes)[build]: Remove '@@' form and use (guix build profiles). Ludovic Courtès
2015-05-22services: swap: Use 'restart-on-EINTR'....* gnu/services/base.scm (swap-service)[start, stop]: Use 'restart-on-EINTR'. * guix/build/syscalls.scm (swapoff): Fix typo in 'throw' arguments. Ludovic Courtès
2015-05-22syscalls: Add 'restart-on-EINTR'....* guix/build/syscalls.scm (call-with-restart-on-EINTR): New procedure. (restart-on-EINTR): New macro. Ludovic Courtès
2015-05-18profiles: Gracefully deal with packages containing an etc/ symlink....This fixes a bug whereby 'guix package -i gcc-toolchain' would fail in 'build-profile'. This is because in 'gcc-toolchain', etc/ is a symlink, and so the 'scandir' call in 'unsymlink' would return #f instead of returning a list. Reported by Andreas Enge <andreas.enge@inria.fr>. * guix/build/profiles.scm (ensure-writable-directory)[unsymlink]: Append "/" to TARGET before calling 'scandir'. * tests/profiles.scm ("etc/profile when etc/ is a symlink"): New test. Ludovic Courtès
2015-05-17syscalls: Add 'set-network-interface-up'....* guix/build/syscalls.scm (set-network-interface-up): New procedure. Ludovic Courtès
2015-05-08profiles: Ensure the profile's etc/ directory is writable....Reported by 宋文武 <iyzsong@gmail.com>. * guix/build/profiles.scm (build-etc/profile, ensure-writable-directory): New procedures. (build-profile): Use them. * tests/profiles.scm ("etc/profile when etc/ already exists"): New test. Ludovic Courtès
2015-05-06profiles: Generate an 'etc/profile' file....Suggested by 宋文武 <iyzsong@gmail.com> in <http://bugs.gnu.org/20255>. * guix/build/profiles.scm (abstract-profile, write-environment-variable-definition): New procedures. (build-profile): Add #:search-paths parameter. Create OUTPUT/etc/profile. * guix/profiles.scm (profile-derivation)[builder]: Add 'search-paths' variable and pass it to 'build-profile'. Adjust #:modules argument. * tests/profiles.scm ("etc/profile"): New test. * doc/guix.texi (Invoking guix package): Mention etc/profile. Ludovic Courtès