GNU bug report logs - #78017
30.1.50; package-install-file with directory input is inconsistent with tarball, does not include subdirectories

Previous Next

Package: emacs;

Reported by: Aaron Zeng <azeng <at> janestreet.com>

Date: Wed, 23 Apr 2025 17:06:02 UTC

Severity: normal

Found in version 30.1.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 78017 in the body.
You can then email your comments to 78017 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#78017; Package emacs. (Wed, 23 Apr 2025 17:06:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Aaron Zeng <azeng <at> janestreet.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 23 Apr 2025 17:06:03 GMT) Full text and rfc822 format available.

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

From: Aaron Zeng <azeng <at> janestreet.com>
To: bug-gnu-emacs <at> gnu.org
Cc: app-emacs-dev <at> janestreet.com
Subject: 30.1.50; package-install-file with directory input is inconsistent
 with tarball, does not include subdirectories
Date: Wed, 23 Apr 2025 13:04:57 -0400
Installing a package from a local directory using package-install-file
gives inconsistent results with installing a tarball of that same
directory.  In particular, when called with a directory,
package-install-file copies only the top-level *.el files in that
directory to the ~/.emacs.d/elpa directory; whereas with a tarball, all
files in the tarball are included.

This is a particular problem for packages which include extra data
files, or packages which have Elisp files in subdirectories, such as
evil-collection:

from emacs -Q:

  (package-initialize)
  (package-refresh-contents)
  (package-install 'evil)
  (package-install-file "~/src/evil-collection/")

Then, M-x find-library evil-collection visits a directory which does not
include the modes/ subdirectory of evil-collection, and the package
obviously does not work.

My particular use-case for installing packages this way is that, at my
site, we have packages which are downloaded from ELPA but which
occasionally need some patches to be applied before installation.  We
extract the tarball and apply the patch, then call
package-install-file on the resulting directory.  While we can work
around this for now by re-archiving the directory after applying the
patch, and then calling package-install-file on the new tarball, it
would be less surprising if package-install-file just behaved more
consistently here.

In GNU Emacs 30.1.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.15.12, Xaw scroll bars) of 2025-04-10 built on
 igm-qws-u22796a
Repository revision: 4e44b22b45f8fc79e214550534557edaa39d852e
System Description: Rocky Linux 8.10 (Green Obsidian)

Configured using:
 'configure --config-cache --with-x-toolkit=lucid --without-gpm
 --without-gconf --without-selinux --without-imagemagick --with-modules
 --with-gif=no --with-cairo --with-rsvg --without-compress-install
 --with-tree-sitter --with-native-compilation=aot
 --prefix=/usr/local/home/garnish/raw-emacs/30-20250410_153814'

Configured features:
CAIRO DBUS FREETYPE GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG LIBSYSTEMD
LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP
SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM
XINPUT2 XPM LUCID ZLIB

