Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Debian] Installer PyClean sur INN 2.6.4

8 views
Skip to first unread message

yamo'

unread,
Jul 8, 2022, 5:05:54 AM7/8/22
to
Salut,

Je lis souvent que PyClean est bien mieux que Cleanfeed mais je n'ai
jamais compris comment en pratique l'installer.

En cherchant, je suis tombé sur cette discussion :
<https://groups.google.com/g/news.software.nntp/c/L9aMBt5LeQI/m/GzYPs2oQAgAJ>

Sur debian, le répertoire filter est dans : /etc/news/filter
et pas dans ~news/bin/filter

Comme je n'ai pas le fichier :
/etc/news/filter/filter_innd.py

Je fais directement :

# wget \
https://raw.githubusercontent.com/crooks/PyClean/master/pyclean.py \
-O /etc/news/filter/filter_innd.py

Puis :

$ inncheck -a -v --pedantic |more

$ ctlinnd reload filter.python "PyClean initial load"
ctlinnd: Failed to reload filter_innd.py

Bon, il faut être plus violent..

# systemctl restart bind9 inn2

Et j'obtiens à la fin enfin :

innd: SERVER Python filtering enabled

En lisant <https://github.com/doug-letough/PyClean/blob/master/README.md>
Je vois qu'il y a un peu plus de choses à faire, je regarde!

--
Stéphane

yamo'

unread,
Jul 9, 2022, 3:27:45 AM7/9/22
to
Salut,

Supersedes de <ta8s1h$jb3$1...@rasp.pasdenom.info>

Je lis souvent que PyClean est bien mieux que Cleanfeed
mais, je n'ai jamais compris comment en pratique l'installer.

En cherchant, je suis tombé sur cette discussion :
<https://groups.google.com/g/news.software.nntp/c/L9aMBt5LeQI/m/GzYPs2oQAgAJ>
Où l'on parle de INSTALL que je n'ai pas trouvé...

Sur debian, le répertoire filter est dans : /etc/news/filter
et pas dans ~news/bin/filter

En fait il faut cloner pyClean avec git.

cd /quelquepart && \
git clone https://github.com/crooks/PyClean.git

Et à la fin ne pas oublier de faire les deux actions.
Hier, je n'avais pas capté que INN.py devait être dans :
/etc/news/filter/

ln -s /etc/news/filter/pyclean/INN.py \
/etc/news/filter/INN.py
ln -s /etc/news/filter/pyclean/pyclean.py \
/etc/news/filter/filter_innd.py

Sinon, ça déconne sans donner d'erreur compréhensible.

Et lire : <https://github.com/doug-letough/PyClean/blob/master/README.md>

Puis :

$ inncheck -a -v --pedantic |more

$ ctlinnd reload filter.python "PyClean initial load"
ctlinnd: Failed to reload filter_innd.py

Bon, il faut être plus violent..

# systemctl restart bind9 inn2

Et j'obtiens à la fin enfin :

innd: SERVER Python filtering enabled



Mais ça ne veut pas forcément dire que ça fonctionne.

J'ai à la fin :
# ls -altr /var/log/news/pyclean/
total 32
drwx------ 2 news news 4096 8 juil. 11:17 articles
-rw-rw-r-- 1 news news 3942 8 juil. 21:58 close_traceback
-rw-rw-r-- 1 news news 6741 8 juil. 21:58 traceback
drwxrwxr-x 6 news news 4096 9 juil. 06:25 ..
-rw-r--r-- 1 news news 105 9 juil. 09:10 pyclean.log
-rw-r--r-- 1 news news 360 9 juil. 09:10 init_traceback
drwx------ 3 news news 4096 9 juil. 09:10 .

Où traceback est le fichir d'erreur que je ne comprenais pas
et qui serait plus parlant s'il était nommé error_traceback...



Mais j'ai toujours :

$ ctlinnd python y
ctlinnd: Python filter not defined



--
Stéphane

yamo'

unread,
Jul 9, 2022, 9:38:13 AM7/9/22
to
Salut,

Supersedes de <ta8s1h$jb3$1...@rasp.pasdenom.info> et de
<tabalg$6fm$1...@rasp.pasdenom.info>
Pour le dernier Supersedes, j'ai trouvé l'erreur
"python filter object is not defined" mais, c'est obscur pour moi...
Le prochain message sera en anglais sur news.software.nntp...
Et j'ai comme vraie erreur (je viens de la voir dans les logs) :

python filter object is not defined

--
Stéphane

Julien ÉLIE

unread,
Jul 9, 2022, 3:19:15 PM7/9/22
to
Bonsoir Stéphane,

> Je lis souvent que PyClean est bien mieux que Cleanfeed

Les deux fonctionnent bien. C'est juste que PyClean est plus "moderne"
et a dépoussiéré des règles pas forcément utiles toujours présentes dans
Cleanfeed.


> # ls -altr /var/log/news/pyclean/
> total 32
> drwx------ 2 news news 4096 8 juil. 11:17 articles
> -rw-rw-r-- 1 news news 3942 8 juil. 21:58 close_traceback
> -rw-rw-r-- 1 news news 6741 8 juil. 21:58 traceback
> drwxrwxr-x 6 news news 4096 9 juil. 06:25 ..
> -rw-r--r-- 1 news news 105 9 juil. 09:10 pyclean.log
> -rw-r--r-- 1 news news 360 9 juil. 09:10 init_traceback
> drwx------ 3 news news 4096 9 juil. 09:10 .
>
> Où traceback est le fichir d'erreur que je ne comprenais pas
> et qui serait plus parlant s'il était nommé error_traceback...

Peux-tu nous recopier le contenu d'init_traceback, traceback (tout du
moins la fin, le fichier a l'air volumineux) et pyclean.log ?

--
Julien ÉLIE

« C'est une forêt vierge où la main de l'homme n'a jamais mis le pied. »

yamo'

unread,
Jul 10, 2022, 3:27:26 AM7/10/22
to
Salut,
Julien ÉLIE a tapoté :

Aujourd'hui :
# ls -altr /var/log/news/pyclean/
total 32
drwx------ 2 news news 4096 8 juil. 11:17 articles
-rw-rw-r-- 1 news news 3942 8 juil. 21:58 close_traceback
-rw-rw-r-- 1 news news 6741 8 juil. 21:58 traceback
drwx------ 3 news news 4096 9 juil. 09:10 .
-rw-r--r-- 1 news news 210 9 juil. 11:20 pyclean.log
-rw-r--r-- 1 news news 720 9 juil. 11:20 init_traceback
drwxrwxr-x 6 news news 4096 10 juil. 06:25 ..

Et articles est toujours vide.

> Peux-tu nous recopier le contenu d'init_traceback, traceback (tout du
> moins la fin, le fichier a l'air volumineux) et pyclean.log ?


Pour init_traceback :

Traceback (most recent call last):
File "filter_innd.py", line 229, in __init__
self.pyfilter = Filter()
File "filter_innd.py", line 525, in __init__
timedtrim=config.getint('emp', 'phn_timed_trim'))
File "filter_innd.py", line 1372, in __init__
raise ValueError('Threshold cannot exceed ceiling')
ValueError: Threshold cannot exceed ceiling
Traceback (most recent call last):
File "filter_innd.py", line 229, in __init__
self.pyfilter = Filter()
File "filter_innd.py", line 525, in __init__
timedtrim=config.getint('emp', 'phn_timed_trim'))
File "filter_innd.py", line 1372, in __init__
raise ValueError('Threshold cannot exceed ceiling')
ValueError: Threshold cannot exceed ceiling

J'ai corrigé cette erreur.
Il manque une doc équivalente à celle de Cleanfeed.


À la fin de traceback :

Traceback (most recent call last):
File "/etc/news/filter/filter_innd.py", line 324, in filter_art
return self.pyfilter.filter(art)
File "/etc/news/filter/filter_innd.py", line 565, in filter
post['from_email'] = self.addressParse(art['From'])
File "/etc/news/filter/filter_innd.py", line 1003, in addressParse
name, email = parseaddr(addr)
File "/usr/lib/python3.9/email/utils.py", line 212, in parseaddr
addrs = _AddressList(addr).addresslist
File "/usr/lib/python3.9/email/_parseaddr.py", line 509, in __init__
self.addresslist = self.getaddrlist()
File "/usr/lib/python3.9/email/_parseaddr.py", line 253, in getaddrlist
ad = self.getaddress()
File "/usr/lib/python3.9/email/_parseaddr.py", line 263, in getaddress
self.gotonext()
File "/usr/lib/python3.9/email/_parseaddr.py", line 236, in gotonext
if self.field[self.pos] in self.LWS + '\n\r':
TypeError: 'in <string>' requires string as left operand, not int


