Coming from kdiff3-0.9.98-r1, updating to kdiff3-0.9.98_p20170219-r1, a lot of additional dependencies on KDE-specific packages are added, e.g. [nomerge ] kde-misc/kdiff3-0.9.98_p20170219-r1 [0.9.98-r1] USE="-debug" [nomerge ] kde-frameworks/kio-5.34.0-r2 USE="X handbook kwallet -acl -debug -kerberos {-test}" [ebuild N ] kde-frameworks/kded-5.34.0 USE="man -debug" [ebuild N ] kde-frameworks/kinit-5.34.0 USE="caps man -debug" [ebuild N ] kde-frameworks/kio-5.34.0-r2 USE="X handbook kwallet -acl -debug -kerberos {-test}" [ebuild N ] kde-frameworks/kwallet-5.34.0-r1 USE="man -debug -gpg {-test}" [ebuild N ] kde-frameworks/knotifications-5.34.0 USE="X -dbus -debug -nls (-speech)" and each of theme has a set of other dependencies too. I am not using KDE, have the global use flag '-kde' and I don't want all these dependencies. Previously kdiff3 could work fine without these. Are these new dependencies caused by the upstream source having changed requirements, or can the Gentoo ebuild be structured differently to allow non-KDE use?
This change is caused by kdiff3 moving from KDE4 to KDE5, which splits kdelibs into smaller libraries (KDE Frameworks) Kdiff never worked without KDE dependencies
Oops, sorry for hasty misinformation, apparently kdiff3 could've been built without kdelibs Anyway, kdiff3:5 is a KDE frameworks port, you can probably mask kdiff3:5 if you don't want to pull in kde frameworks
(In reply to Valeriy Malov from comment #2) > Oops, sorry for hasty misinformation, apparently kdiff3 could've been built > without kdelibs > > Anyway, kdiff3:5 is a KDE frameworks port, you can probably mask kdiff3:5 if > you don't want to pull in kde frameworks Yes, but that probably means that 'soon' I will not be able to install kdiff3 any longer... Is it not possible to allow kdiff3:5 compilation without full KDE dependencies as before?
No, it is not possible. Why do you dislike KDE Frameworks? It's just a bunch of libraries.
(the whole point of KDE Frameworks was them being easier to swallow instead of the huge kdelibs blob, and you will find their compile time insignificant compared to Qt5)
I guess we can not help in this case. @voyageur do you agree? If you want to avoid the kde depenedencies dev-util/meld might be an alternative.
To clarify my problem with the new kdiff3, here is what would get pulled in on an up-to-date system, along with the other keywords/use changes I'd need to make. Besides the KDE-specific stuff, it will pull in polkit and consolekit, things I don't want nor need. # emerge -1p kdiff3 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild NS ] sys-devel/autoconf-2.13 [2.69] [ebuild N ] virtual/eject-0 [ebuild N ] dev-qt/qtdbus-5.6.2 USE="-debug {-test}" [ebuild N ] dev-qt/qtxml-5.6.2 USE="-debug {-test}" [ebuild NS ] dev-qt/qtscript-5.6.2 [4.8.7] USE="jit -debug -scripttools {-test}" [ebuild N ] dev-qt/qtconcurrent-5.6.2 USE="-debug {-test}" [ebuild N ] sys-block/parted-3.2 USE="debug readline -device-mapper -nls (-selinux) -static-libs" [ebuild N ] sys-apps/gptfdisk-1.0.1 USE="ncurses -static" [ebuild N ] dev-lang/spidermonkey-1.8.5-r6 USE="-debug -minimal -static-libs {-test}" [ebuild R ] dev-qt/qtcore-5.6.2-r1 USE="icu*" [ebuild N ] kde-frameworks/extra-cmake-modules-5.34.0 USE="-doc {-test}" [ebuild N ] kde-frameworks/kf-env-4 [ebuild N ] kde-frameworks/kcoreaddons-5.34.0-r1 USE="-debug (-fam) -nls {-test}" [ebuild N ] kde-frameworks/ki18n-5.34.0 USE="-debug {-test}" PYTHON_SINGLE_TARGET="python3_4 -python2_7 (-python3_5) (-python3_6)" PYTHON_TARGETS="python2_7 python3_4 (-python3_5) (-python3_6)" [ebuild N ] kde-frameworks/kcodecs-5.34.0 USE="-debug -nls {-test}" [ebuild N ] kde-frameworks/karchive-5.34.0 USE="bzip2 lzma -debug {-test}" [ebuild N ] kde-frameworks/kdoctools-5.34.0 USE="-debug {-test}" [ebuild R ] sys-fs/eudev-3.1.5 USE="static-libs*" [ebuild R ] sys-fs/lvm2-2.02.145-r2 USE="udev*" [ebuild N ] dev-libs/libatasmart-0.19-r1 USE="-static-libs" [ebuild N ] kde-frameworks/kconfig-5.34.0 USE="-debug -nls {-test}" [ebuild N ] kde-frameworks/kwidgetsaddons-5.34.0 USE="-debug -nls {-test}" [ebuild N ] kde-frameworks/kwindowsystem-5.34.0 USE="X -debug -nls {-test}" [ebuild N ] kde-frameworks/kdbusaddons-5.34.0 USE="X -debug -nls {-test}" [ebuild N ] kde-frameworks/kitemviews-5.34.0 USE="-debug -nls {-test}" [ebuild N ] kde-frameworks/sonnet-5.34.0 USE="hunspell -aspell -debug -nls {-test}" [ebuild NS ] dev-qt/qtsvg-5.6.2 [4.8.7] USE="-debug {-test}" [ebuild N ] kde-frameworks/kguiaddons-5.34.0 USE="-debug {-test}" [ebuild N ] kde-frameworks/kauth-5.34.0 USE="-debug -nls -policykit {-test}" [ebuild N ] kde-frameworks/kconfigwidgets-5.34.0 USE="man -debug {-test}" [ebuild N ] kde-frameworks/kcrash-5.34.0 USE="-debug -nls {-test}" [ebuild N ] kde-frameworks/kjobwidgets-5.34.0 USE="X -debug -nls {-test}" [ebuild N ] kde-frameworks/kcompletion-5.34.0 USE="-debug -nls {-test}" [ebuild N ] kde-frameworks/kiconthemes-5.34.0 USE="-debug {-test}" [ebuild N ] kde-frameworks/kservice-5.34.0 USE="man -debug {-test}" [ebuild N ] kde-frameworks/kglobalaccel-5.34.0 USE="-debug -nls {-test}" [ebuild N ] kde-frameworks/ktextwidgets-5.34.0 USE="-debug (-speech) {-test}" [ebuild N ] dev-qt/qtprintsupport-5.6.2 USE="cups -debug -gles2 {-test}" [ebuild N ] kde-frameworks/kxmlgui-5.34.0 USE="-attica -debug {-test}" [ebuild N ] kde-frameworks/kbookmarks-5.34.0 USE="-debug -nls {-test}" [ebuild N #] sys-auth/polkit-0.113 USE="gtk -examples -introspection -jit -kde -nls -pam (-selinux) -systemd {-test}" [ebuild N #] sys-auth/consolekit-1.1.0-r1 USE="policykit -acl -cgroups -debug -doc -pam -pm-utils (-selinux) {-test}" [ebuild N ] gnome-extra/polkit-gnome-0.105-r1 [ebuild N #] sys-fs/udisks-2.1.8 USE="cryptsetup gptfdisk -acl -debug -introspection (-selinux) -systemd" [ebuild N ] kde-frameworks/solid-5.34.0 USE="-debug -nls {-test}" [ebuild N ] media-libs/phonon-4.9.1-r1 USE="qt5 vlc (-aqua) -debug -designer -gstreamer -pulseaudio -qt4 (-zeitgeist)" ABI_X86="(64) -32 (-x32)" [ebuild N ] kde-frameworks/knotifications-5.34.0 USE="X -dbus -debug -nls (-speech)" [ebuild N ] kde-frameworks/kwallet-5.34.0-r1 USE="man -debug -gpg {-test}" [ebuild N ] kde-frameworks/kio-5.34.0-r2 USE="X handbook kwallet -acl -debug -kerberos {-test}" [ebuild N ] kde-frameworks/kinit-5.34.0 USE="caps man -debug" [ebuild N ] kde-frameworks/kded-5.34.0 USE="man -debug" [ebuild N ] kde-frameworks/kparts-5.34.0 USE="-debug {-test}" [ebuild R ] media-video/vlc-2.2.6 USE="dbus*" [ebuild N ] media-libs/phonon-vlc-0.9.1-r1 USE="qt5 -debug -qt4" [ebuild NS ] kde-misc/kdiff3-0.9.98_p20170219-r1 [0.9.98-r1] USE="-debug" [uninstall ] kde-misc/kdiff3-0.9.98-r1 [blocks b ] kde-misc/kdiff3:4 ("kde-misc/kdiff3:4" is blocking kde-misc/kdiff3-0.9.98_p20170219-r1) The following mask changes are necessary to proceed: (see "package.unmask" in the portage(5) man page for more details) # required by sys-auth/polkit-0.113::gentoo[-systemd] # required by gnome-extra/polkit-gnome-0.105-r1::gentoo # /etc/portage/package.mask/dont-want: =sys-auth/consolekit-1.1.0-r1 # required by kde-frameworks/solid-5.34.0::gentoo # required by kde-frameworks/kio-5.34.0-r2::gentoo # required by kde-frameworks/kinit-5.34.0::gentoo # required by kde-frameworks/kded-5.34.0::gentoo # /etc/portage/package.mask/dont-want: =sys-fs/udisks-2.1.8 # required by sys-fs/udisks-2.1.8::gentoo # required by kde-frameworks/solid-5.34.0::gentoo # required by kde-frameworks/kio-5.34.0-r2::gentoo # required by kde-frameworks/kinit-5.34.0::gentoo # required by kde-frameworks/kded-5.34.0::gentoo # /etc/portage/package.mask/dont-want: =sys-auth/polkit-0.113 The following USE changes are necessary to proceed: (see "package.use" in the portage(5) man page for more details) # required by kde-frameworks/kcoreaddons-5.34.0-r1::gentoo # required by kde-frameworks/kglobalaccel-5.34.0::gentoo # required by kde-frameworks/kxmlgui-5.34.0::gentoo # required by kde-frameworks/kbookmarks-5.34.0::gentoo # required by kde-frameworks/kio-5.34.0-r2::gentoo # required by kde-frameworks/kinit-5.34.0::gentoo # required by kde-frameworks/kded-5.34.0::gentoo >=dev-qt/qtcore-5.6.2-r1 icu # required by sys-auth/polkit-0.113::gentoo[-systemd] # required by gnome-extra/polkit-gnome-0.105-r1::gentoo >=sys-auth/consolekit-1.1.0-r1 policykit # required by sys-fs/lvm2-2.02.145-r2::gentoo[static,udev] # required by sys-fs/udisks-2.1.8::gentoo[cryptsetup] # required by kde-frameworks/solid-5.34.0::gentoo # required by kde-frameworks/kio-5.34.0-r2::gentoo # required by kde-frameworks/kinit-5.34.0::gentoo # required by kde-frameworks/kded-5.34.0::gentoo >=sys-fs/eudev-3.1.5 static-libs # required by media-libs/phonon-4.9.1-r1::gentoo[vlc] # required by kde-frameworks/knotifications-5.34.0::gentoo # required by kde-frameworks/kwallet-5.34.0-r1::gentoo # required by kde-frameworks/kio-5.34.0-r2::gentoo[kwallet] # required by kde-frameworks/kinit-5.34.0::gentoo # required by kde-frameworks/kded-5.34.0::gentoo >=media-libs/phonon-vlc-0.9.1-r1 qt5 # required by media-libs/phonon-vlc-0.9.1-r1::gentoo # required by media-libs/phonon-4.9.1-r1::gentoo[vlc] # required by kde-frameworks/knotifications-5.34.0::gentoo # required by kde-frameworks/kwallet-5.34.0-r1::gentoo # required by kde-frameworks/kio-5.34.0-r2::gentoo[kwallet] # required by kde-frameworks/kinit-5.34.0::gentoo # required by kde-frameworks/kded-5.34.0::gentoo >=media-video/vlc-2.2.6 dbus # required by media-libs/phonon-vlc-0.9.1-r1::gentoo >=media-libs/phonon-4.9.1-r1 qt5 # required by sys-fs/udisks-2.1.8::gentoo[cryptsetup] # required by kde-frameworks/solid-5.34.0::gentoo # required by kde-frameworks/kio-5.34.0-r2::gentoo # required by kde-frameworks/kinit-5.34.0::gentoo # required by kde-frameworks/kded-5.34.0::gentoo >=sys-fs/lvm2-2.02.145-r2 udev NOTE: The --autounmask-keep-masks option will prevent emerge from creating package.unmask or ** keyword changes. !!! All ebuilds that could satisfy ">=dev-qt/qtcore-5.6.1:5[icu]" have been masked. !!! One of the following masked packages is required to complete your request: - dev-qt/qtcore-5.7.1-r3::gentoo (masked by: ~amd64 keyword) - dev-qt/qtcore-5.7.1-r2::gentoo (masked by: ~amd64 keyword) - dev-qt/qtcore-5.6.2-r1::gentoo (masked by: ) (dependency required by "kde-frameworks/kcoreaddons-5.34.0-r1::gentoo" [ebuild]) (dependency required by "kde-misc/kdiff3-0.9.98_p20170219-r1::gentoo" [ebuild]) (dependency required by "kdiff3" [argument]) For more information, see the MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. Anyway, if it's impossible to compile without the new KDE framework, I'll just stick to the old kdiff3 while still available. I know meld, but I don't find its 3-way diff interface very logical. Any suggestions for other good three-way diff tools are welcome!
I see. Well, kio indeed is a heavy dependency, but it is mostly used in src/fileaccess.{h,cpp}, src/progress.cpp, and (maybe) kdiff3fileitemactionplugin. Someone sufficiently motivated could make those optional I guess. Fun fact: To be able to build kdiff3 'without KDE too' (sic!), it had been carrying around many parts of kdelibs all the time. With no fixes in 10 years.
Indeed, there is not much we can do on the Gentoo side, unless develop. So without going the "into the code" way, yes the alternatives are either use this new kf5-powered version, stick to kdiff3:4 (at least with a qt5 build, this slot will stay in tree as long as it works and does not have problems), or use meld
Thanks all for the feedback, I think we can close this issue...