Les Developer Tools d’Apple doivent être installés, vous devrez utiliser pico ou vi afin d’éditer quelques fichiers.
Pour compiler leafnode, il faut avoir installé les Developer Tools. Pour télécharger ces derniers il faut être membre de L’ADC (c’est gratuit). Pour cela cliquez sur le bouton Join ADC Now de la page Member Site. Une fois inscrit connectez-vous coté LOG IN de la même page. Dans la page de l’ADC, cliquez sur le lien Download Software, puis sur le lien Developer Tools et enfin cliquez sur le bouton Download qui correspond à Xcode Tools v1.5 cela pèse 372.4 Mo. Installez les Dev Tools en double-cliquant sur le paquet Developer. En cas de dificultés de téléchargement optez pour la version segmentée. Choisissez un serveur aux USA, évitez absolument les serveurs européens trop lents.
Vous devrez ajouter /usr/local/bin et /usr/local/sbin au path afin que les binaires compilés soient reconnus. Vous pouvez changer cela en éditant /etc/csh.login:
# System-wide .login file for csh(1). setenv PATH "/bin:/sbin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin"
Le terminal doit-être redémarré après avoir effectué ces changements.
La version 2 de leafnode est une version alpha, elle nécessite l’installation préalable de PCRE et l’ajout de l’utilisateur news et du groupe news avant de pouvoir compiler leafnode sur votre machine.
Ouvrez les Préférences Système et cliquez sur l’icône
de la ligne Système. Ajoutez un News Server au nom abrégé de news. Votre écran doit alors ressembler à celui-ci :

Choisir dans la colonne de gauche users puis news. Attribuez la valeur /var/spool/news à la propriété home. Notez la valeur de la propriété gid. Votre écran doit alors ressembler à celui-ci :

Choisir dans la colonne de gauche groups puis daemon. Duppliquez daemon en cliquant sur l’icône
. Attribuez la valeur news aux propriétés name et users. Attribuez la valeur précédemment notée à la propriété gid. Votre écran doit alors ressembler à celui-ci :

