Merge branch 'master' of square-r00t.net:bdisk
This commit is contained in:
commit
481a3e4cf9
@ -19,7 +19,7 @@ def genGPG(conf):
|
||||
distkey = conf['src'][a]['gpgkey']
|
||||
if keysrv and (keysrv not in gpgkeyserver):
|
||||
gpgkeyserver.append(keysrv)
|
||||
if distkey not in distkeys:
|
||||
if distkey and(distkey not in distkeys):
|
||||
distkeys.append(distkey)
|
||||
templates_dir = '{0}/extra/templates'.format(build['basedir'])
|
||||
mykey = False
|
||||
@ -35,6 +35,7 @@ def genGPG(conf):
|
||||
if gpghome == '':
|
||||
# We'll generate a key if we can't find one here.
|
||||
gpghome = build['dlpath'] + '/.gnupg'
|
||||
killStaleAgent(conf)
|
||||
os.environ['GNUPGHOME'] = gpghome
|
||||
gpg = gpgme.Context()
|
||||
# do we need to add a keyserver?
|
||||
@ -116,13 +117,13 @@ def killStaleAgent(conf):
|
||||
# Kill off any stale GPG agents running.
|
||||
# Probably not even needed, but good to have.
|
||||
chrootdir = conf['build']['chrootdir']
|
||||
dlpath = conf['build']['dlpath']
|
||||
gpgpath = conf['gpg']['mygpghome']
|
||||
procs = psutil.process_iter()
|
||||
plst = []
|
||||
for p in procs:
|
||||
if (p.name() in ('gpg-agent', 'dirmngr') and p.uids()[0] == os.getuid()):
|
||||
pd = psutil.Process(p.pid).as_dict()
|
||||
for d in (chrootdir, dlpath):
|
||||
for d in (chrootdir, gpgpath):
|
||||
if pd['cwd'].startswith('{0}'.format(d)):
|
||||
plst.append(p.pid)
|
||||
if len(plst) >= 1:
|
||||
|
@ -28,7 +28,9 @@ def getConfig(conf_file='/etc/bdisk/build.ini'):
|
||||
conf = False
|
||||
# define some defailt conf paths in case we're installed by
|
||||
# a package manager. in order of the paths we should search.
|
||||
currentdir = os.path.abspath('{0}/../extra/dist.build.ini'.format(os.path.dirname(os.path.realpath(__file__))))
|
||||
currentdir = os.path.dirname(os.path.realpath(__file__))
|
||||
currentdir_user = os.path.abspath('{0}/../build.ini'.format(currentdir))
|
||||
currentdir_def = os.path.abspath('{0}/../extra/dist.build.ini'.format(currentdir))
|
||||
default_conf_paths = ['/etc/bdisk/build.ini',
|
||||
'/usr/share/bdisk/build.ini',
|
||||
'/usr/share/bdisk/extra/build.ini',
|
||||
@ -38,7 +40,7 @@ def getConfig(conf_file='/etc/bdisk/build.ini'):
|
||||
'/opt/dev/bdisk/build.ini',
|
||||
'/opt/dev/bdisk/extra/build.ini',
|
||||
'/opt/dev/bdisk/extra/dist.build.ini',
|
||||
currentdir]
|
||||
currentdir_user]
|
||||
# if we weren't given one/using the default...
|
||||
if conf_file == '/etc/bdisk/build.ini':
|
||||
if not os.path.isfile(conf_file):
|
||||
@ -48,7 +50,7 @@ def getConfig(conf_file='/etc/bdisk/build.ini'):
|
||||
break
|
||||
else:
|
||||
conf = conf_file
|
||||
defconf = '{0}/../extra/dist.build.ini'.format(os.path.dirname(os.path.realpath(__file__)))
|
||||
defconf = os.path.abspath('{0}/../extra/dist.build.ini'.format(os.path.dirname(os.path.realpath(__file__))))
|
||||
if not conf:
|
||||
# okay, so let's check for distributed/"blank" ini's
|
||||
# since we can't seem to find one.
|
||||
|
@ -60,14 +60,15 @@ srcdir = ${dlpath}/src
|
||||
prepdir = ${dlpath}/temp
|
||||
archboot = ${prepdir}/${bdisk:name}
|
||||
mountpt = /mnt/${bdisk:uxname}
|
||||
multiarch = yes
|
||||
#multiarch = yes
|
||||
multiarch = x86_64
|
||||
sign = yes
|
||||
ipxe =
|
||||
ipxe = no
|
||||
i_am_a_racecar = yes
|
||||
|
||||
[gpg]
|
||||
mygpgkey =
|
||||
mygpghome =
|
||||
mygpghome = ${build:dlpath}/.gnupg
|
||||
|
||||
[sync]
|
||||
http = no
|
||||
|
48
extra/modules/distro/TEMPLATE
Normal file
48
extra/modules/distro/TEMPLATE
Normal file
@ -0,0 +1,48 @@
|
||||
# The modules found in here are for distro-specific differences in the builds.
|
||||
# For instance, if you want to build a Debian-based BDisk, you'd specify pkg['install'] = ['apt-get', '-y', 'install', '%PKG%'],
|
||||
# name this file as "debian.py", and set bdisk:distro as 'debian'.
|
||||
# Note that the guest will need python installed. If distro is set as "NOCHECK", a distro check of the tarball won't be performed
|
||||
# (as the distro check requires python be installed first).
|
||||
|
||||
# Special variables to be used in strings:
|
||||
# %PKG% = the name of a package would be inserted here.
|
||||
|
||||
# This template uses Debian as an example.
|
||||
|
||||
# The name of the distro. Must match the output from platform.linux_distribution()[0].lower()
|
||||
# Regex is supported.
|
||||
distro = 'debian'
|
||||
|
||||
# The path to python. Can be either python 2.x (2.6 or higher) or 3.x.
|
||||
pybin = '/usr/bin/python'
|
||||
|
||||
guestenv = {}
|
||||
# The following environment variables will be set for the guest.
|
||||
guestenv['DEBIAN_FRONTEND'] = 'noninteractive'
|
||||
|
||||
scripts = {}
|
||||
# This variable can be used to perform some additional system tweaks and such. This is run before package installation.
|
||||
# It must be formatted as a complete script- i.e. include a shebang etc.
|
||||
script['pre'] = """#!/bin/bash
|
||||
touch /root/BDISK
|
||||
"""
|
||||
|
||||
# This variable can be used to perform some additional system tweaks and such. This is run after package installation.
|
||||
script['post'] = """#!/bin/bash
|
||||
rm -f /root/BDISK
|
||||
"""
|
||||
|
||||
|
||||
pkg = {}
|
||||
# The command, with arguments, in list format that should be run before we install software in the guest.
|
||||
# For instance, if your guest distro requires a local package listing cache (nearly all of them do) to be
|
||||
# updated first, this is where it would be run.
|
||||
pkg['pre'] = ['apt-get', '-y', 'update']
|
||||
|
||||
# The command, with arguments, in a list format to install a package.
|
||||
# Note that the command must be constructed in a way that does not require user interaction.
|
||||
pkg['install'] = ['apt-get', '-y', 'install', '%PKG%']
|
||||
|
||||
# The command, with arguments, in list format to use to check if a package is installed.
|
||||
# It should return 0 on exist status if it's installed. Any other exit status assumes the package is not installed.
|
||||
pkg['check'] = ['dpkg-query', '-f', '${binary:Package}\n', '-W', '%PKG']
|
11
extra/modules/distro/arch.py
Normal file
11
extra/modules/distro/arch.py
Normal file
@ -0,0 +1,11 @@
|
||||
distro = 'arch'
|
||||
pybin = '/usr/bin/python'
|
||||
script['pre'] = """#!/bin/bash
|
||||
touch /root/BDISK
|
||||
"""
|
||||
script['post'] = """#!/bin/bash
|
||||
rm -f /root/BDISK
|
||||
"""
|
||||
pkg['pre'] = ['pacman', '-Syyy']
|
||||
pkg['install'] = ['apacman', '-S', '%PKG%']
|
||||
pkg['check'] = ['pacman', '-Q', '%PKG']
|
11
extra/modules/distro/centos.py
Normal file
11
extra/modules/distro/centos.py
Normal file
@ -0,0 +1,11 @@
|
||||
distro = 'centos linux'
|
||||
pybin = '/usr/bin/python'
|
||||
script['pre'] = """#!/bin/bash
|
||||
touch /root/BDISK
|
||||
"""
|
||||
script['post'] = """#!/bin/bash
|
||||
rm -f /root/BDISK
|
||||
"""
|
||||
pkg['pre'] = ['yum', 'makecache']
|
||||
pkg['install'] = ['yum', '-y', 'install', '%PKG%']
|
||||
pkg['check'] = ['rpm', '-qi', '%PKG']
|
12
extra/modules/distro/debian.py
Normal file
12
extra/modules/distro/debian.py
Normal file
@ -0,0 +1,12 @@
|
||||
distro = 'debian'
|
||||
pybin = '/usr/bin/python'
|
||||
guestenv['DEBIAN_FRONTEND'] = 'noninteractive'
|
||||
script['pre'] = """#!/bin/bash
|
||||
touch /root/BDISK
|
||||
"""
|
||||
script['post'] = """#!/bin/bash
|
||||
rm -f /root/BDISK
|
||||
"""
|
||||
pkg['pre'] = ['apt-get', '-q', '-y', 'update']
|
||||
pkg['install'] = ['apt-get', '-q', '-y', '-o Dpkg::Options::="--force-confdef"', '-o Dpkg::Options::="--force-confold"', 'install', '%PKG%']
|
||||
pkg['check'] = ['dpkg-query', '-f', "'${binary:Package}\n'", '-W', '%PKG']
|
11
extra/modules/distro/fedora.py
Normal file
11
extra/modules/distro/fedora.py
Normal file
@ -0,0 +1,11 @@
|
||||
distro = 'fedora'
|
||||
pybin = '/usr/bin/python3'
|
||||
script['pre'] = """#!/bin/bash
|
||||
touch /root/BDISK
|
||||
"""
|
||||
script['post'] = """#!/bin/bash
|
||||
rm -f /root/BDISK
|
||||
"""
|
||||
pkg['pre'] = ['yum', 'makecache']
|
||||
pkg['install'] = ['yum', '-y', 'install', '%PKG%']
|
||||
pkg['check'] = ['rpm', '-qi', '%PKG']
|
11
extra/modules/distro/rhel.py
Normal file
11
extra/modules/distro/rhel.py
Normal file
@ -0,0 +1,11 @@
|
||||
distro = 'red hat enterprise linux (server|desktop)'
|
||||
pybin = '/usr/bin/python'
|
||||
script['pre'] = """#!/bin/bash
|
||||
touch /root/BDISK
|
||||
"""
|
||||
script['post'] = """#!/bin/bash
|
||||
rm -f /root/BDISK
|
||||
"""
|
||||
pkg['pre'] = ['yum', 'makecache']
|
||||
pkg['install'] = ['yum', '-y', 'install', '%PKG%']
|
||||
pkg['check'] = ['rpm', '-qi', '%PKG']
|
11
extra/modules/distro/sles.py
Normal file
11
extra/modules/distro/sles.py
Normal file
@ -0,0 +1,11 @@
|
||||
distro = 'suse linux enterprise server'
|
||||
pybin = '/usr/bin/python'
|
||||
script['pre'] = """#!/bin/bash
|
||||
touch /root/BDISK
|
||||
"""
|
||||
script['post'] = """#!/bin/bash
|
||||
rm -f /root/BDISK
|
||||
"""
|
||||
pkg['pre'] = ['zypper', 'refresh']
|
||||
pkg['install'] = ['zypper', 'install', '--no-confirm', '-l', '%PKG%']
|
||||
pkg['check'] = ['rpm', '-qi', '%PKG']
|
12
extra/modules/distro/ubuntu.py
Normal file
12
extra/modules/distro/ubuntu.py
Normal file
@ -0,0 +1,12 @@
|
||||
distro = 'ubuntu'
|
||||
pybin = '/usr/bin/python'
|
||||
guestenv['DEBIAN_FRONTEND'] = 'noninteractive'
|
||||
script['pre'] = """#!/bin/bash
|
||||
touch /root/BDISK
|
||||
"""
|
||||
script['post'] = """#!/bin/bash
|
||||
rm -f /root/BDISK
|
||||
"""
|
||||
pkg['pre'] = ['apt-get', '-q', '-y', 'update']
|
||||
pkg['install'] = ['apt-get', '-q', '-y', '-o Dpkg::Options::="--force-confdef"', '-o Dpkg::Options::="--force-confold"', 'install', '%PKG%']
|
||||
pkg['check'] = ['dpkg-query', '-f', "'${binary:Package}\n'", '-W', '%PKG']
|
@ -60,13 +60,14 @@ srcdir = ${dlpath}/src
|
||||
prepdir = ${dlpath}/temp
|
||||
archboot = ${prepdir}/${bdisk:name}
|
||||
mountpt = /mnt/${bdisk:uxname}
|
||||
multiarch = yes
|
||||
#multiarch = yes
|
||||
multiarch = x86_64
|
||||
ipxe = no
|
||||
i_am_a_racecar = no
|
||||
|
||||
[gpg]
|
||||
mygpgkey =
|
||||
mygpghome =
|
||||
mygpghome = ${build:dlpath}/.gnupg
|
||||
|
||||
[sync]
|
||||
http = no
|
||||
|
Loading…
Reference in New Issue
Block a user