Below are instructions on how to compile Netatalk from source for specific operating systems. Before starting, please read through the Install Quick Start guide first. You need to have a local clone of Netatalk's source code before proceeding.
Please note that these steps are automatically generated from the CI jobs, and may not always be optimized for standalone execution.
Install dependencies
apk add acl-dev avahi-compat-libdns_sd avahi-dev bison build-base ca-certificates cracklib cracklib-dev cracklib-words cups cups-dev curl db-dev dbus-dev dconf flex file-dev gcc glib iniparser-dev krb5-dev libev-dev libgcrypt-dev libtirpc-dev libtracker linux-pam-dev localsearch mariadb-dev meson ninja openldap-dev openrc pandoc perl pkgconfig rpcsvc-proto-dev sqlite-dev talloc-dev tinysparql-dev valgrind xapian-core-devConfigure
meson setup build -Dbuildtype=release -Dwith-appletalk=true -Dwith-cups-pap-backend=true -Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d -Dwith-eventloop=libev -Dwith-statedir-path=/var/lib -Dwith-tests=true -Dwith-testsuite=trueBuild
meson compile -C buildRun integration tests
meson test -C buildRun memory profiling
meson test --wrapper='valgrind --leak-check=full --error-exitcode=1' -C buildInstall
meson install -C buildCheck netatalk capabilities
netatalk -V
afpd -V
atalkd -V
a2boot -V
macipgw -V
papd -V
timelord -VInstall dependencies
pacman -Sy --noconfirm avahi bison cmark-gfm cracklib cups db dconf flex file gcc iniparser libev localsearch mariadb-clients meson ninja perl pkgconfig rpcsvc-proto sqlite talloc tinysparql xapian-coreConfigure
meson setup build -Dbuildtype=release -Dwith-appletalk=true -Dwith-cups-pap-backend=true -Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d -Dwith-eventloop=libev -Dwith-init-hooks=false -Dwith-tests=true -Dwith-testsuite=trueBuild
meson compile -C buildRun integration tests
meson test -C buildInstall
meson install -C buildCheck netatalk capabilities
netatalk -V
afpd -V
atalkd -V
a2boot -V
macipgw -V
papd -V
timelord -VInstall dependencies
apt-get update
apt-get install --assume-yes --no-install-recommends bison ca-certificates cmark-gfm cracklib-runtime dconf-cli file flex g++ gcc libacl1-dev libavahi-client-dev libcrack2-dev libcrypt-dev libcups2-dev libdb-dev libdbus-1-dev libev-dev libgcrypt20-dev libglib2.0-dev libiniparser-dev libkrb5-dev libldap2-dev libmagic-dev libmariadb-dev libpam0g-dev libsqlite3-dev libtalloc-dev libtirpc-dev libtracker-sparql-3.0-dev libwrap0-dev libxapian-dev meson ninja-build quota systemtap-sdt-dev tcpd tracker tracker-miner-fs valgrindConfigure
meson setup build -Dbuildtype=release -Dwith-appletalk=true -Dwith-cups-pap-backend=true -Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d -Dwith-eventloop=libev -Dwith-init-hooks=false -Dwith-init-style=debian-sysv,systemd -Dwith-pkgconfdir-path=/etc/netatalk -Dwith-tests=true -Dwith-testsuite=trueBuild
meson compile -C buildRun integration tests
meson test -C buildRun memory profiling
meson test --wrapper='valgrind --leak-check=full --error-exitcode=1' -C buildInstall
meson install -C buildCheck netatalk capabilities
netatalk -V
afpd -V
atalkd -V
a2boot -V
macipgw -V
papd -V
timelord -VInstall dependencies
dnf --setopt=install_weak_deps=False --assumeyes install avahi-devel bison chkconfig cracklib-devel cups-devel dbus-devel dconf flex gcc-c++ glib2-devel iniparser-devel krb5-devel libacl-devel libdb-devel libev-devel file-devel libgcrypt-devel libtalloc-devel localsearch mariadb-connector-c-devel meson ninja-build openldap-devel pam-devel pandoc perl perl-Net-DBus quota-devel sqlite-devel systemd systemtap-sdt-devel tinysparql-devel valgrind xapian-core-develConfigure
meson setup build -Dbuildtype=release -Dwith-appletalk=true -Dwith-cups-pap-backend=true -Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d -Dwith-eventloop=libev -Dwith-init-hooks=false -Dwith-tests=true -Dwith-testsuite=trueBuild
meson compile -C buildRun integration tests
meson test -C buildRun memory profiling
meson test --wrapper='valgrind --leak-check=full --error-exitcode=1' -C buildInstall
sudo meson install -C buildCheck netatalk capabilities
netatalk -V
afpd -V
atalkd -V
a2boot -V
macipgw -V
papd -V
timelord -VInstall dependencies
apt-get update
apt-get install --assume-yes --no-install-recommends bison ca-certificates cmark-gfm cracklib-runtime dconf-cli file flex g++ gcc libacl1-dev libavahi-client-dev libcrack2-dev libcups2-dev libdb-dev libdbus-1-dev libev-dev libgcrypt20-dev libglib2.0-dev libiniparser-dev libkrb5-dev libldap2-dev libmagic-dev libmariadb-dev libpam0g-dev libtalloc-dev libtirpc-dev libtracker-sparql-3.0-dev libwrap0-dev libxapian-dev meson ninja-build quota systemtap-sdt-dev tcpd tracker tracker-miner-fsConfigure
meson setup build -Dbuildtype=release -Dwith-appletalk=true -Dwith-cups-pap-backend=true -Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d -Dwith-eventloop=libev -Dwith-init-hooks=false -Dwith-tests=true -Dwith-testsuite=trueBuild
meson compile -C buildRun integration tests
meson test -C buildInstall
meson install -C buildCheck netatalk capabilities
netatalk -V
afpd -V
atalkd -V
a2boot -V
macipgw -V
papd -V
timelord -VInstall dependencies
brew update
brew install bstring cmark-gfm cracklib iniparser libev libmagic mariadb meson openldap talloc xapianConfigure
meson setup build -Dbuildtype=release -Dwith-eventloop=libev -Dwith-homebrew=true -Dwith-tests=true -Dwith-testsuite=trueBuild
meson compile -C buildRun integration tests
meson test -C buildInstall
sudo meson install -C buildCheck netatalk capabilities
netatalk -V
afpd -VStart netatalk
sudo netatalkd start
sleep 1
asip-status localhostStop netatalk
sudo netatalkd stopInstall required packages
set -e
pkg install -y avahi cmark db5 iniparser libev file libgcrypt meson mysql80-client openldap26-client perl5 pkgconf py39-gdbm py39-sqlite3 py39-tkinter sqlite talloc xapian-coreBuild and install
set -e
meson setup build -Dbuildtype=release -Dwith-appletalk=true -Dwith-eventloop=libev -Dwith-tests=true -Dwith-testsuite=true
meson compile -C build
meson test -C build
meson install -C build
netatalk -V
afpd -VInstall required packages
set -e
pkg install -y avahi bison cmark db5 dconf flex iniparser libev file libgcrypt libsunacl localsearch meson mysql96-client openldap26-client p5-Net-DBus perl5 pkgconf sqlite3 talloc xapian-coreBuild and install
set -e
meson setup build -Dbuildtype=release -Dpkg_config_path=/usr/local/libdata/pkgconfig -Dwith-eventloop=libev -Dwith-tests=true -Dwith-testsuite=true
meson compile -C build
meson test -C build --no-rebuild
meson install -C build --no-rebuild
netatalk -V
afpd -V
/usr/local/etc/rc.d/netatalk start
sleep 1
asip-status localhost
/usr/local/etc/rc.d/netatalk stop
/usr/local/etc/rc.d/netatalk disableInstall required packages
set -e
export PKG_PATH="http://ftp.fr.netbsd.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r|cut -f '1 2' -d.)/All"
pkg_add cmark db5 gcc13 heimdal iniparser libev libgcrypt meson file mysql-client perl pkg-config sqlite3 talloc xapianBuild and install
set -e
meson setup build -Dbuildtype=release -Dwith-appletalk=true -Dwith-cups-pap-backend=true -Dwith-dtrace=false -Dwith-eventloop=libev -Dwith-tests=true -Dwith-testsuite=true
meson compile -C build
meson test -C build --no-rebuild
meson install -C build --no-rebuild
netatalk -V
afpd -V
atalkd -V
a2boot -V
macipgw -V
papd -V
timelord -V
service netatalk onestart
sleep 1
asip-status localhost
service netatalk onestopInstall required packages
set -e
pkg_add -I avahi cmark db-4.6.21p8v0 dbus gcc-11.2.0p19 heimdal iniparser libev libgcrypt libmagic libtalloc file mariadb-client meson openldap-client-2.6.10v0 openpam p5-Net-DBus pkgconfig sqlite3-3.50.7p0 xapian-coreBuild and install
set -e
meson setup build -Dbuildtype=release -Dpkg_config_path=/usr/local/lib/pkgconfig -Dwith-eventloop=libev -Dwith-gssapi-path=/usr/local/heimdal -Dwith-kerberos-path=/usr/local/heimdal -Dwith-tests=true -Dwith-testsuite=true
meson compile -C build
meson test -C build --no-rebuild
meson install -C build --no-rebuild
netatalk -V
afpd -V
rcctl -d start netatalk
sleep 1
asip-status localhost
rcctl -d stop netatalk
rcctl -d disable netatalkInstall required packages
set -e
pkg install build-essential pkg-config
curl -o bootstrap.tar.gz https://pkgsrc.smartos.org/packages/SmartOS/bootstrap/bootstrap-2025Q4-x86_64.tar.gz
tar -zxpf bootstrap.tar.gz -C /
export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH
pkgin -y install avahi cmark dconf gnome-tracker iniparser libev file libgcrypt meson mysql-client sqlite3 talloc xapianBuild and install
set -e
export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH
meson setup build --prefix=/opt/local -Dbuildtype=release -Dpkg_config_path=/opt/local/lib/pkgconfig -Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d -Dwith-eventloop=libev -Dwith-ldap-path=/opt/local -Dwith-tests=true -Dwith-testsuite=true
meson compile -C build
meson test -C build
meson install -C build
netatalk -V
afpd -V
sleep 1
svcadm enable svc:/network/netatalk:default
sleep 1
asip-status localhost
svcadm disable svc:/network/netatalk:defaultInstall required packages
set -e
pkg install archiver/gnu-tar compress/gzip database/sqlite-3 developer/build/cmake developer/build/meson developer/build/ninja developer/build/pkg-config developer/gcc-14 library/glib2 library/libev library/security/cracklib runtime/perl system/library/dbus system/library/libdbus system/library/security/libgcrypt web/curl
curl --location -o iniparser.tar.gz https://gitlab.com/iniparser/iniparser/-/archive/v4.2.6/iniparser-v4.2.6.tar.gz
set +e # tar on illumos is too old to handle git tarballs cleanly
tar xzf iniparser.tar.gz
set -e
cd iniparser-v4.2.6
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ..
make all
make install
cd ../..Build and install
set -e
export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH
meson setup build -Dbuildtype=release -Dpkg_config_path=/usr/lib/amd64/pkgconfig -Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d -Dwith-eventloop=libev -Dwith-iniparser-path=/usr/local -Dwith-tests=true -Dwith-testsuite=true
meson compile -C build
meson test -C build
meson install -C build
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
sleep 1
svcadm enable svc:/network/dns/multicast:default
svcadm enable svc:/network/netatalk:default
sleep 1
/usr/local/bin/asip-status localhost
svcadm disable svc:/network/netatalk:defaultInstall required packages
set -e
pkg install bison cmake flex gcc libevent libgcrypt meson ninja pkg-config sqlite-3
curl --location -o cmark.tar.gz https://github.com/commonmark/cmark/archive/refs/tags/0.31.1.tar.gz
curl --location -o iniparser.tar.gz https://gitlab.com/iniparser/iniparser/-/archive/v4.2.6/iniparser-v4.2.6.tar.gz
set +e # tar on Solaris is too old to handle git tarballs cleanly
tar xzf cmark.tar.gz
tar xzf iniparser.tar.gz
set -e
cd cmark-0.31.1
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr
cmake --build build
cmake --install build
cd ..
cd iniparser-v4.2.6
mkdir build
cd build
cmake ..
make all
make install
cd ../..Build and install
set -e
meson setup build --prefix=/usr/local -Dbuildtype=release -Dpkg_config_path=/usr/lib/amd64/pkgconfig -Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d -Dwith-iniparser-path=/usr/local -Dwith-tests=true -Dwith-testsuite=true
meson compile -C build
meson test -C build
meson install -C build
export PATH=/usr/local/sbin:/usr/local/bin:$PATH
netatalk -V
afpd -V
sleep 1
svcadm -v enable svc:/network/netatalk:default
sleep 1
asip-status localhost
svcadm -v disable svc:/network/netatalk:default