- support for additional filetypes from Windows builds

- handle cr/lf weirdness with git in Windows
This commit is contained in:
Mike Bonnet 2010-07-22 18:16:10 -04:00
parent ab33254a3d
commit 39f1c9d355
3 changed files with 10 additions and 3 deletions

View file

@ -7,11 +7,13 @@ INSERT INTO channels (name) VALUES ('vm');
insert into archivetypes (name, description, extensions) values ('exe', 'Windows executable', 'exe');
insert into archivetypes (name, description, extensions) values ('dll', 'Windows dynamic link library', 'dll');
insert into archivetypes (name, description, extensions) values ('lib', 'Windows import library', 'lib');
insert into archivetypes (name, description, extensions) values ('sys', 'Windows device driver', 'sys');
insert into archivetypes (name, description, extensions) values ('inf', 'Windows driver information file', 'inf');
insert into archivetypes (name, description, extensions) values ('cat', 'Windows catalog file', 'cat');
insert into archivetypes (name, description, extensions) values ('msi', 'Windows Installer package', 'msi');
insert into archivetypes (name, description, extensions) values ('pdb', 'Windows debug information', 'pdb');
insert into archivetypes (name, description, extensions) values ('oem', 'Windows driver oem file', 'oem');
-- flag to indicate that a build is a Windows build
CREATE TABLE win_builds (

View file

@ -692,11 +692,13 @@ insert into archivetypes (name, description, extensions) values ('tar', 'Tar fil
insert into archivetypes (name, description, extensions) values ('xml', 'XML files', 'xml');
insert into archivetypes (name, description, extensions) values ('exe', 'Windows executable', 'exe');
insert into archivetypes (name, description, extensions) values ('dll', 'Windows dynamic link library', 'dll');
insert into archivetypes (name, description, extensions) values ('lib', 'Windows import library', 'lib');
insert into archivetypes (name, description, extensions) values ('sys', 'Windows device driver', 'sys');
insert into archivetypes (name, description, extensions) values ('inf', 'Windows driver information file', 'inf');
insert into archivetypes (name, description, extensions) values ('cat', 'Windows catalog file', 'cat');
insert into archivetypes (name, description, extensions) values ('msi', 'Windows Installer package', 'msi');
insert into archivetypes (name, description, extensions) values ('pdb', 'Windows debug information', 'pdb');
insert into archivetypes (name, description, extensions) values ('oem', 'Windows driver oem file', 'oem');
-- Do we want to enforce a constraint that a build can only generate one
-- archive with a given name?

View file

@ -251,7 +251,7 @@ class SCM(object):
raise BuildError, 'Unknown SCM type: %s' % self.scmtype
# perform checkouts
ret, output = run(module_checkout_cmd, chdir=scmdir, logfile=logfile, fatal=True)
ret, output = run(module_checkout_cmd, chdir=scmdir, logfile=logfile)
log(output)
if ret:
raise BuildError, 'Error running %s checkout command "%s: %s"' % \
@ -260,7 +260,10 @@ class SCM(object):
if update_checkout_cmd:
# Currently only required for GIT checkouts
# Run the command in the directory the source was checked out into
ret, output = run(update_checkout_cmd, chdir=update_checkout_dir, logfile=logfile, fatal=True)
if self.scmtype.startswith('GIT'):
run(['git', 'config', 'core.autocrlf', 'true'], chdir=update_checkout_dir, logfile=logfile, fatal=True)
run(['git', 'config', 'core.safecrlf', 'true'], chdir=update_checkout_dir, logfile=logfile, fatal=True)
ret, output = run(update_checkout_cmd, chdir=update_checkout_dir, logfile=logfile)
log(output)
if ret:
raise BuildError, 'Error running %s update command "%s": %s' % \
@ -291,7 +294,7 @@ class WindowsBuild(object):
self.platform = conf.get('building', 'platform')
# buildrequires and provides are multi-valued (space-separated)
for entry in ('buildrequires', 'provides'):
setattr(self, entry, conf.get('building', entry).split())
setattr(self, entry, [e for e in conf.get('building', entry).split() if e])
# execute is multi-valued (newline-separated)
self.execute = [e.strip() for e in conf.get('building', 'execute').split('\n') if e]