From 89a50dd083cb8e58dff02b62b4fcff71931a7e57 Mon Sep 17 00:00:00 2001 From: Roman Bogorodskiy Date: Mon, 19 Dec 2016 16:39:06 +0000 Subject: Add www/py-horizon, OpenStack Dashboard Horizon is a Django-based project aimed at providing a complete OpenStack Dashboard along with an extensible framework for building new dashboards from reusable components. PR: 215155 Submitted by: Alexander Nusov (alexander.nusov@nfvexpress.com) --- GIDs | 2 +- UIDs | 2 +- www/Makefile | 1 + www/py-horizon/Makefile | 86 ++++++++++++++++++++++++++++++++++++ www/py-horizon/distinfo | 3 ++ www/py-horizon/files/01-django.patch | 13 ++++++ www/py-horizon/files/pkg-message.in | 29 ++++++++++++ www/py-horizon/pkg-descr | 7 +++ 8 files changed, 141 insertions(+), 2 deletions(-) create mode 100644 www/py-horizon/Makefile create mode 100644 www/py-horizon/distinfo create mode 100644 www/py-horizon/files/01-django.patch create mode 100644 www/py-horizon/files/pkg-message.in create mode 100644 www/py-horizon/pkg-descr diff --git a/GIDs b/GIDs index a20a6596ba84..6343fa3840da 100644 --- a/GIDs +++ b/GIDs @@ -139,7 +139,7 @@ saned:*:194: radns:*:195: nova:*:196: dq:*:197: -# free: 198 +horizon:*:198: mcserver:*:199: sympa:*:200: privoxy:*:201: diff --git a/UIDs b/UIDs index 19cebe991764..0cd43e04958a 100644 --- a/UIDs +++ b/UIDs @@ -144,7 +144,7 @@ saned:*:194:194::0:0:SANE Scanner Daemon:/nonexistent:/bin/sh radns:*:195:195::0:0:radns user:/nonexistent:/usr/sbin/nologin nova:*:196:196::0:0:Nova daemon pseudo-user:/var/lib/nova:/usr/sbin/nologin dq:*:197:197::0:0:dqcache user:/nonexistent:/usr/sbin/nologin -# free: 198 +horizon:*:198:198::0:0:Horizon pseudo-user:/var/lib/horizon:/usr/sbin/nologin mcserver:*:199:199::0:0:Minecraft Server:/nonexistent:/bin/sh sympa:*:200:200::0:0:Sympa Owner:/nonexistent:/usr/sbin/nologin privoxy:*:201:201::0:0:Privoxy proxy user:/nonexistent:/usr/sbin/nologin diff --git a/www/Makefile b/www/Makefile index 5392787892ee..afd1f97a4658 100644 --- a/www/Makefile +++ b/www/Makefile @@ -1653,6 +1653,7 @@ SUBDIR += py-graphite-web SUBDIR += py-grequests SUBDIR += py-gunicorn + SUBDIR += py-horizon SUBDIR += py-html SUBDIR += py-html5lib SUBDIR += py-http-parser diff --git a/www/py-horizon/Makefile b/www/py-horizon/Makefile new file mode 100644 index 000000000000..1142c9a2606e --- /dev/null +++ b/www/py-horizon/Makefile @@ -0,0 +1,86 @@ +# Created by: Alexander Nusov +# $FreeBSD$ + +PORTNAME= horizon +PORTVERSION= 10.0.1 +CATEGORIES= www python +MASTER_SITES= https://fossies.org/linux/misc/openstack/ +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= alexander.nusov@nfvexpress.com +COMMENT= OpenStack Dashboard (Horizon) + +LICENSE= APACHE20 + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pbr>=1.6:devel/py-pbr +RUN_DEPENDS:= ${BUILD_DEPENDS} +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}Babel>=2.3.4:devel/py-babel \ + ${PYTHON_PKGNAMEPREFIX}django18>=0:www/py-django18 \ + ${PYTHON_PKGNAMEPREFIX}Pint>=0.5:devel/py-Pint \ + ${PYTHON_PKGNAMEPREFIX}django-babel>=0.5.1:www/py-django-babel \ + ${PYTHON_PKGNAMEPREFIX}django_compressor>=2.0:www/py-django_compressor \ + ${PYTHON_PKGNAMEPREFIX}django_openstack_auth>=2.4.0:www/py-django_openstack_auth \ + ${PYTHON_PKGNAMEPREFIX}django-pyscss>=2.0.2:www/py-django-pyscss \ + ${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601 \ + ${PYTHON_PKGNAMEPREFIX}netaddr>=0:net/py-netaddr \ + ${PYTHON_PKGNAMEPREFIX}oslo.concurrency>=3.8.0:devel/py-oslo.concurrency \ + ${PYTHON_PKGNAMEPREFIX}oslo.config>=3.14.0:devel/py-oslo.config \ + ${PYTHON_PKGNAMEPREFIX}oslo.i18n>=2.1.0:devel/py-oslo.i18n \ + ${PYTHON_PKGNAMEPREFIX}oslo.policy>=1.9.0:devel/py-oslo.policy \ + ${PYTHON_PKGNAMEPREFIX}oslo.serialization>=1.10.0:devel/py-oslo.serialization \ + ${PYTHON_PKGNAMEPREFIX}oslo.utils>=3.16.0:devel/py-oslo.utils \ + ${PYTHON_PKGNAMEPREFIX}pyscss>=1.3.4:textproc/py-pyscss \ + ${PYTHON_PKGNAMEPREFIX}python-ceilometerclient>=2.5.0:net/py-python-ceilometerclient \ + ${PYTHON_PKGNAMEPREFIX}python-cinderclient>=0:net/py-python-cinderclient \ + ${PYTHON_PKGNAMEPREFIX}python-glanceclient>=0:net/py-python-glanceclient \ + ${PYTHON_PKGNAMEPREFIX}python-heatclient>=1.4.0:net/py-python-heatclient \ + ${PYTHON_PKGNAMEPREFIX}python-keystoneclient>=0:net/py-python-keystoneclient \ + ${PYTHON_PKGNAMEPREFIX}python-neutronclient>=5.1.0:net/py-python-neutronclient \ + ${PYTHON_PKGNAMEPREFIX}python-novaclient>=0:net/py-python-novaclient \ + ${PYTHON_PKGNAMEPREFIX}python-swiftclient>=2.2.0:databases/py-python-swiftclient \ + ${PYTHON_PKGNAMEPREFIX}pytz>=2013.6:devel/py-pytz \ + ${PYTHON_PKGNAMEPREFIX}yaml>=3.1.0:devel/py-yaml \ + ${PYTHON_PKGNAMEPREFIX}six>=1.9.0:devel/py-six \ + ${PYTHON_PKGNAMEPREFIX}XStatic>=1.0.0:devel/py-XStatic \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular>=1.3.7:devel/py-XStatic-Angular \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-Bootstrap>=0.11.0.2:devel/py-XStatic-Angular-Bootstrap \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-FileUpload>=12.0.4.0:devel/py-XStatic-Angular-FileUpload \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-Gettext>=2.1.0.2:devel/py-XStatic-Angular-Gettext \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-lrdragndrop>=1.0.2.2:devel/py-XStatic-Angular-lrdragndrop \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-Schema-Form>=0.8.13.0:devel/py-XStatic-Angular-Schema-Form \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Bootstrap-Datepicker>=1.3.1.0:devel/py-XStatic-Bootstrap-Datepicker \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Bootstrap-SCSS>=3:devel/py-XStatic-Bootstrap-SCSS \ + ${PYTHON_PKGNAMEPREFIX}XStatic-bootswatch>=3.3.5.3:devel/py-XStatic-bootswatch \ + ${PYTHON_PKGNAMEPREFIX}XStatic-D3>=3.1.6.2:devel/py-XStatic-D3 \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Hogan>=2.0.0.2:devel/py-XStatic-Hogan \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Font-Awesome>=4.3.0:devel/py-XStatic-Font-Awesome \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Jasmine>=2.1.2.0:devel/py-XStatic-Jasmine \ + ${PYTHON_PKGNAMEPREFIX}XStatic-jQuery>=1.7.2:devel/py-XStatic-jQuery \ + ${PYTHON_PKGNAMEPREFIX}XStatic-JQuery-Migrate>=1.2.1.1:devel/py-XStatic-JQuery-Migrate \ + ${PYTHON_PKGNAMEPREFIX}XStatic-JQuery.quicksearch>=2.0.3.1:devel/py-XStatic-JQuery.quicksearch \ + ${PYTHON_PKGNAMEPREFIX}XStatic-JQuery.TableSorter>=2.14.5.1:devel/py-XStatic-JQuery.TableSorter \ + ${PYTHON_PKGNAMEPREFIX}XStatic-jquery-ui>=1.10.1:devel/py-XStatic-jquery-ui \ + ${PYTHON_PKGNAMEPREFIX}XStatic-JSEncrypt>=2.0.0.2:devel/py-XStatic-JSEncrypt \ + ${PYTHON_PKGNAMEPREFIX}XStatic-mdi>=1.4.57.0:devel/py-XStatic-mdi \ + ${PYTHON_PKGNAMEPREFIX}XStatic-objectpath>=1.2.1.0:devel/py-XStatic-objectpath \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Rickshaw>=1.5.0:devel/py-XStatic-Rickshaw \ + ${PYTHON_PKGNAMEPREFIX}XStatic-roboto-fontface>=0.4.3.2:devel/py-XStatic-roboto-fontface \ + ${PYTHON_PKGNAMEPREFIX}XStatic-smart-table>=0:devel/py-XStatic-smart-table \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Spin>=1.2.5.2:devel/py-XStatic-Spin \ + ${PYTHON_PKGNAMEPREFIX}XStatic-term.js>=0.0.4:devel/py-XStatic-term.js \ + ${PYTHON_PKGNAMEPREFIX}XStatic-tv4>=1.2.7.0:devel/py-XStatic-tv4 + +EXTRA_PATCHES= ${FILESDIR}/01-django.patch:-p1 + +NO_ARCH= yes + +USES= python +USE_PYTHON= autoplist distutils + +USERS= horizon +GROUPS= horizon + +SUB_FILES= pkg-message +SUB_LIST= PYTHON_SITELIBDIR=${PYTHON_SITELIBDIR} + +.include diff --git a/www/py-horizon/distinfo b/www/py-horizon/distinfo new file mode 100644 index 000000000000..915361d443bf --- /dev/null +++ b/www/py-horizon/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1481116590 +SHA256 (horizon-10.0.1.tar.gz) = 919e1e466007684ee80a0dec46f18c7f8147bd826ac1085a262fbb15b6c789be +SIZE (horizon-10.0.1.tar.gz) = 4093291 diff --git a/www/py-horizon/files/01-django.patch b/www/py-horizon/files/01-django.patch new file mode 100644 index 000000000000..e989394a3c71 --- /dev/null +++ b/www/py-horizon/files/01-django.patch @@ -0,0 +1,13 @@ +diff --git a/openstack_dashboard/wsgi/django.wsgi b/openstack_dashboard/wsgi/django.wsgi +index 1be0e06..b7fbe81 100644 +--- a/openstack_dashboard/wsgi/django.wsgi ++++ b/openstack_dashboard/wsgi/django.wsgi +@@ -5,7 +5,7 @@ from django.core.wsgi import get_wsgi_application + from django.conf import settings + + # Add this file path to sys.path in order to import settings +-sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), '../..')) ++sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), '../..'))) + os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_dashboard.settings' + sys.stdout = sys.stderr + diff --git a/www/py-horizon/files/pkg-message.in b/www/py-horizon/files/pkg-message.in new file mode 100644 index 000000000000..72e0c6c83d2b --- /dev/null +++ b/www/py-horizon/files/pkg-message.in @@ -0,0 +1,29 @@ +Please note that this is a development version of Horizon. + +You may serve horizon (OpenStack Dashboard) with apache web server. +Use this snippet as reference: + +WSGIScriptAlias / %%PYTHON_SITELIBDIR%%/openstack_dashboard/wsgi/django.wsgi process-group=horizon +WSGIDaemonProcess horizon user=horizon group=horizon processes=3 threads=10 display-name=%{GROUP} +WSGIProcessGroup horizon +Alias /static/dashboard %%PYTHON_SITELIBDIR%%/openstack_dashboard/static/dashboard + + Require all granted + + + Require all granted + + +Also if you plan to use apache make sure that wsgi4 module is enabled and +you set correct ownership for static and local libraries for openstack_dashboard: + +# chown -R horizon %%PYTHON_SITELIBDIR%%/openstack_dashboard/static +# chown -R horizon %%PYTHON_SITELIBDIR%%/openstack_dashboard/local + +Create local_settings.py with your settings at +%%PYTHON_SITELIBDIR%%/openstack_dashboard/local + +To enable django-compressor add this option to local_settings.py file: + +STATIC_ROOT = '%%PYTHON_SITELIBDIR%%/openstack_dashboard/static' + diff --git a/www/py-horizon/pkg-descr b/www/py-horizon/pkg-descr new file mode 100644 index 000000000000..70d936b0a539 --- /dev/null +++ b/www/py-horizon/pkg-descr @@ -0,0 +1,7 @@ +Horizon is a Django-based project aimed at providing a complete OpenStack +Dashboard along with an extensible framework for building new dashboards from +reusable components. The openstack_dashboard module is a reference +implementation of a Django site that uses the horizon app to provide web-based +interactions with the various OpenStack projects. + +WWW: http://openstack.org/horizon -- cgit v1.2.3