Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package tdb for openSUSE:Factory checked in 
at 2023-10-05 20:02:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tdb (Old)
 and      /work/SRC/openSUSE:Factory/.tdb.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tdb"

Thu Oct  5 20:02:32 2023 rev:43 rq:1114972 version:1.4.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/tdb/tdb.changes  2023-03-25 18:54:49.502497283 
+0100
+++ /work/SRC/openSUSE:Factory/.tdb.new.28202/tdb.changes       2023-10-05 
20:02:36.577534944 +0200
@@ -1,0 +2,8 @@
+Tue Sep 26 09:40:31 UTC 2023 - Noel Power <nopo...@suse.com>
+
+-  Update to 1.4.9
+    * Remove remaining, but broken python2 support
+    * Spelling fixes
+    * python: Safely clear structure members
+
+-------------------------------------------------------------------

Old:
----
  tdb-1.4.8.tar.asc
  tdb-1.4.8.tar.gz

New:
----
  tdb-1.4.9.tar.asc
  tdb-1.4.9.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ tdb.spec ++++++
--- /var/tmp/diff_new_pack.HqCLJZ/_old  2023-10-05 20:02:37.869581621 +0200
+++ /var/tmp/diff_new_pack.HqCLJZ/_new  2023-10-05 20:02:37.869581621 +0200
@@ -19,7 +19,7 @@
 %{!?python_sitearch:  %global python_sitearch %(python -c "from 
distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
 %{!?py3_soflags:  %global py3_soflags cpython-%{python3_version_nodots}m}
 Name:           tdb
-Version:        1.4.8
+Version:        1.4.9
 Release:        0
 Summary:        Samba Trivial Database
 License:        LGPL-3.0-or-later

++++++ tdb-1.4.8.tar.gz -> tdb-1.4.9.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/ABI/tdb-1.4.9.sigs 
new/tdb-1.4.9/ABI/tdb-1.4.9.sigs
--- old/tdb-1.4.8/ABI/tdb-1.4.9.sigs    1970-01-01 01:00:00.000000000 +0100
+++ new/tdb-1.4.9/ABI/tdb-1.4.9.sigs    2023-07-20 12:48:16.091104000 +0200
@@ -0,0 +1,73 @@
+tdb_add_flags: void (struct tdb_context *, unsigned int)
+tdb_append: int (struct tdb_context *, TDB_DATA, TDB_DATA)
+tdb_chainlock: int (struct tdb_context *, TDB_DATA)
+tdb_chainlock_mark: int (struct tdb_context *, TDB_DATA)
+tdb_chainlock_nonblock: int (struct tdb_context *, TDB_DATA)
+tdb_chainlock_read: int (struct tdb_context *, TDB_DATA)
+tdb_chainlock_read_nonblock: int (struct tdb_context *, TDB_DATA)
+tdb_chainlock_unmark: int (struct tdb_context *, TDB_DATA)
+tdb_chainunlock: int (struct tdb_context *, TDB_DATA)
+tdb_chainunlock_read: int (struct tdb_context *, TDB_DATA)
+tdb_check: int (struct tdb_context *, int (*)(TDB_DATA, TDB_DATA, void *), 
void *)
+tdb_close: int (struct tdb_context *)
+tdb_delete: int (struct tdb_context *, TDB_DATA)
+tdb_dump_all: void (struct tdb_context *)
+tdb_enable_seqnum: void (struct tdb_context *)
+tdb_error: enum TDB_ERROR (struct tdb_context *)
+tdb_errorstr: const char *(struct tdb_context *)
+tdb_exists: int (struct tdb_context *, TDB_DATA)
+tdb_fd: int (struct tdb_context *)
+tdb_fetch: TDB_DATA (struct tdb_context *, TDB_DATA)
+tdb_firstkey: TDB_DATA (struct tdb_context *)
+tdb_freelist_size: int (struct tdb_context *)
+tdb_get_flags: int (struct tdb_context *)
+tdb_get_logging_private: void *(struct tdb_context *)
+tdb_get_seqnum: int (struct tdb_context *)
+tdb_hash_size: int (struct tdb_context *)
+tdb_increment_seqnum_nonblock: void (struct tdb_context *)
+tdb_jenkins_hash: unsigned int (TDB_DATA *)
+tdb_lock_nonblock: int (struct tdb_context *, int, int)
+tdb_lockall: int (struct tdb_context *)
+tdb_lockall_mark: int (struct tdb_context *)
+tdb_lockall_nonblock: int (struct tdb_context *)
+tdb_lockall_read: int (struct tdb_context *)
+tdb_lockall_read_nonblock: int (struct tdb_context *)
+tdb_lockall_unmark: int (struct tdb_context *)
+tdb_log_fn: tdb_log_func (struct tdb_context *)
+tdb_map_size: size_t (struct tdb_context *)
+tdb_name: const char *(struct tdb_context *)
+tdb_nextkey: TDB_DATA (struct tdb_context *, TDB_DATA)
+tdb_null: dptr = 0xXXXX, dsize = 0
+tdb_open: struct tdb_context *(const char *, int, int, int, mode_t)
+tdb_open_ex: struct tdb_context *(const char *, int, int, int, mode_t, const 
struct tdb_logging_context *, tdb_hash_func)
+tdb_parse_record: int (struct tdb_context *, TDB_DATA, int (*)(TDB_DATA, 
TDB_DATA, void *), void *)
+tdb_printfreelist: int (struct tdb_context *)
+tdb_remove_flags: void (struct tdb_context *, unsigned int)
+tdb_reopen: int (struct tdb_context *)
+tdb_reopen_all: int (int)
+tdb_repack: int (struct tdb_context *)
+tdb_rescue: int (struct tdb_context *, void (*)(TDB_DATA, TDB_DATA, void *), 
void *)
+tdb_runtime_check_for_robust_mutexes: bool (void)
+tdb_set_logging_function: void (struct tdb_context *, const struct 
tdb_logging_context *)
+tdb_set_max_dead: void (struct tdb_context *, int)
+tdb_setalarm_sigptr: void (struct tdb_context *, volatile sig_atomic_t *)
+tdb_store: int (struct tdb_context *, TDB_DATA, TDB_DATA, int)
+tdb_storev: int (struct tdb_context *, TDB_DATA, const TDB_DATA *, int, int)
+tdb_summary: char *(struct tdb_context *)
+tdb_transaction_active: bool (struct tdb_context *)
+tdb_transaction_cancel: int (struct tdb_context *)
+tdb_transaction_commit: int (struct tdb_context *)
+tdb_transaction_prepare_commit: int (struct tdb_context *)
+tdb_transaction_start: int (struct tdb_context *)
+tdb_transaction_start_nonblock: int (struct tdb_context *)
+tdb_transaction_write_lock_mark: int (struct tdb_context *)
+tdb_transaction_write_lock_unmark: int (struct tdb_context *)
+tdb_traverse: int (struct tdb_context *, tdb_traverse_func, void *)
+tdb_traverse_chain: int (struct tdb_context *, unsigned int, 
tdb_traverse_func, void *)
+tdb_traverse_key_chain: int (struct tdb_context *, TDB_DATA, 
tdb_traverse_func, void *)
+tdb_traverse_read: int (struct tdb_context *, tdb_traverse_func, void *)
+tdb_unlock: int (struct tdb_context *, int, int)
+tdb_unlockall: int (struct tdb_context *)
+tdb_unlockall_read: int (struct tdb_context *)
+tdb_validate_freelist: int (struct tdb_context *, int *)
+tdb_wipe_all: int (struct tdb_context *)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/Makefile new/tdb-1.4.9/Makefile
--- old/tdb-1.4.8/Makefile      2022-03-02 12:26:09.148422700 +0100
+++ new/tdb-1.4.9/Makefile      2023-02-03 11:04:15.024082200 +0100
@@ -60,9 +60,6 @@
 ctags:
        $(WAF) ctags
 
-pydoctor:
-       $(WAF) pydoctor
-
 bin/%:: FORCE
        $(WAF) --targets=`basename $@`
 FORCE:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/examples/run_on_target.py 
new/tdb-1.4.9/buildtools/examples/run_on_target.py
--- old/tdb-1.4.8/buildtools/examples/run_on_target.py  2022-03-02 
12:26:08.936421600 +0100
+++ new/tdb-1.4.9/buildtools/examples/run_on_target.py  2023-04-04 
16:54:16.532374000 +0200
@@ -38,7 +38,7 @@
 import subprocess
 from optparse import OptionParser
 
-# those are defaults, but can be overidden using command line
+# these are defaults, but can be overridden using command line
 SSH = 'ssh'
 USER = None
 HOST = 'localhost'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/configure_file.py 
new/tdb-1.4.9/buildtools/wafsamba/configure_file.py
--- old/tdb-1.4.8/buildtools/wafsamba/configure_file.py 2022-03-02 
12:26:08.936421600 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/configure_file.py 2023-01-23 
06:37:57.747581200 +0100
@@ -13,10 +13,10 @@
     s = task.inputs[0].read()
 
     # split on the vars
-    a = re.split('(@\w+@)', s)
+    a = re.split(r'(@\w+@)', s)
     out = []
     for v in a:
-        if re.match('@\w+@', v):
+        if re.match(r'@\w+@', v):
             vname = v[1:-1]
             if not vname in task.env and vname.upper() in task.env:
                 vname = vname.upper()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/pkgconfig.py 
new/tdb-1.4.9/buildtools/wafsamba/pkgconfig.py
--- old/tdb-1.4.8/buildtools/wafsamba/pkgconfig.py      2022-03-02 
12:26:08.936421600 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/pkgconfig.py      2023-01-23 
06:37:57.751581200 +0100
@@ -9,12 +9,12 @@
 
     s = task.inputs[0].read()
     # split on the vars
-    a = re.split('(@\w+@)', s)
+    a = re.split(r'(@\w+@)', s)
     out = []
     done_var = {}
     back_sub = [ ('PREFIX', '${prefix}'), ('EXEC_PREFIX', '${exec_prefix}')]
     for v in a:
-        if re.match('@\w+@', v):
+        if re.match(r'@\w+@', v):
             vname = v[1:-1]
             if not vname in task.env and vname.upper() in task.env:
                 vname = vname.upper()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/samba_abi.py 
new/tdb-1.4.9/buildtools/wafsamba/samba_abi.py
--- old/tdb-1.4.8/buildtools/wafsamba/samba_abi.py      2022-03-02 
13:27:53.318182000 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/samba_abi.py      2023-05-15 
12:15:14.013386500 +0200
@@ -21,16 +21,16 @@
 def normalise_signature(sig):
     '''normalise a signature from gdb'''
     sig = sig.strip()
-    sig = re.sub('^\$[0-9]+\s=\s\{(.+)\}$', r'\1', sig)
-    sig = re.sub('^\$[0-9]+\s=\s\{(.+)\}(\s0x[0-9a-f]+\s<\w+>)+$', r'\1', sig)
-    sig = re.sub('^\$[0-9]+\s=\s(0x[0-9a-f]+)\s?(<\w+>)?$', r'\1', sig)
-    sig = re.sub('0x[0-9a-f]+', '0xXXXX', sig)
+    sig = re.sub(r'^\$[0-9]+\s=\s\{(.+)\}$', r'\1', sig)
+    sig = re.sub(r'^\$[0-9]+\s=\s\{(.+)\}(\s0x[0-9a-f]+\s<\w+>)+$', r'\1', sig)
+    sig = re.sub(r'^\$[0-9]+\s=\s(0x[0-9a-f]+)\s?(<\w+>)?$', r'\1', sig)
+    sig = re.sub(r'0x[0-9a-f]+', '0xXXXX', sig)
     sig = re.sub('", <incomplete sequence (\\\\[a-z0-9]+)>', r'\1"', sig)
 
     for t in abi_type_maps:
         # we need to cope with non-word characters in mapped types
         m = t
-        m = m.replace('*', '\*')
+        m = m.replace('*', r'\*')
         if m[-1].isalnum() or m[-1] == '_':
             m += '\\b'
         if m[0].isalnum() or m[0] == '_':
@@ -41,8 +41,9 @@
 
 def normalise_varargs(sig):
     '''cope with older versions of gdb'''
-    sig = re.sub(',\s\.\.\.', '', sig)
-    return sig
+    sig = re.sub(r',\s\.\.\.', '', sig)
+    # Make sure we compare bytes and not strings
+    return bytes(sig, encoding='utf-8').decode('unicode_escape')
 
 
 def parse_sigs(sigs, abi_match):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/samba_autoconf.py 
new/tdb-1.4.9/buildtools/wafsamba/samba_autoconf.py
--- old/tdb-1.4.8/buildtools/wafsamba/samba_autoconf.py 2023-01-18 
16:27:05.360657700 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/samba_autoconf.py 2023-05-19 
10:55:21.091587500 +0200
@@ -364,7 +364,7 @@
     return False
 
 @conf
-def CHECK_VALUEOF(conf, v, headers=None, define=None):
+def CHECK_VALUEOF(conf, v, headers=None, define=None, lib=None):
     '''check the value of a variable/define'''
     ret = True
     v_define = define
@@ -376,6 +376,7 @@
                   execute=True,
                   define_ret=True,
                   quote=False,
+                  lib=lib,
                   headers=headers,
                   local_include=False,
                   msg="Checking value of %s" % v):
@@ -830,8 +831,10 @@
     if (Options.options.address_sanitizer or
         Options.options.undefined_sanitizer):
         conf.ADD_CFLAGS('-g -O1', testflags=True)
-    if Options.options.address_sanitizer:
+    if (Options.options.address_sanitizer
+       or Options.options.memory_sanitizer):
         conf.ADD_CFLAGS('-fno-omit-frame-pointer', testflags=True)
+    if Options.options.address_sanitizer:
         conf.ADD_CFLAGS('-fsanitize=address', testflags=True)
         conf.ADD_LDFLAGS('-fsanitize=address', testflags=True)
         conf.env['ADDRESS_SANITIZER'] = True
@@ -842,6 +845,13 @@
         conf.ADD_LDFLAGS('-fsanitize=undefined', testflags=True)
         conf.env['UNDEFINED_SANITIZER'] = True
 
+    # MemorySanitizer is only available if you build with clang
+    if Options.options.memory_sanitizer:
+        conf.ADD_CFLAGS('-g -O2', testflags=True)
+        conf.ADD_CFLAGS('-fsanitize=memory', testflags=True)
+        conf.ADD_CFLAGS('-fsanitize-memory-track-origins=2', testflags=True)
+        conf.ADD_LDFLAGS('-fsanitize=memory')
+        conf.env['MEMORY_SANITIZER'] = True
 
     # Let people pass an additional ADDITIONAL_{CFLAGS,LDFLAGS}
     # environment variables which are only used the for final build.
@@ -883,10 +893,12 @@
             conf.env[name] = conf.env['PREFIX'] + default
 
 @conf
-def ADD_NAMED_CFLAGS(conf, name, flags, testflags=False, prereq_flags=[]):
+def ADD_NAMED_CFLAGS(conf, name, flags, testflags=False, prereq_flags=None):
     '''add some CFLAGS to the command line
        optionally set testflags to ensure all the flags work
     '''
+    if prereq_flags is None:
+        prereq_flags = []
     prereq_flags = TO_LIST(prereq_flags)
     if testflags:
         ok_flags=[]
@@ -899,10 +911,12 @@
     conf.env[name].extend(TO_LIST(flags))
 
 @conf
-def ADD_CFLAGS(conf, flags, testflags=False, prereq_flags=[]):
+def ADD_CFLAGS(conf, flags, testflags=False, prereq_flags=None):
     '''add some CFLAGS to the command line
        optionally set testflags to ensure all the flags work
     '''
+    if prereq_flags is None:
+        prereq_flags = []
     ADD_NAMED_CFLAGS(conf, 'EXTRA_CFLAGS', flags, testflags=testflags,
                      prereq_flags=prereq_flags)
 
@@ -969,7 +983,7 @@
     '''enable/disable cache of configure results'''
     if enable:
         # when -C is chosen, we will use a private cache and will
-        # not look into system includes. This roughtly matches what
+        # not look into system includes. This roughly matches what
         # autoconf does with -C
         cache_path = os.path.join(conf.bldnode.abspath(), '.confcache')
         mkdir_p(cache_path)
@@ -986,7 +1000,9 @@
 
 @conf
 def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(conf):
-    if Options.options.address_sanitizer or Options.options.enable_libfuzzer:
+    if (Options.options.address_sanitizer
+       or Options.options.memory_sanitizer
+       or Options.options.enable_libfuzzer):
         # Sanitizers can rely on symbols undefined at library link time and the
         # symbols used for fuzzers are only defined by compiler wrappers.
         return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/samba_bundled.py 
new/tdb-1.4.9/buildtools/wafsamba/samba_bundled.py
--- old/tdb-1.4.8/buildtools/wafsamba/samba_bundled.py  2022-03-02 
13:27:53.318182000 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/samba_bundled.py  2023-04-04 
16:54:16.532374000 +0200
@@ -57,7 +57,7 @@
 
 
 def minimum_library_version(conf, libname, default):
-    '''allow override of mininum system library version'''
+    '''allow override of minimum system library version'''
 
     minlist = Options.options.MINIMUM_LIBRARY_VERSION
     if not minlist:
@@ -104,12 +104,14 @@
 
 @conf
 def CHECK_BUNDLED_SYSTEM_PKG(conf, libname, minversion='0.0.0',
-        maxversion=None, version_blacklist=[],
+        maxversion=None, version_blacklist=None,
         onlyif=None, implied_deps=None, pkg=None):
     '''check if a library is available as a system library.
 
     This only tries using pkg-config
     '''
+    if version_blacklist is None:
+        version_blacklist = []
     return conf.CHECK_BUNDLED_SYSTEM(libname,
                                      minversion=minversion,
                                      maxversion=maxversion,
@@ -120,7 +122,7 @@
 
 @conf
 def CHECK_BUNDLED_SYSTEM(conf, libname, minversion='0.0.0',
-                         maxversion=None, version_blacklist=[],
+                         maxversion=None, version_blacklist=None,
                          checkfunctions=None, headers=None, checkcode=None,
                          onlyif=None, implied_deps=None,
                          require_headers=True, pkg=None, set_target=True):
@@ -129,6 +131,8 @@
     tries by testing for a specified function in the specified lib
     '''
     # We always do a logic validation of 'onlyif' first
+    if version_blacklist is None:
+        version_blacklist = []
     missing = []
     if onlyif:
         for l in samba_utils.TO_LIST(onlyif):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/samba_conftests.py 
new/tdb-1.4.9/buildtools/wafsamba/samba_conftests.py
--- old/tdb-1.4.8/buildtools/wafsamba/samba_conftests.py        2022-11-15 
16:59:09.743139700 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/samba_conftests.py        2023-04-04 
16:54:16.532374000 +0200
@@ -36,7 +36,7 @@
                  if d:
                      additional_dirs.append(d)
 
-    # we add the additional dirs twice: once for the test data, and again if 
the compilation test suceeds below
+    # we add the additional dirs twice: once for the test data, and again if 
the compilation test succeeds below
     def add_options_dir(dirs, env):
         for x in dirs:
              if not x in env.CPPPATH:
@@ -398,7 +398,7 @@
 
     if section:
         man = Utils.readf(os.path.join(bdir,'Makefile'))
-        m = re.search('MAN%sEXT\s+=\s+(\w+)' % section, man)
+        m = re.search(r'MAN%sEXT\s+=\s+(\w+)' % section, man)
         if not m:
             conf.end_msg('not found', color='YELLOW')
             return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/samba_git.py 
new/tdb-1.4.9/buildtools/wafsamba/samba_git.py
--- old/tdb-1.4.8/buildtools/wafsamba/samba_git.py      2022-03-02 
12:26:08.940421600 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/samba_git.py      2023-05-15 
12:15:14.013386500 +0200
@@ -43,6 +43,7 @@
         cwd=path)
     (stdout, stderr) = p.communicate(None)
     for l in stdout.splitlines():
+        l = l.decode('utf-8')
         l = l.rstrip()
         status = l[0]
         l = l[1:]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/samba_headers.py 
new/tdb-1.4.9/buildtools/wafsamba/samba_headers.py
--- old/tdb-1.4.8/buildtools/wafsamba/samba_headers.py  2022-03-02 
12:26:08.940421600 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/samba_headers.py  2023-04-04 
16:54:16.532374000 +0200
@@ -19,7 +19,7 @@
     return ''
 
 
-re_header = re.compile('^\s*#\s*include[ \t]*"([^"]+)"', re.I | re.M)
+re_header = re.compile(r'^\s*#\s*include[ \t]*"([^"]+)"', re.I | re.M)
 
 # a dictionary mapping source header paths to public header paths
 header_map = {}
@@ -132,7 +132,7 @@
     bld.SET_BUILD_GROUP('final')
 
     if not bld.env.build_public_headers:
-        # in this case no header munging neeeded. Used for tdb, talloc etc
+        # in this case no header munging needed. Used for tdb, talloc etc
         public_headers_simple(bld, public_headers, header_path=header_path,
                               public_headers_install=public_headers_install)
         return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/samba_third_party.py 
new/tdb-1.4.9/buildtools/wafsamba/samba_third_party.py
--- old/tdb-1.4.8/buildtools/wafsamba/samba_third_party.py      2023-01-18 
16:27:05.360657700 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/samba_third_party.py      2023-06-30 
17:47:25.508677000 +0200
@@ -24,12 +24,12 @@
 
 @conf
 def CHECK_SOCKET_WRAPPER(conf):
-    return conf.CHECK_BUNDLED_SYSTEM_PKG('socket_wrapper', minversion='1.3.4')
+    return conf.CHECK_BUNDLED_SYSTEM_PKG('socket_wrapper', minversion='1.4.2')
 Build.BuildContext.CHECK_SOCKET_WRAPPER = CHECK_SOCKET_WRAPPER
 
 @conf
 def CHECK_NSS_WRAPPER(conf):
-    return conf.CHECK_BUNDLED_SYSTEM_PKG('nss_wrapper', minversion='1.1.13')
+    return conf.CHECK_BUNDLED_SYSTEM_PKG('nss_wrapper', minversion='1.1.15')
 Build.BuildContext.CHECK_NSS_WRAPPER = CHECK_NSS_WRAPPER
 
 @conf
@@ -39,7 +39,7 @@
 
 @conf
 def CHECK_UID_WRAPPER(conf):
-    return conf.CHECK_BUNDLED_SYSTEM_PKG('uid_wrapper', minversion='1.2.7')
+    return conf.CHECK_BUNDLED_SYSTEM_PKG('uid_wrapper', minversion='1.3.0')
 Build.BuildContext.CHECK_UID_WRAPPER = CHECK_UID_WRAPPER
 
 @conf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/samba_utils.py 
new/tdb-1.4.9/buildtools/wafsamba/samba_utils.py
--- old/tdb-1.4.8/buildtools/wafsamba/samba_utils.py    2022-03-02 
14:24:35.089488300 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/samba_utils.py    2023-04-04 
16:54:16.532374000 +0200
@@ -237,10 +237,10 @@
 
 def subst_vars_error(string, env):
     '''substitute vars, throw an error if a variable is not defined'''
-    lst = re.split('(\$\{\w+\})', string)
+    lst = re.split(r'(\$\{\w+\})', string)
     out = []
     for v in lst:
-        if re.match('\$\{\w+\}', v):
+        if re.match(r'\$\{\w+\}', v):
             vname = v[2:-1]
             if not vname in env:
                 raise KeyError("Failed to find variable %s in %s in env %s 
<%s>" % (vname, string, env.__class__, str(env)))
@@ -327,7 +327,7 @@
 
     env = ConfigSet.ConfigSet()
     ret = varstr
-    # substitute on user supplied dict if avaiilable
+    # substitute on user supplied dict if available
     if vars is not None:
         for v in vars.keys():
             env[v] = vars[v]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/samba_version.py 
new/tdb-1.4.9/buildtools/wafsamba/samba_version.py
--- old/tdb-1.4.8/buildtools/wafsamba/samba_version.py  2022-03-02 
12:26:08.940421600 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/samba_version.py  2023-04-04 
16:54:16.532374000 +0200
@@ -235,22 +235,22 @@
 def samba_version_file(version_file, path, env=None, is_install=True):
     '''Parse the version information from a VERSION file'''
 
-    f = open(version_file, 'r')
-    version_dict = {}
-    for line in f:
-        line = line.strip()
-        if line == '':
-            continue
-        if line.startswith("#"):
-            continue
-        try:
-            split_line = line.split("=")
-            if split_line[1] != "":
-                value = split_line[1].strip('"')
-                version_dict[split_line[0]] = value
-        except:
-            print("Failed to parse line %s from %s" % (line, version_file))
-            raise
+    with open(version_file, 'r') as f:
+        version_dict = {}
+        for line in f:
+            line = line.strip()
+            if line == '':
+                continue
+            if line.startswith("#"):
+                continue
+            try:
+                split_line = line.split("=")
+                if split_line[1] != "":
+                    value = split_line[1].strip('"')
+                    version_dict[split_line[0]] = value
+            except:
+                print("Failed to parse line %s from %s" % (line, version_file))
+                raise
 
     return SambaVersion(version_dict, path, env=env, is_install=is_install)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/samba_waf18.py 
new/tdb-1.4.9/buildtools/wafsamba/samba_waf18.py
--- old/tdb-1.4.8/buildtools/wafsamba/samba_waf18.py    2023-01-18 
16:27:05.360657700 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/samba_waf18.py    2023-04-04 
16:54:16.532374000 +0200
@@ -148,7 +148,7 @@
 def check(self, *k, **kw):
     '''Override the waf defaults to inject --with-directory options'''
 
-    # match the configuration test with speficic options, for example:
+    # match the configuration test with specific options, for example:
     # --with-libiconv -> Options.options.iconv_open -> "Checking for library 
iconv"
     self.validate_c(kw)
 
@@ -161,7 +161,7 @@
                  if d:
                      additional_dirs.append(d)
 
-    # we add the additional dirs twice: once for the test data, and again if 
the compilation test suceeds below
+    # we add the additional dirs twice: once for the test data, and again if 
the compilation test succeeds below
     def add_options_dir(dirs, env):
         for x in dirs:
              if not x in env.CPPPATH:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/symbols.py 
new/tdb-1.4.9/buildtools/wafsamba/symbols.py
--- old/tdb-1.4.8/buildtools/wafsamba/symbols.py        2022-03-02 
13:27:53.322182200 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/symbols.py        2023-04-04 
16:54:16.532374000 +0200
@@ -119,9 +119,9 @@
 
 
 # some regular expressions for parsing readelf output
-re_sharedlib = re.compile(b'Shared library: \[(.*)\]')
+re_sharedlib = re.compile(rb'Shared library: \[(.*)\]')
 # output from readelf could be `Library rpath` or `Libray runpath`
-re_rpath     = re.compile(b'Library (rpath|runpath): \[(.*)\]')
+re_rpath     = re.compile(rb'Library (rpath|runpath): \[(.*)\]')
 
 def get_libs(bld, binname):
     '''find the list of linked libraries for any binary or library
@@ -436,7 +436,7 @@
 
 
 def check_dependencies(bld, t):
-    '''check for depenencies that should be changed'''
+    '''check for dependencies that should be changed'''
 
     if bld.get_tgen_by_name(t.sname + ".objlist"):
         return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/wafsamba.py 
new/tdb-1.4.9/buildtools/wafsamba/wafsamba.py
--- old/tdb-1.4.8/buildtools/wafsamba/wafsamba.py       2023-01-18 
16:27:05.360657700 +0100
+++ new/tdb-1.4.9/buildtools/wafsamba/wafsamba.py       2023-04-04 
16:54:16.532374000 +0200
@@ -899,10 +899,12 @@
                     private_headers=None,
                     header_path=None,
                     vars=None,
-                    dep_vars=[],
+                    dep_vars=None,
                     always=False):
     '''A generic source generator target'''
 
+    if dep_vars is None:
+        dep_vars = []
     if not SET_TARGET_TYPE(bld, name, 'GENERATOR'):
         return
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/buildtools/wafsamba/wscript 
new/tdb-1.4.9/buildtools/wafsamba/wscript
--- old/tdb-1.4.8/buildtools/wafsamba/wscript   2022-04-25 09:21:25.953240600 
+0200
+++ new/tdb-1.4.9/buildtools/wafsamba/wscript   2023-04-04 16:54:16.532374000 
+0200
@@ -118,7 +118,7 @@
                    action="store_true", dest='disable_rpath_private_install', 
default=False)
     gr.add_option('--nonshared-binary',
                    help=(
-f'''Disable use of shared libaries internal to {Context.g_module.APPNAME} for 
the listed binaries.
+f'''Disable use of shared libraries internal to {Context.g_module.APPNAME} for 
the listed binaries.
 
 The resulting binaries are 'statically linked' with regard to components 
provided by
 {Context.g_module.APPNAME}, but remain dynamically linked to (eg) libc.so and 
libgnutls.so
@@ -189,6 +189,11 @@
         action="store_true",
         dest='undefined_sanitizer',
         default=False)
+    gr.add_option('--memory-sanitizer',
+        help=("Enable memory behaviour sanitizer compile and linker flags"),
+        action="store_true",
+        dest='memory_sanitizer',
+        default=False)
     gr.add_option('--enable-libfuzzer',
                   help=("Build fuzzing binaries (use ADDITIONAL_CFLAGS to 
specify compiler options for libFuzzer or use CC=honggfuzz/hfuzz-cc)"),
                   action="store_true", dest='enable_libfuzzer', default=False)
@@ -373,7 +378,7 @@
     conf.CHECK_CODE('printf("hello world")',
                     define='HAVE_SIMPLE_C_PROG',
                     mandatory=True,
-                    execute=True,
+                    execute=not conf.env.CROSS_COMPILE,
                     headers='stdio.h',
                     msg='Checking simple C program')
 
@@ -523,7 +528,8 @@
             strict=True,
             msg='Checking for __attribute__')
 
