#1 Le 04/11/2012, à 11:06
- Christophe C
Problème d'erreur sur un paquet .deb dans quantal
Bonjour,
j'ai fais un logiciel changeur de papiers-peints (en bash) pour xfce et lxde (http://xl-wallpaper.net/).
Il marche sans problème dans Xubuntu/Lubuntu 10.10 à 12.04. Mais quand j'essai de l'installer sur Xubuntu 12.04, j'ai des messages d'erreur dans la logithèque (ce qui n'empèche pas le programme de très bien marcher une fois installé).
Il y en a en fait 2 messages différents : control-file-has-bad-owner et wrong-file-owner-uid-or-gid. En détail :
Lintian check results for /home/chris/Bureau/xl-wallpaper.deb:
E: xl-wallpaper: control-file-has-bad-owner postinst chris/chris != root/root
E: xl-wallpaper: control-file-has-bad-owner postrm chris/chris != root/root
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/ 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/bin/ 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/bin/xl-wallpa-run.sh 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/bin/xl-wallpap-config.sh 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/bin/xl-wallpaper-config.desktop 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/bin/xl-wallpaper-data.txt 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/bin/xl-wallpaper-run.desktop 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/bin/xl-wallpaper-trad.txt 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/share/ 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/share/doc/ 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/share/doc/README 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/share/doc/changelog 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/share/doc/changelog.Debian 1000/1001
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/share/doc/copyright 1000/1001
Pour plus d'info, la structure du paquet xl-wallpaper.deb est la suivante :
_______/DEBIAN
| control
| postinst
| postrm
|
|______/usr
|
|____/bin
| xl-wallpap-config.sh
| xl-wallpaper-config
| xl-wallpaper-data.txt
| xl-wallpaper-run.desktop
| xl-wallpaper-trad.txt
| xl-wallpa-run.sh
|
|____/share
|
|____/doc
changelog
changelog.Debian
copyright
README
Et le fichier control est le suivant :
Package: xl-wallpaper
Version: 1.01
Section: Utility
Priority: optional
Architecture: all
Depends: bash, zenity, python
Installed-Size: 22
Maintainer: Christophe Cagé <chriscage@club-internet.fr>
Description: Change les papiers peints pour XFCE et LXDE
Je suppose qu'il y a un changement dans les formats de .deb demandé, mais lequel ?
Dernière modification par Christophe C (Le 12/01/2013, à 10:07)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#2 Le 04/11/2012, à 17:01
- afilmore
Re : Problème d'erreur sur un paquet .deb dans quantal
On dirait un problème de droits sur ton deb peut être le paquet n'à pas été créé avec les bons droits, un truc dans le genre.
Hors ligne
#3 Le 01/01/2013, à 20:56
- Christophe C
Re : Problème d'erreur sur un paquet .deb dans quantal
Bon, alors la doc debian http://lintian.debian.org/tags/wrong-fi … r-gid.html indique que l'identifiant (ID) de l'utilisateur du fichier doit avoir un N° ID compris dans les plages suivantes : 0-99, 64000-64999 et 65534.
Effectivement, si je lance une commande id dans le répertoire concerné, j'ai pas le bon id :
~/Documents/xl-wallpaper : id
uid=1000(chris) gid=1001(chris) groupes=1001(chris),4(adm),24(cdrom),27(sudo),30(dip),
46(plugdev),110(lpadmin),125(sambashare),1000(jupiter)
Min ID utilisateur est à 1000, et mon ID de groupe à 1001, hors des plages. Ce que confirme le message d'erreur du software-center :
E: xl-wallpaper: wrong-file-owner-uid-or-gid usr/ 1000/1001
Mais comment je peut redéfinir un N° ID pour le répertoire et ses fichiers dans les bonnes plages, avant de créer le .deb ? Avec un chown ?
Dernière modification par Christophe C (Le 01/01/2013, à 20:59)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#4 Le 06/01/2013, à 11:16
- Christophe C
Re : Problème d'erreur sur un paquet .deb dans quantal
Bon, d'après la doc debian (http://lintian.debian.org/tags/control- … owner.html, détaillé dans le lien Refer to Debian Policy Manual section 10.9), il faut que les répertoires et fichiers qu'on transforme en .deb soient en groupe=root, utilisateur=root. Ce qu'on fait par un :
sudo chown -R root:root /home/user/repertoire-de-base-du-paquet-debian
Apparemment, ce n'était pas contrôlé dans les versions de la logithèque < 12.10 (quantal), mais maintenant cela l'est. Pas contrôlé par gdebi non plus.
Quelqu'un peut confirmer ?
Dernière modification par Christophe C (Le 06/01/2013, à 11:21)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#5 Le 08/01/2013, à 20:27
- VinsS
Re : Problème d'erreur sur un paquet .deb dans quantal
Salut,
Ton arborescence d'installation n'est pas bonne de toutes façons.
Idéalement, tu devrais avoir ceci:
|
|______/usr/bin/xl-wallpa-run.sh (Je suppose que c'est l'exécutable)
|
|______/usr/share/xl-wallpaper/
| xl-wallpap-config.sh
| xl-wallpaper-config
| xl-wallpaper-data.txt
| xl-wallpaper-trad.txt
|
|______/usr/share/applications/xl-wallpaper-run.desktop
|
|______/usr/share/doc/xl-wallpaper/
changelog
changelog.Debian
copyright
README
Celui que tu places dans /usr/bin/ et celui-là seul, doit être rendu exécutable.
Règle d'or, on n'éparpille pas ses fichiers d'application dans /usr/bin. Pareil pour la doc, créer un dossier.
Tu devra évidement modifier ton exécutable pour qu'il trouve ses fichiers de travail dans le dossier /usr/share/xl-wallpaper/
Ensuite, quand tu auras fait ton paquet, fais-le contrôler par Lintian:
lintian -v -i xl-wallpaper_i386.changes
Adapte le nom du fichier .changes
Dernière modification par VinsS (Le 08/01/2013, à 20:29)
Hors ligne
#6 Le 12/01/2013, à 10:14
- Christophe C
Re : Problème d'erreur sur un paquet .deb dans quantal
Ok, merci de ton aide. Je me basais sur un article que j'avais trouvé, mais pas officiel. Je vais donc revoir tout cela.
Trois questions, cependant :
- Tu peux confirmer que les répertoires et fichiers qu'on transforme en .deb doivent être en groupe=root, utilisateur=root ? J'ai toujours un doute.
- mettre le fichier de config dans usr/share me semble correcte si on veut une config commune à tous les utilisateurs, mais si on veut une config spécifique à chaque utilisateur, je suppose que c'est à copier dans ~/.config ?
- Concernant l'utilisation de lintian, j'avais vu cette commande dans la doc, mais je ne l'ai pas comprise (pas creusée non plus, d'ailleurs). Si mon paquet s'appelle toto.deb, que donne la commande ? Et ce fichier .changes, il est créé comment ?
Dernière modification par Christophe C (Le 12/01/2013, à 10:16)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#7 Le 14/01/2013, à 10:00
- VinsS
Re : Problème d'erreur sur un paquet .deb dans quantal
Pour les droits, seul le fichier qui lance l'appli doit être exécutable. Pour les autres c'est inutile puisqu'ils sont utilisés par le premier.
sudo chmod a+x xl-wallpa-run.sh
Je ne modifie jamais le groupe/utilisateur/droit des autres fichiers.
Le fichier de config, pour bien faire, devrait être créé à la première utilisation. Dans le dossier utilisateur puisqu'il faut pouvoir écrire dedans.
Ce qui signifie que chaque utilisateur aura son propre fichier de config.
Normalement, quand ton paquet est prêt à être créé, si tu utilises la commande
debuild -i -us -uc
tu auras, en plus de ton .deb, un fichier .dsc, un .build et un .changes.
par habitude, je donne à Lintian le fichier .changes mais tu peux très bien passer le .deb à la place, le résultat est le même.
lintian -v -i tonPaquet.deb
Juste pour info, ce fichier .changes est celui que l'on transmet vers son ppa quand on en a un.
Le rapport de Lintian est fait de lignes de ce genre:
E: oqapy: copyright-contains-dh_make-todo-boilerplate
The string "Please also look if..." appears in the copyright file,
which indicates that you either didn't check the whole source to find additional
copyright/license, or that you didn't remove that paragraph after having done so.
voir aussi : http://www.debian.org/doc/manuals/maint … -copyright
W: oqapy: extended-description-line-too-long
One or more lines in the extended part of the "Description:" field have been found
to contain more than 80 characters. For the benefit of users of 80x25 terminals,
it is recommended that the lines do not exceed 80 characters.
http://lintian.debian.org/tags/extended … -long.html
Les lignes qui commencent par W sont des avertissements et celles qui commencent par un E désignent des erreurs.
Ces erreurs ne veulent pas dire que le paquet n'est pas installable, simplement il n'est pas conforme a la pratique.
De toutes façons, poste ici ton log Lintian si tu as des doutes.
Hors ligne
#8 Le 14/01/2013, à 12:48
- Christophe C
Re : Problème d'erreur sur un paquet .deb dans quantal
Pour les droits, seul le fichier qui lance l'appli doit être exécutable. Pour les autres c'est inutile puisqu'ils sont utilisés par le premier.
sudo chmod a+x xl-wallpa-run.sh
Je ne parlais pas des droits mais des propriétaires, et donc pas de chmod, mais de chown. La doc debian indique que tout le répertoire doit être root:root (user:groupe), si je comprend bien. Enfin, je simplifie un peu, car ce qui est dit est un poil plus ambigüe :
Files should be owned by root:root, and made writable only by the owner and universally readable (and executable, if appropriate), that is mode 644 or 755.
Directories should be mode 755 or (for group-writability) mode 2775. The ownership of the directory should be consistent with its mode: if a directory is mode 2775, it should be owned by the group that needs write access to it.[96]
Control information files should be owned by root:root and either mode 644 (for most files) or mode 755 (for executables such as maintainer scripts).
Voir http://lintian.debian.org/tags/control- … owner.html, détaillé dans le lien Refer to Debian Policy Manual section 10.9.
Mais si je ne met pas tout en root:root, j'ai un message d'erreur pour chaque fichier dans la logithèque depuis quantal (pas sous precise).
Sinon, pour le reste, c'est clair. Bien le merci .
Effectivement, je ne crée pas mon paquet via debuild -i -us -uc, mais via un dpkg-deb --build, qui ne génère qu'un .deb. A part le nombre de fichiers créés, il y a d'autres différences entre les 2 méthodes ?
Dernière modification par Christophe C (Le 14/01/2013, à 20:36)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#9 Le 14/01/2013, à 15:34
- VinsS
Re : Problème d'erreur sur un paquet .deb dans quantal
Voila qui m'étonne, jusqu'à présent je ne m'étais jamais préoccupé de cela et je construit des .deb depuis quelques années.
Je suis sur Precise 10.04 donc si cette question apparaît avec Quantal, je dois m'attendre à des rapport de bug ....
Tu confirmeras que de changer le proprio en root résout bien le problème de la logithèque ?
Pour debuild -i -us -uc versus dpkg-deb --build, j'utilise le premier uniquement par habitude, le paquet construit est toujours le même.
Hors ligne
#10 Le 14/01/2013, à 20:39
- Christophe C
Re : Problème d'erreur sur un paquet .deb dans quantal
Tu confirmeras que de changer le proprio en root résout bien le problème de la logithèque ?
Dans mon cas oui. Tu a les messages d'erreur que me renvoient la logithèque quantal dans le 1er post de ce fil. Tous les fichiers à installer sont en "bad owner", sans exception. Cela disparaît si je met tout en root:root par un sudo chown -R root:root du répertoire contenant les fichiers.
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne