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
宋文武
cf3e3e374c
Merge branch 'master' into core-updates
2015-04-08 16:04:37 +08:00
Federico Beffa
14dfdf2e0e
build-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'.
2015-04-04 09:11:31 +02:00
Ludovic Courtès
112da58875
build-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.
2015-04-01 16:47:49 +02:00
Ludovic Courtès
bb42c78a23
build-system: Factorize the list of modules imported on the build side.
...
* guix/build-system/gnu.scm (%default-modules): Rename to...
(%gnu-build-system-modules): ... this.
(%default-modules): New variable.
(dist-package, gnu-build): Use %GNU-BUILD-SYSTEM-MODULES for
#:imported-modules.
(gnu-cross-build): Likewise, and use %DEFAULT-MODULES for #:modules.
* guix/build-system/cmake.scm (%cmake-build-system-modules): New
variable.
(cmake-build): Use it for #:imported-modules.
* guix/build-system/glib-or-gtk.scm (%default-imported-modules): Rename
to...
(%glib-or-gtk-build-system-modules): ... this. Refer to
%GNU-BUILD-SYSTEM-MODULES. Adjust uses.
* guix/build-system/perl.scm (%perl-build-system-modules): New
variable.
(perl-build): Use it for #:imported-modules.
* guix/build-system/python.scm (%python-build-system-modules): New
variable.
(python-build): Use it for #:imported-modules.
* guix/build-system/ruby.scm (%ruby-build-system-modules): New variable.
(ruby-build): Use it for #:imported-modules.
* guix/build-system/waf.scm (%waf-build-system-modules): New variable.
(waf-build): Use it for #:imported-modules.
2015-04-01 15:34:19 +02:00
Ludovic Courtès
8c9653b373
build-system/python: Delay evaluation of the 'python2' package.
...
This fixes a bug whereby uses of 'package-with-python2' at the top-level
in modules other than (gnu packages python) could lead to an "Unbound
variable: python2" error due to the circular references.
Reported by Tomáš Čech.
* guix/build-system/python.scm (package-with-explicit-python)[arguments]:
Check whether PYTHON is a promise, and force it if it is.
(package-with-python2): Wrap 'default-python2' call in 'delay'.
2015-03-12 19:31:25 +01:00
Ludovic Courtès
1289062522
Merge branch 'core-updates'.
2015-03-04 14:07:23 +01:00
David Thompson
7e7c6a1ac0
build: ruby: Add gitify phase.
...
* 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-02 17:33:53 -05:00
Ludovic Courtès
5335c56e8e
build-system/gnu: Add 'install-locale' phase.
...
* 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-26 23:36:55 +01:00
Eric Bavier
2d2a53fc24
build-system/perl: Use Build.PL for builds if present.
...
* guix/build/perl-build-system.scm (configure): Use Build.PL if present.
(build, check, install): New procedures.
(%standard-phases): Replace build, check, and install phases.
* guix/build-system/perl (perl-build): Add make-maker? and module-build-flags
arguments.
* doc/guix.texi (Build Systems)[perl-build-system]: Document behavior rsp.
Build.PL and new arguments.
2015-02-18 23:53:46 -06:00
Ricardo Wurmus
a677c7267b
build: Add 'waf-build-system'.
...
* guix/build-system/waf.scm,
guix/build/waf-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Build Systems): Document waf-build-system.
2015-02-08 19:21:58 +01:00
Federico Beffa
61771a79ab
guix: build/glib-or-gtk-build-system: Add support for GIO and XDG theming.
...
* guix/build/glib-or-gtk-build-system.scm (data-directories): Rename
'schemas-directories' to 'data-directories' and add support for XDG theming
data.
* guix/build/glib-or-gtk-build-system.scm (gio-module-directories): New
function.
* guix/build/glib-or-gtk-build-system.scm (wrap-all-programs): Update names to
reflect that we are dealing with more types of data and not only with
schemas. Add handling of GIO modules.
* guix/build-system/glib-or-gtk.scm (lower): Import the 'bin' output of GLib
instead of 'out'. This was an error since we need the program
'glib-compile-schemas'. Update the description.
2015-01-12 18:00:08 +01:00
Ludovic Courtès
78a2745370
build-system/python: Fix 'package-with-explicit-python'.
...
Reported by Federico Beffa <beffa@ieee.org>
and Eric Bavier <ericbavier@gmail.com>.
* guix/build-system/python.scm (package-with-explicit-python): Do
nothing when P's build system is not PYTHON-BUILD-SYSTEM.
2014-12-23 19:14:52 +01:00