Commit Graph

565 Commits

Author SHA1 Message Date
Leo Famulari 40d728a87d
Revert "guix: git: Add new module."
This reverts commit a70b784708.

Commit a70b784708 caused `guix pull` to fail:

ERROR: In procedure scm-error:
ERROR: no code for module (git)
2017-05-05 20:12:57 -04:00
Mathieu Othacehe a70b784708
guix: git: Add new module.
* guix/git.scm: New file.
* configure.ac: Check for (guile git).
* Makefile.am: Build guix/git.scm if (guile git) is available.
2017-05-05 19:52:38 +02:00
Ludovic Courtès e6860b5e7f
build: Use Gnulib's 'git-version-gen'.
* Makefile.am (EXTRA_DIST, BUILT_SOURCES): Add $(top_srcdir)/.version.
($(top_srcdir)/.version, gen-tarball-version): New targets.
(dist-hook): Depend on 'gen-tarball-version'.
(.PHONY): Add 'gen-tarball-version'.
* build-aux/git-version-gen: New file, from Gnulib v0.1-1312-ga87d5e5c6.
* configure.ac: Use it in 'AC_INIT'.  Use 'https' for the URL.
2017-05-04 23:51:45 +02:00
Ludovic Courtès 1d1ddf26d5
build: Remove 'sync-descriptions' target.
This target predates 'guix lint'.  Nowadays it makes little sense to run
it upon 'make dist'.

* Makefile.am (sync-descriptions): Remove.
(dist-hook, .PHONY): Remove reference to 'sync-descriptions'.
2017-05-04 23:51:45 +02:00
Ludovic Courtès cd903ef787
Add (guix discovery).
* guix/discovery.scm, tests/discovery.scm: New files.
* gnu/packages.scm (scheme-files, file-name->module-name)
(scheme-modules, all-package-modules): Remove.
(fold-packages): Rewrite in terms of 'fold-module-public-variables'.
* gnu/tests.scm: Use (guix discovery).
* Makefile.am (MODULES): Add guix/discovery.scm.
(SCM_TESTS): Add tests/discovery.scm.
2017-05-03 23:50:15 +02:00
Ludovic Courtès 4aabc8eaa2
build: Install gnu/build/svg.scm.
Fixes a regression introduced in
commit 960887b297.

* Makefile.am (MODULES_NOT_COMPILED): New variable.
(nobase_dist_guilemodule_DATA): Add $(MODULES_NOT_COMPILED).
(EXTRA_DIST): Remove gnu/build/svg.scm.
* gnu/local.mk (MODULES_NOT_COMPILED): New variable.
2017-05-02 15:44:35 +02:00
Ludovic Courtès 693f12ce23
build: 'check-system' now depends on the bootstrap Guile tarballs.
Reported by Chris Marusich <cmmarusich@gmail.com>.

* gnu/local.mk (BOOTSTRAP_GUILE_TARBALLS): New variable.
(DISTCLEANFILES): Define as an alias for 'BOOTSTRAP_GUILE_TARBALLS'.
* Makefile.am (check-system): Depend on $(BOOTSTRAP_GUILE_TARBALLS).
2017-05-02 15:10:05 +02:00
Mark H Weaver 60c9e80444
gnu: linux-libre: Update to 4.11.
* gnu/packages/linux.scm (%linux-libre-version): Update to 4.11.
(%linux-libre-hash): Update hash.
* gnu/packages/aux-files/linux-libre/4.10-i686.conf,
gnu/packages/aux-files/linux-libre/4.10-x86_64.conf: Delete files.
* gnu/packages/aux-files/linux-libre/4.11-i686.conf,
gnu/packages/aux-files/linux-libre/4.11-x86_64.conf: New files.
* Makefile.am (AUX_FILES): Adjust accordingly.
2017-05-01 21:48:15 -04:00
Ludovic Courtès 285f63e805
store: Support 'ssh://' URIs in 'GUIX_DAEMON_SOCKET'.
This allows 'guix' commands to talk to a remote store over SSH.

* guix/store.scm (connect-to-daemon)[connect]: Call 'resolve-interface'
for unknown URI schemes.
* guix/store/ssh.scm: New file.
* Makefile.am (MODULES): Add it.
* doc/guix.texi (The Store): Document it.  Mark remote access as
experimental.
2017-04-21 19:17:36 +02:00
Ludovic Courtès 2ea2aac6e9
Add (guix cache) and use it in (guix scripts substitute).
* guix/cache.scm, tests/cache.scm: New files.
* Makefile.am (MODULES, SCM_TESTS): Add them.
* guix/scripts/substitute.scm (obsolete?): Remove.
(remove-expired-cached-narinfos): Rename to...
(cached-narinfo-expiration-time): ... this.  Remove the removal part and
only keep the expiration time part.
(narinfo-cache-directories): Add optional 'directory' parameter and
honor it.
(maybe-remove-expired-cached-narinfo): Remove.
(cached-narinfo-files): New procedure.
(guix-substitute): Use 'maybe-remove-expired-cache-entries' instead of
'maybe-remove-expired-cached-narinfo'.
2017-04-18 23:19:30 +02:00
Ludovic Courtès 1563d6c79f
Add (guix workers).
* guix/workers.scm, tests/workers.scm: New files.
* Makefile.am (MODULES, SCM_TESTS): Add them.
* .dir-locals.el: Add rule for 'eventually'.
2017-04-18 23:17:17 +02:00
Mathieu Othacehe 960887b297
build: Stop building gnu/build/svg.scm.
* Makefile.am (EXTRA_DIST): Add gnu/build/svg.scm.
* gnu/local.mk (GNU_SYSTEM_MODULES): Remove gnu/build/svg.scm.

