From 71d5630c4ad2dd74964119a4ad8f16833f61fc21 Mon Sep 17 00:00:00 2001 From: Christian Berendt Date: Mon, 22 Jul 2013 11:37:42 +0200 Subject: [PATCH] Adds new tag for testonly packages in package lists Also introduces a new parameter INSTALL_TESTONLY_PACKAGES in the stackrc with False as default value. Setting it to True stack.sh will install all packages tagged with the tag testonly in the package lists. Includes needed packages for Ubuntu and Fedora fixes bug #1203680 Change-Id: I911a6601819a34262853bba0658f6751148bfbec --- files/apts/glance | 6 ++++++ files/rpms/glance | 6 ++++++ functions | 26 +++++++++++++++++++++++--- stackrc | 3 +++ 4 files changed, 38 insertions(+), 3 deletions(-) diff --git a/files/apts/glance b/files/apts/glance index a05e9f2ea7..26826a53c7 100644 --- a/files/apts/glance +++ b/files/apts/glance @@ -1,5 +1,10 @@ gcc +libffi-dev # testonly +libmysqlclient-dev # testonly +libpq-dev # testonly +libssl-dev # testonly libxml2-dev +libxslt1-dev # testonly python-dev python-eventlet python-routes @@ -10,3 +15,4 @@ python-wsgiref python-pastedeploy python-xattr python-iso8601 +zlib1g-dev # testonly diff --git a/files/rpms/glance b/files/rpms/glance index 0f113eaa01..dd66171f7a 100644 --- a/files/rpms/glance +++ b/files/rpms/glance @@ -1,5 +1,10 @@ gcc +libffi-devel # testonly libxml2-devel +libxslt-devel # testonly +mysql-devel # testonly +openssl-devel # testonly +postgresql-devel # testonly python-argparse python-devel python-eventlet @@ -9,3 +14,4 @@ python-routes python-sqlalchemy python-wsgiref pyxattr +zlib-devel # testonly diff --git a/functions b/functions index 087a0ea844..5546defa22 100644 --- a/functions +++ b/functions @@ -317,16 +317,36 @@ function get_packages() { continue fi + # Assume we want this package + package=${line%#*} + inst_pkg=1 + + # Look for # dist:xxx in comment if [[ $line =~ (.*)#.*dist:([^ ]*) ]]; then # We are using BASH regexp matching feature. package=${BASH_REMATCH[1]} distros=${BASH_REMATCH[2]} # In bash ${VAR,,} will lowecase VAR - [[ ${distros,,} =~ ${DISTRO,,} ]] && echo $package - continue + # Look for a match in the distro list + if [[ ! ${distros,,} =~ ${DISTRO,,} ]]; then + # If no match then skip this package + inst_pkg=0 + fi fi - echo ${line%#*} + # Look for # testonly in comment + if [[ $line =~ (.*)#.*testonly.* ]]; then + package=${BASH_REMATCH[1]} + # Are we installing test packages? (test for the default value) + if [[ $INSTALL_TESTONLY_PACKAGES = "False" ]]; then + # If not installing test packages the skip this package + inst_pkg=0 + fi + fi + + if [[ $inst_pkg = 1 ]]; then + echo $package + fi done IFS=$OIFS done diff --git a/stackrc b/stackrc index c81906ac8c..8b97536b50 100644 --- a/stackrc +++ b/stackrc @@ -275,6 +275,9 @@ USE_SCREEN=${SCREEN_DEV:-$USE_SCREEN} # Set default screen name SCREEN_NAME=${SCREEN_NAME:-stack} +# Do not install packages tagged with 'testonly' by default +INSTALL_TESTONLY_PACKAGES=${INSTALL_TESTONLY_PACKAGES:-False} + # Local variables: # mode: shell-script # End: