rhbz#1718113 - samba fail to build with Python 3.8
AttributeError: module 'time' has no attribute 'clock'
This commit is contained in:
parent
1c4ad7a580
commit
482b42ed8b
110
0002-wafsamba-Use-native-waf-timer.patch
Normal file
110
0002-wafsamba-Use-native-waf-timer.patch
Normal file
@ -0,0 +1,110 @@
|
||||
From 8970020e20689db9a93bfcc33e71c312d1488309 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Slebodnik <lslebodn@fedoraproject.org>
|
||||
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 <lslebodn@fedoraproject.org>
|
||||
---
|
||||
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
|
||||
|
194
0003-wafsamba-Fix-few-SyntaxWarnings-caused-by-regular-ex.patch
Normal file
194
0003-wafsamba-Fix-few-SyntaxWarnings-caused-by-regular-ex.patch
Normal file
@ -0,0 +1,194 @@
|
||||
From 87dfb0ce329447625050771fd83dae1841ece1b8 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Slebodnik <lslebodn@fedoraproject.org>
|
||||
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('", <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,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,8 +119,8 @@ def find_ldd_path(bld, libname, binary):
|
||||
|
||||
|
||||
# some regular expressions for parsing readelf output
|
||||
-re_sharedlib = re.compile(b'Shared library: \[(.*)\]')
|
||||
-re_rpath = re.compile(b'Library rpath: \[(.*)\]')
|
||||
+re_sharedlib = re.compile(r'Shared library: \[(.*)\]')
|
||||
+re_rpath = re.compile(r'Library rpath: \[(.*)\]')
|
||||
|
||||
def get_libs(bld, binname):
|
||||
'''find the list of linked libraries for any binary or library
|
||||
--
|
||||
2.22.0
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
Name: libldb
|
||||
Version: 1.5.4
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: A schema-less, ldap like, API and database
|
||||
Requires: libtalloc%{?_isa} >= %{talloc_version}
|
||||
Requires: libtdb%{?_isa} >= %{tdb_version}
|
||||
@ -45,6 +45,8 @@ Source: http://samba.org/ftp/ldb/ldb-%{version}.tar.gz
|
||||
# Patches
|
||||
Patch0001: 0002-ldb-Run-at-least-some-tests-on-32-bit-machines.patch
|
||||
Patch0002: waflib-python38-pyembed.diff
|
||||
Patch0003: 0002-wafsamba-Use-native-waf-timer.patch
|
||||
Patch0004: 0003-wafsamba-Fix-few-SyntaxWarnings-caused-by-regular-ex.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: libtalloc-devel >= %{talloc_version}
|
||||
@ -265,6 +267,10 @@ rm -f $RPM_BUILD_ROOT/%{_mandir}/man3/_*
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Jun 14 2019 Lukas Slebodnik <lslebodn@fedoraproject.org> - 1.5.4-3
|
||||
- rhbz#1718113 - samba fail to build with Python 3.8
|
||||
AttributeError: module 'time' has no attribute 'clock'
|
||||
|
||||
* Mon Jun 03 2019 Lukas Slebodnik <lslebodn@fedoraproject.org> - 1.5.4-2
|
||||
- rhbz#1711638 - fails to build with Python 3.8.0a4
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user