samba4: bump to 4.22.2

https://www.samba.org/samba/history/samba-4.22.2.html

Removed upstreamed:
  101-do-not-check-xsltproc-manpages.patch
  105-perl-json-pp.patch

Removed due to build failure:
  104-samba-4.12-unbundle-icu.patch

Added:
  104-fix-build-on-aarch64-and-risc.patch[1]

Makefile:
  Removed section on --accel-aes due to upstream dropping support
  Added line to correct fcntl check in cross-answers.txt

1. For aarch64 and risc64, the discard_const macro is used to remove
const qualifiers from string literals, but casting a string literal’s
address to uintptr_t and then to void * is not a constant expression in
some compilers or environments e.g. the musl libc and aarch64/risc64
combination seems to enforce stricter rules for constant initializers
or pointer/integer size handling compared to glibc-based systems.

Build system: x86/64
Build-tested: x86/64
Run-tested: x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
John Audia
2025-06-02 15:19:14 -04:00
committed by Hannu Nyman
parent 01fafd69ef
commit 192ca00bce
10 changed files with 49 additions and 81 deletions

View File

@@ -2,7 +2,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=samba
PKG_VERSION:=4.18.8
PKG_VERSION:=4.22.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -13,7 +13,7 @@ PKG_SOURCE_URL:= \
http://www.nic.funet.fi/index/samba/pub/samba/stable/ \
http://samba.mirror.bit.nl/samba/ftp/stable/ \
https://download.samba.org/pub/samba/stable/
PKG_HASH:=4fb87bceaeb01d832a59046c197a044b7e8e8000581548b5d577a6cda03344d1
PKG_HASH:=d9ac8e224a200159e62c651cf42307dc162212ec25d04eb6800b9a7ccfbcc3c1
PKG_BUILD_FLAGS:=gc-sections
@@ -217,14 +217,6 @@ HOST_CONFIGURE_ARGS += --disable-avahi --without-quotas --without-acl-support --
--without-ad-dc --without-json --without-libarchive --disable-python --nopyc --nopyo \
--without-ads --without-ldap --without-ldb-lmdb
# Optional AES-NI support - https://lists.samba.org/archive/samba-technical/2017-September/122738.html
# Support for Nettle wasn't comitted
ifdef CONFIG_TARGET_x86_64
CONFIGURE_ARGS += --accel-aes=intelaesni
else
CONFIGURE_ARGS += --accel-aes=none
endif
CONFIGURE_ARGS += \
--with-lockdir=/var/lock \
--with-logfilebase=/var/log \
@@ -371,6 +363,7 @@ define Build/Configure
echo 'Checking uname version type: "$(VERSION_DIST) Linux-$(LINUX_VERSION) $(shell date +%Y-%m-%d)"' >> $(PKG_BUILD_DIR)/cross-answers.txt
# NOTE: special answers for freeBSD/CircleCI
echo 'checking for clnt_create(): OK' >> $(PKG_BUILD_DIR)/cross-answers.txt
echo 'Checking whether fcntl supports setting/getting hints: OK' >> $(PKG_BUILD_DIR)/cross-answers.txt
$(call Build/Configure/Default)
endef

View File

@@ -1,10 +1,9 @@
--- a/wscript_configure_embedded_heimdal
+++ b/wscript_configure_embedded_heimdal
@@ -6,3 +6,14 @@ if not conf.env['BISON']:
@@ -7,6 +7,17 @@ if not conf.env['BISON']:
conf.define('USING_EMBEDDED_HEIMDAL', 1)
conf.RECURSE('third_party/heimdal_build')
+
+def check_system_heimdal_binary(name):
+ if conf.LIB_MAY_BE_BUNDLED(name):
+ return False
@@ -15,3 +14,7 @@
+
+check_system_heimdal_binary("compile_et")
+check_system_heimdal_binary("asn1_compile")
+
#
# See https://github.com/heimdal/heimdal/pull/1234
# and https://github.com/krb5/krb5/pull/1329

View File

