Commit graph

160 commits

Author SHA1 Message Date
Vincent Belaïche
b5dc75aed7 * ses.el (macroexp): add require for this package, so that function
`ses--cell gets macroexp-quote.
(ses--cell): makes formula a macroexp-quote of value when formula
is nil. The rationale of this changr is to allow in the future
shorter SES files, e.g. we could have only `(ses-cell A1 1.0)'
instead of `(ses-cell A1 1.0 1.0 nil REFLIST)'. In such a case
reference list REFLIST would be re-computed after load --- thus
trading off load time against file size.

* emacs-lisp/package.el (package--alist-to-plist-args): use
macroexp-quote instead of a lambda expression which has the same
content as macroexp-quote.
(macroexp): add require for this package, so that function
`package--alist-to-plist-args' gets macroexp-quote.

* emacs-lisp/macroexp.el (macroexp-quote): new defun.
2014-10-25 01:02:25 +02:00
Stefan Monnier
e77628bd58 * lisp/epg.el: Use cl-defstruct.
(epg-make-data-from-file, epg-make-data-from-string, epg-data-file)
(epg-data-string): Define via cl-defstruct.
(epg--gv-nreverse): New macro.
(epg-context--make): New constructor (provided vi cl-defstruct).
(epg-make-context): Rewrite using it.
(epg-context-protocol, epg-context-program)
(epg-context-home-directory, epg-context-armor, epg-context-textmode)
(epg-context-include-certs, epg-context-cipher-algorithm)
(epg-context-digest-algorithm, epg-context-compress-algorithm)
(epg-context-passphrase-callback, epg-context-progress-callback)
(epg-context-signers, epg-context-sig-notations, epg-context-process)
(epg-context-output-file, epg-context-result, epg-context-operation)
(epg-context-pinentry-mode): Define using cl-defstruct.
(epg-context-set-protocol, epg-context-set-program)
(epg-context-set-include-certs, epg-context-set-cipher-algorithm)
(epg-context-set-digest-algorithm)
(epg-context-set-sig-notations, epg-context-set-process)
(epg-context-set-output-file, epg-context-set-result)
(epg-context-set-operation, epg-context-set-pinentry-mode)
(epg-context-set-compress-algorithm): Remove.  Use setf instead.
(epg-context-set-armor, epg-context-set-textmode)
(epg-context-set-signers): Redefine using setf
and declare as obsolete.
(epg-context-set-passphrase-callback)
(epg-context-set-progress-callback): Use setf.
(epg-signature-notations): Rename from epg-sig-notations.
(epg-make-signature, epg-signature-status, epg-signature-key-id)
(epg-signature-validity, epg-signature-fingerprint)
(epg-signature-creation-time, epg-signature-expiration-time)
(epg-signature-pubkey-algorithm, epg-signature-digest-algorithm)
(epg-signature-class, epg-signature-version): Define vi cl-defstruct.
(epg-signature-set-status, epg-signature-set-key-id)
(epg-signature-set-validity, epg-signature-set-fingerprint)
(epg-signature-set-creation-time, epg-signature-set-expiration-time)
(epg-signature-set-pubkey-algorithm)
(epg-signature-set-digest-algorithm, epg-signature-set-class)
(epg-signature-set-version, epg-signature-set-notations): Remove.
Use setf instead.
(epg-make-new-signature, epg-new-signature-type)
(epg-new-signature-pubkey-algorithm)
(epg-new-signature-digest-algorithm, epg-new-signature-class)
(epg-new-signature-creation-time, epg-new-signature-fingerprint):
Define using cl-defstruct.
(epg-make-key, epg-key-owner-trust, epg-key-sub-key-list)
(epg-key-user-id-list): Define using cl-defstruct.
(epg-key-set-sub-key-list, epg-key-set-user-id-list): Remove.
Use setf instead.
(epg-make-sub-key, epg-sub-key-validity, epg-sub-key-capability)
(epg-sub-key-secret-p, epg-sub-key-algorithm, epg-sub-key-length)
(epg-sub-key-id, epg-sub-key-creation-time)
(epg-sub-key-expiration-time, epg-sub-key-fingerprint): Define using
cl-defstruct.
(epg-sub-key-set-fingerprint): Remove.  Use setf instead.
(epg-make-user-id, epg-user-id-validity, epg-user-id-string)
(epg-user-id-signature-list): Define using cl-defstruct.
(epg-user-id-set-signature-list): Remove.  Use setf instead.
(epg-make-key-signature, epg-key-signature-validity)
(epg-key-signature-pubkey-algorithm, epg-key-signature-key-id)
(epg-key-signature-creation-time, epg-key-signature-expiration-time)
(epg-key-signature-user-id, epg-key-signature-class)
(epg-key-signature-exportable-p): Define using cl-defstruct.
(epg-make-sig-notation, epg-sig-notation-name)
(epg-sig-notation-value, epg-sig-notation-human-readable)
(epg-sig-notation-critical): Define using cl-defstruct.
(epg-sig-notation-set-value): Remove.  Use setf instead.
(epg-make-import-status, epg-import-status-fingerprint)
(epg-import-status-reason, epg-import-status-new)
(epg-import-status-user-id, epg-import-status-signature)
(epg-import-status-sub-key, epg-import-status-secret): Define using
cl-defstruct.
(epg-make-import-result, epg-import-result-considered)
(epg-import-result-no-user-id, epg-import-result-imported)
(epg-import-result-imported-rsa, epg-import-result-unchanged)
(epg-import-result-new-user-ids, epg-import-result-new-sub-keys)
(epg-import-result-new-signatures, epg-import-result-new-revocations)
(epg-import-result-secret-read, epg-import-result-secret-imported)
(epg-import-result-secret-unchanged, epg-import-result-not-imported)
(epg-import-result-imports): Define using cl-defstruct.

