mirror of
https://github.com/samba-team/samba.git
synced 2025-01-03 01:18:10 +03:00
build: Remove workaround for missing os.path.relpath in Python < 2.6
Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: David Mulder <dmulder@suse.com> Reviewed-by: Andreas Schneider <asn@samba.org>
This commit is contained in:
parent
dc5788056b
commit
92ce387ed0
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
from waflib import Build
|
from waflib import Build
|
||||||
from samba_utils import os_path_relpath, TO_LIST
|
from samba_utils import TO_LIST
|
||||||
from samba_autoconf import library_flags
|
from samba_autoconf import library_flags
|
||||||
|
|
||||||
def SAMBA3_IS_STATIC_MODULE(bld, module):
|
def SAMBA3_IS_STATIC_MODULE(bld, module):
|
||||||
@ -31,7 +31,7 @@ def s3_fix_kwargs(bld, kwargs):
|
|||||||
'''fix the build arguments for s3 build rules to include the
|
'''fix the build arguments for s3 build rules to include the
|
||||||
necessary includes, subdir and cflags options '''
|
necessary includes, subdir and cflags options '''
|
||||||
s3dir = os.path.join(bld.env.srcdir, 'source3')
|
s3dir = os.path.join(bld.env.srcdir, 'source3')
|
||||||
s3reldir = os_path_relpath(s3dir, bld.path.abspath())
|
s3reldir = os.path.relpath(s3dir, bld.path.abspath())
|
||||||
|
|
||||||
# the extra_includes list is relative to the source3 directory
|
# the extra_includes list is relative to the source3 directory
|
||||||
extra_includes = [ '.', 'include', 'lib' ]
|
extra_includes = [ '.', 'include', 'lib' ]
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
from waflib import Build
|
from waflib import Build
|
||||||
from samba_utils import SET_TARGET_TYPE, os_path_relpath
|
from samba_utils import SET_TARGET_TYPE
|
||||||
|
|
||||||
def SAMBA_AUTOPROTO(bld, header, source):
|
def SAMBA_AUTOPROTO(bld, header, source):
|
||||||
'''rule for samba prototype generation'''
|
'''rule for samba prototype generation'''
|
||||||
bld.SET_BUILD_GROUP('prototypes')
|
bld.SET_BUILD_GROUP('prototypes')
|
||||||
relpath = os_path_relpath(bld.path.abspath(), bld.srcnode.abspath())
|
relpath = os.path.relpath(bld.path.abspath(), bld.srcnode.abspath())
|
||||||
name = os.path.join(relpath, header)
|
name = os.path.join(relpath, header)
|
||||||
SET_TARGET_TYPE(bld, name, 'PROTOTYPE')
|
SET_TARGET_TYPE(bld, name, 'PROTOTYPE')
|
||||||
t = bld(
|
t = bld(
|
||||||
|
@ -8,7 +8,7 @@ from waflib.Configure import conf
|
|||||||
from waflib import ConfigSet
|
from waflib import ConfigSet
|
||||||
|
|
||||||
from samba_bundled import BUILTIN_LIBRARY
|
from samba_bundled import BUILTIN_LIBRARY
|
||||||
from samba_utils import LOCAL_CACHE, TO_LIST, get_tgt_list, unique_list, os_path_relpath
|
from samba_utils import LOCAL_CACHE, TO_LIST, get_tgt_list, unique_list
|
||||||
from samba_autoconf import library_flags
|
from samba_autoconf import library_flags
|
||||||
|
|
||||||
@conf
|
@conf
|
||||||
@ -172,7 +172,7 @@ def build_includes(self):
|
|||||||
|
|
||||||
mypath = self.path.abspath(bld.env)
|
mypath = self.path.abspath(bld.env)
|
||||||
for inc in inc_abs:
|
for inc in inc_abs:
|
||||||
relpath = os_path_relpath(inc, mypath)
|
relpath = os.path.relpath(inc, mypath)
|
||||||
includes.append(relpath)
|
includes.append(relpath)
|
||||||
|
|
||||||
if getattr(self, 'local_include', True) and not getattr(self, 'local_include_first', True):
|
if getattr(self, 'local_include', True) and not getattr(self, 'local_include_first', True):
|
||||||
@ -188,7 +188,7 @@ def build_includes(self):
|
|||||||
includes_top.append(i)
|
includes_top.append(i)
|
||||||
continue
|
continue
|
||||||
absinc = os.path.join(self.path.abspath(), i)
|
absinc = os.path.join(self.path.abspath(), i)
|
||||||
relinc = os_path_relpath(absinc, self.bld.srcnode.abspath())
|
relinc = os.path.relpath(absinc, self.bld.srcnode.abspath())
|
||||||
includes_top.append('#' + relinc)
|
includes_top.append('#' + relinc)
|
||||||
|
|
||||||
self.includes = unique_list(includes_top)
|
self.includes = unique_list(includes_top)
|
||||||
@ -267,7 +267,7 @@ def check_duplicate_sources(bld, tgt_list):
|
|||||||
|
|
||||||
for t in tgt_list:
|
for t in tgt_list:
|
||||||
source_list = TO_LIST(getattr(t, 'source', ''))
|
source_list = TO_LIST(getattr(t, 'source', ''))
|
||||||
tpath = os.path.normpath(os_path_relpath(t.path.abspath(bld.env), t.env.BUILD_DIRECTORY + '/default'))
|
tpath = os.path.normpath(os.path.relpath(t.path.abspath(bld.env), t.env.BUILD_DIRECTORY + '/default'))
|
||||||
obj_sources = set()
|
obj_sources = set()
|
||||||
for s in source_list:
|
for s in source_list:
|
||||||
if not isinstance(s, str):
|
if not isinstance(s, str):
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
import os, sys, tarfile
|
import os, sys, tarfile
|
||||||
from waflib import Utils, Scripting, Logs, Options
|
from waflib import Utils, Scripting, Logs, Options
|
||||||
from waflib.Configure import conf
|
from waflib.Configure import conf
|
||||||
from samba_utils import os_path_relpath, get_string
|
from samba_utils import get_string
|
||||||
from waflib import Context
|
from waflib import Context
|
||||||
|
|
||||||
dist_dirs = None
|
dist_dirs = None
|
||||||
@ -111,7 +111,7 @@ def vcs_dir_contents(path):
|
|||||||
while repo != "/":
|
while repo != "/":
|
||||||
if os.path.isdir(os.path.join(repo, ".git")):
|
if os.path.isdir(os.path.join(repo, ".git")):
|
||||||
ls_files_cmd = [ 'git', 'ls-files', '--full-name',
|
ls_files_cmd = [ 'git', 'ls-files', '--full-name',
|
||||||
os_path_relpath(path, repo) ]
|
os.path.relpath(path, repo) ]
|
||||||
cwd = None
|
cwd = None
|
||||||
env = dict(os.environ)
|
env = dict(os.environ)
|
||||||
env["GIT_DIR"] = os.path.join(repo, ".git")
|
env["GIT_DIR"] = os.path.join(repo, ".git")
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
import os, re, sys, fnmatch
|
import os, re, sys, fnmatch
|
||||||
from waflib import Build, Logs, Utils, Errors
|
from waflib import Build, Logs, Utils, Errors
|
||||||
from samba_utils import TO_LIST, os_path_relpath
|
from samba_utils import TO_LIST
|
||||||
|
|
||||||
|
|
||||||
def header_install_path(header, header_path):
|
def header_install_path(header, header_path):
|
||||||
@ -42,7 +42,7 @@ def create_public_header(task):
|
|||||||
if os.path.exists(tgt):
|
if os.path.exists(tgt):
|
||||||
os.unlink(tgt)
|
os.unlink(tgt)
|
||||||
|
|
||||||
relsrc = os_path_relpath(src, task.env.TOPDIR)
|
relsrc = os.path.relpath(src, task.env.TOPDIR)
|
||||||
|
|
||||||
infile = open(src, mode='r')
|
infile = open(src, mode='r')
|
||||||
outfile = open(tgt, mode='w')
|
outfile = open(tgt, mode='w')
|
||||||
@ -149,8 +149,8 @@ def PUBLIC_HEADERS(bld, public_headers, header_path=None, public_headers_install
|
|||||||
h_name = h
|
h_name = h
|
||||||
inst_name = os.path.basename(h)
|
inst_name = os.path.basename(h)
|
||||||
curdir = bld.path.abspath()
|
curdir = bld.path.abspath()
|
||||||
relpath1 = os_path_relpath(bld.srcnode.abspath(), curdir)
|
relpath1 = os.path.relpath(bld.srcnode.abspath(), curdir)
|
||||||
relpath2 = os_path_relpath(curdir, bld.srcnode.abspath())
|
relpath2 = os.path.relpath(curdir, bld.srcnode.abspath())
|
||||||
targetdir = os.path.normpath(os.path.join(relpath1, bld.env.build_public_headers, inst_path))
|
targetdir = os.path.normpath(os.path.join(relpath1, bld.env.build_public_headers, inst_path))
|
||||||
if not os.path.exists(os.path.join(curdir, targetdir)):
|
if not os.path.exists(os.path.join(curdir, targetdir)):
|
||||||
raise Errors.WafError("missing source directory %s for public header %s" % (targetdir, inst_name))
|
raise Errors.WafError("missing source directory %s for public header %s" % (targetdir, inst_name))
|
||||||
|
@ -205,24 +205,6 @@ def process_depends_on(self):
|
|||||||
self.includes += " " + y.more_includes
|
self.includes += " " + y.more_includes
|
||||||
|
|
||||||
|
|
||||||
os_path_relpath = getattr(os.path, 'relpath', None)
|
|
||||||
if os_path_relpath is None:
|
|
||||||
# Python < 2.6 does not have os.path.relpath, provide a replacement
|
|
||||||
# (imported from Python2.6.5~rc2)
|
|
||||||
def os_path_relpath(path, start):
|
|
||||||
"""Return a relative version of a path"""
|
|
||||||
start_list = os.path.abspath(start).split("/")
|
|
||||||
path_list = os.path.abspath(path).split("/")
|
|
||||||
|
|
||||||
# Work out how much of the filepath is shared by start and path.
|
|
||||||
i = len(os.path.commonprefix([start_list, path_list]))
|
|
||||||
|
|
||||||
rel_list = ['..'] * (len(start_list)-i) + path_list[i:]
|
|
||||||
if not rel_list:
|
|
||||||
return start
|
|
||||||
return os.path.join(*rel_list)
|
|
||||||
|
|
||||||
|
|
||||||
def unique_list(seq):
|
def unique_list(seq):
|
||||||
'''return a uniquified list in the same order as the existing list'''
|
'''return a uniquified list in the same order as the existing list'''
|
||||||
seen = {}
|
seen = {}
|
||||||
@ -286,7 +268,7 @@ def recursive_dirlist(dir, relbase, pattern=None):
|
|||||||
else:
|
else:
|
||||||
if pattern and not fnmatch.fnmatch(f, pattern):
|
if pattern and not fnmatch.fnmatch(f, pattern):
|
||||||
continue
|
continue
|
||||||
ret.append(os_path_relpath(f2, relbase))
|
ret.append(os.path.relpath(f2, relbase))
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
@ -476,7 +458,7 @@ def RECURSE(ctx, directory):
|
|||||||
# already done it
|
# already done it
|
||||||
return
|
return
|
||||||
visited_dirs.add(key)
|
visited_dirs.add(key)
|
||||||
relpath = os_path_relpath(abspath, ctx.path.abspath())
|
relpath = os.path.relpath(abspath, ctx.path.abspath())
|
||||||
if ctxclass in ['tmp', 'OptionsContext', 'ConfigurationContext', 'BuildContext']:
|
if ctxclass in ['tmp', 'OptionsContext', 'ConfigurationContext', 'BuildContext']:
|
||||||
return ctx.recurse(relpath)
|
return ctx.recurse(relpath)
|
||||||
if 'waflib.extras.compat15' in sys.modules:
|
if 'waflib.extras.compat15' in sys.modules:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
import os, datetime, fnmatch
|
import os, datetime, fnmatch
|
||||||
from waflib import Scripting, Utils, Options, Logs, Errors
|
from waflib import Scripting, Utils, Options, Logs, Errors
|
||||||
from waflib import ConfigSet, Context
|
from waflib import ConfigSet, Context
|
||||||
from samba_utils import LOCAL_CACHE, os_path_relpath
|
from samba_utils import LOCAL_CACHE
|
||||||
|
|
||||||
def run_task(t, k):
|
def run_task(t, k):
|
||||||
'''run a single build task'''
|
'''run a single build task'''
|
||||||
@ -24,7 +24,7 @@ def run_named_build_task(cmd):
|
|||||||
|
|
||||||
# cope with builds of bin/*/*
|
# cope with builds of bin/*/*
|
||||||
if os.path.islink(cmd):
|
if os.path.islink(cmd):
|
||||||
cmd = os_path_relpath(os.readlink(cmd), os.getcwd())
|
cmd = os.path.relpath(os.readlink(cmd), os.getcwd())
|
||||||
|
|
||||||
if cmd[0:12] == "bin/default/":
|
if cmd[0:12] == "bin/default/":
|
||||||
cmd = cmd[12:]
|
cmd = cmd[12:]
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
import os, re, subprocess
|
import os, re, subprocess
|
||||||
from waflib import Utils, Build, Options, Logs, Errors
|
from waflib import Utils, Build, Options, Logs, Errors
|
||||||
from waflib.Logs import debug
|
from waflib.Logs import debug
|
||||||
from samba_utils import TO_LIST, LOCAL_CACHE, get_tgt_list, os_path_relpath
|
from samba_utils import TO_LIST, LOCAL_CACHE, get_tgt_list
|
||||||
|
|
||||||
# these are the data structures used in symbols.py:
|
# these are the data structures used in symbols.py:
|
||||||
#
|
#
|
||||||
@ -617,7 +617,7 @@ def symbols_dupcheck(task, fail_on_error=False):
|
|||||||
build_library_dict(bld, tgt_list)
|
build_library_dict(bld, tgt_list)
|
||||||
for t in tgt_list:
|
for t in tgt_list:
|
||||||
if t.samba_type == 'BINARY':
|
if t.samba_type == 'BINARY':
|
||||||
binname = os_path_relpath(t.link_task.outputs[0].abspath(bld.env), os.getcwd())
|
binname = os.path.relpath(t.link_task.outputs[0].abspath(bld.env), os.getcwd())
|
||||||
symbols_dupcheck_binary(bld, binname, fail_on_error)
|
symbols_dupcheck_binary(bld, binname, fail_on_error)
|
||||||
|
|
||||||
|
|
||||||
|
@ -858,7 +858,7 @@ def INSTALL_WILDCARD(bld, destdir, pattern, chmod=MODE_644, flat=False,
|
|||||||
if trim_path:
|
if trim_path:
|
||||||
files2 = []
|
files2 = []
|
||||||
for f in files:
|
for f in files:
|
||||||
files2.append(os_path_relpath(f, trim_path))
|
files2.append(os.path.relpath(f, trim_path))
|
||||||
files = files2
|
files = files2
|
||||||
|
|
||||||
if exclude:
|
if exclude:
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
import os, sys
|
import os, sys
|
||||||
from waflib import Configure, Logs, Options, Utils, Context, Errors
|
from waflib import Configure, Logs, Options, Utils, Context, Errors
|
||||||
import wafsamba
|
import wafsamba
|
||||||
from samba_utils import os_path_relpath
|
|
||||||
from samba_utils import symlink
|
from samba_utils import symlink
|
||||||
from optparse import SUPPRESS_HELP
|
from optparse import SUPPRESS_HELP
|
||||||
|
|
||||||
@ -612,7 +611,7 @@ def build(bld):
|
|||||||
# give a more useful message if the source directory has moved
|
# give a more useful message if the source directory has moved
|
||||||
curdir = bld.path.abspath()
|
curdir = bld.path.abspath()
|
||||||
srcdir = bld.srcnode.abspath()
|
srcdir = bld.srcnode.abspath()
|
||||||
relpath = os_path_relpath(curdir, srcdir)
|
relpath = os.path.relpath(curdir, srcdir)
|
||||||
if relpath.find('../') != -1:
|
if relpath.find('../') != -1:
|
||||||
Logs.error('bld.path %s is not a child of %s' % (curdir, srcdir))
|
Logs.error('bld.path %s is not a child of %s' % (curdir, srcdir))
|
||||||
raise Errors.WafError('''The top source directory has moved. Please run distclean and reconfigure''')
|
raise Errors.WafError('''The top source directory has moved. Please run distclean and reconfigure''')
|
||||||
|
@ -769,7 +769,7 @@ def build(bld):
|
|||||||
continue
|
continue
|
||||||
mode = os.lstat(fl).st_mode & MODE_777
|
mode = os.lstat(fl).st_mode & MODE_777
|
||||||
if arg['trim_path']:
|
if arg['trim_path']:
|
||||||
fl = samba_utils.os_path_relpath(fl, arg['trim_path'])
|
fl = samba_utils.os.path.relpath(fl, arg['trim_path'])
|
||||||
arg['file_list'].append([fl, mode])
|
arg['file_list'].append([fl, mode])
|
||||||
|
|
||||||
def SUBDIR_MODE(path, trim_path=None):
|
def SUBDIR_MODE(path, trim_path=None):
|
||||||
|
@ -5,7 +5,7 @@ import os
|
|||||||
import optparse
|
import optparse
|
||||||
import textwrap
|
import textwrap
|
||||||
from waflib import Logs, Errors, Options, Build, Context
|
from waflib import Logs, Errors, Options, Build, Context
|
||||||
from samba_utils import EXPAND_VARIABLES, os_path_relpath
|
from samba_utils import EXPAND_VARIABLES
|
||||||
|
|
||||||
class SambaIndentedHelpFormatter (optparse.IndentedHelpFormatter):
|
class SambaIndentedHelpFormatter (optparse.IndentedHelpFormatter):
|
||||||
"""Format help with indented section bodies.
|
"""Format help with indented section bodies.
|
||||||
@ -425,7 +425,7 @@ def build(bld):
|
|||||||
bld.SAMBA_SUBSYSTEM('DYNCONFIG',
|
bld.SAMBA_SUBSYSTEM('DYNCONFIG',
|
||||||
'dynconfig.c',
|
'dynconfig.c',
|
||||||
deps='replace',
|
deps='replace',
|
||||||
public_headers=os_path_relpath(os.path.join(Context.launch_dir, version_header), bld.path.abspath()),
|
public_headers=os.path.relpath(os.path.join(Context.launch_dir, version_header), bld.path.abspath()),
|
||||||
header_path='samba',
|
header_path='samba',
|
||||||
cflags=cflags)
|
cflags=cflags)
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import os
|
import os
|
||||||
from samba_utils import os_path_relpath
|
|
||||||
|
|
||||||
def build_test_headers(task):
|
def build_test_headers(task):
|
||||||
'''symlink a header in the build tree'''
|
'''symlink a header in the build tree'''
|
||||||
@ -13,7 +12,7 @@ def build_test_headers(task):
|
|||||||
f.write('#include "%s"\n' % os.path.normpath(h))
|
f.write('#include "%s"\n' % os.path.normpath(h))
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
relpath1 = os_path_relpath(bld.srcnode.abspath(), bld.path.abspath())
|
relpath1 = os.path.relpath(bld.srcnode.abspath(), bld.path.abspath())
|
||||||
public_headers = []
|
public_headers = []
|
||||||
for h in bld.env.public_headers_list:
|
for h in bld.env.public_headers_list:
|
||||||
public_headers.append(os.path.join(relpath1, bld.env.build_public_headers, h))
|
public_headers.append(os.path.join(relpath1, bld.env.build_public_headers, h))
|
||||||
|
Loading…
Reference in New Issue
Block a user