Ludovic Courtès
55b2d92145
Use 'mlambda' instead of 'memoize'.
...
* gnu/packages.scm (find-newest-available-packages): Use 'mlambda'
instead of (memoize (lambda ...) ...).
* gnu/packages/bootstrap.scm (package-with-bootstrap-guile): Likewise.
* guix/build-system/gnu.scm (package-with-explicit-inputs)[rewritten-input]:
Likewise.
* guix/build-system/python.scm (package-with-explicit-python)[transform]:
Likewise.
* guix/derivations.scm (derivation->string): Likewise.
* guix/gnu-maintenance.scm (gnu-package?): Likewise.
* guix/modules.scm (module-file-dependencies): Likewise.
* guix/scripts/graph.scm (standard-package-set): Likewise.
* guix/scripts/lint.scm (official-gnu-packages*): Likewise.
* guix/store.scm (store-regexp*): Likewise.
* guix/utils.scm (location): Likewise.
2017-01-28 18:55:20 +01:00
Ludovic Courtès
f9704f179a
Add (guix memoization).
...
* guix/combinators.scm (memoize): Remove.
* guix/memoization.scm: New file.
* Makefile.am (MODULES): Add it.
* gnu/packages.scm, gnu/packages/bootstrap.scm,
guix/build-system/gnu.scm, guix/build-system/python.scm,
guix/derivations.scm, guix/gnu-maintenance.scm,
guix/import/cran.scm, guix/import/elpa.scm,
guix/modules.scm, guix/scripts/build.scm,
guix/scripts/graph.scm, guix/scripts/lint.scm,
guix/store.scm, guix/utils.scm: Adjust imports accordingly.
2017-01-28 18:55:20 +01:00
Julien Lepiller
e6876cb9dc
gnu: Add ocaml-build-system.
...
* guix/build/ocaml-build-system.scm: New file.
* guix/build-system/ocaml.scm: New file.
* Makefile.am (MODULES): Add them.
* gnu/packages/ocaml.scm (ocaml)[native-search-paths]: Adjuste OCAMLPATH.
Signed-off-by: David Craven <david@craven.ch>
2017-01-04 16:03:39 +01:00
David Craven
3b7ccbe94c
build-system: cargo: Use correct cargo.
...
* gnu/packages/rust.scm (cargo-bootstrap): Make private.
* guix/build-system/cargo.scm (default-cargo): Use cargo.
2017-01-04 11:29:15 +01:00
David Craven
f1d136957d
build-system: cargo: Handle Cargo.lock file not present.
...
* guix/build-system/cargo.scm (cargo-build): Add src output.
(private-keywords): Add #:outputs.
* guix/build/cargo-build-system.scm (configure): Use /share/rust-source
when replacing inputs.
(build, check): Don't do anything when there isn't a Cargo.lock file
present.
(install): Install sources to src output. When a Cargo.lock file is
present use cargo install to install binaries to out.
* guix/import/crate.scm (make-crate-sexp): Importer uses the src output
for crate inputs by default.
* guix/import/utils.scm (package-names->package-inputs, maybe-inputs,
maybe-native-inputs): Take an optional output argument.
* tests/crate.scm (crate->guix-package test): Update.
Problem reported by Francisco Gómez García <espectalll@kydara.com>.
2017-01-01 18:20:52 +01:00
David Craven
4b3cb7f4bc
build-system: Add cargo build system.
...
* guix/build-system/cargo.scm: New file.
* guix/build/cargo-build-system.scm: New file.
* Makefile.am (MODULES): Add files.
2016-12-14 16:30:42 +01:00
Hartmut Goebel
5f7565d190
guix: python-build-system: Add option "#:use-setuptools?" (default true).
...
* guix/build-system/python.scm (python-build): New keyword argument
"#:use-setuptools?", defaulting to #t.
* guix/build/python-build-system.scm (call-setup-py): New positional
parameter "use-setuptools?". If false, do not use the shim-wrapper
for addin setuptools. (build, check): accept keyword-
parameter, and pass to call-setuppy. (install): same; if
"use-setuptools?" is false, do not use options "--root" and
"--single-version-externally-managed" for setup.py.
* doc/guix.texi (Build Systems): Document it.
2016-11-15 17:37:44 +01:00
Andy Patterson
a1b30f99a8
build-system: Add asdf-build-system.
...
* guix/build-system/asdf.scm: New file.
* guix/build/asdf-build-system.scm: New file.
* guix/build/lisp-utils.scm: New file.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Build Systems): Document 'asdf-build-system'.
Signed-off-by: 宋文武 <iyzsong@gmail.com>
2016-10-08 21:20:35 +08:00
Ludovic Courtès
3c185b24f5
Add missing exports.
...
Reported by Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
at <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg01686.html >.
* gnu/system/file-systems.scm (%tty-gid): Export.
* guix/build-system/python.scm (default-python, default-python2):
Export.
2016-09-27 11:22:56 +02:00
Leo Famulari
59c3e98474
ant-build-system: Fix typo.
...
* guix/build-system/ant.scm (ant-build): Fix typo.
2016-08-16 14:05:14 -04:00
宋文武
8ea8e8d3c3
guix: python-build-system: Change pypi-uri to use https://pypi.io .
...
* guix/build-system/python.scm (pypi-uri): Use https://pypi.io .
* gnu/packages/python.scm (python-twisted)[uri]: Remove https://pypi.io .
2016-06-25 20:49:59 +08:00
Alex Kost
a6eafbed66
build-system/emacs: Use 'emacs-minimal' by default.
...
* guix/build-system/emacs.scm (default-emacs): Use 'emacs-minimal'.
* gnu/packages/emacs.scm (emacs-auctex): Use 'emacs'.
2016-05-24 11:32:27 +03:00
Ludovic Courtès
958dd3ce68
utils: Move combinators to (guix combinators).
...
* guix/utils.scm (compile-time-value, memoize, fold2)
(fold-tree, fold-tree-leaves): Move to...
* guix/combinators: ... here. New file.
* tests/utils.scm ("fold2, 1 list", "fold2, 2 lists")
(fold-tree tests): Move to...
* tests/combinators.scm: ... here. New file.
* Makefile.am (MODULES, SCM_TESTS): Add them.
* gnu/packages.scm, gnu/packages/bootstrap.scm,
gnu/services/herd.scm, guix/build-system/gnu.scm,
guix/build-system/python.scm, guix/derivations.scm,
guix/gnu-maintenance.scm, guix/import/elpa.scm,
guix/scripts/archive.scm, guix/scripts/build.scm,
guix/scripts/graph.scm, guix/scripts/lint.scm,
guix/scripts/size.scm, guix/scripts/substitute.scm,
guix/serialization.scm, guix/store.scm, guix/ui.scm: Adjust imports
accordingly.
2016-05-04 23:35:55 +02:00
Ricardo Wurmus
ab50bba9f6
build-system/ant: Add zip.
...
* guix/build-system/ant.scm (default-zip): New variable.
(lower): Add zip to native inputs.
2016-03-31 15:47:32 +02:00
Ricardo Wurmus
cb6ce89e21
build-system/r: Support "substitutable?" flag.
...
* guix/build-system/r.scm (r-build): Support the "substitutable?" flag.
2016-03-31 15:47:19 +02:00
Ludovic Courtès
55e1f25d89
build-system/gnu: Add #:disallowed-references.
...
* guix/build-system/gnu.scm (gnu-build): Add #:disallowed-references and
honor it.
(gnu-cross-build): Likewise.
2016-03-20 22:46:45 +01:00
Ricardo Wurmus
5f7a1a4def
build: Add Ant build system.
...
* guix/build-system/ant.scm: New file.
* guix/build/ant-build-system: New file.
* Makefile.am (MODULES): Add new files.
* doc/guix.texi (Build Systems): Document ant-build-system.
2016-03-14 12:36:49 +01:00
Ludovic Courtès
1be83341f6
build-system/python: Honor the 'python2-variant' property of packages.
...
Fixes <http://bugs.gnu.org/22437 >.
Reported by Leo Famulari <leo@famulari.name> and others.
* guix/build-system/python.scm (package-with-explicit-python): Add
#:variant-property and honor it.
(strip-python2-variant): New procedure.
2016-02-07 23:46:01 +01:00
Ludovic Courtès
f0907d97d4
build-system/python: Use 'ensure-keyword-arguments'.
...
* guix/build-system/python.scm (package-with-explicit-python): Use
'ensure-keyword-arguments'.
2016-02-01 08:59:13 +01:00
Ludovic Courtès
8c986ab120
Merge branch 'master' into core-updates
2016-01-13 18:18:48 +01:00
Ludovic Courtès
b8a35309f8
build-system/gnu: 'dist-package' can be passed the phases.
...
* guix/build-system/gnu.scm (dist-package): Add #:phases parameter and
honor it.
2016-01-13 17:43:21 +01:00
Ludovic Courtès
17ad0a2714
build-system/python: 'pypi-uri' takes an optional file name extension.
...
Suggested by swedebugia <swedebugia@riseup.net>.
* guix/build-system/python.scm (pypi-uri): Add 'extension' parameter and
use it.
2016-01-08 19:06:26 +01:00
Ludovic Courtès
d4aaf95401
build-system/gnu: Make 'package-with-explicit-inputs' idempotent.
...
* guix/build-system/gnu.scm (package-with-explicit-inputs): Use
'ensure-keyword-arguments' instead of appending to ARGS.
* gnu/packages/commencement.scm (static-bash-for-glibc): Add missing
#:guile argument.
2016-01-06 23:08:22 +01:00
Ludovic Courtès
53334dd6e9
Merge branch 'master' into core-updates
2016-01-03 14:53:03 +01:00
Ludovic Courtès
7165a91c7d
build-system/gnu: Use the long option name for deterministic archives.
...
This is a followup to 3eb34c6
.
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Use
"--enable-deterministic-archives" instead of "-D" to work around
Binutils bug <https://sourceware.org/bugzilla/show_bug.cgi?id=17671 >.
* guix/build/gnu-build-system.scm (strip): Likewise.
2016-01-01 00:49:05 +01:00
Ricardo Wurmus
12d38e8d43
build: Add bioconductor-uri procedure.
...
* guix/build-system/r.scm (bioconductor-uri): New procedure.
2015-12-21 22:32:01 +01:00
Ludovic Courtès
3eb34c631a
build-system/gnu: Always pass "-D" to strip/objcopy.
...
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Add "-D" to
#:strip-flags.
* guix/build/gnu-build-system.scm (strip): Likewise. Also pass "-D" to
OBJCOPY-COMMAND.
2015-12-18 23:58:51 +01:00
Ludovic Courtès
f856fcb558
build-system/python: 'package-with-python2' preserves source location.
...
* guix/build-system/python.scm (package-with-explicit-python): Add
'location' field.
2015-11-04 00:12:20 +01:00
Cyril Roelandt
3009334e3b
guix: Add a "pypi-uri" helper method.
...
* guix/download.scm (mirrors): New "pypi" mirror.
* guix/build-system/python.scm (pypi-uri): New method.
2015-11-03 21:38:13 +01:00
Ludovic Courtès
87cd0dba2f
build-system/gnu: dist-package: Use 'autoconf-wrapper'.
...
* guix/build-system/gnu.scm (dist-package): Use AUTOCONF-WRAPPER instead
of AUTOCONF.
2015-10-14 21:39:05 +02:00
Ludovic Courtès
b3e2a5af9f
build-system/python: Memoize the results of 'package-with-python2'.
...
Fixes <http://bugs.gnu.org/21675 >.
Reported by Cyril Roelandt <tipecaml@gmail.com>.
Before this change, the command:
guix build python2-oslo.utils -n --no-substitutes
would take 17.5s. After, it is down to 2.9s.
Likewise, the command:
guix graph python2-bandit | grep python2-setuptools.*Helve| wc -l
would return 412 nodes before, all functionally equivalent, and returns
a single one now.
* guix/build-system/python.scm (package-with-explicit-python): Remove
'p' parameter. Change to return a one-argument memoizing procedure.
(package-with-python2): Adjust accordingly.
2015-10-13 00:06:11 +02:00
Ludovic Courtès
afd3d9316c
Use "normalized codesets" everywhere.
...
In other words, change "xx_YY.UTF-8" to "xx_YY.utf8".
* guix/profiles.scm (ca-certificate-bundle): Use "en_US.utf8" instead of
"en_US.UTF-8".
* guix/packages.scm (patch-and-repack): Likewise.
* guix/build/gnu-build-system.scm (install-locale): Likewise.
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Likewise.
* gnu/packages/python.scm (python-ipython): Likewise.
* gnu/packages/gawk.scm (gawk): Likewise.
* build-aux/hydra/demo-os.scm: Likewise.
* gnu/packages/guile.scm (guile-ncurses)[arguments]: Remove
'change-locale' phase.
2015-10-04 00:10:03 +02:00
Mark H Weaver
bd90127ad4
Merge branch 'master' into core-updates
2015-09-22 16:38:48 -04:00
Ricardo Wurmus
5546114e73
build: Add cran-uri procedure.
...
* guix/build-system/r.scm (cran-uri): New procedure.
2015-09-21 10:48:26 +02:00
Ludovic Courtès
75710da667
Merge branch 'master' into core-updates
2015-09-13 21:28:01 +02:00
宋文武
f47fbeb23a
build-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-11 20:24:30 +08:00
Ricardo Wurmus
f8f3bef6aa
build: 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.
2015-08-31 15:39:34 +02:00
David Thompson
e83c6d009f
build: 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.
2015-08-18 17:58:13 -04:00
Mark H Weaver
1b4e48d498
Merge branch 'master' into core-updates
2015-07-19 18:12:34 -04:00
pjotrp
6e9f2913ba
build-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>
2015-07-18 17:15:03 +02:00
Mark H Weaver
3c7d023d64
build-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.
2015-07-13 18:54:40 -04:00
Federico Beffa
e9137a5310
build: 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.
2015-07-08 10:53:05 +02:00
Ludovic Courtès
4a6aeb670f
derivations: Add #:substitutable?, distinguished from #:local-build?.
...
Fixes <http://bugs.gnu.org/18747 >.
* guix/derivations.scm (substitutable-derivation?): Rewrite to check for
"allowSubstitutes".
(derivation): Add #:substitutable? parameter.
[user+system-env-vars]: Honor it.
(build-expression->derivation): Add #:substitutable? and honor it.
* guix/gexp.scm (gexp->derivation): Likewise.
* tests/derivations.scm ("derivation-prerequisites-to-build and substitutes,
non-substitutable build"): Use #:substitutable? instead of #:local-build?.
("substitutable-derivation?", "derivation-prerequisites-to-build and
substitutes, local build"): New tests.
* guix/download.scm (url-fetch): Adjust comment.
* guix/git-download.scm (git-fetch): Likewise.
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Use #:substitutable?
instead of #:local-build?.
* doc/guix.texi (Derivations, G-Expressions): Adjust accordingly.
2015-07-03 00:30:55 +02:00
Ludovic Courtès
0004c5904c
packages: Make 'location' field innate.
...
* guix/packages.scm (<package>)[location]: Add 'innate' property.
* guix/build-system/gnu.scm (static-package): Remove 'loc' parameter and
'location' field.
* gnu/packages/autotools.scm (autoconf-wrapper): Remove 'location' field.
* gnu/packages/commencement.scm (gnu-make-boot0, diffutils-boot0, gcc-final):
Likewise.
* gnu/packages/cross-base.scm (cross): Likewise.
* gnu/packages/emacs.scm (emacs-no-x, emacs-no-x-toolkit): Likewise.
* gnu/packages/make-bootstrap.scm (tarball-package): Likewise.
* gnu/packages/maths.scm (petsc-complex): Likewise.
2015-06-11 23:33:32 +02:00
Ludovic Courtès
e89431bf01
Move search path specifications to (guix search-paths).
...
* guix/packages.scm (<search-path-specification>,
search-path-specification->sexp, sexp->search-path-specification):
Move to...
* guix/search-paths.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
* guix/build-system/cmake.scm, guix/build-system/glib-or-gtk.scm,
guix/build-system/gnu.scm, guix/build-system/haskell.scm,
guix/build-system/perl.scm, guix/build-system/python.scm,
guix/build-system/ruby.scm, guix/build-system/waf.scm,
guix/profiles.scm, guix/scripts/package.scm: Use it.
2015-05-04 23:30:51 +02:00
Ludovic Courtès
b9212a5455
Merge branch 'core-updates'
2015-05-02 22:42:53 +02:00
Ludovic Courtès
2d51666bd0
build-system/gnu: 'dist-package' preserves the package's native inputs.
...
* guix/build-system/gnu.scm (dist-package)[native-inputs]: Preserve P's
native-inputs.
2015-05-02 22:16:06 +02:00
Ludovic Courtès
16142b3c14
build-system/gnu: Adjust to removal of a "bin" output for Libtool.
...
* guix/build-system/gnu.scm (dist-package): Change libtool:bin input to
just libtool.
2015-05-02 22:16:06 +02:00
Ludovic Courtès
d074e2f991
build-system/{cmake,glib-or-gtk}: Add #:validate-runpath? parameter.
...
* guix/build-system/cmake.scm (cmake-build): Add #:validate-runpath?
parameter and pass it to BUILDER.
* guix/build-system/glib-or-gtk.scm (glib-or-gtk-build): Likewise.
2015-04-23 18:52:40 +02:00
Ludovic Courtès
cd6c6d60a8
build-system/haskell: Refer to %GNU-BUILD-SYSTEM-MODULES.
...
Fixes a regression whereby haskell-build-system was using an incomplete
module list.
* guix/build-system/haskell.scm (%haskell-build-system-modules): New
variable.
(haskell-build): Use it as the default value of #:imported-modules.
2015-04-15 10:27:19 +02:00