Commit Graph

505 Commits

Author SHA1 Message Date
Ludovic Courtès fe36d84eae doc: Add 'guix environment' examples.
* doc/environment-gdb.scm: New file.
* doc.am (EXTRA_DIST): Add it.
* doc/guix.texi (Invoking guix environment): Clarify wording of the first
  example.  Add a --ad-hoc example upfront.  Add an example for '-e', and one
  for '-l'.
2015-06-29 23:08:36 +02:00
Ludovic Courtès 7ce216110c doc: Add quote about running a monadic value.
* doc/guix.texi (The Store Monad): Add funny quote about "running" a monadic
  value.
2015-06-29 14:42:10 +02:00
Alex Kost 74cc67372e emacs: Add 'guix-root-map'.
* emacs/guix-base.el (guix-define-buffer-type): Move common key bindings
  from here...
  (guix-root-map): ... to here.  New variable.
* emacs/guix-info.el (guix-info-mode-map): Use it.
* emacs/guix-list.el (guix-list-mode-map): Use it.
* doc/emacs.texi (Emacs Keymaps): Document it.
2015-06-26 16:15:45 +03:00
Ludovic Courtès 0e2d0213b5 doc: Add "Application Setup" section.
* doc/guix.texi (Application Setup): New node.
2015-06-22 23:17:16 +02:00
Alex Kost 6248e32635 emacs: Add "edit" command to a list of packages.
* emacs/guix-base.el (guix-edit-package): New function.
* emacs/guix-list.el (guix-list-edit-package): New command.  Bind it to
  "e" key.
* emacs/guix-main.scm (package-location-string): New procedure.
* doc/emacs.texi (Emacs List buffer): Document "e" key binding.
* doc/guix.texi (Invoking guix edit): Mention "package list" buffer.
2015-06-22 22:19:19 +03:00
Ludovic Courtès a8f996c605 size: Add '--map-file' option.
* guix/scripts/size.scm (profile->page-map): New procedures.
  (show-help, %options):  Add --map-file.
  (guix-size): Honor it.
* doc/guix.texi (Invoking guix size): Document it.
* doc/images/coreutils-size-map.png: New file.
* doc.am (dist_infoimage_DATA): Add it.
2015-06-21 23:39:12 +02:00
Ludovic Courtès fcc58db68b Add 'guix size'.
* guix/scripts/size.scm: New file.
* Makefile.am (MODULES): Add it.
  (SCM_TESTS): Add tests/size.scm.
* doc.am (SUBCOMMANDS): Add 'size'.
* po/guix/POTFILES.in: Add guix/scripts/size.scm.
* tests/size.scm: New file.
* doc/guix.texi (Packages with Multiple Outputs): Add xref to "Invoking guix
  size".
  (Invoking guix size): New node.
  (Invoking guix gc): Add index for "closure" and xref to the above.
* doc/contributing.texi (Submitting Patches): Use @enumerate for the check
  list.  Add item about 'guix size'.
2015-06-18 00:36:09 +02:00
Ludovic Courtès 39bee8a293 Add 'guix edit'.
* guix/scripts/edit.scm: New file.
* Makefile.am (MODULES): Add it.
* doc.am (SUBCOMMANDS): Add 'edit'.
* doc/guix.texi (Defining Packages): Add xref to "Invoking guix edit".
  (Invoking guix edit): New node.
* po/guix/POTFILES.in: Add it.
2015-06-18 00:25:49 +02:00
Alex Kost f5a9ffa006 system: Rename 'sudoers' into 'sudoers-file'.
* gnu/system.scm (<operating-system>): Rename record field.
  (etc-directory): Rename argument.
  (operating-system-etc-directory): Adjust accordingly.
* doc/guix.texi (operating-system Reference): Likewise.
2015-06-16 21:24:13 +03:00
Ludovic Courtès 4a3bcaee5a services: Remove lsh service from %DESKTOP-SERVICES.
Suggested by Mark H Weaver and others
at <http://lists.gnu.org/archive/html/guix-devel/2015-06/msg00227.html>.

* gnu/services/desktop.scm (%desktop-services): Remove call to 'lsh-service'.
* doc/guix.texi (Desktop Services): Adjust accordingly.
2015-06-15 17:41:54 +02:00
Mathieu Lirzin 8c01b9d05a doc: Move most 'HACKING' informations into the manual.
* HACKING (Contributing): New section.
  (Building from Git, The Perfect Setup, Coding Style, Submitting Patches):
  Move to ...