Et pyclean.log :
2022-07-09 09:10:11 INFO emp_body initialized. threshold=5, ceiling=70, maxentries=36000, timedtrim=3600
2022-07-09 11:20:51 INFO emp_body initialized. threshold=5, ceiling=70, maxentries=36000, timedtrim=3600

--
Stéphane 🔗<http://pasdenom.info/fortune/>
Le sang les avait joints, l'intérêt les sépare.
-+- Jean de La Fontaine (1621-1695),
Le Vieillard et ses Enfants (Fables IV.18) -+-

Julien ÉLIE

unread,
Jul 10, 2022, 4:33:01 AM7/10/22
to
Bonjour Stéphane,

> Aujourd'hui :
> # ls -altr /var/log/news/pyclean/
> total 32
> drwx------ 2 news news 4096 8 juil. 11:17 articles
> -rw-rw-r-- 1 news news 3942 8 juil. 21:58 close_traceback
> -rw-rw-r-- 1 news news 6741 8 juil. 21:58 traceback
> drwx------ 3 news news 4096 9 juil. 09:10 .
> -rw-r--r-- 1 news news 210 9 juil. 11:20 pyclean.log
> -rw-r--r-- 1 news news 720 9 juil. 11:20 init_traceback
> drwxrwxr-x 6 news news 4096 10 juil. 06:25 ..
>
> Et articles est toujours vide.

Tant que PyClean n'a filtré aucun article, ce répertoire demeurera vide.


> ValueError: Threshold cannot exceed ceiling
>
> J'ai corrigé cette erreur.

Une bonne nouvelle !

As-tu une raison particulière de ne pas conserver les valeurs par défaut
? (hormis des paths différents et retain pour garder plus de logs)
https://github.com/crooks/PyClean/blob/master/samples/pyclean.cfg.sample


> Il manque une doc équivalente à celle de Cleanfeed.

Disons que la doc est minimaliste, et incluse dans le fichier de
configuration...

# Each of the following EMP filters work in an identical manner. A
# Cryptographic hash is generated by concatenating various headers.
Each hash
# has a counter associated with it and that counter is incremented with each
# hit. When a counter reaches "threshold", futher matching messages will be
# rejected. Increments will not exceed the defined "ceiling". After each
# period (in seconds) of "timed_trim", the counter for each hash will be
# decremented by 1. If decremented to zero, the associated hash is deleted.
# If "maxentries" is reached at any time, a trim is triggered.

Cela ne dit certes pas explicitement que "Threshold cannot exceed
ceiling"; ça doit se deviner :-)


> À la fin de traceback :
>
> Traceback (most recent call last):
> File "/etc/news/filter/filter_innd.py", line 324, in filter_art
> return self.pyfilter.filter(art)
> File "/etc/news/filter/filter_innd.py", line 565, in filter
> post['from_email'] = self.addressParse(art['From'])
> File "/etc/news/filter/filter_innd.py", line 1003, in addressParse
> name, email = parseaddr(addr)
> File "/usr/lib/python3.9/email/utils.py", line 212, in parseaddr
> addrs = _AddressList(addr).addresslist
> File "/usr/lib/python3.9/email/_parseaddr.py", line 509, in __init__
> self.addresslist = self.getaddrlist()
> File "/usr/lib/python3.9/email/_parseaddr.py", line 253, in getaddrlist
> ad = self.getaddress()
> File "/usr/lib/python3.9/email/_parseaddr.py", line 263, in getaddress
> self.gotonext()
> File "/usr/lib/python3.9/email/_parseaddr.py", line 236, in gotonext
> if self.field[self.pos] in self.LWS + '\n\r':
> TypeError: 'in <string>' requires string as left operand, not int

Il semble que ce soit un bug de PyClean avec Python 3...
https://github.com/crooks/PyClean/issues/5

As-tu ajouté des exclusions dans "bad_from"?

yamo'

unread,
Jul 10, 2022, 5:30:21 AM7/10/22
to
Salut Julien,

Julien ÉLIE a tapoté le 10/07/2022 10:33:

> Tant que PyClean n'a filtré aucun article, ce répertoire demeurera vide.

OK!

> As-tu une raison particulière de ne pas conserver les valeurs par défaut
> ? (hormis des paths différents et retain pour garder plus de logs)
> https://github.com/crooks/PyClean/blob/master/samples/pyclean.cfg.sample

Il me semble que comme pour cleanfeed les réglages par défaut sont très
tolérants et calés pour le big8 avec un BI maximal de 20.

>
>> Il manque une doc équivalente à celle de Cleanfeed.
>
> Disons que la doc est minimaliste, et incluse dans le fichier de
> configuration...

