Thu May 4 16:53:07 2023 UTC ()
Update net/netatalk3 to 3.1.15

What's Changed

FIX: CVE-2022-43634
FIX: CVE-2022-45188
NEW: Support for macOS hosts, Intel and Apple silicon, GitHub#281
FIX: configure.ac: update deprecated autoconf syntax
UPD: configure.ac: Support linking with system shared libraries
Introduces the --with-talloc option
FIX: macros: largefile-check macro for largefile (clang 16)
UPD: macros: Update pthread macro to the latest from gnu.org
FIX: initscripts: Modernize Systemd service file.
FIX: libatalk/conf: include sys/file.h for LOCK_EX
FIX: libatalk: Change log level for realpath() error, SF bug#666
FIX: libatalk: Change log level for real_name error, SF bug#596
FIX: libatalk: The my_bool type is deprecated as of MySQL 8.0.1, GitHub#129
UPD: libatalk: allow afpd to read read-protected afp.conf, SF bug#546
UPD: libatalk: Make the "valid users" option work in the Homes
section, SF bug#449
UPD: libatalk: Check that FPDisconnectOldSession is successful, SF bug#634
UPD: libatalk: Bring iniparser library codebase in line with current version 4.1
FIX: afpd: Provide MNTTYPE_NFS on OmniOS to make quota work, GitHub#117
FIX: afpd: Avoid triggering realpath() lookups with empty path, GitHub#277
FIX: spotlight: Spotlight searches can cause afpd to segfault, GitHub#56
UPD: spotlight: add support for tracker3, SF patch#147
FIX: macusers: Fix output for long usernames
FIX: macusers: account for usernames with non-word characters
FIX: macusers: Support NetBSD
FIX: Fix all function declarations without a prototype
FIX: Fix C99 compliance issues
FIX: Fix gcc10 compiler warnings
UPD: Remove acsiidocs sources and release notes script
FIX: manpages: afp.conf: Parameters are not quoted, SF bug#617
FIX: manpages: afp.conf: Document $u in home name, GitHub#123
FIX: manpages: afp.conf: Document the usage of guest user, GitHub#298
FIX: Document how the mysql cnid backend is configured, GitHub#69
FIX: Fix user-visible typos in log output and man pages.
FIX: Fix spelling, syntax, and dead URLs in html manual.
NEW: Create README.md
NEW: Set up GitHub workflow and static analysis with Sonarcloud


(hauke)
diff -r1.54 -r1.55 pkgsrc/net/netatalk3/Makefile
diff -r1.14 -r1.15 pkgsrc/net/netatalk3/distinfo
diff -r1.2 -r1.3 pkgsrc/net/netatalk3/patches/patch-bin_ad_ad__cp.c
diff -r1.4 -r1.5 pkgsrc/net/netatalk3/patches/patch-etc_afpd_quota.c
diff -r1.1 -r0 pkgsrc/net/netatalk3/patches/patch-libatalk_bstring_bstrlib.c
diff -r1.1 -r0 pkgsrc/net/netatalk3/patches/patch-libatalk_util_netatalk__conf.c

cvs diff -r1.54 -r1.55 pkgsrc/net/netatalk3/Makefile (expand / switch to unified diff)

