From b94c896025c3067557cdc2f71e59bff3781ea08b Mon Sep 17 00:00:00 2001 From: ljf Date: Tue, 4 Oct 2016 19:59:57 +0200 Subject: [PATCH 01/46] [enh] Add some consensual YEP descriptions --- packaging_apps_guidelines_fr.md | 153 +++++++++++++++++++++++++++++--- 1 file changed, 142 insertions(+), 11 deletions(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 68ffd102..09db2881 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -23,7 +23,7 @@ Chaque YEP est associée à : | **YEP 1** | **Communiquer avec la communauté** | | | | | YEP 1.1 | Nommer son app et son dépot | validé | manuel | NOTWORKING | | YEP 1.2 | Inscrire l'app sur un "répertoire" connu | validé | manuel | NOTWORKING | -| YEP 1.3 | Indiquer la licence associée au paquet | validé | AUTO | WORKING | +| YEP 1.3 | Indiquer la licence associée au paquet | brouillon | AUTO | WORKING | | YEP 1.4 | Informer sur l'intention de maintenir un paquet | brouillon | manuel | WORKING | | YEP 1.5 | Mettre à jour régulièrement le statut de l'app | brouillon | manuel | WORKING | | YEP 1.6 | Se tenir informé sur l'évolution du packaging d'apps | validé | manuel | OFFICIAL | @@ -48,7 +48,7 @@ Chaque YEP est associée à : | YEP 2.12 | Utiliser les commandes pratiques (helpers) | validé | auto | OFFICIAL | | YEP 2.13 | Traduire le package en anglais | brouillon | manuel | OFFICIAL | | YEP 2.14 | Remplir correctement un fichier de conf | brouillon | manuel | OFFICIAL | -| YEP 2.15 | Vérifier les paramètres saisies par l'utilisateur | validé | manuel | OFFICIAL | +| YEP 2.15 | Suivre les instructions d'installation de l'application | validé | manuel | OFFICIAL | | YEP 2.16 | Vérifier la disponibilité des dépendances sur ARM, x86 et x64 | validé | manuel | OFFICIAL | | YEP 2.17 | Prendre en compte la version d'origine lors des mises à jour | validé | manuel | OFFICIAL | | | | | | | @@ -109,55 +109,136 @@ Ces dépôts ont plusieurs fonctions : * indiquer l'état de fonctionnement du paquet ; * indiquer des informations sur le support d'un paquet. -
- -TODO Lien ou information pour réaliser l'inscription. - -
+Pour les listes official.json et community.json, l'inscription se fait sur [le dépôt git "apps"](https://github.com/YunoHost/apps). -#### YEP 1.3 - Indiquer la licence associée au paquet | validé | AUTO | WORKING | +Pour la liste d'application du projet LaBriqueInter.net, l'inscription se fait en consultant [la doc du dépôt du site internet](https://github.com/labriqueinternet/labriqueinter.net). + +#### YEP 1.3 - Indiquer la licence associée au paquet | brouillon | AUTO | WORKING | #### YEP 1.4 - Informer sur l'intention de maintenir un paquet | brouillon | manuel | WORKING | #### YEP 1.5 - Mettre à jour régulièrement le statut de l'app | brouillon | manuel | WORKING | #### YEP 1.6 - Se tenir informé sur l'évolution du packaging d'apps | validé | manuel | OFFICIAL | +Afin de suivre l'évolution du format de packaging ainsi que des bonnes pratiques, il est recommandé de: +* s'inscrire à la liste de discussion apps@list.yunohost.org +* suivre [la catégorie App intégration du forum](https://forum.yunohost.org/c/app-integration) + +Pour suivre l'évolution de YunoHost de façon plus générale: +* rejoindre le salon XMPP dev@conference.yunohost.org ([3 jours de logs sont disponibles](https://im.yunohost.org/logs/dev/)) +* suivre [la catégorie Annoucement du forum](https://forum.yunohost.org/c/announcement) +* suivre les discussions sur contrib@list.yunohost.org + #### YEP 1.7 - Ajouter l'app à l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) | validé | manuel | OFFICIAL | +L'ajout d'une app sur l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) permet de faire connaitre l'apps auprès des autres contributeurs qui pourraient être tentés de packager l'application visée. + +C'est aussi un moyen pour permettre de déployer rapidement un correctif de sécurité si nécéssaire dans le cas où le mainteneur ne serait pas disponible. + #### YEP 1.8 - Publier des demandes de test | validé | manuel | OFFICIAL | +Afin d'assurer le bon fonctionnement d'un paquet, il convient de publier une annonce afin d'ouvrir les tests sur le paquet. Cette annonce peut se faire sur le forum dans [la catégorie App intégration du forum](https://forum.yunohost.org/c/app-integration). + +Il est recommandé d'indiquer si certains tests n'ont pas été mené +
+ +TODO: Lister les tests types à mener + +
#### YEP 1.9 - Documenter l'app | validé | AUTO | OFFICIAL | +Avant tout, il convient de faire une description correcte de l'app dans le champs `description` du manifest. L'insertion de mot clé dans cette description peut être une bonne idée, dans la mesure où un utilisateur pourrait être amené à faire une recherche (CTRL+F) parmis toutes les applications. + +Il y a également le README.md, ce dernier peut contenir: +* le nom de l'app +* un bref résumé de ce qu'elle fait +* des éventuels compléments d'installation si le script ne suffit pas lui même +* des instructions pour l'utiliser (par exemple pour relier son smartphone ou son ordinateur) +* l'endroit pour signaler un dysfonctionnement / une demande +* la roadmap/TODO +* éventuellement les pré-requis en termes de mémoires ram, processeur etc. (certains équipements ont moins de 512Mo de ram) + #### YEP 1.10 - Garder un historique de version propre | brouillon | manuel | OFFICIAL | #### YEP 1.11 - Ajouter l'app au [bugtracker YunoHost](https://dev.yunohost.org) | brouillon | manuel | OFFICIAL | ### YEP 2 - Stabiliser une app #### YEP 2.1 - Respecter le format du manifeste | validé | auto | INPROGRESS | +Le manifeste permet de décrire une app afin que YunoHost puisse lui appliquer les bons traitements. Pour plus d'information voir la [documentation dédiée](https://yunohost.org/#/packaging_apps_manifest). + #### YEP 2.2 - Utiliser bash pour les scripts principaux | validé | auto | WORKING | Les scripts d'action (install, upgrade, remove, backup et restore) doivent être en bash afin que la cli/api yunohost puisse correctement les appeler. Ceci étant rien n'empèche à l'intérieur de ces scripts de faire appel à d'autres scripts ou bibliothèques de fonction. Ceux ci ne sont pas obligés d'être en bash. Cependant, il faudra porter une attention particulière à l'affichage correcte des logs d'information, de warning, ou d'erreurs. Afin qu'un utilisateur de la cli/api yunohost puisse comprendre le fonctionnement du script venant d'être executé et au besoin réparer son instance YunoHost. - + #### YEP 2.3 - Sauvegarder les réponses lors de l'installation | validé | manuel | WORKING | Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux questions du manifeste. En effet, même si au début il n'est pas nécessaire d'écrire un script de mise à jour, par la suite ce sera sans doute le cas. Or, sans les informations initiales, la mise à jour peut être plus fastidieuse. #### YEP 2.4 - Détecter et gérer les erreurs | brouillon | manuel | WORKING | #### YEP 2.5 - Copier correctement des fichiers | brouillon | manuel | WORKING | #### YEP 2.6 - Annuler l'action si les valeurs d'entrées sont incorrectes | validé | manuel | WORKING | +Chaque script devrait vérifier que les valeurs d'entrées sont correctes. + +Voici quelques exemples: +* Vérifier que le nom de domaine existe +* Vérifier que l'utilisateur existe +* Vérifier que le chemin choisi est disponible + +Dans le cas où l'une des valeurs est incorrecte, il est alors nécéssaire d'annuler toutes modifications réalisées préalablement sur l'instance. Le mieux étant de faire tout ces contrôles avant de modifier le système. + + #### YEP 2.7 - Donner des permissions suffisantes aux instructions bash | validé | auto | WORKING | +Certaines instructions nécéssitent les droits sudo. Il faut dans ce cas ne pas oublier de prefixer ces instructions par `sudo `. + +Dans d'autres cas il est nécéssaire de donner des droits à l'aide de chmod et de chown. + #### YEP 2.8 - Modifier correctement une configuration système | brouillon | manuel | WORKING | #### YEP 2.9 - Enlever toutes traces de l'app lors de la suppression | brouillon | manuel | WORKING | #### YEP 2.10 - Configurer les logs de l'application | brouillon | manuel | WORKING | #### YEP 2.11 - Utiliser une variable plutôt que l'app id directement | validé | manuel | OFFICIAL | +Il est conseillé de rendre les scripts le plus générique possible, un bon moyen d'y parvenir est du'tiliser une variable pour le nom de l'app afin d'éviter qu'il se retrouve partout dans les scripts. Ainsi un autre packageur pourra plus facilement se servir du script pour une autre app. + #### YEP 2.12 - Utiliser les commandes pratiques (helpers) | validé | auto | OFFICIAL | +Afin de simplifier le packaging, d'uniformiser les pratiques, d'éviter les erreurs et d'augmenter la durée de vie d'un scripts vis à vis des futures versions de YunoHost. Un ensemble de helpers permetant de faire de nombreuses actions est proposé. + +Pour plus d'information: +* consulter [la documentation des helpers](https://yunohost.org/#/packaging_apps_helpers_fr) +* explorer [le répertoire des helpers](https://github.com/YunoHost/yunohost/tree/unstable/data/helpers.d) + #### YEP 2.13 - Traduire le package en anglais | brouillon | manuel | OFFICIAL | #### YEP 2.14 - Remplir correctement un fichier de conf | brouillon | manuel | OFFICIAL | -#### YEP 2.15 - Vérifier les paramètres saisies par l'utilisateur | validé | manuel | OFFICIAL | +#### YEP 2.15 - Suivre les instructions d'installation de l'application | validé | manuel | OFFICIAL | + #### YEP 2.16 - Vérifier la disponibilité des dépendances sur ARM, x86 et x64 | validé | manuel | OFFICIAL | +YunoHost s'installe sur ARM, sur x86 et x64. Un package devrait donc être testé sur ces 3 architectures. + +Certains paquets ne sont pas disponibles sur ARM, il convient dans ce cas d'étudier d'autres solutions ou d'indiquer dans le README.md que l'application ne fonctionne pas sur ARM. + #### YEP 2.17 - Prendre en compte la version d'origine lors des mises à jour | validé | manuel | OFFICIAL | +Le script de mise à jour doit pouvoir fonctionner même si les mises à jour précédentes n'ont pas été effectuées. + +Ainsi, il doit être possible de faire des sauts de mise à jour d'une version N-x vers une version N. Pour ce faire il est conseillé d'enregistrer les numéros de version dans les settings de l'app. ### YEP 2.18 - Stabiliser une webapp +La majeure partie des applications YunoHost sont des web apps, mais certaines n'en sont pas. Les YEP 2.18.x développent certaines spécificités liés aux web app. + #### YEP 2.18.1 - Lancer le script d'installation d'une webapp correctement | validé | manuel | WORKING | +Bien souvent une web app s'installe à partir de formulaires affichés sur une page web. Cette façon de faire, bien que pratique pour un humain, l'est moins pour un programme. + +Il convient donc de vérifier si l'application ne propose pas une solution d'installation en ligne de commande. + +Si ce n'est pas le cas, il convient d'utiliser l'option -H de curl. En effet, dans certains cas la redirection DNS pourrait ne pas être active au moment de l'installation. +```curl -kL -H "Host: $domain" --data "¶m1=Text1¶m2=text2" https://localhost$path/install.php > /dev/null 2>&1 +``` + #### YEP 2.18.2 - Supporter l'installation sur un domaine | validé | auto | WORKING | +Une web app devraient pouvoir s'installer sur un domaine directement sans sous dossiers. + #### YEP 2.18.3 - Supporter l'installation sur un sous-domaine | validé | auto | WORKING | +Une web app devraient pouvoir s'installer sur un sous-domaine directement sans sous dossiers. + #### YEP 2.18.4 - Supporter l'installation sur un sous-dossier | validé | auto | OFFICIAL | +Une web app devraient pouvoir s'installer dans un sous-dossier. + #### YEP 2.18.5 - Ajouter la tuile YunoHost pour naviguer facilement entre les applications | validé | manuel | OFFICIAL | +Sauf dans de rare cas il est conseiller d'intégrer le carré YunoHost qui permet de retourner sur le menu du SSO. Cette intégration se fait dans la configuration nginx. + +Certains utilisateurs ont remplacé ce carré par un script ajoutant un menu en ahut de chaque webapp. ### YEP 3 - Sécuriser une app #### YEP 3.1 - Ne pas demander ou stocker de mot de passe LDAP | brouillon | manuel | NOTWORKING | @@ -165,14 +246,64 @@ Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux qu #### YEP 3.3 - Faciliter le contrôle de l'intégrité des sources | brouillon | manuel | OFFICIAL | #### YEP 3.4 - Isoler l'app | brouillon | manuel | OFFICIAL | #### YEP 3.5 - Suivre les recommendations de la documentation de l'app | validé | manuel | OFFICIAL | +En général, une application propose une documentation afin d'aider les administrateurs systèmes à réaliser l'installation. Il est conseiller d'en suivre les recommendations, notamment celles concernant les permissions à accorder par fichier ou répertoire. + +Le mainteneur de paquet doit toutefois rester vigilant, certaines documentations pouvant être érronées ou insuffisante. + #### YEP 3.6 - Mettre à jour les versions contenant des CVE | draft | manuel | OFFICIAL | ### YEP 4 - Intégrer une app +Cette meta YEP traite de l'intégration d'une app avec l'environnement YunoHost. Une bonne intégration est en général un gage de qualité et de confort pour les utilisateurs. + #### YEP 4.2 - Lier l'authentification au sso | validé | manuel | OFFICIAL | +Le Single Sign On permet d'éviter d'avoir à créer les mêmes utilisateurs pour chaque app. Ainsi un utilisateur YunoHost pourra se connecter via le Single Sign On à l'ensemble des apps. + +Pour se faire, il convient de lier son app au LDAP et/ou d'utiliser des hooks pour dupliquer les informations du user dans la base de données de l'app. + +Une fois cette operation faite, le mainteneur peut utiliser l'instruction HTTP REMOTE_USER pour vérifier si un utilisateur est loggué ou non. En général, des modules existent (que ce soit au niveau de la technologie, du framework ou même de l'app elle même). + +Au besoin, SSOwat permet de sécuriser l'accès à une ou plusieurs partie de l'app. Il peut ainsi être pertinent de sécuriser l'accès à une page d'administration avec le SSO plutôt qu'un htaccess et de rendre le reste de l'app accessible à tous les visiteurs. + #### YEP 4.2.1 - Déconnexion | validé | manuel | OFFICIAL | +Lorsque l'on clique sur une action de déconnection au sein de l'app, celle ci devrait déconnecter l'utilisateur du SSO. Sinon il y a un risque que l'utilisateur laisse par mégarde une session ouverte. + #### YEP 4.3 - Fournir un script de sauvegarde YunoHost fonctionnel | validé | auto | OFFICIAL | #### YEP 4.4 - Fournir un script de restauration YunoHost fonctionnel | validé | auto | OFFICIAL | #### YEP 4.5 - Utiliser les hooks | validé | manuel | OPTIONAL | -#### YEP 4.6 - Gère le multi-instance | validé | manuel | OPTIONAL | +YunoHost offre la possibilité de lancer des actions à chaque traitement éffectué par la ligne de commande. Ceci peut être pratique dans de nombreux cas. + +Exemples: +* Ajouter/supprimer un utilisateur dans la base de données de l'app lorsque l'on utilise `yunohost user create` ou `yunohost user remove` +* Ajouter le support d'un nouveau nom de domaine lors de l'action `yunohost domain add` +* Lancer un script après que le parefeu ait été rechargé + +Liste des hooks: +* post_domain_add +* post_domain_remove +* post_user_create +* post_user_delete +* post_backup_create +* post_backup_restore +* pre_backup_delete +* post_backup_delete +* post_app_addaccess +* post_app_removeaccess +* post_app_clearaccess +* post_app_addaccess +* post_iptable_rules + +Ces scripts sont à placer dans un répertoire comme par exemple dans ce package: https://github.com/YunoHost-Apps/owncloud_ynh/tree/master/hooks . + + +#### YEP 4.6 - Gèrer le multi-instance | validé | manuel | OPTIONAL | +Il est parfois pratique de pouvoir installer plusieurs fois une même app. Par exemple pour plusieurs noms de domaine différents. + +Il faut toutefois faire attention à la façon de gérer les chemins de fichier, les dépendances, les ports utilisés etc. de sorte qu'il n'y ait pas de collision. + #### YEP 4.7 - Ajouter un module à la CLI | validé | manuel | OPTIONAL | +Il est possible de créer un module afin d'ajouter des commandes à la ligne de commandes yunohost. + +Pour ce faire, il faut ajouter un actionmaps dans /usr/share/moulinette/actionsmap/ . + +Les paquets [menu_ynh](https://github.com/YunoHost-Apps/menu_ynh/) et [subscribe_ynh](https://github.com/YunoHost-Apps/subscribe_ynh/) bien qu'un peu ancien (et non à jour) peuvent servir de base pour mettre en place ce genre de module. #### YEP 4.8 - Ajouter un module à l'admin web | brouillon | manuel | OPTIONAL | From 9b6b2de739dec6250c7146033c61a845137fa3a2 Mon Sep 17 00:00:00 2001 From: ljf Date: Tue, 4 Oct 2016 20:04:51 +0200 Subject: [PATCH 02/46] [fix] Bad markdown syntax --- packaging_apps_guidelines_fr.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 09db2881..fe3e214c 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -223,7 +223,8 @@ Bien souvent une web app s'installe à partir de formulaires affichés sur une p Il convient donc de vérifier si l'application ne propose pas une solution d'installation en ligne de commande. Si ce n'est pas le cas, il convient d'utiliser l'option -H de curl. En effet, dans certains cas la redirection DNS pourrait ne pas être active au moment de l'installation. -```curl -kL -H "Host: $domain" --data "¶m1=Text1¶m2=text2" https://localhost$path/install.php > /dev/null 2>&1 +``` +curl -kL -H "Host: $domain" --data "¶m1=Text1¶m2=text2" https://localhost$path/install.php > /dev/null 2>&1 ``` #### YEP 2.18.2 - Supporter l'installation sur un domaine | validé | auto | WORKING | From 4f419eb1336fed06ecfb46fd4877190f603e10f4 Mon Sep 17 00:00:00 2001 From: ljf Date: Tue, 4 Oct 2016 20:25:58 +0200 Subject: [PATCH 03/46] [fix] Spelling --- packaging_apps_guidelines_fr.md | 62 ++++++++++++++++----------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index fe3e214c..317351e9 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -3,7 +3,7 @@
Cette page est en cours d'élaboration. Tant que cet avertissement n'est pas enlevé. Considérez ces informations comme potentiellement fausse. -Le nom YEP n'est à priori pas définitif, ni les niveaux, ni les bonnes pratiques en elle même. +Le nom YEP n'est à priori pas définitif, ni les niveaux, ni les bonnes pratiques en elle-même.
@@ -13,7 +13,7 @@ Ce document a pour but de lister les différentes bonnes pratiques concernant la Chaque bonne pratique est numérotée avec un numéro suffixé par les lettres YEP (YunoHost Enhancement Proposals), ceci afin de pouvoir y faire référence facilement dans les outils d'analyse automatique de paquet ([package checker](https://github.com/YunoHost/package_check), [package linter](https://github.com/YunoHost/package_linter)), mais également lors des revues de code. Chaque YEP est associée à : -* un status indiquant si la régle a été validé ou si elle fait encore l'objet de discussion (brouillon, validé, refusé, obsolète) ; +* un statut indiquant si la règle a été validé ou si elle fait encore l'objet de discussion (brouillon, validé, refusé, obsolète) ; * une indication sur le type de test à mener (manuel ou auto si un outil automatique peut vérifier) ; * une indication du niveau d'app à partir duquel la règle est nécessaire (NOTWORKING, INPROGRESS, WORKING, OFFICIAL), certaines règles sont optionnelles ; @@ -21,7 +21,7 @@ Chaque YEP est associée à : | ID | Titre | Status | Test | Niveau | |----|--------|--------|------|--------| | **YEP 1** | **Communiquer avec la communauté** | | | | -| YEP 1.1 | Nommer son app et son dépot | validé | manuel | NOTWORKING | +| YEP 1.1 | Nommer son app et son dépôt | validé | manuel | NOTWORKING | | YEP 1.2 | Inscrire l'app sur un "répertoire" connu | validé | manuel | NOTWORKING | | YEP 1.3 | Indiquer la licence associée au paquet | brouillon | AUTO | WORKING | | YEP 1.4 | Informer sur l'intention de maintenir un paquet | brouillon | manuel | WORKING | @@ -64,7 +64,7 @@ Chaque YEP est associée à : | YEP 3.2 | Ouvrir un port correctement | brouillon | manuel | WORKING | | YEP 3.3 | Faciliter le contrôle de l'intégrité des sources | brouillon | manuel | OFFICIAL | | YEP 3.4 | Isoler l'app | brouillon | manuel | OFFICIAL | -| YEP 3.5 | Suivre les recommendations de la documentation de l'app | validé | manuel | OFFICIAL | +| YEP 3.5 | Suivre les recommandations de la documentation de l'app | validé | manuel | OFFICIAL | | YEP 3.6 | Mettre à jour les versions contenant des CVE | draft | manuel | OFFICIAL | | | | | | | | **YEP 4** | **Intégrer une app** | | | | @@ -90,22 +90,22 @@ Il est donc recommandé de vérifier sa disponibilité en consultant la liste de De plus l'identifiant doit respecter l'expression régulière suivante `^[a-z1-9]((_|-)?[a-z1-9])+$` . Autrement dit, il doit respecter les règles suivantes : * être en minuscule * commencer par une lettre ou un chiffre -* être alphanumerique (le underscore est autorisé) +* être alphanumérique (le underscore est autorisé) * ne pas contenir 2 underscores ou tirets qui se suivent * ne pas terminer par un underscore ou un tiret -Pour les noms d'applications contenant des espaces la quasitotalité des paquets actuels les retirent simplement sans les remplacer par des tirets ou underscores. +Pour les noms d'applications contenant des espaces la quasi totalité des paquets actuels les retirent simplement sans les remplacer par des tirets ou underscores. -Par convention, les dépôts d'applications YunoHost sont toujours nommés de leur ID suivis de la chaine de caractère "\_ynh". Ainsi on peut distinguer le dépôt upstream de l'application, du dépôt du package yunohost. Cette notation permet également de trouver des applications non répertoriés à travers les moteurs de recherche des plateformes proposant des gestionnaire de version (github par exemple). +Par convention, les dépôts d'applications YunoHost sont toujours nommés de leur ID suivis de la chaine de caractère "\_ynh". Ainsi on peut distinguer le dépôt upstream de l'application, du dépôt du package yunohost. Cette notation permet également de trouver des applications non répertoriées à travers les moteurs de recherche des plateformes proposant des gestionnaires de version (github par exemple). Exemple : ID : exemple Nom de dépôt : exemple_ynh -#### YEP 1.2 - Inscrire l'app sur un "répertoire" connu | validé | manuel | NOTWORKING | -Il est conseillé dés le début du packaging d'inscrire une app sur un des dépôts d'application YunoHost. +#### YEP 1.2 - Inscrire l'app sur un « répertoire » connu | validé | manuel | NOTWORKING | +Il est conseillé dès le début du packaging d'inscrire une app sur un des dépôts d'application YunoHost. Ces dépôts ont plusieurs fonctions : * communiquer l'existence d'un paquet ; -* indiquer la dernière version associée au paquet (afin de permetre à la mise à jour de l'app par YunoHost) ; +* indiquer la dernière version associée au paquet (afin de permettre à la mise à jour de l'app par YunoHost) ; * indiquer l'état de fonctionnement du paquet ; * indiquer des informations sur le support d'un paquet. @@ -129,24 +129,24 @@ Pour suivre l'évolution de YunoHost de façon plus générale: #### YEP 1.7 - Ajouter l'app à l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) | validé | manuel | OFFICIAL | L'ajout d'une app sur l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) permet de faire connaitre l'apps auprès des autres contributeurs qui pourraient être tentés de packager l'application visée. -C'est aussi un moyen pour permettre de déployer rapidement un correctif de sécurité si nécéssaire dans le cas où le mainteneur ne serait pas disponible. +C'est aussi un moyen pour permettre de déployer rapidement un correctif de sécurité si nécessaire dans le cas où le mainteneur ne serait pas disponible. #### YEP 1.8 - Publier des demandes de test | validé | manuel | OFFICIAL | Afin d'assurer le bon fonctionnement d'un paquet, il convient de publier une annonce afin d'ouvrir les tests sur le paquet. Cette annonce peut se faire sur le forum dans [la catégorie App intégration du forum](https://forum.yunohost.org/c/app-integration). -Il est recommandé d'indiquer si certains tests n'ont pas été mené +Il est recommandé d'indiquer si certains tests n'ont pas été menés.
TODO: Lister les tests types à mener
#### YEP 1.9 - Documenter l'app | validé | AUTO | OFFICIAL | -Avant tout, il convient de faire une description correcte de l'app dans le champs `description` du manifest. L'insertion de mot clé dans cette description peut être une bonne idée, dans la mesure où un utilisateur pourrait être amené à faire une recherche (CTRL+F) parmis toutes les applications. +Avant tout, il convient de faire une description correcte de l'app dans le champ `description` du manifest. L'insertion de mot clé dans cette description peut être une bonne idée, dans la mesure où un utilisateur pourrait être amené à faire une recherche (CTRL+F) parmi toutes les applications. Il y a également le README.md, ce dernier peut contenir: * le nom de l'app * un bref résumé de ce qu'elle fait -* des éventuels compléments d'installation si le script ne suffit pas lui même +* des éventuels compléments d'installation si le script ne suffit pas lui-même * des instructions pour l'utiliser (par exemple pour relier son smartphone ou son ordinateur) * l'endroit pour signaler un dysfonctionnement / une demande * la roadmap/TODO @@ -162,9 +162,9 @@ Le manifeste permet de décrire une app afin que YunoHost puisse lui appliquer l #### YEP 2.2 - Utiliser bash pour les scripts principaux | validé | auto | WORKING | Les scripts d'action (install, upgrade, remove, backup et restore) doivent être en bash afin que la cli/api yunohost puisse correctement les appeler. -Ceci étant rien n'empèche à l'intérieur de ces scripts de faire appel à d'autres scripts ou bibliothèques de fonction. Ceux ci ne sont pas obligés d'être en bash. +Ceci étant, rien n'empêche à l'intérieur de ces scripts de faire appel à d'autres scripts ou bibliothèques de fonction. Ceux-ci ne sont pas obligés d'être en bash. -Cependant, il faudra porter une attention particulière à l'affichage correcte des logs d'information, de warning, ou d'erreurs. Afin qu'un utilisateur de la cli/api yunohost puisse comprendre le fonctionnement du script venant d'être executé et au besoin réparer son instance YunoHost. +Cependant, il faudra porter une attention particulière à l'affichage correct des logs d'information, de warning, ou d'erreurs. Afin qu'un utilisateur de la cli/api yunohost puisse comprendre le fonctionnement du script venant d'être exécuté et au besoin réparer son instance YunoHost. #### YEP 2.3 - Sauvegarder les réponses lors de l'installation | validé | manuel | WORKING | Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux questions du manifeste. En effet, même si au début il n'est pas nécessaire d'écrire un script de mise à jour, par la suite ce sera sans doute le cas. Or, sans les informations initiales, la mise à jour peut être plus fastidieuse. @@ -179,22 +179,22 @@ Voici quelques exemples: * Vérifier que l'utilisateur existe * Vérifier que le chemin choisi est disponible -Dans le cas où l'une des valeurs est incorrecte, il est alors nécéssaire d'annuler toutes modifications réalisées préalablement sur l'instance. Le mieux étant de faire tout ces contrôles avant de modifier le système. +Dans le cas où l'une des valeurs est incorrecte, il est alors nécessaire d'annuler toutes modifications réalisées préalablement sur l'instance. Le mieux étant de faire tous ces contrôles avant de modifier le système. #### YEP 2.7 - Donner des permissions suffisantes aux instructions bash | validé | auto | WORKING | -Certaines instructions nécéssitent les droits sudo. Il faut dans ce cas ne pas oublier de prefixer ces instructions par `sudo `. +Certaines instructions nécessitent les droits sudo. Il faut dans ce cas ne pas oublier de préfixer ces instructions par `sudo `. -Dans d'autres cas il est nécéssaire de donner des droits à l'aide de chmod et de chown. +Dans d'autres cas il est nécessaire de donner des droits à l'aide de chmod et de chown. #### YEP 2.8 - Modifier correctement une configuration système | brouillon | manuel | WORKING | #### YEP 2.9 - Enlever toutes traces de l'app lors de la suppression | brouillon | manuel | WORKING | #### YEP 2.10 - Configurer les logs de l'application | brouillon | manuel | WORKING | #### YEP 2.11 - Utiliser une variable plutôt que l'app id directement | validé | manuel | OFFICIAL | -Il est conseillé de rendre les scripts le plus générique possible, un bon moyen d'y parvenir est du'tiliser une variable pour le nom de l'app afin d'éviter qu'il se retrouve partout dans les scripts. Ainsi un autre packageur pourra plus facilement se servir du script pour une autre app. +Il est conseillé de rendre les scripts le plus générique possible, un bon moyen d'y parvenir est d'utiliser une variable pour le nom de l'app afin d'éviter qu'il se retrouve partout dans les scripts. Ainsi un autre packageur pourra plus facilement se servir du script pour une autre app. #### YEP 2.12 - Utiliser les commandes pratiques (helpers) | validé | auto | OFFICIAL | -Afin de simplifier le packaging, d'uniformiser les pratiques, d'éviter les erreurs et d'augmenter la durée de vie d'un scripts vis à vis des futures versions de YunoHost. Un ensemble de helpers permetant de faire de nombreuses actions est proposé. +Afin de simplifier le packaging, d'uniformiser les pratiques, d'éviter les erreurs et d'augmenter la durée de vie d'un script vis-à-vis des futures versions de YunoHost. Un ensemble de helpers permettant de faire de nombreuses actions est proposé. Pour plus d'information: * consulter [la documentation des helpers](https://yunohost.org/#/packaging_apps_helpers_fr) @@ -215,7 +215,7 @@ Le script de mise à jour doit pouvoir fonctionner même si les mises à jour pr Ainsi, il doit être possible de faire des sauts de mise à jour d'une version N-x vers une version N. Pour ce faire il est conseillé d'enregistrer les numéros de version dans les settings de l'app. ### YEP 2.18 - Stabiliser une webapp -La majeure partie des applications YunoHost sont des web apps, mais certaines n'en sont pas. Les YEP 2.18.x développent certaines spécificités liés aux web app. +La majeure partie des applications YunoHost sont des web apps, mais certaines n'en sont pas. Les YEP 2.18.x développent certaines spécificités liées aux web app. #### YEP 2.18.1 - Lancer le script d'installation d'une webapp correctement | validé | manuel | WORKING | Bien souvent une web app s'installe à partir de formulaires affichés sur une page web. Cette façon de faire, bien que pratique pour un humain, l'est moins pour un programme. @@ -239,17 +239,17 @@ Une web app devraient pouvoir s'installer dans un sous-dossier. #### YEP 2.18.5 - Ajouter la tuile YunoHost pour naviguer facilement entre les applications | validé | manuel | OFFICIAL | Sauf dans de rare cas il est conseiller d'intégrer le carré YunoHost qui permet de retourner sur le menu du SSO. Cette intégration se fait dans la configuration nginx. -Certains utilisateurs ont remplacé ce carré par un script ajoutant un menu en ahut de chaque webapp. +Certains utilisateurs ont remplacé ce carré par un script ajoutant un menu en haut de chaque webapp. ### YEP 3 - Sécuriser une app #### YEP 3.1 - Ne pas demander ou stocker de mot de passe LDAP | brouillon | manuel | NOTWORKING | #### YEP 3.2 - Ouvrir un port correctement | brouillon | manuel | WORKING | #### YEP 3.3 - Faciliter le contrôle de l'intégrité des sources | brouillon | manuel | OFFICIAL | #### YEP 3.4 - Isoler l'app | brouillon | manuel | OFFICIAL | -#### YEP 3.5 - Suivre les recommendations de la documentation de l'app | validé | manuel | OFFICIAL | -En général, une application propose une documentation afin d'aider les administrateurs systèmes à réaliser l'installation. Il est conseiller d'en suivre les recommendations, notamment celles concernant les permissions à accorder par fichier ou répertoire. +#### YEP 3.5 - Suivre les recommandations de la documentation de l'app | validé | manuel | OFFICIAL | +En général, une application propose une documentation afin d'aider les administrateurs systèmes à réaliser l'installation. Il est conseiller d'en suivre les recommandations, notamment celles concernant les permissions à accorder par fichier ou répertoire. -Le mainteneur de paquet doit toutefois rester vigilant, certaines documentations pouvant être érronées ou insuffisante. +Le mainteneur de paquet doit toutefois rester vigilant, certaines documentations pouvant être erronées ou insuffisante. #### YEP 3.6 - Mettre à jour les versions contenant des CVE | draft | manuel | OFFICIAL | @@ -261,17 +261,17 @@ Le Single Sign On permet d'éviter d'avoir à créer les mêmes utilisateurs pou Pour se faire, il convient de lier son app au LDAP et/ou d'utiliser des hooks pour dupliquer les informations du user dans la base de données de l'app. -Une fois cette operation faite, le mainteneur peut utiliser l'instruction HTTP REMOTE_USER pour vérifier si un utilisateur est loggué ou non. En général, des modules existent (que ce soit au niveau de la technologie, du framework ou même de l'app elle même). +Une fois cette opération faite, le mainteneur peut utiliser l'instruction HTTP REMOTE_USER pour vérifier si un utilisateur est loggué ou non. En général, des modules existent (que ce soit au niveau de la technologie, du framework ou même de l'app elle-même). -Au besoin, SSOwat permet de sécuriser l'accès à une ou plusieurs partie de l'app. Il peut ainsi être pertinent de sécuriser l'accès à une page d'administration avec le SSO plutôt qu'un htaccess et de rendre le reste de l'app accessible à tous les visiteurs. +Au besoin, SSOwat permet de sécuriser l'accès à une ou plusieurs parties de l'app. Il peut ainsi être pertinent de sécuriser l'accès à une page d'administration avec le SSO plutôt qu'un htaccess et de rendre le reste de l'app accessible à tous les visiteurs. #### YEP 4.2.1 - Déconnexion | validé | manuel | OFFICIAL | -Lorsque l'on clique sur une action de déconnection au sein de l'app, celle ci devrait déconnecter l'utilisateur du SSO. Sinon il y a un risque que l'utilisateur laisse par mégarde une session ouverte. +Lorsque l'on clique sur une action de déconnexion au sein de l'app, celle-ci devrait déconnecter l'utilisateur du SSO. Sinon il y a un risque que l'utilisateur laisse par mégarde une session ouverte. #### YEP 4.3 - Fournir un script de sauvegarde YunoHost fonctionnel | validé | auto | OFFICIAL | #### YEP 4.4 - Fournir un script de restauration YunoHost fonctionnel | validé | auto | OFFICIAL | #### YEP 4.5 - Utiliser les hooks | validé | manuel | OPTIONAL | -YunoHost offre la possibilité de lancer des actions à chaque traitement éffectué par la ligne de commande. Ceci peut être pratique dans de nombreux cas. +YunoHost offre la possibilité de lancer des actions à chaque traitement effectué par la ligne de commande. Ceci peut être pratique dans de nombreux cas. Exemples: * Ajouter/supprimer un utilisateur dans la base de données de l'app lorsque l'on utilise `yunohost user create` ou `yunohost user remove` @@ -293,7 +293,7 @@ Liste des hooks: * post_app_addaccess * post_iptable_rules -Ces scripts sont à placer dans un répertoire comme par exemple dans ce package: https://github.com/YunoHost-Apps/owncloud_ynh/tree/master/hooks . +Ces scripts sont à placer dans un répertoire `hooks` comme dans ce package: https://github.com/YunoHost-Apps/owncloud_ynh/tree/master/hooks . #### YEP 4.6 - Gèrer le multi-instance | validé | manuel | OPTIONAL | From 1432c21f8e7df88bf2a3ac942877b367c3e7e8be Mon Sep 17 00:00:00 2001 From: ljf Date: Tue, 4 Oct 2016 20:54:15 +0200 Subject: [PATCH 04/46] [enh] Add precision about module ynh --- packaging_apps_guidelines_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 317351e9..2e2a783e 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -304,7 +304,7 @@ Il faut toutefois faire attention à la façon de gérer les chemins de fichier, #### YEP 4.7 - Ajouter un module à la CLI | validé | manuel | OPTIONAL | Il est possible de créer un module afin d'ajouter des commandes à la ligne de commandes yunohost. -Pour ce faire, il faut ajouter un actionmaps dans /usr/share/moulinette/actionsmap/ . +Pour ce faire, il faut ajouter un actionmaps dans /usr/share/moulinette/actionsmap/ . Cet actionmaps doit commencer par "ynh_". Les paquets [menu_ynh](https://github.com/YunoHost-Apps/menu_ynh/) et [subscribe_ynh](https://github.com/YunoHost-Apps/subscribe_ynh/) bien qu'un peu ancien (et non à jour) peuvent servir de base pour mettre en place ce genre de module. #### YEP 4.8 - Ajouter un module à l'admin web | brouillon | manuel | OPTIONAL | From 95961f5d3b17967c9777fe0a22e37f081ec58ee9 Mon Sep 17 00:00:00 2001 From: Moul Date: Wed, 2 Nov 2016 08:37:49 +0100 Subject: [PATCH 05/46] [enh] apps_guidelines_fr: proofreading, modifications, typos. --- packaging_apps_guidelines_fr.md | 96 +++++++++++++++++---------------- 1 file changed, 49 insertions(+), 47 deletions(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 2e2a783e..3a83ffcd 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -18,7 +18,7 @@ Chaque YEP est associée à : * une indication du niveau d'app à partir duquel la règle est nécessaire (NOTWORKING, INPROGRESS, WORKING, OFFICIAL), certaines règles sont optionnelles ; ### Index des YEP -| ID | Titre | Status | Test | Niveau | +| ID | Titre | Statut | Test | Niveau | |----|--------|--------|------|--------| | **YEP 1** | **Communiquer avec la communauté** | | | | | YEP 1.1 | Nommer son app et son dépôt | validé | manuel | NOTWORKING | @@ -33,7 +33,7 @@ Chaque YEP est associée à : | YEP 1.10 | Garder un historique de version propre | brouillon | manuel | OFFICIAL | | YEP 1.11 | Ajouter l'app au [bugtracker YunoHost](https://dev.yunohost.org) | brouillon | manuel | OFFICIAL | | | | | | | -| **YEP 2** | **Stabiliser une app** | | | | +| **YEP 2** | **Stabiliser une app** | **Statut** | **Test** | **Niveau** | | YEP 2.1 | Respecter le format du manifeste | validé | auto | INPROGRESS | | YEP 2.2 | Utiliser bash pour les scripts principaux | validé | auto | WORKING | | YEP 2.3 | Sauvegarder les réponses lors de l'installation | validé | manuel | WORKING | @@ -46,20 +46,20 @@ Chaque YEP est associée à : | YEP 2.10 | Configurer les logs de l'application | brouillon | manuel | WORKING | | YEP 2.11 | Utiliser une variable plutôt que l'app id directement | validé | manuel | OFFICIAL | | YEP 2.12 | Utiliser les commandes pratiques (helpers) | validé | auto | OFFICIAL | -| YEP 2.13 | Traduire le package en anglais | brouillon | manuel | OFFICIAL | +| YEP 2.13 | Traduire le paquet en anglais | brouillon | manuel | OFFICIAL | | YEP 2.14 | Remplir correctement un fichier de conf | brouillon | manuel | OFFICIAL | | YEP 2.15 | Suivre les instructions d'installation de l'application | validé | manuel | OFFICIAL | | YEP 2.16 | Vérifier la disponibilité des dépendances sur ARM, x86 et x64 | validé | manuel | OFFICIAL | | YEP 2.17 | Prendre en compte la version d'origine lors des mises à jour | validé | manuel | OFFICIAL | | | | | | | -| **YEP 2.18** | **Stabiliser une webapp** | | | | +| **YEP 2.18** | **Stabiliser une webapp** | **Statut** | **Test** | **Niveau** | | YEP 2.18.1 | Lancer le script d'installation d'une webapp correctement | validé | manuel | WORKING | -| YEP 2.18.2 | Supporter l'installation sur un domaine | validé | auto | WORKING | -| YEP 2.18.3 | Supporter l'installation sur un sous-domaine | validé | auto | WORKING | -| YEP 2.18.4 | Supporter l'installation sur un sous-dossier | validé | auto | OFFICIAL | -| YEP 2.18.5 | Ajouter la tuile YunoHost pour naviguer facilement entre les applications | validé | manuel | OFFICIAL | +| YEP 2.18.2 | Gérer l'installation à la racine d’un nom de domaine | validé | auto | WORKING | +| YEP 2.18.3 | Gérer l'installation sur un sous-domaine | validé | auto | WORKING | +| YEP 2.18.4 | Gérer l'installation sur un chemin `/path` | validé | auto | OFFICIAL | +| YEP 2.18.5 | Gérer la tuile YunoHost pour faciliter la navigation entre les applications | validé | manuel | OFFICIAL | | | | | | | -| **YEP 3** | **Sécuriser une app** | | | | +| **YEP 3** | **Sécuriser une app** | **Statut** | **Test** | **Niveau** | | YEP 3.1 | Ne pas demander ou stocker de mot de passe LDAP | brouillon | manuel | NOTWORKING | | YEP 3.2 | Ouvrir un port correctement | brouillon | manuel | WORKING | | YEP 3.3 | Faciliter le contrôle de l'intégrité des sources | brouillon | manuel | OFFICIAL | @@ -67,7 +67,7 @@ Chaque YEP est associée à : | YEP 3.5 | Suivre les recommandations de la documentation de l'app | validé | manuel | OFFICIAL | | YEP 3.6 | Mettre à jour les versions contenant des CVE | draft | manuel | OFFICIAL | | | | | | | -| **YEP 4** | **Intégrer une app** | | | | +| **YEP 4** | **Intégrer une app** | **Statut** | **Test** | **Niveau** | | 4.1 | Lier au ldap | validé | manuel | OFFICIAL | | YEP 4.2 | Lier l'authentification au sso | validé | manuel | OFFICIAL | | YEP 4.2.1 | Déconnexion | validé | manuel | OFFICIAL | @@ -82,21 +82,21 @@ Chaque YEP est associée à : ### YEP 1 - Communiquer avec la communauté La YEP 1 est une meta YEP, elle explique ce qu'il faut faire pour échanger avec la communauté autour d'un paquet d'application YunoHost. -#### YEP 1.1 - Nommer son app et son dépot | validé | manuel | NOTWORKING | -Chaque application YunoHost possède un id inscrit dans le manifest de l'application. +#### YEP 1.1 - Nommer son app et son dépôt | validé | manuel | NOTWORKING | +Chaque application YunoHost possède un id inscrit dans le manifeste de l'application. Cet identifiant doit être unique entre chaque paquet d'application. Il est donc recommandé de vérifier sa disponibilité en consultant la liste des applications référencées dans les dépôts d'applications connus (official, community, internetcube). -De plus l'identifiant doit respecter l'expression régulière suivante `^[a-z1-9]((_|-)?[a-z1-9])+$` . Autrement dit, il doit respecter les règles suivantes : +De plus l'identifiant doit respecter l'expression régulière suivante `^[a-z1-9]((_|-)?[a-z1-9])+$`. Autrement dit, il doit respecter les règles suivantes : * être en minuscule * commencer par une lettre ou un chiffre * être alphanumérique (le underscore est autorisé) -* ne pas contenir 2 underscores ou tirets qui se suivent +* ne pas contenir deux underscores ou tirets qui se suivent * ne pas terminer par un underscore ou un tiret -Pour les noms d'applications contenant des espaces la quasi totalité des paquets actuels les retirent simplement sans les remplacer par des tirets ou underscores. +Pour les noms d'applications contenant des espaces la quasi-totalité des paquets actuels les retirent simplement sans les remplacer par des tirets ou underscores. -Par convention, les dépôts d'applications YunoHost sont toujours nommés de leur ID suivis de la chaine de caractère "\_ynh". Ainsi on peut distinguer le dépôt upstream de l'application, du dépôt du package yunohost. Cette notation permet également de trouver des applications non répertoriées à travers les moteurs de recherche des plateformes proposant des gestionnaires de version (github par exemple). +Par convention, les dépôts d'applications YunoHost sont toujours nommés de leur ID suivis de la chaîne de caractère "\_ynh". Ainsi on peut distinguer le dépôt upstream de l'application, du dépôt du paquet yunohost. Cette notation permet également de trouver des applications non répertoriées à travers les moteurs de recherche des plateformes proposant des gestionnaires de version (GitHub par exemple). Exemple : ID : exemple Nom de dépôt : exemple_ynh @@ -109,7 +109,7 @@ Ces dépôts ont plusieurs fonctions : * indiquer l'état de fonctionnement du paquet ; * indiquer des informations sur le support d'un paquet. -Pour les listes official.json et community.json, l'inscription se fait sur [le dépôt git "apps"](https://github.com/YunoHost/apps). +Pour les listes `official.json` et `community.json`, l'inscription se fait sur [le dépôt git "apps"](https://github.com/YunoHost/apps). Pour la liste d'application du projet LaBriqueInter.net, l'inscription se fait en consultant [la doc du dépôt du site internet](https://github.com/labriqueinternet/labriqueinter.net). @@ -118,11 +118,11 @@ Pour la liste d'application du projet LaBriqueInter.net, l'inscription se fait e #### YEP 1.5 - Mettre à jour régulièrement le statut de l'app | brouillon | manuel | WORKING | #### YEP 1.6 - Se tenir informé sur l'évolution du packaging d'apps | validé | manuel | OFFICIAL | Afin de suivre l'évolution du format de packaging ainsi que des bonnes pratiques, il est recommandé de: -* s'inscrire à la liste de discussion apps@list.yunohost.org +* s'inscrire à la liste de discussion `apps@list.yunohost.org` * suivre [la catégorie App intégration du forum](https://forum.yunohost.org/c/app-integration) -Pour suivre l'évolution de YunoHost de façon plus générale: -* rejoindre le salon XMPP dev@conference.yunohost.org ([3 jours de logs sont disponibles](https://im.yunohost.org/logs/dev/)) +Pour suivre l'évolution de YunoHost de façon plus générale : +* rejoindre le salon XMPP dev@conference.yunohost.org ([trois jours de logs sont disponibles](https://im.yunohost.org/logs/dev/)) * suivre [la catégorie Annoucement du forum](https://forum.yunohost.org/c/announcement) * suivre les discussions sur contrib@list.yunohost.org @@ -143,7 +143,7 @@ TODO: Lister les tests types à mener #### YEP 1.9 - Documenter l'app | validé | AUTO | OFFICIAL | Avant tout, il convient de faire une description correcte de l'app dans le champ `description` du manifest. L'insertion de mot clé dans cette description peut être une bonne idée, dans la mesure où un utilisateur pourrait être amené à faire une recherche (CTRL+F) parmi toutes les applications. -Il y a également le README.md, ce dernier peut contenir: +Il y a également le README.md, ce dernier doit et peut contenir : * le nom de l'app * un bref résumé de ce qu'elle fait * des éventuels compléments d'installation si le script ne suffit pas lui-même @@ -174,7 +174,7 @@ Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux qu #### YEP 2.6 - Annuler l'action si les valeurs d'entrées sont incorrectes | validé | manuel | WORKING | Chaque script devrait vérifier que les valeurs d'entrées sont correctes. -Voici quelques exemples: +Voici quelques exemples : * Vérifier que le nom de domaine existe * Vérifier que l'utilisateur existe * Vérifier que le chemin choisi est disponible @@ -189,25 +189,27 @@ Dans d'autres cas il est nécessaire de donner des droits à l'aide de chmod et #### YEP 2.8 - Modifier correctement une configuration système | brouillon | manuel | WORKING | #### YEP 2.9 - Enlever toutes traces de l'app lors de la suppression | brouillon | manuel | WORKING | +À l’exception de dépendances (pax exemple : paquets Debian) utilisés par d’autres services ou applications. + #### YEP 2.10 - Configurer les logs de l'application | brouillon | manuel | WORKING | #### YEP 2.11 - Utiliser une variable plutôt que l'app id directement | validé | manuel | OFFICIAL | -Il est conseillé de rendre les scripts le plus générique possible, un bon moyen d'y parvenir est d'utiliser une variable pour le nom de l'app afin d'éviter qu'il se retrouve partout dans les scripts. Ainsi un autre packageur pourra plus facilement se servir du script pour une autre app. +Il est conseillé de rendre les scripts le plus générique possible, un bon moyen d'y parvenir est d'utiliser une variable pour le nom de l'app afin d'éviter qu'il se retrouve partout dans les scripts. Ainsi, un autre packageur pourra plus facilement se servir du script pour une autre app. #### YEP 2.12 - Utiliser les commandes pratiques (helpers) | validé | auto | OFFICIAL | Afin de simplifier le packaging, d'uniformiser les pratiques, d'éviter les erreurs et d'augmenter la durée de vie d'un script vis-à-vis des futures versions de YunoHost. Un ensemble de helpers permettant de faire de nombreuses actions est proposé. -Pour plus d'information: +Pour plus d'informations : * consulter [la documentation des helpers](https://yunohost.org/#/packaging_apps_helpers_fr) * explorer [le répertoire des helpers](https://github.com/YunoHost/yunohost/tree/unstable/data/helpers.d) -#### YEP 2.13 - Traduire le package en anglais | brouillon | manuel | OFFICIAL | +#### YEP 2.13 - Traduire le paquet en anglais | brouillon | manuel | OFFICIAL | #### YEP 2.14 - Remplir correctement un fichier de conf | brouillon | manuel | OFFICIAL | #### YEP 2.15 - Suivre les instructions d'installation de l'application | validé | manuel | OFFICIAL | #### YEP 2.16 - Vérifier la disponibilité des dépendances sur ARM, x86 et x64 | validé | manuel | OFFICIAL | -YunoHost s'installe sur ARM, sur x86 et x64. Un package devrait donc être testé sur ces 3 architectures. +YunoHost s'installe sur ARM, sur x86 et x64. Un paquet devrait donc être testé sur ces trois architectures processeur. -Certains paquets ne sont pas disponibles sur ARM, il convient dans ce cas d'étudier d'autres solutions ou d'indiquer dans le README.md que l'application ne fonctionne pas sur ARM. +Certains paquets ne sont pas disponibles sur ARM, il convient dans ce cas d'étudier d'autres solutions ou d'indiquer dans le README.md que l'application ne fonctionne pas sur ARM et de bloquer l’installation par détection du type d’architecture. #### YEP 2.17 - Prendre en compte la version d'origine lors des mises à jour | validé | manuel | OFFICIAL | Le script de mise à jour doit pouvoir fonctionner même si les mises à jour précédentes n'ont pas été effectuées. @@ -227,17 +229,17 @@ Si ce n'est pas le cas, il convient d'utiliser l'option -H de curl. En effet, da curl -kL -H "Host: $domain" --data "¶m1=Text1¶m2=text2" https://localhost$path/install.php > /dev/null 2>&1 ``` -#### YEP 2.18.2 - Supporter l'installation sur un domaine | validé | auto | WORKING | -Une web app devraient pouvoir s'installer sur un domaine directement sans sous dossiers. +#### YEP 2.18.2 - Gérer l'installation à la racine d’un nom de domaine | validé | auto | WORKING | +Une web app devrait pouvoir s'installer à la racine d’un nom de domaine. -#### YEP 2.18.3 - Supporter l'installation sur un sous-domaine | validé | auto | WORKING | +#### YEP 2.18.3 - Gérer l'installation sur un sous-domaine | validé | auto | WORKING | Une web app devraient pouvoir s'installer sur un sous-domaine directement sans sous dossiers. -#### YEP 2.18.4 - Supporter l'installation sur un sous-dossier | validé | auto | OFFICIAL | -Une web app devraient pouvoir s'installer dans un sous-dossier. +#### YEP 2.18.4 - Gérer l'installation sur un chemin `/path` | validé | auto | OFFICIAL | +Une web app devraient pouvoir s'installer sur un chemin `/path`. -#### YEP 2.18.5 - Ajouter la tuile YunoHost pour naviguer facilement entre les applications | validé | manuel | OFFICIAL | -Sauf dans de rare cas il est conseiller d'intégrer le carré YunoHost qui permet de retourner sur le menu du SSO. Cette intégration se fait dans la configuration nginx. +#### YEP 2.18.5 - Gérer la tuile YunoHost pour naviguer facilement entre les applications | validé | manuel | OFFICIAL | +Sauf dans de rare cas il est conseillé d'intégrer la tuile YunoHost qui permet de retourner sur le menu du SSO. Cette intégration se fait dans la configuration nginx. Certains utilisateurs ont remplacé ce carré par un script ajoutant un menu en haut de chaque webapp. @@ -257,28 +259,28 @@ Le mainteneur de paquet doit toutefois rester vigilant, certaines documentations Cette meta YEP traite de l'intégration d'une app avec l'environnement YunoHost. Une bonne intégration est en général un gage de qualité et de confort pour les utilisateurs. #### YEP 4.2 - Lier l'authentification au sso | validé | manuel | OFFICIAL | -Le Single Sign On permet d'éviter d'avoir à créer les mêmes utilisateurs pour chaque app. Ainsi un utilisateur YunoHost pourra se connecter via le Single Sign On à l'ensemble des apps. +Le Single Sign On permet d'éviter d'avoir à créer les mêmes utilisateurs pour chaque app. Ainsi, un utilisateur YunoHost pourra se connecter via le Single Sign On à l'ensemble des apps. -Pour se faire, il convient de lier son app au LDAP et/ou d'utiliser des hooks pour dupliquer les informations du user dans la base de données de l'app. +Pour se faire, il convient de lier son app au LDAP et/ou d'utiliser des hooks pour dupliquer les identifiants du compte dans la base de données de l'app. -Une fois cette opération faite, le mainteneur peut utiliser l'instruction HTTP REMOTE_USER pour vérifier si un utilisateur est loggué ou non. En général, des modules existent (que ce soit au niveau de la technologie, du framework ou même de l'app elle-même). +Une fois cette opération appliquée, le mainteneur peut utiliser l'instruction HTTP REMOTE_USER pour vérifier si un utilisateur est connecté ou non. En général, des modules existent (que ce soit au niveau de la technologie, du framework ou même de l'app elle-même). -Au besoin, SSOwat permet de sécuriser l'accès à une ou plusieurs parties de l'app. Il peut ainsi être pertinent de sécuriser l'accès à une page d'administration avec le SSO plutôt qu'un htaccess et de rendre le reste de l'app accessible à tous les visiteurs. +Au besoin, SSOwat permet de sécuriser l'accès à une ou plusieurs parties de l'app. Il peut ainsi être pertinent de sécuriser l'accès à une page d'administration avec le SSO plutôt qu'un `.htaccess` et de rendre le reste de l'app accessible à tous les visiteurs. #### YEP 4.2.1 - Déconnexion | validé | manuel | OFFICIAL | -Lorsque l'on clique sur une action de déconnexion au sein de l'app, celle-ci devrait déconnecter l'utilisateur du SSO. Sinon il y a un risque que l'utilisateur laisse par mégarde une session ouverte. +Lorsque l'on clique sur une action de déconnexion au sein de l'app, celle-ci devrait déconnecter l'utilisateur du SSO. Sinon, il y a un risque que l'utilisateur laisse par mégarde une session ouverte. #### YEP 4.3 - Fournir un script de sauvegarde YunoHost fonctionnel | validé | auto | OFFICIAL | #### YEP 4.4 - Fournir un script de restauration YunoHost fonctionnel | validé | auto | OFFICIAL | #### YEP 4.5 - Utiliser les hooks | validé | manuel | OPTIONAL | YunoHost offre la possibilité de lancer des actions à chaque traitement effectué par la ligne de commande. Ceci peut être pratique dans de nombreux cas. -Exemples: +Exemples : * Ajouter/supprimer un utilisateur dans la base de données de l'app lorsque l'on utilise `yunohost user create` ou `yunohost user remove` -* Ajouter le support d'un nouveau nom de domaine lors de l'action `yunohost domain add` -* Lancer un script après que le parefeu ait été rechargé +* Gérer l’ajout d'un nouveau nom de domaine lors de l'action `yunohost domain add` +* Lancer un script après que le pare-feu ait été rechargé -Liste des hooks: +Liste des hooks : * post_domain_add * post_domain_remove * post_user_create @@ -293,18 +295,18 @@ Liste des hooks: * post_app_addaccess * post_iptable_rules -Ces scripts sont à placer dans un répertoire `hooks` comme dans ce package: https://github.com/YunoHost-Apps/owncloud_ynh/tree/master/hooks . +Ces scripts sont à placer dans un répertoire `hooks` comme dans ce paquet : https://github.com/YunoHost-Apps/owncloud_ynh/tree/master/hooks . #### YEP 4.6 - Gèrer le multi-instance | validé | manuel | OPTIONAL | -Il est parfois pratique de pouvoir installer plusieurs fois une même app. Par exemple pour plusieurs noms de domaine différents. +Il est parfois pratique de pouvoir installer plusieurs fois une même app. Par exemple, pour plusieurs noms de domaine différents. Il faut toutefois faire attention à la façon de gérer les chemins de fichier, les dépendances, les ports utilisés etc. de sorte qu'il n'y ait pas de collision. #### YEP 4.7 - Ajouter un module à la CLI | validé | manuel | OPTIONAL | Il est possible de créer un module afin d'ajouter des commandes à la ligne de commandes yunohost. -Pour ce faire, il faut ajouter un actionmaps dans /usr/share/moulinette/actionsmap/ . Cet actionmaps doit commencer par "ynh_". +Pour ce faire, il faut ajouter un actionmaps dans `/usr/share/moulinette/actionsmap/`. Cet actionmaps doit commencer par `ynh_`. -Les paquets [menu_ynh](https://github.com/YunoHost-Apps/menu_ynh/) et [subscribe_ynh](https://github.com/YunoHost-Apps/subscribe_ynh/) bien qu'un peu ancien (et non à jour) peuvent servir de base pour mettre en place ce genre de module. +Les paquets [menu_ynh](https://github.com/YunoHost-Apps/menu_ynh/) et [subscribe_ynh](https://github.com/YunoHost-Apps/subscribe_ynh/) bien qu’anciens (et non à jour) peuvent servir de base pour mettre en place ce genre de module. #### YEP 4.8 - Ajouter un module à l'admin web | brouillon | manuel | OPTIONAL | From 576915304b964622b5e4320e614822a87e574916 Mon Sep 17 00:00:00 2001 From: likeitneverwentaway Date: Fri, 4 Nov 2016 11:25:42 +0100 Subject: [PATCH 06/46] Update build_arm_image.md --- build_arm_image.md | 81 +++++++++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 30 deletions(-) diff --git a/build_arm_image.md b/build_arm_image.md index e98c6c51..20775dc5 100644 --- a/build_arm_image.md +++ b/build_arm_image.md @@ -8,6 +8,8 @@ This tutorial is based on [Yunocubian](https://github.com/M5oul/Yunocubian). You could find [ARM image builder from Debian Jessie](https://github.com/YunoHost/install_script/pull/36). +**All these steps can be executed with variations of [this script](https://github.com/likeitneverwentaway/rpi_buildbot/blob/master/build_image.sh).** + ### Download minimal Debian Jessie Download a Debian Jessie image compatible with the hardware **without desktop environnement** installed: @@ -19,10 +21,24 @@ Download a Debian Jessie image compatible with the hardware **without desktop en Plug & boot -* Connect via [SSH](ssh): **root@exemple.tld/ip_address** with the password which you could find on respectives documentations. +* Connect via [SSH](ssh): **pi@exemple.tld/ip_address** with the password **raspberry** (or any variations for other distros than Raspbian). +* Set a root password : + +```bash +sudo passwd +``` + +and login as root: +```bash +su +``` + + * You should be **root** for next operations. -Install YunoHost +Manually install YunoHost on a Raspberry Pi + +If you encounter problems during installation check out [this installation guide](http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie) for the Raspberry Pi, based on suggestion [from this thread](https://forum.yunohost.org/t/installation-de-yunohost-2-4-sur-raspbian-jessie-minimal-sur-un-raspberry-pi-3/1597).
Do not proceed to **post-installation**.
@@ -33,50 +49,54 @@ apt-get update && apt-get dist-upgrade && apt-get autoremove ``` * Change hostname: ```bash -hostname -v YunoHost +sed -i "s/$(hostname)/YunoHost/g" /etc/hosts +sed -i "s/$(hostname)/YunoHost/g" /etc/hostname ``` -* Set new SSH key generation at first lauching: +* Allow SSH connection as root: +```bash +sed -i '0,/without-password/s/without-password/yes/g' /etc/ssh/sshd_config +``` +* Delete the **pi** user (this step must be perform directly as root, not logged in as pi and then login as root): +```bash +deluser –remove-all-files pi +``` +* Set the first boot script: ```bash -# Delete SSH keys -rm -f /etc/ssh/ssh_host_* - -# Add script to regenerate SSH keys at first boot -nano /etc/init.d/ssh_gen_host_keys ---- -#!/bin/sh -### BEGIN INIT INFO -# Provides: Generates new ssh host keys on first boot -# Required-Start: $remote_fs $syslog -# Required-Stop: $remote_fs $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: -# Short-Description: Generates new ssh host keys on first boot -# Description: Generatesapt-get --purge clean new ssh host keys on $ -### END INIT INFO -ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N "" -ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N "" -insserv -r /etc/init.d/ssh_gen_host_keys -rm -f \$0 ---- +wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/yunohost-firstboot -P /etc/init.d/ # Give executable right -chmod a+x /etc/init.d/ssh_gen_host_keys +chmod a+x /etc/init.d/yunohost-firstboot # Make it execute at next boot -insserv /etc/init.d/ssh_gen_host_keys +insserv /etc/init.d/yunohost-firstboot +``` +* Set the boot promtp script: +```bash +wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.service -P /etc/systemd/system/ +wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.sh -P /usr/bin/ +chmod a+x /usr/bin/boot_prompt.sh +systemctl enable boot_prompt.service ``` -* Delete logs: +* Tell the boot_prompt script that the next boot is the first boot: ```bash -find /var/log -type f -exec rm {} \; -``` +touch /etc/yunohost/firstboot +``` * Turn off your board: ```bash shutdown ``` + +Don't forget to reset **wpa-supplicant.conf** if you changed it. You could also delete the command history with + +```bash +history -c +``` +or by editing **/root/.bash_history**. + ### Copy image Plug your SD card on your desktop computer and copy it:
Be carefull to not erase your data.
@@ -84,6 +104,7 @@ Plug your SD card on your desktop computer and copy it: ```bash sudo dd bs=1M if=/dev/sdd of=~/yunohost-jessie-board-year-month-day.img ``` +You can also use the **Read** function of [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/). ### Verify image Copy image to the SD card From 10d2552d5f508d5ef2652d61d53e0b6533183124 Mon Sep 17 00:00:00 2001 From: likeitneverwentaway Date: Fri, 4 Nov 2016 11:26:44 +0100 Subject: [PATCH 07/46] Create build_arm_image_fr.md --- build_arm_image_fr.md | 126 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 build_arm_image_fr.md diff --git a/build_arm_image_fr.md b/build_arm_image_fr.md new file mode 100644 index 00000000..aab88885 --- /dev/null +++ b/build_arm_image_fr.md @@ -0,0 +1,126 @@ +# Build ARM image + +Le but de ce tutoriel est de créer une image YunoHost prête à l'emploi pour les cartes ARM. +Elle pourra être utilisée sur de nombreuses cartes (Rasberry Pi, Olimex, Cubieboard…). + +Ce tutoriel est basé sur [Yunocubian](https://github.com/M5oul/Yunocubian). + +Vous pouvez trouvez le script [ARM image builder from Debian Jessie](https://github.com/YunoHost/install_script/pull/36). + + +**Toutes ces étapes peuvent être executées en utilisant des variations de [ce script](https://github.com/likeitneverwentaway/rpi_buildbot/blob/master/build_image.sh).** + +### Télechargez une version minimale de Debian Jessie +Télechargez une image Debian Jessie compatible avec la carte **sans environnement graphique** installé: + +* [ARMbian](http://www.armbian.com/download/) (Olimex, Cubieboard, Banana Pi…) +* [Raspbian Jessie Lite](https://www.raspberrypi.org/downloads/raspbian/) + +### Copiez l'image et installez YunoHost +Copie de l'image sur la carte SD + +Plug & boot + +* Connewion via [SSH](ssh): **pi@exemple.tld/ip_address** avec le mot de passe **raspberry** (ou toute autre variation pour des distros différentes de Raspbian). +* Mettez un mot de passe root : + +```bash +sudo passwd +``` + +et se connecter en tant que root: +```bash +su +``` + + +* Vous devriez être **root** pour les étapes suivantes. + +Installez manuellement YunoHost sur un Raspberry Pi + +Si vous rencontrez des problèmes durant l'installation regardez [ce guide d'installation](http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie) pour le Raspberry Pi, sur les suggestions [de ce thread](https://forum.yunohost.org/t/installation-de-yunohost-2-4-sur-raspbian-jessie-minimal-sur-un-raspberry-pi-3/1597). + +
Ne pas faire la **post-installation**.
+ +### Nettoyage de l'image +* Mise à jour de l'image: +```bash +apt-get update && apt-get dist-upgrade && apt-get autoremove +``` +* Changez l'hostname: +```bash +sed -i "s/$(hostname)/YunoHost/g" /etc/hosts +sed -i "s/$(hostname)/YunoHost/g" /etc/hostname +``` +* Permettre les connections SSH en tant que root: +```bash +sed -i '0,/without-password/s/without-password/yes/g' /etc/ssh/sshd_config +``` +* Supprimer l'user pi (cette étape doit être effectuer directement en tant que root, pas connecté avec l'user pi puis root): +```bash +deluser –remove-all-files pi +``` +* Mise en place du script de premier boot: + +```bash +wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/yunohost-firstboot -P /etc/init.d/ + +# Droit d'execution au script +chmod a+x /etc/init.d/yunohost-firstboot + +# Execute le script au prochain boot +insserv /etc/init.d/yunohost-firstboot +``` +* Mise en place du script boot promtp: +```bash +wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.service -P /etc/systemd/system/ +wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.sh -P /usr/bin/ +chmod a+x /usr/bin/boot_prompt.sh +systemctl enable boot_prompt.service +``` + +* Dites au script boot_promt que le prochain boot est le premier boot: +```bash +touch /etc/yunohost/firstboot +``` + +* Éteindre la carte: +```bash +shutdown +``` + + +Ne pas oublier de reset le fichier **wpa-supplicant.conf** si vous l'avez modifié. Vous pouvez aussi supprimer l'historique des commandes avec + +```bash +history -c +``` +ou en éditant **/root/.bash_history**. + +### Copie de l'image +Branchez la carte SD à votre ordinateur et faites en une copie: +
Faites attention de ne pas supprimer vos données.
+ +```bash +sudo dd bs=1M if=/dev/sdd of=~/yunohost-jessie-board-year-month-day.img +``` + +Vous pouvez aussi utiliser la fonction **Read** de [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/). + + +### Verifer l' image +Copier l'image sur la carte SD + +Plug & boot + +Post-install + +
Si tous va bien, vous pouvez publiez votre image.
+ +### Publier l'image +* Reduire la taille en zippant l'image: +```bash +zip yunohost-jessie-board-year-month-day.img.zip yunohost-jessie-board-year-month-day.img +``` + +* Publication: vous pouvez publier l'image sur le [forum](https://forum.yunohost.org/). From 517609fc4ebd31d2de3647a5113b13c3be81b39c Mon Sep 17 00:00:00 2001 From: likeitneverwentaway Date: Fri, 4 Nov 2016 11:27:45 +0100 Subject: [PATCH 08/46] Update install_on_raspberry.md --- install_on_raspberry.md | 71 ++++++++++++++++++++++++++++++++++------- 1 file changed, 59 insertions(+), 12 deletions(-) diff --git a/install_on_raspberry.md b/install_on_raspberry.md index fc27d7bc..393da50b 100644 --- a/install_on_raspberry.md +++ b/install_on_raspberry.md @@ -2,26 +2,24 @@ *Find other ways to install YunoHost **[here](/install)**.* -## Requirements +## Pre-requisite - A Raspberry Pi model 1, 2 or 3 -- A SD card: **4GB** capacity (or more) and **class10** speed rate is highly recommended -- A different computer to read this guide and access your Raspberry Pi -- A screen and a keyboard, recommended if a problem occurs and you want to control your Raspberry Pi -- A [reasonable ISP](/isp), preferably with a good and unlimited upload bandwidth +- An SD card: **4GB** capacity (or more) and **class10** speed rate are highly recommended +- An other computer to read this guide and access to your Raspberry Pi +- A screen and a keyboard are recommended to control your Raspberry Pi if a problem occurs. +- A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth - **YunoHost Raspberry Pi images**, available here: - - [Official Wheezy/YunoHost 2.2 created the 4th June 2015](https://build.yunohost.org/yunohost-rpi2_wheezy.7z) - - [Non-official Jessie/YunoHost 2.2 created the 5th December 2015](https://forum.yunohost.org/t/building-a-new-image-for-raspberry-debian-jessie-fr-en/1101/2) +build.yunohost.org -
**This two images are old**. YunoHost image for Raspberry Pi is not maintained, feel free to contribute and contact us if you would like to [maintain an image](build_arm_image_en) for YunoHost project.
- +There are two ways of installing, depending on if you can start your server from scratch or not. --- -## Installation steps +## Installation using an image 1. Copy image to the SD card @@ -29,17 +27,66 @@ 3. Post-install +## Manual installation + +Follow these steps if you can't start from scratch and simply use an image. Note - Yunohost installation is different if you have a Raspberry Pi Zero, be careful! + +1. Install git +```bash +sudo apt-get install git +``` + +2. Clone the Yunohost install script repository +```bash +git clone https://github.com/YunoHost/install_script /tmp/install_script +``` + +3. The root user must have a password set, if it isn't the case, set it (whithout the install script failed): +```bash +sudo passwd root +``` + +4. Update the Pi: +```bash +apt-get update ; apt-get dist-upgrade -y ; apt-get install rpi-update ; rpi-update ; reboot` +``` + +This will upgrade the Pi, then reboot. + +
+Raspberry Pi Zero users: follow these specific steps for a successfull installation. + +
+ +0.1 Install metronome manually: +```bash +apt-get install -y ssl-cert lua-event lua-expat lua-socket lua-sec lua-filesystem +wget https://github.com/YunoHost/metronome/archive/debian/3.7.9+33b7572-1.zip +unzip 3.7.9+33b7572-1.zip +cd metronome-debian-3.7.9-33b7572-1 +dpkg-buildpackage -rfakeroot -uc -b -d +cd .. +dpkg -i metronome_3.7.9+33b7572-1_armhf.deb +apt-mark hold metronome +``` + +4. Execute the installation script +```bash +cd /tmp/install_script && sudo ./install_yunohost +``` --- -### Recommended after running the post-installation +### Recommended after post-installation * Connect via SSH: **root@IP.OF.RPI** (password: **yunohost**) * Change root password: `passwd root` * Upgrade system: `apt-get update && apt-get dist-upgrade && rpi-update` +* Configure the language, keyboard layout and timezone with the **raspi-config** tool --- #### Build image * [Create a Raspberry Pi image](/build_arm_image_en) -***Need help during one of these steps? [Get support!](/support)*** +***If you need help during one of these steps, do not hesitate to use [our support tools](/support).*** + From 1800a386f07737b887ad682c180c1cf21696f330 Mon Sep 17 00:00:00 2001 From: likeitneverwentaway Date: Fri, 4 Nov 2016 11:28:51 +0100 Subject: [PATCH 09/46] Update install_on_raspberry_fr.md --- install_on_raspberry_fr.md | 57 +++++++++++++++++++++++++++++++++++--- 1 file changed, 53 insertions(+), 4 deletions(-) diff --git a/install_on_raspberry_fr.md b/install_on_raspberry_fr.md index 9ca86fe9..48f7656a 100644 --- a/install_on_raspberry_fr.md +++ b/install_on_raspberry_fr.md @@ -16,11 +16,11 @@ - [Non officielle Jessie/YunoHost 2.2 créée le 5 décembre 2015](https://forum.yunohost.org/t/building-a-new-image-for-raspberry-debian-jessie-fr-en/1101/2) - Un tutoriel d'installation basée sur YunoHost 2.4 a été écrit par AviGNU : http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie -
**Ces deux images ne sont plus à jour**. Personne ne maintiens d’image de YunoHost pour Raspberry Pi. Vous pouvez [maintenir une image](build_arm_image_en) pour le projet YunoHost.
+Il y a deux façon d'installer Yunohost, soit vous pouvez repartir de zéro avec une nouvelle image ou installer manuellement : --- -## Étapes d’installation +## Installation avec une image 1. Copier l’image sur une carte SD @@ -28,19 +28,68 @@ 3. Post-installation + +## Installation manuelle + +Utilisez cette méthode si vous ne pouvez pas repartir de zéro et utiliser une image. Attention, ces étapes sont différentes si vous installez sur un Raspberry Pi Zero ! + +1. Installer git +```bash +sudo apt-get install git +``` + +2. Cloner le repo Yunohost install script +```bash +git clone https://github.com/YunoHost/install_script /tmp/install_script +``` + +3. L'user root doit avoir un mot de passe. Si ce n'est pas le cas l'installation ne marchera pas: +```bash +sudo passwd root +``` + +4. Mettre à jour le Pi: +```bash +apt-get update ; apt-get dist-upgrade -y ; apt-get install rpi-update ; rpi-update ; reboot` +``` + +Cela va mettre à jour le Pi, puis rebooter. + +
+Raspberry Pi Zero : suivez ces étapes pour une installation réussie. + +
+ +0.1 Installez metronome manuellement: +```bash +apt-get install -y ssl-cert lua-event lua-expat lua-socket lua-sec lua-filesystem +wget https://github.com/YunoHost/metronome/archive/debian/3.7.9+33b7572-1.zip +unzip 3.7.9+33b7572-1.zip +cd metronome-debian-3.7.9-33b7572-1 +dpkg-buildpackage -rfakeroot -uc -b -d +cd .. +dpkg -i metronome_3.7.9+33b7572-1_armhf.deb +apt-mark hold metronome +``` + +4. Executer le script d' installation +```bash +cd /tmp/install_script && sudo ./install_yunohost +``` + --- ### Recommandé après la post-installation * Se connecter en [ssh](ssh_fr) : **root@IP.DU.RPI** (mot de passe : **yunohost**) * Changer le mot de passe root : ```passwd root``` - * Mettre à jour le système d’exploitation : ```apt-get update && apt-get dist-upgrade && rpi-update``` +* Configurer la langue, le clavier et le fuseau horaire avec l'outil **raspi-config** --- #### Créer une image -* [Créer une image pour Raspberry](/build_arm_image_en) +* [Créer une image pour Raspberry](/build_arm_image_fr) --- ***Si vous avez besoin d’aide lors de ces étapes, n’hésitez pas à utiliser les différents [moyens de support](/support_fr).*** From 346086b8ce7e9bcee7db7f781f7927942eaf3cb0 Mon Sep 17 00:00:00 2001 From: likeitneverwentaway Date: Fri, 4 Nov 2016 11:29:32 +0100 Subject: [PATCH 10/46] Update plug_and_boot_fr.md --- plug_and_boot_fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plug_and_boot_fr.md b/plug_and_boot_fr.md index 06716c5b..8762e4dc 100644 --- a/plug_and_boot_fr.md +++ b/plug_and_boot_fr.md @@ -1,10 +1,10 @@ # Brancher et démarrer votre serveur -* Branchez votre serveur avec un câble Ethernet (RJ-45) **directement sur votre routeur principal**. N’utilisez pas de connexion sans-fil ou un routeur intermédiaire si vous voulez que la connexion réseau soit automatique. +* Branchez votre serveur avec un câble Ethernet (RJ-45) **directement sur votre routeur principal**. Vous pouvez aussi configurer la connexion wifi comme expliqué [ici](http://raspbian-france.fr/connecter-wifi-raspberry-pi-3/). La configuration wifi peut aussi se faire sans avoir booté sur la carte, en "montant" la deuxième partition de la carte et enfin éditer le fichier wpa-supplicant.conf. Sur Windows vous pouvez utiliser [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/), ne pas oublier de "unmount" pour que les changements soient pris en compte. * N’oubliez pas de **brancher un écran** si vous voulez observer comment se déroule le démarrage, et un clavier si vous souhaitez un accès en **ligne de commande** à votre serveur. -* Démarrez le serveur et attendez jusqu’à voir un gros `Y` carré : +* Démarrez le serveur, le Raspberry Pi va redémarrer tout seul une première fois, puis attendez jusqu’à voir un gros `Y` carré :
From f83a7c8ab15e4a9979893203342caa6184000af0 Mon Sep 17 00:00:00 2001 From: likeitneverwentaway Date: Fri, 4 Nov 2016 11:29:48 +0100 Subject: [PATCH 11/46] Update plug_and_boot.md --- plug_and_boot.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plug_and_boot.md b/plug_and_boot.md index 45b29743..ca2a2c76 100644 --- a/plug_and_boot.md +++ b/plug_and_boot.md @@ -1,10 +1,10 @@ # Plug and boot your server up -* Plug your server in wired Ethernet **directly to your router**. Do not use a wireless connection or an intermediate router if you want the network configuration to be automatic. +* Plug your server in wired Ethernet, or configure the wifi connection as explained [here](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md). You can also mount the second partition of the SD card and edit the wpa-supplicant.conf file prior to boot the card for the first time - on Windows you can use [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/), don't forget to unmount everytime for changes to take effect. * Do not forget to **plug a screen** if you want to see how boot is going, and a keyboard if you want to have a **command-line access** to your server. -* Power up the server and wait until you see a big squared `Y` : +* Power up the server, wait for the first reboot to happen, and then wait until you see a big squared `Y` :
@@ -14,4 +14,4 @@ *Write down the `IP address` field visible on the screen: It is your server's **local IP address**.*

- \ No newline at end of file + From c93495b0627e6278a3afa20ebbbe1fde5d73b328 Mon Sep 17 00:00:00 2001 From: ljf Date: Tue, 15 Nov 2016 18:04:06 +0100 Subject: [PATCH 12/46] [enh] Add YEP 1.3 about licensing information --- packaging_apps_guidelines_fr.md | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 68ffd102..b5067f6b 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -115,7 +115,30 @@ TODO Lien ou information pour réaliser l'inscription. -#### YEP 1.3 - Indiquer la licence associée au paquet | validé | AUTO | WORKING | +#### YEP 1.3 - Indiquer la licence associée au paquet | brouillon | AUTO | WORKING | +La licence du paquet est à indiquer dans un fichier `LICENSE` à la racine du paquet. Attention à ne pas confondre avec la licence de l'application qui va être installée dont l'acronyme est à renseigner dans le champ `license` du manifeste. + +Les listes d'applications official.json et community.json n'acceptent que les paquets dont la licence est libre, de même pour la licence de l'application contenue. Certaines applications libres nécessitent des dépendances non-libres (exemple: mp3, drivers, etc.). Dans ce cas, il faut ajouter `+dep-non-free` à l'acronyme et si possible donner des précisions dans le README.md du paquet, l'intégration sera dans ce cas acceptée au cas par cas. + +Dans le future, YunoHost affichera sans doute des détails sur la licence de l'application. Pour y parvenir, l'acronyme doit être celui issue de cette [liste de licences répertoriées sur gnu.org](https://www.gnu.org/licenses/license-list.fr.html) (si il y a 2 acronymes, il faut prendre celui contenant le numéro de version). Pour plus de cohérence, la casse doit être respectée. + +Si la licence n'est pas présente dans la liste, dans ce cas il faut indiquer `free` ou `non-free` selon qu'elle est libre ou non et donner l'occasion à l'utilisateur de se renseigner dans le README.md (lien, explications, ...). + +Exemple: pour une licence `GNU Lesser General Public License (LGPL), version 3` l'acronyme est `LGPLv3` si toutefois des dépendances non libres sont utilisées dans ce cas il faudra mettre `LGPLv3+dep-non-free` dans le manifeste. + +Si une application a des modules liés avec une autre licence (Exemple: Odoo 9 LGPLv3 + un module sous licence AGPLv3 ), dans ce cas on indiquera les deux licences séparées par un `+`. + +Si deux applications distinctes sont dans le même paquet d'installation et ont des licences distinctes, dans ce cas on peut utiliser le `&` pour séparer les licences. + +Dans les deux cas, le mainteneur est encouragé à réfléchir à la possibilité de créer deux paquets distincts. Le manifeste permet des questions de type `app` de façon à faire référence à une autre application déjà installée. + +Quelques liens intéressants pour aider au choix de licence: +* [Des fiches explicatives sur les licences libres](https://www.inria.fr/content/download/5896/48452/version/2/file/INRIA_recueil_fiches_licences_libres_vf.pdf) +* [La documentation sur les licences du projet GNU](https://www.gnu.org/licenses/licenses.fr.html) +* [Un guide du projet GNU pour aider au choix d'une licence](https://www.gnu.org/licenses/license-recommendations.fr.html) + + + #### YEP 1.4 - Informer sur l'intention de maintenir un paquet | brouillon | manuel | WORKING | #### YEP 1.5 - Mettre à jour régulièrement le statut de l'app | brouillon | manuel | WORKING | #### YEP 1.6 - Se tenir informé sur l'évolution du packaging d'apps | validé | manuel | OFFICIAL | @@ -133,7 +156,7 @@ Les scripts d'action (install, upgrade, remove, backup et restore) doivent être Ceci étant rien n'empèche à l'intérieur de ces scripts de faire appel à d'autres scripts ou bibliothèques de fonction. Ceux ci ne sont pas obligés d'être en bash. Cependant, il faudra porter une attention particulière à l'affichage correcte des logs d'information, de warning, ou d'erreurs. Afin qu'un utilisateur de la cli/api yunohost puisse comprendre le fonctionnement du script venant d'être executé et au besoin réparer son instance YunoHost. - + #### YEP 2.3 - Sauvegarder les réponses lors de l'installation | validé | manuel | WORKING | Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux questions du manifeste. En effet, même si au début il n'est pas nécessaire d'écrire un script de mise à jour, par la suite ce sera sans doute le cas. Or, sans les informations initiales, la mise à jour peut être plus fastidieuse. From 79df7c18dc6cd9c0f89455b10637f80bc6dab8f9 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 7 Dec 2016 10:54:03 +0100 Subject: [PATCH 13/46] Regen contribs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A discuter et améliorer. J'ai repensé à ce que disais Bram hier à propos de Jean-Baptiste, alors un coup de pied au cul et on démarre cette page de contrib. Chaque contrib mérite sa place ici, on leur doit au moins ça. Des liens hypertextes sur les noms me semble pas inintéressant, pour bien cerner qui est cité. Mais pointant où? Git? Forum? Site perso? --- contribs_fr.md | 70 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 57 insertions(+), 13 deletions(-) diff --git a/contribs_fr.md b/contribs_fr.md index a5b78c61..7a08281e 100644 --- a/contribs_fr.md +++ b/contribs_fr.md @@ -2,21 +2,65 @@ Liste non exhaustive des principaux contributeurs : -* kload +#### Fondateurs +* kload * beudbeud +#### Conseil + +* Bram +* ju +* ljf +* Maniack +* Moul +* opi +* Théodore + +#### Groupe Core Dev + +* AlexAubin +* Bram +* Ju +* ljf +* Moul +* opi + +#### Groupe Apps + +* Bram +* Ju +* ljf +* Maniack C +* Moul +* Scith +* Tostaki + +#### Groupe Apps + +* Bram +* Ju +* Maniack C +* Moul +* opi + +#### Groupe Communication + +* Bram +* Moul +* ljf +* opi +* Théodore +* Jean-Baptiste + +#### Groupe Distribution + +* Heyyounow + +* Jerome + + * jerome : développeur de la [Moulinette](moulinette_fr) - -* opi : développeur de l’[interface d’admininstation web](admin_fr) - -* ju : applications - -* Moul : - * Documentation - * Cubieboard - * moul[at]moul.re - * courgette : design - -* titoko \ No newline at end of file +* titoko +* Genma From 1a4be99e0a0eec361d4d7ce2efd6f2900090a8d0 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 7 Dec 2016 11:02:40 +0100 Subject: [PATCH 14/46] Groupe Apps en double --- contribs_fr.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/contribs_fr.md b/contribs_fr.md index 7a08281e..74afc51c 100644 --- a/contribs_fr.md +++ b/contribs_fr.md @@ -36,14 +36,6 @@ Liste non exhaustive des principaux contributeurs : * Scith * Tostaki -#### Groupe Apps - -* Bram -* Ju -* Maniack C -* Moul -* opi - #### Groupe Communication * Bram From d508c7d571139742e84650806927583a1909ab0a Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 7 Dec 2016 13:19:00 +0100 Subject: [PATCH 15/46] Les bases du packaging d'app --- start_packaging_apps_fr.md | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 start_packaging_apps_fr.md diff --git a/start_packaging_apps_fr.md b/start_packaging_apps_fr.md new file mode 100644 index 00000000..0f46b406 --- /dev/null +++ b/start_packaging_apps_fr.md @@ -0,0 +1,53 @@ +Petite introduction au packaging d'application, pour comprendre de quoi nous parlons et comment ça marche. +Cette documentation s'adresse avant tout aux packageurs débutants qui ne sont pas à l'aise avec les concepts de shell, parsing et administration système de manière générale. + +Nous verrons ici ce qu'est un package d'application Yunohost, comment cela fonctionne, comment faire pour écrire un package et comment se lancer dans l'aventure sans être tout seul. + +### De quoi on parle en fait ? + +Avant de démarrer, la bonne question c'est "Qu'est-ce qu'un package d'application !?" + +Pour répondre à cette question, il faut revenir à ce qu'est Yunohost, c'est un système d’exploitation serveur visant à simplifier l’auto-hébergement de services Internet. Et pour faire ça, Yunohost met à disposition, entre autre, une interface d'administration permettant d'installer des applications en quelques clics. +Or si vous avez déjà installé une application web à la main, vous savez qu'en réalité c'est bien plus compliqué que quelques clics sur une jolie interface. + +C'est là que le package d'application entre en jeu, c'est un ensemble de scripts qui automatise l'installation d'une application web et la préconfigure pour que l'utilisateur final n'ai besoin que de quelques clics pour l'installer facilement. + +### Mais alors, comment ça marche ? + +Du point de vue de l'utilisateur, c'est très simple, on choisit une application, on répond à quelques questions, ça mouline et c'est prêt. + +Mais il se passe bien plus de choses derrière. +Tout d'abord, lorsque l'application est sélectionnée, Yunohost va aller chercher son package sur Github, par exemple l'application [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh). +Ensuite, Yunohost lit le fichier manifest.json pour connaître les questions à poser à l'utilisateur. + +Mais ces questions anodines sont très importantes, on retrouvera souvent le domaine sur lequel installer l'application, l'adresse à laquelle elle sera accessible, l'utilisateur qui en sera l'administrateur et la langue par défaut de l'application. + +Ce sont là des éléments essentiels pour configurer correctement notre application web lors de son installation. Pour ce faire, Yunohost va récupérer les réponses données par l'utilisateur et les envoyer au script install qui se trouve dans le dossier scripts du package. + +Le script install va se charger d'installer l'application, en prenant en compte les réponses données par l'utilisateur. Ce script va simplement faire ce que vous auriez fait si vous aviez installé l'application à la main. + +Si par la suite l'utilisateur souhaite supprimer l'application, Yunohost utilisera le script remove du dossier script, qui se chargera à la place de l'utilisateur de supprimer l'application, ses dossiers et tout ses fichiers de configuration. + +### Qu'il y a-t-il dans ces scripts pour que tout soit si simple pour l'utilisateur ? + +Les scripts d'un package d'application sont simplement des commandes bash les unes à la suite des autres. + +#### ... Et c'est quoi une commande bash ? + +Une commande [bash](https://fr.wikipedia.org/wiki/Bourne-Again_shell) c'est une ligne de texte qui sera interprétée et produira un résultat. C'est ce qu'on a l'habitude d'appeler la ligne de commande. +Or puisque votre serveur, sur lequel est installé Yunohost, ne dispose pas d'une interface graphique, vous n'avez que la ligne de commande de disponible. Vous l'atteignez en général après vous être connecté avec [ssh](/ssh_fr). + +Les scripts d'un package ne sont donc qu'une succession de commandes bash, comme si vous les aviez tapées directement dans la console ssh pour installer l'application. + +Pour savoir quoi écrire dans un script bash, je vous conseille de commencer par la lecture d'un [tuto simple](https://debian-facile.org/doc:programmation:shells:debuter-avec-les-scripts-shell-bash). Et si vous avez vraiment envie de lire, il y a aussi un [tuto plus complet](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/index.html) + +### Ok, je crois que j'ai compris ! Par où on commence? + +Avant d'envisager de faire un package d'application, il faut réussir à installer correctement la dites application. Car le script ne fera que ce que vous lui direz de faire. + +Ensuite, il faut aller lire (et oui encore) la documentation sur le packaging, mais la vrai cette fois, [celle qui emploie des mots bizarres](/packaging_apps_fr). +Mais maintenant vous devriez les comprendre tout ces mots étranges. + +Mais heureusement, vous n'êtes pas seul pour affronter cette épreuve titanesque, il y a d'autres packageurs que vous pouvez venir rencontrer sur le [forum](https://forum.yunohost.org/c/apps-packaging) et sur le [salon de discussion](xmpp:apps@conference.yunohost.org?join). +N'hésitez pas à venir poser des questions sur ce que vous ne comprenez pas, il y aura toujours quelqu'un pour vous répondre. +Et vous constaterez bien vite que ce n'est pas si difficile de packager une application. From d613c25e9d1e6704537599cc2b0c3b7a6d7d3e36 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 7 Dec 2016 13:26:25 +0100 Subject: [PATCH 16/46] Update packaging_apps_fr.md --- packaging_apps_fr.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packaging_apps_fr.md b/packaging_apps_fr.md index bbfad997..186737d2 100644 --- a/packaging_apps_fr.md +++ b/packaging_apps_fr.md @@ -8,6 +8,8 @@ Pour packager une application, voici les prérequis : * Maîtriser un minimum `git`, le Shell et d’autres notions de programmation ; * Une [machine virtuelle ou sur un serveur distant](/install_fr) ou un [environnement de développement](https://github.com/yunohost/ynh-dev) pour packager et tester son paquet. +Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'[introduction au packaging](/start_packaging_apps_fr.md). + ### Contenu Un paquet YunoHost est composé : From a84de6391caa015d8880389dbb497524e6b33128 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 7 Dec 2016 13:29:33 +0100 Subject: [PATCH 17/46] Update sitemap_fr.md --- sitemap_fr.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sitemap_fr.md b/sitemap_fr.md index 4693043f..ca2f6e56 100644 --- a/sitemap_fr.md +++ b/sitemap_fr.md @@ -95,6 +95,7 @@ * [Présentation du fonctionnement de YunoHost](/package_list_fr) * Applications : * [Packager des applications](/packaging_apps_fr) + * [Introduction](start_packaging_apps_fr.md) * [Manifeste](packaging_apps_manifest_fr) * [Scripts](packaging_apps_scripts_fr) * [Gestion des arguments](packaging_apps_arguments_management_fr) From 8eaea6e8e09cbe04545e25fdbdaa50c965380089 Mon Sep 17 00:00:00 2001 From: Moul Date: Sat, 10 Dec 2016 12:13:17 +0100 Subject: [PATCH 18/46] [mod] split ditribution group from other contribs. --- contribs_fr.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/contribs_fr.md b/contribs_fr.md index 74afc51c..4dcc6df2 100644 --- a/contribs_fr.md +++ b/contribs_fr.md @@ -46,12 +46,9 @@ Liste non exhaustive des principaux contributeurs : * Jean-Baptiste #### Groupe Distribution - * Heyyounow -* Jerome - - +#### Autres contributeurs * jerome : développeur de la [Moulinette](moulinette_fr) * courgette : design * titoko From 477b60725f8e4f24d731a4520c03998659af439d Mon Sep 17 00:00:00 2001 From: Moul Date: Sat, 10 Dec 2016 12:21:07 +0100 Subject: [PATCH 19/46] [mod] use same file name beginning as convention. --- packaging_apps_fr.md | 2 +- start_packaging_apps_fr.md => packaging_apps_start_fr.md | 0 sitemap_fr.md | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename start_packaging_apps_fr.md => packaging_apps_start_fr.md (100%) diff --git a/packaging_apps_fr.md b/packaging_apps_fr.md index 186737d2..9dc64fe6 100644 --- a/packaging_apps_fr.md +++ b/packaging_apps_fr.md @@ -8,7 +8,7 @@ Pour packager une application, voici les prérequis : * Maîtriser un minimum `git`, le Shell et d’autres notions de programmation ; * Une [machine virtuelle ou sur un serveur distant](/install_fr) ou un [environnement de développement](https://github.com/yunohost/ynh-dev) pour packager et tester son paquet. -Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'[introduction au packaging](/start_packaging_apps_fr.md). +Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'[introduction au packaging](packaging_apps_start_fr.md). ### Contenu Un paquet YunoHost est composé : diff --git a/start_packaging_apps_fr.md b/packaging_apps_start_fr.md similarity index 100% rename from start_packaging_apps_fr.md rename to packaging_apps_start_fr.md diff --git a/sitemap_fr.md b/sitemap_fr.md index ca2f6e56..1ba1fcfa 100644 --- a/sitemap_fr.md +++ b/sitemap_fr.md @@ -95,7 +95,7 @@ * [Présentation du fonctionnement de YunoHost](/package_list_fr) * Applications : * [Packager des applications](/packaging_apps_fr) - * [Introduction](start_packaging_apps_fr.md) + * [Introduction](packaging_apps_start_fr.md) * [Manifeste](packaging_apps_manifest_fr) * [Scripts](packaging_apps_scripts_fr) * [Gestion des arguments](packaging_apps_arguments_management_fr) From 2883881a60791649a4433943c0f576d3186deb8f Mon Sep 17 00:00:00 2001 From: Moul Date: Sat, 10 Dec 2016 12:25:06 +0100 Subject: [PATCH 20/46] =?UTF-8?q?[mod]=20typo:=C2=A0YunoHost.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging_apps_start_fr.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packaging_apps_start_fr.md b/packaging_apps_start_fr.md index 0f46b406..cdd8d7fc 100644 --- a/packaging_apps_start_fr.md +++ b/packaging_apps_start_fr.md @@ -1,13 +1,13 @@ Petite introduction au packaging d'application, pour comprendre de quoi nous parlons et comment ça marche. Cette documentation s'adresse avant tout aux packageurs débutants qui ne sont pas à l'aise avec les concepts de shell, parsing et administration système de manière générale. -Nous verrons ici ce qu'est un package d'application Yunohost, comment cela fonctionne, comment faire pour écrire un package et comment se lancer dans l'aventure sans être tout seul. +Nous verrons ici ce qu'est un package d'application YunoHost, comment cela fonctionne, comment faire pour écrire un package et comment se lancer dans l'aventure sans être tout seul. ### De quoi on parle en fait ? Avant de démarrer, la bonne question c'est "Qu'est-ce qu'un package d'application !?" -Pour répondre à cette question, il faut revenir à ce qu'est Yunohost, c'est un système d’exploitation serveur visant à simplifier l’auto-hébergement de services Internet. Et pour faire ça, Yunohost met à disposition, entre autre, une interface d'administration permettant d'installer des applications en quelques clics. +Pour répondre à cette question, il faut revenir à ce qu'est YunoHost, c'est un système d’exploitation serveur visant à simplifier l’auto-hébergement de services Internet. Et pour faire ça, YunoHost met à disposition, entre autre, une interface d'administration permettant d'installer des applications en quelques clics. Or si vous avez déjà installé une application web à la main, vous savez qu'en réalité c'est bien plus compliqué que quelques clics sur une jolie interface. C'est là que le package d'application entre en jeu, c'est un ensemble de scripts qui automatise l'installation d'une application web et la préconfigure pour que l'utilisateur final n'ai besoin que de quelques clics pour l'installer facilement. @@ -17,16 +17,16 @@ C'est là que le package d'application entre en jeu, c'est un ensemble de script Du point de vue de l'utilisateur, c'est très simple, on choisit une application, on répond à quelques questions, ça mouline et c'est prêt. Mais il se passe bien plus de choses derrière. -Tout d'abord, lorsque l'application est sélectionnée, Yunohost va aller chercher son package sur Github, par exemple l'application [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh). -Ensuite, Yunohost lit le fichier manifest.json pour connaître les questions à poser à l'utilisateur. +Tout d'abord, lorsque l'application est sélectionnée, YunoHost va aller chercher son package sur Github, par exemple l'application [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh). +Ensuite, YunoHost lit le fichier manifest.json pour connaître les questions à poser à l'utilisateur. Mais ces questions anodines sont très importantes, on retrouvera souvent le domaine sur lequel installer l'application, l'adresse à laquelle elle sera accessible, l'utilisateur qui en sera l'administrateur et la langue par défaut de l'application. -Ce sont là des éléments essentiels pour configurer correctement notre application web lors de son installation. Pour ce faire, Yunohost va récupérer les réponses données par l'utilisateur et les envoyer au script install qui se trouve dans le dossier scripts du package. +Ce sont là des éléments essentiels pour configurer correctement notre application web lors de son installation. Pour ce faire, YunoHost va récupérer les réponses données par l'utilisateur et les envoyer au script install qui se trouve dans le dossier scripts du package. Le script install va se charger d'installer l'application, en prenant en compte les réponses données par l'utilisateur. Ce script va simplement faire ce que vous auriez fait si vous aviez installé l'application à la main. -Si par la suite l'utilisateur souhaite supprimer l'application, Yunohost utilisera le script remove du dossier script, qui se chargera à la place de l'utilisateur de supprimer l'application, ses dossiers et tout ses fichiers de configuration. +Si par la suite l'utilisateur souhaite supprimer l'application, YunoHost utilisera le script remove du dossier script, qui se chargera à la place de l'utilisateur de supprimer l'application, ses dossiers et tout ses fichiers de configuration. ### Qu'il y a-t-il dans ces scripts pour que tout soit si simple pour l'utilisateur ? @@ -35,7 +35,7 @@ Les scripts d'un package d'application sont simplement des commandes bash les un #### ... Et c'est quoi une commande bash ? Une commande [bash](https://fr.wikipedia.org/wiki/Bourne-Again_shell) c'est une ligne de texte qui sera interprétée et produira un résultat. C'est ce qu'on a l'habitude d'appeler la ligne de commande. -Or puisque votre serveur, sur lequel est installé Yunohost, ne dispose pas d'une interface graphique, vous n'avez que la ligne de commande de disponible. Vous l'atteignez en général après vous être connecté avec [ssh](/ssh_fr). +Or puisque votre serveur, sur lequel est installé YunoHost, ne dispose pas d'une interface graphique, vous n'avez que la ligne de commande de disponible. Vous l'atteignez en général après vous être connecté avec [ssh](/ssh_fr). Les scripts d'un package ne sont donc qu'une succession de commandes bash, comme si vous les aviez tapées directement dans la console ssh pour installer l'application. From 442323de9ade53944c09f9b04ad2b9456478c5c7 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 27 Dec 2016 12:03:52 +0100 Subject: [PATCH 21/46] Update packaging_apps_guidelines_fr.md --- packaging_apps_guidelines_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index b5067f6b..e305d1d3 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -120,7 +120,7 @@ La licence du paquet est à indiquer dans un fichier `LICENSE` à la racine du p Les listes d'applications official.json et community.json n'acceptent que les paquets dont la licence est libre, de même pour la licence de l'application contenue. Certaines applications libres nécessitent des dépendances non-libres (exemple: mp3, drivers, etc.). Dans ce cas, il faut ajouter `+dep-non-free` à l'acronyme et si possible donner des précisions dans le README.md du paquet, l'intégration sera dans ce cas acceptée au cas par cas. -Dans le future, YunoHost affichera sans doute des détails sur la licence de l'application. Pour y parvenir, l'acronyme doit être celui issue de cette [liste de licences répertoriées sur gnu.org](https://www.gnu.org/licenses/license-list.fr.html) (si il y a 2 acronymes, il faut prendre celui contenant le numéro de version). Pour plus de cohérence, la casse doit être respectée. +Dans le futur, YunoHost affichera sans doute des détails sur la licence de l'application. Pour y parvenir, l'acronyme doit être celui issu de cette [liste de licences répertoriées sur gnu.org](https://www.gnu.org/licenses/license-list.fr.html) (si il y a 2 acronymes, il faut prendre celui contenant le numéro de version). Pour plus de cohérence, la casse doit être respectée. Si la licence n'est pas présente dans la liste, dans ce cas il faut indiquer `free` ou `non-free` selon qu'elle est libre ou non et donner l'occasion à l'utilisateur de se renseigner dans le README.md (lien, explications, ...). From b96f0b0eafe8c826797a03ba12548f0e91cbce43 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 27 Dec 2016 12:23:44 +0100 Subject: [PATCH 22/46] Liens forum --- packaging_apps_guidelines_fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 3a83ffcd..1558ee4c 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -119,7 +119,7 @@ Pour la liste d'application du projet LaBriqueInter.net, l'inscription se fait e #### YEP 1.6 - Se tenir informé sur l'évolution du packaging d'apps | validé | manuel | OFFICIAL | Afin de suivre l'évolution du format de packaging ainsi que des bonnes pratiques, il est recommandé de: * s'inscrire à la liste de discussion `apps@list.yunohost.org` -* suivre [la catégorie App intégration du forum](https://forum.yunohost.org/c/app-integration) +* suivre [la catégorie Apps packaging du forum](https://forum.yunohost.org/c/apps-packaging) Pour suivre l'évolution de YunoHost de façon plus générale : * rejoindre le salon XMPP dev@conference.yunohost.org ([trois jours de logs sont disponibles](https://im.yunohost.org/logs/dev/)) @@ -132,7 +132,7 @@ L'ajout d'une app sur l'[organisation YunoHost-Apps](https://github.com/YunoHost C'est aussi un moyen pour permettre de déployer rapidement un correctif de sécurité si nécessaire dans le cas où le mainteneur ne serait pas disponible. #### YEP 1.8 - Publier des demandes de test | validé | manuel | OFFICIAL | -Afin d'assurer le bon fonctionnement d'un paquet, il convient de publier une annonce afin d'ouvrir les tests sur le paquet. Cette annonce peut se faire sur le forum dans [la catégorie App intégration du forum](https://forum.yunohost.org/c/app-integration). +Afin d'assurer le bon fonctionnement d'un paquet, il convient de publier une annonce afin d'ouvrir les tests sur le paquet. Cette annonce peut se faire sur le forum dans [la catégorie Apps du forum](https://forum.yunohost.org/c/apps). Il est recommandé d'indiquer si certains tests n'ont pas été menés.
From 8d36f8456058caea2851e0d1abc2d9ae6e9b79a1 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 27 Dec 2016 12:28:31 +0100 Subject: [PATCH 23/46] =?UTF-8?q?Ajout=20des=20tests=20=C3=A0=20effectuer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging_apps_guidelines_fr.md | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 1558ee4c..06934630 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -135,11 +135,26 @@ C'est aussi un moyen pour permettre de déployer rapidement un correctif de séc Afin d'assurer le bon fonctionnement d'un paquet, il convient de publier une annonce afin d'ouvrir les tests sur le paquet. Cette annonce peut se faire sur le forum dans [la catégorie Apps du forum](https://forum.yunohost.org/c/apps). Il est recommandé d'indiquer si certains tests n'ont pas été menés. -
- -TODO: Lister les tests types à mener - -
+ +* Vérifier le package avec Package linter. +* Installation en sous-dossier. +* Installation à la racine d'un domaine ou d'un sous-domaine. +* Suppression, dans les 2 cas d'installations précédent. +* Accès à l'interface web de l'application, avec le / final dans l'adresse, et en l'omettant. +* Upgrade sur la même version du package. +* Upgrade depuis une ancienne version du package. +* Installation privée (sécurisée par le SSO). +* Installation publique. +* Installation multi-instance. +* Erreur de nom d'utilisateur. +* Erreur de nom de domaine. +* Path mal écrit (path/ au lieu de /path par exemple). +* Port déjà utilisé par une autre application. +* Source corrompue après téléchargement. +* Erreur de téléchargement de la source. +* Dossier déjà utilisé par une autre application. +* Backup et restore. + #### YEP 1.9 - Documenter l'app | validé | AUTO | OFFICIAL | Avant tout, il convient de faire une description correcte de l'app dans le champ `description` du manifest. L'insertion de mot clé dans cette description peut être une bonne idée, dans la mesure où un utilisateur pourrait être amené à faire une recherche (CTRL+F) parmi toutes les applications. From efb3914b6dbb9154c84195962c756881932e434d Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 27 Dec 2016 12:46:08 +0100 Subject: [PATCH 24/46] =?UTF-8?q?D=C3=A9tail=20YEP=201.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Et je l'ai passé en OFFICIAL au lieu de WORKING. La plupart des apps "working" communautaires ne sont pas maintenues. On ne peut pas, je pense, l'imposer à toutes les apps communautaires. --- packaging_apps_guidelines_fr.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 68ffd102..5a8b04d9 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -24,7 +24,7 @@ Chaque YEP est associée à : | YEP 1.1 | Nommer son app et son dépot | validé | manuel | NOTWORKING | | YEP 1.2 | Inscrire l'app sur un "répertoire" connu | validé | manuel | NOTWORKING | | YEP 1.3 | Indiquer la licence associée au paquet | validé | AUTO | WORKING | -| YEP 1.4 | Informer sur l'intention de maintenir un paquet | brouillon | manuel | WORKING | +| YEP 1.4 | Informer sur l'intention de maintenir un paquet | brouillon | manuel | OFFICIAL | | YEP 1.5 | Mettre à jour régulièrement le statut de l'app | brouillon | manuel | WORKING | | YEP 1.6 | Se tenir informé sur l'évolution du packaging d'apps | validé | manuel | OFFICIAL | | YEP 1.7 | Ajouter l'app à l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) | validé | manuel | OFFICIAL | @@ -116,7 +116,10 @@ TODO Lien ou information pour réaliser l'inscription.
#### YEP 1.3 - Indiquer la licence associée au paquet | validé | AUTO | WORKING | -#### YEP 1.4 - Informer sur l'intention de maintenir un paquet | brouillon | manuel | WORKING | +#### YEP 1.4 - Informer sur l'intention de maintenir un paquet | brouillon | manuel | OFFICIAL | +Le mainteneur de l'application doit s'engager à maintenir son app sur la durée si il souhaite que celle-ci rejoigne la liste des applications officielles. +Cela implique de surveiller les mises à jour de l'application upstream, de respecter les nouvelles règles de packaging et de répondre aux demandes des utilisateurs. + #### YEP 1.5 - Mettre à jour régulièrement le statut de l'app | brouillon | manuel | WORKING | #### YEP 1.6 - Se tenir informé sur l'évolution du packaging d'apps | validé | manuel | OFFICIAL | #### YEP 1.7 - Ajouter l'app à l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) | validé | manuel | OFFICIAL | From a08bf1149cdbffcd09e85f7824bea0397834d9c6 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 27 Dec 2016 12:59:47 +0100 Subject: [PATCH 25/46] =?UTF-8?q?D=C3=A9tail=20YEP=202.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging_apps_guidelines_fr.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 68ffd102..9a80ad05 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -138,6 +138,10 @@ Cependant, il faudra porter une attention particulière à l'affichage correcte Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux questions du manifeste. En effet, même si au début il n'est pas nécessaire d'écrire un script de mise à jour, par la suite ce sera sans doute le cas. Or, sans les informations initiales, la mise à jour peut être plus fastidieuse. #### YEP 2.4 - Détecter et gérer les erreurs | brouillon | manuel | WORKING | +Les scripts install, upgrade, backup et restore doivent détecter les erreurs pour éviter la poursuite des scripts en cas d'erreur bloquante ou d'usage de variable vide. +L'usage de trap et de set -eu est recommandé pour détecter et traiter les erreurs ([Discussion en cours à ce sujet](https://forum.yunohost.org/t/gestion-des-erreurs-set-e-et-ou-trap/2249/5)) +Il est nécessaire également de vérifier le contenu des variables avant les suppressions du script remove. + #### YEP 2.5 - Copier correctement des fichiers | brouillon | manuel | WORKING | #### YEP 2.6 - Annuler l'action si les valeurs d'entrées sont incorrectes | validé | manuel | WORKING | #### YEP 2.7 - Donner des permissions suffisantes aux instructions bash | validé | auto | WORKING | From f966cf3b619de87aac4cf7e7efbf71f41cb2feda Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 27 Dec 2016 13:00:52 +0100 Subject: [PATCH 26/46] typo --- packaging_apps_guidelines_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 5a8b04d9..c8a8ac29 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -117,7 +117,7 @@ TODO Lien ou information pour réaliser l'inscription. #### YEP 1.3 - Indiquer la licence associée au paquet | validé | AUTO | WORKING | #### YEP 1.4 - Informer sur l'intention de maintenir un paquet | brouillon | manuel | OFFICIAL | -Le mainteneur de l'application doit s'engager à maintenir son app sur la durée si il souhaite que celle-ci rejoigne la liste des applications officielles. +Le mainteneur de l'application doit s'engager à maintenir son app sur la durée si il souhaite que celle-ci rejoigne la liste des applications officielles. Cela implique de surveiller les mises à jour de l'application upstream, de respecter les nouvelles règles de packaging et de répondre aux demandes des utilisateurs. #### YEP 1.5 - Mettre à jour régulièrement le statut de l'app | brouillon | manuel | WORKING | From 687814505d05580acb920bf5b6ad171dd0cc867f Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 27 Dec 2016 13:07:32 +0100 Subject: [PATCH 27/46] =?UTF-8?q?D=C3=A9tail=20YEP=203.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging_apps_guidelines_fr.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 68ffd102..51ed3387 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -163,6 +163,9 @@ Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux qu #### YEP 3.1 - Ne pas demander ou stocker de mot de passe LDAP | brouillon | manuel | NOTWORKING | #### YEP 3.2 - Ouvrir un port correctement | brouillon | manuel | WORKING | #### YEP 3.3 - Faciliter le contrôle de l'intégrité des sources | brouillon | manuel | OFFICIAL | +L'application upstream ne doit pas être intégrée en tarball dans le dossier source du package, car cela alourdit le package et le dépôt git et ne permet pas la vérification de l'intégrité de la source. +La source doit donc être téléchargée depuis le site officiel, puis son intégritée doit être vérifiée avant de l'installer. + #### YEP 3.4 - Isoler l'app | brouillon | manuel | OFFICIAL | #### YEP 3.5 - Suivre les recommendations de la documentation de l'app | validé | manuel | OFFICIAL | #### YEP 3.6 - Mettre à jour les versions contenant des CVE | draft | manuel | OFFICIAL | From c8d3b24cd5ac6e858d11edfec36c095698e57da6 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 27 Dec 2016 13:15:18 +0100 Subject: [PATCH 28/46] =?UTF-8?q?D=C3=A9tail=20YEP=202.8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging_apps_guidelines_fr.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 68ffd102..5f0af08a 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -142,6 +142,9 @@ Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux qu #### YEP 2.6 - Annuler l'action si les valeurs d'entrées sont incorrectes | validé | manuel | WORKING | #### YEP 2.7 - Donner des permissions suffisantes aux instructions bash | validé | auto | WORKING | #### YEP 2.8 - Modifier correctement une configuration système | brouillon | manuel | WORKING | +Les modifications du système doivent être réversible pour de la suppression de l'aplication, sans conséquence pour le système et sans laisser de résidus. +Pour celà, il faut recourir autant que possible aux dossiers `.d` des configurations système. Où lorsqu'il n'est pas possible de faire autrement, d'indiquer clairement la configuration modifiée par une application et s'assurer que les modifications seront retirées lors de sa suppression. + #### YEP 2.9 - Enlever toutes traces de l'app lors de la suppression | brouillon | manuel | WORKING | #### YEP 2.10 - Configurer les logs de l'application | brouillon | manuel | WORKING | #### YEP 2.11 - Utiliser une variable plutôt que l'app id directement | validé | manuel | OFFICIAL | From f2ffe4463d83a7ca89cc51bc92bcee707d4144b5 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 27 Dec 2016 13:19:50 +0100 Subject: [PATCH 29/46] =?UTF-8?q?D=C3=A9tail=20YEP=202.10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging_apps_guidelines_fr.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 68ffd102..3aacdc58 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -144,6 +144,9 @@ Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux qu #### YEP 2.8 - Modifier correctement une configuration système | brouillon | manuel | WORKING | #### YEP 2.9 - Enlever toutes traces de l'app lors de la suppression | brouillon | manuel | WORKING | #### YEP 2.10 - Configurer les logs de l'application | brouillon | manuel | WORKING | +Si possible, l'application doit utiliser un fichier de log, qui sera de préférence dans /var/log. +Si le log est mis en place par le script install et non par l'application elle-même, un fichier de configuration pour log-rotate devra être ajouté pour gérer les rotations des logs de l'application. + #### YEP 2.11 - Utiliser une variable plutôt que l'app id directement | validé | manuel | OFFICIAL | #### YEP 2.12 - Utiliser les commandes pratiques (helpers) | validé | auto | OFFICIAL | #### YEP 2.13 - Traduire le package en anglais | brouillon | manuel | OFFICIAL | From 2210a0d7e10d848aad530944dc6c9015c83119c7 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 27 Dec 2016 13:26:27 +0100 Subject: [PATCH 30/46] =?UTF-8?q?D=C3=A9tails=20YEP=204.3=20et=204.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging_apps_guidelines_fr.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 68ffd102..e47329b9 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -171,7 +171,11 @@ Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux qu #### YEP 4.2 - Lier l'authentification au sso | validé | manuel | OFFICIAL | #### YEP 4.2.1 - Déconnexion | validé | manuel | OFFICIAL | #### YEP 4.3 - Fournir un script de sauvegarde YunoHost fonctionnel | validé | auto | OFFICIAL | +L'application doit disposer d'un script backup pour permettre aux utilisateurs de sauvegarder l'application, sa configuration et ses données. + #### YEP 4.4 - Fournir un script de restauration YunoHost fonctionnel | validé | auto | OFFICIAL | +L'application doit disposer d'un script restore pour permettre aux utilisateurs de restaurer une application sauvegardée préalablement avec le script backup. + #### YEP 4.5 - Utiliser les hooks | validé | manuel | OPTIONAL | #### YEP 4.6 - Gère le multi-instance | validé | manuel | OPTIONAL | #### YEP 4.7 - Ajouter un module à la CLI | validé | manuel | OPTIONAL | From 72f617519ac7304c0a103b6bb7e165b843849470 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 27 Dec 2016 13:34:04 +0100 Subject: [PATCH 31/46] =?UTF-8?q?D=C3=A9tail=20YEP=203.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging_apps_guidelines_fr.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 68ffd102..59748dc0 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -162,6 +162,9 @@ Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux qu ### YEP 3 - Sécuriser une app #### YEP 3.1 - Ne pas demander ou stocker de mot de passe LDAP | brouillon | manuel | NOTWORKING | #### YEP 3.2 - Ouvrir un port correctement | brouillon | manuel | WORKING | +Si l'application nécessite l'ouverture d'un port, il est nécessaire de vérifier préalablement que ce port n'est pas déjà utilisé par une autre application. Le cas échéant, le script install doit être capable de trouver un autre port disponible. +Il convient également de vérifier si le port doit être ouvert sur le routeur, au delà du réseau local. Si ce n'est pas le cas, l'argument `--no-upnp` doit être ajouté à la commande `yunohost firewall allow` afin de limiter l'ouverture du port au réseau local uniquement. + #### YEP 3.3 - Faciliter le contrôle de l'intégrité des sources | brouillon | manuel | OFFICIAL | #### YEP 3.4 - Isoler l'app | brouillon | manuel | OFFICIAL | #### YEP 3.5 - Suivre les recommendations de la documentation de l'app | validé | manuel | OFFICIAL | From 3f92f17dce9ef247d36423467f6a54c7f2da81de Mon Sep 17 00:00:00 2001 From: "ljf (zamentur)" Date: Tue, 27 Dec 2016 16:58:34 +0100 Subject: [PATCH 32/46] [enh] Use a bigger list of accronym and avoid conflict with delimiter --- packaging_apps_guidelines_fr.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index e305d1d3..b3c7e121 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -118,17 +118,17 @@ TODO Lien ou information pour réaliser l'inscription. #### YEP 1.3 - Indiquer la licence associée au paquet | brouillon | AUTO | WORKING | La licence du paquet est à indiquer dans un fichier `LICENSE` à la racine du paquet. Attention à ne pas confondre avec la licence de l'application qui va être installée dont l'acronyme est à renseigner dans le champ `license` du manifeste. -Les listes d'applications official.json et community.json n'acceptent que les paquets dont la licence est libre, de même pour la licence de l'application contenue. Certaines applications libres nécessitent des dépendances non-libres (exemple: mp3, drivers, etc.). Dans ce cas, il faut ajouter `+dep-non-free` à l'acronyme et si possible donner des précisions dans le README.md du paquet, l'intégration sera dans ce cas acceptée au cas par cas. +Les listes d'applications official.json et community.json n'acceptent que les paquets dont la licence est libre, de même pour la licence de l'application contenue. Certaines applications libres nécessitent des dépendances non-libres (exemple: mp3, drivers, etc.). Dans ce cas, il faut ajouter `&dep-non-free` à l'acronyme et si possible donner des précisions dans le README.md du paquet, l'intégration sera dans ce cas acceptée au cas par cas. -Dans le futur, YunoHost affichera sans doute des détails sur la licence de l'application. Pour y parvenir, l'acronyme doit être celui issu de cette [liste de licences répertoriées sur gnu.org](https://www.gnu.org/licenses/license-list.fr.html) (si il y a 2 acronymes, il faut prendre celui contenant le numéro de version). Pour plus de cohérence, la casse doit être respectée. +Dans le futur, YunoHost affichera sans doute des détails sur la licence de l'application. Pour y parvenir, l'acronyme doit être celui issu de cette [liste de licences répertoriées du SPDX](https://spdx.org/licenses/) (si il y a 2 acronymes, il faut prendre celui contenant le numéro de version). Pour plus de cohérence, la casse doit être respectée. Si la licence n'est pas présente dans la liste, dans ce cas il faut indiquer `free` ou `non-free` selon qu'elle est libre ou non et donner l'occasion à l'utilisateur de se renseigner dans le README.md (lien, explications, ...). -Exemple: pour une licence `GNU Lesser General Public License (LGPL), version 3` l'acronyme est `LGPLv3` si toutefois des dépendances non libres sont utilisées dans ce cas il faudra mettre `LGPLv3+dep-non-free` dans le manifeste. +Exemple: pour une licence `GNU Lesser General Public License (LGPL), version 3` l'acronyme est `LGPL-3.0` si toutefois des dépendances non libres sont utilisées dans ce cas il faudra mettre `LGPL-3.0&dep-non-free` dans le manifeste. -Si une application a des modules liés avec une autre licence (Exemple: Odoo 9 LGPLv3 + un module sous licence AGPLv3 ), dans ce cas on indiquera les deux licences séparées par un `+`. +Si une application a des modules liés avec une autre licence (Exemple: Odoo 9 LGPL-3.0 + un module sous licence AGPL-3.0 ), dans ce cas on indiquera les deux licences séparées par un `&`. -Si deux applications distinctes sont dans le même paquet d'installation et ont des licences distinctes, dans ce cas on peut utiliser le `&` pour séparer les licences. +Si deux applications distinctes sont dans le même paquet d'installation et ont des licences distinctes, dans ce cas on peut utiliser le `,` pour séparer les licences. Dans les deux cas, le mainteneur est encouragé à réfléchir à la possibilité de créer deux paquets distincts. Le manifeste permet des questions de type `app` de façon à faire référence à une autre application déjà installée. From 16109db9a16d7ce49fda15bdfb190ec3f1a0e35b Mon Sep 17 00:00:00 2001 From: "ljf (zamentur)" Date: Tue, 27 Dec 2016 17:06:59 +0100 Subject: [PATCH 33/46] [enh] Add explanation about app type --- packaging_apps_guidelines_fr.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index b3c7e121..1e506bbc 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -130,7 +130,9 @@ Si une application a des modules liés avec une autre licence (Exemple: Odoo 9 L Si deux applications distinctes sont dans le même paquet d'installation et ont des licences distinctes, dans ce cas on peut utiliser le `,` pour séparer les licences. -Dans les deux cas, le mainteneur est encouragé à réfléchir à la possibilité de créer deux paquets distincts. Le manifeste permet des questions de type `app` de façon à faire référence à une autre application déjà installée. +Dans les deux cas, le mainteneur est encouragé à réfléchir à la possibilité de créer deux paquets distincts. Le manifeste de chaque application permet de poser des questions de type `app` de façon à faire référence à une autre application déjà installée. + +Rappel: une question de type `app` prend pour réponse l'identifiant d'une des apps déjà installée. Quelques liens intéressants pour aider au choix de licence: * [Des fiches explicatives sur les licences libres](https://www.inria.fr/content/download/5896/48452/version/2/file/INRIA_recueil_fiches_licences_libres_vf.pdf) From 0b112358f9be193b5e27aa8cae859205523ee28b Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sat, 31 Dec 2016 17:40:49 +0100 Subject: [PATCH 34/46] Fix typo --- packaging_apps_guidelines_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 5f0af08a..de5eedd5 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -142,7 +142,7 @@ Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux qu #### YEP 2.6 - Annuler l'action si les valeurs d'entrées sont incorrectes | validé | manuel | WORKING | #### YEP 2.7 - Donner des permissions suffisantes aux instructions bash | validé | auto | WORKING | #### YEP 2.8 - Modifier correctement une configuration système | brouillon | manuel | WORKING | -Les modifications du système doivent être réversible pour de la suppression de l'aplication, sans conséquence pour le système et sans laisser de résidus. +Les modifications du système doivent être réversible pour que la suppression de l'application soit sans conséquences pour le système ne laisse pas de résidus. Pour celà, il faut recourir autant que possible aux dossiers `.d` des configurations système. Où lorsqu'il n'est pas possible de faire autrement, d'indiquer clairement la configuration modifiée par une application et s'assurer que les modifications seront retirées lors de sa suppression. #### YEP 2.9 - Enlever toutes traces de l'app lors de la suppression | brouillon | manuel | WORKING | From 003a30b835223814556765c9e9258b8cea4ac956 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 3 Jan 2017 00:26:53 +0100 Subject: [PATCH 35/46] =?UTF-8?q?Ajout=20exemple=20et=20v=C3=A9rifications?= =?UTF-8?q?=20d'usage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging_apps_guidelines_fr.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 9a80ad05..0e93d73c 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -140,7 +140,9 @@ Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux qu #### YEP 2.4 - Détecter et gérer les erreurs | brouillon | manuel | WORKING | Les scripts install, upgrade, backup et restore doivent détecter les erreurs pour éviter la poursuite des scripts en cas d'erreur bloquante ou d'usage de variable vide. L'usage de trap et de set -eu est recommandé pour détecter et traiter les erreurs ([Discussion en cours à ce sujet](https://forum.yunohost.org/t/gestion-des-erreurs-set-e-et-ou-trap/2249/5)) -Il est nécessaire également de vérifier le contenu des variables avant les suppressions du script remove. +Il est nécessaire également de vérifier le contenu des variables avant les suppressions du script remove. Par exemple un `rm -Rf /var/www/$app` avec `$app` vide aurait un résultat désastreux. + +Au début des scripts, avant toutes modifications, il faut vérifier l'existence des utilisateurs mentionné à l'installation, ainsi que la disponibilité du path demandé, la disponibilité du dossier final de l'application et la taille des mots de passe le cas échéant. #### YEP 2.5 - Copier correctement des fichiers | brouillon | manuel | WORKING | #### YEP 2.6 - Annuler l'action si les valeurs d'entrées sont incorrectes | validé | manuel | WORKING | From 9a1b2c79e7098164e0d33463df9498069aeab270 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 11 Jan 2017 23:13:20 +0100 Subject: [PATCH 36/46] Correction lien interne --- packaging_apps_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging_apps_fr.md b/packaging_apps_fr.md index 9dc64fe6..e61519cd 100644 --- a/packaging_apps_fr.md +++ b/packaging_apps_fr.md @@ -8,7 +8,7 @@ Pour packager une application, voici les prérequis : * Maîtriser un minimum `git`, le Shell et d’autres notions de programmation ; * Une [machine virtuelle ou sur un serveur distant](/install_fr) ou un [environnement de développement](https://github.com/yunohost/ynh-dev) pour packager et tester son paquet. -Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'[introduction au packaging](packaging_apps_start_fr.md). +Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'[introduction au packaging](/packaging_apps_start_fr). ### Contenu Un paquet YunoHost est composé : From 9d42c6cbd7a5b6d47b9a4e17bcaf8446ca6a1211 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Thu, 12 Jan 2017 23:08:49 +0100 Subject: [PATCH 37/46] =?UTF-8?q?D=C3=A9tail=20YEP=203.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [Décision mineure](https://github.com/YunoHost/project-organization#d%C3%A9cision-mineure). Clôture prévu le 19 janvier avec 2 avis. Au 15 janvier avec 3 avis. --- packaging_apps_guidelines_fr.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 7a2a1b33..f1e665fc 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -283,7 +283,13 @@ Certains utilisateurs ont remplacé ce carré par un script ajoutant un menu en #### YEP 3.1 - Ne pas demander ou stocker de mot de passe LDAP | brouillon | manuel | NOTWORKING | #### YEP 3.2 - Ouvrir un port correctement | brouillon | manuel | WORKING | #### YEP 3.3 - Faciliter le contrôle de l'intégrité des sources | brouillon | manuel | OFFICIAL | + #### YEP 3.4 - Isoler l'app | brouillon | manuel | OFFICIAL | +Afin d'éviter des effets de bords en cas de compromission éventuelle de l'application, celle-ci doit être isolée pour de ne pas risquer d'impacter les autres applications. +Pour cela, il convient d'isoler l'application dans son dossier d'exécution en restreignant son environnement par un chroot, soit par un mécanisme interne à l'application lorsque c'est possible (par exemple pour un serveur ftp), soit par l'usage de phpfpm. +De même, pour restreindre la portée de l'utilisateur exécutant l'application, il est préférable d'utiliser un utilisateur dédiée à l'application. Dont les droits sont restreint à l'usage de l'application uniquement. +Toutefois, cela ne doit pas exempter d'une restriction maximale des droits sur les fichiers de l'application. Autant que possible, les fichiers doivent appartenir à root, et l'utilisateur dédié ne doit avoir de droits d'écriture que sur les fichiers le réclamant expressément. + #### YEP 3.5 - Suivre les recommandations de la documentation de l'app | validé | manuel | OFFICIAL | En général, une application propose une documentation afin d'aider les administrateurs systèmes à réaliser l'installation. Il est conseiller d'en suivre les recommandations, notamment celles concernant les permissions à accorder par fichier ou répertoire. From 88f6740e79e16126000201f89a0e003633b1b8f6 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Thu, 12 Jan 2017 23:35:03 +0100 Subject: [PATCH 38/46] =?UTF-8?q?D=C3=A9tail=20YEP=203.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [Décision mineure](https://github.com/YunoHost/project-organization#d%C3%A9cision-mineure). Clôture prévu le 19 janvier avec 2 avis. Au 15 janvier avec 3 avis. --- packaging_apps_guidelines_fr.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 7a2a1b33..b0b2b2b6 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -290,6 +290,9 @@ En général, une application propose une documentation afin d'aider les adminis Le mainteneur de paquet doit toutefois rester vigilant, certaines documentations pouvant être erronées ou insuffisante. #### YEP 3.6 - Mettre à jour les versions contenant des CVE | draft | manuel | OFFICIAL | +Les [CVE](https://fr.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures), ou Common Vulnerabilities and Exposures, recensent les failles de sécurités communes aux applications. Les corrections de ces failles peuvent concerner l'application et il est important dans ce cas de suivre au plus près ces mises à jour. +Plus généralement, l'application peut proposer un correctif pour une faille spécifique à elle-même. +De manière générale, cette YEP implique de suivre un canal d'information pour suivre les mises à jour de sécurité de l'application et réagir rapidement en mettant à jour le package en conséquence. ### YEP 4 - Intégrer une app Cette meta YEP traite de l'intégration d'une app avec l'environnement YunoHost. Une bonne intégration est en général un gage de qualité et de confort pour les utilisateurs. From 08ac29ef7af040bd01021e3703335a216b685d4d Mon Sep 17 00:00:00 2001 From: "ljf (zamentur)" Date: Sun, 15 Jan 2017 23:20:49 +0100 Subject: [PATCH 39/46] [fix] Typo --- install_on_raspberry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install_on_raspberry.md b/install_on_raspberry.md index 393da50b..3def8d0a 100644 --- a/install_on_raspberry.md +++ b/install_on_raspberry.md @@ -7,7 +7,7 @@ - A Raspberry Pi model 1, 2 or 3 -- An SD card: **4GB** capacity (or more) and **class10** speed rate are highly recommended +- An SD card: **4GB** capacity (or more) and **class10** speed rate is highly recommended - An other computer to read this guide and access to your Raspberry Pi - A screen and a keyboard are recommended to control your Raspberry Pi if a problem occurs. - A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth From 0e354f0db1918341da943de7745843fb4e89210e Mon Sep 17 00:00:00 2001 From: Pierre Jarnet Date: Tue, 17 Jan 2017 10:46:13 +0100 Subject: [PATCH 40/46] add Kresus --- apps_wishlist.md | 1 + 1 file changed, 1 insertion(+) diff --git a/apps_wishlist.md b/apps_wishlist.md index 8f2c94d8..d4ecd541 100644 --- a/apps_wishlist.md +++ b/apps_wishlist.md @@ -71,6 +71,7 @@ The following list is a compiled wishlist of applications that would be nice-to- - [Koel](http://koel.phanan.net) - [Kontalk](http://kontalk.org) - [Koozip](http://koozic.net) +- [Kresus](https://framagit.org/bnjbvr/kresus) - [KrISS feed](https://github.com/tontof/kriss_feed) - [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29) - [LiquidSoap](http://savonet.sourceforge.net/) From 931308731b034dee9f9730d3805de6f38489c15b Mon Sep 17 00:00:00 2001 From: Moul Date: Thu, 19 Jan 2017 05:34:59 +0100 Subject: [PATCH 41/46] add streama on wishlist app list. --- apps_wishlist.md | 1 + 1 file changed, 1 insertion(+) diff --git a/apps_wishlist.md b/apps_wishlist.md index d4ecd541..b1c0fbf6 100644 --- a/apps_wishlist.md +++ b/apps_wishlist.md @@ -127,6 +127,7 @@ The following list is a compiled wishlist of applications that would be nice-to- - [SIP](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license) - [Sonarr](https://sonarr.tv) - [Stackedit](https://stackedit.io) +- [Streama](https://github.com/dularion/streama) - [Streisand](https://github.com/jlund/streisand) - [SVG-Edit](https://github.com/SVG-Edit/svgedit) - [Sympa](http://www.sympa.org) From 3856c1d2700b39910ad79237dcb99c2fcfe8e210 Mon Sep 17 00:00:00 2001 From: Moul Date: Thu, 19 Jan 2017 11:37:44 +0100 Subject: [PATCH 42/46] [enh] add conferences authors. --- conf_fr.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/conf_fr.md b/conf_fr.md index 0a1e9689..d95a4a79 100644 --- a/conf_fr.md +++ b/conf_fr.md @@ -1,7 +1,7 @@ # Conférences * [PSES 2015 - La Brique Internet](http://www.youtube.com/watch?v=NCRn0yRfkIE) -* [THSF 2015](https://vimeo.com/128055751) -* [RMLL 2014 - Hébergez-vous !]() -* [Capitole du libre 2013 - L’auto-hébergement pour tous avec YunoHost - par Adrien Beudin](http://2013.capitoledulibre.org/conferences/internet-libre/lauto-hebergement-pour-tous-avec-yunohost.html) -* [FOSDEM 2013](https://www.youtube.com/watch?v=siN1OLAgGJk) \ No newline at end of file +* [THSF 2015 – beudbeud](https://vimeo.com/128055751) +* [RMLL 2014 - Hébergez-vous ! – kload & beudbeud]() +* [Capitole du libre 2013 - L’auto-hébergement pour tous avec YunoHost - beudbeud](http://2013.capitoledulibre.org/conferences/internet-libre/lauto-hebergement-pour-tous-avec-yunohost.html) +* [FOSDEM 2013 — kload](https://www.youtube.com/watch?v=siN1OLAgGJk) From aaf14bb189318b708960c99744f689cc3820900c Mon Sep 17 00:00:00 2001 From: Moul Date: Thu, 19 Jan 2017 18:53:42 +0100 Subject: [PATCH 43/46] [fix] #420: add missing title. --- packaging_apps_start_fr.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packaging_apps_start_fr.md b/packaging_apps_start_fr.md index cdd8d7fc..673fa008 100644 --- a/packaging_apps_start_fr.md +++ b/packaging_apps_start_fr.md @@ -1,3 +1,5 @@ +# Introduction au packaging + Petite introduction au packaging d'application, pour comprendre de quoi nous parlons et comment ça marche. Cette documentation s'adresse avant tout aux packageurs débutants qui ne sont pas à l'aise avec les concepts de shell, parsing et administration système de manière générale. From b0287082d0065b0ca2d1ee59babae3c978670968 Mon Sep 17 00:00:00 2001 From: Moul Date: Thu, 19 Jan 2017 20:13:30 +0100 Subject: [PATCH 44/46] [fix] add missing 'bash' syntax for Simone's whim. --- packaging_apps_guidelines_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index dbe86576..3f1334b7 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -270,7 +270,7 @@ Bien souvent une web app s'installe à partir de formulaires affichés sur une p Il convient donc de vérifier si l'application ne propose pas une solution d'installation en ligne de commande. Si ce n'est pas le cas, il convient d'utiliser l'option -H de curl. En effet, dans certains cas la redirection DNS pourrait ne pas être active au moment de l'installation. -``` +```bash curl -kL -H "Host: $domain" --data "¶m1=Text1¶m2=text2" https://localhost$path/install.php > /dev/null 2>&1 ``` From caf3f89f761c6a6121976718d0073d62fac25b3b Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Fri, 20 Jan 2017 00:07:50 +0100 Subject: [PATCH 45/46] =?UTF-8?q?Avertissement=20ing=C3=A9rence?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging_apps_guidelines_fr.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index b0b2b2b6..20b76210 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -294,6 +294,8 @@ Les [CVE](https://fr.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures), o Plus généralement, l'application peut proposer un correctif pour une faille spécifique à elle-même. De manière générale, cette YEP implique de suivre un canal d'information pour suivre les mises à jour de sécurité de l'application et réagir rapidement en mettant à jour le package en conséquence. +Comme précisé dans la YEP 1.7, si un correctif de sécurité doit être déployé en urgence, un autre membre de YunoHost peut être amené à faire un commit sur le package si nécessaire. + ### YEP 4 - Intégrer une app Cette meta YEP traite de l'intégration d'une app avec l'environnement YunoHost. Une bonne intégration est en général un gage de qualité et de confort pour les utilisateurs. From f40ec06214b860d0f896137e1c4c23566160992c Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Fri, 20 Jan 2017 00:17:56 +0100 Subject: [PATCH 46/46] =?UTF-8?q?Ajout=20suppression=20en=20cas=20d'=C3=A9?= =?UTF-8?q?chec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging_apps_guidelines_fr.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 0e93d73c..4f9fe472 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -144,6 +144,8 @@ Il est nécessaire également de vérifier le contenu des variables avant les su Au début des scripts, avant toutes modifications, il faut vérifier l'existence des utilisateurs mentionné à l'installation, ainsi que la disponibilité du path demandé, la disponibilité du dossier final de l'application et la taille des mots de passe le cas échéant. + N'oubliez pas qu'en cas d'erreur d'installation le script de suppression sera lancé automatiquement par la cli yunohost. + #### YEP 2.5 - Copier correctement des fichiers | brouillon | manuel | WORKING | #### YEP 2.6 - Annuler l'action si les valeurs d'entrées sont incorrectes | validé | manuel | WORKING | #### YEP 2.7 - Donner des permissions suffisantes aux instructions bash | validé | auto | WORKING |