Il faut que j'améliore alors mon anglais car cette non-doc me rebute un
peu :(

> Cela ne dit certes pas explicitement que "Threshold cannot exceed
> ceiling"; ça doit se deviner :-)

Je l'ai écrit dans mon fichier :P

> Il semble que ce soit un bug de PyClean avec Python 3...
> https://github.com/crooks/PyClean/issues/5

Ah mince!
Je n'ai pas trouvé ce bug chez debian...

Et inn2 sur Debian stable est compilé pour python3 ou python2?
Je ne trouve pas l'information.
<https://packages.debian.org/bullseye/inn2>

> As-tu ajouté des exclusions dans "bad_from"?

Oui, c'est au même format que cleanfeed?

Dans le doute, j'ai vidé les fichiers
dans pyclean/etc sauf pyclean/etc/local_hosts et etc/log_rules
...

Pas de changement...

$ ctlinnd python y
ctlinnd: Python filter not defined


--
Stéphane

Julien ÉLIE

unread,
Jul 10, 2022, 6:26:44 AM7/10/22
to
Bonjour Stéphane,

> Et inn2 sur Debian stable est compilé pour python3 ou python2?
> Je ne trouve pas l'information.
> <https://packages.debian.org/bullseye/inn2>

La libpython3.9 (ou supérieure) est marquée comme dépendance du paquet.


> Dans le doute, j'ai vidé les fichiers
> dans pyclean/etc sauf pyclean/etc/local_hosts et etc/log_rules
> ...

Et pyclean.cfg qui est aussi dans ce même répertoire normalement.


> Pas de changement...
>
> $ ctlinnd python y
> ctlinnd: Python filter not defined

Caramba!

--
Julien ÉLIE

« Oublie les injures, n'oublie jamais les bienfaits. »

yamo'

unread,
Jul 10, 2022, 6:50:40 AM7/10/22
to
Salut,
Julien ÉLIE a tapoté le 10/07/2022 12:26:
> Et pyclean.cfg qui est aussi dans ce même répertoire normalement.

Je ne l'ai pas. C'est gênant?

J'ai l'impression que c'est /etc/default/pyclean qui le remplace.


--
Stéphane

Julien ÉLIE

unread,
Jul 10, 2022, 7:22:33 AM7/10/22
to
Bonjour Stéphane,

>> Et pyclean.cfg qui est aussi dans ce même répertoire normalement.
>
> Je ne l'ai pas. C'est gênant?
>
> J'ai l'impression que c'est /etc/default/pyclean qui le remplace.

Ah oui, c'est vrai que c'est la recommandation du guide d'installation.
Alors oui, c'est bon qu'il soit dans /etc/default.

--
Julien ÉLIE

« J'oubliais qu'Assurancetourix a une nouvelle corde à sa harpe ! »
(Astérix)

yamo'

unread,
Jul 17, 2022, 2:23:34 PM7/17/22
to
Salut Julien,
Julien ÉLIE a tapoté le 10/07/2022 13:22:
>>> Et pyclean.cfg qui est aussi dans ce même répertoire normalement.
>>
>> Je ne l'ai pas. C'est gênant?
>>
>> J'ai l'impression que c'est /etc/default/pyclean qui le remplace.
>
> Ah oui, c'est vrai que c'est la recommandation du guide d'installation.
> Alors oui, c'est bon qu'il soit dans /etc/default.


Après avoir trouvé des traces de logs dans ~news/pyclean/log qui
dataient de début Juillet, j'ai repris espoir!

Pour avoir quelque chose qui se lance, j'ai du faire en tant que news :

$ cd /etc/news/filter
$ python -ic 'import INN, filter_innd'
** set_filter_hook for <filter_innd.InndFilter instance at 0xb62f3378>
-- syslog level: n message: pyclean successfully hooked into INN
>>>


Et là j'ai des logs qui s'écrivent dans pyclean.log (au bon endroit) :

2022-07-17 20:06:56 DEBUG /etc/news/filter/pyclean/lib/emp_body.db: Dump
file does not exist. Doing a clean initialzation.
2022-07-17 20:06:56 INFO emp_body initialized. threshold=5, ceiling=70,
maxentries=36000, timedtrim=3600


Et pourtant, j'ai toujours :

$ ctlinnd python y
ctlinnd: Python filter not defined


C'est grave docteur?

Et pourquoi INN2 n'arrive pas à lancer tout seul PyClean?

--
Stéphane

Julien ÉLIE

unread,
Jul 17, 2022, 5:22:25 PM7/17/22
to
Salut Stéphane,

> Pour avoir quelque chose qui se lance, j'ai du faire en tant que news :
>
> $ cd /etc/news/filter
> $ python -ic 'import INN, filter_innd'

Oui c'est la méthode de lancement à la main du filtre, hors INN.


> Et pourtant, j'ai toujours :
>
> $ ctlinnd python y
> ctlinnd: Python filter not defined
>
> C'est grave docteur?
>
> Et pourquoi INN2 n'arrive pas à lancer tout seul PyClean?

À tout hasard, il n'y a pas un .pyc à supprimer qui ne serait pas bon ?
J'espère aussi que ce n'est pas un bug similaire à celui que Marc a
récemment rencontré avec les filtres Perl sous Debian, où la librairie
Perl installée n'est pas la même que celle avec laquelle a été liée le
binaire INN.

Le paquet inn2 2.6.4-2 de Bullseye date du 16 février 2021... C'était
Python 3.9.1-4 à ce moment-là ; et Python 3.9.2-1 est arrivé le 28
février 2021...
J'avoue ne pas bien comprendre comment marchent les transitions et mises
à jour de packages de ce genre dans Debian vu que tous les paquets
dépendant d'une librairie ne sont ni recompilés ni redéployés lors d'une
mise à jour.

--
Julien ÉLIE

« Quelle folie, Ô Astérix, que de t'être venu fourrer dans la gueule de
la louve romaine. » (Astérix)

yamo'

unread,
Jul 19, 2022, 5:48:55 AM7/19/22
to
Salut Julien,

Julien ÉLIE a tapoté le 17/07/2022 23:22:
> À tout hasard, il n'y a pas un .pyc à supprimer qui ne serait pas bon ?

Je découvre ces .pyc ....
Aurais-tu une documentation à lire?

Il faudrait que je mette au Python...

En quoi un .pyc ne serait pas bon?
J'en ai 11853 sur mon raspberry...

Il serait trop vieux et ne correspondrait plus aux librairies actuelles?

> J'espère aussi que ce n'est pas un bug similaire à celui que Marc a
> récemment rencontré avec les filtres Perl sous Debian, où la librairie
> Perl installée n'est pas la même que celle avec laquelle a été liée le
> binaire INN.
>
> Le paquet inn2 2.6.4-2 de Bullseye date du 16 février 2021... C'était
> Python 3.9.1-4 à ce moment-là ; et Python 3.9.2-1 est arrivé le 28
> février 2021...
> J'avoue ne pas bien comprendre comment marchent les transitions et mises
> à jour de packages de ce genre dans Debian vu que tous les paquets
> dépendant d'une librairie ne sont ni recompilés ni redéployés lors d'une
> mise à jour.

Ça me dépasse...

--
Stéphane

Julien ÉLIE

unread,
Jul 30, 2022, 4:05:46 AM7/30/22
to
Salut Stéphane,

>> À tout hasard, il n'y a pas un .pyc à supprimer qui ne serait pas bon ?
>
> En quoi un .pyc ne serait pas bon?
> J'en ai 11853 sur mon raspberry...

Je pensais seulement à celui de PyClean :
<pathfilter>/__pycache__/filter_innd.cpython-39.pyc


> Il serait trop vieux et ne correspondrait plus aux librairies actuelles?

Ce pourrait être une explication possible.
Les fichiers .pyc correspondent au code Python pré-compilé qui sera
exécuté (pour des raisons de rapidité d'exécution, Python génère ce
fichier à la première lecture du .py).
Mais bon, je doute que ce soit réellement le problème ici...

De mon côté, PyClean fonctionne bien avec Python 3.9 si je n'active pas
le filtre bad_from (j'ai alors la même erreur que celle que tu as).

--
Julien ÉLIE

« – Quelle idée de nous atteler à des balistes ! C'est un travail de
Romains ça !
– Justement, de quoi te plains-tu ? » (Astérix)

Julien ÉLIE

unread,
Sep 3, 2022, 9:31:55 AM9/3/22
to
Salut Stéphane,

Je reprends un fil de discussion de juillet, et complète ma réponse.

> Ce pourrait être une explication possible.
> Les fichiers .pyc correspondent au code Python pré-compilé qui sera
> exécuté (pour des raisons de rapidité d'exécution, Python génère ce
> fichier à la première lecture du .py).
> Mais bon, je doute que ce soit réellement le problème ici...

Rien à voir avec les .pyc, désolé pour cette mauvaise orientation.


> De mon côté, PyClean fonctionne bien avec Python 3.9 si je n'active pas
> le filtre bad_from (j'ai alors la même erreur que celle que tu as).

Après m'être penché plus sérieusement sur les logs de mon PyClean et
surveillé son fonctionnement, je me suis rendu compte qu'il ne marchait
non plus pas sur mon serveur depuis quelque temps... (C'est Cleanfeed,
que j'utilise en parallèle, qui faisait donc l'intégralité du boulot de
filtrage.)

J'ai apporté quelques modifications à PyClean pour qu'il fonctionne avec
Python 3.x ; tu trouveras la version que j'utilise désormais sur mon
serveur ici :
https://github.com/crooks/PyClean/pull/8

Pour la télécharger : Files changed > View file (dans les ... à côté de
pyclean.py) > Raw (bouton à côté du début du script)

Je ne mets pas de lien direct car si jamais je corrige un bug ces
prochains jours dessus, ce ne serait plus la bonne version à prendre.

Et bien sûr, il ne faudra plus prendre ce pyclean.py dès que le PR#8 en
lien sera clos (car les modifications auront alors été intégrées dans le
pyclean.py officiel).

--
Julien ÉLIE

« – Le bureau des renseignements ?
– Sais pas. Adressez-vous aux renseignements, ils vous
renseigneront. » (Astérix)

yamo'

unread,
Sep 8, 2022, 11:49:50 PM9/8/22
to
Salut Julien,
Julien ÉLIE a écrit :

> Et bien sûr, il ne faudra plus prendre ce pyclean.py dès que le PR#8 en
> lien sera clos (car les modifications auront alors été intégrées dans le
> pyclean.py officiel).

Merci Julien, je vais regarder d'ici quelques jours.
J'ai aussi reçu le mail de la plate-forme.
Avec un patch proposé, le mainteneur pourra facilement mettre à jour le
code.

Par curiosité, est-ce que le code que tu proposes est aussi valide en
Python2?

--
Stéphane


Julien ÉLIE

unread,
Sep 9, 2022, 4:58:12 PM9/9/22
to
Bonsoir Stéphane,

> Avec un patch proposé, le mainteneur pourra facilement mettre à jour le
> code.

Espérons... Ce n'est qu'un seul clic à faire depuis l'interface web de
Github (et un peu plus complexe s'il gère le merge en ligne de commande).


> Par curiosité, est-ce que le code que tu proposes est aussi valide en
> Python2?

Je t'avoue ne pas avoir testé en Python 2. (Autant garder la version
actuelle pour ceux qui restent en Python 2.)
Vu les changements que j'ai faits, je pense qu'il est toujours valide en
Python 2 mais comme pour tout en informatique, je ne peux être
catégorique sans l'avoir essayé.
Je regarderai à l'occasion et mettrai à jour le patch s'il y a un souci.

--
Julien ÉLIE

« If I don't document something, it's usually either for a good reason,
or a bad reason. » (Larry Wall)

yamo'

unread,
Sep 10, 2022, 6:38:33 AM9/10/22
to
Salut,

Julien ÉLIE a tapoté le 03/09/2022 15:31:
> J'ai apporté quelques modifications à PyClean pour qu'il fonctionne avec
> Python 3.x ; tu trouveras la version que j'utilise désormais sur mon
> serveur ici :
> https://github.com/crooks/PyClean/pull/8
>
> Pour la télécharger : Files changed > View file (dans les ... à côté de
> pyclean.py) > Raw (bouton à côté du début du script)


Je n'ai pas réussit ou alors il y a un autre bug...

Sep 10 12:33:37 rasp innd: ctlinnd command o:filter.py:configuration PyClean
Sep 10 12:34:02 rasp innd: ctlinnd command o:filter.python:configuration
PyClean
Sep 10 12:34:02 rasp innd: failed to reimport external python module
Sep 10 12:34:02 rasp innd: failed to reimport external python module
Sep 10 12:34:02 rasp innd: cant reload python filter module
Sep 10 12:34:02 rasp innd: cant reload python filter module
Sep 10 12:34:02 rasp innd: SERVER Python filtering disabled

Franchement CLeanFeed c'est plus simple!

--
Stéphane

Julien ÉLIE

unread,
Sep 10, 2022, 7:02:38 AM9/10/22
to
Salut Stéphane,

>> J'ai apporté quelques modifications à PyClean pour qu'il fonctionne avec
>> Python 3.x
>
> Je n'ai pas réussit ou alors il y a un autre bug...
>
> Sep 10 12:34:02 rasp innd: failed to reimport external python module

Tu as bien recompilé INN avec une libpython3 ?

--
Julien ÉLIE

« J'aime les calculs faux car ils donnent des résultats plus justes. »
(Jean Arp)

yamo'

unread,
Sep 11, 2022, 4:07:08 AM9/11/22
to
Salut Julien,
Julien ÉLIE a écrit :

>>> J'ai apporté quelques modifications à PyClean pour qu'il fonctionne avec
>>> Python 3.x
>>
>> Je n'ai pas réussit ou alors il y a un autre bug...
>>
>> Sep 10 12:34:02 rasp innd: failed to reimport external python module

> Tu as bien recompilé INN avec une libpython3 ?

Compiler Pan ou flnews, je sais faire.
Mais INN2, c'est trop complexe pour moi :(
J'ai le paquet standard pour Debian (Raspbian) bullseye en armv7l...
--
Stéphane

Julien ÉLIE

unread,
Sep 11, 2022, 11:57:01 AM9/11/22
to
Salut Stéphane,

>> Tu as bien recompilé INN avec une libpython3 ?
>
> J'ai le paquet standard pour Debian (Raspbian) bullseye en armv7l...

Le paquet standard est compilé avec Python 3 (libpython3.9 est dans les
dépendances) donc ce n'est finalement pas le problème. Je ne sais pas
pourquoi PyClean ne se lance pas. N'y a-t-il pas une erreur dans
<pyclean>/log/traceback ?

Mais bon, ce n'est pas la peine de passer trop de temps dessus si
Cleanfeed te satisfait déjà. Pas besoin d'en changer.

--
Julien ÉLIE

« Ne fais pas à autrui le mal que tu ne voudrais pas qu'il te fît, ni le
bien que tu sais qu'il ne te ferait pas. » (Fernand Vanderem)

yamo'

unread,
Sep 11, 2022, 12:29:40 PM9/11/22
to
Salut Julien,
Julien ÉLIE a tapoté le 11/09/2022 17:57:
> Le paquet standard est compilé avec Python 3 (libpython3.9 est dans les
> dépendances) donc ce n'est finalement pas le problème. Je ne sais pas
> pourquoi PyClean ne se lance pas. N'y a-t-il pas une erreur dans
> <pyclean>/log/traceback ?

Il date du 8 juillet, je vais le renommer pour vérifier.
J'ai relancé, il n'y a rien de nouveau. (même pour inittraceback).

> Mais bon, ce n'est pas la peine de passer trop de temps dessus si
> Cleanfeed te satisfait déjà. Pas besoin d'en changer.

Oui, j'ai d'autres choses à voir :
Notamment comprendre pourquoi un Supersedes erroné est rejeté en perl
mais exécuté quand même.
Tester newsportal en php8.
Implémenter le proxy-nocem.

--
Stéphane

Julien ÉLIE

unread,
Sep 11, 2022, 3:53:44 PM9/11/22
to
Bonjour Stéphane,

>> Le paquet standard est compilé avec Python 3 (libpython3.9 est dans les
>> dépendances) donc ce n'est finalement pas le problème. Je ne sais pas
>> pourquoi PyClean ne se lance pas. N'y a-t-il pas une erreur dans
>> <pyclean>/log/traceback ?
>
> Il date du 8 juillet, je vais le renommer pour vérifier.
> J'ai relancé, il n'y a rien de nouveau. (même pour inittraceback).

Peut-être qu'il est en fonctionnement alors s'il n'y a pas d'erreur ?
A-t-il chargé ses fichiers de configuration ? (d'après pyclean.log)
C'est normal qu'il n'y ait rien dans init_traceback ; s'il y a quelque
chose, c'est qu'une erreur s'est produite.


>> Mais bon, ce n'est pas la peine de passer trop de temps dessus si
>> Cleanfeed te satisfait déjà. Pas besoin d'en changer.
>
> Oui, j'ai d'autres choses à voir :
> Notamment comprendre pourquoi un Supersedes erroné est rejeté en perl
> mais exécuté quand même.

D'après le commentaire et le code du filtre que je recopie ci-dessous,
le Supersedes n'est pas rejeté en Perl (cela aurait été le cas si le
return de la première ligne n'était pas commenté). Donc le Supersedes
est accepté et INN 2.6 (qui ne connaît pas Cancel-Lock) l'exécute.
Pour ne pas qu'il soit exécuté, il faut innflags: "-C" dans inn.conf.

sub local_filter_after_emp {
if (exists( $hdr{'Supersedes'} )) {
#return verify_cancel(\%hdr, $hdr{'Supersedes'}, 'Supersedes');
# verify_cancel is called, but not returned, so the
# posting is unconditionally accepted
# verify_cancel calls INN:cancel() if verification suceeds
verify_cancel(\%hdr, $hdr{'Supersedes'}, 'Supersedes');
}

return undef;
}


> Tester newsportal en php8.
> Implémenter le proxy-nocem.

Bonnes expérimentations :)

--
Julien ÉLIE

« Un incinéré ne peut pas se retourner dans sa tombe. »

Christophe PEREZ

unread,
Sep 11, 2022, 8:14:06 PM9/11/22
to
Le Sun, 11 Sep 2022 18:29:40 +0200, yamo' a écrit :

> Tester newsportal en php8.

Au sujet de newsportal, j'ai testé, et croyant avoir trouvé 2 anomalies,
j'ai posté sur le bug tracker (gitlab) que j'ai trouvé, mais j'ai été
surpris de le voir vide, et surtout de ne pas avoir eu de retour depuis (6
jours). Peut-être n'était-ce pas le bon endroit ?

yamo'

unread,
Sep 12, 2022, 5:37:24 AM9/12/22
to
Salut,
Christophe PEREZ a tapoté le 12/09/2022 02:11:
> Au sujet de newsportal, j'ai testé, et croyant avoir trouvé 2 anomalies,
> j'ai posté sur le bug tracker (gitlab) que j'ai trouvé, mais j'ai été
> surpris de le voir vide, et surtout de ne pas avoir eu de retour depuis (6
> jours). Peut-être n'était-ce pas le bon endroit ?

Suite à ton message, je viens de les découvrir (il me semble ne pas
avoir reçu de mail d'alerte) :
<https://gitlab.com/yamo-nntp/newsportal/-/issues>

Je vais regarder et répondre...

J'ai aussi trouvé des bugs sur la liste des groupes peut-être liés :
(par exemple, suite à une non réponse de mon serveur pour surcharge,
l'affichage des groupes sur mes différentes instances est, en ce moment,
cassé : il faudrait que je vérifie dans la documentation si c'est prévu,
la solution est simple, il faut supprimer un fichier).

--
Stéphane

Christophe PEREZ

unread,
Sep 12, 2022, 11:00:54 AM9/12/22
to
Le Mon, 12 Sep 2022 11:37:22 +0200,
yamo' <ya...@beurdin.invalid> a écrit :

> Suite à ton message, je viens de les découvrir (il me semble ne pas
> avoir reçu de mail d'alerte) :

Donc j'ai bien fait de t'alerter ici. Ça ne me semblait pas "normal".

> Je vais regarder et répondre...

Parfait. Mais pas d'urgence, à mon niveau en tous cas. L'important
étant que le message soit passé.
Par contre, si tu as besoin de complément d'infos ou de tests, n'hésite
pas.

Fin de mon HS.

yamo'

unread,
Sep 14, 2022, 3:40:59 AM9/14/22
to
Salut Christophe,

Christophe PEREZ a tapoté le 12/09/2022 16:50:
Newsportal bien qu'étant un lecteur de nouvelles est plutôt logiquement
destiné à un newsmestre ou webmestre donc c'est à demi HS...

Je t'ai répondu pour l'un j'ai fait la modification chez moi et ça
fonctionne mais pour l'autre, je ne peux pas tester, j'attends ton
retour pour faire la modification dans le code et vérifier si ça
fonctionne dans tous les cas...


--
Stéphane

yamo'

unread,
Sep 14, 2022, 3:49:36 AM9/14/22
to
Bonjour Julien,

Julien ÉLIE a tapoté le 11/09/2022 21:53:
> Bonjour Stéphane,
>
>>> Le paquet standard est compilé avec Python 3 (libpython3.9 est dans les
>>> dépendances) donc ce n'est finalement pas le problème. Je ne sais pas
>>> pourquoi PyClean ne se lance pas. N'y a-t-il pas une erreur dans
>>> <pyclean>/log/traceback ?
>>
>> Il date du 8 juillet, je vais le renommer pour vérifier.
>> J'ai relancé, il n'y a rien de nouveau. (même pour inittraceback).
>
> Peut-être qu'il est en fonctionnement alors s'il n'y a pas d'erreur ?
> A-t-il chargé ses fichiers de configuration ? (d'après pyclean.log)
> C'est normal qu'il n'y ait rien dans init_traceback ; s'il y a quelque
> chose, c'est qu'une erreur s'est produite.

Alors il est très peu actif et mes tests de bad_from n'ont pas été
concluants...

>
>
>>> Mais bon, ce n'est pas la peine de passer trop de temps dessus si
>>> Cleanfeed te satisfait déjà. Pas besoin d'en changer.
>>
>> Oui, j'ai d'autres choses à voir :
>> Notamment comprendre pourquoi un Supersedes erroné est rejeté en perl
>> mais exécuté quand même.
>
> D'après le commentaire et le code du filtre que je recopie ci-dessous,
> le Supersedes n'est pas rejeté en Perl (cela aurait été le cas si le
> return de la première ligne n'était pas commenté). Donc le Supersedes
> est accepté et INN 2.6 (qui ne connaît pas Cancel-Lock) l'exécute.
> Pour ne pas qu'il soit exécuté, il faut innflags: "-C" dans inn.conf.
>
> sub local_filter_after_emp {
> if (exists( $hdr{'Supersedes'} )) {
> #return verify_cancel(\%hdr, $hdr{'Supersedes'}, 'Supersedes');
> # verify_cancel is called, but not returned, so the
> # posting is unconditionally accepted
> # verify_cancel calls INN:cancel() if verification suceeds
> verify_cancel(\%hdr, $hdr{'Supersedes'}, 'Supersedes');
> }
>
> return undef;
> }
>

Et pourquoi le code n'est pas plutôt :

sub local_filter_after_emp {
if (exists( $hdr{'Supersedes'} )) {
#return verify_cancel(\%hdr, $hdr{'Supersedes'}, 'Supersedes');
# verify_cancel is called, but not returned, so the
# posting is unconditionally accepted
# verify_cancel calls INN:cancel() if verification suceeds
verify_cancel(\%hdr, $hdr{'Supersedes'}, 'Supersedes');
} else {
return undef;
};
};


>> Tester newsportal en php8.

testé rapidement sur ubuntu 22.04 ça fonctionne.

>> Implémenter le proxy-nocem.
>
> Bonnes expérimentations :)

Je suis en train de faire une vm avec un inn 2.6.4 minimal (juste fr et
le big8, newsportal et la passerelle vers nemo).

--
Stéphane

Christophe PEREZ

unread,
Sep 14, 2022, 10:57:59 AM9/14/22
to
Le Wed, 14 Sep 2022 09:40:58 +0200, yamo' a écrit :

> Newsportal bien qu'étant un lecteur de nouvelles est plutôt logiquement
> destiné à un newsmestre ou webmestre donc c'est à demi HS...

Je parlais de HS (avant que tu ne changes le sujet, avec raison), pas de
Hors Charte.

> Je t'ai répondu pour l'un j'ai fait la modification chez moi et ça
> fonctionne mais pour l'autre, je ne peux pas tester, j'attends ton
> retour pour faire la modification dans le code et vérifier si ça
> fonctionne dans tous les cas...

J'ai vu, et répondu, mais je n'avais pas compris que tu attendais un retour
en fait. Il me semblait que tu m'informais du correctif à appliquer.

Par contre, si tu préfères, on peut en discuter ici. C'est comme tu veux.
Perso, ça m'est égal.

Julien ÉLIE

unread,
Sep 14, 2022, 1:14:14 PM9/14/22
to
Salut Stéphane,

>> Peut-être qu'il est en fonctionnement alors s'il n'y a pas d'erreur ?
>> A-t-il chargé ses fichiers de configuration ? (d'après pyclean.log)
>> C'est normal qu'il n'y ait rien dans init_traceback ; s'il y a quelque
>> chose, c'est qu'une erreur s'est produite.
>
> Alors il est très peu actif et mes tests de bad_from n'ont pas été
> concluants...

Ce n'est pas normal. Mon test de bad_from fonctionne bien avec :

% cat bad_from
/iulius/ 20300101


Et pyclean.log :

2022-09-03 14:05:15 INFO bad_from: Recompiling Regular Expression.
2022-09-03 14:05:15 INFO Compiled 1 rules from bad_from


C'est l'un des points que j'apprécie le plus avec PyClean : le niveau de
log et la traçabilité des actions qu'il réalise.

2022-09-14 18:17:15 INFO emp_fsl: Trim complete. was=72, now=3, high=1,
decrement=1
2022-09-14 18:17:15 INFO emp_body: Trim complete. was=76, now=1, high=1,
decrement=1
2022-09-14 18:22:13 INFO Control: cancel
<UcnUK.361752$6Il8....@fx14.iad>,
mid=<cancel.b00d.UcnUK.361752$6Il8....@fx14.iad>



>> D'après le commentaire et le code du filtre que je recopie ci-dessous,
>> le Supersedes n'est pas rejeté en Perl (cela aurait été le cas si le
>> return de la première ligne n'était pas commenté). Donc le Supersedes
>> est accepté et INN 2.6 (qui ne connaît pas Cancel-Lock) l'exécute.
>> Pour ne pas qu'il soit exécuté, il faut innflags: "-C" dans inn.conf.
>>
>> sub local_filter_after_emp {
>> if (exists( $hdr{'Supersedes'} )) {
>> #return verify_cancel(\%hdr, $hdr{'Supersedes'}, 'Supersedes');
>> # verify_cancel is called, but not returned, so the
>> # posting is unconditionally accepted
>> # verify_cancel calls INN:cancel() if verification suceeds
>> verify_cancel(\%hdr, $hdr{'Supersedes'}, 'Supersedes');
>> }
>>
>> return undef;
>> }
>>
>
> Et pourquoi le code n'est pas plutôt :
>
> sub local_filter_after_emp {
> if (exists( $hdr{'Supersedes'} )) {
> #return verify_cancel(\%hdr, $hdr{'Supersedes'}, 'Supersedes');
> # verify_cancel is called, but not returned, so the
> # posting is unconditionally accepted
> # verify_cancel calls INN:cancel() if verification suceeds
> verify_cancel(\%hdr, $hdr{'Supersedes'}, 'Supersedes');
> } else {
> return undef;
> };
> };

Vu qu'il y a un Supersedes dans l'article, c'est la première branche du
if qui s'exécute. verify_cancel est appelé, puis il n'y aura aucun
retour de la fonction, donc pas de rejet. Pour que le Supersedes soit
rejeté, c'est la première ligne commentée (return verify_cancel...)
qu'il faut.

--
Julien ÉLIE

« Passion is inversely proportional to the amount of real information
available. » (Benford's law)

yamo'

unread,
Sep 14, 2022, 2:18:35 PM9/14/22
to
Salut Julien,
Julien ÉLIE a tapoté le 14/09/2022 19:14:

> 2022-09-03 14:05:15 INFO bad_from: Recompiling Regular Expression.
> 2022-09-03 14:05:15 INFO Compiled 1 rules from bad_from

Je n'ai que ça. Et des messages comme quoi INN2 n'est pas content de
voir pyCLean!

> C'est l'un des points que j'apprécie le plus avec PyClean : le niveau de
> log et la traçabilité des actions qu'il réalise.

Un jour j'y arriverais ;)

> Vu qu'il y a un Supersedes dans l'article, c'est la première branche du
> if qui s'exécute. verify_cancel est appelé, puis il n'y aura aucun
> retour de la fonction, donc pas de rejet. Pour que le Supersedes soit
> rejeté, c'est la première ligne commentée (return verify_cancel...)
> qu'il faut.

En effet, ça fonctionne :
<https://news2web.pasdenom.info/article.php?id=35496&group=fr.test>

Par contre, c'est peut-être violent de jeter le Supersedes, dans l'idéal
il faudrait pas juste afficher le post sans interpréter le Supersedes
fautif?



--
Stéphane

Julien ÉLIE

unread,
Sep 14, 2022, 2:41:09 PM9/14/22
to
Salut Stéphane,

>> Vu qu'il y a un Supersedes dans l'article, c'est la première branche du
>> if qui s'exécute. verify_cancel est appelé, puis il n'y aura aucun
>> retour de la fonction, donc pas de rejet. Pour que le Supersedes soit
>> rejeté, c'est la première ligne commentée (return verify_cancel...)
>> qu'il faut.
>
> En effet, ça fonctionne :
> <https://news2web.pasdenom.info/article.php?id=35496&group=fr.test>
>
> Par contre, c'est peut-être violent de jeter le Supersedes, dans l'idéal
> il faudrait pas juste afficher le post sans interpréter le Supersedes
> fautif?

As-tu essayé la version précédente, sans return, avec
innflags: "-C"
dans inn.conf ?

--
Julien ÉLIE

« Avec les machines NEDAP, le vote est TELLEMENT secret que même les
électeurs n'ont aucune garantie que leur vote soit réellement crédité
au compte de voix du candidat de son choix ! »

yamo'

unread,
Sep 14, 2022, 2:51:16 PM9/14/22
to
Salut,
Julien ÉLIE a tapoté le 14/09/2022 20:41:
> As-tu essayé la version précédente, sans return, avec
> innflags: "-C"
> dans inn.conf ?

Là c'est l'autre extrême, plus aucun cancel ni supersedes n'étaient
exécutés.

Je préfère que le message fautif soit jeté, d'ailleurs il n'aurait pas
logiquement du partir de dodin qui respecte les CK.

Le problème c'est un Supersedes dans une doc qui a expiré trop tôt, la
doc ne sera jamais postée...

En bidouillant pour poster le doc de DV avant que ma fibre ne revienne,
j'avais eu le bug chez alphanet.

--
Stéphane

Olivier Miakinen

unread,
Sep 15, 2022, 2:27:09 AM9/15/22
to
Bonjour,

Je ne suivais pas cette discussion, mais je suis tombé par hasard sur cet
article.

Le 14/09/2022 20:51, yamo' a écrit :
>
> Le problème c'est un Supersedes dans une doc qui a expiré trop tôt, la
> doc ne sera jamais postée...
>
> En bidouillant pour poster le doc de DV avant que ma fibre ne revienne,
> j'avais eu le bug chez alphanet.

J'ai eu le problème aussi, avec la FAQ de fuad qui n'a pas été postée un mois,
sans doute parce que la précédente avait déjà expiré. Bien évidemment celle
du mois suivant ne pouvait pas être postée non plus avant que je retire le
Supersedes.

Il me semble aussi que ce soit un bug de rejeter un article à cause du
Supersedes.

--
Olivier Miakinen

Olivier Miakinen

unread,
Sep 15, 2022, 2:33:13 AM9/15/22
to
[Supersedes à cause d'une coquille dans le titre]

Bonjour,

Je ne suivais pas cette discussion, mais je suis tombé par hasard sur cet
article.

Le 14/09/2022 20:51, yamo' a écrit :
>
> Le problème c'est un Supersedes dans une doc qui a expiré trop tôt, la
> doc ne sera jamais postée...
>
> En bidouillant pour poster le doc de DV avant que ma fibre ne revienne,
> j'avais eu le bug chez alphanet.

Marc SCHAEFER

unread,
Sep 15, 2022, 3:33:36 AM9/15/22
to
Olivier Miakinen <om+...@miakinen.net> wrote:
> Il me semble aussi que ce soit un bug de rejeter un article à cause du
> Supersedes.

C'est très compliqué de faire cela correctement, voire impossible, dans
le contexte des Cancel-Lock.

Si on ne rejette pas un Supersedes: ou Control: cancel qui fait
référence à un article localement non disponible, alors on va accepter
un tel Supersedes: ou Control: cancel *sans pouvoir vérifier le
Cancel-Lock, voire même son existence*.

Si l'article légitime est reçu ensuite (USENET == inondation), il sera
alors rejeté, même s'il porte un Cancel-Lock qui ne correspond pas à la
Cancel-Key du Supersedes: ou Control: cancel.

Il y a donc
- un effet d'inondation (peu probable, mais c'est déjà arrivé)
- d'autres possibilités d'abus graves que je ne détaillerai pas ici,
pour ne pas donner de mauvaises idées et dont les work-arounds
existent mais sont complexe en l'état (j'en parle volontiers
en e-mail): on parle ici de la censure complète des articles
émis par un serveur.

Avec la version actuelle d'INN, il ne me semble pas possible d'accepter
un article qui Supersedes: un article non disponible sans créer ce bug
(il n'y a pas de INN::accept_article_but_don_t_do_the_supersedes, sauf à
passer en mode -C et à tout faire les cas normaux à la main ...)

yamo'

unread,
Sep 15, 2022, 9:07:08 AM9/15/22
to
Salut Christophe,
Christophe PEREZ a écrit :

> J'ai vu, et répondu, mais je n'avais pas compris que tu attendais un retour
> en fait. Il me semblait que tu m'informais du correctif à appliquer.

> Par contre, si tu préfères, on peut en discuter ici. C'est comme tu veux.
> Perso, ça m'est égal.

Comme tu veux, je lis plus ici que là bas.

J'ai été occupé par d'autres choses.
Je regarderai ça à tête reposée la semaine prochaine.

--
Stéphane


yamo'

unread,
Sep 15, 2022, 12:15:57 PM9/15/22
to
Salut,
Marc SCHAEFER a tapoté le 15/09/2022 09:33:
> C'est très compliqué de faire cela correctement, voire impossible, dans
> le contexte des Cancel-Lock.

Oui, d'après les réponses de Julien, ça me semble le cas...

Vivement un inn 2.7 packagé sur Debian...
--
Stéphane

Olivier Miakinen

unread,
Sep 16, 2022, 4:29:21 AM9/16/22
to
Le 15/09/2022 09:33, Marc SCHAEFER a écrit :
> Olivier Miakinen <om+...@miakinen.net> wrote:
>> Il me semble aussi que ce soit un bug de rejeter un article à cause du
>> Supersedes.
>
> C'est très compliqué de faire cela correctement, voire impossible, dans
> le contexte des Cancel-Lock.
>
> Si on ne rejette pas un Supersedes: ou Control: cancel qui fait
> référence à un article localement non disponible, alors on va accepter
> un tel Supersedes: ou Control: cancel *sans pouvoir vérifier le
> Cancel-Lock, voire même son existence*.
>
> Si l'article légitime est reçu ensuite (USENET == inondation), il sera
> alors rejeté, même s'il porte un Cancel-Lock qui ne correspond pas à la
> Cancel-Key du Supersedes: ou Control: cancel.

D'accord. Cela peut donc expliquer le rejet de la FAQ de septembre, lorsque
l'article contenait un Supersedes vers le MID qui aurait dû être celui de la
FAQ d'août, finalement non publiée.

En revanche je ne suis pas sûr que cela explique la non-publication de la FAQ
d'août. Est-ce qu'un Supersedes est autorisé sur un article qui a été connu
d'Alphanet mais qui a expiré ? Si c'est autorisé, alors la FAQ du 1er août ne
devrait pas avoir été rejetée à cause de l'expiration de celle de juillet, et
il a dû y avoir une autre raison. Peut-être que le serveur était arrêté le 1er
août à 7 h 30, au moment de la tentative de publication ?


--
Olivier Miakinen

Marc SCHAEFER

unread,
Sep 16, 2022, 5:31:02 AM9/16/22
to
Olivier Miakinen <om+...@miakinen.net> wrote:
> d'août. Est-ce qu'un Supersedes est autorisé sur un article qui a été connu
> d'Alphanet mais qui a expiré ?

Non, techniquement, le script qui vérifie le Cancel-Lock doit pouvoir
accéder à l'article à remplacer. S'il est déjà expiré, alors cela ne
marchera pas non plus.

> il a dû y avoir une autre raison. Peut-être que le serveur était arrêté le 1er
> août à 7 h 30, au moment de la tentative de publication ?

Il ne me semble pas, mais on ne peut pas exclure un problème réseau ou
autre.

En l'état et sans ouvrir la porte ni à des abus, ni à un code bien plus
complexe, le plus sensé semblerait de plutôt poster sans Supersedes:
mais avec un expire? En particulier quand l'intervalle de postage (30
jours) ressemble beaucoup à la durée de conservation sur mon serveur?
Je pense d'ailleurs l'augmenter un peu pour éviter cet effet.

Olivier Miakinen

unread,
Sep 16, 2022, 6:28:34 AM9/16/22
to
Le 16/09/2022 11:31, Marc SCHAEFER a écrit :
> Olivier Miakinen <om+...@miakinen.net> wrote:
>> d'août. Est-ce qu'un Supersedes est autorisé sur un article qui a été connu
>> d'Alphanet mais qui a expiré ?
>
> Non, techniquement, le script qui vérifie le Cancel-Lock doit pouvoir
> accéder à l'article à remplacer. S'il est déjà expiré, alors cela ne
> marchera pas non plus.

D'accord. J'ai fait le test depuis usenet-fr.net avec le Supersedes d'un
très vieil article. L'article a été publié sur au moins quatre serveurs
différents, mais pas sur alphanet.ch.

>> il a dû y avoir une autre raison. Peut-être que le serveur était arrêté le 1er
>> août à 7 h 30, au moment de la tentative de publication ?
>
> Il ne me semble pas, mais on ne peut pas exclure un problème réseau ou
> autre.

Peut-être même sur ma propre machine.

> En l'état et sans ouvrir la porte ni à des abus, ni à un code bien plus
> complexe, le plus sensé semblerait de plutôt poster sans Supersedes:
> mais avec un expire? En particulier quand l'intervalle de postage (30
> jours) ressemble beaucoup à la durée de conservation sur mon serveur?

J'ai déjà un Expire de 31 jours plus une heure, car il y a des mois de
31 jours et tant qu'on a une alternance entre l'heure d'hiver et l'heure
d'été il peut y avoir un décalage d'une heure. Je n'ai pas cherché à
savoir si le « + 1 heure » pouvait ou non s'ajouter aux 31 jours.

> Je pense d'ailleurs l'augmenter un peu pour éviter cet effet.

31 jours plus deux heures ? ;-)

Bon, pour le moment j'ai remis le Supersedes dans le code d'envoi de la
FAQ puisque je devrais pouvoir le surveiller le 1er octobre − et d'ailleurs
il n'y aura eu que 30 jours moins plusieurs heures.


D'ailleurs j'ai une autre question : si tu reçois un article que tu rejettes
pour cause de MID de Supersedes inconnu, est-ce que tu stockes le MID de cet
article rejeté ? Parce que sinon, je pourrais essayer d'abord avec Supersedes,
puis s'il est rejeté réessayer avec le même Message-ID mais sans Supersedes.


--
Olivier Miakinen

Marc SCHAEFER

unread,
Sep 16, 2022, 8:40:27 AM9/16/22
to
Olivier Miakinen <om+...@miakinen.net> wrote:
>> Je pense d'ailleurs l'augmenter un peu pour éviter cet effet.
>
> 31 jours plus deux heures ? ;-)

90 jours :)

> D'ailleurs j'ai une autre question : si tu reçois un article que tu rejettes
> pour cause de MID de Supersedes inconnu, est-ce que tu stockes le MID de cet
> article rejeté ? Parce que sinon, je pourrais essayer d'abord avec Supersedes,
> puis s'il est rejeté réessayer avec le męme Message-ID mais sans Supersedes.

Il me semble qu'un article rejeté est stocké dans l'historique, oui.

Olivier Miakinen

unread,
Sep 16, 2022, 9:01:40 AM9/16/22
to
Le 16/09/2022 14:40, Marc SCHAEFER a écrit :
> Olivier Miakinen <om+...@miakinen.net> wrote:
>>> Je pense d'ailleurs l'augmenter un peu pour éviter cet effet.
>>
>> 31 jours plus deux heures ? ;-)
>
> 90 jours :)

