Commit Graph

667 Commits

Author SHA1 Message Date
Ludovic Courtès 1007b6bf0b Merge branch 'master' into core-updates 2015-09-24 22:18:07 +02:00
Ludovic Courtès 5c3c1427fa doc: Mention /run/current-system/locale.
* doc/guix.texi (Application Setup): Add anchor and index entry.
  (Locales): Refer to it.  Mention /run/current-system/locale.
2015-09-24 21:21:01 +02:00
Alex Kost 1a6c4c2f37 emacs: Add 'guix-devel-build-package-definition'.
Suggested by Ludovic Courtès <ludo@gnu.org>.

* emacs/guix-guile.el (guix-guile-definition-regexp): New variable.
  (guix-guile-current-definition, guix-guile-boolean): New functions.
* emacs/guix-devel.el: Require 'guix-base'.
  (guix-devel-repl-processes): New variable.
  (guix-devel-setup-repl, guix-devel-setup-repl-maybe): New functions.
  (guix-devel-build-package-definition): New command.
* doc/emacs.texi (Emacs Development): Document it.
2015-09-23 13:36:37 +03:00
Alex Kost 187f80c6c5 emacs: Add development utils.
* emacs/guix-guile.el (guix-guile-current-module): New function.
* emacs/guix-devel.el: New file.
* emacs.am (ELFILES): Add it.
* doc/emacs.texi (Emacs Development): New node.
  (Emacs Interface): Add it.
* doc/contributing.texi (The Perfect Setup): Mention it.
* doc/guix.texi (Top): Add it.
* emacs/guix-init.el: Add 'guix-devel-activate-mode-maybe' to
  'scheme-mode-hook'.
2015-09-23 13:36:37 +03:00
Ludovic Courtès cc0e575a94 linux-boot: Mount /dev as a devtmpfs from the start.
Suggested by Petter <petter@mykolab.ch>
and Mark H Weaver <mhw@netris.org>.
Reported by Duncan Keall <duncan@duncankeall.com>.

Partly fixes <http://bugs.gnu.org/19190> by populating /dev/mapper
early enough.

* gnu/build/linux-boot.scm (mount-essential-file-systems): Mount /dev as
  a devtmpfs.
  (move-essential-file-systems): Add /dev.
  (mount-root-file-system): Mount /rw-root/dev as a devtmpfs instead of
  calling 'make-essential-device-nodes'.
  (boot-system): Remove call to 'make-essential-device-nodes'.
* gnu/system/file-systems.scm (%devtmpfs-file-system): Remove.
* doc/guix.texi (File Systems): Adjust accordingly.
2015-09-20 22:05:36 +02:00
Alex Kost eda1cc8b5d emacs: Add commands to show/hide build log phases.
Suggested by Ludovic Courtès <ludo@gnu.org>.

* emacs/guix-build-log.el (guix-build-log-phase-end-regexp): New
  variable.
  (guix-build-log-phase-start, guix-build-log-phase-end,
  guix-build-log-phase-hide, guix-build-log-phase-show,
  guix-build-log-phase-hidden-p, guix-build-log-phase-toggle-function,
  guix-build-log-phase-toggle, guix-build-log-phase-toggle-all): New functions.
  (guix-build-log-mode-map): Add 'TAB'/'S-TAB' key bindings.
* doc/emacs.texi (Emacs Build Log): Document them.
2015-09-18 21:41:23 +03:00
Ludovic Courtès cbd02397b5 doc: Add guidelines for synopses and descriptions.
* doc/guix.texi (Synopses and Descriptions): New node.
* doc/contributing.texi (Submitting Patches): Add item that
  cross-references it.
2015-09-15 22:48:52 +02:00
Ludovic Courtès 2cbed07eef doc: Change authorship to "The GNU Guix Developers".
* doc/guix.texi: Replace outdated @author list with just "The GNU Guix
  Developers".
2015-09-15 22:48:52 +02:00
Alex Kost 34850cd59d emacs: Add modes for viewing build logs.
* emacs/guix-build-log.el: New file.
* emacs.am (ELFILES): Add it.
* doc/emacs.texi (Emacs Build Log): Document it.  New node.
  (Emacs Interface): Add it.
* doc/guix.texi (Top): Likewise.
2015-09-15 15:19:31 +03:00
Eric Bavier 50f5c46d06 guix: lint: Check for meaningful origin file names.
* guix/scripts/lint.scm (check-source-file-name): New procedure.
  (%checkers): Add 'source-file-name' checker.
* tests/lint.scm ("source-file-name", "source-file-name: v prefix")
  ("source-file-name: valid", "source-file-name: bad checkout")
  ("source-file-name: good checkout"): New tests.
* doc/guix.texi (Invoking guix lint): Mention file name check.
2015-09-14 18:03:33 -05:00
Mathieu Lirzin 17d8e33f31 doc: Use the recommended Scheme format.
Apply the recommended formatting rules from '.dir-locals.el' to the
examples in the manual in order to fulfill it's purpose of being a
reference.