--- pkgsrc/net/netatalk3/Makefile 2023/04/19 08:11:10 1.54
+++ pkgsrc/net/netatalk3/Makefile 2023/05/04 16:53:07 1.55
@@ -1,20 +1,19 @@ @@ -1,20 +1,19 @@
1# $NetBSD: Makefile,v 1.54 2023/04/19 08:11:10 adam Exp $ 1# $NetBSD: Makefile,v 1.55 2023/05/04 16:53:07 hauke Exp $
2 2
3DISTNAME= netatalk-3.1.14 3DISTNAME= netatalk-3.1.15
4PKGREVISION= 2 
5PKGNAME= ${DISTNAME:C/-/3-/} 4PKGNAME= ${DISTNAME:C/-/3-/}
6CATEGORIES= net 5CATEGORIES= net
7MASTER_SITES= ${MASTER_SITE_GITHUB:=Netatalk/}Netatalk/releases/download/netatalk-3-1-14/ 6MASTER_SITES= ${MASTER_SITE_GITHUB:=Netatalk/}Netatalk/releases/download/${DISTNAME:S/./-/g}/
8 7
9MAINTAINER= hauke@NetBSD.org 8MAINTAINER= hauke@NetBSD.org
10HOMEPAGE= http://netatalk.sourceforge.net/ 9HOMEPAGE= http://netatalk.sourceforge.net/
11COMMENT= Netatalk AFP file services 10COMMENT= Netatalk AFP file services
12LICENSE= gnu-gpl-v2 11LICENSE= gnu-gpl-v2
13 12
14USE_LIBTOOL= yes 13USE_LIBTOOL= yes
15USE_TOOLS+= gmake pkg-config perl:run 14USE_TOOLS+= gmake pkg-config perl:run
16GNU_CONFIGURE= yes 15GNU_CONFIGURE= yes
17PKG_CONFIG= yes 16PKG_CONFIG= yes
18 17
19PKG_SYSCONFSUBDIR= netatalk 18PKG_SYSCONFSUBDIR= netatalk
20 19

cvs diff -r1.14 -r1.15 pkgsrc/net/netatalk3/distinfo (expand / switch to unified diff)

