Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package talloc for openSUSE:Factory checked in at 2024-05-24 19:50:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/talloc (Old) and /work/SRC/openSUSE:Factory/.talloc.new.24587 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "talloc" Fri May 24 19:50:28 2024 rev:46 rq:1176456 version:2.4.2 Changes: -------- --- /work/SRC/openSUSE:Factory/talloc/talloc-man.changes 2023-10-05 20:02:34.137446791 +0200 +++ /work/SRC/openSUSE:Factory/.talloc.new.24587/talloc-man.changes 2024-05-24 19:50:38.340410898 +0200 @@ -1,0 +2,8 @@ +Thu May 16 11:17:35 UTC 2024 - Samuel Cabrero <scabr...@suse.de> + +- Update to 2.4.2 + * build with Python 3.12 (bso#15513) + * documentation fixes + * Update patch talloc-python3.5-fix-soabi_name.patch + +------------------------------------------------------------------- talloc.changes: same change Old: ---- talloc-2.4.1.tar.asc talloc-2.4.1.tar.gz New: ---- talloc-2.4.2.tar.asc talloc-2.4.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ talloc-man.spec ++++++ --- /var/tmp/diff_new_pack.h6eTyW/_old 2024-05-24 19:50:42.036545863 +0200 +++ /var/tmp/diff_new_pack.h6eTyW/_new 2024-05-24 19:50:42.052546448 +0200 @@ -1,7 +1,7 @@ # # spec file for package talloc-man # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -35,7 +35,7 @@ #!BuildIgnore: python %endif # build_man URL: http://talloc.samba.org/ -Version: 2.4.1 +Version: 2.4.2 Release: 0 Summary: Samba talloc Library License: LGPL-3.0-or-later ++++++ talloc.spec ++++++ --- /var/tmp/diff_new_pack.h6eTyW/_old 2024-05-24 19:50:42.380558425 +0200 +++ /var/tmp/diff_new_pack.h6eTyW/_new 2024-05-24 19:50:42.392558863 +0200 @@ -1,7 +1,7 @@ # -# spec file for package talloc-man +# spec file for package talloc # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -35,7 +35,7 @@ #!BuildIgnore: python %endif # build_man URL: http://talloc.samba.org/ -Version: 2.4.1 +Version: 2.4.2 Release: 0 Summary: Samba talloc Library License: LGPL-3.0-or-later ++++++ talloc-2.4.1.tar.gz -> talloc-2.4.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/ABI/pytalloc-util-2.4.2.sigs new/talloc-2.4.2/ABI/pytalloc-util-2.4.2.sigs --- old/talloc-2.4.1/ABI/pytalloc-util-2.4.2.sigs 1970-01-01 01:00:00.000000000 +0100 +++ new/talloc-2.4.2/ABI/pytalloc-util-2.4.2.sigs 2024-01-29 17:16:45.538622600 +0100 @@ -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.1/ABI/talloc-2.4.2.sigs new/talloc-2.4.2/ABI/talloc-2.4.2.sigs --- old/talloc-2.4.1/ABI/talloc-2.4.2.sigs 1970-01-01 01:00:00.000000000 +0100 +++ new/talloc-2.4.2/ABI/talloc-2.4.2.sigs 2024-01-29 17:16:45.538622600 +0100 @@ -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.1/buildtools/bin/waf new/talloc-2.4.2/buildtools/bin/waf --- old/talloc-2.4.1/buildtools/bin/waf 2023-01-19 12:39:12.715112000 +0100 +++ new/talloc-2.4.2/buildtools/bin/waf 2024-01-22 09:56:34.366532600 +0100 @@ -32,7 +32,7 @@ import os, sys, inspect -VERSION="2.0.25" +VERSION="2.0.26" REVISION="x" GIT="x" INSTALL="x" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/pkgconfig.py new/talloc-2.4.2/buildtools/wafsamba/pkgconfig.py --- old/talloc-2.4.1/buildtools/wafsamba/pkgconfig.py 2023-01-23 06:37:57.751581200 +0100 +++ new/talloc-2.4.2/buildtools/wafsamba/pkgconfig.py 2023-09-28 11:28:07.477609200 +0200 @@ -5,7 +5,7 @@ from samba_utils import SUBST_VARS_RECURSIVE, TO_LIST def subst_at_vars(task): - '''substiture @VAR@ style variables in a file''' + '''substitute @VAR@ style variables in a file''' s = task.inputs[0].read() # split on the vars diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/samba_abi.py new/talloc-2.4.2/buildtools/wafsamba/samba_abi.py --- old/talloc-2.4.1/buildtools/wafsamba/samba_abi.py 2023-05-15 12:15:14.013386500 +0200 +++ new/talloc-2.4.2/buildtools/wafsamba/samba_abi.py 2023-10-25 09:25:01.405660000 +0200 @@ -225,7 +225,7 @@ if k in sorted(invmap.keys()): f.write("\tglobal:\n") for s in invmap.get(k, []): - f.write("\t\t%s;\n" % s); + f.write("\t\t%s;\n" % s) f.write("}%s;\n\n" % last_key) last_key = " %s" % symver f.write("%s {\n" % current_version) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/samba_autoconf.py new/talloc-2.4.2/buildtools/wafsamba/samba_autoconf.py --- old/talloc-2.4.1/buildtools/wafsamba/samba_autoconf.py 2023-05-19 10:55:21.091587500 +0200 +++ new/talloc-2.4.2/buildtools/wafsamba/samba_autoconf.py 2024-01-22 09:56:34.366532600 +0100 @@ -625,7 +625,7 @@ if not res: if mandatory: - Logs.error("Mandatory library '%s' not found for functions '%s'" % (lib, list)) + Logs.error("Mandatory library '%s' not found for functions '%s'" % (lib, libs)) sys.exit(1) if empty_decl: # if it isn't a mandatory library, then remove it from dependency lists @@ -817,6 +817,12 @@ if CHECK_CFLAGS(conf, ["-Wno-error=array-bounds"]): conf.define('HAVE_WNO_ERROR_ARRAY_BOUNDS', 1) + if CHECK_CFLAGS(conf, ["-Wno-error=stringop-overflow"]): + conf.define('HAVE_WNO_ERROR_STRINGOP_OVERFLOW', 1) + + if CHECK_CFLAGS(conf, ["-Wno-error=declaration-after-statement"]): + conf.define('HAVE_WNO_ERROR_DECLARATION_AFTER_STATEMENT', 1) + if not Options.options.disable_warnings_as_errors: conf.ADD_NAMED_CFLAGS('PICKY_CFLAGS', '-Werror -Wno-error=deprecated-declarations', testflags=True) conf.ADD_NAMED_CFLAGS('PICKY_CFLAGS', '-Wno-error=tautological-compare', testflags=True) @@ -960,10 +966,10 @@ if not 'EXTRA_CFLAGS' in bld.env: list = [] else: - list = bld.env['EXTRA_CFLAGS']; + list = bld.env['EXTRA_CFLAGS'] ret.extend(list) if not allow_warnings and 'PICKY_CFLAGS' in bld.env: - list = bld.env['PICKY_CFLAGS']; + list = bld.env['PICKY_CFLAGS'] ret.extend(list) if hide_symbols and bld.env.HAVE_VISIBILITY_ATTR: ret.append(bld.env.VISIBILITY_CFLAGS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/samba_bundled.py new/talloc-2.4.2/buildtools/wafsamba/samba_bundled.py --- old/talloc-2.4.1/buildtools/wafsamba/samba_bundled.py 2023-04-04 16:54:16.532374000 +0200 +++ new/talloc-2.4.2/buildtools/wafsamba/samba_bundled.py 2024-01-22 09:56:34.374532500 +0100 @@ -10,6 +10,9 @@ extension = bld.env.PRIVATE_EXTENSION + if name in bld.env.PRIVATE_EXTENSION_EXCEPTION: + return name + if extension and name.startswith('%s' % extension): return name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/samba_conftests.py new/talloc-2.4.2/buildtools/wafsamba/samba_conftests.py --- old/talloc-2.4.1/buildtools/wafsamba/samba_conftests.py 2023-04-04 16:54:16.532374000 +0200 +++ new/talloc-2.4.2/buildtools/wafsamba/samba_conftests.py 2023-10-25 09:25:01.405660000 +0200 @@ -84,7 +84,7 @@ @conf def CHECK_LARGEFILE(conf, define='HAVE_LARGEFILE'): '''see what we need for largefile support''' - getconf_cflags = conf.CHECK_COMMAND(['getconf', 'LFS_CFLAGS']); + getconf_cflags = conf.CHECK_COMMAND(['getconf', 'LFS_CFLAGS']) if getconf_cflags is not False: if (conf.CHECK_CODE('if (sizeof(off_t) < 8) return 1', define='WORKING_GETCONF_LFS_CFLAGS', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/samba_deps.py new/talloc-2.4.2/buildtools/wafsamba/samba_deps.py --- old/talloc-2.4.1/buildtools/wafsamba/samba_deps.py 2022-07-22 10:48:01.783334000 +0200 +++ new/talloc-2.4.2/buildtools/wafsamba/samba_deps.py 2023-09-28 11:28:07.481609000 +0200 @@ -360,7 +360,7 @@ def add_samba_attributes(bld, tgt_list): - '''ensure a target has a the required samba attributes''' + '''ensure a target has the required samba attributes''' targets = LOCAL_CACHE(bld, 'TARGET_TYPE') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/samba_install.py new/talloc-2.4.2/buildtools/wafsamba/samba_install.py --- old/talloc-2.4.1/buildtools/wafsamba/samba_install.py 2020-02-03 11:43:17.748698700 +0100 +++ new/talloc-2.4.2/buildtools/wafsamba/samba_install.py 2023-09-28 11:28:07.481609000 +0200 @@ -188,7 +188,7 @@ blddir = os.path.dirname(self.bld.srcnode.abspath(self.bld.env)) libpath = self.link_task.outputs[0].abspath(self.env) - # calculat the link target and put it in the environment + # calculate the link target and put it in the environment soext="" vnum = getattr(self, 'vnum', None) if vnum is not None: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/samba_patterns.py new/talloc-2.4.2/buildtools/wafsamba/samba_patterns.py --- old/talloc-2.4.1/buildtools/wafsamba/samba_patterns.py 2022-02-01 16:01:28.493139700 +0100 +++ new/talloc-2.4.2/buildtools/wafsamba/samba_patterns.py 2024-01-22 09:56:34.374532500 +0100 @@ -15,7 +15,7 @@ return 0 -def SAMBA_MKVERSION(bld, target, source='VERSION'): +def SAMBA_MKVERSION(bld, target, source='VERSION buildtools/wafsamba/samba_version.py'): '''generate the version.h header for Samba''' # We only force waf to re-generate this file if we are installing, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/samba_perl.py new/talloc-2.4.2/buildtools/wafsamba/samba_perl.py --- old/talloc-2.4.1/buildtools/wafsamba/samba_perl.py 2022-07-22 10:48:01.783334000 +0200 +++ new/talloc-2.4.2/buildtools/wafsamba/samba_perl.py 2023-10-25 09:25:01.405660000 +0200 @@ -34,18 +34,18 @@ perl_arch_install_dir = None if vendor_prefix == conf.env.PREFIX: - perl_arch_install_dir = check_perl_config_var('vendorarch'); + perl_arch_install_dir = check_perl_config_var('vendorarch') if perl_arch_install_dir is None: - perl_arch_install_dir = "${LIBDIR}/perl5"; + perl_arch_install_dir = "${LIBDIR}/perl5" conf.start_msg("PERL_ARCH_INSTALL_DIR: ") conf.end_msg("'%s'" % (perl_arch_install_dir), 'GREEN') conf.env.PERL_ARCH_INSTALL_DIR = perl_arch_install_dir perl_lib_install_dir = None if vendor_prefix == conf.env.PREFIX: - perl_lib_install_dir = check_perl_config_var('vendorlib'); + perl_lib_install_dir = check_perl_config_var('vendorlib') if perl_lib_install_dir is None: - perl_lib_install_dir = "${DATADIR}/perl5"; + perl_lib_install_dir = "${DATADIR}/perl5" conf.start_msg("PERL_LIB_INSTALL_DIR: ") conf.end_msg("'%s'" % (perl_lib_install_dir), 'GREEN') conf.env.PERL_LIB_INSTALL_DIR = perl_lib_install_dir diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/samba_pidl.py new/talloc-2.4.2/buildtools/wafsamba/samba_pidl.py --- old/talloc-2.4.1/buildtools/wafsamba/samba_pidl.py 2021-07-08 17:48:26.493492100 +0200 +++ new/talloc-2.4.2/buildtools/wafsamba/samba_pidl.py 2024-01-22 09:56:34.374532500 +0100 @@ -10,9 +10,9 @@ output_dir='.', generate_tables=True): '''Build a IDL file using pidl. - This will produce up to 13 output files depending on the options used''' + This will produce up to 17 output files depending on the options used''' - bname = source[0:-4]; # strip off the .idl suffix + bname = source[0:-4] # strip off the .idl suffix bname = os.path.basename(bname) name = "%s_%s" % (pname, bname.upper()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/samba_utils.py new/talloc-2.4.2/buildtools/wafsamba/samba_utils.py --- old/talloc-2.4.1/buildtools/wafsamba/samba_utils.py 2023-04-04 16:54:16.532374000 +0200 +++ new/talloc-2.4.2/buildtools/wafsamba/samba_utils.py 2023-10-25 09:25:01.405660000 +0200 @@ -469,8 +469,7 @@ return ctx.recurse(relpath) if 'waflib.extras.compat15' in sys.modules: return ctx.recurse(relpath) - Logs.error('Unknown RECURSE context class: {}'.format(ctxclass)) - raise + raise Errors.WafError('Unknown RECURSE context class: {}'.format(ctxclass)) Options.OptionsContext.RECURSE = RECURSE Build.BuildContext.RECURSE = RECURSE @@ -710,8 +709,9 @@ """before apply_obj_vars for uselib, this removes the standard paths""" def is_standard_libpath(env, path): + normalized_path = os.path.normpath(path) for _path in env.STANDARD_LIBPATH: - if _path == os.path.normpath(path): + if _path == normalized_path: return True return False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/samba_version.py new/talloc-2.4.2/buildtools/wafsamba/samba_version.py --- old/talloc-2.4.1/buildtools/wafsamba/samba_version.py 2023-04-04 16:54:16.532374000 +0200 +++ new/talloc-2.4.2/buildtools/wafsamba/samba_version.py 2024-01-22 09:56:34.374532500 +0100 @@ -174,6 +174,7 @@ def __str__(self): string="/* Autogenerated by waf */\n" +\ + "#define SAMBA_COPYRIGHT_STRING \"%s\"\n" % self.SAMBA_COPYRIGHT_STRING +\ "#define SAMBA_VERSION_MAJOR %u\n" % self.MAJOR +\ "#define SAMBA_VERSION_MINOR %u\n" % self.MINOR +\ "#define SAMBA_VERSION_RELEASE %u\n" % self.RELEASE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/stale_files.py new/talloc-2.4.2/buildtools/wafsamba/stale_files.py --- old/talloc-2.4.1/buildtools/wafsamba/stale_files.py 2022-02-01 16:01:28.493139700 +0100 +++ new/talloc-2.4.2/buildtools/wafsamba/stale_files.py 2023-09-28 11:28:07.481609000 +0200 @@ -107,6 +107,7 @@ def AUTOCLEANUP_STALE_FILES(bld): """automatically clean up any files in bin that shouldn't be there""" + global old_refill_task_list old_refill_task_list = Parallel.refill_task_list Parallel.refill_task_list = replace_refill_task_list Parallel.bld = bld diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/wafsamba.py new/talloc-2.4.2/buildtools/wafsamba/wafsamba.py --- old/talloc-2.4.1/buildtools/wafsamba/wafsamba.py 2023-04-04 16:54:16.532374000 +0200 +++ new/talloc-2.4.2/buildtools/wafsamba/wafsamba.py 2024-01-22 09:56:34.378532400 +0100 @@ -38,7 +38,7 @@ os.environ['PYTHONUNBUFFERED'] = '1' -if Context.HEXVERSION not in (0x2001900,): +if Context.HEXVERSION not in (0x2001a00,): Logs.error(''' Please use the version of waf that comes with Samba, not a system installed version. See http://wiki.samba.org/index.php/Waf @@ -82,7 +82,7 @@ return bld.ASSERT(subsystem is not None, "You must specify a subsystem for init_function '%s'" % init_function) cache = LOCAL_CACHE(bld, 'INIT_FUNCTIONS') - if not subsystem in cache: + if subsystem not in cache: cache[subsystem] = [] cache[subsystem].append( { 'TARGET':target, 'INIT_FUNCTION':init_function } ) Build.BuildContext.ADD_INIT_FUNCTION = ADD_INIT_FUNCTION @@ -109,7 +109,6 @@ ldflags='', external_library=False, realname=None, - keep_underscore=False, autoproto=None, autoproto_extra_source='', group='main', @@ -135,13 +134,14 @@ require_builtin_deps=False, provide_builtin_linking=False, builtin_cflags='', + force_unversioned=False, allow_undefined_symbols=False, allow_warnings=False, enabled=True): '''define a Samba library''' # We support: - # - LIBRARY: this can be use to link via -llibname + # - LIBRARY: this can be used to link via -llibname # - MODULE: this is module from SAMBA_MODULE() # - PLUGIN: this is plugin for external consumers to be # loaded via dlopen() @@ -172,9 +172,20 @@ raise Errors.WafError("private library '%s' with orig_vscript_map must not have abi_match" % libname) + if force_unversioned and private_library: + raise Errors.WafError("private library '%s': can't have force_unversioned=True" % + libname) + + if force_unversioned and realname is None: + raise Errors.WafError("library '%s': force_unversioned=True needs realname too" % + libname) + if LIB_MUST_BE_PRIVATE(bld, libname) and target_type not in ['PLUGIN']: private_library = True + if force_unversioned: + private_library = False + if not enabled: SET_TARGET_TYPE(bld, libname, 'DISABLED') return @@ -298,12 +309,9 @@ if bundled_name is not None: pass elif target_type == 'PYTHON' or realname or not private_library: - if keep_underscore: - bundled_name = libname - else: - bundled_name = libname.replace('_', '-') + bundled_name = libname.replace('_', '-') else: - assert (private_library == True and realname is None) + assert (private_library is True and realname is None) bundled_name = PRIVATE_NAME(bld, libname.replace('_', '-')) vnum = None @@ -331,7 +339,9 @@ vscript = None if bld.env.HAVE_LD_VERSION_SCRIPT: - if private_library: + if force_unversioned: + version = None + elif private_library: version = bld.env.PRIVATE_VERSION elif vnum: version = "%s_%s" % (libname, vnum) @@ -654,7 +664,6 @@ vars=None, subdir=None, realname=None, - keep_underscore=False, autoproto=None, autoproto_extra_source='', install_path=None, @@ -1058,7 +1067,7 @@ lineno = 0 for line in source_file: newline = line - if lineno == 0 and task.env["PERL_SPECIFIED"] == True and line[:2] == "#!": + if lineno == 0 and task.env["PERL_SPECIFIED"] is True and line[:2] == "#!": newline = replacement_shebang elif pattern in line: newline = line.replace(pattern, replacement) @@ -1133,7 +1142,7 @@ python_fixup=python_fixup, base_name=trim_path) Build.BuildContext.INSTALL_WILDCARD = INSTALL_WILDCARD -def INSTALL_DIR(bld, path, chmod=0o755, env=None): +def INSTALL_DIR(bld, path, chmod=0o755): """Install a directory if it doesn't exist, always set permissions.""" if not path: @@ -1154,12 +1163,12 @@ raise Errors.WafError("Cannot create the folder '%s' (error: %s)" % (path, e)) Build.BuildContext.INSTALL_DIR = INSTALL_DIR -def INSTALL_DIRS(bld, destdir, dirs, chmod=0o755, env=None): +def INSTALL_DIRS(bld, destdir, dirs, chmod=0o755): '''install a set of directories''' destdir = bld.EXPAND_VARIABLES(destdir) dirs = bld.EXPAND_VARIABLES(dirs) for d in TO_LIST(dirs): - INSTALL_DIR(bld, os.path.join(destdir, d), chmod, env) + INSTALL_DIR(bld, os.path.join(destdir, d), chmod) Build.BuildContext.INSTALL_DIRS = INSTALL_DIRS @@ -1183,7 +1192,7 @@ bld.env.SAMBA_EXPAND_XSL = bld.srcnode.abspath() + '/docs-xml/xslt/expand-sambadoc.xsl' bld.env.SAMBA_MAN_XSL = bld.srcnode.abspath() + '/docs-xml/xslt/man.xsl' bld.env.SAMBA_CATALOG = bld.bldnode.abspath() + '/docs-xml/build/catalog.xml' - bld.env.SAMBA_CATALOGS = 'file:///etc/xml/catalog file:///usr/local/share/xml/catalog file://' + bld.env.SAMBA_CATALOG + bld.env.SAMBA_CATALOGS = os.getenv('XML_CATALOG_FILES', 'file:///etc/xml/catalog file:///usr/local/share/xml/catalog') + ' file://' + bld.env.SAMBA_CATALOG for m in manpages.split(): source = [m + '.xml'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/buildtools/wafsamba/wscript new/talloc-2.4.2/buildtools/wafsamba/wscript --- old/talloc-2.4.1/buildtools/wafsamba/wscript 2023-04-04 16:54:16.532374000 +0200 +++ new/talloc-2.4.2/buildtools/wafsamba/wscript 2023-09-28 11:28:07.481609000 +0200 @@ -37,7 +37,7 @@ help=(f'''comma separated list of bundled libraries. {Context.g_module.APPNAME} includes copies of externally maintained -system libraries (such as popt, cmokca) as well as Samba-maintained +system libraries (such as popt, cmocka) as well as Samba-maintained libraries that can be found on the system already (such as talloc, tdb). @@ -99,7 +99,7 @@ before we will select not to 'bundle'. This option, possibly useful for packagers, allows that specified -version to be overridden (say, if it is absolutely known that a the +version to be overridden (say, if it is absolutely known that the newer version included in this tarball has no relevant changes). Use this with extreme care @@ -539,7 +539,7 @@ # conf.DEFINE('_XOPEN_SOURCE', 600, add_to_cflags=True) # we should use the PIC options in waf instead - # Some compilo didn't support -fPIC but just print a warning + # Some compiler didn't support -fPIC but just print a warning if conf.env['COMPILER_CC'] == "suncc": conf.ADD_CFLAGS('-KPIC', testflags=True) # we really want define here as we need to have this @@ -552,7 +552,7 @@ # On Solaris 8 with suncc (at least) the flags for the linker to define the name of the # library are not always working (if the command line is very very long and with a lot - # files) + # of files) if conf.env['COMPILER_CC'] == "suncc": save = conf.env['SONAME_ST'] @@ -615,7 +615,7 @@ # see if we need special largefile flags if not conf.CHECK_LARGEFILE(): - raise Errors.WafError('Samba requires large file support support, but not available on this platform: sizeof(off_t) < 8') + raise Errors.WafError('Samba requires large file support, but not available on this platform: sizeof(off_t) < 8') if conf.env.HAVE_STDDEF_H and conf.env.HAVE_STDLIB_H: conf.DEFINE('STDC_HEADERS', 1) @@ -632,7 +632,7 @@ else: conf.define('SHLIBEXT', "so", quote=True) - # First try a header check for cross-compile friendlyness + # First try a header check for cross-compile friendliness conf.CHECK_CODE(code = """#ifdef __BYTE_ORDER #define B __BYTE_ORDER #elif defined(BYTE_ORDER) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/lib/replace/replace.h new/talloc-2.4.2/lib/replace/replace.h --- old/talloc-2.4.1/lib/replace/replace.h 2023-04-04 16:54:16.552373600 +0200 +++ new/talloc-2.4.2/lib/replace/replace.h 2023-09-28 11:28:07.501609300 +0200 @@ -41,7 +41,7 @@ * As it's also needed when Python.h is the first header we * require a global -D__STDC_WANT_LIB_EXT1__=1 */ -#ifndef __STDC_WANT_LIB_EXT1__ +#if __STDC_WANT_LIB_EXT1__ != 1 #error -D__STDC_WANT_LIB_EXT1__=1 required #endif @@ -205,7 +205,7 @@ #endif #ifndef HAVE_STRERROR -extern char *sys_errlist[]; +extern const char *const sys_errlist[]; #define strerror(i) sys_errlist[i] #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/lib/replace/system/python.h new/talloc-2.4.2/lib/replace/system/python.h --- old/talloc-2.4.1/lib/replace/system/python.h 1970-01-01 01:00:00.000000000 +0100 +++ new/talloc-2.4.2/lib/replace/system/python.h 2024-01-22 09:56:34.410532200 +0100 @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2023 Andreas Schneider <a...@samba.org> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _SAMBA_PYTHON_H +#define _SAMBA_PYTHON_H + +/* + * With Python 3.6 Cpython started to require C99. With Python 3.12 they + * started to mix code and variable declarations so disable the warnings. + */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeclaration-after-statement" +#include <Python.h> +#pragma GCC diagnostic pop + +#endif /* _SAMBA_PYTHON_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/lib/replace/tests/testsuite.c new/talloc-2.4.2/lib/replace/tests/testsuite.c --- old/talloc-2.4.1/lib/replace/tests/testsuite.c 2022-02-01 15:55:19.732598300 +0100 +++ new/talloc-2.4.2/lib/replace/tests/testsuite.c 2023-10-25 09:25:01.409659900 +0200 @@ -854,14 +854,14 @@ return false; } - if (write(sock[1], "automatisch", 12) == -1) { + if (write(sock[1], "automatisch", 12) != 12) { printf("failure: socketpair [\n" "write() failed: %s\n" "]\n", strerror(errno)); return false; } - if (read(sock[0], buf, 12) == -1) { + if (read(sock[0], buf, 12) != 12) { printf("failure: socketpair [\n" "read() failed: %s\n" "]\n", strerror(errno)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/lib/replace/wscript new/talloc-2.4.2/lib/replace/wscript --- old/talloc-2.4.1/lib/replace/wscript 2023-07-20 12:46:15.122290600 +0200 +++ new/talloc-2.4.2/lib/replace/wscript 2023-09-28 11:28:07.501609300 +0200 @@ -448,6 +448,17 @@ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', checklibc=True): strlcpy_in_bsd = True + elif conf.env.enable_fuzzing: + # Just to complicate it more, some versions of Honggfuzz have + # got strlcpy and strlcat in libc, but not in <string.h> + # (unless it is there coincidentally, on a BSD). Therefore we + # can't use CHECK_FUNCS alone to decide whether to add the + # headers to replace.h. + # + # As this is only known to happen on a fuzzing compiler, we'll + # skip the check when not in fuzzing mode. + conf.CHECK_HEADERS('bsd/string.h') + if not conf.CHECK_FUNCS('getpeereid'): conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): @@ -487,7 +498,7 @@ conf.CHECK_FUNCS('gai_strerror get_current_dir_name') 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('getpwent_r getpwnam_r getpwuid_r epoll_create1') conf.CHECK_FUNCS('getprogname') if not conf.CHECK_FUNCS('copy_file_range'): conf.CHECK_CODE(''' @@ -710,7 +721,7 @@ conf.CHECK_DECLS('getgrent_r getpwent_r', reverse=True, headers='pwd.h grp.h') conf.CHECK_DECLS('pread pwrite setenv setresgid setresuid', reverse=True) - if conf.CONFIG_SET('HAVE_EPOLL_CREATE') and conf.CONFIG_SET('HAVE_SYS_EPOLL_H'): + if conf.CONFIG_SET('HAVE_EPOLL_CREATE1') and conf.CONFIG_SET('HAVE_SYS_EPOLL_H'): conf.DEFINE('HAVE_EPOLL', 1) if conf.CHECK_FUNCS('eventfd', headers='sys/eventfd.h'): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/pytalloc.c new/talloc-2.4.2/pytalloc.c --- old/talloc-2.4.1/pytalloc.c 2023-04-04 16:54:16.552373600 +0200 +++ new/talloc-2.4.2/pytalloc.c 2024-01-22 09:56:34.410532200 +0100 @@ -21,7 +21,7 @@ License along with this library; if not, see <http://www.gnu.org/licenses/>. */ -#include <Python.h> +#include "lib/replace/system/python.h" #include <talloc.h> #include <pytalloc.h> #include "pytalloc_private.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/pytalloc_util.c new/talloc-2.4.2/pytalloc_util.c --- old/talloc-2.4.1/pytalloc_util.c 2023-04-21 10:29:11.360781200 +0200 +++ new/talloc-2.4.2/pytalloc_util.c 2024-01-22 09:56:34.410532200 +0100 @@ -21,7 +21,7 @@ License along with this library; if not, see <http://www.gnu.org/licenses/>. */ -#include <Python.h> +#include "lib/replace/system/python.h" #include "replace.h" #include <talloc.h> #include "pytalloc.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/talloc.c new/talloc-2.4.2/talloc.c --- old/talloc-2.4.1/talloc.c 2023-04-21 10:29:11.360781200 +0200 +++ new/talloc-2.4.2/talloc.c 2024-01-22 09:56:34.410532200 +0100 @@ -1253,7 +1253,7 @@ struct talloc_memlimit *new_limit); /* - move a lump of memory from one talloc context to another return the + move a lump of memory from one talloc context to another returning the ptr on success, or NULL if it could not be transferred. passing NULL as ptr will always return NULL with no side effects. */ @@ -1335,7 +1335,7 @@ } /* - move a lump of memory from one talloc context to another return the + move a lump of memory from one talloc context to another returning the ptr on success, or NULL if it could not be transferred. passing NULL as ptr will always return NULL with no side effects. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/talloc.h new/talloc-2.4.2/talloc.h --- old/talloc-2.4.1/talloc.h 2023-04-04 16:54:16.552373600 +0200 +++ new/talloc-2.4.2/talloc.h 2023-11-20 09:58:22.817081000 +0100 @@ -726,7 +726,7 @@ * * @param[in] p The memory chunk you want to duplicate. * - * @param[in] size Number of char's that you want copy. + * @param[in] size Number of chars that you want to copy. * * @return The allocated memory chunk. * @@ -787,7 +787,7 @@ * * This macro is used together with talloc(mem_ctx, struct foo). If you had to * assign the talloc chunk pointer to some void pointer variable, - * talloc_get_type_abort() is the recommended way to get the convert the void + * talloc_get_type_abort() is the recommended way to convert the void * pointer back to a typed pointer. * * @param[in] ptr The void pointer to convert. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/test_pytalloc.c new/talloc-2.4.2/test_pytalloc.c --- old/talloc-2.4.1/test_pytalloc.c 2023-04-04 16:54:16.552373600 +0200 +++ new/talloc-2.4.2/test_pytalloc.c 2024-01-22 09:56:34.410532200 +0100 @@ -26,7 +26,7 @@ License along with this library; if not, see <http://www.gnu.org/licenses/>. */ -#include <Python.h> +#include "lib/replace/system/python.h" #include <talloc.h> #include <pytalloc.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/third_party/waf/waflib/Context.py new/talloc-2.4.2/third_party/waf/waflib/Context.py --- old/talloc-2.4.1/third_party/waf/waflib/Context.py 2023-01-19 12:39:12.915113200 +0100 +++ new/talloc-2.4.2/third_party/waf/waflib/Context.py 2024-01-22 09:56:34.590531000 +0100 @@ -18,13 +18,13 @@ import imp # the following 3 constants are updated on each new release (do not touch) -HEXVERSION=0x2001900 +HEXVERSION=0x2001a00 """Constant updated on new releases""" -WAFVERSION="2.0.25" +WAFVERSION="2.0.26" """Constant updated on new releases""" -WAFREVISION="2db0b41b2805cd5db3b55476c06b23c1e46d319f" +WAFREVISION="0fb985ce1932c6f3e7533f435e4ee209d673776e" """Git revision when the waf version is updated""" WAFNAME="waf" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/third_party/waf/waflib/Scripting.py new/talloc-2.4.2/third_party/waf/waflib/Scripting.py --- old/talloc-2.4.1/third_party/waf/waflib/Scripting.py 2019-12-11 23:13:06.577426000 +0100 +++ new/talloc-2.4.2/third_party/waf/waflib/Scripting.py 2024-01-22 09:56:34.590531000 +0100 @@ -388,7 +388,11 @@ for x in files: archive_name = self.get_base_name() + '/' + x.path_from(self.base_path) - zip.write(x.abspath(), archive_name, zipfile.ZIP_DEFLATED) + if os.environ.get('SOURCE_DATE_EPOCH'): + # TODO: parse that timestamp + zip.writestr(zipfile.ZipInfo(archive_name), x.read(), zipfile.ZIP_DEFLATED) + else: + zip.write(x.abspath(), archive_name, zipfile.ZIP_DEFLATED) zip.close() else: self.fatal('Valid algo types are tar.bz2, tar.gz, tar.xz or zip') @@ -425,6 +429,8 @@ tinfo.gid = 0 tinfo.uname = 'root' tinfo.gname = 'root' + if os.environ.get('SOURCE_DATE_EPOCH'): + tinfo.mtime = int(os.environ.get('SOURCE_DATE_EPOCH')) if os.path.isfile(p): with open(p, 'rb') as f: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/third_party/waf/waflib/Tools/qt5.py new/talloc-2.4.2/third_party/waf/waflib/Tools/qt5.py --- old/talloc-2.4.1/third_party/waf/waflib/Tools/qt5.py 2022-04-12 12:29:16.780438700 +0200 +++ new/talloc-2.4.2/third_party/waf/waflib/Tools/qt5.py 2024-01-22 09:56:34.590531000 +0100 @@ -1,10 +1,11 @@ #!/usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2006-2018 (ita) +# Rafaël Kooi, 2023 (RA-Kooi) """ -This tool helps with finding Qt5 tools and libraries, -and also provides syntactic sugar for using Qt5 tools. +This tool helps with finding Qt5 and Qt6 tools and libraries, +and also provides syntactic sugar for using Qt5 and Qt6 tools. The following snippet illustrates the tool usage:: @@ -22,6 +23,23 @@ target = 'window', ) +Alternatively the following snippet illustrates Qt6 tool usage:: + + def options(opt): + opt.load('compiler_cxx qt5') + + def configure(conf): + conf.want_qt6 = True + conf.load('compiler_cxx qt5') + + def build(bld): + bld( + features = 'qt6 cxx cxxprogram', + uselib = 'QT6CORE QT6GUI QT6OPENGL QT6SVG', + source = 'main.cpp textures.qrc aboutDialog.ui', + target = 'window', + ) + Here, the UI description and resource files will be processed to generate code. @@ -56,25 +74,32 @@ A few options (--qt{dir,bin,...}) and environment variables (QT5_{ROOT,DIR,MOC,UIC,XCOMPILE}) allow finer tuning of the tool, tool path selection, etc; please read the source for more info. +For Qt6 replace the QT5_ prefix with QT6_. The detection uses pkg-config on Linux by default. The list of libraries to be requested to pkg-config is formulated by scanning in the QTLIBS directory (that can be passed via --qtlibs or by -setting the environment variable QT5_LIBDIR otherwise is derived -by querying qmake for QT_INSTALL_LIBS directory) for shared/static -libraries present. +setting the environment variable QT5_LIBDIR or QT6_LIBDIR otherwise is +derived by querying qmake for QT_INSTALL_LIBS directory) for +shared/static libraries present. Alternatively the list of libraries to be requested via pkg-config can be set using the qt5_vars attribute, ie: conf.qt5_vars = ['Qt5Core', 'Qt5Gui', 'Qt5Widgets', 'Qt5Test']; +For Qt6 use the qt6_vars attribute. + This can speed up configuration phase if needed libraries are known beforehand, can improve detection on systems with a -sparse QT5 libraries installation (ie. NIX) and can improve +sparse QT5/Qt6 libraries installation (ie. NIX) and can improve detection of some header-only Qt modules (ie. Qt5UiPlugin). To force static library detection use: QT5_XCOMPILE=1 QT5_FORCE_STATIC=1 waf configure + +To use Qt6 set the want_qt6 attribute, ie: + + conf.want_qt6 = True; """ from __future__ import with_statement @@ -282,8 +307,8 @@ """ If UIC file is used in more than one bld, we would have a conflict in parallel execution - It is not possible to change the file names (like .self.idx. as for objects) as they have - to be referenced by the source file, but we can assume that the transformation will be identical + It is not possible to change the file names (like .self.idx. as for objects) as they have + to be referenced by the source file, but we can assume that the transformation will be identical and the tasks can be shared in a global cache. """ try: @@ -300,7 +325,7 @@ """Adds all the .ts file into ``self.lang``""" self.lang = self.to_list(getattr(self, 'lang', [])) + [node] -@feature('qt5') +@feature('qt5', 'qt6') @before_method('process_source') def process_mocs(self): """ @@ -322,7 +347,7 @@ self.create_task('moc', x, moc_node) -@feature('qt5') +@feature('qt5', 'qt6') @after_method('apply_link') def apply_qt5(self): """ @@ -485,6 +510,13 @@ if 'COMPILER_CXX' not in self.env: self.fatal('No CXX compiler defined: did you forget to configure compiler_cxx first?') + self.want_qt6 = getattr(self, 'want_qt6', False) + + if self.want_qt6: + self.qt_vars = Utils.to_list(getattr(self, 'qt6_vars', [])) + else: + self.qt_vars = Utils.to_list(getattr(self, 'qt5_vars', [])) + self.find_qt5_binaries() self.set_qt5_libs_dir() self.set_qt5_libs_to_check() @@ -497,15 +529,19 @@ if not has_xml: Logs.error('No xml.sax support was found, rcc dependencies will be incomplete!') + feature = 'qt6' if self.want_qt6 else 'qt5' + # Qt6 requires C++17 (https://www.qt.io/blog/qt-6.0-released) + stdflag = '-std=c++17' if self.want_qt6 else '-std=c++11' + # Qt5 may be compiled with '-reduce-relocations' which requires dependent programs to have -fPIE or -fPIC? frag = '#include <QMap>\nint main(int argc, char **argv) {QMap<int,int> m;return m.keys().size();}\n' - uses = 'QT5CORE' - for flag in [[], '-fPIE', '-fPIC', '-std=c++11' , ['-std=c++11', '-fPIE'], ['-std=c++11', '-fPIC']]: + uses = 'QT6CORE' if self.want_qt6 else 'QT5CORE' + for flag in [[], '-fPIE', '-fPIC', stdflag, [stdflag, '-fPIE'], [stdflag, '-fPIC']]: msg = 'See if Qt files compile ' if flag: msg += 'with %s' % flag try: - self.check(features='qt5 cxx', use=uses, uselib_store='qt5', cxxflags=flag, fragment=frag, msg=msg) + self.check(features=feature + ' cxx', use=uses, uselib_store=feature, cxxflags=flag, fragment=frag, msg=msg) except self.errors.ConfigurationError: pass else: @@ -517,9 +553,9 @@ if Utils.unversioned_sys_platform() == 'freebsd': frag = '#include <QMap>\nint main(int argc, char **argv) {QMap<int,int> m;return m.keys().size();}\n' try: - self.check(features='qt5 cxx cxxprogram', use=uses, fragment=frag, msg='Can we link Qt programs on FreeBSD directly?') + self.check(features=feature + ' cxx cxxprogram', use=uses, fragment=frag, msg='Can we link Qt programs on FreeBSD directly?') except self.errors.ConfigurationError: - self.check(features='qt5 cxx cxxprogram', use=uses, uselib_store='qt5', libpath='/usr/local/lib', fragment=frag, msg='Is /usr/local/lib required?') + self.check(features=feature + ' cxx cxxprogram', use=uses, uselib_store=feature, libpath='/usr/local/lib', fragment=frag, msg='Is /usr/local/lib required?') @conf def find_qt5_binaries(self): @@ -531,6 +567,7 @@ qtdir = getattr(opt, 'qtdir', '') qtbin = getattr(opt, 'qtbin', '') + qt_ver = '6' if self.want_qt6 else '5' paths = [] @@ -539,8 +576,8 @@ # the qt directory has been given from QT5_ROOT - deduce the qt binary path if not qtdir: - qtdir = self.environ.get('QT5_ROOT', '') - qtbin = self.environ.get('QT5_BIN') or os.path.join(qtdir, 'bin') + qtdir = self.environ.get('QT' + qt_ver + '_ROOT', '') + qtbin = self.environ.get('QT' + qt_ver + '_BIN') or os.path.join(qtdir, 'bin') if qtbin: paths = [qtbin] @@ -548,7 +585,10 @@ # no qtdir, look in the path and in /usr/local/Trolltech if not qtdir: paths = self.environ.get('PATH', '').split(os.pathsep) - paths.extend(['/usr/share/qt5/bin', '/usr/local/lib/qt5/bin']) + paths.extend([ + '/usr/share/qt' + qt_ver + '/bin', + '/usr/local/lib/qt' + qt_ver + '/bin']) + try: lst = Utils.listdir('/usr/local/Trolltech/') except OSError: @@ -567,7 +607,9 @@ # keep the one with the highest version cand = None prev_ver = ['0', '0', '0'] - for qmk in ('qmake-qt5', 'qmake5', 'qmake'): + qmake_vars = ['qmake-qt' + qt_ver, 'qmake' + qt_ver, 'qmake'] + + for qmk in qmake_vars: try: qmake = self.find_program(qmk, path_list=paths) except self.errors.ConfigurationError: @@ -580,7 +622,7 @@ else: if version: new_ver = version.split('.') - if new_ver[0] == '5' and new_ver > prev_ver: + if new_ver[0] == qt_ver and new_ver > prev_ver: cand = qmake prev_ver = new_ver @@ -591,7 +633,7 @@ except self.errors.ConfigurationError: pass else: - cmd = self.env.QTCHOOSER + ['-qt=5', '-run-tool=qmake'] + cmd = self.env.QTCHOOSER + ['-qt=' + qt_ver, '-run-tool=qmake'] try: version = self.cmd_and_log(cmd + ['-query', 'QT_VERSION']) except self.errors.WafError: @@ -602,10 +644,17 @@ if cand: self.env.QMAKE = cand else: - self.fatal('Could not find qmake for qt5') + self.fatal('Could not find qmake for qt' + qt_ver) + + # Once we have qmake, we want to query qmake for the paths where we want to look for tools instead + paths = [] self.env.QT_HOST_BINS = qtbin = self.cmd_and_log(self.env.QMAKE + ['-query', 'QT_HOST_BINS']).strip() - paths.insert(0, qtbin) + paths.append(qtbin) + + if self.want_qt6: + self.env.QT_HOST_LIBEXECS = self.cmd_and_log(self.env.QMAKE + ['-query', 'QT_HOST_LIBEXECS']).strip() + paths.append(self.env.QT_HOST_LIBEXECS) def find_bin(lst, var): if var in env: @@ -619,22 +668,25 @@ env[var]=ret break - find_bin(['uic-qt5', 'uic'], 'QT_UIC') + find_bin(['uic-qt' + qt_ver, 'uic'], 'QT_UIC') if not env.QT_UIC: - self.fatal('cannot find the uic compiler for qt5') + self.fatal('cannot find the uic compiler for qt' + qt_ver) self.start_msg('Checking for uic version') uicver = self.cmd_and_log(env.QT_UIC + ['-version'], output=Context.BOTH) uicver = ''.join(uicver).strip() uicver = uicver.replace('Qt User Interface Compiler ','').replace('User Interface Compiler for Qt', '') self.end_msg(uicver) - if uicver.find(' 3.') != -1 or uicver.find(' 4.') != -1: - self.fatal('this uic compiler is for qt3 or qt4, add uic for qt5 to your path') + if uicver.find(' 3.') != -1 or uicver.find(' 4.') != -1 or (self.want_qt6 and uicver.find(' 5.') != -1): + if self.want_qt6: + self.fatal('this uic compiler is for qt3 or qt4 or qt5, add uic for qt6 to your path') + else: + self.fatal('this uic compiler is for qt3 or qt4, add uic for qt5 to your path') - find_bin(['moc-qt5', 'moc'], 'QT_MOC') - find_bin(['rcc-qt5', 'rcc'], 'QT_RCC') - find_bin(['lrelease-qt5', 'lrelease'], 'QT_LRELEASE') - find_bin(['lupdate-qt5', 'lupdate'], 'QT_LUPDATE') + find_bin(['moc-qt' + qt_ver, 'moc'], 'QT_MOC') + find_bin(['rcc-qt' + qt_ver, 'rcc'], 'QT_RCC') + find_bin(['lrelease-qt' + qt_ver, 'lrelease'], 'QT_LRELEASE') + find_bin(['lupdate-qt' + qt_ver, 'lupdate'], 'QT_LUPDATE') env.UIC_ST = '%s -o %s' env.MOC_ST = '-o' @@ -646,19 +698,26 @@ @conf def set_qt5_libs_dir(self): env = self.env - qtlibs = getattr(Options.options, 'qtlibs', None) or self.environ.get('QT5_LIBDIR') + qt_ver = '6' if self.want_qt6 else '5' + + qtlibs = getattr(Options.options, 'qtlibs', None) or self.environ.get('QT' + qt_ver + '_LIBDIR') + if not qtlibs: try: qtlibs = self.cmd_and_log(env.QMAKE + ['-query', 'QT_INSTALL_LIBS']).strip() except Errors.WafError: qtdir = self.cmd_and_log(env.QMAKE + ['-query', 'QT_INSTALL_PREFIX']).strip() qtlibs = os.path.join(qtdir, 'lib') - self.msg('Found the Qt5 library path', qtlibs) + + self.msg('Found the Qt' + qt_ver + ' library path', qtlibs) + env.QTLIBS = qtlibs @conf def find_single_qt5_lib(self, name, uselib, qtlibs, qtincludes, force_static): env = self.env + qt_ver = '6' if self.want_qt6 else '5' + if force_static: exts = ('.a', '.lib') prefix = 'STLIB' @@ -668,7 +727,7 @@ def lib_names(): for x in exts: - for k in ('', '5') if Utils.is_win32 else ['']: + for k in ('', qt_ver) if Utils.is_win32 else ['']: for p in ('lib', ''): yield (p, name, k, x) @@ -683,26 +742,28 @@ env.append_unique(prefix + '_' + uselib, libval) env.append_unique('%sPATH_%s' % (prefix, uselib), qtlibs) env.append_unique('INCLUDES_' + uselib, qtincludes) - env.append_unique('INCLUDES_' + uselib, os.path.join(qtincludes, name.replace('Qt5', 'Qt'))) + env.append_unique('INCLUDES_' + uselib, os.path.join(qtincludes, name.replace('Qt' + qt_ver, 'Qt'))) return k return False @conf def find_qt5_libraries(self): env = self.env + qt_ver = '6' if self.want_qt6 else '5' + + qtincludes = self.environ.get('QT' + qt_ver + '_INCLUDES') or self.cmd_and_log(env.QMAKE + ['-query', 'QT_INSTALL_HEADERS']).strip() + force_static = self.environ.get('QT' + qt_ver + '_FORCE_STATIC') - qtincludes = self.environ.get('QT5_INCLUDES') or self.cmd_and_log(env.QMAKE + ['-query', 'QT_INSTALL_HEADERS']).strip() - force_static = self.environ.get('QT5_FORCE_STATIC') try: - if self.environ.get('QT5_XCOMPILE'): - self.fatal('QT5_XCOMPILE Disables pkg-config detection') + if self.environ.get('QT' + qt_ver + '_XCOMPILE'): + self.fatal('QT' + qt_ver + '_XCOMPILE Disables pkg-config detection') self.check_cfg(atleast_pkgconfig_version='0.1') except self.errors.ConfigurationError: - for i in self.qt5_vars: + for i in self.qt_vars: uselib = i.upper() if Utils.unversioned_sys_platform() == 'darwin': # Since at least qt 4.7.3 each library locates in separate directory - fwk = i.replace('Qt5', 'Qt') + fwk = i.replace('Qt' + qt_ver, 'Qt') frameworkName = fwk + '.framework' qtDynamicLib = os.path.join(env.QTLIBS, frameworkName, fwk) @@ -719,9 +780,9 @@ ret = self.find_single_qt5_lib(i, uselib, env.QTLIBS, qtincludes, True) self.msg('Checking for %s' % i, ret, 'GREEN' if ret else 'YELLOW') else: - path = '%s:%s:%s/pkgconfig:/usr/lib/qt5/lib/pkgconfig:/opt/qt5/lib/pkgconfig:/usr/lib/qt5/lib:/opt/qt5/lib' % ( - self.environ.get('PKG_CONFIG_PATH', ''), env.QTLIBS, env.QTLIBS) - for i in self.qt5_vars: + path = '%s:%s:%s/pkgconfig:/usr/lib/qt%s/lib/pkgconfig:/opt/qt%s/lib/pkgconfig:/usr/lib/qt%s/lib:/opt/qt%s/lib' % ( + self.environ.get('PKG_CONFIG_PATH', ''), env.QTLIBS, env.QTLIBS, qt_ver, qt_ver, qt_ver, qt_ver) + for i in self.qt_vars: self.check_cfg(package=i, args='--cflags --libs', mandatory=False, force_static=force_static, pkg_config_path=path) @conf @@ -746,7 +807,7 @@ continue accu.append(lib) env['LIBPATH_'+var] = accu - process_lib(self.qt5_vars, 'LIBPATH_QTCORE') + process_lib(self.qt_vars, 'LIBPATH_QTCORE') @conf def add_qt5_rpath(self): @@ -768,39 +829,52 @@ continue accu.append('-Wl,--rpath='+lib) env['RPATH_' + var] = accu - process_rpath(self.qt5_vars, 'LIBPATH_QTCORE') + process_rpath(self.qt_vars, 'LIBPATH_QTCORE') @conf def set_qt5_libs_to_check(self): - self.qt5_vars = Utils.to_list(getattr(self, 'qt5_vars', [])) - if not self.qt5_vars: + qt_ver = '6' if self.want_qt6 else '5' + + if not self.qt_vars: dirlst = Utils.listdir(self.env.QTLIBS) pat = self.env.cxxshlib_PATTERN if Utils.is_win32: pat = pat.replace('.dll', '.lib') - if self.environ.get('QT5_FORCE_STATIC'): + if self.environ.get('QT' + qt_ver + '_FORCE_STATIC'): pat = self.env.cxxstlib_PATTERN if Utils.unversioned_sys_platform() == 'darwin': pat = r"%s\.framework" - re_qt = re.compile(pat % 'Qt5?(?P<name>\\w+)' + '$') + + # We only want to match Qt5 or Qt in the case of Qt5, in the case + # of Qt6 we want to match Qt6 or Qt. This speeds up configuration + # and reduces the chattiness of the configuration. Should also prevent + # possible misconfiguration. + if self.want_qt6: + re_qt = re.compile(pat % 'Qt6?(?!\\d)(?P<name>\\w+)' + '$') + else: + re_qt = re.compile(pat % 'Qt5?(?!\\d)(?P<name>\\w+)' + '$') + for x in sorted(dirlst): m = re_qt.match(x) if m: - self.qt5_vars.append("Qt5%s" % m.group('name')) - if not self.qt5_vars: - self.fatal('cannot find any Qt5 library (%r)' % self.env.QTLIBS) + self.qt_vars.append("Qt%s%s" % (qt_ver, m.group('name'))) + if not self.qt_vars: + self.fatal('cannot find any Qt%s library (%r)' % (qt_ver, self.env.QTLIBS)) qtextralibs = getattr(Options.options, 'qtextralibs', None) if qtextralibs: - self.qt5_vars.extend(qtextralibs.split(',')) + self.qt_vars.extend(qtextralibs.split(',')) @conf def set_qt5_defines(self): + qt_ver = '6' if self.want_qt6 else '5' + if sys.platform != 'win32': return - for x in self.qt5_vars: - y=x.replace('Qt5', 'Qt')[2:].upper() + + for x in self.qt_vars: + y=x.replace('Qt' + qt_ver, 'Qt')[2:].upper() self.env.append_unique('DEFINES_%s' % x.upper(), 'QT_%s_LIB' % y) def options(opt): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/third_party/waf/waflib/extras/distnet.py new/talloc-2.4.2/third_party/waf/waflib/extras/distnet.py --- old/talloc-2.4.1/third_party/waf/waflib/extras/distnet.py 2019-12-11 23:13:06.581426100 +0100 +++ new/talloc-2.4.2/third_party/waf/waflib/extras/distnet.py 2024-01-22 09:56:34.590531000 +0100 @@ -101,6 +101,8 @@ tarinfo.uid = tarinfo.gid = 0 tarinfo.uname = tarinfo.gname = 'root' tarinfo.size = os.stat(x).st_size + if os.environ.get('SOURCE_DATE_EPOCH'): + tarinfo.mtime = int(os.environ.get('SOURCE_DATE_EPOCH')) # TODO - more archive creation options? if kw.get('bare', True): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/third_party/waf/waflib/extras/haxe.py new/talloc-2.4.2/third_party/waf/waflib/extras/haxe.py --- old/talloc-2.4.1/third_party/waf/waflib/extras/haxe.py 2022-02-01 15:55:20.080603400 +0100 +++ new/talloc-2.4.2/third_party/waf/waflib/extras/haxe.py 2024-01-22 09:56:34.590531000 +0100 @@ -1,131 +1,154 @@ -import os, re -from waflib import Utils, Task, Errors -from waflib.TaskGen import extension, taskgen_method, feature -from waflib.Configure import conf - -@conf -def libname_haxe(self, libname): - return libname - -@conf -def check_lib_haxe(self, libname, uselib_store=None): - haxe_libs = [node.name for node in self.root.find_node('haxe_libraries').ant_glob()] - changed = False - self.start_msg('Checking for library %s' % libname) - if libname + '.hxml' in haxe_libs: - self.end_msg('yes') - else: - changed = True - try: - cmd = self.env.LIX + ['+lib', libname] - res = self.cmd_and_log(cmd) - if (res): - raise Errors.WafError(res) - else: - self.end_msg('downloaded', color = 'YELLOW') - except Errors.WafError as e: - self.end_msg('no', color = 'RED') - self.fatal('Getting %s has failed' % libname) - - postfix = uselib_store if uselib_store else libname.upper() - self.env['LIB_' + postfix] += [self.libname_haxe(libname)] - return changed - -@conf -def check_libs_haxe(self, libnames, uselib_store=None): - changed = False - for libname in Utils.to_list(libnames): - if self.check_lib_haxe(libname, uselib_store): - changed = True - return changed +import re -@conf -def ensure_lix_pkg(self, *k, **kw): - if kw.get('compiler') == 'hx': - if isinstance(kw.get('libs'), list) and len(kw.get('libs')): - changed = self.check_libs_haxe(kw.get('libs'), kw.get('uselib_store')) - if changed: - try: - cmd = self.env.LIX + ['download'] - res = self.cmd_and_log(cmd) - if (res): - raise Errors.WafError(res) - except Errors.WafError as e: - self.fatal('lix download has failed') - else: - self.check_lib_haxe(kw.get('lib'), kw.get('uselib_store')) +from waflib import Utils, Task, Errors, Logs +from waflib.Configure import conf +from waflib.TaskGen import extension, taskgen_method -@conf -def haxe(bld, *k, **kw): - task_gen = bld(*k, **kw) +HAXE_COMPILERS = { + 'JS': {'tgt': '--js', 'ext_out': ['.js']}, + 'LUA': {'tgt': '--lua', 'ext_out': ['.lua']}, + 'SWF': {'tgt': '--swf', 'ext_out': ['.swf']}, + 'NEKO': {'tgt': '--neko', 'ext_out': ['.n']}, + 'PHP': {'tgt': '--php', 'ext_out': ['.php']}, + 'CPP': {'tgt': '--cpp', 'ext_out': ['.h', '.cpp']}, + 'CPPIA': {'tgt': '--cppia', 'ext_out': ['.cppia']}, + 'CS': {'tgt': '--cs', 'ext_out': ['.cs']}, + 'JAVA': {'tgt': '--java', 'ext_out': ['.java']}, + 'JVM': {'tgt': '--jvm', 'ext_out': ['.jar']}, + 'PYTHON': {'tgt': '--python', 'ext_out': ['.py']}, + 'HL': {'tgt': '--hl', 'ext_out': ['.hl']}, + 'HLC': {'tgt': '--hl', 'ext_out': ['.h', '.c']}, +} + +@conf +def check_haxe_pkg(self, **kw): + self.find_program('haxelib') + libs = kw.get('libs') + if not libs or not (type(libs) == str or (type(libs) == list and all(isinstance(s, str) for s in libs))): + self.fatal('Specify correct libs value in ensure call') + return + fetch = kw.get('fetch') + if not fetch is None and not type(fetch) == bool: + self.fatal('Specify correct fetch value in ensure call') + + libs = [libs] if type(libs) == str else libs + halt = False + for lib in libs: + try: + self.start_msg('Checking for library %s' % lib) + output = self.cmd_and_log(self.env.HAXELIB + ['list', lib]) + except Errors.WafError: + self.end_msg(False) + self.fatal('Can\'t run haxelib list, ensuring halted') + return + + if lib in output: + self.end_msg(lib in output) + else: + if not fetch: + self.end_msg(False) + halt = True + continue + try: + status = self.exec_command(self.env.HAXELIB + ['install', lib]) + if status: + self.end_msg(False) + self.fatal('Can\'t get %s with haxelib, ensuring halted' % lib) + return + else: + self.end_msg('downloaded', color='YELLOW') + except Errors.WafError: + self.end_msg(False) + self.fatal('Can\'t run haxelib install, ensuring halted') + return + postfix = kw.get('uselib_store') or lib.upper() + self.env.append_unique('LIB_' + postfix, lib) + + if halt: + self.fatal('Can\'t find libraries in haxelib list, ensuring halted') + return class haxe(Task.Task): - vars = ['HAXE', 'HAXE_VERSION', 'HAXEFLAGS'] - ext_out = ['.hl', '.c', '.h'] + vars = ['HAXE_VERSION', 'HAXE_FLAGS'] + ext_in = ['.hx'] - def run(self): - cmd = self.env.HAXE + self.env.HAXEFLAGS - return self.exec_command(cmd, stdout = open(os.devnull, 'w')) + def run(self): + cmd = self.env.HAXE + self.env.HAXE_FLAGS_DEFAULT + self.env.HAXE_FLAGS + return self.exec_command(cmd) + +for COMP in HAXE_COMPILERS: + # create runners for each compile target + type("haxe_" + COMP, (haxe,), {'ext_out': HAXE_COMPILERS[COMP]['ext_out']}) @taskgen_method -def init_haxe_task(self, node): - def addflags(flags): - self.env.append_value('HAXEFLAGS', flags) - - if node.suffix() == '.hxml': - addflags(self.path.abspath() + '/' + node.name) - else: - addflags(['-main', node.name]) - addflags(['-hl', self.path.get_bld().make_node(self.target).abspath()]) - addflags(['-cp', self.path.abspath()]) - addflags(['-D', 'resourcesPath=%s' % getattr(self, 'res', '')]) - if hasattr(self, 'use'): - for dep in self.use: - if self.env['LIB_' + dep]: - for lib in self.env['LIB_' + dep]: addflags(['-lib', lib]) - -@extension('.hx', '.hxml') -def haxe_file(self, node): - if len(self.source) > 1: - self.bld.fatal('Use separate task generators for multiple files') - - try: - haxetask = self.haxetask - except AttributeError: - haxetask = self.haxetask = self.create_task('haxe') - self.init_haxe_task(node) - - haxetask.inputs.append(node) - haxetask.outputs.append(self.path.get_bld().make_node(self.target)) - -@conf -def find_haxe(self, min_version): - npx = self.env.NPX = self.find_program('npx') - self.env.LIX = npx + ['lix'] - npx_haxe = self.env.HAXE = npx + ['haxe'] - try: - output = self.cmd_and_log(npx_haxe + ['-version']) - except Errors.WafError: - haxe_version = None - else: - ver = re.search(r'\d+.\d+.\d+', output).group().split('.') - haxe_version = tuple([int(x) for x in ver]) - - self.msg('Checking for haxe version', - haxe_version, haxe_version and haxe_version >= min_version) - if npx_haxe and haxe_version < min_version: - self.fatal('haxe version %r is too old, need >= %r' % (haxe_version, min_version)) - - self.env.HAXE_VERSION = haxe_version - return npx_haxe - -@conf -def check_haxe(self, min_version=(4,1,4)): - if self.env.HAXE_MINVER: - min_version = self.env.HAXE_MINVER - find_haxe(self, min_version) +def init_haxe(self): + errmsg = '%s not found, specify correct value' + try: + compiler = HAXE_COMPILERS[self.compiler] + comp_tgt = compiler['tgt'] + comp_mod = '/main.c' if self.compiler == 'HLC' else '' + except (AttributeError, KeyError): + self.bld.fatal(errmsg % 'COMPILER' + ': ' + ', '.join(HAXE_COMPILERS.keys())) + return + + self.env.append_value( + 'HAXE_FLAGS', + [comp_tgt, self.path.get_bld().make_node(self.target + comp_mod).abspath()]) + if hasattr(self, 'use'): + if not (type(self.use) == str or type(self.use) == list): + self.bld.fatal(errmsg % 'USE') + return + self.use = [self.use] if type(self.use) == str else self.use + + for dep in self.use: + if self.env['LIB_' + dep]: + for lib in self.env['LIB_' + dep]: + self.env.append_value('HAXE_FLAGS', ['-lib', lib]) + + if hasattr(self, 'res'): + if not type(self.res) == str: + self.bld.fatal(errmsg % 'RES') + return + self.env.append_value('HAXE_FLAGS', ['-D', 'resourcesPath=%s' % self.res]) + +@extension('.hx') +def haxe_hook(self, node): + if len(self.source) > 1: + self.bld.fatal('Use separate task generators for multiple files') + return + + src = node + tgt = self.path.get_bld().find_or_declare(self.target) + + self.init_haxe() + self.create_task('haxe_' + self.compiler, src, tgt) + +@conf +def check_haxe(self, mini=None, maxi=None): + self.start_msg('Checking for haxe version') + try: + curr = re.search( + r'(\d+.?)+', + self.cmd_and_log(self.env.HAXE + ['-version'])).group() + except Errors.WafError: + self.end_msg(False) + self.fatal('Can\'t get haxe version') + return + + if mini and Utils.num2ver(curr) < Utils.num2ver(mini): + self.end_msg('wrong', color='RED') + self.fatal('%s is too old, need >= %s' % (curr, mini)) + return + if maxi and Utils.num2ver(curr) > Utils.num2ver(maxi): + self.end_msg('wrong', color='RED') + self.fatal('%s is too new, need <= %s' % (curr, maxi)) + return + self.end_msg(curr, color='GREEN') + self.env.HAXE_VERSION = curr def configure(self): - self.env.HAXEFLAGS = [] - self.check_haxe() - self.add_os_flags('HAXEFLAGS', dup = False) + self.env.append_value( + 'HAXE_FLAGS_DEFAULT', + ['-D', 'no-compilation', '-cp', self.path.abspath()]) + Logs.warn('Default flags: %s' % ' '.join(self.env.HAXE_FLAGS_DEFAULT)) + self.find_program('haxe') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/third_party/waf/waflib/extras/msvs.py new/talloc-2.4.2/third_party/waf/waflib/extras/msvs.py --- old/talloc-2.4.1/third_party/waf/waflib/extras/msvs.py 2022-04-12 12:29:16.784438600 +0200 +++ new/talloc-2.4.2/third_party/waf/waflib/extras/msvs.py 2024-01-22 09:56:34.590531000 +0100 @@ -583,7 +583,7 @@ self.build_properties = ret def get_build_params(self, props): - opt = '--execsolution=%s' % self.ctx.get_solution_node().win32path() + opt = '--execsolution="%s"' % self.ctx.get_solution_node().win32path() return (self.get_waf(), opt) def get_build_command(self, props): @@ -681,7 +681,7 @@ """ Override the default to add the target name """ - opt = '--execsolution=%s' % self.ctx.get_solution_node().win32path() + opt = '--execsolution="%s"' % self.ctx.get_solution_node().win32path() if getattr(self, 'tg', None): opt += " --targets=%s" % self.tg.name return (self.get_waf(), opt) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/third_party/waf/waflib/extras/sphinx.py new/talloc-2.4.2/third_party/waf/waflib/extras/sphinx.py --- old/talloc-2.4.1/third_party/waf/waflib/extras/sphinx.py 2023-01-19 12:39:12.919113400 +0100 +++ new/talloc-2.4.2/third_party/waf/waflib/extras/sphinx.py 2024-01-22 09:56:34.590531000 +0100 @@ -86,7 +86,7 @@ class SphinxBuildingTask(Task.Task): color = 'BOLD' - run_str = '${SPHINX_BUILD} -M ${SPHINX_OUTPUT_FORMAT} ${SRC} ${TGT} ${SPHINX_OPTIONS}' + run_str = '${SPHINX_BUILD} -M ${SPHINX_OUTPUT_FORMAT} ${SRC} ${TGT} -d ${TGT[0].bld_dir()}/doctrees-${SPHINX_OUTPUT_FORMAT} ${SPHINX_OPTIONS}' def keyword(self): return 'Compiling (%s)' % self.env.SPHINX_OUTPUT_FORMAT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talloc-2.4.1/wscript new/talloc-2.4.2/wscript --- old/talloc-2.4.1/wscript 2023-07-18 15:16:05.179537800 +0200 +++ new/talloc-2.4.2/wscript 2024-01-29 17:16:45.538622600 +0100 @@ -1,7 +1,7 @@ #!/usr/bin/env python APPNAME = 'talloc' -VERSION = '2.4.1' +VERSION = '2.4.2' import os import sys ++++++ talloc-python3.5-fix-soabi_name.patch ++++++ --- /var/tmp/diff_new_pack.h6eTyW/_old 2024-05-24 19:50:43.404595818 +0200 +++ /var/tmp/diff_new_pack.h6eTyW/_new 2024-05-24 19:50:43.432596840 +0200 @@ -1,12 +1,13 @@ ---- a/buildtools/wafsamba/wafsamba.py -+++ b/buildtools/wafsamba/wafsamba.py -@@ -108,7 +108,7 @@ def SAMBA_LIBRARY(bld, libname, source, - ldflags='', - external_library=False, - realname=None, -- keep_underscore=False, -+ keep_underscore=True, - autoproto=None, - autoproto_extra_source='', - group='main', +diff -ruNp a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py +--- a/buildtools/wafsamba/wafsamba.py 2024-05-16 13:52:58.561283248 +0200 ++++ b/buildtools/wafsamba/wafsamba.py 2024-05-16 13:54:32.297195397 +0200 +@@ -309,7 +309,7 @@ def SAMBA_LIBRARY(bld, libname, source, + if bundled_name is not None: + pass + elif target_type == 'PYTHON' or realname or not private_library: +- bundled_name = libname.replace('_', '-') ++ bundled_name = libname + else: + assert (private_library is True and realname is None) + bundled_name = PRIVATE_NAME(bld, libname.replace('_', '-'))