[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Fri May 28 05:59:39 MDT 2010


The branch, master has been updated
       via  e5fca6a... s4:build Don't automatically mark as 'not a git snapshot'.
       via  b088a27... s4:build use autotools for mkrelease.sh
       via  7ea7b23... waf Provide release signing capability in 'waf dist'
       via  708d6fc... s4:waf Exclude the autotools based build environment from a Samba4 release
       via  b50c006... waf Add DIST_BLACKLIST to list files that we cannot include in a release
       via  e5232bd... s4:kdc Remove special talloc_free of the ldb context
      from  d0e131e... s3-waf: Fix the smbclient build with libcap

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


- Log -----------------------------------------------------------------
commit e5fca6aebf1fdde230be09c0bec718b7a607e056
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Fri May 28 20:34:08 2010 +1000

    s4:build Don't automatically mark as 'not a git snapshot'.
    
    If we generate a tarball, it may well be a git snapshot - we will
    change the VERSION file if it really is a release.
    
    Andrew Bartlett

commit b088a275512634af0adefe632097846439e83f92
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Fri May 28 20:33:28 2010 +1000

    s4:build use autotools for mkrelease.sh
    
    The mkrelease.sh script only works with the autotools build.  However,
    it isn't recommended.
    
    Andrew Bartlett

commit 7ea7b23413f48325d1805fd2666757241eddc2e7
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Fri May 28 20:24:47 2010 +1000

    waf Provide release signing capability in 'waf dist'
    
    This helps ensure the release is signed correctly - the .tar file, not
    the .tar.gz must be signed, and it's easy to forget this.
    
    Andrew Bartlett

commit 708d6fc5b002fb781983dd6ca4bda6e59a3a6411
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Fri May 28 18:54:57 2010 +1000

    s4:waf Exclude the autotools based build environment from a Samba4 release

commit b50c006e203e313a836eb012548749948b515425
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Fri May 28 18:50:25 2010 +1000

    waf Add DIST_BLACKLIST to list files that we cannot include in a release
    
    This currently includes the source3 directory for Samba4 releases (per
    past practice in mkrelease.sh), but also could include things like
    DFSG-unfree RFC files in the future.
    
    Andrew Barltett

commit e5232bdc69af45f15bc8fd95745276018f5961be
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue May 25 19:54:24 2010 +1000

    s4:kdc Remove special talloc_free of the ldb context
    
    I can see no reason not to just let this go with the talloc tree that
    created it, and avoid a talloc_free with references.
    
    Andrew Bartlett

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

Summary of changes:
 buildtools/wafsamba/samba_dist.py |   56 ++++++++++++++++++++++++++++++++++--
 buildtools/wafsamba/wscript       |    8 +++++
 source4/kdc/hdb-samba4.c          |   10 ------
 source4/kdc/mit_samba.c           |    2 +-
 source4/script/mkrelease.sh       |    6 ++--
 source4/wscript                   |   11 +++++++
 6 files changed, 75 insertions(+), 18 deletions(-)


Changeset truncated at 500 lines:

diff --git a/buildtools/wafsamba/samba_dist.py b/buildtools/wafsamba/samba_dist.py
index 0586550..05c5aaa 100644
--- a/buildtools/wafsamba/samba_dist.py
+++ b/buildtools/wafsamba/samba_dist.py
@@ -1,10 +1,11 @@
 # customised version of 'waf dist' for Samba tools
 # uses git ls-files to get file lists
 
-import Utils, os, sys, tarfile, stat, Scripting, Logs
+import Utils, os, sys, tarfile, gzip, stat, Scripting, Logs, Options
 from samba_utils import *
 
 dist_dirs = None
+dist_blacklist = None
 
 def add_symlink(tar, fname, abspath, basedir):
     '''handle symlinks to directories that may move during packaging'''
@@ -85,9 +86,15 @@ def dist(appname='',version=''):
         sys.exit(1)
 
     dist_base = '%s-%s' % (appname, version)
-    dist_name = '%s.tar.gz' % (dist_base)
 
-    tar = tarfile.open(dist_name, 'w:gz')
+    if Options.options.SIGN_RELEASE:
+        dist_name = '%s.tar' % (dist_base)
+        tar = tarfile.open(dist_name, 'w')
+    else:
+        dist_name = '%s.tar.gz' % (dist_base)
+        tar = tarfile.open(dist_name, 'w:gz')
+
+    blacklist = dist_blacklist.split()
 
     for dir in dist_dirs.split():
         if dir.find(':') != -1:
@@ -106,6 +113,17 @@ def dist(appname='',version=''):
             abspath = os.path.join(srcdir, f)
             if dir != '.':
                 f = f[len(dir)+1:]
+
+            # Remove files in the blacklist
+            if f in dist_blacklist:
+                continue
+            blacklisted = False
+            # Remove directories in the blacklist
+            for d in blacklist:
+                if f.startswith(d):
+                    blacklisted = True
+            if blacklisted:
+                continue
             if destdir != '.':
                 f = destdir + '/' + f
             fname = dist_base + '/' + f
@@ -113,7 +131,30 @@ def dist(appname='',version=''):
 
     tar.close()
 
-    Logs.info('Created %s' % dist_name)
+    if Options.options.SIGN_RELEASE:
+        try:
+            os.unlink(dist_name + '.asc')
+        except OSError:
+            pass
+
+        cmd = "gpg --detach-sign --armor " + dist_name
+        os.system(cmd)
+        uncompressed_tar = open(dist_name, 'rb')
+        compressed_tar = gzip.open(dist_name + '.gz', 'wb')
+        while 1:
+            buffer = uncompressed_tar.read(1048576)
+            if buffer:
+                compressed_tar.write(buffer)
+            else:
+                break
+        uncompressed_tar.close()
+        compressed_tar.close()
+        os.unlink(dist_name)
+        Logs.info('Created %s.gz %s.asc' % (dist_name, dist_name))
+        dist_name = dist_name + '.gz'
+    else:
+        Logs.info('Created %s' % dist_name)
+
     return dist_name
 
 
@@ -124,4 +165,11 @@ def DIST_DIRS(dirs):
     if not dist_dirs:
         dist_dirs = dirs
 
+ at conf
+def DIST_BLACKLIST(blacklist):
+    '''set the directories to package, relative to top srcdir'''
+    global dist_blacklist
+    if not dist_blacklist:
+        dist_blacklist = blacklist
+
 Scripting.dist = dist
diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
index 7bb2baa..bad65ca 100644
--- a/buildtools/wafsamba/wscript
+++ b/buildtools/wafsamba/wscript
@@ -130,6 +130,14 @@ def set_options(opt):
 		   help=SUPPRESS_HELP,
 		   action='store_true', dest='AUTOCONF_DISABLE_DEPENDENCY_TRACKING', default=False)
 
