Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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. tongue

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)


Vincent
Oqapy      Qarte      PaQager

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.


Vincent
Oqapy      Qarte      PaQager

Hors ligne

#8 Le 14/01/2013, à 12:48

Christophe C

Re : Problème d'erreur sur un paquet .deb dans quantal

VinsS a écrit :

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 smile.
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.


Vincent
Oqapy      Qarte      PaQager

Hors ligne

#10 Le 14/01/2013, à 20:39

Christophe C

Re : Problème d'erreur sur un paquet .deb dans quantal

VinsS a écrit :

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