diff --git a/abiword-2.2.5-pt64.patch b/abiword-2.2.5-pt64.patch new file mode 100644 index 0000000..8120fa0 --- /dev/null +++ b/abiword-2.2.5-pt64.patch @@ -0,0 +1,26 @@ +diff -r -u abiword-2.2.5.orig/abi/src/text/ptbl/xp/pp_TableAttrProp.cpp abiword-2.2.5/abi/src/text/ptbl/xp/pp_TableAttrProp.cpp +--- abiword-2.2.5.orig/abi/src/text/ptbl/xp/pp_TableAttrProp.cpp 2004-04-03 19:48:28.000000000 +0200 ++++ abiword-2.2.5/abi/src/text/ptbl/xp/pp_TableAttrProp.cpp 2005-03-15 21:33:41.519703662 +0100 +@@ -53,10 +53,9 @@ + static UT_sint32 compareAPBinary(const void * vX1, const void * vX2) + { + // +-// vX1 is actually the key value (a UT_uint32 checkSum) cast into a +-// void * pointer so this cast is correct even on a 64 bit machine ++// vX1 is actually a pointer to a UT_uint32 key value (a checkSum) + // +- UT_uint32 u1 = ((UT_uint32) (vX1)); ++ UT_uint32 u1 = *((UT_uint32*) (vX1)); + PP_AttrProp *x2 = *(PP_AttrProp **)(vX2); + UT_uint32 u2 = x2->getCheckSum(); + +@@ -176,7 +175,8 @@ + // VC6 complains about not being able to convert from + // 'const class UT_Vector *' to 'class UT_Vector &' + // so I put in the cast to shut it up +- k = ((UT_Vector &)m_vecTableSorted).binarysearch(reinterpret_cast(pMatch->getCheckSum()), compareAPBinary); ++ UT_uint32 checksum = pMatch->getCheckSum(); ++ k = ((UT_Vector &)m_vecTableSorted).binarysearch(reinterpret_cast(&checksum), compareAPBinary); + UT_uint32 cksum = pMatch->getCheckSum(); + + if (k == -1) diff --git a/abiword-2.2.5-virtdestr.patch b/abiword-2.2.5-virtdestr.patch new file mode 100644 index 0000000..00be42f --- /dev/null +++ b/abiword-2.2.5-virtdestr.patch @@ -0,0 +1,59 @@ +diff -u -r abiword-2.2.5.orig/abi/src/af/gr/xp/gr_Graphics.h abiword-2.2.5/abi/src/af/gr/xp/gr_Graphics.h +--- abiword-2.2.5.orig/abi/src/af/gr/xp/gr_Graphics.h 2005-01-01 01:16:58.000000000 +0100 ++++ abiword-2.2.5/abi/src/af/gr/xp/gr_Graphics.h 2005-03-15 21:05:32.020613488 +0100 +@@ -247,6 +247,8 @@ + class GR_AllocInfo + { + public: ++ virtual ~GR_AllocInfo() {} ++ + virtual GR_GraphicsId getType() const {UT_ASSERT_HARMLESS(UT_NOT_IMPLEMENTED); return GRID_UNKNOWN;} + virtual bool isPrinterGraphics()const {UT_ASSERT_HARMLESS(UT_NOT_IMPLEMENTED); return false;} + }; +diff -u -r abiword-2.2.5.orig/abi/src/af/gr/xp/gr_Image.h abiword-2.2.5/abi/src/af/gr/xp/gr_Image.h +--- abiword-2.2.5.orig/abi/src/af/gr/xp/gr_Image.h 2004-03-18 17:00:48.000000000 +0100 ++++ abiword-2.2.5/abi/src/af/gr/xp/gr_Image.h 2005-03-15 21:05:32.040610718 +0100 +@@ -79,6 +79,8 @@ + class ABI_EXPORT GR_ImageFactory + { + public: ++ virtual ~GR_ImageFactory() {} ++ + virtual GR_Image* createNewImage(const char* pszName, GR_Image::GRType iType = GR_Image::GRT_Raster) = 0; + }; + +diff -u -r abiword-2.2.5.orig/abi/src/af/util/xp/ut_TextIterator.h abiword-2.2.5/abi/src/af/util/xp/ut_TextIterator.h +--- abiword-2.2.5.orig/abi/src/af/util/xp/ut_TextIterator.h 2004-03-10 23:03:21.000000000 +0100 ++++ abiword-2.2.5/abi/src/af/util/xp/ut_TextIterator.h 2005-03-15 21:05:32.063607531 +0100 +@@ -104,6 +104,7 @@ + class ABI_EXPORT UT_TextIterator + { + public: ++ virtual ~UT_TextIterator() {} + + ///////////////////////////////////////////////////////////////////////// + // data accessor; retrieves character at present position +diff -u -r abiword-2.2.5.orig/abi/src/af/xap/xp/xap_AppImpl.h abiword-2.2.5/abi/src/af/xap/xp/xap_AppImpl.h +--- abiword-2.2.5.orig/abi/src/af/xap/xp/xap_AppImpl.h 2004-02-06 12:13:47.000000000 +0100 ++++ abiword-2.2.5/abi/src/af/xap/xp/xap_AppImpl.h 2005-03-15 21:05:32.084604622 +0100 +@@ -27,6 +27,8 @@ + class XAP_AppImpl + { + public: ++ virtual ~XAP_AppImpl() {} ++ + static XAP_AppImpl* static_constructor(void); /* must be implemented by the ap_AppImpl */ + + /* XAP_App can call impl methods. */ +diff -u -r abiword-2.2.5.orig/abi/src/af/xap/xp/xav_Listener.h abiword-2.2.5/abi/src/af/xap/xp/xav_Listener.h +--- abiword-2.2.5.orig/abi/src/af/xap/xp/xav_Listener.h 2004-10-05 12:25:42.000000000 +0200 ++++ abiword-2.2.5/abi/src/af/xap/xp/xav_Listener.h 2005-03-15 21:05:32.104601851 +0100 +@@ -94,6 +94,8 @@ + class AV_Listener + { + public: ++ virtual ~AV_Listener() {} ++ + virtual bool notify(AV_View * pView, const AV_ChangeMask mask) = 0; + virtual AV_ListenerType getType(void) = 0; + }; diff --git a/abiword.spec b/abiword.spec index 6fc5a85..4f5d78a 100644 --- a/abiword.spec +++ b/abiword.spec @@ -3,7 +3,7 @@ Summary: The AbiWord word processor Name: abiword Version: 2.2.5 -Release: 2 +Release: 3 Epoch: 1 Group: Applications/Editors License: GPL @@ -42,6 +42,8 @@ Patch0: abiword-2.0.9-windowshelppaths.patch Patch1: abiword-2.2.1-desktop.patch Patch2: abiword-2.2.5-gcc4.patch Patch3: abiword-2.2.5-wvread.patch +Patch4: abiword-2.2.5-virtdestr.patch +Patch5: abiword-2.2.5-pt64.patch %description AbiWord is a cross-platform Open Source word processor. The goal is to make @@ -53,6 +55,8 @@ AbiWord full-featured, and remain lean. %patch1 -p1 -b .desktop %patch2 -p1 -b .gcc4 %patch3 -p1 -b .wvread +%patch4 -p1 -b .virtdestr +%patch5 -p1 -b .pt64 %build cd abi @@ -131,6 +135,10 @@ update-desktop-database %{_datadir}/applications %{_datadir}/icons/*png %changelog +* Fri Mar 15 2005 Marc Maurer - 1:2.2.5-3 +- Fix 64bit build +- Add virtual destructors to classes with virtual functions + * Fri Mar 14 2005 Marc Maurer - 1:2.2.5-2 - Remove the --disable-magick plugin switch - disable GDA support until the plugin is ported to gnomedb 1.2.x