diff --git a/bindep.txt b/bindep.txt index b8e9c42..5a700c0 100644 --- a/bindep.txt +++ b/bindep.txt @@ -1,55 +1,73 @@ -# Apache -apache2 [platform:dpkg apache] -libapache2-mod-wsgi [platform:dpkg apache] - -httpd [platform:rpm apache] -mod_ssl [platform:rpm apache] -mod_wsgi [platform:rpm apache] - -# Ceph -ceph-common [ceph] -# TODO(SamYaple): extend bindep to allow 'profile AND profile' rather than the -# current 'profile OR profile' so we can set this to 'ceph AND glance' so this -# would only get installed in glance container -python-rbd [ceph] - -# LVM -lvm2 [lvm] - -tgt [platform:dpkg lvm] -thin-provisioning-tools [platform:dpkg lvm] - -targetcli [platform:rpm lvm] - -# QEMU -qemu-utils [platform:dpkg qemu] -qemu-img [platform:rpm qemu] - -# Nova -iproute2 [platform:dpkg nova] -libpython2.7 [platform:dpkg nova] -libvirt0 [platform:dpkg nova] -openvswitch-switch [platform:dpkg nova] - -libvirt-libs [platform:rpm nova] -openvswitch [platform:rpm nova] - -# Neutron -bridge-utils [neutron] -dnsmasq [neutron] -dnsmasq-utils [neutron] -ebtables [neutron] -ipset [neutron] -iptables [neutron] -keepalived [neutron] - -conntrack [platform:dpkg neutron] -iproute2 [platform:dpkg neutron] -iputils-arping [platform:dpkg neutron] -libpython2.7 [platform:dpkg neutron] -openvswitch-switch [platform:dpkg neutron] -uuid-runtime [platform:dpkg neutron] - -conntrack-tools [platform:rpm neutron] -openvswitch [platform:rpm neutron] -uuid [platform:rpm neutron] +apache2 [platform:dpkg apache] +bridge-utils [(neutron linuxbridge)] +build-essential [platform:dpkg requirements] +bzip2 [platform:rpm requirements] +ceph-common [(ceph cinder) (ceph glance) (ceph nova)] +conntrack [platform:dpkg neutron] +conntrack-tools [platform:rpm neutron] +cyrus-sasl-devel [platform:rpm requirements] +dnsmasq [neutron] +dnsmasq-utils [neutron] +ebtables [neutron] +gcc-c++ [platform:rpm requirements] +gcc [platform:rpm requirements] +git [requirements] +httpd [platform:rpm apache] +iproute2 [platform:dpkg neutron nova] +ipset [neutron] +iptables [neutron] +iputils-arping [platform:dpkg neutron] +keepalived [neutron] +libapache2-mod-wsgi [platform:dpkg apache] +liberasurecode-devel [platform:rpm requirements] +liberasurecode-dev [platform:dpkg requirements] +libffi-devel [platform:rpm requirements] +libffi-dev [platform:dpkg requirements] +libgcrypt [platform:rpm requirements] +libkrb5-dev [platform:dpkg requirements] +libldap2-dev [platform:dpkg requirements] +libmariadbclient-dev [platform:debian requirements] +libmysqlclient-dev [platform:ubuntu requirements] +libnss3-dev [platform:dpkg requirements] +libpq-dev [platform:dpkg requirements] +libpython2.7 [platform:dpkg neutron nova] +libsasl2-dev [platform:dpkg requirements] +libssl-dev [platform:dpkg requirements] +libsystemd-dev [platform:dpkg requirements] +libvirt0 [platform:dpkg nova] +libvirt-devel [platform:rpm requirements] +libvirt-dev [platform:dpkg requirements] +libxml2-devel [platform:rpm requirements] +libxml2-dev [platform:dpkg requirements] +libxslt1-dev [platform:dpkg requirements] +libxslt-devel [platform:rpm requirements] +libyaml-devel [platform:rpm requirements] +libyaml-dev [platform:dpkg requirements] +libz-dev [platform:dpkg requirements] +lvm2 [(cinder lvm)] +make [platform:rpm requirements] +mariadb-devel [platform:rpm requirements] +mod_ssl [platform:rpm apache] +mod_wsgi [platform:rpm apache] +nginx [nginx] +nss-devel [platform:rpm requirements] +nss-util [platform:rpm requirements] +openldap-devel [platform:rpm requirements] +openssl-devel [platform:rpm requirements] +openvswitch [platform:rpm (neutron openvswitch) (nova openvswitch)] +openvswitch-switch [platform:dpkg (neutron openvswitch) (nova openvswitch)] +pkg-config [platform:dpkg requirements] +pkgconfig [platform:rpm requirements] +postgresql-devel [platform:rpm requirements] +python-devel [platform:rpm requirements] +python-dev [platform:dpkg requirements] +python-rbd [(ceph glance)] +qemu-img [platform:rpm (qemu nova)] +qemu-utils [platform:dpkg (qemu nova)] +systemd-devel [platform:rpm requirements] +targetcli [platform:rpm (cinder lvm)] +tgt [platform:dpkg (cinder lvm)] +thin-provisioning-tools [platform:dpkg (cinder lvm)] +uuid [platform:rpm neutron] +uuid-runtime [platform:dpkg neutron] +zlib-devel [platform:rpm requirements] diff --git a/scripts/requirements.sh b/scripts/requirements.sh index 08a77ca..fd1a6b1 100755 --- a/scripts/requirements.sh +++ b/scripts/requirements.sh @@ -2,101 +2,9 @@ set -eux -# TODO(SamYaple): Switch all of this to bindep once syntax is supported better -# NOTE(SamYaple): Ubuntu and Debian have slightly different package lists -case ${distro} in - debian) - apt-get update - apt-get upgrade -y - apt-get install -y --no-install-recommends \ - build-essential \ - ca-certificates \ - git \ - liberasurecode-dev \ - libffi-dev \ - libkrb5-dev \ - libldap2-dev \ - libmariadbclient-dev \ - libnss3-dev \ - libpq-dev \ - libsasl2-dev \ - libssl-dev \ - libsystemd-dev \ - libxml2-dev \ - libxslt1-dev \ - libvirt-dev \ - libyaml-dev \ - libz-dev \ - pkg-config \ - python-dev \ - python-pip \ - python-virtualenv - ;; - ubuntu) - apt-get update - apt-get upgrade -y - apt-get install -y --no-install-recommends \ - build-essential \ - ca-certificates \ - git \ - liberasurecode-dev \ - libffi-dev \ - libkrb5-dev \ - libldap2-dev \ - libmysqlclient-dev \ - libnss3-dev \ - libpq-dev \ - libsasl2-dev \ - libssl-dev \ - libsystemd-dev \ - libxml2-dev \ - libxslt1-dev \ - libvirt-dev \ - libyaml-dev \ - libz-dev \ - pkg-config \ - python-dev \ - python-pip - ;; - centos) - yum upgrade -y - # NOTE(SamYaple): https://bugs.centos.org/view.php?id=10750 - yum install -y --setopt=tsflags=docs --setopt=skip_missing_names_on_install=False libffi-devel - yum install -y --setopt=skip_missing_names_on_install=False \ - gcc \ - gcc-c++ \ - make \ - openssl-devel \ - ca-certificates \ - git \ - bzip2 \ - liberasurecode-devel \ - openldap-devel \ - mariadb-devel \ - nss-devel \ - postgresql-devel \ - cyrus-sasl-devel \ - openssl-devel \ - libxml2-devel \ - libxslt-devel \ - libvirt-devel \ - libyaml-devel \ - zlib-devel \ - pkgconfig \ - python \ - python-devel \ - python-pip \ - libgcrypt \ - nss-util \ - systemd-devel - ;; - *) - echo "Unknown distro: ${distro}" - exit 1 - ;; -esac - $(dirname $0)/setup_pip.sh +pip install git+https://github.com/openstack-infra/bindep +$(dirname $0)/install_packages.sh $(dirname $0)/clone_project.sh mv /tmp/requirements/{global-requirements.txt,upper-constraints.txt} / @@ -107,7 +15,7 @@ split -l1 /upper-constraints.txt ls -1 | xargs -n1 -P20 -t pip wheel --no-deps --wheel-dir / -c /upper-constraints.txt -r popd # NOTE(SamYaple): Handle packages not in global-requirements -additional_packages=(argparse bindep==2.5.0 pip setuptools uwsgi wheel virtualenv) +additional_packages=(argparse git+https://github.com/openstack-infra/bindep pip setuptools uwsgi wheel virtualenv) echo "${additional_packages[@]}" | xargs -n1 -P20 pip wheel --wheel-dir / -c /upper-constraints.txt # NOTE(SamYaple): We want to purge all files that are not wheels or txt to