Come scrivere Gentoo Ebuilds

Come scrivere Gentoo Ebuilds
Se non hai il pacchetto Gentoo che desideri, non temere! Puoi costruire il tuo! Per fare ciò, avrai bisogno di un po 'di esperienza con la compilazione di software utilizzando i toolkit di Linux noti, GCC e altri. Per creare un pacchetto Gentoo, 'Emake' viene utilizzato per controllare e sintonizzare il processo. Usando questi strumenti, è possibile creare pacchetti molto sottili che funzionano in modo rapido e affidabile.

Struttura Ebuild

Per creare il tuo ebuild, devi iniziare con il corretto *.file ebuild. Il tuo file ebuild è il cuore di tutta la tua ebuild. Il file Ebuild dipende da molti altri file, proprio come fare. In effetti, nella maggior parte dei casi, il tuo Ebuild dipenderà da Make, anche se è una tua scelta. Quello che segue è l'albero di Neovim:
/MNT/SW/Progetti/Sistema/Gentoo/Gentoo/Editori di app/Neovim
├── file
│ ├── Neovim-0.4.3-GCC-10-Fix.toppa
│ ├── Neovim-0.4.4-cmake_luaversion_patch
│ ├── Neovim-0.4.Tipo 4-cmake-release.toppa
│ └── sysinit.vim
├── manifesta
├── Metadati.XML
├── Neovim-0.4.4-R100.Ebuild
└── Neovim-9999.Ebuild

Quindi, per cosa usi questi file nella tua applicazione? IL *.Il file Ebuild è il file ovvio. Questo file contiene SRC_URI, che punta direttamente al codice. Altre informazioni nel file includono la descrizione, il sito Web e ulteriori informazioni necessarie per la compilazione del pacchetto.

Il file manifest contiene l'hash che identifica in modo univoco il codice.

I metadati.Il file XML contiene il nome e l'indirizzo e -mail del manutentore, il nome del progetto e alcuni flag per la compilazione. L'identità remota si trova anche in questo file, come il repository GitHub per l'Upstream. La directory dei file contiene tutte le patch di cui potresti aver bisogno e tutte le impostazioni speciali necessarie. L'esempio sopra mostra un file con impostazioni appropriate in base ai manutentori di Gentoo.

All'interno del file Ebuild

I valori all'interno del file sono facili da capire, per la maggior parte. La descrizione e la home page sono per l'aiuto dello sviluppatore. Il numero EAPI indica quale versione di Gentoo verrà eseguita. Hai anche la licenza, il che è abbastanza chiaro; Abbina la licenza al codice per il quale si sta costruendo un file Ebuild.

Ancora più complicato è lo slot, che viene utilizzato se è necessario avere più versioni. Lo slot indicherà quindi questa build alla versione che stai supportando. La maggior parte del software avrà il valore 0, consentendo una sola versione alla volta.

Le parole chiave sono il valore che indica quali piattaforme a cui è possibile compilare il codice sorgente. Quelli dati sono AMD65, X86 e possibilmente ARM64. Un elenco completo è disponibile sul tuo sistema Gentoo. Nota che se vuoi contribuire, tu dovere Imposta un tilde (~) di fronte all'architettura. Ciò significa che il codice non è testato, quindi assicurati che il codice sia ben testato prima di rimuovere questo simbolo. Preferibilmente, chiedi a molti utenti di visualizzare il codice prima di rimuovere il tilde.

La variabile IUSE ritorna ai parametri che si desidera impostare per il tuo compilatore.

Devi anche dipendere, che è disponibile in tre diversi tipi. I valori RDEPEND sono i valori utilizzati durante l'esecuzione del codice. I valori BDEpend sono i valori dipendenti dalla build. Il pacchetto che stai cercando di aggiungere a Gentoo conterrà un file che descrive le dipendenze necessarie.

Per pacchetti semplici, non hai bisogno di nient'altro. Tuttavia, il pacchetto specifico su cui stai lavorando avrà probabilmente alcune cose che devono essere fatte prima di compilare il codice. Se questo non corrisponde a ciò che gli sviluppatori di Gentoo si aspettano, puoi impostare il tuo.

Funzioni

Nel file, l'installatore utilizzerà alcune funzioni per l'intero processo. Ad esempio, per applicare le patch prima di eseguire il comando, il src_prepare () La funzione gestirà questa situazione.

IL src_configure () La funzione utilizza ECONF per impostare, i.e., 'use_enable.'In questa funzione, puoi disimballare i tuoi file utilizzando il comando Unpack. Puoi anche passare Args a ./configura per il tuo progetto utilizzando Econf. Come puoi vedere, queste funzioni sono nominate in base alle loro rese equivalenti e molte volte passano argomenti.

IL src_install () La funzione esegue la stessa funzione che Fare installare farebbe in una build C/C ++. Tuttavia, contiene molte opzioni che puoi cercare nel documento di riferimento.

La maggior parte delle funzioni sono lì per quando si dispone di software di custodia speciale. Probabilmente inizierai a scavare attraverso queste funzioni quando proverai a implementare il tuo primo pacchetto.

Esempio: file del pacchetto di simulide

Qui, presentiamo un file creato per il pacchetto Simulide. Il pacchetto richiede un ambiente di sviluppo QT5, quindi dovrai aggiungerlo nel tuo file Ebuild. Nella seguente immagine, puoi vedere i valori RDEPER che riflettono questa idea. Le biblioteche sono già contenute nei repository di Gentoo, il che rende facile indicare.

# Copyright 2021 Mats Tage Axelsson
# Distribuito ai sensi della licenza pubblica generale GNU V3
EAPI = 7
Descrizione = "Simulide simula i tuoi progetti di circuiti, include emulazione Arduino."
Homepage = "https: // www.simulide.com/p/home.html "
Src_uri = "https: // mailfence.com/pub/docs/santigoro/web/simulide_0.4.14/Simulide_0.4.14-SR4_Sources.catrame.GZ "
Licenza = "GPL-3"
Slot = "0"
Key words = "~ x86 ~ amd64"
Rdipend = "dev-qt/qtsvg
Dev-Qt/Qtxml
Dev-Qt/QtScript
Dev-Qt/Qtwidgets
Dev-Qt/QtConCurrent
Dev-Qt/Qtserialport
Dev-Qt/Qtmultimedia "
Dipendente = "$ rdipend
Dev-Libs/Libelf
Dev-Embedded/Avr-Libc "
src_prepare ()
Unpack Simulide_0.4.14-SR4_Sources.catrame.Gz

src_configure ()
ECONF--With-popt

Nel src_prepare () funzione, puoi vedere che il pacchetto è disimballato prima dell'uso.

Overlay

Quando hai tagliato e pulito tutti i tuoi errori, potresti voler aggiungere il tuo pacchetto al progetto Gentoo. Layman è stato creato in modo da poter utilizzare il software sperimentale per l'installazione di distribuzione principale. Il progetto si chiama sovrapposizioni, ma il comando per installarlo si chiama layman.

Conclusione

Creare nuovi pacchetti per Gentoo è un'impresa che può allungare le tue capacità. Anche così, se hai costruito molti pacchetti prima di utilizzare Make e la suite di strumenti GCC, dovresti essere in grado di raccogliere questo processo piuttosto rapidamente. Inoltre, assicurati di contribuire al più possibile alla comunità.