From: emacs18@gmail.com
To: 7756@debbugs.gnu.org
Subject: bug#7756: 24.0.50; enhancements to package.el
Date: Wed, 29 Dec 2010 10:40:56 -0800 [thread overview]
Message-ID: <qtmvd2cl8w7.fsf@gmail.com> (raw)
I would like to suggest the following two sets of changes.
The reason for the changes are explained in the diffs.
=== modified file 'lisp/emacs-lisp/package.el'
--- lisp/emacs-lisp/package.el 2010-11-10 21:35:06 +0000
+++ lisp/emacs-lisp/package.el 2010-12-29 18:38:08 +0000
@@ -338,9 +338,14 @@
(pkg-file (expand-file-name
(concat (package-strip-version package) "-pkg")
pkg-dir)))
- (when (and (file-directory-p pkg-dir)
- (file-exists-p (concat pkg-file ".el")))
- (load pkg-file nil t))))
+ ;; When one is creating a package and testing it out, it is easy
+ ;; to forget to add the -pkg.el file. When that happens, it would
+ ;; be useful to provide feedback to the user rather than silently
+ ;; failing. That is what (error ...) below is for.
+ (when (file-directory-p pkg-dir)
+ (if (file-exists-p (concat pkg-file ".el"))
+ (load pkg-file nil t)
+ (error "'%s' file is missing!")))))
(defun package-load-all-descriptors ()
"Load descriptors for installed Emacs Lisp packages.
@@ -569,8 +574,16 @@
(defun package-unpack (name version)
(let ((pkg-dir (expand-file-name (concat (symbol-name name) "-" version)
package-user-dir)))
+ ;; Delete the package directory if it exists already. This may
+ ;; not be useful to the end users. However this is extremely
+ ;; important for package developers as they experiment with which
+ ;; files to include in a package. If a file is removed from one
+ ;; iteration to the next, then the presence of the unwanted elisp
+ ;; file could cause problems by polluting the generated autoload
+ ;; file.
+ (if (file-directory-p pkg-dir)
+ (delete-directory pkg-dir 'recursive))
(make-directory package-user-dir t)
- ;; FIXME: should we delete PKG-DIR if it exists?
(let* ((default-directory (file-name-as-directory package-user-dir)))
(package-untar-buffer)
(package-generate-autoloads (symbol-name name) pkg-dir)
next reply other threads:[~2010-12-29 18:40 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-29 18:40 emacs18 [this message]
2010-12-30 15:32 ` bug#7756: 24.0.50; enhancements to package.el Stefan Monnier
2010-12-30 17:27 ` Richard Kim
2010-12-31 16:46 ` Stefan Monnier
2019-09-14 23:56 ` Stefan Kangas
2019-11-23 13:35 ` Lars Ingebrigtsen
2019-11-23 13:45 ` Eli Zaretskii
2019-11-26 15:01 ` Stefan Kangas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=qtmvd2cl8w7.fsf@gmail.com \
--to=emacs18@gmail.com \
--cc=7756@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).