[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#7756: closed (24.0.50; enhancements to package.el)

From: GNU bug Tracking System
Subject: bug#7756: closed (24.0.50; enhancements to package.el)
Date: Thu, 16 Jan 2020 23:50:02 +0000

Your message dated Fri, 17 Jan 2020 00:49:36 +0100
with message-id <address@hidden>
and subject line Re: bug#7756: 24.0.50; enhancements to package.el
has caused the debbugs.gnu.org bug report #7756,
regarding 24.0.50; enhancements to package.el
to be marked as done.

(If you believe you have received this mail in error, please contact

7756: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7756
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 24.0.50; enhancements to package.el Date: Wed, 29 Dec 2010 10:40:56 -0800
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")
-    (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)
+    ;; 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-generate-autoloads (symbol-name name) pkg-dir)

--- End Message ---
--- Begin Message --- Subject: Re: bug#7756: 24.0.50; enhancements to package.el Date: Fri, 17 Jan 2020 00:49:36 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Stefan Kangas <address@hidden> writes:

> Eli Zaretskii <address@hidden> writes:
>> > I'm a bit uneasy about doing a recursive deletion of the directory, even
>> > after prompting (the developer may have put, well, anything in that
>> > directory), so I wonder whether the right fix here is to just remove the
>> > FIXME.
>> FWIW, I'm fine with deleting the FIXME.  But I'm not a package
>> developer, so perhaps my opinion isn't worth much.
> Sounds good to me.  I'll go ahead and do that in a couple of days if I
> see no objections.

Now done on the master branch in commit f18c78e611.  I see nothing
more to do here, so I'm also closing this bug.

Best regards,
Stefan Kangas

--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]