Add bindep.txt

This is a combination of 2 commits to solve the dependency issue, which
came up after the announced removal of global bindep-fallback.txt

1. 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

(cherry picked from commit b2fcf4804f)

2. Update bindep.txt for doc builds

https://governance.openstack.org/tc/reference/project-testing-interface.html#documentation
specifies that doc dependencies need the doc tag in bindep, use it.

Leave test environment in for transition period until we use the new
scripts.

(cherry picked from commit 6a48eba4a7)

Change-Id: I42239e0ec960507b7345866d768b3ee06738799b
This commit is contained in:
Pavlo Shchelokovskyy 2016-12-02 17:03:16 +02:00 committed by Elod Illes
parent 872d2e7c7c
commit 43c54ec5ca
1 changed files with 89 additions and 0 deletions

89
bindep.txt Normal file
View File

@ -0,0 +1,89 @@
# 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]
# gettext and graphviz are needed by doc builds only. For transition,
# have them in both doc and test.
# TODO(jaegerandi): Remove test once infra scripts are updated.
# this is needed for compiling translations
gettext [test doc]
# this is needed to build the FSM diagram
graphviz [!platform:gentoo test doc]
# 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]