Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » GiteaPC : Installer et mettre à jour automatiquement des projets Gitea
Lephenixnoir En ligne Administrateur Points: 22435 Défis: 149 Message

GiteaPC : Installer et mettre à jour automatiquement des projets Gitea

Posté le 01/01/2021 23:19

Ce topic fait partie de la série de topics du fxSDK.

Pour pallier aux difficultés d'installation du fxSDK sous Linux, j'ai réfléchi à créer un outil pour automatiquement installer et mettre à jour des projets depuis le dépôt Gitea. L'outil est encore jeune donc les tests sont bienvenus, mais le développement est a priori complet.

Le code source est sur le dépôt Gitea Lephenixnoir/GiteaPC.

Qu'est-ce que c'est ?

GiteaPC est un programme Python qui automatise le processus de clônage/configuration/compilation/installation de projets sur la forge Gitea de Planète Casio. Son usage principal est d'installer et mettre à jour le fxSDK, qui utilise pas mal de dépôts.

L'avantage principal c'est que l'installation est plus simple pour tous les gens qui ne sont pas habitués à utiliser Git et à compiler des outils sous Linux. L'installation automatisée est aussi plus consistante (moins de risques de mauvaises surprises), et plus rapide puisqu'il n'y a quasiment plus de tutoriel à suivre.

Merci pour les conversations avec notamment Breizh_craft, Dark Storm et Cakeisalie5 qui m'ont bien aidé à cerner un design plus élégant (et pas trop gestionnaire de paquets).

Installation de GiteaPC

Pour Mac OS : GiteaPC fonctionne, mais il y a quelques ajustements à faire. Voyez le guide de Choukas.

Il y a quelques dépendances à installer. Voici la commande pour les distributions les plus communes sur Planète Casio : copiez la commande (la ligne après le %) dans un terminal puis appuyez sur Entrée (votre mot de passe sera demandé).

# Si vous avez Debian, Ubuntu, WSL sous Windows, Linux Mint ou d'autres dérivés de Debian :
% sudo apt install curl git python3 build-essential cmake pkg-config

# Si vous avez Arch Linux, Manjaro, ou d'autres dérivés d'Arch Linux :
% sudo pacman -S curl git python3 gcc make cmake pkgconf

Ensuite vous pouvez installer GiteaPC en une ligne avec la commande suivante :

% curl "https://gitea.planet-casio.com/Lephenixnoir/GiteaPC/raw/branch/master/install.sh" -o /tmp/giteapc-install.sh && bash /tmp/giteapc-install.sh

Vous pouvez consulter le script ici ou faire l'installation manuelle depuis le dépôt Lephenixnoir/GiteaPC si vous préférez ça.

Vous aurez probablement besoin de mettre à jour votre PATH. Si vous ne connaissez pas le PATH ou avez du mal à le situer, vous pouvez lire le Tutoriel du Mercredi #20 sur ce sujet. Si ça se produit, GiteaPC vous demandera de modifier le PATH en ces termes :

<giteapc> In order to use programs installed by GiteaPC, you will need to add their
<giteapc> install folder to your PATH. This can be done automatically when you log
<giteapc> in by adding the following command to your startup file:
<giteapc>
<giteapc>   export PATH="$PATH:/home/el/.local/bin"
<giteapc>
<giteapc> -> Press Enter to add this command to /home/el/.profile, or
<giteapc> -> Type another file name to add this command to, or
<giteapc> -> Type "-" to skip setting the PATH entirely.
>

Si vous n'utilisez pas votre .profile, .bashrc ou équivalent (ou ne savez pas ce que c'est), appuyez sur Entrée puis fermez et rouvrez votre session (ou redémarrez votre ordinateur). Si vous utilisez .profile ou équivalent, alors vous comprenez certainement la question, faites ce que vous préférez.

Pour vérifier que l'installation a fonctionné, lancez la commande giteapc. Vous devez obtenir un message d'aide coloré avec la liste des commandes. giteapc peut se mettre à jour tout seul donc vous n'aurez plus besoin de refaire ce travail d'installation.

