Articles : Claws Mail abandonne son greffon ClamAV
Posté par Colin Leroy (page perso, ). Modéré le 21 février 2008.
Claws Mail est un client de courrier électronique basé sur la bibliothèque GTK+ et privilégiant la légèreté, la rapidité et l'extensibilité grâce à un système de greffons.
Une version, numérotée 3.3.1, devrait sortir sous peu pour apporter des correctifs à des problèmes découverts depuis la 3.3.0. L'un de ces problèmes est assez important, étant donné qu'il s'agit de faire cesser une violation de copyright concernant ClamAV.
Une version, numérotée 3.3.1, devrait sortir sous peu pour apporter des correctifs à des problèmes découverts depuis la 3.3.0. L'un de ces problèmes est assez important, étant donné qu'il s'agit de faire cesser une violation de copyright concernant ClamAV.
Le site de Claws Mail (336 hits)
Explications sur le blog d'un développeur (395 hits)
Un journal sur le sujet (399 hits)
> Lire la dépêche (26 commentaires, moyenne: 1,9).
Vous avez demandé le commentaire #906963.




Simple question
N'y aurait-il pas eu une 5ème solution ?
Proposer le paquet principal clawsmail sous licence GPLv2 et un paquet additionnel clawsmail-plugin-clamwin sous licence GPLv3 ?
C'est peut-être un peu simpliste, mais c'est la première idée qui m'est venu en lisant cet article.
Bonne fin de journée.
Salokine
[^]Re: Simple question
J'imagine que tu veux dire :
- paquet ClawMail principal sous GPL v3
- paquet additionnel clawsmail-plugin-clamwin sous GPL v2
Mais malheureusement ca n'est pas plus possible.
Un plugin est une librairie (*.so ou dll) tout comme libclamav.
Et la GPLv2 ne peux liée avec un code GPLv3 : elles sont mutuellement exclusives. Quelque soit la rédaction de la GPLv3, la GPLv2 interdit qu'un code autre que GPLv2 lui soit liée.
Il n'est pas question de packaging mais bien de lien mémoire, comme dans Dynamicly Linked Library.
Maintenir le plug'in en v2 ne ferait que décaler le problème ailleurs : nous n'aurions pas le droit de charger le plugin dans ClawMail, ce qui ne donne pas plus la fonctionnalité.
La seul solution légale est d'utiliser le binaire clamav, mais il semblerait que ce soit lent.
Pas que je sois utilisateur de la chose, mais il me semble qu'une solution lente est toujours mieux que pas de solution du tout. Après libre à l'utilisateur de choisir d'activer l'AV ou pas...
mes 2¢
[^]Re: Simple question
je ne comprends pas très bien, est-ce la gplv3 qui est incompatible avec la gplv2 ou l'inverse ?
D'après ce que j'avais compris sur la GPL, c'est qu'on pouvait l'utiliser avec d'autres produits sous licence non-gpl à partir du moment où certaines conditions sont respectées. D'ailleur KDE est en LGPL et se linke avec QT en GPL.
Si la gplv3 est incompatible avec la v2 et non l'inverse, la balle se trouve dans le clan de clawsmail : il suffit de faire une note d'exclusion autorisant l'utilisateur du produit à le lier avec la libclamAV en gplv2, un peu comme les applications GPL sont censées le faire pour utiliser openssl (qui n'est pas gpl-compliant)
Et j'ai vraiment des doutes que la gpl v2 soit incompatible avec la v3 (dans ce sens là)
[^]Re: Simple question
au temps pour moi, le lien sur la faq de gnu est très clair (voir la matrice, section "utiliser une librairie") :
http://www.gnu.org/licenses/gpl-faq.html#AllCompatibility
Par contre il n'y a pas de note expliquant si on peut utiliser une lib en gpl v2 en rajoutant une note d'exclusion.
Mais ça me parait fort quand même de pénaliser ceux qui n'ont pas publié leur sources en GPLv2 or later : ça me parait être un très mauvais plan de signer un contrat en blanc sur une licence qui n'existait pas à l'époque
[^]GPLv2 or later
D'après le lien que tu as posté, il n'est pas possible de lier un exécutable "GPLv3" à une librairie "GPLv2 only".
Par ailleurs j'ai vu quelquefois qu'en droit français une licence "GPLv2 or later" n'a pas de valeur : l'exécutable sera considéré comme GPLv2 only.
Du coup, ma question : en droit français, lier un exécutable GPLv3 à une librairie GPLv2 (only, ou bien "or later") est-il de toute façon une violation de copyright ?
[+] [^]Re: GPLv2 or later
Si on faisait du droit français, la GPL, aui est rédigée en anglais, n'est pas une licence valide.
[^]Re: Simple question
C'est la solution à laquelle nous avions pensé, mais l'avocat du SFLC nous a dit que ce n'était pas possible.
L'autre solution était de scanner par ligne de commande:
- avec clamscan, chaque scan charge la base AV, scanne, décharge la base. Cela prend 3 secondes par mail sur un Core 2 Duo à 1.6GHz, c'est trop lent à notre avis.
- avec clamdscan, qui utilise le démon, ça va plus vite (environ 0.5 secondes par email), mais le démon ne tournant pas en root mais sous le user clamav sur pas mal de distributions, il n'arrive pas à lire les fichiers email, sauf à élargir les droits (qui sont, dans Claws, -rw------) à -rw-r--r-- ; une solution qui ne nous plaisait pas non plus.
Evidemment, c'est idiot d'avoir raté cette lib lorsque nous sommes passés en GPLv3. Mais, maintenant que c'est fait depuis déjà 5 mois, nous ne pouvons pas réellement retourner en arrière ; et, de toutes façons, les principes de la GPLv3 séduisent la majorité de l'équipe Claws...
Claws Mail - it bites!
[^]Re: Simple question
> il n'arrive pas à lire les fichiers email, sauf à élargir les droits
Pourquoi ne pas tout simplement lui envoyer le mail sur son entrée standard et lui faire vérifier /dev/stdin ? (ou passer par un FIFO dans /tmp)
[^]Re: Simple question
Il n'est pas implémenté comme ça, ça ne fonctionne pas:
Exemple avec une image:
cleroy@colin:~$ clamscan 1.png
1.png: OK
----------- SCAN SUMMARY -----------
Known viruses: 217226
Engine version: 0.92
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.44 MB
Time: 3.165 sec (0 m 3 s)
cleroy@colin:~$ clamdscan 1.png
/home/cleroy/1.png: lstat() failed. ERROR
En essayant avec l'entrée standard:
cleroy@colin:~$ clamdscan < 1.png
/home/cleroy: Access denied. ERROR
Il essaye de scanner tout le répertoire courant et ne fait même pas attention à stdin.
Claws Mail - it bites!
[^]Re: Simple question
Et pourquoi ne pas réecrire un bout de clamscan, un executable exprès pour ça, qui puisse scanner des mails en pagaille et vite depuis la ligne de commande, et utiliser ce programme là ? :]
Je suis sur que si vous le proposez à clamav, ils voudront bien l'integrer, ça peut interesser du monde !
[^]Re: Simple question
Une piste comme ça qui m'a l'air d'un moindre mal:
pourquoi ne pas lancer un clamd avec les droits de l'utilisateur au démarrage de Claws Mail? en générant un clamd.conf sécifique ça m'a l'air faisable ( en créant une socket du style /tmp/$user-clamd.sock , et tout à l'avenant...)
[^]Re: Simple question
une question naïve : ça sert à quoi un antivirus qui sert à priori à détecter les virus windows, quand le système est sous linux ? C'est quand on s'échange des fichiers .doc pour éviter les macro virus ? quand on s'échange des binaires .exe ? Moi cela ne m'arrive jamais ni dans le premier cas, ni dans le second (les fichiers genre funwithbritney.exe étant systématiquement effacés et non pas transférés à mes contacts).
Clamav permet-il de détecter des rootkit linux ?
Tous ensemble contre l'esclavitude des logiciels privateurs !
[^]Re: Simple question
A éviter la propagation d'un virus lors d'un transfert de courriel?
[^]Re: Simple question
Dans les entreprises, institutions, ... le mail est rarement émis par le poste de travail directement mais plutôt par un serveur mail. De même, le mail reçu l'est par un serveur (évenruellement le même) qui sotcke les messages et donne un accès par IMAP(S) (voire POP(S)).
Dans ces conditions, avoir un antivirus au niveau de ces serveurs permet d'éviter d'envoyer et/ou recevoir trop de virus. Et ce, quelque soit l'OS des postes de travail.
Autre exemple : si on fournit une redirection de mail (une série d'alias sans stockage de mail), il est important de filtrer les mails transitant par le serveur du domaine relayé sinon ce serveur risque de se faire marquer comme spammeur par les serveur SMTP auxquels il relaie ses mails.
Bref, il y a tout plein de raisons d'avoir un antivirus (pour toutes les plateformes) fonctionnant sous linux.