Gentoo

Comment écrire des ebuilds Gentoo

Comment écrire des ebuilds Gentoo
Si vous n'avez pas le package Gentoo que vous désirez, n'ayez crainte! Vous pouvez construire votre propre! Pour ce faire, vous aurez besoin d'une certaine expérience de la compilation de logiciels à l'aide des kits d'outils Linux connus make, gcc et autres. Pour créer un package Gentoo, 'emake' est utilisé pour contrôler et ajuster le processus. À l'aide de ces outils, vous pouvez créer des packages très fins qui s'exécutent rapidement et de manière fiable.

Structure de construction

Pour créer votre propre ebuild, vous devez commencer par le bon *.fichier ebuild. Votre fichier ebuild est le cœur de tout votre ebuild. Le fichier ebuild dépend de nombreux autres fichiers, tout comme make. En fait, dans la plupart des cas, votre ebuild dépendra de make, bien que ce soit votre choix. Voici l'arbre de neovim :
/mnt/SW/projects/System/Gentoo/gentoo/app-editors/neovim
fichiers
├── neovim-0.4.3-gcc-10-fix.pièce
├── neovim-0.4.4-cmake_luaversion_patch
├── neovim-0.4.4-cmake-release-type.pièce
└── sysinit.vigueur
Manifeste
métadonnées.xml
neovim-0.4.4-r100.construire
neovim-9999.construire

Alors, à quoi servent ces fichiers dans votre application? Le *.le fichier ebuild est le fichier évident. Ce fichier contient le SRC_URI, qui pointe directement vers le code. Les autres informations contenues dans le fichier incluent la description, le site Web et d'autres informations nécessaires à la compilation du package.

Le fichier manifeste contient le hachage qui identifie de manière unique le code.

Les métadonnées.xml contient le nom et l'adresse e-mail du responsable, le nom du projet et quelques indicateurs pour la compilation. L'identité distante se trouve également dans ce fichier, comme le référentiel GitHub pour l'amont. Le répertoire des fichiers contient tous les correctifs dont vous pourriez avoir besoin et tous les paramètres spéciaux dont vous avez besoin. L'exemple ci-dessus montre un fichier avec les paramètres appropriés selon les mainteneurs Gentoo.

Dans le fichier Ebuild

Les valeurs à l'intérieur du fichier sont faciles à comprendre, pour la plupart. La description et la page d'accueil sont destinées à l'aide du développeur. Le numéro EAPI indique quelle version de Gentoo sera exécutée. Vous avez également la Licence, ce qui est assez clair ; faire correspondre la licence au code pour lequel vous créez un fichier ebuild.

Encore plus délicat est SLOT, qui est utilisé si vous avez besoin d'avoir plusieurs versions. SLOT fera alors pointer cette version vers la version que vous prenez en charge. La plupart des logiciels auront la valeur 0, n'autorisant qu'une seule version à la fois.

KEYWORDS est la valeur qui indique sur quelles plateformes votre code source peut être compilé. Les données données sont amd65, x86 et éventuellement arm64. Une liste complète est disponible sur votre système Gentoo. Notez que si vous souhaitez contribuer, vous doit mettre un tilde (~) devant l'architecture. Cela signifie que le code n'est pas testé, alors assurez-vous que le code est bien testé avant de supprimer ce symbole. De préférence, demandez à de nombreux utilisateurs de visualiser le code avant de supprimer le tilde.

La variable IUSE retourne aux paramètres que vous souhaitez définir pour votre compilateur.

Vous avez également DEPEND, qui se décline en trois types différents. Les valeurs RDEPEND sont les valeurs que vous utilisez lors de l'exécution du code. Les valeurs BDEPEND sont les valeurs dépendantes de la construction. Le paquet que vous essayez d'ajouter à Gentoo contiendra un fichier décrivant les dépendances nécessaires.

Pour les packages simples, vous n'avez besoin de rien d'autre. Cependant, le package spécifique sur lequel vous travaillez aura probablement certaines choses à faire avant de compiler le code. Si cela ne correspond pas à ce que les développeurs Gentoo attendaient, vous pouvez configurer votre propre.