+    gr = opt.option_group('dist options')
+    gr.add_option('--sign-release',
+                   help='sign the release tarball created by waf dist',
+                   action='store_true', dest='SIGN_RELEASE')
+    gr.add_option('--tag',
+                   help='tag release in git at the same time',
+                   type='string', action='store', dest='TAG_RELEASE')
+
 
 @wafsamba.runonce
 def configure(conf):
diff --git a/source4/kdc/hdb-samba4.c b/source4/kdc/hdb-samba4.c
index f91eeb4..6534dbd 100644
--- a/source4/kdc/hdb-samba4.c
+++ b/source4/kdc/hdb-samba4.c
@@ -119,16 +119,6 @@ static krb5_error_code hdb_samba4_nextkey(krb5_context context, HDB *db, unsigne
 
 static krb5_error_code hdb_samba4_destroy(krb5_context context, HDB *db)
 {
-	struct samba_kdc_db_context *kdc_db_ctx;
-
-	kdc_db_ctx = talloc_get_type_abort(db->hdb_db,
-					   struct samba_kdc_db_context);
-
-	if (kdc_db_ctx) {
-		talloc_free(kdc_db_ctx->samdb);
-		kdc_db_ctx->samdb = NULL;
-	}
-
 	talloc_free(db);
 	return 0;
 }
diff --git a/source4/kdc/mit_samba.c b/source4/kdc/mit_samba.c
index 7718e56..cb1284c 100644
--- a/source4/kdc/mit_samba.c
+++ b/source4/kdc/mit_samba.c
@@ -98,7 +98,7 @@ static int mit_samba_context_init(struct mit_samba_context **_ctx)
 	cli_credentials_set_kerberos_state(ctx->session_info->credentials,
 					   CRED_DONT_USE_KERBEROS);
 
-	ctx->db_ctx->samdb = samdb_connect(ctx,
+	ctx->db_ctx->samdb = samdb_connect(ctx->db_ctx,
 					   ctx->db_ctx->ev_ctx,
 					   ctx->db_ctx->lp_ctx,
 					   ctx->session_info);
diff --git a/source4/script/mkrelease.sh b/source4/script/mkrelease.sh
index 303dfe6..6fc1771 100755
--- a/source4/script/mkrelease.sh
+++ b/source4/script/mkrelease.sh
@@ -6,17 +6,17 @@ if [ ! -d ".git" -o `dirname $0` != "./source4/script" ]; then
 	exit 1
 fi
 
+echo "WARNING:  This script prepares an autotools based release, which has known problems!"
+
 OUTDIR=`mktemp -d samba-XXXXX`
 (git archive --format=tar HEAD | (cd $OUTDIR/ && tar xf -))
 
-echo SAMBA_VERSION_IS_GIT_SNAPSHOT=no >> $OUTDIR/source4/VERSION
-
 #Prepare the tarball for a Samba4 release, with some generated files,
 #but without Samba3 stuff (to avoid confusion)
 ( cd $OUTDIR/ || exit 1
  rm -rf README Manifest Read-Manifest-Now Roadmap source3 packaging docs-xml examples swat WHATSNEW.txt MAINTAINERS || exit 1
  cd source4 || exit 1
- ./autogen.sh || exit 1
+ ./autogen-autotools.sh || exit 1
  ./configure || exit 1
  make dist  || exit 1
 ) || exit 1
diff --git a/source4/wscript b/source4/wscript
index f018094..5d6392c 100644
--- a/source4/wscript
+++ b/source4/wscript
@@ -15,6 +15,17 @@ VERSION=version.STRING
 
 samba_dist.DIST_DIRS('.')
 
+#This is a list of files that we don't want in the package, for
+#whatever reason.  Directories should be listed with a trailing / to
+#avoid over-exclusion.
+
+#This list includes files that would confuse the recipient of a
+#samba-4.0.0 branded tarball (until the merge is complete) and the
+#core elements of the autotools build system (which is known to
+#produce buggy binaries).
+samba_dist.DIST_BLACKLIST('README Manifest Read-Manifest-Now Roadmap source3/ ' +
+                          'packaging/ docs-xml/ examples/ swat/ WHATSNEW.txt MAINTAINERS ' +
+                          'source4/autogen-autotools.sh source4/Makefile.in source4/configure.ac')
 # install in /usr/local/samba by default
 Options.default_prefix = '/usr/local/samba'
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list