progfolio / elpaca

An elisp package manager
GNU General Public License v3.0
634 stars 31 forks source link

[Support]: elpaca-use-package #184

Closed vadim-zyamalov closed 1 year ago

vadim-zyamalov commented 1 year ago

Confirmation

Elpaca Version

((elpaca . "9a130c0 HEAD -> master, origin/master, origin/HEAD") (isntaller . 0.5) (emacs . "GNU Emacs 29.1 (build 2, x86_64-w64-mingw32) of 2023-07-31") (git . "git version 2.42.0.windows.2"))

Operating System

Windows 11 Emacs 29.1, installed via Scoop

Description

I'm trying to configure my Emacs using elpaca. I've copy-pasted the bootstrap code and elpaca-use-package snippet to the beginning of my config.

My `early-init.el` ```emacs-lisp ;; early-init.el --- Emacs config -*- lexical-binding: t; no-byte-compile: t; -*- ;;; Code: (setq gc-cons-threshold most-positive-fixnum gc-cons-percentage 0.6) (defvar file-name-handler-alist-original file-name-handler-alist) (setq file-name-handler-alist nil) (add-hook 'emacs-startup-hook (lambda () (setq gc-cons-threshold (* 8 1024 1024)) (setq file-name-handler-alist file-name-handler-alist-original) (makunbound 'file-name-handler-alist-original))) (setq user-emacs-directory (expand-file-name "emacs/" (or (getenv "XDG_CACHE_HOME") "~/.cache/"))) (setq native-comp-eln-load-path `(,(expand-file-name "eln-cache/" (or (getenv "XDG_CACHE_HOME") "~/.cache/")))) (push (expand-file-name "modules/" (file-name-directory user-init-file)) load-path) (setq custom-file (expand-file-name "custom.el" user-emacs-directory)) (tool-bar-mode -1) (scroll-bar-mode -1) (menu-bar-mode -1) (setq visible-bell t ring-bell-function 'ignore inhibit-splash-screen t inhibit-startup-message t use-dialog-box nil) (setq package-enable-at-startup nil package-quickstart nil) (setq native-comp-speed -1) ;;; early-init.el ends here ```
My `init.el` ```emacs-lisp ;; init.el --- Emacs config -*- lexical-binding: t; no-byte-compile: t; -*- (org-babel-load-file (concat (file-name-directory user-init-file) "config-use.org")) ;;; init.el ends here ```
The beginning of `config.el` ```emacs-lisp ;; -*- lexical-binding: t; -*- (defvar elpaca-installer-version 0.5) (defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) (defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) (defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory)) (defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git" :ref nil :files (:defaults (:exclude "extensions")) :build (:not elpaca--activate-package))) (let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory)) (build (expand-file-name "elpaca/" elpaca-builds-directory)) (order (cdr elpaca-order)) (default-directory repo)) (add-to-list 'load-path (if (file-exists-p build) build repo)) (unless (file-exists-p repo) (make-directory repo t) (when (< emacs-major-version 28) (require 'subr-x)) (condition-case-unless-debug err (if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*")) ((zerop (call-process "git" nil buffer t "clone" (plist-get order :repo) repo))) ((zerop (call-process "git" nil buffer t "checkout" (or (plist-get order :ref) "--")))) (emacs (concat invocation-directory invocation-name)) ((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch" "--eval" "(byte-recompile-directory \".\" 0 'force)"))) ((require 'elpaca)) ((elpaca-generate-autoloads "elpaca" repo))) (progn (message "%s" (buffer-string)) (kill-buffer buffer)) (error "%s" (with-current-buffer buffer (buffer-string)))) ((error) (warn "%s" err) (delete-directory repo 'recursive)))) (unless (require 'elpaca-autoloads nil t) (require 'elpaca) (elpaca-generate-autoloads "elpaca" repo) (load "./elpaca-autoloads"))) (add-hook 'after-init-hook #'elpaca-process-queues) (elpaca `(,@elpaca-order)) (when (< emacs-major-version 29) (elpaca use-package)) (elpaca elpaca-use-package (elpaca-use-package-mode)) (elpaca-wait) (use-package use-package-hydra :elpaca t) (elpaca-wait) (elpaca-no-symlink-mode) ```

Then I get the following error

elpaca-use-package failed Failed dependencies: (elpaca) 00.979331 elpaca failed elpaca--link-build-files: (file-error "Making symbolic link" "Operation not permitted"

What `--debug-info` returns Debugger entered--Lisp error: (file-missing "Cannot open load file" "No such file or directory" "elpaca") require(elpaca) (if (require 'elpaca-autoloads nil t) nil (require 'elpaca) (elpaca-generate-autoloads "elpaca" repo) (load "./elpaca-autoloads")) (let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory)) (build (expand-file-name "elpaca/" elpaca-builds-directory)) (order (cdr elpaca-order)) (default-directory repo)) (add-to-list 'load-path (if (file-exists-p build) build repo)) (if (file-exists-p repo) nil (make-directory repo t) (if (< emacs-major-version 28) (progn (require 'subr-x))) (condition-case err (let* ((buffer (and t (pop-to-buffer-same-window "*elpaca-bootstrap*"))) (s (and buffer (= 0 ...))) (s (and s (= 0 ...))) (emacs (and s (concat invocation-directory invocation-name))) (s (and emacs (= 0 ...))) (s (and s (require ...))) (s (and s (elpaca-generate-autoloads "elpaca" repo)))) (if s (progn (message "%s" (buffer-string)) (kill-buffer buffer)) (error "%s" (save-current-buffer (set-buffer buffer) (buffer-string))))) ((debug error) (warn "%s" err) (delete-directory repo 'recursive)))) (if (require 'elpaca-autoloads nil t) nil (require 'elpaca) (elpaca-generate-autoloads "elpaca" repo) (load "./elpaca-autoloads"))) load-with-code-conversion("c:/Users/zyama/AppData/Roaming/.emacs.d/config-use..." "c:/Users/zyama/AppData/Roaming/.emacs.d/config-use..." nil nil) load-file("c:/Users/zyama/AppData/Roaming/.emacs.d/config-use...") org-babel-load-file("c:/Users/zyama/AppData/Roaming/.emacs.d/config-use...") load-with-code-conversion("c:/Users/zyama/AppData/Roaming/.emacs.d/init.el" "c:/Users/zyama/AppData/Roaming/.emacs.d/init.el" t t) load("c:/Users/zyama/AppData/Roaming/.emacs.d/init" noerror nomessage) startup--load-user-init-file(#f(compiled-function () #) #f(compiled-function () #) t) command-line() normal-top-level()

However elpaca is loaded as the elpaca-version command works.

What I'm doing wrong? I've looked through some configs using elpaca and I didn't see the problem.

Thanks.

progfolio commented 1 year ago

I see you closed this issue. Did you figure it out?

Windows 11 elpaca failed elpaca--link-build-files: (file-error "Making symbolic link" "Operation not permitted"

If not, I suggest re-reading this section of the readme: https://github.com/progfolio/elpaca#installer Note the section about Windows users and symlinks.

vadim-zyamalov commented 1 year ago

Yes, sorry for my impatience. I'm trying to migrate from straight.el and it seems that I just forgot to apply all needed changes.

Also I figured out, that on Windows without permission to make links I should put (elpaca-no-symlink-mode) before (elpaca `(,@elpaca-order)).

Sorry for wasting your time

progfolio commented 1 year ago

Not a problem. Glad you figured it out.