-    # Solaris by defauls uses draft versions of some functions unless you set 
_POSIX_PTHREAD_SEMANTICS
+    # Solaris by default uses draft versions of some functions unless you set
+    # _POSIX_PTHREAD_SEMANTICS
     if sys.platform.startswith('sunos'):
         conf.DEFINE('_POSIX_PTHREAD_SEMANTICS', 1)
 
@@ -705,11 +711,6 @@
                     define="HAVE_VA_COPY",
                     msg="Checking for va_copy")
 
-    conf.CHECK_CODE('''
-                    #define eprintf(...) fprintf(stderr, __VA_ARGS__)
-                    eprintf("bla", "bar")
-                    ''', define='HAVE__VA_ARGS__MACRO')
-
     conf.env.enable_fuzzing = False
 
     conf.env.enable_libfuzzer = Options.options.enable_libfuzzer
@@ -719,11 +720,6 @@
         conf.DEFINE('FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION', 1)
         conf.env.FUZZ_TARGET_LDFLAGS = Options.options.FUZZ_TARGET_LDFLAGS
 
-    # Create a symlink of the compile db for clangd
-    symlink(os.path.join(conf.bldnode.abspath(), 
'default/compile_commands.json'),
-            os.path.join(conf.srcnode.abspath(), 'compile_commands.json'),
-            force=True)
-
     conf.SAMBA_BUILD_ENV()
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/common/lock.c new/tdb-1.4.9/common/lock.c
--- old/tdb-1.4.8/common/lock.c 2022-03-02 12:26:09.148422700 +0100
+++ new/tdb-1.4.9/common/lock.c 2023-04-21 10:29:11.360781200 +0200
@@ -812,7 +812,7 @@
        return tdb_allrecord_unlock(tdb, F_WRLCK, true);
 }
 
