emacscollective / borg

Assimilate Emacs packages as Git submodules
https://emacsmirror.net/manual/borg
GNU General Public License v3.0
255 stars 28 forks source link

Bootstrapping using a seed(emacs.g) failed #136

Closed Eason0210 closed 1 year ago

Eason0210 commented 1 year ago

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

tarsius commented 1 year ago

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.

Eason0210 commented 1 year ago

Thanks. Borg is already up-to-date (commit 1b01f170a4ec3736660de6081003e371fb76323f), but the issue is still existed.

I will wait until you update the bootstrap branch.

Eason0210 commented 1 year ago

Hello @tarsius

I tried the latest Borgand 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 toemacs/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
tarsius commented 1 year ago

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.

tarsius commented 1 year ago

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.)