Bootstrapping using a seed(emacs.g) failed
Eason0210 opened this issue · comments
Hi @tarsius ,
I follow the Borg manual to bootstrapping using the emacs.g, when run make bootstrap
, will get the errors fatal: 'list' is not a valid submodule--helper subcommand
.
Steps to reproduce:
➜ ~ git clone git@github.com:emacscollective/emacs.g.git ~/.emacs.d
➜ ~ cd ~/.emacs.d
➜ .emacs.d git:(master) make bootstrap-borg
HEAD is now at 1b01f17 manual: Update bootstrap instructions
➜ .emacs.d git:(master) ✗ make bootstrap
=== Running 'git submodule init' ===
Submodule 'auto-compile' (git@github.com:emacscollective/auto-compile.git) registered for path 'lib/auto-compile'
Submodule 'borg' (git@github.com:emacscollective/borg.git) registered for path 'lib/borg'
Submodule 'closql' (git@github.com:emacscollective/closql.git) registered for path 'lib/closql'
Submodule 'compat' (https://git.sr.ht/~pkal/compat) registered for path 'lib/compat'
Submodule 'dash' (git@github.com:magnars/dash.el.git) registered for path 'lib/dash'
Submodule 'diff-hl' (git@github.com:dgutov/diff-hl.git) registered for path 'lib/diff-hl'
Submodule 'emacsql' (git@github.com:skeeto/emacsql.git) registered for path 'lib/emacsql'
Submodule 'emacsql-sqlite-builtin' (git@github.com:emacscollective/emacsql-sqlite-builtin.git) registered for path 'lib/emacsql-sqlite-builtin'
Submodule 'epkg' (git@github.com:emacscollective/epkg.git) registered for path 'lib/epkg'
Submodule 'git-modes' (git@github.com:magit/git-modes.git) registered for path 'lib/git-modes'
Submodule 'magit' (git@github.com:magit/magit.git) registered for path 'lib/magit'
Submodule 'packed' (git@github.com:emacscollective/packed.git) registered for path 'lib/packed'
Submodule 'sqlite3' (git@github.com:pekingduck/emacs-sqlite3-api.git) registered for path 'lib/sqlite3'
Submodule 'transient' (git@github.com:magit/transient.git) registered for path 'lib/transient'
Submodule 'treepy' (git@github.com:volrath/treepy.el.git) registered for path 'lib/treepy'
Submodule 'use-package' (git@github.com:jwiegley/use-package.git) registered for path 'lib/use-package'
Submodule 'with-editor' (git@github.com:magit/with-editor.git) registered for path 'lib/with-editor'
=== Running 'lib/borg/borg.sh' ===
fatal: 'list' is not a valid submodule--helper subcommand # <----------- You will get the error here
=== Running 'make build' ===
Package autoload is deprecated
Initializing drones...done (17 drones in 0.012s)
--- [borg] ---
Creating /Users/eason/.emacs.d/lib/borg/borg-autoloads.el...
Compiling /Users/eason/.emacs.d/lib/borg/borg-elpa.el...
Compiling /Users/eason/.emacs.d/lib/borg/borg.el...
Done (Total of 2 files compiled)
Running ‘makeinfo --no-split borg.texi -o borg.info’...
Running ‘makeinfo --no-split borg.texi -o borg.info’...done
Running ‘install-info borg.info --dir=dir’...
Running ‘install-info borg.info --dir=dir’...done
--- [compat] ---
Creating /Users/eason/.emacs.d/lib/compat/compat-autoloads.el...
Done (Total of 0 files compiled)
--- [auto-compile] ---
Creating /Users/eason/.emacs.d/lib/auto-compile/auto-compile-autoloads.el...
Done (Total of 0 files compiled)
... ignore many errors ...
macOS 13.0 Ventura, Emacs 29.0.50
That's because of #131.
I'll have to update the bootstrap branch. Meanwhile you should be able to get around this by making sure that borg
is up-to-date before continuing with make bootstrap
.
Thanks.
Borg is already up-to-date (commit 1b01f17), but the issue is still existed.
I will wait until you update the bootstrap branch.
Hello @tarsius
I tried the latest Borg
and emacs.g
, the error fatal: 'list' is not a valid submodule--helper subcommand
have been fixed.
But when I run make bootstrap
, will failed.
Because there is nothing cloned to emacs/lib/use-package
and other packages.
Steps to reproduce:
➜ ~ git clone git@github.com:emacscollective/emacs.g.git ~/.config/emacs
Cloning into '/Users/eason/.config/emacs'...
Connection to github.com port 22 [tcp/ssh] succeeded!
remote: Enumerating objects: 3357, done.
remote: Counting objects: 100% (555/555), done.
remote: Compressing objects: 100% (173/173), done.
remote: Total 3357 (delta 392), reused 541 (delta 381), pack-reused 2802
Receiving objects: 100% (3357/3357), 478.74 KiB | 774.00 KiB/s, done.
Resolving deltas: 100% (2320/2320), done.
➜ ~ cd ~/.config/emacs
➜ emacs git:(master) make bootstrap-borg
Cloning into '/Users/eason/.config/emacs/lib/borg'...
Connection to github.com port 22 [tcp/ssh] succeeded!
remote: Enumerating objects: 1520, done.
remote: Counting objects: 100% (496/496), done.
remote: Compressing objects: 100% (105/105), done.
remote: Total 1520 (delta 403), reused 476 (delta 391), pack-reused 1024
Receiving objects: 100% (1520/1520), 584.39 KiB | 919.00 KiB/s, done.
Resolving deltas: 100% (1034/1034), done.
HEAD is now at 032ddf3 mk: No longer document "bootstrap-borg" target here
➜ emacs git:(master) make bootstrap
=== Running 'git submodule init' ===
Submodule 'auto-compile' (git@github.com:emacscollective/auto-compile.git) registered for path 'lib/auto-compile'
Submodule 'borg' (git@github.com:emacscollective/borg.git) registered for path 'lib/borg'
Submodule 'closql' (git@github.com:magit/closql.git) registered for path 'lib/closql'
Submodule 'compat' (https://git.sr.ht/~pkal/compat) registered for path 'lib/compat'
Submodule 'dash' (git@github.com:magnars/dash.el.git) registered for path 'lib/dash'
Submodule 'diff-hl' (git@github.com:dgutov/diff-hl.git) registered for path 'lib/diff-hl'
Submodule 'emacsql' (git@github.com:magit/emacsql.git) registered for path 'lib/emacsql'
Submodule 'epkg' (git@github.com:emacscollective/epkg.git) registered for path 'lib/epkg'
Submodule 'git-modes' (git@github.com:magit/git-modes.git) registered for path 'lib/git-modes'
Submodule 'magit' (git@github.com:magit/magit.git) registered for path 'lib/magit'
Submodule 'packed' (git@github.com:emacscollective/packed.git) registered for path 'lib/packed'
Submodule 'sqlite3' (git@github.com:pekingduck/emacs-sqlite3-api.git) registered for path 'lib/sqlite3'
Submodule 'transient' (git@github.com:magit/transient.git) registered for path 'lib/transient'
Submodule 'treepy' (git@github.com:volrath/treepy.el.git) registered for path 'lib/treepy'
Submodule 'use-package' (git@github.com:jwiegley/use-package.git) registered for path 'lib/use-package'
Submodule 'with-editor' (git@github.com:magit/with-editor.git) registered for path 'lib/with-editor'
=== Running 'lib/borg/borg.sh' ===
--- [auto-compile] ---
Cloning into '/Users/eason/.config/emacs/lib/auto-compile'...
remote: Enumerating objects: 659, done.
remote: Counting objects: 100% (117/117), done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 659 (delta 70), reused 114 (delta 68), pack-reused 542
Receiving objects: 100% (659/659), 222.44 KiB | 601.00 KiB/s, done.
Resolving deltas: 100% (265/265), done.
--- [borg] ---
--- [closql] ---
Cloning into '/Users/eason/.config/emacs/lib/closql'...
remote: Enumerating objects: 361, done.
remote: Counting objects: 100% (144/144), done.
remote: Compressing objects: 100% (79/79), done.
remote: Total 361 (delta 84), reused 114 (delta 65), pack-reused 217
Receiving objects: 100% (361/361), 113.84 KiB | 1.04 MiB/s, done.
Resolving deltas: 100% (201/201), done.
--- [compat] ---
Cloning into '/Users/eason/.config/emacs/lib/compat'...
remote: Enumerating objects: 1757, done.
remote: Total 1757 (delta 0), reused 0 (delta 0), pack-reused 1757
Receiving objects: 100% (1757/1757), 480.16 KiB | 519.00 KiB/s, done.
Resolving deltas: 100% (1218/1218), done.
--- [dash] ---
Cloning into '/Users/eason/.config/emacs/lib/dash'...
remote: Enumerating objects: 3637, done.
remote: Counting objects: 100% (287/287), done.
remote: Compressing objects: 100% (102/102), done.
remote: Total 3637 (delta 204), reused 257 (delta 181), pack-reused 3350
Receiving objects: 100% (3637/3637), 2.41 MiB | 1.24 MiB/s, done.
Resolving deltas: 100% (2580/2580), done.
--- [diff-hl] ---
Cloning into '/Users/eason/.config/emacs/lib/diff-hl'...
remote: Enumerating objects: 1317, done.
remote: Counting objects: 100% (278/278), done.
remote: Compressing objects: 100% (123/123), done.
remote: Total 1317 (delta 170), reused 253 (delta 155), pack-reused 1039
Receiving objects: 100% (1317/1317), 38.26 MiB | 3.15 MiB/s, done.
Resolving deltas: 100% (755/755), done.
--- [emacsql] ---
Cloning into '/Users/eason/.config/emacs/lib/emacsql'...
remote: Enumerating objects: 1618, done.
remote: Counting objects: 100% (109/109), done.
remote: Compressing objects: 100% (35/35), done.
remote: Total 1618 (delta 91), reused 78 (delta 74), pack-reused 1509
Receiving objects: 100% (1618/1618), 3.99 MiB | 1.92 MiB/s, done.
Resolving deltas: 100% (1101/1101), done.
--- [epkg] ---
Cloning into '/Users/eason/.config/emacs/lib/epkg'...
remote: Enumerating objects: 1011, done.
remote: Counting objects: 100% (264/264), done.
remote: Compressing objects: 100% (51/51), done.
remote: Total 1011 (delta 217), reused 257 (delta 213), pack-reused 747
Receiving objects: 100% (1011/1011), 284.54 KiB | 564.00 KiB/s, done.
Resolving deltas: 100% (690/690), done.
--- [git-modes] ---
Cloning into '/Users/eason/.config/emacs/lib/git-modes'...
remote: Enumerating objects: 2059, done.
remote: Counting objects: 100% (83/83), done.
remote: Compressing objects: 100% (46/46), done.
remote: Total 2059 (delta 51), reused 67 (delta 37), pack-reused 1976
Receiving objects: 100% (2059/2059), 558.53 KiB | 1.07 MiB/s, done.
Resolving deltas: 100% (1122/1122), done.
--- [magit] ---
Cloning into '/Users/eason/.config/emacs/lib/magit'...
remote: Enumerating objects: 45998, done.
remote: Counting objects: 100% (490/490), done.
remote: Compressing objects: 100% (192/192), done.
remote: Total 45998 (delta 322), reused 448 (delta 298), pack-reused 45508
Receiving objects: 100% (45998/45998), 27.49 MiB | 2.98 MiB/s, done.
Resolving deltas: 100% (32676/32676), done.
--- [packed] ---
Cloning into '/Users/eason/.config/emacs/lib/packed'...
remote: Enumerating objects: 477, done.
remote: Counting objects: 100% (51/51), done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 477 (delta 27), reused 40 (delta 17), pack-reused 426
Receiving objects: 100% (477/477), 146.37 KiB | 537.00 KiB/s, done.
Resolving deltas: 100% (200/200), done.
--- [sqlite3] ---
Cloning into '/Users/eason/.config/emacs/lib/sqlite3'...
remote: Enumerating objects: 284, done.
remote: Counting objects: 100% (116/116), done.
remote: Compressing objects: 100% (86/86), done.
remote: Total 284 (delta 56), reused 81 (delta 30), pack-reused 168
Receiving objects: 100% (284/284), 140.35 KiB | 495.00 KiB/s, done.
Resolving deltas: 100% (154/154), done.
--- [transient] ---
Cloning into '/Users/eason/.config/emacs/lib/transient'...
remote: Enumerating objects: 2181, done.
remote: Counting objects: 100% (648/648), done.
remote: Compressing objects: 100% (206/206), done.
remote: Total 2181 (delta 455), reused 576 (delta 442), pack-reused 1533
Receiving objects: 100% (2181/2181), 837.31 KiB | 1.23 MiB/s, done.
Resolving deltas: 100% (1225/1225), done.
--- [treepy] ---
Cloning into '/Users/eason/.config/emacs/lib/treepy'...
remote: Enumerating objects: 178, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 178 (delta 4), reused 9 (delta 4), pack-reused 163
Receiving objects: 100% (178/178), 163.41 KiB | 452.00 KiB/s, done.
Resolving deltas: 100% (100/100), done.
--- [use-package] ---
Cloning into '/Users/eason/.config/emacs/lib/use-package'...
remote: Enumerating objects: 2936, done.
remote: Counting objects: 100% (340/340), done.
remote: Compressing objects: 100% (158/158), done.
remote: Total 2936 (delta 200), reused 291 (delta 176), pack-reused 2596
Receiving objects: 100% (2936/2936), 2.05 MiB | 1.70 MiB/s, done.
Resolving deltas: 100% (1650/1650), done.
--- [with-editor] ---
Cloning into '/Users/eason/.config/emacs/lib/with-editor'...
remote: Enumerating objects: 776, done.
remote: Counting objects: 100% (775/775), done.
remote: Compressing objects: 100% (309/309), done.
remote: Total 776 (delta 468), reused 746 (delta 460), pack-reused 1
Receiving objects: 100% (776/776), 219.49 KiB | 732.00 KiB/s, done.
Resolving deltas: 100% (468/468), done.
=== Running 'make build' ===
Package autoload is deprecated
Initializing drones...done (16 drones in 0.034s)
--- [borg] ---
Creating /Users/eason/.config/emacs/lib/borg/borg-autoloads.el...
Compiling /Users/eason/.config/emacs/lib/borg/borg-elpa.el...
Compiling /Users/eason/.config/emacs/lib/borg/borg.el...
Done (Total of 2 files compiled)
Running ‘makeinfo --no-split borg.texi -o borg.info’...
Running ‘makeinfo --no-split borg.texi -o borg.info’...done
Running ‘install-info borg.info --dir=dir’...
Running ‘install-info borg.info --dir=dir’...done
--- [compat] ---
Creating /Users/eason/.config/emacs/lib/compat/compat-autoloads.el...
Done (Total of 0 files compiled)
--- [auto-compile] ---
Creating /Users/eason/.config/emacs/lib/auto-compile/auto-compile-autoloads.el...
Done (Total of 0 files compiled)
--- [closql] ---
Creating /Users/eason/.config/emacs/lib/closql/closql-autoloads.el...
Done (Total of 0 files compiled)
--- [dash] ---
Creating /Users/eason/.config/emacs/lib/dash/dash-autoloads.el...
Done (Total of 0 files compiled)
--- [diff-hl] ---
Creating /Users/eason/.config/emacs/lib/diff-hl/diff-hl-autoloads.el...
Done (Total of 0 files compiled)
--- [emacsql] ---
Creating /Users/eason/.config/emacs/lib/emacsql/emacsql-autoloads.el...
Done (Total of 0 files compiled)
--- [epkg] ---
Creating /Users/eason/.config/emacs/lib/epkg/epkg-autoloads.el...
Done (Total of 0 files compiled)
--- [git-modes] ---
Creating /Users/eason/.config/emacs/lib/git-modes/git-modes-autoloads.el...
Done (Total of 0 files compiled)
--- [magit] ---
Creating /Users/eason/.config/emacs/lib/magit/magit-autoloads.el...
Done (Total of 0 files compiled)
--- [packed] ---
Creating /Users/eason/.config/emacs/lib/packed/packed-autoloads.el...
Done (Total of 0 files compiled)
--- [sqlite3] ---
Running ‘make’...
make[2]: *** No targets specified and no makefile found. Stop.
Running ‘make’...done
--- [transient] ---
Creating /Users/eason/.config/emacs/lib/transient/transient-autoloads.el...
Done (Total of 0 files compiled)
--- [treepy] ---
Creating /Users/eason/.config/emacs/lib/treepy/treepy-autoloads.el...
Done (Total of 0 files compiled)
--- [use-package] ---
Creating /Users/eason/.config/emacs/lib/use-package/use-package-autoloads.el...
Done (Total of 0 files compiled)
--- [with-editor] ---
Creating /Users/eason/.config/emacs/lib/with-editor/with-editor-autoloads.el...
Done (Total of 0 files compiled)
--- [init.el] ---
Loading /Users/eason/.config/emacs/init.el (source)...
Loading Emacs...done (8.625s)
Loading /Users/eason/.config/emacs/init.el...
Initializing drones...done (16 drones in 0.049s)
Error: error ("Eager macro-expansion failure: (file-missing \"Cannot open load file\" \"No such file or directory\" \"use-package\")")
debug-early-backtrace()
debug-early(error (error "Eager macro-expansion failure: (file-missing \"Cannot open load file\" \"No such file or directory\" \"use-package\")"))
error("Eager macro-expansion failure: %S" (file-missing "Cannot open load file" "No such file or directory" "use-package"))
internal-macroexpand-for-load((eval-and-compile (require 'use-package) (setq use-package-verbose t)) nil)
load-with-code-conversion("/Users/eason/.config/emacs/init.el" "/Users/eason/.config/emacs/init.el" nil nil)
load-file("init.el")
(progn (message "\n--- [%s] ---\n" file) (load-file file) (byte-recompile-file (expand-file-name file) t 0))
(if (file-exists-p file) (progn (message "\n--- [%s] ---\n" file) (load-file file) (byte-recompile-file (expand-file-name file) t 0)))
(let ((file (car tail))) (if (file-exists-p file) (progn (message "\n--- [%s] ---\n" file) (load-file file) (byte-recompile-file (expand-file-name file) t 0))) (setq tail (cdr tail)))
(while tail (let ((file (car tail))) (if (file-exists-p file) (progn (message "\n--- [%s] ---\n" file) (load-file file) (byte-recompile-file (expand-file-name file) t 0))) (setq tail (cdr tail))))
(let ((tail (or command-line-args-left (list "init.el" (concat (user-real-login-name) ".el"))))) (while tail (let ((file (car tail))) (if (file-exists-p file) (progn (message "\n--- [%s] ---\n" file) (load-file file) (byte-recompile-file (expand-file-name file) t 0))) (setq tail (cdr tail)))))
(let ((default-directory borg-user-emacs-directory)) (let ((tail (or command-line-args-left (list "init.el" (concat (user-real-login-name) ".el"))))) (while tail (let ((file (car tail))) (if (file-exists-p file) (progn (message "\n--- [%s] ---\n" file) (load-file file) (byte-recompile-file (expand-file-name file) t 0))) (setq tail (cdr tail))))))
(progn (fset 'message vnew) (let ((default-directory borg-user-emacs-directory)) (let ((tail (or command-line-args-left (list "init.el" (concat (user-real-login-name) ".el"))))) (while tail (let ((file (car tail))) (if (file-exists-p file) (progn (message "\n--- [%s] ---\n" file) (load-file file) (byte-recompile-file (expand-file-name file) t 0))) (setq tail (cdr tail)))))))
(unwind-protect (progn (fset 'message vnew) (let ((default-directory borg-user-emacs-directory)) (let ((tail (or command-line-args-left (list "init.el" (concat (user-real-login-name) ".el"))))) (while tail (let ((file (car tail))) (if (file-exists-p file) (progn (message "\n--- [%s] ---\n" file) (load-file file) (byte-recompile-file (expand-file-name file) t 0))) (setq tail (cdr tail))))))) (fset 'message old))
(let* ((vnew #'(lambda (format-string &rest args) (if (string-match-p "\\`%s\\.\\.\\.\\(done\\)?" format-string) nil (apply msg format-string args)))) (old (symbol-function 'message))) (unwind-protect (progn (fset 'message vnew) (let ((default-directory borg-user-emacs-directory)) (let ((tail (or command-line-args-left (list "init.el" (concat (user-real-login-name) ".el"))))) (while tail (let ((file (car tail))) (if (file-exists-p file) (progn (message "\n--- [%s] ---\n" file) (load-file file) (byte-recompile-file (expand-file-name file) t 0))) (setq tail (cdr tail))))))) (fset 'message old)))
(let ((msg (symbol-function 'message))) (let* ((vnew #'(lambda (format-string &rest args) (if (string-match-p "\\`%s\\.\\.\\.\\(done\\)?" format-string) nil (apply msg format-string args)))) (old (symbol-function 'message))) (unwind-protect (progn (fset 'message vnew) (let ((default-directory borg-user-emacs-directory)) (let ((tail (or command-line-args-left (list "init.el" (concat (user-real-login-name) ".el"))))) (while tail (let ((file (car tail))) (if (file-exists-p file) (progn (message "\n--- [%s] ---\n" file) (load-file file) (byte-recompile-file (expand-file-name file) t 0))) (setq tail (cdr tail))))))) (fset 'message old))))
borg-batch-rebuild-init()
borg-batch-rebuild()
command-line-1(("--eval" "(setq load-prefer-newer t)" "--load" "subr-x" "--eval" "(setq byte-compile-warnings '(not docstrings))" "--eval" "(fset 'original-message (symbol-function 'message))" "--eval" "(fset 'message (lambda (format &rest args) (unless (or (equal format \"pcase-memoize: equal first branch, yet different\") (equal format \"Not registering prefix \\\"%s\\\" from %s. Affects: %S\") (and (stringp (car args)) (string-match-p \"Scraping files for\" (car args)))) (apply 'original-message format args))))" "-L" "lib/borg/" "--load" "borg" "--funcall" "borg-initialize" "--funcall" "borg-batch-rebuild"))
command-line()
normal-top-level()
Eager macro-expansion failure: (file-missing "Cannot open load file" "No such file or directory" "use-package")
make[1]: *** [build] Error 255
make: *** [bootstrap] Error 2
➜ emacs git:(master) cd lib/use-package
➜ use-package git:(master) ✗ ls
use-package-autoloads.el
➜ use-package git:(master) ✗ cd ../borg
➜ borg git:(master) ls
CHANGELOG LICENSE Makefile README.org borg-autoloads.el borg-elpa.el borg-elpa.elc borg.el borg.elc borg.mk borg.sh default.mk docs
Ah, git submodule--helper clone
no longer checks out. I've changed borg.sh
to no longer use that and have also updated the master
branch of Emacsg.
If tested it this time around.
(There's also an improved borg.sh
in the work
branch, but that still needs some ... work. Mostly documentation and a bit more testing.)