Commit Graph

622 Commits

Author SHA1 Message Date
Andy Wingo d8c18af834 gnu: Add dovecot service
* gnu/services/mail.scm: New file.
(&dovecot-configuration-error, dovecot-configuration-error?)
(dovecot-service, dovecot-configuration, dict-configuration)
(passdb-configuration, userdb-configuration)
(unix-listener-configuration, fifo-listener-configuration)
(inet-listener-configuration, service-configuration)
(protocol-configuration, plugin-configuration, mailbox-configuration)
(namespace-configuration, opaque-dovecot-configuration): New public
variables.

* gnu-system.am (GNU_SYSTEM_MODULES): Add (gnu services mail).

* doc/guix.texi (Mail Services): New node.
2015-12-18 09:24:27 +01:00
Ludovic Courtès e0508b6bf7 doc: Give another example use of 'propagated-inputs'.
Suggested by Leo Famulari <leo@famulari.name>.

* doc/guix.texi (package Reference): Explain 'propagated-inputs' for
non-C languages.
2015-12-15 13:43:27 +01:00
Ludovic Courtès 9d3994f700 gexp: 'local-file' resolves relative file names.
* guix/gexp.scm (<local-file>): Rename constructor to '%%local-file'.
Add 'absolute' field.
(%local-file, extract-directory, absolute-file-name): New procedures.
(current-source-directory): New macro.
(local-file): Adjust call to '%local-file'.
(local-file-absolute-file-name): New procedure.
(local-file-compiler): Force the 'absolute' field.
* tests/guix-system.sh: Test whether 'local-file' canonicalization
works.
* doc/guix.texi (G-Expressions): Adjust.
2015-12-14 19:57:42 +01:00
Ludovic Courtès ecf84b7c48 daemon: Add '--rounds'.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_BUILD_ROUNDS): New macro.
(options): Add --rounds.
(parse_opt): Honor it.
* doc/guix.texi (Invoking guix-daemon): Document it.
2015-12-13 19:20:01 +01:00
Ludovic Courtès 70650c684a doc: Reword description of 'inputs' & co.
* doc/guix.texi (package Reference): Reword explanation of 'inputs',
'native-inputs', and 'propagated-inputs'.  Add example.
2015-12-13 15:20:44 +01:00
Ludovic Courtès f7e4ae7f45 doc: Fix typo in "Setuid Programs".
* doc/guix.texi (Setuid Programs): Remove extra 's'.
2015-12-13 15:20:44 +01:00
Alex Sassmannshausen dcb7119a6d doc: rephrase code of conduct.
* doc/contributing.texi (Contributing): Rephrase 'code of conduct'
  section.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-12-09 22:18:47 +01:00
Ludovic Courtès e15fcdd149 Add "Contributor Covenant".
* CODE-OF-CONDUCT: New file, adapted from
  <http://contributor-covenant.org/version/1/3/0/code_of_conduct.txt>.
* doc/contributing.texi (Contributing): Mention it.
* Makefile.am (EXTRA_DIST): Add it.
2015-12-09 14:29:41 +01:00
Eelco Dolstra cb9601029e daemon: Use deterministic $TMPDIR in chroot.
Rather than using $<host-TMPDIR>/nix-build-<drvname>-<number>, the
temporary directory is now always /tmp/nix-build-<drvname>-0. This
improves bitwise-exact reproducibility for builds that store $TMPDIR
in their build output. (Of course, those should still be fixed...)

