Suggested Bug Fixes

Stephen Leibowitz librestephen at gmail.com
Mon Oct 20 21:29:33 BST 2014


I am suggesting a number of fixes to Calligra. They are meant to address
problems in its Windows builds as shown in the last entry here:
http://www.winkde.org/pub/kde/ports/win32/dashboard/release/

Some of the fixes might also be helpful for non-Windows builds.

As an aside, the Calligra version used in the build at winkde.org is 2.7.90
(2.8 beta). It appears that the problems shown in the build are still there
in the most recent Calligra version. But it would be nice if winkde.org
would move to Calligra version 2.8.6, or 2.9 when available.

My suggested fixes are shown below. I am unsure if the rich text formatting
will show on this posting to the mailing list. So I have also put a rich
text version on my website. The formatting makes it easier to understand:
tinyurl.com/sleibowitz/SL_Fixes_141020.rtf
Stephen Leibowitz
____________________________________

The Build Overview at:
http://www.winkde.org/pub/kde/ports/win32/dashboard/release/

shows that the mingw-w32 and mingw-w64 builds of Calligra 2.7.90 failed.
The detail for mingw-w64 is here:
http://winkde.org/pub/kde/ports/win32/repository-4.12/logs/log-mingw-w64-kdeapps_calligra.txt

*This is a section of that build log:*

In file included from sqlscanner.cpp:644:0:
h:/build/kdeapps/calligra-20120805/work/calligra-2.7.90/winquirks/unistd.h:119:13:
error: conflicting declaration 'typedef int mode_t'

 typedef int mode_t;
             ^

In file included from H:/include/mingw/sys/types.h:23:0,
                 from H:/include/mingw/stdio.h:29,
                 from sqlscanner.cpp:20:
h:\mingw64\x86_64-w64-mingw32\include\sys\types.h:77:17: error: 'mode_t'
has a previous declaration as 'typedef _mode_t mode_t'

 typedef _mode_t mode_t;
                 ^
***

*The following code segment is from:*
https://openmodelica.org/svn/OpenModelicaExternal/trunk/tools/windows/OMDev/tools/mingw64/x86_64-w64-mingw32/include/sys/types.h

#ifndef _MODE_T_
#define _MODE_T_
typedef unsigned short _mode_t;

#ifndef NO_OLDNAMES
typedef _mode_t mode_t;
#endif
#endif  /* Not _MODE_T_ */

***

*Here is a segment in calligra-2.8.5\winquirks\unistd.h:*
#ifndef _MODE_T_
#define _MODE_T_
typedef int mode_t;
#endif

*I suggest changing the typedef in unistd.h       (CHANGE 1):*
#ifndef _MODE_T_
#define _MODE_T_
typedef unsigned short mode_t;
#endif

****************************

*The Calligra 2.7.90 build log using mingw-w64 mentioned above also gives
this error message:*

In file included from sqlscanner.cpp:644:0:
h:/build/kdeapps/calligra-20120805/work/calligra-2.7.90/winquirks/unistd.h:124:13:
error: conflicting declaration 'typedef int pid_t'

 typedef int pid_t;
             ^

In file included from H:/include/mingw/sys/types.h:23:0,
                 from H:/include/mingw/stdio.h:29,
                 from sqlscanner.cpp:20:
h:\mingw64\x86_64-w64-mingw32\include\sys\types.h:68:16: error: 'pid_t' has
a previous declaration as 'typedef _pid_t pid_t'

 typedef _pid_t pid_t;
                ^
***

*The following code segment is from:*
https://openmodelica.org/svn/OpenModelicaExternal/trunk/tools/windows/OMDev/tools/mingw64/x86_64-w64-mingw32/include/sys/types.h
#ifndef _PID_T_
#define _PID_T_
#ifndef _WIN64
typedef int     _pid_t;
#else
__MINGW_EXTENSION
typedef __int64 _pid_t;
#endif

#ifndef NO_OLDNAMES
#undef pid_t
typedef _pid_t  pid_t;
#endif
#endif  /* Not _PID_T_ */

***

*Here is a segment in calligra-2.8.5\winquirks\unistd.h:*
#ifndef pid_t
typedef int pid_t;
#endif

*I suggest replacing the 3-line unistd.h segment with       (CHANGE 2):*
#ifndef pid_t
#ifndef _WIN64
typedef int     pid_t;
#else
typedef __int64 pid_t;
#endif
#endif

****************************

*Here is line 116 of calligra-2.8.5\winquirks\unistd.h*
#if _MSC_VER < 1600
*I suggest replacing it with       (CHANGE 3):*
#if defined(_MSC_VER) && _MSC_VER < 1600


*Here is line 184 of calligra-2.8.5\3rdparty\kdgantt\kdganttglobal.h*
#if _MSC_VER >= 1300
*I suggest replacing it with       (CHANGE 4):*
#if defined(_MSC_VER) && _MSC_VER >= 1300

****************************

The Calligra 2.7.90 build log using msvc2010 is at:
http://winkde.org/pub/kde/ports/win32/repository-4.12/logs/log-msvc2010-kdeapps_calligra.txt

