Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 927038 - sys-process/glances: Replace 'optional features' messages by 'USE' flags
Summary: sys-process/glances: Replace 'optional features' messages by 'USE' flags
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-14 22:20 UTC by benoit.dufour
Modified: 2024-03-15 03:31 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description benoit.dufour 2024-03-14 22:20:37 UTC
Hello, please replace glances 'optfeatures' messages by convenient 'USE' flags.
Here's the USE flags list:
Autodiscover mode: zeroconf
Cloud support: cloud
Docker monitoring support: docker
SVG graph support: svg
IP plugin: ip
RAID monitoring: raid
SNMP support: snmp

Web server mode: webui
WIFI plugin: wifi


Those 'optfeatures' messages isn't convenient at all:
1. It's loss of time to run extra commands in order to emerge the 27 extra dependencies required by optional features.
2. It breaks the depgraph and it makes @world a total mess. Since when should we install runtime libraries in @world? It makes no sense at all. Come on.
3. It's like if you would remove the 'webui' and 'gui' USE flags from the net-p2p/qbittorrent package. Why would you allow net-p2p/qbittorrent to have a 'runtime' USE flag while forbidding sys-process/glances to have some? Again it makes no sense at all.
4. USE flags allows better understanding of what packages are providing and it allows to know optional features before installing the package. So, you won't need anymore to open the freaking ebuild file in order to know the optional features before installing the package.
5. USE flags allows easier package installation automatization, no need to 
6. USE flags allows limiting dependencies to certain versions. Imagine the package would break because installed dependencies have unsupported version by the package.
7. Dealing with limiting dependencies manually through package.accept_keywords is a mess and a loss of time.
8. Adding USE flags to a package isn't hard.
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-03-14 22:24:00 UTC
(In reply to benoit.dufour from comment #0)
> Hello, please replace glances 'optfeatures' messages by convenient 'USE'
> flags.
> Here's the USE flags list:
> Autodiscover mode: zeroconf
> Cloud support: cloud
> Docker monitoring support: docker
> SVG graph support: svg
> IP plugin: ip
> RAID monitoring: raid
> SNMP support: snmp
> 
> Web server mode: webui
> WIFI plugin: wifi
> 
> 
> Those 'optfeatures' messages isn't convenient at all:
> 1. It's loss of time to run extra commands in order to emerge the 27 extra
> dependencies required by optional features.

No, see https://projects.gentoo.org/qa/policy-guide/dependencies.html#pg0001.

> 2. It breaks the depgraph and it makes @world a total mess. Since when
> should we install runtime libraries in @world? It makes no sense at all.
> Come on.
> 3. It's like if you would remove the 'webui' and 'gui' USE flags from the
> net-p2p/qbittorrent package. Why would you allow net-p2p/qbittorrent to have
> a 'runtime' USE flag while forbidding sys-process/glances to have some?
> Again it makes no sense at all.

Because qbittorrent is *compiled* and the USE flags substantially affect what the package does.

> 4. USE flags allows better understanding of what packages are providing and
> it allows to know optional features before installing the package. So, you
> won't need anymore to open the freaking ebuild file in order to know the
> optional features before installing the package.

Language like this isn't very persuasive and isn't appropriate. Please be polite.

> 5. USE flags allows easier package installation automatization, no need to 
> 6. USE flags allows limiting dependencies to certain versions. Imagine the
> package would break because installed dependencies have unsupported version
> by the package.

Exaggerating / repeating the same point doesn't really help.

> 7. Dealing with limiting dependencies manually through
> package.accept_keywords is a mess and a loss of time.
> 8. Adding USE flags to a package isn't hard.

Anyway, we know that people want a proper solution to this, and that's to implement GLEP 62.

Now, we _can_ sometimes add runtime-only-IUSE where it's convenient to e.g. Python packages, given the "recompile" is basically free, but it's up to the maintainer to do that if they want, and if it's reasonable to do so.

They will not be adding 30 USE flags, however. It also helps to be polite to help make your case.
Comment 2 benoit.dufour 2024-03-14 23:01:00 UTC
Ok. So first, I'm sorry for not being polite and exaggerating. 
Please forgive me. 
Having to run extra commands in order to install 27 dependencies required by the optional features made me upset, especially when I knew my request had 99% of chance to be rejected.

Then there's no need for 30 USE flags, only 9 is enough:
zeroconf cloud docker svg ip raid snmp webui wifi
Comment 3 benoit.dufour 2024-03-14 23:14:17 UTC
About the rationale in the guide:

Rationale: toggling USE flags in order to enable or disable optional runtime dependencies causes needless rebuilds of packages in question. This is especially important for packages that take long time to build.

I guess a 'runtime' flag in the runtime dependencies ebuild would allow Portage to know what 'runtime' packages to not needlessly rebuild.
Comment 4 benoit.dufour 2024-03-15 02:49:47 UTC
I solved my issue by running those commands:

nano /etc/portage/sets/glances-extra-features
# USE "SVG graph support":
dev-python/pygal
# USE "IP plugin":
dev-python/netifaces
# USE "RAID support":
# USE "RAID monitoring":
dev-python/pymdstat
# USE "SNMP support":
dev-python/pysnmp
# USE "Web server mode":
dev-python/bottle
dev-python/requests
# USE "WIFI plugin":
#net-wireless/python-wifi

ctrl-o ctrl-x

nano /etc/portage/package.accept_keywords/dev-python/pymdstat
>=dev-python/pymdstat-0.4.3::gentoo ~amd64

ctrl-o

emerge --ask --verbose @glances-extra-features