* doc/guix.texi (Running Guix Before It Is Installed): Likewise.
* doc/contributing.texi: ... here. New file.
* doc.am (EXTRA_DIST): Use it.
* README (Installation): Adapt to it.
* configure.ac (DOT): Likewise.
2015-06-14 01:44:54 +02:00
Ludovic Courtès a43b55f1a6 guix build: Allow directories to be passed to --with-source.
* guix/scripts/build.scm (package-with-source)[tarball-base-name]: Gracefully
  handle file names that lack an extension.
  Pass #:recursive? #t to 'download-to-store'.
* guix/download.scm (download-to-store): Add #:recursive? parameter and pass
  it to 'add-to-store'.
* doc/guix.texi (Invoking guix build): Add an example of --with-source with a
  directory.
2015-06-11 11:19:12 +02:00
Federico Beffa a415474873 import: hackage: Refactor parsing code and add new options.
* guix/import/cabal.scm: New file.
* guix/import/hackage.scm: Update to use the new Cabal parsing module.
* tests/hackage.scm: Update tests.
* guix/scripts/import/hackage.scm: Add new '--cabal-environment' and '--stdin'
  options.
* doc/guix.texi: ... and document them.
* Makefile.am (MODULES): Add 'guix/import/cabal.scm',
  'guix/import/hackage.scm' and 'guix/scripts/import/hackage.scm'.
  (SCM_TESTS): Add 'tests/hackage.scm'.
2015-06-09 09:48:38 +02:00
Ludovic Courtès 5dc42964a7 doc: Suggest unpacking the binary tarball in /tmp.
Suggested by Thomas Schwinge <thomas@codesourcery.com> and others.

* doc/guix.texi (Binary Installation): Suggest unpacking in /tmp rather than /.
2015-06-08 23:31:02 +02:00
Ludovic Courtès 7acd3439ea install: Omit /root from the binary tarball.
Suggested by Thomas Schwinge <thomas@codesourcery.com>.

* gnu/system/install.scm (self-contained-tarball): Remove
  "/root/.guix-profile" from the 'tar' arguments.
* doc/guix.texi (Binary Installation): Add a step to create
  ~root/.guix-profile.
2015-06-08 23:25:51 +02:00
Ludovic Courtès 751630c9c3 monads: Allow n-ary '>>=' expressions.
Suggested by Federico Beffa <beffa@fbengineering.ch>.

* guix/monads.scm (bind-syntax): New macro.
  (with-monad): Use it instead of 'identifier-syntax'.
* tests/monads.scm (">>= with more than two arguments"): New test.
* doc/guix.texi (The Store Monad): Explain that there can be several MPROC.
  Add an example.
2015-06-08 23:00:49 +02:00
Alex Kost a72f18a58b doc emacs: Improve documentation on initial setup.
Reported by ngz on #guix.

* doc/emacs.texi (Emacs Initial Setup): Describe how to configure
  "guix.el" in the case of binary installation and when Guix is not
  installed.
2015-06-08 11:46:05 +03:00
Alex Kost 00a8dae2a6 emacs: Add shell completions for "guix" command.
Suggested by Ludovic Courtès <ludo@gnu.org>.

* emacs/guix-pcomplete.el: New file.
* emacs.am (ELFILES): Add it.
* doc/emacs.texi (Emacs Completions): New node.
2015-06-08 11:46:05 +03:00
Ludovic Courtès 54eb03abbd doc: Explain where the number of build users comes from.
Suggested by Thomas Schwinge <thomas@codesourcery.com>.

* doc/guix.texi (Build Environment Setup): Explain where the number of build
  users comes from.
2015-06-07 17:50:58 +02:00
Ludovic Courtès 7770aafc75 guix gc: Add '--verify'.
* guix/scripts/gc.scm (show-help, %options): Add --verify.
  (guix-gc): Handle it.
* doc/guix.texi (Invoking guix gc): Document --verify, and move --optimize
  description right below it.
2015-06-06 19:05:56 +02:00
Ludovic Courtès 24e02c28fb system: 'hosts-file' is now a file-like object.
Partly fixes <http://bugs.gnu.org/20720>.
Reported by Alex Kost <alezost@gmail.com>.

* gnu/system.scm (default-/etc/hosts): Change 'text-file' to 'plain-file'.
  (maybe-file->monadic): New procedure.
  (operating-system-etc-directory): Use it.
