How can I include a package that is available locally on my system that depends on the string library s
with spacemacs?
I have an company internal package that adds functionality to magit available at /usr/share/emacs-config/neat-tool.el
neat-tool.el
is something like:
;;; neat-tool.el --- Use neat tool
(require 'magit)
(require 's)
(magit-define-popup-action 'magit-dispatch-popup ?x
"Neat commands"
'neat-commands-popup)
I have a custom layer called my-layer
with a packages.el
of:
(defvar my-layer-packages
'((neat-tool
:location (recipe
:fetcher url
:url "file:///usr/share/emacs-config/neat-tool.el"))))
(defun my-layer/neat-tool ()
"Init neat-tool."
(use-package neat-tool
:defer t
:init
(with-eval-after-load 'magit
(require 'neat-tool))
))
Unfortunately, this fails with Cannot open load file: No such file or directory, s
. s
is correctly installed and up to date in ~/.emacs.d/elpa
I could wrap another with-eval-after-load
in the :init
, but that seems messy. Is there a better way to declare the dependency on s
?
package-initialize
earlier? Ifs
is installed via melpa, then that should setup its autoloads.