[cig-commits] r18025 - cs/buildbot/trunk/buildbot/scripts
brad at geodynamics.org
brad at geodynamics.org
Thu Mar 3 12:55:23 PST 2011
Author: brad
Date: 2011-03-03 12:55:23 -0800 (Thu, 03 Mar 2011)
New Revision: 18025
Modified:
cs/buildbot/trunk/buildbot/scripts/packager.py
Log:
First attempt at revised packaging script.
Modified: cs/buildbot/trunk/buildbot/scripts/packager.py
===================================================================
--- cs/buildbot/trunk/buildbot/scripts/packager.py 2011-03-03 20:20:26 UTC (rev 18024)
+++ cs/buildbot/trunk/buildbot/scripts/packager.py 2011-03-03 20:55:23 UTC (rev 18025)
@@ -8,114 +8,48 @@
class PackingList(object):
def __init__(self, config, opSys, python):
- self.stripList = []
- stripList = self.stripList
+
+ binDirs = ["bin", "sbin"]
+ libDirs = ["lib", "libexec"]
+ miscDirs = ["conf", "etc", "include", "share"]
+ if platform.machine() == "x86 64":
+ libDirs.append("lib64")
- exe = ""
- if opSys == "win":
- exe = ".exe"
- libglob = "bin/*%s*.dll"
- elif opSys == "linux":
- libglob = "lib/lib%s*.so*"
- elif opSys == "darwin":
- libglob = "lib/lib%s*.dylib"
- else:
- sys.exit("unknown OS: " + opSys)
- self.exe = exe
+ self.directories = binDirs + libDirs + miscDirs
- self.directories = []
- for d in config.packaging.directories:
- self.directories.append(d)
-
self.programs = []
- for p in config.packaging.programs:
- p = "bin/" + p + exe
- stripList.append(p)
- self.programs.append(p)
+ for d in binDirs:
+ files = os.listdir(d)
+ for f in files:
+ self.programs.append(d+"/"+f)
+
+ self.programs = []
+ for d in binDirs:
+ files = os.listdir(d)
+ for f in files:
+ self.programs.append(d+"/"+f)
+ self.libraries = []
+ for d in libDirs:
+ files = os.listdir(d)
+ for f in files:
+ self.libraries.append(d+"/"+f)
+
+ self.misc = ["setup.sh"]
+ for d in miscDirs:
+ files = os.listdir(d)
+ for f in files:
+ self.misc.append(d+"/"+f)
+
+ # Scripts are application specific.
self.scripts = []
for s in config.packaging.scripts:
s = "bin/" + s
self.scripts.append(s)
- self.libraries = []
- petsc = None
- libraries = config.packaging.libraries[:]
- if opSys == "linux":
- libraries.extend(["stdc++", "gcc_s", "g2c",
- "gfortran", "f77blas", "cblas", "atlas" # x86_64
- ])
- if opSys == "darwin":
- libraries.extend(["stdc++", "gcc_s", "gfortran"])
- for l in libraries:
- if l == "mpi":
- l = "*mpich"
- for p in ["mpirun", "mpiexec"]: # mpirun is evil symlink
- p = "bin/" + p + exe
- self.programs.append(p)
- elif l == "petsc" or l == "petsc-dev":
- petsc = l
- continue
- if opSys == "win" and l == "*mpich":
- l = "lib/*mpich*.dll"
- else:
- l = libglob % l
- libs = glob(l)
- stripList.extend(libs)
- self.libraries.extend(libs)
- if petsc:
- petsc_arch = os.environ['PETSC_ARCH']
- petsc_arch_dir = "opt/" + petsc + "/" + petsc_arch
- if isdir(petsc_arch_dir):
- petsc_libglob = petsc_arch_dir + "/" + libglob
- else:
- # PETSc v2.3.3 and earlier
- petsc_libglob = ("opt/" + petsc + "/" +
- libglob.replace("/", "/" + petsc_arch + "/"))
- l = petsc_libglob % ""
- libs = glob(l)
- stripList.extend(libs)
- if opSys == "win":
- # Install DLLs under 'bin'.
- libs = [(dll, "bin") for dll in libs]
- self.libraries.extend(libs)
+ self.stripList = []
+ self.stripList.extend(self.libraries)
- self.misc = []
- for f in config.packaging.files:
- self.misc.append(f)
- if opSys == "darwin":
- # I couldn't get @executable_path working for Python
- # extension modules; hence, this hack.
- self.misc.append("setup.sh")
- elif opSys == "linux":
- # Brad wants this. Plus, RPATH doesn't seem to work on some systems.
- self.misc.append("setup.sh")
-
- self.python = []
-
- if config.packaging.python:
- # Unfortunately, this will include all site-packages... oh well.
- # Note that Windows has its own logic for including Python.
- self.directories.append("lib/" + python)
- if opSys == "linux":
- self.directories.append("include/" + python) # for distutils
- l = libglob % "python"
- libs = glob(l)
- self.libraries.extend(libs)
-
- else:
- # A better way to do site-packages.
- for p in config.packaging.python:
- p = "lib/" + python + "/site-packages/" + p
- # Here we use glob expansion b/c eggs make the actual
- # directory names hard to determine.
- entries = glob(p)
- for e in entries:
- if isfile(e):
- self.misc.append(e)
- else:
- self.directories.append(e)
-
cig = [("CIG", "cig", "http://www.geodynamics.org/")]
self.urls = cig + tupleUp(config.packaging.urls, 3)
@@ -132,8 +66,6 @@
def files(self):
for f in self.programs:
yield f
- for f in self.scripts:
- yield f
for f in self.libraries:
yield f
for f in self.misc:
More information about the CIG-COMMITS
mailing list