Fix PDF doc builds on major distros
Subsystems (4)
cover Fix PDF doc builds on major distros
Hi Jon,
This series touch only on three files, and have a small diffstat:
Documentation/Makefile | 4 - Documentation/conf.py | 106 +++++++++++++++++++++---------------- scripts/sphinx-pre-install | 41 +++++++++++--- 3 files changed, 96 insertions(+), 55 deletions(-)
Yet, it took a lot of my time. Basically, it addresses lots of problems related with building PDF docs:
- Makefile has a wrong set of definitions for paper size. It was using pre-1.7 Sphinx nomenclature for some conf vars;
- The LaTeX options a conf.py had lots of issues;
- Finally, some PDF package dependencies for distros were wrong.
I wrote an entire testbench to test this and doing builds on every platform mentioned at sphinx-pre-install.
After the change *most* PDF files are built on *most* platforms.
Summary
=======
PASSED - AlmaLinux release 9.6 (Sage Margay) (7 tests) PASSED - Amazon Linux release 2023 (Amazon Linux) (7 tests) FAILED - archlinux (1 tests)
PASSED - CentOS Stream release 9 (7 tests)
PARTIAL - Debian GNU/Linux 12 (7 tests)
PARTIAL - Devuan GNU/Linux 5 (7 tests)
PASSED - Fedora release 42 (Adams) (7 tests)
PARTIAL - Gentoo Base System release 2.17 (7 tests)
PASSED - Kali GNU/Linux 2025.2 (7 tests)
PASSED - Mageia 9 (7 tests)
PARTIAL - Linux Mint 22 (7 tests)
PARTIAL - openEuler release 25.03 (7 tests)
PARTIAL - OpenMandriva Lx 4.3 (7 tests)
PASSED - openSUSE Leap 15.6 (7 tests)
PASSED - openSUSE Tumbleweed (7 tests)
PARTIAL - Oracle Linux Server release 9.6 (7 tests)
FAILED - Red Hat Enterprise Linux release 8.10 (Ootpa) (7 tests) PARTIAL - Rocky Linux release 8.9 (Green Obsidian) (7 tests) PARTIAL - Rocky Linux release 9.6 (Blue Onyx) (7 tests) FAILED - Springdale Open Enterprise Linux release 9.2 (Parma) (7 tests) PARTIAL - Ubuntu 24.04.2 LTS (7 tests)
PASSED - Ubuntu 25.04 (7 tests)
The failed distros are:
- archlinux. This is some problem on recent lxc containers. Unrelated with pdf builds;
- RHEL 8: paywall issue: some packages required by Sphinx require a repository that it is not openly available. I might have using CentOS repos, but, as we're already testing it, I opted not do do it;
- Springdale 9.2: some broken package dependency.
Now, if you look at the full logs below, you'll see that some distros come with XeLaTeX or LaTeX troubles, causing bigger and/or more complex docs to fail. It is possible to fix those, but they depend on addressing distro-specific LaTeX issues like increasing maximum memory limits and maximum number of idented paragraphs.
It follows full results per distro.
Please notice that I'm testing this after applying the next series which adds a sphinx-build-wrapper. The rationale is that, on such series, the logic can check what PDF files are missed. Currently, on upstream, PDF always return an error, even when everything suceeds.
Regards,
Mauro
AlmaLinux release 9.6 (Sage Margay):
------------------------------------
PASSED: OS detection: AlmaLinux release 9.6 (Sage Margay)
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:56, return code: 0
PASSED: Build PDF documentation: Build time: 11:44, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Amazon Linux release 2023 (Amazon Linux):
-----------------------------------------
PASSED: OS detection: Amazon Linux release 2023 (Amazon Linux)
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:59, return code: 0
PASSED: Build PDF documentation: Build time: 11:12, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
archlinux:
----------
FAILED: Build failed at package installation (
Failed to setup distrolib.distro_manager.CustomError: Failed to setup distro
File "~/bin/doc-build-container.py", line 264, in <module>
asyncio.run(main())
/usr/lib64/python3.13/asyncio/runners.py, line 195, in run
return runner.run(main)
/usr/lib64/python3.13/asyncio/runners.py, line 118, in run
return self._loop.run_until_complete(task)
/usr/lib64/python3.13/asyncio/base_events.py, line 712, in run_until_complete
self.run_forever()
/usr/lib64/python3.13/asyncio/base_events.py, line 683, in run_forever
self._run_once()
/usr/lib64/python3.13/asyncio/base_events.py, line 2050, in _run_once
handle._run()
/usr/lib64/python3.13/asyncio/events.py, line 89, in _run
self._context.run(self._callback, *self._args)
File "distro_manager.py", line 617, in run_manager
return await manager.serial_run()
File "distro_manager.py", line 598, in serial_run
await self.run_distro(distro)
File "distro_manager.py", line 523, in run_distro
self.record_status(
)CentOS Stream release 9:
------------------------
PASSED: OS detection: CentOS Stream release 9
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:55, return code: 0
PASSED: Build PDF documentation: Build time: 11:40, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Debian GNU/Linux 12:
--------------------
PASSED: OS detection: Debian GNU/Linux 12
SKIPPED (Sphinx Sphinx 5.3.0): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:46, return code: 0
FAILED: Build PDF documentation: Test failed (Build time: 10:31, return code: 2)
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
FAILED: userspace-api: Build failed (FAILED)
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
FAILED: translations: Build failed (FAILED)
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
FAILED: doc-guide: Build failed (FAILED)
PASSED: cdrom: pdf/cdrom.pdf
FAILED: gpu: Build failed (FAILED)
FAILED: i2c: Build failed (FAILED)
FAILED: RCU: Build failed (FAILED)
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
FAILED: arch: Build failed (FAILED)
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
FAILED: core-api: Build failed (FAILED)
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Devuan GNU/Linux 5:
-------------------
PASSED: OS detection: Devuan GNU/Linux 5
SKIPPED (Sphinx Sphinx 5.3.0): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:46, return code: 0
FAILED: Build PDF documentation: Test failed (Build time: 10:30, return code: 2)
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
FAILED: userspace-api: Build failed (FAILED)
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
FAILED: translations: Build failed (FAILED)
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
FAILED: doc-guide: Build failed (FAILED)
PASSED: cdrom: pdf/cdrom.pdf
FAILED: gpu: Build failed (FAILED)
FAILED: i2c: Build failed (FAILED)
FAILED: RCU: Build failed (FAILED)
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
FAILED: arch: Build failed (FAILED)
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
FAILED: core-api: Build failed (FAILED)
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Fedora release 42 (Adams):
--------------------------
PASSED: OS detection: Fedora release 42 (Adams)
SKIPPED (Sphinx Sphinx 8.1.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 4:47, return code: 0
PASSED: Build PDF documentation: Build time: 10:33, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Gentoo Base System release 2.17:
--------------------------------
PASSED: OS detection: Gentoo Base System release 2.17
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 8.2.3
PASSED: Sphinx package: Sphinx Sphinx 8.2.3
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 3:43, return code: 0
FAILED: Build PDF documentation: Test failed (Build time: 10:03, return code: 2)
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
FAILED: userspace-api: Build failed (FAILED)
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
FAILED: translations: Build failed (FAILED)
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
FAILED: gpu: Build failed (FAILED)
FAILED: i2c: Build failed (FAILED)
FAILED: RCU: Build failed (FAILED)
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
FAILED: arch: Build failed (FAILED)
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
FAILED: core-api: Build failed (FAILED)
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Kali GNU/Linux 2025.2:
----------------------
PASSED: OS detection: Kali GNU/Linux 2025.2
SKIPPED (Sphinx Sphinx 8.1.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 4:21, return code: 0
PASSED: Build PDF documentation: Build time: 12:23, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Mageia 9:
---------
PASSED: OS detection: Mageia 9
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 8.1.3
PASSED: Sphinx package: Sphinx Sphinx 6.1.3
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:34, return code: 0
PASSED: Build PDF documentation: Build time: 13:42, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Linux Mint 22:
--------------
PASSED: OS detection: Linux Mint 22
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 8.1.3
PASSED: Sphinx package: Sphinx Sphinx 4.3.2
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:08, return code: 0
FAILED: Build PDF documentation: Test failed (Build time: 10:41, return code: 2)
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
FAILED: userspace-api: Build failed (FAILED)
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
FAILED: translations: Build failed (FAILED)
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
FAILED: doc-guide: Build failed (FAILED)
PASSED: cdrom: pdf/cdrom.pdf
FAILED: gpu: Build failed (FAILED)
FAILED: i2c: Build failed (FAILED)
FAILED: RCU: Build failed (FAILED)
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
FAILED: arch: Build failed (FAILED)
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
FAILED: core-api: Build failed (FAILED)
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
openEuler release 25.03:
------------------------
PASSED: OS detection: openEuler release 25.03
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 8.2.3
PASSED: Sphinx package: Sphinx Sphinx 8.1.3
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:04, return code: 0
FAILED: Build PDF documentation: Test failed (Build time: 0:04, return code: 2)
PDF docs:
---------
PASSED: latex: FAILED (no .tex)
OpenMandriva Lx 4.3:
--------------------
PASSED: OS detection: OpenMandriva Lx 4.3
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 4.3.2
PASSED: Sphinx package: Sphinx Sphinx 4.3.2
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:00, return code: 0
FAILED: Build PDF documentation: PDF build didn't produce any results (Build time: 0:00, return code: 0)
openSUSE Leap 15.6:
-------------------
PASSED: OS detection: openSUSE Leap 15.6
SKIPPED (Sphinx Sphinx 7.2.6): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:29, return code: 0
PASSED: Build PDF documentation: Build time: 13:35, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
openSUSE Tumbleweed:
--------------------
PASSED: OS detection: openSUSE Tumbleweed
SKIPPED (Sphinx Sphinx 8.2.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 4:26, return code: 0
PASSED: Build PDF documentation: Build time: 13:09, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Oracle Linux Server release 9.6:
--------------------------------
PASSED: OS detection: Oracle Linux Server release 9.6
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:06, return code: 0
FAILED: Build PDF documentation: Test failed (Build time: 0:07, return code: 2)
PDF docs:
---------
PASSED: latex: FAILED (no .tex)
Red Hat Enterprise Linux release 8.10 (Ootpa):
----------------------------------------------
PASSED: OS detection: Red Hat Enterprise Linux release 8.10 (Ootpa)
FAILED: System packages: Error: Unable to find a match: google-noto-sans-cjk-ttc-fonts librsvg2-tools texlive-amscls texlive-amsfonts texlive-amsmath texlive-anyfontsize texlive-capt-of texlive-cmap texlive-collection-fontsrecommended texlive-collection-latex texlive-ec texlive-eqparbox texlive-euenc texlive-fancybox texlive-fancyvrb texlive-float texlive-fncychap texlive-framed texlive-luatex85 texlive-mdwtools texlive-multirow texlive-needspace texlive-oberdiek texlive-parskip texlive-polyglossia texlive-psnfss texlive-tabulary texlive-threeparttable texlive-titlesec texlive-tools texlive-ucs texlive-upquote texlive-wrapfig texlive-xecjk texlive-xetex-bin
FAILED: Sphinx on venv: No Sphinx version detected
FAILED: Sphinx package: No Sphinx version detected
PASSED: Clean documentation: Build time: 0:00, return code: 0
FAILED: Build HTML documentation: Test failed (Build time: 0:00, return code: 2)
FAILED: Build PDF documentation: PDF build didn't produce any results (Build time: 0:00, return code: 2)
Rocky Linux release 8.9 (Green Obsidian):
-----------------------------------------
PASSED: OS detection: Rocky Linux release 8.9 (Green Obsidian)
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 7.4.7
FAILED: Sphinx package: No Sphinx version detected
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:33, return code: 0
PASSED: Build PDF documentation: Build time: 11:17, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Rocky Linux release 9.6 (Blue Onyx):
------------------------------------
PASSED: OS detection: Rocky Linux release 9.6 (Blue Onyx)
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:07, return code: 0
FAILED: Build PDF documentation: Test failed (Build time: 0:07, return code: 2)
PDF docs:
---------
PASSED: latex: FAILED (no .tex)
Springdale Open Enterprise Linux release 9.2 (Parma):
-----------------------------------------------------
PASSED: OS detection: Springdale Open Enterprise Linux release 9.2 (Parma)
FAILED: System packages: Error: Problem: package ImageMagick-6.9.13.25-1.el9.x86_64 requires libMagickCore-6.Q16.so.7()(64bit), but none of the providers can be installed - package ImageMagick-6.9.13.25-1.el9.x86_64 requires libMagickWand-6.Q16.so.7()(64bit), but none of the providers can be installed - package ImageMagick-6.9.13.25-1.el9.x86_64 requires ImageMagick-libs(x86-64) = 6.9.13.25-1.el9, but none of the providers can be installed - conflicting requests - nothing provides libraw_r.so.23()(64bit) needed by ImageMagick-libs-6.9.13.25-1.el9.x86_64
PASSED: Sphinx on venv: Sphinx Sphinx 7.4.7
PASSED: Sphinx package: Sphinx Sphinx 3.4.3
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:25, return code: 0
FAILED: Build PDF documentation: PDF build didn't produce any results (Build time: 0:00, return code: 0)
Ubuntu 24.04.2 LTS:
-------------------
PASSED: OS detection: Ubuntu 24.04.2 LTS
SKIPPED (Sphinx Sphinx 7.2.6): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:05, return code: 0
FAILED: Build PDF documentation: Test failed (Build time: 0:05, return code: 2)
PDF docs:
---------
PASSED: latex: FAILED (no .tex)
Ubuntu 25.04:
-------------
PASSED: OS detection: Ubuntu 25.04
SKIPPED (Sphinx Sphinx 8.1.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 3:42, return code: 0
PASSED: Build PDF documentation: Build time: 11:44, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Summary
=======
PASSED - AlmaLinux release 9.6 (Sage Margay) (7 tests) PASSED - Amazon Linux release 2023 (Amazon Linux) (7 tests) FAILED - archlinux (1 tests)
PASSED - CentOS Stream release 9 (7 tests)
FAILED - Debian GNU/Linux 12 (7 tests)
FAILED - Devuan GNU/Linux 5 (7 tests)
PASSED - Fedora release 42 (Adams) (7 tests)
FAILED - Gentoo Base System release 2.17 (7 tests)
PASSED - Kali GNU/Linux 2025.2 (7 tests)
PASSED - Mageia 9 (7 tests)
FAILED - Linux Mint 22 (7 tests)
FAILED - openEuler release 25.03 (7 tests)
FAILED - OpenMandriva Lx 4.3 (7 tests)
PASSED - openSUSE Leap 15.6 (7 tests)
PASSED - openSUSE Tumbleweed (7 tests)
FAILED - Oracle Linux Server release 9.6 (7 tests)
FAILED - Red Hat Enterprise Linux release 8.10 (Ootpa) (7 tests) FAILED - Rocky Linux release 8.9 (Green Obsidian) (7 tests) FAILED - Rocky Linux release 9.6 (Blue Onyx) (7 tests) FAILED - Springdale Open Enterprise Linux release 9.2 (Parma) (7 tests) FAILED - Ubuntu 24.04.2 LTS (7 tests)
PASSED - Ubuntu 25.04 (7 tests)
(base) mchehab@foz /new_devel/docs $ ktap_reader.py /tmp/build_logs/*
AlmaLinux release 9.6 (Sage Margay):
------------------------------------
PASSED: OS detection: AlmaLinux release 9.6 (Sage Margay)
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:56, return code: 0
PASSED: Build PDF documentation: Build time: 11:44, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Amazon Linux release 2023 (Amazon Linux):
-----------------------------------------
PASSED: OS detection: Amazon Linux release 2023 (Amazon Linux)
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:59, return code: 0
PASSED: Build PDF documentation: Build time: 11:12, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
archlinux:
----------
FAILED: Build failed at package installation (
Failed to setup distrolib.distro_manager.CustomError: Failed to setup distro
File "~/bin/doc-build-container.py", line 264, in <module>
asyncio.run(main())
/usr/lib64/python3.13/asyncio/runners.py, line 195, in run
return runner.run(main)
/usr/lib64/python3.13/asyncio/runners.py, line 118, in run
return self._loop.run_until_complete(task)
/usr/lib64/python3.13/asyncio/base_events.py, line 712, in run_until_complete
self.run_forever()
/usr/lib64/python3.13/asyncio/base_events.py, line 683, in run_forever
self._run_once()
/usr/lib64/python3.13/asyncio/base_events.py, line 2050, in _run_once
handle._run()
/usr/lib64/python3.13/asyncio/events.py, line 89, in _run
self._context.run(self._callback, *self._args)
File "distro_manager.py", line 617, in run_manager
return await manager.serial_run()
File "distro_manager.py", line 598, in serial_run
await self.run_distro(distro)
File "distro_manager.py", line 523, in run_distro
self.record_status(
)CentOS Stream release 9:
------------------------
PASSED: OS detection: CentOS Stream release 9
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:55, return code: 0
PASSED: Build PDF documentation: Build time: 11:40, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Debian GNU/Linux 12:
--------------------
PASSED: OS detection: Debian GNU/Linux 12
SKIPPED (Sphinx Sphinx 5.3.0): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:46, return code: 0
PARTIAL: Build PDF documentation: Test failed (Build time: 10:31, return code: 2)
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
FAILED: userspace-api: Build failed (FAILED)
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
FAILED: translations: Build failed (FAILED)
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
FAILED: doc-guide: Build failed (FAILED)
PASSED: cdrom: pdf/cdrom.pdf
FAILED: gpu: Build failed (FAILED)
FAILED: i2c: Build failed (FAILED)
FAILED: RCU: Build failed (FAILED)
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
FAILED: arch: Build failed (FAILED)
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
FAILED: core-api: Build failed (FAILED)
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Devuan GNU/Linux 5:
-------------------
PASSED: OS detection: Devuan GNU/Linux 5
SKIPPED (Sphinx Sphinx 5.3.0): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:46, return code: 0
PARTIAL: Build PDF documentation: Test failed (Build time: 10:30, return code: 2)
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
FAILED: userspace-api: Build failed (FAILED)
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
FAILED: translations: Build failed (FAILED)
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
FAILED: doc-guide: Build failed (FAILED)
PASSED: cdrom: pdf/cdrom.pdf
FAILED: gpu: Build failed (FAILED)
FAILED: i2c: Build failed (FAILED)
FAILED: RCU: Build failed (FAILED)
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
FAILED: arch: Build failed (FAILED)
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
FAILED: core-api: Build failed (FAILED)
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Fedora release 42 (Adams):
--------------------------
PASSED: OS detection: Fedora release 42 (Adams)
SKIPPED (Sphinx Sphinx 8.1.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 4:47, return code: 0
PASSED: Build PDF documentation: Build time: 10:33, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Gentoo Base System release 2.17:
--------------------------------
PASSED: OS detection: Gentoo Base System release 2.17
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 8.2.3
PASSED: Sphinx package: Sphinx Sphinx 8.2.3
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 3:43, return code: 0
PARTIAL: Build PDF documentation: Test failed (Build time: 10:03, return code: 2)
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
FAILED: userspace-api: Build failed (FAILED)
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
FAILED: translations: Build failed (FAILED)
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
FAILED: gpu: Build failed (FAILED)
FAILED: i2c: Build failed (FAILED)
FAILED: RCU: Build failed (FAILED)
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
FAILED: arch: Build failed (FAILED)
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
FAILED: core-api: Build failed (FAILED)
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Kali GNU/Linux 2025.2:
----------------------
PASSED: OS detection: Kali GNU/Linux 2025.2
SKIPPED (Sphinx Sphinx 8.1.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 4:21, return code: 0
PASSED: Build PDF documentation: Build time: 12:23, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Mageia 9:
---------
PASSED: OS detection: Mageia 9
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 8.1.3
PASSED: Sphinx package: Sphinx Sphinx 6.1.3
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:34, return code: 0
PASSED: Build PDF documentation: Build time: 13:42, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Linux Mint 22:
--------------
PASSED: OS detection: Linux Mint 22
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 8.1.3
PASSED: Sphinx package: Sphinx Sphinx 4.3.2
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:08, return code: 0
PARTIAL: Build PDF documentation: Test failed (Build time: 10:41, return code: 2)
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
FAILED: userspace-api: Build failed (FAILED)
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
FAILED: translations: Build failed (FAILED)
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
FAILED: doc-guide: Build failed (FAILED)
PASSED: cdrom: pdf/cdrom.pdf
FAILED: gpu: Build failed (FAILED)
FAILED: i2c: Build failed (FAILED)
FAILED: RCU: Build failed (FAILED)
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
FAILED: arch: Build failed (FAILED)
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
FAILED: core-api: Build failed (FAILED)
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
openEuler release 25.03:
------------------------
PASSED: OS detection: openEuler release 25.03
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 8.2.3
PASSED: Sphinx package: Sphinx Sphinx 8.1.3
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:04, return code: 0
PARTIAL: Build PDF documentation: Test failed (Build time: 0:04, return code: 2)
PDF docs:
---------
PASSED: latex: FAILED (no .tex)
OpenMandriva Lx 4.3:
--------------------
PASSED: OS detection: OpenMandriva Lx 4.3
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 4.3.2
PASSED: Sphinx package: Sphinx Sphinx 4.3.2
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:00, return code: 0
PARTIAL: Build PDF documentation: PDF build didn't produce any results (Build time: 0:00, return code: 0)
openSUSE Leap 15.6:
-------------------
PASSED: OS detection: openSUSE Leap 15.6
SKIPPED (Sphinx Sphinx 7.2.6): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:29, return code: 0
PASSED: Build PDF documentation: Build time: 13:35, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
openSUSE Tumbleweed:
--------------------
PASSED: OS detection: openSUSE Tumbleweed
SKIPPED (Sphinx Sphinx 8.2.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 4:26, return code: 0
PASSED: Build PDF documentation: Build time: 13:09, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Oracle Linux Server release 9.6:
--------------------------------
PASSED: OS detection: Oracle Linux Server release 9.6
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:06, return code: 0
PARTIAL: Build PDF documentation: Test failed (Build time: 0:07, return code: 2)
PDF docs:
---------
PASSED: latex: FAILED (no .tex)
Red Hat Enterprise Linux release 8.10 (Ootpa):
----------------------------------------------
PASSED: OS detection: Red Hat Enterprise Linux release 8.10 (Ootpa)
FAILED: System packages: Error: Unable to find a match: google-noto-sans-cjk-ttc-fonts librsvg2-tools texlive-amscls texlive-amsfonts texlive-amsmath texlive-anyfontsize texlive-capt-of texlive-cmap texlive-collection-fontsrecommended texlive-collection-latex texlive-ec texlive-eqparbox texlive-euenc texlive-fancybox texlive-fancyvrb texlive-float texlive-fncychap texlive-framed texlive-luatex85 texlive-mdwtools texlive-multirow texlive-needspace texlive-oberdiek texlive-parskip texlive-polyglossia texlive-psnfss texlive-tabulary texlive-threeparttable texlive-titlesec texlive-tools texlive-ucs texlive-upquote texlive-wrapfig texlive-xecjk texlive-xetex-bin
PARTIAL: Sphinx on venv: No Sphinx version detected
PARTIAL: Sphinx package: No Sphinx version detected
PASSED: Clean documentation: Build time: 0:00, return code: 0
PARTIAL: Build HTML documentation: Test failed (Build time: 0:00, return code: 2)
PARTIAL: Build PDF documentation: PDF build didn't produce any results (Build time: 0:00, return code: 2)
Rocky Linux release 8.9 (Green Obsidian):
-----------------------------------------
PASSED: OS detection: Rocky Linux release 8.9 (Green Obsidian)
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 7.4.7
PARTIAL: Sphinx package: No Sphinx version detected
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:33, return code: 0
PASSED: Build PDF documentation: Build time: 11:17, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Rocky Linux release 9.6 (Blue Onyx):
------------------------------------
PASSED: OS detection: Rocky Linux release 9.6 (Blue Onyx)
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:07, return code: 0
PARTIAL: Build PDF documentation: Test failed (Build time: 0:07, return code: 2)
PDF docs:
---------
PASSED: latex: FAILED (no .tex)
Springdale Open Enterprise Linux release 9.2 (Parma):
-----------------------------------------------------
PASSED: OS detection: Springdale Open Enterprise Linux release 9.2 (Parma)
FAILED: System packages: Error: Problem: package ImageMagick-6.9.13.25-1.el9.x86_64 requires libMagickCore-6.Q16.so.7()(64bit), but none of the providers can be installed - package ImageMagick-6.9.13.25-1.el9.x86_64 requires libMagickWand-6.Q16.so.7()(64bit), but none of the providers can be installed - package ImageMagick-6.9.13.25-1.el9.x86_64 requires ImageMagick-libs(x86-64) = 6.9.13.25-1.el9, but none of the providers can be installed - conflicting requests - nothing provides libraw_r.so.23()(64bit) needed by ImageMagick-libs-6.9.13.25-1.el9.x86_64
PASSED: Sphinx on venv: Sphinx Sphinx 7.4.7
PASSED: Sphinx package: Sphinx Sphinx 3.4.3
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:25, return code: 0
PARTIAL: Build PDF documentation: PDF build didn't produce any results (Build time: 0:00, return code: 0)
Ubuntu 24.04.2 LTS:
-------------------
PASSED: OS detection: Ubuntu 24.04.2 LTS
SKIPPED (Sphinx Sphinx 7.2.6): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:05, return code: 0
PARTIAL: Build PDF documentation: Test failed (Build time: 0:05, return code: 2)
PDF docs:
---------
PASSED: latex: FAILED (no .tex)
Ubuntu 25.04:
-------------
PASSED: OS detection: Ubuntu 25.04
SKIPPED (Sphinx Sphinx 8.1.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 3:42, return code: 0
PASSED: Build PDF documentation: Build time: 11:44, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Mauro Carvalho Chehab (11):
docs: Makefile: Fix LaTeX paper size settings
docs: conf.py: better handle latex documents
docs: conf.py: fix doc name with SPHINXDIRS
docs: conf.py: rename some vars at latex_documents logic
docs: conf.py: fix some troubles for LaTeX output
scripts: sphinx-pre-install: fix PDF build issues on Ubuntu
scripts: sphinx-pre-install: add missing gentoo pdf dependencies
scripts: sphinx-pre-install: fix PDF dependencies for openSuse
scripts: sphinx-pre-install: fix dependencies for OpenMandriva
scripts: sphinx-pre-install: fix pdf dependencies for Mageia 9
scripts: sphinx-pre-install: fix PDF dependencies for gentoo
Documentation/Makefile | 4 +- Documentation/conf.py | 106 ++++++++++++++++++++++--------------- scripts/sphinx-pre-install | 41 ++++++++++---- 3 files changed, 96 insertions(+), 55 deletions(-)
Signature · 1 line
2.50.1
PATCH 1/11 docs: Makefile: Fix LaTeX paper size settings
According with:
https://www.sphinx-doc.org/en/master/latex.html
The variable that handles paper size changed during version 1.5, as pointed at:
https://www.sphinx-doc.org/en/master/changes/1.5.html
--- Documentation/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Documentation/Makefile +2 -2
@@ -60,8 +60,8 @@ ifeq ($(HAVE_LATEXMK),1) endif #HAVE_LATEXMK # Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter +PAPEROPT_a4 = -D latex_elements.papersize=a4paper +PAPEROPT_letter = -D latex_elements.papersize=letterpaper ALLSPHINXOPTS = -D kerneldoc_srctree=$(srctree) -D kerneldoc_bin=$(KERNELDOC) ALLSPHINXOPTS += $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) ifneq ($(wildcard $(srctree)/.config),)
Signature · 1 line
2.50.1
PATCH 2/11 docs: conf.py: better handle latex documents
In reply to Mauro Carvalho ChehabThe original logic assumed that app.srcdir is identical to the current working dir. This is the case for a normal build, but, when SPHINXDIRS="some dir" is used, this is not the case anymore.
Adjust the logic to fill the LaTeX documents considering app.srcdir, in a way that it will work properly on all cases.
--- Documentation/conf.py | 54 +++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 28 deletions(-)
Documentation/conf.py +26 -28
@@ -51,11 +51,13 @@ else: dyn_exclude_patterns.append("devicetree/bindings/**.yaml") dyn_exclude_patterns.append("core-api/kho/bindings/**.yaml") -# Properly handle include/exclude patterns -# ---------------------------------------- +# Properly handle directory patterns and LaTeX docs +# ------------------------------------------------- -def update_patterns(app, config): +def config_init(app, config): """ + Initialize path-dependent variabled + On Sphinx, all directories are relative to what it is passed as SOURCEDIR parameter for sphinx-build. Due to that, all patterns that have directory names on it need to be dynamically set, after
@@ -86,6 +88,25 @@ def update_patterns(app, config): config.exclude_patterns.append(rel_path) + # LaTeX and PDF output require a list of documents with are dependent + # of the app.srcdir. Add them here + + for fn in os.listdir(app.srcdir): + doc = os.path.join(fn, "index") + if not os.path.exists(os.path.join(app.srcdir, doc + ".rst")): + continue + + has = False + for l in latex_documents: + if l[0] == doc: + has = True + break + + if not has: + latex_documents.append((doc, fn + ".tex", + "Linux %s Documentation" % fn.capitalize(), + "The kernel development community", + "manual")) # helper # ------
@@ -456,32 +477,9 @@ latex_elements["preamble"] += """ \\input{kerneldoc-preamble.sty} """ -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -# Sorted in alphabetical order +# This will be filled up by config-inited event latex_documents = [] -# Add all other index files from Documentation/ subdirectories -for fn in os.listdir("."): - doc = os.path.join(fn, "index") - if os.path.exists(doc + ".rst"): - has = False - for l in latex_documents: - if l[0] == doc: - has = True - break - if not has: - latex_documents.append( - ( - doc, - fn + ".tex", - "Linux %s Documentation" % fn.capitalize(), - "The kernel development community", - "manual", - ) - ) - # The name of an image file (relative to this directory) to place at the top of # the title page. # latex_logo = None
@@ -577,4 +575,4 @@ loadConfig(globals()) def setup(app): """Patterns need to be updated at init time on older Sphinx versions""" - app.connect('config-inited', update_patterns) + app.connect('config-inited', config_init)
Signature · 1 line
2.50.1
PATCH 3/11 docs: conf.py: fix doc name with SPHINXDIRS
In reply to Mauro Carvalho ChehabWhen SPHINXDIRS is used, the current logic produces a wrong list of files, as it will not pick the SPHINXDIRS directory, picking instead their children.
Add a rule to detect it and create the PDF doc with the right name.
--- Documentation/conf.py | 13 +++++++++++++ 1 file changed, 13 insertions(+)
Documentation/conf.py +13 -0
@@ -91,6 +91,19 @@ def config_init(app, config): # LaTeX and PDF output require a list of documents with are dependent # of the app.srcdir. Add them here + # When SPHINXDIRS is used, we just need to get index.rst, if it exists + if not os.path.samefile(doctree, app.srcdir): + doc = "index" + doc_name = os.path.basename(app.srcdir) + if os.path.exists(os.path.join(app.srcdir, doc + ".rst")): + latex_documents.append((doc, doc_name + ".tex", + "Linux %s Documentation" % doc_name.capitalize(), + "The kernel development community", + "manual")) + return + + # When building all docs, or when a main index.rst doesn't exist, seek + # for it on subdirectories for fn in os.listdir(app.srcdir): doc = os.path.join(fn, "index") if not os.path.exists(os.path.join(app.srcdir, doc + ".rst")):
Signature · 1 line
2.50.1
PATCH 4/11 docs: conf.py: rename some vars at latex_documents logic
In reply to Mauro Carvalho ChehabCurrently, the logic uses fn and doc vars, but they don't properly describe what such vars do.
Make them clearer:
- fname: points to the file name to search (index.rst);
- doc: contains the name of the LaTeX or PDF doc to be produced.
With that, the checks for SPHINXDIRS and for subdirs will be more coherent.
--- Documentation/conf.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
Documentation/conf.py +11 -11
@@ -93,31 +93,31 @@ def config_init(app, config): # When SPHINXDIRS is used, we just need to get index.rst, if it exists if not os.path.samefile(doctree, app.srcdir): - doc = "index" - doc_name = os.path.basename(app.srcdir) - if os.path.exists(os.path.join(app.srcdir, doc + ".rst")): - latex_documents.append((doc, doc_name + ".tex", - "Linux %s Documentation" % doc_name.capitalize(), + doc = os.path.basename(app.srcdir) + fname = "index" + if os.path.exists(os.path.join(app.srcdir, fname + ".rst")): + latex_documents.append((fname, doc + ".tex", + "Linux %s Documentation" % doc.capitalize(), "The kernel development community", "manual")) return # When building all docs, or when a main index.rst doesn't exist, seek # for it on subdirectories - for fn in os.listdir(app.srcdir): - doc = os.path.join(fn, "index") - if not os.path.exists(os.path.join(app.srcdir, doc + ".rst")): + for doc in os.listdir(app.srcdir): + fname = os.path.join(doc, "index") + if not os.path.exists(os.path.join(app.srcdir, fname + ".rst")): continue has = False for l in latex_documents: - if l[0] == doc: + if l[0] == fname: has = True break if not has: - latex_documents.append((doc, fn + ".tex", - "Linux %s Documentation" % fn.capitalize(), + latex_documents.append((fname, doc + ".tex", + "Linux %s Documentation" % doc.capitalize(), "The kernel development community", "manual"))
Signature · 1 line
2.50.1
PATCH 5/11 docs: conf.py: fix some troubles for LaTeX output
In reply to Mauro Carvalho ChehabWhile PDF docs work fine on RPM-based distros, it causes conflicts on Debian & friends:
Documentation/output/process/latex/process.log:
Package: fontenc 2021/04/29 v2.0v Standard LaTeX package
LaTeX Font Info: Trying to load font information for T1+lmr on input line 11
6.
LaTeX Font Info: No file T1lmr.fd. on input line 116.
LaTeX Font Warning: Font shape `T1/lmr/m/n' undefined
(Font) using `T1/lmr/m/n' instead on input line 116.
! Corrupted NFSS tables.
wrong@fontshape ...message {Corrupted NFSS tables}
error@fontshape else let f...
l.116 ...\familydefault\seriesdefault\shapedefault
Change some logic inside latex_elements to avoid such issues, following the example from Sphinx documentation:
https://www.sphinx-doc.org/en/master/latex.html
--- Documentation/conf.py | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-)
Documentation/conf.py +23 -16
@@ -9,6 +9,8 @@ import os import shutil import sys +from textwrap import dedent + import sphinx # If extensions (or modules to document with autodoc) are in another directory,
@@ -454,19 +456,38 @@ htmlhelp_basename = "TheLinuxKerneldoc" latex_elements = { # The paper size ('letterpaper' or 'a4paper'). "papersize": "a4paper", + "passoptionstopackages": dedent(r""" + \PassOptionsToPackage{svgnames}{xcolor} + % Avoid encoding troubles when creating indexes + \PassOptionsToPackage{xindy}{language=english,codepage=utf8,noautomatic} + """), # The font size ('10pt', '11pt' or '12pt'). "pointsize": "11pt", + # Needed to generate a .ind file + 'printindex': r'\footnotesize\raggedright\printindex', # Latex figure (float) alignment # 'figure_align': 'htbp', # Don't mangle with UTF-8 chars + "fontenc": "", "inputenc": "", "utf8extra": "", + 'fontpkg': dedent(r''' + \usepackage{fontspec} + \setmainfont{DejaVu Serif} + \setsansfont{DejaVu Sans} + \setmonofont{DejaVu Sans Mono} + \newfontfamily\headingfont{DejaVu Serif} + '''), # Set document margins - "sphinxsetup": """ + "sphinxsetup": dedent(r""" hmargin=0.5in, vmargin=1in, parsedliteralwraps=true, verbatimhintsturnover=false, - """, + """), + "preamble": dedent(r""" + % Load kerneldoc specific LaTeX settings + \input{kerneldoc-preamble.sty} + """), # # Some of our authors are fond of deep nesting; tell latex to # cope.
@@ -474,22 +495,8 @@ latex_elements = { "maxlistdepth": "10", # For CJK One-half spacing, need to be in front of hyperref "extrapackages": r"\usepackage{setspace}", - # Additional stuff for the LaTeX preamble. - "preamble": """ - % Use some font with UTF-8 support with XeLaTeX - \\usepackage{fontspec} - \\setsansfont{DejaVu Sans} - \\setromanfont{DejaVu Serif} - \\setmonofont{DejaVu Sans Mono} - """, } -# Load kerneldoc specific LaTeX settings -latex_elements["preamble"] += """ - % Load kerneldoc specific LaTeX settings - \\input{kerneldoc-preamble.sty} -""" - # This will be filled up by config-inited event latex_documents = []
Signature · 1 line
2.50.1
Re: [PATCH 05/11] docs: conf.py: fix some troubles for LaTeX output
Hi Mauro,
Looks like my word choice annoyed you. Apologies again.
I've just realized your response while composing this, but I'm sending it anyway. Please see below.
Quoted 18 lines · Mauro Carvalho Chehab
While PDF docs work fine on RPM-based distros, it causes conflicts on Debian & friends:
Documentation/output/process/latex/process.log:Package: fontenc 2021/04/29 v2.0v Standard LaTeX package
LaTeX Font Info: Trying to load font information for T1+lmr on input line 11
6.
LaTeX Font Info: No file T1lmr.fd. on input line 116.LaTeX Font Warning: Font shape `T1/lmr/m/n' undefined
(Font) using `T1/lmr/m/n' instead on input line 116.! Corrupted NFSS tables.
wrong@fontshape ...message {Corrupted NFSS tables}
error@fontshape else let f...
l.116 ...\familydefault\seriesdefault\shapedefault
Quoted 5 lines
Change some logic inside
latex_elementsto avoid such issues, following the example from Sphinx documentation:
I spotted a wrong looking LaTeX macro use. See below:
Quoted 19 lines
Signed-off-by Mauro Carvalho Chehab <[email protected]>--- Documentation/conf.py | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-)Documentation/conf.py +2
-0@@ -9,6 +9,8 @@ import os import shutil import sys +from textwrap import dedent + import sphinx # If extensions (or modules to document with autodoc) are in another directory,
Documentation/conf.py htmlhelp_basename = "TheLinuxKerneldoc" · line 463
Quoted 8 lines
Documentation/conf.py +5
-0@@ -454,19 +456,38 @@ htmlhelp_basename = "TheLinuxKerneldoc" latex_elements = { # The paper size ('letterpaper' or 'a4paper'). "papersize": "a4paper", + "passoptionstopackages": dedent(r""" + \PassOptionsToPackage{svgnames}{xcolor} + % Avoid encoding troubles when creating indexes + \PassOptionsToPackage{xindy}{language=english,codepage=utf8,noautomatic} + """),
This use of \PassOptionsToPackage{}{} looks very wrong, because its 1st argument is the option string you would like to pass to a latex package given in the 2nd argument.
See: https://latexref.xyz/_005cPassOptionsToClass-_0026-_005cPassOptionsToPackage.html
Furthermore, as there is no such latex package named "xindy", this will have any effect even if you reverse the argument order.
I imagine you had some illusion and believed it would fix some issue you had observed.
Also, I don't see the need of \PassOptionsToPackage{svgnames}{xcolor}. Please clarify who needs that color namespace option in the changelog.
Documentation/conf.py htmlhelp_basename = "TheLinuxKerneldoc" · line 467
Quoted 4 lines
Documentation/conf.py +2
-0# The font size ('10pt', '11pt' or '12pt'). "pointsize": "11pt", + # Needed to generate a .ind file + 'printindex': r'\footnotesize\raggedright\printindex',
I would mention this as an improvement in the changelog.
And the following changes look good to me.
Thanks, Akira
Quoted 51 lines
Documentation/conf.py +14
-16# Latex figure (float) alignment # 'figure_align': 'htbp', # Don't mangle with UTF-8 chars + "fontenc": "", "inputenc": "", "utf8extra": "", + 'fontpkg': dedent(r''' + \usepackage{fontspec} + \setmainfont{DejaVu Serif} + \setsansfont{DejaVu Sans} + \setmonofont{DejaVu Sans Mono} + \newfontfamily\headingfont{DejaVu Serif} + '''), # Set document margins - "sphinxsetup": """ + "sphinxsetup": dedent(r""" hmargin=0.5in, vmargin=1in, parsedliteralwraps=true, verbatimhintsturnover=false, - """, + """), + "preamble": dedent(r""" + % Load kerneldoc specific LaTeX settings + \input{kerneldoc-preamble.sty} + """), # # Some of our authors are fond of deep nesting; tell latex to # cope.@@ -474,22 +495,8 @@ latex_elements = { "maxlistdepth": "10", # For CJK One-half spacing, need to be in front of hyperref "extrapackages": r"\usepackage{setspace}", - # Additional stuff for the LaTeX preamble. - "preamble": """ - % Use some font with UTF-8 support with XeLaTeX - \\usepackage{fontspec} - \\setsansfont{DejaVu Sans} - \\setromanfont{DejaVu Serif} - \\setmonofont{DejaVu Sans Mono} - """, } -# Load kerneldoc specific LaTeX settings -latex_elements["preamble"] += """ - % Load kerneldoc specific LaTeX settings - \\input{kerneldoc-preamble.sty} -""" - # This will be filled up by config-inited event latex_documents = []
Re: [PATCH 05/11] docs: conf.py: fix some troubles for LaTeX output
AKIRA!
Quoted 141 lines · Akira Yokosawa
Hi Mauro,
Looks like my word choice annoyed you. Apologies again.
I've just realized your response while composing this, but I'm sending it anyway. Please see below.
Quoted 18 lines · Mauro Carvalho Chehab
While PDF docs work fine on RPM-based distros, it causes conflicts on Debian & friends:
Documentation/output/process/latex/process.log:Package: fontenc 2021/04/29 v2.0v Standard LaTeX package
LaTeX Font Info: Trying to load font information for T1+lmr on input line 11
6.
LaTeX Font Info: No file T1lmr.fd. on input line 116.LaTeX Font Warning: Font shape `T1/lmr/m/n' undefined
(Font) using `T1/lmr/m/n' instead on input line 116.! Corrupted NFSS tables.
wrong@fontshape ...message {Corrupted NFSS tables}
error@fontshape else let f...
l.116 ...\familydefault\seriesdefault\shapedefaultQuoted 5 lines
Change some logic inside
latex_elementsto avoid such issues, following the example from Sphinx documentation:I spotted a wrong looking LaTeX macro use. See below:
Quoted 19 lines
Signed-off-by Mauro Carvalho Chehab <[email protected]>--- Documentation/conf.py | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-)Documentation/conf.py +2
-0@@ -9,6 +9,8 @@ import os import shutil import sys +from textwrap import dedent + import sphinx # If extensions (or modules to document with autodoc) are in another directory,Documentation/conf.py htmlhelp_basename = "TheLinuxKerneldoc" · line 463
Quoted 8 lines
Documentation/conf.py +5
-0@@ -454,19 +456,38 @@ htmlhelp_basename = "TheLinuxKerneldoc" latex_elements = { # The paper size ('letterpaper' or 'a4paper'). "papersize": "a4paper", + "passoptionstopackages": dedent(r""" + \PassOptionsToPackage{svgnames}{xcolor} + % Avoid encoding troubles when creating indexes + \PassOptionsToPackage{xindy}{language=english,codepage=utf8,noautomatic} + """),This use of \PassOptionsToPackage{}{} looks very wrong, because its 1st argument is the option string you would like to pass to a latex package given in the 2nd argument.
See: https://latexref.xyz/_005cPassOptionsToClass-_0026-_005cPassOptionsToPackage.html
Furthermore, as there is no such latex package named "xindy", this will have any effect even if you reverse the argument order.
I imagine you had some illusion and believed it would fix some issue you had observed.
Also, I don't see the need of \PassOptionsToPackage{svgnames}{xcolor}. Please clarify who needs that color namespace option in the changelog.
Documentation/conf.py htmlhelp_basename = "TheLinuxKerneldoc" · line 467
Quoted 4 lines
Documentation/conf.py +2
-0# The font size ('10pt', '11pt' or '12pt'). "pointsize": "11pt", + # Needed to generate a .ind file + 'printindex': r'\footnotesize\raggedright\printindex',I would mention this as an improvement in the changelog.
And the following changes look good to me.
Thanks, Akira
Quoted 51 lines
Documentation/conf.py +14
-16# Latex figure (float) alignment # 'figure_align': 'htbp', # Don't mangle with UTF-8 chars + "fontenc": "", "inputenc": "", "utf8extra": "", + 'fontpkg': dedent(r''' + \usepackage{fontspec} + \setmainfont{DejaVu Serif} + \setsansfont{DejaVu Sans} + \setmonofont{DejaVu Sans Mono} + \newfontfamily\headingfont{DejaVu Serif} + '''), # Set document margins - "sphinxsetup": """ + "sphinxsetup": dedent(r""" hmargin=0.5in, vmargin=1in, parsedliteralwraps=true, verbatimhintsturnover=false, - """, + """), + "preamble": dedent(r""" + % Load kerneldoc specific LaTeX settings + \input{kerneldoc-preamble.sty} + """), # # Some of our authors are fond of deep nesting; tell latex to # cope.@@ -474,22 +495,8 @@ latex_elements = { "maxlistdepth": "10", # For CJK One-half spacing, need to be in front of hyperref "extrapackages": r"\usepackage{setspace}", - # Additional stuff for the LaTeX preamble. - "preamble": """ - % Use some font with UTF-8 support with XeLaTeX - \\usepackage{fontspec} - \\setsansfont{DejaVu Sans} - \\setromanfont{DejaVu Serif} - \\setmonofont{DejaVu Sans Mono} - """, } -# Load kerneldoc specific LaTeX settings -latex_elements["preamble"] += """ - % Load kerneldoc specific LaTeX settings - \\input{kerneldoc-preamble.sty} -""" - # This will be filled up by config-inited event latex_documents = []
PATCH 6/11 scripts: sphinx-pre-install: fix PDF build issues on Ubuntu
In reply to Mauro Carvalho ChehabPDF output with current Debian-based distros require other packages for it to work. The main one is pzdr.tfm. Without that, \sphinxhyphen{} won't work, affecting multiple docs.
For CJK, tex-gyre is required.
Add the missing packages to the list.
After the change, all PDF files build on latest Ubuntu:
Ubuntu 25.04:
-------------
PASSED: OS detection: Ubuntu 25.04
SKIPPED (Sphinx Sphinx 8.1.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 3:28, return code: 0
PASSED: Build PDF documentation: Build time: 11:08, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
--- scripts/sphinx-pre-install | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
scripts/sphinx-pre-install +9 -3
@@ -764,9 +764,6 @@ class SphinxDependencyChecker(MissingCheckers): if self.pdf: pdf_pkgs = { - "texlive-lang-chinese": [ - "/usr/share/texlive/texmf-dist/tex/latex/ctex/ctexhook.sty", - ], "fonts-dejavu": [ "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", ],
@@ -775,6 +772,15 @@ class SphinxDependencyChecker(MissingCheckers): "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc", "/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc", ], + "tex-gyre": [ + "/usr/share/texmf/tex/latex/tex-gyre/tgtermes.sty" + ], + "texlive-fonts-recommended": [ + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/zapfding/pzdr.tfm", + ], + "texlive-lang-chinese": [ + "/usr/share/texlive/texmf-dist/tex/latex/ctex/ctexhook.sty", + ], } for package, files in pdf_pkgs.items():
Signature · 1 line
2.50.1
PATCH 7/11 scripts: sphinx-pre-install: add missing gentoo pdf dependencies
In reply to Mauro Carvalho ChehabThere are two packages that are required to build PDF at gentoo:
dev-texlive/texlive-latexextra
media-fonts/lm
Place latex_dependencies on a list to make it easier to maintain and add the missing ones.
With that, most PDF documents now build on Gentoo:
Gentoo Base System release 2.17:
--------------------------------
PASSED: OS detection: Gentoo Base System release 2.17
SKIPPED (Sphinx Sphinx 8.2.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:28, return code: 0
PARTIAL: Build PDF documentation: Test failed (Build time: 9:19, return code: 2)
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
FAILED: userspace-api: Build failed (FAILED)
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
FAILED: translations: Build failed (FAILED)
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
FAILED: gpu: Build failed (FAILED)
FAILED: i2c: Build failed (FAILED)
FAILED: RCU: Build failed (FAILED)
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
FAILED: arch: Build failed (FAILED)
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
FAILED: core-api: Build failed (FAILED)
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
--- scripts/sphinx-pre-install | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
scripts/sphinx-pre-install +8 -1
@@ -1058,12 +1058,19 @@ class SphinxDependencyChecker(MissingCheckers): """ Provide package installation hints for Gentoo. """ + texlive_deps = [ + "dev-texlive/texlive-latexextra", + "dev-texlive/texlive-xetex", + "media-fonts/dejavu", + "media-fonts/lm", + ] + progs = { "convert": "media-gfx/imagemagick", "dot": "media-gfx/graphviz", "rsvg-convert": "gnome-base/librsvg", "virtualenv": "dev-python/virtualenv", - "xelatex": "dev-texlive/texlive-xetex media-fonts/dejavu", + "xelatex": " ".join(texlive_deps), "yaml": "dev-python/pyyaml", "python-sphinx": "dev-python/sphinx", }
Signature · 1 line
2.50.1
PATCH 8/11 scripts: sphinx-pre-install: fix PDF dependencies for openSuse
In reply to Mauro Carvalho ChehabThe dependencies are outdated: both versions need texlive-dejavu fonts. Also, for PDF generation, python311-Sphinx-latex is required.
With that, all PDF files are now tuilt on both:
openSUSE Leap 15.6:
-------------------
PASSED: OS detection: openSUSE Leap 15.6
SKIPPED (Sphinx Sphinx 7.2.6): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:29, return code: 0
PASSED: Build PDF documentation: Build time: 13:45, return code: 0
openSUSE Tumbleweed:
--------------------
PASSED: OS detection: openSUSE Tumbleweed
SKIPPED (Sphinx Sphinx 8.2.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 4:33, return code: 0
PASSED: Build PDF documentation: Build time: 13:18, return code: 0
Summary
=======
PASSED - openSUSE Leap 15.6 (7 tests)
PASSED - openSUSE Tumbleweed (7 tests)
--- scripts/sphinx-pre-install | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
scripts/sphinx-pre-install +3 -3
@@ -901,7 +901,7 @@ class SphinxDependencyChecker(MissingCheckers): "dot": "graphviz", "python-sphinx": "python3-sphinx", "virtualenv": "python3-virtualenv", - "xelatex": "texlive-xetex-bin", + "xelatex": "texlive-xetex-bin texlive-dejavu", "yaml": "python3-pyyaml", }
@@ -937,7 +937,7 @@ class SphinxDependencyChecker(MissingCheckers): self.recommend_python = True progs.update({ - "python-sphinx": "python311-Sphinx", + "python-sphinx": "python311-Sphinx python311-Sphinx-latex", "virtualenv": "python311-virtualenv", "yaml": "python311-PyYAML", })
@@ -945,7 +945,7 @@ class SphinxDependencyChecker(MissingCheckers): # Tumbleweed defaults to Python 3.11 progs.update({ - "python-sphinx": "python313-Sphinx", + "python-sphinx": "python313-Sphinx python313-Sphinx-latex", "virtualenv": "python313-virtualenv", "yaml": "python313-PyYAML", })
Signature · 1 line
2.50.1
PATCH 9/11 scripts: sphinx-pre-install: fix dependencies for OpenMandriva
In reply to Mauro Carvalho ChehabThe dependeny list for OpenMandriva is wrong. Update it.
Yet, on my tests with OpenMandriva LX 4.3, the texlive packages are
broken: xelatex can't build anything there, as it lacks xelatex.sfm.
Yet, this could be a problem at the way I created the container. Just in case, add a note about that.
--- scripts/sphinx-pre-install | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
scripts/sphinx-pre-install +10 -2
@@ -984,13 +984,19 @@ class SphinxDependencyChecker(MissingCheckers): if re.search(r"OpenMandriva", self.system_release): packager_cmd = "dnf install" noto_sans = "noto-sans-cjk-fonts" - tex_pkgs = ["texlive-collection-fontsextra"] + tex_pkgs = [ + "texlive-collection-basic", + "texlive-collection-langcjk", + "texlive-collection-fontsextra", + "texlive-collection-fontsrecommended" + ] # Tested on OpenMandriva Lx 4.3 progs["convert"] = "imagemagick" progs["yaml"] = "python-pyyaml" progs["python-virtualenv"] = "python-virtualenv" progs["python-sphinx"] = "python-sphinx" + progs["xelatex"] = "texlive" self.check_program("python-virtualenv", DepManager.PYTHON_MANDATORY)
@@ -1004,7 +1010,9 @@ class SphinxDependencyChecker(MissingCheckers): if not self.distro_msg: self.distro_msg = \ - "Note: for venv, ensurepip could be broken, preventing its install method." + "Notes:\n"\ + "1. for venv, ensurepip could be broken, preventing its install method.\n" \ + "2. at least on OpenMandriva LX 4.3, texlive packages seem broken" else: packager_cmd = "urpmi"
Signature · 1 line
2.50.1
PATCH 10/11 scripts: sphinx-pre-install: fix pdf dependencies for Mageia 9
In reply to Mauro Carvalho ChehabOn Mageia 9, two packages are missing. Add them.
With that, all PDF packages now build:
Mageia 9:
---------
PASSED: OS detection: Mageia 9
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 8.1.3
PASSED: Sphinx package: Sphinx Sphinx 6.1.3
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 5:17, return code: 0
PASSED: Build PDF documentation: Build time: 14:28, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Summary
=======
PASSED - Mageia 9 (7 tests)
--- scripts/sphinx-pre-install | 2 ++ 1 file changed, 2 insertions(+)
scripts/sphinx-pre-install +2 -0
@@ -979,6 +979,8 @@ class SphinxDependencyChecker(MissingCheckers): tex_pkgs = [ "texlive-fontsextra", + "texlive-fonts-asian", + "fonts-ttf-dejavu", ] if re.search(r"OpenMandriva", self.system_release):
Signature · 1 line
2.50.1
PATCH 11/11 scripts: sphinx-pre-install: fix PDF dependencies for gentoo
In reply to Mauro Carvalho ChehabPackage fonts are wrong. Fix it. With that, most PDF files now builds.
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
FAILED: userspace-api: Build failed (FAILED)
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
FAILED: translations: Build failed (FAILED)
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
FAILED: gpu: Build failed (FAILED)
FAILED: i2c: Build failed (FAILED)
FAILED: RCU: Build failed (FAILED)
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
FAILED: arch: Build failed (FAILED)
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
FAILED: core-api: Build failed (FAILED)
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
--- scripts/sphinx-pre-install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
scripts/sphinx-pre-install +1 -1
@@ -1069,10 +1069,10 @@ class SphinxDependencyChecker(MissingCheckers): Provide package installation hints for Gentoo. """ texlive_deps = [ + "dev-texlive/texlive-fontsrecommended", "dev-texlive/texlive-latexextra", "dev-texlive/texlive-xetex", "media-fonts/dejavu", - "media-fonts/lm", ] progs = {
Signature · 1 line
2.50.1
[-CC most folks]
Hi Mauro,
Quoted 57 lines · Mauro Carvalho Chehab
Hi Jon,
This series touch only on three files, and have a small diffstat:
Documentation/Makefile | 4 - Documentation/conf.py | 106 +++++++++++++++++++++---------------- scripts/sphinx-pre-install | 41 +++++++++++--- 3 files changed, 96 insertions(+), 55 deletions(-)Yet, it took a lot of my time. Basically, it addresses lots of problems related with building PDF docs:
-
Makefilehas a wrong set of definitions for paper size. It was using pre-1.7 Sphinx nomenclature for some conf vars;
- The LaTeX options aconf.pyhad lots of issues;
- Finally, some PDF package dependencies for distros were wrong.I wrote an entire testbench to test this and doing builds on every platform mentioned at sphinx-pre-install.
After the change *most* PDF files are built on *most* platforms.
Summary
=======
PASSED - AlmaLinux release 9.6 (Sage Margay) (7 tests) PASSED - Amazon Linux release 2023 (Amazon Linux) (7 tests) FAILED - archlinux (1 tests)
PASSED - CentOS Stream release 9 (7 tests)
PARTIAL - Debian GNU/Linux 12 (7 tests)
PARTIAL - Devuan GNU/Linux 5 (7 tests)
PASSED - Fedora release 42 (Adams) (7 tests)
PARTIAL - Gentoo Base System release 2.17 (7 tests)
PASSED - Kali GNU/Linux 2025.2 (7 tests)
PASSED - Mageia 9 (7 tests)
PARTIAL - Linux Mint 22 (7 tests)
PARTIAL - openEuler release 25.03 (7 tests)
PARTIAL - OpenMandriva Lx 4.3 (7 tests)
PASSED - openSUSE Leap 15.6 (7 tests)
PASSED - openSUSE Tumbleweed (7 tests)
PARTIAL - Oracle Linux Server release 9.6 (7 tests)
FAILED - Red Hat Enterprise Linux release 8.10 (Ootpa) (7 tests) PARTIAL - Rocky Linux release 8.9 (Green Obsidian) (7 tests) PARTIAL - Rocky Linux release 9.6 (Blue Onyx) (7 tests) FAILED - Springdale Open Enterprise Linux release 9.2 (Parma) (7 tests) PARTIAL - Ubuntu 24.04.2 LTS (7 tests)
PASSED - Ubuntu 25.04 (7 tests)The failed distros are:
- archlinux. This is some problem on recent lxc containers. Unrelated with pdf builds;
- RHEL 8: paywall issue: some packages required by Sphinx require a repository that it is not openly available. I might have using CentOS repos, but, as we're already testing it, I opted not do do it;
- Springdale 9.2: some broken package dependency.
Quoted 5 lines
Now, if you look at the full logs below, you'll see that some distros come with XeLaTeX or LaTeX troubles, causing bigger and/or more complex docs to fail. It is possible to fix those, but they depend on addressing distro-specific LaTeX issues like increasing maximum memory limits and maximum number of idented paragraphs.
No, the trouble is failed conversion of SVG --> PDF by convert(1) + rsvg-convert(1). Failed conversions trigger huge raw SVG code to be included literally into LaTeX sources, which results in code listings too huge to be rendered in a page; and overwhelms xelatex.
IIUC, kfigure.py does such fallbacks of failed PDF conversions. Mightn't it be better to give up early in the latexdocs stage?
Quoted 1 line
It follows full results per distro.
[Ignoring lengthy list of results...]
I think all you need to test build against are the limited list of:
- arch.pdf
- core-api.pdf
- doc-guide.pdf
- gpu.pdf
- i2c.pdf
- RCU.pdf
- translations.pdf
- userspace-api.pdf
All of them have figures in SVG, and latexdocs tries to convert them into PDF.
Probably, recommending Inkscape rather than ImageMagick would be the right thing, at least where it is provided as a distro package.
Regards,
Akira
Em Sat, 16 Aug 2025 14:06:43 +0900
Akira Yokosawa <[email protected]> escreveu:
Quoted 68 lines
[-CC most folks]
Hi Mauro,
Quoted 57 lines · Mauro Carvalho Chehab
Hi Jon,
This series touch only on three files, and have a small diffstat:
Documentation/Makefile | 4 - Documentation/conf.py | 106 +++++++++++++++++++++---------------- scripts/sphinx-pre-install | 41 +++++++++++--- 3 files changed, 96 insertions(+), 55 deletions(-)Yet, it took a lot of my time. Basically, it addresses lots of problems related with building PDF docs:
-
Makefilehas a wrong set of definitions for paper size. It was using pre-1.7 Sphinx nomenclature for some conf vars;
- The LaTeX options aconf.pyhad lots of issues;
- Finally, some PDF package dependencies for distros were wrong.I wrote an entire testbench to test this and doing builds on every platform mentioned at sphinx-pre-install.
After the change *most* PDF files are built on *most* platforms.
Summary
=======
PASSED - AlmaLinux release 9.6 (Sage Margay) (7 tests) PASSED - Amazon Linux release 2023 (Amazon Linux) (7 tests) FAILED - archlinux (1 tests)
PASSED - CentOS Stream release 9 (7 tests)
PARTIAL - Debian GNU/Linux 12 (7 tests)
PARTIAL - Devuan GNU/Linux 5 (7 tests)
PASSED - Fedora release 42 (Adams) (7 tests)
PARTIAL - Gentoo Base System release 2.17 (7 tests)
PASSED - Kali GNU/Linux 2025.2 (7 tests)
PASSED - Mageia 9 (7 tests)
PARTIAL - Linux Mint 22 (7 tests)
PARTIAL - openEuler release 25.03 (7 tests)
PARTIAL - OpenMandriva Lx 4.3 (7 tests)
PASSED - openSUSE Leap 15.6 (7 tests)
PASSED - openSUSE Tumbleweed (7 tests)
PARTIAL - Oracle Linux Server release 9.6 (7 tests)
FAILED - Red Hat Enterprise Linux release 8.10 (Ootpa) (7 tests) PARTIAL - Rocky Linux release 8.9 (Green Obsidian) (7 tests) PARTIAL - Rocky Linux release 9.6 (Blue Onyx) (7 tests) FAILED - Springdale Open Enterprise Linux release 9.2 (Parma) (7 tests) PARTIAL - Ubuntu 24.04.2 LTS (7 tests)
PASSED - Ubuntu 25.04 (7 tests)The failed distros are:
- archlinux. This is some problem on recent lxc containers. Unrelated with pdf builds;
- RHEL 8: paywall issue: some packages required by Sphinx require a repository that it is not openly available. I might have using CentOS repos, but, as we're already testing it, I opted not do do it;
- Springdale 9.2: some broken package dependency.Quoted 5 lines
Now, if you look at the full logs below, you'll see that some distros come with XeLaTeX or LaTeX troubles, causing bigger and/or more complex docs to fail. It is possible to fix those, but they depend on addressing distro-specific LaTeX issues like increasing maximum memory limits and maximum number of idented paragraphs.
Quoted 4 lines
No, the trouble is failed conversion of SVG --> PDF by convert(1) + rsvg-convert(1). Failed conversions trigger huge raw SVG code to be included literally into LaTeX sources, which results in code listings too huge to be rendered in a page; and overwhelms xelatex.
I remember we had some cases of too large items on media uAPI. There, the problem were mostly on tables. The fix was to add several LaTeX specific commands:
$ git grep -i "raw:: latex" Documentation/userspace-api/media/|wc -l 201
Currently, they all are just changing font size, but
We also use less-ugly things like Sphinx PDF builder specific classes:
.. cssclass:: longtable
So, one alternative would be to look at techniques to auto-scale image, like:
\usepackage{pdfpages}
...
\includepdf{image.png}as proposed here:
https://tex.stackexchange.com/questions/39147/scale-image-to-page-width
Yet, we tried something like that before to auto-scale tables, overriding Sphinx Latex macros. It worked for a couple of sphinx versions, but maintaining it was hard, as newer versions of Sphinx came with different macro names or different behaviors.
Heh, if you check:
https://www.sphinx-doc.org/en/master/latex.html#additional-css-like-sphinxsetup-keys
You'll see that sphinx latex builder have been suffering lots of changes over time.
Quoted 2 lines
IIUC,
kfigure.pydoes such fallbacks of failed PDF conversions. Mightn't it be better to give up early in the latexdocs stage?
Makes sense to me.
Quoted 15 lines
Quoted 1 line
It follows full results per distro.
[Ignoring lengthy list of results...]
I think all you need to test build against are the limited list of:
- arch.pdf
- core-api.pdf
- doc-guide.pdf
- gpu.pdf
- i2c.pdf
- RCU.pdf
- translations.pdf
- userspace-api.pdf
Quoted 5 lines
All of them have figures in SVG, and latexdocs tries to convert them into PDF.
Probably, recommending Inkscape rather than ImageMagick would be the right thing, at least where it is provided as a distro package.
Works for me, but let's do it on a separate series. I still have more than 100 patches on my pile to be merged. This series is focused on making at least some PDFs to build where possible, addressing major problems at conf.py that are causing LaTeX to not work on several distros and to fix wrong package dependencies(*).
I'll add a TODO item on my queue to replace fom ImageMagick to Inkscape on a separate series.
(*) One of such problem you blamed sphinx-build-wrapper, but
the issue is actually addressed on this series with fixes to conf.py:
there are currently several troubles at latex_documents list and at latex_elements.
Those are causing wrong font detection on LaTeX. Maybe the corrupted font issues you got are related to it.
It took me a lot of time to set latex_elements in a way that it now works fine. The main keys related to it are those:
"passoptionstopackages": dedent(r"""
\PassOptionsToPackage{svgnames}{xcolor}
% Avoid encoding troubles when creating indexes \PassOptionsToPackage{xindy}{language=english,codepage=utf8,noautomatic}
"""),
"fontenc": "",
'fontpkg': dedent(r'''
\usepackage{fontspec}
\setmainfont{DejaVu Serif}
\setsansfont{DejaVu Sans}
\setmonofont{DejaVu Sans Mono} \newfontfamily\headingfont{DejaVu Serif}
'''),
You can't imagine how much hours it took to get the above lines right ;-)
Basically, "fontenc" and "fontpkg" are two different ways that LaTeX use to include true-type fonts. We need to disable the first, as otherwise it will try to use both, which may result in incompatible fonts (On Debian, LaTeX build reports corrupted fonts on T1 fontenc set - preventing PDF builds). The actual messge there is:
! Corrupted NFSS tables
Btw, just disabling fontenc there was not enough, as babel was still trying to load a T1 Polish font indirectly used by Sphinx hyphenation macros. I had to add \newfontfamily to fix such issue.
Thanks,
Mauro
[-CC: bpf@vger]
Quoted 3 lines · Mauro Carvalho Chehab
Em Sat, 16 Aug 2025 14:06:43 +0900
Akira Yokosawa <[email protected]> escreveu:
[...]
Quoted 9 lines
Works for me, but let's do it on a separate series. I still have more than 100 patches on my pile to be merged. This series is focused on making at least some PDFs to build where possible, addressing major problems at
conf.pythat are causing LaTeX to not work on several distros and to fix wrong packagedependencies(*).I'll add a TODO item on my queue to replace fom ImageMagick to Inkscape on a separate series.
Quoted 6 lines
(*) One of such problem you blamed sphinx-build-wrapper, but
the issue is actually addressed on this series with fixes toconf.py:
there are currently several troubles atlatex_documentslist and atlatex_elements.Those are causing wrong font detection on LaTeX.
I couldn't see what you are talking about at first, because there have not been any such issues reported.
Also, after applying 1/11 ... 4/11 on top of current docs-next (commit 0bbc2548ea85 ("Merge branch 'pre-install' into docs-mw"), despite the changelog of 5/11 which claims to fix an issue under debian, I couldn't reproduce the "! Corrupted NFSS tables" error under Ubuntu 24.04 (noble).
I'm confused ... How can I reproduce this?
It's getting really hard for me to keep up with your pace of changes in doc build scripts, really.
Akira
Em Sun, 17 Aug 2025 18:46:35 +0900
Akira Yokosawa <[email protected]> escreveu:
Quoted 23 lines
[-CC: bpf@vger]
Quoted 3 lines · Mauro Carvalho Chehab
Em Sat, 16 Aug 2025 14:06:43 +0900
Akira Yokosawa <[email protected]> escreveu:[...]
Quoted 14 lines
Works for me, but let's do it on a separate series. I still have more than 100 patches on my pile to be merged. This series is focused on making at least some PDFs to build where possible, addressing major problems at
conf.pythat are causing LaTeX to not work on several distros and to fix wrong packagedependencies(*).I'll add a TODO item on my queue to replace fom ImageMagick to Inkscape on a separate series.
(*) One of such problem you blamed sphinx-build-wrapper, but
the issue is actually addressed on this series with fixes toconf.py:
there are currently several troubles atlatex_documentslist and atlatex_elements.
Quoted 4 lines
Quoted 1 line
Those are causing wrong font detection on LaTeX.
I couldn't see what you are talking about at first, because there have not been any such issues reported.
Heh, as you reported, you had troubles building pdf on Debian/Ubuntu. That's mainly why I took some time finding issues and writing this series. Basically, just fixing ImageMagick permissions didn't fix everything, as, at least with the Sphinx versions used at the tests got troubles with Sphinx hyphernation, which required a Polish font.
Debian LaTeX packages seem to have issues with that. Fedora and other rpm-based distros built it fine.
Now, reproducing such bugs could be tricky, specially with LaTeX, which is a complex tool with lots of system-specific stuff.
Eventually, this could be related to LANG/LANGUAGE/LC_ALL/... env vars. Here, I'm using lxc-attach to bind to the container. It doesn't run .bashrc nor set locale vars, and it seems to keep some env vars from the host. In the specific case of LANG, it doesn't set anything. So, my test script sets LANG and LC_ALL to "C". The host has it set to LANG=pt_BR.UTF-8.
Quoted 5 lines
Also, after applying 1/11 ... 4/11 on top of current docs-next (commit
0bbc2548ea85("Merge branch 'pre-install' into docs-mw"), despite the changelog of 5/11 which claims to fix an issue under debian, I couldn't reproduce the "! Corrupted NFSS tables" error under Ubuntu 24.04 (noble).
Maybe you could try set LANG/LC_ALL to "C".
I tested it on the following lxc containers (picked from lxc download repositories):
# APT-based (Debian/Ubuntu-like)
debian:
release: "bookworm"
pre_setup_cmds: *apt_pkg_cmd
post_setup_cmds:
- "systemctl enable ssh"
pkg_cmd: *apt_pkg_cmd
devuan:
release: "daedalus"
pkg_cmd: *apt_pkg_cmd
kali:
release: "current"
pkg_cmd: *apt_pkg_cmd
mint:
release: "wilma"
pkg_cmd: *apt_pkg_cmd
ubuntu:
release: "plucky"
pkg_cmd: *apt_pkg_cmd
ubuntu-lts:
dist: "ubuntu"
release: "noble"
pkg_cmd: *apt_pkg_cmd
apt_pkg_cmd: &apt_pkg_cmd
- "sudo locale-gen"
- "sudo dpkg-reconfigure --frontend=noninteractive locales"
- "apt-get update && apt-get install -y openssh-server git python3 make"
- |
if [ -f /etc/ImageMagick-6/policy.xml ]; then
# Remove any existing restrictive policies for PDF/PS/EPS/XPS
sed -i '/<policy.*domain="coder".*pattern=".*\(PDF\|PS\|EPS\|XPS\).*"/d' /etc/ImageMagick-6/policy.xml
# Allow PDF patterns at the end </policymap>
sed -i '/<\/policymap>/i \ \ <policy domain="coder" rights="read|write" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />' /etc/ImageMagick-6/policy.xml
fi
- |
if [ -f /etc/ImageMagick-7/policy.xml ]; then
# Remove any existing restrictive policies for PDF/PS/EPS/XPS
sed -i '/<policy.*domain="coder".*pattern=".*\(PDF\|PS\|EPS\|XPS\).*"/d' /etc/ImageMagick-7/policy.xml
# Allow PDF patterns at the end </policymap>
sed -i '/<\/policymap>/i \ \ <policy domain="coder" rights="read|write" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />' /etc/ImageMagick-7/policy.xml
fi
Packages are installed according using sphinx-pre-install instructions.
I don't remember what of those got the corrupted tables LaTeX warning, but I got it on more than one Debian-based distro. When I wrote the fix, I guess I logged at the Debian container.
Quoted 6 lines
I'm confused ... How can I reproduce this?
It's getting really hard for me to keep up with your pace of changes in doc build scripts, really.
Akira
Quoted 5 lines · Mauro Carvalho Chehab
Em Sun, 17 Aug 2025 18:46:35 +0900
Akira Yokosawa <[email protected]> escreveu:Quoted 2 lines
[-CC: bpf@vger]
[...]
Quoted 81 lines
Quoted 2 lines
I couldn't see what you are talking about at first, because there have not been any such issues reported.
Heh, as you reported, you had troubles building pdf on Debian/Ubuntu. That's mainly why I took some time finding issues and writing this series. Basically, just fixing ImageMagick permissions didn't fix everything, as, at least with the Sphinx versions used at the tests got troubles with Sphinx hyphernation, which required a Polish font.
Debian LaTeX packages seem to have issues with that. Fedora and other rpm-based distros built it fine.
Now, reproducing such bugs could be tricky, specially with LaTeX, which is a complex tool with lots of system-specific stuff.
Eventually, this could be related to LANG/LANGUAGE/LC_ALL/... env vars. Here, I'm using lxc-attach to bind to the container. It doesn't run .bashrc nor set locale vars, and it seems to keep some env vars from the host. In the specific case of LANG, it doesn't set anything. So, my test script sets LANG and
LC_ALLto "C". The host has it set to LANG=pt_BR.UTF-8.Quoted 5 lines
Also, after applying 1/11 ... 4/11 on top of current docs-next (commit
0bbc2548ea85("Merge branch 'pre-install' into docs-mw"), despite the changelog of 5/11 which claims to fix an issue under debian, I couldn't reproduce the "! Corrupted NFSS tables" error under Ubuntu 24.04 (noble).Maybe you could try set LANG/LC_ALL to "C".
I tested it on the following lxc containers (picked from lxc download repositories):
# APT-based (Debian/Ubuntu-like)
debian:
release: "bookworm"
pre_setup_cmds:*apt_pkg_cmd
post_setup_cmds:
- "systemctl enable ssh"
pkg_cmd:*apt_pkg_cmddevuan:
release: "daedalus"
pkg_cmd:*apt_pkg_cmdkali:
release: "current"
pkg_cmd:*apt_pkg_cmdmint:
release: "wilma"
pkg_cmd:*apt_pkg_cmdubuntu:
release: "plucky"
pkg_cmd:*apt_pkg_cmdubuntu-lts:
dist: "ubuntu"
release: "noble"
pkg_cmd:*apt_pkg_cmd
apt_pkg_cmd:&apt_pkg_cmd
- "sudo locale-gen"
- "sudo dpkg-reconfigure --frontend=noninteractive locales"
- "apt-get update && apt-get install -y openssh-server git python3 make"
- |
if [ -f/etc/ImageMagick-6/policy.xml]; then
# Remove any existing restrictive policies for PDF/PS/EPS/XPS
sed -i '/<policy.*domain="coder".*pattern=".*\(PDF\|PS\|EPS\|XPS\).*"/d'/etc/ImageMagick-6/policy.xml
# Allow PDF patterns at the end </policymap>
sed -i '/<\/policymap>/i \ \ <policy domain="coder" rights="read|write" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />'/etc/ImageMagick-6/policy.xml
fi
- |
if [ -f/etc/ImageMagick-7/policy.xml]; then
# Remove any existing restrictive policies for PDF/PS/EPS/XPS
sed -i '/<policy.*domain="coder".*pattern=".*\(PDF\|PS\|EPS\|XPS\).*"/d'/etc/ImageMagick-7/policy.xml
# Allow PDF patterns at the end </policymap>
sed -i '/<\/policymap>/i \ \ <policy domain="coder" rights="read|write" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />'/etc/ImageMagick-7/policy.xml
fi
Quoted 7 lines
Packages are installed according using sphinx-pre-install instructions.
I don't remember what of those got the corrupted tables LaTeX warning, but I got it on more than one Debian-based distro. When I wrote the fix, I guess I logged at the Debian container.
That explains! I've stopped using ImageMagick all together.
So it sounds to me like there is some issue in debian/ubuntu/...'s ImageMagick packaging, probably its build config disables some aspect of SVG --> PDF support for security concerns (???). I'm not sure at all.
I think it has nothing to do with XeLaTeX font discovery and I don't see any reason to apply 5/11, at least for the time being.
My suggestion would be to give up ImageMagick and install Inkscape instead. It is provided as a deb package for debian and its derivatives.
Thanks, Akira
Em Sun, 17 Aug 2025 21:24:49 +0900
Akira Yokosawa <[email protected]> escreveu:
Quoted 105 lines · Mauro Carvalho Chehab
Quoted 5 lines
Em Sun, 17 Aug 2025 18:46:35 +0900
Akira Yokosawa <[email protected]> escreveu:Quoted 2 lines
[-CC: bpf@vger]
[...]
Quoted 81 lines
Quoted 2 lines
I couldn't see what you are talking about at first, because there have not been any such issues reported.
Heh, as you reported, you had troubles building pdf on Debian/Ubuntu. That's mainly why I took some time finding issues and writing this series. Basically, just fixing ImageMagick permissions didn't fix everything, as, at least with the Sphinx versions used at the tests got troubles with Sphinx hyphernation, which required a Polish font.
Debian LaTeX packages seem to have issues with that. Fedora and other rpm-based distros built it fine.
Now, reproducing such bugs could be tricky, specially with LaTeX, which is a complex tool with lots of system-specific stuff.
Eventually, this could be related to LANG/LANGUAGE/LC_ALL/... env vars. Here, I'm using lxc-attach to bind to the container. It doesn't run .bashrc nor set locale vars, and it seems to keep some env vars from the host. In the specific case of LANG, it doesn't set anything. So, my test script sets LANG and
LC_ALLto "C". The host has it set to LANG=pt_BR.UTF-8.Quoted 5 lines
Also, after applying 1/11 ... 4/11 on top of current docs-next (commit
0bbc2548ea85("Merge branch 'pre-install' into docs-mw"), despite the changelog of 5/11 which claims to fix an issue under debian, I couldn't reproduce the "! Corrupted NFSS tables" error under Ubuntu 24.04 (noble).Maybe you could try set LANG/LC_ALL to "C".
I tested it on the following lxc containers (picked from lxc download repositories):
# APT-based (Debian/Ubuntu-like)
debian:
release: "bookworm"
pre_setup_cmds:*apt_pkg_cmd
post_setup_cmds:
- "systemctl enable ssh"
pkg_cmd:*apt_pkg_cmddevuan:
release: "daedalus"
pkg_cmd:*apt_pkg_cmdkali:
release: "current"
pkg_cmd:*apt_pkg_cmdmint:
release: "wilma"
pkg_cmd:*apt_pkg_cmdubuntu:
release: "plucky"
pkg_cmd:*apt_pkg_cmdubuntu-lts:
dist: "ubuntu"
release: "noble"
pkg_cmd:*apt_pkg_cmd
apt_pkg_cmd:&apt_pkg_cmd
- "sudo locale-gen"
- "sudo dpkg-reconfigure --frontend=noninteractive locales"
- "apt-get update && apt-get install -y openssh-server git python3 make"
- |
if [ -f/etc/ImageMagick-6/policy.xml]; then
# Remove any existing restrictive policies for PDF/PS/EPS/XPS
sed -i '/<policy.*domain="coder".*pattern=".*\(PDF\|PS\|EPS\|XPS\).*"/d'/etc/ImageMagick-6/policy.xml
# Allow PDF patterns at the end </policymap>
sed -i '/<\/policymap>/i \ \ <policy domain="coder" rights="read|write" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />'/etc/ImageMagick-6/policy.xml
fi
- |
if [ -f/etc/ImageMagick-7/policy.xml]; then
# Remove any existing restrictive policies for PDF/PS/EPS/XPS
sed -i '/<policy.*domain="coder".*pattern=".*\(PDF\|PS\|EPS\|XPS\).*"/d'/etc/ImageMagick-7/policy.xml
# Allow PDF patterns at the end </policymap>
sed -i '/<\/policymap>/i \ \ <policy domain="coder" rights="read|write" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />'/etc/ImageMagick-7/policy.xml
fiQuoted 7 lines
Packages are installed according using sphinx-pre-install instructions.
I don't remember what of those got the corrupted tables LaTeX warning, but I got it on more than one Debian-based distro. When I wrote the fix, I guess I logged at the Debian container.
That explains! I've stopped using ImageMagick all together.
So it sounds to me like there is some issue in debian/ubuntu/...'s ImageMagick packaging, probably its build config disables some aspect of SVG --> PDF support for security concerns (???). I'm not sure at all.
Quoted 5 lines
I think it has nothing to do with XeLaTeX font discovery and I don't see any reason to apply 5/11, at least for the time being.
My suggestion would be to give up ImageMagick and install Inkscape instead. It is provided as a deb package for debian and its derivatives.
The corrupted table error happened with very simple PDF files and has nothing to do with image generation.
It rises even with very simple PDF targets like this:
make SPHINXDIRS=peci pdfdocs
Which produces \sphinxhyphen{} inside peci.tex, like this one:
controller is acting as a PECI originator and the processor \sphinxhyphen{} as
Basically, if this is included, directly or indirectly at the .tex file:
\usepackage[T1]{fontenc}the fonts from T1 fontset aren't UTF-8 compatible, causing troubles with xelatex. The fixes on this series solved some corner cases, where babel tries to include it and use a Polish font (pzdr.tfm) to handle hyphenation.
Such issue likely depends on Sphinx versions (as it is related to a sphinx-specific macro) and what LaTeX packages are installed at the system (fonts, babel, polygrossia).
Regards,
Mauro
Akira Yokosawa
Reviewed-byOn Sun, 17 Aug 2025 15:45:44 +0200, Mauro Carvalho Chehab wrote:
[...]
Quoted 16 lines
The corrupted table error happened with very simple PDF files and has nothing to do with image generation.
It rises even with very simple PDF targets like this:
make SPHINXDIRS=peci pdfdocs
Which produces \sphinxhyphen{} inside peci.tex, like this one:
controller is acting as a PECI originator and the processor \sphinxhyphen{} as
Basically, if this is included, directly or indirectly at the .tex file:
\usepackage[T1]{fontenc}
Quoted 8 lines
the fonts from T1 fontset aren't UTF-8 compatible, causing troubles with xelatex. The fixes on this series solved some corner cases, where babel tries to include it and use a Polish font (pzdr.tfm) to handle hyphenation.
Such issue likely depends on Sphinx versions (as it is related to a sphinx-specific macro) and what LaTeX packages are installed at the system (fonts, babel, polygrossia).
Ah, I have finally understood what 5/11 is trying to do.
Its changelog mainly talks about an issue you saw after adding options to xindy in that same commit, and you added
\newfontfamily\headingfont{DejaVu Serif}
to resolve it.
Current changelog didn't make sense at all for me.
Can you please reword it and make it easier to follow?
With that, feel free to add my
Thanks, Akira
On Mon, 18 Aug 2025 01:07:24 +0900, Akira Yokosawa wrote:
[...]
Quoted 9 lines
Ah, I have finally understood what 5/11 is trying to do.
Its changelog mainly talks about an issue you saw after adding options to xindy in that same commit, and you added
\newfontfamily\headingfont{DejaVu Serif}to resolve it.
Sidenote:
It looks like texlive-xindy is not available for RHEL based distros.
That means, you will need to ask EPEL to provide it. Otherwise, you are obsoleting those distros for pdfdocs build (under the confinement of "distro packages only").
I think I can live with it.
Akira
Em Mon, 18 Aug 2025 09:44:39 +0900
Akira Yokosawa <[email protected]> escreveu:
Quoted 9 lines · Akira Yokosawa
[...]
Quoted 6 lines
Ah, I have finally understood what 5/11 is trying to do.
Its changelog mainly talks about an issue you saw after adding options to xindy in that same commit, and you added
Quoted 7 lines
Quoted 3 lines
\newfontfamily\headingfont{DejaVu Serif}to resolve it.
Sidenote:
It looks like texlive-xindy is not available for RHEL based distros.
On several rpm-based distros, extra repositories are needed.
So, if you take a look at rpmfind:
https://rpmfind.net/linux/rpm2html/search.php?query=python3-sphinx
For the limited set of distros supported there, you'll see that sphinx-build can either be at:
- main distro repos;
- CRB;
- Powertools
But this is only a fraction of the problem, as there are several exceptions. For instance, RHEL8 from "redhat/ubi8" docker container(*) sounds to be an official vendor-provided image.
(*) https://hub.docker.com/r/redhat/ubi8
Yet, if you use it and try to install sphinx-build:
# dnf install python3-sphinx Updating Subscription Management repositories. Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Last metadata expiration check: 21:10:22 ago on Sun Aug 17 11:30:23 2025. No match for argument: python3-sphinx
Error: Unable to find a match: python3-sphinx
It won't work, because repo management in this case requires to setup a paywall protected procedure.
Quoted 3 lines
That means, you will need to ask EPEL to provide it. Otherwise, you are obsoleting those distros for pdfdocs build (under the confinement of "distro packages only").
Recommending a repository setup for rpm distros is complex. When I wrote sphinx-pre-install, I opted to keep such setup out of it.
The rationale is that the ones using such distros should know better and may require a paid subscription.
With the exception of rpmfusion on Fedora, where one needs to first download a RPM file from some site, for most distros, the extra needed repositories are already installed or can be installed from a package provided at the main repository. Once downloaded, all it takes is to enable it.
For instance, to get what is needed to build both html and pdf on RockyLinux, one needs to install a distro package:
dnf install -y epel-release
Which adds extra repositories to /etc/yum.repos.d/.
Then, either use config-manager:
# change "enable" flag from /etc/yum.repos.d/ repos dnf install 'dnf-command(config-manager)' dnf config-manager --set-enabled powertools appstream epel
or pass an extra option to enable the repo(s) during install:
sudo dnf --enablrepo=powertools --enablrepo=appstream --enablrepo=epel install -y python3-sphinx {other packages}Now, sphinx-pre-install can later be improved to also contain repo-management instructions but this is out of the scope of this series (and I'm not sure if it is worth adding it there).
Thanks,
Mauro
Quoted 10 lines · Mauro Carvalho Chehab
Em Mon, 18 Aug 2025 09:44:39 +0900
Akira Yokosawa <[email protected]> escreveu:Quoted 3 lines
Sidenote:
It looks like texlive-xindy is not available for RHEL based distros.
On several rpm-based distros, extra repositories are needed.
So, if you take a look at rpmfind:
https://rpmfind.net/linux/rpm2html/search.php?query=python3-sphinx
No, I'm talking about texlive-xindy.
https://rpmfind.net/linux/rpm2html/search.php?query=texlive-xindy
has RPMs for fedora 41/42/rawhide only.
How do you install xindy under AlmaLinux release 9.6 (Sage Margay), Amazon Linux release 2023 (Amazon Linux), CentOS Stream release 9, and the likes?
Thanks,
Akira
Em Mon, 18 Aug 2025 19:06:03 +0900
Akira Yokosawa <[email protected]> escreveu:
Quoted 14 lines · Mauro Carvalho Chehab
Quoted 10 lines
Em Mon, 18 Aug 2025 09:44:39 +0900
Akira Yokosawa <[email protected]> escreveu:Quoted 3 lines
Sidenote:
It looks like texlive-xindy is not available for RHEL based distros.
On several rpm-based distros, extra repositories are needed.
So, if you take a look at rpmfind:
https://rpmfind.net/linux/rpm2html/search.php?query=python3-sphinxNo, I'm talking about texlive-xindy.
Quoted 7 lines
https://rpmfind.net/linux/rpm2html/search.php?query=texlive-xindy
has RPMs for fedora 41/42/rawhide only.
How do you install xindy under AlmaLinux release 9.6 (Sage Margay), Amazon Linux release 2023 (Amazon Linux), CentOS Stream release 9, and the likes?
I didn't install it there.
Yet, on some distros it seems that this is packaged together with a texlive collection package and it is called during pdf build.
This was also causing font issues. So, I added an option at latex_elements to ensure that, if used, it will request UTF-8 fonts:
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
"papersize": "a4paper",
"passoptionstopackages": dedent(r"""
\PassOptionsToPackage{svgnames}{xcolor}
% Avoid encoding troubles when creating indexes
\PassOptionsToPackage{xindy}{language=english,codepage=utf8,noautomatic}
"""),I just built manually on almalinux. There, all pdfs built fine:
<snip>
Summary
=======
dev-tools : pdf/dev-tools.pdf
tools : pdf/tools.pdf
filesystems : pdf/filesystems.pdf
w1 : pdf/w1.pdf
maintainer : pdf/maintainer.pdf
process : pdf/process.pdf
isdn : pdf/isdn.pdf
fault-injection: pdf/fault-injection.pdf
iio : pdf/iio.pdf
scheduler : pdf/scheduler.pdf
staging : pdf/staging.pdf
fpga : pdf/fpga.pdf
power : pdf/power.pdf
leds : pdf/leds.pdf
edac : pdf/edac.pdf
PCI : pdf/PCI.pdf
firmware-guide : pdf/firmware-guide.pdf
cpu-freq : pdf/cpu-freq.pdf
mhi : pdf/mhi.pdf
wmi : pdf/wmi.pdf
timers : pdf/timers.pdf
accel : pdf/accel.pdf
hid : pdf/hid.pdf
userspace-api : pdf/userspace-api.pdf
spi : pdf/spi.pdf
networking : pdf/networking.pdf
virt : pdf/virt.pdf
nvme : pdf/nvme.pdf
translations : pdf/translations.pdf
input : pdf/input.pdf
tee : pdf/tee.pdf
doc-guide : pdf/doc-guide.pdf
cdrom : pdf/cdrom.pdf
gpu : pdf/gpu.pdf
i2c : pdf/i2c.pdf
RCU : pdf/RCU.pdf
watchdog : pdf/watchdog.pdf
usb : pdf/usb.pdf
rust : pdf/rust.pdf
crypto : pdf/crypto.pdf
kbuild : pdf/kbuild.pdf
livepatch : pdf/livepatch.pdf
mm : pdf/mm.pdf
locking : pdf/locking.pdf
infiniband : pdf/infiniband.pdf
driver-api : pdf/driver-api.pdf
bpf : pdf/bpf.pdf
devicetree : pdf/devicetree.pdf
block : pdf/block.pdf
target : pdf/target.pdf
arch : pdf/arch.pdf
pcmcia : pdf/pcmcia.pdf
scsi : pdf/scsi.pdf
netlabel : pdf/netlabel.pdf
sound : pdf/sound.pdf
security : pdf/security.pdf
accounting : pdf/accounting.pdf
admin-guide : pdf/admin-guide.pdf
core-api : pdf/core-api.pdf
fb : pdf/fb.pdf
peci : pdf/peci.pdf
trace : pdf/trace.pdf
misc-devices : pdf/misc-devices.pdf
kernel-hacking : pdf/kernel-hacking.pdf
hwmon : pdf/hwmon.pdf
All PDF files were built.
</snip>
Those are all installed packages on AlmaLinux 9.6 (obtained only from sphinx-pre-install requirements):
<snip>
# rpm -q -a|grep texlive texlive-base-20200406-26.el9_2.noarch texlive-lib-20200406-26.el9_2.x86_64 texlive-texlive-common-doc-20200406-26.el9_2.noarch texlive-cm-20200406-26.el9_2.noarch texlive-etex-20200406-26.el9_2.noarch texlive-graphics-def-20200406-26.el9_2.noarch texlive-hyph-utf8-20200406-26.el9_2.noarch texlive-hyphen-base-20200406-26.el9_2.noarch texlive-knuth-lib-20200406-26.el9_2.noarch texlive-plain-20200406-26.el9_2.noarch texlive-tex-ini-files-20200406-26.el9_2.noarch texlive-unicode-data-20200406-26.el9_2.noarch texlive-texlive.infra-20200406-26.el9_2.noarch texlive-luatex-20200406-26.el9_2.x86_64 texlive-texlive-scripts-20200406-26.el9_2.noarch texlive-kpathsea-20200406-26.el9_2.x86_64 texlive-iftex-20200406-26.el9_2.noarch texlive-atbegshi-20200406-26.el9_2.noarch texlive-amsmath-20200406-26.el9_2.noarch texlive-kvoptions-20200406-26.el9_2.noarch texlive-babel-20200406-26.el9_2.noarch texlive-etex-pkg-20200406-26.el9_2.noarch texlive-etoolbox-20200406-26.el9_2.noarch texlive-latex-fonts-20200406-26.el9_2.noarch texlive-ltxcmds-20200406-26.el9_2.noarch texlive-url-20200406-26.el9_2.noarch texlive-amsfonts-20200406-26.el9_2.noarch texlive-infwarerr-20200406-26.el9_2.noarch texlive-pdftexcmds-20200406-26.el9_2.noarch texlive-luatexbase-20200406-26.el9_2.noarch texlive-atveryend-20200406-26.el9_2.noarch texlive-auxhook-20200406-26.el9_2.noarch texlive-etexcmds-20200406-26.el9_2.noarch texlive-l3backend-20200406-26.el9_2.noarch texlive-lm-20200406-26.el9_2.noarch texlive-booktabs-20200406-26.el9_2.noarch texlive-ec-20200406-26.el9_2.noarch texlive-fancyhdr-20200406-26.el9_2.noarch texlive-footmisc-20200406-26.el9_2.noarch texlive-intcalc-20200406-26.el9_2.noarch texlive-kvsetkeys-20200406-26.el9_2.noarch texlive-multido-20200406-26.el9_2.noarch texlive-natbib-20200406-26.el9_2.noarch texlive-ulem-20200406-26.el9_2.noarch texlive-zapfding-20200406-26.el9_2.noarch texlive-catchfile-20200406-26.el9_2.noarch texlive-babelbib-20200406-26.el9_2.noarch texlive-bookmark-20200406-26.el9_2.noarch texlive-epstopdf-pkg-20200406-26.el9_2.noarch texlive-fonts-tlwg-20200406-26.el9_2.noarch texlive-fp-20200406-26.el9_2.noarch texlive-gettitlestring-20200406-26.el9_2.noarch texlive-glyphlist-20200406-26.el9_2.noarch texlive-graphics-cfg-20200406-26.el9_2.noarch texlive-graphics-20200406-26.el9_2.noarch texlive-tools-20200406-26.el9_2.noarch texlive-xkeyval-20200406-26.el9_2.noarch texlive-geometry-20200406-26.el9_2.noarch texlive-colortbl-20200406-26.el9_2.noarch texlive-carlisle-20200406-26.el9_2.noarch texlive-caption-20200406-26.el9_2.noarch texlive-sauerj-20200406-26.el9_2.noarch texlive-grfext-20200406-26.el9_2.noarch texlive-hycolor-20200406-26.el9_2.noarch texlive-kvdefinekeys-20200406-26.el9_2.noarch texlive-latexconfig-20200406-26.el9_2.noarch texlive-letltxmacro-20200406-26.el9_2.noarch texlive-lua-alt-getopt-20200406-26.el9_2.noarch texlive-marvosym-20200406-26.el9_2.noarch texlive-mptopdf-20200406-26.el9_2.noarch texlive-paralist-20200406-26.el9_2.noarch texlive-pdfescape-20200406-26.el9_2.noarch texlive-pdftex-20200406-26.el9_2.x86_64 texlive-placeins-20200406-26.el9_2.noarch texlive-refcount-20200406-26.el9_2.noarch texlive-setspace-20200406-26.el9_2.noarch texlive-stringenc-20200406-26.el9_2.noarch texlive-svn-prov-20200406-26.el9_2.noarch texlive-everyhook-20200406-37.el9.noarch texlive-symbol-20200406-26.el9_2.noarch texlive-psnfss-20200406-26.el9_2.noarch texlive-tex-20200406-26.el9_2.x86_64 texlive-uniquecounter-20200406-26.el9_2.noarch texlive-rerunfilecheck-20200406-26.el9_2.noarch texlive-wasy-20200406-26.el9_2.noarch texlive-zref-20200406-26.el9_2.noarch texlive-adobemapping-20200406-37.el9.noarch texlive-firstaid-20200406-37.el9.noarch texlive-ipaex-20200406-37.el9.noarch texlive-latex-base-dev-20200406-37.el9.noarch texlive-latex-firstaid-dev-20200406-37.el9.noarch texlive-ptex-base-20200406-37.el9.noarch texlive-ptex-fonts-20200406-37.el9.noarch texlive-uptex-fonts-20200406-37.el9.noarch texlive-wasy-type1-20200406-26.el9_2.noarch texlive-subfig-20200406-26.el9_2.noarch texlive-breakurl-20200406-26.el9_2.noarch texlive-qstest-20200406-26.el9_2.noarch texlive-sttools-20200406-37.el9.noarch texlive-csquotes-20200406-26.el9_2.noarch texlive-translator-20200406-26.el9_2.noarch texlive-japanese-otf-20200406-37.el9.noarch texlive-japanese-otf-uptex-20200406-37.el9.noarch texlive-euro-20200406-26.el9_2.noarch texlive-garuda-c90-20200406-26.el9_2.noarch texlive-norasi-c90-20200406-26.el9_2.noarch texlive-ifplatform-20200406-26.el9_2.noarch texlive-dvips-20200406-26.el9_2.x86_64 texlive-memoir-20200406-26.el9_2.noarch texlive-tex-gyre-20200406-26.el9_2.noarch texlive-alphalph-20200406-26.el9_2.noarch texlive-arphic-20200406-26.el9_2.noarch texlive-avantgar-20200406-26.el9_2.noarch texlive-babel-english-20200406-26.el9_2.noarch texlive-beton-20200406-26.el9_2.noarch texlive-bibtex-20200406-26.el9_2.x86_64 texlive-bigintcalc-20200406-26.el9_2.noarch texlive-bitset-20200406-26.el9_2.noarch texlive-bookman-20200406-26.el9_2.noarch texlive-changepage-20200406-26.el9_2.noarch texlive-charter-20200406-26.el9_2.noarch texlive-chngcntr-20200406-26.el9_2.noarch texlive-cmextra-20200406-26.el9_2.noarch texlive-cns-20200406-26.el9_2.noarch texlive-colorprofiles-20200406-26.el9_2.noarch texlive-courier-20200406-26.el9_2.noarch texlive-enctex-20200406-26.el9_2.noarch texlive-enumitem-20200406-26.el9_2.noarch texlive-euler-20200406-26.el9_2.noarch texlive-eurosym-20200406-26.el9_2.noarch texlive-filecontents-20200406-26.el9_2.noarch texlive-fix2col-20200406-26.el9_2.noarch texlive-float-20200406-26.el9_2.noarch texlive-fpl-20200406-26.el9_2.noarch texlive-grffile-20200406-26.el9_2.noarch texlive-helvetic-20200406-26.el9_2.noarch texlive-hobsub-20200406-26.el9_2.noarch texlive-hyperref-20200406-26.el9_2.noarch texlive-latex-20200406-26.el9_2.noarch texlive-tipa-20200406-26.el9_2.noarch texlive-xunicode-20200406-26.el9_2.noarch texlive-amscls-20200406-26.el9_2.noarch texlive-ae-20200406-26.el9_2.noarch texlive-algorithms-20200406-26.el9_2.noarch texlive-bera-20200406-26.el9_2.noarch texlive-cm-super-20200406-26.el9_2.noarch texlive-ucs-20200406-26.el9_2.noarch texlive-attachfile-20200406-26.el9_2.noarch texlive-hologo-20200406-26.el9_2.noarch texlive-hyphenex-20200406-26.el9_2.noarch texlive-ifmtarg-20200406-26.el9_2.noarch texlive-xifthen-20200406-26.el9_2.noarch texlive-index-20200406-26.el9_2.noarch texlive-kastrup-20200406-26.el9_2.noarch texlive-knuth-local-20200406-26.el9_2.noarch texlive-lm-math-20200406-26.el9_2.noarch texlive-luahbtex-20200406-26.el9_2.x86_64 texlive-lualibs-20200406-26.el9_2.noarch texlive-luaotfload-20200406-26.el9_2.noarch texlive-makecmds-20200406-26.el9_2.noarch texlive-makeindex-20200406-26.el9_2.x86_64 texlive-manfnt-font-20200406-26.el9_2.noarch texlive-marginnote-20200406-26.el9_2.noarch texlive-mathpazo-20200406-26.el9_2.noarch texlive-mflogo-20200406-26.el9_2.noarch texlive-mflogo-font-20200406-26.el9_2.noarch texlive-mfnfss-20200406-26.el9_2.noarch texlive-mfware-20200406-26.el9_2.x86_64 texlive-modes-20200406-26.el9_2.noarch texlive-mparhack-20200406-26.el9_2.noarch texlive-ncntrsbk-20200406-26.el9_2.noarch texlive-notoccite-20200406-26.el9_2.noarch texlive-minitoc-20200406-26.el9_2.noarch texlive-ltxmisc-20200406-26.el9_2.noarch texlive-palatino-20200406-26.el9_2.noarch texlive-parallel-20200406-26.el9_2.noarch texlive-pdfcolmk-20200406-26.el9_2.noarch texlive-xcolor-20200406-26.el9_2.noarch texlive-pgf-20200406-26.el9_2.noarch texlive-currfile-20200406-26.el9_2.noarch texlive-filehook-20200406-26.el9_2.noarch texlive-sansmathaccent-20200406-26.el9_2.noarch texlive-beamer-20200406-26.el9_2.noarch texlive-eso-pic-20200406-26.el9_2.noarch texlive-pslatex-20200406-26.el9_2.noarch texlive-pspicture-20200406-26.el9_2.noarch texlive-pst-arrow-20200406-26.el9_2.noarch texlive-pst-math-20200406-26.el9_2.noarch texlive-pxfonts-20200406-26.el9_2.noarch texlive-rsfs-20200406-26.el9_2.noarch texlive-soul-20200406-26.el9_2.noarch texlive-tex-gyre-math-20200406-26.el9_2.noarch texlive-texlive-docindex-20200406-26.el9_2.noarch texlive-texlive-en-20200406-26.el9_2.noarch texlive-texlive-msg-translations-20200406-26.el9_2.noarch texlive-times-20200406-26.el9_2.noarch texlive-titlesec-20200406-26.el9_2.noarch texlive-trimspaces-20200406-26.el9_2.noarch texlive-environ-20200406-26.el9_2.noarch texlive-txfonts-20200406-26.el9_2.noarch texlive-uhc-20200406-26.el9_2.noarch texlive-underscore-20200406-26.el9_2.noarch texlive-updmap-map-20200406-26.el9_2.noarch texlive-utopia-20200406-26.el9_2.noarch texlive-varwidth-20200406-26.el9_2.noarch texlive-ms-20200406-26.el9_2.noarch texlive-koma-script-20200406-26.el9_2.noarch texlive-listings-20200406-26.el9_2.noarch texlive-showexpl-20200406-26.el9_2.noarch texlive-fancyvrb-20200406-26.el9_2.noarch texlive-pst-3d-20200406-26.el9_2.noarch texlive-pst-coil-20200406-26.el9_2.noarch texlive-pst-eps-20200406-26.el9_2.noarch texlive-pst-fill-20200406-26.el9_2.noarch texlive-pst-grad-20200406-26.el9_2.noarch texlive-pst-node-20200406-26.el9_2.noarch texlive-pst-plot-20200406-26.el9_2.noarch texlive-pst-text-20200406-26.el9_2.noarch texlive-pst-tools-20200406-26.el9_2.noarch texlive-pst-tree-20200406-26.el9_2.noarch texlive-pstricks-add-20200406-26.el9_2.noarch texlive-pstricks-20200406-26.el9_2.noarch texlive-wadalab-20200406-26.el9_2.noarch texlive-cjk-20200406-26.el9_2.noarch texlive-wasysym-20200406-26.el9_2.noarch texlive-xetexconfig-20200406-26.el9_2.noarch texlive-zapfchan-20200406-26.el9_2.noarch texlive-ascmac-20200406-37.el9.noarch texlive-cjkpunct-20200406-37.el9.noarch texlive-convbkmk-20200406-37.el9.noarch texlive-fandol-20200406-37.el9.noarch texlive-ttfutils-20200406-37.el9.x86_64 texlive-uptex-base-20200406-37.el9.noarch texlive-zhmetrics-20200406-37.el9.noarch texlive-zhmetrics-uptex-20200406-37.el9.noarch texlive-xdvi-20200406-26.el9_2.x86_64 texlive-ptex-20200406-37.el9.x86_64 texlive-uptex-20200406-37.el9.x86_64 texlive-metafont-20200406-26.el9_2.x86_64 texlive-thumbpdf-20200406-26.el9_2.noarch texlive-fontspec-20200406-26.el9_2.noarch texlive-l3packages-20200406-26.el9_2.noarch texlive-lualatex-math-20200406-26.el9_2.noarch texlive-unicode-math-20200406-26.el9_2.noarch texlive-oberdiek-20200406-26.el9_2.noarch texlive-l3kernel-20200406-26.el9_2.noarch texlive-xecjk-20200406-26.el9_2.noarch texlive-dvipdfmx-20200406-26.el9_2.x86_64 texlive-xetex-20200406-26.el9_2.x86_64 texlive-collection-basic-20200406-26.el9_2.noarch texlive-platex-20200406-37.el9.noarch texlive-xcjk2uni-20200406-37.el9.noarch texlive-xpinyin-20200406-37.el9.noarch texlive-platex-tools-20200406-37.el9.noarch texlive-uplatex-20200406-37.el9.noarch texlive-luatexja-20200406-37.el9.noarch texlive-zhnumber-20200406-37.el9.noarch texlive-bidi-20200406-26.el9_2.noarch texlive-polyglossia-20200406-26.el9_2.noarch texlive-ctex-20200406-37.el9.noarch texlive-collection-fontsrecommended-20200406-26.el9_2.noarch texlive-collection-latex-20200406-26.el9_2.noarch texlive-eqparbox-20200406-26.el9_2.noarch texlive-upquote-20200406-26.el9_2.noarch texlive-tabulary-20200406-26.el9_2.noarch texlive-fncychap-20200406-26.el9_2.noarch texlive-anyfontsize-20200406-26.el9_2.noarch texlive-capt-of-20200406-26.el9_2.noarch texlive-cmap-20200406-26.el9_2.noarch texlive-euenc-20200406-26.el9_2.noarch texlive-fancybox-20200406-26.el9_2.noarch texlive-framed-20200406-26.el9_2.noarch texlive-luatex85-20200406-26.el9_2.noarch texlive-mdwtools-20200406-26.el9_2.noarch texlive-multirow-20200406-26.el9_2.noarch texlive-needspace-20200406-26.el9_2.noarch texlive-parskip-20200406-26.el9_2.noarch texlive-threeparttable-20200406-26.el9_2.noarch texlive-wrapfig-20200406-26.el9_2.noarch </snip>
Thanks,
Mauro
Quoted 24 lines · Mauro Carvalho Chehab
Em Mon, 18 Aug 2025 19:06:03 +0900
Akira Yokosawa <[email protected]> escreveu:Quoted 3 lines
How do you install xindy under AlmaLinux release 9.6 (Sage Margay), Amazon Linux release 2023 (Amazon Linux), CentOS Stream release 9, and the likes?
I didn't install it there.
Yet, on some distros it seems that this is packaged together with a texlive collection package and it is called during pdf build.
This was also causing font issues. So, I added an option at
latex_elementsto ensure that, if used, it will request UTF-8 fonts:latex_elements = { # The paper size ('letterpaper' or 'a4paper'). "papersize": "a4paper", "passoptionstopackages": dedent(r""" \PassOptionsToPackage{svgnames}{xcolor} % Avoid encoding troubles when creating indexes \PassOptionsToPackage{xindy}{language=english,codepage=utf8,noautomatic} """),
Quoted 1 line
I just built manually on almalinux. There, all pdfs built fine:
Ah, xindy is optional then.
Got it!
Sorry for the noise.
Akira
Jonathan Corbet
maintainerQuoted 9 lines · Akira Yokosawa
Ah, I have finally understood what 5/11 is trying to do.
Its changelog mainly talks about an issue you saw after adding options to xindy in that same commit, and you added
\newfontfamily\headingfont{DejaVu Serif}to resolve it.
Quoted 7 lines
Current changelog didn't make sense at all for me.
Can you please reword it and make it easier to follow?
With that, feel free to add my
Reviewed-by Akira Yokosawa <[email protected]>
So, if I have managed to understand this conversation, this reword is all we need to get this series merged..?
Thanks,
jon
Quoted 13 lines · Jonathan Corbet
Quoted 11 lines · Akira Yokosawa
Ah, I have finally understood what 5/11 is trying to do.
Its changelog mainly talks about an issue you saw after adding options to xindy in that same commit, and you added
\newfontfamily\headingfont{DejaVu Serif}to resolve it.
Current changelog didn't make sense at all for me.
Quoted 8 lines
Quoted 5 lines
Can you please reword it and make it easier to follow?
With that, feel free to add my
Reviewed-by Akira Yokosawa <[email protected]>So, if I have managed to understand this conversation, this reword is all we need to get this series merged..?
Well, after some thoughts on the conversation took place on xindy, I think I have to withdraw my Reviewed-by: tag.
I was the one who was totally confused.
Please disregard it.
Mauro, I can't review on 5/11 unless you provide me exact steps to reproduce the font discovery issue you said you have observed under debian at 4/11 of this series. That is, without assuming your other series of build-wrapper.
The build-wrapper should be upper compatible with the current way of running sub-make, without any change in conf.py.
I don't think this is too much to ask. Moving both the goal post and the build script at the same time is the wrong thing to do in my opinion.
Regards,
Akira
Em Tue, 19 Aug 2025 08:26:31 +0900
Akira Yokosawa <[email protected]> escreveu:
Quoted 26 lines · Jonathan Corbet
Quoted 13 lines
Quoted 11 lines · Akira Yokosawa
Ah, I have finally understood what 5/11 is trying to do.
Its changelog mainly talks about an issue you saw after adding options to xindy in that same commit, and you added
\newfontfamily\headingfont{DejaVu Serif}to resolve it.
Current changelog didn't make sense at all for me.
Quoted 8 lines
Quoted 5 lines
Can you please reword it and make it easier to follow?
With that, feel free to add my
Reviewed-by Akira Yokosawa <[email protected]>So, if I have managed to understand this conversation, this reword is all we need to get this series merged..?
Well, after some thoughts on the conversation took place on xindy, I think I have to withdraw my Reviewed-by: tag.
Quoted 7 lines
I was the one who was totally confused.
Please disregard it.
Mauro, I can't review on 5/11 unless you provide me exact steps to reproduce the font discovery issue you said you have observed under debian at 4/11 of this series. That is, without assuming your other series of build-wrapper.
See below.
Quoted 2 lines
The build-wrapper should be upper compatible with the current way of running sub-make, without any change in
conf.py.
The build-wrapper series doesn't make any changes on conf.py:
$ git diff pdfdocs..sphinx-build-wrapper --stat
.pylintrc | 2 +- Documentation/Makefile | 142 +++------- Documentation/sphinx/parallel-wrapper.sh | 33 --- scripts/jobserver-exec | 88 ++----- scripts/lib/jobserver.py | 149 +++++++++++ scripts/sphinx-build-wrapper | 767 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ scripts/sphinx-pre-install | 14 +- 7 files changed, 994 insertions(+), 201 deletions(-)
It also doesn't change the build logic: it just moves it to the script. The only difference was with regards to serializing the build, as I forgot to take it into account when I wrote it. However, I sent already a patch addressing it.
In summary, all the sphinx-build-wrapper series do is:
- move code from Documentation/Makefile into a python script;
- get rid of a shell script;
- split scripts/jobserver-exec into an exec and a library;
- change the output of doc build to produce a summary at the end, returning an error code only if one or more PDF files were not built;
- allow calling the script directly without requiring a makefile;
- add a couple of optional command line parameters to help debugging.
On the other hand, the pdf series diffstat is:
$ git diff netlink_v10..pdfdocs --stat Documentation/Makefile | 4 ++-- Documentation/conf.py | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------- scripts/sphinx-pre-install | 41 ++++++++++++++++++++++++++++++++--------- 3 files changed, 96 insertions(+), 55 deletions(-)
The Makefile change is actually a fix:
diff --git a/Documentation/Makefile b/Documentation/Makefile index 820f07e0afe6..2ed334971acd 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -63,2 +63,2 @@ endif #HAVE_LATEXMK
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
+PAPEROPT_a4 = -D latex_elements.papersize=a4paper
+PAPEROPT_letter = -D latex_elements.papersize=letterpaper
So, the entire series do:
1. Fix paper size define, as latex_paper_size doesn´t exist since Sphinx 1.x. It got replaced by latex_elements.papersize;
2. Broken package dependencies related to PDF builds on several distros inside sphinx-pre-install;
3. It properly construct the name of pdfdocs to be built when SPHINXDIRS is used;
4. It prevents the usage of T1 fontenc fonts, which could be caused by either one of those two reasons:
a) \sphinxhyphen{}
b) index buildI got those when checking what packages were required on some distros (Debian, Ubuntu, Mageia, openMandriva, Gentoo).
Depending on the distro, the Sphinx version and the installed packages, the *.tex file ends adding:
\usepackage[T1]{fontenc}This is incompatible with xelatex with utf-8 fonts as T1 is not UTF-8 ready.
with (a), \sphinxhyphen{} logic - together with babel, ends requiring pzdr.tfm.
To do the conf.py, I did some changes for it to better align with:
https://www.sphinx-doc.org/en/master/latex.html#module-latex
As the original settings were written for Sphinx 1.4.1 and had very little fixes since then.
The changes are:
1. Added:
"fontenc": ""
to prevent a possible default of having:
r'\usepackage[T1]{fontenc}'2. Place font settings at the right place for more modern Spinx versions. If you look there, font specs shall be under "fontpkg", not under "preamble":
+ 'fontpkg': dedent(r'''
+ \usepackage{fontspec}
+ \setmainfont{DejaVu Serif}
+ \setsansfont{DejaVu Sans}
+ \setmonofont{DejaVu Sans Mono}- # Additional stuff for the LaTeX preamble.
- "preamble": """
- % Use some font with UTF-8 support with XeLaTeX
- \\usepackage{fontspec}
- \\setsansfont{DejaVu Sans}
- \\setromanfont{DejaVu Serif}
- \\setmonofont{DejaVu Sans Mono}- """,
}
3. Added a fix where some LaTeX modules were trying to use T1 fontenc:
\newfontfamily\headingfont{DejaVu Serif}4. I used dedent() to remove weird whitespaces at the beginning inside .tex files - no functional changes - this is just cosmetic at the output;
5. I moved preamble from a separate part of conf.py:
+ "preamble": dedent(r"""
+ % Load kerneldoc specific LaTeX settings
+ \input{kerneldoc-preamble.sty}
+ """),
-# Load kerneldoc specific LaTeX settings
-latex_elements["preamble"] += """
- % Load kerneldoc specific LaTeX settings
- \\input{kerneldoc-preamble.sty}
-"""
6. I solved an issue were xindy was trying to include T1 fontenc. while here, I also added a parameter recommended at sphinx Latex configuration doc:
+ "passoptionstopackages": dedent(r"""
+ \PassOptionsToPackage{svgnames}{xcolor}
+ % Avoid encoding troubles when creating indexes
+ \PassOptionsToPackage{xindy}{language=english,codepage=utf8,noautomatic}+ """),
(the xcolor came from the documentation)
The above doesn't load xindy; it just ensures that codepage=utf8 is used if it is used;
7. some distros didn't build pdf due to the lack of an index file. So, I added this:
+ 'printindex': r'\footnotesize\raggedright\printindex',
which is also suggested at
https://www.sphinx-doc.org/en/master/latex.html#module-latex
So, basically, the changes at conf.py better align it with Sphinx documentation, and were experimentally tested: I didn't find any regressions on it, and it fixed PDF builds for several distros.
Did you find any regressions?
Quoted 1 line
I don't think this is too much to ask.
Actually, it is... finding a way for you to reproduce it would require me to start from scratch and redo everything again, hoping that I'll do exactly the same way. It took me 2 entire weeks to do it the first time.
I very much prefer dropping patch 05/11 and keep PDF broken than spending 2 weeks redoing it.
Quoted 1 line
Moving both the goal post
What do you mean by "goal post"?
The pdfdocs series is there just to make sure that pdf builds will work on most distros, as currently they don't build on several of them.
Quoted 2 lines
and the build script at the same time is the wrong thing to do in my opinion.
Well, we can postpone the PDF series - or at least the patches you find problematic.
The build script cleanup is important, though as it affects a series I have afterwards addressing some build issues affecting only the media subsystem, which is the only user of kernel-include tag.
Thanks,
Mauro
Hi Mauro,
Please calm down.
Apologizes if my wording has annoyed you.
Quoted 2 lines · Mauro Carvalho Chehab
Em Tue, 19 Aug 2025 08:26:31 +0900
Akira Yokosawa <[email protected]> escreveu:
[...]
Quoted 10 lines
Quoted 3 lines
Mauro, I can't review on 5/11 unless you provide me exact steps to reproduce the font discovery issue you said you have observed under debian at 4/11 of this series. That is, without assuming your other series of build-wrapper.
See below.
Quoted 2 lines
The build-wrapper should be upper compatible with the current way of running sub-make, without any change in
conf.py.The build-wrapper series doesn't make any changes on
conf.py:
Of course not, I'm well aware of the fact from the cover letter.
[...]
Quoted 8 lines
4. It prevents the usage of T1 fontenc fonts, which could be caused by either one of those two reasons:
a) \sphinxhyphen{} b) index buildI got those when checking what packages were required on some distros (Debian, Ubuntu, Mageia, openMandriva, Gentoo).
I couldn't reproduce it at PATCH 4/11 under a Ubnutu-based container I've been using, ignoring your sphinx-build-warpper series.
I'd really like to see the issue with my eyes on top current way of doc building!
That's all I am asking.
I have no particular interest in the way you are testing all those variety of distros, and have no idea about it.
Please provide steps to reproduce.
I'd like to see a Dockerfile based "FROM ubuntu:latest" as the testing environment.
I suspect you have encountered some issue due to some missing package/ setting in the container container side.
Or does the issue only appear when you run the script directly?
Of course, there always is a chance I might be missing something important.
Regards,
Akira
Em Tue, 19 Aug 2025 11:16:29 +0900
Akira Yokosawa <[email protected]> escreveu:
Quoted 29 lines
Hi Mauro,
Please calm down.
Apologizes if my wording has annoyed you.Quoted 2 lines · Mauro Carvalho Chehab
Em Tue, 19 Aug 2025 08:26:31 +0900
Akira Yokosawa <[email protected]> escreveu:[...]
Quoted 10 lines
Quoted 3 lines
Mauro, I can't review on 5/11 unless you provide me exact steps to reproduce the font discovery issue you said you have observed under debian at 4/11 of this series. That is, without assuming your other series of build-wrapper.
See below.
Quoted 2 lines
The build-wrapper should be upper compatible with the current way of running sub-make, without any change in
conf.py.The build-wrapper series doesn't make any changes on
conf.py:Of course not, I'm well aware of the fact from the cover letter.
[...]
Quoted 3 lines
4. It prevents the usage of T1 fontenc fonts, which could be caused by either one of those two reasons:
Quoted 8 lines
Quoted 5 lines
a) \sphinxhyphen{} b) index buildI got those when checking what packages were required on some distros (Debian, Ubuntu, Mageia, openMandriva, Gentoo).
I couldn't reproduce it at PATCH 4/11 under a Ubnutu-based container I've been using, ignoring your sphinx-build-warpper series.
I'm assuming you're referring to patch 5/11, e.g.:
ceaa95123364 ("docs: conf.py: fix some troubles for LaTeX output")
Quoted 11 lines
I'd really like to see the issue with my eyes on top current way of doc building!
That's all I am asking.
I have no particular interest in the way you are testing all those variety of distros, and have no idea about it.
Please provide steps to reproduce.
I'd like to see a Dockerfile based "FROM ubuntu:latest" as the testing environment.
Heh, that's why you can't reproduce... you're using a Docker container and a different Ubuntu version than I.
What I did here was to use a lxc container with 25.04, and used a script to pick the exact recommendations given by sphinx-pre-install.
The container was created with:
<script>
sudo lxc-create -n ubuntu-test -t download -- --dist ubuntu --release plucky --arch amd64 sudo mkdir -p /var/lib/lxc/ubuntu-test
sudo sh -c cat > /var/lib/lxc/ubuntu-test/config <<EOF
lxc.arch = x86_64
lxc.pty.max = 1024
lxc.tty.max = 4
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:16:3e:6f:66:8c
lxc.cap.drop = mac_admin mac_override sys_time sys_module sys_rawio lxc.cgroup.devices.allow = a
lxc.cgroup2.devices.allow = a
lxc.mount.auto = proc sys cgroup
lxc.rootfs.path = /var/lib/lxc/ubuntu-test/rootfs
EOF
</script>
once you get what's needed for make htmldocs work, installing only the dependencies recommended by sphinx-pre-install, you can start trying to reproduce the build issues for pdf.
For the steps below, I installed Sphinx latest using venv:
$ make SPHINXDIRS=peci pdfdocs ... This is XeTeX, Version 3.141592653-2.6-0.999996 (TeX Live 2025/dev/Debian) (preloaded format=xelatex) entering extended mode Latexmk: Getting log file 'peci.log' Latexmk: Examining 'peci.fls' Latexmk: Examining 'peci.log' Latexmk: Missing input file 'tgtermes.sty' (or dependence on it) from following: ! LaTeX Error: File `tgtermes.sty' not found. Latexmk: Log file says no output from latex Latexmk: For rule 'xelatex', no output was made Latexmk: Errors, so I did not complete making targets Collected error summary (may duplicate other messages): xelatex: Command for 'xelatex' gave return code 1 Refer to 'peci.log' and/or above output for details
Latexmk: Sometimes, the -f option can be used to get latexmk
to try to force complete processing.
But normally, you will need to correct the file(s) that caused the error, and then rerun latexmk.
In some cases, it is best to clean out generated files before rerunning latexmk after you've corrected the files.
make[3]: *** [Makefile:29: peci.pdf] Error 12
make[2]: *** [Documentation/Makefile:148: pdfdocs] Error 1 make[1]: *** [/root/Makefile:1806: pdfdocs] Error 2
make: *** [Makefile:248: __sub-make] Error 2
Fix the broken font dependencies require installing other packages:
# apt install tex-gyre texlive-fonts-recommended texlive-lang-chinese texlive-lang-chinese is already the newest version (2024.20250309-1). Installing: tex-gyre texlive-fonts-recommended
Installing dependencies:
fonts-texgyre fonts-texgyre-math
As described at sphinx-pre-install patch:
commit a888d353ac1eb0d558fda5482c6955d6c4a29f23
Author: Mauro Carvalho Chehab <[email protected]>
Date: Mon Jul 28 15:54:09 2025 +0200
scripts: sphinx-pre-install: fix PDF build issues on Ubuntu
PDF output with current Debian-based distros require other packages for it to work. The main one is pzdr.tfm. Without that, \sphinxhyphen{} won't work, affecting multiple docs.
For CJK, tex-gyre is required.
Add the missing packages to the list.
Now, here's the thing: to get the above dependencies, I played with installing/uninstalling multiple packages, until I discovered where each font dependency was, and where CJK fonts were placed.
Still, the above is not enough:
$ make cleandocs; LANG=C LC_ALL=C make SPHINXDIRS=peci pdfdocs
...
entering extended mode
Latexmk: Getting log file 'peci.log'
Latexmk: Examining 'peci.fls'
Latexmk: Examining 'peci.log'
Latexmk: Index file 'peci.idx' was written
Latexmk: References changed.
Latexmk: Missing input file 'peci.toc' (or dependence on it) from following:
No file peci.toc.
Latexmk: Missing input file 'peci.ind' (or dependence on it) from following:
No file peci.ind.
Latexmk: References changed.
Latexmk: References changed.
Latexmk: Log file says output to 'peci.xdv'
Have index file 'peci.idx', peci.ind peci
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
xelatex: Command for 'xelatex' gave return code 1
Refer to 'peci.log' and/or above output for details Latexmk: Sometimes, the -f option can be used to get latexmk
to try to force complete processing.
But normally, you will need to correct the file(s) that caused the error, and then rerun latexmk.
In some cases, it is best to clean out generated files before rerunning latexmk after you've corrected the files.
make[3]: *** [Makefile:29: peci.pdf] Error 12
make[2]: *** [Documentation/Makefile:148: pdfdocs] Error 1 make[1]: *** [/root/Makefile:1806: pdfdocs] Error 2
make: *** [Makefile:248: __sub-make] Error 2
$ ls Documentation/output/peci/latex/|grep pdf <none>
PS.: such error is intermitent: re-creating containers sometimes fix the issues; sometimes not. It sounds to be that this is due to some race condition somewhere.
Also, if you look at the *.tex output, you'll see it is messing with fonts:
# grep usepackage Documentation/output/peci/latex/peci.tex
\usepackage{cmap}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb,amstext}
\usepackage{babel}
\usepackage{tgtermes}
\usepackage{tgheros}
\usepackage[Bjarne]{fncychap}
\usepackage[,maxlistdepth=10]{sphinx}
\usepackage{geometry}
\usepackage{setspace}
\usepackage{hyperref}
\usepackage{hypcap}% it must be loaded after hyperref.
\usepackage{sphinxmessages}
\usepackage{fontspec}e.g.:
- The tex file is trying to use T1 fontenc and fontspec;
- The fontspec usage came from conf.py preamble, which is not indented well:
# grep -A7 fontspec Documentation/output/peci/latex/peci.tex
\usepackage{fontspec}
\setsansfont{DejaVu Sans}
\setromanfont{DejaVu Serif}
\setmonofont{DejaVu Sans Mono} % Load kerneldoc specific LaTeX settings
\input{kerneldoc-preamble.sty}On several of my attempts, I got those errors:
Package: fontenc 2021/04/29 v2.0v Standard LaTeX package
LaTeX Font Info: Trying to load font information for T1+lmr on input line 11
6.
LaTeX Font Info: No file T1lmr.fd. on input line 116.
LaTeX Font Warning: Font shape `T1/lmr/m/n' undefined
(Font) using `T1/lmr/m/n' instead on input line 116.
! Corrupted NFSS tables.
wrong@fontshape ...message {Corrupted NFSS tables}
error@fontshape else let f...
l.116 ...\familydefault\seriesdefault\shapedefault
If you search for it, you would get references like:
https://tex.stackexchange.com/questions/740050/corrupted-nfss-tables
explaining that using T1 together with fontenc is a very bad idea, recommending to use instead:
\usepackage{fontspec}
\newfontfamily<sometthing>and not use T1 fontenc.
Unfortunately, I was not able to reproduce this exact error anymore, at least on Ubuntu. Perhaps I got this one on Gentoo or on some other distro, but I can't remember anymore how to reproduce this specific error message.
-
Yet, using my today's container, this specific scenario can be fixed by moving the font config data from preamble to "fontenc":
<patch>
+from textwrap import dedent
+
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
@@ -441,20 +443,18 @@ latex_elements = {
# For CJK One-half spacing, need to be in front of hyperref
"extrapackages": r"\usepackage{setspace}",
# Additional stuff for the LaTeX preamble.
- "preamble": """
+ "fontenc": dedent("""
% Use some font with UTF-8 support with XeLaTeX
\\usepackage{fontspec}
\\setsansfont{DejaVu Sans}
\\setromanfont{DejaVu Serif}
\\setmonofont{DejaVu Sans Mono}
- """,
-}
-
-# Load kerneldoc specific LaTeX settings
-latex_elements["preamble"] += """
+ """),
+ "preamble": dedent("""
% Load kerneldoc specific LaTeX settings
\\input{kerneldoc-preamble.sty}
-"""
+ """)
+}
</patch> which is one of the main changes I made. At the actual change, I opted to use raw strings, to avoid "\\" e.g.:
"fontenc": dedent(r"""
% Use some font with UTF-8 support with XeLaTeX
\usepackage{fontspec}
\setsansfont{DejaVu Sans}
\setromanfont{DejaVu Serif}
\setmonofont{DejaVu Sans Mono}
"""),With that, we have now:
# grep usepackage Documentation/output/peci/latex/*.tex
\usepackage{cmap}
\usepackage{fontspec}
\usepackage{amsmath,amssymb,amstext}
\usepackage{babel}
\usepackage{tgtermes}
\usepackage{tgheros}
\usepackage[Bjarne]{fncychap}
\usepackage[,maxlistdepth=10]{sphinx}
\usepackage{geometry}
\usepackage{setspace}
\usepackage{hyperref}
\usepackage{hypcap}% it must be loaded after hyperref.
\usepackage{sphinxmessages}However, on other tests, including other distros, I found that this is not enough, because:
1) the *.ind creation may use xindy on some distros and xindy could try to use T1 fontenc. So, I had to add this line:
\PassOptionsToPackage{xindy}{language=english,codepage=utf8,noautomatic}to ensure that, if xindy is used, it will get codepage=utf8.
2) there were some other corner cases that required to add
\newfontfamily\headingfont{DejaVu Serif}Again related to T1 fontenc.
Thanks,
Mauro
Quoted 2 lines · Mauro Carvalho Chehab
Em Tue, 19 Aug 2025 11:16:29 +0900
Akira Yokosawa <[email protected]> escreveu:
[...]
Quoted 17 lines
Quoted 8 lines
That's all I am asking.
I have no particular interest in the way you are testing all those variety of distros, and have no idea about it.
Please provide steps to reproduce.
I'd like to see a Dockerfile based "FROM ubuntu:latest" as the testing environment.Heh, that's why you can't reproduce... you're using a Docker container and a different Ubuntu version than I.
What I did here was to use a lxc container with 25.04, and used a script to pick the exact recommendations given by sphinx-pre-install.
The container was created with:
[...]
Quoted 3 lines
once you get what's needed for make htmldocs work, installing only the dependencies recommended by sphinx-pre-install, you can start trying to reproduce the build issues for pdf.
I've just built a container "FROM ubuntu:plucky", which has inkscape instead of imagemagick + rsvg-convert.
I don't see any font issue at 4/11 of this series under the container (I'm using podman).
Furthermore, after I applied both of your series and the change for parallel runs of xelatex/latexmk and reverting the 5/11, I don't see any issue.
Which strongly suggests 5/11 is not fixing any realistic issues.
FWIW, Dockerfile I'm using for building the container is derived from the one I've been taking care of since 2021 as a LaTeX advisor to perfbook.
If you are interested, here is its repo of Paul:
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/perfbook.git
You might be interested in seeing docker/Dockerfile.
I think there is something you are missing in the boot strapping phases of building your container.
Just my wild guess.
Thanks,
Akira
Em Wed, 20 Aug 2025 08:54:52 +0900
Akira Yokosawa <[email protected]> escreveu:
Quoted 24 lines · Mauro Carvalho Chehab
Quoted 2 lines
Em Tue, 19 Aug 2025 11:16:29 +0900
Akira Yokosawa <[email protected]> escreveu:[...]
Quoted 9 lines
Quoted 8 lines
That's all I am asking.
I have no particular interest in the way you are testing all those variety of distros, and have no idea about it.
Please provide steps to reproduce.
I'd like to see a Dockerfile based "FROM ubuntu:latest" as the testing environment.Quoted 8 lines
Heh, that's why you can't reproduce... you're using a Docker container and a different Ubuntu version than I.
What I did here was to use a lxc container with 25.04, and used a script to pick the exact recommendations given by sphinx-pre-install.
The container was created with:
Quoted 8 lines
[...]
Quoted 3 lines
once you get what's needed for make htmldocs work, installing only the dependencies recommended by sphinx-pre-install, you can start trying to reproduce the build issues for pdf.
I've just built a container "FROM ubuntu:plucky", which has inkscape instead of imagemagick + rsvg-convert.
I don't think that inkscape x imagemagick/rsvg-convert itself has anyhting to do with the problems I detected, as they're related to font issues (still, I got an issue on one of my builds on kfigure write file: encoding is missing at open, which may cause errors).
Yet, installing imagemagick + rsvg-convert might affect some other packages that LaTeX would use.
Quoted 14 lines
I don't see any font issue at 4/11 of this series under the container (I'm using podman).
Furthermore, after I applied both of your series and the change for parallel runs of xelatex/latexmk and reverting the 5/11, I don't see any issue.
Which strongly suggests 5/11 is not fixing any realistic issues.
FWIW, Dockerfile I'm using for building the container is derived from the one I've been taking care of since 2021 as a LaTeX advisor to perfbook.
If you are interested, here is its repo of Paul:
Quoted 8 lines
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/perfbook.gitYou might be interested in seeing docker/Dockerfile.
I think there is something you are missing in the boot strapping phases of building your container.
Just my wild guess.
Just because you can't reproduce the issue, it doesn't mean it doesn't exist. LaTeX builds are complex having it has lots of dependencies, and may be affected by installed fonts, LC_* and LANG env vars, etc.
It should be noticed that a Docker container doesn't have the same packages installed when compared with a LXC one.
-
IMO, instead of trying to reproduce the bug that was already fixed by my patches, it would be a way more important if you can double check if the changes introduce regressions.
I'm planning to submit a new version of this series, with this patch split into 3 patches, with a better description, plus a couple of other fixes. If you notice a regression caused by any of the patches, please let us know, preferably pointing the the exact patch that broke it.
Thanks,
Mauro
Hi,
Quoted 4 lines · Mauro Carvalho Chehab
Em Wed, 20 Aug 2025 08:54:52 +0900
Akira Yokosawa <[email protected]> escreveu:Quoted 1 line · Mauro Carvalho Chehab
[...]
Quoted 7 lines
Quoted 2 lines
I've just built a container "FROM ubuntu:plucky", which has inkscape instead of imagemagick + rsvg-convert.
I don't think that inkscape x imagemagick/rsvg-convert itself has anyhting to do with the problems I detected, as they're related to font issues (still, I got an issue on one of my builds on kfigure write file: encoding is missing at open, which may cause errors).
OK, so you have spent a lot of time to paper over the ImageMagick issue used as an SVG --> PDF converter.
I have simply given up using ImageMagick and been using inkscape instead.
I can reliably reproduce the warnings and build errors (see below) without inkscape installed, instead with imagemagick + rsvg-convert installed, under a ubuntu:plucky based container.
When I run: "make cleandocs; make SPHINXDIRS=gpu latexdocs",
[**NOTE**] SPHINXDIRS=peci is not affected by this issue!
kfigure.py emits warnings like this:
-----------------------------------------------------------------------------------
WARNING: Error #1 when calling: /usr/bin/convert /linux/Documentation/gpu/amdgpu/pipe_and_queue_abstraction.svg /linux/Documentation/output/gpu/latex/pipe_and_queue_abstraction.pdf
WARNING: Warning msg from convert(1): convert: unrecognized color `context-stroke' @ warning/color.c/GetColorCompliance/1064.
convert: non-conforming drawing primitive definition `fill' @ error/draw.c/RenderMVGContent/4548.
-----------------------------------------------------------------------------------
Nevertheless, "make SPHINXDIRS=gpu pdfdocs" continues building gpu.pdf, but ends up in this error in the middle of xelatex run.
-----------------------------------------------------------------------------------
------------
Run number 1 of rule 'xelatex'
------------
------------
Running 'xelatex --no-pdf -interaction=batchmode -no-shell-escape -no-pdf -recorder "gpu.tex"'
------------
This is XeTeX, Version 3.141592653-2.6-0.999996 (TeX Live 2025/dev/Debian) (preloaded format=xelatex) entering extended mode
Latexmk: Getting log file 'gpu.log'
Latexmk: Examining 'gpu.fls'
Latexmk: Examining 'gpu.log'
Latexmk: Index file 'gpu.idx' was written
Latexmk: References changed.
Latexmk: Missing input file 'gpu.toc' (or dependence on it) from following:
No file gpu.toc.
Latexmk: Missing input file 'gpu.ind' (or dependence on it) from following:
No file gpu.ind.
Latexmk: References changed.
Latexmk: References changed.
Latexmk: Log file says output to 'gpu.xdv'
Have index file 'gpu.idx', gpu.ind gpu
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
xelatex: Command for 'xelatex' gave return code 1
Refer to 'gpu.log' and/or above output for details
Latexmk: Sometimes, the -f option can be used to get latexmk
to try to force complete processing.
But normally, you will need to correct the file(s) that caused the error, and then rerun latexmk.
In some cases, it is best to clean out generated files before rerunning latexmk after you've corrected the files.
make[3]: *** [Makefile:29: gpu.pdf] Error 12
make[2]: *** [Documentation/Makefile:148: pdfdocs] Error 1 make[1]: *** [/linux/Makefile:1806: pdfdocs] Error 2
make: *** [Makefile:248: __sub-make] Error 2
-----------------------------------------------------------------------------------
I think this is (mostly) the same as the issue you have been trying hard to track down.
Lastly, I'm afraid but I have to tell you that I see the same error on my test branch which has both of your series applied.
From "./scripts/sphinx-build-wrapper pdfdocs --sphinxdirs gpu":
-----------------------------------------------------------------------------------
------------
Run number 1 of rule 'xelatex'
------------
------------
Running 'xelatex --no-pdf -no-pdf -interaction=batchmode -no-shell-escape -recorder "/linux/Documentation/output/gpu/latex/gpu.tex"'
------------
This is XeTeX, Version 3.141592653-2.6-0.999996 (TeX Live 2025/dev/Debian) (preloaded format=xelatex)
entering extended mode
Latexmk: Getting log file 'gpu.log'
Latexmk: Examining 'gpu.fls'
Latexmk: Examining 'gpu.log'
Latexmk: Index file 'gpu.idx' was written
Latexmk: References changed.
Latexmk: Missing input file 'gpu.toc' (or dependence on it) from following:
No file gpu.toc.
Latexmk: Missing input file 'gpu.ind' (or dependence on it) from following:
No file gpu.ind.
Latexmk: References changed.
Latexmk: References changed.
Latexmk: Log file says output to 'gpu.xdv'
Have index file 'gpu.idx', gpu.ind gpu
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
xelatex: Command for 'xelatex' gave return code 1
Refer to 'gpu.log' and/or above output for details
Latexmk: Sometimes, the -f option can be used to get latexmk
to try to force complete processing.
But normally, you will need to correct the file(s) that caused the error, and then rerun latexmk.
In some cases, it is best to clean out generated files before rerunning latexmk after you've corrected the files.
Summary
=======
gpu: FAILED
PDF build failed: not all PDF files were created.
-----------------------------------------------------------------------------------
Please test yourself with SPHINXDIRS=gpu and see what happens under your test environment.
Thanks,
Akira
Quoted 13 lines · Akira Yokosawa
Hi,
Quoted 4 lines · Mauro Carvalho Chehab
Em Wed, 20 Aug 2025 08:54:52 +0900
Akira Yokosawa <[email protected]> escreveu:Quoted 1 line · Mauro Carvalho Chehab
[...]
Quoted 3 lines
Quoted 2 lines
I've just built a container "FROM ubuntu:plucky", which has inkscape instead of imagemagick + rsvg-convert.
Quoted 7 lines
Quoted 4 lines
I don't think that inkscape x imagemagick/rsvg-convert itself has anyhting to do with the problems I detected, as they're related to font issues (still, I got an issue on one of my builds on kfigure write file: encoding is missing at open, which may cause errors).
OK, so you have spent a lot of time to paper over the ImageMagick issue used as an SVG --> PDF converter.
Why are you insisting with this? Again:
This series doesn't try to address anything that would be caused by either imagemagick/rsvg-convert - or inkscape.
It only address:
- wrong dependencies from the existing ones - whatever they are;
- non-UTF-8 fonts inside the produced *.tex files and a couple of other issues at conf.py - none of them related to images.
Quoted 7 lines
I have simply given up using ImageMagick and been using inkscape instead.
I can reliably reproduce the warnings and build errors (see below) without inkscape installed, instead with imagemagick + rsvg-convert installed, under a ubuntu:plucky based container.
Quoted 5 lines
When I run: "make cleandocs; make SPHINXDIRS=gpu latexdocs",
[**NOTE**] SPHINXDIRS=peci is not affected by this issue!
kfigure.pyemits warnings like this:
I did got kfigure.py issues that can affect both inkscape and imagemagic, but those are **NOT** in this series:
- the first issue is that python tries to write PDF output as strings, but Python 3.x can crash because strings have encodings. The default ascii encoding crashes with chars > 127 (and probably when there is a "\0" at the code);
- the second issue is that two files use ForeignObject, which is not properly supported by inkscape or ImageMagick. Still both seems to be working fine (I only tried to do conversions by hand today).
I believe that we need to add kfigure.py on our TODO list to make it more python 3.x friendly.
Again: this is out of the scope of this series.
================
Quoted 48 lines
-----------------------------------------------------------------------------------
WARNING: Error #1 when calling:/usr/bin/convert/linux/Documentation/gpu/amdgpu/pipe_and_queue_abstraction.svg /linux/Documentation/output/gpu/latex/pipe_and_queue_abstraction.pdf
WARNING: Warning msg from convert(1): convert: unrecognized color `context-stroke' @ warning/color.c/GetColorCompliance/1064.
convert: non-conforming drawing primitive definition `fill' @ error/draw.c/RenderMVGContent/4548.
-----------------------------------------------------------------------------------Nevertheless, "make SPHINXDIRS=gpu pdfdocs" continues building gpu.pdf, but ends up in this error in the middle of xelatex run.
-----------------------------------------------------------------------------------
------------
Run number 1 of rule 'xelatex'
------------
------------
Running 'xelatex --no-pdf -interaction=batchmode -no-shell-escape -no-pdf -recorder "gpu.tex"'
------------
This is XeTeX, Version 3.141592653-2.6-0.999996 (TeX Live 2025/dev/Debian) (preloaded format=xelatex) entering extended mode
Latexmk: Getting log file 'gpu.log'
Latexmk: Examining 'gpu.fls'
Latexmk: Examining 'gpu.log'
Latexmk: Index file 'gpu.idx' was written
Latexmk: References changed.
Latexmk: Missing input file 'gpu.toc' (or dependence on it) from following:
No file gpu.toc.
Latexmk: Missing input file 'gpu.ind' (or dependence on it) from following:
No file gpu.ind.
Latexmk: References changed.
Latexmk: References changed.
Latexmk: Log file says output to 'gpu.xdv'
Have index file 'gpu.idx', gpu.ind gpu
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
xelatex: Command for 'xelatex' gave return code 1
Refer to 'gpu.log' and/or above output for detailsLatexmk: Sometimes, the -f option can be used to get latexmk
to try to force complete processing.
But normally, you will need to correct the file(s) that caused the error, and then rerun latexmk.
In some cases, it is best to clean out generated files before rerunning latexmk after you've corrected the files.
make[3]: *** [Makefile:29: gpu.pdf] Error 12
make[2]: *** [Documentation/Makefile:148: pdfdocs] Error 1 make[1]: *** [/linux/Makefile:1806: pdfdocs] Error 2
make: *** [Makefile:248: __sub-make] Error 2
-----------------------------------------------------------------------------------
Quoted 2 lines
I think this is (mostly) the same as the issue you have been trying hard to track down.
No. Up to today(*), I was simply ignoring any warnings/errors related to kfigure.py.
(*) earlier today I submitted exactly one patch related to it:
https://lore.kernel.org/linux-doc/df1602df0da3a6254d58a782654e7f2e60512dc8.1755680997.git.mchehab+huawei@kernel.org/
Even such patch is unrelated to Inkscape x ImageMagick. It is meant to fix troubles during SVG/dot read and during PDF output writes.
-
As I've been replying over and over and over:
The issue was with [T1]{fontenc} added at the *.tex files and/or the usage of other non-UTF-8 fonts.
That happens on very simple files. There are also font issues on some distros affecting CJK related fonts due to missing packages and such.
What I pointed is:
I Don't know how you can setup an environment identical to mine to reproduce the font issues I got.
-
If you want a more comprehensive answer:
LaTeX is highly dependent lots of packages, including fonts. The reason why you can't reproduce the font issues with Docker (I wasn't able to reproduce with Docker here as well) is probably due to either packaging differences between the two containers, due to different environment technologies or even due to the way Docker and LXC handles OS virtualization.
Docker, for instance, doesn't have systemd running on it, which could affect install logic at packages that could be trying do something via systemd. I guess it also doesn't implement cgroups. It also requires to download locales package to setup locales (such package is already on lxc, although not configured).
As the issue is related to fonts, different defaults with regards to the fonts already installed at the containers could be the root cause.
Also, installing any package (you name it) that might have a direct or indirect dependency to a font can affect the bug reproduction.
Installing inkscape, for instance, would directly require:
<snip>
# apt-cache depends inkscape
inkscape
Depends: librsvg2-common
Depends: <python3:any>
python3
Depends: lib2geom1.2.0t64
Depends: libatkmm-1.6-1v5
Depends: libboost-filesystem1.83.0
Depends: libc6
Depends: libcairo-gobject2
Depends: libcairo2
Depends: libcairomm-1.0-1v5
Depends: libcdr-0.1-1
Depends: libfontconfig1
Depends: libfreetype6
Depends: libgc1
Depends: libgcc-s1
Depends: libgdk-pixbuf-2.0-0
Depends: libglib2.0-0t64
Depends: libglibmm-2.4-1t64
Depends: libgomp1
Depends: libgsl28
Depends: libgspell-1-3
Depends: libgtk-3-0t64
Depends: libgtkmm-3.0-1t64
Depends: libharfbuzz0b
Depends: libjpeg8
Depends: liblcms2-2
Depends: libpango-1.0-0
Depends: libpangocairo-1.0-0
Depends: libpangoft2-1.0-0
Depends: libpangomm-1.4-1v5
Depends: libpng16-16t64
Depends: libpoppler-glib8t64
Depends: libpoppler147
Depends: libpotrace0
Depends: libreadline8t64
Depends: librevenge-0.0-0
Depends: libsigc++-2.0-0v5
Depends: libsoup-2.4-1
Depends: libstdc++6
Depends: libvisio-0.1-1
Depends: libwpg-0.3-3
Depends: libx11-6
Depends: libxml2
Depends: libxslt1.1
Depends: zlib1g
Recommends: aspell
Recommends: fig2dev
Recommends: imagemagick
graphicsmagick-imagemagick-compat
imagemagick-7.q16
Recommends: libimage-magick-perl
Recommends: libwmf-bin
Recommends: python3-cssselect
Recommends: python3-lxml
Recommends: python3-numpy
Recommends: python3-scour
Suggests: dia
Suggests: inkscape-tutorials
Suggests: libsvg-perl
Suggests: pstoedit
Suggests: python3-packaging
Suggests: <python3-uniconvertor>
Suggests: ruby
</snip>No fonts listed there at the direct dependencies, so in principle, installing or not Inkscape or imagemagik won't make any difference at the installed fonts, or on installed texlive packages.
Thanks,
Mauro
Hi,
Commenting on your observation quoted below.
On Wed, 20 Aug 2025 18:48:10 +0200, Mauro Carvalho Chehab wrote:
[...]
Quoted 9 lines
If you want a more comprehensive answer:
LaTeX is highly dependent lots of packages, including fonts. The reason why you can't reproduce the font issues with Docker (I wasn't able to reproduce with Docker here as well) is probably due to either packaging differences between the two containers, due to different environment technologies or even due to the way Docker and LXC handles OS virtualization.
I'm not saying there is no difference between Docker and LXC.
Can you fill in ???? cells in the table below ?
Docker column is my observation of "FROM ubuntu:plucky" podman runs.
"make SPHINXDIRS=gpu pdfdocs" under Ubuntu Plucky
--------------- --------- ----------
SVG --> PDF Docker LXC
--------------- --------- ----------
imagemagick FAIL FAIL
inkscape SUCCESS ????
imagemagick [*] FAIL ????
--------------- --------- ----------[*] after installing both inkscape and imagemagick, remove inkscape
with all its dependencies kept.
Do you see any difference between Docker and LXC columns in the table? I'm all ears.
Regards,
Akira
Hi,
Let me do a quick follow up.
I messed up the table.
Quoted 17 lines · Akira Yokosawa
Hi,
Commenting on your observation quoted below.
On Wed, 20 Aug 2025 18:48:10 +0200, Mauro Carvalho Chehab wrote:
[...]Quoted 9 lines
If you want a more comprehensive answer:
LaTeX is highly dependent lots of packages, including fonts. The reason why you can't reproduce the font issues with Docker (I wasn't able to reproduce with Docker here as well) is probably due to either packaging differences between the two containers, due to different environment technologies or even due to the way Docker and LXC handles OS virtualization.
Quoted 3 lines
I'm not saying there is no difference between Docker and LXC.
Can you fill in ???? cells in the table below ?
I mean with this series applied
Quoted 4 lines
Docker column is my observation of "FROM ubuntu:plucky" podman runs.
"make SPHINXDIRS=gpu pdfdocs" under Ubuntu Plucky
I meant:
--------------- --------- ----------
SVG --> PDF Docker LXC
--------------- --------- ----------
imagemagick FAIL ????
inkscape SUCCESS ????
imagemagick [*] FAIL ????
--------------- --------- ----------Quoted 17 lines
--------------- --------- ---------- SVG --> PDF Docker LXC --------------- --------- ---------- imagemagick FAIL FAIL inkscape SUCCESS ???? imagemagick [*] FAIL ???? --------------- --------- ----------[*] after installing both inkscape and imagemagick, remove inkscape
with all its dependencies kept.Do you see any difference between Docker and LXC columns in the table? I'm all ears.
Regards,
Akira
Em Thu, 21 Aug 2025 09:09:41 +0900
Akira Yokosawa <[email protected]> escreveu:
Quoted 35 lines
Hi,
Let me do a quick follow up.
I messed up the table.Quoted 17 lines · Akira Yokosawa
Hi,
Commenting on your observation quoted below.
On Wed, 20 Aug 2025 18:48:10 +0200, Mauro Carvalho Chehab wrote:
[...]Quoted 9 lines
If you want a more comprehensive answer:
LaTeX is highly dependent lots of packages, including fonts. The reason why you can't reproduce the font issues with Docker (I wasn't able to reproduce with Docker here as well) is probably due to either packaging differences between the two containers, due to different environment technologies or even due to the way Docker and LXC handles OS virtualization.
Quoted 3 lines
I'm not saying there is no difference between Docker and LXC.
Can you fill in ???? cells in the table below ?
I mean with this series applied
Quoted 4 lines
Docker column is my observation of "FROM ubuntu:plucky" podman runs.
"make SPHINXDIRS=gpu pdfdocs" under Ubuntu Plucky
I meant:
Quoted 7 lines
--------------- --------- ----------
SVG --> PDF Docker LXC
--------------- --------- ----------
imagemagick FAIL ????
inkscape SUCCESS ????
imagemagick [*] FAIL ????
--------------- --------- ----------This is after my series, with doesn't deal with imagemagick/inkscape, it only fixes broken texlive dependencies and fix font handling:
# (dpkg -l |grep -i magick; dpkg -l |grep inkscape)|grep ii
ii imagemagick 8:7.1.1.43+dfsg1-1 amd64 image manipulation programs -- binaries ii imagemagick-7-common 8:7.1.1.43+dfsg1-1 all image manipulation programs -- infrastructure ii imagemagick-7.q16 8:7.1.1.43+dfsg1-1 amd64 image manipulation programs -- quantum depth Q16 ii libmagickcore-7.q16-10:amd64 8:7.1.1.43+dfsg1-1 amd64 low-level image manipulation library -- quantum depth Q16 ii libmagickwand-7.q16-10:amd64 8:7.1.1.43+dfsg1-1 amd64 image manipulation library -- quantum depth Q16
# make SPHINXDIRS=gpu pdfdocs
Summary
=======
gpu: gpu/pdf/gpu.pdf
All PDF files were built.
# rm -rf Documentation/output/gpu/* # (dpkg -l |grep -i magick; dpkg -l |grep inkscape)|grep ii ii imagemagick 8:7.1.1.43+dfsg1-1 amd64 image manipulation programs -- binaries ii imagemagick-7-common 8:7.1.1.43+dfsg1-1 all image manipulation programs -- infrastructure ii imagemagick-7.q16 8:7.1.1.43+dfsg1-1 amd64 image manipulation programs -- quantum depth Q16 ii libimage-magick-perl 8:7.1.1.43+dfsg1-1 all Perl interface to the ImageMagick graphics routines ii libimage-magick-q16-perl 8:7.1.1.43+dfsg1-1 amd64 Perl interface to the ImageMagick graphics routines -- Q16 version ii libmagickcore-7.q16-10:amd64 8:7.1.1.43+dfsg1-1 amd64 low-level image manipulation library -- quantum depth Q16 ii libmagickwand-7.q16-10:amd64 8:7.1.1.43+dfsg1-1 amd64 image manipulation library -- quantum depth Q16 ii inkscape
# rm -rf Documentation/output/gpu/* # (dpkg -l |grep -i magick; dpkg -l |grep inkscape)|grep ii ii inkscape 1.2.2-8build1 amd64 vector-based drawing program
# make SPHINXDIRS=gpu pdfdocs
Summary
=======
gpu: gpu/pdf/gpu.pdf
Quoted 8 lines
Quoted 8 lines
--------------- --------- ---------- SVG --> PDF Docker LXC --------------- --------- ---------- imagemagick FAIL FAIL inkscape SUCCESS ???? imagemagick [*] FAIL ???? --------------- --------- ----------
Quoted 5 lines
Quoted 5 lines
[*] after installing both inkscape and imagemagick, remove inkscape
with all its dependencies kept.Do you see any difference between Docker and LXC columns in the table? I'm all ears.
Yes. After having texlive dependencies fixed, and addressing the broken conf.py file that is not aligned with modern Sphinx practices, it passed on all three scenarios.
Please notice that addressing image was not the intent of this series.
The goal was *just* to fix texlive dependencies and fix text font mapping that were causing troubles on Ubuntu and on other distros.
Thanks,
Mauro
Em Thu, 21 Aug 2025 09:52:21 +0200
Mauro Carvalho Chehab <[email protected]> escreveu:
Quoted 103 lines
Em Thu, 21 Aug 2025 09:09:41 +0900
Akira Yokosawa <[email protected]> escreveu:Quoted 35 lines
Hi,
Let me do a quick follow up.
I messed up the table.Quoted 17 lines · Akira Yokosawa
Hi,
Commenting on your observation quoted below.
On Wed, 20 Aug 2025 18:48:10 +0200, Mauro Carvalho Chehab wrote:
[...]Quoted 9 lines
If you want a more comprehensive answer:
LaTeX is highly dependent lots of packages, including fonts. The reason why you can't reproduce the font issues with Docker (I wasn't able to reproduce with Docker here as well) is probably due to either packaging differences between the two containers, due to different environment technologies or even due to the way Docker and LXC handles OS virtualization.
Quoted 3 lines
I'm not saying there is no difference between Docker and LXC.
Can you fill in ???? cells in the table below ?
I mean with this series applied
Quoted 4 lines
Docker column is my observation of "FROM ubuntu:plucky" podman runs.
"make SPHINXDIRS=gpu pdfdocs" under Ubuntu Plucky
I meant:
Quoted 7 lines
--------------- --------- ---------- SVG --> PDF Docker LXC --------------- --------- ---------- imagemagick FAIL ???? inkscape SUCCESS ???? imagemagick [*] FAIL ???? --------------- --------- ----------This is after my series, with doesn't deal with imagemagick/inkscape, it only fixes broken texlive dependencies and fix font handling:
# (dpkg -l |grep -i magick; dpkg -l |grep inkscape)|grep ii
ii imagemagick 8:7.1.1.43+dfsg1-1 amd64 image manipulation programs -- binaries ii imagemagick-7-common 8:7.1.1.43+dfsg1-1 all image manipulation programs -- infrastructure ii imagemagick-7.q16 8:7.1.1.43+dfsg1-1 amd64 image manipulation programs -- quantum depth Q16 ii libmagickcore-7.q16-10:amd64 8:7.1.1.43+dfsg1-1 amd64 low-level image manipulation library -- quantum depth Q16 ii libmagickwand-7.q16-10:amd64 8:7.1.1.43+dfsg1-1 amd64 image manipulation library -- quantum depth Q16# make SPHINXDIRS=gpu pdfdocsSummary
=======
gpu: gpu/pdf/gpu.pdfAll PDF files were built.
# rm -rf Documentation/output/gpu/* # (dpkg -l |grep -i magick; dpkg -l |grep inkscape)|grep ii ii imagemagick 8:7.1.1.43+dfsg1-1 amd64 image manipulation programs -- binaries ii imagemagick-7-common 8:7.1.1.43+dfsg1-1 all image manipulation programs -- infrastructure ii imagemagick-7.q16 8:7.1.1.43+dfsg1-1 amd64 image manipulation programs -- quantum depth Q16 ii libimage-magick-perl 8:7.1.1.43+dfsg1-1 all Perl interface to the ImageMagick graphics routines ii libimage-magick-q16-perl 8:7.1.1.43+dfsg1-1 amd64 Perl interface to the ImageMagick graphics routines -- Q16 version ii libmagickcore-7.q16-10:amd64 8:7.1.1.43+dfsg1-1 amd64 low-level image manipulation library -- quantum depth Q16 ii libmagickwand-7.q16-10:amd64 8:7.1.1.43+dfsg1-1 amd64 image manipulation library -- quantum depth Q16 ii inkscape# rm -rf Documentation/output/gpu/* # (dpkg -l |grep -i magick; dpkg -l |grep inkscape)|grep ii ii inkscape 1.2.2-8build1 amd64 vector-based drawing program# make SPHINXDIRS=gpu pdfdocsSummary
=======
gpu: gpu/pdf/gpu.pdfQuoted 8 lines
Quoted 8 lines
--------------- --------- ---------- SVG --> PDF Docker LXC --------------- --------- ---------- imagemagick FAIL FAIL inkscape SUCCESS ???? imagemagick [*] FAIL ???? --------------- --------- ----------Quoted 5 lines
Quoted 5 lines
[*] after installing both inkscape and imagemagick, remove inkscape
with all its dependencies kept.Do you see any difference between Docker and LXC columns in the table? I'm all ears.
Yes. After having texlive dependencies fixed, and addressing the broken
conf.pyfile that is not aligned with modern Sphinx practices, it passed on all three scenarios.
Quoted 8 lines
Please notice that addressing image was not the intent of this series.
The goal was *just* to fix texlive dependencies and fix text font mapping that were causing troubles on Ubuntu and on other distros.
Thanks,
Mauro
Thanks,
Mauro
Hmm.. I ended doing the above tests with this patch on my pile. It could be affecting the results, as it prevents kfigure.py to crash when writing PDF output.
commit df1602df0da3a6254d58a782654e7f2e60512dc8
Author: Mauro Carvalho Chehab <[email protected]> Date: Wed Aug 20 09:17:50 2025 +0200
docs: kfigure.py: don't crash during read/write
By default, Python does a very bad job when reading/writing from files, as it tries to enforce that the character is < 128. Nothing prevents a SVG file to contain, for instance, a comment with an utf-8 accented copyright notice - or even an utf-8 invalid char.
While testing PDF and html builds, I recently faced one build that got an error at kfigure.py saying that a char was > 128, crashing PDF output.
To avoid such issues, let's use PEP 383 subrogate escape encoding to prevent read/write errors on such cases.
Documentation/sphinx/kfigure.py +4 -4
@@ -88,7 +88,7 @@ def mkdir(folder, mode=0o775): os.makedirs(folder, mode) def file2literal(fname): - with open(fname, "r") as src: + with open(fname, "r", encoding='utf8', errors='surrogateescape') as src: data = src.read() node = nodes.literal_block(data, data) return node
@@ -355,7 +355,7 @@ def dot2format(app, dot_fname, out_fname): cmd = [dot_cmd, '-T%s' % out_format, dot_fname] exit_code = 42 - with open(out_fname, "w") as out: + with open(out_fname, "w", encoding='utf8', errors='surrogateescape') as out: exit_code = subprocess.call(cmd, stdout = out) if exit_code != 0: logger.warning(
@@ -533,7 +533,7 @@ def visit_kernel_render(self, node): literal_block = node[0] code = literal_block.astext() - hashobj = code.encode('utf-8') # str(node.attributes) + hashobj = code.encode('utf-8', errors='surrogateescape')) # str(node.attributes) fname = path.join('%s-%s' % (srclang, sha1(hashobj).hexdigest())) tmp_fname = path.join(
@@ -541,7 +541,7 @@ def visit_kernel_render(self, node): if not path.isfile(tmp_fname): mkdir(path.dirname(tmp_fname)) - with open(tmp_fname, "w") as out: + with open(tmp_fname, "w", encoding='utf8', errors='surrogateescape') as out: out.write(code) img_node = nodes.image(node.rawsource, **node.attributes)
Inkscape - Was: Re: [PATCH 00/11] Fix PDF doc builds on major distros
In reply to Akira YokosawaEm Thu, 21 Aug 2025 09:09:41 +0900
Akira Yokosawa <[email protected]> escreveu:
Quoted 35 lines
Hi,
Let me do a quick follow up.
I messed up the table.Quoted 17 lines · Akira Yokosawa
Hi,
Commenting on your observation quoted below.
On Wed, 20 Aug 2025 18:48:10 +0200, Mauro Carvalho Chehab wrote:
[...]Quoted 9 lines
If you want a more comprehensive answer:
LaTeX is highly dependent lots of packages, including fonts. The reason why you can't reproduce the font issues with Docker (I wasn't able to reproduce with Docker here as well) is probably due to either packaging differences between the two containers, due to different environment technologies or even due to the way Docker and LXC handles OS virtualization.
Quoted 3 lines
I'm not saying there is no difference between Docker and LXC.
Can you fill in ???? cells in the table below ?
I mean with this series applied
Quoted 4 lines
Docker column is my observation of "FROM ubuntu:plucky" podman runs.
"make SPHINXDIRS=gpu pdfdocs" under Ubuntu Plucky
I meant:
Quoted 21 lines
--------------- --------- ---------- SVG --> PDF Docker LXC --------------- --------- ---------- imagemagick FAIL ???? inkscape SUCCESS ???? imagemagick [*] FAIL ???? --------------- --------- ----------Quoted 13 lines
--------------- --------- ---------- SVG --> PDF Docker LXC --------------- --------- ---------- imagemagick FAIL FAIL inkscape SUCCESS ???? imagemagick [*] FAIL ???? --------------- --------- ----------[*] after installing both inkscape and imagemagick, remove inkscape
with all its dependencies kept.Do you see any difference between Docker and LXC columns in the table? I'm all ears.
I'm repeating my tests again. This time, it has just this series applied:
https://lore.kernel.org/linux-doc/[email protected]/T/#t
(without that, not even simple PDF docs build here via Sphinx on Ubuntu)
LXC container created from scratch, with a couple unrelated packages to make life easier (things like ssh server) and with locale-gen executed there.
After its creation, I copied the
relevant files from my machine to the container with:
for ip in 10.0.3.129; do for d in Documentation scripts Makefile arch include tools; do rsync -av --times --delete "$d" "root@$ip:/root" --exclude output/; done; done
Then, at the container (accessed via ssh):
# Sphinx pre-install recommendations
sudo apt-get install dvipng fonts-noto-cjk graphviz imagemagick latexmk librsvg2-bin tex-gyre texlive-fonts-recommended texlive-lang-chinese texlive-xetex sudo apt-get install python3-sphinx
# Needed to avoid sphinx-build crashes
for i in $(set|grep LC|cut -d'=' -f1); do unset $i;done export LC_ALL=C
export LANG=C
with that:
imagemagick: FAIL
inkscape: PASSimagemagick(*): FAIL
I wonder if this is related to the kfigure.py bug of writing a binary output with a file opened in "w" mode. In Python, "w" crashes for characters > 127. It should instead be "wb".
Thanks,
Mauro
Jonathan Corbet
maintainerAkira Yokosawa <[email protected]> writes:
Just as an aside:
Quoted 2 lines
It's getting really hard for me to keep up with your pace of changes in doc build scripts, really.
I can relate ... it's been busy lately, and perhaps I haven't helped either. But I do, very much, appreciate your attention to this work and your review effort.
Thanks,
jon
(trimmed Ccs)
Hi Mauro,
Thank you for testing on OL. I'm wondering about some of the results, however...
Quoted 8 lines · Mauro Carvalho Chehab
Oracle Linux Server release 9.6:
--------------------------------
PASSED: OS detection: Oracle Linux Server release 9.6
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:06, return code: 0
How is the html PASSED with the build time only 6 seconds, that looks rather odd to me.
Quoted 5 lines
PARTIAL: Build PDF documentation: Test failed (Build time: 0:07, return code: 2)
PDF docs:
---------
PASSED: latex: FAILED (no .tex)
This doesn't seem like it PASSED either if it FAILED.
I tried on OL 9.5 and got:
"""
$ scripts/sphinx-pre-install ... You should run:
sudo yum install -y ImageMagick graphviz
...
sudo yum install -y python3-sphinx
"""
But I actually need to do this:
sudo yum --enablerepo=ol9_developer_EPEL install -y ImageMagick graphviz
and then
sudo yum --enablrepo=ol9_codeready_builder install -y python3-sphinx
respectively.
After this, I see a bunch of red warnings but 'make htmldocs' succeeds and after 33 minutes.
For pdfdocs and latexdocs, respectively, I get:
$ make pdfdocs Documentation/Makefile:156: The 'xelatex' command was not found. Make sure you have it installed and in PATH to produce PDF output. SKIP Sphinx pdfdocs target.
$ time make latexdocs make[3]: Nothing to be done for 'latex'. Using alabaster theme Using Python kernel-doc Documentation/i2c/instantiating-devices.rst:36: WARNING: Could not lex literal_block as "dts". Highlighting skipped.
real 21m12.103s user 20m58.124s sys 0m18.567s
Vegard
Em Sun, 17 Aug 2025 17:32:24 +0200
Vegard Nossum <[email protected]> escreveu:
Quoted 20 lines
(trimmed Ccs)
Hi Mauro,
Thank you for testing on OL. I'm wondering about some of the results, however...
Quoted 8 lines · Mauro Carvalho Chehab
Oracle Linux Server release 9.6:
--------------------------------
PASSED: OS detection: Oracle Linux Server release 9.6
SKIPPED (Sphinx Sphinx 3.4.3): System packages
SKIPPED (Sphinx already installed either as venv or as native package): Sphinx on venv SKIPPED (Sphinx already installed either as venv or as native package): Sphinx package
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 0:06, return code: 0How is the html PASSED with the build time only 6 seconds, that looks rather odd to me.
Quoted 7 lines
Quoted 5 lines
PARTIAL: Build PDF documentation: Test failed (Build time: 0:07, return code: 2)
PDF docs:
---------
PASSED: latex: FAILED (no .tex)This doesn't seem like it PASSED either if it FAILED.
The issue here is actually due to the way my test tool works. It basically runs distros via lxc and use lxc-attach to run a test script (I also use podman for a few containers, when there's no container via lxc).
Well, attaching to a container doesn't set language. If sphinx-build is called without language, it crashes badly: nothing works on it. Even --version crashes:
$ sphinx-build --version Traceback (most recent call last): File "/usr/bin/sphinx-build", line 8, in <module> sys.exit(main()) ~~~~^^ File "/usr/lib/python3/dist-packages/sphinx/cmd/build.py", line 546, in main locale.setlocale(locale.LC_ALL, '') ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.13/locale.py", line 615, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting
$ LC_ALL=C sphinx-build --version sphinx-build 8.1.3
The crash happens at the the main() function for the build command at:/usr/lib/python3/dist-packages/sphinx/cmd/build.py. It tries to set locale to '', using what it is recommended at
https://docs.python.org/3/library/locale.html, but Python crashes.
An sphinx-build workaround logic would be for it to do:
def main(argv: Sequence[str] = (), /) -> int: try: locale.setlocale(locale.LC_ALL, '') except: locale.setlocale(locale.LC_ALL, 'C')
Such issue is present on all versions of Sphinx, as far as I'm aware.
Now, as sphinx-build is doing what Python library recommends, IMO, the root cause should be fixed: Python internal library should handle this better, as if one doesn't care about the actual locale, passing just '', it should fallback to "C" instead of crashing.
In any case, as kernel build has to support legacy Python and Sphinx versions, I sent a patch addressing such issue via the new sphinx-build-wrapper I'm proposing:
https://lore.kernel.org/linux-doc/461e00fe7ce75eaac90d98572bb93910b39361e2.1755258303.git.mchehab+huawei@kernel.org/
It sounds I ended placing the run results before such fix. I'll submit a v2 with the right logs.
Quoted 14 lines
I tried on OL 9.5 and got:
"""
$ scripts/sphinx-pre-install ... You should run:sudo yum install -y ImageMagick graphviz
...
sudo yum install -y python3-sphinx
"""But I actually need to do this:
Quoted 7 lines
sudo yum --enablerepo=ol9_developer_EPEL install -y ImageMagick graphviz
and then
sudo yum --enablrepo=ol9_codeready_builder install -y python3-sphinx
respectively.
The logic at sphinx-pre-install assumes that the needed repositories are enabled. The rationale is that each distro has its own particular way to split packages between repositories, and this varies a from time to time. For instance, up to CentOS 8 and RHEL8, the EPEL repository contained all non-officially supported packages, which includes Sphinx. On version 9 of most of such distros, this was named CRB, although this is not consistent over the variations. So, for instance,
On OpenEuler, it doesn't need to set any extra repository. On Almalinux, CentOS and Rockylinux it does set crb:
- "dnf config-manager --set-enabled crb"
On OL, it sets those:
- "sudo dnf install -y oraclelinux-release-el9 epel-release"
- "dnf config-manager --set-enabled base latest ol9_appstream ol9_developer_EPEL ol9_codeready_builder"
On RHEL using the "redhat/ubi8" docker container, the extra repos are behind a paywall.
Quoted 2 lines
After this, I see a bunch of red warnings but 'make htmldocs' succeeds and after 33 minutes.
Those warnings exist on upstream.
Quoted 7 lines
For pdfdocs and latexdocs, respectively, I get:
$ make pdfdocs Documentation/Makefile:156: The 'xelatex' command was not found. Make sure you have it installed and in PATH to produce PDF output. SKIP Sphinx pdfdocs target.
If you install the needed repositories and all recommentations from sphinx-pre-install, you should be able to build pdfs.
I Just ran it here from a container I re-created from scratch, and got:
Oracle Linux Server release 9.6:
--------------------------------
PASSED: OS detection: Oracle Linux Server release 9.6
PASSED: System packages: Packages installed
PASSED: Sphinx on venv: Sphinx Sphinx 7.4.7
PASSED: Sphinx package: Sphinx Sphinx 3.4.3
PASSED: Clean documentation: Build time: 0:00, return code: 0
PASSED: Build HTML documentation: Build time: 3:57, return code: 0
PASSED: Build PDF documentation: Build time: 10:09, return code: 0
PDF docs:
---------
PASSED: dev-tools: pdf/dev-tools.pdf
PASSED: tools: pdf/tools.pdf
PASSED: filesystems: pdf/filesystems.pdf
PASSED: w1: pdf/w1.pdf
PASSED: maintainer: pdf/maintainer.pdf
PASSED: process: pdf/process.pdf
PASSED: isdn: pdf/isdn.pdf
PASSED: fault-injection: pdf/fault-injection.pdf
PASSED: iio: pdf/iio.pdf
PASSED: scheduler: pdf/scheduler.pdf
PASSED: staging: pdf/staging.pdf
PASSED: fpga: pdf/fpga.pdf
PASSED: power: pdf/power.pdf
PASSED: leds: pdf/leds.pdf
PASSED: edac: pdf/edac.pdf
PASSED: PCI: pdf/PCI.pdf
PASSED: firmware-guide: pdf/firmware-guide.pdf
PASSED: cpu-freq: pdf/cpu-freq.pdf
PASSED: mhi: pdf/mhi.pdf
PASSED: wmi: pdf/wmi.pdf
PASSED: timers: pdf/timers.pdf
PASSED: accel: pdf/accel.pdf
PASSED: hid: pdf/hid.pdf
PASSED: userspace-api: pdf/userspace-api.pdf
PASSED: spi: pdf/spi.pdf
PASSED: networking: pdf/networking.pdf
PASSED: virt: pdf/virt.pdf
PASSED: nvme: pdf/nvme.pdf
PASSED: translations: pdf/translations.pdf
PASSED: input: pdf/input.pdf
PASSED: tee: pdf/tee.pdf
PASSED: doc-guide: pdf/doc-guide.pdf
PASSED: cdrom: pdf/cdrom.pdf
PASSED: gpu: pdf/gpu.pdf
PASSED: i2c: pdf/i2c.pdf
PASSED: RCU: pdf/RCU.pdf
PASSED: watchdog: pdf/watchdog.pdf
PASSED: usb: pdf/usb.pdf
PASSED: rust: pdf/rust.pdf
PASSED: crypto: pdf/crypto.pdf
PASSED: kbuild: pdf/kbuild.pdf
PASSED: livepatch: pdf/livepatch.pdf
PASSED: mm: pdf/mm.pdf
PASSED: locking: pdf/locking.pdf
PASSED: infiniband: pdf/infiniband.pdf
PASSED: driver-api: pdf/driver-api.pdf
PASSED: bpf: pdf/bpf.pdf
PASSED: devicetree: pdf/devicetree.pdf
PASSED: block: pdf/block.pdf
PASSED: target: pdf/target.pdf
PASSED: arch: pdf/arch.pdf
PASSED: pcmcia: pdf/pcmcia.pdf
PASSED: scsi: pdf/scsi.pdf
PASSED: netlabel: pdf/netlabel.pdf
PASSED: sound: pdf/sound.pdf
PASSED: security: pdf/security.pdf
PASSED: accounting: pdf/accounting.pdf
PASSED: admin-guide: pdf/admin-guide.pdf
PASSED: core-api: pdf/core-api.pdf
PASSED: fb: pdf/fb.pdf
PASSED: peci: pdf/peci.pdf
PASSED: trace: pdf/trace.pdf
PASSED: misc-devices: pdf/misc-devices.pdf
PASSED: kernel-hacking: pdf/kernel-hacking.pdf
PASSED: hwmon: pdf/hwmon.pdf
Summary
=======
PASSED - Oracle Linux Server release 9.6 (7 tests)
PS.: I'm using both this series and the sphinx-build-wrapper one, as it has a summary at the end which checks what PDF file was actually built.
Btw, I'm enclosing at the end the logs I got from my test toolset.
I dropped several messages from the log, as the full log is 137k lines:
$ wc -l container_tests.log oracle_report.log 72107 container_tests.log 65596 oracle_report.log 137703 total
but I preserved the most relevant logs.
-
Those are the logs containing the preparation steps done to create the Container
2025-08-18 09:33:23,302 [oracle DEBUG] Executing: sudo lxc-create -n oracle-test -t download -- --dist oracle --release 9 --arch amd64 2025-08-18 09:33:24,021 [oracle DEBUG] Executing: sudo mkdir -p /var/lib/lxc/oracle-test 2025-08-18 09:33:24,061 [oracle DEBUG] Executing: sudo sh -c cat > /var/lib/lxc/oracle-test/config <<EOF
lxc.arch = x86_64
lxc.pty.max = 1024
lxc.tty.max = 4
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:16:3e:5b:89:e7
lxc.cap.drop = mac_admin mac_override sys_time sys_module sys_rawio lxc.cgroup.devices.allow = a
lxc.cgroup2.devices.allow = a
lxc.mount.auto = proc sys cgroup
lxc.rootfs.path = /var/lib/lxc/oracle-test/rootfs
2025-08-18 09:33:25,398 [oracle DEBUG] Executing: sudo lxc-attach -n oracle-test -- env LANG=C.UTF-8 sh -c sudo dnf install -y oraclelinux-release-el9 epel-release 2025-08-18 09:33:37,730 [oracle DEBUG] Executing: sudo lxc-attach -n oracle-test -- env LANG=C.UTF-8 sh -c dnf config-manager --set-enabled base latest ol9_appstream ol9_developer_EPEL ol9_codeready_builder 2025-08-18 09:33:37,885 [oracle DEBUG] Executing: sudo lxc-attach -n oracle-test -- env LANG=C.UTF-8 sh -c dnf install -y which openssh-server git python3 tar make diffutils
# Here, I'm copying the Kernel from the host via tarball, as this is
# faster than using git clone and transfers less files, as I'm # placing there just the files needed for docs build 2025-08-18 09:34:11,001 [oracle DEBUG] Executing: sudo lxc-attach -n oracle-test -- tar xpf - --no-same-owner -C /
# Here, I execute my test script
2025-08-18 09:34:16,322 [oracle DEBUG] Executing: sudo lxc-attach -n oracle-test -- env LANG=C.UTF-8 sh -c cd /root && LC_ALL=C ./docs-build.py
---
This is the output of my docs-build.py test script, which reads the install instructions from sphinx-pre-install, executes them and build html and pdf:
TEST REPORT: ORACLE
Generated: 2025-08-18 09:50:28
Stage: Tests
TEST RESULTS:
Status: SUCCESS
Return Code: 0
STANDARD OUTPUT:
VALIDATE: cd /root && LC_ALL=C ./docs-build.py
---------------------------------------------
$ ./scripts/sphinx-pre-install Python version: 3.9.21 Detected OS: Oracle Linux Server release 9.6.
Warning: build optional deps missing: ImageMagick graphviz
ERROR: Python mandatory deps missing: python3-pyyaml
ERROR: PDF mandatory deps missing: dejavu-sans-fonts dejavu-sans-mono-fonts dejavu-serif-fonts google-noto-sans-cjk-ttc-fonts latexmk librsvg2-tools texlive-amscls texlive-amsfonts texlive-amsmath texlive-anyfontsize texlive-capt-of texlive-cmap texlive-collection-fontsrecommended texlive-collection-latex texlive-ctex texlive-ec texlive-eqparbox texlive-euenc texlive-fancybox texlive-fancyvrb texlive-float texlive-fncychap texlive-framed texlive-luatex85 texlive-mdwtools texlive-multirow texlive-needspace texlive-oberdiek texlive-parskip texlive-polyglossia texlive-psnfss texlive-tabulary texlive-threeparttable texlive-titlesec texlive-tools texlive-ucs texlive-upquote texlive-wrapfig texlive-xecjk texlive-xetex-bin
You should run:
sudo dnf install ImageMagick dejavu-sans-fonts dejavu-sans-mono-fonts dejavu-serif-fonts google-noto-sans-cjk-ttc-fonts graphviz latexmk librsvg2-tools python3-pyyaml texlive-amscls texlive-amsfonts texlive-amsmath texlive-anyfontsize texlive-capt-of texlive-cmap texlive-collection-fontsrecommended texlive-collection-latex texlive-ctex texlive-ec texlive-eqparbox texlive-euenc texlive-fancybox texlive-fancyvrb texlive-float texlive-fncychap texlive-framed texlive-luatex85 texlive-mdwtools texlive-multirow texlive-needspace texlive-oberdiek texlive-parskip texlive-polyglossia texlive-psnfss texlive-tabulary texlive-threeparttable texlive-titlesec texlive-tools texlive-ucs texlive-upquote texlive-wrapfig texlive-xecjk texlive-xetex-bin
Note: RHEL-based distros typically require extra repositories.
For most, enabling epel and crb are enough:
sudo dnf install -y epel-release
sudo dnf config-manager --set-enabled crb
Yet, some may have other required repositories. Those commands could be useful:
sudo dnf repolist all
sudo dnf repoquery --available --info <pkgs>
sudo dnf config-manager --set-enabled '*' # enable all - probably not what you want
Sphinx needs to be installed either:
1) via pip/pypi with:
/usr/bin/python3 -m venv sphinx_latest
. sphinx_latest/bin/activate
pip install -r ./Documentation/sphinx/requirements.txt
If you want to exit the virtualenv, you can use:
deactivate
2) As a package with:
sudo dnf install python3-sphinx
Please note that Sphinx currentlys produce false-positive warnings when the same name is used for more than one type (functions, structs, enums,...). This is known Sphinx bug. For more details, see:
https://github.com/sphinx-doc/sphinx/pull/8313
Installing section: system_install with dnf
===========================================
$ dnf install -y --setopt=install_weak_deps=False ImageMagick dejavu-sans-fonts dejavu-sans-mono-fonts dejavu-serif-fonts google-noto-sans-cjk-ttc-fonts graphviz latexmk librsvg2-tools python3-pyyaml texlive-amscls texlive-amsfonts texlive-amsmath texlive-anyfontsize texlive-capt-of texlive-cmap texlive-collection-fontsrecommended texlive-collection-latex texlive-ctex texlive-ec texlive-eqparbox texlive-euenc texlive-fancybox texlive-fancyvrb texlive-float texlive-fncychap texlive-framed texlive-luatex85 texlive-mdwtools texlive-multirow texlive-needspace texlive-oberdiek texlive-parskip texlive-polyglossia texlive-psnfss texlive-tabulary texlive-threeparttable texlive-titlesec texlive-tools texlive-ucs texlive-upquote texlive-wrapfig texlive-xecjk texlive-xetex-bin Last metadata expiration check: 0:00:22 ago on Mon Aug 18 07:33:55 2025. Dependencies resolved. =================================================================================================== Package Arch Version Repository Size =================================================================================================== Installing: ImageMagick x86_64 6.9.13.25-1.el9 ol9_developer_EPEL 103 k ... zziplib x86_64 0.13.71-11.el9_4 ol9_appstream 95 k
Transaction Summary
===================================================================================================
Install 428 Packages
Total download size: 598 M
Installed size: 1.2 G
Downloading Packages:
(1/428): dejavu-sans-fonts-2.37-18.el9.noarch.r 4.2 MB/s | 1.3 MB 00:00
...
(428/428): urw-base35-p052-fonts-20200910-6.el9 491 kB/s | 987 kB 00:02
--------------------------------------------------------------------------------
Total 9.8 MB/s | 598 MB 01:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Running scriptlet: texlive-base-9:20200406-26.el9_2.noarch 1/1
Preparing : 1/1
Running scriptlet: texlive-base-9:20200406-26.el9_2.noarch 1/428
...
Verifying : zziplib-0.13.71-11.el9_4.x86_64 428/428
Installed:
ImageMagick-6.9.13.25-1.el9.x86_64 ImageMagick-libs-6.9.13.25-1.el9.x86_64 LibRaw-0.21.1-1.el9.x86_64 adobe-mappings-cmap-20171205-12.el9.noarch adobe-mappings-cmap-deprecated-20171205-12.el9.noarch adobe-mappings-pdf-20180407-10.el9.noarch atk-2.36.0-5.el9.x86_64 avahi-libs-0.8-22.el9_6.1.x86_64 cairo-1.17.4-7.el9.x86_64 cairo-gobject-1.17.4-7.el9.x86_64 crypto-policies-scripts-20250128-1.git5269e22.el9.noarch cups-libs-1:2.3.3op2-33.el9.x86_64 dejavu-sans-fonts-2.37-18.el9.noarch dejavu-sans-mono-fonts-2.37-18.el9.noarch dejavu-serif-fonts-2.37-18.el9.noarch desktop-file-utils-0.26-6.el9.x86_64 fontconfig-2.14.0-2.el9_1.x86_64 fonts-filesystem-1:2.0.5-7.el9.1.noarch freetype-2.10.4-10.el9_5.x86_64 fribidi-1.0.10-6.el9.2.x86_64
gd-2.3.2-3.el9.x86_64 gdk-pixbuf2-2.42.6-6.el9_6.x86_64 gdk-pixbuf2-modules-2.42.6-6.el9_6.x86_64 ghostscript-9.54.0-19.el9_6.x86_64 ghostscript-tools-fonts-9.54.0-19.el9_6.x86_64 ghostscript-tools-printing-9.54.0-19.el9_6.x86_64 google-droid-sans-fonts-20200215-11.el9.2.noarch google-noto-cjk-fonts-common-20230817-2.el9.noarch google-noto-sans-cjk-ttc-fonts-20230817-2.el9.noarch graphite2-1.3.14-9.el9.x86_64 graphviz-2.44.0-26.el9.x86_64 gtk-update-icon-cache-3.24.31-5.el9.x86_64 gtk2-2.24.33-8.el9.x86_64 harfbuzz-2.7.4-10.el9.x86_64 hicolor-icon-theme-0.17-13.el9.noarch imath-3.1.2-1.el9.x86_64
info-6.7-15.el9.x86_64 jasper-libs-2.0.28-3.el9.x86_64 jbig2dec-libs-0.19-7.el9.x86_64 jbigkit-libs-2.1-23.el9.x86_64 langpacks-core-font-en-3.0-16.el9.noarch latexmk-4.86a-1.el9.noarch
lcms2-2.12-3.el9.x86_64
libICE-1.0.10-8.el9.x86_64
libSM-1.2.3-10.el9.x86_64
libX11-1.7.0-11.el9.x86_64 libX11-common-1.7.0-11.el9.noarch libXau-1.0.9-8.el9.x86_64 libXaw-1.0.13-19.el9.x86_64 libXcomposite-0.4.5-7.el9.x86_64 libXcursor-1.2.0-7.el9.x86_64 libXdamage-1.1.5-7.el9.x86_64 libXext-1.3.4-8.el9.x86_64 libXfixes-5.0.3-16.el9.x86_64 libXft-2.3.3-8.el9.x86_64
libXi-1.7.10-8.el9.x86_64 libXinerama-1.1.4-10.el9.x86_64 libXmu-1.1.3-8.el9.x86_64 libXpm-3.5.13-10.el9.x86_64 libXrandr-1.5.2-8.el9.x86_64 libXrender-0.9.10-16.el9.x86_64 libXt-1.2.0-6.el9.x86_64 libdatrie-0.2.13-4.el9.x86_64 libfontenc-1.1.3-17.el9.x86_64 libgs-9.54.0-19.el9_6.x86_64 libicu-67.1-10.el9_6.x86_64 libijs-0.35-15.el9.x86_64 libjpeg-turbo-2.0.90-7.el9.x86_64 liblqr-1-0.4.2-19.el9.x86_64 libpaper-1.1.28-4.el9.x86_64 libpng-2:1.6.37-12.el9.x86_64 libraqm-0.8.0-1.el9.x86_64 librsvg2-2.50.7-3.el9.x86_64 librsvg2-tools-2.50.7-3.el9.x86_64 libthai-0.1.28-8.el9.x86_64 libtiff-4.4.0-13.el9.x86_64 libwebp-1.2.0-8.el9_3.x86_64 libwmf-lite-0.2.12-10.el9.x86_64 libxcb-1.13.1-9.el9.x86_64 mailcap-2.1.49-5.el9.noarch mkfontscale-1.2.1-3.el9.x86_64 nspr-4.35.0-17.el9_2.x86_64 nss-3.101.0-10.el9_2.x86_64 nss-softokn-3.101.0-10.el9_2.x86_64 nss-softokn-freebl-3.101.0-10.el9_2.x86_64 nss-sysinit-3.101.0-10.el9_2.x86_64 nss-util-3.101.0-10.el9_2.x86_64 openexr-libs-3.1.1-3.el9.x86_64 openjpeg2-2.4.0-8.el9.x86_64 pango-1.48.7-3.el9.x86_64 perl-Compress-Raw-Bzip2-2.101-5.el9.x86_64 perl-Compress-Raw-Zlib-2.101-5.el9.x86_64 perl-Data-Dump-1.23-18.el9.noarch perl-Digest-HMAC-1.03-29.el9.noarch perl-Digest-SHA-1:6.02-461.el9.x86_64 perl-Encode-Locale-1.05-21.el9.noarch perl-File-Copy-2.34-481.1.el9_6.noarch perl-File-Listing-6.14-4.el9.noarch perl-Filter-2:1.60-4.el9.x86_64 perl-HTML-Parser-3.76-3.el9.x86_64 perl-HTML-Tagset-3.20-47.el9.noarch perl-HTTP-Cookies-6.10-4.el9.noarch perl-HTTP-Date-6.05-7.el9.noarch perl-HTTP-Message-6.29-3.el9.noarch perl-HTTP-Negotiate-6.01-30.el9.noarch perl-I18N-Langinfo-0.19-481.1.el9_6.x86_64 perl-IO-Compress-2.102-4.el9.noarch perl-IO-HTML-1.004-4.el9.noarch perl-LWP-MediaTypes-6.04-9.el9.noarch perl-NTLM-1.09-30.el9.noarch perl-Net-HTTP-6.21-3.el9.noarch perl-Text-Unidecode-1.30-16.el9.noarch perl-Time-HiRes-4:1.9764-462.el9.x86_64 perl-TimeDate-1:2.33-6.el9.noarch perl-Try-Tiny-0.30-13.el9.noarch perl-Unicode-Normalize-1.27-461.el9.x86_64 perl-WWW-RobotRules-6.02-30.el9.noarch perl-XML-Parser-2.46-9.0.1.el9.x86_64 perl-XML-XPath-1.44-11.el9.noarch perl-encoding-4:3.00-462.el9.x86_64 perl-libwww-perl-6.53-4.el9.noarch perl-locale-1.09-481.1.el9_6.noarch perl-meta-notation-5.32.1-481.1.el9_6.noarch perl-open-1.12-481.1.el9_6.noarch perl-sigtrap-1.09-481.1.el9_6.noarch pixman-0.40.0-6.el9_3.x86_64 poppler-21.01.0-21.el9.x86_64 poppler-data-0.4.9-9.el9.noarch python3-pyyaml-5.4.1-6.0.1.el9.x86_64 ruby-3.0.7-165.el9_5.x86_64 ruby-libs-3.0.7-165.el9_5.x86_64 shared-mime-info-2.1-5.el9.x86_64 teckit-2.5.9-8.el9.x86_64 texlive-adobemapping-9:20200406-37.el9.noarch texlive-ae-9:20200406-26.el9_2.noarch texlive-algorithms-9:20200406-26.el9_2.noarch texlive-alphalph-9:20200406-26.el9_2.noarch texlive-amscls-9:20200406-26.el9_2.noarch texlive-amsfonts-9:20200406-26.el9_2.noarch texlive-amsmath-9:20200406-26.el9_2.noarch texlive-anyfontsize-9:20200406-26.el9_2.noarch texlive-arphic-9:20200406-26.el9_2.noarch texlive-ascmac-9:20200406-37.el9.noarch texlive-atbegshi-9:20200406-26.el9_2.noarch texlive-attachfile-9:20200406-26.el9_2.noarch texlive-atveryend-9:20200406-26.el9_2.noarch texlive-auxhook-9:20200406-26.el9_2.noarch texlive-avantgar-9:20200406-26.el9_2.noarch texlive-babel-9:20200406-26.el9_2.noarch texlive-babel-english-9:20200406-26.el9_2.noarch texlive-babelbib-9:20200406-26.el9_2.noarch texlive-base-9:20200406-26.el9_2.noarch texlive-beamer-9:20200406-26.el9_2.noarch texlive-bera-9:20200406-26.el9_2.noarch texlive-beton-9:20200406-26.el9_2.noarch texlive-bibtex-9:20200406-26.el9_2.x86_64 texlive-bidi-9:20200406-26.el9_2.noarch texlive-bigintcalc-9:20200406-26.el9_2.noarch texlive-bitset-9:20200406-26.el9_2.noarch texlive-bookman-9:20200406-26.el9_2.noarch texlive-bookmark-9:20200406-26.el9_2.noarch texlive-booktabs-9:20200406-26.el9_2.noarch texlive-breakurl-9:20200406-26.el9_2.noarch texlive-capt-of-9:20200406-26.el9_2.noarch texlive-caption-9:20200406-26.el9_2.noarch texlive-carlisle-9:20200406-26.el9_2.noarch texlive-catchfile-9:20200406-26.el9_2.noarch texlive-changepage-9:20200406-26.el9_2.noarch texlive-charter-9:20200406-26.el9_2.noarch texlive-chngcntr-9:20200406-26.el9_2.noarch texlive-cjk-9:20200406-26.el9_2.noarch texlive-cjkpunct-9:20200406-37.el9.noarch texlive-cm-9:20200406-26.el9_2.noarch texlive-cm-super-9:20200406-26.el9_2.noarch texlive-cmap-9:20200406-26.el9_2.noarch texlive-cmextra-9:20200406-26.el9_2.noarch texlive-cns-9:20200406-26.el9_2.noarch texlive-collection-basic-9:20200406-26.el9_2.noarch texlive-collection-fontsrecommended-9:20200406-26.el9_2.noarch texlive-collection-latex-9:20200406-26.el9_2.noarch texlive-colorprofiles-9:20200406-26.el9_2.noarch texlive-colortbl-9:20200406-26.el9_2.noarch texlive-convbkmk-9:20200406-37.el9.noarch texlive-courier-9:20200406-26.el9_2.noarch texlive-csquotes-9:20200406-26.el9_2.noarch texlive-ctex-9:20200406-37.el9.noarch texlive-currfile-9:20200406-26.el9_2.noarch texlive-dvipdfmx-9:20200406-26.el9_2.x86_64 texlive-dvips-9:20200406-26.el9_2.x86_64 texlive-ec-9:20200406-26.el9_2.noarch texlive-enctex-9:20200406-26.el9_2.noarch texlive-enumitem-9:20200406-26.el9_2.noarch texlive-environ-9:20200406-26.el9_2.noarch texlive-epstopdf-pkg-9:20200406-26.el9_2.noarch texlive-eqparbox-9:20200406-26.el9_2.noarch texlive-eso-pic-9:20200406-26.el9_2.noarch texlive-etex-9:20200406-26.el9_2.noarch texlive-etex-pkg-9:20200406-26.el9_2.noarch texlive-etexcmds-9:20200406-26.el9_2.noarch texlive-etoolbox-9:20200406-26.el9_2.noarch texlive-euenc-9:20200406-26.el9_2.noarch texlive-euler-9:20200406-26.el9_2.noarch texlive-euro-9:20200406-26.el9_2.noarch texlive-eurosym-9:20200406-26.el9_2.noarch texlive-everyhook-9:20200406-37.el9.noarch texlive-fancybox-9:20200406-26.el9_2.noarch texlive-fancyhdr-9:20200406-26.el9_2.noarch texlive-fancyvrb-9:20200406-26.el9_2.noarch texlive-fandol-9:20200406-37.el9.noarch texlive-filecontents-9:20200406-26.el9_2.noarch texlive-filehook-9:20200406-26.el9_2.noarch texlive-firstaid-9:20200406-37.el9.noarch texlive-fix2col-9:20200406-26.el9_2.noarch texlive-float-9:20200406-26.el9_2.noarch texlive-fncychap-9:20200406-26.el9_2.noarch texlive-fonts-tlwg-9:20200406-26.el9_2.noarch texlive-fontspec-9:20200406-26.el9_2.noarch texlive-footmisc-9:20200406-26.el9_2.noarch texlive-fp-9:20200406-26.el9_2.noarch texlive-fpl-9:20200406-26.el9_2.noarch texlive-framed-9:20200406-26.el9_2.noarch texlive-garuda-c90-9:20200406-26.el9_2.noarch texlive-geometry-9:20200406-26.el9_2.noarch texlive-gettitlestring-9:20200406-26.el9_2.noarch texlive-glyphlist-9:20200406-26.el9_2.noarch texlive-graphics-9:20200406-26.el9_2.noarch texlive-graphics-cfg-9:20200406-26.el9_2.noarch texlive-graphics-def-9:20200406-26.el9_2.noarch texlive-grfext-9:20200406-26.el9_2.noarch texlive-grffile-9:20200406-26.el9_2.noarch texlive-helvetic-9:20200406-26.el9_2.noarch texlive-hobsub-9:20200406-26.el9_2.noarch texlive-hologo-9:20200406-26.el9_2.noarch texlive-hycolor-9:20200406-26.el9_2.noarch texlive-hyperref-9:20200406-26.el9_2.noarch texlive-hyph-utf8-9:20200406-26.el9_2.noarch texlive-hyphen-base-9:20200406-26.el9_2.noarch texlive-hyphenex-9:20200406-26.el9_2.noarch texlive-ifmtarg-9:20200406-26.el9_2.noarch texlive-ifplatform-9:20200406-26.el9_2.noarch texlive-iftex-9:20200406-26.el9_2.noarch texlive-index-9:20200406-26.el9_2.noarch texlive-infwarerr-9:20200406-26.el9_2.noarch texlive-intcalc-9:20200406-26.el9_2.noarch texlive-ipaex-9:20200406-37.el9.noarch texlive-japanese-otf-9:20200406-37.el9.noarch texlive-japanese-otf-uptex-9:20200406-37.el9.noarch texlive-kastrup-9:20200406-26.el9_2.noarch texlive-knuth-lib-9:20200406-26.el9_2.noarch texlive-knuth-local-9:20200406-26.el9_2.noarch texlive-koma-script-9:20200406-26.el9_2.noarch texlive-kpathsea-9:20200406-26.el9_2.x86_64 texlive-kvdefinekeys-9:20200406-26.el9_2.noarch texlive-kvoptions-9:20200406-26.el9_2.noarch texlive-kvsetkeys-9:20200406-26.el9_2.noarch texlive-l3backend-9:20200406-26.el9_2.noarch texlive-l3kernel-9:20200406-26.el9_2.noarch texlive-l3packages-9:20200406-26.el9_2.noarch texlive-latex-9:20200406-26.el9_2.noarch texlive-latex-base-dev-9:20200406-37.el9.noarch texlive-latex-firstaid-dev-9:20200406-37.el9.noarch texlive-latex-fonts-9:20200406-26.el9_2.noarch texlive-latexconfig-9:20200406-26.el9_2.noarch texlive-letltxmacro-9:20200406-26.el9_2.noarch texlive-lib-9:20200406-26.el9_2.x86_64 texlive-listings-9:20200406-26.el9_2.noarch texlive-lm-9:20200406-26.el9_2.noarch texlive-lm-math-9:20200406-26.el9_2.noarch texlive-ltxcmds-9:20200406-26.el9_2.noarch texlive-ltxmisc-9:20200406-26.el9_2.noarch texlive-lua-alt-getopt-9:20200406-26.el9_2.noarch texlive-luahbtex-9:20200406-26.el9_2.x86_64 texlive-lualatex-math-9:20200406-26.el9_2.noarch texlive-lualibs-9:20200406-26.el9_2.noarch texlive-luaotfload-9:20200406-26.el9_2.noarch texlive-luatex-9:20200406-26.el9_2.x86_64 texlive-luatex85-9:20200406-26.el9_2.noarch texlive-luatexbase-9:20200406-26.el9_2.noarch texlive-luatexja-9:20200406-37.el9.noarch texlive-makecmds-9:20200406-26.el9_2.noarch texlive-makeindex-9:20200406-26.el9_2.x86_64 texlive-manfnt-font-9:20200406-26.el9_2.noarch texlive-marginnote-9:20200406-26.el9_2.noarch texlive-marvosym-9:20200406-26.el9_2.noarch texlive-mathpazo-9:20200406-26.el9_2.noarch texlive-mdwtools-9:20200406-26.el9_2.noarch texlive-memoir-9:20200406-26.el9_2.noarch texlive-metafont-9:20200406-26.el9_2.x86_64 texlive-mflogo-9:20200406-26.el9_2.noarch texlive-mflogo-font-9:20200406-26.el9_2.noarch texlive-mfnfss-9:20200406-26.el9_2.noarch texlive-mfware-9:20200406-26.el9_2.x86_64 texlive-minitoc-9:20200406-26.el9_2.noarch texlive-modes-9:20200406-26.el9_2.noarch texlive-mparhack-9:20200406-26.el9_2.noarch texlive-mptopdf-9:20200406-26.el9_2.noarch texlive-ms-9:20200406-26.el9_2.noarch texlive-multido-9:20200406-26.el9_2.noarch texlive-multirow-9:20200406-26.el9_2.noarch texlive-natbib-9:20200406-26.el9_2.noarch texlive-ncntrsbk-9:20200406-26.el9_2.noarch texlive-needspace-9:20200406-26.el9_2.noarch texlive-norasi-c90-9:20200406-26.el9_2.noarch texlive-notoccite-9:20200406-26.el9_2.noarch texlive-oberdiek-9:20200406-26.el9_2.noarch texlive-palatino-9:20200406-26.el9_2.noarch texlive-paralist-9:20200406-26.el9_2.noarch texlive-parallel-9:20200406-26.el9_2.noarch texlive-parskip-9:20200406-26.el9_2.noarch texlive-pdfcolmk-9:20200406-26.el9_2.noarch texlive-pdfescape-9:20200406-26.el9_2.noarch texlive-pdftex-9:20200406-26.el9_2.x86_64 texlive-pdftexcmds-9:20200406-26.el9_2.noarch texlive-pgf-9:20200406-26.el9_2.noarch texlive-placeins-9:20200406-26.el9_2.noarch texlive-plain-9:20200406-26.el9_2.noarch texlive-platex-9:20200406-37.el9.noarch texlive-platex-tools-9:20200406-37.el9.noarch texlive-polyglossia-9:20200406-26.el9_2.noarch texlive-pslatex-9:20200406-26.el9_2.noarch texlive-psnfss-9:20200406-26.el9_2.noarch texlive-pspicture-9:20200406-26.el9_2.noarch texlive-pst-3d-9:20200406-26.el9_2.noarch texlive-pst-arrow-9:20200406-26.el9_2.noarch texlive-pst-coil-9:20200406-26.el9_2.noarch texlive-pst-eps-9:20200406-26.el9_2.noarch texlive-pst-fill-9:20200406-26.el9_2.noarch texlive-pst-grad-9:20200406-26.el9_2.noarch texlive-pst-math-9:20200406-26.el9_2.noarch texlive-pst-node-9:20200406-26.el9_2.noarch texlive-pst-plot-9:20200406-26.el9_2.noarch texlive-pst-text-9:20200406-26.el9_2.noarch texlive-pst-tools-9:20200406-26.el9_2.noarch texlive-pst-tree-9:20200406-26.el9_2.noarch texlive-pstricks-9:20200406-26.el9_2.noarch texlive-pstricks-add-9:20200406-26.el9_2.noarch texlive-ptex-9:20200406-37.el9.x86_64 texlive-ptex-base-9:20200406-37.el9.noarch texlive-ptex-fonts-9:20200406-37.el9.noarch texlive-pxfonts-9:20200406-26.el9_2.noarch texlive-qstest-9:20200406-26.el9_2.noarch texlive-refcount-9:20200406-26.el9_2.noarch texlive-rerunfilecheck-9:20200406-26.el9_2.noarch texlive-rsfs-9:20200406-26.el9_2.noarch texlive-sansmathaccent-9:20200406-26.el9_2.noarch texlive-sauerj-9:20200406-26.el9_2.noarch texlive-setspace-9:20200406-26.el9_2.noarch texlive-showexpl-9:20200406-26.el9_2.noarch texlive-soul-9:20200406-26.el9_2.noarch texlive-stringenc-9:20200406-26.el9_2.noarch texlive-sttools-9:20200406-37.el9.noarch texlive-subfig-9:20200406-26.el9_2.noarch texlive-svn-prov-9:20200406-26.el9_2.noarch texlive-symbol-9:20200406-26.el9_2.noarch texlive-tabulary-9:20200406-26.el9_2.noarch texlive-tex-9:20200406-26.el9_2.x86_64 texlive-tex-gyre-9:20200406-26.el9_2.noarch texlive-tex-gyre-math-9:20200406-26.el9_2.noarch texlive-tex-ini-files-9:20200406-26.el9_2.noarch texlive-texlive-common-doc-9:20200406-26.el9_2.noarch texlive-texlive-docindex-9:20200406-26.el9_2.noarch texlive-texlive-en-9:20200406-26.el9_2.noarch texlive-texlive-msg-translations-9:20200406-26.el9_2.noarch texlive-texlive-scripts-9:20200406-26.el9_2.noarch texlive-texlive.infra-9:20200406-26.el9_2.noarch texlive-threeparttable-9:20200406-26.el9_2.noarch texlive-thumbpdf-9:20200406-26.el9_2.noarch texlive-times-9:20200406-26.el9_2.noarch texlive-tipa-9:20200406-26.el9_2.noarch texlive-titlesec-9:20200406-26.el9_2.noarch texlive-tools-9:20200406-26.el9_2.noarch texlive-translator-9:20200406-26.el9_2.noarch texlive-trimspaces-9:20200406-26.el9_2.noarch texlive-ttfutils-9:20200406-37.el9.x86_64 texlive-txfonts-9:20200406-26.el9_2.noarch texlive-ucs-9:20200406-26.el9_2.noarch texlive-uhc-9:20200406-26.el9_2.noarch texlive-ulem-9:20200406-26.el9_2.noarch texlive-underscore-9:20200406-26.el9_2.noarch texlive-unicode-data-9:20200406-26.el9_2.noarch texlive-unicode-math-9:20200406-26.el9_2.noarch texlive-uniquecounter-9:20200406-26.el9_2.noarch texlive-updmap-map-9:20200406-26.el9_2.noarch texlive-uplatex-9:20200406-37.el9.noarch texlive-upquote-9:20200406-26.el9_2.noarch texlive-uptex-9:20200406-37.el9.x86_64 texlive-uptex-base-9:20200406-37.el9.noarch texlive-uptex-fonts-9:20200406-37.el9.noarch texlive-url-9:20200406-26.el9_2.noarch texlive-utopia-9:20200406-26.el9_2.noarch texlive-varwidth-9:20200406-26.el9_2.noarch texlive-wadalab-9:20200406-26.el9_2.noarch texlive-wasy-9:20200406-26.el9_2.noarch texlive-wasy-type1-9:20200406-26.el9_2.noarch texlive-wasysym-9:20200406-26.el9_2.noarch texlive-wrapfig-9:20200406-26.el9_2.noarch texlive-xcjk2uni-9:20200406-37.el9.noarch texlive-xcolor-9:20200406-26.el9_2.noarch texlive-xdvi-9:20200406-26.el9_2.x86_64 texlive-xecjk-9:20200406-26.el9_2.noarch texlive-xetex-9:20200406-26.el9_2.x86_64 texlive-xetexconfig-9:20200406-26.el9_2.noarch texlive-xifthen-9:20200406-26.el9_2.noarch texlive-xkeyval-9:20200406-26.el9_2.noarch texlive-xpinyin-9:20200406-37.el9.noarch texlive-xunicode-9:20200406-26.el9_2.noarch texlive-zapfchan-9:20200406-26.el9_2.noarch texlive-zapfding-9:20200406-26.el9_2.noarch texlive-zhmetrics-9:20200406-37.el9.noarch texlive-zhmetrics-uptex-9:20200406-37.el9.noarch texlive-zhnumber-9:20200406-37.el9.noarch texlive-zref-9:20200406-26.el9_2.noarch urw-base35-bookman-fonts-20200910-6.el9.noarch urw-base35-c059-fonts-20200910-6.el9.noarch urw-base35-d050000l-fonts-20200910-6.el9.noarch urw-base35-fonts-20200910-6.el9.noarch urw-base35-fonts-common-20200910-6.el9.noarch urw-base35-gothic-fonts-20200910-6.el9.noarch urw-base35-nimbus-mono-ps-fonts-20200910-6.el9.noarch urw-base35-nimbus-roman-fonts-20200910-6.el9.noarch urw-base35-nimbus-sans-fonts-20200910-6.el9.noarch urw-base35-p052-fonts-20200910-6.el9.noarch urw-base35-standard-symbols-ps-fonts-20200910-6.el9.noarch urw-base35-z003-fonts-20200910-6.el9.noarch xdg-utils-1.1.3-13.el9_6.noarch xml-common-0.6.3-58.el9.noarch xorg-x11-fonts-ISO8859-1-100dpi-7.5-33.el9.noarch zziplib-0.13.71-11.el9_4.x86_64
Complete!
Additional packages installed: x86_64, 6
Check for docutils with /usr/bin/python3
$ /usr/bin/python3 -c try: import docutils; print(docutils.__version__) except: pass Python version: 3.9.21 Detected OS: Oracle Linux Server release 9.6.
Note: RHEL-based distros typically require extra repositories. For most, enabling epel and crb are enough:
sudo dnf install -y epel-release sudo dnf config-manager --set-enabled crb
Yet, some may have other required repositories. Those commands could be useful:
sudo dnf repolist all
sudo dnf repoquery --available --info <pkgs>
sudo dnf config-manager --set-enabled '*' # enable all - probably not what you want
Sphinx needs to be installed either:
1) via pip/pypi with:
/usr/bin/python3 -m venv sphinx_latest
. sphinx_latest/bin/activate
pip install -r ./Documentation/sphinx/requirements.txt
If you want to exit the virtualenv, you can use:
deactivate
2) As a package with:
sudo dnf install python3-sphinx
Please note that Sphinx currentlys produce false-positive warnings when the same name is used for more than one type (functions, structs, enums,...). This is known Sphinx bug. For more details, see:
https://github.com/sphinx-doc/sphinx/pull/8313
All optional dependencies are met.
Can't build as 1 mandatory dependency is missing
Installing section: venv with pip
=================================
$ /usr/bin/python3 -m venv sphinx_latest $ pip install --no-input -r ./Documentation/sphinx/requirements.txt Collecting alabaster Downloading alabaster-0.7.16-py3-none-any.whl (13 kB) Collecting Sphinx Downloading sphinx-7.4.7-py3-none-any.whl (3.4 MB) Collecting pyyaml Downloading PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (737 kB) Collecting sphinxcontrib-htmlhelp>=2.0.0 Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB) Collecting babel>=2.13 Downloading babel-2.17.0-py3-none-any.whl (10.2 MB) Collecting packaging>=23.0 Downloading packaging-25.0-py3-none-any.whl (66 kB) Collecting Pygments>=2.17 Downloading pygments-2.19.2-py3-none-any.whl (1.2 MB) Collecting sphinxcontrib-qthelp Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB) Collecting snowballstemmer>=2.2 Downloading snowballstemmer-3.0.1-py3-none-any.whl (103 kB) Collecting importlib-metadata>=6.0 Downloading importlib_metadata-8.7.0-py3-none-any.whl (27 kB) Collecting sphinxcontrib-applehelp Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB) Collecting sphinxcontrib-devhelp Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB) Collecting requests>=2.30.0 Downloading requests-2.32.4-py3-none-any.whl (64 kB) Collecting docutils<0.22,>=0.20 Downloading docutils-0.21.2-py3-none-any.whl (587 kB) Collecting Jinja2>=3.1 Downloading jinja2-3.1.6-py3-none-any.whl (134 kB) Collecting imagesize>=1.3 Downloading imagesize-1.4.1-py2.py3-none-any.whl (8.8 kB) Collecting sphinxcontrib-jsmath Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Collecting tomli>=2 Downloading tomli-2.2.1-py3-none-any.whl (14 kB) Collecting zipp>=3.20 Downloading zipp-3.23.0-py3-none-any.whl (10 kB) Collecting MarkupSafe>=2.0 Downloading MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20 kB) Collecting charset_normalizer<4,>=2 Downloading charset_normalizer-3.4.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (152 kB) Collecting certifi>=2017.4.17 Downloading certifi-2025.8.3-py3-none-any.whl (161 kB) Collecting urllib3<3,>=1.21.1 Downloading urllib3-2.5.0-py3-none-any.whl (129 kB) Collecting idna<4,>=2.5 Downloading idna-3.10-py3-none-any.whl (70 kB) Installing collected packages: zipp, urllib3, MarkupSafe, idna, charset-normalizer, certifi, tomli, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, requests, Pygments, packaging, Jinja2, importlib-metadata, imagesize, docutils, babel, alabaster, Sphinx, pyyaml Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.2 Pygments-2.19.2 Sphinx-7.4.7 alabaster-0.7.16 babel-2.17.0 certifi-2025.8.3 charset-normalizer-3.4.3 docutils-0.21.2 idna-3.10 imagesize-1.4.1 importlib-metadata-8.7.0 packaging-25.0 pyyaml-6.0.2 requests-2.32.4 snowballstemmer-3.0.1 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 tomli-2.2.1 urllib3-2.5.0 zipp-3.23.0 Additional packages installed: Jinja2-3, 1, 6, MarkupSafe-3, 0, 2, Pygments-2, 19, 2, Sphinx-7, 4, 7, alabaster-0, 7, 16, babel-2, 17, 0, certifi-2025, 8, 3, charset-normalizer-3, 4, 3, docutils-0, 21, 2, idna-3, 10, imagesize-1, 4, 1, importlib-metadata-8, 7, 0, packaging-25, 0, pyyaml-6, 0, 2, requests-2, 32, 4, snowballstemmer-3, 0, 1, sphinxcontrib-applehelp-2, 0, 0, sphinxcontrib-devhelp-2, 0, 0, sphinxcontrib-htmlhelp-2, 1, 0, sphinxcontrib-jsmath-1, 0, 1, sphinxcontrib-qthelp-2, 0, 0, sphinxcontrib-serializinghtml-2, 0, 0, tomli-2, 2, 1, urllib3-2, 5, 0, zipp-3, 23, 0
Installing section: venv with pip
=================================
$ /usr/bin/python3 -m venv sphinx_latest $ pip install --no-input -r ./Documentation/sphinx/requirements.txt Requirement already satisfied: alabaster in ./sphinx_latest/lib/python3.9/site-packages (from -r ./Documentation/sphinx/requirements.txt (line 2)) (0.7.16) Requirement already satisfied: Sphinx in ./sphinx_latest/lib/python3.9/site-packages (from -r ./Documentation/sphinx/requirements.txt (line 3)) (7.4.7) Requirement already satisfied: pyyaml in ./sphinx_latest/lib/python3.9/site-packages (from -r ./Documentation/sphinx/requirements.txt (line 4)) (6.0.2) Requirement already satisfied: Pygments>=2.17 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (2.19.2) Requirement already satisfied: Jinja2>=3.1 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (3.1.6) Requirement already satisfied: babel>=2.13 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (2.17.0) Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (2.0.0) Requirement already satisfied: sphinxcontrib-devhelp in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (2.0.0) Requirement already satisfied: tomli>=2 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (2.2.1) Requirement already satisfied: sphinxcontrib-qthelp in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (2.0.0) Requirement already satisfied: importlib-metadata>=6.0 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (8.7.0) Requirement already satisfied: snowballstemmer>=2.2 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (3.0.1) Requirement already satisfied: sphinxcontrib-applehelp in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (2.0.0) Requirement already satisfied: imagesize>=1.3 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (1.4.1) Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (2.1.0) Requirement already satisfied: requests>=2.30.0 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (2.32.4) Requirement already satisfied: packaging>=23.0 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (25.0) Requirement already satisfied: docutils<0.22,>=0.20 in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (0.21.2) Requirement already satisfied: sphinxcontrib-jsmath in ./sphinx_latest/lib/python3.9/site-packages (from Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (1.0.1) Requirement already satisfied: zipp>=3.20 in ./sphinx_latest/lib/python3.9/site-packages (from importlib-metadata>=6.0->Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (3.23.0) Requirement already satisfied: MarkupSafe>=2.0 in ./sphinx_latest/lib/python3.9/site-packages (from Jinja2>=3.1->Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (3.0.2) Requirement already satisfied: certifi>=2017.4.17 in ./sphinx_latest/lib/python3.9/site-packages (from requests>=2.30.0->Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (2025.8.3) Requirement already satisfied: urllib3<3,>=1.21.1 in ./sphinx_latest/lib/python3.9/site-packages (from requests>=2.30.0->Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (2.5.0) Requirement already satisfied: charset_normalizer<4,>=2 in ./sphinx_latest/lib/python3.9/site-packages (from requests>=2.30.0->Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (3.4.3) Requirement already satisfied: idna<4,>=2.5 in ./sphinx_latest/lib/python3.9/site-packages (from requests>=2.30.0->Sphinx->-r ./Documentation/sphinx/requirements.txt (line 3)) (3.10) Check for docutils on venv with sphinx_latest/bin/python $ sphinx_latest/bin/python -c try: import docutils; print(docutils.__version__) except: pass 0.21.2 $ sphinx-build --version sphinx-build 7.4.7
Installing section: package_install with dnf
============================================
$ dnf install -y --setopt=install_weak_deps=False python3-sphinx Last metadata expiration check: 0:02:20 ago on Mon Aug 18 07:33:55 2025. Dependencies resolved. ================================================================================================ Package Arch Version Repository Size ================================================================================================ Installing: python3-sphinx noarch 1:3.4.3-8.el9 ol9_codeready_builder 2.9 M Installing dependencies: python3-babel noarch 2.9.1-2.el9 ol9_appstream 6.6 M python3-chardet noarch 4.0.0-5.0.1.el9 base 350 k python3-docutils noarch 0.16-6.el9 ol9_appstream 2.0 M python3-idna noarch 2.10-7.0.1.el9_4.1 base 129 k python3-imagesize noarch 1.2.0-6.el9 ol9_codeready_builder 27 k python3-jinja2 noarch 2.11.3-8.el9_5 ol9_appstream 329 k python3-markupsafe x86_64 1.1.1-12.el9 ol9_appstream 52 k python3-packaging noarch 20.9-5.0.1.el9 ol9_appstream 117 k python3-pygments noarch 2.7.4-4.el9 ol9_codeready_builder 2.6 M python3-pyparsing noarch 2.4.7-9.el9 base 163 k python3-pysocks noarch 1.7.1-12.0.1.el9 base 46 k python3-pytz noarch 2021.1-5.el9 ol9_appstream 73 k python3-requests noarch 2.25.1-10.el9_6 latest 179 k python3-setuptools noarch 53.0.0-13.el9_6.1 latest 1.3 M python3-snowballstemmer noarch 1.9.0-10.el9 ol9_codeready_builder 231 k python3-sphinx-theme-alabaster noarch 0.7.12-13.el9 ol9_codeready_builder 48 k python3-sphinxcontrib-applehelp noarch 1.0.2-5.el9 ol9_codeready_builder 103 k python3-sphinxcontrib-devhelp noarch 1.0.2-5.el9 ol9_codeready_builder 95 k python3-sphinxcontrib-htmlhelp noarch 1.0.3-6.el9 ol9_codeready_builder 109 k python3-sphinxcontrib-jsmath noarch 1.0.1-12.el9 ol9_codeready_builder 33 k python3-sphinxcontrib-qthelp noarch 1.0.3-5.el9 ol9_codeready_builder 101 k python3-sphinxcontrib-serializinghtml noarch 1.1.4-5.el9 ol9_codeready_builder 103 k python3-urllib3 noarch 1.26.5-6.el9 base 310 k
Transaction Summary
================================================================================================
Install 24 Packages
Total download size: 18 M
Installed size: 61 M
Downloading Packages:
(1/24): python3-idna-2.10-7.0.1.el9_4.1.noarch. 831 kB/s | 129 kB 00:00 (2/24): python3-pyparsing-2.4.7-9.el9.noarch.rp 901 kB/s | 163 kB 00:00 (3/24): python3-chardet-4.0.0-5.0.1.el9.noarch. 1.5 MB/s | 350 kB 00:00 (4/24): python3-pysocks-1.7.1-12.0.1.el9.noarch 611 kB/s | 46 kB 00:00 (5/24): python3-requests-2.25.1-10.el9_6.noarch 7.3 MB/s | 179 kB 00:00 (6/24): python3-urllib3-1.26.5-6.el9.noarch.rpm 3.9 MB/s | 310 kB 00:00 (7/24): python3-setuptools-53.0.0-13.el9_6.1.no 15 MB/s | 1.3 MB 00:00 (8/24): python3-docutils-0.16-6.el9.noarch.rpm 20 MB/s | 2.0 MB 00:00 (9/24): python3-babel-2.9.1-2.el9.noarch.rpm 37 MB/s | 6.6 MB 00:00 (10/24): python3-jinja2-2.11.3-8.el9_5.noarch.r 2.3 MB/s | 329 kB 00:00 (11/24): python3-packaging-20.9-5.0.1.el9.noarc 1.7 MB/s | 117 kB 00:00 (12/24): python3-pytz-2021.1-5.el9.noarch.rpm 1.6 MB/s | 73 kB 00:00 (13/24): python3-markupsafe-1.1.1-12.el9.x86_64 304 kB/s | 52 kB 00:00 (14/24): python3-snowballstemmer-1.9.0-10.el9.n 3.9 MB/s | 231 kB 00:00 (15/24): python3-pygments-2.7.4-4.el9.noarch.rp 25 MB/s | 2.6 MB 00:00 (16/24): python3-imagesize-1.2.0-6.el9.noarch.r 214 kB/s | 27 kB 00:00 (17/24): python3-sphinx-theme-alabaster-0.7.12- 939 kB/s | 48 kB 00:00 (18/24): python3-sphinxcontrib-devhelp-1.0.2-5. 1.9 MB/s | 95 kB 00:00 (19/24): python3-sphinx-3.4.3-8.el9.noarch.rpm 23 MB/s | 2.9 MB 00:00 (20/24): python3-sphinxcontrib-htmlhelp-1.0.3-6 1.4 MB/s | 109 kB 00:00 (21/24): python3-sphinxcontrib-jsmath-1.0.1-12. 412 kB/s | 33 kB 00:00 (22/24): python3-sphinxcontrib-serializinghtml- 1.7 MB/s | 103 kB 00:00 (23/24): python3-sphinxcontrib-qthelp-1.0.3-5.e 1.2 MB/s | 101 kB 00:00 (24/24): python3-sphinxcontrib-applehelp-1.0.2- 51 kB/s | 103 kB 00:02 -------------------------------------------------------------------------------- Total 6.8 MB/s | 18 MB 00:02 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : python3-setuptools-53.0.0-13.el9_6.1.noarch 1/24 Installing : python3-idna-2.10-7.0.1.el9_4.1.noarch 2/24 Installing : python3-sphinxcontrib-serializinghtml-1.1.4-5.el9. 3/24 Installing : python3-sphinxcontrib-qthelp-1.0.3-5.el9.noarch 4/24 Installing : python3-sphinxcontrib-jsmath-1.0.1-12.el9.noarch 5/24 Installing : python3-sphinxcontrib-htmlhelp-1.0.3-6.el9.noarch 6/24 Installing : python3-sphinxcontrib-devhelp-1.0.2-5.el9.noarch 7/24 Installing : python3-sphinxcontrib-applehelp-1.0.2-5.el9.noarch 8/24 Installing : python3-sphinx-theme-alabaster-0.7.12-13.el9.noarc 9/24 Installing : python3-snowballstemmer-1.9.0-10.el9.noarch 10/24 Installing : python3-pygments-2.7.4-4.el9.noarch 11/24 Installing : python3-imagesize-1.2.0-6.el9.noarch 12/24 Installing : python3-pytz-2021.1-5.el9.noarch 13/24 Installing : python3-babel-2.9.1-2.el9.noarch 14/24 Installing : python3-markupsafe-1.1.1-12.el9.x86_64 15/24 Installing : python3-jinja2-2.11.3-8.el9_5.noarch 16/24 Installing : python3-docutils-0.16-6.el9.noarch 17/24 Installing : python3-pysocks-1.7.1-12.0.1.el9.noarch 18/24 Installing : python3-urllib3-1.26.5-6.el9.noarch 19/24 Installing : python3-pyparsing-2.4.7-9.el9.noarch 20/24 Installing : python3-packaging-20.9-5.0.1.el9.noarch 21/24 Installing : python3-chardet-4.0.0-5.0.1.el9.noarch 22/24 Installing : python3-requests-2.25.1-10.el9_6.noarch 23/24 Installing : python3-sphinx-1:3.4.3-8.el9.noarch 24/24 Running scriptlet: python3-sphinx-1:3.4.3-8.el9.noarch 24/24 Verifying : python3-chardet-4.0.0-5.0.1.el9.noarch 1/24 Verifying : python3-idna-2.10-7.0.1.el9_4.1.noarch 2/24 Verifying : python3-pyparsing-2.4.7-9.el9.noarch 3/24 Verifying : python3-pysocks-1.7.1-12.0.1.el9.noarch 4/24 Verifying : python3-urllib3-1.26.5-6.el9.noarch 5/24 Verifying : python3-requests-2.25.1-10.el9_6.noarch 6/24 Verifying : python3-setuptools-53.0.0-13.el9_6.1.noarch 7/24 Verifying : python3-babel-2.9.1-2.el9.noarch 8/24 Verifying : python3-docutils-0.16-6.el9.noarch 9/24 Verifying : python3-jinja2-2.11.3-8.el9_5.noarch 10/24 Verifying : python3-markupsafe-1.1.1-12.el9.x86_64 11/24 Verifying : python3-packaging-20.9-5.0.1.el9.noarch 12/24 Verifying : python3-pytz-2021.1-5.el9.noarch 13/24 Verifying : python3-imagesize-1.2.0-6.el9.noarch 14/24 Verifying : python3-pygments-2.7.4-4.el9.noarch 15/24 Verifying : python3-snowballstemmer-1.9.0-10.el9.noarch 16/24 Verifying : python3-sphinx-1:3.4.3-8.el9.noarch 17/24 Verifying : python3-sphinx-theme-alabaster-0.7.12-13.el9.noarc 18/24 Verifying : python3-sphinxcontrib-applehelp-1.0.2-5.el9.noarch 19/24 Verifying : python3-sphinxcontrib-devhelp-1.0.2-5.el9.noarch 20/24 Verifying : python3-sphinxcontrib-htmlhelp-1.0.3-6.el9.noarch 21/24 Verifying : python3-sphinxcontrib-jsmath-1.0.1-12.el9.noarch 22/24 Verifying : python3-sphinxcontrib-qthelp-1.0.3-5.el9.noarch 23/24 Verifying : python3-sphinxcontrib-serializinghtml-1.1.4-5.el9. 24/24
Installed:
python3-babel-2.9.1-2.el9.noarch python3-chardet-4.0.0-5.0.1.el9.noarch python3-docutils-0.16-6.el9.noarch python3-idna-2.10-7.0.1.el9_4.1.noarch python3-imagesize-1.2.0-6.el9.noarch python3-jinja2-2.11.3-8.el9_5.noarch python3-markupsafe-1.1.1-12.el9.x86_64 python3-packaging-20.9-5.0.1.el9.noarch python3-pygments-2.7.4-4.el9.noarch python3-pyparsing-2.4.7-9.el9.noarch python3-pysocks-1.7.1-12.0.1.el9.noarch python3-pytz-2021.1-5.el9.noarch python3-requests-2.25.1-10.el9_6.noarch python3-setuptools-53.0.0-13.el9_6.1.noarch python3-snowballstemmer-1.9.0-10.el9.noarch python3-sphinx-1:3.4.3-8.el9.noarch python3-sphinx-theme-alabaster-0.7.12-13.el9.noarch python3-sphinxcontrib-applehelp-1.0.2-5.el9.noarch python3-sphinxcontrib-devhelp-1.0.2-5.el9.noarch python3-sphinxcontrib-htmlhelp-1.0.3-6.el9.noarch python3-sphinxcontrib-jsmath-1.0.1-12.el9.noarch python3-sphinxcontrib-qthelp-1.0.3-5.el9.noarch python3-sphinxcontrib-serializinghtml-1.1.4-5.el9.noarch python3-urllib3-1.26.5-6.el9.noarch
Complete!
Additional packages installed: noarch, 1
Installing section: package_install with dnf
============================================
$ dnf install -y --setopt=install_weak_deps=False python3-sphinx Last metadata expiration check: 0:02:25 ago on Mon Aug 18 07:33:55 2025. Package python3-sphinx-1:3.4.3-8.el9.noarch is already installed. Dependencies resolved. Nothing to do. Complete! Check for docutils with /usr/bin/python3 $ /usr/bin/python3 -c try: import docutils; print(docutils.__version__) except: pass 0.16 $ sphinx-build --version sphinx-build 3.4.3 Default subset: Oracle Linux Server release 9.6 $ hostname
Installation commands processed
TAP version 14
1..1
# Subtest: Oracle Linux Server release 9.6
1..7
ok 1 - OS detection: Oracle Linux Server release 9.6 ok 2 - System packages: Packages installed
ok 3 - Sphinx on venv: Sphinx Sphinx 7.4.7
ok 4 - Sphinx package: Sphinx Sphinx 3.4.3
ok 5 - Clean documentation: Build time: 0:00, return code: 0 ok 6 - Build HTML documentation: Build time: 3:57, return code: 0 ok 7 - Build PDF documentation: Build time: 10:09, return code: 0 # Subtest: PDF docs
1..65
ok 1 - dev-tools: pdf/dev-tools.pdf
ok 2 - tools: pdf/tools.pdf
ok 3 - filesystems: pdf/filesystems.pdf
ok 4 - w1: pdf/w1.pdf
ok 5 - maintainer: pdf/maintainer.pdf
ok 6 - process: pdf/process.pdf
ok 7 - isdn: pdf/isdn.pdf
ok 8 - fault-injection: pdf/fault-injection.pdf
ok 9 - iio: pdf/iio.pdf
ok 10 - scheduler: pdf/scheduler.pdf
ok 11 - staging: pdf/staging.pdf
ok 12 - fpga: pdf/fpga.pdf
ok 13 - power: pdf/power.pdf
ok 14 - leds: pdf/leds.pdf
ok 15 - edac: pdf/edac.pdf
ok 16 - PCI: pdf/PCI.pdf
ok 17 - firmware-guide: pdf/firmware-guide.pdf
ok 18 - cpu-freq: pdf/cpu-freq.pdf
ok 19 - mhi: pdf/mhi.pdf
ok 20 - wmi: pdf/wmi.pdf
ok 21 - timers: pdf/timers.pdf
ok 22 - accel: pdf/accel.pdf
ok 23 - hid: pdf/hid.pdf
ok 24 - userspace-api: pdf/userspace-api.pdf
ok 25 - spi: pdf/spi.pdf
ok 26 - networking: pdf/networking.pdf
ok 27 - virt: pdf/virt.pdf
ok 28 - nvme: pdf/nvme.pdf
ok 29 - translations: pdf/translations.pdf
ok 30 - input: pdf/input.pdf
ok 31 - tee: pdf/tee.pdf
ok 32 - doc-guide: pdf/doc-guide.pdf
ok 33 - cdrom: pdf/cdrom.pdf
ok 34 - gpu: pdf/gpu.pdf
ok 35 - i2c: pdf/i2c.pdf
ok 36 - RCU: pdf/RCU.pdf
ok 37 - watchdog: pdf/watchdog.pdf
ok 38 - usb: pdf/usb.pdf
ok 39 - rust: pdf/rust.pdf
ok 40 - crypto: pdf/crypto.pdf
ok 41 - kbuild: pdf/kbuild.pdf
ok 42 - livepatch: pdf/livepatch.pdf
ok 43 - mm: pdf/mm.pdf
ok 44 - locking: pdf/locking.pdf
ok 45 - infiniband: pdf/infiniband.pdf
ok 46 - driver-api: pdf/driver-api.pdf
ok 47 - bpf: pdf/bpf.pdf
ok 48 - devicetree: pdf/devicetree.pdf
ok 49 - block: pdf/block.pdf
ok 50 - target: pdf/target.pdf
ok 51 - arch: pdf/arch.pdf
ok 52 - pcmcia: pdf/pcmcia.pdf
ok 53 - scsi: pdf/scsi.pdf
ok 54 - netlabel: pdf/netlabel.pdf
ok 55 - sound: pdf/sound.pdf
ok 56 - security: pdf/security.pdf
ok 57 - accounting: pdf/accounting.pdf
ok 58 - admin-guide: pdf/admin-guide.pdf
ok 59 - core-api: pdf/core-api.pdf
ok 60 - fb: pdf/fb.pdf
ok 61 - peci: pdf/peci.pdf
ok 62 - trace: pdf/trace.pdf
ok 63 - misc-devices: pdf/misc-devices.pdf
ok 64 - kernel-hacking: pdf/kernel-hacking.pdf
ok 65 - hwmon: pdf/hwmon.pdf
ok 1 - Oracle Linux Server release 9.6
-
Here, I dropped the full logs for html and pdf, as they were a way too bigger>
That's the end of the pdfdocs build target:
Summary
=======
Oracle Linux Server release 9.6:
OS detection : PASSED: Oracle Linux Server release 9.6
System packages : PASSED: Packages installed
Sphinx on venv : PASSED: Sphinx Sphinx 7.4.7
Sphinx package : PASSED: Sphinx Sphinx 3.4.3
Clean documentation : PASSED: Build time: 0:00, return code: 0 Build HTML documentation : PASSED: Build time: 3:57, return code: 0 Build PDF documentation : PASSED: Build time: 10:09, return code: 0 PDF docs:
dev-tools : PASSED: pdf/dev-tools.pdf
tools : PASSED: pdf/tools.pdf
filesystems : PASSED: pdf/filesystems.pdf
w1 : PASSED: pdf/w1.pdf
maintainer : PASSED: pdf/maintainer.pdf
process : PASSED: pdf/process.pdf
isdn : PASSED: pdf/isdn.pdf
fault-injection : PASSED: pdf/fault-injection.pdf
iio : PASSED: pdf/iio.pdf
scheduler : PASSED: pdf/scheduler.pdf
staging : PASSED: pdf/staging.pdf
fpga : PASSED: pdf/fpga.pdf
power : PASSED: pdf/power.pdf
leds : PASSED: pdf/leds.pdf
edac : PASSED: pdf/edac.pdf
PCI : PASSED: pdf/PCI.pdf
firmware-guide : PASSED: pdf/firmware-guide.pdf
cpu-freq : PASSED: pdf/cpu-freq.pdf
mhi : PASSED: pdf/mhi.pdf
wmi : PASSED: pdf/wmi.pdf
timers : PASSED: pdf/timers.pdf
accel : PASSED: pdf/accel.pdf
hid : PASSED: pdf/hid.pdf
userspace-api : PASSED: pdf/userspace-api.pdf
spi : PASSED: pdf/spi.pdf
networking : PASSED: pdf/networking.pdf
virt : PASSED: pdf/virt.pdf
nvme : PASSED: pdf/nvme.pdf
translations : PASSED: pdf/translations.pdf
input : PASSED: pdf/input.pdf
tee : PASSED: pdf/tee.pdf
doc-guide : PASSED: pdf/doc-guide.pdf
cdrom : PASSED: pdf/cdrom.pdf
gpu : PASSED: pdf/gpu.pdf
i2c : PASSED: pdf/i2c.pdf
RCU : PASSED: pdf/RCU.pdf
watchdog : PASSED: pdf/watchdog.pdf
usb : PASSED: pdf/usb.pdf
rust : PASSED: pdf/rust.pdf
crypto : PASSED: pdf/crypto.pdf
kbuild : PASSED: pdf/kbuild.pdf
livepatch : PASSED: pdf/livepatch.pdf
mm : PASSED: pdf/mm.pdf
locking : PASSED: pdf/locking.pdf
infiniband : PASSED: pdf/infiniband.pdf
driver-api : PASSED: pdf/driver-api.pdf
bpf : PASSED: pdf/bpf.pdf
devicetree : PASSED: pdf/devicetree.pdf
block : PASSED: pdf/block.pdf
target : PASSED: pdf/target.pdf
arch : PASSED: pdf/arch.pdf
pcmcia : PASSED: pdf/pcmcia.pdf
scsi : PASSED: pdf/scsi.pdf
netlabel : PASSED: pdf/netlabel.pdf
sound : PASSED: pdf/sound.pdf
security : PASSED: pdf/security.pdf
accounting : PASSED: pdf/accounting.pdf
admin-guide : PASSED: pdf/admin-guide.pdf
core-api : PASSED: pdf/core-api.pdf
fb : PASSED: pdf/fb.pdf
peci : PASSED: pdf/peci.pdf
trace : PASSED: pdf/trace.pdf
misc-devices : PASSED: pdf/misc-devices.pdf
kernel-hacking : PASSED: pdf/kernel-hacking.pdf
hwmon : PASSED: pdf/hwmon.pdf
/root/sphinx_latest/bin/python3 sphinx_latest/bin/sphinx-build -j4 -b latex -c /root/Documentation -D latex_elements.papersize=a4paper -d /root/Documentation/output/.doctrees -D kerneldoc_bin=scripts/kernel-doc.py -D version=6.17.0-rc1 -D release= -D kerne ldoc_srctree=. /root/Documentation /root/Documentation/output/latex
Summary
=======
dev-tools : pdf/dev-tools.pdf
tools : pdf/tools.pdf
filesystems : pdf/filesystems.pdf
w1 : pdf/w1.pdf
maintainer : pdf/maintainer.pdf
process : pdf/process.pdf
isdn : pdf/isdn.pdf
fault-injection: pdf/fault-injection.pdf
iio : pdf/iio.pdf
scheduler : pdf/scheduler.pdf
staging : pdf/staging.pdf
fpga : pdf/fpga.pdf
power : pdf/power.pdf
leds : pdf/leds.pdf
edac : pdf/edac.pdf
PCI : pdf/PCI.pdf
firmware-guide : pdf/firmware-guide.pdf
cpu-freq : pdf/cpu-freq.pdf
mhi : pdf/mhi.pdf
wmi : pdf/wmi.pdf
timers : pdf/timers.pdf
accel : pdf/accel.pdf
hid : pdf/hid.pdf
userspace-api : pdf/userspace-api.pdf
spi : pdf/spi.pdf
networking : pdf/networking.pdf
virt : pdf/virt.pdf
nvme : pdf/nvme.pdf
translations : pdf/translations.pdf
input : pdf/input.pdf
tee : pdf/tee.pdf
doc-guide : pdf/doc-guide.pdf
cdrom : pdf/cdrom.pdf
gpu : pdf/gpu.pdf
i2c : pdf/i2c.pdf
RCU : pdf/RCU.pdf
watchdog : pdf/watchdog.pdf
usb : pdf/usb.pdf
rust : pdf/rust.pdf
crypto : pdf/crypto.pdf
kbuild : pdf/kbuild.pdf
livepatch : pdf/livepatch.pdf
mm : pdf/mm.pdf
locking : pdf/locking.pdf
infiniband : pdf/infiniband.pdf
driver-api : pdf/driver-api.pdf
bpf : pdf/bpf.pdf
devicetree : pdf/devicetree.pdf
block : pdf/block.pdf
target : pdf/target.pdf
arch : pdf/arch.pdf
pcmcia : pdf/pcmcia.pdf
scsi : pdf/scsi.pdf
netlabel : pdf/netlabel.pdf
sound : pdf/sound.pdf
security : pdf/security.pdf
accounting : pdf/accounting.pdf
admin-guide : pdf/admin-guide.pdf
core-api : pdf/core-api.pdf
fb : pdf/fb.pdf
peci : pdf/peci.pdf
trace : pdf/trace.pdf
misc-devices : pdf/misc-devices.pdf
kernel-hacking : pdf/kernel-hacking.pdf
hwmon : pdf/hwmon.pdf
All PDF files were built.
1 of 1 validate commands succeeded