Por que os mantenedores de pacotes do Gentoo instalam incondicionalmente os arquivos unitários do systemd (ou seja, sem depender da opção USE do 'systemd')?

3

passos para reproduzir:

  1. problema

     cd /usr/portage && grep -R "systemd_dounit" *
    
  2. abra várias ebuilds e leia-as

quase todos os ebuilds usam systemd_dounit sem verificar o systemd USE-flag primeiro.

Bandeiras aparecem aqui: link
systemd.eclass é descrito aqui:
link

e não, código de função também não tem verificações:

# @FUNCTION: systemd_dounit
# @USAGE: <unit>...
# @DESCRIPTION:
# Install systemd unit(s). Uses doins, thus it is fatal in EAPI 4
# and non-fatal in earlier EAPIs.
systemd_dounit() {
    debug-print-function ${FUNCNAME} "${@}"

    (
        insinto "$(_systemd_get_unitdir)"
        doins "${@}"
    )
}
    
por dh3x25bd1f 17.07.2015 / 21:13

2 respostas

3

Porque a comunidade de desenvolvedores do Gentoo acha que não há problema em instalar esses arquivos incondicionalmente, contanto que a dependência do systemd não seja complicada. E você pode evitar isso com INSTALL_MASK=/usr/lib/systemd no seu make.conf (consulte man 5 make.conf ). / p>     

por 18.07.2015 / 12:33
1

O IUSE é necessário apenas se você realmente referenciar esse flag USE no ebuild.

Nos poucos ebuilds que eu verifiquei eles não usam o flag USE do systemd e simplesmente instalam cegamente as definições de serviço do systemd em / usr / lib / systemd / system /, assim como instalam cegamente os scripts de init do OpenRC sem verificar o openrc USE flag.

Os sinalizadores de USE systemd (e openrc) são usados em ebuilds, onde o sistema init faz uma diferença material, não se deve instalar um serviço ou um script de inicialização.

    
por 17.07.2015 / 22:12