bug-gnu-emacs
[Top][All Lists]
Advanced

[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.




reply via email to

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