Subject: bug#47072: 28.0.50; Package package can't be reloaded anymore

From: Julian Scheid <[email-masked]>
Date: Thu, 11 Mar 2021 11:16:36 +0000

This used to work not long ago:

emacs -Q --batch --eval "(progn (require 'package) (unload-feature 'package) (require 'package))"

Now it breaks with:

Debugger entered--Lisp error: (void-variable package-user-dir)
  require(package)
  (progn (require 'package) (unload-feature 'package) (require 'package))
  eval((progn (require 'package) (unload-feature 'package) (require 'package)) t)
  command-line-1(("--eval" "(progn (require 'package) (unload-feature 'package..."))
  command-line()
  normal-top-level()

Which in turn breaks my fix for
https://github.com/alphapapa/makem.sh/issues/31

If this is something that can't/won't be fixed, could you recommend a
workaround?

In GNU Emacs 28.0.50 (build 14, x86_64-apple-darwin19.6.0, NS appkit-1894.60 Version 10.15.7 (Build 19H524))
 of 2021-03-11 built on foo
Repository revision: 053abfe6e9a35a76b7f0af866a6336fb35d959f9
Repository branch: master
Windowing system distributor 'Apple', version 10.3.1894
System Description:  Mac OS X 10.15.7

Configured features:
ACL DBUS GIF GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY KQUEUE
NS PDUMPER PNG THREADS TIFF TOOLKIT_SCROLL_BARS XIM ZLIB

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

Major mode: ELisp/l

Minor modes in effect:
  bug-reference-prog-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  auto-revert-mode: t
  shell-dirtrack-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  delete-selection-mode: t
  savehist-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(bug-reference eieio-opt speedbar ezimage dframe shortdoc loadhist
sh-script smie help-fns radix-tree misearch multi-isearch gnus-cite
flyspell ispell gnus-async qp gnus-ml nndraft nnmh nnfolder utf-7
executable gnus-agent gnus-srvr gnus-score score-mode nnvirtual
gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig nntp
gnus-cache gnus-sum shr kinsoku svg dom gnus-group gnus-undo
gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source
utf7 netrc nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader
gnutls mail-extr vc-git vc-dispatcher pp shadow emacsbug flycheck-cask
smtpmail sendmail lsp-ui lsp-ui-flycheck lsp-ui-doc goto-addr
lsp-ui-imenu lsp-ui-peek lsp-ui-sideline face-remap lsp-ui-util
string-inflection lsp-mode lsp-protocol es-mode request js cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs yasnippet xref project tree-widget wid-edit spinner
pcase network-stream nsm markdown-mode edit-indirect noutline outline
lv inline ht ewoc compile bindat multiple-cursors
mc-separate-operations rectangular-region-mode mc-mark-pop
mc-edit-lines mc-hide-unmatched-lines-mode mc-mark-more thingatpt
mc-cycle-cursors multiple-cursors-core rect magit-submodule
magit-obsolete 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 magit-diff smerge-mode diff diff-mode git-commit
log-edit easy-mmode message rmc puny dired dired-loaddefs rfc822 mml
mml-sec gnus-util rmail rmail-loaddefs text-property-search mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
pcvs-util add-log magit-core magit-autorevert autorevert filenotify
magit-margin magit-transient magit-process with-editor magit-mode
transient cl-extra magit-git magit-section magit-utils crm server
tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat
shell pcomplete parse-time iso8601 time-date ls-lisp format-spec
flycheck find-func help-mode web-mode advice disp-table epa-file epa
derived epg epg-config edmacro kmacro delsel ido savehist coffee-mode
comint ansi-color ring f dash s exec-path-from-shell finder-inf
sanityinc-tomorrow-night-theme color-theme-sanityinc-tomorrow color rx
info package browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip
eldoc electric uniquify ediff-hook vc-hooks lisp-float-type 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 elisp-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 facemenu font-core term/tty-colors frame
minibuffer cl-generic 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 charscript charprop case-table epa-hook jka-cmpr-hook help
simple abbrev obarray cl-preloaded nadvice button loaddefs faces
cus-face macroexp files window text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind kqueue cocoa ns lcms2 multi-tty
make-network-process emacs)

Memory information:
((conses 16 540190 152740)
 (symbols 48 44238 117)
 (strings 32 178016 7085)
 (string-bytes 1 5463424)
 (vectors 16 79009)
 (vector-slots 8 1583591 177291)
 (floats 8 476 539)
 (intervals 56 5208 175)
 (buffers 992 27))