It fixes the following build warnings:

gnu/build/svg.scm:36:12: warning: possibly unbound variable `cairo-create'
gnu/build/svg.scm:36:26: warning: possibly unbound variable `cairo-image-surface-create'
gnu/build/svg.scm:38:4: warning: possibly unbound variable `cairo-scale'
gnu/build/svg.scm:39:4: warning: possibly unbound variable `cairo-set-source-surface'

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-14 12:29:20 +02:00
Mathieu Othacehe 11e2087e25
build: Remove build-aux/hydra/demo-os.scm from EXTRA_DIST.
* Makefile.am (EXTRA_DIST): Remove build-aux/hydra/demo-os.scm. The
  file was removed of guix in this commit
  a3a2774501.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-14 12:29:20 +02:00
Ludovic Courtès 1165b08f86
build: Include 'glibc-utf8-locales' in the binary tarball.
* Makefile.am (guix-binary.%.tar.xz): Add 'glibc-utf8-locales' and
'glibc-final' to the 'guix pack' command line.
* doc/guix.texi (Binary Installation): Mention 'etc/profile'.
2017-04-07 23:30:38 +02:00
Leo Famulari c17383f400
Merge branch 'master' into core-updates 2017-03-27 21:19:38 -04:00
Mark H Weaver 3089b5d3f5
import: stackage: Compile only if guile-json is available.
* Makefile.am (MODULES): Move "guix/import/stackage.scm" within
"if HAVE_GUILE_JSON".  Sort the modules within that conditional.
2017-03-26 03:07:33 -04:00
Efraim Flashner 378de69c59
Merge remote-tracking branch 'origin/master' into core-updates 2017-03-22 12:57:37 +02:00
Ludovic Courtès 9437fd7399
build: Install .go files to $libdir/guile/X.Y.
* configure.ac: Define and substitute 'guileobjectdir'.
* Makefile.am (nobase_nodist_guilemodule_DATA): Remove $(GOBJECTS).
(nobase_nodist_guileobject_DATA): New variable.
(guix_install_go_files): Adjust accordingly.
(install-data-hook): Likewise.
* scripts/guix.in (config-lookup): Add 'exec_prefix' and
'guileobjectdir'.  Add '_' in VAR-REF-REGEXP.
(maybe-augment-load-paths!): Distinguish OBJECT-DIR from MODULE-DIR.
2017-03-20 23:26:18 +01:00
Mark H Weaver f67337e23e
Merge branch 'master' into core-updates 2017-03-19 18:52:12 -04:00
Ludovic Courtès 4c0c4db070
utils: Move base16 procedures to (guix base16).
* guix/utils.scm (bytevector->base16-string, base16-string->bytevector):
Move to...
* guix/base16.scm: ... here.  New file.
* tests/utils.scm ("bytevector->base16-string->bytevector"): Move to...
* tests/base16.scm: ... here.  New file.
* Makefile.am (MODULES): Add guix/base16.scm.
(SCM_TESTS): Add tests/base16.scm.
* build-aux/download.scm, guix/derivations.scm,
guix/docker.scm, guix/import/snix.scm, guix/pk-crypto.scm,
guix/scripts/authenticate.scm, guix/scripts/download.scm,
guix/scripts/hash.scm, guix/store.scm, tests/hash.scm,
tests/pk-crypto.scm: Adjust imports accordingly.
2017-03-16 22:50:14 +01:00
Marius Bakke 4b7e5c1131
Merge branch 'master' into core-updates 2017-03-15 17:52:26 +01:00
Ludovic Courtès 850edd77f9
pack: Add unit test.
* guix/scripts/pack.scm (self-contained-tarball): Add #:tar option.
[build](tar-supports-sort?): New variable.  Use it.
* tests/pack.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
2017-03-14 23:18:32 +01:00
Ludovic Courtès 6b63c43e06
pack: Add '--localstatedir' option.
* guix/scripts/pack.scm (self-contained-tarball): Add #:localstatedir?
parameter and honor it.
(%options, show-help): Add '--localstatedir'.
(guix-pack): Honor it.
* gnu/build/install.scm (populate-single-profile-directory): Add
 #:register? parameter and honor it.
