Hello community,

here is the log from the commit of package openstack-dashboard for 
openSUSE:Factory checked in at 2013-01-17 09:51:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openstack-dashboard (Old)
 and      /work/SRC/openSUSE:Factory/.openstack-dashboard.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openstack-dashboard", Maintainer is "cth...@suse.com"

Changes:
--------
--- /work/SRC/openSUSE:Factory/openstack-dashboard/openstack-dashboard.changes  
2012-12-08 15:52:17.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.openstack-dashboard.new/openstack-dashboard.changes 
    2013-01-17 09:51:52.000000000 +0100
@@ -2 +2 @@
-Fri Dec  7 11:19:52 UTC 2012 - vu...@suse.com
+Mon Jan 14 12:35:52 UTC 2013 - vu...@suse.com
@@ -4,3 +4,10 @@
-- Comment out python-selenium Requires from test subpackage: the
-  selenium tests are not run by default, and pushing selenium to
-  Factory would require too much time for now.
+- Put python-selenium Requires from test subpackage inside a "%if
+  0%{?with_selenium}" statement:
+  + the selenium tests are not run by default, and pushing selenium
+    to Factory would require too much time for now. So we should
+    avoid the Requires by default.
+  + we might still want to have the Requires in some OBS project
+    where we'd want to use the selenium tests. Defining
+    %with_selenium in the prjconf of the project will do the trick.
+- If we don't have the Requires, use a Recommends for
+  python-selenium instead: this will be good enough for most cases.
@@ -9 +16 @@
-Thu Nov  8 13:34:00 UTC 2012 - sasc...@suse.de
+Thu Jan 10 16:21:43 UTC 2013 - vu...@suse.com
@@ -11 +18,39 @@
-- Drop from_vcs build flag
+- Rework a lot %build/%install (some part of this is based on the
+  Fedora packaging):
+  + move pre-compilation of LESS files to %install. Note that it
+    requires manipulating PYTHONPATH.
+  + move addition of "COMPRESS_OFFLINE = True" to local_settings.py
+    to %install
+  + do not package LESS (gets installed in %{python_sitelib}/bin/)
+    nor po files.
+  + do not keep around %{python_sitelib}/openstack_dashboard/:
+    instead, we move the files to
+    %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard
+    (while we were copying a subset of files before, which was
+    broken).
+  + do not change STATIC_ROOT in openstack_dashboard/settings.py
+    and instead collect static files in
+    %{_localstatedir}/lib/openstack-dashboard/static
+  + stop using -v with cp: it doesn't help in any way.
+- Note: the packaging with special permission for
+  %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/static/
+  has been removed as it shouldn't be needed.
+- Update openstack-dashboard.conf.sample: the location of static
+  files has changed, and we don't need aliases for them anymore.
+
+--------------------------------------------------------------------
+Wed Dec 19 12:25:57 UTC 2012 - sasc...@suse.de
+
+- Move to obs-service-git_tarballs
+- Update to version 2012.2.2+git.1355916357.da9a19c:
+  + Bump next version to 2012.2.2
+  + Final versioning for 2012.2.1
+  + Fixes JavaScript count bug in tables.
+  + When editing an image, correctly set the 'is_public' checkbox.
+
+-------------------------------------------------------------------
+Thu Dec  6 14:03:26 UTC 2012 - vu...@suse.com
+
+- Fix sed line that changes STATIC_ROOT in
+  %{python_sitelib}/openstack_dashboard/settings.py: the value
+  needs to be quoted.
@@ -14 +59,26 @@
-Tue Oct 30 10:29:30 UTC 2012 - sasc...@suse.de
+Wed Dec  5 09:33:35 UTC 2012 - sasc...@suse.de
+
+- Use @PARENT_TAG@ in _service file to automate versioning
+
+-------------------------------------------------------------------
+Mon Dec  3 15:04:18 UTC 2012 - sasc...@suse.de
+
+- Move runtime requirements to python-horizon package
+- Rebase horizon-ssl.patch
+- Move config sub-package back into base package, this never made
+  much sense
+
+-------------------------------------------------------------------
+Wed Nov 28 15:50:36 UTC 2012 - sasc...@suse.de
+
+- Set COMPRESS_OFFLINE config variable for django_compressor 
+
+-------------------------------------------------------------------
+Tue Nov 27 14:57:57 UTC 2012 - sasc...@suse.de
+
+- Rebased horizon-ssl.patch (See https://review.openstack.org/16972)
+
+-------------------------------------------------------------------
+Tue Nov 27 13:25:20 UTC 2012 - iartar...@suse.cz
+
+- set ownership of static directory to the web server 
@@ -16,2 +86,49 @@
-- Add horizon-launch-from-volume.patch: Launch from volume with valid
-  volume size (fixes bnc#780982, lp#1047568)
+-------------------------------------------------------------------
+Tue Nov 27 13:24:32 UTC 2012 - iartar...@suse.cz
+
+- hardcode STATIC_ROOT in django settings.py 
+
+-------------------------------------------------------------------
+Mon Nov 26 15:53:48 UTC 2012 - sasc...@suse.de
+
+- First shot at removing nodejs runtime dependency:
+  + CSS assets have to be pre-compiled at build-time so that
+    django_compressor can find the cached CSS (compiled from LESS
+    input).
+
+-------------------------------------------------------------------
+Mon Nov 19 14:12:01 UTC 2012 - sasc...@suse.de
+
+- Update python module dependencies for Folsom release.
+- Also add previously unpackaged deps for the test package
+
+-------------------------------------------------------------------
+Thu Nov 15 14:45:43 UTC 2012 - sasc...@suse.de
+
+- Use openstack-macros
+
+-------------------------------------------------------------------
+Mon Nov 12 15:17:47 UTC 2012 - sasc...@suse.de
+
+- Update to version 2012.2 (Folsom):
+  + See https://github.com/openstack/horizon/commits/folsom
+- Drop the following upstreamed patches:
+  + horizon-secure_SECRET_KEY.patch
+  + horizon-suse-branding.patch
+  + backports.patch
+  + suse-patches.diff
+  + vnc-iframe-size.patch (Upstream has different size, though)
+  + horizon-keep-image-properties.patch (Solved differently, search
+    for meta["purge_probs"])
+- Added patches:
+  + horizon-user-email.patch - Last part of 'suse-patches.diff',
+    currently disabled, check if needed
+- Package additional languages
+- Renamed theme tarball from green.tar.gz to 
+  openstack-dashboard-suse-theme.tar.bz2
+- TODO/FIXME: multiple files per lang
+
+-------------------------------------------------------------------
+Thu Nov  8 11:45:18 UTC 2012 - sasc...@suse.de
+
+- Drop from_vcs build flag

Old:
----
  backports.patch
  green.tar.gz
  horizon-2012.1+git.1346336140.35eada8.tar.gz
  horizon-keep-image-properties.patch
  horizon-launch-from-volume.patch
  horizon-secure_SECRET_KEY.patch
  horizon-suse-branding.patch
  suse-patches.diff
  vnc-iframe-size.patch

New:
----
  horizon-stable-folsom.tar.gz
  horizon-user-email.patch
  openstack-dashboard-suse-theme.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openstack-dashboard.spec ++++++
--- /var/tmp/diff_new_pack.xuiNRN/_old  2013-01-17 09:51:54.000000000 +0100
+++ /var/tmp/diff_new_pack.xuiNRN/_new  2013-01-17 09:51:54.000000000 +0100
@@ -19,49 +19,45 @@
 %define component horizon
 
 Name:           openstack-dashboard
-Version:        2012.1+git.1346336140.35eada8
+Version:        2012.2.2+git.1355916357.da9a19c
 Release:        0
 License:        Apache-2.0
 Summary:        OpenStack Dashboard (Horizon)
 Url:            http://wiki.openstack.org/OpenStackDashboard
 Group:          Development/Languages/Python
-Source:         %{component}-%{version}.tar.gz
-Source1:        green.tar.gz
+Source:         horizon-stable-folsom.tar.gz
+Source1:        openstack-dashboard-suse-theme.tar.bz2
 # Apache2 example configuration:
 Source2:        openstack-dashboard.conf.sample
-Patch0:         suse-patches.diff
-Patch2:         backports.patch
-# PATCH-FIX-UPSTREAM: Backport of https://review.openstack.org/#/c/8799
-Patch3:         horizon-secure_SECRET_KEY.patch
-# PATCH-FIX-OPENSUSE: Backport of several SSL-related fixes
-Patch4:         horizon-ssl.patch
+# PATCH-FIX-OPENSUSE sasc...@suse.de -- TODO/FIXME: Check the user email patch 
is still necessary
+Patch1:         horizon-user-email.patch
 # backport 
https://review.openstack.org/#/c/5204/7/horizon/tests/testsettings.py,unified
-Patch5:         horizon-minimumpwlen.patch
-Patch7:         vnc-iframe-size.patch
-# PATCH-FIX-UPSTREAM horizon-keep-image-properties.patch bnc#777855 
vu...@suse.com -- Do not lose properties when editing an image, cherry-picked 
from Folsom
-Patch9:         horizon-keep-image-properties.patch
-# PATCH-FIX-OPENSUSE: SUSE Cloud branding
-Patch10:        horizon-suse-branding.patch
-# PATCH-FIX-UPSTREAM horizon-launch-from-volume-.patch bnc#780982 
sasc...@susee.de -- Launch from volume with valid volume size
-Patch11:        horizon-launch-from-volume.patch
+Patch2:         horizon-minimumpwlen.patch
+# PATCH-FIX-OPENSUSE: Backport of several SSL-related fixes
+Patch3:         horizon-ssl.patch
 BuildRequires:  apache2
 BuildRequires:  fdupes
+BuildRequires:  openstack-macros
 BuildRequires:  python-devel
-BuildRequires:  python-setuptools
+BuildRequires:  python-distribute
+# Avoid nodejs at runtime:
+# The following are needed to compress LESS files during built time
+BuildRequires:  nodejs
+BuildRequires:  python-cinderclient
+BuildRequires:  python-django
+BuildRequires:  python-django-appconf
+BuildRequires:  python-django_compressor
+BuildRequires:  python-django_openstack_auth
+BuildRequires:  python-glanceclient
+BuildRequires:  python-novaclient
+BuildRequires:  python-prettytable
+BuildRequires:  python-quantumclient
+BuildRequires:  python-swiftclient
+# End: Avoid nodejs at runtime:
 Requires:       apache2
 Requires:       apache2-mod_wsgi
-# temporary requires - there will (most likely) be patterns with and without 
the config subpackage
-Requires:       openstack-dashboard-config = %{version}
 Requires:       python >= 2.6.8
-Requires:       python-cloudfiles
-Requires:       python-dateutil
-Requires:       python-django >= 1.4
-Requires:       python-glance
 Requires:       python-horizon = %{version}
-Requires:       python-keystoneclient
-# For secure SECRET_KEY generation:
-Requires:       python-lockfile
-Requires:       python-novaclient
 Recommends:     openstack-novncproxy
 # Can't hurt to also provide openstack-horizon:
 Provides:       openstack-%{component} = %{version}
@@ -70,6 +66,9 @@
 Requires(post): apache2-utils
 Requires(post): openssl
 Requires(post): sysconfig
+Provides:       openstack-dashboard-config = %{version}
+#TODO: Change back to '<' after next version update:
+Obsoletes:      openstack-dashboard-config <= %{version}
 %if 0%{?suse_version} && 0%{?suse_version} <= 1110
 %{!?python_sitelib: %global python_sitelib %(python -c "from 
distutils.sysconfig import get_python_lib; print get_python_lib()")}
 %else
@@ -88,90 +87,98 @@
 using the native OpenStack API or the EC2 compatibility API.
 
 %package -n python-horizon
-
-
 Summary:        OpenStack Dashboard (Horizon) - Python module
 Group:          Development/Languages/Python
-#TODO/FIXME: This shouldn't be needed:
-#Requires:       %%{name} = %%{version}
+Requires:       python-cinderclient
+Requires:       python-django >= 1.4
+Requires:       python-django_compressor
+Requires:       python-django_openstack_auth
+Requires:       python-glanceclient
+Requires:       python-keystoneclient
+Requires:       python-lockfile
+Requires:       python-novaclient
+Requires:       python-pytz
+Requires:       python-quantumclient
+Requires:       python-swiftclient
 
 %description -n python-horizon
 The Python module horizon is the core component of the OpenStack
 dashboard.
 
-%package config
-
-
-Summary:        OpenStack Dashboard (Horizon) - Default configuration
-Group:          Development/Languages/Python
-Requires:       %{name} = %{version}
-
-%description config
-A default configuration for the OpenStack dashboard. It is provides
-best-practices and recommendations.
-
 %package test
-
-
 Summary:        OpenStack Dashboard (Horizon) - Testsuite
 Group:          Development/Languages/Python
 Requires:       %{name} = %{version}
 Requires:       python-coverage
 Requires:       python-django-nose
 Requires:       python-django-nose-selenium
-# Disabled: the selenium tests are not run by default, and pushing selenium to
-# Factory would require too much time for now. We might need to patch the
-# source to kill the selenium-related import later, though.
-#Requires:       python-selenium
+Requires:       python-mox
+Requires:       python-netaddr
+Requires:       python-nose
+Requires:       python-nose-exclude
+Requires:       python-nosexcover
+Requires:       python-nosehtmloutput
+Requires:       python-openstack.nose_plugin
+%if 0%{?with_selenium}
+Requires:       python-selenium
+%else
+# python-selenium is not available by default, but we can try to drag it in
+Recommends:     python-selenium
+%endif
 
 %description test
 The OpenStack dashboard testsuite. It is used to verify the
 functionality of the OpenStack dashboard and its components.
 
 %prep
-%setup -q -n %{component}-%{version}
-tar xf %{SOURCE1} ; cp -a green/* openstack_dashboard/static/dashboard/
-%patch0 -p1
+%setup -q -n horizon-2012.2.2
+# Apply SUSE Cloud branding / theme
+pushd openstack_dashboard/static
+tar xf %{SOURCE1} 
+popd
+# End of SUSE Cloud branding
+# TODO: Check if this is needed:
+#patch1 -p1
 %patch2 -p1
 %patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch7
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
-# Fix non-executable script rpmlint warning:
-sed -i "/\#\!\/bin\/bash/d" 
horizon/dashboards/settings/templates/settings/{ec2/ec2rc.sh,project/openrc.sh}.template
+%openstack_cleanup_prep
 
 %build
 python setup.py build
 
+#TODO/FIXME: Is this really needed despite COMPRESS_OFFLINE that we set in 
%%install?
+#Drop COMPRESS_PRECOMPILERS from settings (we needed it before, thus no patch):
+lineno=$(grep -n less_binary openstack_dashboard/settings.py | cut -d":" -f1 | 
head -n1)
+sed -i "$lineno,$(( $lineno + 4))d" openstack_dashboard/settings.py
+
 %install
-install -d -m 755 %{buildroot}%{_localstatedir}/lib/openstack-dashboard
-install -d -m 755 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard
-install -d -m 755 %{buildroot}%{_localstatedir}/lib/openstack-dashboard/horizon
+python setup.py install --prefix=%{_prefix} --root=%{buildroot}
+
+# Do not package LESS
+rm -r %{buildroot}%{python_sitelib}/bin/
+
+# Remove po files
+find %{buildroot}%{python_sitelib}/horizon/locale 
%{buildroot}%{python_sitelib}/openstack_dashboard/locale -name "*.po" -delete 
-print
 
 # test subpackage
 install -d -m 755 %{buildroot}%{_localstatedir}/lib/openstack-dashboard-test
-cp -av .pylintrc * %{buildroot}%{_localstatedir}/lib/openstack-dashboard-test
+cp -a .pylintrc * %{buildroot}%{_localstatedir}/lib/openstack-dashboard-test
 find %{buildroot}%{_localstatedir}/lib/openstack-dashboard-test -name 
".gitignore" | xargs rm -f
 rm -rf %{buildroot}%{_localstatedir}/lib/openstack-dashboard-test/horizon
 rm -rf 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard-test/openstack_dashboard
 ln -s %{python_sitelib}/horizon 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard-test/horizon
-ln -s %{python_sitelib}/openstack_dashboard 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard-test/openstack_dashboard
+ln -s %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard-test/openstack_dashboard
 
-python setup.py install --prefix=%{_prefix} --root=%{buildroot} 
--record-rpm=INSTALLED_FILES_ALL
-cp -av manage.py %{buildroot}%{_localstatedir}/lib/openstack-dashboard/
-pushd openstack_dashboard
-cp -av local static wsgi 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard
-cp -av templates %{buildroot}%{python_sitelib}/openstack_dashboard/
-popd
-pushd horizon
-cp -av static locale 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/horizon
-popd
+# Move openstack_dashboard files
+install -d -m 755 %{buildroot}%{_localstatedir}/lib/openstack-dashboard
+mv %{buildroot}%{python_sitelib}/openstack_dashboard/ 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/
+cp -a manage.py %{buildroot}%{_localstatedir}/lib/openstack-dashboard/
 
+## Create a local_settings.py
 mv 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/local_settings.py.example
 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/local_settings.py
+
 cat <<EOF >> 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/local_settings.py
+COMPRESS_OFFLINE = True
 SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
 DATABASES = {
     'default': {
@@ -190,85 +197,118 @@
 sed -i -e "s|\# \(from horizon\.utils import secret_key\)|\1|" \
        -e "s|\# \(SECRET_KEY = .*\)|\1|" 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/local_settings.py
 
-(cd 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/static/
 ; find -type f | xargs chmod a-x )
+### Pre-compile LESS files to CSS:
+# http://django_compressor.readthedocs.org/en/latest/usage/#pre-compression:
+
+# Copy static files, to have them all in one places and so we can compress as 
needed
+mkdir -p %{buildroot}%{_localstatedir}/lib/openstack-dashboard/static
+cp -a openstack_dashboard/static/* 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/static
+cp -a horizon/static/* 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/static
+
+pushd %{buildroot}%{_localstatedir}/lib/openstack-dashboard/
+export PYTHONPATH="$( pwd ):%{buildroot}/%{python_sitelib}:$PYTHONPATH"
+python manage.py collectstatic --noinput
+python manage.py compress --force
+# Cleanup pyc files
+find . -type f -name "*.pyc" -delete -print
+popd
+
+# CSS/JS should be non-executable
+find %{buildroot}%{_localstatedir}/lib/openstack-dashboard/static/ -type f | 
xargs chmod a-x
 
-# remove local settings file from python module
-# this belongs 1. in /var and 2. in the config sub package, see below
-rm -rf %{buildroot}%{python_sitelib}/openstack_dashboard/local
-# link local settings
-ln -s %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local 
%{buildroot}%{python_sitelib}/openstack_dashboard/local
+## Some final stuff
 
-# remove duplicate files
+# Remove duplicate files
 %if 0%{?suse_version}
 %fdupes %{buildroot}%{python_sitelib}
 %fdupes %{buildroot}%{_localstatedir}/lib/openstack-dashboard
 %fdupes %{buildroot}%{_localstatedir}/lib/openstack-dashboard-test
 %endif
 
-#remove po files
-find %{buildroot}%{_localstatedir}/lib/openstack-dashboard/horizon/locale 
-name "*.po" | xargs rm -f
-
 # Apache2 SSL certificate stubs (generated in %%post)
-install -d %{buildroot}%{_sysconfdir}/apache2/ssl.{crt,csr,key}
-install -d %{buildroot}/srv/www/htdocs
-touch 
%{buildroot}%{_sysconfdir}/apache2/ssl.key/openstack-dashboard-{ca,server}.key
-touch %{buildroot}%{_sysconfdir}/apache2/ssl.csr/openstack-dashboard-server.csr
-touch 
%{buildroot}%{_sysconfdir}/apache2/ssl.crt/openstack-dashboard-{ca,server}.crt
+%openstack_apache_ssl_cert_install
 
 # Apache2 sample configuration
 install -d %{buildroot}%{_sysconfdir}/apache2/conf.d
 install -m 644 %{SOURCE2} 
%{buildroot}%{_sysconfdir}/apache2/conf.d/openstack-dashboard.conf.sample
 
-#TODO: Maybe move Apache2-related stuff + certs into sub-package?
-
 %post
-if [ ! -s %{_sysconfdir}/apache2/ssl.csr/openstack-dashboard-server.csr ] ; 
then
-    # Generate a self-signed certificate to be used in non-production 
Dashboard setups:
-    (umask 377 ; /usr/bin/gensslcert -C openstack-dashboard -n 
openstack-dashboard.example.com)
-fi
+%openstack_apache_ssl_cert_post
 
 %files
 %defattr(-,root,root)
 %dir %{_localstatedir}/lib/openstack-dashboard
-%dir %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard
-%dir %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/wsgi
-%dir %attr(0750, wwwrun, www) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local
-%dir %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/static
-%dir %{_localstatedir}/lib/openstack-dashboard/horizon
-%dir %{_localstatedir}/lib/openstack-dashboard/horizon/static
 %{_localstatedir}/lib/openstack-dashboard/manage.py
-%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/static/*
-%{_localstatedir}/lib/openstack-dashboard/horizon/static/*
-%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
-# lang files
-%dir %{_localstatedir}/lib/openstack-dashboard/horizon/locale
-%dir %{_localstatedir}/lib/openstack-dashboard/horizon/locale/*
-%dir %{_localstatedir}/lib/openstack-dashboard/horizon/locale/*/LC_MESSAGES
-%lang(es) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/es/LC_MESSAGES/django.mo
-%lang(fr) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/fr/LC_MESSAGES/django.mo
-%lang(ja) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/ja/LC_MESSAGES/django.mo
-%lang(pl) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/pl/LC_MESSAGES/django.mo
-%lang(pt) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/pt/LC_MESSAGES/django.mo
-#%%lang(zh-cn) 
%%{_localstatedir}/lib/openstack-dashboard/horizon/locale/zh_CN/LC_MESSAGES/django.mo
-%lang(zh-tw) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/zh_TW/LC_MESSAGES/django.mo
-%ghost %{_sysconfdir}/apache2/ssl.key/openstack-dashboard-*.key
-%ghost %{_sysconfdir}/apache2/ssl.csr/openstack-dashboard-server.csr
-%ghost %{_sysconfdir}/apache2/ssl.crt/openstack-dashboard-*.crt
-%{_sysconfdir}/apache2/conf.d/openstack-dashboard.conf.sample
-
-%files config
-%defattr(0750,root,root)
+%dir %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard
 %dir %attr(0750, wwwrun, www) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local
 %attr(0640, wwwrun, www) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/__init__.py
 %config(noreplace) %attr(0640, wwwrun, www) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/local_settings.py
+%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/static/
+%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/templates/
+%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/test/
+%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/wsgi/
+%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/*.py
+%{_localstatedir}/lib/openstack-dashboard/static/
+%openstack_apache_ssl_cert_files
+%{_sysconfdir}/apache2/conf.d/openstack-dashboard.conf.sample
+
+# lang files
+%dir %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale
+%dir %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/*
+%dir 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/*/LC_MESSAGES
+%lang(bg-bg) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/bg_BG/LC_MESSAGES/django.mo
+%lang(cs) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/cs/LC_MESSAGES/django.mo
+%lang(en) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/en/LC_MESSAGES/django.mo
+%lang(es) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/es/LC_MESSAGES/django.mo
+%lang(fr) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/fr/LC_MESSAGES/django.mo
+%lang(ja) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/ja/LC_MESSAGES/django.mo
+%lang(ko) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/ko_KR/LC_MESSAGES/django.mo
+%lang(nl-nl) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/nl_NL/LC_MESSAGES/django.mo
+%lang(pl) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/pl/LC_MESSAGES/django.mo
+%lang(pt) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/pt/LC_MESSAGES/django.mo
+%lang(pt-br) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/pt_BR/LC_MESSAGES/django.mo
+%lang(zh-cn) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/zh_CN/LC_MESSAGES/django.mo
+%lang(zh-tw) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/locale/zh_TW/LC_MESSAGES/django.mo
 
 %files -n python-horizon
 %defattr(-,root,root)
-%{python_sitelib}/*
+%{python_sitelib}/horizon/
+%{python_sitelib}/horizon-*.egg-info
+
+# FIXME: we should package the translations with %%lang, but just doing it the
+# way below will package the files twice...
+## lang files
+#%%lang(bg-bg) %%{python_sitelib}/horizon/locale/bg_BG/LC_MESSAGES/django.mo
+#%%lang(bg-bg) %%{python_sitelib}/horizon/locale/bg_BG/LC_MESSAGES/djangojs.mo
+#%%lang(en) %%{python_sitelib}/horizon/locale/en/LC_MESSAGES/django.mo
+#%%lang(en) %%{python_sitelib}/horizon/locale/en/LC_MESSAGES/djangojs.mo
+#%%lang(es) %%{python_sitelib}/horizon/locale/es/LC_MESSAGES/django.mo
+#%%lang(es) %%{python_sitelib}/horizon/locale/es/LC_MESSAGES/djangojs.mo
+#%%lang(fr) %%{python_sitelib}/horizon/locale/fr/LC_MESSAGES/django.mo
+#%%lang(fr) %%{python_sitelib}/horizon/locale/fr/LC_MESSAGES/djangojs.mo
+#%%lang(it) %%{python_sitelib}/horizon/locale/it/LC_MESSAGES/django.mo
+#%%lang(it) %%{python_sitelib}/horizon/locale/it/LC_MESSAGES/djangojs.mo
+#%%lang(ja) %%{python_sitelib}/horizon/locale/ja/LC_MESSAGES/django.mo
+#%%lang(ja) %%{python_sitelib}/horizon/locale/ja/LC_MESSAGES/djangojs.mo
+#%%lang(ko) %%{python_sitelib}/horizon/locale/ko_KR/LC_MESSAGES/django.mo
+#%%lang(ko) %%{python_sitelib}/horizon/locale/ko_KR/LC_MESSAGES/djangojs.mo
+#%%lang(nl-nl) %%{python_sitelib}/horizon/locale/nl_NL/LC_MESSAGES/django.mo
+#%%lang(nl-nl) %%{python_sitelib}/horizon/locale/nl_NL/LC_MESSAGES/djangojs.mo
+#%%lang(pl) %%{python_sitelib}/horizon/locale/pl/LC_MESSAGES/django.mo
+#%%lang(pl) %%{python_sitelib}/horizon/locale/pl/LC_MESSAGES/djangojs.mo
+#%%lang(pt) %%{python_sitelib}/horizon/locale/pt/LC_MESSAGES/django.mo
+#%%lang(pt) %%{python_sitelib}/horizon/locale/pt/LC_MESSAGES/djangojs.mo
+#%%lang(pt-br) %%{python_sitelib}/horizon/locale/pt_BR/LC_MESSAGES/django.mo
+#%%lang(pt-br) %%{python_sitelib}/horizon/locale/pt_BR/LC_MESSAGES/djangojs.mo
+#%%lang(ru) %%{python_sitelib}/horizon/locale/ru/LC_MESSAGES/django.mo
+#%%lang(ru) %%{python_sitelib}/horizon/locale/ru/LC_MESSAGES/djangojs.mo
+#%%lang(zh-cn) %%{python_sitelib}/horizon/locale/zh_CN/LC_MESSAGES/django.mo
+#%%lang(zh-cn) %%{python_sitelib}/horizon/locale/zh_CN/LC_MESSAGES/djangojs.mo
+#%%lang(zh-tw) %%{python_sitelib}/horizon/locale/zh_TW/LC_MESSAGES/django.mo
+#%%lang(zh-tw) %%{python_sitelib}/horizon/locale/zh_TW/LC_MESSAGES/djangojs.mo
 
 %files test
 %defattr(-,root,root)
 %{_localstatedir}/lib/openstack-dashboard-test/
-%{_localstatedir}/lib/openstack-dashboard-test/.pylintrc
 
 %changelog

++++++ _service ++++++
--- /var/tmp/diff_new_pack.xuiNRN/_old  2013-01-17 09:51:54.000000000 +0100
+++ /var/tmp/diff_new_pack.xuiNRN/_new  2013-01-17 09:51:54.000000000 +0100
@@ -1,22 +1,6 @@
 <services>
-  <service name="tar_scm" mode="disabled">
-    <param name="url">git://github.com/openstack/horizon.git</param>
-    <param name="scm">git</param>
-    <param name="exclude">.git</param>
-    <param name="exclude">.gitreview</param>
-    <param name="version">git-master</param>
-    <param name="versionformat">2012.1+git.%ct.%h</param>
-
-    <!-- Use this if you want a specific revision. -->
-    <param name="revision">stable/essex</param>
-  </service>
-
-  <service name="recompress" mode="disabled">
-    <param name="file">horizon-*git*.tar</param>
-    <param name="compression">gz</param>
-  </service>
-
-  <service name="set_version" mode="disabled">
-    <param name="basename">horizon</param>
+  <service name="git_tarballs" mode="disabled">
+    <param 
name="url">http://tarballs.openstack.org/horizon/horizon-stable-folsom.tar.gz</param>
+    <param name="email">cloud-de...@suse.de</param>
   </service>
 </services>

++++++ horizon-minimumpwlen.patch ++++++
--- /var/tmp/diff_new_pack.xuiNRN/_old  2013-01-17 09:51:54.000000000 +0100
+++ /var/tmp/diff_new_pack.xuiNRN/_new  2013-01-17 09:51:54.000000000 +0100
@@ -1,22 +1,23 @@
-Index: 
horizon-2012.1+git.1344931337.691dd22/openstack_dashboard/local/local_settings.py.example
-===================================================================
---- 
horizon-2012.1+git.1344931337.691dd22.orig/openstack_dashboard/local/local_settings.py.example
-+++ 
horizon-2012.1+git.1344931337.691dd22/openstack_dashboard/local/local_settings.py.example
-@@ -8,12 +8,12 @@ PROD = False
- USE_SSL = False
+diff -ruN a/openstack_dashboard/local/local_settings.py.example 
b/openstack_dashboard/local/local_settings.py.example
+--- a/openstack_dashboard/local/local_settings.py.example      2012-11-12 
16:17:06.000000000 +0100
++++ b/openstack_dashboard/local/local_settings.py.example      2012-11-13 
14:59:33.000000000 +0100
+@@ -13,13 +13,13 @@
+ # SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')
  
  # Specify a regular expression to validate user passwords.
 -# HORIZON_CONFIG = {
 -#     "password_validator": {
 -#         "regex": '.*',
 -#         "help_text": _("Your password does not meet the requirements.")
--#     }
+-#     },
+-#    'help_url': "http://docs.openstack.org";
 -# }
 +HORIZON_CONFIG = {
 +    "password_validator": {
 +        "regex": '.{8,}',
 +        "help_text": _("Your password must be at least 8 characters long.")
-+    }
++    },
++   'help_url': "http://docs.openstack.org";
 +}
  
  LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))

++++++ horizon-ssl.patch ++++++
--- /var/tmp/diff_new_pack.xuiNRN/_old  2013-01-17 09:51:54.000000000 +0100
+++ /var/tmp/diff_new_pack.xuiNRN/_new  2013-01-17 09:51:54.000000000 +0100
@@ -1,121 +1,20 @@
-Index: horizon-2012.1+git.1344931337.691dd22/horizon/api/keystone.py
-===================================================================
---- horizon-2012.1+git.1344931337.691dd22.orig/horizon/api/keystone.py
-+++ horizon-2012.1+git.1344931337.691dd22/horizon/api/keystone.py
-@@ -113,13 +113,15 @@ def keystoneclient(request, username=Non
+diff -ruN a/horizon/api/keystone.py b/horizon/api/keystone.py
+--- a/horizon/api/keystone.py  2012-11-12 16:17:06.000000000 +0100
++++ b/horizon/api/keystone.py  2012-12-03 16:41:53.354283162 +0100
+@@ -112,13 +112,11 @@
+         conn = getattr(request, cache_attr)
      else:
-         endpoint_lookup = _get_endpoint_url(request, endpoint_type)
-         auth_url = endpoint or endpoint_lookup
+         endpoint = _get_endpoint_url(request, endpoint_type)
+-        # FIXME(ttrifonov): temporarily commented,
+-        # as the fix in Keystone is not merged yet
+-        #insecure = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False)
 +        insecure = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False)
-         LOG.debug("Creating a new keystoneclient connection to %s." % 
auth_url)
-         conn = keystone_client.Client(username=username or user.username,
-                                       password=password,
-                                       tenant_id=tenant_id or user.tenant_id,
-                                       token=token_id or user.token,
-                                       auth_url=auth_url,
+         LOG.debug("Creating a new keystoneclient connection to %s." % 
endpoint)
+         conn = keystone_client.Client(token=user.token.id,
 -                                      endpoint=endpoint)
+-        #                              insecure=insecure)
 +                                      endpoint=endpoint,
 +                                      insecure=insecure)
          setattr(request, cache_attr, conn)
- 
-     # Fetch the correct endpoint if we've re-scoped the token.
-Index: 
horizon-2012.1+git.1344931337.691dd22/openstack_dashboard/local/local_settings.py.example
-===================================================================
---- 
horizon-2012.1+git.1344931337.691dd22.orig/openstack_dashboard/local/local_settings.py.example
-+++ 
horizon-2012.1+git.1344931337.691dd22/openstack_dashboard/local/local_settings.py.example
-@@ -54,6 +54,8 @@ EMAIL_BACKEND = 'django.core.mail.backen
- OPENSTACK_HOST = "127.0.0.1"
- OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0"; % OPENSTACK_HOST
- OPENSTACK_KEYSTONE_DEFAULT_ROLE = "Member"
-+# Disable SSL certificate checks (useful for self-signed certificates):
-+# OPENSTACK_SSL_NO_VERIFY = True
- 
- # The OPENSTACK_KEYSTONE_BACKEND settings can be used to identify the
- # capabilities of the auth backend for Keystone.
-Index: 
horizon-2012.1+git.1344931337.691dd22/horizon/tests/api_tests/keystone_tests.py
-===================================================================
---- 
horizon-2012.1+git.1344931337.691dd22.orig/horizon/tests/api_tests/keystone_tests.py
-+++ 
horizon-2012.1+git.1344931337.691dd22/horizon/tests/api_tests/keystone_tests.py
-@@ -50,6 +50,7 @@ class ClientConnectionTests(test.TestCas
-     def test_connect(self):
-         keystone_client.Client(auth_url=self.internal_url,
-                                endpoint=None,
-+                               insecure=False,
-                                password=self.user.password,
-                                tenant_id=None,
-                                token=None,
-@@ -64,6 +65,7 @@ class ClientConnectionTests(test.TestCas
-         self.test_user.roles = [{'name': 'admin'}]
-         keystone_client.Client(auth_url=self.admin_url,
-                                endpoint=None,
-+                               insecure=False,
-                                password=self.user.password,
-                                tenant_id=None,
-                                token=None,
-Index: horizon-2012.1+git.1344931337.691dd22/horizon/api/nova.py
-===================================================================
---- horizon-2012.1+git.1344931337.691dd22.orig/horizon/api/nova.py
-+++ horizon-2012.1+git.1344931337.691dd22/horizon/api/nova.py
-@@ -24,6 +24,9 @@ from __future__ import absolute_import
- 
- import logging
- 
-+from django.conf import settings
-+from django.utils.translation import ugettext as _
-+
- from novaclient.v1_1 import client as nova_client
- from novaclient.v1_1 import security_group_rules as nova_rules
- from novaclient.v1_1.security_groups import SecurityGroup as NovaSecurityGroup
-@@ -31,8 +34,6 @@ from novaclient.v1_1.servers import REBO
- 
- from horizon.api.base import APIResourceWrapper, APIDictWrapper, url_for
- 
--from django.utils.translation import ugettext as _
--
- LOG = logging.getLogger(__name__)
- 
- 
-@@ -191,10 +192,12 @@ class SecurityGroupRule(APIResourceWrapp
- def novaclient(request):
-     LOG.debug('novaclient connection created using token "%s" and url "%s"' %
-               (request.user.token, url_for(request, 'compute')))
-+    insecure = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False)
-     c = nova_client.Client(request.user.username,
-                            request.user.token,
-                            project_id=request.user.tenant_id,
--                           auth_url=url_for(request, 'compute'))
-+                           auth_url=url_for(request, 'compute'),
-+                           insecure=insecure)
-     c.client.auth_token = request.user.token
-     c.client.management_url = url_for(request, 'compute')
-     return c
-@@ -203,10 +206,12 @@ def novaclient(request):
- def cinderclient(request):
-     LOG.debug('cinderclient connection created using token "%s" and url "%s"' 
%
-               (request.user.token, url_for(request, 'volume')))
-+    insecure = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False)
-     c = nova_client.Client(request.user.username,
-                            request.user.token,
-                            project_id=request.user.tenant_id,
--                           auth_url=url_for(request, 'volume'))
-+                           auth_url=url_for(request, 'volume'),
-+                           insecure=insecure)
-     c.client.auth_token = request.user.token
-     c.client.management_url = url_for(request, 'volume')
-     return c
-Index: horizon-2012.1+git.1344931337.691dd22/horizon/api/glance.py
-===================================================================
---- horizon-2012.1+git.1344931337.691dd22.orig/horizon/api/glance.py
-+++ horizon-2012.1+git.1344931337.691dd22/horizon/api/glance.py
-@@ -89,8 +89,11 @@ def glanceclient(request):
-     o = urlparse.urlparse(url_for(request, 'image'))
-     LOG.debug('glanceclient connection created for host "%s:%d"' %
-                      (o.hostname, o.port))
-+    insecure = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False)
-     return glance_client.Client(o.hostname,
-                                 o.port,
-+                                insecure=insecure,
-+                                use_ssl=(o.scheme == 'https'),
-                                 auth_tok=request.user.token)
- 
+     return conn
  

++++++ horizon-user-email.patch ++++++
diff -ruN a/horizon/dashboards/syspanel/users/tables.py 
b/horizon/dashboards/syspanel/users/tables.py
--- a/horizon/dashboards/syspanel/users/tables.py       2012-11-12 
16:17:06.000000000 +0100
+++ b/horizon/dashboards/syspanel/users/tables.py       2012-11-13 
14:34:53.000000000 +0100
@@ -92,7 +92,7 @@
 
         def comp(user):
             if any([q in (user.name or "").lower(),
-                    q in (user.email or "").lower()]):
+                    q in ((hasattr(user, 'email') and user.email) or 
"").lower()]):
                 return True
             return False
 
Binary files a/horizon/dashboards/syspanel/users/.tables.py.swp and 
b/horizon/dashboards/syspanel/users/.tables.py.swp differ
++++++ openstack-dashboard.conf.sample ++++++
--- /var/tmp/diff_new_pack.xuiNRN/_old  2013-01-17 09:51:54.000000000 +0100
+++ /var/tmp/diff_new_pack.xuiNRN/_new  2013-01-17 09:51:54.000000000 +0100
@@ -16,18 +16,6 @@
 
     DocumentRoot /var/lib/openstack-dashboard/
 
-    Alias /static/horizon /var/lib/openstack-dashboard/horizon/static/horizon
-    <Directory /var/lib/openstack-dashboard/horizon/static/>
-        Order allow,deny
-        Allow from all
-    </Directory>
-
-    Alias /static /var/lib/openstack-dashboard/openstack_dashboard/static
-    <Directory /var/lib/openstack-dashboard/openstack_dashboard/static/>
-        Order allow,deny
-        Allow from all
-    </Directory>
-
     WSGIScriptAlias / 
/var/lib/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
     <Directory /var/lib/openstack-dashboard/openstack_dashboard/wsgi/>
         Order allow,deny
@@ -58,18 +46,6 @@
 
     DocumentRoot /var/lib/openstack-dashboard/
 
-    Alias /static/horizon /var/lib/openstack-dashboard/horizon/static/horizon
-    <Directory /var/lib/openstack-dashboard/horizon/static/>
-        Order allow,deny
-        Allow from all
-    </Directory>
-
-    Alias /static /var/lib/openstack-dashboard/openstack_dashboard/static
-    <Directory /var/lib/openstack-dashboard/openstack_dashboard/static/>
-        Order allow,deny
-        Allow from all
-    </Directory>
-
     WSGIScriptAlias / 
/var/lib/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
     <Directory /var/lib/openstack-dashboard/openstack_dashboard/wsgi/>
         Order allow,deny

++++++ rpmlintrc ++++++
--- /var/tmp/diff_new_pack.xuiNRN/_old  2013-01-17 09:51:54.000000000 +0100
+++ /var/tmp/diff_new_pack.xuiNRN/_new  2013-01-17 09:51:54.000000000 +0100
@@ -8,3 +8,4 @@
 addFilter("file-not-in-%lang /var/lib/openstack-dashboard-test")
 # Pylint config may be useful for testing:
 addFilter("hidden-file-or-dir /var/lib/openstack-dashboard-test/.pylintrc")
+addFilter("non-conffile-in-etc 
/etc/apache2/conf.d/openstack-dashboard.conf.sample")

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to