Fix typos

This commit is contained in:
Florian RICHER 2024-02-18 17:54:46 +01:00
parent ec0a1243de
commit 69093706c2

View file

@ -1,9 +1,9 @@
--- ---
image_path: "https://postmarketos.org/logo.svg" image_path: "https://postmarketos.org/logo.svg"
slug: pmbootstrap_own_package slug: pmbootstrap_own_paquet
title: Compiler sa propre version d'un package Postmarket OS title: Compiler un paquet Postmarket OS
date: 2024-02-18T00:00:00Z date: 2024-02-18T00:00:00Z
description: Installation de pmbootstrap et compilation de sa propre version d'un package Postmarket OS description: Installation de pmbootstrap et compilation d'un paquet Postmarket OS
project_link: none project_link: none
draft: true draft: true
tags: tags:
@ -13,43 +13,43 @@ tags:
## À propos de Postmarket OS ## À propos de Postmarket OS
[Postmarket OS](https://postmarketos.org/) est une distribution basé sur [Alpine](https://www.alpinelinux.org/) conçu pour fonctionner sur les téléphones, tablette [Postmarket OS](https://postmarketos.org/) est une distribution basée sur [Alpine](https://www.alpinelinux.org/) conçut pour fonctionner sur téléphones, tablette
ou sur Raspberry PI. ou sur Raspberry PI.
La communauté autour du projet propose un ensemble d'outils comme `pmbootstrap` qui permet de configurer et d'installer Postmarket OS sur son téléphone. La communauté autour du projet propose un ensemble d'outils comme `pmbootstrap` qui permet de configurer et d'installer Postmarket OS sur son téléphone.
On peut aussi l'utiliser pour compiler son propre package et l'installer sur son téléphone facilement. On peut aussi l'utiliser pour compiler son propre paquet et l'installer sur son téléphone facilement.
## Configuration de notre environnement de travail ## Configuration de notre environnement de travail
Avant de pouvoir l'utiliser, il faut d'abord l'installer depuis ce [lien](https://wiki.postmarketos.org/wiki/Pmbootstrap). Avant de pouvoir l'utiliser, il faut d'abord l'installer depuis ce [lien](https://wiki.postmarketos.org/wiki/Pmbootstrap).
Une fois installé et configuré, il faut d'abord executer les commandes suivantes: Une fois installé et configuré, il faut d'abord exécuter les commandes suivantes :
_Met à jour le repository [pmaports.git](https://wiki.postmarketos.org/wiki/Pmaports.git) cloné en local._ _Met à jour le repository [pmaports.git](https://wiki.postmarketos.org/wiki/Pmaports.git) cloné en local._
> Le repo pmaports.git stocke tous les packages Alpine avec le fichier fichier `APKBUILD` utilisé par le serveur de compilation. > Le repo pmaports.git stocke tous les paquets Alpine avec le fichier fichier `APKBUILD` utilisé par le serveur de compilation.
> >
> Le fonctionnement est similaire à `PKGBUILD` pour les utilisateurs de [Archlinux](https://archlinux.org/) > Le fonctionnement est similaire à `PKGBUILD` pour les utilisateurs de [Archlinux](https://archlinux.org/)
> >
> Ce fichier contient toute la procédure pour prepare les sources, compiler le package depuis les sources, le numéro de version > Ce fichier contient toute la procédure pour préparer les sources, compiler le paquet depuis les sources, le numéro de version
> ainsi que la procédure pour vérifier si le package fonctionne correctement. > ainsi que la procédure pour vérifier si le paquet fonctionne correctement.
> Généralement on utilise les tests du projet comme les tests unitaires ou les tests fonctionnels. > Généralement on utilise les tests du projet comme les tests unitaires ou les tests fonctionnels.
```bash ```bash
pmbootstrap pull pmbootstrap pull
``` ```
_Met à jour le cache de la commande APK depuis l'environnement de travail_ _Met à jour le cache de la commande APK depuis l'environnement de travail_
> L'environnement de travail ce situe par défaut dans le dossier `$HOME/.local/var/pmbootstrap/` > L'environnement de travail se situe par défaut dans le dossier `$HOME/.local/var/pmbootstrap/`
```bash ```bash
pmbootstrap update pmbootstrap update
``` ```
_Supprime le dossier de la commande chroot_ _Supprime le dossier de la commande chroot_
> La commande chroot permet de changer la racine Linux. > La commande chroot permet de changer la racine Linux.
> Par exemple, on peut faire `chroot $HOME/mon_dossier` et à partir de ce moment là, `/` pointera vers `$HOME/mon_dossier` dans notre shell actuel. > Par exemple, on peut faire `chroot $HOME/mon_dossier` et à partir de ce moment-là, `/` pointera vers `$HOME/mon_dossier` dans notre shell actuel.
> >
> C'est très utilisé par pmbootstrap pour configurer le système Alpine. > C'est très utilisé par pmbootstrap pour configurer le système Alpine.
> Ça évite de devoir faire une VM ou un container Linux juste pour changer quelque fichier. > Ça évite de devoir faire une VM ou un container Linux juste pour changer quelque fichier.
> >
> Dans notre cas, il correspont au système pour le téléphone utilisé pour le configuré avant de l'installer ou de le tester sur notre téléphone. > Dans notre cas, il correspond au système pour le téléphone utilisé pour le configuré avant de l'installer ou de le tester sur notre téléphone.
> >
> Par défaut, il se situe dans le dossier `$HOME/.local/var/pmbootstrap/cache_git/pmaports/` > Par défaut, il se situe dans le dossier `$HOME/.local/var/pmbootstrap/cache_git/pmaports/`
```bash ```bash
@ -58,19 +58,19 @@ pmbootstrap zap
_[Optionnel] Changer la branche du repo [pmaports.git](https://wiki.postmarketos.org/wiki/Pmaports.git)_ _[Optionnel] Changer la branche du repo [pmaports.git](https://wiki.postmarketos.org/wiki/Pmaports.git)_
> `$workdir` par défaut se situe dans le dossier `$HOME/.local/var/pmbootstrap/cache_git/pmaports/` > `$workdir` par défaut se situe dans le dossier `$HOME/.local/var/pmbootstrap/cache_git/pmaports/`
> Example de branche utile : `kde-nightly` > Exemple de branche utile : `kde-nightly`
```bash ```bash
git -C $workdir checkout [branch] git -C $workdir checkout [branch]
``` ```
## Compilation de notre package Alpine ## Compilation de notre paquet Alpine
Pour compiler le package, on utilise la commande `pmbootstrap build [package_name]`. Pour compiler le paquet, on utilise la commande `pmbootstrap build [paquet_name]`.
_Example de commande_ _Exemple de commande_
```bash ```bash
pmbootstrap \ pmbootstrap \
-mp https://nightly.postmarketos.org/plasma-mobile/packages/ \ -mp https://nightly.postmarketos.org/plasma-mobile/paquets/ \
-mp http://mirror.postmarketos.org/postmarketos/ \ -mp http://mirror.postmarketos.org/postmarketos/ \
--details-to-stdout \ --details-to-stdout \
-j 32 \ -j 32 \
@ -82,31 +82,31 @@ pmbootstrap \
-n -n
``` ```
Dans cette example, j'ai utilisé les arguments suivants: Dans cet exemple, j'ai utilisé les arguments suivants:
* `-mp` : Permet de définir un repository Alpine pour installer les packages. * `-mp` : Permet de définir un repository Alpine pour installer les paquets.
> Dans l'example, j'utilise deux repos > Dans l'exemple, j'utilise deux repos
> >
> `https://nightly.postmarketos.org/plasma-mobile/packages/` : Contient la version en cours de développement de KDE Plasma Mobile > `https://nightly.postmarketos.org/plasma-mobile/paquets/` : Contient la version en cours de développement de KDE Plasma Mobile
> >
> `http://mirror.postmarketos.org/postmarketos/` : Le mirroir officiel de Postmarket OS > `http://mirror.postmarketos.org/postmarketos/` : Le miroir officiel de Postmarket OS
* `--details-to-stdout` : Affiche les logs stocké dans le fichier dans la console * `--details-to-stdout` : Affiche les logs stocké dans le fichier dans la console
* `-j N` : Défini le nombre core utilisé pour la compilation * `-j N` : Défini le nombre core utilisé pour la compilation
> Dans mon cas, 32 core sur mon CPU. > Dans mon cas, 32 core sur mon CPU.
* `-t [En seconde]` : Le nombre de secondes sans nouveau log dans le fichier avant d'abandonner la compilation * `-t [En seconde]` : Le nombre de secondes sans nouveau log dans le fichier avant d'abandonner la compilation
> Changé à 3600 secondes car plasma-mobile est assez long à compilé et il ne génère aucun log. > Changé par 3600 secondes, car plasma-mobile est assez long à compilé et il ne génère aucun log.
* `-v` : Mode verbeux pour les logs dans le fichier * `-v` : Mode verbeux pour les logs dans le fichier
* `--src` : Change les sources du package. Par défaut ce sont les sources défini dans le fichier `APKBUILD` * `--src` : Change les sources du paquet. Par défaut ce sont les sources définies dans le fichier `APKBUILD`
> Pour ma part, je souhaite utiliser mon propre code pour tester > Pour ma part, je souhaite utiliser mon propre code pour tester
* `--arch [arch]` : L'architecture CPU du téléphone * `--arch [arch]` : L'architecture CPU du téléphone
> Pour ma part, mon téléphone est en arm64v8 donc `aarch64` > Pour ma part, mon téléphone est en arm64v8 donc `aarch64`
* `-n` : Permet d'éviter de compiler les dépendances du package. * `-n` : Permet d'éviter de compiler les dépendances du paquet.
> En général, c'est pas recommandé par Alpine mais dans mon cas, je souhaite utilisé les dépendances depuis le repo > En général, ce n'est pas recommandé par Alpine, mais dans mon cas, je souhaite utiliser les dépendances depuis le repo
> mirroir officiel de Postmarket OS. > miroir officiel de Postmarket OS.
* `-i` : Permet de dire de compiler uniquement les dépendances du package défini dans le fichier `APKBUILD` * `-i` : Permet de dire de compiler uniquement les dépendances du paquet défini dans le fichier `APKBUILD`
> Dans mon cas, il vient en complément de l'option `-n`, ça me permet de m'assurer de ne rien build. > Dans mon cas, il vient en complément de l'option `-n`, ça me permet de m'assurer de ne rien build.
> Sans cette option, il risque de compiler les sous-dépendances du package comme le noyau Linux. > Sans cette option, il risque de compiler les sous-dépendances du paquet comme le noyau Linux.
Pour plus d'informations, il suffit de taper la commande Pour plus d'informations, il suffit de taper la commande
@ -114,16 +114,16 @@ Pour plus d'informations, il suffit de taper la commande
pmbootstrap build --help pmbootstrap build --help
``` ```
Et pour avoir les arguments générals Et pour avoir les arguments généraux
```bash ```bash
pmbootstrap --help pmbootstrap --help
``` ```
## Envoie du package sur le téléphone ## Envoie du paquet sur le téléphone
Une fois le package compilé, il suffit de demandé à `pmbootstrap` de l'envoyé sur notre téléphon via la connexion SSH. Une fois le paquet compilé, il suffit de demander à `pmbootstrap` de l'envoyer sur notre téléphone via la connexion SSH.
Avec `pmbootstrap`, on utilise la commande `sideload` comme dans l'example ci-dessous. Avec `pmbootstrap`, on utilise la commande `sideload` comme dans l'exemple ci-dessous.
```bash ```bash
pmbootstrap sideload plasma-mobile \ pmbootstrap sideload plasma-mobile \
@ -134,16 +134,15 @@ pmbootstrap sideload plasma-mobile \
--install-key --install-key
``` ```
On a les arguments suivants: On a les arguments suivants :
* `--host [SSH HOST]` (Ex: 192.168.1.1) * `--host [SSH HOST]` (Ex: 192.168.1.1)
* `--port [SSH PORT]` (Ex: 22) * `--port [SSH PORT]` (Ex: 22)
* `--user [SSH USER]` (Ex: 192.168.1.1) * `--user [SSH USER]` (Ex: 192.168.1.1)
* `--arch [ARCH]` : Permet de modifier la valeur défini pour le téléphone (Ex: aarch64) * `--arch [ARCH]` : Permet de modifier la valeur définie pour le téléphone (Ex : aarch64)
* `--install-key` : Permet d'installer la clef utilisé pour la vérification des packages de la machine actuelle. * `--install-key` : Permet d'installer la clef utilisée pour la vérification des paquets de la machine actuelle.
> Tout gestionnaire de paquet comme APK, vérifie si le paquet est valide par rapport à la signature électronique du mainteneur du paquet. > Tout gestionnaire de paquet comme APK, vérifie si le paquet est valide par rapport à la signature électronique du mainteneur du paquet.
> Dans notre cas, la signature ne sera pas valide car le paquet n'est pas compilé par le mainteneur original donc ont rajoute notre signature. > Dans notre cas, la signature ne sera pas valide, car le paquet n'est pas compilé par le mainteneur original donc il suffit de rajouter notre signature.
Pour revenir en arrière, il suffit de taper la commande ci-dessous depuis le téléphone ou depuis la connexion SSH Pour revenir en arrière, il suffit de taper la commande ci-dessous depuis le téléphone ou depuis la connexion SSH
> APK va réinstaller les paquets depuis les repos officiels. > APK va réinstaller les paquets depuis les repos officiels.