On Fri, 24 Feb 2023, Thorsten Kukuk wrote:
Our base packages include support for all sorts of features, making our base OS very large due to dependencies. While this is not a problem for e.g. openSUSE Tumbleweed, where the extra packages do not really matter in the overall size, it is a big problem when building a small single-purpose OS where you want something really small without any unnecessary packages. Like ALP.
The "useless" packages create yet another problem: Libraries are installed for features that are not supported or do not work. E.g. AppArmor and SELinux are exclusive, so why should e.g. ALP ship AppArmor that can't work and isn't supported, but creates a high maintenance overhead on all sides without any benefit?
We use already %bcond in our spec files set in the project config for various reasons, one is to bootstrap the distro. Another reason is, that it looks like as some maintainers build already smaller versions of some packages for their need in their projects. To avoid that e.g. ALP is shipped with AppArmor and SELinux, while only SELinux will be used, we decided to "formalize" and document this:
85% of the keywords are already used today in projects.
What does this mean for you?
- if somebody added this %bcond to your packages, please accept them and forward them to Factory.
- if you are working on a package and have dependencies mentioned in the list, please consider to make your package configurable in this regard.
- If we create bug reports for ALP since you are a maintainer of a core package which has dependencies we don't want to see, please work on them with a higher priority.
- Yes, it is known that you cannot build every package without this dependencies.
Thorsten - please document what functionality is controlled by the respective keywords. For some it's reasonably obvious but TLC (three letter acronyms) have too many overloaded meanings. What's faac and faad? I suppose ada is the programming language with this name - I wonder why you didn't add d (yes, 'd') as well?
I guess who's supposed to know will know, but then documentation helps.