* nix/libstore/build.cc (DerivationGoal)[tmpDirInSandbox]: New field.
(DerivationGoal::startBuilder): Initialize 'useChroot' earlier.  Compute
'tmpDirInSandbox', and use it when populating 'dirsInChroot'.
* doc/guix.texi (Build Environment Setup): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2015-12-09 14:29:41 +01:00
Ludovic Courtès a8d65643fb guix build: Add '--check'.
* guix/derivations.scm (build-derivations): Add optional 'mode'
parameter.
* guix/scripts/build.scm (%default-options): Add 'build-mode'.
(show-help, %options): Add '--check'.
(guix-build): Honor 'build-mode' key of OPTS.  Pass it to
'show-what-to-build' and 'build-derivations'.
* doc/guix.texi (Invoking guix build): Document it.
(Substitutes): Mention it.
2015-12-09 14:29:41 +01:00
Ludovic Courtès 5b74fe065b guix build: Add '--rounds'.
* guix/scripts/build.scm (show-build-options-help)
(%standard-build-options): Add --rounds.
(set-build-options-from-command-line): Honor it.
* doc/guix.texi (Invoking guix build): Document it.
* doc/contributing.texi (Submitting Patches): Mention it.
2015-12-08 23:58:12 +01:00
Ludovic Courtès e80c0f85ba gnu-maintenance: Add GNOME updater.
* guix/gnu-maintenance.scm (ftp-server/directory)[quirks]: Remove glib.
(false-if-ftp-error): New macro.
(latest-release*): Use it.
(non-emacs-gnu-package?): Rename to...
(pure-gnu-package?): ... this.  Add call to 'gnome-package?'.
(%gnu-updater): Adjust accordingly.
(gnome-package?, latest-gnome-release): New procedures.
(%gnome-updater): New variable.
* guix/scripts/refresh.scm (%updaters): Add %GNOME-UPDATER.
* doc/guix.texi (Invoking guix refresh): Mention it.
2015-12-07 23:32:01 +01:00
Ludovic Courtès 56b6befb50 doc: 'guix environment --container' does not create '/env'.
* doc/guix.texi (Invoking guix environment): Remove outdated mention of
'/env' for '--container'.
2015-12-07 23:32:01 +01:00
Ludovic Courtès f6c9fb1b38 doc: Mention 'specification->package'.
Suggested by Florian Paul Schmidt <mista.tapas@gmx.net>.

* doc/guix.texi (Using the Configuration System): Mention
'specification->package'.
2015-11-28 15:28:44 +01:00
Ludovic Courtès 6629099a63 services: tor: Store private data under /var/lib/tor.
* gnu/services/networking.scm (tor-configuration->torrc): Add
'DataDirectory' clause.  Change 'HiddenServiceDir' to
/var/lib/tor/hidden-services/NAME.
(tor-hidden-service-activation): Create /var/lib/tor.
(tor-hidden-service): Adjust docstring.
* doc/guix.texi (Networking Services): Adjust accordingly.
2015-11-27 23:29:51 +01:00
Ludovic Courtès 6331bde73f services: Add 'tor-hidden-service'.
* gnu/services/networking.scm (<tor-configuration>, <hidden-service>):
New record types.
(tor-configuration->torrc): New procedure.
(tor-dmd-service): Use it.
(tor-hidden-service-activation): New procedure.
(tor-service-type)[extensions]: Extend ACTIVATION-SERVICE-TYPE.
[compose, extend]: New fields.
(tor-service): Use 'tor-configuration'.
(tor-hidden-service-type): New variable.
(tor-hidden-service): New procedure.
2015-11-27 23:04:49 +01:00
Mario Daniel Ruiz Saavedra ad227484c3 Add 'guix-daemon.conf' job for Upstart.
* etc/guix-daemon.conf.in: New file.
* daemon.am (CLEANFILES): Add etc/guix-daemon.conf.
  (upstartjobdir, nodist_upstartjob_DATA): New variables.
  (EXTRA_DIST): Add etc/guix-daemon.conf.in.
* doc/guix.texi (Binary Installation, Build Environment Setup): Mention
  'guix-daemon.conf'.

Signed-off-by: Mario Daniel Ruiz Saavedra <desiderantes@rocketmail.com>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-11-26 23:21:09 +01:00
Ludovic Courtès 5432734b00 lint: Add "cve" checker.
Fixes <http://bugs.gnu.org/21289>.