* lisp/emacs-lisp/package.el: Require EPG during macroexpansion.
(package--check-signature, package-import-keyring): Use setf instead of
epg-context-set-home-directory.
2014-10-23 17:38:56 -04:00
Stefan Monnier
d7f413b893 Merge from emacs-24 2014-10-02 11:13:05 -04:00
Glenn Morris
c8ea4b9f3d * package.el (package-import-keyring): Create gnupg directory private.
See bug#17625#155.
2014-10-01 19:39:50 -04:00
Stefan Monnier
07bec0fc67 Merge from emacs-24 2014-09-30 19:19:31 -04:00
Stefan Monnier
a5426ef3c2 * lisp/emacs-lisp/package.el (package-check-signature): Default to nil if
GPG is not available.
(package-refresh-contents): Don't mess with the keyring if we won't
check the signatures anyway.
2014-09-27 12:25:53 -04:00
Glenn Morris
62fca47221 Merge from emacs-24; up to 2014-07-04T02:28:54Z!dmantipov@yandex.ru 2014-09-02 21:21:40 -07:00
Stefan Monnier
559b827d8a * lisp/emacs-lisp/package.el (package-generate-description-file):
Properly quote the arguments.  Change second arg.
(package--alist-to-plist-args): Rename from package--alist-to-plist and
quote the elements.
(package--make-autoloads-and-stuff): Fix the test for pre-existence of
the *-pkg.el file.  Adjust to new calling convention of
package-generate-description-file.

Fixes: debbugs:18332
2014-09-02 15:51:25 -04:00
Daiki Ueno
2493e35c36 * lisp/emacs-lisp/package.el (package--check-signature): (backport)
If package-check-signature is allow-unsigned, don't signal error when
we can't verify signature because of missing public key.