* doc/guix.texi (Binary Installation): Use '--localstatedir' in
example.
(Invoking guix pack): Document it.
2017-03-14 17:57:27 +01:00
Efraim Flashner 3f9543aee1
Merge remote-tracking branch 'origin/master' into core-updates 2017-03-13 23:08:49 +02:00
Ludovic Courtès 239c22663a
Add 'guix pack'.
* gnu/system/install.scm (self-contained-tarball): Move to...
* guix/scripts/pack.scm: ... here.  New file.
* doc/guix.texi (Binary Installation): Mention 'guix pack'.
(Invoking guix pack): New node.
* build-aux/make-binary-tarball.scm: Remove.
* Makefile.am (MODULES): Add guix/scripts/pack.scm.
(EXTRA_DIST): Remove build-aux/make-binary-tarball.scm.
(guix-binary.%.tar.xz): Rewrite using 'guix pack'.
* build-aux/hydra/gnu-system.scm (tarball-jobs): Adjust accordingly.
2017-03-12 17:47:25 +01:00
Ludovic Courtès e90e0fad1b
Merge branch 'master' into core-updates 2017-03-09 16:35:41 +01:00
Alex Kost 59d04f63df
gnu: emacs: Move "guix-emacs.el" to "aux-files".
* emacs/guix-emacs.el: Rename to...
* gnu/packages/aux-files/emacs/guix-emacs.el: ... this.
* Makefile.am (AUX_FILES): Add it.
* gnu/packages/emacs.scm (emacs)[inputs]: Remove 'guix' source.
[native-inputs]: Add "guix-emacs.el" auxiliary file.
[arguments]: Adjust 'install-site-start' phase accordingly.
2017-02-27 16:44:58 +03:00
Alex Kost 7994250fdb
gnu: linux: Move configuration files to "aux-files".
* gnu/packages/linux-libre-4.1-i686.conf: Rename to...
* gnu/packages/aux-files/linux-libre/4.1-i686.conf: ... this.
* gnu/packages/linux-libre-4.1-x86_64.conf: Rename to...
* gnu/packages/aux-files/linux-libre/4.1-x86_64.conf: ... this.
* gnu/packages/linux-libre-4.4-i686.conf: Rename to...
* gnu/packages/aux-files/linux-libre/4.4-i686.conf: ... this.
* gnu/packages/linux-libre-4.4-x86_64.conf: Rename to...
* gnu/packages/aux-files/linux-libre/4.4-x86_64.conf: ... this.
* gnu/packages/linux-libre-4.9-i686.conf: Rename to...
* gnu/packages/aux-files/linux-libre/4.9-i686.conf: ... this.
* gnu/packages/linux-libre-4.9-x86_64.conf: Rename to...
* gnu/packages/aux-files/linux-libre/4.9-x86_64.conf: ... this.
* gnu/packages/linux-libre-4.10-i686.conf: Rename to...
* gnu/packages/aux-files/linux-libre/4.10-i686.conf: ... this.
* gnu/packages/linux-libre-4.10-x86_64.conf: Rename to...
* gnu/packages/aux-files/linux-libre/4.10-x86_64.conf: ... this.
* gnu/packages/linux.scm (kernel-config): Use 'search-auxiliary-file' to
find configuration files.
* Makefile.am (KCONFIGS): Rename to...
(AUX_FILES): ... this.  Adjust accordingly.
2017-02-27 16:44:58 +03:00
Efraim Flashner d15432ca9e
Merge remote-tracking branch 'origin/master' into core-updates 2017-02-20 12:56:14 +02:00
Mark H Weaver 52d901da0c
gnu: linux-libre: Update to 4.10. Keep 4.9 as longterm release.
* gnu/packages/linux.scm (%linux-libre-version): Update to 4.10.
(%linux-libre-hash): Update hash.
(linux-libre-4.9): New variable.
* gnu/packages/linux-libre-4.10-x86_64.conf,
gnu/packages/linux-libre-4.10-i686.conf: New files.
* Makefile.am (KCONFIGS): Add them.
2017-02-20 03:04:35 -05:00
Ludovic Courtès 768f0ac9dd
Merge branch 'master' into core-updates 2017-02-10 17:40:25 +01:00
Danny Milosavljevic 65e862d1a2
gnu: Add dub-build-system.
* guix/build-system/dub.scm: New file.
* guix/build/dub-build-system.scm: New file.
* Makefile.am (MODULES): Add them.
* doc/guix.texi: Add section for dub-build-system.
2017-02-10 16:21:50 +01:00
Federico Beffa bc5844d149
import: Add stackage importer and updater.
* guix/import/stackage.scm: New file.
* guix/scripts/import/stackage.scm: New file.
* Makefile.am (MODULES): Add new files.
* guix/scripts/import.scm (importers): Add "stackage".
* guix/scripts/refresh.scm (%updaters): Add %stackage-updater.
* doc/guix.texi (Invoking 'guix import'): Document the importer.
  (Invoking 'guix refresh'): Add stackage to option --type valid values.
* guix/import/hackage.scm (guix-package->hackage-name, hackage-fetch,
  hackage-source-url, hackage-cabal-url, hackage-package?): Export them.
2017-02-09 19:36:08 +01:00
Leo Famulari e8c83d04e1
Merge branch 'master' into core-updates 2017-02-02 10:52:24 -05: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
Ludovic Courtès 58ea4d407c
Merge branch 'master' into core-updates 2017-01-23 22:33:10 +01:00
Ludovic Courtès fcd75bdbfa
search-paths: Allow specs with #f as their separator.
This adds support for single-entry search paths.
Fixes <http://bugs.gnu.org/25422>.
Reported by Leo Famulari <leo@famulari.name>.

