summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Expand)Author
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
2015-05-06profiles: Move build code to (guix build profiles)....* guix/build/profiles.scm: New file. * Makefile.am (MODULES): Add it. * guix/profiles.scm (profile-derivation)[builder]: Call out to 'build-profile'. Add (guix build profiles) to the #:modules argument. Ludovic Courtès
2015-05-06download: Work around Guile small-receive-buffer bug....Previously, code using directly (guix build download) was still affected by <http://bugs.gnu.org/15368>. This includes source derivations, the 'guix download' command, and (guix gnu-maintenance). 'guix substitute' was unaffected since it used (guix http-client), which already had the fix. * guix/http-client.scm (open-socket-for-uri): Remove. (http-fetch): Remove #:buffered? argument to 'open-socket-for-uri'; use 'setvbuf' instead. * guix/scripts/substitute.scm (fetch): Likewise. * guix/build/download.scm (open-socket-for-uri): New procedure, taken from guix/http-client.scm, but without the #:buffered? parameter. Ludovic Courtès
2015-05-06download: Reinstate buffering on connection sockets....* guix/build/download.scm (open-connection-for-uri): Reinstate call to 'setvbuf' inadvertently removed in d17551d9. Ludovic Courtès
2015-05-01Merge branch 'master' into core-updatesLudovic Courtès
2015-05-01download: Simplify 'open-connection-for-uri' to support HTTP proxies....Partly fixes <http://bugs.gnu.org/20402>. Reported by Joshua Randall <jcrandall@alum.mit.edu>. * guix/build/download.scm (open-connection-for-uri): Rewrite to be a small wrapper around 'open-socket-for-uri'. This procedure was initially introduced in d14ecda to work around the lack of NSS modules during bootstrap but that has become unnecessary since 0621349, which introduced a bootstrap Guile that uses static NSS modules (from commit d3b5972.) On Guile >= 2.0.10, this allows the 'http_proxy' environment variable to be used. Ludovic Courtès
2015-04-23build-system/gnu: #:validate-runpath? now defaults to #t....* guix/build/gnu-build-system.scm (validate-runpath): Change default value of VALIDATE-RUNPATH? to #t. Ludovic Courtès
2015-04-23build-system/gnu: Gracefully handle dangling symlinks....Fixes <http://bugs.gnu.org/20081>. Reported by Tomáš Čech <tcech@suse.cz>. * guix/build/gnu-build-system.scm (patch-source-shebangs): Remove files that don't pass 'file-exists?'. (patch-generated-file-shebangs): Likewise. Ludovic Courtès
2015-04-23gremlin: Add support for the expansion of $ORIGIN in RUNPATH....* guix/build/gremlin.scm (expand-variable, expand-origin): New procedures. (validate-needed-in-runpath): Map 'expand-origin' to the RUNPATH field of DYNINFO. * tests/gremlin.scm ("expand-origin"): New test. Ludovic Courtès
2015-04-16build-system/haskell: Adjust to new 'modify-phases' syntax....* guix/build/haskell-build-system.scm (%standard-phases): Add missing quotes, as needed since commit f8503e2. Ludovic Courtès
2015-04-09Merge branch 'master' into core-updatesLudovic Courtès
2015-04-08build-system/haskell: Update configure flags, 'haddock' and %standard-phases....* guix/build/haskell-build-system.scm (%standard-phases): move 'haddock phase before 'install phase. * guix/build/haskell-build-system.scm (haddock): Simplify it as the 'install phase takes care of copying files. * guix/build/haskell-build-system.scm (configure): Add '--libsubdir' flag. Fix use of '--extra-include-dirs' and '--extra-lib-dirs' flags. Use 'doc', 'bin' and 'lib' outputs if they are defined. * guix/build/haskell-build-system.scm (make-ghc-package-database, register): Aligh location of 'package.conf.d' directory with '--libsubdir' flag. Federico Beffa
2015-04-08Merge branch 'master' into core-updates宋文武
2015-04-06utils: 'find-files' does not follow symlinks by default....Fixes <http://bugs.gnu.org/20081>. Reported by Tomáš Čech <sleep_walker@suse.cz>. * guix/build/utils.scm (find-files): Add #:stat parameter. Pass it as last argument to 'file-system-fold'. Ludovic Courtès
2015-04-06build-system/gnu: Add docstring to 'delete-info-dir-file'....* guix/build/gnu-build-system.scm (delete-info-dir-file): Add docstring. Federico Beffa
2015-04-06build-system/gnu: Add 'delete-info-dir-file' phase....* guix/build/gnu-build-system.scm (delete-info-dir-file): New procedure. (%standard-phases): Use it. Federico Beffa
2015-04-05gremlin: Ignore non-store file names in RUNPATH and warn about them....* guix/build/gremlin.scm (validate-needed-in-runpath)[runpath]: Add (filter absolute-file-name? ...). Emit a warning when RUNPATH file names that do not match 'store-file-name?'. Change format of error message to begin with file name. * guix/build/utils.scm (store-file-name?): New procedure. Ludovic Courtès
2015-04-04build-system: Add haskell-build-system....* guix/build-system/haskell.scm: New file. * guix/build/haskell-build-system.scm: New file. * doc/guix.texi: Add section on 'haskell-build-system'. Federico Beffa
2015-04-03build-system/glib-or-gtk: Wrap libexec programs....* guix/build/glib-or-gtk-build-system.scm (wrap-all-programs): Also wrap binaries in libexec/, such as those launched by dbus services. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Andy Wingo
2015-04-01build-system/gnu: Add 'validate-runpath' phase....* guix/build/gnu-build-system.scm (every*, validate-runpath): New procedures. (%standard-phases): Add 'validate-runpath'. * guix/build-system/gnu.scm (%gnu-build-system-modules): Add (guix build gremlin) and (guix elf). (gnu-build): Add #:validate-runpath?. [builder]: Pass it. (gnu-cross-build): Likewise. * gnu/packages/base.scm (glibc)[arguments]: Add #:validate-runpath? #f. Ludovic Courtès
2015-04-01utils: Make the second 'find-files' argument optional....* guix/build/utils.scm (find-files): Make 'pred' optional. Ludovic Courtès
2015-04-01gremlin: Guard against invalid ELF segments....* guix/build/gremlin.scm (&elf-error, &invalid-segment-size): New error condition types. (dynamic-link-segment): Compare SEGMENT's offset + size to ELF's total size. (validate-needed-in-runpath): Wrap body in 'guard' form. Ludovic Courtès