unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#64985: 29.1; [PATCH] Byte-compilation of packages via package-vc doesn't correctly handle .elpaignore wildcards
@ 2023-08-01  6:20 Jim Porter
  2023-08-01 11:21 ` Eli Zaretskii
                   ` (4 more replies)
  0 siblings, 5 replies; 16+ messages in thread
From: Jim Porter @ 2023-08-01  6:20 UTC (permalink / raw)
  To: 64985

[-- Attachment #1: Type: text/plain, Size: 768 bytes --]

When using the various package-vc installation functions, Emacs 
byte-compiles the source (good). However, it doesn't ignore sources that 
match wildcards in ".elpaignore" (bad). That's because, even though 
'byte-compile-ignore-files' is documented to be a list of regexps, 
'byte-recompile-directory' treats it as a list of strings.

To reproduce this, install a package via VC, for example via M-x 
package-vc-install RET https://github.com/jimporter/urgrep.git RET. Then 
notice how "urgrep-tests.el" got compiled, even though it matches a 
wildcard in ".elpaignore".

Patch attached to fix this. Eli, would this be safe enough for 29.2? 
'byte-compile-ignore-files' is a new feature in 29.1, so hopefully no 
one else is relying on its current semantics just yet.

[-- Attachment #2: 0001-Fix-handling-of-.elpaignore-file-when-compiling-pack.patch --]
[-- Type: text/plain, Size: 2083 bytes --]

From ec4e198fb9c87653d1e65288969bed1ff548683c Mon Sep 17 00:00:00 2001
From: Jim Porter <jporterbugs@gmail.com>
Date: Mon, 31 Jul 2023 23:10:03 -0700
Subject: [PATCH] Fix handling of ".elpaignore" file when compiling packages

* lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Treat
'byte-compile-ignore-files' as a list of regexps per its docstring.
---
 lisp/emacs-lisp/bytecomp.el | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 5b1d958e6c2..d123e68a088 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -1995,9 +1995,8 @@ byte-recompile-directory
 		      (or (null arg) (eq 0 arg)
 			  (y-or-n-p (concat "Check " source "? ")))
                       ;; Directory is requested to be ignored
-                      (not (string-match-p
-                            (regexp-opt byte-compile-ignore-files)
-                            source))
+                      (not (seq-some (lambda (ex) (string-match-p ex source))
+                                     byte-compile-ignore-files))
                       (setq directories (nconc directories (list source))))
                ;; It is an ordinary file.  Decide whether to compile it.
                (if (and (string-match emacs-lisp-file-regexp source)
@@ -2007,9 +2006,8 @@ byte-recompile-directory
                         (not (auto-save-file-name-p source))
                         (not (member source (dir-locals--all-files directory)))
                         ;; File is requested to be ignored
-                        (not (string-match-p
-                              (regexp-opt byte-compile-ignore-files)
-                              source)))
+                        (not (seq-some (lambda (ex) (string-match-p ex source))
+                                       byte-compile-ignore-files)))
                    (progn (cl-incf
                            (pcase (byte-recompile-file source force arg)
                              ('no-byte-compile skip-count)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2023-08-05 17:16 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-01  6:20 bug#64985: 29.1; [PATCH] Byte-compilation of packages via package-vc doesn't correctly handle .elpaignore wildcards Jim Porter
2023-08-01 11:21 ` Eli Zaretskii
2023-08-01 19:22   ` Jim Porter
2023-08-01 12:20 ` Philip Kaludercic
2023-08-01 16:10   ` Jim Porter
2023-08-01 16:18     ` Jim Porter
2023-08-01 17:29 ` Mattias Engdegård
2023-08-01 18:10   ` Jim Porter
2023-08-01 18:32     ` Philip Kaludercic
2023-08-01 19:18       ` Jim Porter
2023-08-01 19:21         ` Philip Kaludercic
2023-08-02 18:08           ` Jim Porter
2023-08-04 19:37 ` bug#64985: 30.0.50; package-recompile-all and package-recompile do not recompile anything, seems related to the patch associated with bug #64985 Vincenzo Pupillo
2023-08-04 20:05   ` Jim Porter
2023-08-05 17:12 ` Mattias Engdegård
2023-08-05 17:16   ` Jim Porter

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).