-/* lock entire database with write lock - nonblocking varient */
+/* lock entire database with write lock - nonblocking variant */
 _PUBLIC_ int tdb_lockall_nonblock(struct tdb_context *tdb)
 {
        int ret = tdb_allrecord_lock(tdb, F_WRLCK, TDB_LOCK_NOWAIT, false);
@@ -834,7 +834,7 @@
        return tdb_allrecord_lock(tdb, F_RDLCK, TDB_LOCK_WAIT, false);
 }
 
-/* lock entire database with read lock - nonblock varient */
+/* lock entire database with read lock - nonblock variant */
 _PUBLIC_ int tdb_lockall_read_nonblock(struct tdb_context *tdb)
 {
        int ret = tdb_allrecord_lock(tdb, F_RDLCK, TDB_LOCK_NOWAIT, false);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/common/mutex.c new/tdb-1.4.9/common/mutex.c
--- old/tdb-1.4.8/common/mutex.c        2022-03-02 12:26:09.148422700 +0100
+++ new/tdb-1.4.9/common/mutex.c        2023-04-21 10:29:11.360781200 +0200
@@ -454,7 +454,7 @@
 
        /*
         * Our only caller tdb_allrecord_upgrade()
-        * garantees that we already own the allrecord lock.
+        * guarantees that we already own the allrecord lock.
         *
         * Which means m->allrecord_mutex is still locked by us.
         */
@@ -502,7 +502,7 @@
 
        /*
         * Our only caller tdb_allrecord_upgrade() (in the error case)
-        * garantees that we already own the allrecord lock.
+        * guarantees that we already own the allrecord lock.
         *
         * Which means m->allrecord_mutex is still locked by us.
         */
@@ -531,7 +531,7 @@
        /*
         * Our only callers tdb_allrecord_unlock() and
         * tdb_allrecord_lock() (in the error path)
-        * garantee that we already own the allrecord lock.
+        * guarantee that we already own the allrecord lock.
         *
         * Which means m->allrecord_mutex is still locked by us.
         */
@@ -982,7 +982,7 @@
         * tdb_robust_mutex_pid to -1. This is ok as this code path is only
         * called once per process.
         *
-        * Leaving our signal handler avoids races with other threads potentialy
+        * Leaving our signal handler avoids races with other threads 
potentially
         * setting up their SIGCHLD handlers.
         *
         * The worst thing that can happen is that the other newer signal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/common/open.c new/tdb-1.4.9/common/open.c
--- old/tdb-1.4.8/common/open.c 2022-03-02 12:26:09.148422700 +0100
+++ new/tdb-1.4.9/common/open.c 2023-04-21 10:29:11.360781200 +0200
@@ -94,7 +94,7 @@
        }
 
        /*
-        * It's required for some following code pathes
+        * It's required for some following code paths
         * to have the fields on 'tdb' up-to-date.
         *
         * E.g. tdb_mutex_size() requires it
@@ -826,7 +826,7 @@
        return ret;
 }
 
-/* register a loging function */
+/* register a logging function */
 _PUBLIC_ void tdb_set_logging_function(struct tdb_context *tdb,
                                        const struct tdb_logging_context 
*log_ctx)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/common/transaction.c 
new/tdb-1.4.9/common/transaction.c
--- old/tdb-1.4.8/common/transaction.c  2022-03-02 12:26:09.152422700 +0100
+++ new/tdb-1.4.9/common/transaction.c  2023-04-21 10:29:11.360781200 +0200
@@ -68,7 +68,7 @@
     although once a transaction is started then an exclusive lock is
     gained until the transaction is committed or cancelled
 
