debian: New automatic versioning from release tags
[senf.git] / SConstruct
index a190dcc..54a772c 100644 (file)
@@ -1,6 +1,6 @@
 # -*- python -*-
 
-import sys, glob, os.path, datetime, pwd, time, fnmatch
+import sys, glob, os.path, datetime, pwd, time, fnmatch, string
 sys.path.append('senfscons')
 import SENFSCons
 
@@ -28,7 +28,20 @@ def updateRevision(target, source, env):
         rev = rev[:-1]
     if 'm' in rev:
         rev = rev[:-1]
+    url = None
+    for line in os.popen("svn info"):
+        elts=line.split(':',1)
+        if elts[0] == 'URL':
+            url = elts[1].strip()
+    version = None
+    if '/tags/' in url:
+        version = url.rsplit('/',1)[-1].split('_',1)[0]
+        if version[0] not in string.digits:
+            version = None
+    if version is None:
+        version = '1:0r%s' % rev
     changelog = file('debian/changelog.template').read() % {
+        'version': version,
         'rev': rev,
         'user': pwd.getpwuid(os.getuid()).pw_gecos.split(',')[0].strip(),
         'date': time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()) }
@@ -129,7 +142,8 @@ def configFilesOpts(target, source, env, for_signature):
 
 env.Append(
    CPPPATH = [ '#/include' ],
-   LIBS = [ 'iberty', '$BOOSTREGEXLIB', '$BOOSTFSLIB' ],
+   LIBS = [ 'iberty', '$BOOSTREGEXLIB' ],
+   TEST_EXTRA_LIBS = [ '$BOOSTFSLIB' ],
    DOXY_XREF_TYPES = [ 'bug', 'fixme', 'todo', 'idea' ],
    DOXY_HTML_XSL = '#/doclib/html-munge.xsl',
    ENV = { 'TODAY' : str(datetime.date.today()),
@@ -137,6 +151,7 @@ env.Append(
            'LOGNAME' : logname, # needed by the debian build scripts
            'CONCURRENCY_LEVEL' : env.GetOption('num_jobs') or "1",
            'SCONS' : 1,
+           'PATH' : os.environ.get('PATH')
          },
    LOCAL_CONFIG_FILES = [ 'Doxyfile.local', 'SConfig', 'local_config.hh' ],
    CONFIG_FILES_OPTS = configFilesOpts,
@@ -215,7 +230,8 @@ env.Clean('all', [ os.path.join(path,f)
 PhonyTarget(env, 'deb', [
     checkLocalConf,
     updateRevision,
-    "$BUILDPACKAGE_COMMAND -tc",
+    "$BUILDPACKAGE_COMMAND",
+    "fakeroot ./debian/rules debclean"
 ])
 
 PhonyTarget(env, 'debsrc', [