GNU bug report logs - #59088
29.0.50; void-function package-vc-update when first run package-update-all.

Previous Next

Package: emacs;

Reported by: Feng Shu <tumashu <at> 163.com>

Date: Mon, 7 Nov 2022 02:36:02 UTC

Severity: normal

Found in version 29.0.50

Done: Philip Kaludercic <philipk <at> posteo.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 59088 in the body.
You can then email your comments to 59088 AT debbugs.gnu.org in the normal way.

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#59088; Package emacs. (Mon, 07 Nov 2022 02:36:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Feng Shu <tumashu <at> 163.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 07 Nov 2022 02:36:02 GMT) Full text and rfc822 format available.

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

From: Feng Shu <tumashu <at> 163.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.50; void-function package-vc-update when first run
 package-update-all.
Date: Mon, 07 Nov 2022 10:35:41 +0800


Debugger entered--Lisp error: (void-function package-vc-update)
  package-vc-update(#s(package-desc :name pyim :version (5 2 8) :summary "A Chinese input method support quanpin, shuangpin,..." :reqs ((emacs (25 1)) (async (1 6)) (xr (1 13))) :kind vc :archive nil :dir "/home/feng/.emacs.d/elpa-29/pyim" :extras ((:url . "https://github.com/tumashu/pyim") (:keywords "convenience" "chinese" "pinyin" "input-method") (:maintainer "Feng Shu" . "tumashu <at> 163.com") (:authors ("Ye Wenbin" . "wenbinye <at> 163.com") ("Feng Shu" . "tumashu <at> 163.com")) (:commit . "8c4f7d40c05dc06b3c96c2955e5d72ec268f2b61")) :signed nil))
  package-update(pyim)
  mapc(package-update (pyim))
  package-update-all(t)
  funcall-interactively(package-update-all t)
  call-interactively(package-update-all record nil)
  command-execute(package-update-all record)
  execute-extended-command(nil "package-update-all" nil)
  funcall-interactively(execute-extended-command nil "package-update-all" nil)
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)




In GNU Emacs 29.0.50 (build 11, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.16.0, Xaw3d scroll bars) of 2022-11-07 built on Tumashu
Repository revision: 61d55ce3bb4dc1f7deac552439c61bbe0909dcdb
Repository branch: feng-emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Debian GNU/Linux 11 (bullseye)

Configured using:
 'configure --with-x-toolkit=lucid --with-json'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
X11 XAW3D XDBE XIM XINPUT2 XPM LUCID ZLIB

Important settings:
  value of $LANG: zh_CN.UTF-8
  value of $XMODIFIERS: @im=fcitx
  locale-coding-system: utf-8-unix

Major mode: ELisp/d

Minor modes in effect:
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  aggressive-indent-mode: t
  emms-playing-time-display-mode: t
  emms-playing-time-mode: t
  cnfonts-mode: t
  projectile-mode: t
  corfu-history-mode: t
  global-corfu-mode: t
  corfu-mode: t
  org-super-agenda-mode: t
  pyim-isearch-mode: t
  vertico-mode: t
  savehist-mode: t
  global-tab-line-mode: t
  tab-line-mode: t
  global-so-long-mode: t
  electric-pair-mode: t
  pixel-scroll-precision-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  context-menu-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/feng/.emacs.d/elpa-29/xr-1.23/xr hides ~/projects/emacs-packages/pyim/.deps/xr
/home/feng/.emacs.d/elpa-29/pyim-basedict-0.5.4/pyim-basedict hides ~/projects/emacs-packages/pyim/.deps/pyim-basedict
/home/feng/.emacs.d/elpa-29/async-20221103.638/async hides ~/projects/emacs-packages/pyim/.deps/async
/home/feng/.emacs.d/elpa-29/transient-20221028.1430/transient hides /home/feng/emacs/emacs29/lisp/transient