* doc/guix.texi (operating-system Reference, Networking Services): Adjust
  accordingly.
2015-06-05 22:41:55 +02:00
Ludovic Courtès 847658395e system: 'sudoers' is now a file-like object.
Partly fixes <http://bugs.gnu.org/20720>
Reported by Alex Kost <alezost@gmail.com>.

* gnu/system.scm (etc-directory): Change default #:sudoers value to a
  'plain-file'.  Don't bind it.  Remove #~#$.
  (maybe-string->file): New procedure.
  (operating-system-etc-directory): Use it.
  (%sudoers-specification): Use 'plain-file'.
* doc/guix.texi (operating-system Reference): Adjust accordingly.
2015-06-05 20:22:47 +02:00
Ludovic Courtès 343eacbec9 doc: Explain "file-like objects".
* doc/guix.texi (G-Expressions): Mention "file-like objects" and explain
  more.
2015-06-05 15:25:08 +02:00
Ludovic Courtès 558e8b11d7 gexp: Add 'plain-file'.
* guix/gexp.scm (<plain-file>): New type.
  (plain-file, plain-file-compiler): New procedures.
* tests/gexp.scm ("one plain file"): New test.
* doc/guix.texi (G-Expressions): Document 'plain-file'.
2015-06-03 11:47:36 +02:00
Alex Kost 5a727cdfa9 emacs: Add 'guix-apply-manifest'.
* emacs/guix-base.el (guix-apply-manifest): New command.
  Bind it to "M" key.
* doc/emacs.texi (Emacs General info): Document it.
2015-05-29 20:54:54 +03:00
Alex Kost 578b98da43 emacs: Remove "M" key binding for marking all lines.
* emacs/guix-list.el: Split 'guix-list-mark' into internal and
  interactive functions.  Remove "M" key binding, use "C-u m" instead.
  (guix-list--mark): New function.  Use it in other marking functions.
  (guix-list-mark): Mark all lines with a prefix argument.
* doc/emacs.texi (Emacs List buffer): Document changes in the key
  bindings.
2015-05-29 20:54:54 +03:00
David Thompson a54bd6d72d guix environment: Add --ad-hoc option.
* guix/scripts/environment.scm (%options): Add "ad-hoc" option.
  (show-help): Display help for "--ad-hoc".
  (packages+propagated-inputs): New procedure.
  (guix-environment): Create ad hoc environment when asked.
* doc/guix.texi ("invoking guix environment"): Document it.
2015-05-28 20:52:52 -04:00
Ludovic Courtès 1e2644bb25 doc: Clarify that --disable-chroot is needed for non-root users.
* doc/guix.texi (Build Environment Setup, Invoking guix-daemon): Mention
  --disable-chroot as needed for non-root users.
2015-05-27 22:18:21 +02:00
Ludovic Courtès db030303b8 guix system: Add '--on-error'.
* guix/ui.scm (load*): Add #:on-error parameter.
  [tag, error-string]: New variables.
  Wrap 'load' call in 'call-with-prompt'.  Pass TAG to 'make-stack'.  Honor
  ON-ERROR after 'report-load-error' call.
  (report-load-error): Change to not exit on error.  Make private.
* guix/scripts/system.scm (show-help, %options): Add --on-error.
  (guix-system): Use 'load*' and pass it #:on-error.
2015-05-25 22:52:41 +02:00
Ludovic Courtès fbb25e5651 doc: Fix inaccurate wording in "operating-system Reference".
* doc/guix.texi (operating-system Reference): Add missing "kernel".
2015-05-25 21:34:23 +02:00
Ludovic Courtès bf87f38ace system: Define '%base-user-accounts'.
* gnu/system/shadow.scm (%base-user-accounts): New variable.
* gnu/system.scm (<operating-system>)[users]: Use it as the default value.
* gnu/system/examples/bare-bones.tmpl (users): Use it.
* gnu/system/examples/desktop.tmpl (users): Likewise.
* doc/guix.texi (operating-system Reference, User Accounts): Adjust
  accordingly.
2015-05-25 21:34:23 +02:00
Ludovic Courtès c71979f416 doc: Add "Running Guix Before It Is Installed".
* doc/guix.texi (Running Guix Before It Is Installed): New node.
  (Packaging Guidelines): Refer to it.
2015-05-23 15:57:18 +02:00
Ludovic Courtès 92492b2383 doc: Update detailed node list.
* doc/guix.texi (Top): Add "package Reference" and "origin Reference" in
  detailed node list.