-  - the commit stategy involves first saving away all modified data
+  - the commit strategy involves first saving away all modified data
     into a linearised buffer in the transaction recovery area, then
     marking the transaction recovery area with a magic value to
     indicate a valid recovery record. In total 4 fsync/msync calls are
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/common/traverse.c 
new/tdb-1.4.9/common/traverse.c
--- old/tdb-1.4.8/common/traverse.c     2022-03-02 12:26:09.152422700 +0100
+++ new/tdb-1.4.9/common/traverse.c     2023-04-21 10:29:11.360781200 +0200
@@ -58,7 +58,7 @@
                           that we have done at least one fcntl lock at the
                           start of a search to guarantee that memory is
                           coherent on SMP systems. If records are added by
-                          others during the search then thats OK, and we
+                          others during the search then that's OK, and we
                           could possibly miss those with this trick, but we
                           could miss them anyway without this trick, so the
                           semantics don't change.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/docs/mutex.txt new/tdb-1.4.9/docs/mutex.txt
--- old/tdb-1.4.8/docs/mutex.txt        2022-03-02 12:26:09.152422700 +0100
+++ new/tdb-1.4.9/docs/mutex.txt        2023-04-21 10:29:11.360781200 +0200
@@ -15,7 +15,7 @@
 The external locking API of tdb also allows one to lock the complete database, 
