Commit Graph

873 Commits

Author SHA1 Message Date
Ricardo Wurmus b86c019efb
Merge branch 'staging' into core-updates 2018-08-13 20:39:32 +02:00
Ricardo Wurmus a7e231a2a3
build-system/haskell: Let all phases return #T unconditionally.
* guix/build/haskell-build-system.scm (make-ghc-package-database, register,
check, haddock): Return #T unconditionally; use INVOKE.
2018-08-09 14:48:31 +02:00
Mark H Weaver 82230603ce
build-system/gnu: If a phase returns #f, the build fails.
Fixes <https://bugs.gnu.org/31974>.
Introduced by commit d8a3b1b9e8.

* guix/build/gnu-build-system.scm (gnu-build): Use 'every' instead
of 'for-each'.
2018-08-03 23:12:33 -04:00
Marius Bakke 1af575f04d
Merge branch 'master' into staging 2018-07-28 18:34:59 +02:00
Marius Bakke a1454169e0
gnu: python: Update to 3.7.0.
* gnu/packages/python.scm (python-3.6): Rename to ...
(python-3.7): ... this.  Update to 3.7.0.
[arguments]: Remove phase 'patch-timestamp-for-pyc-files' and related code.
Add phases to unset SOURCE_DATE_EPOCH during the check phase.
(python-3): Is now PYTHON-3.7.
* guix/build/python-build-system.scm (enable-bytecode-determinism): Don't set
DETERMINISTIC_BUILD.
2018-07-28 15:52:26 +02:00
Marius Bakke 94eb59fb4a
build-system/meson: Remove RUNPATH workarounds.
* guix/build-system/meson.scm (default-patchelf): Remove.
(lower)[build-inputs]: Remove PATCHELF.
(meson-build): Don't delete 'fix-runpath' phase on armhf.
* guix/build/meson-build-system.scm (configure): Add "--c_link_args" and
  "-cpp_link_args" instead of setting LDFLAGS.
(meson-build): Don't apply 'fix-runpath' phase.
2018-07-28 14:54:18 +02:00
Ludovic Courtès ac46a1c8e4
Merge branch 'master' into core-updates 2018-07-26 18:15:13 +02:00
Danny Milosavljevic 8376f10a30
ruby-build-system: Make phase "replace-git-ls-files" handle more cases.
* guix/build/ruby-build-system.scm (replace-git-ls-files): Modify.
2018-07-24 22:55:38 +02:00
Marius Bakke 706ae8e15c
Merge branch 'master' into core-updates 2018-07-24 19:56:35 +02:00
Ludovic Courtès 2a3b1b3235
build-system: Add 'guile-build-system'.
* guix/build-system/guile.scm, guix/build/guile-build-system.scm: New
files.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Build Systems): Document 'guile-build-system'.
2018-07-23 12:25:31 +02:00
Leo Famulari 82549f2328
build-system/go: Use invoke instead of system*.
* guix/build/go-build-system.scm (unpack, build): Use invoke.
(install-source): Unconditionally return #t.
(check): Use invoke and unconditionally return #t.
2018-07-19 19:12:54 -04:00
Julien Lepiller 79d4d47b99
guix: ant-build-system: Reorder before generating INDEX.LIST.
* guix/build/ant-build-system.scm (%standard-phases): Add
reorder-jar-content phase.
2018-07-19 19:46:31 +02:00
Christopher Baines 0d354666d3
ruby-build-system: Error or return #t from all phases.
Previously, if the tests didn't pass, the check phase would evaluate to #f,
but the package would be built sucessfully. This changes all the phases to
raise exceptions if errors are encountered, and return #t otherwise.

This involves using invoke rather than system*, so that exceptions are raised
if the program exits with a status other than 0, and also returning #t at the
end of functions.

