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 Sonarclouddiff -r1.54 -r1.55 pkgsrc/net/netatalk3/Makefile
(hauke)
@@ -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 | |||
3 | DISTNAME= netatalk-3.1.14 | 3 | DISTNAME= netatalk-3.1.15 | |
4 | PKGREVISION= 2 | |||
5 | PKGNAME= ${DISTNAME:C/-/3-/} | 4 | PKGNAME= ${DISTNAME:C/-/3-/} | |
6 | CATEGORIES= net | 5 | CATEGORIES= net | |
7 | MASTER_SITES= ${MASTER_SITE_GITHUB:=Netatalk/}Netatalk/releases/download/netatalk-3-1-14/ | 6 | MASTER_SITES= ${MASTER_SITE_GITHUB:=Netatalk/}Netatalk/releases/download/${DISTNAME:S/./-/g}/ | |
8 | 7 | |||
9 | MAINTAINER= hauke@NetBSD.org | 8 | MAINTAINER= hauke@NetBSD.org | |
10 | HOMEPAGE= http://netatalk.sourceforge.net/ | 9 | HOMEPAGE= http://netatalk.sourceforge.net/ | |
11 | COMMENT= Netatalk AFP file services | 10 | COMMENT= Netatalk AFP file services | |
12 | LICENSE= gnu-gpl-v2 | 11 | LICENSE= gnu-gpl-v2 | |
13 | 12 | |||
14 | USE_LIBTOOL= yes | 13 | USE_LIBTOOL= yes | |
15 | USE_TOOLS+= gmake pkg-config perl:run | 14 | USE_TOOLS+= gmake pkg-config perl:run | |
16 | GNU_CONFIGURE= yes | 15 | GNU_CONFIGURE= yes | |
17 | PKG_CONFIG= yes | 16 | PKG_CONFIG= yes | |
18 | 17 | |||
19 | PKG_SYSCONFSUBDIR= netatalk | 18 | PKG_SYSCONFSUBDIR= netatalk | |
20 | 19 |
@@ -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 | |||
3 | BLAKE2s (netatalk-3.1.14.tar.gz) = 39e9ae725f0b3d87f5747c9f6ddabab3c61eb2b51f1ed63a1af362224aa7f8e9 | 3 | BLAKE2s (netatalk-3.1.15.tar.gz) = 07fe90222f1bac3db17574358f40a5b1ee40fe3ea860905bd042c58c49b7bb6e | |
4 | SHA512 (netatalk-3.1.14.tar.gz) = 2d52ba2df50cc4bedb5c68fa452d9acec80f69e826ff8cb3d0aa85f7031c98f463e502ef35128076c0aa52a36ce9540509ce8c21b915f6a2232ca70c451b89eb | 4 | SHA512 (netatalk-3.1.15.tar.gz) = ccba1bb3d7136194d5897e2c560fb81f8182ec1ac19446954c910e303cb43dab5a1cf1c842d75e5040dd43ab1b55c646857b7866ddb362e35afbb4110b296015 | |
5 | Size (netatalk-3.1.14.tar.gz) = 1800211 bytes | 5 | Size (netatalk-3.1.15.tar.gz) = 1837072 bytes | |
6 | SHA1 (patch-bin_ad_ad__cp.c) = bd2191a7a2731e6032f97dc66688175fc84275cc | 6 | SHA1 (patch-bin_ad_ad__cp.c) = 8f32b7b0d66bcd16a7e31af27df54dd4ff53d86f | |
7 | SHA1 (patch-config.h.in) = bd9e735c6d1c8bb8a1534f6674fa6358b29922c1 | 7 | SHA1 (patch-config.h.in) = bd9e735c6d1c8bb8a1534f6674fa6358b29922c1 | |
8 | SHA1 (patch-config_Makefile.in) = 81fff584e5cb98537a4fa671fb551ad0258ba092 | 8 | SHA1 (patch-config_Makefile.in) = 81fff584e5cb98537a4fa671fb551ad0258ba092 | |
9 | SHA1 (patch-config_pam_Makefile.in) = 8f69225c333b327b4c57ef12994666cc521e5c70 | 9 | SHA1 (patch-config_pam_Makefile.in) = 8f69225c333b327b4c57ef12994666cc521e5c70 | |
10 | SHA1 (patch-configure) = 7d2ce8e0d06b8de5b2a1ac45f926ee08b6fd5c3b | 10 | SHA1 (patch-configure) = 7d2ce8e0d06b8de5b2a1ac45f926ee08b6fd5c3b | |
11 | SHA1 (patch-distrib_initscripts_Makefile.in) = fbeffa06a051fb61819d09e0396695cbe564780e | 11 | SHA1 (patch-distrib_initscripts_Makefile.in) = fbeffa06a051fb61819d09e0396695cbe564780e | |
12 | SHA1 (patch-distrib_initscripts_netatalk.xml.tmpl) = dd7591e12eca3c1e7d7bc768cd1e060979dc383e | 12 | SHA1 (patch-distrib_initscripts_netatalk.xml.tmpl) = dd7591e12eca3c1e7d7bc768cd1e060979dc383e | |
13 | SHA1 (patch-etc_afpd_afp__dsi.c) = 024cc7a0935ece2ed43d1ab3142c8d6bb1b376be | 13 | SHA1 (patch-etc_afpd_afp__dsi.c) = 024cc7a0935ece2ed43d1ab3142c8d6bb1b376be | |
14 | SHA1 (patch-etc_afpd_quota.c) = 2ec8711f5ec9b25497f716cf8f728e354f1eb1c6 | 14 | SHA1 (patch-etc_afpd_quota.c) = 1779029a084e1991b343214f50ddf459ce9f6dfa | |
15 | SHA1 (patch-etc_cnid__dbd_cnid__metad.c) = 6c28332ca3e11d11f3b5bb13fa01783dbb94c30f | 15 | SHA1 (patch-etc_cnid__dbd_cnid__metad.c) = 6c28332ca3e11d11f3b5bb13fa01783dbb94c30f | |
16 | SHA1 (patch-etc_cnid__dbd_usockfd.c) = a3b6c498ed73dc449b84d092f2b9e13eeae3dfc5 | 16 | SHA1 (patch-etc_cnid__dbd_usockfd.c) = a3b6c498ed73dc449b84d092f2b9e13eeae3dfc5 | |
17 | SHA1 (patch-etc_netatalk_netatalk.c) = 2bdbfc035e4bea9859cf970cd6b9a6503244185e | 17 | SHA1 (patch-etc_netatalk_netatalk.c) = 2bdbfc035e4bea9859cf970cd6b9a6503244185e | |
18 | SHA1 (patch-include_atalk_util.h) = a7a0763c5866288ad89a8b6b90c71767ee4d9d64 | 18 | SHA1 (patch-include_atalk_util.h) = a7a0763c5866288ad89a8b6b90c71767ee4d9d64 | |
19 | SHA1 (patch-libatalk_bstring_bstrlib.c) = eaee8075f102c1150f74e9dce4d83697c3eac3fc | |||
20 | SHA1 (patch-libatalk_dsi_dsi__tcp.c) = eacb939dba2749925e36ca05fa0480b3391d0f80 | 19 | SHA1 (patch-libatalk_dsi_dsi__tcp.c) = eacb939dba2749925e36ca05fa0480b3391d0f80 | |
21 | SHA1 (patch-libatalk_util_getiface.c) = 1a46bd695c96e0666b6f45493eb44501c0f4e0b5 | 20 | SHA1 (patch-libatalk_util_getiface.c) = 1a46bd695c96e0666b6f45493eb44501c0f4e0b5 | |
22 | SHA1 (patch-libatalk_util_netatalk__conf.c) = dfc0d8b5d88de367522bb1d5417083d860d2dab8 | |||
23 | SHA1 (patch-macros_quota-check.m4) = a6502693ae8c7218b7c4426b134e0aa590412e1f | 21 | SHA1 (patch-macros_quota-check.m4) = a6502693ae8c7218b7c4426b134e0aa590412e1f |
@@ -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 | |||
3 | Treat NetBSD as FreeBSD for timeval to timespec conversion | 3 | Treat 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 |
@@ -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 | ||||
3 | SunOS derivatives need to explicitely include mntent.h for MNTTYPE_NFS | |||
4 | 2 | |||
5 | NetBSD uses a different quota API. | 3 | NetBSD 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); |