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