* gnu/build/ruby-build-system.scm (unpack): Use invoke rather than system*,
and return #t at the end.
(build, check): Use invoke rather than system*.
(install): Remove the use of "and", and rewrite the error handling to raise an
exception.
(wrap): Return #t.
2018-07-15 22:19:39 +01:00
Marius Bakke 49b6dc2b4e
Merge branch 'staging' 2018-07-13 00:25:45 +02:00
Danny Milosavljevic a59b0fa2d7
build-system/haskell: Make phases fail on error.
* guix/build/haskell-build-system.scm (configure): Make it fail on error.
(run-setuphs): Make it fail on error.
2018-07-11 02:45:53 +02:00
Ludovic Courtès f03df3ee75
profiles: Factorize 'manifest-search-paths'.
* guix/profiles.scm (manifest-search-paths): New procedure.
(profile-derivation)[builder]: Use it.
* guix/build/profiles.scm (build-etc/profile): Remove $PATH.
2018-07-11 00:52:36 +02:00
Marius Bakke 873325b030
Merge branch 'master' into staging 2018-07-08 23:58:22 +02:00
Ludovic Courtès 25c7ff6a3e
syscalls: Define AT_SYMLINK_NOFOLLOW et al.
* guix/build/syscalls.scm (AT_FDCWD, AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR)
(AT_SYMLINK_FOLLOW, AT_NO_AUTOMOUNT, AT_EMPTY_PATH): New variables.
* tests/syscalls.scm ("utime with AT_SYMLINK_NOFOLLOW"): New test.
2018-07-03 17:50:04 +02:00
Ricardo Wurmus 302213b9be
build-system/meson: Use invoke.
* guix/build/meson-build-system.scm (configure, build, check, install): Use
"invoke" and unconditionally return #t.
2018-06-30 18:06:20 +02:00
Ricardo Wurmus f1728d4346
Merge branch 'master' into core-updates 2018-06-29 22:51:23 +02:00
Mark H Weaver 2c8ac3641a
gnu: java: Return #t from all phases and snippets.
* guix/build/java-utils.scm (ant-build-javadoc): Use invoke; return #t.
* guix/build/ant-build-system.scm (generate-jar-indices): Return #t and
remove vestigal plumbing.
* gnu/packages/java.scm (classpath-bootstrap, ant-bootstrap, classpath-devel)
(icedtea-6, icedtea-7, java-plexus-sec-dispatcher, ant/java8, clojure)
(java-classpathx-servletapi, java-swt, java-qdox-1.12, java-hamcrest-core)
(java-plexus-archiver, java-plexus-sec-dispatcher, java-modello-plugins-xml)
(java-asm, java-commons-collections, java-commons-bsf, java-slf4j-api)
(java-slf4j-api, java-slf4j-simple, java-stringtemplate-3)
(java-stringtemplate, antlr3, antlr3-3.3, antlr3-3.1, java-ops4j-base-lang)
(java-ops4j-pax-tinybundles, java-ops4j-pax-exam-core-spi)
(java-fasterxml-jackson-core, java-fasterxml-jackson-databind)
(java-fasterxml-jackson-modules-base-jaxb, java-ecj-3, java-ecj-3.5)
(java-fasterxml-jackson-dataformat-yaml, java-woodstox-core)
(java-fasterxml-jackson-dataformat-xml, java-testng, java-jnacl)
(java-bouncycastle, java-powermock-core, java-powermock-modules-junit4)
(java-jansi-native, java-jansi, java-commons-httpclient, java-commons-vfs)
(java-apache-ivy, java-janino, java-logback-core): Return #t from all phases
and snippets, use invoke where appropriate, and remove vestigial plumbing.
2018-06-28 03:55:37 -04:00
Mark H Weaver 0e6cce2e01
meson-build-system: Return #t from all phases.
* guix/build/meson-build-system.scm (configure, build, check, install):
(fix-runpath): Use 'invoke' and return #t from all phases.
2018-06-28 03:55:34 -04:00
Marius Bakke 0106d6b40d
Merge branch 'master' into staging 2018-06-19 17:02:16 +02:00
Ricardo Wurmus b194da0d68
build-system/waf: Use invoke.
* guix/build/waf-build-system.scm (call-waf): Use "invoke" and unconditionally
return #t.
2018-06-19 10:48:14 +02:00
Ludovic Courtès 870677cbb8
compile: Work around non-thread-safe module autoloading.
* guix/build/compile.scm <top level>: Set 'try-module-autoload' when
running on Guile < 2.2.4.
2018-06-18 23:19:51 +02:00
Gábor Boskovits 90ea1006a8
guix: ant-build-system: Use manifest task to create manifest.
* guix/build/ant-build-system.scm (default-build.xml): Use manifest task
to create manifest file instead of a custom echo task.
2018-06-18 17:08:32 +02:00
Marius Bakke 6969c4de44
Merge branch 'master' into staging 2018-06-18 15:29:38 +02:00
Ricardo Wurmus d7ee90fe90
build-system/ant: Unconditionally return #t in build phases.
* guix/build/ant-build-system.scm (unpack, build, strip-jar-timestamps, check,
install): Use invoke.

