progfolio / elpaca

An elisp package manager
GNU General Public License v3.0
603 stars 28 forks source link

[Support]: Eat texinfo not building an info #241

Closed psionic-k closed 7 months ago

psionic-k commented 7 months ago

Confirmation

Elpaca Version

Elpaca a7c5333 HEAD -> master, personal/master installer: 0.6 emacs-version: GNU Emacs 29.1.90 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.18.0, Xaw3d scroll bars) git --version: git version 2.42.0

Operating System

NixOS

Linux chalupas 6.1.61 #1-NixOS SMP PREEMPT_DYNAMIC Thu Nov 2 08:35:33 UTC 2023 x86_64 GNU/Linux

Description

https://codeberg.org/akib/emacs-eat

In my repos/eat, the eat.texi is present. However, no eat.info was generated. I merged and rebuilt to verify.

The texinfo specifies what looks like a correct output name:

@setfilename eat.info

I don't see anything obviously wrong on their end. It's in the root directory and matches the package name.

progfolio commented 7 months ago

What's the output of M-x elpaca-info eat? It should show you exactly what commands were used to compile and install the info as well as any warnings. For example, installing from M-x elpaca-manager generates the following on my system:

  [2024-01-11 22:54:27] Compiling Info files
  [2024-01-11 22:54:27] $/usr/bin/makeinfo /home/n/.emacs.d/elpaca/repos/eat/eat.texi -o /home/n/.emacs.d/elpaca/builds/eat/eat.info /home/n/.emacs.d/elpaca/repos/eat/fdl.texi -o /home/n/.emacs.d/elpaca/builds/eat/fdl.info /home/n/.emacs.d/elpaca/repos/eat/gpl.texi -o /home/n/.emacs.d/elpaca/builds/eat/gpl.info
  [2024-01-11 22:54:27] eat.texi:49: warning: node `Top' lacks menu item for `Sixel' despite being its Up target
  [2024-01-11 22:54:27] fdl.texi: warning: document without nodes
  [2024-01-11 22:54:27] gpl.texi: warning: document without nodes
  [2024-01-11 22:54:27] Continued by: elpaca--compile-info-process-sentinel
  [2024-01-11 22:54:27] Info compiled
  [2024-01-11 22:54:27] Installing Info files
  [2024-01-11 22:54:27] Continued by: elpaca--install-info
  [2024-01-11 22:54:27] /home/n/.emacs.d/elpaca/builds/eat/gpl.info
  [2024-01-11 22:54:27] $/usr/bin/install-info /home/n/.emacs.d/elpaca/builds/eat/gpl.info /home/n/.emacs.d/elpaca/builds/eat/dir
  [2024-01-11 22:54:27] install-info: warning: no info dir entry in `/home/n/.emacs.d/elpaca/builds/eat/gpl.info'
  [2024-01-11 22:54:27] Continued by: elpaca--install-info-process-sentinel
  [2024-01-11 22:54:27] Info installed
  [2024-01-11 22:54:27] /home/n/.emacs.d/elpaca/builds/eat/fdl.info
  [2024-01-11 22:54:27] $/usr/bin/install-info /home/n/.emacs.d/elpaca/builds/eat/fdl.info /home/n/.emacs.d/elpaca/builds/eat/dir
  [2024-01-11 22:54:27] install-info: warning: no info dir entry in `/home/n/.emacs.d/elpaca/builds/eat/fdl.info'
  [2024-01-11 22:54:27] Continued by: elpaca--install-info-process-sentinel
  [2024-01-11 22:54:27] Info installed
  [2024-01-11 22:54:27] Adding Info path
  [2024-01-11 22:54:27] Continued by: elpaca--add-info-path

Looks like there are some warnings. There's also this upstream issue: https://codeberg.org/akib/emacs-eat/issues/124

Looks like EAT also uses a Makefile to generate info files. You could bypass Elpaca's default Info steps and use a :pre-build step to use make to generate the info. e.g.

(elpaca (eat :build (:not elpaca--compile-info elpaca--install-info)
             :pre-build ("make" "eat.info")))
psionic-k commented 7 months ago

