GNU bug report logs - #79716
31.0.50; `package-vc-rebuild` fails for local packages installed as directories on master

Previous Next

Package: emacs;

Reported by: Michelangelo Rodriguez <michelangelo.rodriguez <at> gmail.com>

Date: Wed, 29 Oct 2025 02:33:01 UTC

Severity: normal

Found in version 31.0.50

To reply to this bug, email your comments to 79716 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#79716; Package emacs. (Wed, 29 Oct 2025 02:33:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Michelangelo Rodriguez <michelangelo.rodriguez <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 29 Oct 2025 02:33:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Michelangelo Rodriguez <michelangelo.rodriguez <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; `package-vc-rebuild` fails for local packages installed as
 directories on master
Date: Wed, 29 Oct 2025 03:31:56 +0100
Hi,

Since the new installation method for local vc packages was
introduced, it seems that `package-vc-rebuild` doesn't work when a
package is installed using directories instead of symbolic links,
while it works with the old method.

After some debugging, it seems to me that the `package-vc--main-file`
function looks for the "somepackage.el" file in the directory under
"user-emacs-directory/elpa", but it is not there, but in the project's
source directory.

The generated backtrace is as follows (using emacs -q):
```
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  vc-file-getprop(nil vc-working-revision)
  vc-working-revision(nil)
  package-vc--unpack-1(#s(package-desc :name my-utils :version (0 1 0)
:summary "my-utils CLI interface." :reqs nil :kind vc :archive nil
:dir "/Users/michelangelo/.emacs.d/elpa/my-utils" :extras ((:commit
. "d9413592b48f93bfb5fa3b9163c695059a37e950")) :signed nil)
"/Users/michelangelo/.emacs.d/elpa/my-utils")
  package-vc-rebuild(#s(package-desc :name my-utils :version (0 1 0)
:summary "my-utils CLI interface." :reqs nil :kind vc :archive nil
:dir "/Users/michelangelo/.emacs.d/elpa/my-utils" :extras ((:commit
. "d9413592b48f93bfb5fa3b9163c695059a37e950")) :signed nil))
  #<subr funcall-interactively>(package-vc-rebuild #s(package-desc
:name my-utils :version (0 1 0) :summary "My-Utils CLI interface."
:reqs nil :kind vc :archive nil :dir
"/Users/michelangelo/.emacs.d/elpa/my-utils" :extras ((:commit
. "d9413592b48f93bfb5fa3b9163c695059a37e950")) :signed nil))
  apply(#<subr funcall-interactively> package-vc-rebuild
#s(package-desc :name my-utils :version (0 1 0) :summary "My-Utils CLI
interface." :reqs nil :kind vc :archive nil :dir
"/Users/michelangelo/.emacs.d/elpa/my-utils" :extras ((:commit
. "d9413592b48f93bfb5fa3b9163c695059a37e950")) :signed nil))
  ad-Advice-funcall-interactively(#<subr funcall-interactively>
package-vc-rebuild #s(package-desc :name my-utils :version (0 1 0)
:summary "My-Utils CLI interface." :reqs nil :kind vc :archive nil
:dir "/Users/michelangelo/.emacs.d/elpa/my-utils" :extras ((:commit
. "d9413592b48f93bfb5fa3b9163c695059a37e950")) :signed nil))
  apply(ad-Advice-funcall-interactively #<subr funcall-interactively>
(package-vc-rebuild #s(package-desc :name my-utils :version (0 1 0)
:summary "My-Utils CLI interface." :reqs nil :kind vc :archive nil
:dir "/Users/michelangelo/.emacs.d/elpa/my-utils" :extras ((:commit
. "d9413592b48f93bfb5fa3b9163c695059a37e950")) :signed nil)))
  funcall-interactively(package-vc-rebuild #s(package-desc :name
my-utils :version (0 1 0) :summary "My-Utils CLI interface." :reqs nil
:kind vc :archive nil :dir
"/Users/michelangelo/.emacs.d/elpa/my-utils" :extras ((:commit
. "d9413592b48f93bfb5fa3b9163c695059a37e950")) :signed nil))
  command-execute(package-vc-rebuild record)
  execute-extended-command(nil "package-vc-rebuild" "package-vc-rebuild")
  #<subr funcall-interactively>(execute-extended-command nil
"package-vc-rebuild" "package-vc-rebuild")
  apply(#<subr funcall-interactively> execute-extended-command (nil
"package-vc-rebuild" "package-vc-rebuild"))
  ad-Advice-funcall-interactively(#<subr funcall-interactively>
execute-extended-command nil "package-vc-rebuild"
"package-vc-rebuild")
  apply(ad-Advice-funcall-interactively #<subr funcall-interactively>
(execute-extended-command nil "package-vc-rebuild"
"package-vc-rebuild"))
  funcall-interactively(execute-extended-command nil
"package-vc-rebuild" "package-vc-rebuild")
  command-execute(execute-extended-command)```

