deprecated: Seguindo com profiles, temos o arquivo deprecated. Este arquivo marca profiles que não são mais suportados pelo Gentoo. O arquivo também pode conter instruções de como fazer um upgrade. É importante seguir com a atualização conforme lançada.
eapi: ebuild API são um conjunto de definições que regem os pacotes (ebuilds) do Gentoo para os desenvolvedores. Entre estas definições estão: formato do arquivo ebuild, repositório, como o Portage irá interagir com este ebuild, entre outras. Atualmente há seis versões suportadas do EAPI. A versão do EAPI deve ser informada no código fonte do ebuild. Esta padronização foi necessária devido ao suporte do Gentoo para outros gerenciadores de pacotes, através do Projeto: Package Manager Specification.
Como exemplo, vamos ver o ebuild do pacote app-portage/eix-0.30.4 e como está especificado seu EAPI:
No EAPI5 temos algumas definições para metadados, definições para SLOTS e sub slots, dependência de SLOTS, quais arquivos de profile (use.stable.mask, use.stable.force etc) são usados, fases de compilação e algumas variáveis usadas. Cada versão de EAPI inclui novas definições para os ebuilds, mantendo as anteriores. Assim sendo, no EAPI4, por exemplo, foi incluso layouts da árvore do Portage no disco, symlinks etc. No EAPI5, além de conter todas as definições do EAPI4, foram inclusas: arquiteturas (keywords), dependencias (RDEPEND), mascaramento de flags USE, variáveis de perfis, entre tantas outras configurações.
make.defaults: arquivo de configuração padrão do Portage, não mexemos em nada aqui, a não ser desenvolvedores. Este arquivo define alguns profiles padrão para os usuários. São eles:
- ARCH: tipo de arquitetura (x86, amd64, sparc etc)
- IUSE_IMPLICIT: espaço delimitado para o uso das USE flags conforme definido no EAPI de cada ebuild.
- USERLAND: GNU, bsd etc.
- USE_EXPAND: lista com nomes de variáveis que serão usadas como argumento para as USE flags. Se definirmos uma variável como USE_EXPAND="FOO" e FOO="bar bla", isto resultará na seguinte flag USE="foo_bar".
- USE_EXPAND_HIDDEN: mesmas variáveis contidas no USE_EXPAND, mas que não serão mostradas em modo verbose no emerge.
- USE_EXPAND_IMPLICIT: conforme definido no EAPI5 ou posteriores, há flags que cada pacote deve usar implicitamente (como no exemplo do pacote eix, acima, na linha 17).
- USE_EXPAND_UNPREFIXED: qualquer variável listada aqui, será usada como argumento para as flags USE. Assim, se definirmos USE_EXPAND_UNPREFIXED="FOO" e FOO="bar bla", resultará na seguinte flag USE="bar bla".
- USE_EXPAND_VALUES_ARCH: arquiteturas usadas para gerar implicitamente as flags IUSE, definidos no EAPI de cada ebuild.
- USE_EXPAND_VALUES_ELIBC: define o uso de ELIBC para gerar implicitamente as flags IUSE, conforme definido no EAPI5.
- USE_EXPAND_VALUES_KERNEL: define a variável KERNEL que será usada implicitamente para gerar as flags IUSE, conforme definido no EAPI5.
- USE_EXPAND_VALUES_USERLAND: define a variável USERLAND que será usada implicitamente para gerar as flags IUSE, conforme definido no EAPI5.
- ELIBC: suporta glibc, uClibc, BSD libc etc.
- PROFILE_ONLY_VARIABLES: previne que variáveis críticas sejam alteradas pelo usuário no arquivo make.conf ou pelo env.
- PROFILE_ARCH: define arquiteturas da máquina. Todas as arquiteturas sparc, terão esta variável setada como ARCH=sparc. Caso tenha diferentes versões, é preciso setar ou uma ou outra.
- BOOTSTRAP_USE: USE flag especial que será necessária para o processo de bootstrapping do stage1 para o stage2.