[SCM] Samba Shared Repository - branch master updated

Andrew Tridgell tridge at samba.org
Fri Apr 9 05:13:40 MDT 2010


The branch, master has been updated
       via  45d3ac0... build: use Logs.error() and Logs.info() instead of print()
       via  d661759... build: nicer error message on missing file in waf dist
      from  a591b84... s4-waf: added --gdbtest option for waf test

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 45d3ac05b3781a8c14e7f4426a515746e9a99172
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Apr 9 21:12:02 2010 +1000

    build: use Logs.error() and Logs.info() instead of print()
    
    this gives appropriate colors on output, and ensures it works with
    compiler output

commit d661759780d70c771c3748095db5a5308451266d
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Apr 9 21:00:49 2010 +1000

    build: nicer error message on missing file in waf dist

-----------------------------------------------------------------------

Summary of changes:
 buildtools/wafsamba/samba_autoconf.py |    6 +++---
 buildtools/wafsamba/samba_bundled.py  |    5 +++--
 buildtools/wafsamba/samba_deps.py     |   23 ++++++++++++-----------
 buildtools/wafsamba/samba_dist.py     |   14 +++++++++-----
 buildtools/wafsamba/samba_utils.py    |   12 ++++++------
 buildtools/wafsamba/wafsamba.py       |    4 ++--
 6 files changed, 35 insertions(+), 29 deletions(-)


Changeset truncated at 500 lines:

diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py
index 4731a4e..fcd900d 100644
--- a/buildtools/wafsamba/samba_autoconf.py
+++ b/buildtools/wafsamba/samba_autoconf.py
@@ -1,6 +1,6 @@
 # a waf tool to add autoconf-like macros to the configure section
 
-import Build, os, Options, preproc
+import Build, os, Options, preproc, Logs
 import string
 from Configure import conf
 from samba_utils import *
@@ -456,7 +456,7 @@ def CHECK_LIB(conf, libs, mandatory=False, empty_decl=True):
 
         if not conf.check(lib=lib, uselib_store=lib, ccflags=ccflags, ldflags=ldflags):
             if mandatory:
-                print("Mandatory library '%s' not found for functions '%s'" % (lib, list))
+                Logs.error("Mandatory library '%s' not found for functions '%s'" % (lib, list))
                 sys.exit(1)
             if empty_decl:
                 # if it isn't a mandatory library, then remove it from dependency lists
