[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#990530: unblock: horizon/18.6.2-4 and all of its plugins



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Dear release team,

As per the discussion at:
https://bugs.debian.org/988188

I have uploaded an update of Horizon and all of its plugins.
The debdiff for Horizon is attached.

Below, you'll find (inline) a debdiff for cloudkitty-dashboard showing
what I am updaging in a typical Horizon plugin. I don't think it's necessary
to provide a debdiff for each individual plugin, as they all look the
same. However, please note that for heat-dashboard, I also added this
patch (to warn users that this part of the plugin is broken on Chrome):

--- heat-dashboard-4.0.0.orig/heat_dashboard/content/template_generator/templates/template_generator/index.html
+++ heat-dashboard-4.0.0/heat_dashboard/content/template_generator/templates/template_generator/index.html
@@ -5,6 +5,7 @@
 {% block page_header %}
     <div class="page-header" ng-cloak>
         <h1>{% trans "Template Generator" %}</h1>
+        <h2>(Not compatible with Chrome based browsers)</h2>
         <p>{% trans "Please drag and drop resource icons into center canvas to define resource for template." %}</p>
     </div>
 {% endblock %}

and also, for sahara-dashboard, I removed the Breaks+Replaces:
python-sahara-dashboard, as this is obsolete since the Python 2
version of this Horizon plugin doesn't exist in Buster (so the
transition is over). Otherwise, all plugins have recieved similar
updates.

Here's the list of unblocks:

unblock horizon/3:18.6.2-4
unblock cloudkitty-dashboard/11.0.0-2
designate-dashboard/11.0.0-2
freezer-web-ui/9.0.0-2
heat-dashboard/4.0.0-2
ironic-ui/4.2.0-3
magnum-ui/7.0.0-2
manila-ui/4.0.0-2
mistral-dashboard/11.0.0-2
murano-dashboard/1:10.0.0-2
neutron-vpnaas-dashboard/3.0.0-2
octavia-dashboard/6.0.0-2
sahara-dashboard/13.0.0-2
senlin-dashboard/2.0.0-2
trove-dashboard/15.0.0-2
vitrage-dashboard/3.2.0-3
watcher-dashboard/4.0.0-2
zaqar-ui/8.0.0-2

A typical plugin fix looks like this (here, cloudkitty-dashboard):

diff --git a/debian/changelog b/debian/changelog
index f08809f..adaf71e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cloudkitty-dashboard (11.0.0-2) unstable; urgency=medium
+
+  * Fix installation of files in the enable folder.
+
+ -- Thomas Goirand <zigo@debian.org>  Wed, 30 Jun 2021 11:20:03 +0200
+
 cloudkitty-dashboard (11.0.0-1) unstable; urgency=medium
 
   * New upstream release.
diff --git a/debian/control b/debian/control
index 7525cc7..6295d6a 100644
--- a/debian/control
+++ b/debian/control
@@ -41,6 +41,8 @@ Depends:
  python3-xstatic-rickshaw,
  ${misc:Depends},
  ${python3:Depends},
+Breaks:
+ python3-django-horizon (<< 3:18.6.2-4~),
 Description: OpenStack data processing cluster as a service - dashboard plugin
  The Sahara project provides a simple means to provision a data-intensive
  application cluster (Hadoop or Spark) on top of OpenStack. It's the ex
