Calligra on Windows: QtDBus

Ivan Miraglia miraglia.ivan at gmail.com
Wed May 23 12:52:06 BST 2012


I am sorry for my late response, I am currently on holiday and I do
not have the opportunity to read my emails very often.

First of all, I want to point out a couple of things to be more clear.

* I am using Microsoft Visual Studio 2010. I used the instructions at
the folowing link
http://community.kde.org/Calligra/Building_Calligra_on_Windows
and I applied some workarounds when something does not went smooth.
I think you are in the same situation.

* I compiled and run Krita on Windows successfully. It is the program
that I am interested to. I have no experience on building the rest of
Calligra suite. Of course, bulding kdelibs and other dependencies is
necessary for building Krita as well as other Calligra applications.

* I faced a couple of other problem before I have Krita compiled.

the most important is that the HEAD target for kdelibs, that the
emerge tool try to download and build by default, seems to be not
ready to be built with  Windows-VisualStudio (at least when I compiled
it, about one month ago).
I retarget emerge to version 4.8.2 that was the last KDE stable
release when I built it (http://www.kde.org/info/4.8.2.php).
I used the following command
emerge --target=4.8.2 kdelibs

probably the same thing must be done for building kde-runtime. I don't
remember for sure and I have not the opportunity to check it (because
I am on holiday).
You can list the available targets using the following emerge command
emerge --print-targets <package name>
the default target is marked with a star

* I used the Calliga master branch for building Calliga . As stated in
http://community.kde.org/Calligra/Building_Calligra_on_Windows
it is the development version, so I think it is natural facing some
little compiling issues that are platform/OS/compiler dependent.
I do not remember exactly what problem I have encountered. I fixed it
easily. it was a function declaration and function definition that
were not identical. After a month that I did it, it likely does not
matter because someone else has already fixed it :-)

I am sorry if some of the emerge commands that I reported are not
exact perfectly, please verify them with the emerge help.

I added the answers to your questions between the lines.

2012/5/16 Taco H. in den Bosch <taco at heddesit.nl>
>
> Hi Ivan,
>
> I think your workaround has worked and that I have now built the libdbusmenu component. Thanks. I do have the following questions:
>
> * The component above is normally built as part of "emerge kdelibs" which fails as discussed. Do you know whether the other components are built correctly, or is the build step interrupted and subsequent components not built?

the other components should build correctly after applying the patch
for dbusmenu-qt. the building process should restart where it stopped.
you can try to clean them if you think that it is needed. for sure,
there exists some emerge command for that.

Maybe you can apply the same trick used to dbusmenu-qt to some other
package. But this should be a last resort.

>
> * Is it safe to execute "emerge kdelibs" after your workaround, or would emerge redownload the defunct version?

I think that should be safe to execute "emerge kdelibs" after applying
my workaround. if the remote dbusmenu-qt has not changed, the defunct
version should not be resumed. To remove any doubt, I built the rest
of kdelibs components one by one.
You can list the packages that are still needed to build kdelibs using
the following command
emerge --p kdelibs

I hope that these answers are helpful.

Ivan