* guix/search-paths.scm (<search-path-specification>)[separator]:
Document as string or #f.
(evaluate-search-paths): Add case for SEPARATOR as #f.
(environment-variable-definition): Handle SEPARATOR being #f.
* guix/build/utils.scm (list->search-path-as-string): Add case for
SEPARATOR as #f.
(search-path-as-string->list): Likewise.
* guix/build/profiles.scm (abstract-profile): Likewise.
* tests/search-paths.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
* tests/packages.scm ("--search-paths with single-item search path"):
New test.
* gnu/packages/version-control.scm (git)[native-search-paths](separator):
New field.
2017-01-23 22:23:41 +01:00
Mark H Weaver 57fe28a082
gnu: linux-libre: Update to 4.9.1.
* gnu/packages/linux.scm (%linux-libre-version, %linux-libre-hash)
(linux-libre): Update to 4.9.1.
* gnu/packages/linux-libre-4.8-x86_64.conf,
gnu/packages/linux-libre-4.8-i686.conf: Delete files.
* gnu/packages/linux-libre-4.9-x86_64.conf,
gnu/packages/linux-libre-4.9-i686.conf: New files.
* Makefile.am (KCONFIGS): Update accordingly.
2017-01-07 19:42:36 -05:00
Ricardo Wurmus 03476a23ff
guix: Add Docker image export.
* guix/docker.scm: New file.
* Makefile.am (MODULES): Register it.
* guix/scripts/archive.scm (show-help, %options, guix-archive): Add
support for "--format".
* doc/guix.texi (Invoking guix archive): Document it.
2017-01-06 16:44:00 +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
Ludovic Courtès f11c444d44
Add 'guix copy'.
* guix/scripts/copy.scm: New file.
* guix/scripts/archive.scm (options->derivations+files): Export.
* doc/guix.texi (Invoking guix copy): New node.
* Makefile.am (MODULES) [HAVE_GUILE_SSH]: Add guix/scripts/copy.scm.
* po/guix/POTFILES.in: Likewise.
2016-12-31 18:35:29 +01:00
Ludovic Courtès 987a29ba43
Add (guix ssh) module.
* guix/scripts/offload.scm (connect-to-remote-daemon)
(store-import-channel, store-export-channel, send-files)
(retrieve-files): Move to (guix ssh).
(nonce): Add optional 'name' parameter and use it.
(retrieve-files*): New procedure.
(transfer-and-offload): Use it instead of 'retrieve-files', and add
first parameter to 'send-files'.
(assert-node-can-import): Likewise.
(assert-node-can-export): Use 'retrieve-files' instead of
'store-export-channel'.
* guix/ssh.scm: New file.
* configure.ac: Use 'GUIX_CHECK_GUILE_SSH' and define 'HAVE_GUILE_SSH'
Automake conditional.
* Makefile.am (MODULES) [HAVE_GUILE_SSH]: Add guix/ssh.scm.
2016-12-31 01:44:04 +01:00
David Thompson 6023041346
import: crate: Do not build when guile-json is not available.
* Makefile.am (MODULES): Add 'guix/import/crate.scm' and
'guix/scripts/import/crate.scm' only when HAVE_GUILE_JSON.
2016-12-30 14:15:35 -05:00
Alex Kost deb6276dda
Remove Emacs interface.
* emacs/guix-about.el: Remove file.
* emacs/guix-backend.el: Likewise.
* emacs/guix-base.el: Likewise.
* emacs/guix-buffer.el: Likewise.
* emacs/guix-build-log.el: Likewise.
* emacs/guix-command.el: Likewise.
* emacs/guix-config.el.in: Likewise.
* emacs/guix-devel.el: Likewise.
* emacs/guix-entry.el: Likewise.
* emacs/guix-external.el: Likewise.
* emacs/guix-geiser.el: Likewise.
* emacs/guix-guile.el: Likewise.
* emacs/guix-help-vars.el: Likewise.
* emacs/guix-helper.scm.in: Likewise.
* emacs/guix-history.el: Likewise.
* emacs/guix-hydra-build.el: Likewise.
* emacs/guix-hydra-jobset.el: Likewise.
* emacs/guix-hydra.el: Likewise.
* emacs/guix-info.el: Likewise.
* emacs/guix-init.el: Likewise.
* emacs/guix-license.el: Likewise.
* emacs/guix-list.el: Likewise.
* emacs/guix-location.el: Likewise.
* emacs/guix-main.scm: Likewise.
* emacs/guix-messages.el: Likewise.
* emacs/guix-pcomplete.el: Likewise.
* emacs/guix-popup.el: Likewise.
* emacs/guix-prettify.el: Likewise.
* emacs/guix-profiles.el: Likewise.
* emacs/guix-read.el: Likewise.
* emacs/guix-ui-generation.el: Likewise.
* emacs/guix-ui-license.el: Likewise.
* emacs/guix-ui-location.el: Likewise.
* emacs/guix-ui-package.el: Likewise.
* emacs/guix-ui-system-generation.el: Likewise.
* emacs/guix-ui.el: Likewise.
* emacs/guix-utils.el: Likewise.
* emacs/local.mk: Likewise.
* doc/emacs.texi: Likewise.
* doc/guix.texi: Remove cross-references to Emacs nodes.
(Package Management): Mention 'emacs-guix' package.
* doc/contributing.texi (The Perfect Setup): Remove the reference.
* doc/htmlxref.cnf: Add 'emacs-guix' URL.
* Makefile.am: Remove Emacs stuff.
* configure.ac: Likewise.
* gnu/packages/package-management.scm (guix-0.12.0)[native-inputs]:
Remove "emacs".
[propagated-inputs]: Remove "geiser" and "emacs-magit-popup".

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-12-29 23:40:24 +03:00
Mark H Weaver 9cedffe5db
Revert "gnu: linux-libre: Update to 4.9."
This reverts commit 5a3849443a.

