Appendix A. Compile Netatalk from Source

2024-09-15

Table of Contents

Overview
Operating Systems
Alpine Linux
Arch Linux
Debian Linux
Fedora Linux
openSUSE Linux
Ubuntu Linux
macOS
DragonflyBSD
FreeBSD
NetBSD
OpenBSD
OmniOS
Solaris

Overview

This appendix describes how to compile Netatalk from source for specific operating systems.

Please note that the steps below are automatically generated, and may not be optimized for your system.

Operating Systems

Alpine Linux

Install dependencies

apk add \
  acl-dev \
  avahi-compat-libdns_sd \
  avahi-dev \
  bison \
  build-base \
  cracklib \
  cracklib-dev \
  cracklib-words \
  cups \
  cups-dev \
  curl \
  db-dev \
  dbus-dev \
  dbus-glib-dev \
  docbook-xsl \
  flex \
  gcc \
  krb5-dev \
  libevent-dev \
  libgcrypt-dev \
  libtirpc-dev \
  libtracker \
  libxslt \
  linux-pam-dev \
  mariadb-dev \
  meson \
  nettle-dev \
  ninja \
  openldap-dev \
  openrc \
  perl \
  pkgconfig \
  rpcsvc-proto-dev \
  talloc-dev \
  tracker \
  tracker-dev \
  tracker-miners \
  unicode-character-database

Configure

meson setup build \
  -Dwith-appletalk=true \
  -Dwith-tests=true

Build

meson compile -C build

Run tests

cd build && meson test

Install

meson install -C build

Start netatalk

/usr/local/sbin/netatalk -V

Uninstall

ninja -C build uninstall

Arch Linux

Install dependencies

pacman -Sy --noconfirm \
  avahi \
  cmark-gfm \
  cracklib \
  cups \
  db \
  docbook-xsl \
  gcc \
  libxslt \
  mariadb-clients \
  meson \
  nettle \
  ninja \
  perl \
  pkgconfig \
  rpcsvc-proto \
  unicode-character-database

Configure

meson setup build \
  -Dwith-appletalk=true \
  -Dwith-docbook-path=/usr/share/xml/docbook/xsl-stylesheets-1.79.2 \
  -Dwith-init-hooks=false \
  -Dwith-tests=true

Build

meson compile -C build

Run tests

cd build && meson test

Install

meson install -C build

Start netatalk

/usr/local/sbin/netatalk -V

Uninstall

ninja -C build uninstall

Debian Linux

Install dependencies

apt-get update
apt-get install --assume-yes --no-install-recommends bison \
cmark-gfm \
docbook-xsl \
file \
flex \
libacl1-dev \
libavahi-client-dev \
libcrack2-dev \
libcups2-dev \
libdb-dev \
libdbus-1-dev \
libdbus-glib-1-dev \
libevent-dev \
libgcrypt-dev \
libglib2.0-dev \
libkrb5-dev \
libldap2-dev \
libmariadb-dev \
libpam0g-dev \
libtalloc-dev \
libtirpc-dev \
libtracker-sparql-3.0-dev \
libwolfssl-dev \
libwrap0-dev \
meson \
nettle-dev \
ninja-build \
quota \
systemtap-sdt-dev \
tcpd \
tracker \
tracker-miner-fs \
unicode-data \
xsltproc

Configure

meson setup build \
  -Dwith-appletalk=true \
  -Dwith-init-hooks=false \
  -Dwith-init-style=debian-sysv,systemd \
  -Dwith-pkgconfdir-path=/etc/netatalk \
  -Dwith-tests=true

Build

meson compile -C build

Run tests

cd build && meson test

Install

meson install -C build

Start netatalk

/usr/local/sbin/netatalk -V

Uninstall

ninja -C build uninstall

Fedora Linux

Install dependencies

dnf --setopt=install_weak_deps=False --assumeyes install \
  avahi-devel \
  bison \
  chkconfig \
  cracklib-devel \
  cups-devel \
  dbus-devel \
  dbus-glib-devel \
  docbook-style-xsl \
  flex \
  glib2-devel \
  krb5-devel \
  libacl-devel \
  libdb-devel \
  libgcrypt-devel \
  libtalloc-devel \
  libxslt \
  mariadb-connector-c-devel \
  meson \
  nettle-devel \
  ninja-build \
  openldap-devel \
  openssl-devel \
  pam-devel \
  perl \
  quota-devel \
  systemd \
  systemtap-sdt-devel \
  tracker \
  tracker-devel \
  unicode-ucd

