Hi Stephen, If you've got a patch, I can give it a try and see whether it breaks the Krita and/or Calligra Gemini builds. We don't use mingw for Krita because it results in a much slower, much bigger binary. The winquirks stuff is a kind of hack around stuff missing in msvc, and I guess that that's where most of the conflicts you see come from.
As for updating the winkde build, I guess we'd need to ping the people on the kde-windows mailing list. On Monday 20 October 2014 Oct 16:29:33 Stephen Leibowitz wrote: > 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 */ > > **************************** -- Boudewijn Rempt http://www.valdyas.org, http://www.krita.org _______________________________________________ calligra-devel mailing list calligra-devel@kde.org https://mail.kde.org/mailman/listinfo/calligra-devel