Package: doxygen
Severity: serious
Tags: upstream
Justification: Policy 7.8

Hi,

as discussed on Debian Mentors list[1] doxygen injects unescaped '%'
signs into LaTeX source.  I tried to apply the attached patch to the
doxygen package since Jakub Wilk pointed to a potential solution in
upstream Git[2].  Unfortunately this does not help since the cimg build
remains with the broken LaTeX code as you can see here:

~ grep "operator%" html/latex/*.tex
html/latex/structcimg__library_1_1CImg.tex:\subsubsection[{\texorpdfstring{operator\%=(const
 t value)}{operator%=(const t value)}}]{\setlength{\rightskip}{0pt plus 
5cm}{\bf C\+Img}$<$T$>$\& operator\%= (
html/latex/structcimg__library_1_1CImg.tex:\subsubsection[{\texorpdfstring{operator\%=(const
 char $\ast$const expression)}{operator%=(const char *const 
expression)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf C\+Img}$<$T$>$\& 
operator\%= (
html/latex/structcimg__library_1_1CImg.tex:\subsubsection[{\texorpdfstring{operator\%=(const
 C\+Img$<$ t $>$ \&img)}{operator%=(const CImg< t > 
&img)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf C\+Img}$<$T$>$\& operator\%= (
html/latex/structcimg__library_1_1CImg.tex:\subsubsection[{\texorpdfstring{operator\%(const
 t value) const }{operator%(const t value) const }}]{\setlength{\rightskip}{0pt 
plus 5cm}{\bf C\+Img}$<$ typename cimg\+::superset$<$T,t$>$\+::type $>$ 
operator\% (
html/latex/structcimg__library_1_1CImg.tex:\subsubsection[{\texorpdfstring{operator\%(const
 char $\ast$const expression) const }{operator%(const char *const expression) 
const }}]{\setlength{\rightskip}{0pt plus 5cm}{\bf C\+Img}$<$Tfloat$>$ 
operator\% (
html/latex/structcimg__library_1_1CImg.tex:\subsubsection[{\texorpdfstring{operator\%(const
 C\+Img$<$ t $>$ \&img) const }{operator%(const CImg< t > &img) const 
}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf C\+Img}$<$ typename 
cimg\+::superset$<$T,t$>$\+::type $>$ operator\% (


I've set this bug to serious since the problem causes FTBFS for
at least one package (cimg see #819606).

Kind regards

       Andreas.


[1] https://lists.debian.org/debian-mentors/2016/05/msg00061.html
[2] 
https://github.com/doxygen/doxygen/commit/d4ab02c2da7df472bebbf2724419ba00f2de229c


-- System Information:
Debian Release: 8.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/1 CPU core)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages doxygen depends on:
ii  libc6          2.19-18+deb8u4
pn  libclang1-3.5  <none>
ii  libgcc1        1:4.9.2-10
ii  libsqlite3-0   3.8.7.1-1+deb8u1
ii  libstdc++6     4.9.2-10
ii  libxapian22    1.2.19-1+deb8u1

doxygen recommends no packages.

Versions of packages doxygen suggests:
pn  doxygen-doc    <none>
pn  doxygen-gui    <none>
pn  doxygen-latex  <none>
pn  graphviz       <none>
Author: Andreas Tille <[email protected]>
Last-Update: Wed, 31 Aug 2016 08:41:10 +0200
Origin: https://github.com/doxygen/doxygen/commit/d4ab02c2da7df472bebbf2724419ba00f2de229c
Description: Fix unescaped % and & sign breaking (at least) build of
 cimg (see #819606)

--- a/src/util.cpp
+++ b/src/util.cpp
@@ -6550,6 +6550,8 @@ void filterLatexString(FTextStream &t,co
         case '{':  t << "\\{"; break;
         case '}':  t << "\\}"; break;
         case '_':  t << "\\_"; break;
+        case '%':  t << "\\%"; break;
+        case '&':  t << "\\&"; break;
         case ' ':  if (keepSpaces) t << "~"; else t << ' ';
                    break;
         default:

Reply via email to