and
 ctdb uses this facility to freeze databases during a recovery. While the
 so-called allrecord lock is held, all linked lists and all individual records
-are frozen alltogether. Tdb achieves this by locking the complete file range
+are frozen altogether. Tdb achieves this by locking the complete file range
 with a single fcntl lock. Individual 1-byte locks for the linked lists
 conflict with this. Access to records is prevented by the one large fnctl byte
 range lock.
@@ -73,7 +73,7 @@
 shared between processes in a common shared memory area.
 
 The process shared posix mutexes have the potential to replace fcntl locking
-to coordinate mmap access for tdbs. However, they are missing the criticial
+to coordinate mmap access for tdbs. However, they are missing the critical
 auto-cleanup property that fcntl provides when a process dies. A process that
 dies hard while holding a shared mutex has no chance to clean up the protected
 data structures and unlock the shared mutex. Thus with a pure process shared
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/lib/replace/inet_ntop.c 
new/tdb-1.4.9/lib/replace/inet_ntop.c
--- old/tdb-1.4.8/lib/replace/inet_ntop.c       2022-03-02 12:26:09.136422600 
+0100
+++ new/tdb-1.4.9/lib/replace/inet_ntop.c       2023-04-12 16:52:20.881123800 
+0200
@@ -65,20 +65,22 @@
  *     format an IPv4 address
  * return:
  *     `dst' (as a const)
- * notes:
- *     (1) uses no statics
- *     (2) takes a unsigned char* not an in_addr as input
  * author:
  *     Paul Vixie, 1996.
  */
 static const char *
 inet_ntop4(const unsigned char *src, char *dst, socklen_t size)
 {
-       static const char *fmt = "%u.%u.%u.%u";
-       char tmp[sizeof "255.255.255.255"];
+       char tmp[sizeof("255.255.255.255")];
        size_t len;
 
-       len = snprintf(tmp, sizeof tmp, fmt, src[0], src[1], src[2], src[3]);
+       len = snprintf(tmp,
+                      sizeof(tmp),
+                      "%hhu.%hhu.%hhu.%hhu",
+                      src[0],
+                      src[1],
+                      src[2],
+                      src[3]);
        if (len >= size) {
                errno = ENOSPC;
                return (NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/lib/replace/replace.h 
new/tdb-1.4.9/lib/replace/replace.h
--- old/tdb-1.4.8/lib/replace/replace.h 2023-01-18 16:27:05.368657800 +0100
+++ new/tdb-1.4.9/lib/replace/replace.h 2023-04-04 16:54:16.552373600 +0200
@@ -886,6 +886,21 @@
 if((i)<((n)-1)){memmove(&((a)[(i)]),&((a)[(i)+1]),(sizeof(*(a))*((n)-(i)-1)));}
 
 /**
+ * Insert an array element by moving the rest one up
+ *
+ */
+#define ARRAY_INSERT_ELEMENT(__array,__old_last_idx,__new_elem,__new_idx) do { 
\
+       if ((__new_idx) < (__old_last_idx)) { \
+               const void *__src = &((__array)[(__new_idx)]); \
+               void *__dst = &((__array)[(__new_idx)+1]); \
+               size_t __num = (__old_last_idx)-(__new_idx); \
+               size_t __len = sizeof(*(__array)) * __num; \
+               memmove(__dst, __src, __len); \
+       } \
+       (__array)[(__new_idx)] = (__new_elem); \
+} while(0)
+
+/**
  * Pointer difference macro
  */
 #define PTR_DIFF(p1,p2) ((ptrdiff_t)(((const char *)(p1)) - (const char 
*)(p2)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/lib/replace/snprintf.c 
new/tdb-1.4.9/lib/replace/snprintf.c
--- old/tdb-1.4.8/lib/replace/snprintf.c        2022-11-15 16:59:09.747140000 
+0100
+++ new/tdb-1.4.9/lib/replace/snprintf.c        2023-04-12 16:52:20.881123800 
+0200
@@ -20,7 +20,7 @@
  * for string length.  This covers a nasty loophole.
  *
  * The other functions are there to prevent NULL pointers from
- * causing nast effects.
+ * causing nasty effects.
  *
  * More Recently:
  *  Brandon Long <bl...@fiction.net> 9/15/96 for mutt 0.43
@@ -77,7 +77,7 @@
  * Fix incorrect zpadlen handling in fmtfp.
  * Thanks to Ollie Oldham <ollie.old...@metro-optix.com> for spotting it.
  * few mods to make it easier to compile the tests.
- * addedd the "Ollie" test to the floating point ones.
+ * added the "Ollie" test to the floating point ones.
  *
  * Martin Pool (m...@samba.org) April 2003
  *    Remove NO_CONFIG_H so that the test case can be built within a source
@@ -550,7 +550,7 @@
                }
                for (i = 1; i < clist[pnum].num; i++) {
                        if (clist[pnum].chunks[0]->type != 
clist[pnum].chunks[i]->type) {
-                               /* nooo noo no!
+                               /* nooo no no!
                                 * all the references to a parameter
                                 * must be of the same type
                                 */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/lib/replace/strptime.c 
new/tdb-1.4.9/lib/replace/strptime.c
--- old/tdb-1.4.8/lib/replace/strptime.c        2022-03-02 12:26:09.136422600 
+0100
+++ new/tdb-1.4.9/lib/replace/strptime.c        2023-04-12 16:52:20.881123800 
+0200
@@ -287,7 +287,7 @@
        }
 
       /* Any character but `%' must be matched by the same character
