From jeremy at jcarnus.fr Fri Aug 18 19:43:44 2017 From: jeremy at jcarnus.fr (=?UTF-8?Q?J=C3=A9r=C3=A9my_Carnus?=) Date: Fri, 18 Aug 2017 13:43:44 -0400 Subject: [Obm] Nouveau TLD + Debian Strech Message-ID: <718e2eebe26f5eddfac6c2fe6cb70869@jcarnus.fr> Bonjour, Je me permets d'envoyer un patch qui permet a OBM de supporter les nouveaux TLD (par example .restaurant, etc).. J'en profite aussi pour savoir si un support de strectch est prevu. Si non, est-ce que quelque'un peut me dire comment jouer dans le packaging de OBM pour l'installer sur un debian strech. Cela me permettrait de tester et d'envoyer un patch si cela marche bien Voila Merci -- -- Jérémy Carnus -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: obm_patch_domain Type: text/x-diff Size: 2787 bytes Desc: not available URL: From ddolcimascolo at linagora.com Mon Aug 21 10:39:03 2017 From: ddolcimascolo at linagora.com (David DOLCIMASCOLO) Date: Mon, 21 Aug 2017 10:39:03 +0200 Subject: [Obm] Nouveau TLD + Debian Strech In-Reply-To: <718e2eebe26f5eddfac6c2fe6cb70869@jcarnus.fr> References: <718e2eebe26f5eddfac6c2fe6cb70869@jcarnus.fr> Message-ID: <6886b997-2079-ec06-e8e6-8eecea4dca7e@linagora.com> Hi Jeremy, Your contribution has been merged into OBM's master branch and will land in the next release. Regarding Debian Stretch, we're very interested in having OBM installation work on this operating system. However, there's no plan yet for working on that topic. We did some investigations, though, and you can have a look at https://ci-obm.linagora.com/jira/browse/OBMFULL-6399 which summarizes what was found. Regarding OBM packaging, here are some instructions (in french) I wrote a few years ago that should get you you ready to patch ! ----- _Paquets_ Les meilleures docs à lire: * https://fedoraproject.org/wiki/How_to_create_an_RPM_package * https://wiki.debian.org/Packaging Les paquets RPM sont construits grâce à des descripteurs (fichiers .spec) dans lesquels on déclare le ou les paquets à construire, avec leurs dépendances, leurs contenus, la manière de les installer, etc. La syntaxe est assez obscure car un grand nombre de variables sont définies globalement et connues des outils de constructions de paquets (rpmbuild). Un exemple simple pour "rentrer" dans les fichiers specs est *ca/rpm/SPECS/obm-ca.spec*, il est relativement simple d'accès. Tous les descripteurs se trouvent avec la commande *find . -name "*.spec"* dans la racine du dépôt. Les instructions principales à connaître dans un .spec sont: * Name - le nom du paquet * Requires - Déclare une dépendance d'un paquet * BuildArch - Architecture cible du paquet (tous nos paquets sont en "noarch") * %package - Déclare une suite d'instruction pour la construction d'un paquet donnée * %post - Déclare un script à exécuter après l'installation d'un paquet * %install - Déclare les étapes à exécuter lors de l’installation d'un paquet * %files - Liste les fichiers inclus dans un paquet Les paquets DEB sont construits grâce à des descripteurs multiples (chaque paquet possède un ou plusieurs, souvent beaucoup, fichiers de description) et un "control file" (fichier *control*). Le fichier control contient la description administrative du paquet, son nom, ses dépendances, etc. Dans un fichier control, les instructions à connaître sont les suivantes: * Package - Nom du paquet * Depends - Liste des dépendances * Architecture - L'architecture cible (tous nos paquets sont en "all") Les descripteurs d'un paquet DEB sont les suivants: * rules - Règles de construction du paquet, choses à faire avant d'inclure les fichiers du .install, etc. * .postrm - Script exécuté après la désinstallation d'un paquet * .postinst - Script exécuté après l’installation d'un paquet * .cron.d - Fichier déployé dans /etc/cron.d/ lors de l'installation * .dirs - Liste des dossiers à créer lors de l'installation * .install - Liste des fichiers à inclure dans le paquet. Cette liste est évaluée après le fichier rules, car du preprocessing peut être fait. Le processus de build en lui même est basé sur de l'outillage python (aka. build.py) dans le répertoire *build-system/* d'OBM. C'est le point d'entrée pour toute la construction de paquets. _Dépôts_ Les outils à connaître: * dput (en fait c'est scp + du contrôle d'intégrité pour uploader des paquets vers un site distant) * reprepro (outil de management des dépôts apt: ajouter de paquets, update de paquets, suppression de paquets, etc.) * createrepo (création et update de dépôts yum) Les dépos de paquets sont de deux natures: 1. Des dépôts yum pour RedHat, gérés par la commande _createrepo_ 1. Création d'un dépôt: *mkdir * 2. Upload de paquets: *scp* 3. Update d'un dépôt: *cd && **rm -fR * && createrepo .* 2. Des dépôts apt pour debian, gérés par les commandes _dput_ et _reprepro_ 1. Création d'un dépôt: *cp -a