Module loading is broken on i686 with some configurations, including our
default configuration.  See <https://bugs.gnu.org/25231>.
2016-12-19 14:03:41 -05:00
Ricardo Wurmus 76b3fbbce6
build: assert-no-store-file-names: Ignore ChangeLog.
* Makefile.am (assert-no-store-file-names): Ignore /gnu/store file names
in the ChangeLog, because they might be examples in commit messages.
2016-12-17 00:21:23 +01:00
Ricardo Wurmus 4d93f312f0
graph: Add d3js backend.
* d3.v3.js, graph.js: New files.
* Makefile.am (EXTRA_DIST): List them.
* guix/graph.scm (%d3js-backend): New variable.
(emit-d3js-prologue, emit-d3js-epilogue, emit-d3js-node,
emit-d3js-edge): New procedures.
(%graph-backends): Add %d3js-backend.
2016-12-14 21:58:32 +01:00
David Craven 3e0c036584
import: Add importer for rust crates.
* guix/import/crate.scm: New file.
* guix/scripts/import/crate.scm: New file.
* guix/scripts/import.scm (importers): Add crate importer.
* tests/crate.scm: New file.
* doc/guix.texi: Add crate importer to table.
* Makefile.am (MODULES, SCM_TESTS): Add files.
2016-12-14 16:30:42 +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
Mark H Weaver 5a3849443a
gnu: linux-libre: Update to 4.9.
* gnu/packages/linux.scm (%linux-libre-version, %linux-libre-hash)
(linux-libre): Update to 4.9.
* gnu/packages/linux-libre-4.8-x86_64.conf,
gnu/packages/linux-libre-4.8-i686.conf: Delete files.
* gnu/packages/linux-libre-4.9-x86_64.conf,
gnu/packages/linux-libre-4.9-i686.conf: New files.
* Makefile.am (KCONFIGS): Update accordingly.
2016-12-14 03:27:26 -05:00
Manolis Ragkousis f13f60cb26
gnu: make-bootstrap: Produce the correct %glibc-bootstrap-tarball for Hurd systems.
* gnu/packages/make-bootstrap.scm (%glibc-bootstrap-tarball): Make it a procedure.
  (%glibc-stripped): Make it a procedure and move the kernel specific part from
  here to ...
* guix/build/make-bootstrap.scm (make-stripped-libc): ... here. New file.
* Makefile.am (MODULES): Add it.
2016-12-07 12:59:02 +02:00
Ludovic Courtès 94d92c7796
daemon: Add "builtin:download" derivation builder.
This ensures that 1) the derivation doesn't change when Guix changes;
2) the derivation closure doesn't contain Guix and its dependencies; 3)
we don't have to rely on ugly chroot hacks.

Adapted from Nix commit 0a2bee307b20411f5b0dda0c662b1f9bb9e0e131.

* nix/libstore/build.cc (DerivationGoal::runChild): Add special case for
'isBuiltin(drv)'.  Disable chroot when 'isBuiltin(drv)'.
* nix/libstore/builtins.cc, nix/libstore/builtins.hh,
nix/scripts/download.in, guix/scripts/perform-download.scm: New files.
* guix/ui.scm (show-guix-help)[internal?]: Add 'perform-download'.
* nix/local.mk (libstore_a_SOURCES): Add builtins.cc.
(libstore_headers): Add builtins.hh.
(nodist_pkglibexec_SCRIPTS): Add 'scripts/download'.
* config-daemon.ac: Emit 'scripts/download'.
* Makefile.am (MODULES): Add 'guix/scripts/perform-download.scm'.
* tests/derivations.scm ("unknown built-in builder")
("'download' built-in builder")
("'download' built-in builder, invalid hash")
("'download' built-in builder, not found")
("'download' built-in builder, not fixed-output"): New tests.

Co-authored-by: Eelco Dolstra <eelco.dolstra@logicblox.com>
2016-11-16 18:19:47 +01:00
Ludovic Courtès 17ab08bcf0
tests: Move HTTP server to (guix tests http).
* tests/lint.scm (%http-server-port, %local-url)
(%http-server-socket, http-write, %http-server-lock)
(%http-server-ready, http-open, stub-http-server)
(call-with-http-server, with-http-server): Move to (guix tests http).
Adjust tests for %HTTP-SERVER-SOCKET as a promise and %LOCAL-URL as a
parameter.
* guix/tests/http.scm: New file.
* Makefile.am (dist_noinst_DATA): Add it.
(GOBJECTS): Add .go files for all of $(dist_noinst_DATA).
(make-go): Depend on $(dist_noinst_DATA).
2016-11-16 18:00:41 +01:00
Ludovic Courtès 69e7322fdc
build: Make 'assert-no-store-file-names' effective.
Lack of '-E' made it useless.

* Makefile.am (assert-no-store-file-names): Pass '-E' to grep.  Add
'--exclude' and '--exclude-dir' flags.
2016-10-12 23:35:43 +02: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
Mark H Weaver 1927839dcb
gnu: linux-libre: Update to 4.8.
* gnu/packages/linux.scm (linux-libre): Update to 4.8.
* gnu/packages/linux-libre-4.7-x86_64.conf,
gnu/packages/linux-libre-4.7-i686.conf: Delete files.
* gnu/packages/linux-libre-4.8-x86_64.conf,
gnu/packages/linux-libre-4.8-i686.conf: New files.
* Makefile.am (KCONFIGS): Update accordingly.
2016-10-03 22:05:51 -04:00
Eric Bavier cdf26f40b0
build: clean-go: warn about stray .go files.
* Makefile.am (clean-go): Warn of .go files remaining in builddir.
2016-09-22 22:26:11 -05:00
Eric Le Bihan 96dbc93089
Add Zsh completion file.
* etc/completion/zsh/_guix: New file.
* Makefile.am (dist_zshcompletion_DATA): New variable.
* configure.ac: Add --with-zsh-completion-dir.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-09-07 16:08:20 +02:00
Ludovic Courtès 7ca87354db
Add (guix modules).
* guix/modules.scm, tests/modules.scm: New files.
* Makefile.am (MODULES, SCM_TESTS): Add them.
* doc/guix.texi (G-Expressions): Add an example of
'source-module-closure'.
2016-09-05 00:06:47 +02:00
David Craven 2098d0240e
build: Add wrap-qt-program.
* guix/build/qt-utils.scm (wrap-qt-program): New file.
* Makefile.am (MODULES): Add it.
2016-08-30 22:38:28 +02:00
Ludovic Courtès d92e23dc9d
build: Set XDG_CACHE_HOME to avoid loading stale .go files.
Fixes <http://bugs.gnu.org/24120>.
Reported by myglc2 <myglc2@gmail.com>.

