Bug#1076964: Acknowledgement (dh-elpa: load-path handling broken)
I have reverted the commit causing the issue in team repo[1].
I have also implemented another approach to avoid sub-directories in
`load-path', and tested with some success. You can find the diff in [2]
or attached. Please let me know what you think. Will push after
getting some approvals.
Meanwhile, if reviewing the patch takes longer, please consider making
another release with just [1] to fix the current issue.
[1] https://salsa.debian.org/emacsen-team/dh-elpa/-/commit/852d8613798708178f2b0dff53798826e45c9ac9
[2] https://salsa.debian.org/manphiz/dh-elpa/-/compare/master...no-recursive-handling?from_project_id=18920
--
Xiyue Deng
>From cc38abc38dea77814c691913fab51593ed7da584 Mon Sep 17 00:00:00 2001
From: Xiyue Deng <manphiz@gmail.com>
Date: Wed, 24 Jul 2024 14:22:05 -0700
Subject: [PATCH] Properly disable recursive load-path handling in
sub-directories
* Create the `.nosearch' files only in package sub-directories in
helper/install, and remove them in helper/remove.
---
helper/install | 3 +++
helper/remove | 7 +++++++
2 files changed, 10 insertions(+)
diff --git a/helper/install b/helper/install
index 8d748c8..0139b84 100755
--- a/helper/install
+++ b/helper/install
@@ -42,6 +42,9 @@ elc_dir=/usr/share/${FLAVOR}/site-lisp/elpa/${ELPA_DIR}/
export EMACSLOADPATH
EMACSLOADPATH=${ELPA_LOAD_PATH}
+# Disable adding sub-directories to `load-path'
+for DIR in ${el_dir}/*; do [ -d ${DIR} ] && touch ${DIR}/.nosearch; done
+
echo "install/${ELPA_DIR}: byte-compiling for ${FLAVOR}"
[ -d "${elc_dir}" ] || mkdir -p "${elc_dir}"
diff --git a/helper/remove b/helper/remove
index 3182eeb..6ab9d17 100755
--- a/helper/remove
+++ b/helper/remove
@@ -24,6 +24,8 @@ ELPA_DIR=${ELPA_PACKAGE}-${ELPA_VERSION}
elpa_root="/usr/share/${FLAVOR}/site-lisp/elpa"
elc_dir="${elpa_root}/${ELPA_DIR}"
+elpa_src_root="/usr/share/${FLAVOR}/site-lisp/elpa-src"
+el_dir="${elpa_src_root}/${ELPA_DIR}"
FLAVOR=$1
case $FLAVOR in
@@ -43,6 +45,11 @@ echo dh-elpa: purging flavor specific files for ${FLAVOR}
rm -f ${elc_dir}/*.elc
[ -d ${elc_dir} ] && find ${elc_dir} -type l -delete
rm -f ${elc_dir}/Install.log*
+
+# Remove entries that disable recursive `load-path' handling in sub-directories
+find ${elc_dir} -name ".nosearch" -exec rm {} \;
+find ${el_dir} -name ".nosearch" -exec rm {} \;
+
if test -e "${elc_dir}"
then
rmdir --ignore-fail-on-non-empty "${elc_dir}"
--
2.39.2
Reply to: