7.29.2013FrankLahm29 Jul, 2013Upgrading from Netatalk 2OverviewThere are two major changes in Netatalk:New configuration file afp.conf, obsoleting all
previous configuration filesNew AppleDouble backend ""
which stores Mac metadata and resource forks in extended attributes
of the filesystemNew configurationini style syntax (like Samba’s smb.conf)one to rule them all: configure AFP settings and volumes in
one fileobsoletes afpd.conf,
netatalk.conf,
AppleVolumes.default and
afp_ldap.confmost option names have changed, read the full manpage afp.conf for detailsNew AppleDouble backendNew AppleDouble backend "" which
stores Mac metadata and resource forks in extended attributes of the
filesystem.default backend (!)requires a filesystem with Extended Attributes, fallback is
""converts filesystems from ""
to "" on the fly when accessed
(can be disabled)dbd can be
used to do conversion in one shotImplementation details:stores Mac Metadata (eg FinderInfo, AFP Flags, Comment,
CNID) in an Extended Attributed named
“org.netatalk.Metadata”stores Mac ResourceFork either inan Extended Attribute named
“org.netatalk.ResourceFork”
on Solaris w. ZFS, or inan extra AppleDouble file named “._file” for a file
named “file”the format of the ._ file is exactly as the Mac’s CIFS
client expects it when accessing the same filesystem via a CIFS
server (Samba), thus you can have parallel access from Macs to the
same dataset via AFP and CIFS without the risk of loosing data
(resources or metadata). Accessing the same dataset with CIFS
from Windows clients will still break the coupling of
“file” and “._file”
on non ZFS filesystems (see above), so for this we still
need an enhanced Samba VFS module (in the works).As these days the only applications making use of Resource Forks
are Adobe Photoshop (image preview) and Postscript Type 1 fonts, even on
eg Linux you’ll get rid of 99% of any extra Netatalk AppleDouble files
(and folders).Other major changesNew service controller daemon netatalk which is responsible for
starting and restarting the AFP and CNID daemons. All bundled
start scripts have been updated, make sure to update yours!The CNID databases are now stored under
/var/netatalk/CNID/
by default. You can use configure --localstatedir=PATH at
compile time to change the location.Netatalk 2.x volume options “usedots” and “upriv” now
enabled by defaultRemoved SLP and AFP proxy supportRemoved type/creator extension mapping
supportUpgradingStop Netatalk 2.xInstall Netatalk 3Manually recreate configuration in
and Update your Netatalk start script (SMF, systemd, whatever...)
to only start netatalkMove afp_voluuid.conf and
afp_signature.conf to the localstate directory (default
/var/netatalk/), you can use afpd -v
in order to find the correct pathStart Netatalk 3Table with old and new configuration file names
old and new configuration file namesOld File NameNew File NameDescription-etc/afp.confnew ini-style format-etc/extmap.confstarting with netatalk 3.0.2etc/netatalk/afp_signature.confvar/netatalk/afp_signature.confmoved to $localstatediretc/netatalk/afp_voluuid.confvar/netatalk/afp_voluuid.confmoved to $localstatediretc/netatalk/netatalk.conf
(/etc/default/netatalk)-obsoleteetc/netatalk/afpd.conf-obsoleteetc/netatalk/afp_ldap.conf-obsoleteetc/netatalk/AppleVolumes.default-obsoleteetc/netatalk/AppleVolumes.system-obsolete~/.AppleVolumes-obsolete
Table with old and new option names
from netatalk.conf (/etc/default/netatalk) to afp.confOld netatalk.confNew afp.confOld Default ValueNew Default ValueSectionDescriptionATALK_NAMEhostname--(G)use gethostname() by defaultATALK_UNIX_CHARSETunix charsetLOCALEUTF8(G)-ATALK_MAC_CHARSETmac charsetMAC_ROMANMAC_ROMAN(G)/(V)-CNID_METAD_RUN-yes--controlled by netatalk(8)AFPD_RUN-yes--controlled by netatalk(8)AFPD_MAX_CLIENTSmax connections20200(G)-AFPD_UAMLISTuam list-U uams_dhx.so,uams_dhx2.souams_dhx.so uams_dhx2.so(G)-AFPD_GUESTguest accountnobodynobody(G)-CNID_CONFIGlog level-l log_notecnid:note(G)-CNID_CONFIGlog file--(G)-ATALKD_RUN-no--AppleTalk is obsoletedPAPD_RUN-no--AppleTalk is obsoletedTIMELORD_RUN-no--AppleTalk is obsoletedA2BOOT_RUN-no--AppleTalk is obsoletedATALK_BGROUND-no--AppleTalk is obsoletedATALK_ZONE-no--AppleTalk is obsoleted
from afpd.conf to afp.confOld afpd.confNew afp.confOld Default ValueNew Default ValueSectionDescription1st field ("-" or "server name")hostname--(G)use gethostname() by default-uamlistuam list-U uams_dhx.so,uams_dhx2.souams_dhx.so uams_dhx2.so(G)--nozeroconfzeroconf-yes (if supported)(G)--advertise_sshadvertise ssh-no(G)--[no]savepasswordsave password-savepasswordyes(G)--[no]setpasswordset password-nosetpasswordno(G)--client_pollingclient polling-no(G)--hostnamehostname--(G)use gethostname() by default-loginmesglogin message--(G)/(V)--guestnameguest accountnobodynobody(G)--passwdfilepasswd fileafppasswdafppasswd(G)--passwdminlenpasswd minlen--(G)--ticklevaltickleval3030(G)--timeouttimeout44(G)--sleepsleep time1010(G)--dsireadbufdsireadbuf1212(G)--server_quantumserver quantum303840303840(G)--volnamelenvolnamelen8080(G)--setuploglog leveldefault log_notedefault:note(G)--setuploglog file--(G)--admingroupadmingroup--(G)--k5servicek5 service--(G)--k5realmk5 realm--(G)--k5keytabk5 keytab--(G)--uampathuam pathetc/netatalk/uams/lib/netatalk/(G)moved to $libdir-ipaddrafp listen--(G)--cnidservercnid serverlocalhost:4700localhost:4700(G)/(V)--portport548548(G)--signaturesignatureauto-(G)--fqdnfqdn--(G)--unixcodepageunix charsetLOCALEUTF8(G)--maccodepagemac charsetMAC_ROMANMAC_ROMAN(G)/(V)--closevolclose vol-no(G)--ntdomainnt domain--(G)--ntseparatornt separator--(G)--dircachesizedircachesize81928192(G)--tcpsndbuftcpsndbuf--(G)OS default-tcprcvbuftcprcvbuf--(G)OS default-fcelistenerfce listener--(G)--fcecoalescefce coalesce--(G)--fceeventsfce events--(G)--fceholdfmodfce holdfmod6060(G)--mimicmodelmimic model--(G)--adminauthuseradmin auth user--(G)--noacl2maccessmap acls-rights(G)--[no]tcp--tcp--always TCP only-[no]ddp--noddp--AppleTalk is obsoleted-[no]transall--tcp -noddp--always TCP only-nodebug----obsolete-[no]slp--noslp--SLP support is obsoleted-[no]uservolfirst--nouservolfirst--uservol is obsoleted-[no]uservol--uservol--uservol is obsoleted-proxy----AppleTalk is obsoleted-defaultvol-AppleVolumes.default--afp.conf only-systemvol-AppleVolumes.system--afp.conf only-loginmaxfail----not supported from the biginning-unsetuplog----obsolete-authprintdir----AppleTalk is obsoleted-ddpaddr----AppleTalk is obsoleted-[no]icon--noicon-obsolete-keepsessions----obsolete. Use kill -HUP.
from afp_ldap.conf to afp.confOld afp_ldap.confNew afp.confOld Default ValueNew Defalut ValueSectionDescriptionldap_serverldap server--(G)-ldap_auth_methodldap auth method--(G)-ldap_auth_dnldap auth dn--(G)-ldap_auth_pwldap auth pw--(G)-ldap_userbaseldap userbase--(G)-ldap_userscopeldap userscope--(G)-ldap_groupbaseldap groupbase--(G)-ldap_groupscopeldap groupscope--(G)-ldap_uuid_attrldap uuid attr--(G)-ldap_uuid_stringldap uuid string--(G)-ldap_name_attrldap name attr--(G)- ldap_group_attrldap group attr--(G)-
from AppleVolumes.* to afp.confOld AppleVolumes.*New afp.confOld Default ValueNew Defalut ValueSectionDescription(leading-dot lines)----move to extmap.conf:DEFAULT:-options:upriv,usedots--use "vol preset ="1st field ("~")----use [Homes] section1st field ("/path")path--(V)-2nd field----use section nameallow:valid users--(V)-deny:invalid users--(V)-rwlist:rwlist--(V)-rolist:rolist--(V)-volcharset:vol charsetUTF8(same as unix charset)(G)/(V)-maccharset:mac charsetMAC_ROMANMAC_ROMAN(G)/(V)-veto:veto files--(V)-cnidscheme:cnid schemedbddbd(V)-casefold:casefold--(V)-adouble:appledoublev2ea(V)v1, osx and sfm are obsoletedcnidserver:cnid serverlocalhost:4700localhost:4700(G)/(V)-dbpath:vol dbpath(volume directory)var/netatalk/CNID/(G)moved to $localstatedirumask:umask00000000(V)-dperm:directory perm00000000(V)-fperm:file perm00000000(V)-password:password--(V)-root_preexec:root preexec--(V)-preexec:preexec--(V)-root_postexec:root postexec--(V)-postexec:postexec--(V)-allowed_hosts:hosts allow--(V)-denied_hosts:hosts deny--(V)-ea:eaautoauto(V)-volsizelimit:vol size limit--(V)-perm:----Use "directory perm" and "file perm"forceuid:----obsoleteforcegid:----obsoleteoptions:roread only-no(V)-options:invisibledotsinvisible dots-no(V)-options:nostatstat vol-yes(V)-options:preexec_closepreexec close-no(V)-options:root_preexec_closeroot preexec close-no(V)-options:uprivunix priv-yes(V)-options:nodevcnid dev-yes(V)-options:illegalseqillegal seq-no(V)-options:tmtime machine-no(V)-options:searchdbsearch db-no(V)-options:nonetidsnetwork ids-yes(V)-options:noaclsacls-yes(V)-options:followsymlinksfollow symlinks-no(V)-options:nohex----auto-convert from ":2f" to ":"options:usedots----auto-convert from ":2e" to "."options:nofileid----obsoleteoptions:prodos----obsoleteoptions:mswindows----obsoleteoptions:crlf----obsoleteoptions:noadouble----obsoleteoptions:limitsize----obsoleteoptions:dropbox----obsoleteoptions:dropkludge----obsoleteoptions:nocnidcache----obsoleteoptions:caseinsensitive----obsolete