Add bindep.txt file

This is used by `bindep` [0] to assess if needed system packages are
installed.
It should allow easier installation of Python packages on a clean
system from source and help packagers too.
For now it is just a copy/merge of `devstack/files/[debs|rpms]/ironic`
files with added platform specifiers.

Packages have been tagged with certain bindep profiles:
- default - needed to run ironic service in production
- test - needed to compile Python dependencies and for other tox targets,
  profile of this name is used by various gate jobs
- devstack - needed to setup VMs posing as HW nodes by the devstack
  plugin
- imagebuild - only needed to build various types of deploy ramdisk

Note that DevStack install procedure currently does not use 'bindep',
and still relies on files in `devstack/files/...` folder.

[0] http://docs.openstack.org/infra/bindep/index.html

Change-Id: I42239e0ec960507b7345866d768b3ee06738799b
This commit is contained in:
Pavlo Shchelokovskyy 2016-12-02 17:03:16 +02:00
parent 5a5d485c1d
commit b2fcf4804f

86
bindep.txt Normal file
View File

@ -0,0 +1,86 @@
# these are needed to run ironic with default ipmitool and (i)PXE boot drivers
ipmitool [default]
ipxe [platform:dpkg default]
ipxe-bootimgs [platform:rpm default]
open-iscsi [platform:dpkg default]
socat [default]
xinetd [default]
tftpd-hpa [platform:dpkg default]
tftp-server [platform:rpm default]
# Starting with Debian Jessie (and thus in Ubuntu Xenial too),
# pxelinux package provides the pxelinux.0 boot loader,
# but such package is absent from Debian Wheezy / Ubuntu Trusty.
# Also, in Debian Wheezy / Ubuntu Trusty 'syslinux' depends on syslinux-common,
# but only recommends it in Jessie/Xenial.
# Make sure syslinux-common is installed for those distros as it provides
# *.c32 modules for syslinux
# TODO remove distro pinning when Wheezy / Trusty are EOLed (May 2019)
# or DevStack stops supporting those.
# In the mean time, new Debian-based release codenames will have to be added
# as distros can not be pinned with 'if-later-than' specified.
pxelinux [platform:ubuntu-xenial platform:debian-jessie default]
syslinux [platform:rpm platform:ubuntu-trusty platform:debian-wheezy default]
syslinux-common [platform:ubuntu-xenial platform:debian-jessie default]
socat [default]
# these are needed to create and access VMs when testing with virtual hardware
libvirt-bin [platform:dpkg devstack]
libvirt [platform:rpm devstack]
libvirt-dev [platform:dpkg devstack]
libvirt-devel [platform:rpm devstack]
python-libvirt [platform:dpkg devstack]
libvirt-python [platform:rpm devstack]
qemu [platform:dpkg devstack build-image-dib]
qemu-kvm [platform:dpkg devstack]
qemu-utils [platform:dpkg devstack build-image-dib]
sgabios [devstack]
ipxe-qemu [platform:dpkg devstack]
edk2-ovmf [platform:rpm devstack]
ipxe-roms-qemu [platform:rpm devstack]
openvswitch [platform:rpm devstack]
iptables [devstack]
net-tools [platform:rpm devstack]
# these are needed to compile Python dependencies from sources
python-dev [platform:dpkg test]
python3-all-dev [platform:dpkg !platform:ubuntu-precise test]
python-devel [platform:rpm test]
python3-devel [platform:rpm test]
build-essential [platform:dpkg test]
libssl-dev [platform:dpkg test]
# these are needed by infra for python-* jobs
postgresql
postgresql-client [platform:dpkg]
# postgresql-devel [platform:rpm]
postgresql-server [platform:rpm]
mariadb [platform:rpm]
mariadb-server [platform:rpm]
# mariadb-devel [platform:rpm]
dev-db/mariadb [platform:gentoo]
mysql-client [platform:dpkg]
mysql-server [platform:dpkg]
# libmysqlclient-dev [platform:dpkg]
# this is needed for compiling translations
gettext [test]
# this is needed to build the FSM diagram
graphviz [!platform:gentoo test]
# these are needed to build a deploy ramdisk
# NOTE apparmor is an undeclared dependency for docker on ubuntu,
# see https://github.com/docker/docker/issues/9745
apparmor [platform:dpkg imagebuild]
docker.io [platform:dpkg imagebuild]
docker-io [platform:rpm imagebuild]
gnupg [imagebuild]
squashfs-tools [platform:dpkg platform:redhat imagebuild]
squashfs [platform:suse imagebuild]
libguestfs0 [platform:dpkg imagebuild]
libguestfs [platform:rpm imagebuild]
python-libguestfs [platform:dpkg imagebuild]
# for TinyIPA build
wget [imagebuild]
python-pip [imagebuild]
unzip [imagebuild]
sudo [imagebuild]
gawk [imagebuild]