Configure

meson setup build \
  -Dwith-appletalk=true \
  -Dwith-init-hooks=false \
  -Dwith-tests=true

Build

meson compile -C build

Run tests

cd build && meson test

Install

sudo meson install -C build

Start netatalk

/usr/local/sbin/netatalk -V

Uninstall

sudo ninja -C build uninstall

openSUSE Linux

Install dependencies

zypper in -y \
  bison \
  cracklib-devel \
  dbus-1-devel \
  docbook-xsl-stylesheets \
  file \
  flex \
  gawk \
  gcc \
  libacl-devel \
  libavahi-devel \
  libdb-4_8-devel \
  libevent-devel \
  libgcrypt-devel \
  libmariadb-devel \
  libnettle-devel \
  libtalloc-devel \
  libtdb-devel \
  libtracker-sparql-3_0-0 \
  libxslt-tools \
  meson \
  ninja \
  openldap2-devel \
  pam-devel \
  perl \
  pkg-config \
  systemd \
  systemtap-sdt-devel \
  tcpd-devel \
  tracker \
  unicode-ucd

Configure

meson setup build \
  -Dwith-appletalk=true \
  -Dwith-docbook-path=/usr/share/xml/docbook/stylesheet/nwalsh/1.79.2 \
  -Dwith-init-hooks=false \
  -Dwith-tests=true

Build

meson compile -C build

Run tests

cd build && meson test

Install

meson install -C build

Start netatalk

/usr/local/sbin/netatalk -V

Uninstall

ninja -C build uninstall

Ubuntu Linux

Install dependencies

sudo apt-get update
sudo apt-get install --assume-yes --no-install-recommends bison \
cmark-gfm \
docbook-xsl \
file \
flex \
libacl1-dev \
libavahi-client-dev \
libcrack2-dev \
libcups2-dev \
libdb-dev \
libdbus-1-dev \
libdbus-glib-1-dev \
libevent-dev \
libgcrypt-dev \
libglib2.0-dev \
libkrb5-dev \
libldap2-dev \
libmariadb-dev \
libpam0g-dev \
libtalloc-dev \
libtirpc-dev \
libtracker-sparql-3.0-dev \
libwolfssl-dev \
libwrap0-dev \
meson \
nettle-dev \
ninja-build \
quota \
systemtap-sdt-dev \
tcpd \
tracker \
tracker-miner-fs \
unicode-data \
xsltproc

Configure

meson setup build \
  -Dwith-appletalk=true \
  -Dwith-init-hooks=false \
  -Dwith-manual-l10n=ja \
  -Dwith-tests=true

Build

meson compile -C build

Run distribution tests

cd build && meson dist

Install

sudo meson install -C build

Start netatalk

sudo systemctl start netatalk && sleep 2 && asip-status localhost

Stop netatalk

sudo systemctl stop netatalk

Uninstall

sudo ninja -C build uninstall

macOS

Install dependencies

brew install berkeley-db cmark-gfm docbook-xsl libxslt meson mysql talloc wolfssl
wget https://www.unicode.org/Public/UNIDATA/UnicodeData.txt

Configure

meson setup build \
  -Dwith-appletalk=true \
  -Dwith-tests=true

Build

meson compile -C build

Run tests

cd build && meson test

Install

sudo meson install -C build

Start netatalk

sudo netatalkd start && sleep 2 && asip-status localhost

Stop netatalk

sudo netatalkd stop

Uninstall

sudo ninja -C build uninstall

DragonflyBSD

Install required packages

pkg install -y \
  avahi \
  bison \
  db5 \
  docbook-xsl \
  krb5-devel \
  libevent \
  libgcrypt \
  libxslt \
  meson \
  mysql80-client \
  nettle \
  openldap26-client \
  perl5 \
  pkgconf \
  py39-gdbm \
  py39-sqlite3 \
  py39-tkinter \
  talloc \
  tracker3 \
  wget \
  wolfssl

Configure and build

set -e
wget https://www.unicode.org/Public/UNIDATA/UnicodeData.txt
meson setup build \
  -Dwith-appletalk=true
meson compile -C build
meson install -C build
/usr/local/sbin/netatalk -V
ninja -C build uninstall

FreeBSD

Install required packages