Signed-off-by: Gábor Boskovits <boskovits@gmail.com>
2018-06-16 20:51:32 +02:00
Ludovic Courtès 31a63be878
database: Add 'register-items'.
* guix/build/store-copy.scm (store-info): Export.
* guix/store/database.scm (register-items): New procedure.
(register-path): Implement in terms of 'register-items'.
* gnu/build/install.scm (register-closure): Use 'register-items' instead
of 'for-each' and 'register-path'.
2018-06-14 11:17:00 +02:00
Ludovic Courtès 6892f0a247
store-copy: 'read-reference-graph' returns a list of records.
The previous implementation of 'read-reference-graph' was good enough
for many use cases, but it discarded the graph structure, which is
useful information in some cases.

* guix/build/store-copy.scm (<store-info>): New record type.
(read-reference-graph): Rewrite to return a list of <store-info>.
(closure-size, populate-store): Adjust accordingly.
* gnu/services/base.scm (references-file): Adjust accordingly.
* gnu/system/vm.scm (system-docker-image): Likewise.
* guix/scripts/pack.scm (squashfs-image, docker-image): Likewise.
* tests/gexp.scm ("gexp->derivation #:references-graphs"): Likewise.
2018-06-14 11:16:58 +02:00
Ricardo Wurmus 4dd91dff47
build-system/r: Fix type error.
Reported-by: Mark H Weaver <mhw@netris.org>

* guix/build/r-build-system.scm (pipe-to-r): Pass a list to the condition's
"arguments" field.
2018-06-06 23:30:30 +02:00
Ricardo Wurmus 8709624756
Merge branch 'origin/core-updates-next' into core-updates 2018-06-06 23:01:48 +02:00
Ricardo Wurmus babeea3f9f
build-system/r: Use invoke.
* guix/build/r-build-system.scm (invoke-r): Use invoke.
(pipe-to-r): Raise invoke-error on non-zero return value.
(check): Unconditionally return #t.
2018-05-31 13:24:17 +02:00
Mark H Weaver 0661758e13
Merge branch 'master' into core-updates 2018-05-21 13:22:32 -04:00
Ludovic Courtès 827c56515e
union: Do not warn about harmless collisions.
Until now we'd get pointless messages like:

  warning: collision encountered:
    /gnu/store/…-gtk-icon-themes/share/icons/hicolor/icon-theme.cache
    /gnu/store/…-inkscape-0.92.3/share/icons/hicolor/icon-theme.cache
  warning: choosing /gnu/store/…-gtk-icon-themes/share/icons/hicolor/icon-theme.cache

* guix/build/union.scm (%harmless-collisions): New variable.
(warn-about-collision): Honor it.
2018-05-17 10:48:37 +02:00
Mark H Weaver 539bf8f2c0
Merge branch 'master' into core-updates 2018-05-17 01:00:50 -04:00
Ludovic Courtès e00ade3fb8
profiles: Optionally use relative file names for symlink targets.
* guix/build/union.scm (symlink-relative): New procedure.
* guix/build/profiles.scm: Re-export it.
(build-profile): Add #:symlink and pass it to 'union-build'.
* guix/profiles.scm (profile-derivation): Add #:relative-symlinks?.
Pass #:symlink to 'build-profile'.
* tests/profiles.scm ("profile-derivation relative symlinks, one entry")
("profile-derivation relative symlinks, two entries"): New tests.
2018-05-10 14:53:57 +02:00
Ludovic Courtès dac1c97d13
union: Add 'relative-file-name'.
* guix/build/union.scm (%not-slash): New variable.
(relative-file-name): New procedure.
* tests/union.scm (test-relative-file-name): New macro and tests.
2018-05-10 14:53:56 +02:00
Danny Milosavljevic 3766aa921b
build-system: android-ndk: Let upstream install header files.
* guix/build/android-ndk-build-system.scm (install): Don't install header
files ourselves.
2018-05-10 01:06:22 +02:00
Danny Milosavljevic 9ed36cd3d6
build-system: android-ndk: Support unit tests.
* guix/build-system/android-ndk.scm (android-ndk-build): Add googletest.
* guix/build/android-ndk-build-system.scm (check): Check whether tests are
enabled.  Run root-level tests as well.
2018-05-10 01:06:22 +02:00
Danny Milosavljevic 436515cdb8
build: Add the Android NDK build-system.
* guix/build-system/android-ndk.scm: New file.
* guix/build/android-ndk-build-system.scm: New file.
* Makefile.am: Add them.
2018-05-09 19:16:04 +02:00
Ludovic Courtès 8005640201
build-system/meson: Use 'strip-runpath' instead of PatchELF.
* guix/build/meson-build-system.scm (fix-runpath): Call 'strip-runpath'
instead of invoking 'patchelf'.
2018-05-07 11:21:38 +02:00
Ludovic Courtès b178fc2369
gremlin: Add 'strip-runpath'.
* guix/build/gremlin.scm (strip-runpath): New procedure.
* tests/gremlin.scm (c-compiler): New variable.
("strip-runpath"): New test.
2018-05-07 11:21:36 +02:00
Ludovic Courtès ad4835fe01
gremlin: Preserve offset info for dynamic entries.
* guix/build/gremlin.scm (<dynamic-entry>): New record type.
(raw-dynamic-entries): Return a list of <dynamic-entry>.
(dynamic-entries): Adjust accordingly and return a list of <dynamic-entry>.
(elf-dynamic-info)[matching-entry]: New procedure.
Use it.
2018-05-07 11:21:34 +02:00
Danny Milosavljevic d6ac4d42ba
guix: ant-build-system: End "configure" phase with #t.
* guix/build/ant-build-system.scm (configure): End with #t.
2018-05-06 20:49:20 +02:00
Danny Milosavljevic bc65332a38
guix: ant-build-system: Create INDEX.LIST.
Fixes <https://bugs.gnu.org/31374>.