@@ -0,0 +1,11 @@
--- a/wscript_configure_system_gnutls
+++ b/wscript_configure_system_gnutls
@@ -36,7 +36,7 @@ if (gnutls_version > parse_version('3.6.
# GNUTLS_CB_TLS_SERVER_END_POINT is available with
# 3.7.2
-if (gnutls_version >= parse_version('3.7.2')):
+if (gnutls_version > parse_version('3.7.2')):
conf.DEFINE('HAVE_GNUTLS_CB_TLS_SERVER_END_POINT', 1)
# Check if gnutls has fips mode support

View File

@@ -1,6 +1,6 @@
--- a/source3/lib/messages.c
+++ b/source3/lib/messages.c
@@ -500,7 +500,7 @@ static NTSTATUS messaging_init_internal(
@@ -501,7 +501,7 @@ static NTSTATUS messaging_init_internal(
return NT_STATUS_ACCESS_DENIED;
}
@@ -9,7 +9,7 @@
if (priv_path == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -663,7 +663,7 @@ NTSTATUS messaging_reinit(struct messagi
@@ -664,7 +664,7 @@ NTSTATUS messaging_reinit(struct messagi
msg_ctx->per_process_talloc_ctx,
msg_ctx->event_ctx,
&msg_ctx->id.unique_id,

View File

@@ -1,6 +1,6 @@
--- a/source4/lib/messaging/messaging.c
+++ b/source4/lib/messaging/messaging.c
@@ -526,7 +526,7 @@ static struct imessaging_context *imessa
@@ -537,7 +537,7 @@ static struct imessaging_context *imessa
goto fail;
}

View File

@@ -2,17 +2,6 @@ Don't check xsltproc manpages
Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
--- 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'):
--- a/lib/talloc/wscript
+++ b/lib/talloc/wscript
@@ -48,7 +48,7 @@ def configure(conf):

View File

@@ -1,6 +1,6 @@
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
@@ -434,22 +434,13 @@ def configure(conf):
@@ -441,33 +441,13 @@ def configure(conf):
conf.CHECK_FUNCS('prctl dirname basename')
@@ -16,6 +16,17 @@
- 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 <string.h>
- # (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'):
@@ -29,7 +40,7 @@
conf.CHECK_CODE('''
struct ucred cred;
@@ -832,9 +823,6 @@ syscall(SYS_copy_file_range,0,NULL,0,NUL
@@ -850,9 +830,6 @@ syscall(SYS_copy_file_range,0,NULL,0,NUL
# look for a method of finding the list of network interfaces
for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']:
@@ -39,7 +50,7 @@
if conf.CHECK_CODE('''
#define %s 1
#define NO_CONFIG_H 1
@@ -847,7 +835,7 @@ syscall(SYS_copy_file_range,0,NULL,0,NUL
@@ -865,7 +842,7 @@ syscall(SYS_copy_file_range,0,NULL,0,NUL
#include "tests/getifaddrs.c"
''' % method,
method,
@@ -48,7 +59,7 @@
addmain=False,
execute=True):
break
@@ -895,7 +883,6 @@ def build(bld):
@@ -913,7 +890,6 @@ def build(bld):
break
extra_libs = ''

View File

@@ -0,0 +1,11 @@
--- a/lib/ldb/tests/test_ldb_comparison_fold.c
+++ b/lib/ldb/tests/test_ldb_comparison_fold.c
@@ -52,7 +52,7 @@ struct ranked_value {
int rank;
};
-#define STR_VAL(s, r) { { discard_const(s), sizeof(s) - 1 }, r}
+#define STR_VAL(s, r) { { (void *)s, sizeof(s) - 1 }, r}
static const struct ranked_value values_common[] = {
STR_VAL("", 0),

View File

@@ -1,30 +0,0 @@
--- a/lib/util/charset/wscript_configure
+++ b/lib/util/charset/wscript_configure
@@ -37,15 +37,15 @@ conf.CHECK_CODE('''
lib='iconv',
headers='errno.h iconv.h')
-if conf.CHECK_CFG(package='icu-i18n',
- args='--cflags --libs',
- msg='Checking for icu-i18n',
- uselib_store='ICU_I18N'):
- for lib in conf.env['LIB_ICU_I18N']:
- conf.CHECK_LIB(lib, shlib=True, mandatory=True)
- conf.env['icu-libs'] = ' '.join(conf.env['LIB_ICU_I18N'])
- if not conf.CHECK_HEADERS('unicode/ustring.h'):
- conf.fatal('Found libicu, but unicode/ustring.h is missing')
- conf.DEFINE('HAVE_UTF8_NORMALISATION', 1)
-else:
- conf.env['icu-libs'] = ''
+# if conf.CHECK_CFG(package='icu-i18n',
+ # args='--cflags --libs',
+ # msg='Checking for icu-i18n',
+ # uselib_store='ICU_I18N'):
+ # for lib in conf.env['LIB_ICU_I18N']:
+ # conf.CHECK_LIB(lib, shlib=True, mandatory=True)
+ # conf.env['icu-libs'] = ' '.join(conf.env['LIB_ICU_I18N'])
+ # if not conf.CHECK_HEADERS('unicode/ustring.h'):
+ # conf.fatal('Found libicu, but unicode/ustring.h is missing')
+ # conf.DEFINE('HAVE_UTF8_NORMALISATION', 1)
+# else:
+conf.env['icu-libs'] = ''

View File

@@ -1,20 +0,0 @@
--- a/third_party/heimdal/cf/make-proto.pl
+++ b/third_party/heimdal/cf/make-proto.pl
@@ -4,7 +4,7 @@
use Getopt::Std;
use File::Compare;
-use JSON;
+use JSON::PP;
my $comment = 0;
my $doxygen = 0;
@@ -70,7 +70,7 @@ if($opt_x) {
my $EXP;
local $/;
open(EXP, '<', $opt_x) || die "open ${opt_x}";
- my $obj = JSON->new->utf8->decode(<EXP>);
+ my $obj = JSON::PP->new->utf8->decode(<EXP>);
close $EXP;
foreach my $x (keys %$obj) {