Sorry for late reply. Did an update. Doc license & license are installed. eat.info is in the makeinfo command but missing in the output. Isn't that also what your logs show?

  [2024-01-18 15:43:55] Compiling Info files
  [2024-01-18 15:43:55] $/run/current-system/sw/bin/makeinfo /home/satoshi/.emacs.d/elpaca/repos/eat/eat.texi -o /home/psi/.emacs.d/elpaca/builds/eat/eat.info /home/psi/.emacs.d/elpaca/repos/eat/fdl.texi -o /home/psi/.emacs.d/elpaca/builds/eat/fdl.info /home/psi/.emacs.d/elpaca/repos/eat/gpl.texi -o /home/psi/.emacs.d/elpaca/builds/eat/gpl.info
  [2024-01-18 15:43:55] fdl.texi: warning: document without nodes
  [2024-01-18 15:43:55] gpl.texi: warning: document without nodes
  [2024-01-18 15:43:55] Continued by: elpaca--compile-info-process-sentinel
  [2024-01-18 15:43:55] Info compiled
  [2024-01-18 15:43:55] Installing Info files
  [2024-01-18 15:43:55] Continued by: elpaca--install-info
  [2024-01-18 15:43:55] /home/psi/.emacs.d/elpaca/builds/eat/gpl.info
  [2024-01-18 15:43:55] $/run/current-system/sw/bin/install-info /home/psi/.emacs.d/elpaca/builds/eat/gpl.info /home/psi/.emacs.d/elpaca/builds/eat/dir
  [2024-01-18 15:43:55] install-info: warning: no info dir entry in `/home/psi/.emacs.d/elpaca/builds/eat/gpl.info'
  [2024-01-18 15:43:55] Continued by: elpaca--install-info-process-sentinel
  [2024-01-18 15:43:55] Info installed
  [2024-01-18 15:43:55] /home/psi/.emacs.d/elpaca/builds/eat/fdl.info
  [2024-01-18 15:43:55] $/run/current-system/sw/bin/install-info /home/psi/.emacs.d/elpaca/builds/eat/fdl.info /home/psi/.emacs.d/elpaca/builds/eat/dir
  [2024-01-18 15:43:55] install-info: warning: no info dir entry in `/home/psi/.emacs.d/elpaca/builds/eat/fdl.info'
  [2024-01-18 15:43:55] Continued by: elpaca--install-info-process-sentinel
  [2024-01-18 15:43:55] Info installed
  [2024-01-18 15:43:55] Adding Info path
  [2024-01-18 15:43:55] Continued by: elpaca--add-info-path
  [2024-01-18 15:43:55] Continued by: elpaca--dispatch-build-commands
  [2024-01-18 15:43:55] ✓ 4.649 secs
progfolio commented 7 months ago

eat.info is in the makeinfo command but missing in the output. Isn't that also what your logs show?

I'm not sure why that is. Probably a quirk of the makeinfo command. Ignoring the license files does the trick. See the test case below.

