summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Expand)Author
2017-09-20download: Don't report the progress too fast....* guix/utils.scm (<progress-reporter>): New record type. (call-with-progress-reporter): New procedure. * guix/build/download.scm (dump-port*, rate-limited, progress-reporter/file): New procedures. (ftp-fetch, http-fetch): Use 'dump-port*'. (progress-proc): Remove procedure. * guix/scripts/substitute.scm (progress-report-port): Rewrite in terms of <progress-reporter>. (process-substitution): Adjust accordingly. 宋文武
2017-09-16build-system: Add 'meson-build-system'....* Makefile.am (MODULES): Add 'guix/build-system/meson.scm' and 'guix/build/meson-build-system.scm'. * guix/build-system/meson.scm: New file. * guix/build/meson-build-system.scm: New file. * doc/guix.texi (Build Systems): Add 'meson-build-system'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Peter Mikkelsen
2017-09-05Handle the same HTTP redirects everywhere....* guix/build/download.scm (http-fetch): Complete the hard-coded list of HTTP redirection status codes. * guix/http-client.scm (http-fetch): Likewise. * guix/scripts/lint.scm (probe-uri): Likewise. Tobias Geerinckx-Rice
2017-09-03build: Fix helpful output for emacs-build-system install phase....Detecting when no files were installed was broken when switching to use cond. Test with (not (null? ...)) to fix this. * guix/build/emacs-build-system.scm (install): Fix detecting when no files were installed. Christopher Baines
2017-09-01build: emacs-build-system: Make the install phase more helpful....Modify the install phase to detect when nothing has been installed, and error if this happens. This is preferable to continuing, and allowing the next phase to fail. Also, when nothing can be found to be installed, print out each file that was considered, along with the regular expressions that were used to include and exclude it. * gnu/build/emacs-build-system.scm (install-file?): Add additional error checking and logging. Christopher Baines
2017-08-26Merge branch 'core-updates'Marius Bakke
2017-08-24graft: Correctly replace references near the end of the scan buffer....Fixes <http://bugs.gnu.org/28212>. Reported by Leo Famulari <leo@famulari.name>. * guix/build/graft.scm (replace-store-references): When I >= END, check whether WRITTEN > END and call 'get-bytevector-n!' when it is. * tests/grafts.scm (buffer-size): New variable. ("replace-store-references, <http://bugs.gnu.org/28212>"): New test. Ludovic Courtès
2017-08-06Merge branch 'master' into core-updatesMark H Weaver
2017-08-04build: Add minify build system....* guix/build-system/minify.scm: New file. * guix/build/minify-build-system: New file. * Makefile.am (MODULES): Add new files. * doc/guix.texi (Build Systems): Document minify-build-system. Ricardo Wurmus
2017-07-23Merge branch 'master' into core-updatesLeo Famulari
2017-07-18syscalls: Delay resolution of "scm_set_automatic_finalization_enabled"....* guix/build/syscalls.scm (%set-automatic-finalization-enabled?!) [guile-2.2]: Wrap in 'delay'. Ludovic Courtès
2017-07-12syscalls: Add network-interface-running?...* guix/build/syscalls.scm (network-interface-running?): New variable. Export it. * tests/syscalls.scm: Add test. Co-authored-by: John Darrington <jmd@gnu.org> Danny Milosavljevic
2017-07-10Merge branch 'master' into core-updatesLeo Famulari
2017-07-10syscalls: Adjust 'dirent64' struct for GNU/Hurd....Reported by rennes@openmailbox.org. * guix/build/syscalls.scm (file-type->symbol): New procedure. (%struct-dirent-header): Rename to... (%struct-dirent-header/linux): ... this. Rename introduced bindings as well. (%struct-dirent-header/hurd): New C struct. (define-generic-identifier): New macro. (read-dirent-header, %struct-dirent-header, sizeof-dirent-header): Define in terms of 'define-generic-identifier'. Ludovic Courtès
2017-07-09build-system: texlive: Build union in configure phase....This allows us to use texmf.cnf instead of having to set all required environment variables manually. * guix/build/texlive-build-system.scm (configure): New procedure. (build): Simplify. (%standard-phases): Add configure phase. * guix/build-system/texlive.scm (texlive-build): Include (guix build union) in modules. (%texlive-build-system-modules): Likewise. Ricardo Wurmus
2017-07-09build-system: texlive: Only build packages in the current directory....* guix/build/texlive-build-system.scm (build): Use scandir instead of find-files. Ricardo Wurmus
2017-06-30Merge branch 'master' into core-updatesLudovic Courtès
2017-06-30vm: Estimate the disk size by default....* gnu/build/vm.scm (estimated-partition-size): New procedure. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Change #:disk-image-size default to 'guess. [builder]: When DISK-IMAGE-SIZE is 'guess, use 'estimated-partition-size' and compute and estimate of the image size. (qemu-image): Likewise. * guix/build/store-copy.scm (file-size, closure-size): New procedures. * guix/scripts/system.scm (%default-options): Change 'image-size' to 'guess. * doc/guix.texi (Building the Installation Image): Remove '--image-size' flag from example. (Invoking guix system): Document the image size estimate. Ludovic Courtès
2017-06-18Merge branch 'master' into core-updatesMark H Weaver
2017-06-18syscalls: 'opendir*' error message shows the file name....* guix/build/syscalls.scm (opendir*): Add NAME to the 'system-error' message. Ludovic Courtès
2017-06-16syscalls: Add 'scandir*'....* guix/build/syscalls.scm (%struct-dirent-header): New C struct. (string->pointer/utf-8, pointer->string/utf-8): New procedures. (opendir*, closedir*, readdir*, scandir*): New procedures. * tests/syscalls.scm ("scandir*, ENOENT") ("scandir*, ASCII file names", "scandir*, UTF-8 file names") ("scandir*, properties): New tests. Ludovic Courtès
2017-06-15build-system: Add 'texlive-build-system'....* guix/build-system/texlive.scm: New file. * guix/build/texlive-build-system.scm: New file. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document it. * gnu/packages/tex.scm (%texlive-tag, %texlive-revision): Remove variables. (texlife-ref): Remove procedure. Ricardo Wurmus
2017-06-11build-system/gnu: Work around 'time-monotonic' bug in Guile 2.2.2....Fixes <http://bugs.gnu.org/27303>. Reported by Leo Famulari <leo@famulari.name>. * guix/build/gnu-build-system.scm (time-monotonic) [guile-2.2]: Define. Ludovic Courtès
2017-06-10Merge branch 'master' into core-updatesMarius Bakke
2017-06-08build-system: emacs: Factorize include/exclude default arguments....The `install' phase of the emacs-build-system contained default arguments duplicated from the host side `emacs-build' procedure. This change factorizes them so that: 1. They are not duplicated. 2. They can be reused and extended easily when defining emacs packages. * guix/build/emacs-build-system.scm (%default-include, %default-exclude): New variables. (install): Use %default-include and %default-exclude as default arguments. * guix/build-system/emacs.scm: Use and re-export %default-include, %default-exclude from (guix build emacs-build-system). (emacs-build): Use %default-include and %default-exclude as default arguments. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net> Maxim Cournoyer
2017-06-03Merge branch 'master' into core-updates... Conflicts: gnu/packages/image.scm (incorporated libtiff graft) Marius Bakke
2017-06-02syscalls: Provide 'free-disk-space'....* guix/build/syscalls.scm (free-disk-space): New procedure. * guix/scripts/gc.scm (guix-gc)[ensure-free-space]: Use it instead of 'statfs'. Ludovic Courtès
2017-06-01utils: Add helper for invoking programs....* guix/build/utils.scm (invoke): New variable. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Danny Milosavljevic
2017-05-31build: font: Support font collection files....* guix/build/font-build-system.scm (install): Support TrueType Collection (TTC) and OpenType Collection (OTC) files. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Alex Griffin
2017-05-30build-system/gnu: 'compress-documentation' phase handles double symlinks....The compress-documentation phase was breaking recursive symbolic links used for manuals, which was made visible by the `find-files' call in the recently added `manual-database' profile hook. See <http://bugs.gnu.org/26771>. * guix/build/gnu-build-system.scm (compress-documentation) [points-to-symbolic-link?]: New procedure. [maybe-compress-directory]: Use `points-to-symbolic-link?' to filter out symbolic links that shouldn't be retargetted, and re-order the calls to `retarget-symlink' and `documentation-compressor'. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer
2017-05-30build-system/cmake: Add support for cross compilation....Fixes <https://bugs.gnu.org/26897>. * guix/build-system/gnu.scm: Export standard-cross-packages. * guix/build-system/cmake.scm (cmake-cross-build): New procedure. (lower): Add support for cross-builds. * guix/build/cmake-build-system.scm (configure): Handle "target" argument. Ricardo Wurmus
2017-05-30download: Work around GnuTLS bug with UTF-8 certificate file names....Reported by Mark H Weaver <mhw@netris.org> at <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26948#17>. * guix/build/download.scm (set-certificate-credentials-x509-trust-file!*): New procedure. (make-credendials-with-ca-trust-files): Use it instead of 'set-certificate-credentials-x509-trust-file!'. Ludovic Courtès
2017-05-28syscalls: Add 'thread-name' and 'set-thread-name'....* guix/build/syscalls.scm (PR_SET_NAME, PR_GET_NAME) (%max-thread-name-length): New variables. (%prctl, set-thread-name, thread-name): New procedures. * tests/syscalls.scm ("set-thread-name"): New test. Ludovic Courtès
2017-05-28build-system: Add 'font-build-system'....* Makefile.am (MODULES): Add 'guix/build-system/font.scm' and 'guix/build/font-build-system.scm'. * guix/build-system/font.scm: New file. * guix/build/font-build-system.scm: New file. * doc/guix.texi (Build Systems): Add 'font-build-system'. Arun Isaac
2017-05-27Merge branch 'master' into core-updatesMark H Weaver
2017-05-26utils: Re-export 'delete'....* guix/build/utils.scm: Reexport 'delete' binding. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Sergei Trofimovich
2017-05-25pull: Catch '&missing-dependency-error' raised by 'source-module-closure'....Fixes <http://bugs.gnu.org/26987>. Reported by Mathieu Othacehe <m.othacehe@gmail.com>. * guix/build/pull.scm (depends-on-guile-ssh?): Remove. (has-all-its-dependencies?): New procedure. (build-guix): Use it to filter source files. Ludovic Courtès
2017-05-23build-system: emacs: Install only a subset of files....* guix/build/emacs-build-system.scm (install): Install files matching #:include while excluding files matching #:exclude. * guix/build-system/emacs.scm (emacs-build): Add keyword arguments #:include and #:exclude. Arun Isaac
2017-05-23build: emacs: Fix `store-file->elisp-source-file'....This prevents a ".el.el" extension for source files with no version number in their file name. * guix/build/emacs-build-system.scm (store-file->elisp-source-file): Remove ".el" extension from file name before splitting to name and version. Arun Isaac
2017-05-18union: Gracefully handle dangling symlinks in the input....Fixes <http://bugs.gnu.org/26949>. Reported by Pjotr Prins <pjotr.public12@thebird.nl>. * guix/build/union.scm (file-is-directory?): Return #f when FILE does not exist or is a dangling symlink. (file=?): Pass #f as a second argument to 'stat'; return #f when both ST1 or ST2 is #f. * tests/profiles.scm (test-equalm): New macro. ("union vs. dangling symlink"): New test. Ludovic Courtès
2017-05-16build-system/asdf: Handle tests defined in external systems....* guix/build-system/asdf.scm (asdf-build): Add a #:test-asd-file argument. [builder]: Pass it to the build system. (package-with-build-system)[transform]: Strip it from source systems' arguments. * guix/build/asdf-build-system.scm (check): Pass the fully qualified path to it on to the test-system procedure. * guix/build/lisp-utils.scm (test-system): Load the file, or otherwise one of the often used names for it, before running the tests. Adjust the docstring accordingly. Andy Patterson
2017-05-16build-system/asdf: Retain references to source files for binary outputs....In support of long-running programs in which the users would like to be able to jump to the source of a definition of any of the dependencies (itself included) of the program. * guix/build/asdf-build-system.scm (library-outputs): Move from here ... * guix/build/lisp-utils.scm (library-outputs): ... to here. (build-program): Accept dependency-prefixes argument, to allow the caller to specify references which should be retained. Default to the library's output. (build-image): Likewise. (generate-executable): Likewise. * gnu/packages/lisp.scm (sbcl-stumpwm+slynk, sbcl-slynk, sbcl-stumpwm): Adjust accordingly to the new interface. (sbcl-stumpwm+slynk)[native-inputs]: Move to ... [inputs]: ... here. Andy Patterson
2017-05-16build-system/asdf: Simplify the use of lisp-eval-program....Accept a list of statements, each run within its own `--eval' argument. This allows statements to use reader package namespacing after a package has been loaded. * guix/build/lisp-utils.scm (spread-statements): New procedure. (lisp-invoke): Rename to ... (lisp-invocation): ... this. Use spread-statements. Change interface to accept list of statements instead of a single statement. (asdf-load-all-systems): Simplify returned statements. (compile-system): Simplify the program passed to `lisp-eval-program'. (test-system): Likewise. (generate-executable-for-system): Likewise. Accept the full symbol describing the asdf operation to use. (generate-executable): Document the change. (build-program, build-image): Use the new interface. Andy Patterson
2017-05-16build-system/asdf: Handle unusually-named systems....* guix/build/lisp-utils.scm (valid-char-set): New variable. (normalize-string): New procedure. (compiled-system): Truncate the name of a system which contains slashes. (generate-system-definition, make-asd-file): Use `normalize-string' to alter the names of the created system and its dependencies. * guix/build/asdf-build-system.scm (create-asd-file): Normalize the name of the asd file being created. Andy Patterson
2017-05-16build-system/asdf: Always pre-load the system's definition file....* guix/build-system/asdf.scm (asdf-build)[builder]: Pass a default `#:asd-file' argument to the build procedure, using the system's name. * guix/build/asdf-build-system.scm (build, check): Adjust to assume that `asd-file' will always be a string. * guix/build/lisp-utils.scm (compile-system, system-dependencies) (test-system): Likewise. Andy Patterson
2017-05-16build-system/asdf: Pass the system name as an argument to the builder....* guix/build-system/asdf.scm (asdf-build): Use the user-defined system name, or calculate it from the package's full name. [builder]: Pass the value along to the build procedure. (package-with-build-system): Remove #:asd-system-name from source packages' arguments. * guix/build/asdf-build-system.scm: Adjust accordingly. * guix/build/lisp-utils.scm (remove-lisp-from-name): Delete variable. Andy Patterson
2017-05-16build-system/asdf: Parameterize the lisp type and implementation globally....* guix/build-system/asdf.scm (asdf-build)[builder]: Parameterize %lisp-type and %lisp before invoking the build procedure. Don't pass #:lisp-type as an argument to said procedure. * guix/build/asdf-build-system.scm: Adjust accordingly. (source-install-prefix): Rename to %lisp-source-install-prefix. * guix/build/lisp-utils.scm: Adjust accordingly. (%lisp-type): New parameter. (bundle-install-prefix): Rename to %bundle-install-prefix. * gnu/packages/lisp.scm: Adjust accordingly. Andy Patterson
2017-05-16build-system/asdf: Make #:lisp a package argument....* guix/build-system/asdf.scm (lower): Change argument name to `lisp-type'. (asdf-build): Change argument name to `lisp-type'. Remove `lisp' as an argument to the returned procedure. Change the argument passed to build phases to `lisp-type'. * guix/build/asdf-build-system.scm (copy-source, build, check) (create-asd-file, symlink-asd-files, cleanup-files, strip): Respect `lisp-type` argument. * gnu/packages/lisp.scm (sbcl-stumpwm, sbcl-stumpwm+slynk): Likewise. Andy Patterson
2017-05-16build-system/asdf: Keep ecl's generated archive files....This may be necessary to produce programs or images with ecl. * guix/build/asdf-build-system.scm (cleanup-files): Don't delete .a files. Andy Patterson
2017-05-16build-system/asdf: Use asdf to determine dependencies....This removes the need for conventions to determine which inputs are run-time dependencies, and also the need to specify "special" dependencies. * guix/build/lisp-utils.scm (patch-asd-file, lisp-dependencies) (wrap-perform-method): Remove them. (inputs->asd-file-map, system-dependencies, generate-system-definition) (generate-dependency-links, make-asd-file): New procedures. (lisp-eval-program): Add an error if no lisp matches. (compile-system): Don't use asdf's in-built asd-file generator. Andy Patterson