--- pkgsrc/net/netatalk3/distinfo 2023/04/04 18:16:06 1.14
+++ pkgsrc/net/netatalk3/distinfo 2023/05/04 16:53:07 1.15
@@ -1,23 +1,21 @@ @@ -1,23 +1,21 @@
1$NetBSD: distinfo,v 1.14 2023/04/04 18:16:06 bouyer Exp $ 1$NetBSD: distinfo,v 1.15 2023/05/04 16:53:07 hauke Exp $
2 2
3BLAKE2s (netatalk-3.1.14.tar.gz) = 39e9ae725f0b3d87f5747c9f6ddabab3c61eb2b51f1ed63a1af362224aa7f8e9 3BLAKE2s (netatalk-3.1.15.tar.gz) = 07fe90222f1bac3db17574358f40a5b1ee40fe3ea860905bd042c58c49b7bb6e
4SHA512 (netatalk-3.1.14.tar.gz) = 2d52ba2df50cc4bedb5c68fa452d9acec80f69e826ff8cb3d0aa85f7031c98f463e502ef35128076c0aa52a36ce9540509ce8c21b915f6a2232ca70c451b89eb 4SHA512 (netatalk-3.1.15.tar.gz) = ccba1bb3d7136194d5897e2c560fb81f8182ec1ac19446954c910e303cb43dab5a1cf1c842d75e5040dd43ab1b55c646857b7866ddb362e35afbb4110b296015
5Size (netatalk-3.1.14.tar.gz) = 1800211 bytes 5Size (netatalk-3.1.15.tar.gz) = 1837072 bytes
6SHA1 (patch-bin_ad_ad__cp.c) = bd2191a7a2731e6032f97dc66688175fc84275cc 6SHA1 (patch-bin_ad_ad__cp.c) = 8f32b7b0d66bcd16a7e31af27df54dd4ff53d86f
7SHA1 (patch-config.h.in) = bd9e735c6d1c8bb8a1534f6674fa6358b29922c1 7SHA1 (patch-config.h.in) = bd9e735c6d1c8bb8a1534f6674fa6358b29922c1
8SHA1 (patch-config_Makefile.in) = 81fff584e5cb98537a4fa671fb551ad0258ba092 8SHA1 (patch-config_Makefile.in) = 81fff584e5cb98537a4fa671fb551ad0258ba092
9SHA1 (patch-config_pam_Makefile.in) = 8f69225c333b327b4c57ef12994666cc521e5c70 9SHA1 (patch-config_pam_Makefile.in) = 8f69225c333b327b4c57ef12994666cc521e5c70
10SHA1 (patch-configure) = 7d2ce8e0d06b8de5b2a1ac45f926ee08b6fd5c3b 10SHA1 (patch-configure) = 7d2ce8e0d06b8de5b2a1ac45f926ee08b6fd5c3b
11SHA1 (patch-distrib_initscripts_Makefile.in) = fbeffa06a051fb61819d09e0396695cbe564780e 11SHA1 (patch-distrib_initscripts_Makefile.in) = fbeffa06a051fb61819d09e0396695cbe564780e
12SHA1 (patch-distrib_initscripts_netatalk.xml.tmpl) = dd7591e12eca3c1e7d7bc768cd1e060979dc383e 12SHA1 (patch-distrib_initscripts_netatalk.xml.tmpl) = dd7591e12eca3c1e7d7bc768cd1e060979dc383e
13SHA1 (patch-etc_afpd_afp__dsi.c) = 024cc7a0935ece2ed43d1ab3142c8d6bb1b376be 13SHA1 (patch-etc_afpd_afp__dsi.c) = 024cc7a0935ece2ed43d1ab3142c8d6bb1b376be
14SHA1 (patch-etc_afpd_quota.c) = 2ec8711f5ec9b25497f716cf8f728e354f1eb1c6 14SHA1 (patch-etc_afpd_quota.c) = 1779029a084e1991b343214f50ddf459ce9f6dfa
15SHA1 (patch-etc_cnid__dbd_cnid__metad.c) = 6c28332ca3e11d11f3b5bb13fa01783dbb94c30f 15SHA1 (patch-etc_cnid__dbd_cnid__metad.c) = 6c28332ca3e11d11f3b5bb13fa01783dbb94c30f
16SHA1 (patch-etc_cnid__dbd_usockfd.c) = a3b6c498ed73dc449b84d092f2b9e13eeae3dfc5 16SHA1 (patch-etc_cnid__dbd_usockfd.c) = a3b6c498ed73dc449b84d092f2b9e13eeae3dfc5
17SHA1 (patch-etc_netatalk_netatalk.c) = 2bdbfc035e4bea9859cf970cd6b9a6503244185e 17SHA1 (patch-etc_netatalk_netatalk.c) = 2bdbfc035e4bea9859cf970cd6b9a6503244185e
18SHA1 (patch-include_atalk_util.h) = a7a0763c5866288ad89a8b6b90c71767ee4d9d64 18SHA1 (patch-include_atalk_util.h) = a7a0763c5866288ad89a8b6b90c71767ee4d9d64
19SHA1 (patch-libatalk_bstring_bstrlib.c) = eaee8075f102c1150f74e9dce4d83697c3eac3fc 
20SHA1 (patch-libatalk_dsi_dsi__tcp.c) = eacb939dba2749925e36ca05fa0480b3391d0f80 19SHA1 (patch-libatalk_dsi_dsi__tcp.c) = eacb939dba2749925e36ca05fa0480b3391d0f80
21SHA1 (patch-libatalk_util_getiface.c) = 1a46bd695c96e0666b6f45493eb44501c0f4e0b5 20SHA1 (patch-libatalk_util_getiface.c) = 1a46bd695c96e0666b6f45493eb44501c0f4e0b5
22SHA1 (patch-libatalk_util_netatalk__conf.c) = dfc0d8b5d88de367522bb1d5417083d860d2dab8 
23SHA1 (patch-macros_quota-check.m4) = a6502693ae8c7218b7c4426b134e0aa590412e1f 21SHA1 (patch-macros_quota-check.m4) = a6502693ae8c7218b7c4426b134e0aa590412e1f

cvs diff -r1.2 -r1.3 pkgsrc/net/netatalk3/patches/patch-bin_ad_ad__cp.c (expand / switch to unified diff)