* guix/scripts/lint.scm (package-name->cpe-name, package-vulnerabilities)
(check-vulnerabilities): New procedures.
* guix/scripts/lint.scm (%checkers): Add "cve" checker.
* tests/lint.scm ("cve", "cve: one vulnerability"): New tests.
* doc/guix.texi (Invoking guix lint): Mention it.
2015-11-26 23:04:19 +01:00
Ludovic Courtès 3177149797 doc: Remove mention of monadic services.
* doc/guix.texi (Base Services): Remove mention of a list of monadic
services.
2015-11-25 11:59:54 +01:00
Ludovic Courtès fae685b9cc services: dmd: Add 'modules' and 'imported-modules' fields.
* gnu/services/dmd.scm (%default-imported-modules, %default-modules):
New variables.
* gnu/services/dmd.scm (<dmd-service>)[modules, imported-modules]: New
field.
* gnu/services/dmd.scm (dmd-service-file-name, dmd-service-file): New
procedures.
(dmd-configuration-file)[modules]: Compute based on the
'imported-modules' field of SERVICES.
(dmd-configuration-file): Remove 'use-modules' form.  Use
'dmd-service-file', and call 'primitive-load' on each file.
* doc/guix.texi (dmd Services): Document the new fields.
2015-11-25 11:59:54 +01:00
Ludovic Courtès 38b92daa81 graph: Add '%bag-with-origins-node-type'.
* guix/scripts/graph.scm (bag-node-edges): Remove 'filter' call.  Add
case for 'origin'.
(%bag-node-type)[edges]: Add filtering here.
(%bag-with-origins-node-type): New variable.
(%node-types): Add it.
* tests/graph.scm ("bag DAG, including origins"): New test.
* tests/guix-graph.sh: Add 'bag-with-origins'.
* doc/guix.texi (Invoking guix graph): Document it.
2015-11-23 23:34:15 +01:00
Ludovic Courtès 961d0d2d22 doc: Mention the 'NIX_REMOTE' variable for 'guix import nix'.
Suggested by rgrau on #guix.

* doc/guix.texi (Invoking guix import): Document 'NIX_REMOTE'.
2015-11-23 23:20:41 +01:00
Ludovic Courtès 2d7fc7daf1 refresh: Add '--expression'.
* guix/scripts/refresh.scm (%options, show-help): Add --expression.
(guix-refresh): Honor it.
* doc/guix.texi (Invoking guix refresh): Document it.
2015-11-23 17:48:35 +01:00
Ludovic Courtès 5fb95cc592 doc: Mention 'guix environment guix'.
* doc/contributing.texi (Building from Git): Mention 'guix environment
guix'.  Remove outdated description of ./bootstrap.  Clarify a few
things.
2015-11-22 14:14:25 +01:00
Ludovic Courtès aabe6d3801 doc: Remove extraneous "See."
* doc/contributing.texi (Building from Git): Remove extra "See" and use
@xref instead of @pxref.
2015-11-21 22:26:13 +01:00
Alex Kost bb38ece458 doc: Fix 'geiser-guile-load-path' example.
Reported by marusich on #guix.

* doc/contributing.texi (The Perfect Setup): Wrap modifying
  'geiser-guile-load-path' into 'with-eval-after-load'.
2015-11-21 02:19:04 +03:00
Ludovic Courtès 5c36edc818 doc: Mention fonts for Asian languages.
Suggested by Alex Vong <alexvong1995@gmail.com>.

* doc/guix.texi (Application Setup): Explain how to install X11 fonts
  for Asian languages.
2015-11-19 17:39:48 +01:00
Ludovic Courtès 28d939af0e doc: Update documentation of the 'services' field.
* doc/guix.texi (operating-system Reference): The 'services' field now
  contains a list of service objects.
2015-11-19 17:39:48 +01:00
Ludovic Courtès 6237b9fa39 edit: Honor $VISUAL.
Suggested by Andreas Enge <andreas@enge.fr>.

* guix/scripts/edit.scm (%editor): Honor 'VISUAL' before 'EDITOR'.
  (show-help): Adjust accordingly.
* doc/guix.texi (Invoking guix edit): Likewise.
2015-11-11 23:29:20 +01:00
Ludovic Courtès fc2d233964 guix package: '--search-paths' can report combined search paths.
Partly fixes <http://bugs.gnu.org/20255>.

