diff mbox series

[yocto-docs,v2,5/6] system-requirements.rst: add dependencies for pdf builds

Message ID 20241204-update-doc-deps-v2-5-1d9b4063476f@bootlin.com
State New
Headers show
Series Update the dependencies in poky.yaml.in | expand

Commit Message

Antonin Godard Dec. 4, 2024, 12:23 p.m. UTC
With the recent changes from commit
bd6265ca323fac547a197bb516dc4a9ef3897508 ("doc: Makefile: add support
for xelatex"), the list of dependencies needs to be updated.

The initial list of dependencies was made for Ubuntu/Debian, and the
packages were translated for the other distros using pkgs.org.

Add them separately from the rest of the dependencies as they pull a
_lot_ of additional dependencies (for LaTeX).

Notes:
- Fedora/OpenSUSE do not have the "lang-all" texlive collection, so
  install all available languages.
- AlmaLinux does not seem to provide texlive-collection-fontsextra,
  texlive-collection-lang*, and texlive-collection-latexextra, so add a
  warning about that.

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
 documentation/poky.yaml.in                       | 47 +++++++++++++++++++++++-
 documentation/ref-manual/system-requirements.rst | 27 ++++++++++++++
 2 files changed, 73 insertions(+), 1 deletion(-)

Comments

Quentin Schulz Dec. 6, 2024, 2 p.m. UTC | #1
Hi Antonin,

On 12/4/24 1:23 PM, Antonin Godard wrote:
> With the recent changes from commit
> bd6265ca323fac547a197bb516dc4a9ef3897508 ("doc: Makefile: add support
> for xelatex"), the list of dependencies needs to be updated.
> 
> The initial list of dependencies was made for Ubuntu/Debian, and the
> packages were translated for the other distros using pkgs.org.
> 
> Add them separately from the rest of the dependencies as they pull a
> _lot_ of additional dependencies (for LaTeX).
> 
> Notes:
> - Fedora/OpenSUSE do not have the "lang-all" texlive collection, so
>    install all available languages.
> - AlmaLinux does not seem to provide texlive-collection-fontsextra,
>    texlive-collection-lang*, and texlive-collection-latexextra, so add a
>    warning about that.
> 
> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
> ---
>   documentation/poky.yaml.in                       | 47 +++++++++++++++++++++++-
>   documentation/ref-manual/system-requirements.rst | 27 ++++++++++++++
>   2 files changed, 73 insertions(+), 1 deletion(-)
> 
> diff --git a/documentation/poky.yaml.in b/documentation/poky.yaml.in
> index 94849acf9942c7ebddb2ac7f8aaf5eb9d87e0c5b..25385068679a51e0f2e9e516b02b62e19e126291 100644
> --- a/documentation/poky.yaml.in
> +++ b/documentation/poky.yaml.in
> @@ -67,8 +67,17 @@ UBUNTU_DEBIAN_HOST_PACKAGES_DOC: >-
>     python3-saneyaml
>     python3-sphinx-rtd-theme
>     sphinx
> -  texlive-latex-extra
>   
> +UBUNTU_DEBIAN_HOST_PACKAGES_DOC_PDF: >-
> +  fonts-freefont-otf
> +  latexmk
> +  tex-gyre
> +  texlive-fonts-extra
> +  texlive-fonts-recommended
> +  texlive-lang-all
> +  texlive-latex-extra
> +  texlive-latex-recommended
> +  texlive-xetex
>   
>   FEDORA_HOST_PACKAGES_ESSENTIAL: >-
>     bzip2
> @@ -129,6 +138,19 @@ FEDORA_HOST_PACKAGES_DOC: >-
>     texlive-latex-extra
>     which
>   
> +FEDORA_HOST_PACKAGES_DOC_PDF: >-
> +  latexmk
> +  texlive-collection-fontsextra
> +  texlive-collection-fontsrecommended
> +  texlive-collection-lang*

Please use single quotes to surround texlive-collection-lang* otherwise 
it may be interpreted by the shell, c.f. for me:

```sh
$ sudo dnf install texlive-collection-lang*
zsh: no matches found: libgpiod*
```

while `sudo dnf install 'texlive-collection-lang*'` works just fine.

Ditto for the other occurrences later in this diff.

Cheers,
Quentin
Antonin Godard Dec. 9, 2024, 5:02 p.m. UTC | #2
Hi Quentin,

On Fri Dec 6, 2024 at 3:00 PM CET, Quentin Schulz wrote:
> Hi Antonin,
>
> On 12/4/24 1:23 PM, Antonin Godard wrote:
>> With the recent changes from commit
>> bd6265ca323fac547a197bb516dc4a9ef3897508 ("doc: Makefile: add support
>> for xelatex"), the list of dependencies needs to be updated.
>> 
>> The initial list of dependencies was made for Ubuntu/Debian, and the
>> packages were translated for the other distros using pkgs.org.
>> 
>> Add them separately from the rest of the dependencies as they pull a
>> _lot_ of additional dependencies (for LaTeX).
>> 
>> Notes:
>> - Fedora/OpenSUSE do not have the "lang-all" texlive collection, so
>>    install all available languages.
>> - AlmaLinux does not seem to provide texlive-collection-fontsextra,
>>    texlive-collection-lang*, and texlive-collection-latexextra, so add a
>>    warning about that.
>> 
>> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
>> ---
>>   documentation/poky.yaml.in                       | 47 +++++++++++++++++++++++-
>>   documentation/ref-manual/system-requirements.rst | 27 ++++++++++++++
>>   2 files changed, 73 insertions(+), 1 deletion(-)
>> 
>> diff --git a/documentation/poky.yaml.in b/documentation/poky.yaml.in
>> index 94849acf9942c7ebddb2ac7f8aaf5eb9d87e0c5b..25385068679a51e0f2e9e516b02b62e19e126291 100644
>> --- a/documentation/poky.yaml.in
>> +++ b/documentation/poky.yaml.in
>> @@ -67,8 +67,17 @@ UBUNTU_DEBIAN_HOST_PACKAGES_DOC: >-
>>     python3-saneyaml
>>     python3-sphinx-rtd-theme
>>     sphinx
>> -  texlive-latex-extra
>>   
>> +UBUNTU_DEBIAN_HOST_PACKAGES_DOC_PDF: >-
>> +  fonts-freefont-otf
>> +  latexmk
>> +  tex-gyre
>> +  texlive-fonts-extra
>> +  texlive-fonts-recommended
>> +  texlive-lang-all
>> +  texlive-latex-extra
>> +  texlive-latex-recommended
>> +  texlive-xetex
>>   
>>   FEDORA_HOST_PACKAGES_ESSENTIAL: >-
>>     bzip2
>> @@ -129,6 +138,19 @@ FEDORA_HOST_PACKAGES_DOC: >-
>>     texlive-latex-extra
>>     which
>>   
>> +FEDORA_HOST_PACKAGES_DOC_PDF: >-
>> +  latexmk
>> +  texlive-collection-fontsextra
>> +  texlive-collection-fontsrecommended
>> +  texlive-collection-lang*
>
> Please use single quotes to surround texlive-collection-lang* otherwise 
> it may be interpreted by the shell, c.f. for me:
>
> ```sh
> $ sudo dnf install texlive-collection-lang*
> zsh: no matches found: libgpiod*
> ```
>
> while `sudo dnf install 'texlive-collection-lang*'` works just fine.
>
> Ditto for the other occurrences later in this diff.

So I had issues with this in the container scripts, which is why I left it at
that. I initially single quoted this but it didn't work. Are you sure you can
mix non-quotes and quoted strings here? I'll give a try, might be specific to
the dockerfile.

Thanks,
Antonin
Quentin Schulz Dec. 9, 2024, 5:28 p.m. UTC | #3
Hi Antonin,

On 12/9/24 6:02 PM, Antonin Godard via lists.yoctoproject.org wrote:
> Hi Quentin,
> 
> On Fri Dec 6, 2024 at 3:00 PM CET, Quentin Schulz wrote:
>> Hi Antonin,
>>
>> On 12/4/24 1:23 PM, Antonin Godard wrote:
>>> With the recent changes from commit
>>> bd6265ca323fac547a197bb516dc4a9ef3897508 ("doc: Makefile: add support
>>> for xelatex"), the list of dependencies needs to be updated.
>>>
>>> The initial list of dependencies was made for Ubuntu/Debian, and the
>>> packages were translated for the other distros using pkgs.org.
>>>
>>> Add them separately from the rest of the dependencies as they pull a
>>> _lot_ of additional dependencies (for LaTeX).
>>>
>>> Notes:
>>> - Fedora/OpenSUSE do not have the "lang-all" texlive collection, so
>>>     install all available languages.
>>> - AlmaLinux does not seem to provide texlive-collection-fontsextra,
>>>     texlive-collection-lang*, and texlive-collection-latexextra, so add a
>>>     warning about that.
>>>
>>> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
>>> ---
>>>    documentation/poky.yaml.in                       | 47 +++++++++++++++++++++++-
>>>    documentation/ref-manual/system-requirements.rst | 27 ++++++++++++++
>>>    2 files changed, 73 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/documentation/poky.yaml.in b/documentation/poky.yaml.in
>>> index 94849acf9942c7ebddb2ac7f8aaf5eb9d87e0c5b..25385068679a51e0f2e9e516b02b62e19e126291 100644
>>> --- a/documentation/poky.yaml.in
>>> +++ b/documentation/poky.yaml.in
>>> @@ -67,8 +67,17 @@ UBUNTU_DEBIAN_HOST_PACKAGES_DOC: >-
>>>      python3-saneyaml
>>>      python3-sphinx-rtd-theme
>>>      sphinx
>>> -  texlive-latex-extra
>>>    
>>> +UBUNTU_DEBIAN_HOST_PACKAGES_DOC_PDF: >-
>>> +  fonts-freefont-otf
>>> +  latexmk
>>> +  tex-gyre
>>> +  texlive-fonts-extra
>>> +  texlive-fonts-recommended
>>> +  texlive-lang-all
>>> +  texlive-latex-extra
>>> +  texlive-latex-recommended
>>> +  texlive-xetex
>>>    
>>>    FEDORA_HOST_PACKAGES_ESSENTIAL: >-
>>>      bzip2
>>> @@ -129,6 +138,19 @@ FEDORA_HOST_PACKAGES_DOC: >-
>>>      texlive-latex-extra
>>>      which
>>>    
>>> +FEDORA_HOST_PACKAGES_DOC_PDF: >-
>>> +  latexmk
>>> +  texlive-collection-fontsextra
>>> +  texlive-collection-fontsrecommended
>>> +  texlive-collection-lang*
>>
>> Please use single quotes to surround texlive-collection-lang* otherwise
>> it may be interpreted by the shell, c.f. for me:
>>
>> ```sh
>> $ sudo dnf install texlive-collection-lang*
>> zsh: no matches found: libgpiod*
>> ```
>>
>> while `sudo dnf install 'texlive-collection-lang*'` works just fine.
>>
>> Ditto for the other occurrences later in this diff.
> 
> So I had issues with this in the container scripts, which is why I left it at
> that. I initially single quoted this but it didn't work. Are you sure you can

Can you tell us more about those issues with some error value/messages 
or something?

> mix non-quotes and quoted strings here? I'll give a try, might be specific to
> the dockerfile.
> 

"""
$ sudo dnf install 'texlive-collection-lang*' latexmk
Updating and loading repositories:
Repositories loaded.
Package "texlive-collection-langarabic-11:svn59594-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langchinese-11:svn63995-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langcjk-11:svn65824-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langcyrillic-11:svn54074-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langczechslovak-11:svn54074-73.fc41.noarch" 
is already installed.
Package "texlive-collection-langenglish-11:svn65496-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langeuropean-11:svn66432-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langfrench-11:svn63147-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langgerman-11:svn55706-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langgreek-11:svn65038-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langitalian-11:svn55129-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langjapanese-11:svn64603-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langkorean-11:svn54074-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langother-11:svn59564-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langpolish-11:svn54074-73.fc41.noarch" is 
already installed.
Package "texlive-collection-langportuguese-11:svn54074-73.fc41.noarch" 
is already installed.
Package "texlive-collection-langspanish-11:svn54141-73.fc41.noarch" is 
already installed.
Package "latexmk-4.85-2.fc41.noarch" is already installed.

Nothing to do.
"""

Same for latexmk first in the list.

That's for DNF5 (fedora 41 and later).

DNF4 seems to be happy in a fedora 40 container as well:

"""
[root@6f0bdf8b38f2 /]# dnf install latexmk 'texlive-collection-lang*'
Last metadata expiration check: 0:00:54 ago on Mon Dec  9 17:13:01 2024.
Dependencies resolved.
==============================================================================================
  Package                                 Arch   Version 
         Repo     Size
==============================================================================================
Installing:
  latexmk                                 noarch 4.85-1.fc40 
         updates 454 k
  texlive-collection-langarabic           noarch 11:svn59594-71.fc40 
         fedora  9.7 k
  texlive-collection-langchinese          noarch 11:svn63995-71.fc40 
         fedora   10 k
  texlive-collection-langcjk              noarch 11:svn65824-71.fc40 
         fedora  9.8 k
  texlive-collection-langcyrillic         noarch 11:svn54074-71.fc40 
         fedora   10 k
  texlive-collection-langczechslovak      noarch 11:svn54074-71.fc40 
         fedora  9.4 k
  texlive-collection-langenglish          noarch 11:svn65496-71.fc40 
         fedora   11 k
  texlive-collection-langeuropean         noarch 11:svn66432-71.fc40 
         fedora   11 k
  texlive-collection-langfrench           noarch 11:svn63147-71.fc40 
         fedora   10 k
  texlive-collection-langgerman           noarch 11:svn55706-71.fc40 
         fedora   10 k
  texlive-collection-langgreek            noarch 11:svn65038-71.fc40 
         fedora  9.6 k
  texlive-collection-langitalian          noarch 11:svn55129-71.fc40 
         fedora  9.6 k
  texlive-collection-langjapanese         noarch 11:svn64603-71.fc40 
         fedora   11 k
  texlive-collection-langkorean           noarch 11:svn54074-71.fc40 
         fedora  9.4 k
  texlive-collection-langother            noarch 11:svn59564-71.fc40 
         fedora   11 k
  texlive-collection-langpolish           noarch 11:svn54074-71.fc40 
         fedora  9.5 k
  texlive-collection-langportuguese       noarch 11:svn54074-71.fc40 
         fedora  9.4 k
  texlive-collection-langspanish          noarch 11:svn54141-71.fc40 
         fedora  9.4 k
[...]
"""

and the other way around:

"""
[root@6f0bdf8b38f2 /]# dnf install 'texlive-collection-lang*' latexmk
Last metadata expiration check: 0:00:09 ago on Mon Dec  9 17:13:01 2024.
Dependencies resolved.
==============================================================================================
  Package                                 Arch   Version 
         Repo     Size
==============================================================================================
Installing:
  latexmk                                 noarch 4.85-1.fc40 
         updates 454 k
  texlive-collection-langarabic           noarch 11:svn59594-71.fc40 
         fedora  9.7 k
  texlive-collection-langchinese          noarch 11:svn63995-71.fc40 
         fedora   10 k
  texlive-collection-langcjk              noarch 11:svn65824-71.fc40 
         fedora  9.8 k
  texlive-collection-langcyrillic         noarch 11:svn54074-71.fc40 
         fedora   10 k
  texlive-collection-langczechslovak      noarch 11:svn54074-71.fc40 
         fedora  9.4 k
  texlive-collection-langenglish          noarch 11:svn65496-71.fc40 
         fedora   11 k
  texlive-collection-langeuropean         noarch 11:svn66432-71.fc40 
         fedora   11 k
  texlive-collection-langfrench           noarch 11:svn63147-71.fc40 
         fedora   10 k
  texlive-collection-langgerman           noarch 11:svn55706-71.fc40 
         fedora   10 k
  texlive-collection-langgreek            noarch 11:svn65038-71.fc40 
         fedora  9.6 k
  texlive-collection-langitalian          noarch 11:svn55129-71.fc40 
         fedora  9.6 k
  texlive-collection-langjapanese         noarch 11:svn64603-71.fc40 
         fedora   11 k
  texlive-collection-langkorean           noarch 11:svn54074-71.fc40 
         fedora  9.4 k
  texlive-collection-langother            noarch 11:svn59564-71.fc40 
         fedora   11 k
  texlive-collection-langpolish           noarch 11:svn54074-71.fc40 
         fedora  9.5 k
  texlive-collection-langportuguese       noarch 11:svn54074-71.fc40 
         fedora  9.4 k
  texlive-collection-langspanish          noarch 11:svn54141-71.fc40 
         fedora  9.4 k
[...]
"""

Cheers,
Quentin
Antonin Godard Dec. 10, 2024, 9:33 a.m. UTC | #4
Hi Quentin,

On Mon Dec 9, 2024 at 6:28 PM CET, Quentin Schulz wrote:
[...]
>>>> +FEDORA_HOST_PACKAGES_DOC_PDF: >-
>>>> +  latexmk
>>>> +  texlive-collection-fontsextra
>>>> +  texlive-collection-fontsrecommended
>>>> +  texlive-collection-lang*
>>>
>>> Please use single quotes to surround texlive-collection-lang* otherwise
>>> it may be interpreted by the shell, c.f. for me:
>>>
>>> ```sh
>>> $ sudo dnf install texlive-collection-lang*
>>> zsh: no matches found: libgpiod*
>>> ```
>>>
>>> while `sudo dnf install 'texlive-collection-lang*'` works just fine.
>>>
>>> Ditto for the other occurrences later in this diff.
>> 
>> So I had issues with this in the container scripts, which is why I left it at
>> that. I initially single quoted this but it didn't work. Are you sure you can
>
> Can you tell us more about those issues with some error value/messages 
> or something?
>
>> mix non-quotes and quoted strings here? I'll give a try, might be specific to
>> the dockerfile.
>> 
>
> """
> $ sudo dnf install 'texlive-collection-lang*' latexmk
> Updating and loading repositories:
> Repositories loaded.
> Package "texlive-collection-langarabic-11:svn59594-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langchinese-11:svn63995-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langcjk-11:svn65824-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langcyrillic-11:svn54074-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langczechslovak-11:svn54074-73.fc41.noarch" 
> is already installed.
> Package "texlive-collection-langenglish-11:svn65496-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langeuropean-11:svn66432-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langfrench-11:svn63147-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langgerman-11:svn55706-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langgreek-11:svn65038-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langitalian-11:svn55129-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langjapanese-11:svn64603-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langkorean-11:svn54074-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langother-11:svn59564-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langpolish-11:svn54074-73.fc41.noarch" is 
> already installed.
> Package "texlive-collection-langportuguese-11:svn54074-73.fc41.noarch" 
> is already installed.
> Package "texlive-collection-langspanish-11:svn54141-73.fc41.noarch" is 
> already installed.
> Package "latexmk-4.85-2.fc41.noarch" is already installed.
>
> Nothing to do.
> """
>
> Same for latexmk first in the list.
>
> That's for DNF5 (fedora 41 and later).
>
> DNF4 seems to be happy in a fedora 40 container as well:
>
> """
> [root@6f0bdf8b38f2 /]# dnf install latexmk 'texlive-collection-lang*'
> Last metadata expiration check: 0:00:54 ago on Mon Dec  9 17:13:01 2024.
> Dependencies resolved.
> ==============================================================================================
>   Package                                 Arch   Version 
>          Repo     Size
> ==============================================================================================
> Installing:
>   latexmk                                 noarch 4.85-1.fc40 
>          updates 454 k
>   texlive-collection-langarabic           noarch 11:svn59594-71.fc40 
>          fedora  9.7 k
>   texlive-collection-langchinese          noarch 11:svn63995-71.fc40 
>          fedora   10 k
>   texlive-collection-langcjk              noarch 11:svn65824-71.fc40 
>          fedora  9.8 k
>   texlive-collection-langcyrillic         noarch 11:svn54074-71.fc40 
>          fedora   10 k
>   texlive-collection-langczechslovak      noarch 11:svn54074-71.fc40 
>          fedora  9.4 k
>   texlive-collection-langenglish          noarch 11:svn65496-71.fc40 
>          fedora   11 k
>   texlive-collection-langeuropean         noarch 11:svn66432-71.fc40 
>          fedora   11 k
>   texlive-collection-langfrench           noarch 11:svn63147-71.fc40 
>          fedora   10 k
>   texlive-collection-langgerman           noarch 11:svn55706-71.fc40 
>          fedora   10 k
>   texlive-collection-langgreek            noarch 11:svn65038-71.fc40 
>          fedora  9.6 k
>   texlive-collection-langitalian          noarch 11:svn55129-71.fc40 
>          fedora  9.6 k
>   texlive-collection-langjapanese         noarch 11:svn64603-71.fc40 
>          fedora   11 k
>   texlive-collection-langkorean           noarch 11:svn54074-71.fc40 
>          fedora  9.4 k
>   texlive-collection-langother            noarch 11:svn59564-71.fc40 
>          fedora   11 k
>   texlive-collection-langpolish           noarch 11:svn54074-71.fc40 
>          fedora  9.5 k
>   texlive-collection-langportuguese       noarch 11:svn54074-71.fc40 
>          fedora  9.4 k
>   texlive-collection-langspanish          noarch 11:svn54141-71.fc40 
>          fedora  9.4 k
> [...]
> """
>
> and the other way around:
>
> """
> [root@6f0bdf8b38f2 /]# dnf install 'texlive-collection-lang*' latexmk
> Last metadata expiration check: 0:00:09 ago on Mon Dec  9 17:13:01 2024.
> Dependencies resolved.
> ==============================================================================================
>   Package                                 Arch   Version 
>          Repo     Size
> ==============================================================================================
> Installing:
>   latexmk                                 noarch 4.85-1.fc40 
>          updates 454 k
>   texlive-collection-langarabic           noarch 11:svn59594-71.fc40 
>          fedora  9.7 k
>   texlive-collection-langchinese          noarch 11:svn63995-71.fc40 
>          fedora   10 k
>   texlive-collection-langcjk              noarch 11:svn65824-71.fc40 
>          fedora  9.8 k
>   texlive-collection-langcyrillic         noarch 11:svn54074-71.fc40 
>          fedora   10 k
>   texlive-collection-langczechslovak      noarch 11:svn54074-71.fc40 
>          fedora  9.4 k
>   texlive-collection-langenglish          noarch 11:svn65496-71.fc40 
>          fedora   11 k
>   texlive-collection-langeuropean         noarch 11:svn66432-71.fc40 
>          fedora   11 k
>   texlive-collection-langfrench           noarch 11:svn63147-71.fc40 
>          fedora   10 k
>   texlive-collection-langgerman           noarch 11:svn55706-71.fc40 
>          fedora   10 k
>   texlive-collection-langgreek            noarch 11:svn65038-71.fc40 
>          fedora  9.6 k
>   texlive-collection-langitalian          noarch 11:svn55129-71.fc40 
>          fedora  9.6 k
>   texlive-collection-langjapanese         noarch 11:svn64603-71.fc40 
>          fedora   11 k
>   texlive-collection-langkorean           noarch 11:svn54074-71.fc40 
>          fedora  9.4 k
>   texlive-collection-langother            noarch 11:svn59564-71.fc40 
>          fedora   11 k
>   texlive-collection-langpolish           noarch 11:svn54074-71.fc40 
>          fedora  9.5 k
>   texlive-collection-langportuguese       noarch 11:svn54074-71.fc40 
>          fedora  9.4 k
>   texlive-collection-langspanish          noarch 11:svn54141-71.fc40 
>          fedora  9.4 k
> [...]
> """
>
> Cheers,
> Quentin

Thanks for taking the time to test this. I guess this works for most shells, but
in the context of a Dockerfile I hit this error:

  10.39 No match for argument: 'texlive-collection-lang*'
  10.45 Error: Unable to find a match: 'texlive-collection-lang*'

You can reproduce this by running:

  $ echo "'texlive-collection-lang*'" > /tmp/deps
  $ sudo dnf install $(cat /tmp/deps)

I was able use this instead:

  xargs -a /tmp/deps sudo dnf install

I'll use this instead in Fedora and others. xargs is installed by default in
base Ubuntu/Debian/Fedora containers.


Antonin
Quentin Schulz Dec. 10, 2024, 10:34 a.m. UTC | #5
Hi Antonin,

On 12/10/24 10:33 AM, Antonin Godard wrote:
> Hi Quentin,
> 
> On Mon Dec 9, 2024 at 6:28 PM CET, Quentin Schulz wrote:
> [...]
>>>>> +FEDORA_HOST_PACKAGES_DOC_PDF: >-
>>>>> +  latexmk
>>>>> +  texlive-collection-fontsextra
>>>>> +  texlive-collection-fontsrecommended
>>>>> +  texlive-collection-lang*
>>>>
>>>> Please use single quotes to surround texlive-collection-lang* otherwise
>>>> it may be interpreted by the shell, c.f. for me:
>>>>
>>>> ```sh
>>>> $ sudo dnf install texlive-collection-lang*
>>>> zsh: no matches found: libgpiod*
>>>> ```
>>>>
>>>> while `sudo dnf install 'texlive-collection-lang*'` works just fine.
>>>>
>>>> Ditto for the other occurrences later in this diff.
>>>
>>> So I had issues with this in the container scripts, which is why I left it at
>>> that. I initially single quoted this but it didn't work. Are you sure you can
>>
>> Can you tell us more about those issues with some error value/messages
>> or something?
>>
>>> mix non-quotes and quoted strings here? I'll give a try, might be specific to
>>> the dockerfile.
>>>
>>
>> """
>> $ sudo dnf install 'texlive-collection-lang*' latexmk
>> Updating and loading repositories:
>> Repositories loaded.
>> Package "texlive-collection-langarabic-11:svn59594-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langchinese-11:svn63995-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langcjk-11:svn65824-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langcyrillic-11:svn54074-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langczechslovak-11:svn54074-73.fc41.noarch"
>> is already installed.
>> Package "texlive-collection-langenglish-11:svn65496-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langeuropean-11:svn66432-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langfrench-11:svn63147-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langgerman-11:svn55706-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langgreek-11:svn65038-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langitalian-11:svn55129-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langjapanese-11:svn64603-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langkorean-11:svn54074-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langother-11:svn59564-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langpolish-11:svn54074-73.fc41.noarch" is
>> already installed.
>> Package "texlive-collection-langportuguese-11:svn54074-73.fc41.noarch"
>> is already installed.
>> Package "texlive-collection-langspanish-11:svn54141-73.fc41.noarch" is
>> already installed.
>> Package "latexmk-4.85-2.fc41.noarch" is already installed.
>>
>> Nothing to do.
>> """
>>
>> Same for latexmk first in the list.
>>
>> That's for DNF5 (fedora 41 and later).
>>
>> DNF4 seems to be happy in a fedora 40 container as well:
>>
>> """
>> [root@6f0bdf8b38f2 /]# dnf install latexmk 'texlive-collection-lang*'
>> Last metadata expiration check: 0:00:54 ago on Mon Dec  9 17:13:01 2024.
>> Dependencies resolved.
>> ==============================================================================================
>>    Package                                 Arch   Version
>>           Repo     Size
>> ==============================================================================================
>> Installing:
>>    latexmk                                 noarch 4.85-1.fc40
>>           updates 454 k
>>    texlive-collection-langarabic           noarch 11:svn59594-71.fc40
>>           fedora  9.7 k
>>    texlive-collection-langchinese          noarch 11:svn63995-71.fc40
>>           fedora   10 k
>>    texlive-collection-langcjk              noarch 11:svn65824-71.fc40
>>           fedora  9.8 k
>>    texlive-collection-langcyrillic         noarch 11:svn54074-71.fc40
>>           fedora   10 k
>>    texlive-collection-langczechslovak      noarch 11:svn54074-71.fc40
>>           fedora  9.4 k
>>    texlive-collection-langenglish          noarch 11:svn65496-71.fc40
>>           fedora   11 k
>>    texlive-collection-langeuropean         noarch 11:svn66432-71.fc40
>>           fedora   11 k
>>    texlive-collection-langfrench           noarch 11:svn63147-71.fc40
>>           fedora   10 k
>>    texlive-collection-langgerman           noarch 11:svn55706-71.fc40
>>           fedora   10 k
>>    texlive-collection-langgreek            noarch 11:svn65038-71.fc40
>>           fedora  9.6 k
>>    texlive-collection-langitalian          noarch 11:svn55129-71.fc40
>>           fedora  9.6 k
>>    texlive-collection-langjapanese         noarch 11:svn64603-71.fc40
>>           fedora   11 k
>>    texlive-collection-langkorean           noarch 11:svn54074-71.fc40
>>           fedora  9.4 k
>>    texlive-collection-langother            noarch 11:svn59564-71.fc40
>>           fedora   11 k
>>    texlive-collection-langpolish           noarch 11:svn54074-71.fc40
>>           fedora  9.5 k
>>    texlive-collection-langportuguese       noarch 11:svn54074-71.fc40
>>           fedora  9.4 k
>>    texlive-collection-langspanish          noarch 11:svn54141-71.fc40
>>           fedora  9.4 k
>> [...]
>> """
>>
>> and the other way around:
>>
>> """
>> [root@6f0bdf8b38f2 /]# dnf install 'texlive-collection-lang*' latexmk
>> Last metadata expiration check: 0:00:09 ago on Mon Dec  9 17:13:01 2024.
>> Dependencies resolved.
>> ==============================================================================================
>>    Package                                 Arch   Version
>>           Repo     Size
>> ==============================================================================================
>> Installing:
>>    latexmk                                 noarch 4.85-1.fc40
>>           updates 454 k
>>    texlive-collection-langarabic           noarch 11:svn59594-71.fc40
>>           fedora  9.7 k
>>    texlive-collection-langchinese          noarch 11:svn63995-71.fc40
>>           fedora   10 k
>>    texlive-collection-langcjk              noarch 11:svn65824-71.fc40
>>           fedora  9.8 k
>>    texlive-collection-langcyrillic         noarch 11:svn54074-71.fc40
>>           fedora   10 k
>>    texlive-collection-langczechslovak      noarch 11:svn54074-71.fc40
>>           fedora  9.4 k
>>    texlive-collection-langenglish          noarch 11:svn65496-71.fc40
>>           fedora   11 k
>>    texlive-collection-langeuropean         noarch 11:svn66432-71.fc40
>>           fedora   11 k
>>    texlive-collection-langfrench           noarch 11:svn63147-71.fc40
>>           fedora   10 k
>>    texlive-collection-langgerman           noarch 11:svn55706-71.fc40
>>           fedora   10 k
>>    texlive-collection-langgreek            noarch 11:svn65038-71.fc40
>>           fedora  9.6 k
>>    texlive-collection-langitalian          noarch 11:svn55129-71.fc40
>>           fedora  9.6 k
>>    texlive-collection-langjapanese         noarch 11:svn64603-71.fc40
>>           fedora   11 k
>>    texlive-collection-langkorean           noarch 11:svn54074-71.fc40
>>           fedora  9.4 k
>>    texlive-collection-langother            noarch 11:svn59564-71.fc40
>>           fedora   11 k
>>    texlive-collection-langpolish           noarch 11:svn54074-71.fc40
>>           fedora  9.5 k
>>    texlive-collection-langportuguese       noarch 11:svn54074-71.fc40
>>           fedora  9.4 k
>>    texlive-collection-langspanish          noarch 11:svn54141-71.fc40
>>           fedora  9.4 k
>> [...]
>> """
>>
>> Cheers,
>> Quentin
> 
> Thanks for taking the time to test this. I guess this works for most shells, but
> in the context of a Dockerfile I hit this error:
> 
>    10.39 No match for argument: 'texlive-collection-lang*'
>    10.45 Error: Unable to find a match: 'texlive-collection-lang*'
> 
> You can reproduce this by running:
> 
>    $ echo "'texlive-collection-lang*'" > /tmp/deps
>    $ sudo dnf install $(cat /tmp/deps)
> 

OK. I guess this is because shell isn't parsing the line and just 
interpreting it directly, so it's passing 'texlive-collection-lang*' to 
dnf, whereas before it would pass texlive-collection-lang* because shell 
would parse and unquote the argument?

> I was able use this instead:
> 
>    xargs -a /tmp/deps sudo dnf install
> 
> I'll use this instead in Fedora and others. xargs is installed by default in
> base Ubuntu/Debian/Fedora containers.
> 

I still think storing the full instructions in separate scripts is a 
more maintainable and future-proof solution than this.

Cheers,
Quentin
diff mbox series

Patch

diff --git a/documentation/poky.yaml.in b/documentation/poky.yaml.in
index 94849acf9942c7ebddb2ac7f8aaf5eb9d87e0c5b..25385068679a51e0f2e9e516b02b62e19e126291 100644
--- a/documentation/poky.yaml.in
+++ b/documentation/poky.yaml.in
@@ -67,8 +67,17 @@  UBUNTU_DEBIAN_HOST_PACKAGES_DOC: >-
   python3-saneyaml
   python3-sphinx-rtd-theme
   sphinx
-  texlive-latex-extra
 
+UBUNTU_DEBIAN_HOST_PACKAGES_DOC_PDF: >-
+  fonts-freefont-otf
+  latexmk
+  tex-gyre
+  texlive-fonts-extra
+  texlive-fonts-recommended
+  texlive-lang-all
+  texlive-latex-extra
+  texlive-latex-recommended
+  texlive-xetex
 
 FEDORA_HOST_PACKAGES_ESSENTIAL: >-
   bzip2
@@ -129,6 +138,19 @@  FEDORA_HOST_PACKAGES_DOC: >-
   texlive-latex-extra
   which
 
+FEDORA_HOST_PACKAGES_DOC_PDF: >-
+  latexmk
+  texlive-collection-fontsextra
+  texlive-collection-fontsrecommended
+  texlive-collection-lang*
+  texlive-collection-latex
+  texlive-collection-latexextra
+  texlive-collection-latexrecommended
+  texlive-collection-xetex
+  texlive-gnu-freefont
+  texlive-tex-gyre
+  texlive-xetex
+
 OPENSUSE_HOST_PACKAGES_ESSENTIAL: >-
   bzip2
   chrpath
@@ -169,6 +191,19 @@  OPENSUSE_HOST_PACKAGES_DOC: >-
   texlive-fncychap
   which
 
+OPENSUSE_HOST_PACKAGES_DOC_PDF: >-
+  texlive-collection-fontsextra
+  texlive-collection-fontsrecommended
+  texlive-collection-lang*
+  texlive-collection-latex
+  texlive-collection-latexextra
+  texlive-collection-latexrecommended
+  texlive-collection-xetex
+  texlive-gnu-freefont
+  texlive-latexmk
+  texlive-tex-gyre
+  texlive-xetex
+
 ALMALINUX_HOST_PACKAGES_ESSENTIAL: >-
   bzip2
   ccache
@@ -214,3 +249,13 @@  ALMALINUX_HOST_PACKAGES_DOC: >-
   python3-pip
   texlive-fncychap
   which
+
+ALMALINUX_HOST_PACKAGES_DOC_PDF: >-
+  latexmk
+  texlive-collection-fontsrecommended
+  texlive-collection-latex
+  texlive-collection-latexrecommended
+  texlive-collection-xetex
+  texlive-gnu-freefont
+  texlive-tex-gyre
+  texlive-xetex
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 7c7f518d9fe1f68e5b014cf31e59dc9bbe322e4c..b087d374d23a71104dc9c050e96e4a2c20f5abb0 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -193,6 +193,11 @@  Here are the packages needed to build Project documentation manuals::
 
    $ sudo apt install &UBUNTU_DEBIAN_HOST_PACKAGES_DOC;
 
+In addition to the previous packages, here are the packages needed to build the
+documentation in PDF format::
+
+   $ sudo apt install &UBUNTU_DEBIAN_HOST_PACKAGES_DOC_PDF;
+
 Fedora Packages
 ---------------
 
@@ -206,6 +211,11 @@  Here are the packages needed to build Project documentation manuals::
    $ sudo dnf install &FEDORA_HOST_PACKAGES_DOC;
    $ sudo pip3 install &PIP3_HOST_PACKAGES_DOC;
 
+In addition to the previous packages, here are the packages needed to build the
+documentation in PDF format::
+
+   $ sudo dnf install &FEDORA_HOST_PACKAGES_DOC_PDF;
+
 openSUSE Packages
 -----------------
 
@@ -220,6 +230,11 @@  Here are the packages needed to build Project documentation manuals::
    $ sudo zypper install &OPENSUSE_HOST_PACKAGES_DOC;
    $ sudo pip3 install &PIP3_HOST_PACKAGES_DOC;
 
+In addition to the previous packages, here are the packages needed to build the
+documentation in PDF format::
+
+   $ sudo zypper install &OPENSUSE_HOST_PACKAGES_DOC_PDF;
+
 
 AlmaLinux Packages
 ------------------
@@ -251,6 +266,18 @@  Here are the packages needed to build Project documentation manuals::
    $ sudo dnf install &ALMALINUX_HOST_PACKAGES_DOC;
    $ sudo pip3 install &PIP3_HOST_PACKAGES_DOC;
 
+In addition to the previous packages, here are the packages needed to build the
+documentation in PDF format::
+
+   $ sudo dnf install &ALMALINUX_HOST_PACKAGES_DOC_PDF;
+
+.. warning::
+
+   Unlike Fedora or OpenSUSE, AlmaLinux does not provide the packages
+   ``texlive-collection-fontsextra``, ``texlive-collection-lang*`` and
+   ``texlive-collection-latexextra``, so you may run into issues. These may be
+   installed using `tlmgr <https://tug.org/texlive/tlmgr.html>`_.
+
 .. _system-requirements-buildtools:
 
 Required Git, tar, Python, make and gcc Versions