Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

net-fs/samba: bump to 4.16.8 #478

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions net-fs/samba/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
DIST samba-4.15.7.tar.gz 19290930 BLAKE2B 4a295f79d38212d4c6917ed61a22e4204b5ea3d5e26f30b65d1e7e81842e92405870dd40fd4d05ec1126a532bdb1ddea300848387a4c64370ba5c2c1354ee8e5 SHA512 beffb09b5bcd62991398d39c7a8aec5fed0c51d550e2f0fb42b2e0a09094f4c6a8f29adf708c4969db12329f5c7343d2debd04315107b79bef59e99a4a7e4ce4
DIST samba-4.16.8.tar.gz 30682100 BLAKE2B bbb9a89a39cc0bae88ba350df38aae35df0bd18c27dd37b093eb023cf71274c12f14c44037e9704404ee3ba27ab930e866b3b951bcc7a5f4499cbc544f231e6b SHA512 55fa977e046de4470a9f1cb4c7956ca1368a21fc88e6bb6ae93d3cadb5400caaebd5b7d51a5ff1aaea884ec58d8abe6c90f448168aaa175d0f6c018f1a913c70
12 changes: 12 additions & 0 deletions net-fs/samba/files/ldb-2.5.2-skip-wav-tevent-check.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
--- ldb-1.3.6/lib/tevent/wscript
+++ ldb-1.3.6/lib/tevent/wscript
@@ -34,8 +34,7 @@
if conf.CHECK_BUNDLED_SYSTEM_PKG('tevent', minversion=VERSION,
onlyif='talloc', implied_deps='replace talloc'):
conf.define('USING_SYSTEM_TEVENT', 1)
- if not conf.env.disable_python and \
- conf.CHECK_BUNDLED_SYSTEM_PYTHON('pytevent', 'tevent', minversion=VERSION):
+ if not conf.env.disable_python:
conf.define('USING_SYSTEM_PYTEVENT', 1)

if conf.CHECK_FUNCS('epoll_create', headers='sys/epoll.h'):
117 changes: 117 additions & 0 deletions net-fs/samba/files/samba-4.15.12-configure-clang16.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
https://bugs.gentoo.org/870043
https://gitlab.com/samba-team/samba/-/merge_requests/2807

From afc5144819e0db141aa9c58de385e5829b952096 Mon Sep 17 00:00:00 2001
From: Florian Weimer <[email protected]>
Date: Mon, 21 Nov 2022 13:37:41 +0100
Subject: [PATCH 1/3] buildtools/wafsamba: Avoid calling lib_func without a
prototype

This is a backport of commit f4c0a750d4adebcf2342a44e85f04526c34
("WAF: Fix detection of linker features")
to buildtools/wafsamba/samba_conftests.py. It fixes the check for
rpath support with compilers in strict C99 mode.

Signed-off-by: Florian Weimer <[email protected]>
--- a/buildtools/wafsamba/samba_waf18.py
+++ b/buildtools/wafsamba/samba_waf18.py
@@ -209,7 +209,8 @@ def CHECK_LIBRARY_SUPPORT(conf, rpath=False, version_script=False, msg=None):
lib_node.parent.mkdir()
lib_node.write('int lib_func(void) { return 42; }\n', 'w')
main_node = bld.srcnode.make_node('main.c')
- main_node.write('int main(void) {return !(lib_func() == 42);}', 'w')
+ main_node.write('int lib_func(void);\n'
+ 'int main(void) {return !(lib_func() == 42);}', 'w')
linkflags = []
if version_script:
script = bld.srcnode.make_node('ldscript')
GitLab
From d8c6a9e5558085dfdb144bb64365822415affe84 Mon Sep 17 00:00:00 2001
From: Florian Weimer <[email protected]>
Date: Mon, 21 Nov 2022 13:53:17 +0100
Subject: [PATCH 2/3] source3/wscript: Fix detection of major/minor macros