Important settings:
  value of $EMACSLOADPATH: /usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/elisp:/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp:/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/lib/ecaml_plugin/bin:
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/azeng/.emacs.d/elpa/evil-collection-0.0.2/evil-collection-pkg hides /usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/evil-collection-0.0.10/evil-collection-pkg
/home/azeng/.emacs.d/elpa/evil-collection-0.0.2/evil-collection hides /usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/evil-collection-0.0.10/evil-collection
/home/azeng/.emacs.d/elpa/evil-collection-0.0.2/evil-collection-autoloads hides /usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/evil-collection-0.0.10/evil-collection-autoloads
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/helm-4.0.2/helm-x-icons hides /usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/helm-core-4.0.2/helm-x-icons
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/helm-4.0.2/helm-packages hides /usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/helm-core-4.0.2/helm-packages
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/magit-4.3.2/magit-autorevert hides /usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/magit-section-4.3.2/magit-autorevert
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/transient-0.8.7/transient hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/transient
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/eglot-1.18/eglot hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/progmodes/eglot
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-texinfo hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-texinfo
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-publish hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-publish
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-org hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-org
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-odt hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-odt
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-md hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-md
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-man hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-man
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-latex hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-latex
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-koma-letter hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-koma-letter
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-icalendar hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-icalendar
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-html hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-html
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-beamer hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-beamer
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ox-ascii hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ox-ascii
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-version hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-version
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-timer hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-timer
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-tempo hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-tempo
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-table hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-table
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-src hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-src
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-refile hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-refile
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-protocol hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-protocol
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-plot hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-plot
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-persist hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-persist
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-pcomplete hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-pcomplete
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-num hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-num
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-mouse hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-mouse
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-mobile hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-mobile
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-macs hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-macs
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-macro hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-macro
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-loaddefs hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-loaddefs
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-list hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-list
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-lint hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-lint
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-keys hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-keys
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-inlinetask hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-inlinetask
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-indent hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-indent
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-id hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-id
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-habit hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-habit
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-goto hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-goto
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-footnote hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-footnote
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-fold hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-fold
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-fold-core hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-fold-core
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-feed hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-feed
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-faces hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-faces
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-entities hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-entities
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-element hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-element
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-element-ast hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-element-ast
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-duration hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-duration
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-datetree hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-datetree
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-cycle hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-cycle
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-ctags hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-ctags
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-crypt hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-crypt
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-compat hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-compat
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-colview hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-colview
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-clock hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-clock
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-capture hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-capture
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-attach hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-attach
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-attach-git hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-attach-git
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-archive hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-archive
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/org-agenda hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/org-agenda
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-w3m hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-w3m
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-rmail hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-rmail
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-mhe hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-mhe
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-man hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-man
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-irc hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-irc
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-info hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-info
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-gnus hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-gnus
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-eww hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-eww
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-eshell hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-eshell
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-doi hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-doi
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-docview hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-docview
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-bibtex hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-bibtex
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ol-bbdb hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ol-bbdb
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/oc hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/oc
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/oc-natbib hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/oc-natbib
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/oc-csl hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/oc-csl
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/oc-bibtex hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/oc-bibtex
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/oc-biblatex hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/oc-biblatex
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/oc-basic hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/oc-basic
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-tangle hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-tangle
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-table hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-table
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-sqlite hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-sqlite
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-sql hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-sql
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-shell hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-shell
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-sed hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-sed
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-screen hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-screen
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-scheme hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-scheme
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-sass hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-sass
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-ruby hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-ruby
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-ref hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-ref
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-python hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-python
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-processing hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-processing
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-plantuml hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-plantuml
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-perl hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-perl
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-org hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-org
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-octave hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-octave
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-ocaml hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-ocaml
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-maxima hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-maxima
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-matlab hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-matlab
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-makefile hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-makefile
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-lua hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-lua
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-lob hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-lob
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-lisp hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-lisp
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-lilypond hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-lilypond
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-latex hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-latex
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-julia hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-julia
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-js hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-js
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-java hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-java
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-haskell hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-haskell
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-groovy hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-groovy
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-gnuplot hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-gnuplot
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-fortran hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-fortran
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-forth hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-forth
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-exp hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-exp
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-eval hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-eval
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-eshell hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-eshell
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-emacs-lisp hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-emacs-lisp
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-dot hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-dot
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-ditaa hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-ditaa
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-css hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-css
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-core hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-core
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-comint hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-comint
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-clojure hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-clojure
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-calc hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-calc
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-awk hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-awk
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-R hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-R
/usr/local/home/azeng/workspaces/24833141-bffb-3c99-a9d6-c366d37c4f5e/+share+/app/emacs/site-lisp/elpa/org-9.7.27/ob-C hides /usr/local/home/garnish/raw-emacs/30-20250410_153814/share/emacs/30.1.50/lisp/org/ob-C