* guix/build/ant-build-system.scm (generate-jar-indices): New procedure.
(%standard-phases)[generate-jar-indices]: New phase.
2018-05-06 19:39:54 +02:00
Marius Bakke 12bd588346
Merge branch 'master' into core-updates 2018-05-06 15:56:24 +02:00
Maxim Cournoyer c1b4ad2e6e
build: emacs-utils: Fail when byte compilation fails.
Byte compilation failures were ignored prior to this change.

* guix/build/emacs-utils.scm (emacs-byte-compile-directory): Fail when there
are compilation errors.

Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2018-05-03 21:48:59 +05:30
Ludovic Courtès 27e810c3e8
compile: Exit when an exception is thrown.
Previously we could end up with only a subset of the modules built.
Fixes <https://bugs.gnu.org/31329>.

* guix/build/compile.scm (call/exit-on-exception): New procedure.
(exit-on-exception): New macro.
(compile-files): Use it.
2018-05-01 16:01:39 +02:00
Marius Bakke a9fe3882b9
Merge branch 'master' into staging 2018-04-25 15:53:41 +02:00
Mark H Weaver c52872bfc4
Merge branch 'master' into core-updates 2018-04-21 05:02:52 -04:00
Maxim Cournoyer facc0a96a1
build-system: emacs: Add improved check phase.
* guix/build-system/emacs.scm (emacs-build): Add #:test-command keyword
argument. Remove #:configure-flags and #:test-target keyword arguments.
* guix/build/emacs-build-system.scm (check): New procedure.
(%standard-phases): Register check phase after the build phase.

Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2018-04-20 00:49:53 +05:30
Maxim Cournoyer 8a8fa82e72
build-system: emacs: Replace system* with invoke.
* guix/build/emacs-utils.scm: Use (guix build utils) for invoke.
(emacs-batch-eval, emacs-batch-edit-file): Replace system* with invoke.
* guix/build/emacs-build-system.scm (make-autoloads): No need to return #t
explicitly since emacs-generate-autoloads now uses invoke.

Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2018-04-20 00:49:53 +05:30
Maxim Cournoyer b5904fcc34
build-system: emacs: Search all inputs for Emacs Lisp directories.
* guix/build/emacs-build-system.scm (set-emacs-load-path): Include Emacs Lisp
directories from all inputs. Also, add the unpacked source directory to
EMACSLOADPATH.
(emacs-inputs, emacs-inputs-directories, emacs-input->el-directory,
emacs-inputs-el-directories): Remove.
(%standard-phases): Move set-emacs-load-path phase to after unpack phase.

Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2018-04-20 00:49:47 +05:30
Marius Bakke 5d904d63f4
Merge branch 'master' into staging 2018-04-16 18:15:28 +02:00
Marius Bakke 538d6d025c
build-system/meson: Don't override LDFLAGS if already set.
* guix/build/meson-build-system.scm (configure): Test for LDFLAGS before
adding ours.

