Commit Graph

718 Commits

Author SHA1 Message Date
Ludovic Courtès 71e2065a38 substitute: Honor client-provided empty URL list.
Before that, 'guix build --substitute-urls=""' would lead to using the
daemon's own URL list instead of the empty list.  The 'or*' hack, which
is to blame, had become unnecessary since commit
fb4bf72be3.

Reported by Mark H Weaver <mhw@netris.org>.

* guix/scripts/substitute.scm (or*): Remove.
(%cache-urls): Use 'or' instead of 'or*'.
* tests/store.scm ("substitute query, alternating URLs"): Add test with
empty URL list.
* doc/guix.texi (Common Build Options): Mention the empty string.
2016-03-16 18:34:53 +01:00
Ludovic Courtès df061d079b build: Default to "https://mirror.hydra.gnu.org/" for substitutes.
* config-daemon.ac: Check for (gnutls) and define 'GUIX_SUBSTITUTE_URLS'.
* nix/nix-daemon/guix-daemon.cc (main): Use GUIX_SUBSTITUTE_URLS.
* guix/store.scm (%default-substitute-urls): Use 'https' when (gnutls)
is available.
* doc/guix.texi (Binary Installation): Mention mirrors
(Invoking guix-daemon): Mention mirror.hydra.gnu.org.
(Substitutes): Mention mirrors.
(Invoking guix archive): Show https URLs.
2016-03-16 11:27:37 +01:00
Andy Wingo 7a2413e46d gnu: services: Add GNOME and XFCE desktop services.
* gnu/services/desktop.scm (package-direct-input-selector): New
  function.
  (<gnome-desktop-configuration>, gnome-desktop-service-type)
  (<xfce-desktop-configuration>, xfce-desktop-service-type): New
  variables.
  (gnome-desktop-service, xfce-desktop-service): New public variables.

* doc/guix.texi (Desktop Services): Document new variables.
2016-03-15 21:03:27 +01:00
Chris Marusich 4d343a141b doc: Clarify and consolidate modify-services documentation.
* doc/guix.texi ("Using the Configuration System"): Move the example...
("Service Reference"): ...to here, and clarify more.
* gnu/services.scm (modify-services): Update docstring to mention the
return type.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-03-15 15:54:02 +01:00
Ludovic Courtès e3009f6000 doc: Add "Hardware Considerations" node.
Suggested by Nils Gillmann <niasterisk@grrlz.net>.

* doc/guix.texi (Hardware Considerations): New node.
(operating-system Reference): Mention it.
2016-03-15 10:34:29 +01:00
Andreas Enge 6e6a04016d doc: Fix incorrect use of @xref.
This is a follow-up to commit 1068f26b79.
Reported by Alex Kost <alezost@gmail.com>.

* doc/guix.texi (Building the Installation Image): Replace @xref by @ref.
2016-03-14 20:54:28 +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
Christopher Allan Webber b5f990a680 doc: Add footnote about pointing ~/.config/guix/latest at user's checkout
* doc/contributing.texi (Running Guix Before It Is Installed): New footnote.
2016-03-11 08:41:07 -08:00
Jan Nieuwenhuizen baacf042fd doc: Suggest `guix.scm' for upstream maintainers.
* doc/guix.texi (Invoking guix package): Suggest `guix.scm'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-03-11 16:33:50 +01:00
Ludovic Courtès 9b7bd1b160 substitute: Add HTTPS support.
Fixes <http://bugs.gnu.org/22937>.
Reported by Chris Marusich <cmmarusich@gmail.com>.

