Alex Kost
6c40b7b703
emacs: Generalize buffer interface.
...
Extract the code for defining buffer interface from "guix-base.el",
generalize it and move to "guix-buffer.el".
* emacs.am (ELFILES): Add "emacs/guix-buffer.el".
* emacs/guix-base.el (guix-profile, guix-entries, guix-buffer-type)
(guix-entry-type, guix-search-type, guix-search-vals, guix-set-vars)
(guix-get-symbol, guix-show-entries, guix-get-show-entries)
(guix-set-buffer, guix-history-call, guix-make-history-item)
(guix-get-params-for-receiving): Remove.
(guix-switch-to-buffer): Rename to 'guix-buffer-display' and move to
"guix-buffer.el".
(guix-get-entries): Rename to 'guix-ui-get-entries' and move to
"guix-ui.el".
(guix-buffer-data, guix-buffer-value, guix-buffer-param-title)
(guix-buffer-name, guix-buffer-history-size)
(guix-buffer-revert-confirm?, guix-buffer-map, guix-buffer-revert)
(guix-buffer-after-redisplay-hook, guix-buffer-redisplay)
(guix-buffer-redisplay-goto-button): Move to...
* emacs/guix-buffer.el: ... here. New file.
(guix-buffer-item): New variable.
(guix-buffer-with-item, guix-buffer-with-current-item)
(guix-buffer-define-current-item-accessor)
(guix-buffer-define-current-item-accessors)
(guix-buffer-define-current-args-accessor)
(guix-buffer-define-current-args-accessors): New macros.
(guix-buffer-get-entries, guix-buffer-mode-enable)
(guix-buffer-mode-initialize, guix-buffer-insert-entries)
(guix-buffer-show-entries-default, guix-buffer-show-entries)
(guix-buffer-message, guix-buffer-history-item, guix-buffer-set)
(guix-buffer-display-entries-current)
(guix-buffer-get-display-entries-current)
(guix-buffer-display-entries, guix-buffer-get-display-entries): New
procedures.
* emacs/guix-info.el: Adjust for the procedures renaming.
(guix-info-define-interface): Add ':show-entries-function' keyword.
* emacs/guix-list.el: Likewise.
* emacs/guix-ui.el (guix-ui-define-interface): Generate
'guix-ENTRY-TYPE-BUFFER-TYPE-get-entries' procedure based on
'guix-ui-get-entries'.
* emacs/guix.el (guix-get-show-packages, guix-get-show-generations):
Adjust for the procedures renaming.
2016-01-02 17:25:35 +03:00
Alex Kost
8103c22fea
emacs: info: Get rid of syntactic fontification.
...
* emacs/guix-info.el (guix-info-mode-initialize): New procedure. Set
'font-lock-defaults' to avoid syntactic fontification.
(guix-info-define-interface): Use it.
2016-01-02 17:25:35 +03:00
Alex Kost
8bff0c796e
emacs: Generalize buffer naming.
...
* emacs/guix-base.el (guix-buffer-name): New procedure.
(guix-buffer-define-interface): Make ':buffer-name' a required keyword.
(guix-update-after-operation, guix-buffer-name-function)
(guix-buffer-name-simple, guix-buffer-name-default, guix-buffer-name)
(guix-buffer-p, guix-buffers, guix-update-buffer)
(guix-update-buffers-maybe-after-operation): Adjust, move and rename to...
* emacs/guix-ui.el (guix-ui-update-after-operation)
(guix-ui-buffer-name-function, guix-ui-buffer-name-simple)
(guix-ui-buffer-name-default, guix-ui-buffer-name)
(guix-ui-buffer?, guix-ui-buffers, guix-ui-update-buffer)
(guix-ui-update-buffers-after-operation): ... this.
(guix-ui-define-interface): Generate
'guix-ENTRY-TYPE-BUFFER-TYPE-buffer-name' procedure and pass it as
':buffer-name' argument.
(guix-ui): New custom group.
* emacs/guix-info.el: Specify ':buffer-name' for the defined interfaces.
* emacs/guix-list.el: Likewise.
* doc/emacs.texi (Emacs Appearance): Adjust accordingly.
2016-01-02 17:25:35 +03:00
Alex Kost
7171d824d7
emacs: info: Buttonize package name heading.
...
* emacs/guix-info.el (guix-package-info-insert-heading): Insert
buttonized name specification.
2016-01-02 17:25:35 +03:00
Alex Kost
fc7a28897c
emacs: Improve messages for packages found by ID.
...
* emacs/guix-messages.el (guix-message-packages-by-id): New procedure.
(guix-messages): Use it.
2016-01-02 17:25:35 +03:00
Alex Kost
87fe9ecae5
emacs: Generalize buffer reverting.
...
This is a partial revert of commit d2b299a91f
.
* emacs/guix-base.el (guix-revert-buffer): Make it more general by
removing the code specific to a particular search (a search for
packages/outputs by ID). Rename to...
(guix-buffer-revert): ... this.
2016-01-02 17:25:35 +03:00
Alex Kost
819518d15a
emacs: Generalize buffer redisplaying.
...
* emacs/guix-base.el (guix-buffer-after-redisplay-hook): New variable.
(guix-redisplay-buffer): Use it. Remove all arguments and the code
for moving point to the next button. Rename to...
(guix-buffer-redisplay): ... this.
(guix-buffer-redisplay-goto-button): New procedure.
* emacs/guix-info.el (guix-package-info-show-source): Use it. Adjust
accordingly.
(guix-package-info-redisplay-after-download): Likewise.
2016-01-02 17:25:35 +03:00
Alex Kost
e40b3c33f4
emacs: Split 'guix-root-map' keymap.
...
* emacs/guix-base.el: (guix-root-map): Split into...
(guix-buffer-map): ... this and...
* emacs/guix-ui.el (guix-ui-map): ... this.
(guix-ui-define-interface): Generate
'guix-ENTRY-TYPE-BUFFER-TYPE-mode-map' keymaps inheriting them from
'guix-ui-map' and 'guix-BUFFER-TYPE-mode-map'.
* emacs/guix-info.el (guix-info-mode-map): Use 'guix-buffer-map'.
* emacs/guix-list.el (guix-list-mode-map): Likewise.
* doc/emacs.texi (Emacs Keymaps): Document new keymaps.
2016-01-02 17:25:35 +03:00
Alex Kost
c8e2666a8a
emacs: Add wrappers for 'history-size' and 'revert-confirm'.
...
* emacs/guix-base.el (guix-buffer-history-size): New procedure.
(guix-buffer-define-interface): Use it in the mode definition.
(guix-buffer-revert-confirm?): New procedure.
(guix-revert-buffer): Use it.
2016-01-02 17:25:35 +03:00
Alex Kost
574f6727b0
emacs: Split 'guix-param-titles' variable.
...
Generate 'guix-ENTRY-TYPE-BUFFER-TYPE-titles' variables for each
ENTRY-TYPE and BUFFER-TYPE instead.
* emacs/guix-base.el (guix-param-titles): Remove.
(guix-buffer-data): New variable.
(guix-buffer-value, guix-buffer-param-title): New procedures.
(guix-buffer-define-interface): Add ':titles' keyword.
* emacs/guix-info.el (guix-info-param-title): Adjust accordingly.
* emacs/guix-list.el (guix-list-param-title): Likewise.
(guix-list-column-titles): Remove.
* doc/emacs.texi (Emacs Appearance): Adjust accordingly.
2016-01-02 17:25:35 +03:00
Alex Kost
9193fb7c1d
emacs: info: Split 'guix-info-format' variable.
...
* emacs/guix-info.el: Generate 'guix-ENTRY-TYPE-info-format' variables
for 'package', 'installed-output', 'output' and 'generation' entry
types.
(guix-info-format): Remove.
(guix-info-data): New variable.
(guix-info-value): New procedure.
(guix-info-define-interface): Add ':format' keyword.
* emacs/guix-base.el (guix-buffer-define-interface): Add ':reduced?'
keyword.
* doc/emacs.texi (Emacs Appearance): Adjust accordingly.
2016-01-02 17:25:35 +03:00
Alex Kost
7735c503b5
emacs: Factorize macros for defining interfaces.
...
Make a root 'guix-buffer-define-interface' macro. It should generate a
common code for any type of interface. Inherit 'guix-info-define-interface'
and 'guix-list-define-interface' from it. They should provide a general
'info'/'list' interface for any data. Finally, make
'guix-ui-define-interface' for the common code for interfaces to Guix
packages and generations, and inherit 'guix-ui-info-define-interface' and
'guix-ui-list-define-interface' from it.
* emacs/guix-base.el (guix-define-buffer-type): Rename to...
(guix-buffer-define-interface): ... this. Rename internal
variables ('buf-' -> 'buffer-'). Move ':required' keyword to
'guix-ui-define-interface'.
* emacs/guix-info.el (guix-info-define-interface): New macro.
(guix-info-font-lock-keywords): New variable.
* emacs/guix-list.el (guix-list-define-entry-type): Rename to...
(guix-list-define-interface): ... this.
(guix-list-font-lock-keywords): New variable.
(guix-list-describe-ids): Move and rename to...
* emacs/guix-ui.el: New file.
(guix-ui-list-describe): ... this.
(guix-ui-define-interface, guix-ui-info-define-interface)
(guix-ui-list-define-interface): New macros.
(guix-ui-font-lock-keywords): New variable.
* emacs.am (ELFILES): Add "emacs/guix-ui.el"
2016-01-02 17:25:35 +03:00
Alex Kost
2c7ed388cf
emacs: info: Generalize inserting and formatting.
...
* emacs/guix-info.el: Use a more flexible format for inserting any data.
(guix-info-ignore-empty-vals): Rename to...
(guix-info-ignore-empty-values): ... this.
(guix-info-insert-methods): Merge this and...
(guix-info-displayed-params): ... this into...
(guix-info-format): ... this. Change format specifications.
(guix-info-title-aliases, guix-info-value-aliases): New variables.
(guix-info-displayed-params): Adjust for the new format.
(guix-info-insert-entry): Likewise.
(guix-package-info-fill-heading): Replace with...
(guix-info-fill): ... this.
(guix-info-insert-param): Replace with...
(guix-info-insert-entry-unit): ... this.
(guix-info-insert-title-default): Replace with...
(guix-info-insert-title-format): ... this.
(guix-info-insert-val-default): Replace with...
(guix-info-insert-value-format): ... this.
(guix-info-insert-val-simple): Replace with...
(guix-info-insert-value-indent): ... this.
(guix-package-info-insert-source): Adjust accordingly.
(guix-package-info-insert-heading): Insert only name and version.
(guix-package-info-define-insert-inputs): Do not generate
'guix-package-info-insert-ENTRY-TYPE-inputs' procedures.
(guix-info-fill-column, guix-info-insert-entry-default)
(guix-info-method-funcall, guix-info-insert-file-path)
(guix-info-insert-url, guix-info-insert-package-function)
(guix-info-insert-installed-function)
(guix-info-insert-output-function)
(guix-info-insert-generation-function)
(guix-package-info-heading-params)
(guix-package-info-insert-with-heading)
(guix-package-info-insert-description)
(guix-package-info-insert-location)
(guix-package-info-insert-full-names)
(guix-package-info-insert-source-url): Remove.
(guix-info-fill-column, guix-info-param-title)
(guix-info-title-function, guix-info-value-function)
(guix-info-title-method->function)
(guix-info-value-method->function)
(guix-info-insert-value-simple): New procedures.
* emacs/guix-utils.el (guix-buttonize, guix-button-type?): New
procedures.
(guix-split-string): Split multi-line strings and ignore empty lines.
* doc/emacs.texi (Emacs Appearance): Adjust accordingly.
2016-01-02 17:25:35 +03:00
Alex Kost
25d2fe8bef
emacs: list: Factorize "edit package" commands.
...
* emacs/guix-list.el: Use separate edit commands instead of a single one.
(guix-list-for-each-line, guix-list-edit-package): Remove.
(guix-package-list-edit, guix-output-list-edit): New procedures.
(guix-package-list-mode-map, guix-output-list-mode-map): Use them.
2016-01-02 17:25:35 +03:00
Alex Kost
cf910ceffc
emacs: list: Split 'guix-list-format' variable.
...
* emacs/guix-list.el: Generate 'guix-ENTRY-TYPE-list-format' variables
for 'package', 'output' and 'generation' entry types.
(guix-list-format): Remove.
(guix-list-define-entry-type): Add ':format' keyword.
* doc/emacs.texi (Emacs Appearance): Adjust accordingly.
2016-01-02 17:25:35 +03:00
Alex Kost
78fdbdc033
emacs: list: Add 'guix-list-mode-initialize'.
...
* emacs/guix-list.el (guix-list-mode-initialize): New procedure.
(guix-list-define-entry-type): Use it.
2016-01-02 17:25:35 +03:00
Alex Kost
649df66705
emacs: list: Generalize 'sort-key' code.
...
* emacs/guix-list.el (guix-list-sort-key): New procedure.
(guix-list-tabulated-sort-key): Use it.
(guix-list-define-entry-type): Generate
'guix-ENTRY-TYPE-list-sort-key' variables.
2016-01-02 17:25:35 +03:00
Alex Kost
7b31510f26
emacs: list: Generalize 'describe' code.
...
* emacs/guix-list.el (guix-list-describe-warning-count): Remove variable.
(guix-list-define-entry-type): Generate
'guix-ENTRY-TYPE-list-describe-warning-count' and
'guix-ENTRY-TYPE-list-describe-function' variables.
(guix-list-describe-maybe): Remove. Move the code...
(guix-list-describe): ... here.
(guix-list-describe-warning-count, guix-list-describe-entries)
(guix-list-describe-ids): New procedures.
(guix-output-list-describe): Adjust accordingly.
(guix-list-mode-map): Bind "i" key to 'guix-list-describe'.
(guix-generation-list-mode-map): Remove "i" key.
2016-01-02 17:25:35 +03:00
Alex Kost
f768e4b387
emacs: list: Generalize 'marks' code.
...
* emacs/guix-list.el (guix-list-mark-alist): Rename to...
(guix-list-marks): ... this
(guix-list-data, guix-list-default-marks): New variables.
(guix-list-value, guix-list-additional-marks, guix-list-marks): New
procedures.
(guix-list-define-entry-type): Adjust accordingly.
2016-01-02 17:25:35 +03:00
Alex Kost
d9c9f9a515
emacs: Add 'guix-alist-put'.
...
* emacs/guix-utils.el (guix-alist-put, guix-alist-put-1)
(guix-alist-put!): New procedures.
2016-01-02 17:25:35 +03:00
Alex Kost
4ba476f949
emacs: Add 'guix-keyword-args-let'.
...
* emacs/guix-utils.el (guix-keyword-args-let): New macro.
(guix-utils-font-lock-keywords): Add it.
* emacs/guix-base.el (guix-define-buffer-type): Use it.
* emacs/guix-list.el (guix-list-define-entry-type): Use it.
* emacs/guix-read.el (guix-define-readers): Use it.
2016-01-02 17:25:35 +03:00
Alex Kost
376af769f9
emacs: list: Configure format in one place.
...
* emacs/guix-list.el: (guix-list-column-format): Merge this and...
(guix-list-column-value-methods): ... this into...
(guix-list-format): ... this. New variable.
(guix-list-tabulated-vector): Adjust accordingly.
(guix-list-tabulated-format): Likewise.
(guix-list-tabulated-entry): Likewise.
* doc/emacs.texi (Emacs Appearance): Likewise.
2016-01-02 17:25:35 +03:00
Alex Kost
0b9cd3206a
emacs: Rename internal procedures.
...
* emacs/guix-list.el (guix-list-get-param-title): Rename to...
(guix-list-param-title): ... this.
(guix-list-get-column-format): Rename to...
(guix-list-format): ... this.
(guix-list-get-displayed-params): Rename to...
(guix-list-displayed-params): ... this.
(guix-list-get-sort-key): Rename to...
(guix-list-tabulated-sort-key): ... this.
(guix-list-make-tabulated-vector): Rename to...
(guix-list-tabulated-vector): ... this.
(guix-list-get-list-format): Rename to...
(guix-list-tabulated-format): ... this.
(guix-list-get-tabulated-entries): Rename to...
(guix-list-tabulated-entries): ... this.
(guix-list-get-tabulated-entry): Rename to...
(guix-list-tabulated-entry): ... this.
* emacs/guix-info.el (guix-info-get-displayed-params): Rename to...
(guix-info-displayed-params): ... this.
* emacs/guix-base.el (guix-get-params-for-receiving): Adjust
accordingly.
(guix-get-name-spec): Rename to...
(guix-package-name-specification): ... this.
(guix-get-full-name): Merge this and...
(guix-entry-to-specification): ... this into...
(guix-package-entry->name-specification): ... this.
(guix-get-installed-outputs): Rename to...
(guix-package-installed-outputs): ... this.
(guix-get-package-id-and-output-by-output-id): Rename to...
(guix-package-id-and-output-by-output-id): ... this.
2016-01-02 17:25:35 +03:00
Alex Kost
e86a43d471
emacs: list: Generate numerical sort predicates.
...
* emacs/guix-list.el: Generate predicates to sort tabulated list
columns numerically.
(guix-list-define-numerical-sorter)
(guix-list-define-numerical-sorters): New macros
(guix-list-column-format): Use 'guix-list-sort-numerically-0' for
generation "Number" column.
2016-01-02 17:25:35 +03:00
Alex Kost
ceea647c72
emacs: Simplify defining parameter titles.
...
* emacs/guix-utils.el (guix-symbol-title): New procedure.
* emacs/guix-base.el (guix-get-param-title): Use it.
(guix-param-titles): Remove most titles as they are automatically
defined by 'guix-symbol-title'.
2016-01-02 17:25:35 +03:00
Alex Kost
73ce3c19c4
emacs: Add API for 'guix-entry'.
...
* emacs/guix-info.el: Use new entry procedures.
* emacs/guix-list.el: Likewise.
* emacs/guix-base.el: Likewise.
(guix-get-entry-by-id): Move and rename to ...
* emacs/guix-entry.el (guix-entry-by-id): ...this. New file.
(guix-entry-value, guix-entry-id, guix-entries-by-ids)
(guix-replace-entry): New procedures.
* emacs.am (ELFILES): Add new file.
2016-01-02 17:25:35 +03:00
Alex Kost
36c00c61fa
emacs: Add 'guix-with-indent'.
...
* emacs/guix-utils.el (guix-with-indent): New macro.
(guix-memoized-font-lock-keywords): Rename to...
(guix-utils-font-lock-keywords): ... this. Add it.
* emacs/guix-info.el (guix-info-insert-entry-default): Use it.
2016-01-02 17:25:35 +03:00
Alex Kost
778437ed9f
emacs: Use "cl-list*" instead of "apply #'list".
...
* emacs/guix-command.el (guix-run-view-build-log): Use cl-list*.
(guix-run-view-size-map): Likewise.
* emacs/guix-external.el (guix-dot-arguments): Likewise.
2016-01-02 17:25:35 +03:00
Erik Edrosa
b989390889
gnu: Add python-markdown.
...
* gnu/packages/python.scm (python-markdown, python2-markdown): New
variables.
Signed-off-by: Leo Famulari <leo@famulari.name>
2016-01-02 00:07:29 -05:00
宋文武
05d48c5243
gnu: love: Update to 0.10.0.
...
* gnu/packages/game-development.scm (love): Update to 0.10.0.
2016-01-02 10:31:53 +08:00
Ludovic Courtès
319007c507
gnu: guile-ssh: Update to 0.9.0.
...
* gnu/packages/ssh.scm (guile-ssh): Update to 0.9.0.
2016-01-01 22:59:20 +01:00
Ludovic Courtès
f453f637d5
system: Allow the root file system to be named by UUID.
...
* gnu/build/file-systems.scm (canonicalize-device-spec)[canonical-title]:
Use 'string->uuid' to check whether SPEC is a UUID.
When SPEC is a string and CANONICAL-TITLE is 'uuid, call 'string->uuid'.
* gnu/system.scm (operating-system-grub.cfg): Add 'root-device'
variable and use it for the "--root=" argument.
2016-01-01 22:50:26 +01:00
Ludovic Courtès
f8865db6a0
file-systems: Move 'string->uuid' to the build side.
...
* gnu/system/file-systems.scm (%uuid-rx, string->uuid): Move to...
* gnu/build/file-systems.scm (%uuid-rx, string->uuid): ... here. New
variables.
2016-01-01 22:41:35 +01:00
Ludovic Courtès
29824d80ec
system: Allow the root file system to have a UUID.
...
This is a followup to ab64483
.
* gnu/system.scm (mapped-device-user): Check whether the title of FS is
'device before calling 'string=?'.
* gnu/system/vm.scm (virtualized-operating-system)[user-file-systems]:
Likewise.
2016-01-01 22:34:13 +01:00
Ludovic Courtès
daa8922abc
doc: Mention how to verify signatures.
...
* doc/guix.texi (Binary Installation): Be more precise about signature
verification. Suggested by Carl Hansen <carlhansen1234@gmail.com>.
2016-01-01 19:01:05 +01:00
Fabian Harfert
45147b0caa
gnu: Add xaos.
...
* gnu/packages/maths.scm (xaos): New variable.
Signed-off-by: Alex Kost <alezost@gmail.com>
2015-12-31 11:29:43 +03:00
Leo Famulari
658212ebf7
gnu: Move cursynth to (gnu packages music).
...
* gnu/packages/cursynth.scm: Remove.
* gnu/packages/music.scm (cursynth): New variable, from cursynth.scm.
* gnu-system.am (GNU_SYSTEM_MODULES): Remove cursynth.scm.
2015-12-30 21:26:05 -05:00
Leo Famulari
2ef8bbc3ae
gnu: libcue: Update source URL.
...
* gnu/packages/cdrom.scm (libcue)[source]: Update URL.
2015-12-30 19:59:58 -05:00
Efraim Flashner
34da7af4c1
gnu: python-mox3: Update to 0.13.0.
...
* gnu/packages/openstack.scm (python-mox3): Update to 0.13.0.
2015-12-30 23:16:09 +02:00
Efraim Flashner
13fcc6df37
gnu: python-fixtures: Update to 1.4.0.
...
* gnu/packages/python.scm (python-fixtures): Update to 1.4.0.
2015-12-30 23:16:09 +02:00
Efraim Flashner
af1ab77312
gnu: python-pyld: Update to 0.6.8.
...
* gnu/packages/python.scm (python-pyld): Update to 0.6.8.
2015-12-30 23:16:09 +02:00
Efraim Flashner
1780424035
gnu: python-virtualenv: Update to 13.1.2.
...
* gnu/packages/python.scm (python-virtualenv): Update to 13.1.2.
[arguments]: Custom test command.
[inputs]: Remove python-nose, add python-pytest.
2015-12-30 23:16:09 +02:00
Efraim Flashner
ec89a25cad
gnu: python-oslosphinx: Update to 4.2.0.
...
* gnu/packages/openstack.scm (python-oslosphinx): Update to 4.2.0.
2015-12-30 23:16:09 +02:00
Efraim Flashner
f66bb273de
gnu: python-oslo.serialization: Update to 2.2.0.
...
* gnu/packages/openstack.scm (python-oslo.serialization): Update to 2.2.0.
2015-12-30 23:16:09 +02:00
Efraim Flashner
4768988887
gnu: python-os-testr: Update to 0.5.0.
...
* gnu/packages/openstack.scm (python-os-testr): Update to 0.5.0.
2015-12-30 23:16:09 +02:00
Efraim Flashner
45f4c28d80
gnu: python-stevedore: Update to 1.10.0.
...
* gnu/packages/openstack.scm (python-stevedore): Update to 1.10.0.
2015-12-30 23:16:09 +02:00
Efraim Flashner
622d21bba9
gnu: python-tempest-lib: Update to 0.12.0.
...
* gnu/packages/openstack.scm (python-tempest-lib): Update to 0.12.0.
2015-12-30 23:16:09 +02:00
Efraim Flashner
690e8c6637
gnu: python-passlib: Update to 1.6.5.
...
* gnu/packages/python.scm (python-passlib): Update to 1.6.5.
2015-12-30 23:16:09 +02:00
Efraim Flashner
03fd001cef
gnu: python-libarchive-c: Update to 2.2.
...
* gnu/packages/python.scm (python-libarchive-c): Update to 2.2.
2015-12-30 23:16:09 +02:00
Efraim Flashner
99b00dc796
gnu: python-tlsh: Update to 3.4.4.
...
* gnu/packages/python.scm (python-tlsh): Update to 3.4.4.
2015-12-30 23:16:09 +02:00