Como escrever gentoo ebuilds

Como escrever gentoo ebuilds
Se você não tem o pacote gentoo que deseja, não tema! Você pode construir o seu próprio! Para fazer isso, você precisará de alguma experiência com o software de compilação usando os kits de ferramentas Linux conhecidos, GCC e outros. Para criar um pacote Gentoo, 'emake' é usado para controlar e ajustar o processo. Usando essas ferramentas, você pode criar pacotes muito finos que correm de maneira rápida e confiável.

Estrutura de Ebuild

Para criar seu próprio ebuild, você deve começar com o correto *.Arquivo EBUILD. Seu arquivo Ebuild é o coração de todo o seu ebuild. O arquivo EBUILD depende de muitos outros arquivos, assim como o Make faz. De fato, na maioria dos casos, seu eBuild dependerá da marca, embora seja sua escolha. A seguir, a árvore de Neovim:
/MNT/SW/Projects/System/Gentoo/Gentoo/App-Editores/Neovim
├── Arquivos
│ ├── Neovim-0.4.3-GCC-10-FIX.correção
│ ├── Neovim-0.4.4-cmake_luversion_patch
│ ├── Neovim-0.4.Tipo de liberação de 4-chakes.correção
│ └── sysinit.vim
├── Manifesto
├── Metadados.xml
├── Neovim-0.4.4-R100.Ebuild
└── Neovim-9999.Ebuild

Então, para que você usa esses arquivos em seu aplicativo? O *.O arquivo EBUILD é o arquivo óbvio. Este arquivo contém o src_uri, que aponta diretamente para o código. Outras informações no arquivo incluem a descrição, o site e mais informações necessárias para compilar o pacote.

O arquivo de manifesto contém o hash que identifica exclusivamente o código.

Os metadados.O arquivo XML contém o nome do mantenedor e o endereço de e -mail, o nome do projeto e alguns sinalizadores para compilar. A identidade remota também está localizada neste arquivo, como o repositório do GitHub para o upstream. O diretório de arquivos contém quaisquer patches que você possa precisar e quaisquer configurações especiais necessárias. O exemplo acima mostra um arquivo com configurações apropriadas de acordo com os mantenedores do Gentoo.

Dentro do arquivo Ebuild

Os valores dentro do arquivo são fáceis de entender, na maioria das vezes. A descrição e a página inicial são para a ajuda do desenvolvedor. O número EAPI indica qual versão do Gentoo será executada. Você também tem a licença, o que é bastante claro; Combine a licença com o código para o qual você está construindo um arquivo EBUILD.

Ainda mais complicado é o slot, que é usado se você precisar ter várias versões. Slot apontará essa construção para a versão que você está apoiando. A maioria dos softwares terá o valor 0, permitindo apenas uma versão por vez.

Palavras -chave é o valor que indica quais plataformas para as quais seu código -fonte pode compilar. Os dados são AMD65, x86 e possivelmente ARM64. Uma lista completa está disponível em seu sistema Gentoo. Observe que se você quiser contribuir, você deve defina um tilde (~) em frente à arquitetura. Isso significa que o código não foi testado, portanto, verifique se o código está bem testado antes de remover este símbolo. De preferência, peça a muitos usuários que vejam o código antes de remover o Tilde.

A variável iuse retorna aos parâmetros que você deseja definir para o seu compilador.

Você também depende, que vem em três tipos diferentes. Os valores do RDepend são os valores que você usa ao executar o código. Os valores de dependência do BDEP são os valores dependentes da construção. O pacote que você está tentando adicionar ao Gentoo conterá um arquivo que descreve as dependências necessárias.

Para pacotes simples, você não precisa de mais nada. No entanto, o pacote específico em que você está trabalhando provavelmente terá algumas coisas que devem ser feitas antes de compilar o código. Se isso não corresponde ao que os desenvolvedores do Gentoo esperavam, você pode configurar o seu próprio.

Funções

No arquivo, o instalador usará determinadas funções para todo o processo. Por exemplo, para aplicar patches antes de executar o comando, o src_prepare () A função vai lidar com esta situação.

O src_configure () A função usa o econf para definir, eu.e., 'use_enable.'Nesta função, você pode descompactar seus arquivos usando o comando Unpack. Você também pode passar args para ./Configure para o seu projeto usando Econf. Como você pode ver, essas funções são nomeadas de acordo com seus equivalentes e muitas vezes passam por argumentos.

O src_install () função executa a mesma função que fazer instalar faria em uma compilação C/C ++. No entanto, ele contém muitas opções que você pode procurar no documento de referência.

A maioria das funções está lá para quando você tem um software de caso especial. Você provavelmente começará a cavar essas funções quando tentar implementar seu primeiro pacote.

Exemplo: arquivo de pacote de simulida

Aqui, apresentamos um arquivo criado para o pacote de simulida. O pacote requer um ambiente de desenvolvimento QT5, então você precisará adicionar isso no seu arquivo EBUILD. Na imagem a seguir, você pode ver os valores de RDepend refletindo esta ideia. As bibliotecas já estão contidas nos repositórios do Gentoo, o que facilita o apontar.

# Copyright 2021 Mats Tage Axelsson
# Distribuído sob os termos da licença pública geral da GNU v3
EAPI = 7
Descrição = "Simulida simula seus projetos de circuito, inclui emulação de Arduino."
HomePage = "https: // www.simulida.com/p/casa.html "
Src_uri = "https: // mailfence.com/pub/docs/santigoro/web/simulide_0.4.14/simulide_0.4.14-SR4_Sources.alcatrão.gz "
Licença = "GPL-3"
Slot = "0"
Palavras -chave = "~ x86 ~ amd64"
Rdepend = "Dev-qt/qtsvg
Dev-qt/qtxml
Dev-qt/QTScript
Dev-qt/qtwidgets
Dev-qt/qtConcurrent
Dev-qt/qtserialport
Dev-qt/qtmultimedia "
Depend = "$ rdepend
Dev-Libs/Libelf
Dev-embebedded/AVR-LIBC "
src_prepare ()
Unpack simulide_0.4.14-SR4_Sources.alcatrão.gz

src_configure ()
Econf--with-Popt

No src_prepare () função, você pode ver que o pacote é descompactado antes de usar.

Sobreposição

Quando você tiver aparado e limpo todos os seus erros, convém adicionar seu pacote ao projeto Gentoo. Layman foi criado para que você possa usar o software experimental para a sua principal distribuição de instalação. O projeto é chamado de sobreposições, mas o comando para instalá -lo é chamado de leigo.

Conclusão

Criar novos pacotes para o Gentoo é um empreendimento que pode esticar suas habilidades. Mesmo assim, se você construiu muitos pacotes antes de usar a marca e o conjunto de ferramentas do GCC, poderá pegar esse processo rapidamente. Além disso, não se esqueça de contribuir de volta para a comunidade o máximo que puder.