[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Tue Jan 5 11:22:04 UTC 2016


The branch, master has been updated
       via  ff94a01 travis: Add metadata file for the Travis CI Open Source cloud build/test service
       via  05c3481 autobuild: Use make -j on samba-libs/samba-static build as well
       via  af89d18 autobuild: Put the static build in another stanza
       via  cce1612 autobuild: Use cp --recursive --link --archive
       via  9a91fce autobuild: Give a clearer failure message
      from  d60465c build:wafsamba: Use the upstream version of gccdeps

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


- Log -----------------------------------------------------------------
commit ff94a01e19604ae6275672e70edd25121df79bbf
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon May 4 13:44:45 2015 +1200

    travis: Add metadata file for the Travis CI Open Source cloud build/test service
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    
    Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
    Autobuild-Date(master): Tue Jan  5 12:21:40 CET 2016 on sn-devel-144

commit 05c34810a8184a67d2836fcae51ec8de8c4a46fc
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Oct 22 14:57:10 2015 +1300

    autobuild: Use make -j on samba-libs/samba-static build as well
    
    We need this build to be fast when split out as a seperate VM
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

commit af89d18c141b2ea15cd661860db087bc40c0ec20
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Oct 22 10:35:47 2015 +1300

    autobuild: Put the static build in another stanza
    
    This will allow it to run on a different VM in travis-ci and so keep
    us below the 50min limit.
    
    Because we do not rebuild the libs (and real world static builds are
    likely to have internal libs), this changes us to build them
    internally.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

commit cce16123feedfbf0e325182c6e301377d8a60749
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jan 4 14:20:54 2016 +1300

    autobuild: Use cp --recursive --link --archive
    
    This works on waf based builds as source files are not modified during the build
    
    TODO: In order to make sure build doesn't influence each other,
    we need to add something like:
    
             try:
                 if options.rebase is not None:
                     rebase_tree(options.rebase, rebase_branch=options.branch)
    +            run_cmd("find -type f | xargs chmod -w", show=True, dir=test_master)
             except Exception:
    
    But that means we need to change the way 'make distcheck' works for the
    standalone libraries.
    
    For now this will help to reduce the (mem)disk usage of an autobuild a lot.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

commit 9a91fce2deccfe0445363b2a35f2cfb72fdff766
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Oct 21 14:35:33 2015 +1300

    autobuild: Give a clearer failure message
    
    This helps when autobuild.py is used in --tail mode and
    where there is neither e-mail nor access to the logs.tar.gz
    
    Working back to find where the error happened is typically
    quite difficult, as many failures are actually due to the
    cleanup.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

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

Summary of changes:
 .travis.yml         | 31 +++++++++++++++++++++++++++++++
 script/autobuild.py | 51 +++++++++++++++++++++++++++++++++++++--------------
 2 files changed, 68 insertions(+), 14 deletions(-)
 create mode 100644 .travis.yml


Changeset truncated at 500 lines:

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..9d12665
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,31 @@
+language: c
+dist: trusty
+
+sudo: true
+
+cache: ccache
+
+# Everything except samba and ctdb (long tests)
+env:
+  - TASK=samba-xc
+  - TASK=samba-ctdb
+  - TASK=samba-libs
+  - TASK=samba-static
+  - TASK=ldb
+  - TASK=tdb
+  - TASK=talloc
+  - TASK=replace
+  - TASK=tevent
+  - TASK=pidl
+
+# Fail everything after the first job fails
+matrix:
+  fast_finish: true
+
+before_install:
+ - sudo apt-get update -qq
+ - sudo apt-get install --assume-yes screen git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev libpam0g-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl bison debhelper docbook-xml docbook-xsl flex libaio-dev libbsd-dev libcap-dev libcups2-dev libncurses5-dev libpam0g-dev libpopt-dev libreadline-dev perl perl-modules libparse-yapp-perl pkg-config python-all-dev python-dnspython xsltproc zlib1g-dev autoconf
+
+script:
+ - git fetch --unshallow
+ - ./script/autobuild.py --tail --testbase=/tmp $TASK
diff --git a/script/autobuild.py b/script/autobuild.py
index 2d3af2a..9f0d893 100755
--- a/script/autobuild.py
+++ b/script/autobuild.py
@@ -26,6 +26,7 @@ builddirs = {
     "samba-xc" : ".",
     "samba-ctdb" : ".",
     "samba-libs"  : ".",
+    "samba-static"  : ".",
     "ldb"     : "lib/ldb",
     "tdb"     : "lib/tdb",
     "talloc"  : "lib/talloc",
@@ -37,7 +38,7 @@ builddirs = {
     "retry"   : "."
     }
 
-defaulttasks = [ "ctdb", "samba", "samba-xc", "samba-ctdb", "samba-libs", "ldb", "tdb", "talloc", "replace", "tevent", "pidl" ]
+defaulttasks = [ "ctdb", "samba", "samba-xc", "samba-ctdb", "samba-libs", "samba-static", "ldb", "tdb", "talloc", "replace", "tevent", "pidl" ]
 
 samba_configure_params = " --picky-developer ${PREFIX} --with-profiling-data"
 
@@ -121,22 +122,23 @@ tasks = {
                       # retry with all modules shared
                       ("allshared-distclean", "make distclean", "text/plain"),
                       ("allshared-configure", samba_libs_configure_samba + " --with-shared-modules=ALL", "text/plain"),
-                      ("allshared-make", "make", "text/plain"),
+                      ("allshared-make", "make -j", "text/plain")],
 
-                      # retry with all modules static
-                      ("allstatic-distclean", "make distclean", "text/plain"),
-                      ("allstatic-configure", samba_libs_configure_samba + " --with-static-modules=ALL", "text/plain"),
-                      ("allstatic-make", "make", "text/plain"),
+    "samba-static" : [
+                      ("random-sleep", "script/random-sleep.sh 60 600", "text/plain"),
+                      # build with all modules static
+                      ("allstatic-configure", "./configure.developer " + samba_configure_params + " --with-static-modules=ALL", "text/plain"),
+                      ("allstatic-make", "make -j", "text/plain"),
 
                       # retry without any required modules
                       ("none-distclean", "make distclean", "text/plain"),
-                      ("none-configure", samba_libs_configure_samba + " --with-static-modules=!FORCED,!DEFAULT --with-shared-modules=!FORCED,!DEFAULT", "text/plain"),
-                      ("none-make", "make", "text/plain"),
+                      ("none-configure", "./configure.developer " + samba_configure_params + " --with-static-modules=!FORCED,!DEFAULT --with-shared-modules=!FORCED,!DEFAULT", "text/plain"),
+                      ("none-make", "make -j", "text/plain"),
 
                       # retry with nonshared smbd and smbtorture
                       ("nonshared-distclean", "make distclean", "text/plain"),
-                      ("nonshared-configure", samba_libs_configure_base + " --bundled-libraries=talloc,tdb,pytdb,ldb,pyldb,tevent,pytevent --with-static-modules=ALL --nonshared-binary=smbtorture,smbd/smbd", "text/plain"),
-                      ("nonshared-make", "make", "text/plain")],
+                      ("nonshared-configure", "./configure.developer " + samba_configure_params + " --bundled-libraries=talloc,tdb,pytdb,ldb,pyldb,tevent,pytevent --with-static-modules=ALL --nonshared-binary=smbtorture,smbd/smbd", "text/plain"),
+                      ("nonshared-make", "make -j", "text/plain")],
 
     "ldb" : [
               ("random-sleep", "../../script/random-sleep.sh 60 600", "text/plain"),
@@ -220,7 +222,7 @@ def run_cmd(cmd, dir=".", show=None, output=False, checkfail=True):
 class builder(object):
     '''handle build of one directory'''
 
-    def __init__(self, name, sequence):
+    def __init__(self, name, sequence, cp=True):
         self.name = name
         self.dir = builddirs[name]
 
@@ -243,7 +245,10 @@ class builder(object):
         cleanup_list.append(self.prefix)
         os.makedirs(self.sdir)
         run_cmd("rm -rf %s" % self.sdir)
-        run_cmd("git clone --recursive --shared %s %s" % (test_master, self.sdir), dir=test_master, show=True)
+        if cp:
+            run_cmd("cp --recursive --link --archive %s %s" % (test_master, self.sdir), dir=test_master, show=True)
+        else:
+            run_cmd("git clone --recursive --shared %s %s" % (test_master, self.sdir), dir=test_master, show=True)
         self.start_next()
 
     def start_next(self):
@@ -282,7 +287,7 @@ class buildlist(object):
             os.environ['AUTOBUILD_RANDOM_SLEEP_OVERRIDE'] = '1'
 
         for n in tasknames:
-            b = builder(n, tasks[n])
+            b = builder(n, tasks[n], cp=n is not "pidl")
             self.tlist.append(b)
         if options.retry:
             rebase_remote = "rebaseon"
@@ -306,7 +311,7 @@ class buildlist(object):
                            ),
                            "test/plain" ) ]
 
-            self.retry = builder('retry', retry_task)
+            self.retry = builder('retry', retry_task, cp=False)
             self.need_retry = False
 
     def kill_kids(self):
@@ -720,6 +725,24 @@ blist.tarlogs("logs.tar.gz")
 if options.email is not None:
     email_failure(status, failed_task, failed_stage, failed_tag, errstr,
                   elapsed_time, log_base=options.log_base)
+else:
+    elapsed_minutes = elapsed_time / 60.0
+    print '''
+
+####################################################################
+
+AUTOBUILD FAILURE
+
+Your autobuild on %s failed after %.1f minutes
+when trying to test %s with the following error:
+
+   %s
+
+the autobuild has been abandoned. Please fix the error and resubmit.
+
+####################################################################
+
+''' % (platform.node(), elapsed_minutes, failed_task, errstr)
 
 cleanup()
 print(errstr)


-- 
Samba Shared Repository



More information about the samba-cvs mailing list