Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package talloc for openSUSE:Factory checked in at 2023-10-05 20:02:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/talloc (Old) and /work/SRC/openSUSE:Factory/.talloc.new.28202 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "talloc" Thu Oct 5 20:02:30 2023 rev:45 rq:1114971 version:2.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/talloc/talloc-man.changes 2023-03-25 18:54:48.042489651 +0100 +++ /work/SRC/openSUSE:Factory/.talloc.new.28202/talloc-man.changes 2023-10-05 20:02:34.137446791 +0200 @@ -1,0 +2,8 @@ +Tue Sep 26 09:32:01 UTC 2023 - Noel Power <nopo...@suse.com> + +- Update to 2.4.1 + * Remove remaining, but broken python2 support + * Spelling fixes + * Remove unneeded va_copy() + +------------------------------------------------------------------- talloc.changes: same change Old: ---- talloc-2.4.0.tar.asc talloc-2.4.0.tar.gz New: ---- talloc-2.4.1.tar.asc talloc-2.4.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ talloc-man.spec ++++++ --- /var/tmp/diff_new_pack.rxXMkk/_old 2023-10-05 20:02:35.877509654 +0200 +++ /var/tmp/diff_new_pack.rxXMkk/_new 2023-10-05 20:02:35.877509654 +0200 @@ -35,7 +35,7 @@ #!BuildIgnore: python %endif # build_man URL: http://talloc.samba.org/ -Version: 2.4.0 +Version: 2.4.1 Release: 0 Summary: Samba talloc Library License: LGPL-3.0-or-later ++++++ talloc.spec ++++++ --- /var/tmp/diff_new_pack.rxXMkk/_old 2023-10-05 20:02:35.905510666 +0200 +++ /var/tmp/diff_new_pack.rxXMkk/_new 2023-10-05 20:02:35.905510666 +0200 @@ -35,7 +35,7 @@ #!BuildIgnore: python %endif # build_man URL: http://talloc.samba.org/ -Version: 2.4.0 +Version: 2.4.1 Release: 0 Summary: Samba talloc Library License: LGPL-3.0-or-later ++++++ talloc-2.4.0.tar.gz -> talloc-2.4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.0/ABI/pytalloc-util-2.4.1.sigs new/talloc-2.4.1/ABI/pytalloc-util-2.4.1.sigs --- old/talloc-2.4.0/ABI/pytalloc-util-2.4.1.sigs 1970-01-01 01:00:00.000000000 +0100 +++ new/talloc-2.4.1/ABI/pytalloc-util-2.4.1.sigs 2023-07-18 15:16:05.179537800 +0200 @@ -0,0 +1,16 @@ +_pytalloc_check_type: int (PyObject *, const char *) +_pytalloc_get_mem_ctx: TALLOC_CTX *(PyObject *) +_pytalloc_get_name: const char *(PyObject *) +_pytalloc_get_ptr: void *(PyObject *) +_pytalloc_get_type: void *(PyObject *, const char *) +pytalloc_BaseObject_PyType_Ready: int (PyTypeObject *) +pytalloc_BaseObject_check: int (PyObject *) +pytalloc_BaseObject_size: size_t (void) +pytalloc_Check: int (PyObject *) +pytalloc_GenericObject_reference_ex: PyObject *(TALLOC_CTX *, void *) +pytalloc_GenericObject_steal_ex: PyObject *(TALLOC_CTX *, void *) +pytalloc_GetBaseObjectType: PyTypeObject *(void) +pytalloc_GetObjectType: PyTypeObject *(void) +pytalloc_reference_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *) +pytalloc_steal: PyObject *(PyTypeObject *, void *) +pytalloc_steal_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.0/ABI/talloc-2.4.1.sigs new/talloc-2.4.1/ABI/talloc-2.4.1.sigs --- old/talloc-2.4.0/ABI/talloc-2.4.1.sigs 1970-01-01 01:00:00.000000000 +0100 +++ new/talloc-2.4.1/ABI/talloc-2.4.1.sigs 2023-07-18 15:16:05.179537800 +0200 @@ -0,0 +1,66 @@ +_talloc: void *(const void *, size_t) +_talloc_array: void *(const void *, size_t, unsigned int, const char *) +_talloc_free: int (void *, const char *) +_talloc_get_type_abort: void *(const void *, const char *, const char *) +_talloc_memdup: void *(const void *, const void *, size_t, const char *) +_talloc_move: void *(const void *, const void *) +_talloc_pooled_object: void *(const void *, size_t, const char *, unsigned int, size_t) +_talloc_realloc: void *(const void *, void *, size_t, const char *) +_talloc_realloc_array: void *(const void *, void *, size_t, unsigned int, const char *) +_talloc_reference_loc: void *(const void *, const void *, const char *) +_talloc_set_destructor: void (const void *, int (*)(void *)) +_talloc_steal_loc: void *(const void *, const void *, const char *) +_talloc_zero: void *(const void *, size_t, const char *) +_talloc_zero_array: void *(const void *, size_t, unsigned int, const char *) +talloc_asprintf: char *(const void *, const char *, ...) +talloc_asprintf_addbuf: void (char **, const char *, ...) +talloc_asprintf_append: char *(char *, const char *, ...) +talloc_asprintf_append_buffer: char *(char *, const char *, ...) +talloc_autofree_context: void *(void) +talloc_check_name: void *(const void *, const char *) +talloc_disable_null_tracking: void (void) +talloc_enable_leak_report: void (void) +talloc_enable_leak_report_full: void (void) +talloc_enable_null_tracking: void (void) +talloc_enable_null_tracking_no_autofree: void (void) +talloc_find_parent_byname: void *(const void *, const char *) +talloc_free_children: void (void *) +talloc_get_name: const char *(const void *) +talloc_get_size: size_t (const void *) +talloc_increase_ref_count: int (const void *) +talloc_init: void *(const char *, ...) +talloc_is_parent: int (const void *, const void *) +talloc_named: void *(const void *, size_t, const char *, ...) +talloc_named_const: void *(const void *, size_t, const char *) +talloc_parent: void *(const void *) +talloc_parent_name: const char *(const void *) +talloc_pool: void *(const void *, size_t) +talloc_realloc_fn: void *(const void *, void *, size_t) +talloc_reference_count: size_t (const void *) +talloc_reparent: void *(const void *, const void *, const void *) +talloc_report: void (const void *, FILE *) +talloc_report_depth_cb: void (const void *, int, int, void (*)(const void *, int, int, int, void *), void *) +talloc_report_depth_file: void (const void *, int, int, FILE *) +talloc_report_full: void (const void *, FILE *) +talloc_set_abort_fn: void (void (*)(const char *)) +talloc_set_log_fn: void (void (*)(const char *)) +talloc_set_log_stderr: void (void) +talloc_set_memlimit: int (const void *, size_t) +talloc_set_name: const char *(const void *, const char *, ...) +talloc_set_name_const: void (const void *, const char *) +talloc_show_parents: void (const void *, FILE *) +talloc_strdup: char *(const void *, const char *) +talloc_strdup_append: char *(char *, const char *) +talloc_strdup_append_buffer: char *(char *, const char *) +talloc_strndup: char *(const void *, const char *, size_t) +talloc_strndup_append: char *(char *, const char *, size_t) +talloc_strndup_append_buffer: char *(char *, const char *, size_t) +talloc_test_get_magic: int (void) +talloc_total_blocks: size_t (const void *) +talloc_total_size: size_t (const void *) +talloc_unlink: int (const void *, void *) +talloc_vasprintf: char *(const void *, const char *, va_list) +talloc_vasprintf_append: char *(char *, const char *, va_list) +talloc_vasprintf_append_buffer: char *(char *, const char *, va_list) +talloc_version_major: int (void) +talloc_version_minor: int (void) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.0/Makefile new/talloc-2.4.1/Makefile --- old/talloc-2.4.0/Makefile 2022-03-02 12:26:09.144422800 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/examples/run_on_target.py new/talloc-2.4.1/buildtools/examples/run_on_target.py --- old/talloc-2.4.0/buildtools/examples/run_on_target.py 2022-03-02 12:26:08.936421600 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/configure_file.py new/talloc-2.4.1/buildtools/wafsamba/configure_file.py --- old/talloc-2.4.0/buildtools/wafsamba/configure_file.py 2022-03-02 12:26:08.936421600 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/pkgconfig.py new/talloc-2.4.1/buildtools/wafsamba/pkgconfig.py --- old/talloc-2.4.0/buildtools/wafsamba/pkgconfig.py 2022-03-02 12:26:08.936421600 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/samba_abi.py new/talloc-2.4.1/buildtools/wafsamba/samba_abi.py --- old/talloc-2.4.0/buildtools/wafsamba/samba_abi.py 2022-03-02 13:27:53.318182000 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/samba_autoconf.py new/talloc-2.4.1/buildtools/wafsamba/samba_autoconf.py --- old/talloc-2.4.0/buildtools/wafsamba/samba_autoconf.py 2023-01-18 16:27:05.360657700 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/samba_bundled.py new/talloc-2.4.1/buildtools/wafsamba/samba_bundled.py --- old/talloc-2.4.0/buildtools/wafsamba/samba_bundled.py 2022-03-02 13:27:53.318182000 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/samba_conftests.py new/talloc-2.4.1/buildtools/wafsamba/samba_conftests.py --- old/talloc-2.4.0/buildtools/wafsamba/samba_conftests.py 2022-11-15 16:59:09.743139700 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/samba_git.py new/talloc-2.4.1/buildtools/wafsamba/samba_git.py --- old/talloc-2.4.0/buildtools/wafsamba/samba_git.py 2022-03-02 12:26:08.940421600 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/samba_headers.py new/talloc-2.4.1/buildtools/wafsamba/samba_headers.py --- old/talloc-2.4.0/buildtools/wafsamba/samba_headers.py 2022-03-02 12:26:08.940421600 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/samba_third_party.py new/talloc-2.4.1/buildtools/wafsamba/samba_third_party.py --- old/talloc-2.4.0/buildtools/wafsamba/samba_third_party.py 2023-01-18 16:27:05.360657700 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/samba_utils.py new/talloc-2.4.1/buildtools/wafsamba/samba_utils.py --- old/talloc-2.4.0/buildtools/wafsamba/samba_utils.py 2022-03-02 14:24:35.089488300 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/samba_version.py new/talloc-2.4.1/buildtools/wafsamba/samba_version.py --- old/talloc-2.4.0/buildtools/wafsamba/samba_version.py 2022-03-02 12:26:08.940421600 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/samba_waf18.py new/talloc-2.4.1/buildtools/wafsamba/samba_waf18.py --- old/talloc-2.4.0/buildtools/wafsamba/samba_waf18.py 2023-01-18 16:27:05.360657700 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/symbols.py new/talloc-2.4.1/buildtools/wafsamba/symbols.py --- old/talloc-2.4.0/buildtools/wafsamba/symbols.py 2022-03-02 13:27:53.322182200 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/wafsamba.py new/talloc-2.4.1/buildtools/wafsamba/wafsamba.py --- old/talloc-2.4.0/buildtools/wafsamba/wafsamba.py 2023-01-18 16:27:05.360657700 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/buildtools/wafsamba/wscript new/talloc-2.4.1/buildtools/wafsamba/wscript --- old/talloc-2.4.0/buildtools/wafsamba/wscript 2022-04-25 09:21:25.953240600 +0200 +++ new/talloc-2.4.1/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/talloc-2.4.0/lib/replace/inet_ntop.c new/talloc-2.4.1/lib/replace/inet_ntop.c --- old/talloc-2.4.0/lib/replace/inet_ntop.c 2022-03-02 12:26:09.136422600 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/lib/replace/replace.h new/talloc-2.4.1/lib/replace/replace.h --- old/talloc-2.4.0/lib/replace/replace.h 2023-01-18 16:27:05.368657800 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/lib/replace/snprintf.c new/talloc-2.4.1/lib/replace/snprintf.c --- old/talloc-2.4.0/lib/replace/snprintf.c 2022-11-15 16:59:09.747140000 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/lib/replace/strptime.c new/talloc-2.4.1/lib/replace/strptime.c --- old/talloc-2.4.0/lib/replace/strptime.c 2022-03-02 12:26:09.136422600 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/lib/replace/system/network.h new/talloc-2.4.1/lib/replace/system/network.h --- old/talloc-2.4.0/lib/replace/system/network.h 2022-03-02 12:26:09.136422600 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/lib/replace/system/select.h new/talloc-2.4.1/lib/replace/system/select.h --- old/talloc-2.4.0/lib/replace/system/select.h 2022-03-02 12:26:09.136422600 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/lib/replace/system/wscript_configure new/talloc-2.4.1/lib/replace/system/wscript_configure --- old/talloc-2.4.0/lib/replace/system/wscript_configure 2022-03-02 12:26:09.136422600 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/lib/replace/wscript new/talloc-2.4.1/lib/replace/wscript --- old/talloc-2.4.0/lib/replace/wscript 2023-01-18 16:27:05.368657800 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/lib/replace/xattr.c new/talloc-2.4.1/lib/replace/xattr.c --- old/talloc-2.4.0/lib/replace/xattr.c 2023-01-18 16:27:05.372657800 +0100 +++ new/talloc-2.4.1/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/talloc-2.4.0/pytalloc.c new/talloc-2.4.1/pytalloc.c --- old/talloc-2.4.0/pytalloc.c 2022-03-02 12:26:09.144422800 +0100 +++ new/talloc-2.4.1/pytalloc.c 2023-04-04 16:54:16.552373600 +0200 @@ -101,9 +101,9 @@ } /** - * Default (but only slightly more useful than the default) implementation of cmp. + * Default objects do not support ordered comparisons, but talloc + * objects do, sorting by pointers clustered by type. */ -#if PY_MAJOR_VERSION >= 3 static PyObject *pytalloc_default_richcmp(PyObject *obj1, PyObject *obj2, int op) { void *ptr1; @@ -131,17 +131,6 @@ Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } -#else -static int pytalloc_default_cmp(PyObject *_obj1, PyObject *_obj2) -{ - pytalloc_Object *obj1 = (pytalloc_Object *)_obj1, - *obj2 = (pytalloc_Object *)_obj2; - if (obj1->ob_type != obj2->ob_type) - return ((char *)obj1->ob_type - (char *)obj2->ob_type); - - return ((char *)pytalloc_get_ptr(obj1) - (char *)pytalloc_get_ptr(obj2)); -} -#endif static PyTypeObject TallocObject_Type = { .tp_name = "talloc.Object", @@ -150,11 +139,7 @@ .tp_dealloc = (destructor)pytalloc_dealloc, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, .tp_repr = pytalloc_default_repr, -#if PY_MAJOR_VERSION >= 3 .tp_richcompare = pytalloc_default_richcmp, -#else - .tp_compare = pytalloc_default_cmp, -#endif }; /** @@ -181,9 +166,9 @@ } /** - * Default (but only slightly more useful than the default) implementation of cmp. + * Default objects do not support ordered comparisons, but talloc + * objects do, sorting by pointers clustered by type. */ -#if PY_MAJOR_VERSION >= 3 static PyObject *pytalloc_base_default_richcmp(PyObject *obj1, PyObject *obj2, int op) { void *ptr1; @@ -211,17 +196,6 @@ Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } -#else -static int pytalloc_base_default_cmp(PyObject *_obj1, PyObject *_obj2) -{ - pytalloc_BaseObject *obj1 = (pytalloc_BaseObject *)_obj1, - *obj2 = (pytalloc_BaseObject *)_obj2; - if (obj1->ob_type != obj2->ob_type) - return ((char *)obj1->ob_type - (char *)obj2->ob_type); - - return ((char *)pytalloc_get_ptr(obj1) - (char *)pytalloc_get_ptr(obj2)); -} -#endif static PyTypeObject TallocBaseObject_Type = { .tp_name = "talloc.BaseObject", @@ -230,11 +204,7 @@ .tp_dealloc = (destructor)pytalloc_base_dealloc, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, .tp_repr = pytalloc_base_default_repr, -#if PY_MAJOR_VERSION >= 3 .tp_richcompare = pytalloc_base_default_richcmp, -#else - .tp_compare = pytalloc_base_default_cmp, -#endif }; static PyTypeObject TallocGenericObject_Type = { @@ -247,7 +217,6 @@ #define MODULE_DOC PyDoc_STR("Python wrapping of talloc-maintained objects.") -#if PY_MAJOR_VERSION >= 3 static struct PyModuleDef moduledef = { PyModuleDef_HEAD_INIT, .m_name = "talloc", @@ -255,7 +224,6 @@ .m_size = -1, .m_methods = talloc_methods, }; -#endif static PyObject *module_init(void); static PyObject *module_init(void) @@ -271,11 +239,7 @@ if (PyType_Ready(&TallocGenericObject_Type) < 0) return NULL; -#if PY_MAJOR_VERSION >= 3 m = PyModule_Create(&moduledef); -#else - m = Py_InitModule3("talloc", talloc_methods, MODULE_DOC); -#endif if (m == NULL) return NULL; @@ -298,16 +262,8 @@ return NULL; } -#if PY_MAJOR_VERSION >= 3 PyMODINIT_FUNC PyInit_talloc(void); PyMODINIT_FUNC PyInit_talloc(void) { return module_init(); } -#else -void inittalloc(void); -void inittalloc(void) -{ - module_init(); -} -#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.0/pytalloc_guide.txt new/talloc-2.4.1/pytalloc_guide.txt --- old/talloc-2.4.0/pytalloc_guide.txt 2022-03-02 12:26:09.144422800 +0100 +++ new/talloc-2.4.1/pytalloc_guide.txt 2023-04-21 10:29:11.360781200 +0200 @@ -215,7 +215,7 @@ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- DEPRECATED! PyObject *pytalloc_CObject_FromTallocPtr(void *); -Create a new pytalloc_Object for an abitrary talloc-maintained C pointer. This will +Create a new pytalloc_Object for an arbitrary talloc-maintained C pointer. This will use a generic VoidPtr Python type, which just provides an opaque object in Python. The caller is responsible for incrementing the talloc reference count before calling this function - it will dereference the talloc pointer when it is garbage collected. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.0/pytalloc_util.c new/talloc-2.4.1/pytalloc_util.c --- old/talloc-2.4.0/pytalloc_util.c 2022-03-02 12:26:09.144422800 +0100 +++ new/talloc-2.4.1/pytalloc_util.c 2023-04-21 10:29:11.360781200 +0200 @@ -116,7 +116,7 @@ /** - * Internal function that either steals or referecences the talloc + * Internal function that either steals or references the talloc * pointer into a new talloc context. */ static PyObject *pytalloc_steal_or_reference(PyTypeObject *py_type, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.0/talloc.c new/talloc-2.4.1/talloc.c --- old/talloc-2.4.0/talloc.c 2023-01-18 16:27:05.372657800 +0100 +++ new/talloc-2.4.1/talloc.c 2023-04-21 10:29:11.360781200 +0200 @@ -146,7 +146,7 @@ } while (0) #if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_NOACCESS) -/* Mark the whole chunk as not accessable */ +/* Mark the whole chunk as not accessible */ #define TC_INVALIDATE_FULL_VALGRIND_CHUNK(_tc) do { \ size_t _flen = TC_HDR_SIZE + (_tc)->size; \ char *_fptr = (char *)(_tc); \ @@ -171,7 +171,7 @@ } while (0) #if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_NOACCESS) -/* Mark the unused bytes not accessable */ +/* Mark the unused bytes not accessible */ #define TC_INVALIDATE_SHRINK_VALGRIND_CHUNK(_tc, _new_size) do { \ size_t _flen = (_tc)->size - (_new_size); \ char *_fptr = (char *)TC_PTR_FROM_CHUNK(_tc); \ @@ -661,7 +661,7 @@ return tc_next_chunk(tc); } -/* Mark the whole remaining pool as not accessable */ +/* Mark the whole remaining pool as not accessible */ static inline void tc_invalidate_pool(struct talloc_pool_hdr *pool_hdr) { size_t flen = tc_pool_space_left(pool_hdr); @@ -2598,7 +2598,6 @@ struct talloc_chunk *tc = NULL; char buf[1024]; - /* this call looks strange, but it makes it work on older solaris boxes */ va_copy(ap2, ap); vlen = vsnprintf(buf, sizeof(buf), fmt, ap2); va_end(ap2); @@ -2662,6 +2661,7 @@ char c; va_copy(ap2, ap); + /* this call looks strange, but it makes it work on older solaris boxes */ alen = vsnprintf(&c, 1, fmt, ap2); va_end(ap2); @@ -2678,9 +2678,7 @@ s = talloc_realloc(NULL, s, char, slen + alen + 1); if (!s) return NULL; - va_copy(ap2, ap); - vsnprintf(s + slen, alen + 1, fmt, ap2); - va_end(ap2); + vsnprintf(s + slen, alen + 1, fmt, ap); _tc_set_name_const(talloc_chunk_from_ptr(s), s); return s; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.0/talloc.h new/talloc-2.4.1/talloc.h --- old/talloc-2.4.0/talloc.h 2023-01-18 18:28:36.203718000 +0100 +++ new/talloc-2.4.1/talloc.h 2023-04-04 16:54:16.552373600 +0200 @@ -666,6 +666,19 @@ _PUBLIC_ const char *talloc_parent_name(const void *ptr); /** + * @brief Get the size of a talloc chunk. + * + * This function lets you know the amount of memory allocated so far by + * this context. It does NOT account for subcontext memory. + * This can be used to calculate the size of an array. + * + * @param[in] ctx The talloc chunk. + * + * @return The size of the talloc chunk. + */ +_PUBLIC_ size_t talloc_get_size(const void *ctx); + +/** * @brief Get the total size of a talloc chunk including its children. * * The function returns the total size in bytes used by this pointer and all @@ -1071,19 +1084,6 @@ _PUBLIC_ void *talloc_autofree_context(void) _DEPRECATED_; /** - * @brief Get the size of a talloc chunk. - * - * This function lets you know the amount of memory allocated so far by - * this context. It does NOT account for subcontext memory. - * This can be used to calculate the size of an array. - * - * @param[in] ctx The talloc chunk. - * - * @return The size of the talloc chunk. - */ -_PUBLIC_ size_t talloc_get_size(const void *ctx); - -/** * @brief Show the parentage of a context. * * @param[in] context The talloc context to look at. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.0/test_pytalloc.c new/talloc-2.4.1/test_pytalloc.c --- old/talloc-2.4.0/test_pytalloc.c 2022-03-02 12:26:09.148422700 +0100 +++ new/talloc-2.4.1/test_pytalloc.c 2023-04-04 16:54:16.552373600 +0200 @@ -181,7 +181,6 @@ #define MODULE_DOC PyDoc_STR("Test utility module for pytalloc") -#if PY_MAJOR_VERSION >= 3 static struct PyModuleDef moduledef = { PyModuleDef_HEAD_INIT, .m_name = "_test_pytalloc", @@ -189,7 +188,6 @@ .m_size = -1, .m_methods = test_talloc_methods, }; -#endif static PyObject *module_init(void); static PyObject *module_init(void) @@ -207,11 +205,7 @@ return NULL; } -#if PY_MAJOR_VERSION >= 3 m = PyModule_Create(&moduledef); -#else - m = Py_InitModule3("_test_pytalloc", test_talloc_methods, MODULE_DOC); -#endif if (m == NULL) { return NULL; @@ -229,16 +223,8 @@ } -#if PY_MAJOR_VERSION >= 3 PyMODINIT_FUNC PyInit__test_pytalloc(void); PyMODINIT_FUNC PyInit__test_pytalloc(void) { return module_init(); } -#else -void init_test_pytalloc(void); -void init_test_pytalloc(void) -{ - module_init(); -} -#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.0/wscript new/talloc-2.4.1/wscript --- old/talloc-2.4.0/wscript 2023-01-18 18:28:36.203718000 +0100 +++ new/talloc-2.4.1/wscript 2023-07-18 15:16:05.179537800 +0200 @@ -1,7 +1,7 @@ #!/usr/bin/env python APPNAME = 'talloc' -VERSION = '2.4.0' +VERSION = '2.4.1' import os import sys @@ -190,10 +190,3 @@ def reconfigure(ctx): '''reconfigure if config scripts have changed''' samba_utils.reconfigure(ctx) - - -def pydoctor(ctx): - '''build python apidocs''' - cmd='PYTHONPATH=bin/python pydoctor --project-name=talloc --project-url=http://talloc.samba.org/ --make-html --docformat=restructuredtext --introspect-c-modules --add-module bin/python/talloc.*' - print("Running: %s" % cmd) - os.system(cmd)