Package: gpdf
Version: 2.8.2-1.2
Severity: serious
Tags: patch

gpdf fails to build because it does not forward declare some classes:

> if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../goo -I../lib/ggv-sidebar 
> -I../fofi -I../splash -DDATADIR=\""/usr/share"\" 
> -DGNOMELOCALEDIR=\""/usr/share/locale"\" 
> -DGNOMEICONDIR=\""/usr/share/pixmaps"\" -DXTHREADS -DORBIT2=1 -pthread 
> -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include 
> -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 
> -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 
> -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 
> -I/usr/include/libgnomecanvas-2.0 -I/usr/include/libart-2.0 
> -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 
> -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 
> -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include 
> -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 
> -I/usr/include/gnome-vfs-module-2.0 -I/usr/include/libgnomeprint-2.2 
> -I/usr/include/libgnomeprintui-2.2 -I/usr/include/libglade-2.0   
> -I/usr/include/libgnomeprint-2.2/libgnomeprint/private      -g -Wall -O2 -g 
> -Wall -O2 -Wall -Wno-unused -Wshadow -Woverloaded-virtual  -MT 
> TextOutputDev.o -MD -MP -MF ".deps/TextOutputDev.Tpo" \
>   -c -o TextOutputDev.o `test -f 'TextOutputDev.cc' || echo 
> './'`TextOutputDev.cc; \
> then mv -f ".deps/TextOutputDev.Tpo" ".deps/TextOutputDev.Po"; \
> else rm -f ".deps/TextOutputDev.Tpo"; exit 1; \
> fi
> TextOutputDev.h:172: error: expected `)' before '*' token
> TextOutputDev.h:198: error: ISO C++ forbids declaration of 'TextBlock' with 
> no type
> TextOutputDev.h:198: error: expected ';' before '*' token
> TextOutputDev.h:229: error: expected `)' before '*' token
> TextOutputDev.h:253: error: ISO C++ forbids declaration of 'TextPage' with no 
> type
> TextOutputDev.h:253: error: expected ';' before '*' token
> TextOutputDev.h:285: error: expected `)' before '*' token
> TextOutputDev.h:299: error: ISO C++ forbids declaration of 'TextPage' with no 
> type
> TextOutputDev.h:299: error: expected ';' before '*' token
> TextOutputDev.h:324: error: expected `)' before '*' token
> TextOutputDev.h:419: error: 'TextLineFrag' has not been declared
> TextOutputDev.cc:480: error: prototype for 'TextLine::TextLine(TextBlock*, 
> int, double)' does not match any in class 'TextLine'
> TextOutputDev.h:169: error: candidates are: TextLine::TextLine(const 
> TextLine&)
> TextOutputDev.h:169: error:                 TextLine::TextLine()
> TextOutputDev.cc: In constructor 'TextLine::TextLine(TextBlock*, int, 
> double)':
> TextOutputDev.cc:481: error: 'blk' was not declared in this scope
> TextOutputDev.cc: In member function 'void 
> TextLineFrag::computeCoords(GBool)':
> TextOutputDev.cc:771: error: 'class TextLine' has no member named 'blk'
> TextOutputDev.cc:781: error: 'class TextLine' has no member named 'blk'
> TextOutputDev.cc:829: error: 'class TextLine' has no member named 'blk'
> TextOutputDev.cc: In static member function 'static int 
> TextLineFrag::cmpYXPrimaryRot(const void*, const void*)':
> TextOutputDev.cc:870: error: 'class TextLine' has no member named 'blk'
> TextOutputDev.cc: At global scope:
> TextOutputDev.cc:961: error: prototype for 'TextBlock::TextBlock(TextPage*, 
> int)' does not match any in class 'TextBlock'
> TextOutputDev.h:226: error: candidates are: TextBlock::TextBlock(const 
> TextBlock&)
> TextOutputDev.h:226: error:                 TextBlock::TextBlock()
> TextOutputDev.cc: In constructor 'TextBlock::TextBlock(TextPage*, int)':
> TextOutputDev.cc:962: error: 'page' was not declared in this scope
> TextOutputDev.cc: In member function 'void TextBlock::coalesce(UnicodeMap*)':
> TextOutputDev.cc:1118: error: new initializer expression list treated as 
> compound expression
> TextOutputDev.cc:1118: error: no matching function for call to 
> 'TextLine::TextLine(double&)'
> TextOutputDev.h:169: note: candidates are: TextLine::TextLine()
> TextOutputDev.h:169: note:                 TextLine::TextLine(const TextLine&)
> TextOutputDev.cc: In member function 'void 
> TextBlock::updatePriMinMax(TextBlock*)':
> TextOutputDev.cc:1258: error: 'page' was not declared in this scope
> TextOutputDev.cc: In static member function 'static int 
> TextBlock::cmpXYPrimaryRot(const void*, const void*)':
> TextOutputDev.cc:1310: error: 'class TextBlock' has no member named 'page'
> TextOutputDev.cc: In static member function 'static int 
> TextBlock::cmpYXPrimaryRot(const void*, const void*)':
> TextOutputDev.cc:1341: error: 'class TextBlock' has no member named 'page'
> TextOutputDev.cc: In member function 'GBool TextBlock::isBelow(TextBlock*)':
> TextOutputDev.cc:1412: error: 'page' was not declared in this scope
> TextOutputDev.cc: At global scope:
> TextOutputDev.cc:1438: error: prototype for 'TextFlow::TextFlow(TextPage*, 
> TextBlock*)' does not match any in class 'TextFlow'
> TextOutputDev.h:282: error: candidates are: TextFlow::TextFlow(const 
> TextFlow&)
> TextOutputDev.h:282: error:                 TextFlow::TextFlow()
> TextOutputDev.cc: In constructor 'TextFlow::TextFlow(TextPage*, TextBlock*)':
> TextOutputDev.cc:1439: error: 'page' was not declared in this scope
> TextOutputDev.cc: In member function 'GBool TextFlow::blockFits(TextBlock*, 
> TextBlock*)':
> TextOutputDev.cc:1490: error: 'page' was not declared in this scope
> TextOutputDev.cc: At global scope:
> TextOutputDev.cc:1513: error: prototype for 
> 'TextWordList::TextWordList(TextPage*, GBool)' does not match any in class 
> 'TextWordList'
> TextOutputDev.h:317: error: candidates are: TextWordList::TextWordList(const 
> TextWordList&)
> TextOutputDev.h:317: error:                 TextWordList::TextWordList()
> TextOutputDev.cc: In member function 'void TextPage::coalesce(GBool)':
> TextOutputDev.cc:2038: error: new initializer expression list treated as 
> compound expression
> TextOutputDev.cc:2038: error: no matching function for call to 
> 'TextBlock::TextBlock(int&)'
> TextOutputDev.h:226: note: candidates are: TextBlock::TextBlock()
> TextOutputDev.h:226: note:                 TextBlock::TextBlock(const 
> TextBlock&)
> TextOutputDev.cc:2523: error: new initializer expression list treated as 
> compound expression
> TextOutputDev.cc:2523: error: no matching function for call to 
> 'TextFlow::TextFlow(TextBlock*&)'
> TextOutputDev.h:282: note: candidates are: TextFlow::TextFlow()
> TextOutputDev.h:282: note:                 TextFlow::TextFlow(const TextFlow&)
> TextOutputDev.cc: In member function 'GString* TextPage::getText(double, 
> double, double, double)':
> TextOutputDev.cc:2931: error: no matching function for call to 
> 'TextPage::assignColumns(TextLineFrag*&, int&, GBool&)'
> TextOutputDev.h:419: note: candidates are: void TextPage::assignColumns(int*, 
> int, int)
> TextOutputDev.cc: At global scope:
> TextOutputDev.cc:3230: error: prototype for 'void 
> TextPage::assignColumns(TextLineFrag*, int, GBool)' does not match any in 
> class 'TextPage'
> TextOutputDev.h:419: error: candidate is: void TextPage::assignColumns(int*, 
> int, int)
> TextOutputDev.cc: In member function 'TextWordList* 
> TextPage::makeWordList(GBool)':
> TextOutputDev.cc:3409: error: new initializer expression list treated as 
> compound expression
> TextOutputDev.cc:3409: error: no matching function for call to 
> 'TextWordList::TextWordList(GBool&)'
> TextOutputDev.h:317: note: candidates are: TextWordList::TextWordList()
> TextOutputDev.h:317: note:                 TextWordList::TextWordList(const 
> TextWordList&)

The attached patch adds the necessary forward class declarations.

-- 
Matt
only in patch2:
unchanged:
--- gpdf-2.8.2.orig/xpdf/TextOutputDev.h
+++ gpdf-2.8.2/xpdf/TextOutputDev.h
@@ -166,6 +166,8 @@
 // TextLine
 //------------------------------------------------------------------------
 
+class TextBlock;
+
 class TextLine {
 public:
 
@@ -223,6 +225,8 @@
 // TextBlock
 //------------------------------------------------------------------------
 
+class TextPage;
+
 class TextBlock {
 public:
 
@@ -342,6 +346,8 @@
 // TextPage
 //------------------------------------------------------------------------
 
+class TextLineFrag;
+
 class TextPage {
 public:
 

Attachment: signature.asc
Description: Digital signature

Reply via email to