Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(305)

Side by Side Diff: tools/create_debian_packages.py

Issue 159003002: Add script to build Debian packages (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 #
3 # Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
4 # for details. All rights reserved. Use of this source code is governed by a
5 # BSD-style license that can be found in the LICENSE file.
6 #
7
8 # Script to build a Debian packages from a Dart tarball. The script
9 # will build a source package and a 32-bit (i386) and 64-bit (amd64)
10 # binary packages.
11
12 import sys
13 import tarfile
14 import subprocess
15 import utils
16
17 from os.path import join, exists, abspath
18 from shutil import copyfile
19
20 HOST_OS = utils.GuessOS()
21 HOST_CPUS = utils.GuessCpus()
22 DART_DIR = abspath(join(__file__, '..', '..'))
23
24 def RunBuildPackage(opt, cwd):
25 cmd = ['dpkg-buildpackage', '-j%d' % HOST_CPUS]
26 cmd.extend(opt)
27 pipe = subprocess.Popen(cmd,
kustermann 2014/02/10 18:04:48 It's not really a "pipe", maybe "process" would fi
Søren Gjesse 2014/02/11 10:21:57 Done.
28 stdout=subprocess.PIPE, stderr=subprocess.PIPE,
29 cwd=cwd)
30 (stdout, stderr) = pipe.communicate()
31 if pipe.returncode != 0:
32 raise Exception('Command \'%s\' failed: %s\nSTDOUT: %s' %
33 (' '.join(cmd), str(stderr), str(stdout)))
kustermann 2014/02/10 18:04:48 Are these str() conversions needed? Isn't it alrea
Søren Gjesse 2014/02/11 10:21:57 Removed (I copied the str() part from someplace el
34
35 def BuildDebianPackage():
36 version = utils.GetVersion()
37 builddir = join(DART_DIR, utils.GetBuildDir(HOST_OS, HOST_OS))
38 tarroot = 'dart-%s' % version
39 tarname = 'dart-%s.tar.gz' % version
40 tarball = join(builddir, tarname)
41 origtarball = join(builddir, 'dart_%s.orig.tar.gz' % version)
42 if not exists(join(builddir, tarball)):
43 print 'Source tarball not found'
44 return -1
45
46 copyfile(tarball, origtarball)
47
48 with tarfile.open(origtarball) as tar:
49 tar.extractall(path=builddir)
kustermann 2014/02/10 18:04:48 I'd actually prefer if you used a temporary direct
Søren Gjesse 2014/02/11 10:21:57 OK, changed
50
51 # Build source package.
52 print "Building source package"
53 RunBuildPackage(['-S', '-us', '-uc'], join(DART_DIR, builddir, tarroot));
kustermann 2014/02/10 18:04:48 I think you're constructing the wrong directory he
Søren Gjesse 2014/02/11 10:21:57 Absolutely - fixed. As os.path.join "restarts" whe
54
55 # Build 32-bit binary package.
56 print "Building i386 package"
57 RunBuildPackage(['-B', '-ai386', '-us', '-uc'],
58 join(DART_DIR, builddir, tarroot));
59
60 # Build 64-bit binary package.
61 print "Building amd64 package"
62 RunBuildPackage(['-B', '-aamd64', '-us', '-uc'],
63 join(DART_DIR, builddir, tarroot));
64
65 # Check the existence of the expected files.
66 debbase = 'dart_%s' % version
67 source_package = [
68 join(builddir, '%s-1.dsc' % debbase),
69 join(builddir, '%s.orig.tar.gz' % debbase),
70 join(builddir, '%s-1.debian.tar.gz' % debbase),
71 ]
72 i386_package = [
73 join(builddir, '%s-1_i386.deb' % debbase),
74 ]
75 amd64_package = [
76 join(builddir, '%s-1_amd64.deb' % debbase),
77 ]
78
79 for name in source_package:
80 assert exists(name)
81 for name in i386_package:
82 assert exists(name)
83 for name in amd64_package:
84 assert exists(name)
85
86 def Main():
87 if HOST_OS != 'linux':
88 print 'Debian build only supported on linux'
89 return -1
90
91 BuildDebianPackage()
92
93 if __name__ == '__main__':
94 sys.exit(Main())
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698