* Makefile.am (make-go): Set XDG_CACHE_HOME.
2016-08-01 22:52:54 +02:00
Andreas Enge e309c75610
Merge remote-tracking branch 'origin/master' into core-updates 2016-07-28 11:08:55 +02:00
Mark H Weaver de348a0bb7
gnu: linux-libre: Update to 4.7.
* gnu/packages/linux.scm (linux-libre): Update to 4.7.
* gnu/packages/linux-libre-4.7-x86_64.conf,
gnu/packages/linux-libre-4.7-i686.conf: New files.
* gnu/packages/linux-libre-4.6-x86_64.conf,
gnu/packages/linux-libre-4.6-i686.conf: Delete files.
* Makefile.am (KCONFIGS): Update accordingly.
2016-07-26 00:46:40 -04:00
Ludovic Courtès 7575655212
Merge branch 'master' into core-updates 2016-07-20 11:42:17 +02:00
Ludovic Courtès 721539026d
Add (guix zlib).
* guix/zlib.scm, tests/zlib.scm: New files.
* Makefile.am (MODULES): Add guix/zlib.scm.
(SCM_TESTS): Add tests/zlib.scm.
* m4/guix.m4 (GUIX_LIBGCRYPT_LIBDIR): New macro.
* configure.ac (LIBGCRYPT_LIBDIR): Use it.  Define and substitute
'LIBZ'.
* guix/config.scm.in (%libz): New variable.
2016-07-19 00:07:12 +02:00
Ludovic Courtès 01497dfe6c
Merge branch 'master' into core-updates 2016-06-27 09:30:01 +02:00
Manolis Ragkousis 875715cabf
build: Remove unneeded conditionals for (guix build syscalls).
* m4/guix.m4: Remove 'GUIX_CHECK_LIBC_MOUNT'.
* configure.ac: Remove 'BUILD_SYSCALLS_MODULE'.
* Makefile.am (MODULES): Add 'guix/build/syscalls.scm'.
  (EXTRA_DIST): Remove conditional on BUILD_SYSCALLS_MODULE.
2016-06-23 17:25:37 +03:00
Ludovic Courtès 98b65b5ff6
tests: Add a mechanism to describe and discover system tests.
* gnu/tests.scm (<system-test>): New record type.
(write-system-test, test-modules, fold-system-tests)
(all-system-tests): New procedures.
* gnu/tests/base.scm (%test-basic-os): Turn into a <system-test>.
* gnu/tests/install.scm (%test-installed-os): Likewise.
* build-aux/run-system-tests.scm (%system-tests): Remove.
(run-system-tests): Use 'all-system-tests'.
2016-06-20 23:50:46 +02:00
Ricardo Wurmus c4e48b68bd
guix: Add downloader for Mercurial repositories.
* guix/build/hg.scm: New file.
* guix/hg-download.scm: New file.
* Makefile.am (MODULES): Add them.
2016-06-15 17:02:18 +02:00
Ludovic Courtès f82c58539e
bournish: Allow compilation of multiple expressions.
* guix/build/bournish.scm (%bournish-language): Add a joiner to SCHEME.
Compile only to Scheme.
* tests/bournish.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
2016-06-06 18:14:52 +02:00
Mark H Weaver 2301195f2e
gnu: linux-libre: Update to 4.6.
* gnu/packages/linux.scm (linux-libre): Update to 4.6.
* gnu/packages/linux-libre-4.6-x86_64.conf,
gnu/packages/linux-libre-4.6-i686.conf: New files.
* gnu/packages/linux-libre-4.5-x86_64.conf,
gnu/packages/linux-libre-4.5-i686.conf: Delete files.
* Makefile.am (KCONFIGS): Update accordingly.
2016-05-25 04:54:06 -04:00
Mathieu Lirzin 28dee3d282 build: Fix 'AM_V_at' typo.
* Makefile.am (hydra-jobs.scm): Fix 'AM_V_at' typo.
2016-05-21 23:09:46 +02:00
Ludovic Courtès 41c569d9b9
build: Add 'run-system-tests.scm'.
This file was meant to be added as part of
commit e9f693d06f.

* build-aux/run-system-tests.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2016-05-04 23:56:42 +02:00
Ludovic Courtès e9f693d06f
tests: Add whole-system test.
* gnu/system/vm.scm (virtualized-operating-system): Export.
* gnu/tests/base.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* Makefile.am (check-system): New target.
2016-05-04 23:35:55 +02:00
Ludovic Courtès 4d9ed58498
build: Preserve stderr for shell tests.
Fixes a regression introduced in
a9edb211e7 where the .log files of the .sh
tests would not contain stderr.

* build-aux/test-env.in: Redirect stderr only when --quiet-stderr is
passed.
* Makefile.am (SCM_LOG_DRIVER): Add --quiet-stderr.
2016-05-04 23:35:55 +02: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
Ludovic Courtès 93cba30ca4
build: 'assert-' targets now depend on the .go files.
* Makefile.am (assert-binaries-available)
(assert-final-inputs-self-contained): Add dependency on $(GOBJECTS).
2016-04-27 15:09:15 +02:00
Mathieu Lirzin 03d0e2d2b9 build: Move 'Makefile' fragments to subdirectories.
This follows a convention used by some other GNU packages like Autoconf,
Bison, Coreutils, and Gnulib.

