emacs: command: Disambiguate "w" key in build options. This is a followup to commit 47c0f92c37dc7d50d9d4598ce5b91c4cdfec6ed1. * emacs/guix-command.el (guix-command-improve-common-build-argument): Use "W" key for '--with-input' option (leave "w" for '--with-source').
guix system: Rename 'dmd-graph' to 'shepherd-graph'. * doc/images/dmd-graph.dot: Rename to... * doc/images/shepherd-graph.dot: ... this. * doc.am (DOT_FILES): Adjust accordingly. * guix/scripts/system.scm (dmd-service-node-label) (dmd-service-node-type, export-dmd-graph): Rename to... (shepherd-service-node-label, shepherd-service-node-type) (export-shepherd-graph): ... this. (show-help, process-action, process-command): Rename 'dmd-graph' to 'shepherd-graph'. * emacs/guix-command.el (guix-command-additional-execute-arguments) (guix-command-special-executors): Likewise. * doc/guix.texi: Likewise. * doc/emacs.texi (Emacs Popup Interface): Likewise.
emacs: Add interface for licenses. * emacs/guix-main.scm (%license-param-alist): New variable. (license->sexp, find-licenses, license-entries): New procedures. * emacs/guix-license.el (guix-license-get-entries) (guix-license-get-display, guix-license-insert-packages-button) (guix-license-insert-comment, guix-license-list-describe) (guix-license-list-show-packages): New procedures. (guix-licenses): New command. * doc/emacs.texi (Emacs Licenses): New node. (Emacs Interface): Add it. * doc/guix.texi (Top): Add it. * NEWS: Mention new interface.
emacs: list: Support displaying URL links. * emacs/guix-list.el (guix-list-url): New face. (guix-list-get-url): New procedure.
emacs: Add 'guix-packages-by-license' command. * emacs/guix-main.scm (packages-by-license): New procedure. (%patterns-makers): Add 'license' search type. * emacs/guix-messages.el (guix-message-packages-by-license): New procedure. (guix-messages): Use it. * emacs/guix-ui-package.el (guix-packages-by-license): New command. * doc/emacs.texi (Emacs Commands): Document it.
emacs: Buttonize licenses in "Package Info". * emacs/guix-ui-package.el (guix-package-license): New button type. (guix-package-info-format, guix-output-info-format): Use it. * doc/emacs.texi (Emacs Info buffer): Mention it.
emacs: Add 'guix-browse-license-url' command. * emacs/guix-main.scm (%licenses): New variable. (licenses, license-names, lookup-license, lookup-license-uri): New procedures. * emacs/guix-read.el (guix-license-names, guix-read-license-name): New procedures. * emacs/guix-license.el: New file. (guix-lookup-license-url): New procedure. (guix-browse-license-url): New command. * emacs.am (ELFILES): Add new file.
emacs: Rename 'file-path' to 'file-name'. * emacs/guix-info.el (guix-info-file-path): Rename to... (guix-info-file-name): ... this. * emacs/guix-list.el (guix-list-file-path): Rename to... (guix-list-file-name): ... this. (guix-list-get-file-path): Rename to... (guix-list-get-file-name): ... this. * emacs/guix-ui-generation.el (guix-generation-list-format): Adjust accordingly. * emacs/guix-ui-system-generation.el (guix-system-generation-list-format): Likewise. * NEWS: Mention faces renaming.
Merge branch 'master' into core-updates
emacs: Add 'guix-search-by-name'. * emacs/guix-ui-package.el (guix-search-by-name): New command. * doc/emacs.texi (Emacs Commands): Document it.
emacs: Rename 'guix-search-by-name' to 'guix-packages-by-name'. * emacs/guix-ui-package.el (guix-search-by-name): Rename to... (guix-packages-by-name): ... this. Complete package name. * doc/emacs.texi (Emacs Commands): Likewise.
emacs: Add interface for system generations. * emacs/guix-main.scm (system-generation-boot-parameters) (system-generation-param-alist, system-generation-sexps): New procedures. (entries): Add 'system-generation' entry type. * emacs/guix-messages.el (guix-result-message): Use the same messages for 'generation' and 'system-generation' entry types. * emacs/guix-ui-system-generation.el: New file. * emacs.am (ELFILES): Add it. * doc/emacs.texi (Emacs Commands): Document new commands. * NEWS: Mention new interface.
emacs: Remove 'generation' search type. Use 'installed' search type instead. * emacs/guix-main.scm (%patterns-makers): Remove 'generation'. (package/output-sexps): Adjust accordingly. * emacs/guix-ui-generation.el (guix-generation-info-insert-number): Replace 'generation' search with 'installed'. (guix-generation-list-show-packages): Likewise. * emacs/guix-messages.el (guix-messages): Remove 'generation'.
emacs: Replace 'generation-diff' search with 'profile-diff'. * emacs/guix-main.scm (generation-package-specifications): Rename to... (profile-package-specifications): ... this. Take a single 'profile' argument. (generation-difference): Rename to... (profile-difference): ... this. Take profiles as arguments. (package/output-sexps): Adjust accordingly. * emacs/guix-ui-generation.el (guix-generation-list-profiles-to-compare): New procedure. (guix-generation-list-show-added-packages) (guix-generation-list-show-removed-packages): Use it. * emacs/guix-messages.el (guix-messages): Replace 'generation-diff' with 'profile-diff'. (guix-message-outputs-by-diff): Adjust accordingly.
emacs: Find packages in system profiles. For a usual profile, packages are placed in a profile directory itself, but for a system profile, packages are placed in 'profile' sub-directory. So we need to do some special cases for system profiles to find packages there as well. * emacs/guix-base.el (guix-packages-profile): New procedure. (guix-manifest-file): Use it. Add optional 'system?' argument. * emacs/guix-ui-generation.el (guix-system-generation?) (guix-generation-current-packages-profile): New procedures. (guix-generation-packages, guix-generation-insert-packages): Remove 'generation' argument. (guix-generation-packages-buffer): Add optional 'system?' argument. (guix-profile-generation-manifest-file) (guix-profile-generation-packages-buffer): Adjust accordingly. * emacs/guix-main.scm (generation-package-specifications+paths): Rename to... (profile->specifications+paths): ... this. Use a single 'profile' argument.
emacs: profiles: Add 'guix-system-profile'. * emacs/guix-profiles.el (guix-system-profile): New variable.
emacs: Fix heading face in "Package Info". Reported by Ludovic Courtès <ludo@gnu.org> on #guix. This fixes a regression introduced in commit 7171d824. 'insert-text-button' procedure does not allow to override a button face, so a specialized button type should be used instead. * emacs/guix-ui-package.el (guix-package-heading): New button type. (guix-package-info-insert-heading): Use it.
Merge branch 'master' into core-updates
emacs: Move loading packages to "guix-emacs.el". * emacs/guix-init.el: Move the code for auto-loading Emacs packages to... (guix-package-enable-at-startup): Move to... * emacs/guix-emacs.el (guix-package-enable-at-startup): ... here.
emacs: Make "guix-emacs.el" independent. "guix-emacs.el" may be used just for "instructing" Emacs where to find Emacs packages installed with Guix, so it should have as few dependencies as possible. See <http://lists.gnu.org/archive/html/guix-devel/2016-01/msg00022.html>. * emacs/guix-emacs.el: Require 'guix-profiles' optionally. (guix-emacs-load-autoloads): Use 'guix-profile-prompt' only if it is available.