2015-05-23 15:57:18 +02:00
Ludovic Courtès ba3bcec9d6 doc: Change "GSD" to "GuixSD".
* doc/emacs.texi (Emacs Initial Setup): Change "GSD" to "GuixSD".
2015-05-23 15:57:17 +02:00
Ludovic Courtès c95ded7ed6 doc: Clarify the module file name convention.
* doc/guix.texi (Package Modules): Clarify the footnote about the module file
  names convention.  Tweak the wording.
2015-05-22 16:22:00 +02:00
Ludovic Courtès 21461f27e7 doc: More cross-references.
* doc/guix.texi (Invoking guix package): Add xref to "package Reference".
  (package Reference): Add xref to "Invoking guix package".
  Expound 'native-inputs' example, and add xref to "Invoking guix lint".
2015-05-22 11:51:13 +02:00
Ludovic Courtès a2bf4907df doc: Add a cross-reference to "origin Reference".
* doc/guix.texi (Defining Packages): Add xref to "origin Reference".
2015-05-22 11:51:12 +02:00
Ludovic Courtès 99bd74d549 doc: Make '--manifest' more visible.
* doc/guix.texi (Invoking guix package): Mention the declarative approach and
  --manifest in the intro.  And an anchor for --manifest.  Explain why/how it
  can be used.  Tweak wording.
2015-05-22 11:51:12 +02:00
Ludovic Courtès 12422c9d38 services: xorg: Allow extra config text to be added verbatim.
* gnu/services/xorg.scm (xorg-configuration-file): Add #:extra-config and
  honor it.
* doc/guix.texi (X Window): Adjust accordingly.
2015-05-21 21:33:19 +02:00
Ludovic Courtès d1cdd7ba7a services: xorg: Make 'xorg-configuration-file' public.
* gnu/services/xorg.scm (xorg-configuration-file): New procedure, with code
  formerly in 'xorg-start-command'.
  (xorg-start-command): Remove #:drivers and #:resolutions; add
  #:configuration-file; use it as well as 'xorg-configuration-file'.
2015-05-21 21:33:18 +02:00
Mark H Weaver b91d7f0f47 Revert "doc: Suggest how to preserve /var and /root owner and permissions."
This reverts commit 8c3a5d7059, which is no
longer needed due to commit b2a5fa594e.
2015-05-20 13:05:10 -04:00
David Thompson 1b6764477f package: Add --manifest option.
* guix/scripts/package.scm (show-help): Add help text.
  (%options): Add manifest option.
  (guix-package): Add manifest option handler.
* doc/guix.texi ("Invoking guix package"): Document it.
* tests/guix-package.sh: Add test.
2015-05-20 12:13:04 -04:00
Ludovic Courtès dbc31ab25c guix package: Add optional argument to --search-paths.
* guix/scripts/package.scm (search-path-environment-variables): Add #:kind
  parameter.  Pass it to 'environment-variable-definition'.
  (display-search-paths): Add #:kind parameter and pass it to
  'search-path-environment-variables'.
  (%options): Add an optional parameter for "--search-paths".
  (guix-package)[process-query]: Handle it.
* tests/guix-package-net.sh: Adjust existing test.
* tests/guix-package.sh: Adjust existing tests and add new test.
* doc/guix.texi (Invoking guix package): Document it.
2015-05-20 12:13:39 +02:00
Taylan Ulrich Bayırlı/Kammer 87eafdbdbd doc: Add "package Reference" and "origin Reference" sections.
* doc/guix.texi (Defining Packages): Link to "package Reference".  Add menu.
(package Reference, origin Reference): New subsections.
2015-05-19 20:17:05 +02:00
Ludovic Courtès 38d2778608 guix gc: Add '--optimize'.
* guix/scripts/gc.scm (show-help, %options): Add --optimize.
  (guix-gc): Handle it.
2015-05-19 16:09:58 +02:00
Ludovic Courtès 368d08f747 build: Make sure $CXX supports C++11.
* m4/guix.m4 (GUIX_CHECK_CXX11, GUIX_ASSERT_CXX11): New macros.
* config-daemon.ac: Use 'AC_LANG([C++])' and 'GUIX_ASSERT_CXX11'.C
* doc/guix.texi (Requirements): Mention C++11 support.
2015-05-19 16:09:58 +02:00
Ludovic Courtès 1b2b81773c doc: Re-generate detailed node listing.
* doc/guix.texi (Top): Update detailed node listing.
2015-05-18 23:19:21 +02:00
Ludovic Courtès 01dbc7e01a install: Files in the tarball are all root-owned.
Fixes a thinko introduced in 175ced4.

