Atheme adalah serangkaian layanan IRC yang dirancang untuk jaringan IRC besar dengan persyaratan skalabilitas tinggi. Ini adalah perangkat lunak yang relatif matang, dengan beberapa kode dan desain yang berasal dari paket lain yang disebut Shrike.
Perilaku Atheme dapat disesuaikan menggunakan modul dan file konfigurasi yang sangat detail. Hampir semua perilaku dapat diubah pada waktu penerapan hanya dengan mengedit konfigurasi.
Jika Anda memiliki Git versi modern (1.6.5 atau lebih baru), Anda dapat mengkloning repositori secara rekursif:
$ git clone --recursive 'https://github.com/atheme/atheme/' atheme-devel
$ cd atheme-devel
Jika Anda memiliki Git versi lama, Anda harus mengkloning repositori, lalu mengambil submodulnya:
$ git clone 'https://github.com/atheme/atheme/' atheme-devel
$ cd atheme-devel
$ git submodule init
$ git submodule update
Jika Anda tidak memiliki Git, Anda dapat mengunduh arsip paket dari situs web kami di https://atheme.github.io/.
Jika Anda menjelajahi repositori GitHub kami, mohon JANGAN klik tombol "Unduh ZIP" atau tautan "Kode sumber" di sana, karena mereka akan memberi Anda arsip yang tidak memiliki submodul yang diperlukan. Terdapat arsip .tar.bz2
atau .tar.xz
yang terpasang pada setiap rilis di bawah "Aset", dan tombol "Unduh" di situs web kami akan mengarahkan Anda ke sana.
Dapatkan repositori kode sumber dan ubah ke direktorinya (menggunakan perintah yang diberikan di atas).
Jika Anda membangun Atheme di sistem GNU/Linux, atau sesuatu yang dapat menirunya (seperti WSL 2 di Windows 10), jalankan perintah berikut:
$ ./configure
$ make
$ make install
Jika Anda membangun Atheme pada sistem OpenBSD (atau serupa), jalankan perintah berikut:
# pkg_add gmake
$ ./configure --disable-linker-defs
$ gmake
$ gmake install
Jika pustaka yang diinstal pengguna yang ingin digunakan Atheme diinstal oleh manajer paket Anda ke direktori seperti /usr/local/
, Anda mungkin perlu melengkapi jalur pencarian compiler dan linker default sehingga Atheme dapat mendeteksi pustaka tersebut (misalnya cracklib dari Port FreeBSD):
$ ./configure CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
Pustaka berikut umumnya memerlukan instalasi pkg-config:
libargon2.pc
)libcrypto.pc
)libidn.pc
)nettle.pc
)libpcre.pc
)libqrencode.pc
)libsodium.pc
) Jika Anda belum menginstal pkg-config dan ingin menggunakan satu atau lebih pustaka ini, silakan lihat ./configure --help
untuk opsi yang disetel untuk mengesampingkan penemuan pkg-config untuk pustaka tersebut. Misalnya, jika Anda ingin menggunakan GNU libidn, dan libidn tersebut diinstal pada jalur pencarian default untuk compiler dan linker Anda, dan Anda belum menginstal pkg-config, jalankan:
$ ./configure LIBIDN_CFLAGS="" LIBIDN_LIBS="-lidn"
Jika perpustakaan mengandalkan pengisian LIBFOO_CFLAGS
dengan beberapa definisi praprosesor, atau pengisian LIBFOO_LIBS
dengan beberapa tanda penghubung perpustakaan, hal ini biasanya akan gagal. Instal pkg-config untuk hasil terbaik.
Jika Anda ingin mengkompilasi Atheme dengan kompiler C proyek LLVM ( clang
), Anda mungkin juga ingin menggunakan linker LLVM ( lld
). Anda dapat melakukannya dengan cara berikut:
$ ./configure CC="clang" LDFLAGS="-fuse-ld=lld"
Jika Anda ingin menggunakan pembersih kompiler, dan ingin membangun dengan Clang, Anda juga HARUS menggunakan LLD, karena sebagian besar pembersih di Clang memerlukan LTO agar berfungsi dengan baik, dan Clang dalam mode LTO mengeluarkan bitcode LLVM, bukan kode mesin. Linker pada akhirnya bertanggung jawab untuk melakukan sebagian besar pengangkatan berat LTO, dan menerjemahkan hasilnya ke dalam kode mesin, dan sebagian besar linker lainnya tidak tahu bagaimana melakukan hal ini.
Untuk menggunakan pembersih kompiler dengan GCC (didukung):
$ ./configure --disable-heap-allocator --disable-linker-defs
--enable-compiler-sanitizers CC="gcc"
Untuk menggunakan pembersih kompiler dengan Clang (disarankan):
$ ./configure --disable-heap-allocator --disable-linker-defs
--enable-compiler-sanitizers CC="clang" LDFLAGS="-fuse-ld=lld"
Jika Anda mengaktifkan pembersih, disarankan untuk mengaktifkan opsi konfigurasi general::db_save_blocking
; lihat contoh file konfigurasi untuk lebih jelasnya.
Sanitizer tidak direkomendasikan untuk penggunaan produksi, namun direkomendasikan untuk pengembang, termasuk pihak ketiga yang menulis fitur baru dan/atau memodifikasi kode sumber.
Jika Anda masih bingung, baca file INSTALL atau lihat wiki kami untuk petunjuk lebih lanjut.