From patchwork Thu Mar 5 20:17:51 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Gyorgy Sarvari X-Patchwork-Id: 82636 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id D74FAF47CCC for ; Thu, 5 Mar 2026 20:18:07 +0000 (UTC) Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.53712.1772741880189329604 for ; Thu, 05 Mar 2026 12:18:00 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=QY766rcU; spf=pass (domain: gmail.com, ip: 209.85.128.46, mailfrom: skandigraun@gmail.com) Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-48379a42f76so73098795e9.0 for ; Thu, 05 Mar 2026 12:17:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772741878; x=1773346678; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=L47yBZZzibb2jcAUPy9njWpeyCXpJoLRRWXu4Eth6fQ=; b=QY766rcUMQOb7IL7twtsGsncZLZe0etKtKLvcdzY0cAvOFl+mXmUXjum049T4KOqJ7 G6xs1DKE5dQe22dkps38Gx8Q4ibpDCdlSpGgJ/1NeRY+RD8TS6j3RcGHstA7yiAQE9wa XXW2kbM4UBl0TO2qpGn6AEStU0Ob9o04jaea7vrm5pQ70dYsDVM2MUlNAvkvj8OZTDxA ml5jBGc/uozvAy/eSG7n+5NUXnLkmfyj+7543qAni5/DyH83OPjzcGxES5UvJKSV5kjz ktZyo8DvQopTAFMwvY3OA2n634J25jlJvM0xyXaDLZ1N08tPusHqWItRVB9zICFijRvR WDEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772741878; x=1773346678; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=L47yBZZzibb2jcAUPy9njWpeyCXpJoLRRWXu4Eth6fQ=; b=sMrLO7ReMlPgdZTkdcqivg+sDiOhr3OfhgkPYvbngcEjHzxMRvw+RAdmhBLVcqZc2j ZyKIT45rWA1fX11Qi361XAqfvnHNQ0TlDFAmb7OaiPoblglEjOSxCYedVfoIIgDZOE45 3gDqbeX9IimCv1SKA2z2X0scajQievugVvWwH1JZJaD0DMY8VEwY322WuhJBGvMozCFh Fl+haFgXvT6Ty8dmQU0MF1B0Mqtu5MWOtrm+jradYOhiSYAaZrXfas2dq12IFdNgQXJ3 4NTU1vlVvjoHCwrKV+CV250SFS47CjNb3oF5YIJ8kOIY+CeIhAYgZsN28TuS+foIzS7b p/fw== X-Gm-Message-State: AOJu0YxQV+gPpee+WGNACIobiWbEfjC0bB55RnWRgEkn61JvmKBRyAT/ QM9e5qpC8xdf0WZkFU34GyaC7nc8EDlMYLrUafMyNNMafsxgjcaxosFrJpaeqA== X-Gm-Gg: ATEYQzzZBb8uAcjPZtmXdneKEUGXsxs15f6cfmP91gI8uudURpoJpFRaBNE60oQsSrA aPi79YZPEk6J49tZiXLVFK5tqDzu9PrqiWWSQ0TLI8Wo6nI13sx7BEcYnwGm06R02reNOofHXxn I7s+7yNKtt5QdWBZbB2J/uR8U6qdrbuBB1kUXqdSSEDBI+1HMMdnrleQI6RAnBDEHfjARHydsVi 2gejBcolrWutOUsrweqL0M9yqsWK9eKbPaiADOWI5Wli3CXk2PKV5tGwdGG3Bpi5izRyd6Cy560 tpX8FQliNcr6aPDGsY6lnOQgGW0eoa+F5cZUOue942U9T1rjPXQacdMhkWF+6yCPqbmCBxXL4D/ BmiiCsov00kL5h4cx0tZOxjaqyg6XcSsaGNwqSCg1OzbxFn9lOIbxrQ32FhgnANraKJr0fKqrfo QfLVVds6VhMDhPCyI5kDnx X-Received: by 2002:a05:600c:a4b:b0:480:1c85:88bf with SMTP id 5b1f17b1804b1-4851989814cmr114273325e9.27.1772741878227; Thu, 05 Mar 2026 12:17:58 -0800 (PST) Received: from desktop ([51.154.145.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4851fb27a20sm120009585e9.9.2026.03.05.12.17.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 12:17:57 -0800 (PST) From: Gyorgy Sarvari To: openembedded-devel@lists.openembedded.org Subject: [meta-networking][PATCH 3/3] samba: upgrade 4.19.9 -> 4.23.5 Date: Thu, 5 Mar 2026 21:17:51 +0100 Message-ID: <20260305201754.151603-3-skandigraun@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260305201754.151603-1-skandigraun@gmail.com> References: <20260305201754.151603-1-skandigraun@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 05 Mar 2026 20:18:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/124896 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 --- .../0001-Don-t-check-xsltproc-manpages.patch | 19 +- ...3-Add-config-option-without-valgrind.patch | 11 +- ...eplace-memset_s-with-memset_explicit.patch | 117 +--------- ...tions-to-configure-the-use-of-libbsd.patch | 50 ++-- .../0004-lib-replace-Remove-memset_s.patch | 217 +----------------- ...c43315d83c19514251a11c4fba5a137f2821.patch | 70 ------ .../{samba_4.19.9.bb => samba_4.23.5.bb} | 31 ++- 7 files changed, 74 insertions(+), 441 deletions(-) delete mode 100644 meta-networking/recipes-connectivity/samba/samba/9aa5c43315d83c19514251a11c4fba5a137f2821.patch rename meta-networking/recipes-connectivity/samba/{samba_4.19.9.bb => samba_4.23.5.bb} (91%) 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 Rebase to 4.14.4 Signed-off-by: Yi Zhao + +Rebase to 4.23.5 +Signed-off-by: Gyorgy Sarvari --- - lib/ldb/wscript | 2 +- lib/talloc/wscript | 2 +- lib/tdb/wscript | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) + 2 files changed, 2 insertions(+), 2 deletions(-) -diff --git a/lib/ldb/wscript b/lib/ldb/wscript -index ed5d45f..de3c648 100644 ---- a/lib/ldb/wscript -+++ b/lib/ldb/wscript -@@ -144,7 +144,7 @@ def configure(conf): - conf.DEFINE('EXPECTED_SYSTEM_LDB_VERSION_RELEASE', int(v[2])) - - if conf.env.standalone_ldb: -- conf.CHECK_XSLTPROC_MANPAGES() -+ #conf.CHECK_XSLTPROC_MANPAGES() - - # we need this for the ldap backend - if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'): diff --git a/lib/talloc/wscript b/lib/talloc/wscript index 075f1ec..9bd9f73 100644 --- 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 index 95ddd9e..6d9577a 100644 --- a/wscript +++ b/wscript -@@ -123,6 +123,13 @@ def options(opt): +@@ -131,6 +131,13 @@ help=('Disable kernely keyring support for credential storage'), action='store_false', dest='enable_keyring') - + + opt.add_option('--with-valgrind', + help=("Enable use of valgrind"), + action="store_true", dest='enable_valgrind') @@ -48,9 +48,6 @@ index 95ddd9e..6d9577a 100644 + help=("Disable use of valgrind"), + action="store_false", dest='enable_valgrind', default=False) + - gr = opt.option_group('developer options') - - opt.load('python') # options for disabling pyc or pyo compilation --- -2.25.1 + opt.samba_add_onoff_option('ldap') + 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 --- a/lib/replace/replace.h +++ b/lib/replace/replace.h -@@ -815,50 +815,50 @@ typedef unsigned long long ptrdiff_t ; +@@ -811,50 +811,50 @@ typedef unsigned long long ptrdiff_t ; /** * Zero a structure. */ @@ -74,7 +74,7 @@ Signed-off-by: Khem Raj /** * Explicitly zero data in string. This is guaranteed to be not optimized -@@ -867,7 +867,7 @@ typedef unsigned long long ptrdiff_t ; +@@ -863,7 +863,7 @@ typedef unsigned long long ptrdiff_t ; #define BURN_STR(x) do { \ if ((x) != NULL) { \ size_t s = strlen(x); \ @@ -193,116 +193,3 @@ Signed-off-by: Khem Raj talloc_free(mem_ctx); } ---- a/lib/cmdline/cmdline.c -+++ b/lib/cmdline/cmdline.c -@@ -358,7 +358,7 @@ bool samba_cmdline_burn(int argc, char * - p += ulen; - } - -- memset_s(p, strlen(p), '\0', strlen(p)); -+ memset_explicit(p, '\0', strlen(p)); - burnt = true; - } - } ---- a/lib/util/data_blob.c -+++ b/lib/util/data_blob.c -@@ -1,19 +1,19 @@ --/* -+/* - Unix SMB/CIFS implementation. - Easy management of byte-length data - Copyright (C) Andrew Tridgell 2001 - Copyright (C) Andrew Bartlett 2001 -- -+ - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. -- -+ - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -- -+ - You should have received a copy of the GNU General Public License - along with this program. If not, see . - */ -@@ -67,7 +67,7 @@ _PUBLIC_ DATA_BLOB data_blob_talloc_name - } - - /** -- construct a zero data blob, using supplied TALLOC_CTX. -+ construct a zero data blob, using supplied TALLOC_CTX. - use this sparingly as it initialises data - better to initialise - yourself if you want specific data in the blob - **/ -@@ -95,7 +95,7 @@ clear a DATA_BLOB's contents - _PUBLIC_ void data_blob_clear(DATA_BLOB *d) - { - if (d->data) { -- memset_s(d->data, d->length, 0, d->length); -+ memset_explicit(d->data, 0, d->length); - } - } - -@@ -219,7 +219,7 @@ _PUBLIC_ DATA_BLOB data_blob_string_cons - } - - /** -- * Create a new data blob from const data -+ * Create a new data blob from const data - */ - - _PUBLIC_ DATA_BLOB data_blob_const(const void *p, size_t length) -@@ -266,7 +266,7 @@ _PUBLIC_ bool data_blob_append(TALLOC_CT - if ((const uint8_t *)p + length < (const uint8_t *)p) { - return false; - } -- -+ - if (!data_blob_realloc(mem_ctx, blob, new_len)) { - return false; - } ---- a/lib/util/talloc_keep_secret.c -+++ b/lib/util/talloc_keep_secret.c -@@ -22,27 +22,13 @@ - - static int talloc_keep_secret_destructor(void *ptr) - { -- int ret; - size_t size = talloc_get_size(ptr); - - if (unlikely(size == 0)) { - return 0; - } - -- ret = memset_s(ptr, size, 0, size); -- if (unlikely(ret != 0)) { -- char *msg = NULL; -- int ret2; -- ret2 = asprintf(&msg, -- "talloc_keep_secret_destructor: memset_s() failed: %s", -- strerror(ret)); -- if (ret2 != -1) { -- smb_panic(msg); -- } else { -- smb_panic("talloc_keep_secret_destructor: memset_s() failed"); -- } -- } -- -+ memset_explicit(ptr, 0, size); - return 0; - } - ---- a/librpc/ndr/util.c -+++ b/librpc/ndr/util.c -@@ -32,5 +32,5 @@ _PUBLIC_ void ndr_print_sockaddr_storage - - _PUBLIC_ void ndr_zero_memory(void *ptr, size_t len) - { -- memset_s(ptr, len, 0, len); -+ memset_explicit(ptr, 0, len); - } 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 index 30cb366..d167551 100644 --- a/buildtools/wafsamba/wscript +++ b/buildtools/wafsamba/wscript -@@ -145,6 +145,13 @@ Currently the only tested value is 'smbtorture,smbd/smbd' for Samba'''), +@@ -155,6 +155,13 @@ Currently the only tested value is 'smbtorture,smbd/smbd' for Samba'''), help=("Disable use of gettext"), action="store_true", dest='disable_gettext', default=False) @@ -37,40 +37,60 @@ diff --git a/lib/replace/wscript b/lib/replace/wscript index 9dd9b48..a22ae59 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript -@@ -444,20 +444,21 @@ def configure(conf): - +@@ -444,31 +444,32 @@ + strlcpy_in_bsd = False - + - # libbsd on some platforms provides strlcpy and strlcat - if not conf.CHECK_FUNCS('strlcpy strlcat'): - if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', - checklibc=True): - strlcpy_in_bsd = True -- if not conf.CHECK_FUNCS('getpeereid'): -- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') -- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): -- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') -- if not conf.CHECK_FUNCS('setproctitle_init'): -- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') -- -- if not conf.CHECK_FUNCS('closefrom'): -- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') +- elif conf.env.enable_fuzzing: +- # Just to complicate it more, some versions of Honggfuzz have +- # got strlcpy and strlcat in libc, but not in +- # (unless it is there coincidentally, on a BSD). Therefore we +- # can't use CHECK_FUNCS alone to decide whether to add the +- # headers to replace.h. +- # +- # As this is only known to happen on a fuzzing compiler, we'll +- # skip the check when not in fuzzing mode. +- conf.CHECK_HEADERS('bsd/string.h') + if Options.options.enable_libbsd: + # libbsd on some platforms provides strlcpy and strlcat + if not conf.CHECK_FUNCS('strlcpy strlcat'): + if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', + checklibc=True): + strlcpy_in_bsd = True ++ elif conf.env.enable_fuzzing: ++ # Just to complicate it more, some versions of Honggfuzz have ++ # got strlcpy and strlcat in libc, but not in ++ # (unless it is there coincidentally, on a BSD). Therefore we ++ # can't use CHECK_FUNCS alone to decide whether to add the ++ # headers to replace.h. ++ # ++ # As this is only known to happen on a fuzzing compiler, we'll ++ # skip the check when not in fuzzing mode. ++ conf.CHECK_HEADERS('bsd/string.h') + +- if not conf.CHECK_FUNCS('getpeereid'): +- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') +- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): +- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') +- if not conf.CHECK_FUNCS('setproctitle_init'): +- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') + if not conf.CHECK_FUNCS('getpeereid'): + conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') + if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): + conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') + if not conf.CHECK_FUNCS('setproctitle_init'): + conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') -+ + +- if not conf.CHECK_FUNCS('closefrom'): +- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') + if not conf.CHECK_FUNCS('closefrom'): + conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') - + conf.CHECK_CODE(''' struct ucred cred; diff --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 index bb9d008..d8431e7 100644 --- a/lib/replace/README +++ b/lib/replace/README -@@ -74,7 +74,6 @@ realpath +@@ -73,7 +73,6 @@ realpath poll setproctitle memset_explicit @@ -36,219 +36,10 @@ diff --git a/lib/replace/replace.c b/lib/replace/replace.c index 8615899..a419837 100644 --- a/lib/replace/replace.c +++ b/lib/replace/replace.c -@@ -1,4 +1,4 @@ --/* -+/* - Unix SMB/CIFS implementation. - replacement routines for broken systems - Copyright (C) Andrew Tridgell 1992-1998 -@@ -8,7 +8,7 @@ - ** NOTE! The following LGPL license applies to the replace - ** library. This does NOT imply that all of Samba is released - ** under the LGPL -- -+ - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either -@@ -91,7 +91,7 @@ size_t rep_strlcpy(char *d, const char *s, size_t bufsize) - #endif - - #ifndef HAVE_STRLCAT --/* like strncat but does not 0 fill the buffer and always null -+/* like strncat but does not 0 fill the buffer and always null - terminates. bufsize is the length of the buffer, which should - be one more than the maximum resulting string length */ - size_t rep_strlcat(char *d, const char *s, size_t bufsize) -@@ -116,7 +116,7 @@ size_t rep_strlcat(char *d, const char *s, size_t bufsize) - - #ifndef HAVE_MKTIME - /******************************************************************* --a mktime() replacement for those who don't have it - contributed by -+a mktime() replacement for those who don't have it - contributed by - C.A. Lademann - Corrections by richard.kettlewell@kewill.com - ********************************************************************/ -@@ -137,7 +137,7 @@ time_t rep_mktime(struct tm *t) - return((time_t)-1); - - n = t->tm_year + 1900 - 1; -- epoch = (t->tm_year - 70) * YEAR + -+ epoch = (t->tm_year - 70) * YEAR + - ((n / 4 - n / 100 + n / 400) - (1969 / 4 - 1969 / 100 + 1969 / 400)) * DAY; - - y = t->tm_year + 1900; -@@ -147,7 +147,7 @@ time_t rep_mktime(struct tm *t) - epoch += mon [m] * DAY; - if(m == 1 && y % 4 == 0 && (y % 100 != 0 || y % 400 == 0)) - epoch += DAY; -- -+ - if(++m > 11) { - m = 0; - y++; -@@ -156,7 +156,7 @@ time_t rep_mktime(struct tm *t) - - epoch += (t->tm_mday - 1) * DAY; - epoch += t->tm_hour * HOUR + t->tm_min * MINUTE + t->tm_sec; -- -+ - if((u = localtime(&epoch)) != NULL) { - t->tm_sec = u->tm_sec; - t->tm_min = u->tm_min; -@@ -176,7 +176,7 @@ time_t rep_mktime(struct tm *t) - - #ifndef HAVE_INITGROUPS - /**************************************************************************** -- some systems don't have an initgroups call -+ some systems don't have an initgroups call - ****************************************************************************/ - int rep_initgroups(char *name, gid_t id) - { -@@ -194,7 +194,7 @@ int rep_initgroups(char *name, gid_t id) - int i,j; - struct group *g; - char *gr; -- -+ - if((grouplst = malloc(sizeof(gid_t) * max_gr)) == NULL) { - errno = ENOMEM; - return -1; -@@ -250,9 +250,9 @@ void *rep_memmove(void *dest,const void *src,int size) - - if (d < s) { - /* we can forward copy */ -- if (s-d >= sizeof(int) && -- !(s%sizeof(int)) && -- !(d%sizeof(int)) && -+ if (s-d >= sizeof(int) && -+ !(s%sizeof(int)) && -+ !(d%sizeof(int)) && - !(size%sizeof(int))) { - /* do it all as words */ - int *idest = (int *)dest; -@@ -267,9 +267,9 @@ void *rep_memmove(void *dest,const void *src,int size) - } - } else { - /* must backward copy */ -- if (d-s >= sizeof(int) && -- !(s%sizeof(int)) && -- !(d%sizeof(int)) && -+ if (d-s >= sizeof(int) && -+ !(s%sizeof(int)) && -+ !(d%sizeof(int)) && - !(size%sizeof(int))) { - /* do it all as words */ - int *idest = (int *)dest; -@@ -281,7 +281,7 @@ void *rep_memmove(void *dest,const void *src,int size) - char *cdest = (char *)dest; - char *csrc = (char *)src; - for (i=size-1;i>=0;i--) cdest[i] = csrc[i]; -- } -+ } - } - return(dest); - } -@@ -334,16 +334,16 @@ void rep_vsyslog (int facility_priority, const char *format, va_list arglist) - size_t rep_strnlen(const char *s, size_t max) - { - size_t len; -- -+ - for (len = 0; len < max; len++) { - if (s[len] == '\0') { - break; - } - } -- return len; -+ return len; +@@ -965,37 +965,6 @@ } #endif -- -+ - #ifndef HAVE_STRNDUP - /** - Some platforms don't have strndup. -@@ -351,7 +351,7 @@ void rep_vsyslog (int facility_priority, const char *format, va_list arglist) - char *rep_strndup(const char *s, size_t n) - { - char *ret; -- -+ - n = strnlen(s, n); - ret = malloc(n+1); - if (!ret) -@@ -407,7 +407,7 @@ int rep_chroot(const char *dname) - - /***************************************************************** - Possibly replace mkstemp if it is broken. --*****************************************************************/ -+*****************************************************************/ - - #ifndef HAVE_SECURE_MKSTEMP - int rep_mkstemp(char *template) -@@ -425,7 +425,7 @@ int rep_mkstemp(char *template) - char *rep_mkdtemp(char *template) - { - char *dname; -- -+ - if ((dname = mktemp(template))) { - if (mkdir(dname, 0700) >= 0) { - return dname; -@@ -532,7 +532,7 @@ long long int rep_strtoll(const char *str, char **endptr, int base) - { - #ifdef HAVE_STRTOQ - return strtoq(str, endptr, base); --#elif defined(HAVE___STRTOLL) -+#elif defined(HAVE___STRTOLL) - return __strtoll(str, endptr, base); - #elif SIZEOF_LONG == SIZEOF_LONG_LONG - return (long long int) strtol(str, endptr, base); -@@ -568,7 +568,7 @@ unsigned long long int rep_strtoull(const char *str, char **endptr, int base) - { - #ifdef HAVE_STRTOUQ - return strtouq(str, endptr, base); --#elif defined(HAVE___STRTOULL) -+#elif defined(HAVE___STRTOULL) - return __strtoull(str, endptr, base); - #elif SIZEOF_LONG == SIZEOF_LONG_LONG - return (unsigned long long int) strtoul(str, endptr, base); -@@ -599,7 +599,7 @@ unsigned long long int rep_strtoull(const char *str, char **endptr, int base) - #endif /* HAVE_STRTOULL */ - - #ifndef HAVE_SETENV --int rep_setenv(const char *name, const char *value, int overwrite) -+int rep_setenv(const char *name, const char *value, int overwrite) - { - char *p; - size_t l1, l2; -@@ -644,10 +644,10 @@ int rep_unsetenv(const char *name) - for (i=0;environ[i];i++) /* noop */ ; - - count=i; -- -+ - for (i=0;i -Reviewed-by: Alexander Bokovoy - -Autobuild-User(master): Andreas Schneider -Autobuild-Date(master): Tue Jan 21 19:38:37 UTC 2025 on atb-devel-224 - -Upstream-Status: Backport [https://github.com/samba-team/samba/commit/9aa5c43315d83c19514251a11c4fba5a137f2821] - -Signed-off-by: Markus Volk ---- - lib/replace/system/readline.h | 4 +++- - libcli/smbreadline/wscript_configure | 8 +++++--- - 2 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/lib/replace/system/readline.h b/lib/replace/system/readline.h -index 9a9af266ca6d..ac3604fc12e0 100644 ---- a/lib/replace/system/readline.h -+++ b/lib/replace/system/readline.h -@@ -46,7 +46,9 @@ - #endif - - #ifdef HAVE_NEW_LIBREADLINE --#ifdef HAVE_CPPFUNCTION -+#if defined(HAVE_RL_COMPLETION_FUNC_T) -+# define RL_COMPLETION_CAST (rl_completion_func_t *) -+#elif defined(HAVE_CPPFUNCTION) - # define RL_COMPLETION_CAST (CPPFunction *) - #elif defined(HAVE_RL_COMPLETION_T) - # define RL_COMPLETION_CAST (rl_completion_t *) -diff --git a/libcli/smbreadline/wscript_configure b/libcli/smbreadline/wscript_configure -index 912ff53a150d..f5a401ebae00 100644 ---- a/libcli/smbreadline/wscript_configure -+++ b/libcli/smbreadline/wscript_configure -@@ -51,10 +51,12 @@ conf.CHECK_CODE(''' - # endif - # endif - #endif --int main(void) {rl_completion_t f; return 0;} -+int main(void) {rl_completion_func_t f; return 0;} - ''', --'HAVE_RL_COMPLETION_FUNC_T', execute=False, addmain=False, --msg='Checking for rl_completion_t') -+ 'HAVE_RL_COMPLETION_FUNC_T', -+ execute=False, -+ addmain=False, -+ msg='Checking for rl_completion_func_t') - - conf.CHECK_CODE(''' - #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 similarity index 91% rename from meta-networking/recipes-connectivity/samba/samba_4.19.9.bb rename to 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 \ export PYTHONHASHSEED = "1" +# If XML_CATALOG_FILES env var is not defined, waf defaults +# to build host folders looking for catalogs. +export XML_CATALOG_FILES = "" + SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \ file://smb.conf \ file://volatiles.03_samba \ @@ -24,7 +28,6 @@ SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \ file://0005-Fix-pyext_PATTERN-for-cross-compilation.patch \ file://0006-smbtorture-skip-test-case-tfork_cmd_send.patch \ file://0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch \ - file://9aa5c43315d83c19514251a11c4fba5a137f2821.patch \ file://0001-lib-replace-Implement-memset_explicit.patch \ file://0002-lib-replace-Add-test-for-memset_explicit.patch \ file://0003-Replace-memset_s-with-memset_explicit.patch \ @@ -36,7 +39,7 @@ SRC_URI:append:libc-musl = " \ file://samba-4.3.9-remove-getpwent_r.patch \ " -SRC_URI[sha256sum] = "71ed406444714c90bb9d36c576d807b67af15449f297e91106d42b3ca2fa5549" +SRC_URI[sha256sum] = "593a43ddd0d57902237dfa76888f7b02cb7fc7747111369cb31e126db4836b9f" UPSTREAM_CHECK_REGEX = "samba\-(?P4\.19(\.\d+)+).tar.gz" @@ -47,7 +50,7 @@ CVE_STATUS[CVE-2011-2411] = "not-applicable-platform: vulnerable only on HP NonS # remove default added RDEPENDS on perl RDEPENDS:${PN}:remove = "perl" -DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libaio libpam libtasn1 libtasn1-native jansson libparse-yapp-perl-native gnutls cmocka" +DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libaio libpam libtasn1 libtasn1-native jansson libparse-yapp-perl-native gnutls cmocka ngtcp2 bison-native" inherit features_check REQUIRED_DISTRO_FEATURES = "pam" @@ -62,7 +65,7 @@ INITSCRIPT_NAME = "samba" INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ." SYSTEMD_PACKAGES = "${PN}-base ${PN}-ad-dc winbind ctdb" -SYSTEMD_SERVICE:${PN}-base = "nmb.service smb.service" +SYSTEMD_SERVICE:${PN}-base = "nmb.service smb.service samba-bgqd.service" SYSTEMD_SERVICE:${PN}-ad-dc = "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'samba.service', '', d)}" SYSTEMD_SERVICE:winbind = "winbind.service" SYSTEMD_SERVICE:ctdb = "ctdb.service" @@ -109,7 +112,7 @@ SAMBA4_MODULES = "${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MO # .so files so there will not be a conflict. This is not done consistantly, so be very careful # when adding to this list. # -SAMBA4_LIBS = "heimdal,NONE" +SAMBA4_LIBS = "heimdal,libquic,NONE" EXTRA_OECONF += "--enable-fhs \ --with-piddir=/run \ @@ -132,6 +135,19 @@ EXTRA_OECONF += "--enable-fhs \ LDFLAGS += "-Wl,-z,relro,-z,now" +do_configure:prepend() { + # The xsltproc tool is actually a wrapper script in OE, which exports its own XML_CATALOG_FILES env var + # However samba does that too. So here I'm trying to concatenate the variables. + # The original looks like this in the wrapper: + # export XML_CATALOG_FILES=oe-core-specific-thing + # and this sed prepends the value with $XML_CATALOG_FILES, and encloses it in quotes. So the end value is + # export XML_CATALOG_FILES="$XML_CATALOG FILES oe-core-specific-thing" + # The first grep just checks if it was already done, so it is not prepended multiple times. + + grep \$XML_CATALOG_FILES ${STAGING_BINDIR_NATIVE}/xsltproc || \ + sed -i 's,\(XML_CATALOG_FILES\)=\(.*\),\1="\$XML_CATALOG_FILES \2",' ${STAGING_BINDIR_NATIVE}/xsltproc +} + do_configure:append() { cd ${S}/pidl/ perl Makefile.PL PREFIX=${prefix} @@ -213,6 +229,9 @@ do_install:append() { find ${D}${libdir}/perl5/ -type f -name "perllocal.pod" -delete find ${D}${libdir}/perl5/ -type f -name ".packlist" -delete sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${bindir}/pidl + + sed -i 's,${UNPACKDIR},,g' ${S}/bin/default/libcli/wsp/wsp_aqs_lexer.c + sed -i 's,${UNPACKDIR},,g' ${S}/bin/default/libcli/wsp/wsp_aqs_lexer.h } PACKAGES =+ "${PN}-python3 ${PN}-pidl \ @@ -245,7 +264,7 @@ PACKAGESPLITFUNCS:prepend = "samba_populate_packages " PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*" RDEPENDS:${PN} += "${PN}-base ${PN}-python3 ${PN}-dsdb-modules python3" -RDEPENDS:${PN}-python3 += "pytalloc python3-tdb pyldb" +RDEPENDS:${PN}-python3 += "pytalloc python3-tdb" FILES:${PN}-base = "${sbindir}/nmbd \ ${sbindir}/smbd \