* gnu/system/install.scm (self-contained-tarball): Use "root:0" as the
  owner and group.
* doc/guix.texi (Binary Installation): Revert 175ced4.
2015-05-18 00:43:28 +02:00
Ludovic Courtès 175ced413c install: Use the right user and group name for files in the binary tarball.
Suggested by Andreas Enge <andreas@enge.fr>
at <http://lists.gnu.org/archive/html/guix-devel/2015-05/msg00220.html>.

* gnu/system/install.scm (self-contained-tarball): Pass --owner and
  --group to 'tar'.
* doc/guix.texi (Binary Installation): Move group and account creation
  before extraction.  Make "run the daemon" a separate step.
2015-05-18 00:12:39 +02:00
Ludovic Courtès cfc149dc07 doc: Suggest the same build user and group names as on GuixSD.
* doc/guix.texi (Build Environment Setup): Suggest the user and group
  names as used on GuixSD.
  (Binary Installation): Adjust accordingly.
2015-05-18 00:03:43 +02:00
Ludovic Courtès d72d05f9ce doc: Better suggestion for the /usr/local/bin/guix symlink.
Suggested by Andreas Enge <andreas@enge.fr>
at <http://lists.gnu.org/archive/html/guix-devel/2015-05/msg00220.html>.

* doc/guix.texi (Binary Installation): Use the longer 'guix' file name.
2015-05-17 23:37:53 +02:00
Ludovic Courtès 152dd61ca4 doc: Document 'ifconfig eno1 up' before running 'dhclient'.
Reported by Scott McDonough <smcdonough1@gmail.com>
in <http://bugs.gnu.org/20582>.

* doc/guix.texi (System Installation): Suggested setting the interface
  up before running 'dhclient'.
2015-05-17 23:18:54 +02:00
Ludovic Courtès 8c3a5d7059 doc: Suggest how to preserve /var and /root owner and permissions.
Reported by Andreas Enge <andreas@enge.fr>.

* doc/guix.texi (Binary Installation): Suggest --skip-old-files when
  extracting the archive.
2015-05-17 22:53:18 +02:00
Ludovic Courtès 49607566e1 doc: Increase package count.
* doc/guix.texi (System Installation): Increase package count.
2015-05-13 22:51:55 +02:00
Ludovic Courtès 9e2292ef3d publish: Add '--listen'.
* guix/scripts/publish.scm (show-help, %options): Add --listen.
  (getaddrinfo*): New procedure.
  (%default-options): Add 'address'.
  (open-server-socket): Replace 'addr' and 'port' with 'address', a
  sockaddr.
  (guix-publish): Adjust accordingly.  Augment "publishing" message with
  the actual address.
* doc/guix.texi (Invoking guix publish): Document it.
2015-05-12 21:22:52 +02:00
Ludovic Courtès 5463fe512a publish: Add '--user' option.
* guix/scripts/publish.scm (show-help): Add --user.
  (%options): Likewise.
  (run-publish-server): Change 'port' parameter to 'socket'.  Pass
  #:socket instead of #:addr and #:port to 'run-server'.  Update caller
  accordingly.
  (open-server-socket, gather-user-privileges): New procedures.
  (guix-publish): Use them.  Force %PRIVATE-KEY and %PUBLIC-KEY early
  on.  Warn when running as root.
* doc/guix.texi (Invoking guix publish): Document --user.
2015-05-12 21:22:52 +02:00
Ludovic Courtès 8ce229fca2 doc: Make 'guix publish' more visible.
* doc/guix.texi (Substitutes): Add xref to "Invoking guix publish".
  (Invoking guix publish): Add xref to "Substitutes".  Explain what
  Hydra is.
2015-05-12 11:14:41 +02:00
Ludovic Courtès 4705641fd0 doc: "GSD" -> "GuixSD".
* doc/guix.texi: Replace "GSD" with "GuixSD".
2015-05-12 11:14:41 +02:00
Ludovic Courtès ae80609603 doc: Use @indicateurl where appropriate.
* doc/guix.texi (Binary Installation, Invoking guix-daemon, System
  Installation): Use @indicateurl instead of @code where appropriate.
