stefan-langenmaier / jami-overlay

Jami (formerly Ring (formerly SFLphone)) is a SIP compatible softphone for GNU/Linux.
GNU General Public License v3.0
22 stars 9 forks source link

Missing dev-qt/qtquickcontrols2 dependency for net-voip/kde-ring #39

Closed martijn-schmidt closed 7 years ago

martijn-schmidt commented 7 years ago

Hi all,

It seems net-voip/kde-ring-99999999::ring-overlay is missing a dependency on dev-qt/qtquickcontrols2 in its ebuild. After manually emerging that package, and using the CMAKE_IN_SOURCE_BUILD="true" flag trick referenced in https://github.com/stefan-langenmaier/ring-overlay/issues/33 I was able to build successfully.

Installing is another matter due to file collisions with libringclient, I will open a separate issue for that.

Best regards, Martijn Schmidt

stefan-langenmaier commented 7 years ago

Thanks for the feedback, I'll try to look into it on the weekend.

YogSottot commented 7 years ago

Updated deps.

    $(add_frameworks_dep kcompletion)
    $(add_frameworks_dep kconfig)
    $(add_frameworks_dep kcrash)
    $(add_frameworks_dep kdbusaddons)
    $(add_frameworks_dep kdeclarative)
    $(add_frameworks_dep kglobalaccel)
    $(add_frameworks_dep kguiaddons)
    $(add_frameworks_dep ki18n)
    $(add_frameworks_dep kiconthemes)
    $(add_frameworks_dep kinit)
    $(add_frameworks_dep kio)
    $(add_frameworks_dep knotifications)
    $(add_frameworks_dep knotifyconfig)
    $(add_frameworks_dep kwidgetsaddons)
    $(add_frameworks_dep kwindowsystem)
    $(add_frameworks_dep kxmlgui)
    $(add_qt_dep qtgui)
    $(add_qt_dep qtprintsupport)
    $(add_qt_dep qtquickcontrols2)
    $(add_qt_dep qtsvg)
    $(add_qt_dep qtwidgets)
    akonadi? ( $(add_kdeapps_dep akonadi) $(add_kdeapps_dep akonadi-contacts) $(add_kdeapps_dep kcontacts) )
stefan-langenmaier commented 7 years ago

Is it correct that qtopengl is gone?

YogSottot commented 7 years ago

Yes. cmake: Drop all OpenGL code · KDE/ring-kde@26ed296

qtopnegl deleted and added kdeclarative qtquickcontrols2

stefan-langenmaier commented 7 years ago

Thanks! I'll take your current branch and have a look.

YogSottot commented 7 years ago

It's sad, but my current branch does not work properly. File collisions are still present, and I do not understand how to make kde-ring use the system libringclient.

stefan-langenmaier commented 7 years ago

It's a pity with system libringclient but it would already be a start if we could install it. It might be enough to make the two an exclusive install. You won't be able to have gnome-ring and kde-ring installed at the same time, but at least it would be a clean install.

stefan-langenmaier commented 7 years ago

The dependencies are now up-to-date and the compilation works at least for the snapshot of kde-ring. There seems to be another problem with the master branch of upstream.

YogSottot commented 7 years ago

Tried this snapshot and get

