From: Ivan Udovichenko Date: Thu, 31 Mar 2016 19:12:11 +0000 (+0300) Subject: Fix issues with dpkg-maintscript-helper. X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=a6c759bb8f055f057e557df40f1be39cad36e50d;p=openstack-build%2Fhorizon-build.git Fix issues with dpkg-maintscript-helper. Rewritten-From: c6fde227b66db2457e974e66b006343293352e26 --- diff --git a/xenial/debian/openstack-dashboard-apache.postinst b/xenial/debian/openstack-dashboard-apache.postinst index 561a2fb..2e9e384 100644 --- a/xenial/debian/openstack-dashboard-apache.postinst +++ b/xenial/debian/openstack-dashboard-apache.postinst @@ -2,9 +2,8 @@ set -e - dpkg-maintscript-helper dir_to_symlink \ - /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static -- "$@" + /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static 9.0.0~rc1-2 openstack-dashboard-apache -- "$@" if [ "$1" = "configure" ] ; then . /usr/share/debconf/confmodule @@ -46,6 +45,13 @@ HORIZON_USE_SSL=yes" >/etc/default/openstack-dashboard-apache a2dissite openstack-dashboard-alias-only.conf a2ensite openstack-dashboard.conf fi + if [ -L /usr/share/openstack-dashboard/static ]; then + if ! [ $(readlink -s /usr/share/openstack-dashboard/static) = /var/lib/openstack-dashboard/static ]; then + ln -fs /var/lib/openstack-dashboard/static /usr/share/openstack-dashboard/static + fi + else + ln -fs /var/lib/openstack-dashboard/static /usr/share/openstack-dashboard/static + fi /usr/share/openstack-dashboard/manage.py collectstatic --clear --noinput /usr/share/openstack-dashboard/manage.py compress --force if [ -f '/var/lib/openstack-dashboard/secret-key/.secret_key_store' ]; then diff --git a/xenial/debian/openstack-dashboard-apache.postrm b/xenial/debian/openstack-dashboard-apache.postrm index 8fbb792..aeec9fa 100644 --- a/xenial/debian/openstack-dashboard-apache.postrm +++ b/xenial/debian/openstack-dashboard-apache.postrm @@ -3,7 +3,8 @@ set -e dpkg-maintscript-helper dir_to_symlink \ - /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static -- "$@" + /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static 9.0.0~rc1-2 openstack-dashboard-apache -- "$@" + if [ "${1}" = "purge" ] ; then if [ -f /etc/default/openstack-dashboard-apache ] ; then diff --git a/xenial/debian/openstack-dashboard-apache.preinst b/xenial/debian/openstack-dashboard-apache.preinst index f253fa7..3916bba 100644 --- a/xenial/debian/openstack-dashboard-apache.preinst +++ b/xenial/debian/openstack-dashboard-apache.preinst @@ -2,7 +2,36 @@ set -e -dpkg-maintscript-helper dir_to_symlink \ - /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static -- "$@" +error() { + echo "error: $1" >&2 + exit 1 +} + +dir_to_symlink_preinst() { + local PATHNAME="$1" + local SYMLINK_TARGET="$2" + local LASTVERSION="$3" + local PACKAGE="$4" + + # Skip remaining parameters up to -- + while [ "$1" != "--" -a $# -gt 0 ]; do shift; done + shift + + if [ -n "$DPKG_MAINTSCRIPT_NAME" ] || error "environment variable DPKG_MAINTSCRIPT_NAME is required" + [ -n "$1" ] || error "maintainer script parameters are missing" + + [ -n "$2" ] && [ ! -h "$PATHNAME" ] && [ -d "$PATHNAME" ] && dpkg --compare-versions "$2" le-nl "$LASTVERSION"; then + mv -f "$PATHNAME" "${PATHNAME}.dpkg-backup" + mkdir "$PATHNAME" + touch "$PATHNAME/.dpkg-staging-dir" + fi +} + +if [ "$1" = "install" -o "$1" = "upgrade" ] ; then + if [ -e /usr/share/openstack-dashboard/static ] ; then + dir_to_symlink_preinst /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static 9.0.0~rc1-2 openstack-dashboard -- "$@" + fi + dir_to_symlink_preinst /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static 9.0.0~rc1-2 openstack-dashboard -- "$@" +fi #DEBHELPER# diff --git a/xenial/debian/openstack-dashboard.postinst b/xenial/debian/openstack-dashboard.postinst index db9f640..3c4b05e 100644 --- a/xenial/debian/openstack-dashboard.postinst +++ b/xenial/debian/openstack-dashboard.postinst @@ -3,7 +3,7 @@ set -e dpkg-maintscript-helper dir_to_symlink \ - /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static -- "$@" + /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static 9.0.0~rc1-2 openstack-dashboard -- "$@" if [ "$1" = "configure" ] ; then adduser --system \ @@ -20,6 +20,14 @@ if [ "$1" = "configure" ] ; then cp /usr/share/openstack-dashboard/local_settings.py /etc/openstack-dashboard/local_settings.py fi + if [ -L /usr/share/openstack-dashboard/static ]; then + if ! [ $(readlink -s /usr/share/openstack-dashboard/static) = /var/lib/openstack-dashboard/static ]; then + ln -fs /var/lib/openstack-dashboard/static /usr/share/openstack-dashboard/static + fi + else + ln -fs /var/lib/openstack-dashboard/static /usr/share/openstack-dashboard/static + fi + # Compress the JS and CSS with python-compressor and python-lesscpy /usr/share/openstack-dashboard/manage.py collectstatic --clear --noinput /usr/share/openstack-dashboard/manage.py compress --force diff --git a/xenial/debian/openstack-dashboard.postrm b/xenial/debian/openstack-dashboard.postrm index 41afedc..eb96754 100644 --- a/xenial/debian/openstack-dashboard.postrm +++ b/xenial/debian/openstack-dashboard.postrm @@ -3,7 +3,7 @@ set -e dpkg-maintscript-helper dir_to_symlink \ - /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static -- "$@" + /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static 9.0.0~rc1-2 openstack-dashboard -- "$@" if [ "${1}" = "purge" ] ; then rm -f /etc/openstack-dashboard/local_settings.py diff --git a/xenial/debian/openstack-dashboard.preinst b/xenial/debian/openstack-dashboard.preinst index f253fa7..3916bba 100644 --- a/xenial/debian/openstack-dashboard.preinst +++ b/xenial/debian/openstack-dashboard.preinst @@ -2,7 +2,36 @@ set -e -dpkg-maintscript-helper dir_to_symlink \ - /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static -- "$@" +error() { + echo "error: $1" >&2 + exit 1 +} + +dir_to_symlink_preinst() { + local PATHNAME="$1" + local SYMLINK_TARGET="$2" + local LASTVERSION="$3" + local PACKAGE="$4" + + # Skip remaining parameters up to -- + while [ "$1" != "--" -a $# -gt 0 ]; do shift; done + shift + + if [ -n "$DPKG_MAINTSCRIPT_NAME" ] || error "environment variable DPKG_MAINTSCRIPT_NAME is required" + [ -n "$1" ] || error "maintainer script parameters are missing" + + [ -n "$2" ] && [ ! -h "$PATHNAME" ] && [ -d "$PATHNAME" ] && dpkg --compare-versions "$2" le-nl "$LASTVERSION"; then + mv -f "$PATHNAME" "${PATHNAME}.dpkg-backup" + mkdir "$PATHNAME" + touch "$PATHNAME/.dpkg-staging-dir" + fi +} + +if [ "$1" = "install" -o "$1" = "upgrade" ] ; then + if [ -e /usr/share/openstack-dashboard/static ] ; then + dir_to_symlink_preinst /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static 9.0.0~rc1-2 openstack-dashboard -- "$@" + fi + dir_to_symlink_preinst /usr/share/openstack-dashboard/static /var/lib/openstack-dashboard/static 9.0.0~rc1-2 openstack-dashboard -- "$@" +fi #DEBHELPER#