2015-05-12 11:14:41 +02:00
Ludovic Courtès efb5e833ba doc: Document X.509 certificates.
* doc/guix.texi (Using the Configuration System): Add xref to "X.509
  Certificates".
  (X.509 Certificates): New section.
* gnu/system/examples/desktop.tmpl: Use NSS-CERTS.
2015-05-11 23:01:20 +02:00
Ludovic Courtès f0b98b8483 doc: Mention GNU Make as a requirement.
* README (Requirements): Add GNU Make.
* doc/guix.texi (Requirements): Likewise.
2015-05-10 11:20:35 +02:00
Ludovic Courtès 47c66da00b build: Require Guile >= 2.0.7.
* configure.ac: Require guile-2.0 >= 2.0.7.
* README: Adjust accordingly.
* doc/guix.texi (Requirements): Likewise.
2015-05-10 11:07:51 +02:00
Ludovic Courtès dd51caac55 doc: Show both the "bare-bones" and the "desktop" configurations.
* doc/guix.texi (System Installation): Add xref to "Using the
  Configuration System" instead of including one here.
  (Using the Configuration System): Remove first example, and include
  os-config-bare-bones.texi instead.  Include os-config-desktop.texi as
  a second example.
* doc.am (OS_CONFIG_EXAMPLES_TEXI): New variable.
  (BUILT_SOURCES, EXTRA_DIST, MAINTAINERCLEANFILES): Use it.
  (doc/os-config.texi): Remove.
  (doc/os-config-%.texi): New target.
2015-05-09 23:53:36 +02:00
Ludovic Courtès e1fbc32a0a install: Have several OS config templates under /etc/configuration.
* gnu/system/install.scm (configuration-template-service): Remove
  'local-template' and 'template'.  Add 'search' and 'templates'.
  [activate]: Copy all of TEMPLATES to /etc/configuration.
* doc/guix.texi (System Installation): Adjust file name accordingly.
2015-05-09 23:53:36 +02:00
Ludovic Courtès 965a733220 doc: Document 'avahi-service'.
* gnu/services/avahi.scm (avahi-service): Add URL in docstring.
* doc/guix.texi (Networking Services): Document it.
  (Name Service Switch): Fix cross-reference.
2015-05-08 16:35:32 +02:00
Ludovic Courtès 04e4e6ab51 doc: Document sessions and ~/.xsession for SLiM.
* gnu/services/xorg.scm (slim-service): Document session types and
  ~/.xsession.
* doc/guix.texi (X Window): Adjust accordingly.
2015-05-08 16:35:32 +02:00
Ludovic Courtès 4467be213a services: Add '%desktop-services'.
* gnu/services/desktop.scm (%desktop-services): New variable.
* doc/guix.texi (Desktop Services): Document it.
2015-05-08 16:35:32 +02:00
Ludovic Courtès 15137a29c2 nss: Add '%mdns-host-lookup-nss'.
* gnu/system/nss.scm (%mdns-host-lookup-nss): New variable.
* doc/guix.texi (Name Service Switch): Document it.
2015-05-08 16:35:32 +02:00
David Thompson 105369a46b gnu: Add postgresql-service.
* gnu/services/databases.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi ("Database Services"): New subsubsection.
2015-05-07 08:44:36 -04:00
Ludovic Courtès d664f1b431 profiles: Generate an 'etc/profile' file.
Suggested by 宋文武 <iyzsong@gmail.com>
in <http://bugs.gnu.org/20255>.

* guix/build/profiles.scm (abstract-profile,
  write-environment-variable-definition): New procedures.
  (build-profile): Add #:search-paths parameter.  Create
  OUTPUT/etc/profile.
* guix/profiles.scm (profile-derivation)[builder]: Add 'search-paths'
  variable and pass it to 'build-profile'.  Adjust #:modules argument.
* tests/profiles.scm ("etc/profile"): New test.
* doc/guix.texi (Invoking guix package): Mention etc/profile.
2015-05-06 18:26:54 +02:00
Ludovic Courtès fe1a39d319 services: Group desktop services in (gnu services desktop).
* gnu/services/colord.scm, gnu/services/dbus.scm,
  gnu/services/upower.scm: Remove.
* gnu/services/desktop.scm: New file, with contents taken from the above
  files.
* gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly.
* doc/guix.texi (Desktop Services): New section.
  (Various Services): Move colord-service and upower-service from
  here to "Desktop Services".
2015-05-05 22:44:31 +02:00
Ludovic Courtès c6f30b8185 doc: Fix dangling references in the 'sh-symlink' monad example.
Reported by Christopher A. Webber <cwebber@dustycloud.org>.

