And here is the compile-log I got after installing the package on Emacs 27.1: --8<---------------cut here---------------start------------->8--- Compiling file /home/philip/.config/emacs/elpa/package-1.1.1/package.el at Fri Apr 7 11:58:06 2023 Entering directory ‘/home/philip/.config/emacs/elpa/package-1.1.1/’ In package-tar-file-info: package.el:1243:8:Warning: ‘(filename (tar-header-name (car tar-parse-info)))’ is a malformed function package.el:1247:31:Warning: reference to free variable ‘loop’ package.el:1249:58:Warning: reference to free variable ‘filename’ In package-menu-toggle-hiding: package.el:3208:4:Warning: malformed interactive spec: (interactive nil package-menu-mode) In package-menu-hide-package: package.el:3556:4:Warning: malformed interactive spec: (interactive nil package-menu-mode) In package-menu-describe-package: package.el:3580:4:Warning: malformed interactive spec: (interactive nil package-menu-mode) In package-menu-mark-delete: package.el:3590:4:Warning: malformed interactive spec: (interactive "p" package-menu-mode) In package-menu-mark-install: package.el:3599:4:Warning: malformed interactive spec: (interactive "p" package-menu-mode) In package-menu-mark-unmark: package.el:3607:4:Warning: malformed interactive spec: (interactive "p" package-menu-mode) In package-menu-backup-unmark: package.el:3613:4:Warning: malformed interactive spec: (interactive nil package-menu-mode) In package-menu-mark-obsolete-for-deletion: package.el:3620:4:Warning: malformed interactive spec: (interactive nil package-menu-mode) In package-menu-quick-help: package.el:3652:4:Warning: malformed interactive spec: (interactive nil package-menu-mode) In package-menu-mark-upgrades: package.el:3745:4:Warning: malformed interactive spec: (interactive nil package-menu-mode) In package-menu-execute: package.el:3870:4:Warning: malformed interactive spec: (interactive nil package-menu-mode) In package-menu-filter-by-archive: package.el:4127:4:Warning: malformed interactive spec: (interactive (list (completing-read-multiple "Filter by archive (comma separated): " (mapcar #'car package-archives))) package-menu-mode) In package-menu-filter-by-description: package.el:4149:4:Warning: malformed interactive spec: (interactive (list (read-regexp "Filter by description (regexp)")) package-menu-mode) In package-menu-filter-by-keyword: package.el:4169:4:Warning: malformed interactive spec: (interactive (list (completing-read-multiple "Keywords (comma separated): " (package-all-keywords))) package-menu-mode) In package-menu-filter-by-name-or-description: package.el:4194:4:Warning: malformed interactive spec: (interactive (list (read-regexp "Filter by name or description (regexp)")) package-menu-mode) In package-menu-filter-by-name: package.el:4214:4:Warning: malformed interactive spec: (interactive (list (read-regexp "Filter by name (regexp)")) package-menu-mode) In package-menu-filter-by-status: package.el:4234:4:Warning: malformed interactive spec: (interactive (list (completing-read "Filter by status: " '("avail-obso" "available" "built-in" "dependency" "disabled" "external" "held" "incompat" "installed" "source" "new" "unsigned"))) package-menu-mode) In package-menu-filter-by-version: package.el:4273:4:Warning: malformed interactive spec: (interactive (let ((choice (intern (char-to-string (read-char-choice "Filter by version? [Type =, <, > or q] " '(60 62 61 113)))))) (if (eq choice 'q) '(quit nil) (list (read-from-minibuffer (concat "Filter by version (" (cond ((eq choice '=) "= equal to") ((eq choice '<) "< less than") ((eq choice '>) "> greater than") (t nil)) "): ")) choice))) package-menu-mode) In package-menu-filter-marked: package.el:4307:4:Warning: malformed interactive spec: (interactive nil package-menu-mode) In package-menu-filter-upgradable: package.el:4335:4:Warning: malformed interactive spec: (interactive nil package-menu-mode) In package-menu-clear-filter: package.el:4344:4:Warning: malformed interactive spec: (interactive nil package-menu-mode) In package-browse-url: package.el:4528:4:Warning: malformed interactive spec: (interactive (list (package--query-desc) current-prefix-arg) package-menu-mode) In package-report-bug: package.el:4571:4:Warning: malformed interactive spec: (interactive (list (package--query-desc package-alist)) package-menu-mode) package.el:4571:43:Warning: ‘(reporter-prompt-for-summary-p t)’ is a malformed function In end of data: package.el:4602:1:Warning: the following functions are not known to be defined: file-name-concat, length>, loaddefs-generate, native-compile-async, named-let, loop, length=, comp-clean-up-stale-eln, format-prompt, substitute-quotes, make-separator-line, defvar-keymap, ensure-list, macroexp-file-name, dlet --8<---------------cut here---------------end--------------->8--- The most common issue is that the interactive spec has to be revised to use only one argument. IIUC this can be replaced by a `declare' form with a `modes' entry? This also gives us a better picture of the unknown functions: - loaddefs-generate (not provided by Compat) - substitute-quotes (provided by Compat) - defvar-keymap (provided by Compat) I will take a look at what is necessary to back-port `loaddefs-generate' via Compat. -- Philip Kaludercic