Features:
(shadow sort mail-extr open-junk-file shortdoc package-x help-fns
emacsbug annalist evil evil-keybindings evil-integration evil-maps
evil-commands reveal evil-jumps evil-command-window evil-types
evil-search evil-ex evil-macros evil-repeat evil-states evil-core comp
comp-cstr cl-extra help-mode comp-run comp-common evil-common thingatpt
rect evil-vars edmacro kmacro warnings overseer pkg-info find-func epl
dash compile comint ansi-osc ansi-color ring loaddefs-gen radix-tree
lisp-mnt cus-edit pp cus-start cus-load wid-edit mm-archive message
sendmail yank-media dired dired-loaddefs rfc822 mml mml-sec epa derived
gnus-util text-property-search time-date mailabbrev gmm-utils mailheader
mm-decode mm-bodies mm-encode mail-utils gnutls network-stream url-cache
url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr url-gw nsm puny epg rfc6068 epg-config finder-inf
evil-collection-autoloads ace-jump-helm-line-autoloads
ace-link-autoloads aggressive-indent-autoloads ahk-mode-autoloads
all-the-icons-ivy-rich-autoloads annalist-autoloads
auto-compile-autoloads auto-dictionary-autoloads
auto-highlight-symbol-autoloads auto-yasnippet-autoloads
base16-theme-autoloads bash-completion-autoloads blacken-autoloads
browse-at-remote-autoloads centered-cursor-mode-autoloads
clean-aindent-mode-autoloads code-cells-autoloads
column-enforce-mode-autoloads company-box-autoloads
company-lua-autoloads company-posframe-autoloads
company-quickhelp-autoloads company-shell-autoloads
company-statistics-autoloads company-web-autoloads
consult-yasnippet-autoloads corfu-autoloads counsel-css-autoloads
counsel-projectile-autoloads counsel-autoloads
cpp-auto-include-autoloads csv-mode-autoloads dap-mode-autoloads
bui-autoloads debbugs-autoloads define-word-autoloads diff-hl-autoloads
diminish-autoloads dired-quick-sort-autoloads disable-mouse-autoloads
disaster-autoloads doom-modeline-autoloads doom-themes-autoloads
dotenv-mode-autoloads drag-stuff-autoloads eat-autoloads
edit-indirect-autoloads eldoc-box-autoloads elisp-def-autoloads
elisp-slime-nav-autoloads embark-consult-autoloads consult-autoloads
embark-autoloads emmet-mode-autoloads emr-autoloads
clang-format-autoloads esh-help-autoloads eshell-prompt-extras-autoloads
eshell-z-autoloads ess-autoloads eval-sexp-fu-autoloads
evil-anzu-autoloads anzu-autoloads evil-args-autoloads
evil-cleverparens-autoloads evil-easymotion-autoloads
evil-escape-autoloads evil-exchange-autoloads evil-goggles-autoloads
evil-iedit-state-autoloads evil-indent-plus-autoloads
evil-lion-autoloads evil-lisp-state-autoloads bind-map-autoloads
evil-matchit-autoloads evil-mc-autoloads evil-nerd-commenter-autoloads
evil-numbers-autoloads evil-org-autoloads evil-surround-autoloads
evil-textobj-line-autoloads evil-tutor-autoloads
evil-visual-mark-mode-autoloads evil-visualstar-autoloads
expand-region-autoloads explain-pause-mode-autoloads eyebrowse-autoloads
fish-mode-autoloads flx-autoloads flycheck-bashate-autoloads
flycheck-eglot-autoloads eglot-autoloads flycheck-elsa-autoloads
flycheck-package-autoloads flycheck-pos-tip-autoloads
flyspell-correct-helm-autoloads flyspell-correct-ivy-autoloads
flyspell-correct-popup-autoloads flyspell-correct-autoloads
flyspell-popup-autoloads frame-local-autoloads fzf-autoloads
gh-md-autoloads git-gutter-autoloads git-link-autoloads
git-messenger-autoloads git-modes-autoloads git-timemachine-autoloads
gitignore-templates-autoloads gnu-elpa-keyring-update-autoloads
gnuplot-autoloads golden-ratio-autoloads google-c-style-autoloads
gruvbox-theme-autoloads autothemer-autoloads haskell-mode-autoloads
hc-zenburn-theme-autoloads helm-ag-autoloads helm-c-yasnippet-autoloads
helm-comint-autoloads helm-company-autoloads company-autoloads
helm-css-scss-autoloads helm-descbinds-autoloads helm-git-grep-autoloads
helm-make-autoloads helm-mode-manager-autoloads helm-org-rifle-autoloads
helm-projectile-autoloads helm-purpose-autoloads helm-pydoc-autoloads
helm-swoop-autoloads helm-autoloads helm-themes-autoloads
helm-core-autoloads helpful-autoloads elisp-refs-autoloads
highlight-indentation-autoloads highlight-numbers-autoloads
highlight-parentheses-autoloads ibuffer-projectile-autoloads
iedit-autoloads impatient-mode-autoloads importmagic-autoloads
epc-autoloads ctable-autoloads concurrent-autoloads deferred-autoloads
indent-guide-autoloads ivy-avy-autoloads ivy-hydra-autoloads
ivy-purpose-autoloads ivy-rich-autoloads ivy-xref-autoloads
ivy-yasnippet-autoloads js-doc-autoloads js2-refactor-autoloads
json-mode-autoloads json-navigator-autoloads json-reformat-autoloads
json-snatcher-autoloads jsonnet-mode-autoloads ligature-autoloads
link-hint-autoloads livid-mode-autoloads lorem-ipsum-autoloads
lsp-docker-autoloads lsp-treemacs-autoloads lsp-mode-autoloads
lua-mode-autoloads macrostep-autoloads magit-gitflow-autoloads
magit-popup-autoloads magit-svn-autoloads magit-todos-autoloads
hl-todo-autoloads marginalia-autoloads markdown-toc-autoloads
material-theme-autoloads merlin-eldoc-autoloads merlin-autoloads
mode-line-bell-autoloads monokai-theme-autoloads multi-line-autoloads
multi-term-autoloads multiple-cursors-autoloads mwim-autoloads
nameless-autoloads nerd-icons-autoloads nix-mode-autoloads
nodejs-repl-autoloads npm-mode-autoloads ob-powershell-autoloads
ocaml-eglot-autoloads ocp-indent-autoloads open-junk-file-autoloads
orderless-autoloads org-appear-autoloads org-cliplink-autoloads
org-contrib-autoloads org-download-autoloads org-mime-autoloads
org-modern-autoloads org-pomodoro-autoloads org-present-autoloads
org-projectile-autoloads org-project-capture-autoloads
org-category-capture-autoloads org-re-reveal-autoloads htmlize-autoloads
org-rich-yank-autoloads org-roam-autoloads org-sticky-header-autoloads
org-superstar-autoloads org-transclusion-autoloads
org-wild-notifier-autoloads async-autoloads alert-autoloads
log4e-autoloads gntp-autoloads orgit-forge-autoloads orgit-autoloads
forge-autoloads ghub-autoloads closql-autoloads emacsql-autoloads
origami-autoloads overseer-autoloads ox-gfm-autoloads ox-jira-autoloads
org-autoloads package-lint-autoloads paradox-autoloads paredit-autoloads
parent-mode-autoloads pcre2el-autoloads persistent-scratch-autoloads
pip-requirements-autoloads pippel-autoloads pkg-info-autoloads
epl-autoloads poly-markdown-autoloads polymode-autoloads popup-autoloads
popwin-autoloads pos-tip-autoloads powershell-autoloads
prettier-js-autoloads protobuf-mode-autoloads pug-mode-autoloads
py-isort-autoloads pydoc-autoloads pytest-autoloads pyvenv-autoloads
quickrun-autoloads rainbow-delimiters-autoloads rg-autoloads
ron-mode-autoloads rustic-autoloads flycheck-autoloads
markdown-mode-autoloads rust-mode-autoloads sass-mode-autoloads
haml-mode-autoloads scss-mode-autoloads shell-pop-autoloads
shfmt-autoloads reformatter-autoloads shrink-path-autoloads f-autoloads
shut-up-autoloads skewer-mode-autoloads js2-mode-autoloads
simple-httpd-autoloads slim-mode-autoloads smartparens-autoloads
smeargle-autoloads smex-autoloads sml-mode-autoloads
solarized-theme-autoloads sphinx-doc-autoloads spinner-autoloads
string-edit-at-point-autoloads string-inflection-autoloads
swiper-autoloads ivy-autoloads symbol-overlay-autoloads
tagedit-autoloads term-cursor-autoloads terminal-here-autoloads
toc-org-autoloads toml-mode-autoloads treemacs-all-the-icons-autoloads
all-the-icons-autoloads treemacs-evil-autoloads evil-autoloads
goto-chg-autoloads treemacs-icons-dired-autoloads
treemacs-magit-autoloads magit-autoloads pcase transient-autoloads
magit-section-autoloads llama-autoloads treemacs-persp-autoloads
persp-mode-autoloads treemacs-projectile-autoloads treemacs-autoloads
cfrs-autoloads ht-autoloads hydra-autoloads lv-autoloads
pfuture-autoloads ace-window-autoloads avy-autoloads s-autoloads
projectile-autoloads treepy-autoloads typescript-mode-autoloads
undo-fu-autoloads undo-fu-session-autoloads unfill-autoloads
unicode-fonts-autoloads ucs-utils-autoloads font-utils-autoloads
persistent-soft-autoloads list-utils-autoloads pcache-autoloads
urgrep-autoloads utop-autoloads tuareg-autoloads rx uuidgen-autoloads
valign-autoloads vba-mode-autoloads verb-autoloads vertico-autoloads
vi-tilde-fringe-autoloads vmd-mode-autoloads
volatile-highlights-autoloads vundo-autoloads web-beautify-autoloads
web-completion-data-autoloads web-mode-autoloads wfnames-autoloads
wgrep-autoloads which-key-posframe-autoloads posframe-autoloads
window-purpose-autoloads imenu-list-autoloads winum-autoloads
dash-autoloads with-editor-autoloads info writeroom-mode-autoloads
visual-fill-column-autoloads ws-butler-autoloads xterm-color-autoloads
yaml-autoloads yasnippet-snippets-autoloads yasnippet-autoloads
zenburn-theme-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 icons password-cache json subr-x map url-vars
cl-loaddefs cl-lib term/xterm xterm byte-opt gv bytecomp byte-compile
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 touch-screen 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 dynamic-setting system-font-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 267759 58380) (symbols 48 19504 0) (strings 32 73817 5140)
 (string-bytes 1 2781566) (vectors 16 26103)
 (vector-slots 8 279917 9644) (floats 8 115 26) (intervals 56 875 0)
 (buffers 992 12))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78017; Package emacs. (Sat, 26 Apr 2025 13:30:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Aaron Zeng <azeng <at> janestreet.com>, Philip Kaludercic <philipk <at> posteo.net>
Cc: app-emacs-dev <at> janestreet.com, 78017 <at> debbugs.gnu.org
Subject: Re: bug#78017: 30.1.50;
 package-install-file with directory input is inconsistent with
 tarball, does not include subdirectories
Date: Sat, 26 Apr 2025 16:29:02 +0300
> Cc: app-emacs-dev <at> janestreet.com
> Date: Wed, 23 Apr 2025 13:04:57 -0400
> From:  Aaron Zeng via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> Installing a package from a local directory using package-install-file
> gives inconsistent results with installing a tarball of that same
> directory.  In particular, when called with a directory,
> package-install-file copies only the top-level *.el files in that
> directory to the ~/.emacs.d/elpa directory; whereas with a tarball, all
> files in the tarball are included.
> 
> This is a particular problem for packages which include extra data
> files, or packages which have Elisp files in subdirectories, such as
> evil-collection:
> 
> from emacs -Q:
> 
>   (package-initialize)
>   (package-refresh-contents)
>   (package-install 'evil)
>   (package-install-file "~/src/evil-collection/")
> 
> Then, M-x find-library evil-collection visits a directory which does not
> include the modes/ subdirectory of evil-collection, and the package
> obviously does not work.
> 
> My particular use-case for installing packages this way is that, at my
> site, we have packages which are downloaded from ELPA but which
> occasionally need some patches to be applied before installation.  We
> extract the tarball and apply the patch, then call
> package-install-file on the resulting directory.  While we can work
> around this for now by re-archiving the directory after applying the
> patch, and then calling package-install-file on the new tarball, it
> would be less surprising if package-install-file just behaved more
> consistently here.

Philip, any comments or suggestions?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78017; Package emacs. (Sat, 26 Apr 2025 21:04:02 GMT) Full text and rfc822 format available.

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

From: Philip Kaludercic <philipk <at> posteo.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: app-emacs-dev <at> janestreet.com, 78017 <at> debbugs.gnu.org,
 Aaron Zeng <azeng <at> janestreet.com>
Subject: Re: bug#78017: 30.1.50; package-install-file with directory input
 is inconsistent with tarball, does not include subdirectories
Date: Sat, 26 Apr 2025 21:03:24 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Cc: app-emacs-dev <at> janestreet.com
>> Date: Wed, 23 Apr 2025 13:04:57 -0400
>> From:  Aaron Zeng via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> 
>> Installing a package from a local directory using package-install-file
>> gives inconsistent results with installing a tarball of that same
>> directory.  In particular, when called with a directory,
>> package-install-file copies only the top-level *.el files in that
>> directory to the ~/.emacs.d/elpa directory; whereas with a tarball, all
>> files in the tarball are included.
>> 
>> This is a particular problem for packages which include extra data
>> files, or packages which have Elisp files in subdirectories, such as
>> evil-collection:
>> 
>> from emacs -Q:
>> 
>>   (package-initialize)
>>   (package-refresh-contents)
>>   (package-install 'evil)
>>   (package-install-file "~/src/evil-collection/")
>> 
>> Then, M-x find-library evil-collection visits a directory which does not
>> include the modes/ subdirectory of evil-collection, and the package
>> obviously does not work.
>> 
>> My particular use-case for installing packages this way is that, at my
>> site, we have packages which are downloaded from ELPA but which
>> occasionally need some patches to be applied before installation.  We
>> extract the tarball and apply the patch, then call
>> package-install-file on the resulting directory.  While we can work
>> around this for now by re-archiving the directory after applying the
>> patch, and then calling package-install-file on the new tarball, it
>> would be less surprising if package-install-file just behaved more
>> consistently here.
>
> Philip, any comments or suggestions?

The root cause for this appears to be that `package-dir-info' and
`package-unpack' call `directory-files' instead of
`directory-files-recursively'.  I don't know if we generally want to
do a deep copy of all files in a directory, but we could certainly add
that as a user option.

Until then, I just want to mention an alternative solution could be to
use `package-vc-install-from-checkout', if your system supports symbolic
links.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78017; Package emacs. (Sun, 27 Apr 2025 05:24:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Philip Kaludercic <philipk <at> posteo.net>
Cc: app-emacs-dev <at> janestreet.com, 78017 <at> debbugs.gnu.org, azeng <at> janestreet.com
Subject: Re: bug#78017: 30.1.50; package-install-file with directory input
 is inconsistent with tarball, does not include subdirectories
Date: Sun, 27 Apr 2025 08:22:51 +0300
> From: Philip Kaludercic <philipk <at> posteo.net>
> Cc: Aaron Zeng <azeng <at> janestreet.com>,  78017 <at> debbugs.gnu.org,
>   app-emacs-dev <at> janestreet.com
> Date: Sat, 26 Apr 2025 21:03:24 +0000
> 
> >> from emacs -Q:
> >> 
> >>   (package-initialize)
> >>   (package-refresh-contents)
> >>   (package-install 'evil)
> >>   (package-install-file "~/src/evil-collection/")
> >> 
> >> Then, M-x find-library evil-collection visits a directory which does not
> >> include the modes/ subdirectory of evil-collection, and the package
> >> obviously does not work.
> >> 
> >> My particular use-case for installing packages this way is that, at my
> >> site, we have packages which are downloaded from ELPA but which
> >> occasionally need some patches to be applied before installation.  We
> >> extract the tarball and apply the patch, then call
> >> package-install-file on the resulting directory.  While we can work
> >> around this for now by re-archiving the directory after applying the
> >> patch, and then calling package-install-file on the new tarball, it
> >> would be less surprising if package-install-file just behaved more
> >> consistently here.
> >
> > Philip, any comments or suggestions?
> 
> The root cause for this appears to be that `package-dir-info' and
> `package-unpack' call `directory-files' instead of
> `directory-files-recursively'.  I don't know if we generally want to
> do a deep copy of all files in a directory, but we could certainly add
> that as a user option.

What are the downsides of always copying the entire tree?  Are there
use cases where this will be unexpected?  If there are such cases,
then yes, this should be an option, and the documentation should
explain when to use it and its relation to installing from a tarball.

> Until then, I just want to mention an alternative solution could be to
> use `package-vc-install-from-checkout', if your system supports symbolic
> links.

The problem with symlinks is that on Windows whether they will work or
not depends on the user's privileges, and in quite a few cases
silently fails.  So I think we ought to fix this sooner rather than
later.

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78017; Package emacs. (Sun, 27 Apr 2025 12:34:02 GMT) Full text and rfc822 format available.

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

From: Philip Kaludercic <philipk <at> posteo.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: app-emacs-dev <at> janestreet.com, 78017 <at> debbugs.gnu.org, azeng <at> janestreet.com
Subject: Re: bug#78017: 30.1.50; package-install-file with directory input
 is inconsistent with tarball, does not include subdirectories
Date: Sun, 27 Apr 2025 12:33:10 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Philip Kaludercic <philipk <at> posteo.net>
>> Cc: Aaron Zeng <azeng <at> janestreet.com>,  78017 <at> debbugs.gnu.org,
>>   app-emacs-dev <at> janestreet.com
>> Date: Sat, 26 Apr 2025 21:03:24 +0000
>> 
>> >> from emacs -Q:
>> >> 
>> >>   (package-initialize)
>> >>   (package-refresh-contents)
>> >>   (package-install 'evil)
>> >>   (package-install-file "~/src/evil-collection/")
>> >> 
>> >> Then, M-x find-library evil-collection visits a directory which does not
>> >> include the modes/ subdirectory of evil-collection, and the package
>> >> obviously does not work.
>> >> 
>> >> My particular use-case for installing packages this way is that, at my
>> >> site, we have packages which are downloaded from ELPA but which
>> >> occasionally need some patches to be applied before installation.  We
>> >> extract the tarball and apply the patch, then call
>> >> package-install-file on the resulting directory.  While we can work
>> >> around this for now by re-archiving the directory after applying the
>> >> patch, and then calling package-install-file on the new tarball, it
>> >> would be less surprising if package-install-file just behaved more
>> >> consistently here.
>> >
>> > Philip, any comments or suggestions?
>> 
>> The root cause for this appears to be that `package-dir-info' and
>> `package-unpack' call `directory-files' instead of
>> `directory-files-recursively'.  I don't know if we generally want to
>> do a deep copy of all files in a directory, but we could certainly add
>> that as a user option.
>
> What are the downsides of always copying the entire tree?  Are there
> use cases where this will be unexpected?  If there are such cases,
> then yes, this should be an option, and the documentation should
> explain when to use it and its relation to installing from a tarball.

My fear is that there could be additional garbage lying around in a
directory, that one might not want to copy around.  But thinking about
it, I guess one can always "blame" that on the user, and it isn't an
irreversible action.  Instead of a user option, one could also check
what files are marked by Dired?

>> Until then, I just want to mention an alternative solution could be to
>> use `package-vc-install-from-checkout', if your system supports symbolic
>> links.
>
> The problem with symlinks is that on Windows whether they will work or
> not depends on the user's privileges, and in quite a few cases
> silently fails.  So I think we ought to fix this sooner rather than
> later.

Right, which is why I mentioned the "if your system supports this".  An
idea here would be to take a similar approach to what we do when
package-vc clones a repository that stores Lisp files in a subdirectory.
I can look into this and report back. 

> Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78017; Package emacs. (Sun, 27 Apr 2025 12:53:04 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Philip Kaludercic <philipk <at> posteo.net>
Cc: app-emacs-dev <at> janestreet.com, 78017 <at> debbugs.gnu.org, azeng <at> janestreet.com
Subject: Re: bug#78017: 30.1.50; package-install-file with directory input
 is inconsistent with tarball, does not include subdirectories
Date: Sun, 27 Apr 2025 15:52:11 +0300
> From: Philip Kaludercic <philipk <at> posteo.net>
> Cc: azeng <at> janestreet.com,  78017 <at> debbugs.gnu.org,  app-emacs-dev <at> janestreet.com
> Date: Sun, 27 Apr 2025 12:33:10 +0000
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > What are the downsides of always copying the entire tree?  Are there
> > use cases where this will be unexpected?  If there are such cases,
> > then yes, this should be an option, and the documentation should
> > explain when to use it and its relation to installing from a tarball.
> 
> My fear is that there could be additional garbage lying around in a
> directory, that one might not want to copy around.  But thinking about
> it, I guess one can always "blame" that on the user, and it isn't an
> irreversible action.  Instead of a user option, one could also check
> what files are marked by Dired?

Yes, a good idea.

> >> Until then, I just want to mention an alternative solution could be to
> >> use `package-vc-install-from-checkout', if your system supports symbolic
> >> links.
> >
> > The problem with symlinks is that on Windows whether they will work or
> > not depends on the user's privileges, and in quite a few cases
> > silently fails.  So I think we ought to fix this sooner rather than
> > later.
> 
> Right, which is why I mentioned the "if your system supports this".  An
> idea here would be to take a similar approach to what we do when
> package-vc clones a repository that stores Lisp files in a subdirectory.
> I can look into this and report back. 

Thanks.




Reply sent to Philip Kaludercic <philipk <at> posteo.net>:
You have taken responsibility. (Wed, 30 Apr 2025 21:48:02 GMT) Full text and rfc822 format available.

Notification sent to Aaron Zeng <azeng <at> janestreet.com>:
bug acknowledged by developer. (Wed, 30 Apr 2025 21:48:02 GMT) Full text and rfc822 format available.

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

From: Philip Kaludercic <philipk <at> posteo.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: app-emacs-dev <at> janestreet.com, 78017-done <at> debbugs.gnu.org,
 azeng <at> janestreet.com
Subject: Re: bug#78017: 30.1.50; package-install-file with directory input
 is inconsistent with tarball, does not include subdirectories
Date: Wed, 30 Apr 2025 21:47:32 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Philip Kaludercic <philipk <at> posteo.net>
>> Cc: azeng <at> janestreet.com,  78017 <at> debbugs.gnu.org,  app-emacs-dev <at> janestreet.com
>> Date: Sun, 27 Apr 2025 12:33:10 +0000
>> 
>> Eli Zaretskii <eliz <at> gnu.org> writes:
>> 
>> > What are the downsides of always copying the entire tree?  Are there
>> > use cases where this will be unexpected?  If there are such cases,
>> > then yes, this should be an option, and the documentation should
>> > explain when to use it and its relation to installing from a tarball.
>> 
>> My fear is that there could be additional garbage lying around in a
>> directory, that one might not want to copy around.  But thinking about
>> it, I guess one can always "blame" that on the user, and it isn't an
>> irreversible action.  Instead of a user option, one could also check
>> what files are marked by Dired?
>
> Yes, a good idea.
>
>> >> Until then, I just want to mention an alternative solution could be to
>> >> use `package-vc-install-from-checkout', if your system supports symbolic
>> >> links.
>> >
>> > The problem with symlinks is that on Windows whether they will work or
>> > not depends on the user's privileges, and in quite a few cases
>> > silently fails.  So I think we ought to fix this sooner rather than
>> > later.
>> 
>> Right, which is why I mentioned the "if your system supports this".  An
>> idea here would be to take a similar approach to what we do when
>> package-vc clones a repository that stores Lisp files in a subdirectory.
>> I can look into this and report back. 
>
> Thanks.

I've pushed the proposed changes to master.

Aaron: Can you check to see if this matches what you hoped for?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78017; Package emacs. (Fri, 02 May 2025 19:51:02 GMT) Full text and rfc822 format available.

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

From: Aaron Zeng <azeng <at> janestreet.com>
To: Philip Kaludercic <philipk <at> posteo.net>
Cc: Eli Zaretskii <eliz <at> gnu.org>, app-emacs-dev <at> janestreet.com,
 78017-done <at> debbugs.gnu.org
Subject: Re: bug#78017: 30.1.50; package-install-file with directory input is
 inconsistent with tarball, does not include subdirectories
Date: Fri, 2 May 2025 15:50:15 -0400
On Wed, Apr 30, 2025 at 5:47 PM Philip Kaludercic <philipk <at> posteo.net> wrote:
> I've pushed the proposed changes to master.
>
> Aaron: Can you check to see if this matches what you hoped for?

Sorry for the delay.  The new package-unpack doesn't look quite right
(and fails to build on my end).

The files in various subdirectories of the input directory are all
copied to the package installation directory instead of the
corresponding subdirectories.  I think it needs to preserve the source
directory structure instead.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78017; Package emacs. (Sat, 03 May 2025 17:51:01 GMT) Full text and rfc822 format available.

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

From: Philip Kaludercic <philipk <at> posteo.net>
To: Aaron Zeng <azeng <at> janestreet.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, app-emacs-dev <at> janestreet.com,
 78017-done <at> debbugs.gnu.org
Subject: Re: bug#78017: 30.1.50; package-install-file with directory input
 is inconsistent with tarball, does not include subdirectories
Date: Sat, 03 May 2025 17:49:56 +0000
Aaron Zeng <azeng <at> janestreet.com> writes:

> On Wed, Apr 30, 2025 at 5:47 PM Philip Kaludercic <philipk <at> posteo.net> wrote:
>> I've pushed the proposed changes to master.
>>
>> Aaron: Can you check to see if this matches what you hoped for?
>
> Sorry for the delay.  The new package-unpack doesn't look quite right
> (and fails to build on my end).
>
> The files in various subdirectories of the input directory are all
> copied to the package installation directory instead of the
> corresponding subdirectories.  I think it needs to preserve the source
> directory structure instead.

Right, that is not done currently.  But that sounds like it should be
easy to do.  I'll report back when I have more.  Thank you for testing!




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78017; Package emacs. (Sat, 03 May 2025 21:53:02 GMT) Full text and rfc822 format available.

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

From: Philip Kaludercic <philipk <at> posteo.net>
To: Aaron Zeng <azeng <at> janestreet.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, app-emacs-dev <at> janestreet.com,
 78017-done <at> debbugs.gnu.org
Subject: Re: bug#78017: 30.1.50; package-install-file with directory input
 is inconsistent with tarball, does not include subdirectories
Date: Sat, 03 May 2025 21:52:48 +0000
Philip Kaludercic <philipk <at> posteo.net> writes:

> Aaron Zeng <azeng <at> janestreet.com> writes:
>
>> On Wed, Apr 30, 2025 at 5:47 PM Philip Kaludercic <philipk <at> posteo.net> wrote:
>>> I've pushed the proposed changes to master.
>>>
>>> Aaron: Can you check to see if this matches what you hoped for?
>>
>> Sorry for the delay.  The new package-unpack doesn't look quite right
>> (and fails to build on my end).
>>
>> The files in various subdirectories of the input directory are all
>> copied to the package installation directory instead of the
>> corresponding subdirectories.  I think it needs to preserve the source
>> directory structure instead.
>
> Right, that is not done currently.  But that sounds like it should be
> easy to do.  I'll report back when I have more.  Thank you for testing!

I've pushed a change (f41ab0b425c) to master that fixes the issue you
described on my end.  Can you check if it does what you were expecting
as well?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78017; Package emacs. (Tue, 06 May 2025 21:07:02 GMT) Full text and rfc822 format available.

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

From: Aaron Zeng <azeng <at> janestreet.com>
To: Philip Kaludercic <philipk <at> posteo.net>
Cc: Eli Zaretskii <eliz <at> gnu.org>, app-emacs-dev <at> janestreet.com,
 78017-done <at> debbugs.gnu.org
Subject: Re: bug#78017: 30.1.50; package-install-file with directory input is
 inconsistent with tarball, does not include subdirectories
Date: Tue, 6 May 2025 17:05:32 -0400
[Message part 1 (text/plain, inline)]
On Sat, May 3, 2025 at 5:52 PM Philip Kaludercic <philipk <at> posteo.net> wrote:

> I've pushed a change (f41ab0b425c) to master that fixes the issue you
> described on my end.  Can you check if it does what you were expecting
> as well?
>

Yes, the new patch works.  Thank you!
[Message part 2 (text/html, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 04 Jun 2025 11:24:16 GMT) Full text and rfc822 format available.

This bug report was last modified 1 day ago.

Previous Next


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