Test Case [How to run this test?](https://github.com/progfolio/elpaca/wiki/Troubleshooting#the-elpaca-test-macro) ```emacs-lisp (elpaca-test :early-init (setq elpaca-menu-functions '(elpaca-menu-gnu-devel-elpa elpaca-menu-non-gnu-devel-elpa)) :init (elpaca (eat :files ("*" (:exclude "fdl.texi" "gpl.texi" ".git")))) (elpaca-wait) (with-selected-window (info "(eat)") (print (buffer-substring-no-properties (point-min) (point-max))))) ```
Host Env
elpaca039fbb1 HEAD -> master, origin/master, origin/HEAD
isntaller0.6
emacsGNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.39, cairo version 1.18.0) of 2024-01-16
gitgit version 2.43.0
Output ```emacs-lisp Elpaca menu item cache discarded due to version change. INFO Scraping files for loaddefs... INFO Scraping files for loaddefs...done GEN ../elpaca-autoloads.el Cloning into '/tmp/elpaca.VN8XSr/elpaca/repos/elpaca'... Your branch is up to date with 'origin/master'. Checking /tmp/elpaca.VN8XSr/elpaca/repos/elpaca... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/elpaca-info.el... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/elpaca-log.el... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/elpaca-manager.el... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/elpaca-menu-elpa.el... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/elpaca-menu-melpa.el... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/elpaca-menu-org.el... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/elpaca-process.el... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/elpaca-test.el... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/elpaca-ui.el... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/elpaca.el... Checking /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/doc... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/doc/early-init.el... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/doc/init.el... Checking /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/extensions... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/extensions/elpaca-use-package.el... Checking /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/images... Checking /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/test... Compiling /tmp/elpaca.VN8XSr/elpaca/repos/elpaca/test/elpaca-test.el... Done (Total of 11 files compiled, 3 skipped in 4 directories) Downloading GNU-devel ELPA... Downloading NonGNU-devel ELPA... "File: eat.info, Node: Top, Next: Intro, Up: (dir) Eat Manual ********** This manual is for Eat (version 0.9.4, 15 December 2023), a terminal emulator for Emacs. Copyright © 2022, 2023 Akib Azmain Turja. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \"GNU Free Documentation License\". * Menu: Introduction * Intro:: What is Eat? * Hello Terminal:: Starting Eat's terminal for the first time. * Project-local Terminal:: One project, one terminal. * Eshell Terminal:: Eat's terminal emulation in Eshell. Basic Operations * Keyboard:: Most keyboard keys are captured by Eat. * Mouse:: Eat supports mouse. * Input Modes:: Input modes for various use-cases. * Password Input:: Safely inputting credentials. Advanced Customizations * Shell Integration:: Getting the most from Eat and your shell. * Querying Before Kill:: Confirming before you kill your terminal. * Changing Shell:: Changing the default shell. * Display:: The region where everything is shown. * Scrollback:: Region for things that went out of display. * Cursor Types:: Cursor can displayed in many forms. * Mouse Tracking:: Eat tracks mouse, but this can be changed. * Clipboard:: Integrating kill ring with terminal. * Colors:: Eat can show more than sixteen million colors. * Fonts:: Eat can show up to sixteen different fonts. * Blinking Text:: Annoying blinking texts. * Performance Tuning:: Fine tuning to maximize performance. Recovering from Problems * Common Problems:: Common problem, and fixes. * Reporting Bugs:: How to report problems? * Tracing the Terminal:: Gathering some crucial information to reproduce a bug. Appendices * GNU General Public License:: Copying condition for Eat. * GNU Free Documentation License:: Copying conditions of this manual. * Index:: A list of various things. " Test Env Elpaca 039fbb1 HEAD -> master, origin/master, origin/HEAD installer: 0.6 emacs-version: GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.39, cairo version 1.18.0) of 2024-01-16 git --version: git version 2.43.0 ```
progfolio commented 7 months ago

Might be a bug in makeinfo itself or a misunderstanding of the command on my part. Taking Elpaca out of the picture altogether you can try this on the command line:

$ cd /tmp/
$ git clone https://codeberg.org/akib/emacs-eat.git
$ cd ./emacs-eat
$ makeinfo fdl.texi -o fdl.info gpl.texi -o gpl.info eat.texi -o eat.info

On my system that will skip creating the first info file specified (regardless of argument order). Padding it with a nonsense value produces all three info files:

$ makeinfo /dev/null -o null.info fdl.texi -o fdl.info gpl.texi -o gpl.info eat.texi -o eat.info
psionic-k commented 7 months ago

bug in makeinfo

Agree. Emailed the texinfo bug address:

Subject: Multiple input/output neglects to produce some files
From: Psionic K <psionik@positron.solutions>
To: bug-texinfo@gnu.org

The eat package for Emacs contains multiple info files.
https://codeberg.org/akib/emacs-eat

An issue was found where the eat.info was not being produced.

Padding the output arguments with garbage values results in all three
files being output correctly:
https://github.com/progfolio/elpaca/issues/241

Passing the eat.texi alone also works. Building one by one is another workaround option for Elpaca. These older versions of makeinfo will be alive for a while.

The easiest user workaround was to generate the manual by hand. Another option would be to omit the other two manuals using a custom :files value. I didn't try it.

I have nothing further to add from here. Leaving open in case you will add a workaround to close the issue.

progfolio commented 7 months ago

I reached out to the mailing list this morning as well:

https://lists.gnu.org/archive/html/bug-texinfo/2024-01/msg00014.html

We'll see what they say.

Another option would be to omit the other two manuals using a custom :files value. I didn't try it.

It works in the test case in my last comment. Unless it's a complete misunderstanding on my part, I'll likely leave the makeinfo subprocess as is.