The Netatalk development team is proud to announce the first release of the Netatalk 3.1 release series. Early adopters are encouraged to update production systems.

Netatalk is a freely-available Open Source AFP fileserver. A *NIX/*BSD system running Netatalk is capable of serving many Macintosh clients simultaneously as an AppleShare file server (AFP).

The suite contains:

  • netatalk – the main server service controller
  • afpd – the AFP file server daemin
  • cnid_metad – the CNID database multiplexing daemon
  • cnid_dbd – the CNID database daemon serving CNIDs for AFP volumes
  • various supporting programs and utilities

Summary of major new features and enhancements in 3.1

Please refer to the online manual for details about compiling Netatalk with Spotlight support and how to configure:

Please make sure to read the upgrading section in the Netatalk online manual before trying to upgrade your system from version 2:


Netatalk is a Free/Open Source Software project and is released under the GNU General Public License (GPLv2). The full license text is available at:

Changes in 3.1.0

  • NEW: AFP Spotlight support with Gnome Tracker
  • NEW: New option “spotlight” (G/V)
  • NEW: Configure option –with-tracker-pkgconfig-version
  • NEW: Configure option –with-tracker-prefix
  • NEW: If Spotlight is enabled, launch our own dbus instance
  • NEW: New option “dbus daemon” (G)
  • UPD: Add configure option –with-afpstats for overriding the result of autodetecting dbus-glib presence
  • NEW: Add recvfile support with splice() on Linux. New global options “recvfile” (default: no) and “splice size” (default 64k).
  • NEW: CNID backend “mysql” for use with a MySQL server
  • FIX: Build fixes for the Kerberos UAM
  • UPD: Use dedicated exit code for AFP connections that were dropped by the client right after the TCP handshake

Changes in 3.0.6

  • FIX: charset conversion failed when copying from Mac OS 9. Bug #523.
  • UPD: Don’t force S_ISGID for directories on FreeBSD. Bug #525.
  • NEW: Add support for ZFS ACLs on FreeBSD with libsunacl. From FR#83.
  • FIX: Active Directory LDAP queries for ACL support with new options “ldap user filter” and “ldap group filter”. Bug #526.
  • NEW: Option “vol dbnest”, when set to true, the CNID database for a volume is stored in the volume root of a share in a directory .AppleDB like in Netatalk 2. Defaults to false. From FR#84.
  • FIX: Small fix in the DSI tickle handling. Bug #528.
  • UPD: Enhance handling of connection attempts when hitting the connection limit. Bug #529.
  • FIX: Saving from Word to a folder that is a symlink to a folder on another filesystem results in a crash of the afpd process and the save to fail. This happens only if the option “follow symlinks” is enabled. Bug #532.
  • FIX: Disable Kerberos UAM if AFP service principal name can’t be evaluated. Fixes bug #531.
  • FIX: Fix handling of large number of volumes. Bug #527.
  • NEW: Configure option –with-tbd which can be used to disable the use of the bundled tdb and use a system installed version.

Changes in 3.0.5

  • FIX: Fix a crash when using pam_winbind. Fixes bug #516.
  • NEW: New global/volume option “ignored attributes”
  • FIX: “afp listen” option failed to take IPv6 addresses. Bug #515.
  • FIX: Fix a possible crash in set_groups. Bug #518.
  • NEW: Send optional AFP messages for vetoed files, new option “veto messages” can be used to enable sending messages. Whenever a client tries to access any file or directory with a vetoed name, it will be sent an AFP message indicating the name and the directory. From FR #81.
  • NEW: New boolean volume option “delete veto files”. If this option is set to yes, then Netatalk will attempt to recursively delete any vetoed files and directories. FR #82.
  • UPD: systemd unit dir is /usr/lib/systemd/system .
  • FIX: Saving files from application like MS Word may result in the file loosing metadata like the Finder label. Bug #521.

Changes in 3.0.4

  • UPD: Enhance ACL mapping, change global ACL option ‘map acl’ to take the following options: “none”, “rights” (default), “mode”. “none”, no mapping, this resembles the previous false/no setting, “rights”, map ACLs to Finder UARights, this resembles the previous true/yes setting, this is the default, “mode”, map ACLs to Finder UARights and UNIX mode. From FR #73.
  • Fix a possible crash in cname() where cname_mtouname calls dirlookup() where the curdir is freed because the dircache detected a dev/inode cache difference and evicted the object from the cache. Fixes bug #498.
  • Add missing include, fixes bug #512.
  • Change default FinderInfo for directories to be all 0, fixes bug 514.
  • New option “afp interfaces” which allows specifying where Netatalk listens for AFP connections by interface names. From FR #79.

Changes in 3.0.3-p2

  • FIX: Fix an issue with filenames containing non-ASCII characters that lead to a failure setting the size of a files ressource fork. This affected application like Adobe Photoshop where saving files may fail. Fixes bug #511.

Changes in 3.0.3-p1

  • FIX: Opening files without metadata EA may result in an invalid metadata EA. Check for malformed metadata EAs and delete them. Fixes bug #510.

Changes in 3.0.3

  • UPD: afpd: Increase default DSI server quantum to 1 MB
  • UPD: bundled libevent2 is now static
  • NEW: –with-lockfile=PATH configure option for specifying an alternative path for the netatalk lockfile.
  • UPD: systemd service file use PIDFile and ExecReload. From FR #70.
  • UPD: RedHat sysvinit: rm graceful, reimplement reload, add condrestart
  • FIX: Couldn’t create folders on FreeBSD 9.1 ZFS fileystems. Fixed bug #491.
  • FIX: Fix an issue with user homes when user home directory has not the same name as the username. Fixes bug #497.
  • UPD: Fix PAM config install, new default installation dir is $sysconfdir/pam.d/. Add configure option –with-pam-confdir to specify alternative path.
  • NEW: AFP stats about active session via dbus IPC. Client side python program `afpstats`. Requires dbus, dbus-glib any python-dbus. configure option –dbus-sysconf-dir for specifying dbus system security configuration files. New option ‘afpstats’ (default: no) which determines whether to enable the feature or not.
  • NEW: configure option –with-init-dir
  • NEW: dtrace probes, cf include/atalk/afp_dtrace.d for available probes.
  • UPD: Reload groups when reloading volumes. FR #71.
  • FIX: Attempt to read read-only ._ rfork results in disconnect. Fixes bug #502.
  • FIX: File’s ressource fork can’t be read if metadata EA is missing. Fixes bug #501.
  • FIX: Conversion from adouble v2 to ea for directories. Fixes bug #500.
  • FIX: Error messages when mounting read-only filesystems. Fixes bug #504.
  • FIX: Permissions of ._ AppleDouble ressource fork after conversion from v2 to ea. Fixes bug #505.
  • UPD: Use FreeBSD sendfile() capability to send protocol header. From FR #75.
  • UPD: Increase IO size when sendfile() is not used. From FR #76.
  • FIX: Can’t set Finder label on symlinked folder with “follow symlinks = yes”. Fixes bug #508.
  • FIX: Setting POSIX ACLs on Linux Fixes bug #506.
  • FIX: “ad ls” segfault if requested object is not in an AFP volume. Fixes bug #496.

Changes in 3.0.2

  • FIX: Install working PAM config on Solaris 11.
    Fixes bug #481.
  • FIX: Fix a race condition between dbd and the cnid_dbd daemon which could result in users being disconnected from volumes when dbd was scanning their volumes.
    Fixes bug #477.
  • FIX: Netatalk didn’t start when the last line of the config file afp.conf wasn’t terminated by a newline.
    Fixes bug #476.
  • NEW: Add a new volumes option ‘follow symlinks’. The default setting is false, symlinks are not followed on the server. This is the same behaviour as OS X’s AFP server. Setting the option to true causes afpd to follow symlinks on the server. symlinks may point outside of the AFP volume, currently afpd doesn’t do any checks for “wide symlinks”.
  • FIX: Automatic AppleDouble conversion to EAs failing for directories.
    Fixes bug #486.
  • FIX: dbd failed to convert appledouble files of symlinks.
    Fixes bug #490.

Changes in 3.0.1-p5

  • UPD: Add quoting support to ‘[in]valid users’ option.
    Fixes bug #472.
  • FIX: Fix regression in ‘valid users’ option introduced in 3.0.1-p4.

Changes in 3.0.1-p4

  • NEW: afpd: new option ‘ad domain’.
    From FR #66.
  • FIX: volumes and home share with symlinks in the path.
  • FIX: Reloading volumes from config file was broken.
    Fixes bug #474.
  • FIX: Fix _device-info service type registered with dns-sd API
  • FIX: Fix pathname bug for FCE modified event.
  • FIX: Remove length limitation of options like “valid users”.
    Fixes bug #473.
  • FIX: Dont copy our metadata EA in copyfile().
    Fixes bug #452.
  • FIX: Fix an error where catalog search gave incomplete results.
    Fixes bug #479.
  • REM: Remove TimeMachine volume used size FCE event.

Changes in 3.0.1-p3

  • FIX: Copying packages to a Netatalk share could fail.
    Fixes bug #469

Changes in 3.0.1-p2

  • FIX: Memory leak
  • FIX: NetAFP installer: FreeBSD initscript and rc.conf fixes

Changes in 3.0.1-p1

  • NEW: afpd: Put file extension type/creator mapping back in which had been removed in 3.0.
  • UPD: afpd: ignore duplicated or nested volume path.
  • FIX: afpd: “path” parameter value may contain symlink.
  • FIX: afpd:”basedir regex” was never able to treat symlink. If /home -> /usr/home, set “basedir regex = /usr/home”.

Changes in 3.0.1

  •  UPD: Updated Linux distro for NetAFP autobuild system to Centos 6.2

Changes in 3.0-p4

  • NEW: afpd: Optional “ldap uuid encoding = string | ms-guid” parameter to afp.conf, allowing for usage of the binary objectGUID fields from Active Directory.
  • FIX: afpd: Fixes open file handle refcounting bug which was reported as being unable to play movies off a Netatalk AFP share. Bug ID 3559783.
  • FIX: afpd: Fix a possible data corruption when reading from and writing to the server simultaniously under load
  • FIX: apple_dump: Extended Attributes AppleDouble support for *BSD
  • FIX: handling of ‘/’ and ‘:’ in volume name
  • UPD: libevent configure args to pick up installed version. Removed configure arg –disable-libevent, added configure args –with-libevent-header|lib.

Changes in 3.0-p3

  • FIX: afpd: Fix a crash on FreeBSD
  • FIX: dbd: Fix logging
  • UPD: Install relevant includes necessary for building programs with installed headers and shared lib libatalk
  • REM: Remove –with-smbsharemodes configure option, it was an empty stub not yet implemented

Changes in 3.0-p2

  •  FIX: Fix possible alignment violations due to bad casts

Changes in 3.0-p1

  • FIX: afpd: Fix a Solaris 10 SPARC sendfilev bug

Changes in 3.0

  • UPD: afpd: force read only mode if cnid scheme is last
  • REM: afpd: removed global option “icon”
  • FIX: CNID path for user homes
Share →