unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Philip Kaludercic <philipk@posteo.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: contovob@tcd.ie, 63260@debbugs.gnu.org, rpluim@gmail.com
Subject: bug#63260: 29.0.90; Regression installing/activating packages without autoloads
Date: Sun, 07 May 2023 13:12:47 +0000	[thread overview]
Message-ID: <87jzxkcmk0.fsf@posteo.net> (raw)
In-Reply-To: <83fs88e1yz.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 07 May 2023 15:54:28 +0300")

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

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Philip Kaludercic <philipk@posteo.net>
>> Cc: Basil Contovounesios <contovob@tcd.ie>,  63260@debbugs.gnu.org,
>>   rpluim@gmail.com
>> Date: Sun, 07 May 2023 12:39:48 +0000
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> > AFAIU, in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62734 I asked
>> > Philip what would happen in this case, and he replied that the changes
>> > he proposed did TRT in that case?  So what is different here?  Philip?
>> 
>> No, that appears to have been my mistake.  The issue is that
>> `loaddefs-generate' generates the autoload file while looping over all
>> definitions to autoload, but if there are no files, Basil is right that
>> nothing happens.  This is fine in general, but `loaddefs-generate' has
>> the extra task of modifying load-path (which has been the root of the
>> issue in bug#62734).  Perhaps it is best to revert the commit, and come
>> up with a alternative solution.  I have an idea, but I'll have to test
>> it again before I forget something like this.
>
> If we revert that commit, we will bring back bug#62734, which to me
> sounds like a similarly serious, perhaps even more serious, issue,
> don't you agree?  

My idea was that we could revert the commit, and then install a smaller
change, basically just replacing the condition

  (and (not defs) extra-data)

with

  (not defs)

but thinking about it for a bit, I noticed that you are right that this
would just re-introduce the same issue.

>                   So I think maybe we need to amend that commit with
> something that takes care of the particular situation reported here.
> Specifically, it seems we need to detect the situation where a package
> has no autoloads at all, and then produce the minimal autoloads file
> that such packages expect.

One hack might just be to check if `loaddefs-generate' has generated
anything at all or not, and if that is not the case to do so manually in
package.el.  The reason this doesn't seem nice, is that we'd have to
make the fact that `loaddefs-generate' does not generate a OUTPUT-FILE
if there is no file with autoloads explicit, and finding a justification
for that is difficult.  Alternatively, this could be done inside of
`loaddefs-generate'?  Something like


[-- Attachment #2: Type: text/plain, Size: 1021 bytes --]

diff --git a/lisp/emacs-lisp/loaddefs-gen.el b/lisp/emacs-lisp/loaddefs-gen.el
index 2a46fb7a022..c23f21553d5 100644
--- a/lisp/emacs-lisp/loaddefs-gen.el
+++ b/lisp/emacs-lisp/loaddefs-gen.el
@@ -656,7 +656,17 @@ loaddefs-generate
             (write-region (point-min) (point-max) loaddefs-file nil 'silent)
             (byte-compile-info
              (file-relative-name loaddefs-file (car (ensure-list dir)))
-             t "GEN")))))))
+             t "GEN")))))
+
+    ;; HACK: If no file with autoloads were found, but EXTRA-DATA was
+    ;; passed, we still want to generate a file.
+    (unless (and extra-data (file-exists-p output-file))
+      (with-temp-buffer
+        (insert (loaddefs-generate--rubric output-file nil t))
+        (search-backward "\f")
+        (insert extra-data)
+        (ensure-empty-lines 1)
+        (write-region (point-min) (point-max) output-file nil 'silent)))))
 
 (defun loaddefs-generate--print-form (def)
   "Print DEF in a format that makes sense for version control."

[-- Attachment #3: Type: text/plain, Size: 23 bytes --]


-- 
Philip Kaludercic

  reply	other threads:[~2023-05-07 13:12 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-04 10:15 bug#63260: 29.0.90; Regression installing/activating packages without autoloads Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-04 15:15 ` Robert Pluim
2023-05-04 16:28   ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-05  6:36     ` Robert Pluim
2023-05-06  9:01       ` Eli Zaretskii
2023-05-06 12:51         ` Robert Pluim
2023-05-06 13:12         ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-06 13:28           ` Eli Zaretskii
2023-05-07 10:59             ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-06 13:10       ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-06 13:23         ` Eli Zaretskii
2023-05-07  9:46           ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-07 10:50             ` Eli Zaretskii
2023-05-07 12:39               ` Philip Kaludercic
2023-05-07 12:54                 ` Eli Zaretskii
2023-05-07 13:12                   ` Philip Kaludercic [this message]
2023-05-07 13:21                     ` Eli Zaretskii
2023-05-07 19:37                       ` Philip Kaludercic
2023-05-08 11:16                         ` Eli Zaretskii
2023-05-08 13:15                           ` Robert Pluim
2023-05-08 13:18                             ` Eli Zaretskii
2023-05-08 13:23                               ` Robert Pluim
2023-05-10 13:12                           ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-10 14:22                             ` Eli Zaretskii
2023-05-12  7:43                               ` Philip Kaludercic

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87jzxkcmk0.fsf@posteo.net \
    --to=philipk@posteo.net \
    --cc=63260@debbugs.gnu.org \
    --cc=contovob@tcd.ie \
    --cc=eliz@gnu.org \
    --cc=rpluim@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).