build: Use "%D%" in Makefile fragments. * doc/local.mk: Use "%D%" for the directory of the fragment relative to the base 'Makefile.am'. * emacs/local.mk: Likewise. * gnu/local.mk: Likewise. * nix/local.mk: Likewise.
Merge branch 'master' into gnome-updates
emacs: Add 'guix-package-from-file' command. * emacs/guix-main.scm (register-package, packages-from-file): New procedures. (%patterns-makers): Add 'from-file' search type. * emacs/guix-messages.el (guix-messages): Add messages for it. * emacs/guix-ui-package.el (guix-package-from-file): New command. (guix-package-info-insert-location): Adjust for 'from-file' type. * doc/emacs.texi (Emacs Commands): Document it.
emacs: main: Remove top-level package tables. * emacs/guix-main.scm (%package-vhash, package-vhash, %package-table) (package-table, name+version->key, key->name+version): Remove. (package-by-address, packages-by-name+version): Adjust by using delayed local package tables.
emacs: Simplify 'guix-guile-boolean'. * emacs/guix-guile.el (guix-guile-boolean): Use straightforward way to define true/false value.
emacs: Add 'guix-version' command. * emacs/guix-config.el.in (guix-config-name, guix-config-version): New constants. * emacs/guix-about.el (guix-version): New command. New file. * emacs/local.mk (ELFILES): Add it.
Merge branch 'master' into gnome-updates
emacs: main: Use (guix combinators). Reported by rsiddharth on #guix. This is a followup to commit 958dd3ce68733bcd5c1231424c7e4ad39e67594a. * emacs/guix-main.scm: Use (guix combinators) module as 'memoize' moved there.
emacs: Add "edit" command to a list of licenses. * emacs/guix-ui-license.el (guix-license-list-edit): New command. (guix-license-list-mode-map): Bind it to "e" key.
emacs: Add license definition button to License Info buffer. * emacs/guix-ui-license.el (guix-license-insert-file): New procedure. (guix-license-info-format): Use it.
emacs: Add 'guix-find-license-definition' command. * emacs/guix-license.el (guix-license-file): New procedure. (guix-find-license-definition): New command. * doc/emacs.texi (Emacs Licenses): Document it.
build: Move 'Makefile' fragments to subdirectories. This follows a convention used by some other GNU packages like Autoconf, Bison, Coreutils, and Gnulib. * doc.am: Rename to ... * doc/local.mk: ... this. * emacs.am: Rename to ... * emacs/local.mk: ... this. * gnu-system.am: Rename to ... * gnu/local.mk: ... this. * daemon.am: Rename to ... * nix/local.mk: ... this. * Makefile.am: Adapt to them. * doc/guix.texi (Porting to a New Platform): Adapt documentation. * guix/config.scm.in (%state-directory, %config-directory): Adapt comments. * emacs/guix-config.el.in (guix-config-state-directory): Likewise.
emacs: Display license info on button press in Package Info buffer. * emacs/guix-ui-package.el (guix-package-license): Adjust button action to display license info instead of browsing license URL.
emacs: Add location "Packages" button to Package Info buffer. * emacs/guix-ui-package.el (guix-package-info-insert-location): New procedure. (guix-package-info-format): Use it. (guix-output-info-format): Likewise.
emacs: Add interface for package locations. * emacs/guix-main.scm (%package-location-param-alist): New variable. (package-location->sexp, package-location-entries): New procedures. * emacs/guix-ui-location.el: New file. * emacs.am (ELFILES): Add it. * doc/emacs.texi (Emacs Package Locations): Document 'guix-locations'. * NEWS: Mention it.
emacs: Make 'guix-find-location' interactive. * emacs/guix-location.el (guix-find-location): Make interactive. Adjust to handle "reduced" locations (without line and column numbers).
emacs: Display message if license not found. * emacs/guix-ui-license.el (guix-license-message): New procedure. (guix-license-info-message-function): Use it. (guix-license-list-message-function): Likewise.
emacs: Separate package license code. Move list/info interface code from "guix-license.el" to "guix-ui-license.el". * emacs/guix-license.el (guix-license-get-entries, guix-license-get-display) (guix-license-insert-packages-button, guix-license-insert-comment) (guix-licenses): Move to... * emacs/guix-ui-license.el: ... here. New file. * emacs.am (ELFILES): Add it.
emacs: Separate package location code. * emacs/guix-base.el (guix-directory, guix-read-directory) (guix-set-directory): Move to "guix-backend.el". (guix-find-location, guix-package-location, guix-edit): Move to... * emacs/guix-location.el: ... here. New file. * emacs/guix-ui-package.el: Use it. * emacs.am (ELFILES): Add it.
emacs: Add 'guix-packages-by-location' command. * emacs/guix-main.scm (packages-by-location-file, package-location-files): New procedures. (%patterns-makers): Add 'location' search type. * emacs/guix-messages.el (guix-message-packages-by-location): New procedure. (guix-messages): Use it. * emacs/guix-read.el (guix-package-locations) (guix-read-package-location): New procedures. * emacs/guix-ui-package.el (guix-packages-by-location): New command. * doc/emacs.texi (Emacs Commands): Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org>