Subject: bug#15235: closed (Re: bug#15235: 24.3.50; package.el updates load-path too late)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 02 Jun 2016 17:10:01 +0000

Your bug report

#15235: 24.3.50; package.el updates load-path too late

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
15235: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15235
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#15235: 24.3.50; package.el updates load-path too late
From: Noam Postavsky <[email-masked]>
To: [email-masked]
Date: Thu, 2 Jun 2016 13:09:19 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Closing since everyone using 24.3.50 must have updated their
*-autoloads.el files by now.

Subject: 24.3.50; package.el updates load-path too late
From: Richard Kim <[email-masked]>
To: [email-masked]
Date: Sun, 01 Sep 2013 09:45:53 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

A recent change made on bzr trunk is causing one of my ELPA packages to
fail to load due to `load-path' not being updated promptly.

The change in question seems to be Stefan's revision 114047 checked in
on Aug 28, 2013 with check in comment

    Don't add unnecessarily to load-path.

The package in question is icicles which I created by putting together a
few files from emacswiki.org which I have been using for several years.

The problem is that icicles-autoloads.el refers to some custom face
which is provided by icicles-face.el in the icicles package directory.
However Stefan's change now evaluates icicles-autoloads.el first then
updates load-path to add path for icicles.  Following shows
`package-activate-1' from around August 24:

    (defun package-activate-1 (pkg-desc)
      (let* ((name (package-desc-name pkg-desc))
    	 (pkg-dir (package-desc-dir pkg-desc)))
        (unless pkg-dir
          (error "Internal error: unable to find directory for `%s'"
    	     (package-desc-full-name pkg-desc)))
        ;; Add info node.
        (when (file-exists-p (expand-file-name "dir" pkg-dir))
          ;; FIXME: not the friendliest, but simple.
          (require 'info)
          (info-initialize)
          (push pkg-dir Info-directory-list))
        ;; Add to load path, add autoloads, and activate the package.
        (push pkg-dir load-path)
        (load (expand-file-name (format "%s-autoloads" name) pkg-dir) nil t)
        (push name package-activated-list)
        ;; Don't return nil.
        t))

Note that (load) of the "-autolads" file comes after updating of
load-path, i.e., (push pkg-dir load-path).  Thus icicles-face.el can be
found in this version of package.el.

Shouldn't load-path updated first for the packge being intialized so
that code in "*-autoloads.el" can load other elisp files in the package
directory?