kde-misc/yakuake-3.0.5 ebuild depends on kwayland, which is only required on systems using Wayland. Removing the dependency allows building and running yakuake on X11 systems. The dependency is created on line 34 of the ebuild. Possibly the most proper solution would be to use the wayland USE flag, if the dependency is actually required on Wayland based systems.
Believe it or not, but this dependency is not for wayland support. It is actually for absolute positioning support of yakuake, which is supported by 'compositors supporting the PlasmaShell protocol' - which is likely limited to KWin. So while you can make the dependency optional, what you lose is a feature that is also relevant while in an X session.
If I understand correctly, kwayland gives an extra feature to yakuake, when yakuake is running on KWin or another PlasmaShell. yakuake will detect kwayland at compile time, via CMake, in order to enable this functionality. kde-plasma/kwin-5.14.4.ebuild also depends on kwayland, so if kwin is installed, the user should already have kwayland. What is the benefit to also listing kwayland as a dependency for yakuake, given that yakuake runs happily on other desktop environments? The problem I see would be if yakuake is built before kwin, then yakuake might get built without kwayland. I'm not sure what the proper solution here is.
You are describing a transitive dependency, which this is not - but Gentoo disallows this anyway, dependencies must be explicit. kwayland is listed as dependency because yakuake's build system is checking for that, indeed.
So, if the kwayland dependency is predicated on a use flag, would that require making yakuake ignore kwayland if kwayland is installed but not selected? To make the outcome independent of the package build order, I would think it would. This can be done by adding -DCMAKE_DISABLE_FIND_PACKAGE_KF5Wayland=ON to the cmake command during configure.
Yes, indeed. The only question is how we would name the USE flag, as 'wayland' does not describe the function well at all.
One obvious choice would be absolute_positioning, but I suspect that is just the first fancy feature kwayland adds, there will probably be more in the future. According to the git commit comments adding kwayland as an optional dependency, it is used to create a PlasmaShellSurface, via the PlasmaShell protocol. I would think a USE flag derived from the protocol name would be appropriate, perhaps plasma-shell. As near as I can tell, it's not currently used by any other packages, so it's unlikely to cause issues with someone having it set globally, and should be obvious that it does something for yakuake operating with KDE Plasma.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/kde.git/commit/?id=a81db9f5a1c5af77abb62563dd5b98ce4b6b20b4 commit a81db9f5a1c5af77abb62563dd5b98ce4b6b20b4 Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2018-12-04 21:53:17 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2018-12-04 21:53:17 +0000 kde-misc/yakuake: Add USE absolute-position, X Bug: https://bugs.gentoo.org/672520 Package-Manager: Portage-2.3.52, Repoman-2.3.12 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> kde-misc/yakuake/metadata.xml | 3 +++ kde-misc/yakuake/yakuake-9999.ebuild | 21 ++++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-)
(In reply to Logan Perkins from comment #6) > One obvious choice would be absolute_positioning I went for something similar, this is currently in overlay for testing in addition to a new X flag making libX11 and qtx11extras optional.
That appears to work. I can test it on a wayland box later and see how it handles USE=-X Should the absolute-position flag be enabled by default? I don't know how commonly yakuake is used independent of KWin, but I would think anyone running the rest of the KDE suite would want it enabled. Also, I believe it must have at least one of X or Wayland, which we might want to reflect in the ebuild.
(In reply to Logan Perkins from comment #9) > Should the absolute-position flag be enabled by default? I don't know how > commonly yakuake is used independent of KWin This is best done by package.use in plasma profile. (In reply to Logan Perkins from comment #9) > Also, I believe it must have at least one of X or Wayland, which we might > want to reflect in the ebuild. That's not clear at all but will need to be tested.
(In reply to Andreas Sturmlechner from comment #10) > (In reply to Logan Perkins from comment #9) > > Should the absolute-position flag be enabled by default? I don't know how > > commonly yakuake is used independent of KWin > This is best done by package.use in plasma profile. That makes sense. > (In reply to Logan Perkins from comment #9) > > Also, I believe it must have at least one of X or Wayland, which we might > > want to reflect in the ebuild. > That's not clear at all but will need to be tested. Apparently not. I just merged it with both flags disabled and it still runs on top of X11. No mention in the log of anything missing either. Looks like yakuake uses some KF5 libraries for windowing, so doesn't need X11 directly.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8f8fce40fe9e5386460dc4246360e60bc486787b commit 8f8fce40fe9e5386460dc4246360e60bc486787b Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2018-12-22 13:12:07 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2018-12-22 14:02:03 +0000 kde-misc/yakuake: Add USE absolute-position, X Add several post-release fixes while at it. Closes: https://bugs.gentoo.org/672520 Package-Manager: Portage-2.3.52, Repoman-2.3.12 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> kde-misc/yakuake/Manifest | 1 + kde-misc/yakuake/metadata.xml | 9 ++--- kde-misc/yakuake/yakuake-3.0.5-r1.ebuild | 65 ++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 6 deletions(-)