Les fonctions

Dans le fichier, le programme d'installation utilisera certaines fonctions pour l'ensemble du processus. Par exemple, pour appliquer des correctifs avant d'exécuter la commande, le src_prepare() la fonction gérera cette situation.

le src_configure() la fonction utilise econf pour définir, je.e., 'use_enable.' Dans cette fonction, vous pouvez décompresser vos fichiers en utilisant la commande unpack. Vous pouvez également passer des arguments à ./configure pour votre projet en utilisant econf. Comme vous pouvez le voir, ces fonctions sont nommées en fonction de leurs équivalents make, et plusieurs fois, elles passent des arguments à travers.

le src_install() fonction remplit la même fonction que Fabriquer installer ferait dans un build C/C++. Cependant, il contient de nombreuses options que vous pouvez rechercher dans le document de référence.

La plupart des fonctions sont là pour quand vous avez un logiciel de cas particulier. Vous commencerez probablement à explorer ces fonctions lorsque vous essaierez d'implémenter votre premier package.

Exemple : fichier de package SimulIDE

Ici, nous présentons un fichier qui a été créé pour le package SimulIDE. Le package nécessite un environnement de développement Qt5, vous devrez donc l'ajouter dans votre fichier ebuild. Dans l'image suivante, vous pouvez voir les valeurs RDEPEND reflétant cette idée. Les bibliothèques sont déjà contenues dans les dépôts Gentoo, ce qui permet de pointer facilement vers.

# Copyright 2021 Tapis Tage Axelsson
# Distribué sous les termes de la licence publique générale GNU v3
EAPI=7
DESCRIPTION="SimulIDE simule vos conceptions de circuits, il inclut l'émulation Arduino."
PAGE D'ACCUEIL="https://www.simuler.com/p/accueil.html"
SRC_URI="https://mailfence.com/pub/docs/santigoro/web/SimulIDE_0.4.14/simulide_0.4.14-SR4_Sources.le goudron.gz"
LICENCE="GPL-3"
SLOT="0"
MOTS CLES="~x86 ~amd64"
RDEPEND="dev-qt/qtsvg
dev-qt/qtxml
dev-qt/qtscript
dev-qt/qtwidgets
dev-qt/qtconcurrent
dev-qt/qtserialport
dev-qt/qtmultimédia"
DEPEND="$RDEPEND
dev-libs/libelf
dev-embedded/avr-libc"
src_prepare()
décompresser simulide_0.4.14-SR4_Sources.le goudron.gz

src_configure()
econf --with-popt

Dans le src_prepare() fonction, vous pouvez voir que le paquet est déballé avant utilisation.

Recouvrir

Lorsque vous avez coupé et nettoyé toutes vos erreurs, vous pouvez ajouter votre package au projet Gentoo. Layman a été créé pour que vous puissiez utiliser un logiciel expérimental pour votre installation de distribution principale. Le projet s'appelle Overlays, mais la commande pour l'installer s'appelle Layman.

Conclusion

Créer de nouveaux packages pour Gentoo est une entreprise qui peut étendre vos capacités. Même ainsi, si vous avez construit de nombreux packages avant d'utiliser make et la suite d'outils gcc, vous devriez pouvoir reprendre ce processus assez rapidement. Assurez-vous également de contribuer autant que possible à la communauté.

Vulkan pour les utilisateurs Linux
Avec chaque nouvelle génération de cartes graphiques, nous voyons les développeurs de jeux repousser les limites de la fidélité graphique et se rappro...
OpenTTD contre Simutrans
Créer votre propre simulation de transport peut être amusant, relaxant et extrêmement attrayant. C'est pourquoi vous devez vous assurer que vous essay...
Tutoriel OpenTTD
OpenTTD est l'un des jeux de simulation d'entreprise les plus populaires. Dans ce jeu, vous devez créer une merveilleuse entreprise de transport. Cepe...