bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#65283: 29.1; package-vc-install fails to install package "ement" bec


From: Adam Porter
Subject: bug#65283: 29.1; package-vc-install fails to install package "ement" because some dependencies installed by it are omitted from load-path
Date: Tue, 15 Aug 2023 15:47:51 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.14.0

Hi Philip,

On 8/15/23 15:11, Philip Kaludercic wrote:
> Adam Porter <adam@alphapapa.net> writes:
>
>> On 8/14/23 03:13, Philip Kaludercic wrote:
>>> Adam Porter <adam@alphapapa.net> writes:
>>>
>>>> Hi,
>>>>
>>>> Wanting to test whether package-vc-install in Emacs 29.1 is now a
>>>> suitable replacement for Quelpa for installing my Ement.el package from
>>>> git, I started an instance of Emacs 29.1 in a clean configuration and
>>>> evaluated:
>
> When you say clean configuration, do you mean that you invoked emacs
> with -Q, or also --init-directory=[some fresh directory]?  I noticed
> that you appear to be using Guix, so did you perhaps use a Guix
> container shell?
I've tried three different ways now:

1. Using my with-emacs.sh script [0] (which was written for Emacs before the "--init-directory" option was added, but remains compatible with Emacs 29.1):

with-emacs.sh -e emacs-29.1 -- --eval '(package-vc-install "https://github.com/alphapapa/ement.el";)'

2. Using "-q --init-directory", i.e.

emacs-29.1 -q --init-directory=$(mktemp -d) --eval '(package-vc-install "https://github.com/alphapapa/ement.el";)'

3. Using "-Q --init-directory", i.e.

emacs-29.1 -Q --init-directory=$(mktemp -d) --eval '(package-vc-install "https://github.com/alphapapa/ement.el";)'

All three ways seem to produce the same problem with the same error messages and the same load-path missing taxy-magit-section's directory.

I do have Emacs 29.1 installed with Guix, on top of my Debian system. However, I've been using this setup for quite some time now, having also used Guix to install Emacs 27 and 28 previously, and I've never had this problem before. So I don't think that Guix is related to the problem, although I can't say for certain.

Scouring the "*Messages*" buffer again, I noticed another series of messages:

  Checking /tmp/tmp.m5Cj6y1gaF/elpa/taxy-0.10.1/examples...
  Done (Total of 1 file compiled, 4 failed, 2 skipped in 2 directories)
  Contacting host: elpa.gnu.org:443
  Parsing tar file...done
  Extracting...done
    INFO     Scraping files for loaddefs...done
    GEN      taxy-magit-section-autoloads.el
  Unable to activate package ‘taxy-magit-section’.
  Required package ‘magit-section-3.2.1’ is unavailable
  Contacting host: elpa.gnu.org:443
  Parsing tar file...done
  Extracting...done
    INFO     Scraping files for loaddefs...done
    GEN      dash-autoloads.el
  Checking /tmp/tmp.m5Cj6y1gaF/elpa/dash-2.19.1... [2 times]

As you can see, it says that it can't activate taxy-magit-section because magit-section-3.2.1 is unavailable. However, about 20 lines later:

  Checking /tmp/tmp.m5Cj6y1gaF/elpa/dash-2.19.1/doc...
  Done (Total of 2 files compiled, 2 skipped)
  Contacting host: elpa.nongnu.org:443
  Parsing tar file...done
  Extracting...done
    INFO     Scraping files for loaddefs...done
    GEN      magit-section-autoloads.el
  Checking /tmp/tmp.m5Cj6y1gaF/elpa/magit-section-3.3.0... [3 times]
Compiling /tmp/tmp.m5Cj6y1gaF/elpa/magit-section-3.3.0/magit-section.el...done
  Wrote /tmp/tmp.m5Cj6y1gaF/elpa/magit-section-3.3.0/magit-section.elc
  Checking /tmp/tmp.m5Cj6y1gaF/elpa/magit-section-3.3.0...
  Done (Total of 1 file compiled, 2 skipped)
    INFO     Scraping files for loaddefs...done
    GEN      ement-autoloads.el

So it installs magit-section (at v3.3.0) two packages later.

The taxy-magit-section has these dependencies specified in "taxy-magit-section.el":

;; Package-Requires: ((emacs "26.3") (magit-section "3.2.1") (taxy "0.10"))

And, as listed in "C-h P taxy-magit-section RET":

  Package taxy-magit-section is dependency.

       Status: Installed in ‘taxy-magit-section-0.12.2/’.
      Version: 0.12.2
       Commit: 594531569c03206cbc83b74d679ffd0e93edb4d0
      Summary: View Taxy structs in a Magit Section buffer
     Requires: emacs-26.3, magit-section-3.2.1, taxy-0.10

So it seems that magit-section is being installed after taxy-magit-section rather than before, which seems to prevent Emacs from activating the taxy-magit-section package (and thereby adding it to load-path), which later causes the compilation of ement to fail since it can't find taxy-magit-section.

And all of this seems to be because the version number of magit-section is not being correctly recognized as a later version and thereby fulfilling the dependency--this even though it is being recognized as a dependency and installed by another part of the process.

Meanwhile, if I install using package-install with:

emacs-29.1 --init-directory=$(mktemp -d) -q --eval "(package-install 'ement)"

Then installation of all packages proceeds without error, and load-path shows:

    ("/tmp/tmp.19yxzzQiIk/elpa/ement-0.10" "
    /tmp/tmp.19yxzzQiIk/elpa/persist-0.5" "
    /tmp/tmp.19yxzzQiIk/elpa/plz-0.7" "
    /tmp/tmp.19yxzzQiIk/elpa/taxy-magit-section-0.12.2" "
    /tmp/tmp.19yxzzQiIk/elpa/magit-section-3.3.0" "
    /tmp/tmp.19yxzzQiIk/elpa/dash-2.19.1" "
    /tmp/tmp.19yxzzQiIk/elpa/taxy-0.10.1" "
    /tmp/tmp.19yxzzQiIk/elpa/svg-lib-0.2.7" "
    /tmp/tmp.19yxzzQiIk/elpa/transient-0.4.1" "
    /tmp/tmp.19yxzzQiIk/elpa/compat-29.1.4.2" "
    /home/me/.guix-profile/share/emacs/site-lisp" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/vc" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/use-package" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/url" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/textmodes" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/progmodes" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/play" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/org" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/nxml" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/net" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/mh-e" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/mail" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/leim" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/language" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/international" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/image" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/gnus" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/eshell" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/erc" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/emulation" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/emacs-lisp" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/cedet" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/calendar" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/calc" "

/gnu/store/c7vqk20kf6zw73klr8bacnh0gqahk5dd-emacs-29.1-29.1/share/emacs/29.1/lisp/obsolete")

So there appears to be a bug somewhere in the package-vc library.

I see that you tested with an Emacs 30.0.50 build. Could you test with 29.1, the version I'm using?

Thanks,
Adam

0: https://github.com/alphapapa/with-emacs.sh





reply via email to

[Prev in Thread] Current Thread [Next in Thread]