Ok.

>> D'ailleurs j'ai une autre question : si tu reçois un article que tu rejettes
>> pour cause de MID de Supersedes inconnu, est-ce que tu stockes le MID de cet
>> article rejeté ? Parce que sinon, je pourrais essayer d'abord avec Supersedes,
>> puis s'il est rejeté réessayer avec le même Message-ID mais sans Supersedes.
>
> Il me semble qu'un article rejeté est stocké dans l'historique, oui.

C'est bien ce qu'il me semble après tests. Bon, donc c'était une mauvaise idée.

--
Olivier Miakinen

yamo'

unread,
Sep 16, 2022, 10:45:44 AM9/16/22
to
Salut,
Marc SCHAEFER a écrit :

> Il ne me semble pas, mais on ne peut pas exclure un problème réseau ou
> autre.

> En l'état et sans ouvrir la porte ni à des abus, ni à un code bien plus
> complexe, le plus sensé semblerait de plutôt poster sans Supersedes:
> mais avec un expire? En particulier quand l'intervalle de postage (30
> jours) ressemble beaucoup à la durée de conservation sur mon serveur?
> Je pense d'ailleurs l'augmenter un peu pour éviter cet effet.

Tu peux peut-être forcer l'expire à 35 jours ou même deux mois, ça
limiterait ce genre de cas.