diff --git a/debian/python3-cloudkitty-dashboard.install b/debian/python3-cloudkitty-dashboard.install
index 94ac7fd..9b4d16b 100644
--- a/debian/python3-cloudkitty-dashboard.install
+++ b/debian/python3-cloudkitty-dashboard.install
@@ -1,2 +1 @@
-/etc/openstack-dashboard/*
 /usr/*
diff --git a/debian/python3-cloudkitty-dashboard.maintscript b/debian/python3-cloudkitty-dashboard.maintscript
new file mode 100644
index 0000000..24bcd97
--- /dev/null
+++ b/debian/python3-cloudkitty-dashboard.maintscript
@@ -0,0 +1,9 @@
+rm_conffile /etc/openstack-dashboard/enable/_10_admin_group.py
+rm_conffile /etc/openstack-dashboard/enable/_10_project_group.py
+rm_conffile /etc/openstack-dashboard/enable/_11_admin_hashmap_panel.py
+rm_conffile /etc/openstack-dashboard/enable/_11_admin_rating_panel.py
+rm_conffile /etc/openstack-dashboard/enable/_11_admin_summary_panel.py
+rm_conffile /etc/openstack-dashboard/enable/_11_project_rating_panel.py
+rm_conffile /etc/openstack-dashboard/enable/_12_project_reporting_panel.py
+rm_conffile /etc/openstack-dashboard/enable/_13_admin_pyscripts_panel.py
+rm_conffile /etc/openstack-dashboard/enable/_31000_cloudkitty.py
diff --git a/debian/rules b/debian/rules
index 37b6a8d..b253002 100755
--- a/debian/rules
+++ b/debian/rules
@@ -23,11 +23,9 @@ override_dh_install:
                python$$i setup.py install --install-layout=deb --root $(CURDIR)/debian/tmp ; \
        done
 
-       # Move config files to standard location
-       install -d -m 755 $(CURDIR)/debian/tmp/etc/openstack-dashboard/enabled
-
        # Copy config enabled to openstack-dashboard enabled location
-       cp $(CURDIR)/debian/tmp/usr/lib/python3/dist-packages/cloudkittydashboard/enabled/_[0-9]*.py $(CURDIR)/debian/tmp/etc/openstack-dashboard/enabled/
+       mkdir -p $(CURDIR)/debian/tmp/usr/lib/python3/dist-packages/openstack_dashboard/local/enabled
+       cp $(CURDIR)/debian/tmp/usr/lib/python3/dist-packages/cloudkittydashboard/enabled/_[0-9]*.py $(CURDIR)/debian/tmp/usr/lib/python3/dist-packages/openstack_dashboard/local/enabled
 
        dh_install
        dh_missing --fail-missing
diff -Nru horizon-18.6.2/debian/changelog horizon-18.6.2/debian/changelog
--- horizon-18.6.2/debian/changelog	2021-04-04 14:13:10.000000000 +0200
+++ horizon-18.6.2/debian/changelog	2021-06-29 14:53:41.000000000 +0200
@@ -1,3 +1,18 @@
+horizon (3:18.6.2-4) unstable; urgency=medium
+
+  * Do not use an enable folder in /etc, as this marks all files from plugins
+    as CONFFILE, meaning they aren't removed when plugins are removed, which
+    makes Horizon crash (Closes: #987904):
+    - In python3-django-horizon.preinst, transform the symlink
+      /usr/lib/python3/dist-packages/openstack_dashboard/local/enabled into a
+      folder.
+    - Remove the symlink creation from the openstack-dashboard.postinst.
+    - Remove the symlink in prerm if it exists.
+    - Add versioned Breaks: on all the Horizon plugins, as they now must push
+      the files into that folder instead of /etc.
+
+ -- Thomas Goirand <zigo@debian.org>  Tue, 29 Jun 2021 14:53:41 +0200
+
 horizon (3:18.6.2-3) unstable; urgency=medium
 
   * Revert previous fix, which is in fact a problem in the fonts-font-awesome
diff -Nru horizon-18.6.2/debian/control horizon-18.6.2/debian/control
--- horizon-18.6.2/debian/control	2021-04-04 14:13:10.000000000 +0200
+++ horizon-18.6.2/debian/control	2021-06-29 14:53:41.000000000 +0200
@@ -126,26 +126,23 @@
  memcached,
  openstack-dashboard-apache,
 Breaks:
- python-app-catalog-ui,
- python-designate-dashboard,
- python-ironic-ui,
- python-murano-dashboard,
- python-zaqar-ui,
- python3-cloudkitty-dashboard (<< 8.0.0-3~),
- python3-designate-dashboard (<< 7.0.0-2~),
- python3-heat-dashboard (<< 1.4.0-2~),
- python3-ironic-ui (<< 3.3.0-4~),
- python3-magnum-ui (<< 5.0.1-2~),
- python3-manila-ui (<< 2.16.0-2~),
- python3-mistral-dashboard (<< 7.0.1-2~),
- python3-murano-dashboard (<< 1:6.0.0-2~),
- python3-neutron-fwaas-dashboard (<< 1.5.0-3~),
+ python3-cloudkitty-dashboard (<< 11.0.0-2~),
+ python3-designate-dashboard (<< 11.0.0-2~),
+ python3-freezer-web-ui (<< 9.0.0-2~),
+ python3-heat-dashboard (<< 4.0.0-2~),
+ python3-ironic-ui (<< 4.2.0-3~),
+ python3-magnum-ui (<< 7.0.0-2~),
+ python3-manila-ui (<< 4.0.0-2~),
+ python3-mistral-dashboard (<< 11.0.0-2~),
+ python3-murano-dashboard (<< 1:10.0.0-2~),
  python3-neutron-vpnaas-dashboard (<< 1.4.0-2~),
- python3-octavia-dashboard (<< 2.0.0-3~),
- python3-sahara-dashboard (<< 9.0.1-1~),
- python3-senlin-dashboard (<< 0.9.0-3~),
- python3-trove-dashboard (<< 11.0.0-2~),
- python3-zaqar-ui (<< 5.0.0-2~),
+ python3-octavia-dashboard (<< 6.0.0-2~),
+ python3-sahara-dashboard (<< 13.0.0-2~),
+ python3-senlin-dashboard (<< 2.0.0-2~),
+ python3-trove-dashboard (<< 15.0.0-2~),
+ python3-vitrage-dashboard (<< 2.0.0-2~),
+ python3-watcher-dashboard (<< 4.0.0-2~),
+ python3-zaqar-ui (<< 8.0.0-2~),
 Description: web application to control an OpenStack cloud
  The OpenStack Dashboard is a web application to control an OpenStack
  cloud. It connects to OpenStack services such as Nova, Swift, or Keystone
diff -Nru horizon-18.6.2/debian/openstack-dashboard.postinst horizon-18.6.2/debian/openstack-dashboard.postinst
--- horizon-18.6.2/debian/openstack-dashboard.postinst	2021-04-04 14:13:10.000000000 +0200
+++ horizon-18.6.2/debian/openstack-dashboard.postinst	2021-06-29 14:53:41.000000000 +0200
@@ -111,10 +111,6 @@
 		ln -sf /etc/openstack-dashboard/policy /usr/lib/python3/dist-packages/openstack_dashboard/conf
 	fi
 
-	if [ ! -L /usr/lib/python3/dist-packages/openstack_dashboard/local/enabled ]; then
-		ln -sf /etc/openstack-dashboard/enabled /usr/lib/python3/dist-packages/openstack_dashboard/local/enabled
-	fi
-
 	# Some dashboard plugins are not deleting their files under
 	# /usr/share/openstack-dashboard/openstack_dashboard/{local,enabled}
 	#
diff -Nru horizon-18.6.2/debian/openstack-dashboard.prerm horizon-18.6.2/debian/openstack-dashboard.prerm
--- horizon-18.6.2/debian/openstack-dashboard.prerm	2021-04-04 14:13:10.000000000 +0200
+++ horizon-18.6.2/debian/openstack-dashboard.prerm	2021-06-29 14:53:41.000000000 +0200
@@ -10,7 +10,11 @@
 	# This have to be done in prerm.
 	rm -f /usr/lib/python3/dist-packages/openstack_dashboard/local/local_settings.d
 	rm -f /usr/lib/python3/dist-packages/openstack_dashboard/local/local_settings.py
-	rm -f /usr/lib/python3/dist-packages/openstack_dashboard/local/enabled
+	# If this is a symlink, we should remove it ASAP (it should be a folder
+	# where plugins install their files).
+	if [ -L /usr/lib/python3/dist-packages/openstack_dashboard/local/enabled ]; then
+		rm -f /usr/lib/python3/dist-packages/openstack_dashboard/local/enabled || true
+	fi
 	rm -f /usr/lib/python3/dist-packages/openstack_dashboard/themes
 	rm -f /usr/lib/python3/dist-packages/openstack_dashboard/conf
 fi
diff -Nru horizon-18.6.2/debian/python3-django-horizon.preinst horizon-18.6.2/debian/python3-django-horizon.preinst
--- horizon-18.6.2/debian/python3-django-horizon.preinst	1970-01-01 01:00:00.000000000 +0100
+++ horizon-18.6.2/debian/python3-django-horizon.preinst	2021-06-29 14:53:41.000000000 +0200
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+set -e
+
+if [ "${1}" = "install" ] || [ "${1}" = "upgrade" ] ; then
+	if [ -L /usr/lib/python3/dist-packages/openstack_dashboard/local/enabled ]; then
+		rm /usr/lib/python3/dist-packages/openstack_dashboard/local/enabled
+	fi
+	mkdir -p /usr/lib/python3/dist-packages/openstack_dashboard/local/enabled
+fi
+
+#DEBHELPER#
diff -Nru horizon-18.6.2/debian/python3-django-horizon.prerm horizon-18.6.2/debian/python3-django-horizon.prerm
--- horizon-18.6.2/debian/python3-django-horizon.prerm	2021-04-04 14:13:10.000000000 +0200
+++ horizon-18.6.2/debian/python3-django-horizon.prerm	1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-set -e
-
-if [ -d /usr/lib/python3/dist-packages/openstack_dashboard/local ] ; then
-	rm -rf /usr/lib/python3/dist-packages/openstack_dashboard/local
-fi
-
-#DEBHELPER#

Reply to: