gpdf must be patched in order to compile. There are two patches to apply.
Before compilation, make sure you have libglib-2.0-utils installed on the Z.
If you don't patch, compilation will first fail with:
/usr/include/orbit-2.0/orbit/dynamic/dynamic-defs.h:673: warning: ‘CORBA_TypeCode_struct* DynamicAny_DynAny_type(DynamicAny_DynAny_type*, CORBA_Environment*)’ hides constructor for ‘struct DynamicAny_DynAny_type’
gpdf-control.cc: In function ‘void gpdf_control_private_push(GPdfControl*, const gchar*)’:
gpdf-control.cc:218: error: cast from ‘void*’ to ‘unsigned int’ loses precision
gpdf-control.cc: In function ‘void save_error_dialog(GtkWindow*, const gchar*)’:
gpdf-control.cc:1097: warning: zero-length printf format string
make[4]: *** [gpdf-control.o] Error 1
make[4]: Leaving directory `/compile/gpdf-2.10.0/xpdf'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/compile/gpdf-2.10.0/xpdf'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/compile/gpdf-2.10.0/xpdf'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/compile/gpdf-2.10.0'
make: *** [all] Error 2
To fix this, apply gpdf-2.10.0-unsignedint.patch. Put it in the parent directory of gpdf-2.10.0, cd to the gpdf-2.10.0 directory and run:
| $ patch -p1 < ../gpdf-2.10.0-unsignedint.patch |
After this compilation will still fail with:
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&)
make[4]: *** [TextOutputDev.o] Error 1
make[4]: Leaving directory `/compile/gpdf-2.10.0/xpdf'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/compile/gpdf-2.10.0/xpdf'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/compile/gpdf-2.10.0/xpdf'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/compile/gpdf-2.10.0'
make: *** [all] Error 2
To fix this, apply gpdf-2.10.0-classdeclare.patch, download it to the parent directory of gpdf-2.10.0, cd to the gpdf-2.10.0 directory and run:
| $ patch -p1 < ../gpdf-2.10.0-classdeclare.patch |
Now you can run make without errors.
To run make install though, the make process doesn't create the files:
gpdf-2.10.0/help/C/gpdf-C.omf.out
gpdf-2.10.0/help/de/gpdf-de.omf.out
gpdf-2.10.0/help/es/gpdf-es.omf.out
Download them:
gpdf-2.10.0/help/C/gpdf-C.omf.out
gpdf-2.10.0/help/de/gpdf-de.omf.out
gpdf-2.10.0/help/es/gpdf-es.omf.out
and put then in the respective directories.
Now make install will run.