Le problème d'Expires c'est qu'il n'est souvent pas respecté, cnfs par
exemple...

--
Stéphane

yamo'

unread,
Sep 16, 2022, 10:48:18 AM9/16/22
to
Salut,
Marc SCHAEFER a écrit :

> Il me semble qu'un article rejeté est stocké dans l'historique, oui.

Par défaut 11 jours sur INN2.

--
Stéphane

Marc SCHAEFER

unread,
Sep 16, 2022, 11:25:02 AM9/16/22
to
yamo' <us...@tld.invalid> wrote:
>> Il me semble qu'un article rejeté est stocké dans l'historique, oui.
>
> Par défaut 11 jours sur INN2.

Tiens, je me rappelle une discussion à ce sujet.

Voici ma config:

schaefer@shakotay:~$ sed '/^#/d;/^$/d' < /etc/news/expire.ctl
/remember/:91
*:A:1:91:never

schaefer@shakotay:~$ grep artcutoff /etc/news/inn.conf
artcutoff: 90

Julien ÉLIE

unread,
Sep 16, 2022, 11:49:53 AM9/16/22
to
Salut Stéphane,

> Le problème d'Expires c'est qu'il n'est souvent pas respecté, cnfs par
> exemple...

Si tu utilises "expireover -N", l'article expire bien (tes lecteurs n'y
auront plus accès, même si physiquement l'article est toujours présent
dans le buffer cyclique CNFS).
Il faut ajouter expireoverflags='-N' en argument de news.daily dans la
crontab.

