Eles têm patches aplicados à árvore de códigos-fonte que adaptam os locais.
Existem "padrões" suficientes disponíveis para que toda distribuição possa escolher com base em preferências (pessoais) e / ou práticas históricas. Raramente existe uma solução que tenha apenas vantagens. Às vezes, isso é irritante / confuso, mas a consistência em uma distribuição é o objetivo mais importante: leva a menos confusão e mais fácil adivinhar onde as coisas podem estar no programa Y, se você já sabe onde coisas semelhantes (por exemplo, arquivos de instalação / configuração) são para o programa. X.
Exemplo de aplicação de patch
Meu pacote python ruamel.yamlestá disponível no Debian Sid. Costumava ser dependente ruamel.basee os usuários que instalaram via PyPI ainda podem ter versões mais antigas e incompatíveis de ruamel.baseinstaladas. O uso de setup.py/ PyPI não é um gerenciamento de pacotes real, portanto você não pode excluir um pacote instalado anteriormente por meio de dependências. Resolvi o problema para os usuários do PyPI criando uma versão mais nova ruamel.baseque removeu os problemas associados aos ruamel.basepacotes mais antigos e ruamel.yamldependi dessa versão mais recente.
Para Sid, isso não é um problema: as versões mais antigas do ruamel.basenão foram instaladas (ou podem ser removidas através do gerenciamento de pacotes). Portanto, eles aplicam um patch , que você pode encontrar na ruamel.yamlpágina de informações do Sid que remove a dependência de ruamel.yamlon ruamel.base.
Outras distribuições têm configurações semelhantes. Por exemplo, se você observar as especificações para criar um arquivo RPM de origem (por exemplo, para RedHat / CentOS / SuSE), verá que combina o tarball original original de um pacote com um ou mais patches que serão aplicados antes da configuração / compilação .