Features:
(shadow mail-extr emacsbug cl-print mm-archive network-stream url-cache
url-http url-auth url-gw nsm cus-start cursor-sensor warnings
emacs-helper eh-guix guix geiser-guile info-look geiser-debug
geiser-repl geiser-image geiser-capf geiser-doc geiser-menu
geiser-autodoc geiser-edit etags fileloop xref geiser-completion
geiser-eval geiser-connection geiser-syntax scheme geiser-log
geiser-popup view geiser eh-misc vundo magit-bookmark magit-submodule
magit-obsolete magit-popup 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 magit-wip magit-log which-func imenu
edebug debug backtrace magit-diff smerge-mode diff diff-mode git-commit
log-edit pcvs-util add-log magit-core magit-autorevert magit-margin
magit-transient magit-process with-editor server magit-mode transient
edmacro magit-git magit-base magit-section compat-27 compat-26
aggressive-indent eh-emms emms-player-vlc emms-player-mpv
emms-player-mplayer emms-setup emms-librefm-stream
emms-librefm-scrobbler emms-playlist-limit emms-i18n emms-history
emms-score emms-stream-info emms-metaplaylist-mode emms-bookmarks
emms-cue emms-mode-line-icon emms-browser emms-volume
emms-volume-sndioctl emms-volume-mixerctl emms-volume-pulse
emms-volume-amixer emms-playlist-sort emms-last-played emms-player-xine
emms-player-mpd tq emms-playing-time emms-lyrics emms-url
emms-player-simple emms-streams emms-show-all emms-tag-editor
emms-tag-tracktag emms-mark emms-mode-line emms-cache emms-info-native
bindat emms-info-exiftool emms-info-tinytag emms-info-metaflac
emms-info-opusinfo emms-info-ogginfo emms-info-mp3info emms-info
emms-later-do emms-playlist-mode emms-source-playlist emms-source-file
locate emms emms-compat el2org cnfonts tempel citre-config
citre-lang-fileref citre-tags citre-ctags citre-readtags
citre-readtags-tables citre-backend-interface citre-ui-peek color
citre-ui-jump citre-common-tag citre-common-util projectile skeleton
ibuf-macs find-dired lisp-mnt grep compile ibuf-ext ibuffer
ibuffer-loaddefs eh-gnus-common ebdb-message ebdb-gnus nnselect ebdb-mua
ebdb-complete ebdb-com crm ebdb-format ebdb-i18n-chn ebdb-i18n
ebdb-i18n-basic ebdb inline eieio-base timezone eww xdg url-queue
thingatpt mm-url gnus-demon gnus-search eieio-opt speedbar ezimage
dframe gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg
nntp gnus-cite gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig
gnus-cache gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group
gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail
mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail
yank-media puny 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 gnus-win gnus nnheader
gnus-util mail-utils range mm-util mail-prsvr eh-complete cape
corfu-history corfu eh-org org-ql peg org-super-agenda ts ht s dash
org-habit org-capture ob-python python project ob-org ox-md ox-org
ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn
nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar
org-agenda ox-html table ox-ascii ox-publish ox org-element avl-tree
generator autorevert filenotify org-attach org-id org-refile org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src
ob-comint org-pcomplete org-list org-faces org-entities noutline outline
org-version ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex ol
org-keys oc org-compat advice org-macs org-loaddefs find-func
eh-functions eh-theme modus-vivendi-theme modus-themes eh-basic
cal-china-x cal-china lunar solar cal-dst holidays holiday-loaddefs
cal-menu calendar cal-loaddefs pyim-basedict pyim-cregexp-utils
easy-mmode pyim pyim-cloudim pyim-probe pyim-preview pyim-page popup
cl-extra posframe pyim-indicator pyim-dregcache pyim-dhashcache sort
pyim-dict async pyim-autoselector pyim-process pyim-punctuation
pyim-outcome pyim-candidates pyim-cstring pyim-cregexp pcase xr
pyim-codes pyim-imobjs pyim-pinyin pyim-entered pyim-dcache pyim-pymap
pyim-scheme pyim-common wdired dired dired-loaddefs vc vc-dispatcher
consult-vertico consult compat-28 compat compat-macs kmacro orderless
vertico-directory vertico savehist tab-line switch-window
switch-window-mvborder switch-window-asciiart quail so-long elec-pair
bookmark text-property-search pixel-scroll cua-base tramp-cache
time-stamp tramp-sh tramp tramp-loaddefs trampver tramp-integration
cus-edit pp cus-load icons files-x tramp-compat rx shell pcomplete
comint ansi-osc ansi-color parse-time iso8601 time-date ls-lisp
format-spec recentf tree-widget wid-edit elpa-mirror finder-inf
vertico-autoloads org-ql-autoloads f-autoloads ov-autoloads
peg-autoloads aggressive-indent-autoloads magit-autoloads
git-commit-autoloads orderless-autoloads cnfonts-autoloads
modus-themes-autoloads consult-autoloads magit-section-autoloads
org-download-autoloads org-super-agenda-autoloads ht-autoloads
paredit-autoloads pos-tip-autoloads switch-window-autoloads ts-autoloads
s-autoloads geiser-guile-autoloads geiser-impl help-fns radix-tree
help-mode geiser-custom geiser-base ring transient-autoloads
with-editor-autoloads xmlgen-autoloads wrap-region-autoloads
wgrep-autoloads vundo-autoloads recentf-ext-autoloads
rainbow-mode-autoloads rainbow-delimiters-autoloads
pyim-basedict-autoloads citre-autoloads compat-autoloads cape-autoloads
emms-autoloads org-contrib-autoloads ox-gfm-autoloads guix-autoloads
geiser-autoloads bui-autoloads edit-indirect-autoloads
marginalia-autoloads flycheck-autoloads pkg-info-autoloads epl-autoloads
elpa-mirror-autoloads el2org-autoloads ebdb-i18n-chn-autoloads
ebdb-autoloads pyim-autoloads async-autoloads markdown-mode-autoloads
xr-autoloads dired-ranger-autoloads dired-hacks-utils-autoloads
dash-autoloads ef-themes-autoloads tempel-autoloads projectile-autoloads
cal-china-x-autoloads autopair-autoloads info corfu-autoloads
adaptive-wrap-autoloads package browse-url 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 password-cache json subr-x map byte-opt gv
bytecomp byte-compile url-vars cl-loaddefs cl-lib china-util rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd 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 inotify lcms2 dynamic-setting system-font-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 762447 82408)
 (symbols 48 50073 10)
 (strings 32 190223 24390)
 (string-bytes 1 6414991)
 (vectors 16 88894)
 (vector-slots 8 1798945 61443)
 (floats 8 1218 338)
 (intervals 56 1289 46)
 (buffers 984 13))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59088; Package emacs. (Thu, 15 Dec 2022 10:16:02 GMT) Full text and rfc822 format available.

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