--
Julien ÉLIE

« Traversez la rivière en foule, le crocodile ne vous mangera pas. »
(proverbe malgache)

Marc SCHAEFER

unread,
Sep 16, 2022, 12:11:57 PM9/16/22
to
Julien ÉLIE <iul...@nom-de-mon-site.com.invalid> wrote:
> Si tu utilises "expireover -N", l'article expire bien (tes lecteurs n'y
> auront plus accès, même si physiquement l'article est toujours présent
> dans le buffer cyclique CNFS).
> Il faut ajouter expireoverflags='-N' en argument de news.daily dans la
> crontab.

J'utilise toujours les fichiers plat dans les répertoires (c'est
pratique pour mes scripts qui scannent), donc je suppose que je n'ai pas
besoin de ça?

/etc/cron.d/inn2:15 4 * * * news test -x /usr/lib/news/bin/news.daily && news.daily expireover lowmark delayrm

yamo'

unread,
Sep 16, 2022, 2:20:31 PM9/16/22
to
Salut,
Olivier Miakinen a tapoté le 16/09/2022 12:28:
> D'accord. J'ai fait le test depuis usenet-fr.net avec le Supersedes d'un
> très vieil article. L'article a été publié sur au moins quatre serveurs
> différents, mais pas sur alphanet.ch.

