PDF reports are of size 0

Hello,

I did a fresh build from sources few days ago on rocky linux 9.7, everything seems be working except PDF, CSV or TXT reports. The only thing that is working correctly is XML report.

This is list of files in directory where script should output PDF

ls -al /tmp/gvmd_lA6vSQ
total 4
drwxr-xr-x. 2 root root 61 Jun 24 09:58 .
drwxrwxrwt. 31 root root 4096 Jun 24 09:58 ..
-rw-r–r–. 1 root root 0 Jun 24 09:58 c402cc3e-b531-11e1-9163-406186ea4fc5-ygx2AR.pdf

Any ideas?

@dreic

Every report format in OpenVAS is generated using a generate script. The PDF output is created the same way. Most likely, your installation is missing one or more tools that the generate script depends on.

Locate the generate scripts with the following command and identify any missing CLI dependencies used by them. Then install the required tools:

find / -type f -name “*generate*” -print

After locating the scripts, review their contents and verify that all referenced command-line utilities are available on the system. Install any missing dependencies and retry the PDF generation.

Eero

I found the script, the executable is present but it’s producing PDF of 0Kb.

cat /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5/generate
#!/bin/sh

Copyright (C) 2010-2018 Greenbone AG
SPDX-License-Identifier: GPL-2.0-or-later
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Report generator script: PDF.
This report generate initially creates a LaTeX file
using a XML transformation with the tool xsltproc.
In a second step the latex file is processed with
the tool pdflatex and results in the final PDF file.
The intermediate files are stored under /tmp.
TMP=mktemp -d || exit 1

xsltproc ./latex.xsl $1 > ${TMP}/report.tex 2>/tmp/err.out

pdflatex -interaction batchmode -output-directory ${TMP} ${TMP}/report.tex > /dev/null 2>&1

Run a second time to resolve references and page numbering as assembled
during first run.
pdflatex -interaction batchmode -output-directory ${TMP} ${TMP}/report.tex > /dev/null 2>&1 &

wait

cat ${TMP}/report.pdf && rm -rf ${TMP}
md manage:WARNING:2026-06-24 09h57.08 utc:225218: run_report_format_script: system failed with ret 256, 1, /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5/generate /tmp/gvmd_lA6vSQ/report.xml '<files><basedir>/tmp/gvmd_lA6vSQ</basedir></files>' > /tmp/gvmd_lA6vSQ/c402cc3e-b531-11e1-9163-406186ea4fc5-ygx2AR.pdf 2> /dev/null

@dreic

As I tried to explain, the issue is that the generate script is not completing successfully. In most cases, the root cause is missing LaTeX libraries/packages.

Please edit the script manually and change the last line to:

cat ${TMP}/report.pdf

Then run it once from the user interface and afterwards run the script manually from the command line. This will allow you to see exactly where the error occurs. Once you identify the failing step, install the required LaTeX packages and resolve any dependency issues. After that, rerun the script to verify that the PDF is generated successfully.

Eero

Thank you for your help so far and I am trying to understanding what are you trying to tell me :slight_smile: .

the executables are present

xsltproc --version
Using libxml 20913, libxslt 10134 and libexslt 820
xsltproc was compiled against libxml 20913, libxslt 10134 and libexslt 820
libxslt 10134 was compiled against libxml 20913
libexslt 820 was compiled against libxml 20913


 pdflatex -v
pdfTeX 3.14159265-2.6-1.40.21 (TeX Live 2020)
kpathsea version 6.3.2
Copyright 2020 Han The Thanh (pdfTeX) et al.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Han The Thanh (pdfTeX) et al.
Compiled with libpng 1.6.37; using libpng 1.6.37
Compiled with zlib 1.2.11; using zlib 1.2.11
[root@greenbone gvmd_lA6vSQ]# /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5/generate
cat: /tmp/tmp.2L389QxM4r/report.pdf: No such file or directory
[root@greenbone gvmd_lA6vSQ]# /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5/generate
cat: /tmp/tmp.QokaEyc8TK/report.pdf: No such file or directory
[root@greenbone gvmd_lA6vSQ]# /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5/generate
cat: /tmp/tmp.XRyZFXUYZJ/report.pdf: No such file or directory
[root@greenbone gvmd_lA6vSQ]# /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5/generate
cat: /tmp/tmp.4TxkzQVTUj/report.pdf: No such file or directory
[root@greenbone gvmd_lA6vSQ]# /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5/generate
cat: /tmp/tmp.pvCOdxUKxA/report.pdf: No such file or directory

So every time I try to run the script it wants to find report

@dreic you are not running it right and you need also understand that pdflatex can require libraries that you have not installed.

modify script to look like this

#!/bin/sh

LOGFILE=“/tmp/parameters.log”

{

echo "===== $(date) ====="

echo "Script: $0"

echo "Working directory: $(pwd)"

echo "Arguments: $@"

echo

} >> “$LOGFILE”

TMP=$(mktemp -d) || exit 1

xsltproc ./latex.xsl “$1” > “${TMP}/report.tex” 2>/tmp/err.out