@@ -511,7 +511,7 @@ def CHECK_FUNCS_IN(conf, list, library, mandatory=False, checklibc=False,
     for lib in liblist[:]:
         if not GET_TARGET_TYPE(conf, lib) == 'SYSLIB':
             if mandatory:
-                print("Mandatory library '%s' not found for functions '%s'" % (lib, list))
+                Logs.error("Mandatory library '%s' not found for functions '%s'" % (lib, list))
                 sys.exit(1)
             # if it isn't a mandatory library, then remove it from dependency lists
             liblist.remove(lib)
diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py
index e0a8e54..bab4143 100644
--- a/buildtools/wafsamba/samba_bundled.py
+++ b/buildtools/wafsamba/samba_bundled.py
@@ -1,6 +1,7 @@
 # functions to support bundled libraries
 
 from Configure import conf
+import Logs
 from samba_utils import *
 
 def BUNDLED_NAME(bld, name, bundled_extension):
@@ -78,7 +79,7 @@ def CHECK_BUNDLED_SYSTEM(conf, libname, minversion='0.0.0',
             f = 'FOUND_SYSTEM_%s' % syslib
             if not f in conf.env:
                 if 'NONE' in conf.env.BUNDLED_LIBS or '!'+libname in conf.env.BUNDLED_LIBS:
-                    print('ERROR: Use of system library %s depends on missing system library %s' % (libname, syslib))
+                    Logs.error('ERROR: Use of system library %s depends on missing system library %s' % (libname, syslib))
                     sys.exit(1)
                 conf.env[found] = False
                 return False
@@ -103,6 +104,6 @@ def CHECK_BUNDLED_SYSTEM(conf, libname, minversion='0.0.0',
             return True
     conf.env[found] = False
     if 'NONE' in conf.env.BUNDLED_LIBS or '!'+libname in conf.env.BUNDLED_LIBS:
-        print('ERROR: System library %s of version %s not found, and bundling disabled' % (libname, minversion))
+        Logs.error('ERROR: System library %s of version %s not found, and bundling disabled' % (libname, minversion))
         sys.exit(1)
     return False
diff --git a/buildtools/wafsamba/samba_deps.py b/buildtools/wafsamba/samba_deps.py
index 452120d..232ed34 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 Build, os, re, Environment
+import Build, os, re, Environment, Logs
 from samba_utils import *
 from samba_autoconf import *
 from samba_bundled import BUILTIN_LIBRARY
@@ -17,7 +17,7 @@ def TARGET_ALIAS(bld, target, alias):
     '''define an alias for a target name'''
     cache = LOCAL_CACHE(bld, 'TARGET_ALIAS')
     if alias in cache:
-        print("Target alias %s already set to %s : newalias %s" % (alias, cache[alias], target))
+        Logs.error("Target alias %s already set to %s : newalias %s" % (alias, cache[alias], target))
         sys.exit(1)
     cache[alias] = target
 Build.BuildContext.TARGET_ALIAS = TARGET_ALIAS
@@ -258,7 +258,7 @@ def check_duplicate_sources(bld, tgt_list):
                 if s['dep'] == s2['dep']: continue
                 common = s['src'].intersection(s2['src'])
                 if common.difference(seen):
-                    print("Target %s has duplicate source files in %s and %s : %s" % (t.sname,
+                    Logs.error("Target %s has duplicate source files in %s and %s : %s" % (t.sname,
                                                                                       s['dep'], s2['dep'],
                                                                                       common))
                     seen = seen.union(common)
@@ -279,7 +279,7 @@ def check_orpaned_targets(bld, tgt_list):
         type = target_dict[t.sname]
         if not type in ['BINARY', 'LIBRARY', 'MODULE', 'ET', 'PYTHON']:
             if re.search('^PIDL_', t.sname) is None:
-                print("Target %s of type %s is unused by any other target" % (t.sname, type))
+                Logs.warn("Target %s of type %s is unused by any other target" % (t.sname, type))
 
 
 def show_final_deps(bld, tgt_list):
@@ -328,7 +328,7 @@ def build_direct_deps(bld, tgt_list):
             d = EXPAND_ALIAS(bld, d)
             if d == t.sname: continue
             if not d in targets:
-                print("Unknown dependency %s in %s" % (d, t.sname))
+                Logs.error("Unknown dependency %s in %s" % (d, t.sname))
                 sys.exit(1)
             if targets[d] in [ 'EMPTY', 'DISABLED' ]:
                 continue
@@ -343,7 +343,8 @@ def build_direct_deps(bld, tgt_list):
                 continue
             t2 = bld.name_to_obj(d, bld.env)
             if t2 is None:
-                print("no task %s type %s" % (d, targets[d]))
+                Logs.error("no task %s of type %s in %s" % (d, targets[d], t.sname))
+                sys.exit(1)
             if t2.samba_type in [ 'LIBRARY', 'MODULE' ]:
                 t.direct_libs.add(d)
             elif t2.samba_type in [ 'SUBSYSTEM', 'ASN1', 'PYTHON' ]:
@@ -665,7 +666,7 @@ def calculate_final_deps(bld, tgt_list, loops):
     while reduce_objects(bld, tgt_list):
         count += 1
         if count > 100:
-            print("WARNING: Unable to remove all inter-target object duplicates")
+            Logs.warn("WARNING: Unable to remove all inter-target object duplicates")
             break
     debug('deps: Object reduction took %u iterations', count)
 
@@ -822,7 +823,7 @@ def check_project_rules(bld):
             continue
         t = bld.name_to_obj(tgt, bld.env)
         if t is None:
-            print("Target %s of type %s has no task generator" % (tgt, type))
+            Logs.error("Target %s of type %s has no task generator" % (tgt, type))
             sys.exit(1)
         tgt_list.append(t)
 
@@ -831,7 +832,7 @@ def check_project_rules(bld):
     if load_samba_deps(bld, tgt_list):
         return
 
-    print("Checking project rules ...")
+    Logs.info("Checking project rules ...")
 
     debug('deps: project rules checking started')
 
@@ -850,7 +851,7 @@ def check_project_rules(bld):
     #check_orpaned_targets(bld, tgt_list)
 
     if not check_duplicate_sources(bld, tgt_list):
-        print("Duplicate sources present - aborting")
+        Logs.error("Duplicate sources present - aborting")
         sys.exit(1)
 
     show_final_deps(bld, tgt_list)
@@ -860,7 +861,7 @@ def check_project_rules(bld):
 
     save_samba_deps(bld, tgt_list)
 
-    print("Project rules pass")
+    Logs.info("Project rules pass")
 
 
 def CHECK_PROJECT_RULES(bld):
diff --git a/buildtools/wafsamba/samba_dist.py b/buildtools/wafsamba/samba_dist.py
index b4a6cbb..aea45c5 100644
--- a/buildtools/wafsamba/samba_dist.py
+++ b/buildtools/wafsamba/samba_dist.py
@@ -1,14 +1,18 @@
 # customised version of 'waf dist' for Samba tools
 # uses git ls-files to get file lists
 
-import Utils, os, sys, tarfile, stat, Scripting
+import Utils, os, sys, tarfile, stat, Scripting, Logs
 from samba_utils import *
 
 dist_dirs = None
 
 def add_tarfile(tar, fname, abspath):
     '''add a file to the tarball'''
-    tinfo = tar.gettarinfo(name=abspath, arcname=fname)
+    try:
+        tinfo = tar.gettarinfo(name=abspath, arcname=fname)
+    except OSError:
+        Logs.error('Unable to find file %s - missing from git checkout?' % abspath)
+        sys.exit(1)
     tinfo.uid   = 0
     tinfo.gid   = 0
     tinfo.uname = 'root'
@@ -29,7 +33,7 @@ def dist(appname='',version=''):
     srcdir = os.path.normpath(os.path.join(os.path.dirname(Utils.g_module.root_path), Utils.g_module.srcdir))
 
     if not dist_dirs:
-        print('You must use samba_dist.DIST_DIRS() to set which directories to package')
+        Logs.error('You must use samba_dist.DIST_DIRS() to set which directories to package')
         sys.exit(1)
 
     dist_base = '%s-%s' % (appname, version)
@@ -48,7 +52,7 @@ def dist(appname='',version=''):
         try:
             files = Utils.cmd_output(git_cmd).split()
         except:
-            print('git command failed: %s' % ' '.join(git_cmd))
+            Logs.error('git command failed: %s' % ' '.join(git_cmd))
             sys.exit(1)
         for f in files:
             abspath = os.path.join(srcdir, f)
@@ -61,7 +65,7 @@ def dist(appname='',version=''):
 
     tar.close()
 
-    print('Created %s' % dist_name)
+    Logs.info('Created %s' % dist_name)
     return dist_name
 
 
diff --git a/buildtools/wafsamba/samba_utils.py b/buildtools/wafsamba/samba_utils.py
index 1df70fd..8016da4 100644
--- a/buildtools/wafsamba/samba_utils.py
+++ b/buildtools/wafsamba/samba_utils.py
@@ -1,7 +1,7 @@
 # a waf tool to add autoconf-like macros to the configure section
 # and for SAMBA_ macros for building libraries, binaries etc
 
-import Build, os, sys, Options, Utils, Task, re, fnmatch
+import Build, os, sys, Options, Utils, Task, re, fnmatch, Logs
 from TaskGen import feature, before
 from Configure import conf
 from Logs import debug
@@ -102,7 +102,7 @@ def LOCAL_CACHE_SET(ctx, cachename, key, value):
 def ASSERT(ctx, expression, msg):
     '''a build assert call'''
     if not expression:
-        sys.stderr.write("ERROR: %s\n" % msg)
+        Logs.error("ERROR: %s\n" % msg)
         raise AssertionError
 Build.BuildContext.ASSERT = ASSERT
 
@@ -220,7 +220,7 @@ def subst_vars_error(string, env):
         if re.match('\$\{\w+\}', v):
             vname = v[2:-1]
             if not vname in env:
-                print("Failed to find variable %s in %s" % (vname, string))
+                Logs.error("Failed to find variable %s in %s" % (vname, string))
                 sys.exit(1)
             v = env[vname]
         out.append(v)
@@ -338,7 +338,7 @@ def EXPAND_VARIABLES(ctx, varstr, vars=None):
     # make sure there is nothing left. Also check for the common
     # typo of $( instead of ${
     if ret.find('${') != -1 or ret.find('$(') != -1:
-        print('Failed to substitute all variables in varstr=%s' % ret)
+        Logs.error('Failed to substitute all variables in varstr=%s' % ret)
         sys.exit(1)
     return ret
 Build.BuildContext.EXPAND_VARIABLES = EXPAND_VARIABLES
@@ -356,7 +356,7 @@ def RUN_COMMAND(cmd,
         return os.WEXITSTATUS(status)
     if os.WIFSIGNALED(status):
         return - os.WTERMSIG(status)
-    print("Unknown exit reason %d for command: %s" (status, cmd))
+    Logs.error("Unknown exit reason %d for command: %s" (status, cmd))
     return -1
 
 
@@ -434,7 +434,7 @@ def RECURSE(ctx, directory):
         return ctx.sub_config(relpath)
     if ctxclass == 'BuildContext':
         return ctx.add_subdirs(relpath)
-    print('Unknown RECURSE context class', ctxclass)
+    Logs.error('Unknown RECURSE context class', ctxclass)
     raise
 Options.Handler.RECURSE = RECURSE
 Build.BuildContext.RECURSE = RECURSE
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index 08d3d20..e2d8052 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -625,8 +625,8 @@ def subst_at_vars(task):
             if not vname in task.env and vname.upper() in task.env:
                 vname = vname.upper()
             if not vname in task.env:
-                print("Unknown substitution %s in %s" % (v, task.name))
-                raise
+                Logs.error("Unknown substitution %s in %s" % (v, task.name))
+                sys.exit(1)
             v = SUBST_VARS_RECURSIVE(task.env[vname], task.env)
             # now we back substitute the allowed pc vars
             for (b, m) in back_sub:


-- 
Samba Shared Repository


More information about the samba-cvs mailing list