Version: unspecified (using Devel) OS: Linux Since recent commit 7255604855f332abaae22969b42e7ef01194f3d7 in shared-desktop-ontologies, KDEPIM from 4.4 branch no longer compiles. Error message is: /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp: In member function 'void AkonadiFuture::NepomukContactFeeder::updateContactItem(const Akonadi::Item&, const QUrl&)': /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:104:13: error: 'class NepomukFast::PersonContact' has no member named 'setNameGivens' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:110:13: error: 'class NepomukFast::PersonContact' has no member named 'setNameFamilys' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:159:14: error: 'class NepomukFast::BbsNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:163:14: error: 'class NepomukFast::CarPhoneNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:167:14: error: 'class NepomukFast::CellPhoneNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:171:14: error: 'class NepomukFast::FaxNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:175:14: error: 'class NepomukFast::IsdnNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:179:14: error: 'class NepomukFast::MessagingNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:183:14: error: 'class NepomukFast::ModemNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:187:14: error: 'class NepomukFast::PagerNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:191:14: error: 'class NepomukFast::PcsNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:195:14: error: 'class NepomukFast::VideoTelephoneNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:199:14: error: 'class NepomukFast::VoicePhoneNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:203:14: error: 'class NepomukFast::PhoneNumber' has no member named 'setPhoneNumbers' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:222:13: error: 'class NepomukFast::PostalAddress' has no member named 'setStreetAddresses' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:230:15: error: 'class NepomukFast::PostalAddress' has no member named 'addPobox' /local/svn/kde/branches/KDE/4.4/kdepim/runtime/agents/nepomuk_contact_feeder/nepomukcontactfeeder.cpp:233:13: error: 'class NepomukFast::PostalAddress' has no member named 'setExtendedAddresses' make[2]: *** [runtime/agents/nepomuk_contact_feeder/CMakeFiles/akonadi_nepomuk_contact_feeder.dir/nepomukcontactfeeder.o] Error 1 Reproducible: Didn't try
The same error also happens when compiling today's kdepim-runtime from master branch. This means the bug is most certainly in shared-desktop-ontologies. Reassigning accordingly.
The bug is related to the use of "nrl:maxCardinality 1" in nco. Either nco needs to be reverted or kdepim-runtime updated to not include the list forms.
I think kdepim-runtime will have to be updated. Many of the ontologies do not have their cardinalities set which is wrong, and causes major problem in other places. AFAIK, the only change that would have occurred is that the properties whose cardinality has been set would now not contain the respective addPropertyName() function, and the setPropertyName() function would take 'T' instead of a 'QList<T>'
(In reply to comment #3) > I think kdepim-runtime will have to be updated. > That wouldn't fix the source incompatible change in SDO. kdepim already have a couple versions released which fail to compile with recent shared desktop ontologies
Just to clarify a little bit - The source incompatibility is not actually there in SDO. The ontologies are read by a helper program called the "Nepomuk Resource Generator" which is present in kdelibs/nepomuk/rcgen/*. This generator produces C++ code from the ontologies, which is used in kdepim. The 'nepomuk-rcgen' is invoked via a cmake function before compiling kdepim.
Adding the release_blocker keyword. Dirk, please don't tag beta 1 until this issue is fixed. Sebastian, can you take care of this please. [quote] Like I already said: patching rcgen seems like the best solution to me and that is so trivial I can have finished it today [/quote]
Created attachment 60154 [details] Patches up the rcgen I've patched up rc-gen, but I haven't tested building kdepim-4.6 with this patch. I think it should build, cause I've fixed the issue, but someone should test it out.
Created attachment 60159 [details] Handle properties with nrl:cardinality==1 I've cleaned up the earlier patch and added those extra functions for properties with nrl:cardinality==1 as well.
Looks correct, both kdepim-runtime 4.4 and 4.6 build against kdelibs master now. kdepim/nepomuk_email_feeder also builds for 4.4 and 4.6
Git commit 1f796983aa8385da77f30813041b40e208c17391 by Vishesh Handa. Committed on 19/05/2011 at 17:22. Pushed by vhanda into branch 'master'. Make KDEPIM 4.6 compile with master This makes the rcgen produce add/setProperty( QList<T> ) functions for properties with nrl:maxCardinality and nrl:cardinality = 1. This was required because with SDO 0.7 the cardinalities of many properties have been set. BUG: 268595 M +103 -44 nepomuk/rcgen/codegenerator.cpp M +7 -0 nepomuk/rcgen/codegenerator.h M +8 -1 nepomuk/rcgen/ontologyparser.cpp M +24 -1 nepomuk/rcgen/property.cpp M +21 -0 nepomuk/rcgen/property.h http://commits.kde.org/kdelibs/1f796983aa8385da77f30813041b40e208c17391