summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Collapse)Author
2015-05-08profiles: Ensure the profile's etc/ directory is writable.Ludovic Courtès
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.
2015-05-06profiles: Generate an 'etc/profile' file.Ludovic Courtès
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.
2015-05-06profiles: Move build code to (guix build profiles).Ludovic Courtès
* 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.
2015-05-06download: Work around Guile small-receive-buffer bug.Ludovic Courtès
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.
2015-05-06download: Reinstate buffering on connection sockets.Ludovic Courtès
* guix/build/download.scm (open-connection-for-uri): Reinstate call to 'setvbuf' inadvertently removed in d17551d9.
2015-05-01Merge branch 'master' into core-updatesLudovic Courtès
2015-05-01download: Simplify 'open-connection-for-uri' to support HTTP proxies.Ludovic Courtès
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.
2015-04-23build-system/gnu: #:validate-runpath? now defaults to #t.Ludovic Courtès
* guix/build/gnu-build-system.scm (validate-runpath): Change default value of VALIDATE-RUNPATH? to #t.
2015-04-23build-system/gnu: Gracefully handle dangling symlinks.Ludovic Courtès
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.
2015-04-23gremlin: Add support for the expansion of $ORIGIN in RUNPATH.Ludovic Courtès
* 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.
2015-04-16build-system/haskell: Adjust to new 'modify-phases' syntax.Ludovic Courtès
* guix/build/haskell-build-system.scm (%standard-phases): Add missing quotes, as needed since commit f8503e2.
2015-04-09Merge branch 'master' into core-updatesLudovic Courtès
2015-04-08build-system/haskell: Update configure flags, 'haddock' and %standard-phases.Federico Beffa
* 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.
2015-04-08Merge branch 'master' into core-updates宋文武
2015-04-06utils: 'find-files' does not follow symlinks by default.Ludovic Courtès
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'.
2015-04-06build-system/gnu: Add docstring to 'delete-info-dir-file'.Federico Beffa
* guix/build/gnu-build-system.scm (delete-info-dir-file): Add docstring.
2015-04-06build-system/gnu: Add 'delete-info-dir-file' phase.Federico Beffa
* guix/build/gnu-build-system.scm (delete-info-dir-file): New procedure. (%standard-phases): Use it.
2015-04-05gremlin: Ignore non-store file names in RUNPATH and warn about them.Ludovic Courtès
* 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.
2015-04-04build-system: Add haskell-build-system.Federico Beffa
* guix/build-system/haskell.scm: New file. * guix/build/haskell-build-system.scm: New file. * doc/guix.texi: Add section on 'haskell-build-system'.
2015-04-03build-system/glib-or-gtk: Wrap libexec programs.Andy Wingo
* 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>
2015-04-01build-system/gnu: Add 'validate-runpath' phase.Ludovic Courtès
* 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.
2015-04-01utils: Make the second 'find-files' argument optional.Ludovic Courtès
* guix/build/utils.scm (find-files): Make 'pred' optional.
2015-04-01gremlin: Guard against invalid ELF segments.Ludovic Courtès
* 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.
2015-04-01gremlin: Add libnsl to libc's library list.Ludovic Courtès
* guix/build/gremlin.scm (%libc-libraries): Add "libnsl.so".
2015-03-31utils: 'find-files' takes an arbitrary predicate as its second argument.Ludovic Courtès
* guix/build/utils.scm (file-name-predicate): New procedure. (find-files): Rename second parameter to 'pred'. When 'pred' is not a procedure, call 'file-name-predicate'. Use PRED instead of 'regexp-exec' in the leaf procedure.
2015-03-31utils: 'modify-phases' no longer introduces quotes.Ludovic Courtès
Suggested by Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>. * guix/build/utils.scm (%modify-phases): Remove quotes. * guix/build/cmake-build-system.scm (%standard-phases): Adjust accordingly. * guix/build/glib-or-gtk-build-system.scm (%standard-phases): Likewise. * guix/build/gnu-dist.scm (%dist-phases): Likewise. * guix/build/perl-build-system.scm (%standard-phases): Likewise. * guix/build/python-build-system.scm (%standard-phases): Likewise. * guix/build/ruby-build-system.scm (%standard-phases): Likewise. * guix/build/waf-build-system.scm (%standard-phases): Likewise. * gnu/packages/bash.scm, gnu/packages/code.scm, gnu/packages/gl.scm, gnu/packages/gnome.scm, gnu/packages/graphics.scm, gnu/packages/image.scm, gnu/packages/key-mon.scm, gnu/packages/ocr.scm, gnu/packages/plotutils.scm, gnu/packages/search.scm, gnu/packages/video.scm: Likewise.
2015-03-31Add (guix build gremlin).Ludovic Courtès
* guix/build/gremlin.scm, tests/gremlin.scm: New files. * Makefile.am (MODULES): Add guix/build/gremlin.scm. (SCM_TESTS): Add tests/gremlin.scm.
2015-03-17build: ruby: Set $GEM_HOME that matches Ruby's $GEM_PATH.David Thompson
* guix/build/ruby-build-system.scm (install): Ignore the Ruby patch version when creating $GEM_HOME.
2015-03-14gnu: cmake: Add CMAKE_PREFIX_PATH as a native search path, and dropAndreas Enge
CMAKE_LIBRARY_PATH and CMAKE_INCLUDE_PATH from the cmake build system. * gnu/packages/cmake.scm (cmake)[native-search-paths]: New field. * guix/build/cmake-build-system.scm (configure): Drop environment variables CMAKE_LIBRARY_PATH and CMAKE_INCLUDE_PATH.
2015-03-04Merge branch 'core-updates'.Ludovic Courtès
2015-03-02build: ruby: Install executables in /bin.David Thompson
* guix/build/ruby-build-system.scm (install): Add '--bindir' flag to gem command.
2015-03-02build: ruby: Add gitify phase.David Thompson
* guix/build-system/ruby.scm (lower): Add git as implicit input. * guix/build/ruby-build-system.scm (gitify): New procedure. (%standard-phases): Add gitify phase.
2015-03-01Revert "build-system/gnu: Keep the sloppy conversion strategy during bootstrap."Ludovic Courtès
This reverts commit b479c3ddaf85c831e34888229849bc1ce34419de. This commit was the result of an incorrect characterization of the problem; see the log of commit 87c8b92 for details.
2015-03-01build-system/gnu: Keep the sloppy conversion strategy during bootstrap.Ludovic Courtès
* guix/build/gnu-build-system.scm (gnu-build): Leave %DEFAULT-PORT-CONVERSION-STRATEGY unchanged when 'string->bytevector' fails to convert to ISO-8859-1. This is an attempt to work around the build failures at <http://hydra.gnu.org/build/263002>.
2015-02-28utils: Treat 'configure' and Makefiles with an 8-bit encoding.Ludovic Courtès
* guix/build/utils.scm (patch-makefile-SHELL, patch-/usr/bin/file): Wrap 'substitute*' in 'with-fluids'. Fixes <http://hydra.gnu.org/build/262895>.
2015-02-28packages: Set the port conversion strategy to 'error'.Ludovic Courtès
Suggested by Mark H Weaver. * guix/build/gnu-build-system.scm (gnu-build): Set %DEFAULT-PORT-CONVERSION-STRATEGY to 'error. * guix/packages.scm (patch-and-repack)[builder]: Likewise.
2015-02-28utils: Change 'patch-shebangs' to use binary input.Ludovic Courtès
* guix/build/utils.scm (get-char*): New procedure. (patch-shebang): Use it instead of 'read-char'. (fold-port-matches): Remove local 'get-char' and use 'get-char*' instead.
2015-02-27download: Comment on lack of progress report with chunked encoding.Ludovic Courtès
* guix/build/download.scm (progress-proc): Add comment.
2015-02-27download: Measure and display the throughput.Ludovic Courtès
* guix/build/download.scm (duration->seconds, throughput->string): New procedures. (progress-proc): Measure and display the throughput.
2015-02-27download: Abstract the receive buffer size.Ludovic Courtès
* guix/build/download.scm (%http-receive-buffer-size): New variable. (progress-proc, tls-wrap, http-fetch): Use it.
2015-02-27utils: Call the progress-report proc when 'dump-port' starts.Ludovic Courtès
* guix/build/utils.scm (dump-port): Add call to PROGRESS at the beginning.
2015-02-27build-system/gnu: Set $LC_ALL (or similar) to the chosen locale.Ludovic Courtès
Suggested by Mark H Weaver. * guix/build/utils.scm (locale-category->string): New procedure. * guix/build/gnu-build-system.scm (install-locale): Add 'setenv' call.
2015-02-27build-system/cmake: Enable verbose output from Makefile builds.宋文武
* guix/build/cmake-build-system.scm (configure): Pass -DCMAKE_VERBOSE_MAKEFILE=ON to cmake.
2015-02-26build-system/gnu: Add 'install-locale' phase.Ludovic Courtès
* guix/build/gnu-build-system.scm (install-locale): New procedure. (%standard-phases): Add it. * guix/build-system/gnu.scm (gnu-build): Add #:locale and pass it to the build script. (gnu-cross-build): Likewise.
2015-02-26build-system: Use 'modify-phases'.Ludovic Courtès
* guix/build/cmake-build-system.scm (%standard-phases): Use 'modify-phases' instead of alist-*. * guix/build/glib-or-gtk-build-system.scm (%standard-phases): Likewise. * guix/build/gnu-dist.scm (%dist-phases): Likewise. * guix/build/perl-build-system.scm (%standard-phases): Likewise. * guix/build/python-build-system.scm (%standard-phases): Likewise. * guix/build/ruby-build-system.scm (%standard-phases): Likewise. * guix/build/waf-build-system.scm (%standard-phases): Likewise.
2015-02-26utils: Add 'modify-phases'.Ludovic Courtès
* guix/build/utils.scm (modify-phases): New macro.
2015-02-26build-system/gnu: Add support for zip archives.Ludovic Courtès
Fixes <http://bugs.gnu.org/19866>. Reported by Andreas Enge <andreas@enge.fr>. * guix/build/gnu-build-system.scm (unpack): Use 'unzip' when SOURCE ends in '.zip'.
2015-02-26Merge branch 'master' into core-updatesLudovic Courtès
2015-02-24download: Cope with Guile 2.0.6 or earlier.Mark H Weaver
* guix/build/download.scm: Do not attempt to support relative URIs in "Location" headers if 'declare-relative-uri-header!' is not present. This is the case for Guile 2.0.6 or earlier.
2015-02-19download: Handle HTTP redirects to relative URI references.Mark H Weaver
Fixes <http://bugs.gnu.org/19840>. Reported by Ricardo Wurmus <rekado@elephly.net>. * guix/build/download.scm: On Guile 2.0.11 or earlier, redefine the http "Location" header to accept relative URIs. (resolve-uri-reference): New exported procedure. (http-fetch): Use 'resolve-uri-reference' to resolve redirections. * guix/http-client.scm (http-fetch): Use 'resolve-uri-reference'