* doc/package-hello.scm: Indent it.
* doc/guix.texi (Defining Packages, Version Numbers): Likewise.
* gnu/packages/base.scm (hello): Be consistent with the manual.
2015-09-14 23:10:58 +02:00
David Thompson 5dc876231b build: ruby: Add support for tarball and directory sources.
Previously, the Ruby build system only knew how to work with gem archives,
which made it difficult to build unreleased gems from a Git repository or
released gems in tarball form.

* gnu/build/ruby-build-system.scm (gnu:unpack, gem-archive?): New procedures.
  (unpack): Use GNU build system unpack phase for non-gem sources.
  (build): Rebuild the gemspec iff the source is a gem archive.
* guix.texi ("ruby-build-system"): Mention that tarballs and directories are
  acceptable.
2015-09-14 08:29:07 -04:00
Ludovic Courtès 0081410da0 Revert "services: 'mingetty-service' no longer takes monadic values."
This reverts commit daa48c3179.
2015-09-13 12:04:55 +02:00
Ludovic Courtès daa48c3179 services: 'mingetty-service' no longer takes monadic values.
* gnu/services/base.scm (mingetty-service): Change default value of
  #:motd from a monadic value to a <plain-file>.  Assume MOTD to be a
  file-like object.  Assume LOGIN-PROGRAM is a gexp or #f.
  (%base-services): Use 'plain-file' instead of 'text-file' for motd.
* gnu/system/linux.scm (unix-pam-service): Update docstring to mention
  that MOTD is a file-like object.
* doc/guix.texi (Base Services): Adjust 'mingetty-service' documentation
  accordingly.
2015-09-13 11:54:56 +02:00
Ludovic Courtès 3f208ad758 guix build: '--log-file' can return URLs.
* guix/scripts/build.scm (%default-log-urls): New variable.
  (log-url): New procedure.
  (guix-build): Use it.
* doc/guix.texi (Invoking guix build): Document it.
2015-09-10 23:14:16 +02:00
Ludovic Courtès 4c8f997a7d graph: Add '--expression'.
* guix/scripts/graph.scm (%options, show-help): Add '--expression'.
  (guix-graph): Call 'read/eval-package-expression' for 'expression'
  pairs in OPTS.
* tests/guix-graph.sh: Add tests.
* doc/guix.texi (Invoking guix graph): Document it.
2015-09-02 23:40:07 +02:00
Andy Wingo 4650a77ea8 doc: Document polkit and elogind services.
* doc/guix.texi (Desktop Services): Add polkit-service and
  elogind-service documentation.
2015-09-02 23:06:12 +02:00
Ricardo Wurmus f8f3bef6aa build: Add R build system.
* guix/build-system/r.scm: New file.
* guix/build/r-build-system: New file.
* Makefile.am (MODULES): Add new files.
* doc/guix.texi (Build Systems): Document r-build-system.
2015-08-31 15:39:34 +02:00
Ricardo Wurmus e1248602f9 import: Add 'cran' importer.
* guix/import/cran.scm: New file.
* guix/scripts/import.scm: Add "cran" to 'importers'.
* guix/scripts/import/cran.scm: New file.
* tests/cran.scm: New file.
* Makefile.am (MODULES): Add 'guix/import/cran.scm' and
  'guix/scripts/import/cran.scm'.
  (SCM_TESTS): Add 'tests/cran.scm'.
* doc/guix.texi (Invoking guix import): Document it.
* po/guix/POTFILES.in: Add 'guix/scripts/import/cran.scm'.
2015-08-31 15:39:34 +02:00
Alex Kost 9b0afb0d28 emacs: Add popup interface for guix commands.
* emacs/guix-command.el: New file.
* emacs.am (ELFILES): Add it.
* doc/emacs.texi (Emacs Initial Setup): Mention 'magit-popup' library.
  (Emacs Popup Interface): New node.
  (Emacs Interface): Add it.
* doc/guix.texi (Top): Likewise.
2015-08-30 18:26:03 +03:00
Alex Kost c554de8929 doc: Reorganize "Emacs Interface" node.
* doc/guix.texi (Package Management): Move "Emacs Interface" node to ...
  (Top): ...here, since it is not just about package management.
* doc/emacs.texi: Shift all nodes one level up (@section -> @chapter, etc.).
  Rename "Emacs Usage" node into "Emacs Package Management".  Move "Emacs
  Configuration" node here.
2015-08-30 18:26:02 +03:00
Ludovic Courtès b263651860 doc: Mention the "normalized codeset" used in locale names.
* doc/guix.texi (Locales): Introduce "codeset".
  <%default-locale-definitions>: Mention the "normalized codeset", with
  an xref to libc's manual.
* gnu/system/locale.scm (%default-locale-definitions)[utf8-locale]:
  Mention the "normalized codeset" in a comment.
