Releases: Netatalk/netatalk
Netatalk 4.3.2
Netatalk 4.3.2 is available!
The Netatalk team is proud to announce the latest version in the Netatalk 4.3 release series.
A critical bug preventing authentication with an AD domain via PAM has been fixed.
All users of previous Netatalk versions are encouraged to upgrade to 4.3.2.
This is a source-only release. To build:
# Extract the source
tar -xf netatalk-4.3.2.tar.xz
cd netatalk-4.3.2
# Configure and build
meson setup build
meson compile -C build
# Install
sudo meson install -C buildWhat's Changed
- build(deps): bump SonarSource/sonarqube-scan-action from 5.3.0 to 5.3.1 by @dependabot[bot] in #2394
- Bump to development version 4.3.2 by @rdmark in #2395
- GitHub CI: Refactor the SonarQube scan action with supported GitHub expressions by @rdmark in #2396
- GitHub CI: Change file endings of checksum files to match meson by @rdmark in #2397
- meson.build: check for init bins only if installing service by @EricFromCanada in #2398
- meson.build: prefer mDNS over Avahi on Darwin systems by @trodemaster in #2400
- Bump to bstring 1.0.2 subproject by @rdmark in #2406
- GitHub CI: Install shared bstring library on macOS build job by @rdmark in #2407
- afpd: Revert to non-reentrant getpwnam() in the uam module by @rdmark in #2403
- Release netatalk v4.3.2 by @rdmark in #2409
New Contributors
- @trodemaster made their first contribution in #2400
Full Changelog: netatalk-4-3-1...netatalk-4-3-2
Netatalk 4.3.1
Netatalk 4.3.1 is available!
The Netatalk team is proud to announce the latest version in the Netatalk 4.3 release series.
All users of previous Netatalk versions are encouraged to upgrade to 4.3.1.
This is a source-only release. To build:
# Extract the source
tar -xf netatalk-4.3.1.tar.xz
cd netatalk-4.3.1
# Configure and build
meson setup build
meson compile -C build
# Install
sudo meson install -C buildWhat's Changed
- FIX: afpd: Refactor the afpd version helptext for readability and brevity, GitHub #2367
- FIX: libatalk: remove macros, define interface for netddp_{close, recvfrom, sendto}, GitHub #2383
- FIX: rtmpqry: Fix code quality issues in rtmpqry and disambiguate comments, GitHub #2379
- NEW: testsuite: Added Linux IO monitoring to afp_lantest and refactored results display, GitHub #2354
- The -C option has been renamed to -K in afp_lantest
- FIX: test: Consistently initialize buffers before use in afpd component tests, GitHub #2380
- FIX: docker: Bring back the RandNum password creation by default, GitHub #2338
- NEW: docker: Expose Classic Mac OS login message option, GitHub #2339
- FIX: distrib: substitute lockfile path in netatalkd init scripts for macOS, GitHub #2357
- NEW: docs: Create separate nbplkup and nbprgstr man pages and improve them, GitHub #2336
- UPD: docs: update logtypes list in afp.conf man page, GitHub #2364
- UPD: docs: Flesh out the afpstats.1 man page, GitHub #2389
- NEW: Introduce yaml code style guide and automatic formatting, GitHub #2351
- NEW: contrib: Add support for beautifying markdown to codefmt.sh, GitHub #2356
Full Changelog: netatalk-4-3-0...netatalk-4-3-1
Netatalk 4.3.0
Netatalk 4.3.0 is available!
The Netatalk team is proud to announce the first version in the Netatalk 4.3 release series.
A major addition in this version is the inclusion of an experimental CNID backend that uses a SQLite database.
We have also added a brand new CLI tool for AppleTalk network inspection, called rtmpqry.
One major breaking change in this version, is that we now rely on a shared Better String library (bstring).
In previous versions we statically linked libatalk with a vendored version of bstring.
Since bstring is not widely packaged (yet) we pull in the library as a Meson subproject when building.
Berkeley DB is now effectively an optional dependency. It is possible to build netatalk without dbd support, and rely entirely on f.e. the mysql (or experimental sqlite) backend.
Early adopters are encouraged to try out this new version.
We are looking forward to getting feedback and bug reports from you!
CNID backends
sqlite
This new CNID backend depends on a sqlite v3 library on the host system.
Akin to the dbd backend, it requires no configuration or database administration.
At the time of release, it has been tested in smaller deployments with a small number concurrent users.
It is considered experimental, as it is presently unknown how it performs in a large deployment.
mysql
The mysql backend will now create a volume's CNID dir automatically on startup, which aligns behavior with the other backends.
While the mysql backend doesn't need to store a database file in this directory, it also houses AFP metadata files for the volume.
dbd
Netatalk can now be built without the Database Daemon (dbd) CNID backend.
When dbd support is not built into netatalk, it will no longer launch the cnid_metad or cnid_dbd support daemons either.
AppleTalk tooling
New and improved tools for AppleTalk network inspection and manipulation.
The brand new rtmpqry CLI tool will query RTMP (Routing Table Maintenance Protocol)
for routes and network metadata in an AppleTalk network.
nbplkup has gotten a few new features, notably -s for script-friendly output, -D to specify DDP address, and -f | -l to select the NBP op to use.
getzones is also improved, with a -c option to set Mac charset, -g to get current default Zone and valid network range, -z to validate Zone validity, and -q to list available Zones.
Special thanks to @cheesestraws (Rob Mitchelmore) for the new tool and improvements!
Build system and dependencies
bstring
The bstring shared library and headers are required to build and run netatalk.
This was previously a statically linked library inside libatalk, but the vendored code has been removed in this version.
In the absence of a shared library, the Meson build system will compile and install bstring as a subproject.
CNID backends
A new Meson option of the array type has been introduced to select and build one or more of the available CNID backends.
The default is to build all for which the dependencies are satisfied.
- -Dwith-cnid-backends=dbd,last,mysql,sqlite
At the same time, the following obsolete options have been removed.
- -Dwith-cnid-dbd-backend
- -Dwith-cnid-last-backend
- -Dwith-cnid-mysql-backend
LocalSearch / Tracker
We now require v3 or later of LocalSearch or Tracker for Spotlight indexing. Support for v0.x ~ v2 has been dropped.
Consequently, the following obsolete options have been removed.
- -Dwith-tracker-install-prefix
- -Dwith-tracker-prefix
Containers
The base image has been bumped from Alpine Linux v3.21 to v3.22
We no longer build support for ACLs and Spotlight in the Netatalk container.
These features did not work properly in a containerized environment.
With improvements, they may be enabled again in the future.
Tests
The afp_lantest test tool has been fleshed out with tests that thoroughly examines afpd cashing scenarios.
Special thanks to @andylemin for the contribution!
The afp_speedtest test tool got a number of bugfixes and improvements.
Notably, it is now possible to run batches of multiple tests in multiple iterations.
At the same time, each of the test tools have gotten their own man page,
while the monolithic afptest.1 man page has been removed.
Code quality
We have introduced coding standards and styleguides for C, Perl, POSIX shell, Meson, and Markdown.
These standards are now automatically enforced in the CI pipeline by the respective beautifiers (astyle, perltidy, shfmt, muon, and markdownlint).
A convenience wrapper script contrib/scripts/codefmt.sh has been added that can help you reformat the entire codebase on the fly.
Code contributors no longer have to manually care about formatting, which saves time and makes diffs smaller.
Also, a uniform code style makes the codebase easier to read and maintain overall.
All of the shell scripts have been refactored to be POSIX compliant and run on the sh interpreter rather than bash.
This removes bash as a dependency (for a slimmer container, for instance) and improves cross-platform compatibility.
All of the Perl scripts (including the Webmin module code) have been refactored to pass the strict and warning pragmas.
This prevents bugs and makes execution more reliable and memory safe.
New Contributors
- @dependabot[bot] made their first contribution in #2235
- @andylemin made their first contribution in #2322
Full Changelog: netatalk-4-2-4...netatalk-4-3-0
Netatalk 4.2.4
Netatalk 4.2.4 is available!
The Netatalk team is proud to announce the latest version in the Netatalk 4.2 release series.
This release has fixes for building on macOS with MacPorts, as well as the latest Solaris 11.4.81 CBE release.
BREAKING: When building on macOS with Homebrew, you now must pass the -Dwith-homebrew=true parameter to meson for it to find the libraries and headers installed by Homebrew.
All users of previous Netatalk versions are encouraged to upgrade to 4.2.4.
What's Changed
- docs: Improve afpd and macipgw man pages by @rdmark in #2155
- [4.2] meson: Check for brew include dir before adding it to list by @rdmark in #2190
- [4.2] uams: Check for const pam_message member of pam_conv by @rdmark in #2196
- [4.2] meson: Build and link with Homebrew libraries is now opt-in by @rdmark in #2194
Full Changelog: netatalk-4-2-3...netatalk-4-2-4
Netatalk 4.2.3
Netatalk 4.2.3 is available!
The Netatalk team is proud to announce the latest version in the Netatalk 4.2 release series.
In this version, we ship a handful of fixes that facilitates packaging on OpenWrt and Alpine Linux.
The most notable fix is one that addresses an issue where the afp.conf file passed to netatalk with the -F parameter wasn't read properly.
All users of previous Netatalk versions are encouraged to upgrade to 4.2.3.
What's Changed
- GitHub CI: Build cmark from source on Solaris by @rdmark in #2141
- testsuite: Consistently use STATIC macro on test funcions by @rdmark in #2142
- libatalk: MySQL query error log level is dropped to debug by @rdmark in #2143
- Move macusers script into shell_utils dir by @rdmark in #2145
- Cross platform friendly docs for CNID dir and Spotlight by @rdmark in #2146
- initscripts: Improvements to the OpenRC netatalk init script by @rdmark in #2148
- Consistently return exit code 0 after showing version info by @rdmark in #2151
- netatalk: fix iconv dependency build issue by @APCCV in #2140
- Ensure that
optindis reset on each call to afp_options_parse_cmdline() by @NJRoadfan in #2153 - Read the appletalk option only when netatalk built with DDP by @rdmark in #2149
Full Changelog: netatalk-4-2-2...netatalk-4-2-3
Netatalk 4.2.2
Netatalk 4.2.2 is available!
The Netatalk team is proud to announce the latest version in the Netatalk 4.2 release series.
This release contains overhauled documentation, improvements to the netatalk webmin module, and significant new additions to containerization.
All users of previous Netatalk versions are encouraged to upgrade to 4.2.2.
Containers
Note: The netatalk config files have been moved from /usr/local/etc to /etc/netatalk on the container file system.
This should be transparent for most users, but be mindful of this change if you interact directly with the file system.
When running netatalk in a container, you can now use a MySQL or MariaDB database container with the mysql CNID backend. This is a more scalable and maintainable option to BerkeleyDB.
The netatalk webmin module has also been containerized and can be used as a graphical admin interface for netatalk running in an adjacent container.
In addition, options for enabling Classic Mac OS extension mapping and for disabling Spotlight have been added.
For details on how to use these new container options, see the netatalk container docs
Documentation
The markdown sources of the netatalk documentation have been overhauled for portability and formatting.
In particular the man pages should look nicer now, and transcode to more portable roff code.
In addition to cmark and cmark-gfm, pandoc can now be used to build the documentation.
The output of pandoc is reportedly of higher quality than cmark, in particular for roff man pages.
A workaround has been introduced to make it possible to build the html manual with the cmark reference implementation.
This can come in handy on platforms where cmark-gfm or pandoc are not distributed.
One minor change notable for downstream packagers is that the build system will now install the readme markdown files as-is when neither of cmark, cmark-gfm or pandoc is found.
You can use the -Dwith-docs build system parameter to control which documentation is installed.
What's Changed
- docs: Format man page code blocks without backticks by @rdmark in #2114
- GitHub CI: Use secret context for secure AFP test password handling by @rdmark in #2115
- docs: Touch up afp.conf man page description of cnid schemes by @rdmark in #2118
- libatalk: Create MySQL CNID database automatically if needed by @rdmark in #2119
- testsuite: Skip tests not compatible with the mysql backend by @rdmark in #2120
- docker: Support for the mysql CNID backend in container by @rdmark in #2117
- GitHub CI: Run the spectest against the production netatalk container by @rdmark in #2124
- docker: Introduce an AFP_EXTMAP option to enable extension mapping by @rdmark in #2125
- docker: Introduce AFP_EXCLUDE_TESTS flag for triggering test exclusion by @rdmark in #2126
- webmin: Support the editing of extmap.conf by @rdmark in #2129
- webmin: Correct handling of volume and volume preset names by @rdmark in #2130
- webmin: Treat uams_randnum.so as a standard UAM by @rdmark in #2131
- docker: Containerized netatalk webmin module by @rdmark in #2132
- meson: Use pandoc to generate documentation when available by @rdmark in #2127
- docker: Introduce DISABLE_SPOTLIGHT flag for turning off indexing by @rdmark in #2128
- webmin: Option for hiding service controls by @rdmark in #2133
- meson: Make it possible to generate the html manual with plain cmark by @rdmark in #2134
- meson: Properly build the localized html manual by @rdmark in #2136
- Rewrite the make Compilation readme script in Perl by @rdmark in #2137
- docs: Cleaner markdown sources with contents moved around by @rdmark in #2138
- libatalk: Tweak NULL check logic to appease gcc 13.3 on Ubuntu by @rdmark in #2139
Full Changelog: netatalk-4-2-1...netatalk-4-2-2
Netatalk 4.2.1
Netatalk 4.2.1 is available!
The Netatalk team is proud to announce the latest version in the Netatalk 4.2 release series.
This release contains a range of important bug fixes, new options for downstream packaging, and improvements to testing.
All users of previous Netatalk versions are encouraged to upgrade to 4.2.1.
Bug fixes
The notable bug fixes in this release include:
- Prevent connection error when doing certain file operations with AppleShare Client 3.7.x on Classic Mac OS
- Persistent file extension mapping for Classic Mac OS when running on a macOS host
- Restore functionality of the mysql CNID backend (breakage in 4.2.0)
- Fall back to ea = none when EA check fails, rather than ea = ad (breakage in 4.2.0)
Build system
A handful of of Meson options have been introduced to facilitate downstream packaging.
-Dwith-statedir-creation
boolean, default true
Controls whether the build system should create the Netatalk state directory or not.
On a Debian based system for example, the Netatalk statedir is /var/lib/netatalk. It is required at runtime for Netatalk to store the server signature/UUID as well as CNID database files. If you set this option to false, you will have to create this directory by other means.
-Dwith-cups-pap-backend
boolean, default false
Controls whether to install the pap backend for CUPS or not. In 4.2.0, this was always installed when AppleTalk and CUPS were enabled. However, the behavior changes in 4.2.1 and the pap backend has to be explicitly enabled.
On most platforms, CUPS is treated as a 3rd party package, and a subset of platforms have policies against one package modifying the configuration of another package. Therefore we no longer install this backend by default.
-Dwith-cups-libdir-path
string, default is autodetect
Allows you to set the prefix for the CUPS library path, used when installing the pap backend.
Ex. if the path to the CUPS backend dir is /usr/lib/cups/backend then set -Dwith-cups-libdir-path=/usr/lib
Documentation
The html manual, man pages, and readmes have been improved. Two standout structural changes are:
The Compilation chapter in the html manual has been transitioned to a readme, COMPILATION.md. Therefore, you will find one less html file, and one more readme to handle.
The Installation chapter in the html manual has been harmonized with the INSTALL.md readme. The readme now has all the practical instructions how to build the source code, while the Installation chapter has the higher level overview plus detailed descriptions of the purpose of each dependency.
What's Changed
- Update SECURITY.md with minor version policy by @rdmark in #2066
- Update afp.conf examples with new volume name scheme by @rdmark in #2067
- docs: Reflect accurate authorship of the Japanese localization by @rdmark in #2068
- Remove iniparser's dictionary.h header by @rdmark in #2069
- meson: Introduce option for controlling state dir creation by @rdmark in #2070
- meson: Option for controlling CUPS libdir path prefix and pap backend by @rdmark in #2071
- meson: Generate Unicode lookup table sources before using them by @rdmark in #2072
- webmin: Print volume name as well as section name in volumes list by @rdmark in #2073
- webmin: Sort lists of index page items in alphabetical order by @rdmark in #2074
- webmin: Consistently return to the correct index tab from other actions by @rdmark in #2075
- docker: Tweak startup messages for DDP services by @rdmark in #2076
- bstring: Rename bgetsa function to bgetstreama by @rdmark in #2079
- docs: Join chapters and appendices in website manual sidebar by @rdmark in #2080
- Restore the author’s email address in pap shell script by @rdmark in #2081
- docs: Append man page chapter to man page html file name by @rdmark in #2082
- Consistently credit two authors with email address by @rdmark in #2083
- Create bstring README with redistribution notes and full credits by @rdmark in #2077
- docs: Improve grammar and layout in signature and UUID man pages by @rdmark in #2084
- GitHub CI: FreeBSD has migrated from tracker to localsearch by @rdmark in #2086
- Handle DSIWrite() bug in ASC 3.7.x by @NJRoadfan in #2085
- testsuite: Fix test399() to work with AFP3.4 by @NJRoadfan in #2090
- GitHub CI: Always use latest vmactions runners by @rdmark in #2091
- Fix extension mapping on macOS hosts by @NJRoadfan in #2092
- testsuite: Use common pattern for validating error code in test432 by @rdmark in #2093
- GitHub CI: Actually use Debian Dockerfile for Debian test container by @rdmark in #2094
- testsuite: Print a summary of skipped tests at end of spectest run by @rdmark in #2095
- testsuite: Run test221 with AFP 3.1 or later by @rdmark in #2096
- testsuite: Use matching return value types for DSI status codes by @rdmark in #2098
- docs: Major additions to the afptest man page by @rdmark in #2100
- meson: Do not install the pap CUPS backend by default by @rdmark in #2101
- Fall back to no EA rather than AD when the EA support check fails by @rdmark in #2103
- testsuite: Break out separate FPGetExtAttr test module by @rdmark in #2104
- docs: Transition Compilation from manual chapter to readme by @rdmark in #2106
- GitHub CI: Build the testsuite on all OSes by @rdmark in #2108
- docs: Reduce overlap between install chapter and install readme by @rdmark in #2107
- GitHub CI: Build on FreeBSD with the latest mysql91-client by @rdmark in #2110
- testsuite: Print usage helptext when running test binaries without params by @rdmark in #2111
- libatalk: Restore cnid mysql pw option that had fallen off by @rdmark in #2112
Full Changelog: netatalk-4-2-0...netatalk-4-2-1
Netatalk 4.2.0
Netatalk 4.2.0 is available!
The Netatalk team is proud to announce the first version in the Netatalk 4.2 release series.
This release is recommended for early adopters. We made range of breaking changes under the hood, so please take a backup of your shared volumes before proceeding with an upgrade!
Security and Reliability
Netatalk 4.2 is more resilient against buffer overflows, undefined behavior, memory leaks, etc.
We are now more aggressively controlling and validating the size of buffers, check for NULL pointers, free dynamically allocated memory, initialize variables before use, control filesystem access with file handlers to avoid race conditions, and so on.
For the first time ever, we pass our own Quality Gate on SonarQube.
While we haven't seen any side effects in our testing, there is a small chance that edge cases are seeing different behavior now, for instance due to C strings being truncated instead of allowed to overflow. If you find new bugs, please report them to us!
iniparser
Netatalk 4.2 is now depending on the iniparser shared library on your system. We have dropped our own bundled fork (hacked version) of iniparser.
As a result, iniparser is now a hard dependency for Netatalk. Among our officially supported operating systems, only Oracle Solaris is lacking a packaged iniparser library. On Solaris, you can build your own shared library from upstream tarball. The iniparser library is written in pure C and has no dependencies, so it's trivial to build.
Since we had several local hacks to iniparser, this leads to a handful of changed behaviors. The most notable are:
- So far, Netatalk has relied on ini section names for volume names. However, upstream iniparser treats section names as case insensitive, and will force them to lowercase internally. Hence, you will see that by default, your volumes are now named in all lowercase. For instance, if your volume section is defined as
[My AFP Volume]it will be mounted as my afp volume on a Mac. - To get around the above, we have introduced a
volume nameafp.conf volume section option to customize case insensitive names for your volumes. For the above example, you could do:
[my volume]
volume name = My AFP Volume
path = /path/to/volume
Now the section name between the brackets is simply an internal identifier, and can be set to anything as long as it is a unique section name in afp.conf.
- We no longer support the
includedirective in afp.conf. This was used to dynamically load secondary ini files from within afp.conf. If there is enough demand, we can consider introducing equivalent functionality in the future.
Markdown docs
All XML documentation has been converted to Markdown. We now depend on the light-weight cmark or cmark-gfm to transcode Markdown to roff man pages or html pages for publishing on the website.
This removes Netatalk's dependency on DocBook XSL and the XML stack to build documentation.
Introduces with-docs, with-docs-l10n, and with-website Meson options.
Removes with-manual, with-manual-l10n, and with-readme Meson options.
In most cases you don't have to touch these options. Use with-docs if you want to suppress certain types of documentation.
For instance, if you want to build the roff man pages, and not the html or readme docs, do:
-Dwith-docs=man
Or if you want no docs whatsoever:
-Dwith-docs=
Changes to afp.conf settings
A handful of afp.conf settings have been added, removed, or changed.
appledoublehas been removed – the filesystem metadata settings are now controlled solely by theeaoptionserver namehas been added – enables the AFP server name to be set independently ofhostnamezeroconf namehas been removed – folded intoserver namevolume namehas been added – used for setting case sensitive volume names; see iniparser section abovefce ignore nameshas been modified – now takes a comma delineated list rather than forward slash delineated
Changes to Meson build system options
Overall, the Meson build system has been cleaned up to remove autoconf-isms and obsolete flags.
-Dwith-shadowhas been removed – we always use shadow passwords now when shadow.h is detected-Dwith-unicode-datahas been added – we no longer generate new Unicode lookup tables by default; enable with this option
pap CUPS backend
We now bundle a modified version of Thomas Kaiser's pap backend for CUPS. It will be installed next to the other CUPS backends on your system. It enables printing from modern computers to f.e. a LocalTalk networked Apple LaserWriter.
Edit the backend (which is shell script) to configure other printer models.
Please note that the upcoming CUPS v3 is expected to do away with custom backends. CUPS v2 is recommended.
Secure tmp file handling
Temporary file handling has been standardized and made more secure. Rather than hard coding to /tmp, we are now sensitive to the standard TMPDIR env variable. Also, temporary files will be put under unique named subdirs (netatalk-[pid]) to the tmp folder.
Docker container
Several new features have been added to the Docker container.
DROPBOX– enables guest access with read/write access to the secondary shared volume. Warning: This is highly insecure. Use only on trusted networks.AFP_MIMIC_MODEL– define the AFP volume icon used by macOSAFP_LEGACY_ICON– define the AFP volume icon used by Classic Mac OS
Additionally, the entrypoint script has been converted to POSIX shell, removing the dependency on bash.
What's Changed
- Convert documentation from XML to Markdown by @rdmark in #1905
- docs: Touch up documentation for web publishing by @rdmark in #1917
- docs: Add notes on the po4a dependency to the documentation by @rdmark in #1918
- docs: Use correct Markdown hyperlinks in manual by @rdmark in #1920
- docs: Correct misspelling of uams_cleartxt.so by @rdmark in #1922
- docs: Touch up text styling of manual pages by @rdmark in #1924
- Avoid compiler complaints re: getpwnam() argument being NULL by @sqrmax in #1926
- Remove traces of unsupported LDAP SASL auth by @rdmark in #1925
- meson: Introduce with-unicode-data option to build case tables by @rdmark in #1928
- Bundle Thomas Kaiser's pap backend for CUPS by @rdmark in #1930
- libatalk: Use getaddrinfo() instead of deprecated gethostbyname() by @rdmark in #1934
- uams: Check account validity after calling pam_authenticate() by @rdmark in #1935
- uams: Validate PAM account after root auth in DHX2 UAM by @rdmark in #1937
- Avoid TOCTOU conditions by @rdmark in #1936
- meson: Refactor root includes list by @rdmark in #1939
- meson: Clean up obsolete header and function checks by @rdmark in #1947
- docker: Remove dependence on bash in entry script by @rdmark in #1941
- Link with shared iniparser library by @rdmark in #1948
- GitHub CI: Build without Spotlight support on macOS by @rdmark in #1949
- GitHub CI: SonarQube static analysis in own workflow, using v4 action by @rdmark in #1950
- Fix pointer declaration so it is a const by @sqrmax in #1951
- Improved logging for the case where charset conversion fails by @sqrmax in #1952
- meson: Detect cracklib library and dictionary on macOS / Homebrew by @rdmark in #1953
- Memory and thread safety in afpd and libatalk by @rdmark in #1954
- libatalk: Plug another two potential memory leaks by @rdmark in #1955
- libatalk: Plug yet another potential memory leak by @rdmark in #1956
- Avoid TOCTOU race conditions in libatalk code by @rdmark in #1938
- Make testsuite AppleDouble v2 compatible, and run it in CI by @rdmark in #1958
- libatalk: Use file descriptors and exclusive access to avoid TOCTOU conditions by @rdmark in #1957
- libatalk: Refactor vfs write_ea() to write directly without temp file by @rdmark in #1962
- libatalk: Refactor vfs ea_open() to avoid TOCTOU race condition by @rdmark in #1964
- libatalk: Refactor vfs write_ea() to avoid TOCTOU race condition (take 2) by @rdmark in #1965
- Fix high severity memory safety bugs by @rdmark in #1966
- Config file handling compatible with upstream iniparser by @rdmark in #1968
- docs: Create a more navigation friendly local html manual by @rdmark in #1969
- do...
Netatalk 4.1.2
Netatalk 4.1.2 is available!
The Netatalk team is proud to announce the latest version in the Netatalk 4.1 release series.
This release contains a number of bugfixes to the Webmin module, and a fix to the Meson build script to enable MacPorts packaging.
All users are encouraged to upgrade to 4.1.2.
What's Changed
- Add GPL v2 license grant to mysql CNID backend code by @rdmark in #1874
- [4.1] webmin: Fix
-routerswitch in Webmin atalkd module by @rdmark in #1943 - [4.1] meson: Look for shared Berkeley DB library in versioned subdir too by @rdmark in #1944
- [4.1] webmin: Redirect the appropriate tab when returning from actions by @rdmark in #1945
- [4.1] webmin: Fix a default value helptext string by @rdmark in #1946
Full Changelog: netatalk-4-1-1...netatalk-4-1-2
Netatalk 4.1.1
Netatalk 4.1.1 is available!
The Netatalk team is proud to announce the latest version in the Netatalk 4.1 release series.
This release contains a number of bugfixes and compatibility improvements.
All users are encouraged to upgrade to 4.1.1.
Notable Changes
A -Dwith-bdb-include-path build system option has been added. This is useful when building on systems where lib and include parent dirs are separated, for instance on NixOS. Another build system issue has been fixed that allows for building a Nix package.
The default net values in macipgw.conf have been removed, to avoid potential IP conflicts or tracking. In order to use macipgw, please update the config file first with network settings that match your network and bridge settings.
We have also fixed a bug that caused macipgw to crash when no config file could be found.
What's Changed
- config: Disable default options in macipgw.conf by @rdmark in #1876
- GitHub CI: Cleanup of macOS job by @rdmark in #1878
- docs: Consolidate redundant CNID and encoding info by @rdmark in #1880
- meson: Restore prioritized Berkeley DB detection by @rdmark in #1881
- Add a security patching end-of-life policy by @rdmark in #1885
- GitHub CI: Build on Ubuntu without Unicode data to avoid dirty repo by @rdmark in #1888
- macipgw: Handle scenario when config file is missing by @APCCV in #1891
- macipgw: Correct iniparser status check; free memory afterwards by @rdmark in #1892
- GitHub CI: Bump to DragonFlyBSD vmactions runner 1.1.0 by @rdmark in #1895
- Prevent illegal null pointer calls by @rdmark in #1894
- Matching format specifiers in C strings by @rdmark in #1896
- GitHub CI: Remove openSUSE build job by @rdmark in #1899
- GitHub CI: NetBSD version agnostic PKG_PATH definition by @rdmark in #1901
- macipgw: Print usage notes for the -f option by @rdmark in #1898
- afpd: Log an error in dirchache when directory has invalid did by @rdmark in #1897
- meson: remove hardcoded file command path. by @erichelgeson in #1907
- meson: Remove libquota check that causes breakage on NetBSD by @rdmark in #1903
- meson: Introduce with-bdb-include-path override option by @rdmark in #1908
New Contributors
- @erichelgeson made their first contribution in #1907
Full Changelog: netatalk-4-1-0...netatalk-4-1-1