Fixes: debbugs:17625
2014-06-26 09:47:37 -04:00
Daiki Ueno
51a3c85711 package.el: Don't signal "no public key" error if allow-unsigned
* emacs-lisp/package.el (package--check-signature): If
package-check-signature is allow-unsigned, don't signal error when
we can't verify signature because of missing public key
(bug#17625).
2014-06-26 16:10:22 +09:00
Glenn Morris
9ac6d28ab8 Merge from emacs-24; up to 2014-06-11T19:33:14Z!rgm@gnu.org 2014-06-25 23:55:15 -07:00
Stefan Monnier
0a27804c80 * lisp/emacs-lisp/package.el (package-list-unsigned): New var.
(package-desc-status): Obey it.

Fixes: debbugs:17625
2014-06-25 13:20:08 -04:00
Glenn Morris
36cf8493af Merge from emacs-24; up to 2014-06-01T23:37:59Z!eggert@cs.ucla.edu 2014-06-07 17:35:27 -07:00
Glenn Morris
879f52734c * lisp/emacs-lisp/package.el: Comment update 2014-06-05 00:08:42 -07:00
Glenn Morris
e1b3f35f93 Some documentation for signing of packages
* doc/emacs/package.texi (Package Menu, Package Installation):
Mention signed packages.

* doc/lispref/package.texi (Package Archives): Mention signing packages.

* lisp/emacs-lisp/package.el (package-check-signature)
(package-unsigned-archives): Doc fixes.

* etc/NEWS: Related edits.
2014-06-04 23:15:44 -07:00
Glenn Morris
910dc8d312 * lisp/emacs-lisp/package.el (package-pinned-packages): Doc fix.
* etc/NEWS: Related edit.
2014-06-02 21:41:20 -07:00
Glenn Morris
953e106ac8 Merge from emacs-24; up to 2014-05-29T17:16:00Z!dmantipov@yandex.ru 2014-06-01 17:18:22 -07:00
Glenn Morris
ff66db7950 Fix typo in previous 2014-05-29 22:15:29 -07:00
Glenn Morris
ab84733c35 package.el: Fix some version tags
* lisp/emacs-lisp/package.el (package-check-signature)
(package-unsigned-archives): Fix :version.
2014-05-29 22:08:10 -07:00
Thien-Thi Nguyen
c63982dd7d * lisp/emacs-lisp/package.el (package-generate-autoloads):
Inhibit backup files.
2014-05-28 11:58:47 +02:00
Glenn Morris
015936fba1 Merge from emacs-24; up to 2014-05-26T10:21:18Z!rgm@gnu.org 2014-05-25 19:28:09 -07:00
Thien-Thi Nguyen
770a6a917f Arrange to never byte-compile the generated -pkg.el file.
* lisp/emacs-lisp/package.el (package-generate-description-file):
Output first-line comment to set buffer-local var `no-byte-compile'.
Suggested by Dmitry Gutov:
<http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00401.html>.
2014-05-25 18:53:28 +02:00
Thien-Thi Nguyen
e50a0b6e9d Fix bug: Properly quote args to generated -pkg.el `define-package'.
* lisp/emacs-lisp/package.el (package-generate-description-file):
Inline `package--alist-to-plist'; rewrite to selectively
quote alist values that are not self-quoting.
(package--alist-to-plist): Delete func.
2014-05-25 18:32:08 +02:00
Dmitry Gutov
b0df8b9535 Replace uses of save-buffer' with write-region'
* lisp/emacs-lisp/package.el (package--download-one-archive): Use
`write-region' instead of `save-buffer' to avoid running various
hooks. 
(describe-package-1): Same.  Insert newline at the end of the
buffer if appropriate.

Fixes: debbugs:17155
2014-05-21 05:14:38 +03:00
Stefan Monnier
5e87fcb1d7 * lisp/emacs-lisp/package.el (package-compute-transaction): Topological sort.
Add optional `seen' argument to detect and break infinite loops.

Fixes: debbugs:16994
2014-05-06 14:11:16 -04:00
Stefan Monnier
929c0500cc * lisp/emacs-lisp/package.el (package-built-in-p): Treat a min-version of
0 like nil.
2014-03-28 18:47:46 -04:00
Juanma Barranquero
196716cf35 * lisp/emacs-lisp/package.el: Fix bug#16733 (again).
(url-http-parse-response, url-http-end-of-headers, url-recreate-url)
  (url-http-target-url): Remove unused declarations.
  (package-handle-response): Remove.
  (package--with-work-buffer): Use url-insert-file-contents and simplify.
  (package--download-one-archive): Use current-buffer instead of
  dynamic binding of `buffer'.
  (describe-package-1): Do not decode readme-string.

* lisp/url/url-handlers.el (url-http-parse-response): Add autoload.
  (url-insert-file-contents): Signal file-error in case of HTTP error.
2014-03-26 16:21:17 +01:00
Dmitry Gutov
3e2377ce2f Fix bug#16762
* lisp/emacs-lisp/package.el (package--add-to-archive-contents):
Include already installed and built-in packages in
`package-archive-contents'.
(package-install): Don't include already installed packages in the
options on interactive invocation.
2014-03-25 00:38:06 +02:00
Dmitry Gutov
2614c1af39 * lisp/emacs-lisp/package.el (package-show-package-list): If the buffer
is already displayed in another window, switch to that window.
2014-03-23 10:35:56 +02:00
Dmitry Gutov
1197f2e665 Fix bug#16873
* lisp/emacs-lisp/package.el (package-desc): Use the contents of the
quoted form, not its cdr.
2014-03-22 10:43:30 +02:00
Dmitry Gutov
dcf7866712 Fix bug#16826
* lisp/emacs-lisp/package.el (package-compute-transaction):
Use `version-list-<=' to compare the requirement version against
the package version already to be installed.  Update the error
message.
2014-03-21 08:06:52 +02:00
Juanma Barranquero
f88bdc45e0 lisp/emacs-lisp/package.el (describe-package-1): Decode commentary (bug#16733). 2014-03-19 17:14:26 +01:00
Glenn Morris
881033454a * package.el (package-menu-mode-map): Replace use of obsolete function alias.
Tweak menu item text.
2014-03-14 16:55:40 -04:00
Tom Willemse
0d71dfb381 * lisp/emacs-lisp/package.el (package--prepare-dependencies):
Accept requirements without explicit version.

Fixes: debbugs:14941
2014-03-13 09:34:01 -04:00
Glenn Morris
a215930cfe Some package doc updates
* doc/emacs/help.texi (Package Keywords): Mention describe-package buttons.

* doc/emacs/package.texi (Package Menu): Mention package-menu-filter.

* lisp/emacs-lisp/package.el (package-menu-mode-map): Tweak menu.
(package-menu-filter): Rename from package-menu-filter-interactive.
Doc fix.

* etc/NEWS: Related edits.  Copyedit.
2014-02-11 20:20:34 -05:00
Stefan Monnier
29afcbab15 * lisp/emacs-lisp/package.el: Write files silently.
(package-autoload-ensure-default-file)
(package-generate-description-file, package--write-file-no-coding)
(package-install-from-archive, package--download-one-archive):
Tell `write-region' to stay quiet.
(package-menu-mode, package-menu--print-info): Omit the Archive column
if there's only one archive.
(package-all-keywords, package--has-keyword-p): Remove dead code.
2014-01-22 14:22:45 -05:00
Glenn Morris
cc0f2ece47 Fix some function declarations
* lisp/calc/calc-embed.el (thing-at-point-looking-at):
* lisp/emacs-lisp/map-ynp.el (x-popup-dialog):
* lisp/obsolete/lmenu.el (x-popup-dialog):
* lisp/emacs-lisp/package.el (url-recreate-url):
* lisp/mail/mailclient.el (clipboard-kill-ring-save):
* lisp/subr.el (x-popup-dialog): Update declaration.

* lisp/mail/rmail.el (rmail-mime-message-p):
* lisp/window.el (tool-bar-lines-needed): Remove unnecessary declaration.
2014-01-21 20:50:40 -05:00
Dmitry Gutov
39903fd1fc Finally make package-desc--keywords work
* lisp/emacs-lisp/package.el (package-desc--keywords): Use `nth'
  instead of `cdr'.
2014-01-16 18:44:17 +02:00
Dmitry Gutov
2dbf4ffdda * lisp/emacs-lisp/package.el (package-desc--keywords): Use `cdr' with
`assoc'.  Make private.  Update all callers.
2014-01-16 14:23:14 +02:00
Dmitry Gutov
5c92e00da4 * lisp/emacs-lisp/package.el (package-desc-keywords): New function.
(describe-package-1, package-all-keywords)
(package--has-keyword-p): Use it.

Fixes: debbugs:16222
2014-01-15 06:58:06 +02:00
Bastien Guerry
2167f25d0f Fix 2014-01-08T11:19:30Z!bzg@gnu.org
* emacs-lisp/package.el (package-installed-p): Fix my previous
commit (2014-01-08T11:19:30Z!bzg@gnu.org).
2014-01-08 18:39:31 +01:00
Stefan Monnier
ec6c7de239 * lisp/emacs-lisp/package.el (package-delete): Only remove pkg-desc from
package-alist.
2014-01-08 09:19:27 -05:00
Bastien Guerry
d6262c7c39 package.el: various fixes.
* emacs-lisp/package.el (package-installed-p): First check if the
package name is in package-alist.
(package-delete): Correctly delete the package from package-alist.
2014-01-08 12:19:30 +01:00
Daiki Ueno
0a3eec3270 emacs-lisp/package.el (package--check-signature): Fix download error handling
* emacs-lisp/package.el (url-recreate-url): Declare.
(url-http-target-url): Declare.
(package-handle-response): Include requested URL in the error
message.
(package--check-signature): Don't re-signal errors from
package--with-work-buffer.  Suggested by Stefan Monnier.
2014-01-08 15:25:21 +09:00
Bastien Guerry
2b6b4f204c emacs-lisp/package.el (package-delete): Delete package completely
* emacs-lisp/package.el (package-delete): Also delete the package
name from `package-alist', not its description only.
2014-01-07 11:58:03 +01:00
Paul Eggert
ba3189039a Update copyright year to 2014 by running admin/update-copyright. 2014-01-01 07:43:34 +00:00
Ted Zlatanov
5ae811ddef Support filtering by keywords in package listings.
* emacs-lisp/package.el (package-built-in-p): Support both
built-in and the package.el converted package descriptions.
(package-show-package-list): Allow keywords.
(package-keyword-button-action): Use it instead of
`finder-list-matches'.
(package-menu-filter-interactive): Interactive filtering (by
keyword) function.
(package-menu--generate): Support keywords and change keymappings
and headers when they are given.
(package--has-keyword-p): Helper function.
(package-menu--refresh): Use it.
(package--mapc): Helper function.
(package-all-keywords): Use it.
(package-menu-mode-map): Set up menu items and keybindings to
provide a filtering UI.
2013-12-14 14:55:19 -05:00
Tom Willemse
f77d7d1773 * lisp/emacs-lisp/package.el (package--prepare-dependencies): New function.
(package-buffer-info): Use it.

Fixes: debbugs:15108
2013-12-14 11:02:39 -05:00
Glenn Morris
7b3f56792c * lisp/emacs-lisp/package.el (finder-list-matches): Autoload
rather than falsely declaring.
2013-12-11 16:15:12 -05:00
Ted Zlatanov
5a56578283 Remove finder.el require dependency in package.el
* emacs-lisp/package.el (package-keyword-button-action): Remove
finder.el require dependency.
2013-12-09 19:54:38 -05:00