Installation du fxSDK avec GiteaPC

Le fxSDK et toutes les bibliothèques qui vont avec (que je gère, du moins) peuvent être obtenues avec GiteaPC. Le fxSDK dépend de quelques bibliothèques dont vous aurez besoin (même formule que précédemment) :

# Debian, Ubuntu, WSL sous Windows, Linux Mint, dérivés de Debian :
% sudo apt install python3-pil libusb-1.0-0-dev libudev-dev libsdl2-dev
# En option pour fxlink -s :
% sudo apt install libudisks2-dev libglib2.0-dev

# ArchLinux, Manjaro, dérivés d'ArchLinux :
% sudo pacman -S python-pillow libusb sdl2
# En option pour fxlink -s :
% sudo pacman -S udisks2

Avec ces dépendances, vous pouvez obtenir un environnement de développement avec gint et le fxSDK avec la commande ci-dessous (ne la lancez pas tout de suite, et lisez la fin du paragraphe d'abord, car il y a des options et variations).

giteapc install Lephenixnoir/sh-elf-binutils:any Lephenixnoir/sh-elf-gcc:any Lephenixnoir/fxsdk Lephenixnoir/gint

Cela installera un cross-compilateur GCC à jour, sauf si vous en avez déjà un, auquel cas celui que vous avez est utilisé. Ensuite ça installera le fxSDK et gint, c'est-à-dire tout ce qu'il vous faut pour commencer à coder des add-ins.

Si vous avez déjà une installation du fxSDK, vous avez deux choix.
  • Ou bien vous gardez votre compilateur et vous gardez les :any dans la commande.
  • Ou bien vous recompilez GCC, pour ça enlevez les :any et supprimez votre ancien GCC après avoir fini l'installation.

Si vous ne savez pas quoi faire, prenez la première option ; c'est plus rapide et ça réduit le risque de se planter.

fxlink utilise UDisks2 pour monter les Graph 35+E II et Graph 90+E et y copier des fichiers depuis la ligne de commande (fxlink -s). UDisks2 est un outil important dans le système d'exploitation, qui gère les disques durs, périphériques USB, et d'autres. Si votre Linux utilise déjà UDisks2 (ce que vous pouvez tester en lançant la commande udisksctl), je vous invite à installer la dépendance. Sinon, c'est plus raisonnable de ne pas l'installer pour ne pas perturber votre OS. Dans ce cas, dans la commande GiteaPC, installez Lephenixnoir/fxsdk:noudisks2 à la place de Lephenixnoir/fxsdk (ça désactivera la fonctionnalité correspondante de fxlink).

Pour générer des g3a, il n'y pour l'instant pas d'outil intégré au fxSDK, donc vous aurez probablement besoin de mkg3a.

Une fois l'installation réalisée avec GiteaPC, vous pouvez supprimer vos anciens clones des dépôts. Vous pouvez toujours consulter les clones de GiteaPC avec la commande suivante (par exemple pour le fxSDK) :

cd $(giteapc show -p Lephenixnoir/fxsdk)

Si vous voulez juste coder avec le fxSDK, jetez un œil à la section suivante pour les mises à jour puis vous pouvez arrêter de lire. Le reste de ce topic parle des détails de GiteaPC, qui ne sont pas importants pour juste programmer des add-ins.

Enrichir et mettre à jour une installation du fxSDK avec GiteaPC

Pour installer un nouveau dépôt qui supporte GiteaPC, par exemple la bibliothèque libprof, utilisez giteapc install.

giteapc install Lephenixnoir/libprof

Vous pouvez tout mettre à jour avec giteapc install -u. GiteaPC vous autorise à donner les noms des dépôts sans leur propriétaire s'il n'y a pas d'ambiguïté, ce qui est un peu risqué quand il s'agit des dépôts distants (à l'installation) mais pas trop quand il s'agit de dépôts locaux (durant une mise à jour).

giteapc install -u sh-elf-binutils sh-elf-gcc fxsdk gint libprof

Et voilà, tout est à jour.

Instructions d'utilisations plus précises

Lister et rechercher des dépôts

Utilisez giteapc list -r pour lister les dépôts de la forge qui peuvent être installés avec Gitea, et giteapc list pour lister tous les dépôts que vous avez sur votre ordinateur.

Si un argument supplémentaire est donné, il servira à filtrer par nom et par description. Par exemple, giteapc list -r gcc.

Installer et mettre à jour des dépôts

Utilisez giteapc install pour installer un dépôt et giteapc install -u pour mettre à jour un dépôt. La différence c'est qu'avec -u les nouveautés seront téléchargées avant l'installation (git pull).

Installer des versions spécifiques

Les noms des dépôts dans les commandes install et build acceptent deux suffixes : @version et :config (dans cet ordre). Le premier permet de sélectionner (git checkout) une branche ou un tag. Le second permet de modifier les options de compilation si le dépôt en supporte (par exemple binutils et GCC ont une configuration «any» qui accepte tout GCC déjà installé et ne compile pas s'ils en trouvent un).

Par exemple, pour installer spécifiquement binutils 2.35.1, on peut utiliser la commande ci-dessous. Notez que du coup le dépôt est figé à la version 2.35.1 et ne sera pas mis à jour (même avec -u) tant que vous n'installerez pas explicitement sh-elf-binutils@master pour revenir sur la branche principale.

giteapc install Lephenixnoir/sh-elf-binutils@2.35.1

Pour installer binutils mais utiliser une version déjà installée l'an dernier sans le recompiler, on peut utiliser la configuration «any».

giteapc install Lephenixnoir/sh-elf-binutils:any

Commandes fines

giteapc fetch permet de clôner ou mettre à jour (git fetch) un dépôt sans toucher à rien.
giteapc build permet de configure/build un dépôt sans l'installer ou de recompiler sans reconfigurer.
giteapc show permet de voir les versions disponibles d'un dépôt local ou distant.

Voyez l'aide (giteapc --help) pour le détail des options.

Désinstaller un dépôt

giteapc uninstall désinstalle un dépôt et supprime le clône local, giteapc uninstall -k déinstalle le dépôt mais garde le clône local. Les dépendances ne sont pas vérifiées durant une désinstallation donc gardez un œil dessus.

Créer un projet supportant GiteaPC

Pour pouvoir être installé par GiteaPC, un dépôt doit avoir les choses suivantes :

• Le topic giteapc sur le dépôt (qu'on peut ajouter en cliquant sur le lien "Manage topics" sur la page principale du dépôt) : c'est ce qui permet au dépôt d'apparaître dans giteapc list -r.

• Fournir un giteapc.make qui contient quelques métadonnées, qui inclut optionnellement giteapc-config.make et fournit quatre cibles configure, build, install et uninstall (plus de détails ci-dessous).

• Avoir giteapc-config.make et giteapc-config-*.make dans le .gitignore.

giteapc-config.make sera un lien symbolique pointant vers la configuration courante et giteapc-config-*.make sont les configurations à proprement parler. Si vous en fournissez par défaut, retirez-les explicitement (!giteapc-config-myconf.make). Tous les autres noms doivent être ignorés pour que l'utilisateur puisse ajouter ses propres configurations sans que le dépôt casse à chaque pull à cause des fichiers non traqués.

Le giteapc.make doit ressembler à ça :

# giteapc: version=1
# giteapc: depends=Lephenixnoir/sh-elf-gcc

-include giteapc-config.make

configure:
    ...
build:
    ...
install:
    ...
uninstall:
    ...

.PHONY: configure build install uninstall


D'abord les métadonnées ; il y en a deux pour l'instant : version (doit être "1") et depends (liste des dépendances). Ensuite l'inclusion optionnelle de giteapc-config.make. Et enfin, les règles configure, build, install et uninstall, dans lesquelles vous pouvez lancer le code qui va bien.

Quelques exemples : sh-elf-gcc, fxsdk, Template-gint-library.


Précédente 1, 2, 3 ··· 6, 7, 8, 9
Lephenixnoir En ligne Administrateur Points: 22435 Défis: 149 Message

Citer : Posté le 24/02/2022 13:19 | #


Merci. J'ai ajouté un lien vers ce post tout en haut du tutoriel. Je peux difficilement faire plus formel vu que je ne teste/maintiens pas cette cible. Merci beaucoup de t'être prêté au jeu, sans ça (et le document initial de Ninestars) il n'y aurait pas de support du tout
Kirafi Hors ligne Membre Points: 2179 Défis: 10 Message

Citer : Posté le 26/03/2022 09:41 | #


Plusieurs galère pour installer GiteaPC avec WSL, je précise que je n'ai absolument rien installé avant via cette méthode, donc il manque quelques petites choses.

-----

fatal: unable to access 'https://gitea.planet-casio.com/Lephenixnoir/GiteaPC.git/': server certificate verification failed. CAfile: none CRLfile: none

Certificats non valides : résolut avec cette commande trouvée ici server-certificate-verification-failed-cafile-etc-ssl-certs-ca-certificates-c
sudo apt update ; sudo apt-get install apt-transport-https ca-certificates -y ; sudo update-ca-certificates


-----

FileNotFoundError: [Errno 2] No such file or directory: 'make'

Il manque encore un 'tit package
sudo apt-get install build-essential

iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Slyvtt En ligne Community Manager Points: 792 Défis: 0 Message

Citer : Posté le 26/03/2022 17:18 | #


Hello

visiblement qq chose ne s'est pas bien passé durant l'installation de la toute première ligne

sudo apt install curl git python3 build-essential cmake pkg-config


Tu es sur quelle distribution ? Sur Ubuntu sur WSL, ça marche nickel, j'étais sur ça avant de passer sur une vraie Ubuntu pour avoir le support USB.
Kirafi Hors ligne Membre Points: 2179 Défis: 10 Message

Citer : Posté le 27/03/2022 14:20 | #


J'ai vu avec Lephé c'était juste pour garder une trace, mais oui je sais pas pourquoi la première ligne s'est mal déroulée.

WSL avec Ubuntu à priori. Tout est rentré dans l'ordre après avoir relancé ces install de toute façon .
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Ena0 Hors ligne Membre Points: 89 Défis: 1 Message

Citer : Posté le 16/04/2022 22:07 | #


Salut,

j'essaye depuis peu de réinstaller giteapc sur mon Linux(j'ai eu des problèmes qui ont fait que j'ai dû complètement réinstaller mon Linux) sauf que j'ai un problème au niveau du clonage de git:

<giteapc> Cloning Lephenixnoir/GiteaPC...
error: error 128 in command: git clone https://gitea.planet-casio.com/Lephenixnoir/GiteaPC.git /home/ena0/.local/share/giteapc/Lephenixnoir/GiteaPC
Clonage dans '/home/ena0/.local/share/giteapc/Lephenixnoir/GiteaPC'...
fatal: impossible d'accéder à 'https://gitea.planet-casio.com/Lephenixnoir/GiteaPC.git/' : server certificate verification failed. CAfile: none CRLfile: none
<giteapc> /home/ena0/.local/bin is already in your PATH, we're good to go!


d'après ce que je vois, il n'arrive pas a accéder au repo mais il lance quand même le script.sh et quand j'essaye d’exécuter la commande giteapc il me dit qu'il ne la connais pas, j'ai pourtant installer toutes les dépendances et j'ai refait plusieurs fois la commande pour être sûr
ma capacité a utiliser un forum
   0%


Lephenixnoir En ligne Administrateur Points: 22435 Défis: 149 Message

Citer : Posté le 16/04/2022 22:16 | #


Est-ce que tu as installé les certificats SSL sur ta nouvelle install ? C'est clairement un problème de certificat.
Ena0 Hors ligne Membre Points: 89 Défis: 1 Message

Citer : Posté le 16/04/2022 22:23 | #


hum, non je ne l'ai pas fait (et ne sait pas encore le faire), mais ce qui me paraît bizarre c'est que je n'avais pas eu besoin de le faire la première fois
ma capacité a utiliser un forum
   0%


Lephenixnoir En ligne Administrateur Points: 22435 Défis: 149 Message

Citer : Posté le 16/04/2022 22:48 | #


Il faut juste que tu installes le bon paquet. Selon ta distribution ce n'est pas automatique, si tu peux spécifier la distro ça nous donnera la direction
Ena0 Hors ligne Membre Points: 89 Défis: 1 Message

Citer : Posté le 16/04/2022 22:50 | #


je suis actuellement sur zorinOs (la dernière version)
ma capacité a utiliser un forum
   0%


Lephenixnoir En ligne Administrateur Points: 22435 Défis: 149 Message

Citer : Posté le 16/04/2022 22:56 | #


Tu peux installer le paquet ca-certificates :

sudo apt install ca-certificates

Et réessayer ensuite. (J'espère que c'est ça !)
Ena0 Hors ligne Membre Points: 89 Défis: 1 Message

Citer : Posté le 16/04/2022 22:58 | #


c'est bon, je suis aller chercher sur les doc et le forum de zorinOs et j'ai pu installer le package, tout fonctionne maintenant (j'attend quand même la fin de l'installation de gint, avec la chance que j'ai il y auras surement un autre problème ), merci de ton aide
ma capacité a utiliser un forum
   0%


Lephenixnoir En ligne Administrateur Points: 22435 Défis: 149 Message

Citer : Posté le 16/04/2022 22:58 | #


Pitié non pas une erreur en plus dans l'installation de la toolchain. C'est déjà assez dur comme ça
Ena0 Hors ligne Membre Points: 89 Défis: 1 Message

Citer : Posté le 16/04/2022 23:03 | #


Pour l'instant tout va bien, je suis a la compilation de gcc et il n'y a eu encore aucunes erreurs

en attendant j'ai découvert les emoji du site et je trouve que celui la me va bien pour aujourd'hui :

Ajouté le 16/04/2022 à 23:29 :
j'ai encore une erreur ~~

il ne trouve pas le package udisks2 alors qu'il est installé
ma capacité a utiliser un forum
   0%


Lephenixnoir En ligne Administrateur Points: 22435 Défis: 149 Message

Citer : Posté le 16/04/2022 23:30 | #


Il te faut bien le paquet de développement, à savoir libudisks2-dev.
Ena0 Hors ligne Membre Points: 89 Défis: 1 Message

Citer : Posté le 16/04/2022 23:33 | #


C'EST BON, enfin, il est installé, merci beaucoup pour ta patience et ton aide
ma capacité a utiliser un forum
   0%


Lephenixnoir En ligne Administrateur Points: 22435 Défis: 149 Message

Citer : Posté le 16/04/2022 23:33 | #


Super ! C'était pas trop compliqué, ouf. Bon dev'
Ena0 Hors ligne Membre Points: 89 Défis: 1 Message

Citer : Posté le 16/04/2022 23:35 | #


merci , je vais essayer de me remettre au c en même temps

Ajouté le 17/04/2022 à 17:18 :
bon ... continuons dans la série des "j'ai des erreurs de merde quand j'essaye des trucs".

Quand j'essaye de compiler un projet (pour les casio couleurs) il me dit que je n'ai pas le programme mkg3a et que la compilation foire, je n'ai pas trouvé de moyen de l'installer ...
ma capacité a utiliser un forum
   0%


Lephenixnoir En ligne Administrateur Points: 22435 Défis: 149 Message

Citer : Posté le 17/04/2022 17:26 | #


La solution facile : prends la branche dev du fxSDK (giteapc install -u fxsdk@dev) et recrée ton projet.

La seule partie qui manquait jusqu'ici au fxSDK était un outil pour créer les g3a ; j'utilisais mkg3a de Tari. Mais depuis quelques temps (sur la branche dev) le fxSDK a un outil fxgxa qui remplit ce rôle.

L'autre solution c'est d'installer mkg3a en le clônant ci-dessus.
Précédente 1, 2, 3 ··· 6, 7, 8, 9

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 40 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd