Closed infoparticle closed 3 years ago
It could be the mistake of hyperbole
package, may be it's following non-standard way of packaging its folders/files.
please also refer: https://github.com/rswgnu/hyperbole/issues/42
(use-package hyperbole :ensure t)
You don't want to use use-package's :ensure
keyword with straight.
See:
https://github.com/raxod502/straight.el#how-do-i-update-melpa-et-al
Make sure you're not using :ensure or use-package-always-ensure. Those are for package.el and using them with straight.el will produce weird results (namely both package.el and straight.el will be invoked for the same package).
As far as hyperbole installation goes, you're correct in that you'll need to override the recipe's :file
directive.
The following seems to work for me:
(straight-use-package '(hyperbole :files ("*" (:exclude ".git") "kotl")))
This can be used in a use-package form as well:
(use-package hyperbole
:straight (:files ("*" (:exclude ".git") "kotl")))
Also see: #237
Yes, as progfolio noted, you have to add kotl to your recipe for this to work. You should also include the "man" subdirectory to install the documentation as well.
You should be able to close this issue now.
No, I think this is a bug in straight.el
, specifically the recipe generator for our mirror of GNU ELPA. The only recipe repository where packages aren't expected to work out of the box is Emacsmirror (and our Emacsmirror mirror), everything else should be compatible. I can take a look at this. I'm sure it's something silly that was changed in the GNU ELPA build scripts.
Seems to build fine on my system. Possibly Windows specific?
@infoparticle: Would you mind evaluating the following test case in an Emacs buffer with lexical binding enabled?
It will install a straight.el and hyperbole in a clean test environment and after it has finished a buffer will pop up with the results to copy here. (You may have to change "straight/build/hyperbole/kotl"
to "straight\build\hyperbole\kotl"
for Windows to recognize the path.)
2020-11-09 23:41:21
gnu/linux
prerelease (HEAD -> feat/el-get-recipe-support, fork/feat/el-get-recipe-support) 98bd37e 2020-11-04
GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.17.3, Xaw3d scroll bars) of 2020-11-01
Yeah, it looks correct to me. I'd like to see the value of straight-get-recipe RET hyperbole RET
to verify it's the same as it should be, namely (hyperbole :type git :host github :repo "emacs-straight/hyperbole" :files ("*" (:exclude ".git")))
.
Unless you are saying you expect those subdirectories' contents to be linked into the top level of build/hyperbole
, in which case I can look at this further to see if that's what package.el
, and (if so) why straight.el
is behaving differently.
Latest straight code fixed the problem! Thanks!
I ran my (simplified) standard emacs-init.el which has the following code.
using c:\opt\emax64\bin\runemacs.exe -Q -l emacs-init.el
content of emacs-init.el ` (setq user-init-file (or load-file-name (buffer-file-name))) (setq user-emacs-directory (file-name-directory user-init-file))
(defvar bootstrap-version) (let ((bootstrap-file (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) (bootstrap-version 5)) (unless (file-exists-p bootstrap-file) (with-current-buffer (url-retrieve-synchronously "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" 'silent 'inhibit-cookies) (goto-char (point-max)) (eval-print-last-sexp))) (load bootstrap-file nil 'nomessage))
(setq straight-use-package-by-default t) (straight-use-package 'use-package)
(use-package hyperbole) `
hyperbole built as expected, demos and koutliner all worked as expected!
I could see all the required files/folders present in straight/build/hyperbole
directory!
What's wrong
I tried installing hyperbole via straight. The package got properly cloned but the compile and build step fails moving some of the required directories to straight\build\hyperbole.
straight\repos\hyperbole\kotl
should be in thestraight\build\hyperbole
too. This missingkotl
directory breaks the installation.Directions to reproduce
(use-package hyperbole :ensure t)
Then try restarting the emacs, you will notice cloning of repos works fine and building the repo misses to move
kotl
directory to straight/build directory. This will leave a broken emacs initialization, after the emacs restart.Version information