pdflatex -interaction batchmode -output-directory “${TMP}” “${TMP}/report.tex” > /dev/null 2>&1

pdflatex -interaction batchmode -output-directory “${TMP}” “${TMP}/report.tex” > /dev/null 2>&1 &

wait

cat “${TMP}/report.pdf”

then you can see /tmp/parameters.log file what parameters its used to call from openvas. then cd that directory and run it with same parameters.

Eero

I did just that and I am getting to the same point as before, on every script call new directory is required which doesn’t exist. It doesn’t look like any library is missing

[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# cat /tmp/parameters.log
===== Wed Jun 24 06:08:48 PM UTC 2026 =====
Script: /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5/generate
Working directory: /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5
Arguments: /tmp/gvmd_YM9Non/report.xml <files><basedir>/tmp/gvmd_YM9Non</basedir></files>

[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5/generate /tmp/gvmd_YM9Non/report.xml '<files><basedir>/tmp/gvmd_YM9Non</basedir></files>'
cat: /tmp/tmp.LdzdXdBlUp/report.pdf: No such file or directory
[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# mkdir -p  /tmp/tmp.LdzdXdBlUp/
[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5/generate /tmp/gvmd_YM9Non/report.xml '<files><basedir>/tmp/gvmd_YM9Non</basedir></files>'
cat: /tmp/tmp.6FwbikIIda/report.pdf: No such file or directory

@dreic

No, don’t do it that way. The TMP directory changes with every run, and you need to execute this script from that directory every time, including subsequent runs, because the required files won’t otherwise be available in the working directory. Instead, create a copy of the script and modify it to use the correct path explicitly.

Eero

I made a copy of the original and put your code inside the file. Went into gui and run generate report. Which produced log

===== Wed Jun 24 06:46:17 PM UTC 2026 =====
Script: /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5/generate
Working directory: /tmp/tmp.LdzdXdBlUp
Arguments: /tmp/tmp.LdzdXdBlUp/report.xml <files><basedir>/tmp/tmp.LdzdXdBlUpL</basedir></files>

Then I executed commands one by one:

[root@greenbone tmp.LdzdXdBlUp]# cd  /var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5
[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# pwd
/var/lib/gvm/gvmd/report_formats/46c9fcfe-3e13-4457-95e9-8519a43928a1/c402cc3e-b531-11e1-9163-406186ea4fc5
[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# ll
total 88
-rwxr-xr-x. 1 gvm  gvm   1575 Jun 24 18:44 generate
-rwxr-xr-x. 1 root root  1532 Jun 24 18:07 generate_bkp
-rw-r--r--. 1 gvm  gvm  74636 Jun 21 12:27 latex.xsl
-rw-r--r--. 1 gvm  gvm    504 Jun 21 12:27 report_format.xml
[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# echo $TMP

[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# TMP=/tmp/tmp.LdzdXdBlUp
[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# xsltproc ./latex.xsl "$1" > "${TMP}/report.tex" 2>/tmp/err.out
[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# cat /tmp/err.out
warning: failed to load external entity ""
unable to parse
[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# pdflatex -interaction batchmode -output-directory "${TMP}" "${TMP}/report.tex"
This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# pdflatex -interaction batchmode -output-directory "${TMP}" "${TMP}/report.tex"
This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
[root@greenbone c402cc3e-b531-11e1-9163-406186ea4fc5]# ll $TMP
total 4
-rw-r--r--. 1 root root 905 Jun 24 18:48 report.log
-rw-r--r--. 1 root root   0 Jun 24 18:47 report.tex

The only thing I see wrong here is warning: failed to load external entity ""
unable to parse and that’s because the size of report.tex is 0.

[root@greenbone tmp.LdzdXdBlUp]# cat report.log

Here is how much of TeX's memory you used:
 17 strings out of 480932
 456 string characters out of 5906277
 278758 words of memory out of 5000000
 17351 multiletter control sequences out of 15000+600000
 403430 words of font info for 27 fonts, out of 8000000 for 9000
 14 hyphenation exceptions out of 8191
 13i,0n,15p,62b,10s stack positions out of 5000i,500n,10000p,200000b,80000s
!  ==> Fatal error occurred, no output PDF file produced!
[root@greenbone tmp.LdzdXdBlUp]# cat report.tex

so it seems main culprit is report.tex

@dreic No, you are still running with incorrect parameters “$1” must be filled with correct parameter.

Eero

@dreic

Let me put this politely and diplomatically: Rocky Linux’s LaTeX package is so stripped down it seems to have taken a wrong turn at Monkey Island. :grinning_face_with_smiling_eyes: The fact that comment.sty is missing means PDF generation may fail out of the box. Fortunately, the fix is simple:

mkdir -p /usr/share/texlive/texmf-local/tex/latex/comment

curl -L \

https://mirrors.ctan.org/macros/latex/contrib/comment/comment.sty \

-o /usr/share/texlive/texmf-local/tex/latex/comment/comment.sty

mktexlsr

please use something working linux.

Eero