Subject: bug#78877: 31.0.50; Command `package-vc-rebuild' fails with error '(wrong-type-argument stringp nil)'

From: Roi Martin <[email-masked]>
Date: Mon, 23 Jun 2025 18:50:26 +0200

After installing a package using `package-vc-install-from-checkout',
`package-vc-rebuild' fails with error '(wrong-type-argument stringp nil)'.

The error can be reproduced following these steps:

  emacs -Q --init-directory=/tmp/package-vc-bug
  M-x package-vc-install-from-checkout /path/to/pkg-foo RET
  M-x package-vc-rebuild pkg-foo RET

Which produces the following backtrace:

  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 pkg-foo :version (0) :summary "No description available." :reqs nil :kind vc :archive nil :dir "/tmp/package-vc-bug/elpa/pkg-foo/" :extras ((:commit . "unknown")) :signed nil) "/tmp/package-vc-bug/elpa/pkg-foo/")
    package-vc-rebuild(#s(package-desc :name pkg-foo :version (0) :summary "No description available." :reqs nil :kind vc :archive nil :dir "/tmp/package-vc-bug/elpa/pkg-foo/" :extras ((:commit . "unknown")) :signed nil))
    funcall-interactively(package-vc-rebuild #s(package-desc :name pkg-foo :version (0) :summary "No description available." :reqs nil :kind vc :archive nil :dir "/tmp/package-vc-bug/elpa/pkg-foo/" :extras ((:commit . "unknown")) :signed nil))
    command-execute(package-vc-rebuild record)
    execute-extended-command(nil "package-vc-rebuild" nil)
    funcall-interactively(execute-extended-command nil "package-vc-rebuild" nil)
    command-execute(execute-extended-command)

Where pkg-foo is a dummy package exposing a couple of functions.

I think this bug could be related to the changes installed as part of
Bug#78017.

Tested in:

  GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
   3.24.49, cairo version 1.18.2) of 2025-06-23 built on wopr
  Repository revision: 1a8e8203a158f6bdc74e38f2cdb3214b6c06b9d8
  Repository branch: master