-        in the iput string.  */
+        in the input string.  */
       if (*fmt != '%')
        {
          match_char (*fmt++, *rp++);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/lib/replace/system/network.h 
new/tdb-1.4.9/lib/replace/system/network.h
--- old/tdb-1.4.8/lib/replace/system/network.h  2022-03-02 12:26:09.136422600 
+0100
+++ new/tdb-1.4.9/lib/replace/system/network.h  2023-02-02 09:26:34.277398800 
+0100
@@ -91,6 +91,8 @@
 #include <stropts.h>
 #endif
 
+#include <limits.h>
+
 #ifndef HAVE_SOCKLEN_T
 #define HAVE_SOCKLEN_T
 typedef int socklen_t;
@@ -342,6 +344,16 @@
 # endif
 #endif
 
+#ifndef PIPE_BUF
+# ifdef __GNU__
+  /*
+   * GNU/Hurd does not have such hardcoded limitations. But it has to support
+   * the minimum POSIX value anyway.
+   */
+#  define PIPE_BUF 512
+# endif
+#endif
+
 #ifndef HAVE_STRUCT_ADDRINFO
 #define HAVE_STRUCT_ADDRINFO
 struct addrinfo {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/lib/replace/system/select.h 
new/tdb-1.4.9/lib/replace/system/select.h
--- old/tdb-1.4.8/lib/replace/system/select.h   2022-03-02 12:26:09.136422600 
+0100
+++ new/tdb-1.4.9/lib/replace/system/select.h   2023-02-02 09:26:34.309399100 
+0100
@@ -34,10 +34,6 @@
 #include <sys/epoll.h>
 #endif
 
-#ifdef HAVE_SOLARIS_PORTS
-#include <port.h>
-#endif
-
 #ifndef SELECT_CAST
 #define SELECT_CAST
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/lib/replace/system/wscript_configure 
new/tdb-1.4.9/lib/replace/system/wscript_configure
--- old/tdb-1.4.8/lib/replace/system/wscript_configure  2022-03-02 
12:26:09.136422600 +0100
+++ new/tdb-1.4.9/lib/replace/system/wscript_configure  2023-04-12 
16:52:20.885124000 +0200
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-# solaris varients of getXXent_r
+# solaris variants of getXXent_r
 conf.CHECK_C_PROTOTYPE('getpwent_r',
                        'struct passwd *getpwent_r(struct passwd *src, char 
*buf, int buflen)',
                        define='SOLARIS_GETPWENT_R', headers='pwd.h')
@@ -8,7 +8,7 @@
                        'struct group *getgrent_r(struct group *src, char *buf, 
int buflen)',
                        define='SOLARIS_GETGRENT_R', headers='grp.h')
 
