Atheme est un ensemble de services IRC conçus pour les grands réseaux IRC avec des exigences d'évolutivité élevées. Il s'agit d'un logiciel relativement mature, avec du code et une conception dérivés d'un autre package appelé Shrike.
Le comportement d'Atheme est réglable à l'aide de modules et d'un fichier de configuration très détaillé. Presque tous les comportements peuvent être modifiés au moment du déploiement en modifiant simplement la configuration.
Si vous disposez d'une version moderne de Git (1.6.5 ou plus récente), vous pouvez cloner le référentiel de manière récursive :
$ git clone --recursive 'https://github.com/atheme/atheme/' atheme-devel
$ cd atheme-devel
Si vous disposez d'une ancienne version de Git, vous devez cloner le référentiel, puis récupérer ses sous-modules :
$ git clone 'https://github.com/atheme/atheme/' atheme-devel
$ cd atheme-devel
$ git submodule init
$ git submodule update
Si vous n'avez pas Git, vous pouvez télécharger une archive de package depuis notre site Web à l'adresse https://atheme.github.io/.
Si vous parcourez notre référentiel GitHub, veuillez NE PAS cliquer sur le bouton « Télécharger ZIP » ou sur les liens « Code source », car ils vous donneront une archive dépourvue des sous-modules requis. Il existe des archives .tar.bz2
ou .tar.xz
appropriées attachées à chaque version sous « Actifs », vers lesquelles vous mènera le bouton « Télécharger » de notre site Web.
Obtenez le référentiel de code source et accédez à son répertoire (en utilisant les commandes données ci-dessus).
Si vous construisez Atheme sur un système GNU/Linux, ou quelque chose qui peut suffisamment l'émuler (comme WSL 2 sur Windows 10), exécutez les commandes suivantes :
$ ./configure
$ make
$ make install
Si vous construisez Atheme sur un système OpenBSD (ou similaire), exécutez plutôt les commandes suivantes :
# pkg_add gmake
$ ./configure --disable-linker-defs
$ gmake
$ gmake install
Si les bibliothèques installées par l'utilisateur que vous souhaitez qu'Atheme utilise sont installées par votre gestionnaire de paquets dans un répertoire tel que /usr/local/
, vous devrez peut-être compléter les chemins de recherche par défaut du compilateur et de l'éditeur de liens afin qu'Atheme puisse détecter ces bibliothèques (par exemple cracklib depuis les ports FreeBSD) :
$ ./configure CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
Les bibliothèques suivantes nécessitent généralement l'installation de pkg-config :
libargon2.pc
)libcrypto.pc
)libidn.pc
)nettle.pc
)libpcre.pc
)libqrencode.pc
)libsodium.pc
) Si pkg-config n'est pas installé et que vous souhaitez utiliser une ou plusieurs de ces bibliothèques, veuillez consulter ./configure --help
pour les options à définir pour remplacer la découverte de pkg-config pour ces bibliothèques. Par exemple, si vous souhaitez utiliser GNU libidn, qu'il est installé dans un chemin de recherche par défaut pour votre compilateur et votre éditeur de liens, et que pkg-config n'est pas installé, exécutez :
$ ./configure LIBIDN_CFLAGS="" LIBIDN_LIBS="-lidn"
Si une bibliothèque s'appuie sur le remplissage LIBFOO_CFLAGS
avec certaines définitions de préprocesseur, ou sur le remplissage LIBFOO_LIBS
avec certains indicateurs de liaison de bibliothèque, cela échouera généralement. Installez pkg-config pour de meilleurs résultats.
Si vous souhaitez compiler Atheme avec le compilateur C du projet LLVM ( clang
), vous souhaiterez peut-être également utiliser l'éditeur de liens de LLVM ( lld
). Vous pouvez accomplir cela comme suit :
$ ./configure CC="clang" LDFLAGS="-fuse-ld=lld"
Si vous souhaitez utiliser des désinfectants de compilateur et que vous souhaitez construire avec Clang, vous DEVEZ également utiliser LLD, car la plupart des désinfectants de Clang nécessitent LTO pour fonctionner correctement, et Clang en mode LTO émet du bitcode LLVM, pas du code machine. L'éditeur de liens est en fin de compte responsable de l'exécution de la majeure partie du gros travail du LTO et de la traduction du résultat en code machine, et la plupart des autres éditeurs de liens ne savent pas comment faire cela.
Pour utiliser les désinfectants du compilateur avec GCC (pris en charge) :
$ ./configure --disable-heap-allocator --disable-linker-defs
--enable-compiler-sanitizers CC="gcc"
Pour utiliser des désinfectants de compilateur avec Clang (recommandé) :
$ ./configure --disable-heap-allocator --disable-linker-defs
--enable-compiler-sanitizers CC="clang" LDFLAGS="-fuse-ld=lld"
Si vous activez les désinfectants, il est recommandé d'activer l'option de configuration general::db_save_blocking
; voir l'exemple de fichier de configuration pour plus de détails.
Les désinfectants ne sont pas recommandés pour une utilisation en production, mais ils sont recommandés aux développeurs, y compris aux tiers qui écrivent de nouvelles fonctionnalités et/ou modifient le code source.
Si vous êtes toujours perdu, lisez le fichier INSTALL ou consultez notre wiki pour plus de conseils.