• [^] # Re: Dépendances rédhibitoire

    Posté par . En réponse à la dépêche Paperwork : besoin de testeurs. Évalué à 3.

    Par contre, une fois la 1ère release faite, j'ai l'intention d'aller discuter avec les mainteneurs Debian, pour voir si l'un d'entre eux serait assez charitable pour packager Paperwork et quelques-unes de ses dépendances.

    Je comprend que tu n'aies pas envie de maintenir des paquets pour toutes les distros, mais:

    • faire un paquet Debian n'est pas dur et est totalement automatisable.
    • faire des paquets pour tes dépendances te fait gagner du temps en te permettant de garder un système plus propre (comme elles sont intégrées dans ton gestionnaire de paquet, tu peux les virer facilement, les mettre à jour, et les réinstaller avec des paquets que tu auras actualisé avec des scripts: rien à faire donc)
    • faire un paquet pour ton application te permets de la déployer plus simplement sur plusieurs machines (entre mon netbook, ma tour et mon ordinosaure je trouve ça utile)
    • faire des paquets en général te permets de faciliter l'installation pour tout le monde et donc d'avoir plus de retours.

    Pour le "comment faire":
    Déjà, tu as pas besoin de t'embêter avec l'architecture cible, vu que tu sembles utiliser python, donc le nom de ton architecture sera "all".

    Ensuite, il y a pleins de solutions, dont certaines qui demandent d'apprendre des procédures (les solutions propres ça, celles que je n'utilise pas ;) ) et d'installer des paquets… perso, j'ai eu la flemme, alors j'ai ouvert une archive (7z ou tar, choisi ton arme), j'ai regardé dedans, j'ai vu que c'était simple alors j'ai semi-automatisé la procédure. C'est crade dans le principe, mais dans la pratique ça marche proprement (et c'est ça qui m'intéresse au final).

    J'ai eu besoin à un moment d'utiliser une dépendance à une lib (pluma-framework) qui n'était pas packagée (ni même testée sous autre chose que windows, pour être précis, et en plus hébergé sur un svn… d'où le "fork" qui me sers de laboratoire pour fixer les bugs que je remonte ensuite upstream avec les patchs) pour laquelle j'ai créé un patch.

    J'ai du coup fait quelques scripts à la va-vite, si tu es intéressé, tu peux les récupérer et les adapter, ils sont ici.

    Tu noteras que j'ai créé un répertoire par architecture ciblée, puis pour chaque architecture un nouveau pour chaque paquet final. Ce répertoire de paquet final contiens 2 choses: un "squelette" de l'arborescence qui sera affectée par le paquet, et un dossier "DEBIAN" qui lui contiens juste un fichier "control". Il te suffit de modifier ce fameux fichier, et de lancer les scripts (que tu auras naturellement lus et adaptés avant, vue leur tronche, c'est vraiment pas compliqué… tu noteras que j'ai bien dis qu'ils sont faits à la va-vite hein… faudrait que je les améliore, mais je ferai ça à mon prochain projet je pense, ou alors j'apprendrai à faire des trucs propres) et tu récupéreras en sortie tes paquets "deb".

    Note: je n'ai utilisé que le fichier "control" qui ne contiens donc pas de signature. Une façon plus propre de faire les choses aurait été de créer un fichier ("sum" il me semble) qui contiens les hash des fichiers contenus dans ton paquet, et tu aurais ainsi même pu permettre de certifier que les fichiers n'ont pas été modifiés lors du transfert…