2015-08-29 23:56:47 +02:00
Ludovic Courtès 0309e1b0ba gexp: Add #:script-name parameter to 'gexp->derivation'.
* guix/gexp.scm (gexp->derivation): Add #:script-name parameter.
* doc/guix.texi (G-Expressions): Document it.
2015-08-29 01:22:54 +02:00
David Thompson 58724c488b gnu: services: Add nginx-service.
* gnu/services/web.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* guix.texi ("Web Services"): New section.
2015-08-27 22:10:40 -04:00
David Thompson 3aae8145a7 import: Add Ruby gem importer.
* gnu/scripts/import.scm (importers): Add "gem".
* gnu/import/gem.scm: New file.
* gnu/scripts/import/gem.scm: New file.
* Makefile.am (MODULES): Add them.
* guix.texi ("invoking guix import"): Document it.
2015-08-27 19:45:06 -04:00
Ludovic Courtès 888569161c Add 'guix graph'.
* guix/scripts/graph.scm, tests/graph.scm, tests/guix-graph.sh,
  doc/images/coreutils-bag-graph.dot, doc/images/coreutils-graph.dot: New
  files.
* Makefile.am (MODULES): Add guix/scripts/graph.scm.
  (SH_TESTS): Add tests/guix-graph.sh.
  (SCM_TESTS): Add tests/graph.scm.
* doc.am (DOT_FILES, DOT_VECTOR_GRAPHICS): New variables.
  (EXTRA_DIST): Use them.
  (dist_infoimage_DATA): Use $(DOT_FILES).
  (pdf-local, info-local, ps-local): Likewise.
* doc/guix.texi (Packages with Multiple Outputs): Add cross-reference to 'guix
  graph'.
  (Invoking guix gc): Likewise.
  (Invoking guix graph): New section.
2015-08-27 00:49:23 +02:00
Ludovic Courtès c2b8467645 gexp: Add 'lower-object'.
* guix/gexp.scm (lower-object): New procedure.
  (lower-inputs, lower-references, gexp->sexp): Use it.
