Search code examples
gentooebuild

Why is there no way to specify install options for binaries in ebuilds?


The Gentoo's ebuild mecanism comes with several built-in eclasses/commands to manage (amongst others) libraries, binaries, executables, etc... Some of them are really useful to work at installation phase, like setting permissions, modifying the default installation directory, etc...

About library installation, the ebuild documentation says :

dolib [list of more libraries]

Installs a library or a list of libraries into DESTTREE/lib. Creates all necessary dirs.

libopts [options for install(1)]

Can be used to define options for the install function used in the dolib functions. The default is -m0644.

The same is available for "executables": exeopts works with doexe.

Question

The thing I really don't understand is that why dobin and dosbin exist but not binopts and sbinopts?

Is it possible have libopts or exeopts equivalents for dobin and dosbin, to manage permissions at installation phase?


Solution

  • Because dobin and dosbin are special cases of doexe, which have pre-defined options; if you need special permissions (e.g. suid) you can use doexe as needed.

    Effectively (/usr)/bin and (/usr)/sbin should be executable to all users, unless something special (like limiting access to a group that has access to the hardware) is needed.

    (I would probably be in favour of removing libopts too, but that's a different story, I guess.)