Quel Message-ID ?

--
Stéphane

Olivier Miakinen

unread,
Sep 16, 2022, 4:38:49 PM9/16/22
to
Le 16/09/2022 20:20, yamo' a écrit :
>
>> D'accord. J'ai fait le test depuis usenet-fr.net avec le Supersedes d'un
>> très vieil article. L'article a été publié sur au moins quatre serveurs
>> différents, mais pas sur alphanet.ch.
>
> Quel Message-ID ?

<news:tg1e86$2j87$1...@cabale.usenet-fr.net>


Path: usenet-fr.net!.POSTED!not-for-mail
From: Olivier Miakinen <om+...@miakinen.net>
Newsgroups: fr.test
Subject: [ignore] Test de Supersedes d'un article vieux de plus d'un an
Supersedes: <faq-cancel-202104$sL$5jhmQOJT1X8...@miakinen.net>
Message-ID: <tg1e86$2j87$1...@cabale.usenet-fr.net>


--
Olivier Miakinen

yamo'

unread,
Sep 17, 2022, 5:10:04 AM9/17/22
to
Salut,

Olivier Miakinen a tapoté le 16/09/2022 22:38:
> Le 16/09/2022 20:20, yamo' a écrit :
>>
>>> D'accord. J'ai fait le test depuis usenet-fr.net avec le Supersedes d'un
>>> très vieil article. L'article a été publié sur au moins quatre serveurs
>>> différents, mais pas sur alphanet.ch.
>>
>> Quel Message-ID ?
>
> <news:tg1e86$2j87$1...@cabale.usenet-fr.net>

L'article n'existe pas sur pasdenom.info.

En effet :

Sep 16 11:05:10.722 - feed.usenet-fr.net
<tg1e86$2j87$1...@cabale.usenet-fr.net> 439 Supersedes of non-existing ID
<faq-cancel-202104$sL$5jhmQOJT1X8...@miakinen.net>



