Closed msdobrescu closed 2 years ago
That's more an issue on how a repository was designed, than rather an issue with luet itself. Or I am missing something?
Actually, I thought this myself. But, seems some KDE apps need Gnome libs sometimes, due to missing those implementation in a KDE/Qt lib. This would need, for instance, to build some intermediary layer with the common stuff. Eventually, due to deep deps, some may end needing merging some layers, like qt
or plasma
and gonme-common
. On the user side the result is the same, indeed, but on repo builder side does not make sense, probably.
My question above is still in place:
Why gnome layer requires gnome-common and X layers while gnome-common requires X already? In other words why requiring gnome-common is not enough (by bringing X in its requirements)? Or is it?
I mean, why would need that (apparently) redundancy?
Then, why qt
is emerged for the presented setup? What layer is brought of the required ones then? Why gnome-common
and not plasma
? I presume it's gnome-common
, because it seems to start emerging qt
- and I expect to continue up to plasma
.
For such a case, seems necessary to merge the containers somehow, to end up with plasma
+ gnome-common
and build. Otherwise takes forever and we shoot flies with a big cannon...
I would analyze this particular case if it's possible to move atoms in a way that it makes it build with a smaller print, but this is just a case.
Actually, I thought this myself. But, seems some KDE apps need Gnome libs sometimes, due to missing those implementation in a KDE/Qt lib. This would need, for instance, to build some intermediary layer with the common stuff. Eventually, due to deep deps, some may end needing merging some layers, like
qt
orplasma
andgonme-common
. On the user side the result is the same, indeed, but on repo builder side does not make sense, probably.
Yes, you can definitely have a building layer that contains all the deps, and have smaller packages extracting just the required from it - there is no need to make that layer installable for the user
Yes, you can definitely have a building layer that contains all the deps, and have smaller packages extracting just the required from it - there is no need to make that layer installable for the user
That seems out of my reach as mOS
user. Or I don't have the knowledge how, given the current layers definition.
Yes, you can definitely have a building layer that contains all the deps, and have smaller packages extracting just the required from it - there is no need to make that layer installable for the user
That seems out of my reach as
mOS
user. Or I don't have the knowledge how, given the current layers definition.
That's why I think this is a mOS issue rather then a luet one... Nevertheless https://luet-lab.github.io/docs/docs/concepts/packages/specfile/#building-strategies should give you some indications: you can hust select the parts you are interested to from a layer and create packages as necessary
Closing the issue then :+1:
Disclaimer: I am just beginning this kind of task, so, although a solution may be possible, I may not be able to find it yet.
Can't cleanly build
media-sound/clementine
. By "cleanly" I mean building only the atoms not yet present in some existing layer undermOS
. I use thecommunity repository
ofmOS
.For a start, I've made myself a diagram of layers dependency.
This brings the question:
Why gnome layer requires
gnome-common
andX
layers while gnome-common requiresX
already? In other words why requiringgnome-common
is not enough (by bringingX
in its requirements)? Or is it?So, analyzing
media-sound/clementine
's deps, I have found that building it is depending on:plasma
layer primarlygnome-commons
layer due tomtp
implemented bygnome-base/gvfs
And here we go...
Describe alternatives you've considered Incrementally, I've added the needed deps one by one to the
community repository
collection:The trouble begins with
gnome-base/gvfs
.In order to satisfy it, to avoid emerge stopping due to errors like these below, must refer
gnome-commons
layer.Source: (here).
Clementine config has become this:
The outcome is starting emerge
qt
layer, as seen here, but that is expected to be provided by theplasma
layer inherently, isn't it?Describe the solution you'd like I would expect to pull all the necessary layers, specifying the top ones only, probably build the container in order to build only the remaining atoms.
In the case above, those atoms would be:
dev-cpp/gtest
media-libs/chromaprint
media-libs/libmygpo-qt
media-sound/clementine
Additional context I am aware sometimes the layers structure is not ideal, things can be moved around, but it's not always possible (not saying here it's the case for
media-sound/clementine
).