* guix/scripts/substitute.scm (fetch): Add 'https' alongside 'http'.
Use 'open-connection-for-uri' instead of 'open-socket-for-uri'.  Call
'setvbuf' only when PORT matches 'file-port?'.
(http-multiple-get): Likewise.  Change 'base-url' parameter to
'base-uri'.
(fetch-narinfos)[do-fetch]: Add 'https' case alongside 'http'.  Pass URI
instead of URL to 'http-multiple-get'.
* doc/guix.texi (Requirements): Move GnuTLS one level higher and mention
HTTPS substitutes.
(Substitutes): Mention HTTPS and recommend it.  Explain why servers
are not authenticated.  Add "On Trusting Binaries" subsection.
2016-03-10 13:55:30 +01:00
Ludovic Courtès 1ddee42472 doc: Add note on store immutability.
* doc/guix.texi (The Store): Mention "store items" and the database
location.  Add note on the store's immutability.
2016-03-09 14:49:28 +01:00
Ludovic Courtès 5284339d9d guix build: Add '--quiet'.
Fixes <http://bugs.gnu.org/19772>.
Reported by Andrei Osipov <andrspv@gmail.com>.

* guix/scripts/build.scm (show-help, %options): Add --quiet.
(guix-build): Parameterize 'current-build-output-port' accordingly.
* doc/guix.texi (Invoking guix build): Use it in example.
(Additional Build Options): Document it.
2016-03-08 22:00:17 +01:00
Ludovic Courtès 59a4dd509b doc: Explain how to check whether security updates are used.
Based on
<https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00009.html>.

* doc/guix.texi (Security Updates): Explain how to check whether we're
using a grafted version.
2016-03-05 22:53:40 +01:00
Andreas Enge 1068f26b79 doc: Typos and small stylistic changes.
* guix.texi: Correct typos and make minor changes.
2016-03-05 16:27:35 +01:00
Ludovic Courtès 44abcb2868 doc: Mention syslogd configuration.
* gnu/services/base.scm (syslog-service): Add xref to Inetutils in the
docstring.
(%default-syslog.conf): Export.
* doc/guix.texi (Base Services): Update accordingly.
2016-03-04 11:48:52 +01:00
Ludovic Courtès abd678565e doc: Improve Info categories.
* doc/guix.texi: Change main category to "System administration".  Fix
syntax of subnodes.  Add entries for 'guix pull' and 'guix gc'.  Add
"Emacs" category.
2016-03-03 23:54:36 +01:00
Mathieu Lirzin 1b846da8c3 utils: Use '@' for separating package names and version numbers.
This provides the ability to use numbers in package names.

Fixes <http://bugs.gnu.org/19219>.

* guix/utils.scm (package-name->name+version): New procedure.
* gnu/packages.scm (%find-package): Add a FALLBACK? keyword argument.
Use the previous method when no package is found.
(specification->package+output, specification->package): Adapt
documentation to new syntax.
* doc/guix.texi (Invoking guix package, Invoking guix import): Likewise.
* guix/ui.scm (package-specification->name+version+output): Likewise.
* guix/scripts/import/hackage.scm (show-help): Likewise.
* tests/guix-build.sh: Adapt to new syntax.
* tests/guix-lint.sh: Likewise.
* tests/guix-package.sh: Likewise.
* tests/ui.scm ("package-specification->name+version+output"): Likewise.
* tests/utils.scm ("package-name->name+version"): Likewise.
* NEWS: Mention new syntax.
2016-03-02 21:41:41 +01:00
Ludovic Courtès 7573d30ff8 guix build: Move '--no-grafts' to the common build options.
* guix/scripts/build.scm (%options): Move --no-grafts to...
(%standard-build-options): ... here.
(show-help, show-build-options-help): Adjust accordingly.
* guix/scripts/archive.scm (%default-options): Add 'graft?'.
(guix-archive): Parametrize '%graft?'.
* guix/scripts/environment.scm (%default-options): Add 'graft?'.
(guix-environment): Parametrize '%graft?'.
* guix/scripts/package.scm (%default-options): Add 'graft?'.
(guix-package): Parametrize '%graft?'.
* guix/scripts/system.scm (%default-options): Add 'graft?'.
(guix-system): Parametrize 'graft?'.
* doc/guix.texi (Additional Build Options): Move --no-grafts to...
(Common Build Options): ... here.
2016-03-02 14:47:07 +01:00
Ludovic Courtès c22a1324e6 grafts: Graft recursively.
Fixes <http://bugs.gnu.org/22139>.