* doc/guix.texi (The Store Monad): Reintroduce 'mlet' in 'sh-symlink'
  example.  Move the simplified version below.  Explain that the 'store'
  parameter is threaded.
2015-05-04 15:08:20 +02:00
Ludovic Courtès eabebb8143 doc: Suggest 'groupadd --system'.
* doc/guix.texi (Build Environment Setup): Use 'groupadd --system'.
2015-05-04 15:08:20 +02:00
Ludovic Courtès 39f8ed1437 doc: Clarify installation from the binary tarball.
* doc/guix.texi (Binary Installation): Specifically refer to
  group/account creation, and add an item for substitutes.  Mention
  verifiability.
2015-05-04 15:08:20 +02:00
Christopher Allan Webber 8e9aa37f69 doc: Replace reference to profile.sh with sh-symlink
* doc/guix.texi (The Store Monad): Replace reference to "profile.sh",
  which is not defined until the next node, with "sh-symlink", which
  is defined immediately above

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-05-04 00:24:21 +02:00
Eric Bavier 2cdfe13dea guix: build: Add transitive source building.
* guix/scripts/build.scm (%options, options->derivations): Add --sources
  option.
* doc/guix.texi (Invoking guix build): Document --sources option.
* tests/guix-build.sh: Add tests.
2015-05-02 23:15:40 -05:00
Alex Kost 5eca94594d services: Add console-keymap service.
* gnu/services/base.scm (console-keymap-service): New procedure.
* doc/guix.texi (Base Services): Document it.

Co-authored-by: 宋文武 <iyzsong@gmail.com>
2015-05-01 21:00:39 +03:00
Ludovic Courtès c04681554d derivations: Add #:leaked-env-vars parameter.
Suggested by Joshua Randall <jcrandall@alum.mit.edu>
in <http://bugs.gnu.org/20402>.

* guix/derivations.scm (derivation): Add #:leaked-env-vars parameter.
  [user+system-env-vars]: Honor it.
* guix/gexp.scm (gexp->derivation): Add #:leaked-env-vars and pass it to
  'raw-derivation'.
* doc/guix.texi (Derivations, G-Expressions): Adjust accordingly.
2015-05-01 00:06:17 +02:00
Ludovic Courtès 3392ce5d60 system: Make /gnu/store a read-only bind mount by default.
* gnu/system/file-systems.scm (%immutable-store): New variable.
  (%base-file-systems): Add it.
* doc/guix.texi (File Systems): Document it.
2015-04-20 22:21:51 +02:00
Ludovic Courtès 5763ad9266 guix package: -A and -s take supported systems into account.
* guix/scripts/package.scm (guix-package)[process-query]
  <list-available>: Restrict results to packages matching
  'supported-package?".
* guix/ui.scm (package->recutils): Print "systems:".
* tests/guix-package.sh: Add tests.
* doc/guix.texi (Invoking guix package): Adjust description of
  '--list-available' accordingly.
2015-04-19 23:34:53 +02:00
Ludovic Courtès 5dc3ce5f6c doc: Warn earlier about the risk of overwriting with the binary install.
Suggested by Pjotr Prins <pjotr.public12@thebird.nl>.

* doc/guix.texi (Binary Installation): Move warning about overwriting
  higher up.
2015-04-18 22:57:52 +02:00
Ludovic Courtès 724311a26b packages: Allow package lookups with version prefixes.
* gnu/packages.scm (find-packages-by-name): Sort MATCHING according to
  'version>?'.  Use 'string-prefix?' instead of 'string=?' to compare
  against VERSION.
* doc/guix.texi (Invoking guix package): Add example and explanation.
2015-04-18 22:57:52 +02:00
Mark H Weaver 933204e5b1 Merge branch 'master' into core-updates
Conflicts:
	gnu-system.am
	gnu/packages/gstreamer.scm
2015-04-17 09:54:11 -04:00
Ludovic Courtès 4b9b3cbbc4 refresh: Allow users to refer to specific package versions.
* guix/scripts/refresh.scm (guix-refresh): Use 'specification->package'
  instead of 'find-packages-by-name'.  This allows users to specify
  things like "qt-4.8.6".