>
>
> Taco.
>
>
> ________________________________
> From: "ivan miraglia" <miraglia.ivan at gmail.com>
> Sent: Thursday, May 10, 2012 9:56 PM
>
> To: calligra-devel at kde.org
> Subject: Re: Calligra on Windows: QtDBus
>
>
> Hi Taco,
>
> you are right, I left out a few tricks that should be applied.
>
> If things are not changed since I did it, the archive containing the sources for dbusmenu-qt downloaded by emerge is named libdbusmenu-qt-0.9.2.tar.bz2 and the archive containing the sources for dbusmenu-qt downloaded by kdewin-installer is named dbusmenu-qt-vc100-20120130-src.tar.bz2. They have different sources inside and a slightly different directory structure.
>
> Inside your KDEROOT directory you should have a "download" directory where emerge puts downloaded archives before installing them (you should see libdbusmenu-qt-0.9.2.tar.bz2 there).
> I repacked the content of dbusmenu-qt-vc100-20120130-src.tar.bz2 with the same directory structure and name of libdbusmenu-qt-0.9.2.tar.bz2, you can download it from
> http://sites.google.com/site/ivanmiraglia001/dbusmenu-qt/libdbusmenu-qt-0.9.2.tar.bz2
>
> You should replace the official archive (KDEROOT\download\libdbusmenu-qt-0.9.2.tar.bz2) with my tricky archive. that will cheat emerge.
> After that you can execute:
> >> emerge --offline dbusmenu-qt
> now dbusmenu-qt should build.
> I know that this is not a clean solution.
>
> feel you free to ask if I was unclear or for any other problem.
>
> Ivan
>
>
>
>
> Il 10/05/2012 13:41, Taco H. in den Bosch ha scritto:
>
> Hi Ivan,
>
> I am trying to follow your suggestion and have installed (among others) the dbus and dbusmenu-qt components using the KDE installer. This has installed the sources and binaries of these components. However, it does not include the QtDBus directory of include files included by the Calligra sources, so I am still unable to compile Calligra.
>
> Did you use the installer for all dependency components, or did you combine some installed components with the 'emerge' tool, and if so, how? If not, what is your source for the required directory of include files?
>
> Your help is much appreciated.
>
> Taco.
>
>
> ________________________________
> From: "ivan miraglia" <miraglia.ivan at gmail.com>
> Sent: Wednesday, May 09, 2012 1:26 AM
> To: calligra-devel at kde.org
> Subject: Re: Calligra on Windows: QtDBus
>
> hello all,
> I'm new in the development of KDE/Calligra, so I think that my
> suggestions may not be the best one, but since I encountered the same
> problem two weeks ago and I solved it somehow, I share my simple solution.
>
> >From what I observed, the emerge tool downloads the source for the
> libdbusmenu-qt version 0.9.2 that are the same that I found at the
> following link:
> https://launchpad.net/libdbusmenu-qt (I think it is the official site of
> dbusmenu-qt library).
> This package is not suitable for building with Visual Studio as it is.
>
> At the following link
> http://windows.kde.org/download.php.
> you can download an installer that allows you to install many components
> of KDE on Windows.
> During installation process you can choose to download also/only the
> sources of KDE components (and their dependencies).
> I downloaded the sources for libdbusmenu-qt. The version is 0.9.0 that
> is sufficient to continue the building process. I used it instead of the
> one downloaded by emerge tool.
>
> I suppose that the same changes that are present in the sources
> downloaded by kdewin-installer can be merged into libdbusmenu-qt version
> 0.9.2.
>
> Ivan
>
>
>
> > Date: Tue, 8 May 2012 12:50:40 -0300
> > From: Andrius da Costa Ribas<andriusmao at gmail.com>
> > To: Calligra Suite developers and users mailing list
> > <calligra-devel at kde.org>
> > Subject: Re: Calligra on Windows: QtDBus
> > Message-ID:
> > <CADzOArHY=bGrkAJ3XWcTAbWoBY12SQG49e_Aik+ypjfya9RDJg at mail.gmail.com>
> > Content-Type: text/plain; charset="iso-8859-1"
> >
> > __PRETTY_FUNCTION__ is gcc only, I think, I've ifdef'd some of those in the
> > past. MSVC equivalent is __FUNCSIG__
> > Em 08/05/2012 11:31, "Stuart Dickson"<stuart.dickson at kogmbh.com> escreveu:
> >
> >> Hi Taco,
> >>
> >> I can confirm that I receive the same build error with the kde-4.8 and the
> >> latest version of emerge.
> >>
> >> I'll ask the folks on the kde-windows community if there is a patch for
> >> this yet, I thought one had been prepared, but it's possible that it's not
> >> been merged yet.
> >>
> >> - Stuart
> >>
> >>
> >> On 08/05/2012 16:27, Taco H. in den Bosch wrote:
> >>
> >> Hi Boudewijn,
> >>
> >> thanks for your response. I tried building using the emerge tool, and I
> >> have tried once more after your response. However, in both cases I get
> >> errors during the build process.
> >>
> >> I am not sure if I now get the same errors as before, but at least in the
> >> current case I get compilation errors in the QtDBus component. I have
> >> pasted some of the compiler output below.
> >>
> >> To me these seem like basic compiler dependent problems, but I am using
> >> Visual Studio 2010 as suggested in the build instructions.
> >>
> >> Do you (or does anyone) have suggestions how to fix this?
> >>
> >> Taco.
> >>
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(52) : error C2065: '__PRETTY_FUNCTION__' : undeclared
> >> identifie
> >> r
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(52) : error C2228: left of '.space' must have
> >> class/struct/unio
> >> n
> >> C:\oss\kde\include\QtCore/qglobal.h(2362) : warning C4512:
> >> 'QForeachContainer<T>
> >> ' : assignment operator could not be generated
> >> with
> >> [
> >> T=QList<QAction *>
> >> ]
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\
> >> src\dbusmenuexporter.cpp(64) : see reference to class template
> >> instantiation 'QF
> >> oreachContainer<T>' being compiled
> >> with
> >> [
> >> T=QList<QAction *>
> >> ]
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(71) : error C2065: '__PRETTY_FUNCTION__' : undeclared
> >> identifie
> >> r
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(71) : error C2228: left of '.space' must have
> >> class/struct/unio
> >> n
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(91) : error C2065: '__PRETTY_FUNCTION__' : undeclared
> >> identifie
> >> r
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(91) : error C2228: left of '.space' must have
> >> class/struct/unio
> >> n
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(93) : error C2065: '__PRETTY_FUNCTION__' : undeclared
> >> identifie
> >> r
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(93) : error C2228: left of '.space' must have
> >> class/struct/unio
> >> n
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(95) : error C2065: '__PRETTY_FUNCTION__' : undeclared
> >> identifie
> >> r
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(95) : error C2228: left of '.space' must have
> >> class/struct/unio
> >> n
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(163) : error C2065: '__PRETTY_FUNCTION__' : undeclared
> >> identifi
> >> er
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(163) : error C2228: left of '.space' must have
> >> class/struct/uni
> >> on
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(188) : error C2065: '__PRETTY_FUNCTION__' : undeclared
> >> identifi
> >> er
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(188) : error C2228: left of '.space' must have
> >> class/struct/uni
> >> on
> >> C:\oss\kde\include\QtCore/qglobal.h(2362) : warning C4512:
> >> 'QForeachContainer<T>
> >> ' : assignment operator could not be generated
> >> with
> >> [
> >> T=QSet<int>
> >> ]
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\
> >> src\dbusmenuexporter.cpp(369) : see reference to class template
> >> instantiation 'Q
> >> ForeachContainer<T>' being compiled
> >> with
> >> [
> >> T=QSet<int>
> >> ]
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(469) : error C2065: '__PRETTY_FUNCTION__' : undeclared
> >> identifi
> >> er
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(469) : error C2228: left of '.space' must have
> >> class/struct/uni
> >> on
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(485) : error C2065: '__PRETTY_FUNCTION__' : undeclared
> >> identifi
> >> er
> >>
> >> c:\oss\kde\build\kdesupport\dbusmenu-qt-0.9.2\work\libdbusmenu-qt-0.9.2\src\dbus
> >> menuexporter.cpp(485) : error C2228: left of '.space' must have
> >> class/struct/uni
> >> on
> >> emerge debug: Task: Emerge stopped after: 0:06:24.050000
> >>
> >> ------------------------------
> >> *From*: "Boudewijn Rempt"<boud at valdyas.org> <boud at valdyas.org>
> >> *Sent*: Tuesday, May 08, 2012 11:04 AM
> >> *To*: taco at heddesit.nl, "Calligra Suite developers and users mailing
> >> list"<calligra-devel at kde.org> <calligra-devel at kde.org>
> >> *Subject*: Re: Calligra on Windows: QtDBus
> >>
> >> On Tue, 8 May 2012, Taco H. in den Bosch wrote:
> >>
> >>> Hi everybody,
> >>>
> >>> I am trying to build Calligra Words on Windows. This is mostly working,
> >> except that a number of important
> >>> classes (prominently KoDocument) depend on the QtDBus component which is
> >> not provided on windows (at least
> >>> not in the version 4.8.1 of Qt that I am using).
> >>>
> >>> There is a Windows build of calligra, maintained by KO GmbH (
> >> www.kogmbh.com), so they must have found a way
> >>> around this. Can anybody tell me how this is done? I see no facility in
> >> the source code to remove the
> >>> dependency on QtDBus, so I imagine that they in some way make this
> >> component available in Windows. I have
> >>> found a couple of references on the internet about doing this, but it
> >> seems incomplete and not very
> >>> dependable.
> >>>
> >>> Any pointers in the right direction are appreciated.
> >>>
> >> Hi Taco!
> >>
> >> We've short-circuited the base dependency part of calligra by using KDE's
> >> windows emerge tool. That builds all the base parts, including dbus on
> >> windows, and that enables the Qt dbus library as well. THere's been some
> >> talk of making dbus optional or making it use windows' native ipc, but no
> >> code has been written yet.
> >>
> >> You can find instructions on how to build calligra on windows at:
> >>
> >> http://techbase.kde.org/Projects/KDE_on_Windows
> >>
> >> and
> >>
> >> http://community.kde.org/Calligra/Building_Calligra_on_Windows
> >>
> >> Boudewijn
> >> _______________________________________________
> >> calligra-devel mailing list
> >> calligra-devel at kde.org
> >> https://mail.kde.org/mailman/listinfo/calligra-devel
> >>
> >>
> >> _______________________________________________
> >> calligra-devel mailing listcalligra-devel at kde.orghttps://mail.kde.org/mailman/listinfo/calligra-devel
> >>
> >>
> >>
> >> -- Stuart Dickson // KO GmbH http://kogmbh.com/legal/
> >>
> >> _______________________________________________
> >> calligra-devel mailing list
> >> calligra-devel at kde.org
> >> https://mail.kde.org/mailman/listinfo/calligra-devel
> >>
> >>
> >
>
> _______________________________________________
> calligra-devel mailing list
> calligra-devel at kde.org
> https://mail.kde.org/mailman/listinfo/calligra-devel
>
>
> _______________________________________________
> calligra-devel mailing list
> calligra-devel at kde.org
> https://mail.kde.org/mailman/listinfo/calligra-devel
>
>
>
> _______________________________________________
> calligra-devel mailing list
> calligra-devel at kde.org
> https://mail.kde.org/mailman/listinfo/calligra-devel
>



More information about the calligra-devel mailing list