(cherry picked from commit 611c27db2a)
2018-04-15 14:45:56 +02:00
Mark H Weaver f89aa1521a
Merge branch 'master' into core-updates 2018-04-10 00:42:22 -04:00
Ludovic Courtès e40aa54e98
union: Allow callers to choose the collision resolution policy.
* guix/build/union.scm (warn-about-collision): New procedure.
(union-build): Add #:resolve-collision.
[resolve-collisions]: Call it.
* tests/union.scm ("union-build collision first & last"): New test.
2018-04-08 17:41:08 +02:00
Marius Bakke 611c27db2a
build-system/meson: Don't override LDFLAGS if already set.
* guix/build/meson-build-system.scm (configure): Test for LDFLAGS before
adding ours.
2018-04-02 02:22:23 +02:00
Ludovic Courtès f8d1303864
union: Slightly improve messages for file collisions.
* guix/build/union.scm (union-build): Indent file names upon collision.
Remove "arbitrarily" from the message.
2018-03-31 23:30:50 +02:00
Ludovic Courtès d0a2db47fb
ld-wrapper: Allow linking with non-store libraries by default.
This was suggested on several occasions, notably
<https://bugs.gnu.org/24544>.

* gnu/packages/ld-wrapper.in (%allow-impurities?): Default to #t and
parse the value of 'GUIX_LD_WRAPPER_ALLOW_IMPURITIES'.
* guix/build/gnu-build-system.scm (set-paths): Set
'GUIX_LD_WRAPPER_ALLOW_IMPURITIES'.
2018-03-29 17:58:16 +02:00
Ludovic Courtès c90fd42020
gremlin: Fix typo in export list.
* guix/build/gremlin.scm: Really export 'elf-dynamic-info-soname'.
2018-03-29 17:58:15 +02:00
Mark H Weaver ac21be848a
Merge branch 'master' into core-updates 2018-03-20 14:22:06 -04:00
Ludovic Courtès 248871e006
build-system/gnu: Fix typo.
* guix/build/gnu-build-system.scm (dump-file-contents): Fix typo in
'string-pad' argument.
2018-03-20 17:01:41 +01:00
Ludovic Courtès 88b87c352f
build-system/gnu: Dump test suite logs upon 'check' failure.
Suggested by Mark H Weaver <mhw@netris.org>.

* guix/build/gnu-build-system.scm (dump-file-contents): New procedure.
(%test-suite-log-regexp): New variable.
(check): Add #:test-suite-log-regexp.  Catch 'invoke-error?' and call
'dump-file-contents' upon error.
2018-03-20 13:29:37 +01:00
Mark H Weaver 171a117c61
build-system/python: Fix deletion of .egg-info dirs created by tests.
* guix/build/python-build-system.scm (check): Use 'string=?' to compare
strings, not 'eqv?'.
2018-03-18 00:49:05 -04:00
Mark H Weaver 1e62645402
build-system/python: Return #t from all phases.
* guix/build/python-build-system.scm (build, install, wrap): Return #t.
(check): Return #t and remove vestigial plumbing.
2018-03-18 00:49:03 -04:00
Mark H Weaver 99aaeaa00b
build-system/gnu: Tolerate errors during the 'strip' phase.
This is a followup to commit 9a87649c86.

