unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#64881: [translation] M-x texinfo-all-menus-update breaks translated cookbook
@ 2023-07-26 19:33 Maxim Cournoyer
  2023-07-27 12:31 ` pelzflorian (Florian Pelz)
  0 siblings, 1 reply; 6+ messages in thread
From: Maxim Cournoyer @ 2023-07-26 19:33 UTC (permalink / raw)
  To: 64881

Hi,

When attempting to run `M-x texinfo-all-menus-update' from Emacs on the
guix-cookbook.texi file, it builds fine, but auto-generated translated
variants do not, which breaks 'make as-derivation' (or 'guix pull').

The error reported by 'make as-derivation' is:

--8<---------------cut here---------------start------------->8---
guix.es.texi:19860: warning: `.' or `,' must follow @xref, not p
guix.es.texi:46332: warning: `.' or `,' must follow @xref, not p
guix.fr.texi:15422: warning: `.' or `,' must follow @xref, not p
Wide character in warn at /gnu/store/9d7c6c8id6dh0inpqvcgb708mmiqcj4c-texinfo-6.8/bin/makeinfo line 637.
guix.ru.texi:13064: warning: `.' or `,' must follow @xref, not д
guix-cookbook.de.texi:570: @menu reference to nonexistent node `A ``Hello World'' package'
guix-cookbook.de.texi:571: @menu reference to nonexistent node `Setup'
guix-cookbook.de.texi:572: @menu reference to nonexistent node `Extended example'
guix-cookbook.de.texi:573: @menu reference to nonexistent node `Other build systems'
guix-cookbook.de.texi:574: @menu reference to nonexistent node `Programmable and automated package definition'
guix-cookbook.de.texi:575: @menu reference to nonexistent node `Getting help'
guix-cookbook.de.texi:576: @menu reference to nonexistent node `Conclusion'
guix-cookbook.de.texi:801: @menu reference to nonexistent node `Local file'
guix-cookbook.de.texi:802: @menu reference to nonexistent node `Channels'
guix-cookbook.de.texi:1510: @menu reference to nonexistent node `Recursive importers'
guix-cookbook.de.texi:1511: @menu reference to nonexistent node `Automatic update'
guix-cookbook.de.texi:3358: @menu reference to nonexistent node `A Database Container'
guix-cookbook.de.texi:3657: @menu reference to nonexistent node `Basic setup with manifests'
guix-cookbook.de.texi:3658: @menu reference to nonexistent node `Required packages'
guix-cookbook.de.texi:3659: @menu reference to nonexistent node `Default profile'
guix-cookbook.de.texi:3660: @menu reference to nonexistent node `The benefits of manifests'
guix-cookbook.de.texi:116: @detailmenu reference to nonexistent node `A ``Hello World'' package'
guix-cookbook.de.texi:117: @detailmenu reference to nonexistent node `Setup'
guix-cookbook.de.texi:118: @detailmenu reference to nonexistent node `Extended example'
guix-cookbook.de.texi:119: @detailmenu reference to nonexistent node `Other build systems'
guix-cookbook.de.texi:120: @detailmenu reference to nonexistent node `Programmable and automated package definition'
guix-cookbook.de.texi:121: @detailmenu reference to nonexistent node `Getting help'
guix-cookbook.de.texi:122: @detailmenu reference to nonexistent node `Conclusion'
guix-cookbook.de.texi:129: @detailmenu reference to nonexistent node `Local file'
guix-cookbook.de.texi:130: @detailmenu reference to nonexistent node `Channels'
guix-cookbook.de.texi:137: @detailmenu reference to nonexistent node `Recursive importers'
guix-cookbook.de.texi:138: @detailmenu reference to nonexistent node `Automatic update'
guix-cookbook.de.texi:193: @detailmenu reference to nonexistent node `A Database Container'
guix-cookbook.de.texi:207: @detailmenu reference to nonexistent node `Basic setup with manifests'
guix-cookbook.de.texi:208: @detailmenu reference to nonexistent node `Required packages'
guix-cookbook.de.texi:209: @detailmenu reference to nonexistent node `Default profile'
guix-cookbook.de.texi:210: @detailmenu reference to nonexistent node `The benefits of manifests'
Backtrace:
           3 (primitive-load "/gnu/store/jcpsgx9pswha51a014fdi5rlpsk?")
