(Feel free to merge this into an existing topic if a suitable already exists)
After watching this video (at the 1:17:45 mark) where the user installs Kate on a new system, I reacted to how many dependencies it required that should not be required. This cannot be correctly configured.
Kate is a text editor and should not require installation of a shit ton of audio and video codecs, among other things. Only the bare minimum of dependencies should be installed.
IIRC KDE has libraries in severall “layers” ontop of each other, that is in layer three kate might need two libs, but those then need severall lower leveled libs too, which need severall more because each library wants the dependencies to provide the full library capabilities, not the capabilities the application actually wants.
As for fixing this… no idea, apart from using native software. We also have a scintilla based editor called Koder, working on that could give better results probably.
We could likely mitigate this by porting some of those “higher” libraries away from kde’s libs and instead using haiku kits directly, giving a much flatter dependency tree.
But alas, it’s linux dependency hell, and if you let in the apps the dependency hell follows
One could also try statically linking applications or splitting up the libraries more, but we would basically try fixing the entire linux library mess just to get some apps over :g
In other words, the packages are misconfigured by Haiku’s packager(s). Because the dependencies should be configured according to each package’s needs, not “the full library capabilities”. If I install a text editor that do not use audio or video codecs, no audio or video codec packages should be installed.
Is there a tool to manually resolve Kate’s dependencies to examine where the misconfiguration is?
No, they are not misconfigured. It’s the dependencies of the library that are the problem, not the dependencies of kate.
Say if i need a functionality from an audiovisual library and depend on it i will intrinsically depend on both audio and video libraries, even if my application only needs audio capabilities.
This is a problem with “library” dependencies in general, not much to be done about that other than making a new model of how such dependencies can be handeled.
The options to mitigate i already laid out above
but pretty much nothing we can do if we bring over foreign software like this.
They are clearly misconfigured. If I install a text editor and it pulls in a shit ton of functionality that the text editor do not need*, then it is a misconfiguration. Period.
The reason for the misconfiguration is another matter and why I posted my question. It can be a dependency configuration mistake or an architectural design flaw. In either way, the result is that functionality that is not needed is being installed.
I have not found information that Kate has functionality that requires audio- or video codecs.
Kate requires Qt framework, IIRC. The Qt framework drags in many dependencies. The HaikuPorts repo is fed by a buildmaster whose instructions are hosted on GitHub. Submit a pull request if you can detangle the requirements.
Kate is part of the KDE ecosystem and the KDE Framework is based on Qt. Both are made of many libraries and modules and in a typical KDE-based Linux distribution they should already be installed out of the box.
It’s not surprising that Kate has so many dependencies, it may require even just one function of a specific library which in turn may require other libraries. If Kate requires all of them it’s definitely not packager’s fault. It is what it is. How on earth can this be a misconfiguration?
If you are not happy with installing all this foreign libraries then go with a native solution: give Koder or Genio a try and see if they fit your needs.
I highly doubt that Kate requires audio and video codecs in order to fully function. Please correct me if I am wrong. So unless I am wrong Kate do not require them all.
So then it is a misconfiguration. Stating otherwise is just stupid.
I do not know the reason for the misconfiguration. It can be wrong package dependency configuration, architecture limitations or a combination thereof.
I’d love to hear from someone who knows if and if so what is wrong.
I’m not familiar with Kate, does it have audio feedback? Notifications or onevents like I.e. when you reach end of line? In this case, it will require Phonon which will require in turn Gstreamer…
There’s no way to do otherwise, unless you want that each KDE app package embed his own KDE build and his own Qt both build with per app customized options. It is doable but not realistic if you install more than 3 apps. This is the big problem of apps built on a framework and in this case the framework is build on another. Honestly, frameworks are more nice for devs than for users. What are the real benefits from a user point of view? Uniform shortcuts management and look and feel… It is exactly what Haiku provides, so why there’s no point adding complexity for nothing, better use a native app indeed.
I am not complaining that a lot of packages are being installed, which I understand is a requirement when using frameworks. What I am complaining about is installation of packages that I doubt Kate requires or can even utilize.
Installation of packages that are not needed = bug. I do not care about the reason. It is a bug.
I find no documentation for “pkgman resolve-dependencies”, more than the argument help, but below is the output for Kate.
What I am asking in this thread is how this dependency list is created and especially how to know which dependency chain results in a particular package. I have marked the codec packages that I have used as an example of packages that I doubt Kate needs or even can use.
For example, how can I figure out how installation of Kate resolves to installing x265-3.5-5-x86_64.hpkg? I doubt Kate can use that package.
It’s almost impossible to avoid transitive dependencies when working with large frameworks. While Kate might not need to play ogg or mp3 files, it does need access to the other parts of the framework which in turn have a dependency on those multimedia libraries.
Contributing to this problem is the immaturity of the Haiku package system. Mainly that it doesn’t currently make use of “suggested” or “optional” packages and so everything is a strict requirement.
The list of dependencies for Kate isn’t all that strange or large. I see an almost identical list from my Arch Linux box but most Linux distros have already included those multimedia libraries and so you don’t notice the dependency.
I uninstalled x265 and Kate functioned just fine as far as i can see. Cannot find any functionality within Kate that relates to audio or video. Cannot find any such references in the documentation.
And I argue that that is a bug. The framework should work perfectly fine without multimedia libraries. Kate works perfectly fine without multimedia libraries. So they should not be defined as a dependency of neither the framework or Kate. It should only be defined as a dependency of the packages that actually need the libraries.
I “proved” that x265 is not needed by the framework or Kate by uninstalling it without seemingly breaking any functionality of Kate.
Interesting. This is an example of an architectural problem that I have described in this thread. If this contributes to the problem then it is a bug.
That does not prove anything other than they are also doing their dependency resolution wrong. If a package cannot utilize another package that is resolved thru dependency, then it is a bug. Period.