* guix/build/gnu-build-system.scm (strip)[strip-dir]: If an invoke error
occurs, issue a warning and continue to the next file.  This restores the
tolerance of stripping errors prior to commit 9a87649.
2018-03-16 20:02:59 -04:00
Mark H Weaver cbdfa50d9f
utils: invoke: Raise exceptions using SRFI-34 and SRFI-35.
* guix/build/utils.scm (&invoke-error): New condition type.
(invoke-error?, invoke-error-program, invoke-error-arguments)
(invoke-error-exit-status, invoke-error-term-signal)
(invoke-error-stop-signal): New exported procedures.
(invoke): Raise exceptions using SRFI-34 and SRFI-35.
* guix/ui.scm (call-with-error-handling): Add a guard clause
for &invoke-error conditions.
2018-03-16 20:02:47 -04:00
Mark H Weaver d8a3b1b9e8
gnu-build: Issue a warning unless every phase returns #t.
* guix/build/gnu-build-system.scm (gnu-build): Issue a warning if a phase
returns a value other than #t.
2018-03-16 09:08:25 -04:00
Mark H Weaver e9b23fe8bd
build-system/gnu: Return a boolean from all phase procedures.
* guix/build/gnu-build-system.scm (patch-source-shebangs)
(patch-generated-file-shebangs, strip): Return #t.
(validate-runpath): Raise an exception if validation fails.  Never return #f.
2018-03-16 06:44:09 -04:00
Mark H Weaver 7837450076
build: emacs-utils: Use invoke instead of system*.
* guix/build/emacs-utils.scm (emacs-batch-eval)
(emacs-batch-edit-file): Use invoke.
2018-03-16 05:02:38 -04:00
Mark H Weaver 469de8c3fa
hg-download: Use invoke instead of system*.
* guix/build/hg.scm (hg-fetch): Use invoke and remove vestigial plumbing.
2018-03-16 05:02:36 -04:00
Mark H Weaver 81d8211e1b
svn-download: Use invoke instead of system*.
* guix/build/svn.scm (svn-fetch): Use invoke and remove vestigial plumbing.
2018-03-16 05:02:34 -04:00
Mark H Weaver 54fcecdb12
cvs-download: Use invoke instead of system*.
* guix/build/cvs.scm (cvs-fetch): Use invoke and remove vestigial plumbing.
2018-03-16 05:02:32 -04:00
Mark H Weaver 2eeffc0acc
build-system/scons: Use invoke instead of system*.
* guix/build/scons-build-system.scm (build, check, install): Use invoke.
2018-03-16 05:01:57 -04:00
Mark H Weaver 68ca0efa9a
build-system/texlive: Use invoke instead of system*.
* guix/build/texlive-build-system.scm (compile-with-latex): Use invoke.
2018-03-16 05:01:56 -04:00
Mark H Weaver e35b09ca71
build-system/python: Use invoke instead of system*.
* guix/build/python-build-system.scm (call-setuppy): Use invoke.
2018-03-16 05:01:54 -04:00
Mark H Weaver 9e58fd9d7b
build-system/perl: Use invoke instead of system*.
* guix/build/perl-build-system.scm (configure, build, check, install): Use
invoke.
2018-03-16 05:01:52 -04:00
Mark H Weaver 0f308fe8eb
build-system/cmake: Use invoke instead of system*.
* guix/build/cmake-build-system.scm (configure): Use invoke.
2018-03-16 05:01:50 -04:00
Mark H Weaver 09a8f68b11
build-system/glib-or-gtk: Use invoke instead of system*.
* guix/build/glib-or-gtk-build-system.scm (compile-glib-schemas): Use invoke
and remove vestigial plumbing.
2018-03-16 05:01:47 -04:00
Mark H Weaver 9a87649c86
build-system/gnu: Use invoke instead of system*.
* guix/build/gnu-build-system.scm (unpack, configure, build, check, install)
(strip, compress-documentation): Use invoke and remove vestigial plumbing.
2018-03-16 05:01:45 -04:00
Mark H Weaver 6d084076b4
gnu-dist: Use invoke instead of system*.
* guix/build/gnu-dist.scm (autoreconf, build): Use invoke and remove vestigial
plumbing.
2018-03-16 05:01:43 -04:00
Ricardo Wurmus d57888a819
guix: python-build-system: Make bytecode compilation deterministic.
* guix/build/python-build-system.scm (enable-bytecode-determinism): New
procedure.
(%standard-phases): Add "enable-bytecode-determinism" phase.
2018-03-15 09:26:30 +01:00
Ricardo Wurmus 8c72ed923d
Merge branch 'master' into core-updates 2018-03-14 17:37:20 +01:00
Marius Bakke 09a45ffb14
build-system/meson: Add the output directory to RUNPATH.
* guix/build/meson-build-system.scm (configure): Set LDFLAGS before invoking meson.
2018-03-12 17:27:07 +01:00
Ludovic Courtès 189be331ac
build-system/gnu: Add 'bootstrap' phase.
This factorizes what has become a widespread idiom.

