The Python module pyyaml is required to build the docs, but it is only
listed in Documentation/sphinx/requirements.txt and is therefore missing
when Sphinx is installed as a package and not via pip/pypi.
Add pyyaml as an optional package for Debian- and Red Hat-based distros to
fix building the docs if you prefer to install Sphinx as a package.
Signed-off-by: Thorsten Blum <[email protected]>
---
scripts/sphinx-pre-install | 3 +++
1 file changed, 3 insertions(+)
diff --git a/scripts/sphinx-pre-install b/scripts/sphinx-pre-install
index 25aefbb35377..7905beab3359 100755
--- a/scripts/sphinx-pre-install
+++ b/scripts/sphinx-pre-install
@@ -361,6 +361,7 @@ sub give_debian_hints()
{
my %map = (
"python-sphinx" => "python3-sphinx",
+ "pyyaml" => "python3-yaml",
"ensurepip" => "python3-venv",
"virtualenv" => "virtualenv",
"dot" => "graphviz",
@@ -395,6 +396,7 @@ sub give_redhat_hints()
{
my %map = (
"python-sphinx" => "python3-sphinx",
+ "pyyaml" => "python3-pyyaml",
"virtualenv" => "python3-virtualenv",
"dot" => "graphviz",
"convert" => "ImageMagick",
@@ -955,6 +957,7 @@ sub check_needs()
check_program("gcc", 0);
check_program("dot", 1);
check_program("convert", 1);
+ check_python_module("pyyaml", 1);
# Extra PDF files - should use 2 for is_optional
check_program("xelatex", 2) if ($pdf);
--
2.39.2
On 07/02/2024 12:12, Thorsten Blum wrote:
> The Python module pyyaml is required to build the docs, but it is only
> listed in Documentation/sphinx/requirements.txt and is therefore missing
> when Sphinx is installed as a package and not via pip/pypi.
>
> Add pyyaml as an optional package for Debian- and Red Hat-based distros to
> fix building the docs if you prefer to install Sphinx as a package.
Thanks for fixing this!
> @@ -955,6 +957,7 @@ sub check_needs()
> check_program("gcc", 0);
> check_program("dot", 1);
> check_program("convert", 1);
> + check_python_module("pyyaml", 1);
Shouldn't this be just "yaml" instead of "pyyaml"? check_python_module()
is going to "import" that argument and the Python module itself is just
called "yaml".
Hm, but then it's going to add "yaml" to %missing, which keys on
packages, not modules... Maybe add an optional argument to
check_python_module() so that it knows both the Python module name and
the package name?
As usual, I could be wrong...
Vegard
The Python module pyyaml is required to build the docs, but it is only
listed in Documentation/sphinx/requirements.txt and is therefore missing
when Sphinx is installed as a package and not via pip/pypi.
Add pyyaml as an optional package for Debian- and Red Hat-based distros to
fix building the docs if you prefer to install Sphinx as a package.
Signed-off-by: Thorsten Blum <[email protected]>
---
Changes in v2:
- s/pyyaml/yaml/ as suggested by Vegard Nossum <[email protected]>
- Make the check require the Python module; was optional
---
scripts/sphinx-pre-install | 3 +++
1 file changed, 3 insertions(+)
diff --git a/scripts/sphinx-pre-install b/scripts/sphinx-pre-install
index 25aefbb35377..7e49a020c25e 100755
--- a/scripts/sphinx-pre-install
+++ b/scripts/sphinx-pre-install
@@ -361,6 +361,7 @@ sub give_debian_hints()
{
my %map = (
"python-sphinx" => "python3-sphinx",
+ "yaml" => "python3-yaml",
"ensurepip" => "python3-venv",
"virtualenv" => "virtualenv",
"dot" => "graphviz",
@@ -395,6 +396,7 @@ sub give_redhat_hints()
{
my %map = (
"python-sphinx" => "python3-sphinx",
+ "yaml" => "python3-pyyaml",
"virtualenv" => "python3-virtualenv",
"dot" => "graphviz",
"convert" => "ImageMagick",
@@ -951,6 +953,7 @@ sub check_needs()
# Check for needed programs/tools
check_perl_module("Pod::Usage", 0);
+ check_python_module("yaml", 0);
check_program("make", 0);
check_program("gcc", 0);
check_program("dot", 1);
--
2.39.2
On 08/02/2024 14:13, Thorsten Blum wrote:
> The Python module pyyaml is required to build the docs, but it is only
> listed in Documentation/sphinx/requirements.txt and is therefore missing
> when Sphinx is installed as a package and not via pip/pypi.
>
> Add pyyaml as an optional package for Debian- and Red Hat-based distros to
s/optional/required/ ? Given...
> fix building the docs if you prefer to install Sphinx as a package.
>
> Signed-off-by: Thorsten Blum <[email protected]>
> ---
> Changes in v2:
> - s/pyyaml/yaml/ as suggested by Vegard Nossum <[email protected]>
> - Make the check require the Python module; was optional
..this ^
> ---
> scripts/sphinx-pre-install | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/scripts/sphinx-pre-install b/scripts/sphinx-pre-install
> index 25aefbb35377..7e49a020c25e 100755
> --- a/scripts/sphinx-pre-install
> +++ b/scripts/sphinx-pre-install
> @@ -361,6 +361,7 @@ sub give_debian_hints()
> {
> my %map = (
> "python-sphinx" => "python3-sphinx",
> + "yaml" => "python3-yaml",
> "ensurepip" => "python3-venv",
> "virtualenv" => "virtualenv",
> "dot" => "graphviz",
> @@ -395,6 +396,7 @@ sub give_redhat_hints()
> {
> my %map = (
> "python-sphinx" => "python3-sphinx",
> + "yaml" => "python3-pyyaml",
> "virtualenv" => "python3-virtualenv",
> "dot" => "graphviz",
> "convert" => "ImageMagick",
> @@ -951,6 +953,7 @@ sub check_needs()
>
> # Check for needed programs/tools
> check_perl_module("Pod::Usage", 0);
> + check_python_module("yaml", 0);
> check_program("make", 0);
> check_program("gcc", 0);
> check_program("dot", 1);
This seems to work.
Reviewed-by: Vegard Nossum <[email protected]>
Tested-by: Vegard Nossum <[email protected]>
Can/should we add it to give_opensuse_hints() as well, given that it
also apparently allows you to install Sphinx via the distro package
manager? (Not sure about mageia/arch/gentoo.)
Vegard
> On Feb 8, 2024, at 17:37, Vegard Nossum <[email protected]> wrote:
>
> On 08/02/2024 14:13, Thorsten Blum wrote:
>> The Python module pyyaml is required to build the docs, but it is only
>> listed in Documentation/sphinx/requirements.txt and is therefore missing
>> when Sphinx is installed as a package and not via pip/pypi.
>> Add pyyaml as an optional package for Debian- and Red Hat-based distros to
> s/optional/required/ ? Given...
The commit message should be correct. The system package is optional, but the
Python module itself is required.
> Can/should we add it to give_opensuse_hints() as well, given that it
> also apparently allows you to install Sphinx via the distro package
> manager? (Not sure about mageia/arch/gentoo.)
Yes, I'll submit a v3 shortly.
Thanks,
Thorsten
The Python module pyyaml is required to build the docs, but it is only
listed in Documentation/sphinx/requirements.txt and is therefore missing
when Sphinx is installed as a package and not via pip/pypi.
Add pyyaml as an optional package for multiple distros to fix building the
docs if you prefer to install Sphinx as a package.
Signed-off-by: Thorsten Blum <[email protected]>
Reviewed-by: Vegard Nossum <[email protected]>
Tested-by: Vegard Nossum <[email protected]>
---
Changes in v2:
- s/pyyaml/yaml/ as suggested by Vegard Nossum
- Make the check require the Python module; was optional
Changes in v3:
- Preserve Reviewed-by: and Tested-by: tags
- Add pyyaml to openSUSE as suggested by Vegard Nossum
---
scripts/sphinx-pre-install | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/scripts/sphinx-pre-install b/scripts/sphinx-pre-install
index 25aefbb35377..88ae75887476 100755
--- a/scripts/sphinx-pre-install
+++ b/scripts/sphinx-pre-install
@@ -361,6 +361,7 @@ sub give_debian_hints()
{
my %map = (
"python-sphinx" => "python3-sphinx",
+ "yaml" => "python3-yaml",
"ensurepip" => "python3-venv",
"virtualenv" => "virtualenv",
"dot" => "graphviz",
@@ -395,6 +396,7 @@ sub give_redhat_hints()
{
my %map = (
"python-sphinx" => "python3-sphinx",
+ "yaml" => "python3-pyyaml",
"virtualenv" => "python3-virtualenv",
"dot" => "graphviz",
"convert" => "ImageMagick",
@@ -472,6 +474,7 @@ sub give_opensuse_hints()
{
my %map = (
"python-sphinx" => "python3-sphinx",
+ "yaml" => "python3-pyyaml",
"virtualenv" => "python3-virtualenv",
"dot" => "graphviz",
"convert" => "ImageMagick",
@@ -951,6 +954,7 @@ sub check_needs()
# Check for needed programs/tools
check_perl_module("Pod::Usage", 0);
+ check_python_module("yaml", 0);
check_program("make", 0);
check_program("gcc", 0);
check_program("dot", 1);
--
2.39.2
Thorsten Blum <[email protected]> writes:
> The Python module pyyaml is required to build the docs, but it is only
> listed in Documentation/sphinx/requirements.txt and is therefore missing
> when Sphinx is installed as a package and not via pip/pypi.
>
> Add pyyaml as an optional package for multiple distros to fix building the
> docs if you prefer to install Sphinx as a package.
>
> Signed-off-by: Thorsten Blum <[email protected]>
> Reviewed-by: Vegard Nossum <[email protected]>
> Tested-by: Vegard Nossum <[email protected]>
> ---
> Changes in v2:
> - s/pyyaml/yaml/ as suggested by Vegard Nossum
> - Make the check require the Python module; was optional
>
> Changes in v3:
> - Preserve Reviewed-by: and Tested-by: tags
> - Add pyyaml to openSUSE as suggested by Vegard Nossum
> ---
> scripts/sphinx-pre-install | 4 ++++
> 1 file changed, 4 insertions(+)
Applied, thanks.
jon