* guix/scripts/package.scm (search-path-environment-variables): Change
  'profile' to 'profiles'; expect it to be a list.
  (display-search-paths): Likewise.
  (%default-options): Remove 'profile' entry.
  (%options) <--profile>: Keep previous values associated with 'profile'
  in RESULT.
  (guix-package)[process-actions, process-query]: Handle the possible
  lack of 'profile' pair in OPTS.
2015-11-11 00:37:50 +01:00
Ludovic Courtès ae7ffa9e9b install: Run GPM.
Suggested by Adam Pribyl <pribyl@lowlevel.cz>
at <https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00133.html>.

* gnu/system/install.scm (installation-services): Add call to
  'gpm-service'.
* doc/guix.texi (System Installation): Mention GPM.
2015-11-07 18:56:17 +01:00
Ludovic Courtès 8664cc882c services: Add 'gpm-service'.
* gnu/services/base.scm (<gpm-configuration>): New record type.
  (gpm-dmd-service): New procedure.
  (gpm-service-type): New variable.
  (gpm-service): New procedure.
* doc/guix.texi (Base Services): Document it.
2015-11-07 18:56:17 +01:00
Ludovic Courtès 235cba8528 doc: Make the ifconfig command more visible.
Suggested by Adam Pribyl <pribyl@lowlevel.cz>.

* doc/guix.texi (System Installation): Move the 'ifconfig' command to an
  @example.
2015-11-06 23:50:14 +01:00
Ludovic Courtès 316d65be0c doc: Back up on the claim of encrypted root partitions.
Reported by 宋文武 <iyzsong@openmailbox.org>
at <https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00096.html>.

* doc/guix.texi (System Installation): Comment out encrypted root
  partition commands.
* gnu/system/examples/desktop.tmpl (mapped-devices): Remove.
  (file-systems): Refer to the root by label.
* NEWS: Adjust.
2015-11-04 10:54:39 +01:00
Ludovic Courtès b9d044ef7f doc: Fix typos.
* doc/guix.texi (Invoking guix refresh): Fix typos.
2015-11-04 00:12:19 +01:00
Ludovic Courtès b18812b6a4 doc: Explain that 'guix publish' relies on the key pair.
* doc/guix.texi (Invoking guix publish): Mention 'guix archive
  --generate-key'.
2015-11-04 00:12:19 +01:00
Cyril Roelandt bab020d7ca import: pypi: add updater
* guix/import/pypi.scm (guix-package->pypi-name,
  latest-release): New procedures.
  (%pypi-updater): New variable.
* guix/scripts/refresh.scm (%updaters): Add %PYPI-UPDATER.
* doc/guix.texi (Invoking guix refresh): Mention PyPI
2015-11-03 23:41:25 +01:00
Ludovic Courtès 1c52181f33 services: Add 'guix-publish-service'.
* gnu/services/base.scm (<guix-publish-configuration>): New record
  type.
  (guix-publish-dmd-service): New procedure.
  (%guix-publish-accounts, guix-publish-service-type): New variables.
  (guix-publish-service): New procedure.
* doc/guix.texi (Invoking guix publish): Add xref to
  'guix-publish-service' anchor.
  (Base Services): Document 'guix-publish-service'.
2015-11-03 18:11:45 +01:00
David Thompson cfd35b4e23 doc: Linux-libre 3.19 is needed for using containers.
* doc/guix.texi ("invoking guix environment", "invoking guix system"):
  3.10 is actually too old without backported patches, so change to 3.19.
2015-11-03 08:14:57 -05:00
Alex Vong ef54b61dc6 doc: './pre-inst-env guix pull' won't upgrade local source tree.
* doc/contributing.texi (Running Guix Before It Is Installed): Clarify
  './pre-inst-env guix pull' won't upgrade local source tree.
* doc/guix.texi (Invoking guix pull): Mention ~/.config/guix/latest.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2015-11-03 09:56:48 +01:00
Ludovic Courtès 1065bed9c4 services: avahi: Add Avahi to the system profile.
* gnu/services/avahi.scm (avahi-service-type): Extend
  PROFILE-SERVICE-TYPE.
  (avahi-service): Adjust docstring.