* guix/build/gnu-build-system.scm (%bootstrap-scripts): New variable.
(bootstrap): New procedure.
(%standard-phases): Add it after 'unpack'.
* guix/build/ant-build-system.scm (%standard-phases): Delete 'bootstrap.
* guix/build/asdf-build-system.scm (%standard-phases/source)
(%standard-phases): Likewise.
* guix/build/cargo-build-system.scm (%standard-phases): Likewise.
* guix/build/cmake-build-system.scm (%standard-phases): Likewise.
* guix/build/dub-build-system.scm (%standard-phases): Likewise.
* guix/build/emacs-build-system.scm (%standard-phases): Likewise.
* guix/build/font-build-system.scm (%standard-phases): Likewise.
* guix/build/go-build-system.scm (%standard-phases): Likewise.
* guix/build/haskell-build-system.scm (%standard-phases): Likewise.
* guix/build/minify-build-system.scm (%standard-phases): Likewise.
* guix/build/ocaml-build-system.scm (%standard-phases): Likewise.
* guix/build/perl-build-system.scm (%standard-phases): Likewise.
* guix/build/python-build-system.scm (%standard-phases): Likewise.
* guix/build/r-build-system.scm (%standard-phases): Likewise.
* guix/build/ruby-build-system.scm (%standard-phases): Likewise.
* guix/build/scons-build-system.scm (%standard-phases): Likewise.
* guix/build/texlive-build-system.scm (%standard-phases): Likewise.
* guix/build/waf-build-system.scm (%standard-phases): Likewise.
* gnu/packages/audio.scm (faad2)[arguments]: Replace 'bootstrap.
(soundtouch, cuetools, bluez-alsa): Remove 'arguments'.
(cava)[arguments]: Replace 'bootstrap.
* gnu/packages/backup.scm (rdup): Remove 'bootstrap.
* gnu/packages/bioinformatics.scm (seek)[arguments]: Replace
'bootstrap.
* gnu/packages/bioinformatics.scm (htslib-for-sambamba): Remove
'arguments'.
* gnu/packages/ci.scm (hydra, cuirass): Remove 'bootstrap'.
* gnu/packages/crypto.scm (libb2): Remove #:phases.
* gnu/packages/databases.scm (guile-wiredtiger): Likewise.
* gnu/packages/debug.scm (stress-make): Remove 'bootstrap'.
* gnu/packages/documentation.scm (asciidoc): Likewise.
* gnu/packages/fontutils.scm (libuninameslist): Remove 'arguments'.
* gnu/packages/ftp.scm (weex): Remove 'arguments'.
* gnu/packages/game-development.scm (ois): Remove 'arguments'.
* gnu/packages/games.scm (pioneer): Remove 'bootstrap.
* gnu/packages/gnome.scm (vte-ng, byzanz): Replace 'bootstrap.
(arc-theme): Remove 'arguments'.
(faba-icon-theme): Remove 'bootstrap.
(arc-icon-theme): Remove 'arguments'.
* gnu/packages/gnunet.scm (guile-gnunet): Likewise.
* gnu/packages/gtk.scm (guile-rsvg): Likewise.
* gnu/packages/guile.scm (mcron2): Remove 'bootstrap.
(guile-bash): Remove #:phases.
(guile-git): Remove 'bootstrap.
(guile-syntax-highlight): Remove 'arguments'.
(guile-sjson): Likewise.
* gnu/packages/java.scm (classpath-devel): Remove 'bootstrap.
* gnu/packages/kodi.scm (libdvdnav/kodi)
(libdvdread/kodi, libdvdcss/kodi): Likewise.
* gnu/packages/libreoffice.scm (hunspell): Remove 'arguments'.
* gnu/packages/libusb.scm (hidapi): Likewise.
* gnu/packages/linux.scm (bridge-utils): Rename 'bootstrap' to
'patch-stuff'; move it before 'bootstrap', without autoreconf
invocation.
(eudev): Rename 'bootstrap' to 'patch-file-names', without 'autogen.sh'
invocation; move it before 'bootstrap.
(gpm): Replace 'bootstrap'.
(f2fs-tools): Remove 'arguments'.
(rng-tools): Remove #:phases.
* gnu/packages/messaging.scm (hexchat): Rename 'bootstrap' to
'copy-intltool-makefile'; remove "autoreconf" invocation and move before
'bootstrap'.
(libmesode): Remove 'arguments'.
(libstrophe): Likewise.
* gnu/packages/microcom.scm (microcom): Likewise.
* gnu/packages/networking.scm (libnet): Remove 'bootstrap.
* gnu/packages/onc-rpc.scm (libnsl): Remove 'arguments'.
* gnu/packages/package-management.scm (guix): Replace 'bootstrap.
* gnu/packages/sawfish.scm (librep): Remove 'arguments'.
* gnu/packages/version-control.scm (findnewest): Likewise.
* gnu/packages/video.scm (liba52, handbrake, motion): Replace
'bootstrap.
* gnu/packages/web.scm (fcgiwrap): Remove #:phases.
(tidy): Replace 'bootstrap.
(gumbo-parser): Remove #:phases.
* gnu/packages/wget.scm (wget2): Replace 'bootstrap.
* gnu/packages/wm.scm (i3lock-color): Remove #:phases.
* gnu/packages/xdisorg.scm (xclip): Likewise.
* gnu/packages/xml.scm (libxls): Replace 'bootstrap'.
* gnu/packages/xorg.scm (xf86-video-freedreno)
(xf86-video-intel): Remove #:phases.
* gnu/packages/zile.scm (zile-on-guile): Replace 'bootstrap.
2018-03-11 22:04:40 +01:00
Ludovic Courtès 5c6391b33a
utils: Add 'false-if-file-not-found'.
* guix/build/utils.scm (false-if-file-not-found): New macro.
2018-03-11 22:04:39 +01:00
Danny Milosavljevic 329dabe13b
git-download: Fetch only the required commit, if possible.
* guix/build/git.scm (git-fetch): Fetch only the required commit, if possible.
2018-03-04 14:43:38 +01:00
Ludovic Courtès 1d84d7bf60
build: Require Guile >= 2.0.13.
* README, configure.ac, doc/guix.texi (Requirements): Increase minimum
Guile version from 2.0.9 to 2.0.13.
* config-daemon.ac: Remove use of 'GUIX_CHECK_UNBUFFERED_CBIP'.
* m4/guix.m4 (GUIX_CHECK_UNBUFFERED_CBIP): Remove.
* guix/build/download.scm (current-http-proxy): Remove.
* guix/build/syscalls.scm (%libc-errno-pointer, errno): Remove.
(syscall->procedure): Use #:return-errno unconditionally.
* guix/hash.scm (open-sha256-input-port)[unbuffered]: Remove outdated
comment.
* guix/http-client.scm (when-guile<=2.0.5-or-otherwise-broken): Remove.
<top level>: Remove 'when-guile<=2.0.5-or-otherwise-broken' block.
* guix/scripts/substitute.scm (fetch): Remove 'guile-version>?'
conditional.
* tests/hash.scm (supports-unbuffered-cbip?): Remove.
<top level>: Remove 'test-skip' call.
2018-02-26 18:19:34 +01:00
Mark H Weaver 150062f190
Merge branch 'master' into core-updates 2018-02-16 13:14:26 -05:00
Oleg Pykhalov 06a9dc2fd0
union: Wrap collisions with newlines.
* guix/build/union.scm (union-build): Wrap collisions with newlines.
2018-02-15 20:51:51 +03:00
Mark H Weaver efe2a2833c
Merge branch 'master' into core-updates 2018-02-09 01:46:34 -05:00
Maxim Cournoyer 7c599eac0c
emacs-build-system: Do not patch files containing NULs.
This is a temporary workaround for <https://bugs.gnu.org/30116>, where
'substitute*' throws on files containing NUL characters.

