Netatalk 4.0.0
Netatalk 4.0.0 is available!
The Netatalk team is proud to announce the first release in the Netatalk 4.0 release series.
This release constitutes major changes over Netatalk 3.2, and is recommended for early adopters. We strongly suggest that you take a backup of your production environment before attempting to upgrade an existing Netatalk deployment to 4.0.0.
The standout change in this major feature release is the reintroduction of traditional Macintosh and Apple II networking, namely the AppleTalk transport layer and corresponding tool suite.
This partially reverses the drastic changes in Netatalk 3.0.0 released in early 2012. While the decision made sense in the context of that era, a big part of the appeal of the AFP protocol today lies in the ability to communicate seamlessly between the very latest and very oldest networked Apple machines. Hence, we are excited to bring back the pre-TCP/IP era of Apple networking in today’s release!
In short, we are combining the modern niceties of Netatalk 3 with the backwards compatibility of Netatalk 2, to produce the ultimate Apple networking suite.
Please see NEWS for the full changelog, and find reference documentation in the manual. We are providing a thorough upgrade guide for you who are doing an in-place upgrade of a 3.x or 2.x deployment.
New Features
AppleTalk
The Netatalk AFP file server can once again serve files over AppleTalk, to Macs running System Software 7.x, 6.0.x, as well as networked Apple IIGS and Apple //e machines. In addition, Classic Mac OS 8/9 get the benefit of automatic service discovery that relies on AppleTalk.
We also bring back PAP printing (print from old Macs to modern printers, or a modern machine to LocalTalk printers), an AppleTalk time server, and an Apple II netboot server.
To enable AppleTalk support, Netatalk needs to be built with the -Dwith-appletalk=true
flag, and you need to set appletalk = yes
in your afp.conf file.
New daemons
- atalkd – AppleTalk network management
- papd – Print server
- timelord – Time server
- a2boot – Apple II netboot server
New config files
- atalkd.conf
- papd.conf
New utilities
- aecho – ping AppleTalk servers
- getzones – inquire about AppleTalk zones
- nbplkup – inquire about AppleTalk services
- nbprgstr – register AppleTalk service
- nbpunrgstr – release AppleTalk service registration
- pap – print to LocalTalk printer
- papstatus – inquire the status of a LocalTalk printer
Bundled MacIP
We now bundle the venerable macipgw
daemon with Netatalk, which enables Macs that for some reason don’t have access to a TCP/IP network to browse the web or do file sharing over AFP.
macipgw
was originally written by Stefan Bethke in the late 90s, and has now been bundled with Netatalk with his blessing.
Note that macipgw
is not a plug’n’play app. The user needs to configure a network tunnel and IPv4 address forwarding (and most likely NAT, too) for it to work.
Webmin Module
Webmin is a platform for system administration via a user friendly web app. A first-party Webmin module for Netatalk has existed for 25 years, but for the first time it is now bundled with Netatalk proper. You can build it by passing -Dwith-webmin=true
to the build system, or download and install the module tarball distributed with this release.
Added build time options
Pass the following options to meson setup build
when building Netatalk from source.
-Dwith-appletalk=true|false
– Enable or disable the AppleTalk transport layer.-Dwith-webmin=true|false
- Enable or disable packaging and installing the Webmin module.-Dwith-manual=none|local|www
- The type of html manual to build. (In 3.2 it was a boolean option.)-Dwith-manual-l10n
- List of manual translations to build. Currently supporting onlyja
(Japanese).-Dwith-readmes=true|false
- Install README docs, converted from markdown to plain text-Dwith-init-style
- Now takes a comma separated list of init styles to build. (In 3.2 it was a single style.)-Dwith-unicode-data-path
- Specify the path to the dir containing UnicodeData.txt (see below.)
Added runtime options
The following options can be enabled in afp.conf
.
appletalk
– Enable AFP-over-DDP (AppleTalk) transport layer.ddp address
– The DDP address to bind the AFP file server to.ddp zone
– The AppleTalk zone that the AFP file server will register with.legacy volume size
– Limit the reported volume size to 2GB for very old clients.prodos
– Enable Apple II compatibility mode.
Dependency Changes
Libgcrypt
Netatalk now requires only Libgcrypt for all user authentication. Dependencies on OpenSSL, LibreSSL, and wolfSSL have been completely removed.
GLib and D-Bus
The dependency on the obsoleted dbus-glib
library for the afpstats
tool has been removed, and we now use the native GDBus API of GLib itself.
UnicodeData.txt
While Netatalk previously had pre-generated Unicode lookup tables based on fixed Unicode revisions, we now generate this code at compile time using the UnicodeData.txt database file. Many distributions ship a Unicode package that contains this file, but if your distro lacks one you can download it from unicode.org and point -Dwith-unicode-data-path
to the location where you put it.
DocBook XSL and xstlproc
Netatalk no longer ships canned troff manual pages, but will generate them on the fly from XML sources using xsltproc and DocBook XSL stylesheets. If either of these dependencies is missing, you can disable the documentation with -Dwith-manual=none
.
Deprecated Features
PGP User Authentication Method
The PGP UAM relies on an unofficial Mac OS client that was released as an experiment in the late 90s, and hasn’t been proven working with modern PGP keys. Removed as part of the Libgcrypt migration.
Autotools
The traditional Autotools (libtool / autoconf / automake) build system has been removed, in favor of the Meson build system.
What’s Changed
- Bump to version 1.0.0 of bstrlib by @rdmark in https://github.com/Netatalk/netatalk/pull/1152
- Fix some compiler warnings generated by clang on macOS in https://github.com/Netatalk/netatalk/pull/1103
- Eliminate unused code identified by cppcheck by @rdmark in https://github.com/Netatalk/netatalk/pull/1264
- meson: Detect init style and allow multiple init styles by @rdmark in https://github.com/Netatalk/netatalk/pull/1267
- Remove Autotools build system by @rdmark in https://github.com/Netatalk/netatalk/pull/1272
- Generate and install man pages directly from xml sources by @rdmark in https://github.com/Netatalk/netatalk/pull/1275
- Generate unicode character table sources on the fly by @rdmark in https://github.com/Netatalk/netatalk/pull/1276
- Option to build html manual for local or Web consumption by @rdmark in https://github.com/Netatalk/netatalk/pull/1283
- meson: Move to native method for variable substitution and configure afp.conf by @rdmark in https://github.com/Netatalk/netatalk/pull/1288
- meson: Better output when cryptographic UAMs aren’t built by @rdmark in https://github.com/Netatalk/netatalk/pull/1300
- meson: Install more documentation by default and organize it better by @rdmark in https://github.com/Netatalk/netatalk/pull/1309
- meson: Refactor UAM detection and simplify summary by @rdmark in https://github.com/Netatalk/netatalk/pull/1316
- meson: Rearrange the setup summary for brevity and clarity by @rdmark in https://github.com/Netatalk/netatalk/pull/1323
- Reintroduce AppleTalk transport layer by @rdmark in https://github.com/Netatalk/netatalk/pull/1303
- Reintroduce AppleTalk related manual pages by @rdmark in https://github.com/Netatalk/netatalk/pull/1351
- Initial AppleTalk fixes by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1339
- Fix ASP services to work with 3.x codebase. by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1355
- Create Docker readme; install only converted markdown readme by @rdmark in https://github.com/Netatalk/netatalk/pull/1366
- meson: Install only one CNID README by @rdmark in https://github.com/Netatalk/netatalk/pull/1367
- AppleTalk daemon support in init scripts by @rdmark in https://github.com/Netatalk/netatalk/pull/1369
- meson: Allow selecting multiple init styles by @rdmark in https://github.com/Netatalk/netatalk/pull/1371
- meson: Detect Linux distro and choose an appropriate init style by @rdmark in https://github.com/Netatalk/netatalk/pull/1372
- Flesh out CNID README and put it in the proper subdir by @rdmark in https://github.com/Netatalk/netatalk/pull/1373
- Merge the brunt of AppleTalk documentation by @rdmark in https://github.com/Netatalk/netatalk/pull/1374
- Make largefile mandatory, and clean up Meson controlled features by @rdmark in https://github.com/Netatalk/netatalk/pull/1375
- meson: Introduce option to control which manual l10n to build by @rdmark in https://github.com/Netatalk/netatalk/pull/1376
- meson: Install two AppleTalk headers by @rdmark in https://github.com/Netatalk/netatalk/pull/1399
- Add Back Legacy Options by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1405
- Add AppleTalk support back into afpd by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1435
- Add back “ddp address” option. by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1450
- docker: Build and start AppleTalk services by @rdmark in https://github.com/Netatalk/netatalk/pull/1449
- docs: Update with manual 4.x capabilities and dependencies by @rdmark in https://github.com/Netatalk/netatalk/pull/1457
- Add configuration option for AppleTalk Zone. by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1468
- docs: Japanese localization for 4.0.0 manual by @rdmark in https://github.com/Netatalk/netatalk/pull/1470
- Fix crash in uam.c when connecting via ASP by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1479
- docker: Make AFP_GROUP mandatory, refactor group assignments by @rdmark in https://github.com/Netatalk/netatalk/pull/1478
- docker: The ability to customize the secondary shared volume by @rdmark in https://github.com/Netatalk/netatalk/pull/1484
- docs: Flag newly added options in the Upgrade chapter by @rdmark in https://github.com/Netatalk/netatalk/pull/1485
- Look for poll.h header in standard location by @rdmark in https://github.com/Netatalk/netatalk/pull/1486
- Switch Randnum UAM to use libgcrypt by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1488
- docs: RandNum UAM now relies on Libgcrypt by @rdmark in https://github.com/Netatalk/netatalk/pull/1489
- Migrate afpstats from dbus-glib to GDBus by @rdmark in https://github.com/Netatalk/netatalk/pull/1490
- cnid_dbd: Run setgroups() before changing user by @rdmark in https://github.com/Netatalk/netatalk/pull/1510
- Switch DHCAST128 UAM to use libgcrypt by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1506
- Fix sighandler crash when using AppleTalk by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1523
- Fix RandNum UAM password change by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1524
- Remove PGP UAM by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1525
- Updates to docs and Dockerfile for 4.0.0 release by @rdmark in https://github.com/Netatalk/netatalk/pull/1526
- Remove the bundled wolfSSL library by @rdmark in https://github.com/Netatalk/netatalk/pull/1527
- Update systemd.netatalk.service.in to support atalkd by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1539
- Cleanup libgcrypt initialization by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1540
- Use .in as file ending for templates consistently by @rdmark in https://github.com/Netatalk/netatalk/pull/1535
- Bundle, configure and install the Webmin module by @rdmark in https://github.com/Netatalk/netatalk/pull/1532
- meson: Link with gobject and gio dependencies for afpstats by @rdmark in https://github.com/Netatalk/netatalk/pull/1542
- Integrate macipgw into the project by @rdmark in https://github.com/Netatalk/netatalk/pull/1543
- Fix macipgw, allow it to bind to DDP Port 72 by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1552
- initscripts: add atalkd dependencies and remove NBP unregister steps by @rdmark in https://github.com/Netatalk/netatalk/pull/1548
- uams: Disable incorrect libgcrypt library version validation by @rdmark in https://github.com/Netatalk/netatalk/pull/1553
- macipgw: Merge Jason King’s rewrite of the Linux tunnel by @rdmark in https://github.com/Netatalk/netatalk/pull/1556
- initscripts: Don’t define nonexistent pid file for NetBSD scripts by @rdmark in https://github.com/Netatalk/netatalk/pull/1561
- initscripts: Create macipgw template start scripts by @rdmark in https://github.com/Netatalk/netatalk/pull/1560
- Fix critical read error in fork.c by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1564
- errno.h should always be available by @rdmark in https://github.com/Netatalk/netatalk/pull/1563
- NEWS for 4.0.0 release by @rdmark in https://github.com/Netatalk/netatalk/pull/1544
- GitHub CI: Update ignore rules by @rdmark in https://github.com/Netatalk/netatalk/pull/1565
Full Changelog: https://github.com/Netatalk/netatalk/compare/netatalk-3-2-10…netatalk-4-0-0
Note: The Debian deb package distributed with this release is built for Debian 12 Bookworm.
Release published on 2024-09-29
Generated from the original at GitHub