1

I already have cedet installed on emacs24. However, whenever I start emacs I get an error that el-get is installing cedet unsuccessfully. It takes a rather long time and fails somewhere in the make.

Why is el-get downloading cedet that already comes by default, why is it throwing an error, and how can I disable this?

At startup:

el-get waiting for "*bzr branch cedet" to complete 
el-get is waiting for "make" to complete
error: el-get: make el-get could not build cedet [make EMACS=/usr/bin/emacs24]
Mittenchops
  • 18,633
  • 33
  • 128
  • 246
  • Let me guess, did you try installing `ecb`, `matlab-mode` or `cedet` at any point of time? –  Mar 16 '14 at 15:25
  • ecb. It turned out, though I just needed to install texinfo; there was a makeinfo command in the make that was failing. I'll post that as an answer when the timer lets me. Is there anything I should be aware of in your suggestions that this is silly? – Mittenchops Mar 16 '14 at 15:33
  • Actually the recipes for packages `ecb` and `matlab-mode` declare `cedet` as an requirement. As such whenever you try to install any of these packages, el-get tries to install `cedet` (the `cedet` recipe instruct `el-get` to install the latest version from bzr). `el-get` tries to reinstall any package that failed to install previously at emacs startup (which was again failing) that is why you were seeing this at every emacs startup. In future if you come across such a situation just do `el-get-remove`. You could have used a modified recipe for `ecb` –  Mar 16 '14 at 15:42
  • @Iqbal Ansari why don't you write it as an answer instead of a comment, so it can be accepted if it's right – Tom Mar 16 '14 at 16:52
  • @Tom, I did not post it as answer since asker had already solved the issue. Anyway I have posted it as an answer now for the benefit of future users. Thanks for the suggestion –  Mar 16 '14 at 19:40

1 Answers1

1

Whenever you do el-get-install, el-get first tries to install the dependencies declared by the package. Before installing the package el-get adds the package to a status file (by default it is in ~/.emacs.d/el-get/.status.el) and marks it as a required package and once the package is installed the status is changed to installed. On emacs startup it checks this file to get a list packages that it has to install and if any package has a status of "required" it is installed first.

In your particular case, the recipe for the package ecb declares cedet as a dependency. So el-get tried to install cedet first and failed, since the cedet recipe that ships with el-get tries to install cedet from source. This step was failing since you did not have texinfo installed which was needed to make cedet. As a result el-get had cedet marked as required package and on every startup it was trying to install the it (and failing).

You can do M-xel-get-removeRETname-of-offending-packageRET, so that el-get stops trying to install that package. To find out why a particular package install is failing you can always check the output of build process of package by switching to the buffer el-get: build (I don't remember the name correctly but it is something similar).

For your particular case you could avoided installing cedet altogether by instructing el-get to install ecb from melpa using the following recipe. Do C-hvel-get-sourcesRET to read about recipe syntax

(:name ecb
       :description "Emacs Code Browser"
       :type elpa
       :repo ("melpa" . "http://melpa.milkbox.net/packages/"))

Add the recipe above to file named ecb.rcp in your personal recipe directory. I store them in ~/.emacs.d/recipes, the location doesn't matter though, just ensure that it is in first in the list el-get-recipe-path so that your recipes get precedence over the builtin ones. Something like

(add-to-list 'el-get-recipe-path "/path/to/personal/recipes")

should be sufficient to ensure that your personal recipes are preferred by el-get.