Enregistrez les modifications et quittez NetInfo Manager. Notez que votre gid n’est pas nécessairement égal à 504 comme sur la copie d’écran précédente.
Téléchargez une version de PCRE supérieure à 3.x (version 5 non testée à ce jour) sur le site « PCRE – Perl Compatible Regular Expressions » et, après avoir décompacté l’archive, entrez les lignes suivantes au terminal :
$ cd pcre-x.x/ $ ./configure $ make $ sudo make install
Téléchargez la dernière version alpha de leafnode sur le site « Leafnode – NNTP Server For Small Sites » et, après avoir décompacté l’archive, entrez les lignes suivantes au terminal :
$ cd ../leafnode-2.0.0.alphaxxxxxx/ $ ./configure $ make $ sudo make install
$ cd /etc/leafnode $ sudo cp -p config.example config $ sudo vi config
Éditez les champs souhaités. Un exemple de configuration :
server = news.example.com username = <votre uid> password = <votre pass> only_groups_pcre = fr\. server = news.example.org username = <votre uid> password = <votre pass> only_groups_pcre = eclipse\. expire = 10 initialfetch = 100 maxcrosspost = 5 hostname = <votre domaine>
Notez qu'il est possible de définir plusieurs serveurs et de paramétrer les groupes de nouvelles relevés par l'intermédiaire du champ only_groups_pcre.
Ajoutez un fichier de configuration pour leafnode dans /etc/xinetd.d :
$ sudo vi /etc/xinetd.d/nntp
Contenu du fichier :
service nntp
{
disable = no
socket_type = stream
wait = no
user = news
server = /usr/local/sbin/leafnode
only_from = 127.0.0.0 192.168.3.0
groups = yes
flags = IPv4
session_create = yes
}
Dans ce cas, le serveur nntp sera accessible en localhost et en LAN, notez qu’un « 0 » est équivalent à une wildcard.
Redémarrez xinetd:
$ sudo kill -HUP `cat /var/run/xinetd.pid`
Dans un terminal lancez fetchnews :
$ sudo fetchnews -vvv
Vous devez obtenir une réponse de ce type :
fetchnews mode: get articles, get headers, get bodies, post articles unable to open /etc/leafnode/local.groups: No such file or directory found 0 articles in in.coming. News.Individual.NET: connecting to port nntp trying: address 130.133.1.4 port 119... connected: address 130.133.1.4 port 119. News.Individual.NET: connected (200), banner: "200 The server welcomes nord-2-81-57-96-20.fbx.proxad.net (81.57.96.20). Authorization required for reading and posting." News.Individual.NET: checking for new newsgroups News.Individual.NET: found 0 new newsgroups [...]
Puis établissez une connexion telnet au serveur de nouvelles :
$ telnet 127.0.0.1 119
Vous devez obtenir une réponse de ce type :
Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 200 Leafnode NNTP daemon, version 2.0.0.alpha20040823b at <votre ip>
Sans tarder (time-out), choisissez un groupe de nouvelles :
group fr.comp.sys.mac
Vous devez obtenir une réponse de ce type :
211 1014 2 1016 fr.comp.sys.mac group selected
Choisissez l’ID d’un article chargé dans le spool de news :
ARTICLE 1000
Vous devez obtenir une réponse de ce type :
220 1000 <1gjv2zt.kpm0rb1gq3d7yN%pas.de.spam@chez.moi> article retrieved - text follows From: pas.de.spam@chez.moi (Pierre-Olivier TAUBATY) Subject: Re: [SOS =?ISO-8859-1?Q?Electricit=E9=5D?= Alimentation du Modem Alcatel Speed Touch Home Ethernet Message-ID: <1gjv2zt.kpm0rb1gq3d7yN%pas.de.spam@chez.moi> References: <1gjuny8.1fpf1n716rlcbpN%pas.de.spam@chez.moi> <1gjuj55.16t42kh1qvhi68N%benoistf@alussinan.org> <1gjuoc4.zdek3ekt4a68N%sergiot.bidon@free.invalid.fr> Date: Thu, 9 Sep 2004 20:48:23 +0400 Newsgroups: fr.comp.sys.mac Path: fake-delaybody-path!not-for-mail Lines: 18 Bytes: 1748 [...]
Bravo ! Votre serveur nntp fonctionne.
Téléchargez CronniX et paramétrez la cron selon vos souhaits.
Ouvrez la cron système par Fichier > Ouvrir le cron du système, cliquez sur l’icone
et choisissez, par exemple, toutes les minutes pour fetchnews, et tous les matins à 5 heure pour texpire. Vous devriez obtenir un écran semblable à celui-ci :

Notez que vous devez utiliser le path « absolu » c’est-à-dire /usr/local/sbin/fetchnews et /usr/local/sbin/texpire.
Dans ce cas il est intéressant de vérifier qu'une connection vers un serveur de nouvelles est possible et que votre client news tourne, lancer ce script /usr/local/sbin/checkup, par la cron en lieu et place de fetchnews et avec les permissions -rwxr-xr-x et user:group à root:wheel :
#! /usr/bin/ruby
# script /usr/local/sbin/checkup
option = ""
if ARGV.length == 1
option = ARGV[0].to_s
end
File.open( "/etc/leafnode/config" ) do |file|
for line in file
if line =~ /^\s*server\s*=\s*(.*)/
if `scutil -r #{$1}`.chomp == "Reachable"
unless `ps -acx | grep MacSOUP`.empty?
system "fetchnews #{option}"
exit 0
end
end
end
end
end
exit 1
Le script ne permettra à cron de lancer fetchnews qu’aux conditions suivantes :
Bien entendu, vous pouvez modifier ce script selon vos besoins.
Ouvrez un nouveau document de paramètres, dans les préférences Serveur indiquez le Serveur NNTP 127.0.0.1 comme ci-dessous : ![]()
Après connection à votre serveur local l’écran de settings peut ressembler à ceci : 
Tout se passe « comme si » vous étiez connecté à plusieurs serveurs distants. Notez que le serveur news.example.com, placé dans le fichier de configuration /etc/leafnode/config avant news.example.org, est prioritaire sur celui-ci.
Du bist hier: Home > technisch > slrn + leafnode auf Mac OS X