summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2025-03-02 11:54:10 -0500
committerJoe Marcus Clarke <marcus@FreeBSD.org>2025-03-02 11:54:10 -0500
commitfb85eae7889e1f780fea46ee19031a78fd6e38b8 (patch)
treedc6a0b08aa1f95bfe361ec236b4b6e81d1c41ef6
parentgraphics/rigsofrods-pagedgeometry: Update 1.2.0 => 1.2.0.20240708 (latest sna... (diff)
net/netatalk[34]: Add a new port, netatalk4
Netatalk4 is the latest release of the Netatalk Open Source macOS AFPD file server suite. For now, both netatalk3 and netatalk4 will remain, but it is becoming clear, netatalk4 is The Way™, and netatalk3 should be considered deprecated. Netatalk4 has had several releases already, so the underlying afpd server should be quite stable. Note that since FreeBSD removed AppleTalk (ddp) support a while ago, that part of netatalk4 is not enabled. See https://github.com/Netatalk/netatalk/releases for a summary of all changes since netatalk3.
-rw-r--r--net/Makefile1
-rw-r--r--net/netatalk3/Makefile2
-rw-r--r--net/netatalk4/Makefile109
-rw-r--r--net/netatalk4/distinfo3
-rw-r--r--net/netatalk4/files/netatalk.in39
-rw-r--r--net/netatalk4/files/pam.conf14
-rw-r--r--net/netatalk4/files/patch-config_meson.build67
-rw-r--r--net/netatalk4/files/patch-etc_uams_meson.build127
-rw-r--r--net/netatalk4/files/patch-meson.build79
-rw-r--r--net/netatalk4/pkg-descr9
-rw-r--r--net/netatalk4/pkg-install14
-rw-r--r--net/netatalk4/pkg-plist101
12 files changed, 564 insertions, 1 deletions
diff --git a/net/Makefile b/net/Makefile
index 1fbe74375802..50282372e4f5 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -524,6 +524,7 @@
SUBDIR += nemesis
SUBDIR += net6
SUBDIR += netatalk3
+ SUBDIR += netatalk4
SUBDIR += netcat
SUBDIR += netdiscover
SUBDIR += netembryo
diff --git a/net/netatalk3/Makefile b/net/netatalk3/Makefile
index 495828d87590..1fa9852fd863 100644
--- a/net/netatalk3/Makefile
+++ b/net/netatalk3/Makefile
@@ -78,7 +78,7 @@ SPOTLIGHT_MESON_OFF= -Dwith-spotlight=false
SHEBANG_GLOB= afpstats
-CONFLICTS= jday yudit # bin/dbd man/man1/uniconv.1.gz
+CONFLICTS= netatalk4
.include <bsd.port.pre.mk>
diff --git a/net/netatalk4/Makefile b/net/netatalk4/Makefile
new file mode 100644
index 000000000000..9fca22fb0cd9
--- /dev/null
+++ b/net/netatalk4/Makefile
@@ -0,0 +1,109 @@
+PORTNAME= netatalk
+PORTVERSION= 4.1.2
+CATEGORIES= net
+MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/netatalk-${PORTVERSION:S/./-/g}/
+PKGNAMESUFFIX= 4
+
+MAINTAINER= marcus@FreeBSD.org
+COMMENT= File server for Mac OS X
+WWW= https://netatalk.io/
+
+LICENSE= GPLv2
+
+BUILD_DEPENDS= docbook-xsl>=0:textproc/docbook-xsl
+LIB_DEPENDS= libgcrypt.so:security/libgcrypt \
+ libevent.so:devel/libevent
+
+USES= bdb:18 cpe gettext iconv:wchar_t meson perl5 pkgconfig shebangfix ssl tar:xz
+USE_GNOME= libxslt:build
+USE_LDCONFIG= yes
+USE_RC_SUBR= netatalk
+#INSTALL_TARGET=install-strip
+CPE_VENDOR= netatalk_project
+
+MESON_ARGS= -Dwith-libgcrypt-path=${LOCALBASE} \
+ -Dwith-bdb-path=${LOCALBASE} \
+ -Dwith-libiconv-path=${LOCALBASE} \
+ -Dwith-dtrace=false \
+ -Dwith-init-hooks=false \
+ -Dpkg_config_path=${LOCALBASE}/libdata/pkgconfig \
+ -Dwith-shadow=false \
+ -Dwith-webmin=false \
+ -Dwith-cups=false \
+ -Dwith-testsuite=false \
+ -Dwith-appletalk=false \
+ -Ddefault_library=both \
+ --infodir=${PREFIX}/share/info
+
+OPTIONS_DEFINE=PAM KERBEROS5 LDAP SENDFILE KERBEROS DBUS MYSQL ACL LIBWRAP SPOTLIGHT
+OPTIONS_DEFAULT=AVAHI DBUS KERBEROS LIBWRAP SENDFILE
+OPTIONS_RADIO=ZEROCONF
+OPTIONS_RADIO_ZEROCONF=AVAHI MDNSRESPONDER
+ZEROCONF_DESC= Zeroconf(Bonjour) support
+MYSQL_DESC= Enable MySQL CNID backend support
+SENDFILE_DESC= Enable Sendfile support
+ACL_DESC= Enable ACL support
+SPOTLIGHT_DESC= Enable Spotlight search support
+OPTIONS_SUB= yes
+KERBEROS5_MESON_ON= -Dwith-krbV-uam=true \
+ -Dwith-kerberos=true
+KERBEROS5_MESON_OFF= -Dwith-krbV-uam=false \
+ -Dwith-kerberos=false
+KERBEROS_LIB_DEPENDS=libgpg-error.so:security/libgpg-error
+PAM_MESON_ON= -Dwith-pam-path=${LOCALBASE}
+PAM_MESON_OFF= -Dwith-pam=false
+AVAHI_CFLAGS= -I${LOCALBASE}/include -L${LOCALBASE}/lib
+AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app
+AVAHI_SUB_LIST= ZEROCONF="avahi_daemon"
+MDNSRESPONDER_CFLAGS= -I${LOCALBASE}/include -L${LOCALBASE}/lib
+MDNSRESPONDER_LIB_DEPENDS= libdns_sd.so:net/mDNSResponder
+MDNSRESPONDER_SUB_LIST= ZEROCONF="mdnsd"
+LDAP_MESON_ON= -Dwith-ldap-path=${LOCALBASE}
+LDAP_MESON_OFF= -Dwith-ldap=false
+LDAP_CFLAGS= -I${LOCALBASE}/include -L${LOCALBASE}/lib
+LDAP_USES= ldap
+SENDFILE_MESON_OFF=-Dwith-sendfile=false
+DBUS_USES= gnome python
+DBUS_USE= GNOME=glib20
+DBUS_LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib \
+ libdbus-1.so:devel/dbus
+DBUS_RUN_DEPENDS= ${PYTHON_SITELIBDIR}/dbus/_dbus.py:devel/py-dbus@${PY_FLAVOR}
+DBUS_MESON_ON= -Dwith-dbus-daemon-path=${LOCALBASE}/bin/dbus-daemon \
+ -Dwith-dbus-sysconf-path=${LOCALBASE}/etc/dbus-1/system.d
+DBUS_MESON_OFF= -Dwith-afpstats=false
+MYSQL_USES= mysql
+MYSQL_MESON_OFF=-Dwith-cnid-mysql-backend=false
+ACL_LIB_DEPENDS= libsunacl.so:sysutils/libsunacl
+ACL_MESON_OFF=-Dwith-acls=false
+LIBWRAP_MESON_OFF=-Dwith-tcp-wrappers=false
+SPOTLIGHT_LIB_DEPENDS= libtracker-sparql-3.0.so:sysutils/tracker3
+SPOTLIGHT_MESON_OFF= -Dwith-spotlight=false
+
+SHEBANG_GLOB= afpstats
+
+CONFLICTS= netatalk3
+
+.include <bsd.port.pre.mk>
+
+.if ${PORT_OPTIONS:MAVAHI}=="" && ${PORT_OPTIONS:MMDNSRESPONDER}==""
+SUB_LIST+= ZEROCONF=""
+MESON_ARGS+=-Dwith-zeroconf=false
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|%%DB_NAME%%|${BDB_INCLUDE_DIR:T}|' \
+ ${WRKSRC}/meson.build
+# @${REINPLACE_CMD} -e 's|\.dist|\.sample|g' \
+# ${WRKSRC}/config/Makefile.in
+# @${REINPLACE_CMD} -e 's|%%PYTHONCMD%%|${PYTHONCMD}|' \
+# ${WRKSRC}/contrib/shell_utils/afpstats
+
+post-install:
+ ${INSTALL_SCRIPT} ${BUILD_WRKSRC}/contrib/macusers/macusers \
+ ${STAGEDIR}${PREFIX}/bin/macusers
+
+.if ${PORT_OPTIONS:MPAM}
+ ${INSTALL_DATA} ${FILESDIR}/pam.conf ${STAGEDIR}${PREFIX}/etc/pam.d/netatalk.sample
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/net/netatalk4/distinfo b/net/netatalk4/distinfo
new file mode 100644
index 000000000000..2cceb6d2a71c
--- /dev/null
+++ b/net/netatalk4/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1740930680
+SHA256 (netatalk-4.1.2.tar.xz) = a825f6ff7efedb09bb9ca75727ab43126797000f89775db72c8d9520bf481e9c
+SIZE (netatalk-4.1.2.tar.xz) = 922960
diff --git a/net/netatalk4/files/netatalk.in b/net/netatalk4/files/netatalk.in
new file mode 100644
index 000000000000..36a36747f34d
--- /dev/null
+++ b/net/netatalk4/files/netatalk.in
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# PROVIDE: netatalk
+# REQUIRE: DAEMON %%ZEROCONF%%
+# KEYWORD: shutdown
+#
+# AFP fileserver for Mac clients. Add the following to /etc/rc.conf to
+# enable:
+#
+# netatalk_enable="YES"
+#
+
+netatalk_enable=${netatalk_enable-"NO"}
+
+. /etc/rc.subr
+
+name=netatalk
+rcvar=netatalk_enable
+
+load_rc_config ${name}
+
+command=%%PREFIX%%/sbin/${name}
+
+extra_commands="reload"
+reload_cmd="netatalk_reload"
+
+netatalk_reload()
+{
+ local status
+
+ if ! status=`run_rc_command status 2>&1`; then
+ echo $status
+ return 1
+ fi
+ echo 'Reloading netatalk.'
+ kill -HUP $rc_pid
+}
+
+run_rc_command "$1"
diff --git a/net/netatalk4/files/pam.conf b/net/netatalk4/files/pam.conf
new file mode 100644
index 000000000000..05120315054d
--- /dev/null
+++ b/net/netatalk4/files/pam.conf
@@ -0,0 +1,14 @@
+# PAM configuration for the "netatalk" service
+#
+
+# auth
+auth include system
+
+# account
+account include system
+
+# password
+password include system
+
+# session
+session include system
diff --git a/net/netatalk4/files/patch-config_meson.build b/net/netatalk4/files/patch-config_meson.build
new file mode 100644
index 000000000000..a8dc29c35c28
--- /dev/null
+++ b/net/netatalk4/files/patch-config_meson.build
@@ -0,0 +1,67 @@
+--- config/meson.build.orig 2025-02-10 20:41:20 UTC
++++ config/meson.build
+@@ -4,59 +4,23 @@ afp_conf = configure_file(
+ configuration: cdata,
+ )
+
+-if (
+- fs.exists(pkgconfdir / 'afp.conf')
+- and not get_option('with-overwrite')
+-)
+- message('will not replace existing', pkgconfdir / 'afp.conf')
+-else
+- install_data(afp_conf, install_dir: pkgconfdir)
+-endif
++install_data(afp_conf, rename: 'afp.conf.sample', install_dir: pkgconfdir)
+
+ if have_spotlight
+ dbus_session_conf = configure_file(
+ input: 'dbus-session.conf.in',
+- output: 'dbus-session.conf',
++ output: 'dbus-session.conf.netatalk',
+ configuration: cdata,
+ )
+
+- if (
+- fs.exists(pkgconfdir / 'dbus-session.conf')
+- and not get_option('with-overwrite')
+- )
+- message('will not replace existing', pkgconfdir / 'dbus-session.conf')
+- else
+- install_data(dbus_session_conf, install_dir: pkgconfdir)
+- endif
++ install_data(dbus_session_conf, install_dir: pkgconfdir)
+ endif
+
+ if have_afpstats
+- if (
+- fs.exists(dbus_sysconfpath / 'netatalk-dbus.conf')
+- and not get_option('with-overwrite')
+- )
+- message('will not replace existing', dbus_sysconfpath / 'netatalk-dbus.conf')
+- else
+- install_data('netatalk-dbus.conf', install_dir: dbus_sysconfpath)
+- endif
++ install_data('netatalk-dbus.conf', install_dir: dbus_sysconfpath)
+ endif
+
+-static_conf_files = ['extmap.conf']
+-
+-if have_appletalk
+- static_conf_files += ['atalkd.conf', 'macipgw.conf', 'papd.conf']
+-endif
+-
+-foreach file : static_conf_files
+- if (
+- fs.exists(pkgconfdir / file)
+- and not get_option('with-overwrite')
+- )
+- message('will not replace existing', pkgconfdir / file)
+- else
+- install_data(file, install_dir: pkgconfdir)
+- endif
+-endforeach
++install_data('extmap.conf', rename: 'extmap.conf.sample', install_dir: pkgconfdir)
+
+ if (
+ fs.exists('/etc/ld.so.conf.d')
diff --git a/net/netatalk4/files/patch-etc_uams_meson.build b/net/netatalk4/files/patch-etc_uams_meson.build
new file mode 100644
index 000000000000..91ae27204e92
--- /dev/null
+++ b/net/netatalk4/files/patch-etc_uams_meson.build
@@ -0,0 +1,127 @@
+--- etc/uams/meson.build.orig 2025-02-10 20:41:20 UTC
++++ etc/uams/meson.build
+@@ -20,7 +20,7 @@ library(
+ name_suffix: lib_suffix,
+ override_options: 'b_lundef=false',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ uams_passwd_sources = ['uams_passwd.c']
+@@ -34,7 +34,7 @@ library(
+ name_suffix: lib_suffix,
+ override_options: 'b_lundef=false',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ if have_libgcrypt
+@@ -51,7 +51,7 @@ if have_libgcrypt
+ name_suffix: lib_suffix,
+ override_options: 'b_lundef=false',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ library(
+@@ -63,7 +63,7 @@ if have_libgcrypt
+ name_suffix: lib_suffix,
+ override_options: 'b_lundef=false',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ library(
+@@ -75,7 +75,7 @@ if have_libgcrypt
+ name_suffix: lib_suffix,
+ override_options: 'b_lundef=false',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+ if have_pam
+ uams_dhx2_pam_sources = ['uams_dhx2_pam.c']
+@@ -89,20 +89,20 @@ if have_libgcrypt
+ name_suffix: lib_suffix,
+ override_options: 'b_lundef=false',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ if build_shared_lib
+ install_symlink(
+ 'uams_dhx2.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_dhx2_pam.so',
+ )
+ endif
+ elif build_shared_lib
+ install_symlink(
+ 'uams_dhx2.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_dhx2_passwd.so',
+ )
+ endif
+@@ -118,20 +118,20 @@ if have_libgcrypt
+ name_suffix: lib_suffix,
+ override_options: 'b_lundef=false',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ if build_shared_lib
+ install_symlink(
+ 'uams_dhx.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_dhx_pam.so',
+ )
+ endif
+ elif build_shared_lib
+ install_symlink(
+ 'uams_dhx.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_dhx_passwd.so',
+ )
+ endif
+@@ -150,20 +150,20 @@ if have_pam
+ name_suffix: lib_suffix,
+ override_options: 'b_lundef=false',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ if build_shared_lib
+ install_symlink(
+ 'uams_clrtxt.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_pam.so',
+ )
+ endif
+ elif build_shared_lib
+ install_symlink(
+ 'uams_clrtxt.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_passwd.so',
+ )
+ endif
+@@ -181,6 +181,6 @@ if have_krb5_uam
+ name_suffix: lib_suffix,
+ override_options: 'b_lundef=false',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+ endif
diff --git a/net/netatalk4/files/patch-meson.build b/net/netatalk4/files/patch-meson.build
new file mode 100644
index 000000000000..e37e854f53c3
--- /dev/null
+++ b/net/netatalk4/files/patch-meson.build
@@ -0,0 +1,79 @@
+--- meson.build.orig 2025-02-10 20:41:20 UTC
++++ meson.build
+@@ -66,6 +66,7 @@ libdir = prefix / get_option('libdir')
+ datadir = prefix / get_option('datadir')
+ includedir = prefix / get_option('includedir')
+ libdir = prefix / get_option('libdir')
++libexecdir = prefix / get_option('libexecdir')
+ mandir = prefix / get_option('mandir')
+ sbindir = prefix / get_option('sbindir')
+ sysconfdir = prefix / get_option('sysconfdir')
+@@ -138,7 +139,7 @@ statedir = '-D_PATH_STATEDIR="' + localstatedir + '/ne
+ dversion = '-DVERSION="' + netatalk_version + '"'
+ messagedir = '-DSERVERTEXT="' + localstatedir + '/netatalk/msg/"'
+ statedir = '-D_PATH_STATEDIR="' + localstatedir + '/netatalk/"'
+-uamdir = '-D_PATH_AFPDUAMPATH="' + libdir + '/netatalk/"'
++uamdir = '-D_PATH_AFPDUAMPATH="' + libexecdir + '/netatalk-uams/"'
+
+ ############
+ # Includes #
+@@ -464,6 +465,7 @@ bdb_subdirs = [
+ endif
+
+ bdb_subdirs = [
++ '%%DB_NAME%%',
+ 'db62',
+ 'db6.2',
+ 'db61',
+@@ -641,6 +643,11 @@ if crypt.found()
+ if crypt.found()
+ cdata.set('HAVE_CRYPT_H', 1)
+ cdata.set('HAVE_LIBCRYPT', 1)
++else
++ crypt = cc.find_library('crypt', has_headers: 'unistd.h', required: false)
++ if crypt.found()
++ cdata.set('HAVE_LIBCRYPT', 1)
++ endif
+ endif
+
+ #
+@@ -819,12 +826,12 @@ dns_sd_libs = []
+
+ dns_sd_libs = []
+
+-dns_sd = cc.find_library('dns_sd', required: false)
++dns_sd = cc.find_library('dns_sd', dirs: libsearch_dirs, required: false)
+ if dns_sd.found()
+ dns_sd_libs += dns_sd
+ endif
+
+-system = cc.find_library('system', required: false)
++system = cc.find_library('system', dirs: libsearch_dirs, required: false)
+ if dns_sd.found()
+ dns_sd_libs += system
+ endif
+@@ -838,6 +845,8 @@ have_dns = (
+ )
+ )
+
++threads = dependency('threads', required: true)
++
+ if enable_zeroconf
+ if avahi.found()
+ have_zeroconf = true
+@@ -854,6 +863,7 @@ if enable_zeroconf
+ cdata.set('HAVE_MDNS', 1)
+ cdata.set('freebsd_zeroconf', 'mdnsd')
+ zeroconf_provider += 'mDNS'
++ dns_sd_libs += threads
+ endif
+ endif
+
+@@ -1709,6 +1719,7 @@ if not enable_pam
+
+ if not enable_pam
+ have_pam = false
++ pam = dependency('', required: false)
+ else
+ if host_os != 'sunos'
+ pam_paths = [
diff --git a/net/netatalk4/pkg-descr b/net/netatalk4/pkg-descr
new file mode 100644
index 000000000000..fb4d1633d741
--- /dev/null
+++ b/net/netatalk4/pkg-descr
@@ -0,0 +1,9 @@
+Netatalk is an OpenSource software package, that can be used to turn an
+inexpensive *NIX machine into an extremely high-performance and reliable
+file server for Macintosh computers.
+
+Using Netatalk's AFP 3.4 compliant file-server leads to significantly higher
+transmission speeds compared with Macs accessing a server via SaMBa/NFS
+while providing clients with the best possible user experience (full support
+for Macintosh metadata, flawlessly supporting mixed environments of classic
+MacOS and MacOS X clients)
diff --git a/net/netatalk4/pkg-install b/net/netatalk4/pkg-install
new file mode 100644
index 000000000000..bcddbdd54a87
--- /dev/null
+++ b/net/netatalk4/pkg-install
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+PATH=/bin:/usr/sbin:/usr/bin:/usr/sbin
+
+DBDIR=/var/netatalk
+
+case $2 in
+ POST-INSTALL)
+ tee $DBDIR/README > $DBDIR/CNID/README <<-'EOF'
+ This directory contains modifiable Netatalk configuration files and the CNID databases.
+ EOF
+ truncate -s -1 $DBDIR/README $DBDIR/CNID/README
+ ;;
+esac
diff --git a/net/netatalk4/pkg-plist b/net/netatalk4/pkg-plist
new file mode 100644
index 000000000000..b8c8b66431ba
--- /dev/null
+++ b/net/netatalk4/pkg-plist
@@ -0,0 +1,101 @@
+bin/ad
+bin/addump
+%%LDAP%%bin/afpldaptest
+bin/afppasswd
+%%DBUS%%bin/afpstats
+bin/asip-status
+bin/dbd
+bin/macusers
+@sample etc/afp.conf.sample
+%%DBUS%%etc/dbus-1/system.d/netatalk-dbus.conf
+%%SPOTLIGHT%%etc/dbus-session.conf.netatalk
+@sample etc/extmap.conf.sample
+%%PAM%%@sample etc/pam.d/netatalk.sample
+libexec/netatalk-uams/uams_clrtxt.so
+libexec/netatalk-uams/uams_dhx.so
+libexec/netatalk-uams/uams_dhx2.so
+%%PAM%%libexec/netatalk-uams/uams_dhx2_pam.a
+%%PAM%%libexec/netatalk-uams/uams_dhx2_pam.so
+libexec/netatalk-uams/uams_dhx2_passwd.a
+libexec/netatalk-uams/uams_dhx2_passwd.so
+%%PAM%%libexec/netatalk-uams/uams_dhx_pam.a
+%%PAM%%libexec/netatalk-uams/uams_dhx_pam.so
+libexec/netatalk-uams/uams_dhx_passwd.a
+libexec/netatalk-uams/uams_dhx_passwd.so
+%%KERBEROS5%%libexec/netatalk-uams/uams_gss.a
+%%KERBEROS5%%libexec/netatalk-uams/uams_gss.so
+libexec/netatalk-uams/uams_guest.a
+libexec/netatalk-uams/uams_guest.so
+%%PAM%%libexec/netatalk-uams/uams_pam.a
+%%PAM%%libexec/netatalk-uams/uams_pam.so
+libexec/netatalk-uams/uams_passwd.a
+libexec/netatalk-uams/uams_passwd.so
+libexec/netatalk-uams/uams_randnum.a
+libexec/netatalk-uams/uams_randnum.so
+include/atalk/acl.h
+include/atalk/adouble.h
+include/atalk/aep.h
+include/atalk/afp.h
+include/atalk/asp.h
+include/atalk/atp.h
+include/atalk/bstrlib.h
+include/atalk/cnid.h
+include/atalk/ddp.h
+include/atalk/dictionary.h
+include/atalk/ea.h
+include/atalk/globals.h
+include/atalk/hash.h
+include/atalk/iniparser.h
+include/atalk/list.h
+include/atalk/logger.h
+include/atalk/nbp.h
+include/atalk/netatalk_conf.h
+include/atalk/netddp.h
+include/atalk/pap.h
+include/atalk/queue.h
+include/atalk/rtmp.h
+include/atalk/standards.h
+include/atalk/uam.h
+include/atalk/unicode.h
+include/atalk/unix.h
+include/atalk/util.h
+include/atalk/vfs.h
+include/atalk/volume.h
+include/atalk/zip.h
+lib/libatalk.a
+lib/libatalk.so
+lib/libatalk.so.19
+lib/libatalk.so.19.0.0
+sbin/afpd
+sbin/cnid_dbd
+sbin/cnid_metad
+sbin/netatalk
+share/man/man1/ad.1.gz
+share/man/man1/addump.1.gz
+share/man/man1/afp_lantest.1.gz
+share/man/man1/afp_logintest.1.gz
+share/man/man1/afp_spectest.1.gz
+share/man/man1/afp_speedtest.1.gz
+share/man/man1/afparg.1.gz
+share/man/man1/afpldaptest.1.gz
+share/man/man1/afppasswd.1.gz
+%%DBUS%%share/man/man1/afpstats.1.gz
+share/man/man1/afptest.1.gz
+share/man/man1/asip-status.1.gz
+share/man/man1/dbd.1.gz
+share/man/man1/macusers.1.gz
+share/man/man3/atalk_aton.3.gz
+share/man/man3/nbp_name.3.gz
+share/man/man4/atalk.4.gz
+share/man/man5/afp.conf.5.gz
+share/man/man5/afp_signature.conf.5.gz
+share/man/man5/afp_voluuid.conf.5.gz
+share/man/man5/extmap.conf.5.gz
+share/man/man5/macipgw.conf.5.gz
+share/man/man8/afpd.8.gz
+share/man/man8/cnid_dbd.8.gz
+share/man/man8/cnid_metad.8.gz
+share/man/man8/netatalk.8.gz
+/var/netatalk/CNID/README
+@dir /var/netatalk/CNID
+@dir /var/netatalk