Other Ångström tips

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.


.