* guix/grafts.scm (graft-derivation): Rename to...
(graft-derivation/shallow): ... this.
(graft-origin-file-name, item->deriver, non-self-references)
(cumulative-grafts, graft-derivation): New procedures
* tests/grafts.scm ("graft-derivation, grafted item is a direct
dependency"): Clarify title.  Use 'grafted' instead of 'graft' to refer
to the grafted derivation.
("graft-derivation, grafted item is an indirect dependency")
("graft-derivation, no dependencies on grafted output"): New tests.
* guix/packages.scm (input-graft): Change to take a package instead of
an input.
(input-cross-graft): Likewise.
(fold-bag-dependencies): New procedure.
(bag-grafts): Rewrite in terms of 'fold-bag-dependencies'.
* tests/packages.scm ("package-derivation, indirect grafts"): Comment out.
* doc/guix.texi (Security Updates): Mention run-time dependencies and
recursive grafting.
2016-03-01 16:00:46 +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 70ac09a552 doc: Capitalize section title.
* doc/guix.texi (Running GuixSD in a VM): Capitalize section title.
2016-02-26 23:35:29 +01:00
Mark H Weaver e62b5c6903 Merge branch 'media-updates' 2016-02-25 13:50:19 -05:00
Ludovic Courtès 0767f6a69e doc: Clarify the form of UUIDs we expect.
Fixes <http://bugs.gnu.org/22797>.
Reported by Alex Kost <alezost@gmail.com>.

* doc/guix.texi (File Systems): Clarify which UUIDs we're talking
about.
2016-02-25 19:29:21 +01:00
Ludovic Courtès 06b76acceb store: Clarify documentation of 'valid-path?'.
* guix/store.scm (valid-path?): Improve docstring.
* doc/guix.texi (The Store): Update accordingly.
2016-02-25 12:44:41 +01:00
Ludovic Courtès bf98aea9b2 doc: Improve recent changes in "Binary Installation".
This amends part of c8e2688.

* doc/guix.texi (Binary Installation): Improve wording of some parts.
Fix Upstart example.  Remove incorrect paragraph about locales.
Reinstate bit about reproducing the binary tarball.
2016-02-24 23:24:33 +01:00
Ludovic Courtès cb05108a5d doc: Clarify who can run 'guix pull'.
Suggested by Chris Marusich <cmmarusich@gmail.com>.

* doc/guix.texi (Invoking guix pull): Add paragraph explaining that any
user can run 'guix pull'.
2016-02-24 23:24:33 +01:00
George Clemmer c8e26887ed doc: Add details for binary installation.
* doc/guix.texi (Binary Installation): Provide some more details for binary
  installation, in particular automatic starting of the daemon.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2016-02-24 22:00:07 +01:00
Chris Marusich a40424bd11 doc: Fix minor typos and add missing words.
* doc/guix.texi (Shepherd Services): Add missing words.
  (Invoking guix system): Fix typo.
  (Service Types and Services): Fix typo.
* doc/contributing.texi (Submitting Patches): Fix typo.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2016-02-24 21:34:30 +01:00
Andy Wingo 62061d6be3 gnu-maintenance: Add X.org updater.
* guix/gnu-maintenance.scm (xorg-package?, latest-xorg-release): New
  private functions.
  (%xorg-updater): New public variable.

* guix/scripts/refresh.scm (%updaters): Add %xorg-updater.

* doc/guix.texi (Invoking guix refresh): Mention the new updater.
2016-02-24 11:49:57 -05:00
Ludovic Courtès 561360a589 doc: Add example of VCS-snapshot version numbers.
* doc/guix.texi (Version Numbers): Add example for VCS version numbers.
2016-02-23 12:45:25 +01:00
Alex Kost cfb1c62aa9 emacs: Add 'M-x guix-installed-{user/system}-packages'.
* emacs/guix-ui-package.el (guix-installed-user-packages)
(guix-installed-system-packages): New commands.
* doc/emacs.texi (Emacs Commands): Document them.
2016-02-22 22:17:16 +03:00
Ludovic Courtès 49e0ca90bc doc: Add Texinfo HTML cross-reference file.
Fixes <http://bugs.gnu.org/22543>.

* doc/htmlxref.cnf: New file.
* doc.am (EXTRA_DIST): Add it.
2016-02-21 22:28:20 +01:00
Andreas Enge f2fadbc1ff Revert "doc: Drop documentation of deprecated procedures."
This reverts commit f5c6e77a7f.
2016-02-21 20:02:24 +01:00
Ben Woodcroft fbc5b815cc import: gem: Add updater.
* guix/import/gem.scm (guix-package->gem-name,
  gem-package?, latest-release): New procedures.
  (%gem-updater): New variable.
  (rubygems-fetch): Wrap body in
  'call-with-output-file' and 'with-error-to-port'.
* guix/scripts/refresh.scm (%updaters): Add %GEM-UPDATER.
* doc/guix.texi (Invoking guix refresh): Mention RubyGems.
2016-02-20 20:46:10 +10:00
Andreas Enge 3c192e4e1b doc: Add footnote on Guile-JSON.
* doc/guix.texi ("invoking guix import"): Add a footnote to the CPAN importer
  on the need for Guile-JSON.
2016-02-16 16:37:37 +01:00
Andreas Enge f5c6e77a7f doc: Drop documentation of deprecated procedures.
* doc/guix.texi ("build systems"): Drop documentation of
  BUILD-EXPRESSION->DERIVATION.
2016-02-16 16:37:37 +01:00
Andreas Enge c2c5dc79f1 doc: Use modify-phases syntax in example.
* doc/guix.texi ("build systems"): Use modify-phases syntax instead of
  alist-delete in example.
2016-02-16 16:37:37 +01:00
Andreas Enge 4d4c481601 doc: Move paragraphs in description of guix archive.
* doc/guix.texi ("invoking guix archive"): Move paragraph describing basic
  invocation from the end to the beginning of the section.
2016-02-16 16:37:37 +01:00
Andreas Enge f97c91757d doc: Correct typos.
* doc/guix.texi: Correct typos, grammar and stylistic points.
2016-02-13 19:58:22 +01:00
David Thompson 779aa003fb scripts: environment: Build environments as profiles.
Fixes <http://bugs.gnu.org/19816>.

* guix/scripts/environment.scm (evaluate-input-search-paths)
(build-inputs): Delete.
(evaluate-profile-search-paths, strip-input-name)
(package-or-package+output?, package-environment-inputs)
(build-environment, inputs->profile-derivations): New procedures.
(create-environment, show-search-paths, launch-environment)
(launch-environment/container): Replace 'inputs' argument
with 'profile' argument.
(package+propagated-inputs): Strip off names off of input tuples.
(options/resolve-packages): Handle input tuples that specify an output
in expressions.
(guix-environment): Convert inputs into a profile to use in the
environment.  Remove non-package inputs such as origins from
environment inputs.
* doc/guix.texi ("invoking guix environment"): Document package+output
tuples for --expression option.
* tests/guix-environment.sh: Update tests.
* tests/guix-environment-container.sh: Likewise.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-02-12 22:02:06 +01:00
Ludovic Courtès dedb8d5ece doc: Provide more details about system installation.
* doc/guix.texi (System Installation): Turn all subsections into
individual nodes.
(Limitations): Update the number of packages.
(Preparing for Installation)[Keyboard Layout, Networking, Disk
Partitionning]: New subsections.  Move the 'cow-store' thing to...
(Proceeding with the Installation): ... here.  Describe things in more
detail.
(Base Services): Add index entry for "keyboard layout".

Co-authored-by: Petter <petter@mykolab.ch>.
2016-02-10 21:47:31 +01:00
Ludovic Courtès f5582b2c1d system: Selected locale is automatically built.
Fixes <http://bugs.gnu.org/22572>.
Reported by Mark H Weaver <mhw@netris.org>.

* gnu/system/locale.scm (%not-dot): New variable.
(denormalize-codeset, locale-name->definition): New procedures.
* gnu/system.scm (locale-name->definition*): New procedure.
(operating-system-locale-directory): Instead of raising an error, add
the missing locale.
* doc/guix.texi (Locales): Adjust accordingly.
2016-02-10 15:15:17 +01:00
Alex Kost 2c04e2eec8 emacs: 'C-u M-x guix-edit' prompts for directory.
* emacs/guix-base.el (guix-read-directory): New procedure.
(guix-find-location, guix-edit): Add optional 'directory' argument.
* emacs/guix-ui-package.el (guix-package-list-edit)
(guix-output-list-edit): Likewise.
* doc/emacs.texi (Emacs Commands): Mention "C-u".
2016-02-10 01:31:19 +03:00
Alex Kost 7c1b1ae24a doc: Document 'guix-edit' Emacs command.
* doc/emacs.texi (Emacs Commands): Document "M-x guix-edit".
* doc/guix.texi (Invoking guix edit): Mention it.
2016-02-07 11:24:35 +03:00
Alex Kost abea77e3f0 emacs: Factorize searching for Emacs packages.
* emacs/guix-emacs.el: (guix-emacs-directories): New procedure.
(guix-emacs-find-autoloads-in-directory): Rename to...
(guix-emacs-find-autoloads): ... this.
(guix-emacs-load-autoloads): Remove.  Replace with...
(guix-emacs-autoload-packages): ... this.  New procedure.  At first,
find a list of directories with Emacs packages, then add them to
'load-path' and finally, load autoloads.
* doc/emacs.texi (Emacs Initial Setup): Adjust accordingly.
2016-02-07 11:24:35 +03:00
Ludovic Courtès 17c20385fb doc: Mention 'tzselect'.
* doc/guix.texi (operating-system Reference): Mention 'tzselect' and
invalid timezone strings.
2016-02-04 12:21:34 +01:00
Ludovic Courtès 240b57f0ca guix system: 'reconfigure' loads and starts new services.
Partly fixes <http://bugs.gnu.org/22039>.

* gnu/services/herd.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* gnu/services/shepherd.scm (shepherd-service-canonical-name): New
procedure.
(shepherd-service-file): Export.
* guix/scripts/system.scm (upgrade-shepherd-services): New procedure.
(switch-to-system): Use it.
* guix/ui.scm (info): New procedure.
* doc/guix.texi (Invoking guix system): Mention system services.
2016-02-03 22:28:28 +01:00
Ludovic Courtès 47c0f92c37 guix build: Add '--with-input'.
* guix/scripts/build.scm (transform-package-inputs): New procedure.
(%transformations): Add it.
(%transformation-options, show-transformation-options-help): Add
--with-input.
* tests/scripts-build.scm ("options->transformation, with-input"):
("options->transformation, with-input, no matches"): New tests.
* tests/guix-build.sh: Add tests.
* doc/guix.texi (Package Transformation Options): Document it.
2016-02-01 08:59:13 +01:00
Ludovic Courtès b8638f0347 guix package: Support package transformation options.
* guix/scripts/package.scm (show-help): Call
'show-transformation-options-help'.
(%options): Append %TRANSFORMATION-OPTIONS.
(process-actions)[transform, transform-entry]: New procedures.
* doc/guix.texi (Invoking guix package): Mention package
transformations.
(Package Transformation Options): Mention 'guix package'.
2016-02-01 08:59:13 +01:00
Ludovic Courtès 88ad6deda6 guix build: Separate transformation options.
* guix/scripts/build.scm (%transformation-options): New variable.
(show-transformation-options-help): New procedure.
(show-help): Remove '--with-source' documentation and add
'show-transformation-options-help' call.
(%options): Remove "with-source" and append %TRANSFORMATION-OPTIONS.
* doc/guix.texi (Package Transformation Options): New node.  Document
'--with-source', moved from...
(Additional Build Options): ... here.
2016-02-01 08:59:13 +01:00