These macros are only available via <sys/sysmacros.h> as of glibc
commit e16deca62e16f645213dffd4ecd1153c37765f17 ("[BZ #19239] Don't
include sys/sysmacros.h from sys/types.h."), which went into
glibc 2.28.

This is different from the usual C99 cleanups because it changes
the configure check result with existing compilers that usually
accept implicit function declarations.

Signed-off-by: Florian Weimer <[email protected]>
--- a/source3/wscript
+++ b/source3/wscript
@@ -603,11 +603,11 @@ msg.msg_accrightslen = sizeof(fd);
conf.CHECK_HEADERS('asm/types.h')

conf.CHECK_CODE('dev_t dev; int i = major(dev); return 0', "HAVE_DEVICE_MAJOR_FN",
- headers='unistd.h sys/types.h',
+ headers='sys/sysmacros.h unistd.h sys/types.h',
msg="Checking for major macro")

conf.CHECK_CODE('dev_t dev; int i = minor(dev); return 0', "HAVE_DEVICE_MINOR_FN",
- headers='unistd.h sys/types.h',
+ headers='sys/sysmacros.h unistd.h sys/types.h',
msg="Checking for minor macro")

conf.CHECK_STRUCTURE_MEMBER('struct dirent', 'd_off',
GitLab
From 1f5c44d982c112e21879b64911a4184c063ba4d4 Mon Sep 17 00:00:00 2001
From: Florian Weimer <[email protected]>
Date: Mon, 21 Nov 2022 14:12:43 +0100
Subject: [PATCH 3/3] source3/wscript: Remove implict int and implicit function
declarations

This should fix the remaining C89isms in these configure checks.

Signed-off-by: Florian Weimer <[email protected]>
--- a/source3/wscript
+++ b/source3/wscript
@@ -1314,7 +1314,7 @@ syscall(SYS_initgroups, 16, NULL, NULL, 0);

if conf.CHECK_CODE('''
#include <time.h>
-main() {
+int main() {
struct tm *tm;
if (sizeof(time_t) == 8) {
time_t max_time = 0x7fffffffffffffffll;
@@ -1345,7 +1345,7 @@ main() {
#if defined(HAVE_SYS_SYSMACROS_H)
#include <sys/sysmacros.h>
#endif
-main() { dev_t dev = makedev(1,2); return 0; }
+int main() { dev_t dev = makedev(1,2); return 0; }
''',
'HAVE_MAKEDEV',
addmain=False,
@@ -1355,12 +1355,13 @@ main() { dev_t dev = makedev(1,2); return 0; }
#include <stdio.h>
#include <limits.h>
#include <signal.h>
+#include <stdlib.h>

void exit_on_core(int ignored) {
exit(1);
}

-main() {
+int main() {
char *newpath;
signal(SIGSEGV, exit_on_core);
newpath = realpath("/tmp", NULL);
@@ -1517,9 +1518,9 @@ main() {
# Check for getcwd allowing a NULL arg.
conf.CHECK_CODE('''
#include <unistd.h>
-main() {
+int main() {
char *s = getcwd(NULL,0);
- exit(s != NULL ? 0 : 1);
+ return s != NULL ? 0 : 1;
}''', 'GETCWD_TAKES_NULL', addmain=False, execute=True,
msg="getcwd takes a NULL argument")

GitLab
118 changes: 118 additions & 0 deletions net-fs/samba/files/samba-4.15.9-libunwind-automagic.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
https://gitlab.com/samba-team/samba/-/commit/14feb93d481011765f62614ab49b304e17e4f6fd
https://gitlab.com/samba-team/samba/-/merge_requests/2401?commit_id=ac8064cb0d79db377df75a22a240632dbc37f99f
https://bugs.gentoo.org/791349

From 14feb93d481011765f62614ab49b304e17e4f6fd Mon Sep 17 00:00:00 2001
From: Andrew Bartlett <[email protected]>
Date: Tue, 7 Jun 2022 15:07:59 +1200
Subject: [PATCH] lib/util: Prefer backtrace_symbols() for internal backtraces

Backtraces when Samba is in PANIC state are better with
backtrace_symbols() than with libunwind on Ubuntu 20.04 x86_64
so move libunwind to a off-by-default option, prompted for
if backtrace_symbols() is not available.

Based on a request by Fco Javier Felix <[email protected]>

Signed-off-by: Andrew Bartlett <[email protected]>
Reviewed-by: Joseph Sutton <[email protected]>
--- a/lib/util/fault.c
+++ b/lib/util/fault.c
@@ -222,9 +222,13 @@ _PUBLIC_ void smb_panic(const char *why)
void log_stack_trace(void)
{
#ifdef HAVE_LIBUNWIND
- /* Try to use libunwind before any other technique since on ia64
- * libunwind correctly walks the stack in more circumstances than
- * backtrace.
+ /*
+ * --with-libunwind is required to use libunwind, the
+ * backtrace_symbols() code below is the default.
+ *
+ * This code is available because a previous version of this
+ * comment asserted that on ia64 libunwind correctly walks the
+ * stack in more circumstances than backtrace.
*/
unw_cursor_t cursor;
unw_context_t uc;
--- a/lib/util/wscript
+++ b/lib/util/wscript
@@ -2,6 +2,15 @@ def options(opt):
''' This is a bit strange, but disable is the flag, not enable. '''
opt.add_option('--disable-fault-handling', action='store_true', dest='disable_fault_handling', help=('disable the fault handlers'), default=False)

+ # We do not want libunwind by default (backtrace_symbols() in
+ # glibc is better) but allow (eg) IA-64 to build with it where it
+ # might be better (per old comment in fault.c)
+ opt.samba_add_onoff_option('libunwind',
+ default=None,
+ help='''Use libunwind instead of the default backtrace_symbols()
+ from libc, for example on IA-64 where it might give a better
+ backtrace.''')
+
opt.add_option('--with-systemd',
help=("Enable systemd integration"),
action='store_true', dest='enable_systemd')
--- a/lib/util/wscript_configure
+++ b/lib/util/wscript_configure
@@ -1,23 +1,35 @@
#!/usr/bin/env python
-from waflib import Logs, Options
+from waflib import Logs, Options, Errors

import os, sys

if Options.options.disable_fault_handling:
conf.DEFINE('HAVE_DISABLE_FAULT_HANDLING',1)

-# backtrace could be in libexecinfo or in libc
+# backtrace could be in libexecinfo or in libc.
+# This is our preferred backtrace handler (more useful output than libunwind as at Ubuntu 20.04 x86_64)
conf.CHECK_FUNCS_IN('backtrace backtrace_symbols', 'execinfo', checklibc=True, headers='execinfo.h')
conf.CHECK_HEADERS('execinfo.h')

conf.SET_TARGET_TYPE('LIBUNWIND', 'EMPTY')
-if conf.check_cfg(package='libunwind-generic',
- args='--cflags --libs',
- msg='Checking for libunwind',
- uselib_store='LIBUNWIND',
- mandatory=False):
- if conf.CHECK_HEADERS('libunwind.h'):
- conf.SET_TARGET_TYPE('LIBUNWIND', 'SYSLIB')
+if Options.options.with_libunwind:
+ if conf.check_cfg(package='libunwind-generic',
+ args='--cflags --libs',
+ msg='Checking for libunwind',
+ uselib_store='LIBUNWIND',
+ mandatory=False):
+ if conf.CHECK_HEADERS('libunwind.h'):
+ conf.SET_TARGET_TYPE('LIBUNWIND', 'SYSLIB')
+ else:
+ raise Errors.WafError('--with-libunwind specified but libunwind not found')
+elif Options.options.with_libunwind == None:
+ if not conf.CONFIG_SET('HAVE_BACKTRACE_SYMBOLS') \
+ and not Options.options.disable_fault_handling:
+ raise Errors.WafError(
+'''backtrace_symbols() not found but
+--with-libunwind not specified.
+Use --without-libunwind to build without internal backtrace support or
+--disable-fault-handling to totally defer fault handling to the OS.''')

conf.CHECK_STRUCTURE_MEMBER('struct statvfs', 'f_frsize', define='HAVE_FRSIZE', headers='sys/statvfs.h')

--- a/script/autobuild.py
+++ b/script/autobuild.py
@@ -480,10 +480,11 @@ tasks = {
# MIT Kerberos from the current system. Runtime behaviour is
# confirmed via the ktest (static ccache and keytab) environment

+ # This environment also used to confirm we can still build with --with-libunwind
"samba-ktest-mit": {
"sequence": [
("random-sleep", random_sleep(300, 900)),
- ("configure", "./configure.developer --without-ad-dc --with-system-mitkrb5 " + samba_configure_params),
+ ("configure", "./configure.developer --without-ad-dc --with-libunwind --with-system-mitkrb5 " + samba_configure_params),
("make", "make -j"),
("test", make_test(include_envs=[
"ktest", # ktest is also tested in fileserver, samba and
GitLab
25 changes: 25 additions & 0 deletions net-fs/samba/files/samba-4.16.1-netdb-defines.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
https://gitlab.com/samba-team/samba/-/commit/e13875601ff6f488b48e7de0f6838db3565401d4
https://gitlab.com/samba-team/samba/-/merge_requests/2617
https://gitlab.com/samba-team/samba/-/merge_requests/1025

# Define NETDB_INTERNAL and NETDB_SUCCESS if they are not defined
#
# Gentoo bug 832629 and 835017

--- a/nsswitch/wins.c
+++ b/nsswitch/wins.c
@@ -40,6 +40,14 @@ static pthread_mutex_t wins_nss_mutex = PTHREAD_MUTEX_INITIALIZER;
#define INADDRSZ 4
#endif

+#ifndef NETDB_INTERNAL
+#define NETDB_INTERNAL -1
+#endif
+
+#ifndef NETDB_SUCCESS
+#define NETDB_SUCCESS 0
+#endif
+
_PUBLIC_ON_LINUX_
NSS_STATUS _nss_wins_gethostbyname_r(const char *hostname,
struct hostent *he,
25 changes: 25 additions & 0 deletions net-fs/samba/files/samba-4.16.2-fix-musl-without-innetgr.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
https://gitlab.com/samba-team/samba/-/commit/fb937ddc838043deb82b6a557dce8f29001d0a19

# Gentoo bug 855047
--- a/lib/util/access.c
+++ b/lib/util/access.c
@@ -115,7 +115,7 @@ static bool string_match(const char *tok,const char *s)
return true;
}
} else if (tok[0] == '@') { /* netgroup: look it up */
-#ifdef HAVE_NETGROUP
+#if defined(HAVE_NETGROUP) && defined(HAVE_INNETGR)
DATA_BLOB tmp;
char *mydomain = NULL;
char *hostname = NULL;
--- a/source3/auth/user_util.c
+++ b/source3/auth/user_util.c
@@ -135,7 +135,7 @@ static void store_map_in_gencache(TALLOC_CTX *ctx, const char *from, const char

bool user_in_netgroup(TALLOC_CTX *ctx, const char *user, const char *ngname)
{
-#ifdef HAVE_NETGROUP
+#if defined(HAVE_NETGROUP) && defined(HAVE_INNETGR)
char nis_domain_buf[256];
const char *nis_domain = NULL;
char *lowercase_user = NULL;
Loading