In ice-9/eval.scm:
    619:8  2 (_ #f)
In ice-9/boot-9.scm:
   260:13  1 (for-each #<procedure 7ffff4f91f80 at ice-9/eval.scm:3?> ?)
In guix/build/utils.scm:
    812:6  0 (invoke "/gnu/store/9d7c6c8id6dh0inpqvcgb708mmiqcj4c-t?" ?)

guix/build/utils.scm:812:6: In procedure invoke:
ERROR:
  1. &invoke-error:
      program: "/gnu/store/9d7c6c8id6dh0inpqvcgb708mmiqcj4c-texinfo-6.8/bin/makeinfo"
      arguments: ("./guix-cookbook.de.texi" "-I" "/gnu/store/ah2fdy1vkac5blsdm2ai654h4gwgib21-doc" "-I" "." "-o" "/gnu/store/zb7vmqbbwl5s9i26zdhxpks1xrcr5npz-guix-manual/guix-cookbook.de.info")
      exit-status: 1
      term-signal: #f
      stop-signal: #f
builder for `/gnu/store/6fah4ipa15w46npk919f4i5hka5jhphg-guix-manual.drv' failed with exit code 1
cannot build derivation `/gnu/store/x34kb0nk9h2mdjj6hydlvsjphdakakpr-guix-20230726.19.drv': 1 dependencies couldn't be built
error: build of `/gnu/store/x34kb0nk9h2mdjj6hydlvsjphdakakpr-guix-20230726.19.drv' failed
make: *** [Makefile:7009 : as-derivation] Erreur 1
--8<---------------cut here---------------end--------------->8---

Would someone know how to get this to work?  Manually maintaining menus
in Texinfo is a pain.

-- 
Thanks,
Maxim




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

* bug#64881: [translation] M-x texinfo-all-menus-update breaks translated cookbook
  2023-07-26 19:33 bug#64881: [translation] M-x texinfo-all-menus-update breaks translated cookbook Maxim Cournoyer
@ 2023-07-27 12:31 ` pelzflorian (Florian Pelz)
  2023-07-27 15:29   ` Josselin Poiret via Bug reports for GNU Guix
  0 siblings, 1 reply; 6+ messages in thread
From: pelzflorian (Florian Pelz) @ 2023-07-27 12:31 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 64881

Hello Maxim,

I never used M-x texinfo-all-menus-update before and do not know which
package or output provides it.

As I understand, presumably the PO4A / POXREF step of make was
interrupted and therefore there are half-complete stray .de.texi files.
Otherwise, the references would be translated or the .de.texi files
would not exist.

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
> variants do not, which breaks 'make as-derivation' (or 'guix pull').

IIUC 'make as-derivation' uses the files from the guix directory, but
'guix pull' uses the files from a repo checkout and was not / cannot be
broken by stray files.

Regards,
Florian




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

* bug#64881: [translation] M-x texinfo-all-menus-update breaks translated cookbook
  2023-07-27 12:31 ` pelzflorian (Florian Pelz)
@ 2023-07-27 15:29   ` Josselin Poiret via Bug reports for GNU Guix
  2023-07-27 15:49     ` Maxim Cournoyer
  0 siblings, 1 reply; 6+ messages in thread
From: Josselin Poiret via Bug reports for GNU Guix @ 2023-07-27 15:29 UTC (permalink / raw)
  To: pelzflorian (Florian Pelz), Maxim Cournoyer; +Cc: 64881

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

Hi everyone,

"pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de> writes:

> IIUC 'make as-derivation' uses the files from the guix directory, but
> 'guix pull' uses the files from a repo checkout and was not / cannot be
> broken by stray files.

`make as-derivation` uses #:select? git? to restrict to only files
that are checked out in git.  It doesn't try to get the contents of HEAD
though, the working directory's state is used instead.

Best,
-- 
Josselin Poiret

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 682 bytes --]

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

* bug#64881: [translation] M-x texinfo-all-menus-update breaks translated cookbook
  2023-07-27 15:29   ` Josselin Poiret via Bug reports for GNU Guix
@ 2023-07-27 15:49     ` Maxim Cournoyer
  2023-07-27 19:05       ` pelzflorian (Florian Pelz)
  0 siblings, 1 reply; 6+ messages in thread
From: Maxim Cournoyer @ 2023-07-27 15:49 UTC (permalink / raw)
  To: Josselin Poiret; +Cc: 64881, pelzflorian (Florian Pelz)

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

Hello,

Josselin Poiret <dev@jpoiret.xyz> writes:

> Hi everyone,
>
> "pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de> writes:
>
>> IIUC 'make as-derivation' uses the files from the guix directory, but
>> 'guix pull' uses the files from a repo checkout and was not / cannot be
>> broken by stray files.
>
> `make as-derivation` uses #:select? git? to restrict to only files
> that are checked out in git.  It doesn't try to get the contents of HEAD
> though, the working directory's state is used instead.

Both 'make as-derivation' and 'guix pull' exhibit the same problem, in
case that wasn't clear.

M-x texinfo-update-all-menus is available out-of-the-box in Emacs, when
visiting a .texi file (you invoke it via Alt-x texinfo-update-all-menus
or by visiting the 'Texinfo -> Update All Menus' menu).

Attached is the patch resulting from such action, the one that when
applied breaks 'make as-derivation'.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-doc-guix-cookbook-Update-all-Texinfo-menus.patch --]
[-- Type: text/x-patch, Size: 9801 bytes --]

From 825fdcfdc444a0f6836f0f24cd1173e03d91e5a0 Mon Sep 17 00:00:00 2001
Message-ID: <825fdcfdc444a0f6836f0f24cd1173e03d91e5a0.1690472916.git.maxim.cournoyer@gmail.com>
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Thu, 27 Jul 2023 11:47:55 -0400
Subject: [PATCH] doc: guix-cookbook: Update all Texinfo menus.

* doc/guix-cookbook.texi: Update all Texinfo menus, via 'M-x
texinfo-update-all-menus' in Emacs.
---
 doc/guix-cookbook.texi | 160 +++++++++++++++++++++++++++++++++--------
 1 file changed, 129 insertions(+), 31 deletions(-)

diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi
index 2e58c6c795..5698614c00 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -78,7 +78,7 @@ Top
 * Containers::                  Isolated environments and nested systems
 * Advanced package management::  Power to the users!
 * Environment management::      Control environment
-* Installing Guix on a Cluster:: High-performance computing.
+* Installing Guix on a Cluster::  High-performance computing.
 
 * Acknowledgments::             Thanks!
 * GNU Free Documentation License::  The license of this document.
@@ -87,36 +87,85 @@ Top
 @detailmenu
  --- The Detailed Node Listing ---
 
+Scheme tutorials
+
+* A Scheme Crash Course::
+
 Packaging
 
-* Packaging Tutorial::         A tutorial on how to add packages to Guix.
+* Packaging Tutorial::          A tutorial on how to add packages to Guix.
+
+Packaging Tutorial
+
+* A ``Hello World'' package::
+* Setup::
+* Extended example::
+* Other build systems::
+* Programmable and automated package definition::
+* Getting help::
+* Conclusion::
+* References::
+
+Setup
+
+* Local file::
+* Channels::
+* Direct checkout hacking::
+
+Programmable and automated package definition
+
+* Recursive importers::
+* Automatic update::
+* Inheritance::
 
 System Configuration
 
-* Auto-Login to a Specific TTY:: Automatically Login a User to a Specific TTY
-* Customizing the Kernel::       Creating and using a custom Linux kernel on Guix System.
-* Guix System Image API::        Customizing images to target specific platforms.
-* Using security keys::          How to use security keys with Guix System.
+* Auto-Login to a Specific TTY::  Automatically Login a User to a Specific TTY
+* Customizing the Kernel::      Creating and using a custom Linux kernel on Guix System.
+* Guix System Image API::       Customizing images to target specific platforms.
+* Using security keys::         How to use security keys with Guix System.
 * Connecting to Wireguard VPN::  Connecting to a Wireguard VPN.
-* Customizing a Window Manager:: Handle customization of a Window manager on Guix System.
-* Running Guix on a Linode Server:: Running Guix on a Linode Server
-* Setting up a bind mount:: Setting up a bind mount in the file-systems definition.
-* Getting substitutes from Tor:: Configuring Guix daemon to get substitutes through Tor.
-* Setting up NGINX with Lua:: Configuring NGINX web-server to load Lua modules.
-* Music Server with Bluetooth Audio:: Headless music player with Bluetooth output.
+* Customizing a Window Manager::  Handle customization of a Window manager on Guix System.
+* Running Guix on a Linode Server:: Running Guix on a Linode Server.  Running Guix on a Linode Server
+* Setting up a bind mount::     Setting up a bind mount in the file-systems definition.
+* Getting substitutes from Tor::  Configuring Guix daemon to get substitutes through Tor.
+* Setting up NGINX with Lua::   Configuring NGINX web-server to load Lua modules.
+* Music Server with Bluetooth Audio::  Headless music player with Bluetooth output.
+
+Customizing a Window Manager
+
+* StumpWM::
+* Session lock::
+
+Session lock
+
+* Xorg::
 
 Containers
 
-* Guix Containers::            Perfectly isolated environments
-* Guix System Containers::     A system inside your system
+* Guix Containers::             Perfectly isolated environments
+* Guix System Containers::      A system inside your system
+
+Guix System Containers
+
+* A Database Container::
+* Container Networking::
 
 Advanced package management
 
-* Guix Profiles in Practice::     Strategies for multiple profiles and manifests.
+* Guix Profiles in Practice::   Strategies for multiple profiles and manifests.
+
+Guix Profiles in Practice
+
+* Basic setup with manifests::
+* Required packages::
+* Default profile::
+* The benefits of manifests::
+* Reproducible profiles::
 
 Environment management
 
-* Guix environment via direnv:: Setup Guix environment with direnv
+* Guix environment via direnv::  Setup Guix environment with direnv
 
 Installing Guix on a Cluster
 
@@ -144,6 +193,10 @@ Scheme tutorials
 
 Let's get started!
 
+@menu
+* A Scheme Crash Course::
+@end menu
+
 @node A Scheme Crash Course
 @section A Scheme Crash Course
 
@@ -396,7 +449,7 @@ Packaging
 them.
 
 @menu
-* Packaging Tutorial::         A tutorial on how to add packages to Guix.
+* Packaging Tutorial::          A tutorial on how to add packages to Guix.
 @end menu
 
 @node Packaging Tutorial
@@ -438,6 +491,17 @@ Packaging Tutorial
 The reader is only expected to be familiar with the command line and to have some
 basic programming knowledge.
 
+@menu
+* A ``Hello World'' package::
+* Setup::
+* Extended example::
+* Other build systems::
+* Programmable and automated package definition::
+* Getting help::
+* Conclusion::
+* References::
+@end menu
+
 @node A ``Hello World'' package
 @subsection A ``Hello World'' package
 
@@ -643,6 +707,12 @@ Setup
 
 But first, let's look at other possibilities.
 
+@menu
+* Local file::
+* Channels::
+* Direct checkout hacking::
+@end menu
+
 @node Local file
 @subsubsection Local file
 
@@ -1293,6 +1363,12 @@ Programmable and automated package definition
 
 Let's illustrate this with some awesome features of Guix!
 
+@menu
+* Recursive importers::
+* Automatic update::
+* Inheritance::
+@end menu
+
 @node Recursive importers
 @subsubsection Recursive importers
 
@@ -1456,17 +1532,17 @@ System Configuration
 reference.
 
 @menu
-* Auto-Login to a Specific TTY:: Automatically Login a User to a Specific TTY
-* Customizing the Kernel::       Creating and using a custom Linux kernel on Guix System.
-* Guix System Image API::        Customizing images to target specific platforms.
-* Using security keys::          How to use security keys with Guix System.
+* Auto-Login to a Specific TTY::  Automatically Login a User to a Specific TTY
+* Customizing the Kernel::      Creating and using a custom Linux kernel on Guix System.
+* Guix System Image API::       Customizing images to target specific platforms.
+* Using security keys::         How to use security keys with Guix System.
 * Connecting to Wireguard VPN::  Connecting to a Wireguard VPN.
-* Customizing a Window Manager:: Handle customization of a Window manager on Guix System.
-* Running Guix on a Linode Server:: Running Guix on a Linode Server
-* Setting up a bind mount:: Setting up a bind mount in the file-systems definition.
-* Getting substitutes from Tor:: Configuring Guix daemon to get substitutes through Tor.
-* Setting up NGINX with Lua:: Configuring NGINX web-server to load Lua modules.
-* Music Server with Bluetooth Audio:: Headless music player with Bluetooth output.
+* Customizing a Window Manager::  Handle customization of a Window manager on Guix System.
+* Running Guix on a Linode Server:: Running Guix on a Linode Server.  Running Guix on a Linode Server
+* Setting up a bind mount::     Setting up a bind mount in the file-systems definition.
+* Getting substitutes from Tor::  Configuring Guix daemon to get substitutes through Tor.
+* Setting up NGINX with Lua::   Configuring NGINX web-server to load Lua modules.
+* Music Server with Bluetooth Audio::  Headless music player with Bluetooth output.
 @end menu
 
 @node Auto-Login to a Specific TTY
@@ -2103,6 +2179,11 @@ Customizing a Window Manager
 @section Customizing a Window Manager
 @cindex wm
 
+@menu
+* StumpWM::
+* Session lock::
+@end menu
+
 @node StumpWM
 @subsection StumpWM
 @cindex stumpwm
@@ -2158,6 +2239,10 @@ Session lock
 like GNOME or KDE, it's usually built in. If you use a plain window manager like
 StumpWM or EXWM, you might have to set it up yourself.
 
+@menu
+* Xorg::
+@end menu
+
 @node Xorg
 @subsubsection Xorg
 
@@ -2821,8 +2906,8 @@ Containers
 system-wide.
 
 @menu
-* Guix Containers::            Perfectly isolated environments
-* Guix System Containers::     A system inside your system
+* Guix Containers::             Perfectly isolated environments
+* Guix System Containers::      A system inside your system
 @end menu
 
 @node Guix Containers
@@ -3006,6 +3091,11 @@ Guix System Containers
 software are satisfied through the deployment of system services.
 
 
+@menu
+* A Database Container::
+* Container Networking::
+@end menu
+
 @node A Database Container
 @subsection A Database Container
 
@@ -3208,7 +3298,7 @@ Advanced package management
 reference.
 
 @menu
-* Guix Profiles in Practice::     Strategies for multiple profiles and manifests.
+* Guix Profiles in Practice::   Strategies for multiple profiles and manifests.
 @end menu
 
 @node Guix Profiles in Practice
@@ -3287,6 +3377,14 @@ Guix Profiles in Practice
 
 Let's dive in the set up!
 
+@menu
+* Basic setup with manifests::
+* Required packages::
+* Default profile::
+* The benefits of manifests::
+* Reproducible profiles::
+@end menu
+
 @node Basic setup with manifests
 @subsection Basic setup with manifests
 
@@ -3601,7 +3699,7 @@ Environment management
 demonstrate such utilities.
 
 @menu
-* Guix environment via direnv:: Setup Guix environment with direnv
+* Guix environment via direnv::  Setup Guix environment with direnv
 @end menu
 
 @node Guix environment via direnv

base-commit: c7e45139faa27b60f2c7d0a4bc140f9793d97d47
-- 
2.41.0


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


-- 
Thanks,
Maxim

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

* bug#64881: [translation] M-x texinfo-all-menus-update breaks translated cookbook
  2023-07-27 15:49     ` Maxim Cournoyer
@ 2023-07-27 19:05       ` pelzflorian (Florian Pelz)
  2023-08-16 15:20         ` Maxim Cournoyer
  0 siblings, 1 reply; 6+ messages in thread
From: pelzflorian (Florian Pelz) @ 2023-07-27 19:05 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: Josselin Poiret, 64881

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

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
> M-x texinfo-update-all-menus is available out-of-the-box in Emacs, when
> visiting a .texi file (you invoke it via Alt-x texinfo-update-all-menus
> or by visiting the 'Texinfo -> Update All Menus' menu).

Oops my bad.  I should have expected that Emacs commands are invisible
unless the right Emacs mode is used.  Thank you for clarifying and
presenting as a patch.

Josselin Poiret <dev@jpoiret.xyz> writes:
> `make as-derivation` uses #:select? git? to restrict to only files
> that are checked out in git.  It doesn't try to get the contents of HEAD
> though, the working directory's state is used instead.

Oh hmm doc/guix-cookbook.de.texi is not checked in, so even `make
as-derivation` should have worked ...

This got nothing to do with stray .de.texi files.  Apparently it is
because the menu entries lack menu descriptions (which should be
optional according to `info texinfo').

The attached patch on top of your patch helps ...

Either we add optional descriptions everywhere or not update menu
entries without description or change how po4a translates the menu
entries in po4a source file lib/Locale/Po4a/Texinfo.pm in
translate_buffer_menuentry, to make po4a translate when there is no
description.  I don’t plan to do that though.

Regards,
Florian

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: doc-guix-cookbook-Also-add-Texinfo-menu-description.patch --]
[-- Type: text/x-patch, Size: 4585 bytes --]

From: Florian Pelz <pelzflorian@pelzflorian.de>
Date: Thu, 27 Jul 2023 20:12:15 +0200
Subject: [PATCH] doc: guix-cookbook: Also add Texinfo menu description
 dummies.

* doc/guix-cookbook.texi: Add dummy menu descriptions to Texinfo menus.
---
 doc/guix-cookbook.texi | 100 ++++++++++++++++++++---------------------
 1 file changed, 50 insertions(+), 50 deletions(-)

diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi
index 5698614c00..2697331412 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -89,7 +89,7 @@ Top
 
 Scheme tutorials
 
-* A Scheme Crash Course::
+* A Scheme Crash Course::    a.
 
 Packaging
 
@@ -97,26 +97,26 @@ Top
 
 Packaging Tutorial
 
-* A ``Hello World'' package::
-* Setup::
-* Extended example::
-* Other build systems::
-* Programmable and automated package definition::
-* Getting help::
-* Conclusion::
-* References::
+* A ``Hello World'' package::  b.
+* Setup::  c.
+* Extended example::  d.
+* Other build systems::  e.
+* Programmable and automated package definition::  f.
+* Getting help::  g.
+* Conclusion::  h.
+* References::  i.
 
 Setup
 
-* Local file::
-* Channels::
-* Direct checkout hacking::
+* Local file::  j.
+* Channels::  k.
+* Direct checkout hacking::  l.
 
 Programmable and automated package definition
 
-* Recursive importers::
-* Automatic update::
-* Inheritance::
+* Recursive importers::  m.
+* Automatic update::  n.
+* Inheritance::  o.
 
 System Configuration
 
@@ -134,12 +134,12 @@ Top
 
 Customizing a Window Manager
 
-* StumpWM::
-* Session lock::
+* StumpWM::  p.
+* Session lock::  q.
 
 Session lock
 
-* Xorg::
+* Xorg::  r.
 
 Containers
 
@@ -148,8 +148,8 @@ Top
 
 Guix System Containers
 
-* A Database Container::
-* Container Networking::
+* A Database Container::  s.
+* Container Networking::  t.
 
 Advanced package management
 
@@ -157,11 +157,11 @@ Top
 
 Guix Profiles in Practice
 
-* Basic setup with manifests::
-* Required packages::
-* Default profile::
-* The benefits of manifests::
-* Reproducible profiles::
+* Basic setup with manifests::  u.
+* Required packages::  v.
+* Default profile::  w.
+* The benefits of manifests::  x.
+* Reproducible profiles::  y.
 
 Environment management
 
@@ -194,7 +194,7 @@ Scheme tutorials
 Let's get started!
 
 @menu
-* A Scheme Crash Course::
+* A Scheme Crash Course::  z.
 @end menu
 
 @node A Scheme Crash Course
@@ -492,14 +492,14 @@ Packaging Tutorial
 basic programming knowledge.
 
 @menu
-* A ``Hello World'' package::
-* Setup::
-* Extended example::
-* Other build systems::
-* Programmable and automated package definition::
-* Getting help::
-* Conclusion::
-* References::
+* A ``Hello World'' package::  aa.
+* Setup::  ab.
+* Extended example::  ac.
+* Other build systems::  ad.
+* Programmable and automated package definition::  ae.
+* Getting help::  af.
+* Conclusion::  ag.
+* References::  ah.
 @end menu
 
 @node A ``Hello World'' package
@@ -708,9 +708,9 @@ Setup
 But first, let's look at other possibilities.
 
 @menu
-* Local file::
-* Channels::
-* Direct checkout hacking::
+* Local file::  ai.
+* Channels::  aj.
+* Direct checkout hacking::  ak.
 @end menu
 
 @node Local file
@@ -1364,9 +1364,9 @@ Programmable and automated package definition
 Let's illustrate this with some awesome features of Guix!
 
 @menu
-* Recursive importers::
-* Automatic update::
-* Inheritance::
+* Recursive importers::  al.
+* Automatic update::  am.
+* Inheritance::  an.
 @end menu
 
 @node Recursive importers
@@ -2180,8 +2180,8 @@ Customizing a Window Manager
 @cindex wm
 
 @menu
-* StumpWM::
-* Session lock::
+* StumpWM::  ao.
+* Session lock::  ap.
 @end menu
 
 @node StumpWM
@@ -2240,7 +2240,7 @@ Session lock
 StumpWM or EXWM, you might have to set it up yourself.
 
 @menu
-* Xorg::
+* Xorg::  aq.
 @end menu
 
 @node Xorg
@@ -3092,8 +3092,8 @@ Guix System Containers
 
 
 @menu
-* A Database Container::
-* Container Networking::
+* A Database Container::  ar.
+* Container Networking::  as.
 @end menu
 
 @node A Database Container
@@ -3378,11 +3378,11 @@ Guix Profiles in Practice
 Let's dive in the set up!
 
 @menu
-* Basic setup with manifests::
-* Required packages::
-* Default profile::
-* The benefits of manifests::
-* Reproducible profiles::
+* Basic setup with manifests::  at.
+* Required packages::  au.
+* Default profile::  av.
+* The benefits of manifests::  aw.
+* Reproducible profiles::  ax.
 @end menu
 
 @node Basic setup with manifests

base-commit: c7e45139faa27b60f2c7d0a4bc140f9793d97d47
prerequisite-patch-id: 44bba9c6a1eb16e10d96a8b736a9836366000060
-- 
2.40.1


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

* bug#64881: [translation] M-x texinfo-all-menus-update breaks translated cookbook
  2023-07-27 19:05       ` pelzflorian (Florian Pelz)
@ 2023-08-16 15:20         ` Maxim Cournoyer
  0 siblings, 0 replies; 6+ messages in thread
From: Maxim Cournoyer @ 2023-08-16 15:20 UTC (permalink / raw)
  To: pelzflorian (Florian Pelz); +Cc: Josselin Poiret, 64881-done

Hi Florian,

"pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de> writes:

> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>> M-x texinfo-update-all-menus is available out-of-the-box in Emacs, when
>> visiting a .texi file (you invoke it via Alt-x texinfo-update-all-menus
>> or by visiting the 'Texinfo -> Update All Menus' menu).
>
> Oops my bad.  I should have expected that Emacs commands are invisible
> unless the right Emacs mode is used.  Thank you for clarifying and
> presenting as a patch.
>
> Josselin Poiret <dev@jpoiret.xyz> writes:
>> `make as-derivation` uses #:select? git? to restrict to only files
>> that are checked out in git.  It doesn't try to get the contents of HEAD
>> though, the working directory's state is used instead.
>
> Oh hmm doc/guix-cookbook.de.texi is not checked in, so even `make
> as-derivation` should have worked ...
>
> This got nothing to do with stray .de.texi files.  Apparently it is
> because the menu entries lack menu descriptions (which should be
> optional according to `info texinfo').
>
> The attached patch on top of your patch helps ...
>
> Either we add optional descriptions everywhere or not update menu
> entries without description or change how po4a translates the menu
> entries in po4a source file lib/Locale/Po4a/Texinfo.pm in
> translate_buffer_menuentry, to make po4a translate when there is no
> description.  I don’t plan to do that though.

I've modified po4a to support this use case, with tests and all!  Pushed
as 352c49e1a5c48eb76389ee384eb95fc2e4a6ab32, with coobook menus updated
in the following commit.

Thanks for the analysis and pointers!

-- 
Thanks,
Maxim




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

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

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-26 19:33 bug#64881: [translation] M-x texinfo-all-menus-update breaks translated cookbook Maxim Cournoyer
2023-07-27 12:31 ` pelzflorian (Florian Pelz)
2023-07-27 15:29   ` Josselin Poiret via Bug reports for GNU Guix
2023-07-27 15:49     ` Maxim Cournoyer
2023-07-27 19:05       ` pelzflorian (Florian Pelz)
2023-08-16 15:20         ` Maxim Cournoyer

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

	https://git.savannah.gnu.org/cgit/guix.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).