* tests/gexp.scm ("lower-object"): New test.
* doc/guix.texi (G-Expressions): Document it.
2015-08-27 00:49:23 +02:00
Andy Wingo cee32ee4d3 gnu: Add GeoClue desktop service.
* gnu/services/desktop.scm (bool): New top-level helper.
  (upower-configuration-file): Use top-level `bool'.
  (geoclue-application): New public function.
  (%standard-geoclue-applications): New public variable.
  (geoclue-service): New public variable.
  (%desktop-services): Add GeoClue.  Add a comment about activation.
* doc/guix.texi (Desktop Services): Document the GeoClue service.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-08-20 17:05:30 +02:00
Siniša Biđin a6dcdcac76 doc: Add missing gawk dependency to hello recipe.
* doc/guix.texi (Defining Packages): Add gawk dependency.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-08-20 16:34:02 +02:00
David Thompson 0d2794005c scripts: package: Add --install-from-file option.
* guix/scripts/package.scm (show-help): Add help text for --install-from-file
  option.
  (%options): Add --install-from-file option.
* tests/guix-package.sh: Test it.
* doc/guix.texi ("invoking guix package"): Document it.
* doc/package-hello.scm: New file.
* doc.am (EXTRA_DIST): Add it.
2015-08-19 22:23:59 -04:00
Ludovic Courtès 40a7d4e58b lint: Add 'formatting' checker.
* guix/scripts/lint.scm (report-tabulations, report-trailing-white-space,
  report-long-line, report-formatting-issues, check-formatting): New
  procedures.
  (%formatting-reporters): New variable.
  (%checkers): Add 'formatting' checker.
* tests/lint.scm ("formatting: tabulation", "formatting: trailing white
  space", "formatting: long line", "formatting: alright"): New tests.
* doc/guix.texi (Invoking guix lint): Mention the 'formatting' checker.
2015-08-19 11:39:17 +02:00
David Thompson e83c6d009f build: ruby: Rewrite build system to use gem archives.
Co-Authored-By: Pjotr Prins <pjotr.public01@thebird.nl>

* guix/build-system/ruby.scm (lower): Remove git dependency.
  (rubygems-uri): New procedure.
* guix/build/ruby-build-system (gitify): Delete.
  (unpack): Use 'gem unpack' utility.
  (check): Add docstring.
  (build): Repack modified gem.
  (install): Rebuild unpacked gem and install it.
  (%standard-phases): Remove gitify and build phases.
* gnu/packages/ruby.scm (ruby-hoe, ruby-rake-compiler, ruby-i18n,
  ruby-rspec-support, ruby-rspec-core, ruby-diff-lcs-for-rspec,
  ruby-rspec-expectations, ruby-rspec-mocks, ruby-rspec, bundler,
  ruby-useragent, ruby-bacon, ruby-arel, ruby-connection-pool,
  ruby-net-http-persistent, ruby-minitest, ruby-minitest-sprint,
  ruby-minitest-bacon, ruby-daemons, ruby-git, ruby-slop,
  ruby-multipart-post): Convert to new build system.
* doc/guix.texi (ruby-build-system): Document the gem archive requirement.
2015-08-18 17:58:13 -04:00
Steve Sprang 4988dd4008 doc: Fix minor typos.
* doc/guix.texi (Invoking guix-daemon, Application Setup, The Store): Fix
  typos.
2015-08-02 22:15:16 -04:00
Ludovic Courtès 53de532f28 doc: Make "Application Setup" more prominent.
* doc/guix.texi (Binary Installation): Add reference to "Application Setup".
2015-07-25 14:43:44 +02:00
Ludovic Courtès 8fe5b1d1d1 doc: Fix name of GNU FreeFont package.
Fixes <http://bugs.gnu.org/21121>.
Reported by Malcolm Cook <MEC@stowers.org>.

* doc/guix.texi (Application Setup): Fix name of GNU FreeFont package.
2015-07-24 01:23:53 +02:00
Ludovic Courtès e9ba6357e3 doc: Clarify that tar timestamp warnings affect tar <= 1.26.
* doc/guix.texi (Binary Installation): Explain that warnings were triggered by
  tar <= 1.26.
2015-07-24 01:19:57 +02:00
Ludovic Courtès 4d40227cce doc: Fix typos in "Setuid Programs".
* doc/guix.texi (Setuid Programs): Fix typos.
2015-07-23 09:42:23 +02:00
Ludovic Courtès 254b1c2e95 doc: Suggest unpacking with --warning=no-timestamp.
Suggested by Malcolm Cook <MEC@stowers.org>.

* doc/guix.texi (Binary Installation): Suggest --warning=no-timestamp.
2015-07-22 23:47:35 +02:00
Ludovic Courtès aafa0dffb1 doc: Mention zeroed mtimes in the binary tarball.
Fixes <http://bugs.gnu.org/21111>.
Reported by Dave Love <fx@gnu.org>.

* doc/guix.texi (Binary Installation): Add paragraph about "implausibly old
  time stamps" warning from tar.
2015-07-22 22:56:41 +02:00
Ludovic Courtès d490d06e0f size: Add '--substitute-urls' option.
* guix/scripts/size.scm (show-help, %options): Add --substitute-urls.
  (%default-options): Add 'substitute-urls'.
  (guix-size): Honor it.
* doc/guix.texi (Invoking guix size): Document it.
2015-07-22 22:56:41 +02:00
Ludovic Courtès 1bd4e6db15 doc: Mention initial passwords in "System Installation".
Suggested by remo_ on IRC.

* doc/guix.texi (System Installation): Explicitly mention user account
  passwords.
  (User Accounts): Add 'user-account-password' anchor.
2015-07-22 22:56:41 +02:00
Mark H Weaver e170571887 Merge branch 'core-updates' 2015-07-19 20:28:56 -04:00
Mark H Weaver 1b4e48d498 Merge branch 'master' into core-updates 2015-07-19 18:12:34 -04:00
Ludovic Courtès 093ae1be9b doc: Update the "Limitations" section.
* doc/guix.texi (GNU Distribution): Use the new package list URL.
  (Limitations): Mention Enlightenment and improve wording.  Update the
  package count.
2015-07-19 22:39:16 +02:00
pjotrp 6e9f2913ba build-system/ruby: Add #:gem-flags parameter.
* guix/build-system/ruby.scm (build): add 'gem-flags' key
* guix/build/ruby-build-system.scm (build): use 'gem-flags' key
* doc/guix.texi (Build Systems): Mention #:gem-flags.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2015-07-18 17:15:03 +02:00
Ludovic Courtès e51710d1ef file-systems: Add a 'dependencies' field to <file-system>.
* gnu/system/file-systems.scm (<file-system>)[dependencies]: New field.
* gnu/system.scm (other-file-system-services)[requirements]: Honor
  'file-system-dependencies'.
* doc/guix.texi (File Systems): Document it.
2015-07-17 19:24:15 +02:00
Ludovic Courtès ee2a6304f3 system: Add 'kernel-arguments' field.
* gnu/system.scm (<operating-system>)[kernel-arguments]: New field.
  (operating-system-grub.cfg): Honor it.
  (operating-system-parameters-file): Add 'kernel-arguments' to the parameters
  file.
* guix/scripts/system.scm (previous-grub-entries)[system->grub-entry]: Read
  the 'kernel-arguments' field of the parameters file, when available.
* gnu/system/vm.scm (system-qemu-image/shared-store-script):
  Use (operating-system-kernel-arguments os) in '-append'.
* doc/guix.texi (operating-system Reference): Document it.
2015-07-17 01:11:06 +02:00
Ludovic Courtès d2825c9614 Add 'guix-daemon.service' file for systemd.
* etc/guix-daemon.service.in: New file, provided by Ricardo Wurmus.
* daemon.am (CLEANFILES): Add etc/guix-daemon.service.
  (systemdservicedir, nodist_systemdservice_DATA): New variables.
  (EXTRA_DIST): Add etc/guix-daemon.service.in.
* doc/guix.texi (Binary Installation, Build Environment Setup): Mention
  'guix-daemon.service'.
2015-07-15 23:57:01 +02:00
Ludovic Courtès 43c33047da doc: Reinstate bit about creating build accounts.
* doc/guix.texi (Binary Installation): Reinstate bit about creating group and
  user accounts, which was inadvertently removed in 01dbc7e0.
2015-07-15 23:57:01 +02:00
Mark H Weaver 35995769b5 Merge branch 'master' into core-updates 2015-07-15 15:10:32 -04:00
Ludovic Courtès 661a1d7924 file-systems: Allow users to specify file system UUIDs as strings.
Fixes <http://bugs.gnu.org/19778>.
Reported by Mark H Weaver <mhw@netris.org>.

* gnu/system/file-systems.scm (%uuid-rx): New variable.
  (string->uuid): New procedure.
  (uuid): New macro.
* tests/file-systems.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
* doc/guix.texi (File Systems): Give an example of UUID.
2015-07-14 15:24:20 +02:00
Ludovic Courtès f8a8e0fe16 guix build: Add '--substitute-urls' client option.
* guix/scripts/build.scm (%standard-build-options,
  show-build-options-help): Add --substitute-urls=URLS.
  (set-build-options-from-command-line): Honor it.
* guix/store.scm (%default-substitute-urls): Make public.
* doc/guix.texi (Substitutes): Add xref to the client --substitute-urls
  option.
  (Invoking guix build): Document it.
  (Invoking guix-daemon): Add 'daemon-substitute-urls' anchor.
2015-07-13 18:29:01 +02:00
Mark H Weaver aa7251176f gnu: Require NEON on armhf.
* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): On armhf,
  include --with-fpu=neon.
* doc/guix.texi (GNU Distribution): Document that our armhf port
  requires NEON.
2015-07-11 19:06:20 -04:00
Ludovic Courtès c4fdfd6f90 doc: Augment offloading documentation.
* doc/guix.texi (Daemon Offload Setup): Mention that we're using lsh.  Mention
  GUILE_LOAD_PATH settings on the target machine.  Explain that machines must
  authorize each other.
2015-07-09 11:59:27 +02:00
Ludovic Courtès 840bd1d358 doc: Remove extra quotes around URLs.
* doc/guix.texi (Invoking guix import): Remove extraneous quotes around URLs.
2015-07-08 12:37:00 +02:00
Federico Beffa e9137a5310 build: Add 'emacs-build-system'.
* Makefile.am (MODULES): Add 'guix/build-system/emacs.scm' and
  'guix/build/emacs-build-system.scm'.
* guix/build-system/emacs.scm: New file.
* guix/build/emacs-build-system.scm: New file.
* doc/guix.texi (Build Systems): Document it.
2015-07-08 10:53:05 +02:00
Federico Beffa 7f74a931dd import: Add 'elpa' importer.
* guix/import/elpa.scm: New file.
* guix/scripts/import.scm: Add "elpa" to 'importers'.
* guix/scripts/import/elpa.scm: New file.
* Makefile.am (MODULES): Add 'guix/import/elpa.scm' and
  'guix/scripts/import/elpa.scm'.
  (SCM_TESTS): Add 'tests/elpa.scm'.
* doc/guix.texi (Invoking guix import): Document it.
* tests/elpa.scm: New file.
* po/guix/POTFILES.in: Add 'guix/scripts/import/elpa.scm'.
2015-07-08 10:53:05 +02:00
Ludovic Courtès 4a6aeb670f derivations: Add #:substitutable?, distinguished from #:local-build?.
Fixes <http://bugs.gnu.org/18747>.

* guix/derivations.scm (substitutable-derivation?): Rewrite to check for
  "allowSubstitutes".
  (derivation): Add #:substitutable? parameter.
  [user+system-env-vars]: Honor it.
  (build-expression->derivation): Add #:substitutable? and honor it.
* guix/gexp.scm (gexp->derivation): Likewise.
* tests/derivations.scm ("derivation-prerequisites-to-build and substitutes,
  non-substitutable build"): Use #:substitutable? instead of #:local-build?.
  ("substitutable-derivation?", "derivation-prerequisites-to-build and
  substitutes, local build"): New tests.
* guix/download.scm (url-fetch): Adjust comment.
* guix/git-download.scm (git-fetch): Likewise.
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Use #:substitutable?
  instead of #:local-build?.
* doc/guix.texi (Derivations, G-Expressions): Adjust accordingly.
2015-07-03 00:30:55 +02:00
Ludovic Courtès 28de8d258b environment: Define 'GUIX_ENVIRONMENT'.
* guix/scripts/environment.scm (create-environment): Define 'GUIX_ENVIRONMENT'.
* doc/guix.texi (Invoking guix environment): Document it.
* gnu/system/shadow.scm (default-skeletons): Adjust 'PS1' depending on whether
  'GUIX_ENVIRONMENT' is defined.
2015-07-01 23:29:49 +02:00
Ludovic Courtès 50500f7cf0 doc: Mention .bashrc vs. .bash_profile for 'guix environment'.
* doc/guix.texi (Invoking guix environment): Add footnote about .bashrc
  vs. .bash_profile.
2015-07-01 23:29:49 +02:00
Ludovic Courtès 417c39f132 environment: For --ad-hoc, allow users to specify an output.
* guix/scripts/environment.scm (package+propagated-inputs): Add 'output'
  parameter.  Use it in return value.
  (options/resolve-packages): Use 'append-map' instead of 'map'.  For 'load'
  and 'expression', return all the outputs of the resulting package.  For
  'package', use 'specification->package+output' instead of
  'specification->package'.
  (guix-environment): Adjust uses of PACKAGES accordingly.
* doc/guix.texi (Invoking guix environment): Document it.
* tests/guix-environment.sh: Add test for --ad-hoc guile-bootstrap:out.
2015-07-01 23:29:49 +02:00
Ludovic Courtès ce367ef3a9 environment: Add --system.
* guix/scripts/environment.scm (show-help, %options): Add -s/--system.
  (%default-options): Add 'system' pair.
  (guix-environment): Pass 'system' value from OPTS to 'lower-inputs'.
* doc/guix.texi (Invoking guix environment): Document it.
2015-07-01 23:29:49 +02:00
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
Ludovic Courtès 1768213c0a doc: Remove bits about having to create /gnu/store manually.
* doc/guix.texi (Build Environment Setup): Remove bit about creating
  /gnu/store.  This is done automatically since 15ddeff.
2015-04-02 21:40:01 +02:00
Alex Kost 1bb76f7523 services: syslog-service: Add 'config-file' argument.
* gnu/services/base.scm (syslog-service): Add 'config-file' keyword
argument.
* doc/guix.texi (Base Services): Document it.
2015-04-01 20:54:37 +03:00
Ludovic Courtès d9ae938f2c gexp: Add 'local-file'.
* guix/gexp.scm (<local-file>): New record type.
  (local-file): New procedure.
  (local-file-compiler): New compiler.
  (gexp->sexp) <struct? thing>: Handle the case where 'lower' returns a
  file name.
  (text-file*): Update docstring.local-file doc
* tests/gexp.scm ("one local file", "gexp->derivation, local-file"): New
  tests.
* doc/guix.texi (G-Expressions): Mention local files early.  Document
  'local-file'.  Update 'text-file*' documentation.
2015-03-29 22:23:33 +02:00
Ludovic Courtès b39fc6f7bc doc: Update gexp wrt. extensibility.
This is a followup to bcb1328.

* doc/guix.texi (G-Expressions): Move paragraph about extensibility
  below.  Remove assumptions that things are either packages or
  derivations.
2015-03-29 22:23:33 +02:00
Alex Kost aa4ed92314 services: Add 'lirc-service'.
* gnu/services/lirc.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (Various Services): New node.  Document 'lirc-service'.
2015-03-26 15:47:40 +03:00
Ludovic Courtès ec0339cd42 doc: Add section about the test suite.
* doc/guix.texi (Running the Test Suite): New section.
2015-03-19 23:15:50 +01:00
Ludovic Courtès ff40e9b7e5 gexp: Move the package and origin compilers to (guix packages).
From now own, (guix packages) depends on (guix gexps); it was the other
way around now.  This means that (guix packages) code can use gexps.

* guix/gexp.scm (origin-compiler, package-compiler): Remove.
  (default-guile-derivation): New procedure.
  (gexp->derivation): Use it instead of 'default-guile' +
  'package->derivation'.
* guix/packages.scm (default-guile-derivation): New procedure.
  (package-compiler, origin-compiler): New variables.
* doc/guix.texi (G-Expressions): Mention extensibility.
2015-03-17 22:25:55 +01:00
宋文武 4bd43bbe73 services: slim: Use /run/current-system/profile/share/xsessions as sessiondir.
* gnu/services/xorg.scm (<session-type>, %windowmaker-session-type)
  (%ratposion-session-type, %sawfish-session-type, %default-xsessions)
  (xsessions-directory): Remove.
  (slim-service): Remove #:sessions parameter.
  [slim.cfg]: Use /run/current-system/profile/share/xsessions as sessiondir.
* doc/guix.texi <X Window>: Adjust accordingly.
2015-03-13 22:40:57 +08:00
Ludovic Courtès 84399103da doc: Suggest to use 'lsh-service' with #:initialize? #t.
Suggested by Tomáš Čech.

* doc/guix.texi (Using the Configuration System): Pass #:initialize? #t
  to 'lsh-service'.
2015-03-11 23:25:53 +01:00
Mark H Weaver e33eea8ffd Revert "system: Add 'x509-certificates' field, and populate /etc/ssl/certs."
This reverts commit e979e6dd52.
2015-03-03 13:49:12 -05:00
Ludovic Courtès e979e6dd52 system: Add 'x509-certificates' field, and populate /etc/ssl/certs.
* gnu/system.scm (<operating-system>)[x509-certificates]: New field.
  (etc-directory): Add #:x509-certificates parameter and honor it.
  (operating-system-etc-directory): Pass #:x509-certificates in
  'etc-directory' call.
* doc/guix.texi (operating-system Reference): Document
  'x509-certificates'.
2015-03-02 22:32:54 +01:00
Ludovic Courtès a21b23d34a services: slim: Preserve the order of session types.
That makes WindowMaker the default session, by default.

* gnu/services/xorg.scm (xsessions-directory)[builder]: Prepend a number
  in the file name to preserve the order of SESSIONS.
  (slim-service): Augment docstring.
* doc/guix.texi (X Window): Adjust accordingly.
2015-02-26 22:25:15 +01:00
Eric Bavier 66392e475d import: cpan: Use corelist to filter dependencies.
* guix/import/cpan.scm (%corelist): New variable.
  (module->dist-name, core-module?): New procedures.
  (cpan-module->sexp)[convert-inputs]: Use them.  Include "test" dependencies
  in converted inputs.
* doc/guix.texi (Invoking guix import)[cpan]: Mention corelist filtering.
2015-02-18 23:53:46 -06:00
Eric Bavier 2d2a53fc24 build-system/perl: Use Build.PL for builds if present.
* guix/build/perl-build-system.scm (configure): Use Build.PL if present.
  (build, check, install): New procedures.
  (%standard-phases): Replace build, check, and install phases.
* guix/build-system/perl (perl-build): Add make-maker? and module-build-flags
  arguments.
* doc/guix.texi (Build Systems)[perl-build-system]: Document behavior rsp.
  Build.PL and new arguments.
2015-02-18 23:53:46 -06:00
Ludovic Courtès ce45eb4c38 gexp: Add #:graft? parameter to 'gexp->derivation'.
* guix/gexp.scm (gexp->derivation): Add #:graft? parameter and honor it.
* tests/gexp.scm ("gexp->derivation vs. grafts"): New test.
* doc/guix.texi (G-Expressions): Update 'gexp->derivation'
  documentation.
2015-02-13 23:19:49 +01:00
Ludovic Courtès ad3729536a store: Add optional 'references' parameter to 'text-file'.
* guix/store.scm (text-file): Add optional 'references' parameter.  Pass
  it to 'add-text-to-store'.
* doc/guix.texi (The Store Monad): Adjust accordingly.
2015-02-12 23:43:18 +01:00
Ludovic Courtès c8351d9a40 gexp: Add #:allowed-references parameter to 'gexp->derivation'.
* guix/gexp.scm (lower-references): New procedure.
  (gexp->derivation): Add #:allowed-references and honor it.
* tests/gexp.scm ("gexp->derivation #:allowed-references",
  "gexp->derivation #:allowed-references, disallowed"): New tests.
* doc/guix.texi (G-Expressions): Update 'gexp->derivation' doc.
2015-02-11 22:10:14 +01:00
Ludovic Courtès ab3872de4f doc: Use @code for the abstract USB image URL.
Reported by Quentin Pradet <webmasters-comment@gnu.org>.

* doc/guix.texi (System Installation): Use @code instead of @url for the
  abstract URL.
2015-02-11 10:36:48 +01:00
nebuli 5833bf33a2 services: lsh: Add graceful handling of daemonic option.
* gnu/services/ssh.scm (lsh-service): New #:keys (daemonic?, pid-file?,
  pid-file).  Build new lshd-command and expand service-requirement
  field.
* doc/guix.texi (Networking Services): Update accordingly.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-02-08 21:52:26 +01:00
Ricardo Wurmus a677c7267b build: Add 'waf-build-system'.
* guix/build-system/waf.scm,
  guix/build/waf-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Build Systems): Document waf-build-system.
2015-02-08 19:21:58 +01:00
Ludovic Courtès 027981d6d7 doc: Remove ".ko" extension in 'base-initrd' example.
Reported by Marek Benc.

* doc/guix.texi (Initial RAM Disk): Remove ".ko" from the 'base-initrd'
  example.  Add a comment.
2015-02-08 19:00:39 +01:00
Ludovic Courtès cbc538fe69 doc: Document the location of the build directory.
Fixes <http://bugs.gnu.org/19771>.
Reported by Andrei Osipov <andrspv@gmail.com>.

* doc/guix.texi (Invoking guix-daemon): Document the build directory
  location.
2015-02-07 23:16:55 +01:00
Ludovic Courtès 95c559c145 doc: Provide a better illustration of Ethernet interface names.
Reported on #guix.

* doc/guix.texi (System Installation)[USB Stick Installation]: Mention
  "eno1" instead of "eth0" and give other examples.
2015-02-06 17:32:17 +01:00
Mark H Weaver b7d0c494f4 services: Add wicd service.
* gnu/services/networking.scm (wicd-service): New procedure.
* doc/guix.texi (Networking Services): Document it.
2015-02-04 18:20:17 -05:00
Ludovic Courtès 4aee6e6003 services: nscd-service: Add #:name-services parameter.
* gnu/services/base.scm (nscd-service): Add #:name-services parameter.
  In 'start' field, set LD_LIBRARY_PATH based on #:name-services.
* doc/guix.texi (Base Services): Document it.
  (Name Service Switch): Link to 'nscd-service'.
2015-02-04 22:49:35 +01:00
Ludovic Courtès 996ed73948 system: Add bindings to configure libc's NSS.
* gnu/system/nss.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* gnu.scm (%public-modules): Add it.
* gnu/system.scm (<operating-system>)[name-service-switch]: New field.
  (etc-directory): Add #:nss parameter and honor it.
  (operating-system-etc-directory): Adjust call accordingly.
* doc/guix.texi (operating-system Reference): Document
  'name-service-switch'.
  (Name Service Switch): New section.
2015-02-04 22:49:35 +01:00
宋文武 5ce93d9ade services: xorg: Add sawfish session.
* gnu/services/xorg.scm (%sawfish-session-type): New variable.
* doc/guix.texi (X Window): Mention it.
2015-02-03 22:20:49 +08:00
Ludovic Courtès 01d8ac64ab store: Remove 'build-derivations'.
* guix/store.scm (build-derivations): Remove.
* guix/derivations.scm (build-derivations): Write in terms of
  'build-things'.
* doc/guix.texi (Invoking guix build): Adjust text accordingly.
2015-02-02 12:46:36 +01:00
Ludovic Courtès 2c63619588 doc: Fix typo for 'lsh-service'.
* doc/guix.texi (Networking Services): Fix typo in 'lsh-service'
  parameters.
2015-01-28 14:04:57 +01:00
Ludovic Courtès 8a225c6652 doc: Update USB image size.
* doc/guix.texi (System Installation): Change to --image-size=850MiB.
2015-01-28 10:56:04 +01:00
Ludovic Courtès 3a5d914b5e doc: Change the USB image file name to 'gsd-usb-install*'.
* doc/guix.texi (System Installation): Change the file name to
  'gsd-usb-install-*'.
2015-01-27 21:32:07 +01:00
Ludovic Courtès b1e95eca07 doc: Update "Limitations" section.
* doc/guix.texi (System Installation): Mention Xfce.  Update package
  count.
2015-01-27 10:24:35 +01:00
Ludovic Courtès 873c4085c8 doc: Expound a bit on 'guix lint'.
* doc/guix.texi (Invoking guix lint): Give examples of checkers.
2015-01-26 23:45:27 +01:00
Ludovic Courtès ffc3a02b5a services: xorg: Define the <session-type> record type.
* gnu/services/xorg.scm (<session-type>): New record type.
  (%windowmaker-session-type, %ratpoison-session-type): New variables.
  (%default-xsessions): Use them.
  (xsessions-directory): Expect SESSIONS to be a list of <session-type>
  and rewrite accordingly.
  (slim-service): Adjust docstring.
* doc/guix.texi (X Window): Update accordingly.
2015-01-26 23:33:24 +01:00
Ludovic Courtès 02bb6b45e4 services: guix: #:authorize-hydra-key? now defaults to #t.
* gnu/services/base.scm (guix-service): Change AUTHORIZE-HYDRA-KEY?
  default value to #t.
2015-01-23 23:49:24 +01:00
Ludovic Courtès 80ae897f01 doc: Mention that guix.el works out-of-the-box on GSD.
* doc/emacs.texi (Emacs Initial Setup): Mention that it works
  out-of-the-box on GSD.
2015-01-23 16:29:20 +01:00
Ludovic Courtès de71cc4f83 doc: Update USB installation image name.
* doc/guix.texi (System Installation): Change image name to guix-usb-*.
2015-01-23 10:17:52 +01:00
Ludovic Courtès 3ca2731c20 doc: Introduce the Guix System Distribution.
* doc/guix.texi (Introduction): Introduce "Guix System Distribution".
  Add a couple of sentences about it.  Remove "Guixotic".
  (GNU Distribution): Likewise.
  (System Installation): Ditto.
2015-01-23 10:15:46 +01:00