if os.path.exists('debian'): raise Exception('debian folder already exists?')
os.mkdir('debian')
os.mkdir('debian/source')
- if not os.path.exists(debDir): os.mkdir(debDir)
+ if not os.path.exists(debDir): os.makedirs(debDir)
# source format file
with open('debian/source/format', 'w') as f:
print >>f, "3.0 (native)"
writeDependency(f, "Depends", ["${shlibs:Depends}", "${misc:Depends}"] + config.get('binaryDepends', []))
writeDependency(f, "Recommends", config.get('binaryRecommends', []))
writeDependency(f, "Provides", config.get('binaryProvides', [sourceName]))
+ writeDependency(f, "Conflicts", config.get('binaryConflicts', []))
print >>f, "Description:",sourceName,"(auto-debuild)"
print >>f, " Package auto-generated by auto-debuild."
files.append(os.path.join(debDir, "%s_%s_%s.deb" % (binaryName, version, arch)))
if line.startswith('/'): # a file from within the package, not from the source tree
line = 'debian/'+binaryName+line
print >>f, line
+ # maintainer scripts for alternatives
+ if 'alternatives' in config:
+ with open('debian/'+binaryName+'.postinst', 'w') as f:
+ print >>f, "#!/bin/sh"
+ print >>f, "set -e"
+ print >>f, 'if [ "$1" = "configure" ]; then'
+ for alternative in config['alternatives']:
+ print >>f, safeCall('update-alternatives', '--install', alternative['link'], alternative['name'], alternative['target'],
+ str(alternative['priority']))
+ print >>f, 'fi'
+ print >>f, ''
+ print >>f, '#DEBHELPER#'
+ print >>f, ''
+ print >>f, 'exit 0'
+ with open('debian/'+binaryName+'.prerm', 'w') as f:
+ print >>f, "#!/bin/sh"
+ print >>f, "set -e"
+ print >>f, 'if [ "$1" = "remove" ]; then'
+ for alternative in config['alternatives']:
+ print >>f, safeCall('update-alternatives', '--remove', alternative['name'], alternative['target'])
+ print >>f, 'fi'
+ print >>f, ''
+ print >>f, '#DEBHELPER#'
+ print >>f, ''
+ print >>f, 'exit 0'
# rules file: build system specific
with open('debian/rules', 'w') as f:
# get rule file for build system: may only touch auto_config and auto_clean rules and the dh options