Regards



In GNU Emacs 31.0.50 (build 1, aarch64-apple-darwin24.6.0, NS
 appkit-2575.70 Version 15.7 (Build 24G222)) of 2025-10-26 built on
 mac-mikey.local
Repository revision: 515bbb859840d45fe0dd226c25ad0518fe413a63
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2575
System Description:  macOS 15.7

Configured using:
 'configure --with-native-compilation
 LDFLAGS=-L/usr/local/opt/openssl <at> 3/lib
 CPPFLAGS=-I/usr/local/opt/openssl <at> 3/include'

Configured features:
ACL DBUS GNUTLS LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS
PDUMPER PNG SQLITE3 THREADS TOOLKIT_SCROLL_BARS TREE_SITTER WEBP ZLIB

Important settings:
  value of $LANG: it_IT.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Article

Minor modes in effect:
  telega-root-auto-fill-mode: t
  telega-network-stats-mode: t
  telega-contact-birthdays-mode: t
  telega-active-video-chats-mode: t
  telega-active-locations-mode: t
  telega-patrons-mode: t
  telega-active-stories-mode: t
  greader-dict-mode: t
  greader-dict-toggle-filters: t
  projectile-mode: t
  override-global-mode: t
  eglot-booster-mode: t
  helm-mode: t
  helm-minibuffer-history-mode: t
  savehist-mode: t
  global-voice-lock-mode: t
  voice-lock-mode: t
  midnight-mode: t
  magit-wip-initial-backup-mode: t
  magit-wip-before-change-mode: t
  magit-wip-after-apply-mode: t
  magit-wip-after-save-mode: t
  magit-wip-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  server-mode: t
  greader-enriched-mode: t
  greader-auto-bookmark-mode: t
  greader-mode: t
  global-company-mode: t
  company-mode: t
  gcmh-mode: t
  dynamic-completion-mode: t
  auto-compile-on-load-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-nonselected-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  indent-tabs-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/Users/michelangelo/my-utils/rust-utils hides /Users/michelangelo/.emacs.d/elpa/rust-mode-20250705.1444/rust-utils
/Users/michelangelo/.emacs.d/elpa/transient-20251020.1535/transient hides /Applications/emacs.app/Contents/Resources/lisp/transient
/Users/michelangelo/emacspeak.master/lisp/tetris hides /Applications/emacs.app/Contents/Resources/lisp/play/tetris