* guix/build/emacs-build-system.scm (patch-el-files): Filter out elisp files
that contain NUL characters.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2018-02-05 16:54:27 +01:00
Maxim Cournoyer 58b6812fd4
emacs-build-system: Reinstate the check phase.
* guix/build/emacs-build-system.scm (%standard-phases): Reinstate the check
phase from the gnu-build-system.
* guix/build-system/emacs.scm (emacs-build)[tests?]: But do not enable it by default.
[parallel-tests?]: Add argument.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-02-05 16:54:27 +01:00
Maxim Cournoyer b7dee6a0b8
emacs-build-system: Add set-emacs-load-path phase.
This generalizes the mechanism by which the Emacs dependencies are made visible,
so that any build phase can make use of them.

* guix/build/emacs-build-system.scm (%legacy-install-suffix): New variable.
(%install-suffix): Redefine in terms of %legacy-install-suffix.
(set-emacs-load-path): Add new phase used for dependency resolution.
(build): Remove ad-hoc dependency discovery mechanism.
(emacs-input->el-directory): Add new procedure.
(emacs-inputs-el-directories): Use it.
(package-name-version->elpa-name-version): Fix typo.
(%standard-phases): Include the new `set-emacs-load-path' phase. Refactor to
make the ordering of the phases clearer.
* guix/build/emacs-utils.scm (emacs-byte-compile-directory): Remove the
optional `dependency-dirs' argument, which is now obsoleted by the
`set-emacs-load-path' phase.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-02-05 16:54:27 +01:00
Marius Bakke bee7bb315c
Merge branch 'master' into core-updates 2018-02-01 13:18:47 +01:00
Maxim Cournoyer 8fbc1a2208
download: Fix return value of the url-fetch procedure.
Fixes <https://bugs.gnu.org/30270>.
Regression was introduced by commit 347fa4aebf.

* guix/build/download.scm (url-fetch): Return `file' instead of #t upon success.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-01-28 23:14:55 +01:00
Mark H Weaver b89d8a4271
Merge branch 'master' into core-updates 2018-01-26 00:15:26 -05:00
Tobias Geerinckx-Rice 980bcecdab
build-system/dub: Fix typo.
* guix/build/dub-build-system.scm (grep, grep*): Correct ‘occurence’.
2018-01-26 00:09:19 +01:00