--- pkgsrc/net/netatalk3/patches/patch-bin_ad_ad__cp.c 2016/11/07 12:46:52 1.2
+++ pkgsrc/net/netatalk3/patches/patch-bin_ad_ad__cp.c 2023/05/04 16:53:07 1.3
@@ -1,15 +1,15 @@ @@ -1,15 +1,15 @@
1$NetBSD: patch-bin_ad_ad__cp.c,v 1.2 2016/11/07 12:46:52 christos Exp $ 1$NetBSD: patch-bin_ad_ad__cp.c,v 1.3 2023/05/04 16:53:07 hauke Exp $
2 2
3Treat NetBSD as FreeBSD for timeval to timespec conversion 3Treat NetBSD as FreeBSD for timeval to timespec conversion
4 4
5--- bin/ad/ad_cp.c.orig 2014-01-27 07:37:46.000000000 +0000 5--- bin/ad/ad_cp.c.orig 2014-01-27 07:37:46.000000000 +0000
6+++ bin/ad/ad_cp.c 6+++ bin/ad/ad_cp.c
7@@ -821,7 +821,7 @@ static int setfile(const struct stat *fs 7@@ -821,7 +821,7 @@ static int setfile(const struct stat *fs
8 islink = !fdval && S_ISLNK(fs->st_mode); 8 islink = !fdval && S_ISLNK(fs->st_mode);
9 mode = fs->st_mode & (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO); 9 mode = fs->st_mode & (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO);
10  10
11-#if defined(__FreeBSD__) 11-#if defined(__FreeBSD__) || defined(__APPLE__)
12+#if defined(__FreeBSD__) || defined(__NetBSD__) 12+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__)
13 TIMESPEC_TO_TIMEVAL(&tv[0], &fs->st_atimespec); 13 TIMESPEC_TO_TIMEVAL(&tv[0], &fs->st_atimespec);
14 TIMESPEC_TO_TIMEVAL(&tv[1], &fs->st_mtimespec); 14 TIMESPEC_TO_TIMEVAL(&tv[1], &fs->st_mtimespec);
15 #else 15 #else

cvs diff -r1.4 -r1.5 pkgsrc/net/netatalk3/patches/patch-etc_afpd_quota.c (expand / switch to unified diff)

--- pkgsrc/net/netatalk3/patches/patch-etc_afpd_quota.c 2023/04/04 18:16:06 1.4
+++ pkgsrc/net/netatalk3/patches/patch-etc_afpd_quota.c 2023/05/04 16:53:07 1.5
@@ -1,55 +1,42 @@ @@ -1,55 +1,42 @@
1$NetBSD: patch-etc_afpd_quota.c,v 1.4 2023/04/04 18:16:06 bouyer Exp $ 1$NetBSD: patch-etc_afpd_quota.c,v 1.5 2023/05/04 16:53:07 hauke Exp $
2 
3SunOS derivatives need to explicitely include mntent.h for MNTTYPE_NFS 
4 2
5NetBSD uses a different quota API. 3NetBSD uses a different quota API.
6 4
7--- etc/afpd/quota.c.orig 2023-01-10 10:49:51.000000000 +0100 5--- etc/afpd/quota.c.orig 2023-04-28 05:16:02.000000000 +0000
8+++ etc/afpd/quota.c 2023-03-29 15:54:28.917646712 +0200 6+++ etc/afpd/quota.c
9@@ -21,6 +21,10 @@ 7@@ -36,14 +36,17 @@
10 #include <unistd.h> 
11 #include <fcntl.h> 
12  
13+#if defined(HAVE_SYS_MNTTAB_H) || defined(__svr4__) 
14+#include <sys/mntent.h> 
15+#endif 
16+ 
17 #include <atalk/logger.h> 
18 #include <atalk/afp.h> 
19 #include <atalk/compat.h> 
20@@ -32,14 +36,17 @@ 
21 #include "unix.h" 8 #include "unix.h"
22  9
23 #ifdef HAVE_LIBQUOTA 10 #ifdef HAVE_LIBQUOTA
24-#include <quota/quota.h> 11-#include <quota/quota.h>
25+#include <quota.h> 12+#include <quota.h>
26  13
27 static int 14 static int
28 getfreespace(const AFPObj *obj, struct vol *vol, VolSpace *bfree, VolSpace *btotal, 15 getfreespace(const AFPObj *obj, struct vol *vol, VolSpace *bfree, VolSpace *btotal,
29- uid_t uid, const char *classq) 16- uid_t uid, const char *classq)
30+ id_t id, int idtype) 17+ id_t id, int idtype)
31 { 18 {
32- int retq; 19- int retq;
33- struct ufs_quota_entry ufsq[QUOTA_NLIMITS]; 20- struct ufs_quota_entry ufsq[QUOTA_NLIMITS];
34+ uid_t prevuid; 21+ uid_t prevuid;
35+ const char *msg; 22+ const char *msg;
36+ struct quotahandle *qh; 23+ struct quotahandle *qh;
37+ struct quotakey qk; 24+ struct quotakey qk;
38+ struct quotaval qv; 25+ struct quotaval qv;
39 time_t now; 26 time_t now;
40  27
41 if (time(&now) == -1) { 28 if (time(&now) == -1) {
42@@ -48,33 +55,64 @@ 29@@ -52,33 +55,64 @@ getfreespace(const AFPObj *obj, struct v
43 return -1; 30 return -1;
44 } 31 }
45  32
46+ prevuid = geteuid(); 33+ prevuid = geteuid();
47+ if (prevuid == -1) { 34+ if (prevuid == -1) {
48+ LOG(log_info, logtype_afpd, "geteuid(): %s", 35+ LOG(log_info, logtype_afpd, "geteuid(): %s",
49+ strerror(errno)); 36+ strerror(errno));
50+ return -1; 37+ return -1;
51+ } 38+ }
52+ 39+
53 become_root(); 40 become_root();
54  41
55- if ((retq = getfsquota(obj, vol, ufsq, uid, classq)) < 0) { 42- if ((retq = getfsquota(obj, vol, ufsq, uid, classq)) < 0) {
@@ -81,59 +68,59 @@ NetBSD uses a different quota API. @@ -81,59 +68,59 @@ NetBSD uses a different quota API.
81+ seteuid( prevuid ); 68+ seteuid( prevuid );
82+ return 0; 69+ return 0;
83+ } 70+ }
84+ msg = strerror(errno); 71+ msg = strerror(errno);
85+ LOG(log_info, logtype_afpd, "quota_get(%s, %s): %s", 72+ LOG(log_info, logtype_afpd, "quota_get(%s, %s): %s",
86+ vol->v_path, quota_idtype_getname(qh, idtype), msg); 73+ vol->v_path, quota_idtype_getname(qh, idtype), msg);
87+ quota_close(qh); 74+ quota_close(qh);
88+ seteuid( prevuid ); 75+ seteuid( prevuid );
89+ return -1; 76+ return -1;
90 } 77 }
91  78
92- unbecome_root(); 79- unbecome_root();
93+ quota_close(qh); 80+ quota_close(qh);
94+ 
95+ seteuid( prevuid ); 
96  81
97- if (retq < 1) 82- if (retq < 1)
98- return retq; 83- return retq;
 84+ seteuid( prevuid );
 85+
99+ if (qv.qv_usage >= qv.qv_hardlimit || 86+ if (qv.qv_usage >= qv.qv_hardlimit ||
100+ (qv.qv_usage >= qv.qv_softlimit && now > qv.qv_expiretime)) { 87+ (qv.qv_usage >= qv.qv_softlimit && now > qv.qv_expiretime)) {
101  88
102- switch(QL_STATUS(quota_check_limit(ufsq[QUOTA_LIMIT_BLOCK].ufsqe_cur, 1, 89- switch(QL_STATUS(quota_check_limit(ufsq[QUOTA_LIMIT_BLOCK].ufsqe_cur, 1,
103- ufsq[QUOTA_LIMIT_BLOCK].ufsqe_softlimit, 90- ufsq[QUOTA_LIMIT_BLOCK].ufsqe_softlimit,
104- ufsq[QUOTA_LIMIT_BLOCK].ufsqe_hardlimit, 91- ufsq[QUOTA_LIMIT_BLOCK].ufsqe_hardlimit,
105- ufsq[QUOTA_LIMIT_BLOCK].ufsqe_time, now))) { 92- ufsq[QUOTA_LIMIT_BLOCK].ufsqe_time, now))) {
106- case QL_S_DENY_HARD: 93- case QL_S_DENY_HARD:
107- case QL_S_DENY_GRACE: 94- case QL_S_DENY_GRACE:
108 *bfree = 0; 95 *bfree = 0;
109- *btotal = dbtob(ufsq[QUOTA_LIMIT_BLOCK].ufsqe_cur); 96- *btotal = dbtob(ufsq[QUOTA_LIMIT_BLOCK].ufsqe_cur);
110- break; 97- break;
111- default: 98- default:
112- *bfree = dbtob(ufsq[QUOTA_LIMIT_BLOCK].ufsqe_hardlimit - 99- *bfree = dbtob(ufsq[QUOTA_LIMIT_BLOCK].ufsqe_hardlimit -
113- ufsq[QUOTA_LIMIT_BLOCK].ufsqe_cur); 100- ufsq[QUOTA_LIMIT_BLOCK].ufsqe_cur);
114- *btotal = dbtob(ufsq[QUOTA_LIMIT_BLOCK].ufsqe_hardlimit); 101- *btotal = dbtob(ufsq[QUOTA_LIMIT_BLOCK].ufsqe_hardlimit);
115- break; 102- break;
116+ *btotal = dbtob(qv.qv_usage); 103+ *btotal = dbtob(qv.qv_usage);
117 } 104+ }
118+ else { 105+ else {
119+ *bfree = dbtob(qv.qv_hardlimit - qv.qv_usage); 106+ *bfree = dbtob(qv.qv_hardlimit - qv.qv_usage);
120+ *btotal = dbtob(qv.qv_hardlimit); 107+ *btotal = dbtob(qv.qv_hardlimit);
121+ } 108 }
122+ 109+
123 return 1; 110 return 1;
124 } 111 }
125  112
126@@ -85,12 +123,12 @@ 113@@ -89,12 +123,12 @@ int uquota_getvolspace(const AFPObj *obj
127 VolSpace gbfree, gbtotal; 114 VolSpace gbfree, gbtotal;
128  115
129 uretq = getfreespace(obj, vol, &ubfree, &ubtotal, 116 uretq = getfreespace(obj, vol, &ubfree, &ubtotal,
130- uuid, QUOTADICT_CLASS_USER); 117- uuid, QUOTADICT_CLASS_USER);
131- LOG(log_info, logtype_afpd, "getfsquota(%s): %d %d", 118- LOG(log_info, logtype_afpd, "getfsquota(%s): %d %d",
132+ obj->uid, QUOTA_IDTYPE_USER); 119+ obj->uid, QUOTA_IDTYPE_USER);
133+ LOG(log_info, logtype_afpd, "getfreespace(%s): %d %d", 120+ LOG(log_info, logtype_afpd, "getfreespace(%s): %d %d",
134 vol->v_path, (int)ubfree, (int)ubtotal); 121 vol->v_path, (int)ubfree, (int)ubtotal);
135 if (obj->ngroups >= 1) { 122 if (obj->ngroups >= 1) {
136- gretq = getfreespace(vol, &ubfree, &ubtotal, 123- gretq = getfreespace(vol, &ubfree, &ubtotal,
137- obj->groups[0], QUOTADICT_CLASS_GROUP); 124- obj->groups[0], QUOTADICT_CLASS_GROUP);
138+ gretq = getfreespace(obj, vol, &ubfree, &ubtotal, 125+ gretq = getfreespace(obj, vol, &ubfree, &ubtotal,
139+ obj->groups[0], QUOTA_IDTYPE_GROUP); 126+ obj->groups[0], QUOTA_IDTYPE_GROUP);

File Deleted: pkgsrc/net/netatalk3/patches/Attic/patch-libatalk_bstring_bstrlib.c

File Deleted: pkgsrc/net/netatalk3/patches/Attic/patch-libatalk_util_netatalk__conf.c