* doc/guix.texi (Invoking guix refresh): Add an example.
2015-04-16 23:15:06 +02:00
Ludovic Courtès 09722b11e5 doc: Add section on installation from a binary tarball.
* doc/guix.texi (Binary Installation): New section.
2015-04-15 23:25:04 +02:00
Mark H Weaver d5f01e48e0 guix package: Add '--do-not-upgrade' option.
* guix/scripts/package.scm (%options): Add the '--do-not-upgrade' option.
  (show-help): Document it.
  (options->installable): Add 'do-not-upgrade-regexps' variable.
  Use it in 'packages-to-upgrade'.
* doc/guix.texi (Invoking guix package): Document the '--do-not-upgrade'
  option.
2015-04-14 10:44:19 -04:00
Mark H Weaver 1ca8ff285b Merge branch 'master' into core-updates 2015-04-13 01:25:28 -04:00
Andy Wingo be23412848 services: Add upower.
* gnu-system.am (GNU_SYSTEM_MODULES): Add gnu/services/upower.scm.
* gnu/services/upower.scm: New file, defining a upower service.
* doc/guix.texi (Various Services): Mention it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2015-04-13 00:02:59 +02:00
Ludovic Courtès 4c9050c63d doc: Add example showing how to customize 'nscd-service'.
* doc/guix.texi (Name Service Switch): Add link to nss-mdns.  Add
  example show how to pass #:name-services to 'nscd-service'.
  (Base Services): Add link from 'nscd-service' to the above.
* gnu/services/base.scm (nscd-service): Update docstring accordingly.
2015-04-12 22:34:47 +02:00
Ludovic Courtès ee5408576d Merge branch 'master' into core-updates 2015-04-09 21:10:46 +02:00
Ludovic Courtès 9bea87a542 activation: Remove undeclared user accounts and groups.
Fixes <http://bugs.gnu.org/19795>.
Reported by David Thompson <dthompson2@worcester.edu>.

* gnu/build/activation.scm (enumerate, current-users, current-groups,
  delete-user, delete-group): New procedures.
  (activate-users+groups): Add calls to 'delete-user' and
  'delete-group'.
* doc/guix.texi (User Accounts): Add a paragraph about statelessness.
  Explain that passwords are preserved.
2015-04-08 21:41:04 +02:00
Federico Beffa 863af4e121 import: Add hackage importer.
* guix/scripts/import.scm (importers): Add hackage.
* guix/scripts/import/hackage.scm: New file.
* po/guix/POTFILES.in: Add guix/scripts/import.scm.
* doc/guix.texi: Add section on 'hackage' importer.
2015-04-08 17:31:11 +02:00
Andy Wingo 7ce597ff9e gnu: Add colord service.
* gnu-system.am (GNU_SYSTEM_MODULES): Add gnu/services/colord.scm.
* gnu/services/colord.scm: New file.
* doc/guix.texi (Various Services): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2015-04-08 14:34:32 +02:00
Ludovic Courtès 225dafdee7 doc: Refer to "Substitutes" from "Setting Up the Daemon".
Suggested by Mark H Weaver.

* doc/guix.texi (Setting Up the Daemon): Add xref to "Substitutes".
2015-04-07 22:58:31 +02:00
Ludovic Courtès 60142854af doc: Mention the relation between module names and file names.
* doc/guix.texi (Package Modules): Mention the relation between module
  names and file names.
2015-04-07 22:53:06 +02:00
Ludovic Courtès 391bdd8f7f doc: Mention that the current generation is not deleted.
* doc/guix.texi (Invoking guix package): Mention that the current
  generation is not deleted.  This is a followup to d26eb84.
2015-04-07 22:47:32 +02:00
David Thompson aff8ce7c74 scripts: Add 'publish' command.
* guix/scripts/publish.scm: New file.
* po/guix/POTFILES.in: Add it.
* tests/publish.scm: New file.
* Makefile.am (MODULES): Add script module.
  (SCM_TESTS): Add test module.
* doc/guix.texi ("Invoking guix publish"): New node.
2015-04-04 14:16:43 -04: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 21cc905ac2 services: lsh: Change #:initialize? to default to #t.
* gnu/services/ssh.scm (lsh-service): Change #:initialize? to default
  to #t.
* doc/guix.texi (Using the Configuration System): Remove #:initialize? #t
  from example.
  (Networking Services): Adjust accordingly.
2015-04-03 22:58:49 +02:00
Ludovic Courtès c22eb9927f doc: Make it clear that store items must not be deleted by hand.
* doc/guix.texi (Invoking guix gc): Add that this is the only way to
  delete files.
2015-04-02 21:44:35 +02:00