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 */ ****************************
_______________________________________________ calligra-devel mailing list calligra-devel@kde.org https://mail.kde.org/mailman/listinfo/calligra-devel