diff --git a/0002-wafsamba-Use-native-waf-timer.patch b/0002-wafsamba-Use-native-waf-timer.patch new file mode 100644 index 0000000..7918acb --- /dev/null +++ b/0002-wafsamba-Use-native-waf-timer.patch @@ -0,0 +1,110 @@ +From 8970020e20689db9a93bfcc33e71c312d1488309 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Wed, 12 Jun 2019 12:27:04 +0200 +Subject: [PATCH] wafsamba: Use native waf timer + + __main__:1: DeprecationWarning: time.clock has been deprecated in Python 3.3 + and will be removed from Python 3.8: use time.perf_counter + or time.process_time instead + +Signed-off-by: Lukas Slebodnik +--- + buildtools/wafsamba/samba_deps.py | 25 ++++++++++++------------- + 1 file changed, 12 insertions(+), 13 deletions(-) + +diff --git a/buildtools/wafsamba/samba_deps.py b/buildtools/wafsamba/samba_deps.py +index f8c38809bd2296288374cd66788cdd8fdb2c7538..03c37079a8c435628e058a6d00c0f942a06f3bd9 100644 +--- a/buildtools/wafsamba/samba_deps.py ++++ b/buildtools/wafsamba/samba_deps.py +@@ -1,6 +1,6 @@ + # Samba automatic dependency handling and project rules + +-import os, sys, re, time ++import os, sys, re + + from waflib import Build, Options, Logs, Utils, Errors + from waflib.Logs import debug +@@ -1102,8 +1102,7 @@ def check_project_rules(bld): + if not force_project_rules and load_samba_deps(bld, tgt_list): + return + +- global tstart +- tstart = time.clock() ++ timer = Utils.Timer() + + bld.new_rules = True + Logs.info("Checking project rules ...") +@@ -1112,26 +1111,26 @@ def check_project_rules(bld): + + expand_subsystem_deps(bld) + +- debug("deps: expand_subsystem_deps: %f" % (time.clock() - tstart)) ++ debug("deps: expand_subsystem_deps: %s" % str(timer)) + + replace_grouping_libraries(bld, tgt_list) + +- debug("deps: replace_grouping_libraries: %f" % (time.clock() - tstart)) ++ debug("deps: replace_grouping_libraries: %s" % str(timer)) + + build_direct_deps(bld, tgt_list) + +- debug("deps: build_direct_deps: %f" % (time.clock() - tstart)) ++ debug("deps: build_direct_deps: %s" % str(timer)) + + break_dependency_loops(bld, tgt_list) + +- debug("deps: break_dependency_loops: %f" % (time.clock() - tstart)) ++ debug("deps: break_dependency_loops: %s" % str(timer)) + + if Options.options.SHOWDEPS: + show_dependencies(bld, Options.options.SHOWDEPS, set()) + + calculate_final_deps(bld, tgt_list, loops) + +- debug("deps: calculate_final_deps: %f" % (time.clock() - tstart)) ++ debug("deps: calculate_final_deps: %s" % str(timer)) + + if Options.options.SHOW_DUPLICATES: + show_object_duplicates(bld, tgt_list) +@@ -1140,7 +1139,7 @@ def check_project_rules(bld): + for f in [ build_dependencies, build_includes, add_init_functions ]: + debug('deps: project rules checking %s', f) + for t in tgt_list: f(t) +- debug("deps: %s: %f" % (f, time.clock() - tstart)) ++ debug("deps: %s: %s" % (f, str(timer))) + + debug('deps: project rules stage1 completed') + +@@ -1148,17 +1147,17 @@ def check_project_rules(bld): + Logs.error("Duplicate sources present - aborting") + sys.exit(1) + +- debug("deps: check_duplicate_sources: %f" % (time.clock() - tstart)) ++ debug("deps: check_duplicate_sources: %s" % str(timer)) + + if not bld.check_group_ordering(tgt_list): + Logs.error("Bad group ordering - aborting") + sys.exit(1) + +- debug("deps: check_group_ordering: %f" % (time.clock() - tstart)) ++ debug("deps: check_group_ordering: %s" % str(timer)) + + show_final_deps(bld, tgt_list) + +- debug("deps: show_final_deps: %f" % (time.clock() - tstart)) ++ debug("deps: show_final_deps: %s" % str(timer)) + + debug('deps: project rules checking completed - %u targets checked', + len(tgt_list)) +@@ -1166,7 +1165,7 @@ def check_project_rules(bld): + if not bld.is_install: + save_samba_deps(bld, tgt_list) + +- debug("deps: save_samba_deps: %f" % (time.clock() - tstart)) ++ debug("deps: save_samba_deps: %s" % str(timer)) + + Logs.info("Project rules pass") + +-- +2.22.0 + diff --git a/0003-wafsamba-Fix-few-SyntaxWarnings-caused-by-regular-ex.patch b/0003-wafsamba-Fix-few-SyntaxWarnings-caused-by-regular-ex.patch new file mode 100644 index 0000000..7fdf0c1 --- /dev/null +++ b/0003-wafsamba-Fix-few-SyntaxWarnings-caused-by-regular-ex.patch @@ -0,0 +1,195 @@ +From 87dfb0ce329447625050771fd83dae1841ece1b8 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Wed, 12 Jun 2019 13:38:17 +0200 +Subject: [PATCH] wafsamba: Fix few SyntaxWarnings caused by regular + expressions + +./buildtools/wafsamba/samba_utils.py:258: SyntaxWarning: invalid escape sequence \$ + lst = re.split('(\$\{\w+\})', string) +./buildtools/wafsamba/samba_utils.py:261: SyntaxWarning: invalid escape sequence \$ + if re.match('\$\{\w+\}', v): +./buildtools/wafsamba/samba_cross.py:80: SyntaxWarning: invalid escape sequence \( + m = re.match('\(\s*(-?\d+)\s*,\s*\"(.*)\"\s*\)', ans) +./buildtools/wafsamba/samba_conftests.py:400: SyntaxWarning: invalid escape sequence \s + m = re.search('MAN%sEXT\s+=\s+(\w+)' % section, man) +./buildtools/wafsamba/samba_abi.py:24: SyntaxWarning: invalid escape sequence \$ + sig = re.sub('^\$[0-9]+\s=\s\{(.+)\}$', r'\1', sig) +./buildtools/wafsamba/samba_abi.py:25: SyntaxWarning: invalid escape sequence \$ + sig = re.sub('^\$[0-9]+\s=\s\{(.+)\}(\s0x[0-9a-f]+\s<\w+>)+$', r'\1', sig) +./buildtools/wafsamba/samba_abi.py:26: SyntaxWarning: invalid escape sequence \$ + sig = re.sub('^\$[0-9]+\s=\s(0x[0-9a-f]+)\s?(<\w+>)?$', r'\1', sig) +./buildtools/wafsamba/samba_abi.py:33: SyntaxWarning: invalid escape sequence \* + m = m.replace('*', '\*') +./buildtools/wafsamba/samba_abi.py:44: SyntaxWarning: invalid escape sequence \s + sig = re.sub(',\s\.\.\.', '', sig) +./buildtools/wafsamba/samba_headers.py:22: SyntaxWarning: invalid escape sequence \s + re_header = re.compile('^\s*#\s*include[ \t]*"([^"]+)"', re.I | re.M) +./buildtools/wafsamba/symbols.py:122: SyntaxWarning: invalid escape sequence \[ + re_sharedlib = re.compile(b'Shared library: \[(.*)\]') +./buildtools/wafsamba/symbols.py:124: SyntaxWarning: invalid escape sequence \[ + re_rpath = re.compile(b'Library (rpath|runpath): \[(.*)\]') +./buildtools/wafsamba/pkgconfig.py:12: SyntaxWarning: invalid escape sequence \w + a = re.split('(@\w+@)', s) +./buildtools/wafsamba/pkgconfig.py:17: SyntaxWarning: invalid escape sequence \w + if re.match('@\w+@', v): +./buildtools/wafsamba/configure_file.py:16: SyntaxWarning: invalid escape sequence \w + a = re.split('(@\w+@)', s) +./buildtools/wafsamba/configure_file.py:19: SyntaxWarning: invalid escape sequence \w + if re.match('@\w+@', v): +--- + buildtools/wafsamba/configure_file.py | 4 ++-- + buildtools/wafsamba/pkgconfig.py | 4 ++-- + buildtools/wafsamba/samba_abi.py | 12 ++++++------ + buildtools/wafsamba/samba_conftests.py | 2 +- + buildtools/wafsamba/samba_cross.py | 2 +- + buildtools/wafsamba/samba_headers.py | 2 +- + buildtools/wafsamba/samba_utils.py | 4 ++-- + buildtools/wafsamba/symbols.py | 4 ++-- + 8 files changed, 17 insertions(+), 17 deletions(-) + +diff --git a/buildtools/wafsamba/configure_file.py b/buildtools/wafsamba/configure_file.py +index 6ad43546249fba7b4c0a037035e8574e7a9d2753..98a58a4604513e3633317e73299c1c9280c250d2 100644 +--- a/buildtools/wafsamba/configure_file.py ++++ b/buildtools/wafsamba/configure_file.py +@@ -13,10 +13,10 @@ def subst_at_vars(task): + 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 --git a/buildtools/wafsamba/pkgconfig.py b/buildtools/wafsamba/pkgconfig.py +index b83d5f382a58352bb3318b594aa2b45fc02d87d5..b77bd618c8903789c7ba9e64a6972a4e080f1821 100644 +--- a/buildtools/wafsamba/pkgconfig.py ++++ b/buildtools/wafsamba/pkgconfig.py +@@ -9,12 +9,12 @@ def subst_at_vars(task): + + 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 --git a/buildtools/wafsamba/samba_abi.py b/buildtools/wafsamba/samba_abi.py +index 5e7686da3d68b1ebcd842b8a319a5997fa9cf600..761667fcfe1f3937be22c8261b45dcb3979ae4cd 100644 +--- a/buildtools/wafsamba/samba_abi.py ++++ b/buildtools/wafsamba/samba_abi.py +@@ -21,16 +21,16 @@ version_key = lambda x: list(map(int, x.split("."))) + 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('", ', 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,7 +41,7 @@ def normalise_signature(sig): + + def normalise_varargs(sig): + '''cope with older versions of gdb''' +- sig = re.sub(',\s\.\.\.', '', sig) ++ sig = re.sub(r',\s\.\.\.', '', sig) + return sig + + +diff --git a/buildtools/wafsamba/samba_conftests.py b/buildtools/wafsamba/samba_conftests.py +index ef632ba903369e4211991f17a3b204bcd96c3a2f..63e50567860ff890b00b0ce6c7607c917b7329d1 100644 +--- a/buildtools/wafsamba/samba_conftests.py ++++ b/buildtools/wafsamba/samba_conftests.py +@@ -397,7 +397,7 @@ WriteMakefile( + + 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 --git a/buildtools/wafsamba/samba_cross.py b/buildtools/wafsamba/samba_cross.py +index 8863c2c53e7d7dd9317c9233f0085ffd0eea6b2f..34793902fba884cf2d8358bf4315dc98027266b6 100644 +--- a/buildtools/wafsamba/samba_cross.py ++++ b/buildtools/wafsamba/samba_cross.py +@@ -77,7 +77,7 @@ def cross_answer(ca_file, msg): + f.close() + return (0, ans.strip("'")) + else: +- m = re.match('\(\s*(-?\d+)\s*,\s*\"(.*)\"\s*\)', ans) ++ m = re.match(r'\(\s*(-?\d+)\s*,\s*\"(.*)\"\s*\)', ans) + if m: + f.close() + return (int(m.group(1)), m.group(2)) +diff --git a/buildtools/wafsamba/samba_headers.py b/buildtools/wafsamba/samba_headers.py +index a268c011c5d8e406e0d763554c55668cfb5388bc..c8bee19010978a04460b0637fcc8fd484a699ea8 100644 +--- a/buildtools/wafsamba/samba_headers.py ++++ b/buildtools/wafsamba/samba_headers.py +@@ -19,7 +19,7 @@ def header_install_path(header, header_path): + 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 = {} +diff --git a/buildtools/wafsamba/samba_utils.py b/buildtools/wafsamba/samba_utils.py +index ad97de1859ba24c4afd5106b4f9694b0dc855643..75c9794ec40f327ef8ccf9aa33fafd6ed6181e3b 100644 +--- a/buildtools/wafsamba/samba_utils.py ++++ b/buildtools/wafsamba/samba_utils.py +@@ -255,10 +255,10 @@ def TO_LIST(str, delimiter=None): + + 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))) +diff --git a/buildtools/wafsamba/symbols.py b/buildtools/wafsamba/symbols.py +index 3eca3d46bd71cf0780b3c8e36a26b96bd3aa3b83..73e8ca8ce53ef5d956ac58e14a2403dd49f01109 100644 +--- a/buildtools/wafsamba/symbols.py ++++ b/buildtools/wafsamba/symbols.py +@@ -119,9 +119,9 @@ def find_ldd_path(bld, libname, binary): + + + # some regular expressions for parsing readelf output +-re_sharedlib = re.compile(b'Shared library: \[(.*)\]') ++re_sharedlib = re.compile(r'Shared library: \[(.*)\]') + # output from readelf could be `Library rpath` or `Libray runpath` +-re_rpath = re.compile(b'Library (rpath|runpath): \[(.*)\]') ++re_rpath = re.compile(r'Library (rpath|runpath): \[(.*)\]') + + def get_libs(bld, binname): + '''find the list of linked libraries for any binary or library +-- +2.22.0 + diff --git a/libtalloc.spec b/libtalloc.spec index 2d52000..4780fd2 100644 --- a/libtalloc.spec +++ b/libtalloc.spec @@ -18,7 +18,7 @@ Name: libtalloc Version: 2.1.16 -Release: 2%{?dist} +Release: 3%{?dist} Summary: The talloc library License: LGPLv3+ URL: https://talloc.samba.org/ @@ -26,6 +26,8 @@ Source: https://www.samba.org/ftp/talloc/talloc-%{version}.tar.gz # Patches Patch0001: waflib-python38-pyembed.diff +Patch0002: 0002-wafsamba-Use-native-waf-timer.patch +Patch0003: 0003-wafsamba-Fix-few-SyntaxWarnings-caused-by-regular-ex.patch BuildRequires: gcc BuildRequires: libxslt @@ -164,6 +166,10 @@ cp -a doc/man/* $RPM_BUILD_ROOT/%{_mandir} %endif %changelog +* Fri Jun 14 2019 Lukas Slebodnik - 2.1.16-3 +- rhbz#1718113 - samba fail to build with Python 3.8 + AttributeError: module 'time' has no attribute 'clock' + * Mon Jun 03 2019 Lukas Slebodnik - 2.1.16-2 - rhbz#1711638 - fails to build with Python 3.8.0a4