News

De WikiBR
Révision datée du 25 juin 2005 à 14:21 par Fruneau (discussion | contributions) (Description des newsgroups)

Le BR fournit aux élèves environ 250 newsgroups. Dans la plupart des autres école les mailings lists ont été privilégiées mais ici une grande partie de la vie promo se déroule sur des forums. On en trouve de toutes les formes (pour les sections, les binets, les nouveaux bâtiments, l'enseignement, les communautés...).

Présentation des newsgroups

Utilité

Les différents newsgroups sont regroupés par catégories qui permet une plus grande lisibilité. Chaque catégorie de newsgroup a son rôle propre.

  • br.binet.* : les newsgroups des binets, pour la com interne et externe des binets
  • br.communaute.* : pour regrouper les gens autour de leurs passions, hors des cadres des binets.
  • br.section.*, br.promo.*, br.bat.* : pour refléter l'organisation de l'école, et permettre la communication facilement entre les différents groupes constitués par le découpage géographique et administratifs des élèves
  • br.informatique.* : pour le dépannage informatique... Il faut bien insister que le BR n'est pas réparateur informatique, et que donc br.binet.br n'est pas adapté pour le dépannage ne dépendant pas du BR.
  • br.media.* : pour le partage de medias (personnellement j'ai pas, c'est un peu de l'incitation au piratage)
  • br.pa.* : pour les petites annonces, 'ping machin', 'vend truc'...
  • br.enseignement.* : pour tout ce qui a rapport à l'enseignement, y compris les 'ping projet machin'
  • br.eleves : pour tout ce qu'on ne peut pas ranger autre part.
  • br.* : tous les autres newsgroups
  • public.* : newsgroups fournit par la DSI dont le BR assure un miroir. Ces newsgroups sont accessible à tout le personnel de l'Ecole
  • private.*, control.cancel : newsgroups privés du BR.

Crossposts

Les crossposts sont le seul moyen acceptable de poster un même message sur différents newsgroups. Leur intérêt est de simplifier l'envoi et la lecture des posts :

  • Il n'y a besoin que de poster un seul message pour qu'il apparaisse sur plusieurs newsgroups
  • Il n'y a besoin de le lire que sur un seul newsgroup
  • Toutes les réponses aboutissent au même endroit
  • Les newsmestres sont contents
  • Les lecteurs sont contens
  • Le posteur est content

Il faut tout de même faire attention... il y a une facheuse tendance sur les newsgroups à faire un crosspost sur 50 newsgroups pour 1 message de merde (genre ping clope)...

Faire un crosspost nécessite juste de :

  • définir plusieurs newsgroups de destination
  • définir un newsgroups de réponse (Follow-up, Transmettre)

Les fups

Les fups, c'est l'art et la manière de forcer quelqu'un à répondre sur le mauvais newsgroups... ça fait bien rire selui qui a fuppé, et ça agace celui qui s'est fait fupper. Il faut en particulier se méfier des vagues de fup (pâles, arrivée des TOS...) qui on tendance à pourir des newsgroups qui hébergent des discussion sérieuses.

Les fups sont bien sûr désactivables via les scripts du serveur.

br.kes

Suite à l'AG Kès de juin et aux trolls qui on pourrit br.kes à l'issue, la Kès a demandé à ce que br.kes ait un régime spéciale :

  • tout le monde peut initier une discussion
  • les fups vers br.kes sont interdits
  • les kessiers peuvent faire ce qu'ils veulent.

Gestion du serveur de news

Le serveur de news est hébergé sur le serveur désigné par l'alias DNS newsgroups. La machine actuelle est Frankiz.

Le serveur news utilisé est inn2. Bien qu'inn soit présent dans l'arbre portage, on a jamais réussi à faire fonctionner la version de Gentoo. Inn est donc installé manuellement à partir d'un tar des sources de la version 2.3.5 (la dernière version en date est la 2.4.2).

Il est fortement conseillé aux newsmestres et aux roots de rajouter /usr/lib/news/bin dans leur PATH

Installation

Pour installer inn, il faut compiler ses sources proprement :

cp ~fruneau/inn-2.3.5.tar.gz
tar -xvvzf inn-2.3.5.tar.gz
cd inn-2.3.5
CFLAGS="-O3 -s -pipe -march=pentium4 -fomit-frame-pointer" ./configure --prefix=/usr/lib/news --with-perl --with-spool-dir=/var/spool/news --with-sendmail=/usr/sbin/sendmail
make -j2
sudo make install

TODO : il y a aussi un patch pour inn qui permet d'avoir entre autre un assouplissement de la règle sur le format des email pour que login@poly soit valable et d'avoir des messages d'erreur en français. Actuellement ce patch est pour inn 2.4.1 et ne semble pas fonctionner sur les sources de inn 2.3.5. Donc il faudrait faire un package des sources prépatchées.

Pour rendre la configuration pratique, on peut également rajouter quelques liens symboliques :

/etc/news -> /usr/lib/news/etc
/var/spool/news/bin -> /usr/lib/news/bin
/var/lib/news -> /var/spool/news/db
/usr/lib/news/db -> /var/spool/news/db

runscript et crontab pour inn

La compilation à la main de inn ne fournit pas la mise en place automatique de la crontab et du script de lancement de inn.

Le runscript qu'on utilise (/etc/init.d/innd) est adapté de celui fournit par Gentoo dans la version d'inn qui se trouve dans portage :

#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-news/inn/files/innd,v 1.7 2004/09/07 22:29:04 swegener Exp $

depend() {
        need net
}

start() {
        ebegin "Starting innd"
        su - news -c /usr/lib/news/bin/rc.news
        eend $?
}

stop() {
        ebegin "Stopping innd"
        su - news -c '/usr/lib/news/bin/rc.news stop'
        sleep 2
        eend $?
}

La crontab contient des utilitaires qui assurent la maintenance du spool et la génération de statistiques pour Frankiz.

  • Crontab du user news (ATTENTION ce script doit impérativement être exécuter avec les droits news)
0 3 * * * /usr/lib/news/bin/news.daily expireover lowmark
  • Crontab du user root :
# Stats news
#graphe:
*/30 * * * * /home/news/bin/stat_graphe/main.sh
#stats plus gros posteurs:
0 5 * * * /home/frankiz2/bin/news_stats_gros_posteurs.pl

#stats 'funny'
30 6 * * * /home/frankiz2/bin/news_stats_premiers_posteurs.pl 1>/dev/null
0 7 * * * /home/frankiz2/bin/news_stats_premiers_posteurs.pl 1>/dev/null
15 7 * * * /home/frankiz2/bin/news_stats_premiers_posteurs.pl 1>/dev/null
30 7 * * * /home/frankiz2/bin/news_stats_premiers_posteurs.pl 1>/dev/null
45 7 * * * /home/frankiz2/bin/news_stats_premiers_posteurs.pl 1>/dev/null
30 8 * * * /home/frankiz2/bin/news_stats_premiers_posteurs.pl 1>/dev/null

Configuration

Installation initiale

Toute la configuration des news se trouve sur la CVS dans le module news qui n'est accessible qu'aux newsmestres et aux roots. Lors d'une installation de inn en partant de 0, à partir de la configuration précédente, pour installer la configuration, il suffit d'écraser /usr/lib/news avec le contenu de ce module :

cd /usr/lib
/etc/init.d/innd stop
mv news news-save
sudo -u news cvs -d $login$@gwz:/home/cvs co news
/etc/init.d/innd start

Si ça marche, rien d'autre à faire, sinon il faut chercher d'où vient l'erreur. En particulier attention à certains droits sur des scripts qui au lieu d'être news:news, sont root:news avec +s :

-r-sr-x---  1 root news  67K 2005-06-01 20:56 inndstart*
-r-sr-x---  1 root news  35K 2005-06-01 20:56 startinnfeed*

Tous les autres fichiers doivent impérativement être avec des droits news:news.

Modification de la configuration

Pour modifier la configuration des news, il faut impérativement le faire via la CVS. Ceci se fait en 2 étapes :

Tout d'abord, il faut récupérer le module news sur sa machine :

cvs -d $login$@gwz:/home/cvs co news

Ensuite, il faut faire les modifications nécessaire, puis commité ces modifications

cvs ci fichier_modifié

Une fois la modification sur la CVS, il faut updater la conf du serveur. Pour ceci il y a un script dans les binaires disponibles sur la CVS (donc si l'installation a été faite comme indiqué au dessus, il est dans le /usr/lib/news/bin). Il suffit alors de faire :

sudo -u news /usr/lib/news/bin/fetch_cvs_news $logingwz$

Attention, il arrive qu'il y ait des conflits CVS lors des fetch sans pourtant avoir eu de modification sur la version du serveur (sans doute à cause de problème dans les droits d'écriture). Il faut alors supprimer le fichier en cause et refaire un fetch.

Et la dernière chose à faire, est de toujours vérifier que tout se passe bien avec un

tail -f /var/log/news/news.err

Migration/Récupération du spool

Il peut y avoir des cas où le spool est corrompu. Ca intervient soit à la suite d'une réinstallation, soit après une coupure brutale du serveur de news. Il faut alors reconstruire l'historique. Avec l'installation faite comme précédemment l'historique se trouve physiquement avec le spool, ce qui simplifie la migration de spool.

Pour migrer un spool, il suffit donc de copier /var/spool/news à sa nouvelle destination.

Dans le cas d'une installation différente, la plupart du temps, l'historique est séparé du spool, il faut alors copier /var/lib/news et /var/spool/news

Dans le cas où l'historique est corrompu (serveur fonctionnel, mais impossible de poster de nouveau message) :

/etc/init.d/innd stop
sudo -u news
cd /var/lib/news
makehistory -b -f history.n -O -l 30000 -I
awk 'NF == 2 { print }' < history >> history.n
makedbz -s `wc -l < history`-f history.n
mv history.n history
mv history.n.dir history.dir
mv history.n.hash history.hash
mv history.n.index history.index
/etc/init.d/innd start

Si des problèmes apparaissent encore (en particulier sur Outlook Express), il sera parfois nécessaire de lancer le script de maintenance :

sudo -u news
cd /usr/lib/news/bin
./news.daily

Documentation

Une bonne doc se trouve ici