Estrutura Ebuild
Para criar sua própria ebuild, você deve começar com o * correto.arquivo ebuild. Seu arquivo ebuild é o coração de toda sua ebuild. O arquivo ebuild depende de muitos outros arquivos, assim como o make faz. Na verdade, na maioria dos casos, sua ebuild dependerá de marca, embora seja sua escolha. A seguir está a árvore do neovim:
/ mnt / SW / projects / System / Gentoo / gentoo / app-editors / neovim
├── arquivos
│ ├── neovim-0.4.3-gcc-10-fix.correção
│ ├── neovim-0.4.4-cmake_luaversion_patch
│ ├── neovim-0.4.4-cmake-release-type.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 outras 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 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 GitHub para o upstream. O diretório de arquivos contém todos os patches que você possa precisar e quaisquer configurações especiais que você precise. 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, em sua maioria. 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, que é bastante clara; combine a licença com o código para o qual você está construindo um arquivo ebuild.
Ainda mais complicado é SLOT, que é usado se você precisar ter várias versões. SLOT irá então apontar esta compilação para a versão que você está suportando. A maioria dos softwares terá o valor 0, permitindo apenas uma versão de cada vez.
KEYWORDS é o valor que indica quais plataformas para as quais seu código-fonte pode compilar. Os fornecidos são amd65, x86 e possivelmente arm64. Uma lista completa está disponível em seu sistema Gentoo. Observe que se você quiser contribuir, você devo defina um til (~) na frente da arquitetura. Isso significa que o código não foi testado, então certifique-se de que o código foi bem testado antes de remover este símbolo. De preferência, faça com que muitos usuários vejam o código antes de remover o til.
A variável IUSE retorna aos parâmetros que você deseja definir para o seu compilador.
Você também tem DEPEND, que vem em três tipos diferentes. Os valores RDEPEND são os valores que você usa ao executar o código. Os valores BDEPEND são os valores dependentes de construção. O pacote que você está tentando adicionar ao Gentoo irá 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 no qual você está trabalhando provavelmente terá algumas coisas que devem ser feitas antes de compilar o código. Se isso não corresponder ao que os desenvolvedores do Gentoo esperavam, você pode configurar o seu próprio.
Funções
No arquivo, o instalador usará certas funções para todo o processo. Por exemplo, para aplicar patches antes de executar o comando, o src_prepare () função vai lidar com esta situação.
O src_configure () função usa econf para definir, i.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, elas passam argumentos entre.
O src_install () função desempenha a mesma função que faço instalar faria em uma construção C / C ++. No entanto, ele contém muitas opções que você pode consultar no documento de referência.
A maioria das funções existe para quando você tem um software de caso especial. Você provavelmente irá começar a se aprofundar nessas funções quando tentar implementar seu primeiro pacote.
Exemplo: Arquivo de pacote SimulIDE
Aqui, apresentamos um arquivo que foi criado para o pacote SimulIDE. O pacote requer um ambiente de desenvolvimento Qt5, então você precisará adicioná-lo ao seu arquivo ebuild. Na imagem a seguir, você pode ver os valores RDEPEND refletindo esta ideia. As bibliotecas já estão contidas nos repositórios do Gentoo, o que torna fácil apontar para.
# Copyright 2021 Mats Tage Axelsson# Distribuído sob os termos da GNU General Public License v3
EAPI = 7
DESCRIPTION = "SimulIDE simula seus projetos de circuito, inclui emulação de Arduino."
HOMEPAGE = "https: // www.simulídio.com / p / home.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-embedded / avr-libc "
src_prepare ()
desempacotar 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
Depois de cortar e limpar todos os seus erros, você pode querer adicionar seu pacote ao projeto Gentoo. Layman foi criado para que você possa usar um software experimental para a instalação da sua distribuição principal. O projeto é denominado Overlays, mas o comando para instalá-lo é denominado Layman.
Conclusão
Criar novos pacotes para o Gentoo é uma tarefa que pode aumentar suas habilidades. Mesmo assim, se você construiu muitos pacotes antes de usar make e o conjunto de ferramentas gcc, você deve ser capaz de pegar este processo rapidamente. Além disso, certifique-se de contribuir de volta para a comunidade o máximo que puder.