waf Add DIST_BLACKLIST to list files that we cannot include in a release
authorAndrew Bartlett <abartlet@samba.org>
Fri, 28 May 2010 08:50:25 +0000 (18:50 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 28 May 2010 11:59:07 +0000 (21:59 +1000)
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

buildtools/wafsamba/samba_dist.py
source4/wscript

index 05865508149375c73107313dfe2d1167f2aac6e3..30e82620afdae83aa7a6f1db4bc29b8796150fab 100644 (file)
@@ -5,6 +5,7 @@ import Utils, os, sys, tarfile, stat, Scripting, Logs
 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'''
@@ -88,6 +89,7 @@ def dist(appname='',version=''):
     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 +108,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
@@ -124,4 +137,11 @@ def DIST_DIRS(dirs):
     if not dist_dirs:
         dist_dirs = dirs
 
+@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
index f018094f1c7d196fc498a5eb4ba87fb96a5dbe39..3645ad4788177b498a86db295e63d5b3c5911935 100644 (file)
@@ -15,6 +15,11 @@ 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.
+samba_dist.DIST_BLACKLIST('README Manifest Read-Manifest-Now Roadmap source3/ ' +
+                          'packaging/ docs-xml/ examples/ swat/ WHATSNEW.txt MAINTAINERS')
 # install in /usr/local/samba by default
 Options.default_prefix = '/usr/local/samba'