Subject: 27.0.50; package-install of package with unversioned Package-Requires fails due to unsatisfiable requirements

From: Alex Bennée <[email-masked]>
Date: Tue, 03 Dec 2019 16:02:40 +0000

I originally triggered this bug while trying to upgrade packages from
MELPA however I can replicate by browsing to the file lusty-explorer
from the repo and executing M-x package-install-file. According to the
docs the line:

  ;; Package-Requires: (cl-lib dired)

is valid and the version should be defined as 0 - however this somehow
gets converted into trying to install dired-0. The following is the
relevant dumps from my logs:

In GNU Emacs 27.0.50 (build 13, x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2019-12-03 built on zen
Repository revision: 16ce6dbef279bda70b4d60b4d2d0aff008bfa5f7
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12004000
System Description: Debian GNU/Linux 10 (buster)

Recent messages:
Searched 1/1 files
#s(package-desc lusty-explorer (3 1) "Dynamic filesystem explorer and buffer switcher" ((cl-lib (0)) (dired (0))) single nil nil ((:keywords "convenience" "files" "matching" "tools") (:url . "https://github.com/sjbach/lusty-emacs")) nil)
uncompressing package.el.gz...done
uncompressing package.el.gz...done
Searched 0/1 files
Searched 1/1 files
#s(package-desc lusty-explorer (3 1) "Dynamic filesystem explorer and buffer switcher" ((cl-lib (0)) (dired (0))) single nil nil ((:keywords "convenience" "files" "matching" "tools") (:url . "https://github.com/sjbach/lusty-emacs")) nil)
[mu4e] Update process returned with non-zero exit code
[]Show []Show verbose [q]Close [c]Copy hash []Diff [M-w]Copy message [,]Go Parent [q]Quit  [2 times]
Quit [3 times]
package-compute-transaction: Package ‘dired-0’ is unavailable
Configured using:
 'configure --with-x-toolkit=lucid --prefix=/home/alex/src/emacs/install
 --with-modules --with-imagemagick'

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

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

Major mode: elisp

Minor modes in effect:
  pyvenv-mode: t
  midnight-mode: t
  recentf-mode: t
  circe-lagmon-mode: t
  which-key-mode: t
  ws-butler-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-company-mode: t
  company-mode: t
  global-atomic-chrome-edit-mode: t
  global-edit-server-edit-mode: t
  winner-mode: t
  flycheck-mode: t
  show-paren-mode: t
  electric-pair-mode: t
  editorconfig-mode: t
  global-magit-file-mode: t
  magit-file-mode: t
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  shell-dirtrack-mode: t
  async-bytecomp-package-mode: t
  which-function-mode: t
  display-time-mode: t
  tracking-mode: t
  ivy-rich-mode: t
  counsel-mode: t
  ivy-mode: t
  delete-selection-mode: t
  global-auto-revert-mode: t
  savehist-mode: t
  override-global-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
  line-number-mode: t
  auto-fill-function: yas--auto-fill
  transient-mark-mode: t

Load-path shadows:
/home/alex/mysrc/edit-with-emacs.git/servers/edit-server hides /home/alex/.emacs.d/elpa/edit-server-20181016.1125/edit-server
/home/alex/.emacs.d/elpa/circe-20191202.1028/shorten hides /home/alex/.emacs.d/elpa/tracking-20171210.2102/shorten
/home/alex/.emacs.d/elpa/circe-20191202.1028/tracking hides /home/alex/.emacs.d/elpa/tracking-20171210.2102/tracking

Features:
(shadow emacsbug shr-color git-messenger popup pulse make-mode
package-recipe-mode package-build-badges package-build package-recipe
org-table ffap tabify elfeed-link elfeed-show elfeed-search elfeed-csv
elfeed elfeed-curl elfeed-log url-queue xml-query elfeed-db elfeed-lib
python-el-fgallina-expansions highlight-indentation elpy elpy-rpc pyvenv
elpy-shell elpy-profile elpy-django elpy-refactor cus-edit python
tramp-sh lusty-explorer em-unix em-term term disp-table ehelp em-script
em-prompt em-ls em-dirs esh-var em-basic em-banner em-alias em-hist
em-pred eshell macrostep-c cmacexp macrostep mm-archive helm-descbinds
bug-reference org-agenda org-capture magit-imenu git-rebase magit-extras
epa-file mailalias face-remap sort gnus-cite mail-extr qp midnight
expand-region text-mode-expansions cc-mode-expansions
the-org-mode-expansions js-mode-expansions er-basic-expansions
expand-region-core expand-region-custom multiple-cursors-core rect
helm-elisp helm-files helm-buffers helm-occur helm-tags helm-locate
helm-grep helm-regexp helm-eval helm-info helm-utils helm-types
helm-help two-column iso-transl cl-print debug helpful trace edebug
backtrace info-look help-fns radix-tree elisp-refs loop vc vc-dispatcher
recentf circe-lagmon cursor-sensor circe-chanop circe-color-nicks circe
lui-irc-colors irc make-tls-process lcs lui-format circe-compat
which-key keychain-environment golden-ratio mule-util ace-window avy
term/screen term/xterm xterm mu4e desktop frameset mu4e-speedbar
speedbar sb-image ezimage dframe mu4e-main mu4e-view mu4e-headers
mu4e-compose mu4e-context mu4e-draft mu4e-actions ido rfc2368 smtpmail
sendmail mu4e-mark mu4e-message flow-fill mu4e-proc mu4e-utils
mu4e-lists mu4e-vars hl-line mu4e-meta ws-butler company-oddmuse
company-keywords company-etags etags fileloop company-gtags
company-template company-dabbrev-code company-dabbrev company-files
company-capf company-cmake company-lsp lsp-mode yasnippet ewoc
tree-widget spinner network-stream inline ht f em-glob flymake-proc
flymake warnings company pcase atomic-chrome websocket bindat let-alist
edit-server init my-diff my-circe lui flyspell tls gnutls my-eshell
my-htmlize my-gpg auth-source-pass my-spell ispell my-tramp my-yasnippet
my-company my-local-pkgs json-mode json-reformat json-snatcher js
xml-rpc timezone url-http url-auth url-gw nsm my-keyhelp my-dired
dired-rsync s tramp tramp-loaddefs trampver tramp-integration files-x
tramp-compat dired-quick-sort ls-lisp dired-async dired-aux my-buffer
my-windows winner windmove my-toggles whitespace my-org ess ess-utils
ess-custom ob-python ob-makefile ob-ditaa ob-dot ob-C cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
ob-perl ob-gnuplot ob-shell org-rmail org-mhe org-irc org-info org-gnus
org-docview doc-view jka-compr image-mode exif org-bibtex bibtex
org-bbdb org-w3m editorconfig-core editorconfig-core-handle
editorconfig-fnmatch ob-restclient restclient ox-jira org-re-reveal
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
ox-html table ox-ascii ox-publish ox org-clock org-mu4e org-element
avl-tree generator org org-macro org-footnote org-pcomplete org-list
org-faces org-entities org-version ob-emacs-lisp ob ob-tangle org-src
ob-ref ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval
org-compat org-macs org-loaddefs cal-menu calendar cal-loaddefs ob-async
magit-bookmark bookmark pp my-python my-elisp my-flycheck flycheck-irony
irony-diagnostics flycheck-checkpatch flycheck-package package-lint
finder lisp-mnt flycheck find-func my-devel paren elec-pair
markdown-mode noutline outline yaml-mode asm-mode fish-completion
em-cmpl esh-mode esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg
esh-module esh-groups esh-util fish-mode gxref my-c-mode irony-eldoc
irony-completion irony-snippet irony irony-iotask editorconfig my-gnus
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 nnir gnus-sum
url url-proxy url-privacy url-expand url-methods url-history mailcap shr
url-cookie url-domsuf url-util svg xml dom gnus-group gnus-undo
gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc parse-time
iso8601 gnus-spec gnus-int gnus-range gnus-win gnus wid-edit nnoo
nnheader my-git git-timemachine vc-git 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 magit-diff smerge-mode diff
magit-core magit-autorevert magit-margin magit-transient magit-process
magit-mode transient git-commit magit-git magit-section magit-utils crm
log-edit message rmc puny format-spec rfc822 mml mml-sec epa derived epg
epg-config gnus-util rmail rmail-loaddefs text-property-search time-date
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 with-editor shell pcomplete server my-find wgrep-helm
wgrep grep my-helm helm-themes helm helm-source eieio-compat
helm-multi-match helm-lib helm-config helm-easymenu async-bytecomp
my-email mu4e-patch diff-mode my-editing region-bindings-mode my-hydra
my-compat my-edit-server my-atomic-chrome my-web my-modeline which-func
imenu time smart-mode-line rich-minority smart-mode-line-powerline-theme
my-tracking tracking shorten my-display solarized-theme solarized
solarized-faces zenburn-theme moe-dark-theme moe-theme powerline advice
powerline-separators powerline-themes unicode-fonts ivy-rich cus-start
cus-load my-basic-modes counsel xdg xref project dired dired-loaddefs
compile comint ansi-color swiper ivy-hydra hydra lv ivy flx delsel ring
colir color ivy-overlay autorevert filenotify savehist my-libs async
diminish fn dash-functional dash my-keybinds my-config my-package
cl-extra help-mode use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key easy-mmode
use-package-core finder-inf my-vars my-utils edmacro kmacro thingatpt
my-paths rx cl info package easymenu browse-url 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 tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type 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 elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch 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 loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 1749124 223962)
 (symbols 48 67543 50)
 (strings 32 408607 51681)
 (string-bytes 1 13265459)
 (vectors 16 155077)
 (vector-slots 8 3230738 136800)
 (floats 8 1761 1725)
 (intervals 56 91123 11878)
 (buffers 1000 244))

-- 
Alex Bennée