Features:
(shadow emacspeak-make-mode make-mode pcmpl-x cal-julian telega-obsolete
telega telega-tdlib-events telega-match telega-root telega-info
telega-chat telega-modes telega-company telega-emoji telega-user
telega-notifications notifications telega-voip telega-msg telega-story
telega-webpage visual-fill-column telega-tme telega-sticker
telega-vvnote bindat telega-ffplay telega-i18n telega-sort telega-filter
telega-ins telega-inline telega-util telega-folders telega-topic
telega-media telega-tdlib telega-server telega-core telega-customize
emacsbug pcmpl-gnu pcmpl-unix emacspeak-url-template emacspeak-feeds
gmaps shr-color url-cache facemenu two-column help-fns radix-tree
mailalias smtpmail string-edit gemini goto-addr vc-hg vc-git vc-bzr
vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view emacsql-sqlite-builtin
face-remap magit-extras sort gnus-cite smiley mm-archive mail-extr
textsec uni-scripts idna-mapping uni-confusable textsec-check gnus-bcklg
qp misearch multi-isearch gnus-async gnus-ml disp-table nndraft nnmh
nnfolder utf-7 gnus-agent gnus-srvr gnus-score score-mode nnvirtual
gnus-cache copyright greader-dict winner tramp-archive tramp-gvfs
helm-command emacspeak-xref emacspeak-widget emacspeak-view
emacspeak-treesit emacspeak-transient emacspeak-tar
emacspeak-tabulated-list emacspeak-tab-bar emacspeak-speedbar
emacspeak-slime emacspeak-sh-script emacspeak-projectile
emacspeak-project emacspeak-package emacspeak-outline emacspeak-org
oc-basic ol-eww emacspeak-eww dom-addons eww vtable mm-url ol-rmail
ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view ol-bibtex
emacspeak-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi org-element
org-persist org-id org-refile org-element-ast emacspeak-amark
emacspeak-nov emacspeak-message emacspeak-markdown emacspeak-magit
emacspeak-kmacro emacspeak-info emacspeak-ido emacspeak-ibuffer
emacspeak-helm emacspeak-gnus gm-nnir nnir emacspeak-hide
emacspeak-forge emacspeak-flymake emacspeak-eshell emacspeak-epa
emacspeak-elfeed emacspeak-eglot emacspeak-dired locate
emacspeak-diff-mode emacspeak-custom emacspeak-compile emacspeak-company
emacspeak-comint emacspeak-wizards emacspeak-calendar
emacspeak-buff-menu emacspeak-bookmark emacspeak-arc emacspeak-add-log
emacspeak-advice emacspeak-cedet checkdoc lisp-mnt gnus-demon nntp
gnus-dired nov recentf org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-src sh-script smie executable ob-comint org-pcomplete
org-list org-footnote org-faces org-entities ob-emacs-lisp ob-core
ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc
org-loaddefs org-version org-compat org-macs esxml-query ebdb-message
ebdb-gnus gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig
gnus-sum gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap
nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win
ebdb-mua ebdb-com ebdb-format ebdb eieio-opt speedbar ezimage dframe
timezone helm-company helm-elisp helm-eval edebug helm-info
slime-company slime apropos hyperspec projectile grep ibuf-ext ibuffer
ibuffer-loaddefs use-package-bind-key bind-key use-package-ensure
eglot-booster lua-ts-mode helm-mode helm-misc helm-files image-dired
image-dired-tags image-dired-external image-dired-util image-mode exif
helm-buffers helm-x-icons helm-occur helm-tags helm-locate helm-grep
helm-regexp helm-utils helm-help helm-types helm helm-global-bindings
helm-easymenu helm-core helm-source helm-multi-match helm-lib async
ido-load-library cl magit-gitflow magit-popup forge-repos forge-tablist
hl-line forge-topics forge-commands forge-semi forge-bitbucket
forge-gogs forge-gitea forge-gitlab forge-github forge-client
forge-forgejo forge-notify forge-revnote forge-pullreq forge-issue
forge-discussion forge-topic yaml eieio-custom bug-reference forge-post
forge-repo forge forge-core ghub-legacy ghub-graphql treepy gsexp ghub
url-http url-gw url-auth let-alist gnutls forge-db closql emacsql-sqlite
emacsql emacsql-compiler eieio-base magit-bookmark magit-submodule
magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull
magit-fetch magit-clone magit-remote magit-commit magit-sequence
magit-notes magit-worktree magit-tag magit-merge magit-branch
magit-reset magit-files magit-refs magit-status magit magit-repos
magit-apply dired-toggle-sudo vc vc-dispatcher c++-ts-mode c-ts-mode
c-ts-common treesit tree-sitter-langs tree-sitter-langs-build tar-mode
arc-mode archive-mode tree-sitter-hl tree-sitter tree-sitter-load
tree-sitter-cli tsc tsc-dyn tsc-dyn-get tsc-obsolete remember ereader
xml+ picture lsp-sourcekit lsp lsp-mode lsp-protocol spinner
network-stream nsm markdown-mode color noutline outline lv inline ht f
rust-playground elfeed-show elfeed-search bookmark message sendmail
yank-media rfc822 mml mml-sec epa derived epg rfc6068 epg-config
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev gmm-utils mailheader elfeed-csv elfeed elfeed-curl
elfeed-log elfeed-db elfeed-lib avl-tree url-queue xml-query tramp-sh
shortdoc dired-rsync s dash dired-aux dired dired-loaddefs tramp-cache
time-stamp tramp trampver tramp-integration tramp-message tramp-compat
parse-time iso8601 tramp-loaddefs disk-usage dirtrack conto
use-package-core eshell esh-cmd esh-ext esh-proc esh-opt esh-io esh-arg
esh-module esh-module-loaddefs esh-util files-x cal-china lunar solar
cal-dst cal-bahai cal-islam cal-hebrew holidays holiday-loaddefs appt
diary-lib diary-loaddefs cal-menu calendar cal-loaddefs savehist eglot
tree-widget external-completion jsonrpc flymake thingatpt ert ewoc debug
backtrace compile greader-translate emacspeak-setup emacspeak-websearch
emacspeak-google gweb g-utils emacspeak-we emacspeak-xslt
swiftmac-voices emacspeak-loaddefs emacspeak emacspeak-speak battery
dbus shr pixel-fill kinsoku url-file puny svg xml dom sox-gen
emacspeak-keymap emacspeak-pronounce emacspeak-sounds voice-defs
voice-setup dtk-speak emacspeak-preamble advice cus-edit company-oddmuse
company-keywords company-etags etags fileloop generator xref project
jka-compr company-gtags company-dabbrev-code company-dabbrev
company-files company-clang company-capf company-cmake company-semantic
company-template company-bbdb semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet midnight
magit-wip magit-log which-func imenu magit-diff smerge-mode diff
diff-mode track-changes easy-mmode git-commit log-edit pcvs-util add-log
magit-core magit-autorevert autorevert filenotify magit-margin
magit-transient magit-process with-editor shell pcomplete comint
ansi-osc server ansi-color magit-mode transient pp edmacro kmacro
benchmark magit-git magit-base magit-section format-spec cursor-sensor
crm llama cond-let compat ido greader greader-piper greader-mac
greader-speechd greader-espeak ring find-func view gnus nnheader
gnus-util text-property-search time-date mail-utils range mm-util
mail-prsvr wid-edit company gcmh completion auto-compile comp comp-cstr
warnings comp-run comp-common rx cus-start cus-load 0blayout-autoloads
addressbook-bookmark-autoloads ag-autoloads alarm-clock-autoloads
auto-compile-autoloads auto-org-md-autoloads bbdb--autoloads
bbdb-autoloads c-eldoc-autoloads cargo-autoloads casual-autoloads
chatgpt-shell-autoloads company-ebdb-autoloads consult-autoloads
conto-autoloads counsel-autoloads dart-mode-autoloads debbugs-autoloads
denote-explore-autoloads denote-regexp-autoloads denote-search-autoloads
denote-autoloads devdocs-autoloads devdocs-browser-autoloads
dired-duplicates-autoloads dired-ranger-autoloads
dired-hacks-utils-autoloads dired-rsync-autoloads
dired-toggle-sudo-autoloads disk-usage-autoloads ebdb-autoloads cl-extra
help-mode eglot-booster-autoloads el-search-autoloads
elfeed-autotag-autoloads elfeed-goodies-autoloads
elfeed-protocol-autoloads elfeed-tube-mpv-autoloads
elfeed-tube-autoloads aio-autoloads elfeed-autoloads elgrep-autoloads
elisp-lint-autoloads epl-autoloads ereader-autoloads espotify-autoloads
flutter-autoloads flycheck-package-autoloads
flymake-collection-autoloads forge-autoloads closql-autoloads
gcmh-autoloads gemini-autoloads finder-inf github-explorer-autoloads
glue-autoloads gnosis-autoloads google-this-autoloads
google-translate-autoloads gpt-autoloads gpt-commit-autoloads
gptai-autoloads gptel-autoloads graphql-autoloads greader-autoloads
helm-ag-autoloads helm-company-autoloads helm-google-autoloads
helm-rg-autoloads helm-slime-autoloads helm-youtube-autoloads
helm-autoloads helm-core-autoloads async-autoloads html2org-autoloads
hyperbole-autoloads kotl-autoloads hact set hhist ido-hacks-autoloads
ido-load-library-autoloads ido-occasional-autoloads idomenu-autoloads
liblouis-autoloads lice-autoloads lingva-autoloads link-hint-autoloads
avy-autoloads listen-autoloads log4e-autoloads lsp-sourcekit-autoloads
luwak-autoloads magit-annex-autoloads magit-diff-flycheck-autoloads
flycheck-autoloads magit-filenotify-autoloads magit-gh-pulls-autoloads
gh-autoloads logito-autoloads magit-gitflow-autoloads
magit-gitlab-autoloads ghub-autoloads magit-imerge-autoloads
magit-lfs-autoloads magit-autoloads pcase magit-popup-autoloads
magit-stats-autoloads marshal-autoloads mastodon-autoloads
md4rd-autoloads mhc-autoloads calfw-autoloads minuet-autoloads
mpdired-autoloads mpv-autoloads my-utils-autoloads nnreddit-autoloads
json-rpc-autoloads anaphora-autoloads nov-autoloads esxml-autoloads
ob-applescript-autoloads ob-rust-autoloads ollama-buddy-autoloads
org-contrib-autoloads org-gnosis-autoloads emacsql-autoloads
osx-dictionary-autoloads osx-lib-autoloads osx-location-autoloads
osx-plist-autoloads package-lint-autoloads pandoc-autoloads
pandoc-mode-autoloads hydra-autoloads parinfer-rust-mode-autoloads
password-generator-autoloads persist-autoloads persistent-soft-autoloads
list-utils-autoloads pcache-autoloads plz-autoloads podcaster-autoloads
popup-autoloads popwin-autoloads powerline-autoloads
projectile-autoloads pydoc-autoloads relint-autoloads request-autoloads
reveal-in-osx-finder-autoloads ripgrep-autoloads rsync-mode-autoloads
rust-auto-use-autoloads rust-mode-autoloads rust-playground-autoloads
shell-maker-autoloads signal-autoloads slime-company-autoloads
company-autoloads slime-autoloads macrostep-autoloads
slint-mode-autoloads smartparens-autoloads smex-autoloads
stream-autoloads swift-helpful-autoloads lsp-mode-autoloads lv-autoloads
markdown-mode-autoloads spinner-autoloads ht-autoloads f-autoloads
swift-mode-autoloads swift3-mode-autoloads swiper-autoloads
ivy-autoloads taxy-magit-section-autoloads taxy-autoloads
magit-section-autoloads llama-autoloads telega-autoloads tmr-autoloads
totp-auth-autoloads base32-autoloads tp-autoloads transient-autoloads
cond-let-autoloads tree-mode-autoloads tree-sitter-langs-autoloads
tree-sitter-autoloads treepy-autoloads tsc-autoloads unicad-autoloads
virtualenvwrapper-autoloads s-autoloads visual-fill-column-autoloads
w3m-load w3m-autoloads wfnames-autoloads wiki-summary-autoloads
with-editor-autoloads world-time-mode-autoloads xml+-autoloads
xr-autoloads yaml-autoloads yaxception-autoloads info dash-autoloads
package browse-url xdg url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util mailcap
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons
password-cache json subr-x map byte-opt gv bytecomp byte-compile
url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind kqueue cocoa ns
lcms2 multi-tty make-network-process tty-child-frames native-compile
emacs)