pkg install -y \
  avahi \
  bison \
  db5 \
  docbook-xsl \
  flex \
  libevent \
  libgcrypt \
  libxslt \
  meson \
  mysql84-client \
  nettle \
  openldap26-client-2.6.8 \
  perl5 \
  pkgconf \
  talloc \
  tracker3 \
  wget \
  wolfssl

Configure and build

set -e
wget https://www.unicode.org/Public/UNIDATA/UnicodeData.txt
meson setup build \
  -Dpkg_config_path=/usr/local/libdata/pkgconfig \
  -Dwith-appletalk=true
meson compile -C build
meson install -C build
/usr/local/etc/rc.d/netatalk start
sleep 2
/usr/local/bin/asip-status localhost
/usr/local/etc/rc.d/netatalk stop
/usr/local/etc/rc.d/netatalk disable
ninja -C build uninstall

NetBSD

Install required packages

pkg_add \
  avahi \
  bison \
  db5 \
  dbus-glib \
  docbook-xsl \
  flex \
  gcc13 \
  gnome-tracker \
  libcups \
  libevent \
  libgcrypt \
  libxslt \
  meson \
  mysql-client \
  nettle \
  p5-Net-DBus \
  perl \
  pkg-config \
  talloc \
  tex-unicode-data

Configure and build

set -e
meson setup build \
  -Dpkg_config_path=/usr/pkg/lib/pkgconfig \
  -Dwith-appletalk=true \
  -Dwith-dtrace=false \
  -Dwith-tests=true
meson compile -C build
cd build && meson test
cd ..
meson install -C build
service netatalk onestart
sleep 2
asip-status localhost
service netatalk onestop
ninja -C build uninstall

OpenBSD

Install required packages

pkg_add -I \
  avahi \
  bison \
  dbus-glib \
  db-4.6.21p7v0 \
  docbook-xsl \
  gcc-11.2.0p11 \
  libevent \
  libgcrypt \
  libnettle \
  libtalloc \
  libxslt \
  mariadb-client \
  meson \
  openldap-client-2.6.7v0 \
  openpam \
  pkgconf \
  tracker3 \
  wget

Configure and build

set -e
wget https://www.unicode.org/Public/UNIDATA/UnicodeData.txt
meson setup build \
  -Dpkg_config_path=/usr/local/lib/pkgconfig \
  -Dwith-appletalk=true
meson compile -C build
meson install -C build
rcctl -d start netatalk
sleep 2
asip-status localhost
rcctl -d stop netatalk
rcctl -d disable netatalk
ninja -C build uninstall

OmniOS

Install required packages

pkg install \
  build-essential \
  pkg-config
curl -O https://pkgsrc.smartos.org/packages/SmartOS/bootstrap/bootstrap-trunk-x86_64-20240116.tar.gz
tar -zxpf bootstrap-trunk-x86_64-20240116.tar.gz -C /
export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH
pkgin -y install \
  avahi \
  dbus-glib \
  docbook-xsl \
  gnome-tracker \
  libevent \
  libgcrypt \
  libxslt \
  meson \
  mysql-client \
  nettle \
  talloc

Configure and build

set -e
export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH
wget https://www.unicode.org/Public/UNIDATA/UnicodeData.txt
meson setup build \
  -Dpkg_config_path=/opt/local/lib/pkgconfig \
  -Dwith-appletalk=true \
  -Dwith-ldap-path=/opt/local
meson compile -C build
meson install -C build
sleep 2
svcadm enable svc:/network/netatalk:default
sleep 2
/usr/local/bin/asip-status localhost
svcadm disable svc:/network/netatalk:default
ninja -C build uninstall

Solaris

Install required packages

pkg install \
  bison \
  flex \
  gcc \
  libevent \
  libgcrypt \
  nettle \
  ninja \
  pkg-config \
  python/pip \
  wget
pip install meson

Configure and build

set -e
wget https://www.unicode.org/Public/UNIDATA/UnicodeData.txt
meson setup build \
  -Dpkg_config_path=/usr/lib/amd64/pkgconfig \
  -Dwith-appletalk=true \
  -Dwith-docbook-path=/usr/share/sgml/docbook/xsl-stylesheets \
  -Dwith-tests=true
meson compile -C build
cd build && meson test
cd ..
meson install -C build
sleep 2
svcadm enable svc:/network/netatalk:default
sleep 2
/usr/local/bin/asip-status localhost
svcadm disable svc:/network/netatalk:default
ninja -C build uninstall