From: Philip Kaludercic <philipk <at> posteo.net>
To: Feng Shu <tumashu <at> 163.com>
Cc: 59088 <at> debbugs.gnu.org
Subject: Re: bug#59088: 29.0.50; void-function package-vc-update when first
 run package-update-all.
Date: Thu, 15 Dec 2022 10:15:03 +0000
Feng Shu <tumashu <at> 163.com> writes:

> Debugger entered--Lisp error: (void-function package-vc-update)
>   package-vc-update(#s(package-desc :name pyim :version (5 2 8) :summary "A Chinese input method support quanpin, shuangpin,..." :reqs ((emacs (25 1)) (async (1 6)) (xr (1 13))) :kind vc :archive nil :dir "/home/feng/.emacs.d/elpa-29/pyim" :extras ((:url . "https://github.com/tumashu/pyim") (:keywords "convenience" "chinese" "pinyin" "input-method") (:maintainer "Feng Shu" . "tumashu <at> 163.com") (:authors ("Ye Wenbin" . "wenbinye <at> 163.com") ("Feng Shu" . "tumashu <at> 163.com")) (:commit . "8c4f7d40c05dc06b3c96c2955e5d72ec268f2b61")) :signed nil))
>   package-update(pyim)
>   mapc(package-update (pyim))
>   package-update-all(t)
>   funcall-interactively(package-update-all t)
>   call-interactively(package-update-all record nil)
>   command-execute(package-update-all record)
>   execute-extended-command(nil "package-update-all" nil)
>   funcall-interactively(execute-extended-command nil "package-update-all" nil)
>   call-interactively(execute-extended-command nil nil)
>   command-execute(execute-extended-command)

The function has been autoloaded, so this shouldn't occur any more:

  commit 17889dd828dabc8d4a015c3df889799818178afb
  Author: Philip Kaludercic <philipk <at> posteo.net>
  Date:   Thu Nov 17 17:39:46 2022 +0100

      * lisp/emacs-lisp/package-vc.el: Autoload package-vc-update{,-all}

  diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
  --- a/lisp/emacs-lisp/package-vc.el
  +++ b/lisp/emacs-lisp/package-vc.el
  @@ -573,35 +574,36 @@

  +;;;###autoload
   (defun package-vc-update (pkg-desc)
     "Attempt to update the package PKG-DESC."
     (interactive (list (package-vc--read-package-desc "Update source package: " t)))
     ;; HACK: To run `package-vc--unpack-1' after checking out the new
     ;; revision, we insert a hook into `vc-post-command-functions', and
     ;; remove it right after it ran.  To avoid running the hook multiple
     ;; times or even for the wrong repository (as `vc-pull' is often
     ;; asynchronous), we extract the relevant arguments using a pseudo
     ;; filter for `vc-filter-command-function', executed only for the
     ;; side effect, and store them in the lexical scope.  When the hook
     ;; is run, we check if the arguments are the same (`eq') as the ones
     ;; previously extracted, and only in that case will be call
     ;; `package-vc--unpack-1'.  Ugh...
     ;;
     ;; If there is a better way to do this, it should be done.
     (cl-assert (package-vc-p pkg-desc))
     (letrec ((pkg-dir (package-desc-dir pkg-desc))
              (vc-flags)
              (vc-filter-command-function
               (lambda (command file-or-list flags)
                 (setq vc-flags flags)
                 (list command file-or-list flags)))
              (post-upgrade
               (lambda (_command _file-or-list flags)
                 (when (and (file-equal-p pkg-dir default-directory)
                            (eq flags vc-flags))
                   (unwind-protect
                       (with-demoted-errors "Failed to activate: %S"
                         (package-vc--unpack-1 pkg-desc pkg-dir))
                     (remove-hook 'vc-post-command-functions post-upgrade))))))
       (add-hook 'vc-post-command-functions post-upgrade)
       (with-demoted-errors "Failed to fetch: %S"
         (let ((default-directory pkg-dir))
           (vc-pull)))))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59088; Package emacs. (Thu, 15 Dec 2022 10:38:02 GMT) Full text and rfc822 format available.

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

From: Feng Shu <tumashu <at> 163.com>
To: Philip Kaludercic <philipk <at> posteo.net>
Cc: 59088 <at> debbugs.gnu.org
Subject: Re: bug#59088: 29.0.50; void-function package-vc-update when first
 run package-update-all.
Date: Thu, 15 Dec 2022 18:37:50 +0800
Philip Kaludercic <philipk <at> posteo.net> writes:

> Feng Shu <tumashu <at> 163.com> writes:
>
>> Debugger entered--Lisp error: (void-function package-vc-update)
>>   package-vc-update(#s(package-desc :name pyim :version (5 2 8)
>> :summary "A Chinese input method support quanpin, shuangpin,..."
>> :reqs ((emacs (25 1)) (async (1 6)) (xr (1 13))) :kind vc :archive
>> nil :dir "/home/feng/.emacs.d/elpa-29/pyim" :extras ((:url
>> . "https://github.com/tumashu/pyim") (:keywords "convenience"
>> "chinese" "pinyin" "input-method") (:maintainer "Feng Shu"
>> . "tumashu <at> 163.com") (:authors ("Ye Wenbin" . "wenbinye <at> 163.com")
>> ("Feng Shu" . "tumashu <at> 163.com")) (:commit
>> . "8c4f7d40c05dc06b3c96c2955e5d72ec268f2b61")) :signed nil))
>>   package-update(pyim)
>>   mapc(package-update (pyim))
>>   package-update-all(t)
>>   funcall-interactively(package-update-all t)
>>   call-interactively(package-update-all record nil)
>>   command-execute(package-update-all record)
>>   execute-extended-command(nil "package-update-all" nil)
>>   funcall-interactively(execute-extended-command nil "package-update-all" nil)
>>   call-interactively(execute-extended-command nil nil)
>>   command-execute(execute-extended-command)
>
> The function has been autoloaded, so this shouldn't occur any more:
>
>   commit 17889dd828dabc8d4a015c3df889799818178afb
>   Author: Philip Kaludercic <philipk <at> posteo.net>
>   Date:   Thu Nov 17 17:39:46 2022 +0100
>
>       * lisp/emacs-lisp/package-vc.el: Autoload package-vc-update{,-all}
>
>   diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
>   --- a/lisp/emacs-lisp/package-vc.el
>   +++ b/lisp/emacs-lisp/package-vc.el
>   @@ -573,35 +574,36 @@
>
>   +;;;###autoload
>    (defun package-vc-update (pkg-desc)
>      "Attempt to update the package PKG-DESC."
>      (interactive (list (package-vc--read-package-desc "Update source package: " t)))
>      ;; HACK: To run `package-vc--unpack-1' after checking out the new
>      ;; revision, we insert a hook into `vc-post-command-functions', and
>      ;; remove it right after it ran.  To avoid running the hook multiple
>      ;; times or even for the wrong repository (as `vc-pull' is often
>      ;; asynchronous), we extract the relevant arguments using a pseudo
>      ;; filter for `vc-filter-command-function', executed only for the
>      ;; side effect, and store them in the lexical scope.  When the hook
>      ;; is run, we check if the arguments are the same (`eq') as the ones
>      ;; previously extracted, and only in that case will be call
>      ;; `package-vc--unpack-1'.  Ugh...
>      ;;
>      ;; If there is a better way to do this, it should be done.
>      (cl-assert (package-vc-p pkg-desc))
>      (letrec ((pkg-dir (package-desc-dir pkg-desc))
>               (vc-flags)
>               (vc-filter-command-function
>                (lambda (command file-or-list flags)
>                  (setq vc-flags flags)
>                  (list command file-or-list flags)))
>               (post-upgrade
>                (lambda (_command _file-or-list flags)
>                  (when (and (file-equal-p pkg-dir default-directory)
>                             (eq flags vc-flags))
>                    (unwind-protect
>                        (with-demoted-errors "Failed to activate: %S"
>                          (package-vc--unpack-1 pkg-desc pkg-dir))
>                      (remove-hook 'vc-post-command-functions post-upgrade))))))
>        (add-hook 'vc-post-command-functions post-upgrade)
>        (with-demoted-errors "Failed to fetch: %S"
>          (let ((default-directory pkg-dir))
>            (vc-pull)))))

works!
-- 





Reply sent to Philip Kaludercic <philipk <at> posteo.net>:
You have taken responsibility. (Thu, 15 Dec 2022 13:00:01 GMT) Full text and rfc822 format available.

Notification sent to Feng Shu <tumashu <at> 163.com>:
bug acknowledged by developer. (Thu, 15 Dec 2022 13:00:02 GMT) Full text and rfc822 format available.

Message #16 received at 59088-done <at> debbugs.gnu.org (full text, mbox):

From: Philip Kaludercic <philipk <at> posteo.net>
To: Feng Shu <tumashu <at> 163.com>
Cc: 59088-done <at> debbugs.gnu.org
Subject: Re: bug#59088: 29.0.50; void-function package-vc-update when first
 run package-update-all.
Date: Thu, 15 Dec 2022 12:59:12 +0000
Feng Shu <tumashu <at> 163.com> writes:

> Philip Kaludercic <philipk <at> posteo.net> writes:
>
>> Feng Shu <tumashu <at> 163.com> writes:
>>
>>> Debugger entered--Lisp error: (void-function package-vc-update)
>>>   package-vc-update(#s(package-desc :name pyim :version (5 2 8)
>>> :summary "A Chinese input method support quanpin, shuangpin,..."
>>> :reqs ((emacs (25 1)) (async (1 6)) (xr (1 13))) :kind vc :archive
>>> nil :dir "/home/feng/.emacs.d/elpa-29/pyim" :extras ((:url
>>> . "https://github.com/tumashu/pyim") (:keywords "convenience"
>>> "chinese" "pinyin" "input-method") (:maintainer "Feng Shu"
>>> . "tumashu <at> 163.com") (:authors ("Ye Wenbin" . "wenbinye <at> 163.com")
>>> ("Feng Shu" . "tumashu <at> 163.com")) (:commit
>>> . "8c4f7d40c05dc06b3c96c2955e5d72ec268f2b61")) :signed nil))
>>>   package-update(pyim)
>>>   mapc(package-update (pyim))
>>>   package-update-all(t)
>>>   funcall-interactively(package-update-all t)
>>>   call-interactively(package-update-all record nil)
>>>   command-execute(package-update-all record)
>>>   execute-extended-command(nil "package-update-all" nil)
>>>   funcall-interactively(execute-extended-command nil "package-update-all" nil)
>>>   call-interactively(execute-extended-command nil nil)
>>>   command-execute(execute-extended-command)
>>
>> The function has been autoloaded, so this shouldn't occur any more:
>>
>>   commit 17889dd828dabc8d4a015c3df889799818178afb
>>   Author: Philip Kaludercic <philipk <at> posteo.net>
>>   Date:   Thu Nov 17 17:39:46 2022 +0100
>>
>>       * lisp/emacs-lisp/package-vc.el: Autoload package-vc-update{,-all}
>>
>>   diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
>>   --- a/lisp/emacs-lisp/package-vc.el
>>   +++ b/lisp/emacs-lisp/package-vc.el
>>   @@ -573,35 +574,36 @@
>>
>>   +;;;###autoload
>>    (defun package-vc-update (pkg-desc)
>>      "Attempt to update the package PKG-DESC."
>>      (interactive (list (package-vc--read-package-desc "Update source package: " t)))
>>      ;; HACK: To run `package-vc--unpack-1' after checking out the new
>>      ;; revision, we insert a hook into `vc-post-command-functions', and
>>      ;; remove it right after it ran.  To avoid running the hook multiple
>>      ;; times or even for the wrong repository (as `vc-pull' is often
>>      ;; asynchronous), we extract the relevant arguments using a pseudo
>>      ;; filter for `vc-filter-command-function', executed only for the
>>      ;; side effect, and store them in the lexical scope.  When the hook
>>      ;; is run, we check if the arguments are the same (`eq') as the ones
>>      ;; previously extracted, and only in that case will be call
>>      ;; `package-vc--unpack-1'.  Ugh...
>>      ;;
>>      ;; If there is a better way to do this, it should be done.
>>      (cl-assert (package-vc-p pkg-desc))
>>      (letrec ((pkg-dir (package-desc-dir pkg-desc))
>>               (vc-flags)
>>               (vc-filter-command-function
>>                (lambda (command file-or-list flags)
>>                  (setq vc-flags flags)
>>                  (list command file-or-list flags)))
>>               (post-upgrade
>>                (lambda (_command _file-or-list flags)
>>                  (when (and (file-equal-p pkg-dir default-directory)
>>                             (eq flags vc-flags))
>>                    (unwind-protect
>>                        (with-demoted-errors "Failed to activate: %S"
>>                          (package-vc--unpack-1 pkg-desc pkg-dir))
>>                      (remove-hook 'vc-post-command-functions post-upgrade))))))
>>        (add-hook 'vc-post-command-functions post-upgrade)
>>        (with-demoted-errors "Failed to fetch: %S"
>>          (let ((default-directory pkg-dir))
>>            (vc-pull)))))
>
> works!

Marked as closed.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 13 Jan 2023 12:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 94 days ago.

Previous Next


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