[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#10593: 24.0.92; package.el doesn't initialize dependencies when inst
From: |
Donald Ephraim Curtis |
Subject: |
bug#10593: 24.0.92; package.el doesn't initialize dependencies when installing |
Date: |
Tue, 24 Jan 2012 13:42:37 -0600 |
I have fixed my problems with advice, hopefully this can help with a patch to
package.el,
(defadvice package-download-tar (after package-download-tar-initialize activate
compile)
"initialize the package after compilation"
(package-initialize))
(defadvice package-download-single (after package-download-single-initialize
activate compile)
"initialize the package after compilation"
(package-initialize))
(defadvice package-compute-transaction (before
package-compute-transaction-reverse
(package-list requirements)
activate compile)
"reverse the requirements"
(setq requirements (reverse requirements)))
The first two just make sure that packages get initialized after they get
installed. However, this was not enough. It turns out package A has,
;; Package-Requires: ((ruby-mode "1.1") (inf-ruby "2.2.1") (ruby-compilation
"0.8") (jump "2.0"))
ruby-compilation requires ruby-mode and inf-ruby,
;; Package-Requires: ((ruby-mode "1.1") (inf-ruby "2.2.1"))
However, when I'd actually install the first package, it would first install
"jump", then install "ruby-compilation" -- which would fail to compile because
"inf-ruby" and "ruby-mode" weren't installed. So the third set of advice was
just to make sure that the requirements are installed in the proper order
(which is reverse of what they are generated.
This is not necessarily ideal. It seems like somehow there needs to be some
proper ordering done by package.el, but I haven't had time or knowledge to try
to get this working. I thought I would send this to bugs first.