Faire un RPM qui définit les capacités des fichiers POSIX

Comment fait-on un RPM qui définit les capacités POSIX d’un fichier? Si j’essaie de faire rpmbuild tant rpmbuild non root, j’obtiens une erreur lorsque les hooks d’installation de mon makefile tentent d’exécuter setcap , mais si je ne lance pas setcap comment rpmbuild copiera-t-il les fonctionnalités? Il ne semble pas y avoir de moyen de définir la capacité à partir du fichier de spécifications RPM .

Il existe une macro de fichier de spécifications pour définir les capacités, %caps ; pour une raison quelconque, cela semble être principalement documenté dans les notes de version et les journaux de modifications, il m’a donc fallu du temps pour le trouver.

Il est utilisé comme ceci dans le fichier de spécifications:

 %caps(cap_net_admin=pe) %{_sbindir}/foobar 

Pour que make install utilise uniquement setcap quand il est setcap par root, vous pouvez faire quelque chose comme ceci:

 @if test `id -u` -eq 0; then \ setcap cap_net_admin=pe $(DEST_SBINDIR)/foobar ; \ fi