>
>
> Path: usenet-fr.net!.POSTED!not-for-mail
> From: Olivier Miakinen <om+...@miakinen.net>
> Newsgroups: fr.test
> Subject: [ignore] Test de Supersedes d'un article vieux de plus d'un an
> Supersedes: <faq-cancel-202104$sL$5jhmQOJT1X8...@miakinen.net>
> Message-ID: <tg1e86$2j87$1...@cabale.usenet-fr.net>
>
>



Il a bien été diffusé :
<http://al.howardknight.net/?STYPE=msgid&MSGI=%3Ctg1e86$2j87$1...@cabale.usenet-fr.net%3E>


--
Stéphane

Julien ÉLIE

unread,
Sep 17, 2022, 6:38:50 AM9/17/22
to
Bonjour Marc,

>> Si tu utilises "expireover -N", l'article expire bien (tes lecteurs n'y
>> auront plus accès, même si physiquement l'article est toujours présent
>> dans le buffer cyclique CNFS).
>> Il faut ajouter expireoverflags='-N' en argument de news.daily dans la
>> crontab.
>
> J'utilise toujours les fichiers plat dans les répertoires (c'est
> pratique pour mes scripts qui scannent), donc je suppose que je n'ai pas
> besoin de ça?

L'option "-N" n'aura effectivement aucun effet sur le tradspool, le
timehash (aussi par fichiers plats individuels) et le timecaf (fichiers
plats contenant plusieurs articles, mais sans rotation cyclique).

--
Julien ÉLIE

« Même avec Dieu, il ne faut pas tenter le Diable. » (Raymond Devos)

yamo'

unread,
Sep 18, 2022, 6:38:08 AM9/18/22
to
Salut Julien,
Julien ÉLIE a écrit :
>> Le problème d'Expires c'est qu'il n'est souvent pas respecté, cnfs par
>> exemple...

> Si tu utilises "expireover -N", l'article expire bien (tes lecteurs n'y
> auront plus accès, même si physiquement l'article est toujours présent
> dans le buffer cyclique CNFS).
> Il faut ajouter expireoverflags='-N' en argument de news.daily dans la
> crontab.

Ça fonctionne très bien!
J'ai enfin la FAQ à propos de free.* en un seul exemplaire!

--
Stéphane

yamo'

unread,
Sep 22, 2022, 3:42:10 AM9/22/22
to
Salut,
yamo' a tapoté le 15/09/2022 15:07:
> Christophe PEREZ a écrit :

>> J'ai vu, et répondu, mais je n'avais pas compris que tu attendais un retour
>> en fait. Il me semblait que tu m'informais du correctif à appliquer.

C'était dans mes spams, j'utilise un serveur de mail exigeant qui classe
pas mal de mails en temps que spam!

>
>> Par contre, si tu préfères, on peut en discuter ici. C'est comme tu veux.
>> Perso, ça m'est égal.
>
> Comme tu veux, je lis plus ici que là bas.
>
> J'ai été occupé par d'autres choses.
> Je regarderai ça à tête reposée la semaine prochaine.
>

Bon, il y en a un où je n'ai pas testé la modification (newsportal
installé comme un "dossier" du site principal).

Pour les groupes actifs, j'ai désactivé la fonctionnalité qui ne
fonctionne pas toujours bien (je n'ai pas trouvé le bug)...

<https://gitlab.com/yamo-nntp/newsportal/-/releases/0.52a7>

--
Stéphane

Christophe PEREZ

unread,
Sep 22, 2022, 11:11:53 AM9/22/22
to
Le Thu, 22 Sep 2022 09:42:09 +0200, yamo' a écrit :

> Bon, il y en a un où je n'ai pas testé la modification (newsportal
> installé comme un "dossier" du site principal).
>
> Pour les groupes actifs, j'ai désactivé la fonctionnalité qui ne
> fonctionne pas toujours bien (je n'ai pas trouvé le bug)...

Je vais regarder ça.

> <https://gitlab.com/yamo-nntp/newsportal/-/releases/0.52a7>

Dis, ne serait-il pas judicieux de faire un petit "truc" dans newsportal
lui même pour alerter l'admin dans le cas d'une nouvelle version dispo ?

yamo'

unread,
Sep 23, 2022, 12:25:48 AM9/23/22
to
Salut,
Christophe PEREZ a écrit :

> Dis, ne serait-il pas judicieux de faire un petit "truc" dans newsportal
> lui même pour alerter l'admin dans le cas d'une nouvelle version dispo ?

Je n'y avais pas pensé.
Je vais y réfléchir.

Bonne journée
--
Stéphane



Christophe PEREZ

unread,
Sep 23, 2022, 4:40:25 PM9/23/22
to
Le Thu, 22 Sep 2022 15:01:16 -0000 (UTC), Christophe PEREZ a écrit :

>> Bon, il y en a un où je n'ai pas testé la modification (newsportal
>> installé comme un "dossier" du site principal).

Bon, et bien ça fonctionne, forcément, puisqu'il n'y a plus de lien "home"
et que c'est lui fait ne fonctionnait pas bien.

>> Pour les groupes actifs, j'ai désactivé la fonctionnalité qui ne
>> fonctionne pas toujours bien (je n'ai pas trouvé le bug)...

Je ne sais pas si c'est en rapport, mais maintenant, j'ai à nouveau la
possibilité d'explorer FCOU. Mais je n'y ai que 2 pages, pour 362 posts
annoncés dans la liste des groupes.
Pour FCOLC c'est pire, une seule page pour 5244 posts.
Mais bon, peut-être que pour tout ça c'est mon INN qui est en cause aussi.

Julien ÉLIE

unread,
Sep 23, 2022, 5:31:50 PM9/23/22
to
Bonsoir Christophe,

> Je ne sais pas si c'est en rapport, mais maintenant, j'ai à nouveau la
> possibilité d'explorer FCOU. Mais je n'y ai que 2 pages, pour 362 posts
> annoncés dans la liste des groupes.
> Pour FCOLC c'est pire, une seule page pour 5244 posts.
> Mais bon, peut-être que pour tout ça c'est mon INN qui est en cause aussi.

De mémoire, pour cet affichage du nombre d'articles, Newsportal se base
sur la réponse du serveur à la commande GROUP, qui retourne un nombre
estimatif d'articles. Ce n'est pas le nombre exact (en particulier les
annulations ne décrémentent pas en temps réel le décompte).
Fais-tu tourner news.daily et l'expiration sur ton serveur INN ? Ceci
réactualise les nombres. Un écart de 5244 messages me paraît sinon
beaucoup...

--
Julien ÉLIE

« N'as-tu jamais fait ces rêves, Neo, qui ont l'air plus vrais que la
réalité ? Si tu étais incapable de sortir de l'un de ces rêves,
comment ferais-tu la différence entre le monde du rêve et le monde
réel ? » (Morpheus, _Matrix_)

Christophe PEREZ

unread,
Sep 24, 2022, 1:28:36 AM9/24/22
to
Le Fri, 23 Sep 2022 23:31:49 +0200, Julien ÉLIE a écrit :

> De mémoire, pour cet affichage du nombre d'articles, Newsportal se base
> sur la réponse du serveur à la commande GROUP, qui retourne un nombre
> estimatif d'articles.

Ok.

> Ce n'est pas le nombre exact (en particulier les annulations ne
> décrémentent pas en temps réel le décompte).

Ok, mais entre 1 page et 5000 articles, l'écart est énorme.

> Fais-tu tourner news.daily et l'expiration sur ton serveur INN ?

Oui.
# cat /etc/cron.daily/inn-daily
#!/bin/bash
su - news -c "/usr/lib64/news/bin/news.daily delayrm"


> Ceci réactualise les nombres. Un écart de 5244 messages me paraît sinon
> beaucoup...

Il me semble aussi :D

Julien ÉLIE

unread,
Nov 17, 2022, 5:58:18 PM11/17/22
to
Salut Stéphane,
> Vivement un inn 2.7 packagé sur Debian...

Une bonne nouvelle : le packager Debian est en train de travailler
dessus. Une première version ne saurait tarder, puis une dizaine de
jours avant de passer en testing.
Je l'ai motivé avant le soft freeze de bookworm qui arrive en février...

--
Julien ÉLIE

« – Il l'aura voulu.
– Tu crois vraiment ? » (Astérix)

yamo'

unread,
Nov 18, 2022, 4:34:22 AM11/18/22
to
Salut Julien,
Julien ÉLIE a tapoté le 17/11/2022 23:58:
>> Vivement un inn 2.7 packagé sur Debian...
>
> Une bonne nouvelle : le packager Debian est en train de travailler
> dessus. Une première version ne saurait tarder, puis une dizaine de
> jours avant de passer en testing.
> Je l'ai motivé avant le soft freeze de bookworm qui arrive en février...
>

Ah super, donc peut-être inn 2.7 en stable en 2023!

--
Stéphane
0 new messages