Memory information:
((conses 16 6050993 4060700) (symbols 48 122776 128)
 (strings 32 5511751 165620) (string-bytes 1 243587345)
 (vectors 16 1253716) (vector-slots 8 9975725 1234610)
 (floats 8 369308 1696376) (intervals 56 59002 5693) (buffers 1064 76))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#79716; Package emacs. (Sat, 01 Nov 2025 08:25:02 GMT) Full text and rfc822 format available.

Message #8 received at 79716 <at> debbugs.gnu.org (full text, mbox):

From: Michelangelo Rodriguez <michelangelo.rodriguez <at> gmail.com>
To: 79716 <at> debbugs.gnu.org
Subject: Possible patch
Date: Sat, 01 Nov 2025 09:24:27 +0100
Hi,
The patch I am proposing solves the problem in my case.
In essence, the `package-vc-install-from-checkout` function adds the actual directory where the project is located to the `:extra` slot of the package-desc.
The function `package-vc--main-file` behaves accordingly.


diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
index 7433fce2d89..7b39b50b26f 100644
--- a/lisp/emacs-lisp/package-vc.el
+++ b/lisp/emacs-lisp/package-vc.el
@@ -244,7 +244,9 @@ package-vc--main-file
   (let* ((pkg-spec (package-vc--desc->spec pkg-desc))
          (name (symbol-name (package-desc-name pkg-desc)))
          (directory (expand-file-name
-                     (or (plist-get pkg-spec :lisp-dir) ".")
+                     (or (plist-get pkg-spec :lisp-dir)
+                         (alist-get :vc-dir (package-desc-extras pkg-desc))
+                         ".")
                      (or (package-desc-dir pkg-desc)
                          (expand-file-name name package-user-dir))))
          (file (expand-file-name
@@ -946,6 +948,9 @@ package-vc-install-from-checkout
      (package-desc-create
       :name (intern name)
       :dir pkg-dir
+      ;; We use the :extras slot of vc-desc to store the directory where the
+      ;; sources are actually located.
+      :extras (list (cons :vc-dir dir))
       :kind 'vc)
      (file-name-as-directory pkg-dir))))

Michelangelo




This bug report was last modified 4 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.