* doc/guix.texi (Networking Services): Adjust accordingly.
* gnu/system/examples/desktop.tmpl (packages): Remove AVAHI.
2015-11-02 22:25:12 +01:00
Ludovic Courtès 87f4001146 services: wicd: Add Wicd to the system profile.
* gnu/services/networking.scm (wicd-service-type): Extend
  PROFILE-SERVICE-TYPE.
  (wicd-service): Mention it in docstring.
* doc/guix.texi (Networking Services): Update documentation
  accordingly.
* gnu/system/examples/desktop.tmpl (packages): Remove WICD.
2015-11-02 22:25:12 +01:00
Ludovic Courtès af4c3fd5e3 services: Add 'profile-service-type'.
* gnu/services.scm (packages->profile-entry): New procedure.
  (profile-service-type): New variable.
* gnu/system.scm (operating-system-directory-base-entries): Remove
  the "profile" entry.
  (essential-services): Add a PROFILE-SERVICE-TYPE instance.
  (operating-system-profile): Rewrite in terms of 'fold-services'.
* doc/guix.texi (Service Reference): Add 'profile-service-type'.
* doc/images/service-graph.dot: Likewise.
2015-11-02 22:25:12 +01:00
Ludovic Courtès d62e201cfd services: Add 'system-service-type'.
* gnu/services.scm (system-derivation): New procedure.
  (system-service-type): New variable.
  (boot-script-entry): New procedure.
  (boot-service-type): Extend SYSTEM-SERVICE-TYPE.
  (etc-entry): New procedure.
  (etc-service-type): Extend SYSTEM-SERVICE-TYPE.
  (fold-services): Change default #:target-type to SYSTEM-SERVICE-TYPE.
* gnu/system.scm (operating-system-directory-base-entries): New procedure.
  (essential-services): Use it.  Add an instance of
  SYSTEM-SERVICE-TYPE.
  (operating-system-boot-script): Pass #:target-type to 'fold-services'.
  (operating-system-derivation): Rewrite in terms of 'fold-services'.
* gnu/system/linux-container.scm (system-container): Remove.
  (container-script): Use 'operating-system-derivation'.
* guix/scripts/system.scm (export-extension-graph): Replace
  BOOT-SERVICE-TYPE by SYSTEM-SERVICE-TYPE.
* doc/images/service-graph.dot: Add 'system' node and edges.
* doc/guix.texi (Service Composition): Mention SYSTEM-SERVICE-TYPE.
  (Service Reference): Document it.  Update 'fold-services'
  documentation.
2015-11-02 22:25:11 +01:00
Alex Kost 5c2b2f006a doc: Fix typos.
* doc/guix.texi (Invoking guix environment): Fix typos.
2015-11-02 21:38:36 +03:00
Alex Kost 46c36586fc doc: Fix typo.
* doc/guix.texi (Invoking guix container): Fix typo.
2015-11-02 15:53:48 +03:00
Alex Kost f4044b586d emacs: Enable 'guix-build-log-minor-mode' in shell buffers.
* emacs/guix-build-log.el (guix-build-log-minor-mode-activate): New variable.
  (guix-build-log-minor-mode-activate-maybe): New function.
* emacs/guix-init.el: Add it to 'shell-mode-hook'.
* doc/emacs.texi (Emacs Build Log): Mention it.
2015-11-02 15:52:52 +03:00
David Thompson 32efa254a8 scripts: Add 'container' subcommand.
* guix/scripts/container.scm: New file.
* guix/scripts/container/exec.scm: New file.
* po/guix/POTFILES.in: Add them.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Invoking guix container): New section.
2015-11-01 18:20:04 -05:00
David Thompson 0f252e266a doc: Mention minimum Linux-libre version for containers.
* doc/guix.texi ("invoking guix environment", "invoking guix system"):
  Mention Linux-libre requirements for container features.
2015-11-01 16:54:58 -05:00
Ludovic Courtès 6d6e628119 doc: Give an example with an encrypted root partition.
* gnu/system/examples/desktop.tmpl: Add 'mapped-devices' field.
  Use it in 'file-systems'.
* doc/guix.texi (System Installation): Suggest encrypted partitions.
  Give an example of a command sequence.
2015-11-01 22:24:20 +01:00