#113 error: Recursive `require' for feature `speedbar

speedbar (14)
Stefan Husmann

If I use the bzr version of cedet under Arch Linux delivered by a user in AUR (see PKGBUILD at https://aur.archlinux.org/packages/cedet-bzr/\). I guess the installation is inadequate. I read in the README the "make install" step is not there and one should use cedet "inplace". But that is not a method packagers could use for system wide packages. Any advice?


  • Ac Bd
    Ac Bd

    I ran across the same issue as well. I'm relatively new to Emacs, but here's what I think is happening and how to solve it:
    When Emacs starts, it has a set of initial directories set up in the variable 'load-path'. This list is expanded by including (almost) all subdirectories of each directory in the initial list (this happens all the way down the directory tree). You can instruct Emacs to exclude specific directories from this process by having a file named '.nosearch' in them. For more information see http://www.gnu.org/software/emacs/manual/html_node/elisp/Library-Search.html.
    The standalone version of CEDET contains directories that, when added to 'load-path', shadow some built-in Emacs libraries that it requires (e.g. speedbar). I guess this is why we're supposed to use 'cedet-devel-load.el' to load it (but I don't really know). To prevent Emacs from loading all of CEDET's directories, you can add a '.nosearch' file in /usr/share/emacs/site-lisp/cedet/, which solved the problem for me.

    Bottom line:
    1) I don't think this is a bug.
    2) There are two solutions to the reported problem that worked for me:
    2.1) Install CEDET locally to your user (copy the CEDET directories to '/home/user/.emacs.d/cedet/' or something like that).
    2.2) Add the line 'touch $pkgdir/usr/share/emacs/site-lisp/cedet/.nosearch' to the package() section of the PKGBUILD.
    3) I do think that adding a warning about this to the INSTALL instructions could prevent future grief for the less experienced Emacs users.

  • Stefan Husmann
    Stefan Husmann

    Your comment directed me into the right way: I changed the PKGBUILD install everything to /opt, and now it works. There seemed some inferences between the cedet version that comes with emacs and the new one.

  • Eric M. Ludlam
    Eric M. Ludlam

    • status: open --> closed-accepted
  • Eric M. Ludlam
    Eric M. Ludlam

    Thanks throwaway27. I've updated the INSTALL to point package maintainers to a better way, and refer to this tracker entry.