var/tmp/portage/net-voip/kde-ring-20170813/work/kde-ring-20170813/src/qmlwidgets/recentfilemodel.cpp:22:35: fatal error: ../klib/kcfg_settings.h: No such file or directory
compilation terminated.
make[2]: *** [src/qmlwidgets/CMakeFiles/libqmlwidgets.dir/build.make:375: src/qmlwidgets/CMakeFiles/libqmlwidgets.dir/recentfilemodel.cpp.o] Error 1
make[2]: Leaving directory '/var/tmp/portage/net-voip/kde-ring-20170813/work/kde-ring-20170813'
make[1]: *** [CMakeFiles/Makefile2:740: src/qmlwidgets/CMakeFiles/libqmlwidgets.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

kde-frameworks/kconfig-5.37.0 is installed

stefan-langenmaier commented 7 years ago

I've got kde-frameworks/kconfig-5.34.0 installed. Should the dependency version be specified more precisely?

YogSottot commented 7 years ago

5.37.0 is marked as unstable now. I opened the bug on the kde-ring' bugtracker. I suggest waiting for a while, maybe @Elv13 will fix these problems.

Elv13 commented 7 years ago

Fix pushed. Sorry, there was a refactoring after 3.0.0-alpha1 was merged into master and it broke the kind of build environment used by the ebuild.

https://www.youtube.com/watch?v=AYba9uepFzs

As I said, 3.0.0-a1 was just merged after being branched for 3 months. I am already fixing all the new issues (it's a complete rewrite) and would really, really appreciate as many bugs reports as possible on bugs.kde.org so the stable release is "stable".

YogSottot commented 7 years ago

Thank you @Elv13 . The problem is solved. I filed another bug about file collisions.

In addition, after launching I have some warnings, I do not know if it should be submitted to bugtracker

>ring-kde 
Updating all accounts
Loading vcf from: QDir( "/home/user/.local/share//ring-kde/profiles" , nameFilters = { "*" },  QDir::SortFlags( Name | IgnoreCase ) , QDir::Filters( Dirs|Files|Drives|AllEntries ) )
QMetaType::registerTypedef: -- Type name 'Account*' previously registered as typedef of 'Account*' [1091], now registering as typedef of 'const Account*' [1093].
QDBusMarshaller: type `VectorString' attempts to redefine basic D-BUS type 'as' (QStringList) (Did you forget to call beginStructure() ?)
QDBusMarshaller: type `MapStringVectorString' produces invalid D-BUS signature `a{s}' (Did you forget to call beginStructure() ?)
QDBusMarshaller: type `QMap<QString,MapStringVectorString>' produces invalid D-BUS signature `a{s}' (Did you forget to call beginStructure() ?)
QQmlExpression: Expression qrc:/CreateRing.qml:109:19 depends on non-NOTIFYable properties:
    WelcomeDialog::defaultUserName
qrc:/ImportRing.qml:119: ReferenceError: item1 is not defined
QDBusConnection: name 'cx.ring.Ring' had owner '' but we thought it was ':1.255'
Bookmarks doesn't exist or is not readable
qrc:/ContactInfo.qml:226:13: QML SwipeView: Binding loop detected for property "currentIndex"
registered name found for unknown account ""
qrc:/ImportRing.qml:119: ReferenceError: item1 is not defined
qrc:/ImportRing.qml:119: ReferenceError: item1 is not defined
qrc:/FirstRun.qml:21:4: QML : Cannot open: qrc:/assets/search.png
qrc:/FirstRun.qml:21:4: QML : Cannot open: qrc:/assets/newcontact.png
qrc:/ImportRing.qml:119: ReferenceError: item1 is not defined
QQmlExpression: Expression qrc:/viewcontact.qml:127:18 depends on non-NOTIFYable properties:
    ContactMethod::isSelf
Selection changed 0
"QColor::setGreen": invalid value -22
"QColor::setBlue": invalid value -38
"QColor::setBlue": invalid value -47
"QColor::setBlue": invalid value -39
"QColor::setBlue": invalid value -40
"QColor::setRed": invalid value -41
"QColor::setBlue": invalid value -12
"QColor::setRed": invalid value -37
"QColor::setBlue": invalid value -41
Ringtones doesn't exist or is not readable
Unknown TLS method "Automatic"
Account parameter " "TLS.listenerPort" " not found
Account parameter " "Account.registrationExpire" " not found
Account parameter " "Account.routeset" " not found
Account parameter " "Account.presenceEnabled" " not found
QQuickWidget: Attempted to render scene with no context
QQuickWidget: Attempted to render scene with no context
Action without text! "action_close_phone"
Action without text! "action_close_timeline"
QQuickWidget: Attempted to render scene with no context
martijn-schmidt commented 7 years ago

By the way, now that it is clear to me libringclient should not be installed at the same time as kde-ring we do have a new missing dependency on our hands:

Previously, kde-ring depended on libringclient which depended on ring-daemon.

Currently, kde-ring no longer depends on libringclient but that also means net-voip/ring-daemon is no longer pulled in automatically.

Elv13 commented 7 years ago

It's not totally correct. LibRingClient was originally a part of SFLPhone-KDE (renamed to Ring-KDE). It was extracted to be shared with the Gnome client. However since the original Ring-Gnome author left, keeping everything in sync became mostly impractical. Due to that, Ring-KDE version of LibRingClient started to diverge from the one used by the other client. I have the choice to either change the name or merge it back into the Ring-KDE repository. Both solutions have drawback I prefer to avoid for as long as I can, but the situation will have to be fixed soon one way or another.

The "quick fix" I will do on Monday is to fully remove the ability of my "fork" to be installed. That way it wont conflict with an installed LibRingClient. Please note that neither me nor Savoir-Faire Linux (LibRingClient official maintainer) wants LibRingClient to be installed. It is not a shared library with a stable API. Each commits can and do break compatibility. This is why the official packages use a static library instead of a shared one.

stefan-langenmaier commented 7 years ago

@Elv13 Thanks for the clarification, with the static library, I wasn't aware of this. I'd still prefer if the two clients and possibly others could share the same code, but this is good to know.

@martijn-schmidt Thanks for the hint with the missing dependency. I propose we wait till the quick fix is in and then we discuss this on a new issue as I think this one is resolved.

Thanks again for all the feedback!