In two places it gives this warning concerning sqlscanner.cpp:
warning C4003: not enough actual parameters for macro 'yywrap'

*Here is line 344 of calligra-2.8.5\libs\db\parser\sqlscanner.cpp*
#define yywrap(n) 1
*I suggest replacing it with       (CHANGE 5):*
#define yywrap() 1

****************************

The Calligra 2.7.90 build log using msvc2010 gives this warning concerning
msghandler.cpp:
'KexiDB::MessageHandler::askQuestion' : recursive on all control paths,
function will cause runtime stack overflow

*Here are lines 81 and 82 of calligra-2.8.5\libs\db\msghandler.cpp*
        return askQuestion(message, dlgType, defaultResult, buttonYes,
                           buttonNo, dontShowAskAgainName, options);
*I suggest using this function instead       (CHANGE 6):*
        return askQuestionInternal(message, dlgType, defaultResult,
buttonYes,
                           buttonNo, dontShowAskAgainName, options);

****************************

The Calligra 2.7.90 build log using msvc2010 gives this warning concerning
taskworkpackageview.cpp:
'*/' found outside of comment

*Here is line 187 of
calligra-2.8.5\plan\workpackage\taskworkpackageview.cpp*
void TaskWorkPackageTreeView::dragMoveEvent(QDragMoveEvent */*event*/)
*I suggest removing the comment       (CHANGE 7):*
void TaskWorkPackageTreeView::dragMoveEvent(QDragMoveEvent *event)

****************************

The Calligra 2.7.90 build log using msvc2010 gives this warning in 5 places
concerning taskworkpackagemodel.cpp:
'*/' found outside of comment

*Here is line 98 of
calligra-2.8.5\plan\workpackage\taskworkpackagemodel.cpp*
void TaskWorkPackageModel::slotNodeInserted( Node */*node*/ )
*I suggest removing the comment       (CHANGE 8):*
void TaskWorkPackageModel::slotNodeInserted( Node *node )

*Here is line 111 of
calligra-2.8.5\plan\workpackage\taskworkpackagemodel.cpp*
void TaskWorkPackageModel::slotNodeRemoved( Node */*node*/ )
*I suggest removing the comment       (CHANGE 9):*
void TaskWorkPackageModel::slotNodeRemoved( Node *node )

*Here is line 127 of
calligra-2.8.5\plan\workpackage\taskworkpackagemodel.cpp*
void TaskWorkPackageModel::slotDocumentAdded( Node *node, Document
*/*doc*/, int row )
*I suggest removing the comment       (CHANGE 10):*
void TaskWorkPackageModel::slotDocumentAdded( Node *node, Document *doc,
int row )

*Here is line 136 of
calligra-2.8.5\plan\workpackage\taskworkpackagemodel.cpp*
void TaskWorkPackageModel::slotDocumentRemoved( Node *node, Document
*/*doc*/, int row )
*I suggest removing the comment       (CHANGE 11):*
void TaskWorkPackageModel::slotDocumentRemoved( Node *node, Document *doc,
int row )

*Here is line 145 of
calligra-2.8.5\plan\workpackage\taskworkpackagemodel.cpp*
void TaskWorkPackageModel::slotDocumentChanged( Node *node, Document
*/*doc*/, int row )
*I suggest removing the comment       (CHANGE 12):*
void TaskWorkPackageModel::slotDocumentChanged( Node *node, Document *doc,
int row )

****************************

The Calligra 2.7.90 build log using msvc2010 gives this warning in 2 places
concerning workpackage.cpp:
'*/' found outside of comment

*Here is line 109 of calligra-2.8.5\plan\workpackage\workpackage.cpp*
bool WorkPackage::addChild( Part */*part*/, const Document *doc )
*I suggest removing the comment       (CHANGE 13):*
bool WorkPackage::addChild( Part *part, const Document *doc )

*Here is line 300 of calligra-2.8.5\plan\workpackage\workpackage.cpp*
bool WorkPackage::saveNativeFormat( Part */*part*/, const QString &path )
*I suggest removing the comment       (CHANGE 14):*
bool WorkPackage::saveNativeFormat( Part *part, const QString &path )

****************************
The Calligra 2.7.90 build log using msvc2010 gives this warning concerning
part.cpp:
'*/' found outside of comment

*Here is line 828 of calligra-2.8.5\plan\workpackage\part.cpp*
bool Part::completeSaving( KoStore */*store*/ )
*I suggest removing the comment       (CHANGE 15):*
bool Part::completeSaving( KoStore *store )

****************************

*Here is a section of calligra-2.8.5\winquirks\unistd.h starting at line
165:*

#ifdef __cplusplus
extern "C" {
#endif

#if 0
int setenv(const char *name, const char *value, int overwrite);
int unsetenv (const char *name);
#endif
#ifdef __cplusplus
}
#endif

*For clarity, I suggest replacing it with       (CHANGE 16):*

#ifdef __cplusplus
extern "C" {

#if 0
int setenv(const char *name, const char *value, int overwrite);
int unsetenv (const char *name);
#endif

}
#endif  /* __cplusplus */

****************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20141020/ede3eeec/attachment.htm>


More information about the calligra-devel mailing list