-# the irix varients
+# the irix variants
 conf.CHECK_C_PROTOTYPE('getpwent_r',
                        'struct passwd *getpwent_r(struct passwd *src, char 
*buf, size_t buflen)',
                        define='SOLARIS_GETPWENT_R', headers='pwd.h')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/lib/replace/wscript 
new/tdb-1.4.9/lib/replace/wscript
--- old/tdb-1.4.8/lib/replace/wscript   2023-01-18 16:27:05.368657800 +0100
+++ new/tdb-1.4.9/lib/replace/wscript   2023-07-20 12:46:15.122290600 +0200
@@ -44,7 +44,6 @@
     conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
     conf.CHECK_HEADERS('shadow.h sys/acl.h')
     conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h 
sys/dir.h sys/epoll.h')
-    conf.CHECK_HEADERS('port.h')
     conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h')
     conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h 
sys/ndir.h sys/priv.h')
     conf.CHECK_HEADERS('sys/resource.h sys/security.h sys/shm.h sys/statfs.h 
sys/statvfs.h sys/termio.h')
@@ -115,7 +114,7 @@
     conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
 
     conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
-    conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
+    conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h 
valgrind/callgrind.h')
     conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
     conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
     conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
@@ -132,6 +131,9 @@
     if conf.CHECK_CFLAGS('-Wno-strict-overflow'):
         conf.define('HAVE_WNO_STRICT_OVERFLOW', '1')
 
+    if conf.CHECK_CFLAGS('-Wno-unused-but-set-variable'):
+        conf.define('HAVE_WNO_UNUSED_BUT_SET_VARIABLE', '1')
+
     if conf.CHECK_CFLAGS('-Wuse-after-free=1'):
         conf.define('HAVE_WUSE_AFTER_FREE_1', '1')
 
@@ -182,6 +184,10 @@
     conf.CHECK_TYPE('blkcnt_t', 'long', headers='sys/types.h sys/stat.h 
unistd.h')
 
     conf.CHECK_SIZEOF('bool char int "long long" long short size_t ssize_t')
+    sizeof_int = conf.env["SIZEOF_INT"]
+    if sizeof_int < 4:
+        conf.fatal(f"Samba won't work with int of size {sizeof_int} (requires 
>= 4)")
+
     conf.CHECK_SIZEOF('int8_t uint8_t int16_t uint16_t int32_t uint32_t 
int64_t uint64_t')
     conf.CHECK_SIZEOF('void*', define='SIZEOF_VOID_P')
     conf.CHECK_SIZEOF('off_t dev_t ino_t time_t')
@@ -482,7 +488,6 @@
     conf.CHECK_FUNCS('timegm getifaddrs freeifaddrs mmap setgroups syscall 
setsid')
     conf.CHECK_FUNCS('getgrent_r getgrgid_r getgrnam_r getgrouplist 
getpagesize')
     conf.CHECK_FUNCS('getpwent_r getpwnam_r getpwuid_r epoll_create')
-    conf.CHECK_FUNCS('port_create')
     conf.CHECK_FUNCS('getprogname')
     if not conf.CHECK_FUNCS('copy_file_range'):
         conf.CHECK_CODE('''
@@ -708,9 +713,6 @@
     if conf.CONFIG_SET('HAVE_EPOLL_CREATE') and 
conf.CONFIG_SET('HAVE_SYS_EPOLL_H'):
         conf.DEFINE('HAVE_EPOLL', 1)
 
-    if conf.CONFIG_SET('HAVE_PORT_CREATE') and conf.CONFIG_SET('HAVE_PORT_H'):
-        conf.DEFINE('HAVE_SOLARIS_PORTS', 1)
-
     if conf.CHECK_FUNCS('eventfd', headers='sys/eventfd.h'):
         conf.DEFINE('HAVE_EVENTFD', 1)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/lib/replace/xattr.c 
new/tdb-1.4.9/lib/replace/xattr.c
--- old/tdb-1.4.8/lib/replace/xattr.c   2023-01-18 16:27:05.372657800 +0100
+++ new/tdb-1.4.9/lib/replace/xattr.c   2023-04-21 10:29:11.356781200 +0200
@@ -1,4 +1,4 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    replacement routines for xattr implementations
    Copyright (C) Jeremy Allison  1998-2005
@@ -10,7 +10,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
@@ -42,7 +42,7 @@
 #endif
 
 /**************************************************************************
- Wrappers for extented attribute calls. Based on the Linux package with
+ Wrappers for extended attribute calls. Based on the Linux package with
  support for IRIX and (Net|Free)BSD also. Expand as other systems have them.
 ****************************************************************************/
 
@@ -196,7 +196,7 @@
         int space;
        const char *name;
        size_t len;
-} 
+}
 extattr[] = {
        { EXTATTR_NAMESPACE_SYSTEM, EXTATTR_PREFIX("system.") },
         { EXTATTR_NAMESPACE_USER, EXTATTR_PREFIX("user.") },
@@ -233,7 +233,7 @@
                                errno = ENOSYS;
                                return -1;
                }
-               /* Some error happend. Errno should be set by the previous call 
*/
+               /* Some error happened. Errno should be set by the previous 
call */
                if(list_size < 0)
                        return -1;
                /* No attributes */
@@ -245,7 +245,7 @@
                   problem with the emulation.
                */
                if(list == NULL) {
-                       /* Take the worse case of one char attribute names - 
+                       /* Take the worse case of one char attribute names -
                           two bytes per name plus one more for sanity.
                        */
                        total_size += list_size + (list_size/2 + 
1)*extattr[t].len;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/pytdb.c new/tdb-1.4.9/pytdb.c
--- old/tdb-1.4.8/pytdb.c       2022-03-02 13:27:53.362182400 +0100
+++ new/tdb-1.4.9/pytdb.c       2023-05-19 10:55:21.095587700 +0200
@@ -31,10 +31,6 @@
 /* Include tdb headers */
 #include <tdb.h>
 
-#if PY_MAJOR_VERSION >= 3
-#define Py_TPFLAGS_HAVE_ITER 0
-#endif
-
 /* discard signature of 'func' in favour of 'target_sig' */
 #define PY_DISCARD_FUNC_SIG(target_sig, func) (target_sig)(void(*)(void))func
 
@@ -337,26 +333,6 @@
        return 0;
 }
 
-#if PY_MAJOR_VERSION < 3
-static PyObject *obj_has_key(PyTdbObject *self, PyObject *args)
-{
-       int ret;
-       PyObject *py_key;
-       PyErr_TDB_RAISE_IF_CLOSED(self);
-
-       if (!PyArg_ParseTuple(args, "O", &py_key))
-               return NULL;
-
-       ret = obj_contains(self, py_key);
-       if (ret == -1)
-               return NULL;
-       if (ret)
-               Py_RETURN_TRUE;
-       Py_RETURN_FALSE;
-
-}
-#endif
-
 static PyObject *obj_store(PyTdbObject *self, PyObject *args)
 {
        TDB_DATA key, value;
@@ -474,7 +450,7 @@
 
 static void tdb_iter_dealloc(PyTdbIteratorObject *self)
 {
-       Py_DECREF(self->iteratee);
+       Py_CLEAR(self->iteratee);
        PyObject_Del(self);
 }
 
@@ -566,21 +542,13 @@
                "Return the next key in this database." },
        { "delete", (PyCFunction)obj_delete, METH_VARARGS, "S.delete(key) -> 
None\n"
                "Delete an entry." },
-#if PY_MAJOR_VERSION < 3
-       { "has_key", (PyCFunction)obj_has_key, METH_VARARGS, "S.has_key(key) -> 
None\n"
-               "Check whether key exists in this database." },
-#endif
        { "store", (PyCFunction)obj_store, METH_VARARGS, "S.store(key, data, 
flag=REPLACE) -> None"
                "Store data." },
        { "storev", (PyCFunction)obj_storev, METH_VARARGS, "S.storev(key, data, 
flag=REPLACE) -> None"
                "Store several data." },
        { "add_flags", (PyCFunction)obj_add_flags, METH_VARARGS, 
"S.add_flags(flags) -> None" },
        { "remove_flags", (PyCFunction)obj_remove_flags, METH_VARARGS, 
"S.remove_flags(flags) -> None" },
-#if PY_MAJOR_VERSION >= 3
        { "keys", (PyCFunction)tdb_object_iter, METH_NOARGS, "S.keys() -> 
iterator" },
-#else
-       { "iterkeys", (PyCFunction)tdb_object_iter, METH_NOARGS, "S.iterkeys() 
-> iterator" },
-#endif
        { "clear", (PyCFunction)obj_clear, METH_NOARGS, "S.clear() -> None\n"
                "Wipe the entire database." },
        { "repack", (PyCFunction)obj_repack, METH_NOARGS, "S.repack() -> None\n"
@@ -784,7 +752,7 @@
        .tp_dealloc = (destructor)tdb_object_dealloc,
        .tp_as_mapping = &tdb_object_mapping,
        .tp_as_sequence = &tdb_object_seq,
-       .tp_flags = Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_ITER,
+       .tp_flags = Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
        .tp_iter = PY_DISCARD_FUNC_SIG(getiterfunc,tdb_object_iter),
 };
 
@@ -801,7 +769,6 @@
 
 #define MODULE_DOC "simple key-value database that supports multiple writers."
 
-#if PY_MAJOR_VERSION >= 3
 static struct PyModuleDef moduledef = {
     PyModuleDef_HEAD_INIT,
     .m_name = "tdb",
@@ -809,7 +776,6 @@
     .m_size = -1,
     .m_methods = tdb_methods,
 };
-#endif
 
 PyObject* module_init(void);
 PyObject* module_init(void)
@@ -822,11 +788,7 @@
        if (PyType_Ready(&PyTdbIterator) < 0)
                return NULL;
 
-#if PY_MAJOR_VERSION >= 3
        m = PyModule_Create(&moduledef);
-#else
-       m = Py_InitModule3("tdb", tdb_methods, MODULE_DOC);
-#endif
        if (m == NULL)
                return NULL;
 
@@ -861,16 +823,8 @@
 }
 
 
-#if PY_MAJOR_VERSION >= 3
 PyMODINIT_FUNC PyInit_tdb(void);
 PyMODINIT_FUNC PyInit_tdb(void)
 {
     return module_init();
 }
-#else
-void inittdb(void);
-void inittdb(void)
-{
-    module_init();
-}
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/test/lock-tracking.c 
new/tdb-1.4.9/test/lock-tracking.c
--- old/tdb-1.4.8/test/lock-tracking.c  2022-03-02 12:26:09.152422700 +0100
+++ new/tdb-1.4.9/test/lock-tracking.c  2023-04-21 10:29:11.360781200 +0200
@@ -1,4 +1,4 @@
-/* We save the locks so we can reaquire them. */
+/* We save the locks so we can reacquire them. */
 #include "../common/tdb_private.h"
 #include <unistd.h>
 #include <fcntl.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tdb-1.4.8/wscript new/tdb-1.4.9/wscript
--- old/tdb-1.4.8/wscript       2023-01-18 18:37:29.303779800 +0100
+++ new/tdb-1.4.9/wscript       2023-07-20 12:48:16.091104000 +0200
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 
 APPNAME = 'tdb'
-VERSION = '1.4.8'
+VERSION = '1.4.9'
 
 import sys, os
 

Reply via email to