* doc.am: Rename to ...
* doc/local.mk: ... this.
* emacs.am: Rename to ...
* emacs/local.mk: ... this.
* gnu-system.am: Rename to ...
* gnu/local.mk: ... this.
* daemon.am: Rename to ...
* nix/local.mk: ... this.
* Makefile.am: Adapt to them.
* doc/guix.texi (Porting to a New Platform): Adapt documentation.
* guix/config.scm.in (%state-directory, %config-directory): Adapt comments.
* emacs/guix-config.el.in (guix-config-state-directory): Likewise.
2016-04-21 18:47:50 +02:00
Ludovic Courtès 89cbec89a5 hydra: Add 'hydra-jobs.scm' target to compute the Hydra jobs.
* build-aux/hydra/evaluate.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2016-04-13 19:20:03 +02:00
Mathieu Lirzin 3cf0dbda97 build: Distribute 'build-aux/test-driver.scm'.
* Makefile.am (EXTRA_DIST): Add 'build-aux/test-driver.scm'.
2016-04-03 16:25:07 +02:00
Mathieu Lirzin a9edb211e7 build: Add a Guile custom test driver using SRFI-64.
Before that '.log' files for scheme tests were fragmented and not
included in test-suite.log.  This unifies the semantics of SRFI-64 API
with Automake test suite.

* build-aux/test-driver.scm: New file.
* Makefile.am (SCM_LOG_DRIVER, AM_SCM_LOG_DRIVER_FLAGS): New variables.
(SCM_LOG_COMPILER, AM_SCM_LOG_FLAGS): Delete variables.
(AM_TESTS_ENVIRONMENT): Set GUILE_AUTO_COMPILE to 0.
* test-env.in: Silence guix-daemon.
* doc/guix.texi (Running the Test Suite): Describe how to display the
detailed results.  Bug reports require only 'test-suite.log' file.
* tests/base32.scm, tests/build-utils.scm, tests/builders.scm,
tests/challenge.scm, tests/cpan.scm, tests/cpio.scm, tests/cran.scm,
tests/cve.scm, tests/derivations.scm, tests/elpa.scm,
tests/file-systems.scm, tests/gem.scm, tests/gexp.scm,
tests/gnu-maintenance.scm, tests/grafts.scm, tests/graph.scm,
tests/gremlin.scm, tests/hackage.scm, tests/hash.scm,
tests/import-utils.scm, tests/lint.scm, tests/monads.scm, tests/nar.scm,
tests/packages.scm, tests/pk-crypto.scm, tests/pki.scm,
tests/profiles.scm, tests/publish.scm, tests/pypi.scm,
tests/records.scm, tests/scripts-build.scm, tests/scripts.scm,
tests/services.scm, tests/sets.scm, tests/size.scm, tests/snix.scm,
tests/store.scm, tests/substitute.scm, tests/syscalls.scm,
tests/system.scm, tests/ui.scm, tests/union.scm, tests/upstream.scm,
tests/utils.scm: Don't exit at the end of test groups.
* tests/containers.scm: Likewise.  Use 'test-skip' instead of exiting
with error code 77.
2016-04-03 14:19:09 +02:00
Ludovic Courtès d038b674cf doc: Add "lightweight desktop" OS config example.
* gnu/system/examples/desktop.tmpl (packages): Remove XFCE and
RATPOISON.
(services): Add 'gnome-desktop-service' and 'xfce-desktop-service'.
* gnu/system/examples/lightweight-desktop.tmpl: New file.
* Makefile.am (EXAMPLES): Add it.
* doc.am (OS_CONFIG_EXAMPLES_TEXI): Add
doc/os-config-lightweight-desktop.texi.
* gnu/system/install.scm (/etc/configuration-files)[directory]: Add
lightweight-desktop.tmpl.
2016-03-23 00:23:12 +01:00
Ludovic Courtès ef5f5c8659 build: Protect against misconfiguration of localstatedir.
Suggested by Jookia <166291@gmail.com>.

* m4/guix.m4 (GUIX_CURRENT_LOCALSTATEDIR, GUIX_CHECK_LOCALSTATEDIR): New
macros.
* config-daemon.ac: Use 'GUIX_CHECK_LOCALSTATEDIR'.
* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Add --localstatedir.
* doc/guix.texi (Requirements): Mention --localstatedir.
(The Store): Mention LOCALSTATEDIR as such.
2016-03-19 15:07:46 +01:00
Mark H Weaver 75b314a615 gnu: linux-libre: Update to 4.5, while preserving linux-libre-4.4.
* gnu/packages/linux-libre-x86_64.conf: Rename to ...
* gnu/packages/linux-libre-4.4-x86_64.conf: ... this.
* gnu/packages/linux-libre-i686.conf: Rename to ...
* gnu/packages/linux-libre-4.4-i686.conf: ... this.
* gnu/packages/linux-libre-4.5-i686.conf,
gnu/packages/linux-libre-4.5-x86_64.conf: New files.
* Makefile.am (KCONFIGS): Update accordingly.
* gnu/packages/linux.scm (linux-libre): Update to 4.5.
(linux-libre-4.4): New variable.
2016-03-15 11:09:00 -04: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 f1eacbafc4 upstream: Fix 'signature-urls' coalescing.
Previously, the resulting 'signature-urls' would contain N times the
same URL.

* guix/upstream.scm (coalesce-sources): Fix TWO in 'signature-urls'.
* tests/upstream.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
2016-03-09 15:08:00 +01:00
Ludovic Courtès 7016184245 build: Build (guix import github) only when Guile-JSON is available.
Reported by Justus Winter <justus@gnupg.org>.

