dimitri / el-get

Manage the external elisp bits and pieces upon which you depend!
http://tapoueh.org/emacs/el-get.html
1.64k stars 457 forks source link

Can install manually, but not with recipe #2828

Open lispstudent opened 3 years ago

lispstudent commented 3 years ago

I am able to use complex recipes, like org-mode.

But with some, I am experiencing the following behavior (as an example, 'bbdb'):

Executing this:

(defconst el-get-sources
  '((:name bbdb)))
(el-get 'sync (mapcar #'el-get-source-name el-get-sources))

I get error:

'.' is not recognized as an internal or external command,
operable program or batch file.

And see this in the backtrace:

Debugger entered--Lisp error: (error "el-get: ./autogen.sh el-get could not build bbdb [./autogen.sh]")
  signal(error ("el-get: ./autogen.sh el-get could not build bbdb [./autogen.sh]"))
  error("el-get: %s %s" "./autogen.sh" "el-get could not build bbdb [./autogen.sh]")
[...]

But if I run this elisp snippet, autogen.sh and ./configure run just fine:

(let
    ((default-directory  "c:/home/.config/emacs/el-get/bbdb/"))
  (shell-command "./autogen.sh")
  (shell-command "./configure" ))

This is with latest el-get on Emacs 27.1 running from Windows 10 with MSYS2 as shell.

(setq explicit-shell-file-name "C:/msys64/usr/bin/sh.exe")
(setq shell-file-name "sh.exe")

Could somebody please give me some pointers on how to fix this?

lispstudent commented 3 years ago

It seems Emacs can find the shell and all the commands, including make, etc, but not if executed directly.

I also tried @npostavs suggestion given here, to no avail.

In my case,

(add-to-list 'exec-path "c:/msys64/usr/bin")
(setenv "PATH" (mapconcat #'identity exec-path path-separator))
lispstudent commented 3 years ago

I was able to have BBDB recipe work within Windows + MSYS2 by adding this line to it:

:build/windows-nt (("sh" "autogen.sh") ("sh" "configure") ("make"))

The whole recipe would be:

    (:name bbdb
       :website "http://bbdb.sourceforge.net/"
       :description "The Insidious Big Brother Database (BBDB) is a contact management utility."
       :type git
       :url "https://git.savannah.nongnu.org/git/bbdb.git"
       :load-path ("./lisp")
       ;; if using vm, add `--with-vm-dir=DIR' after ./configure
       :build `(("./autogen.sh") ("./configure") ("make"))
       :build/windows-nt (("sh" "autogen.sh") ("sh" "configure") ("make"))
       :features bbdb-loaddefs
       :autoloads nil
       :info "doc")

Would this be the canonical way to fix such issues?

Would it be fine to submit PRs for such cases?

lispstudent commented 3 years ago

Thanks for merging! 👍