summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGyorgy Sarvari <skandigraun@gmail.com>2026-03-05 21:17:51 +0100
committerKhem Raj <raj.khem@gmail.com>2026-03-17 23:26:50 -0700
commitf519fab64312b81d4bb28af9413349ed9e5c4325 (patch)
treeaae4b38797d6c43b7d2c94be99e841ee318193dc
parent0e47a0b689c0720be206390b0f9db8ff7135ce5f (diff)
downloadmeta-openembedded-master-next.tar.gz
samba: upgrade 4.19.9 -> 4.23.5master-next
Samba has a new build-time dependency, libquic[1]. The repository builds an out-of-tree kernel module and a regular userspace library with the same build script, however the Makefile seems to be fairly hostile to cross-compilation. The Samba tarball also vendors the same with their own build script - for now, this venodred version is used. There are some efforts that the kernel part is mainlined[2], once it happens it should be possible to easily remove this from the recipe. pyldb was removed from RDEPENDS, as it seems that samba now builds its own version of it. Patches updated, unneeded patches dropped. Some patches contained a considerable amount of whitespace changes - those were trimmed for the easy of rebasing. Changelog: https://gitlab.com/samba-team/samba/-/blob/samba-4.23.5/WHATSNEW.txt?ref_type=tags (Switch to other branches to see earlier changelogs) [1]: https://github.com/lxin/quic/ [2]: https://github.com/lxin/net-next/commits/quic/ Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch19
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch11
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0003-Replace-memset_s-with-memset_explicit.patch117
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch50
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0004-lib-replace-Remove-memset_s.patch217
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/9aa5c43315d83c19514251a11c4fba5a137f2821.patch70
-rw-r--r--meta-networking/recipes-connectivity/samba/samba_4.23.5.bb (renamed from meta-networking/recipes-connectivity/samba/samba_4.19.9.bb)31
7 files changed, 74 insertions, 441 deletions
diff --git a/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch b/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch
index a498348c20..afa1154827 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch
@@ -9,25 +9,14 @@ Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
9 9
10Rebase to 4.14.4 10Rebase to 4.14.4
11Signed-off-by: Yi Zhao <yi.zhao@windriver.com> 11Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
12
13Rebase to 4.23.5
14Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
12--- 15---
13 lib/ldb/wscript | 2 +-
14 lib/talloc/wscript | 2 +- 16 lib/talloc/wscript | 2 +-
15 lib/tdb/wscript | 2 +- 17 lib/tdb/wscript | 2 +-
16 3 files changed, 3 insertions(+), 3 deletions(-) 18 2 files changed, 2 insertions(+), 2 deletions(-)
17 19
18diff --git a/lib/ldb/wscript b/lib/ldb/wscript
19index ed5d45f..de3c648 100644
20--- a/lib/ldb/wscript
21+++ b/lib/ldb/wscript
22@@ -144,7 +144,7 @@ def configure(conf):
23 conf.DEFINE('EXPECTED_SYSTEM_LDB_VERSION_RELEASE', int(v[2]))
24
25 if conf.env.standalone_ldb:
26- conf.CHECK_XSLTPROC_MANPAGES()
27+ #conf.CHECK_XSLTPROC_MANPAGES()
28
29 # we need this for the ldap backend
30 if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'):
31diff --git a/lib/talloc/wscript b/lib/talloc/wscript 20diff --git a/lib/talloc/wscript b/lib/talloc/wscript
32index 075f1ec..9bd9f73 100644 21index 075f1ec..9bd9f73 100644
33--- a/lib/talloc/wscript 22--- a/lib/talloc/wscript
diff --git a/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch b/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch
index 2c9d29c9fe..70e7f28cc7 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch
@@ -37,10 +37,10 @@ diff --git a/wscript b/wscript
37index 95ddd9e..6d9577a 100644 37index 95ddd9e..6d9577a 100644
38--- a/wscript 38--- a/wscript
39+++ b/wscript 39+++ b/wscript
40@@ -123,6 +123,13 @@ def options(opt): 40@@ -131,6 +131,13 @@
41 help=('Disable kernely keyring support for credential storage'), 41 help=('Disable kernely keyring support for credential storage'),
42 action='store_false', dest='enable_keyring') 42 action='store_false', dest='enable_keyring')
43 43
44+ opt.add_option('--with-valgrind', 44+ opt.add_option('--with-valgrind',
45+ help=("Enable use of valgrind"), 45+ help=("Enable use of valgrind"),
46+ action="store_true", dest='enable_valgrind') 46+ action="store_true", dest='enable_valgrind')
@@ -48,9 +48,6 @@ index 95ddd9e..6d9577a 100644
48+ help=("Disable use of valgrind"), 48+ help=("Disable use of valgrind"),
49+ action="store_false", dest='enable_valgrind', default=False) 49+ action="store_false", dest='enable_valgrind', default=False)
50+ 50+
51 gr = opt.option_group('developer options') 51 opt.samba_add_onoff_option('ldap')
52
53 opt.load('python') # options for disabling pyc or pyo compilation
54--
552.25.1
56 52
53 opt.option_group('developer options')
diff --git a/meta-networking/recipes-connectivity/samba/samba/0003-Replace-memset_s-with-memset_explicit.patch b/meta-networking/recipes-connectivity/samba/samba/0003-Replace-memset_s-with-memset_explicit.patch
index a96cd062cd..74ea1a7ab4 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0003-Replace-memset_s-with-memset_explicit.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0003-Replace-memset_s-with-memset_explicit.patch
@@ -15,7 +15,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 15
16--- a/lib/replace/replace.h 16--- a/lib/replace/replace.h
17+++ b/lib/replace/replace.h 17+++ b/lib/replace/replace.h
18@@ -815,50 +815,50 @@ typedef unsigned long long ptrdiff_t ; 18@@ -811,50 +811,50 @@ typedef unsigned long long ptrdiff_t ;
19 /** 19 /**
20 * Zero a structure. 20 * Zero a structure.
21 */ 21 */
@@ -74,7 +74,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
74 74
75 /** 75 /**
76 * Explicitly zero data in string. This is guaranteed to be not optimized 76 * Explicitly zero data in string. This is guaranteed to be not optimized
77@@ -867,7 +867,7 @@ typedef unsigned long long ptrdiff_t ; 77@@ -863,7 +863,7 @@ typedef unsigned long long ptrdiff_t ;
78 #define BURN_STR(x) do { \ 78 #define BURN_STR(x) do { \
79 if ((x) != NULL) { \ 79 if ((x) != NULL) { \
80 size_t s = strlen(x); \ 80 size_t s = strlen(x); \
@@ -193,116 +193,3 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
193 193
194 talloc_free(mem_ctx); 194 talloc_free(mem_ctx);
195 } 195 }
196--- a/lib/cmdline/cmdline.c
197+++ b/lib/cmdline/cmdline.c
198@@ -358,7 +358,7 @@ bool samba_cmdline_burn(int argc, char *
199 p += ulen;
200 }
201
202- memset_s(p, strlen(p), '\0', strlen(p));
203+ memset_explicit(p, '\0', strlen(p));
204 burnt = true;
205 }
206 }
207--- a/lib/util/data_blob.c
208+++ b/lib/util/data_blob.c
209@@ -1,19 +1,19 @@
210-/*
211+/*
212 Unix SMB/CIFS implementation.
213 Easy management of byte-length data
214 Copyright (C) Andrew Tridgell 2001
215 Copyright (C) Andrew Bartlett 2001
216-
217+
218 This program is free software; you can redistribute it and/or modify
219 it under the terms of the GNU General Public License as published by
220 the Free Software Foundation; either version 3 of the License, or
221 (at your option) any later version.
222-
223+
224 This program is distributed in the hope that it will be useful,
225 but WITHOUT ANY WARRANTY; without even the implied warranty of
226 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
227 GNU General Public License for more details.
228-
229+
230 You should have received a copy of the GNU General Public License
231 along with this program. If not, see <http://www.gnu.org/licenses/>.
232 */
233@@ -67,7 +67,7 @@ _PUBLIC_ DATA_BLOB data_blob_talloc_name
234 }
235
236 /**
237- construct a zero data blob, using supplied TALLOC_CTX.
238+ construct a zero data blob, using supplied TALLOC_CTX.
239 use this sparingly as it initialises data - better to initialise
240 yourself if you want specific data in the blob
241 **/
242@@ -95,7 +95,7 @@ clear a DATA_BLOB's contents
243 _PUBLIC_ void data_blob_clear(DATA_BLOB *d)
244 {
245 if (d->data) {
246- memset_s(d->data, d->length, 0, d->length);
247+ memset_explicit(d->data, 0, d->length);
248 }
249 }
250
251@@ -219,7 +219,7 @@ _PUBLIC_ DATA_BLOB data_blob_string_cons
252 }
253
254 /**
255- * Create a new data blob from const data
256+ * Create a new data blob from const data
257 */
258
259 _PUBLIC_ DATA_BLOB data_blob_const(const void *p, size_t length)
260@@ -266,7 +266,7 @@ _PUBLIC_ bool data_blob_append(TALLOC_CT
261 if ((const uint8_t *)p + length < (const uint8_t *)p) {
262 return false;
263 }
264-
265+
266 if (!data_blob_realloc(mem_ctx, blob, new_len)) {
267 return false;
268 }
269--- a/lib/util/talloc_keep_secret.c
270+++ b/lib/util/talloc_keep_secret.c
271@@ -22,27 +22,13 @@
272
273 static int talloc_keep_secret_destructor(void *ptr)
274 {
275- int ret;
276 size_t size = talloc_get_size(ptr);
277
278 if (unlikely(size == 0)) {
279 return 0;
280 }
281
282- ret = memset_s(ptr, size, 0, size);
283- if (unlikely(ret != 0)) {
284- char *msg = NULL;
285- int ret2;
286- ret2 = asprintf(&msg,
287- "talloc_keep_secret_destructor: memset_s() failed: %s",
288- strerror(ret));
289- if (ret2 != -1) {
290- smb_panic(msg);
291- } else {
292- smb_panic("talloc_keep_secret_destructor: memset_s() failed");
293- }
294- }
295-
296+ memset_explicit(ptr, 0, size);
297 return 0;
298 }
299
300--- a/librpc/ndr/util.c
301+++ b/librpc/ndr/util.c
302@@ -32,5 +32,5 @@ _PUBLIC_ void ndr_print_sockaddr_storage
303
304 _PUBLIC_ void ndr_zero_memory(void *ptr, size_t len)
305 {
306- memset_s(ptr, len, 0, len);
307+ memset_explicit(ptr, 0, len);
308 }
diff --git a/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch b/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch
index c72bd133ee..88acfeef07 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch
@@ -19,7 +19,7 @@ diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
19index 30cb366..d167551 100644 19index 30cb366..d167551 100644
20--- a/buildtools/wafsamba/wscript 20--- a/buildtools/wafsamba/wscript
21+++ b/buildtools/wafsamba/wscript 21+++ b/buildtools/wafsamba/wscript
22@@ -145,6 +145,13 @@ Currently the only tested value is 'smbtorture,smbd/smbd' for Samba'''), 22@@ -155,6 +155,13 @@ Currently the only tested value is 'smbtorture,smbd/smbd' for Samba'''),
23 help=("Disable use of gettext"), 23 help=("Disable use of gettext"),
24 action="store_true", dest='disable_gettext', default=False) 24 action="store_true", dest='disable_gettext', default=False)
25 25
@@ -37,40 +37,60 @@ diff --git a/lib/replace/wscript b/lib/replace/wscript
37index 9dd9b48..a22ae59 100644 37index 9dd9b48..a22ae59 100644
38--- a/lib/replace/wscript 38--- a/lib/replace/wscript
39+++ b/lib/replace/wscript 39+++ b/lib/replace/wscript
40@@ -444,20 +444,21 @@ def configure(conf): 40@@ -444,31 +444,32 @@
41 41
42 strlcpy_in_bsd = False 42 strlcpy_in_bsd = False
43 43
44- # libbsd on some platforms provides strlcpy and strlcat 44- # libbsd on some platforms provides strlcpy and strlcat
45- if not conf.CHECK_FUNCS('strlcpy strlcat'): 45- if not conf.CHECK_FUNCS('strlcpy strlcat'):
46- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', 46- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
47- checklibc=True): 47- checklibc=True):
48- strlcpy_in_bsd = True 48- strlcpy_in_bsd = True
49- if not conf.CHECK_FUNCS('getpeereid'): 49- elif conf.env.enable_fuzzing:
50- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') 50- # Just to complicate it more, some versions of Honggfuzz have
51- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): 51- # got strlcpy and strlcat in libc, but not in <string.h>
52- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') 52- # (unless it is there coincidentally, on a BSD). Therefore we
53- if not conf.CHECK_FUNCS('setproctitle_init'): 53- # can't use CHECK_FUNCS alone to decide whether to add the
54- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') 54- # headers to replace.h.
55- 55- #
56- if not conf.CHECK_FUNCS('closefrom'): 56- # As this is only known to happen on a fuzzing compiler, we'll
57- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') 57- # skip the check when not in fuzzing mode.
58- conf.CHECK_HEADERS('bsd/string.h')
58+ if Options.options.enable_libbsd: 59+ if Options.options.enable_libbsd:
59+ # libbsd on some platforms provides strlcpy and strlcat 60+ # libbsd on some platforms provides strlcpy and strlcat
60+ if not conf.CHECK_FUNCS('strlcpy strlcat'): 61+ if not conf.CHECK_FUNCS('strlcpy strlcat'):
61+ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', 62+ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
62+ checklibc=True): 63+ checklibc=True):
63+ strlcpy_in_bsd = True 64+ strlcpy_in_bsd = True
65+ elif conf.env.enable_fuzzing:
66+ # Just to complicate it more, some versions of Honggfuzz have
67+ # got strlcpy and strlcat in libc, but not in <string.h>
68+ # (unless it is there coincidentally, on a BSD). Therefore we
69+ # can't use CHECK_FUNCS alone to decide whether to add the
70+ # headers to replace.h.
71+ #
72+ # As this is only known to happen on a fuzzing compiler, we'll
73+ # skip the check when not in fuzzing mode.
74+ conf.CHECK_HEADERS('bsd/string.h')
75
76- if not conf.CHECK_FUNCS('getpeereid'):
77- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
78- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
79- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
80- if not conf.CHECK_FUNCS('setproctitle_init'):
81- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
64+ if not conf.CHECK_FUNCS('getpeereid'): 82+ if not conf.CHECK_FUNCS('getpeereid'):
65+ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') 83+ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
66+ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): 84+ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
67+ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') 85+ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
68+ if not conf.CHECK_FUNCS('setproctitle_init'): 86+ if not conf.CHECK_FUNCS('setproctitle_init'):
69+ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') 87+ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
70+ 88
89- if not conf.CHECK_FUNCS('closefrom'):
90- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
71+ if not conf.CHECK_FUNCS('closefrom'): 91+ if not conf.CHECK_FUNCS('closefrom'):
72+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') 92+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
73 93
74 conf.CHECK_CODE(''' 94 conf.CHECK_CODE('''
75 struct ucred cred; 95 struct ucred cred;
76diff --git a/lib/texpect/wscript b/lib/texpect/wscript 96diff --git a/lib/texpect/wscript b/lib/texpect/wscript
diff --git a/meta-networking/recipes-connectivity/samba/samba/0004-lib-replace-Remove-memset_s.patch b/meta-networking/recipes-connectivity/samba/samba/0004-lib-replace-Remove-memset_s.patch
index 409c36da7c..6e01ae35e7 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0004-lib-replace-Remove-memset_s.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0004-lib-replace-Remove-memset_s.patch
@@ -24,7 +24,7 @@ diff --git a/lib/replace/README b/lib/replace/README
24index bb9d008..d8431e7 100644 24index bb9d008..d8431e7 100644
25--- a/lib/replace/README 25--- a/lib/replace/README
26+++ b/lib/replace/README 26+++ b/lib/replace/README
27@@ -74,7 +74,6 @@ realpath 27@@ -73,7 +73,6 @@ realpath
28 poll 28 poll
29 setproctitle 29 setproctitle
30 memset_explicit 30 memset_explicit
@@ -36,219 +36,10 @@ diff --git a/lib/replace/replace.c b/lib/replace/replace.c
36index 8615899..a419837 100644 36index 8615899..a419837 100644
37--- a/lib/replace/replace.c 37--- a/lib/replace/replace.c
38+++ b/lib/replace/replace.c 38+++ b/lib/replace/replace.c
39@@ -1,4 +1,4 @@ 39@@ -965,37 +965,6 @@
40-/*
41+/*
42 Unix SMB/CIFS implementation.
43 replacement routines for broken systems
44 Copyright (C) Andrew Tridgell 1992-1998
45@@ -8,7 +8,7 @@
46 ** NOTE! The following LGPL license applies to the replace
47 ** library. This does NOT imply that all of Samba is released
48 ** under the LGPL
49-
50+
51 This library is free software; you can redistribute it and/or
52 modify it under the terms of the GNU Lesser General Public
53 License as published by the Free Software Foundation; either
54@@ -91,7 +91,7 @@ size_t rep_strlcpy(char *d, const char *s, size_t bufsize)
55 #endif
56
57 #ifndef HAVE_STRLCAT
58-/* like strncat but does not 0 fill the buffer and always null
59+/* like strncat but does not 0 fill the buffer and always null
60 terminates. bufsize is the length of the buffer, which should
61 be one more than the maximum resulting string length */
62 size_t rep_strlcat(char *d, const char *s, size_t bufsize)
63@@ -116,7 +116,7 @@ size_t rep_strlcat(char *d, const char *s, size_t bufsize)
64
65 #ifndef HAVE_MKTIME
66 /*******************************************************************
67-a mktime() replacement for those who don't have it - contributed by
68+a mktime() replacement for those who don't have it - contributed by
69 C.A. Lademann <cal@zls.com>
70 Corrections by richard.kettlewell@kewill.com
71 ********************************************************************/
72@@ -137,7 +137,7 @@ time_t rep_mktime(struct tm *t)
73 return((time_t)-1);
74
75 n = t->tm_year + 1900 - 1;
76- epoch = (t->tm_year - 70) * YEAR +
77+ epoch = (t->tm_year - 70) * YEAR +
78 ((n / 4 - n / 100 + n / 400) - (1969 / 4 - 1969 / 100 + 1969 / 400)) * DAY;
79
80 y = t->tm_year + 1900;
81@@ -147,7 +147,7 @@ time_t rep_mktime(struct tm *t)
82 epoch += mon [m] * DAY;
83 if(m == 1 && y % 4 == 0 && (y % 100 != 0 || y % 400 == 0))
84 epoch += DAY;
85-
86+
87 if(++m > 11) {
88 m = 0;
89 y++;
90@@ -156,7 +156,7 @@ time_t rep_mktime(struct tm *t)
91
92 epoch += (t->tm_mday - 1) * DAY;
93 epoch += t->tm_hour * HOUR + t->tm_min * MINUTE + t->tm_sec;
94-
95+
96 if((u = localtime(&epoch)) != NULL) {
97 t->tm_sec = u->tm_sec;
98 t->tm_min = u->tm_min;
99@@ -176,7 +176,7 @@ time_t rep_mktime(struct tm *t)
100
101 #ifndef HAVE_INITGROUPS
102 /****************************************************************************
103- some systems don't have an initgroups call
104+ some systems don't have an initgroups call
105 ****************************************************************************/
106 int rep_initgroups(char *name, gid_t id)
107 {
108@@ -194,7 +194,7 @@ int rep_initgroups(char *name, gid_t id)
109 int i,j;
110 struct group *g;
111 char *gr;
112-
113+
114 if((grouplst = malloc(sizeof(gid_t) * max_gr)) == NULL) {
115 errno = ENOMEM;
116 return -1;
117@@ -250,9 +250,9 @@ void *rep_memmove(void *dest,const void *src,int size)
118
119 if (d < s) {
120 /* we can forward copy */
121- if (s-d >= sizeof(int) &&
122- !(s%sizeof(int)) &&
123- !(d%sizeof(int)) &&
124+ if (s-d >= sizeof(int) &&
125+ !(s%sizeof(int)) &&
126+ !(d%sizeof(int)) &&
127 !(size%sizeof(int))) {
128 /* do it all as words */
129 int *idest = (int *)dest;
130@@ -267,9 +267,9 @@ void *rep_memmove(void *dest,const void *src,int size)
131 }
132 } else {
133 /* must backward copy */
134- if (d-s >= sizeof(int) &&
135- !(s%sizeof(int)) &&
136- !(d%sizeof(int)) &&
137+ if (d-s >= sizeof(int) &&
138+ !(s%sizeof(int)) &&
139+ !(d%sizeof(int)) &&
140 !(size%sizeof(int))) {
141 /* do it all as words */
142 int *idest = (int *)dest;
143@@ -281,7 +281,7 @@ void *rep_memmove(void *dest,const void *src,int size)
144 char *cdest = (char *)dest;
145 char *csrc = (char *)src;
146 for (i=size-1;i>=0;i--) cdest[i] = csrc[i];
147- }
148+ }
149 }
150 return(dest);
151 }
152@@ -334,16 +334,16 @@ void rep_vsyslog (int facility_priority, const char *format, va_list arglist)
153 size_t rep_strnlen(const char *s, size_t max)
154 {
155 size_t len;
156-
157+
158 for (len = 0; len < max; len++) {
159 if (s[len] == '\0') {
160 break;
161 }
162 }
163- return len;
164+ return len;
165 } 40 }
166 #endif 41 #endif
167- 42
168+
169 #ifndef HAVE_STRNDUP
170 /**
171 Some platforms don't have strndup.
172@@ -351,7 +351,7 @@ void rep_vsyslog (int facility_priority, const char *format, va_list arglist)
173 char *rep_strndup(const char *s, size_t n)
174 {
175 char *ret;
176-
177+
178 n = strnlen(s, n);
179 ret = malloc(n+1);
180 if (!ret)
181@@ -407,7 +407,7 @@ int rep_chroot(const char *dname)
182
183 /*****************************************************************
184 Possibly replace mkstemp if it is broken.
185-*****************************************************************/
186+*****************************************************************/
187
188 #ifndef HAVE_SECURE_MKSTEMP
189 int rep_mkstemp(char *template)
190@@ -425,7 +425,7 @@ int rep_mkstemp(char *template)
191 char *rep_mkdtemp(char *template)
192 {
193 char *dname;
194-
195+
196 if ((dname = mktemp(template))) {
197 if (mkdir(dname, 0700) >= 0) {
198 return dname;
199@@ -532,7 +532,7 @@ long long int rep_strtoll(const char *str, char **endptr, int base)
200 {
201 #ifdef HAVE_STRTOQ
202 return strtoq(str, endptr, base);
203-#elif defined(HAVE___STRTOLL)
204+#elif defined(HAVE___STRTOLL)
205 return __strtoll(str, endptr, base);
206 #elif SIZEOF_LONG == SIZEOF_LONG_LONG
207 return (long long int) strtol(str, endptr, base);
208@@ -568,7 +568,7 @@ unsigned long long int rep_strtoull(const char *str, char **endptr, int base)
209 {
210 #ifdef HAVE_STRTOUQ
211 return strtouq(str, endptr, base);
212-#elif defined(HAVE___STRTOULL)
213+#elif defined(HAVE___STRTOULL)
214 return __strtoull(str, endptr, base);
215 #elif SIZEOF_LONG == SIZEOF_LONG_LONG
216 return (unsigned long long int) strtoul(str, endptr, base);
217@@ -599,7 +599,7 @@ unsigned long long int rep_strtoull(const char *str, char **endptr, int base)
218 #endif /* HAVE_STRTOULL */
219
220 #ifndef HAVE_SETENV
221-int rep_setenv(const char *name, const char *value, int overwrite)
222+int rep_setenv(const char *name, const char *value, int overwrite)
223 {
224 char *p;
225 size_t l1, l2;
226@@ -644,10 +644,10 @@ int rep_unsetenv(const char *name)
227 for (i=0;environ[i];i++) /* noop */ ;
228
229 count=i;
230-
231+
232 for (i=0;i<count;) {
233 if (strncmp(environ[i], name, len) == 0 && environ[i][len] == '=') {
234- /* note: we do _not_ free the old variable here. It is unsafe to
235+ /* note: we do _not_ free the old variable here. It is unsafe to
236 do so, as the pointer may not have come from malloc */
237 memmove(&environ[i], &environ[i+1], (count-i)*sizeof(char *));
238 count--;
239@@ -688,7 +688,7 @@ int rep_utimes(const char *filename, const struct timeval tv[2])
240 #endif
241
242 #ifndef HAVE_DUP2
243-int rep_dup2(int oldfd, int newfd)
244+int rep_dup2(int oldfd, int newfd)
245 {
246 errno = ENOSYS;
247 return -1;
248@@ -965,37 +965,6 @@ void *rep_memset_explicit(void *block, int c, size_t size)
249 }
250 #endif
251
252-#ifndef HAVE_MEMSET_S 43-#ifndef HAVE_MEMSET_S
253-# ifndef RSIZE_MAX 44-# ifndef RSIZE_MAX
254-# define RSIZE_MAX (SIZE_MAX >> 1) 45-# define RSIZE_MAX (SIZE_MAX >> 1)
@@ -267,7 +58,7 @@ index 8615899..a419837 100644
267- } 58- }
268- 59-
269-#if defined(HAVE_MEMSET_EXPLICIT) 60-#if defined(HAVE_MEMSET_EXPLICIT)
270- memset_explicit(dest, destsz, ch, count); 61- memset_explicit(dest, ch, count);
271-#else /* HAVE_MEMSET_EXPLICIT */ 62-#else /* HAVE_MEMSET_EXPLICIT */
272- memset(dest, ch, count); 63- memset(dest, ch, count);
273-# if defined(HAVE_GCC_VOLATILE_MEMORY_PROTECTION) 64-# if defined(HAVE_GCC_VOLATILE_MEMORY_PROTECTION)
diff --git a/meta-networking/recipes-connectivity/samba/samba/9aa5c43315d83c19514251a11c4fba5a137f2821.patch b/meta-networking/recipes-connectivity/samba/samba/9aa5c43315d83c19514251a11c4fba5a137f2821.patch
deleted file mode 100644
index e07e86e887..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/9aa5c43315d83c19514251a11c4fba5a137f2821.patch
+++ /dev/null
@@ -1,70 +0,0 @@
1From 9aa5c43315d83c19514251a11c4fba5a137f2821 Mon Sep 17 00:00:00 2001
2From: Andreas Schneider <asn@samba.org>
3Date: Tue, 21 Jan 2025 17:59:27 +0100
4Subject: [PATCH] lib:replace: Don't use deprecated readline CPPFunction cast
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9HAVE_RL_COMPLETION_FUNC_T was unused and not checking for the right
10function.
11
12libcli/smbreadline/smbreadline.c: In function ‘smb_readline’:
13libcli/smbreadline/smbreadline.c:139:17: warning: ‘CPPFunction’ is deprecated [-Wdeprecated-declarations]
14 139 | rl_attempted_completion_function = RL_COMPLETION_CAST completion_fn;
15 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16libcli/smbreadline/smbreadline.c:139:50: error: assignment to ‘char ** (*)(const char *, int, int)’ from incompatible pointer type ‘char ** (*)(void)’ [-Wincompatible-pointer-types]
17 139 | rl_attempted_completion_function = RL_COMPLETION_CAST completion_fn;
18 | ^
19
20BUG: https://bugzilla.samba.org/show_bug.cgi?id=15788
21
22Signed-off-by: Andreas Schneider <asn@samba.org>
23Reviewed-by: Alexander Bokovoy <ab@samba.org>
24
25Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
26Autobuild-Date(master): Tue Jan 21 19:38:37 UTC 2025 on atb-devel-224
27
28Upstream-Status: Backport [https://github.com/samba-team/samba/commit/9aa5c43315d83c19514251a11c4fba5a137f2821]
29
30Signed-off-by: Markus Volk <f_l_k@t-online.de>
31---
32 lib/replace/system/readline.h | 4 +++-
33 libcli/smbreadline/wscript_configure | 8 +++++---
34 2 files changed, 8 insertions(+), 4 deletions(-)
35
36diff --git a/lib/replace/system/readline.h b/lib/replace/system/readline.h
37index 9a9af266ca6d..ac3604fc12e0 100644
38--- a/lib/replace/system/readline.h
39+++ b/lib/replace/system/readline.h
40@@ -46,7 +46,9 @@
41 #endif
42
43 #ifdef HAVE_NEW_LIBREADLINE
44-#ifdef HAVE_CPPFUNCTION
45+#if defined(HAVE_RL_COMPLETION_FUNC_T)
46+# define RL_COMPLETION_CAST (rl_completion_func_t *)
47+#elif defined(HAVE_CPPFUNCTION)
48 # define RL_COMPLETION_CAST (CPPFunction *)
49 #elif defined(HAVE_RL_COMPLETION_T)
50 # define RL_COMPLETION_CAST (rl_completion_t *)
51diff --git a/libcli/smbreadline/wscript_configure b/libcli/smbreadline/wscript_configure
52index 912ff53a150d..f5a401ebae00 100644
53--- a/libcli/smbreadline/wscript_configure
54+++ b/libcli/smbreadline/wscript_configure
55@@ -51,10 +51,12 @@ conf.CHECK_CODE('''
56 # endif
57 # endif
58 #endif
59-int main(void) {rl_completion_t f; return 0;}
60+int main(void) {rl_completion_func_t f; return 0;}
61 ''',
62-'HAVE_RL_COMPLETION_FUNC_T', execute=False, addmain=False,
63-msg='Checking for rl_completion_t')
64+ 'HAVE_RL_COMPLETION_FUNC_T',
65+ execute=False,
66+ addmain=False,
67+ msg='Checking for rl_completion_func_t')
68
69 conf.CHECK_CODE('''
70 #ifdef HAVE_READLINE_READLINE_H
diff --git a/meta-networking/recipes-connectivity/samba/samba_4.19.9.bb b/meta-networking/recipes-connectivity/samba/samba_4.23.5.bb
index 3ed1d46754..ec3149562a 100644
--- a/meta-networking/recipes-connectivity/samba/samba_4.19.9.bb
+++ b/meta-networking/recipes-connectivity/samba/samba_4.23.5.bb
@@ -14,6 +14,10 @@ ${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \
14 14
15export PYTHONHASHSEED = "1" 15export PYTHONHASHSEED = "1"
16 16
17# If XML_CATALOG_FILES env var is not defined, waf defaults
18# to build host folders looking for catalogs.
19export XML_CATALOG_FILES = ""
20
17SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \ 21SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
18 file://smb.conf \ 22 file://smb.conf \
19 file://volatiles.03_samba \ 23 file://volatiles.03_samba \
@@ -24,7 +28,6 @@ SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
24 file://0005-Fix-pyext_PATTERN-for-cross-compilation.patch \ 28 file://0005-Fix-pyext_PATTERN-for-cross-compilation.patch \
25 file://0006-smbtorture-skip-test-case-tfork_cmd_send.patch \ 29 file://0006-smbtorture-skip-test-case-tfork_cmd_send.patch \
26 file://0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch \ 30 file://0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch \
27 file://9aa5c43315d83c19514251a11c4fba5a137f2821.patch \
28 file://0001-lib-replace-Implement-memset_explicit.patch \ 31 file://0001-lib-replace-Implement-memset_explicit.patch \
29 file://0002-lib-replace-Add-test-for-memset_explicit.patch \ 32 file://0002-lib-replace-Add-test-for-memset_explicit.patch \
30 file://0003-Replace-memset_s-with-memset_explicit.patch \ 33 file://0003-Replace-memset_s-with-memset_explicit.patch \
@@ -36,7 +39,7 @@ SRC_URI:append:libc-musl = " \
36 file://samba-4.3.9-remove-getpwent_r.patch \ 39 file://samba-4.3.9-remove-getpwent_r.patch \
37 " 40 "
38 41
39SRC_URI[sha256sum] = "71ed406444714c90bb9d36c576d807b67af15449f297e91106d42b3ca2fa5549" 42SRC_URI[sha256sum] = "593a43ddd0d57902237dfa76888f7b02cb7fc7747111369cb31e126db4836b9f"
40 43
41UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.19(\.\d+)+).tar.gz" 44UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.19(\.\d+)+).tar.gz"
42 45
@@ -47,7 +50,7 @@ CVE_STATUS[CVE-2011-2411] = "not-applicable-platform: vulnerable only on HP NonS
47# remove default added RDEPENDS on perl 50# remove default added RDEPENDS on perl
48RDEPENDS:${PN}:remove = "perl" 51RDEPENDS:${PN}:remove = "perl"
49 52
50DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libaio libpam libtasn1 libtasn1-native jansson libparse-yapp-perl-native gnutls cmocka" 53DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libaio libpam libtasn1 libtasn1-native jansson libparse-yapp-perl-native gnutls cmocka ngtcp2 bison-native"
51 54
52inherit features_check 55inherit features_check
53REQUIRED_DISTRO_FEATURES = "pam" 56REQUIRED_DISTRO_FEATURES = "pam"
@@ -62,7 +65,7 @@ INITSCRIPT_NAME = "samba"
62INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ." 65INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ."
63 66
64SYSTEMD_PACKAGES = "${PN}-base ${PN}-ad-dc winbind ctdb" 67SYSTEMD_PACKAGES = "${PN}-base ${PN}-ad-dc winbind ctdb"
65SYSTEMD_SERVICE:${PN}-base = "nmb.service smb.service" 68SYSTEMD_SERVICE:${PN}-base = "nmb.service smb.service samba-bgqd.service"
66SYSTEMD_SERVICE:${PN}-ad-dc = "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'samba.service', '', d)}" 69SYSTEMD_SERVICE:${PN}-ad-dc = "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'samba.service', '', d)}"
67SYSTEMD_SERVICE:winbind = "winbind.service" 70SYSTEMD_SERVICE:winbind = "winbind.service"
68SYSTEMD_SERVICE:ctdb = "ctdb.service" 71SYSTEMD_SERVICE:ctdb = "ctdb.service"
@@ -109,7 +112,7 @@ SAMBA4_MODULES = "${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MO
109# .so files so there will not be a conflict. This is not done consistantly, so be very careful 112# .so files so there will not be a conflict. This is not done consistantly, so be very careful
110# when adding to this list. 113# when adding to this list.
111# 114#
112SAMBA4_LIBS = "heimdal,NONE" 115SAMBA4_LIBS = "heimdal,libquic,NONE"
113 116
114EXTRA_OECONF += "--enable-fhs \ 117EXTRA_OECONF += "--enable-fhs \
115 --with-piddir=/run \ 118 --with-piddir=/run \
@@ -132,6 +135,19 @@ EXTRA_OECONF += "--enable-fhs \
132 135
133LDFLAGS += "-Wl,-z,relro,-z,now" 136LDFLAGS += "-Wl,-z,relro,-z,now"
134 137
138do_configure:prepend() {
139 # The xsltproc tool is actually a wrapper script in OE, which exports its own XML_CATALOG_FILES env var
140 # However samba does that too. So here I'm trying to concatenate the variables.
141 # The original looks like this in the wrapper:
142 # export XML_CATALOG_FILES=oe-core-specific-thing
143 # and this sed prepends the value with $XML_CATALOG_FILES, and encloses it in quotes. So the end value is
144 # export XML_CATALOG_FILES="$XML_CATALOG FILES oe-core-specific-thing"
145 # The first grep just checks if it was already done, so it is not prepended multiple times.
146
147 grep \$XML_CATALOG_FILES ${STAGING_BINDIR_NATIVE}/xsltproc || \
148 sed -i 's,\(XML_CATALOG_FILES\)=\(.*\),\1="\$XML_CATALOG_FILES \2",' ${STAGING_BINDIR_NATIVE}/xsltproc
149}
150
135do_configure:append() { 151do_configure:append() {
136 cd ${S}/pidl/ 152 cd ${S}/pidl/
137 perl Makefile.PL PREFIX=${prefix} 153 perl Makefile.PL PREFIX=${prefix}
@@ -213,6 +229,9 @@ do_install:append() {
213 find ${D}${libdir}/perl5/ -type f -name "perllocal.pod" -delete 229 find ${D}${libdir}/perl5/ -type f -name "perllocal.pod" -delete
214 find ${D}${libdir}/perl5/ -type f -name ".packlist" -delete 230 find ${D}${libdir}/perl5/ -type f -name ".packlist" -delete
215 sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${bindir}/pidl 231 sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${bindir}/pidl
232
233 sed -i 's,${UNPACKDIR},,g' ${S}/bin/default/libcli/wsp/wsp_aqs_lexer.c
234 sed -i 's,${UNPACKDIR},,g' ${S}/bin/default/libcli/wsp/wsp_aqs_lexer.h
216} 235}
217 236
218PACKAGES =+ "${PN}-python3 ${PN}-pidl \ 237PACKAGES =+ "${PN}-python3 ${PN}-pidl \
@@ -245,7 +264,7 @@ PACKAGESPLITFUNCS:prepend = "samba_populate_packages "
245PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*" 264PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*"
246 265
247RDEPENDS:${PN} += "${PN}-base ${PN}-python3 ${PN}-dsdb-modules python3" 266RDEPENDS:${PN} += "${PN}-base ${PN}-python3 ${PN}-dsdb-modules python3"
248RDEPENDS:${PN}-python3 += "pytalloc python3-tdb pyldb" 267RDEPENDS:${PN}-python3 += "pytalloc python3-tdb"
249 268
250FILES:${PN}-base = "${sbindir}/nmbd \ 269FILES:${PN}-base = "${sbindir}/nmbd \
251 ${sbindir}/smbd \ 270 ${sbindir}/smbd \