aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2024-06-17 16:48:20 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2024-06-17 16:48:20 +0000
commita255fc39c641695d0e633a8f3b559f378d4ebeda (patch)
treedf303b9e1a97f3b829e3b4ad8ceecdebe0714ddc
parent3d3011ea569f740781883e2e35e7eb2e0d91fdb7 (diff)
net/netatalk3: Update to 3.2.0
See https://github.com/Netatalk/netatalk/releases/tag/netatalk-3-2-0 for the list of changes in this release. A big change was a move to Meson for build. This introduced some new breakages, but I think I have fixed them. Runtime tests show functionality is on par with 3.1.
-rw-r--r--net/netatalk3/Makefile82
-rw-r--r--net/netatalk3/distinfo6
-rw-r--r--net/netatalk3/files/patch-bin_meson.build9
-rw-r--r--net/netatalk3/files/patch-config_Makefile.in42
-rw-r--r--net/netatalk3/files/patch-config_meson.build29
-rw-r--r--net/netatalk3/files/patch-configure11
-rw-r--r--net/netatalk3/files/patch-contrib_shell__utils_meson.build14
-rw-r--r--net/netatalk3/files/patch-etc_afpd_Makefile.in20
-rw-r--r--net/netatalk3/files/patch-etc_cnid__dbd_cnid__metad.c10
-rw-r--r--net/netatalk3/files/patch-etc_netatalk_Makefile.in11
-rw-r--r--net/netatalk3/files/patch-etc_uams_meson.build222
-rw-r--r--net/netatalk3/files/patch-etc_uams_uams__dhx2__pam.c11
-rw-r--r--net/netatalk3/files/patch-etc_uams_uams__dhx__pam.c19
-rw-r--r--net/netatalk3/files/patch-etc_uams_uams__pam.c11
-rw-r--r--net/netatalk3/files/patch-libatalk_adouble_ad__open.c43
-rw-r--r--net/netatalk3/files/patch-meson.build81
-rw-r--r--net/netatalk3/pkg-plist6
17 files changed, 402 insertions, 225 deletions
diff --git a/net/netatalk3/Makefile b/net/netatalk3/Makefile
index 6c8c38771d02..eecc32512471 100644
--- a/net/netatalk3/Makefile
+++ b/net/netatalk3/Makefile
@@ -1,9 +1,8 @@
PORTNAME= netatalk
-PORTVERSION= 3.1.18
-PORTREVISION= 3
+PORTVERSION= 3.2.0
PORTEPOCH= 1
CATEGORIES= net
-MASTER_SITES= SF/${PORTNAME}/${PORTNAME}-${PORTVERSION:S/./-/g}
+MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/netatalk-${PORTVERSION:S/./-/g}/
PKGNAMESUFFIX= 3
MAINTAINER= marcus@FreeBSD.org
@@ -15,63 +14,66 @@ LICENSE= GPLv2
LIB_DEPENDS= libgcrypt.so:security/libgcrypt \
libevent.so:devel/libevent
-USES= bdb:18 cpe gettext gmake iconv libtool perl5 pkgconfig shebangfix ssl tar:bzip2
-GNU_CONFIGURE= yes
-GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share
+USES= bdb:18 cpe gettext iconv meson perl5 pkgconfig shebangfix ssl tar:xz
USE_LDCONFIG= yes
USE_RC_SUBR= netatalk
-INSTALL_TARGET=install-strip
+#INSTALL_TARGET=install-strip
CPE_VENDOR= netatalk_project
-CONFIGURE_ARGS+= --with-pkgconfdir=${PREFIX}/etc \
- --with-libgcrypt-dir=${LOCALBASE} \
- --with-uams-path=${PREFIX}/libexec/netatalk-uams \
- --with-bdb=${LOCALBASE} \
- ${ICONV_CONFIGURE_BASE} \
+MESON_ARGS= -Dwith-libgcrypt-dir=${LOCALBASE} \
+ -Dwith-bdb=${LOCALBASE} \
+ -Dwith-libiconv=${LOCALBASE} \
+ -Dwith-ssl-dir=${OPENSSLBASE} \
+ -Dwith-dtrace=false \
+ -Ddisable-init-hooks=true \
+ -Dpkg_config_path=${LOCALBASE}/libdata/pkgconfig \
+ -Dwith-shadow=disabled \
+ -Denable-pgp-uam=disabled \
--localstatedir=/var \
- --disable-bundled-libevent \
- --with-libevent-header=${LOCALBASE}/include \
- --with-libevent-lib=${LOCALBASE}/lib \
- --with-ssl-dir=${OPENSSLBASE} \
- --without-dtrace
+ --infodir=${PREFIX}/share/info
-OPTIONS_DEFINE=PAM KERBEROS5 LDAP SENDFILE KERBEROS DBUS MYSQL ACL LIBWRAP
-OPTIONS_DEFAULT=AVAHI DBUS KERBEROS LIBWRAP
+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_CONFIGURE_ON= --enable-krbV-uam
-KERBEROS_CONFIGURE_WITH=kerberos
+KERBEROS5_MESON_ON= -Denable-krbV-uam=enabled \
+ -Dwith-kerberos=enabled
+KERBEROS5_MESON_OFF= -Denable-krbV-uam=disabled \
+ -Dwith-kerberos=disabled
KERBEROS_LIB_DEPENDS=libgpg-error.so:security/libgpg-error
-PAM_CONFIGURE_WITH=pam
-AVAHI_CONFIGURE_ON= --enable-zeroconf=${LOCALBASE}
+PAM_MESON_ON= -Dwith-pam=${LOCALBASE}
+PAM_MESON_OFF= -Dwithout-pam=true
AVAHI_CFLAGS= -I${LOCALBASE}/include -L${LOCALBASE}/lib
AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app
AVAHI_SUB_LIST= ZEROCONF="avahi_daemon"
-MDNSRESPONDER_CONFIGURE_ON= --enable-zeroconf=${LOCALBASE}
-MDNSRESPONDER_CONFIGURE_ENV= ac_cv_lib_avahi_client_avahi_client_new=no
MDNSRESPONDER_CFLAGS= -I${LOCALBASE}/include -L${LOCALBASE}/lib
MDNSRESPONDER_LIB_DEPENDS= libdns_sd.so:net/mDNSResponder
MDNSRESPONDER_SUB_LIST= ZEROCONF="mdnsd"
-LDAP_CONFIGURE_ON= --with-ldap=${LOCALBASE}
+LDAP_MESON_ON= -Dwith-ldap=${LOCALBASE}
LDAP_CFLAGS= -I${LOCALBASE}/include -L${LOCALBASE}/lib
LDAP_USES= ldap
-LDAP_CONFIGURE_OFF= --without-ldap
-SENDFILE_CONFIGURE_ENABLE=sendfile
+SENDFILE_MESON_OFF=-Ddisable-sendfile=true
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=${LOCALBASE}/bin/dbus-daemon \
+ -Dwith-dbus-sysconf-dir=${LOCALBASE}/etc/dbus-1/system.d
+DBUS_MESON_OFF= -Dwith-afpstats=disabled
MYSQL_USES= mysql
-MYSQL_CONFIGURE_OFF=--with-mysql-config=/nonexistent
+MYSQL_MESON_OFF=-Dwith-mysql-config=/nonexistent
ACL_LIB_DEPENDS= libsunacl.so:sysutils/libsunacl
-ACL_CONFIGURE_WITH=acls
-LIBWRAP_CONFIGURE_ENABLE=tcp-wrappers
+ACL_MESON_ENABLED=with-acls
+LIBWRAP_MESON_OFF=-Ddisable-tcp-wrappers=true
+SPOTLIGHT_LIB_DEPENDS= libtracker-sparql-3.0.so:sysutils/tracker3
+SPOTLIGHT_MESON_OFF= -Dwith-spotlight=disabled
SHEBANG_GLOB= afpstats
@@ -81,21 +83,21 @@ CONFLICTS= jday yudit # bin/dbd man/man1/uniconv.1.gz
.if ${PORT_OPTIONS:MAVAHI}=="" && ${PORT_OPTIONS:MMDNSRESPONDER}==""
SUB_LIST+= ZEROCONF=""
-CONFIGURE_ARGS+=--disable-zeroconf
+MESON_ARGS+=-Denable-zeroconf=false
.endif
-post-patch:
- @${REINPLACE_CMD} -e 's|%%DB_NAME%%|${BDB_INCLUDE_DIR:T}| ; \
- s|%%DB_LIB%%|-l${BDB_LIB_NAME}|g ; \
- s|%%LOCALBASE%%|${LOCALBASE}|g' \
- ${WRKSRC}/configure
- @${REINPLACE_CMD} -e 's|\.dist|\.sample|g' \
- ${WRKSRC}/config/Makefile.in
+#post-patch:
+# @${REINPLACE_CMD} -e 's|%%DB_NAME%%|${BDB_INCLUDE_DIR:T}| ; \
+# s|%%DB_LIB%%|-l${BDB_LIB_NAME}|g ; \
+# s|%%LOCALBASE%%|${LOCALBASE}|g' \
+# ${WRKSRC}/configure
+# @${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} ${WRKSRC}/contrib/macusers/macusers \
+ ${INSTALL_SCRIPT} ${BUILD_WRKSRC}/contrib/macusers/macusers \
${STAGEDIR}${PREFIX}/bin/macusers
.if ${PORT_OPTIONS:MPAM}
diff --git a/net/netatalk3/distinfo b/net/netatalk3/distinfo
index efbf316af387..93e2d66a8051 100644
--- a/net/netatalk3/distinfo
+++ b/net/netatalk3/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1696633959
-SHA256 (netatalk-3.1.18.tar.bz2) = 86d209dc7776a4ba17845164d2e376a469cee376a27b18ae31898e3f4ba41655
-SIZE (netatalk-3.1.18.tar.bz2) = 1249785
+TIMESTAMP = 1718627379
+SHA256 (netatalk-3.2.0.tar.xz) = 0c2b4b47450bc7ac95a268d1033471f572a3e06b64131fcef9b66e73663b6d08
+SIZE (netatalk-3.2.0.tar.xz) = 1927124
diff --git a/net/netatalk3/files/patch-bin_meson.build b/net/netatalk3/files/patch-bin_meson.build
new file mode 100644
index 000000000000..30e56c12f969
--- /dev/null
+++ b/net/netatalk3/files/patch-bin_meson.build
@@ -0,0 +1,9 @@
+--- bin/meson.build.orig 2024-06-17 15:51:32 UTC
++++ bin/meson.build
+@@ -2,5 +2,5 @@ endif
+ if have_ssl
+ subdir('afppasswd')
+ endif
+-subdir('cnid')
++#subdir('cnid')
+ subdir('misc')
diff --git a/net/netatalk3/files/patch-config_Makefile.in b/net/netatalk3/files/patch-config_Makefile.in
deleted file mode 100644
index da20e2b6b179..000000000000
--- a/net/netatalk3/files/patch-config_Makefile.in
+++ /dev/null
@@ -1,42 +0,0 @@
---- config/Makefile.in.orig 2022-03-22 04:51:08 UTC
-+++ config/Makefile.in
-@@ -824,8 +824,8 @@ install-data-local: install-config-files
-
- uninstall-local:
- @for f in $(CONFFILES) $(GENFILES); do \
-- echo rm -f $(DESTDIR)$(pkgconfdir)/$$f; \
-- rm -f $(DESTDIR)$(pkgconfdir)/$$f; \
-+ echo rm -f $(DESTDIR)$(pkgconfdir)/$$f.sample; \
-+ rm -f $(DESTDIR)$(pkgconfdir)/$$f.sample; \
- done
- rm -f $(DESTDIR)$(pkgconfdir)/dbus-session.conf
- rm -f $(DESTDIR)$(localstatedir)/netatalk/README
-@@ -835,21 +835,16 @@ uninstall-local:
- install-config-files: $(CONFFILES) $(GENFILES)
- $(mkinstalldirs) $(DESTDIR)$(pkgconfdir)
- @for f in $(CONFFILES) ; do \
-- if test "x$(OVERWRITE_CONFIG)" = "xyes" -o ! -f $(DESTDIR)$(pkgconfdir)/$$f; then \
-- echo "$(INSTALL_DATA) $$f $(DESTDIR)$(pkgconfdir)"; \
-- $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(pkgconfdir); \
-- else \
-- echo "not overwriting $$f"; \
-- fi; \
-+ echo "$(INSTALL_DATA) $$f $(DESTDIR)$(pkgconfdir)/$$f.sample"; \
-+ $(INSTALL_DATA) $$f $(DESTDIR)$(pkgconfdir)/$$f.sample; \
- done
- @for f in $(GENFILES); do \
-- if test "x$(OVERWRITE_CONFIG)" = "xyes" -o ! -f $(DESTDIR)$(pkgconfdir)/$$f; then \
-- echo "$(INSTALL_DATA) $$f $(DESTDIR)$(pkgconfdir)"; \
-- $(INSTALL_DATA) $$f $(DESTDIR)$(pkgconfdir); \
-- else \
-- echo "not overwriting $$f"; \
-- fi; \
-+ if [ $$f != "dbus-session.conf" ]; then \
-+ echo "$(INSTALL_DATA) $$f $(DESTDIR)$(pkgconfdir)/$$f.sample"; \
-+ $(INSTALL_DATA) $$f $(DESTDIR)$(pkgconfdir)/$$f.sample; \
-+ fi; \
- done
-+ $(INSTALL_DATA) dbus-session.conf $(DESTDIR)$(pkgconfdir)/dbus-session.conf.netatalk
-
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/net/netatalk3/files/patch-config_meson.build b/net/netatalk3/files/patch-config_meson.build
new file mode 100644
index 000000000000..fa35b01c47cf
--- /dev/null
+++ b/net/netatalk3/files/patch-config_meson.build
@@ -0,0 +1,29 @@
+--- config/meson.build.orig 2024-06-01 04:56:52 UTC
++++ config/meson.build
+@@ -7,23 +7,16 @@ custom_target(
+ custom_target(
+ 'dbus_session',
+ input: 'dbus-session.conf.tmpl',
+- output: 'dbus-session.conf',
++ output: 'dbus-session.conf.netatalk',
+ command: sed_command,
+ capture: true,
+ install: true,
+ install_dir: pkgconfdir,
+ )
+
+-if (
+- not fs.exists(pkgconfdir / 'afp.conf')
+- or (get_option('enable-overwrite') and fs.exists(pkgconfdir / 'afp.conf'))
+-)
+- install_data(afp_conf, install_dir: pkgconfdir)
+-else
+- message('not overwriting', 'afp.conf')
+-endif
++install_data(afp_conf, rename: 'afp.conf.sample', install_dir: pkgconfdir)
+
+-install_data('extmap.conf', install_dir: pkgconfdir)
++install_data('extmap.conf', rename: 'extmap.conf.sample', install_dir: pkgconfdir)
+
+ install_data('netatalk-dbus.conf', install_dir: dbus_sysconf_dir)
+
diff --git a/net/netatalk3/files/patch-configure b/net/netatalk3/files/patch-configure
deleted file mode 100644
index 65d60417021b..000000000000
--- a/net/netatalk3/files/patch-configure
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.orig 2023-09-11 13:10:58.000000000 -0400
-+++ configure 2023-09-13 15:28:59.173250000 -0400
-@@ -19064,7 +19078,7 @@ if test "x$bdb_required" = "xyes"; then
- trybdbdir=""
- dobdbsearch=yes
- bdb_search_dirs="/usr/local /usr"
-- search_subdirs="/ /db6.1 /db6 /db5 /db5.3 /db5.2 /db5.1 /db51 /db5.0 /db50 /db4.8 /db48 /db4.7 /db47 /db4.6 /db46 /db4"
-+ search_subdirs="/%%DB_NAME%% / /db6.1 /db6 /db5 /db5.3 /db5.2 /db5.1 /db51 /db5.0 /db50 /db4.8 /db48 /db4.7 /db47 /db4.6 /db46 /db4"
-
- bdbfound=no
- savedcflags="$CFLAGS"
diff --git a/net/netatalk3/files/patch-contrib_shell__utils_meson.build b/net/netatalk3/files/patch-contrib_shell__utils_meson.build
new file mode 100644
index 000000000000..966e3b61a6cc
--- /dev/null
+++ b/net/netatalk3/files/patch-contrib_shell__utils_meson.build
@@ -0,0 +1,14 @@
+--- contrib/shell_utils/meson.build.orig 2024-06-17 15:52:57 UTC
++++ contrib/shell_utils/meson.build
+@@ -24,8 +24,8 @@ endif
+ install_data(asipstatus_script, install_dir: bindir)
+ endif
+
+-install_data('fce_ev_script.sh', install_dir: bindir)
++#install_data('fce_ev_script.sh', install_dir: bindir)
+
+-install_data('make-casetable.pl', install_dir: bindir)
++#install_data('make-casetable.pl', install_dir: bindir)
+
+-install_data('make-precompose.h.pl', install_dir: bindir)
++#install_data('make-precompose.h.pl', install_dir: bindir)
diff --git a/net/netatalk3/files/patch-etc_afpd_Makefile.in b/net/netatalk3/files/patch-etc_afpd_Makefile.in
deleted file mode 100644
index 8272f7c82518..000000000000
--- a/net/netatalk3/files/patch-etc_afpd_Makefile.in
+++ /dev/null
@@ -1,20 +0,0 @@
---- etc/afpd/Makefile.in.orig 2023-02-26 19:09:30.000000000 -0500
-+++ etc/afpd/Makefile.in 2023-02-27 11:43:02.278126000 -0500
-@@ -185,7 +185,7 @@ AM_V_at = $(am__v_at_@AM_V@)
- am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
- am__v_at_0 = @
- am__v_at_1 =
--DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I$(top_builddir)/include
- depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
- am__maybe_remake_depfiles = depfiles
- am__depfiles_remade = ./$(DEPDIR)/afpd-acls.Po \
-@@ -485,7 +485,7 @@ afpd_SOURCES = afp_config.c afp_dsi.c afp_options.c af
- $(am__append_7)
- afpd_LDADD = $(top_builddir)/libatalk/libatalk.la @LIBGCRYPT_LIBS@ \
- @QUOTA_LIBS@ @WRAP_LIBS@ @LIBADD_DL@ @ACL_LIBS@ @PTHREAD_LIBS@ \
-- @GSSAPI_LIBS@ @KRB5_LIBS@ @MYSQL_LIBS@ $(am__append_2) \
-+ @GSSAPI_LIBS@ @KRB5_LIBS@ @MYSQL_LIBS@ @PAM_LIBS@ $(am__append_2) \
- $(am__append_10)
- afpd_LDFLAGS = -export-dynamic $(am__append_9)
- afpd_CFLAGS = @GSSAPI_CFLAGS@ @KRB5_CFLAGS@ @PTHREAD_CFLAGS@ \
diff --git a/net/netatalk3/files/patch-etc_cnid__dbd_cnid__metad.c b/net/netatalk3/files/patch-etc_cnid__dbd_cnid__metad.c
deleted file mode 100644
index e5788547b681..000000000000
--- a/net/netatalk3/files/patch-etc_cnid__dbd_cnid__metad.c
+++ /dev/null
@@ -1,10 +0,0 @@
---- etc/cnid_dbd/cnid_metad.c.orig 2016-06-06 11:21:51 UTC
-+++ etc/cnid_dbd/cnid_metad.c
-@@ -39,6 +39,7 @@
- #include <string.h>
- #include <signal.h>
- #include <sys/types.h>
-+#include <sys/resource.h>
- #include <sys/time.h>
- #include <sys/resource.h>
- #include <sys/wait.h>
diff --git a/net/netatalk3/files/patch-etc_netatalk_Makefile.in b/net/netatalk3/files/patch-etc_netatalk_Makefile.in
deleted file mode 100644
index 653d80151e46..000000000000
--- a/net/netatalk3/files/patch-etc_netatalk_Makefile.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- etc/netatalk/Makefile.in.orig 2022-05-01 17:38:31 UTC
-+++ etc/netatalk/Makefile.in
-@@ -433,7 +433,7 @@ netatalk_LDADD = \
- @ZEROCONF_LIBS@ \
- $(top_builddir)/libatalk/libatalk.la
-
--netatalk_LDFLAGS = @LIBEVENT_LDFLAGS@ -levent
-+netatalk_LDFLAGS = @LIBEVENT_LIBS@
- noinst_HEADERS = afp_zeroconf.h afp_avahi.h afp_mdns.h
- all: all-am
-
diff --git a/net/netatalk3/files/patch-etc_uams_meson.build b/net/netatalk3/files/patch-etc_uams_meson.build
new file mode 100644
index 000000000000..1dbf90df9078
--- /dev/null
+++ b/net/netatalk3/files/patch-etc_uams_meson.build
@@ -0,0 +1,222 @@
+--- etc/uams/meson.build.orig 2024-06-17 15:24:00 UTC
++++ etc/uams/meson.build
+@@ -7,7 +7,7 @@ uams_guest = shared_module(
+ name_prefix: '',
+ name_suffix: 'so',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ uams_guest = static_library(
+@@ -16,7 +16,7 @@ uams_guest = static_library(
+ include_directories: root_includes,
+ name_prefix: '',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ uams_passwd_sources = ['uams_passwd.c']
+@@ -29,7 +29,7 @@ uams_passwd = shared_module(
+ name_prefix: '',
+ name_suffix: 'so',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ uams_passwd = static_library(
+@@ -39,7 +39,7 @@ uams_passwd = static_library(
+ dependencies: [crypt],
+ name_prefix: '',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ ssl_links = []
+@@ -60,7 +60,7 @@ if have_ssl
+ name_prefix: '',
+ name_suffix: 'so',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ build_rpath: libdir,
+ install_rpath: libdir,
+ )
+@@ -73,7 +73,7 @@ if have_ssl
+ link_with: ssl_links,
+ name_prefix: '',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ build_rpath: libdir,
+ install_rpath: libdir,
+ )
+@@ -89,7 +89,7 @@ if have_ssl
+ name_prefix: '',
+ name_suffix: 'so',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ build_rpath: libdir,
+ install_rpath: libdir,
+ )
+@@ -102,20 +102,20 @@ if have_ssl
+ link_with: ssl_links,
+ name_prefix: '',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ build_rpath: libdir,
+ install_rpath: libdir,
+ )
+
+ install_symlink(
+ 'uams_dhx.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_dhx_pam.so',
+ )
+ else
+ install_symlink(
+ 'uams_dhx.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_dhx_passwd.so',
+ )
+ endif
+@@ -132,7 +132,7 @@ if have_libgcrypt
+ name_prefix: '',
+ name_suffix: 'so',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ uams_dhx2_passwd = static_library(
+@@ -142,7 +142,7 @@ if have_libgcrypt
+ dependencies: [crypt, libgcrypt],
+ name_prefix: '',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+ if have_pam
+ uams_dhx2_pam_sources = ['uams_dhx2_pam.c']
+@@ -155,7 +155,7 @@ if have_libgcrypt
+ name_prefix: '',
+ name_suffix: 'so',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ uams_dhx2_pam = static_library(
+@@ -165,18 +165,18 @@ if have_libgcrypt
+ dependencies: [pam, libgcrypt],
+ name_prefix: '',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ install_symlink(
+ 'uams_dhx2.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_dhx2_pam.so',
+ )
+ else
+ install_symlink(
+ 'uams_dhx2.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_dhx2_passwd.so',
+ )
+ endif
+@@ -193,7 +193,7 @@ if have_pam
+ name_prefix: '',
+ name_suffix: 'so',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ uams_pam = static_library(
+@@ -203,18 +203,18 @@ if have_pam
+ dependencies: pam,
+ name_prefix: '',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ install_symlink(
+ 'uams_clrtxt.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_pam.so',
+ )
+ else
+ install_symlink(
+ 'uams_clrtxt.so',
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ pointing_to: 'uams_passwd.so',
+ )
+ endif
+@@ -231,7 +231,7 @@ if have_ssl
+ name_prefix: '',
+ name_suffix: 'so',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ build_rpath: libdir,
+ install_rpath: libdir,
+ )
+@@ -244,7 +244,7 @@ if have_ssl
+ link_with: ssl_links,
+ name_prefix: '',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ build_rpath: libdir,
+ install_rpath: libdir,
+ )
+@@ -261,7 +261,7 @@ if enable_pgp_uam
+ name_prefix: '',
+ name_suffix: 'so',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ uams_pgp = static_library(
+@@ -271,7 +271,7 @@ if enable_pgp_uam
+ dependencies: [crypt, ssl_deps],
+ name_prefix: '',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+ endif
+
+@@ -287,7 +287,7 @@ if have_gssapi
+ name_prefix: '',
+ name_suffix: 'so',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+
+ uams_gss = static_library(
+@@ -298,6 +298,6 @@ if have_gssapi
+ c_args: kerberos_c_args,
+ name_prefix: '',
+ install: true,
+- install_dir: libdir / 'netatalk',
++ install_dir: libexecdir / 'netatalk-uams',
+ )
+ endif
diff --git a/net/netatalk3/files/patch-etc_uams_uams__dhx2__pam.c b/net/netatalk3/files/patch-etc_uams_uams__dhx2__pam.c
deleted file mode 100644
index 51c31679b6c8..000000000000
--- a/net/netatalk3/files/patch-etc_uams_uams__dhx2__pam.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- etc/uams/uams_dhx2_pam.c.orig 2023-11-22 15:19:12 UTC
-+++ etc/uams/uams_dhx2_pam.c
-@@ -136,7 +136,7 @@ error:
- * echo off means password.
- */
- static int PAM_conv (int num_msg,
--#ifdef LINUX
-+#if defined(LINUX) || (defined(FREEBSD) && __FreeBSD_version >= 1400000)
- const struct pam_message **msg,
- #else
- struct pam_message **msg,
diff --git a/net/netatalk3/files/patch-etc_uams_uams__dhx__pam.c b/net/netatalk3/files/patch-etc_uams_uams__dhx__pam.c
deleted file mode 100644
index ec176f5a80d0..000000000000
--- a/net/netatalk3/files/patch-etc_uams_uams__dhx__pam.c
+++ /dev/null
@@ -1,19 +0,0 @@
---- etc/uams/uams_dhx_pam.c.orig 2023-11-22 15:18:15 UTC
-+++ etc/uams/uams_dhx_pam.c
-@@ -8,6 +8,7 @@
- #ifdef HAVE_CONFIG_H
- #include "config.h"
- #endif /* HAVE_CONFIG_H */
-+#include <sys/param.h>
-
- #if defined(USE_PAM) && defined(UAM_DHX)
- #include <stdio.h>
-@@ -80,7 +80,7 @@ static char *PAM_password;
- * echo off means password.
- */
- static int PAM_conv (int num_msg,
--#ifdef LINUX
-+#if defined(LINUX) || (defined(__FreeBSD_version) && __FreeBSD_version >= 1400000)
- const struct pam_message **msg,
- #else
- struct pam_message **msg,
diff --git a/net/netatalk3/files/patch-etc_uams_uams__pam.c b/net/netatalk3/files/patch-etc_uams_uams__pam.c
deleted file mode 100644
index 8bec8c72a221..000000000000
--- a/net/netatalk3/files/patch-etc_uams_uams__pam.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- etc/uams/uams_pam.c.orig 2023-11-22 15:00:28 UTC
-+++ etc/uams/uams_pam.c
-@@ -53,7 +53,7 @@ extern UAM_MODULE_EXPORT void append(struct papfile *,
- * echo off means password.
- */
- static int PAM_conv (int num_msg,
--#ifdef LINUX
-+#if defined(LINUX) || (defined(FREEBSD) && __FreeBSD_version >= 1400000)
- const struct pam_message **msg,
- #else
- struct pam_message **msg,
diff --git a/net/netatalk3/files/patch-libatalk_adouble_ad__open.c b/net/netatalk3/files/patch-libatalk_adouble_ad__open.c
deleted file mode 100644
index 05102b8d34df..000000000000
--- a/net/netatalk3/files/patch-libatalk_adouble_ad__open.c
+++ /dev/null
@@ -1,43 +0,0 @@
---- libatalk/adouble/ad_open.c.orig 2024-01-02 07:44:09 UTC
-+++ libatalk/adouble/ad_open.c
-@@ -668,6 +668,11 @@ reread:
- int retry_read = 0;
-
- reread:
-+ if (hst == NULL) {
-+ hst = &st;
-+ EC_NEG1( fstat(ad_reso_fileno(ad), hst) );
-+ }
-+
- LOG(log_debug, logtype_ad, "ad_header_read_osx: %s", path ? fullpathname(path) : "");
- ad_init_old(&adosx, AD_VERSION_EA, ad->ad_options);
- buf = &adosx.ad_data[0];
-@@ -707,7 +712,7 @@ reread:
- return -1;
- }
-
-- if (parse_entries(&adosx, nentries, header_len) != 0) {
-+ if (parse_entries(&adosx, nentries, hst->st_size) != 0) {
- LOG(log_warning, logtype_ad, "ad_header_read(%s): malformed AppleDouble",
- path ? fullpathname(path) : "");
- errno = EIO;
-@@ -725,6 +730,7 @@ reread:
- }
- retry_read++;
- if (ad_convert_osx(path, &adosx) == 1) {
-+ hst = NULL;
- goto reread;
- }
- errno = EIO;
-@@ -738,11 +744,6 @@ reread:
- LOG(log_error, logtype_ad, "ad_header_read_osx: problem with rfork entry offset.");
- errno = EIO;
- return -1;
-- }
--
-- if (hst == NULL) {
-- hst = &st;
-- EC_NEG1( fstat(ad_reso_fileno(ad), &st) );
- }
-
- ad_setentryoff(ad, ADEID_RFORK, ad_getentryoff(&adosx, ADEID_RFORK));
diff --git a/net/netatalk3/files/patch-meson.build b/net/netatalk3/files/patch-meson.build
new file mode 100644
index 000000000000..da457a0f49d6
--- /dev/null
+++ b/net/netatalk3/files/patch-meson.build
@@ -0,0 +1,81 @@
+--- meson.build.orig 2024-06-01 04:56:52 UTC
++++ meson.build
+@@ -40,6 +40,7 @@ sbindir = prefix / get_option('sbindir')
+ mandir = prefix / get_option('mandir')
+ pkgconfdir = prefix / get_option('sysconfdir')
+ sbindir = prefix / get_option('sbindir')
++libexecdir = prefix / get_option('libexecdir')
+
+ ##################
+ # Compiler flags #
+@@ -70,7 +71,7 @@ statedir = '-D_PATH_STATEDIR="' + localstatedir + '/ne
+ dversion = '-DVERSION="' + 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 #
+@@ -487,6 +488,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
+
+ des = cc.find_library('des', required: false)
+@@ -763,19 +769,7 @@ else
+ required: false,
+ )
+
+- if tracker.found()
+- cdata.set(
+- 'TRACKER_MANAGING_COMMAND',
+- '"tracker daemon"',
+- )
+- cdata.set(
+- 'TRACKER_PREFIX',
+- '"'
+- + tracker_sparql.get_variable(pkgconfig: 'prefix')
+- + '"',
+- )
+- tracker_manager += 'tracker'
+- elif tracker3.found()
++ if tracker3.found()
+ cdata.set('HAVE_TRACKER3', 1)
+ cdata.set(
+ 'TRACKER_MANAGING_COMMAND',
+@@ -816,15 +810,16 @@ else
+ endif
+ endif
+ endif
+-endif
+-
+-have_spotlight = (
++ have_spotlight = (
+ tracker_sparql.found()
+ and tracker_ok
+ and talloc.found()
+ and flex.found()
+ and bison.found()
+ )
++endif
++
++
+ if have_spotlight
+ cdata.set('WITH_SPOTLIGHT', 1)
+ endif
+@@ -1833,6 +1828,8 @@ int deny_severity = 0;
+ tcpwrap_code = '''
+ int allow_severity = 0;
+ int deny_severity = 0;
++
++int hosts_access();
+
+ int main(void) {
+
diff --git a/net/netatalk3/pkg-plist b/net/netatalk3/pkg-plist
index e32c966ab941..b8df0404b3b7 100644
--- a/net/netatalk3/pkg-plist
+++ b/net/netatalk3/pkg-plist
@@ -37,8 +37,8 @@ include/atalk/acl.h
include/atalk/adouble.h
include/atalk/afp.h
include/atalk/bstrlib.h
+include/atalk/cast.h
include/atalk/cnid.h
-include/atalk/compat.h
include/atalk/dictionary.h
include/atalk/ea.h
include/atalk/globals.h
@@ -57,13 +57,11 @@ include/atalk/vfs.h
include/atalk/volume.h
lib/libatalk.a
lib/libatalk.so
-lib/libatalk.so.0
-lib/libatalk.so.0.0.0
+lib/libatalk.so.18
sbin/afpd
sbin/cnid_dbd
sbin/cnid_metad
sbin/netatalk
-share/aclocal/netatalk.m4
share/man/man1/ad.1.gz
share/man/man1/afpldaptest.1.gz
share/man/man1/afppasswd.1.gz