* Makefile.am (MODULES): Add guix/import/github.scm only when
HAVE_GUILE_JSON.
2016-03-03 17:46:58 +01:00
Ben Woodcroft 917a2a58ec import: Add github-updater.
* guix/import/github.scm: New file.
* guix/scripts/refresh.scm (%updaters): Add %GITHUB-UPDATER.
* doc/guix.texi (Invoking guix refresh): Mention it.
* Makefile.am (MODULES): Add gnu/import/github.scm.
2016-02-26 22:06:34 -05:00
Ludovic Courtès 7adf9b8469 derivations: Move grafts to (guix grafts).
* guix/derivations.scm (<graft>, graft-derivation, %graft?)
(set-grafting): Move to...
* guix/grafts.scm: ... here.  New file.
* guix/gexp.scm, guix/packages.scm, tests/packages.scm,
guix/scripts/build.scm: Use it.
* Makefile.am (MODULES): Add it.
(SCM_TESTS): Add tests/grafts.scm.
* tests/derivations.scm ("graft-derivation"): Move to...
* tests/grafts.scm: ... here.  New file.
2016-02-22 22:11:37 +01:00
Ludovic Courtès f2e4805b7e Add (guix build bournish) and use it in the initrd.
* guix/build/bournish.scm: New file.
* Makefile.am (MODULES): Add it.
* gnu/system/linux-initrd.scm (base-initrd): Add (guix build bournish)
and use it.
2016-02-08 23:46:46 +01:00
Mark H Weaver adddd5ba3b gnu: Add linux-libre-4.1.
* gnu/packages/linux-libre-4.1-i686.conf,
  gnu/packages/linux-libre-4.1-x86_64.conf: New files.
* Makefile.am (KCONFIGS): Add them.
* gnu/packages/linux.scm (linux-libre-4.1): New variable.
2016-02-02 03:12:29 -05:00
Ludovic Courtès 629a064f32 guix build: Transformations operate on single objects.
* guix/scripts/build.scm (transform-package-source): Return a procedure
that expects a single object rather than a list of packages.
(options->transformation): Rewrite to precompute the list of applicable
transformations and to return a procedure that expects a single object
rather than a list of objects.
(options->derivations): Adjust accordingly.
* tests/scripts-build.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
2016-02-01 08:59:13 +01:00
Mathieu Lirzin e71ad29ddb build: Use 'GEN' and 'at' silent rules.
* daemon.am (nix/libstore/schema.sql.hh, etc/guix-daemon.service)
(etc/guix-daemon.conf): Use $(AM_V_GEN).
* doc.am (doc/os-config-%.texi, .png.eps): Likewise.
* Makefile.am (guix-binary.%.tar.xz, gen-ChangeLog, gen-AUTHORS):
Likewise.
(assert-binaries-available, assert-final-inputs-self-contained)
(assert-no-store-file-names, sync-descriptions): Use $(AM_V_at).
2016-01-28 16:31:38 +01:00
Mathieu Lirzin 8dddedf778 build: Add 'HELP2MAN' silent rule.
* Makefile.am (AM_V_HELP2MAN, AM_V_HELP2MAN_, AM_V_HELP2MAN_0): New
variables.
* doc.am (subcommand-manual-target, doc/guix.1, doc/guix-daemon.1): Use
$(AM_V_HELP2MAN).
2016-01-28 16:31:38 +01:00
Mathieu Lirzin 71ed439b68 build: Add 'EMACS' silent rule.
* Makefile.am (AM_V_EMACS, AM_V_EMACS_, AM_V_EMACS_0): New variables.
* emacs.am [HAVE_EMACS] ($(AUTOLOADS)): Use $(AM_V_EMACS).
2016-01-28 16:31:38 +01:00
Mathieu Lirzin 4c48878de8 build: Add 'DOT' silent rule.
* Makefile.am (AM_V_DOT, AM_V_DOT_, AM_V_DOT_0): New variables.
* doc.am (.dot.png, .dot.pdf, .dot.eps): Use $(AM_V_DOT).
2016-01-28 16:31:38 +01:00
Mathieu Lirzin 8c3d889456 build: Add 'DL' silent rule.
* Makefile.am (AM_V_DL, AM_V_DL_, AM_V_DL_0): New variables.
* gnu-system.am (gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz)
(gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz)
(gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz)
(gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz): Use $(AM_V_DL).
* build-aux/download.scm: Print a line break between target and origin.
2016-01-28 16:31:38 +01:00
Ludovic Courtès 6b779207ee system: grub: Search root device by label or UUID if possible.
Fixes <http://bugs.gnu.org/22281>.
Reported by Christopher Allan Webber <cwebber@dustycloud.org>.

* gnu/system/grub.scm (eye-candy): Add 'root-fs' parameter.  Replace
'search --file' command in the output with whatever 'grub-root-search'
returns.
(grub-root-search): New procedure.
(grub-configuration-file): Add 'store-fs' parameter.  Use
'grub-root-search' instead of hard-coded 'search --file' commands.
* gnu/system.scm (store-file-system,
operating-system-store-file-system): New procedures.
(operating-system-grub.cfg): Use it, and adjust call to
'grub-configuration-file'.
* tests/system.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
2016-01-22 00:02:52 +01:00
Ben Woodcroft a132f7d68f tests: Move beatify-description tests to import-tests.
Fixes <http://bugs.gnu.org/22391>.

* tests/cran.scm (beautify-description: use double spacing,
beautify-description: transform fragment into sentence). Move
from here ...
* tests/import-utils.scm: ... to here. New file.
* Makefile.am (SCM_TESTS): Add import-utils.
2016-01-20 22:06:25 +10:00
Taylan Ulrich Bayırlı/Kammer de6af32783 build: Speed up .go compilation.
* build-aux/compile-all.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
(%.go, make-go): New rules.
2016-01-18 08:57:55 +01:00