Initial ebuild by me, closes bug #435558
authorFabian Groffen <grobian@gentoo.org>
Tue, 10 Mar 2015 20:17:56 +0000 (20:17 +0000)
committerFabian Groffen <grobian@gentoo.org>
Tue, 10 Mar 2015 20:17:56 +0000 (20:17 +0000)
Package-Manager: portage-2.2.14-prefix/cvs/SunOS i386
Manifest-Sign-Key: 0x5F75F607C5C74E89

net-analyzer/graphite-web/ChangeLog [new file with mode: 0644]
net-analyzer/graphite-web/Manifest [new file with mode: 0644]
net-analyzer/graphite-web/files/graphite-web-0.9.13-fhs-paths.patch [new file with mode: 0644]
net-analyzer/graphite-web/files/graphite-web-0.9.13-system-libs.patch [new file with mode: 0644]
net-analyzer/graphite-web/graphite-web-0.9.13.ebuild [new file with mode: 0644]
net-analyzer/graphite-web/metadata.xml [new file with mode: 0644]

diff --git a/net-analyzer/graphite-web/ChangeLog b/net-analyzer/graphite-web/ChangeLog
new file mode 100644 (file)
index 0000000..76a9699
--- /dev/null
@@ -0,0 +1,11 @@
+# ChangeLog for net-analyzer/graphite-web
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-analyzer/graphite-web/ChangeLog,v 1.1 2015/03/10 20:17:50 grobian Exp $
+
+*graphite-web-0.9.13 (10 Mar 2015)
+
+  10 Mar 2015; Fabian Groffen <grobian@gentoo.org>
+  +files/graphite-web-0.9.13-fhs-paths.patch,
+  +files/graphite-web-0.9.13-system-libs.patch, +graphite-web-0.9.13.ebuild,
+  +metadata.xml:
+  Initial ebuild by me, closes bug #435558
diff --git a/net-analyzer/graphite-web/Manifest b/net-analyzer/graphite-web/Manifest
new file mode 100644 (file)
index 0000000..95a5ea2
--- /dev/null
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+AUX graphite-web-0.9.13-fhs-paths.patch 3183 SHA256 f9b04ed5630db24aae233efdee72d373428b2827f27e2a912c98c4c2ce15ed3f SHA512 18ec1ef401c2e3d1209ed3a2a796dfc94088ea7324ae28c3afddd8c857a83ff00afcb5ef0673b838eedae433893b12b57283c9d4a0e53f90b5063ae4f36abcf2 WHIRLPOOL fd2da4ae377f69b20fc7dccfdf64d39cf856656591d6c5947eb9843456ccff290c8e3c0018218b607f8709632e1f90ccf7a62b9b1517953277e9ff3e7cb28af9
+AUX graphite-web-0.9.13-system-libs.patch 3379 SHA256 e9b68c6b5ae8d83927bdda78d3c1bf1ccae54177661156ce75e936eab6bf3972 SHA512 df4b95dfa6f6a58ba2e8aeb7b3d3e26e5d122718b88e2ec747676fcbb0539190ebc9e7938b3d34a73f0018e121ce297faa50af839f138ce5b21116777fcb7748 WHIRLPOOL 04d62f94dc5164ec3799e3ab5807a4c0e03a123899e764ce4ba8aebae4f52f878a757e68c8ec46f05bb8dd42b2ac68912abd546039497efb5c6ce580415964d1
+DIST graphite-web-0.9.13.tar.gz 2182781 SHA256 745ee8cd4c16735df1f7c0a7211dbfdd1234678262a1453aef14d04438260851 SHA512 5e2cc84ec57e1fa0ecff8c9671d8753655a8ce2c07ce2f446451ceaad7679b0cefe932de45315be360b8f13eb25cd25ef179814f340c2c42b0e7048a3d4f4a96 WHIRLPOOL d13f111aaaadb91c5da62a1fd62d36e623501822e5faf3cdea78a7b165a4c111717b2d8d007af29e9bd54e1f5f0b5b648d10908b4721360ae00229aca145623f
+EBUILD graphite-web-0.9.13.ebuild 3049 SHA256 5984d4c0bfc5c356960e9e6dedbf5fc7eed3131a622848d017b4f2928bdd12c4 SHA512 d0569aa36a056a8b3dfa06439d0dfe6c35106176485c00e5f192d4b7f030159a16475507cd4fdaec9520cc55820059b6b5e47bf36a0e020cd938d0378b83df8a WHIRLPOOL eca1b992c1fe8c2007d8aa385e0d56dc3b8c08c3b5b4f3226a921890fb14868f7b4ec009ead7e069842ce7b5f2dc87d34ac6607e1ff6d506392ee2cd7c3d1823
+MISC ChangeLog 494 SHA256 06eeeb0c703932e94b673f60b3f4cb53e2f9b76c0a88ebe9eeecfee7bc63a15e SHA512 e0a831b672610a695affe25bed396bfa674207ef56a9dc63916b3519c84b288e0852f302b8925b775099014c911582b99a69422fb21023b4ac40000dbbc678f3 WHIRLPOOL f09d737b99c8125423fe83008d797e7ca28e0436f019d01ea8cde30ee6a44be39637621dac89823ddc4d9b1993e78cb77d08b7a2b026da90f952f535f69c6b8a
+MISC metadata.xml 234 SHA256 1decd69feb1804dfd01fda996933fd2cd426eb16851b72f40b30b73f5cca7762 SHA512 7af21366d273b8166d7d20a7061e5fb19bad4ece55e2631d28196fa8dd35c16fdac21e5dde36c2f71f215d6e21774d078da9ce27f7d398ec37e5bf7950b385ee WHIRLPOOL 22f8437821a129afd883769051cb4cfdd3a56590e45281f032044bfc5eb641f272f2a08f6d0c6d0b477078c1aeef506857d6ed78352a57e09862c2f04ef33709
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iEYEAREIAAYFAlT/UW8ACgkQX3X2B8XHTokxnQCgo+cCfKeyU+9SeZUYUyK/TFg8
+aykAoJjkQV8nSNCDeaesFm9spKpa1Wh1
+=1gDd
+-----END PGP SIGNATURE-----
diff --git a/net-analyzer/graphite-web/files/graphite-web-0.9.13-fhs-paths.patch b/net-analyzer/graphite-web/files/graphite-web-0.9.13-fhs-paths.patch
new file mode 100644 (file)
index 0000000..ecfce96
--- /dev/null
@@ -0,0 +1,76 @@
+Install FHS-style paths
+
+--- graphite-web-0.9.13/conf/graphite.wsgi.example
++++ graphite-web-0.9.13/conf/graphite.wsgi.example
+@@ -1,5 +1,5 @@
+ import os, sys
+-sys.path.append('/opt/graphite/webapp')
++sys.path.append('@GENTOO_PORTAGE_EPREFIX@/usr/share/graphite-web/webapp')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'graphite.settings')
+ 
+ import django
+--- graphite-web-0.9.13/setup.py
++++ graphite-web-0.9.13/setup.py
+@@ -59,7 +59,6 @@
+   ],
+   package_data={'graphite' :
+     ['templates/*', 'local_settings.py.example']},
+-  scripts=glob('bin/*'),
+-  data_files=webapp_content.items() + storage_dirs + conf_files + examples,
++  data_files=webapp_content.items(),
+   **setup_kwargs
+ )
+--- graphite-web-0.9.13/webapp/graphite/local_settings.py.example
++++ graphite-web-0.9.13/webapp/graphite/local_settings.py.example
+@@ -54,14 +54,14 @@
+ #####################################
+ # Change only GRAPHITE_ROOT if your install is merely shifted from /opt/graphite
+ # to somewhere else
+-#GRAPHITE_ROOT = '/opt/graphite'
++GRAPHITE_ROOT = '@GENTOO_PORTAGE_EPREFIX@/usr/share/graphite-web'
+ 
+ # Most installs done outside of a separate tree such as /opt/graphite will only
+ # need to change these three settings. Note that the default settings for each
+ # of these is relative to GRAPHITE_ROOT
+-#CONF_DIR = '/opt/graphite/conf'
+-#STORAGE_DIR = '/opt/graphite/storage'
+-#CONTENT_DIR = '/opt/graphite/webapp/content'
++CONF_DIR = '@GENTOO_PORTAGE_EPREFIX@/etc/graphite-web'
++STORAGE_DIR = '@GENTOO_PORTAGE_EPREFIX@/var/lib/carbon'
++CONTENT_DIR = '@GENTOO_PORTAGE_EPREFIX@/usr/share/graphite-web/webapp/content'
+ 
+ # To further or fully customize the paths, modify the following. Note that the
+ # default settings for each of these are relative to CONF_DIR and STORAGE_DIR
+@@ -69,6 +69,8 @@
+ ## Webapp config files
+ #DASHBOARD_CONF = '/opt/graphite/conf/dashboard.conf'
+ #GRAPHTEMPLATES_CONF = '/opt/graphite/conf/graphTemplates.conf'
++DASHBOARD_CONF = '@GENTOO_PORTAGE_EPREFIX@/etc/graphite-web/dashboard.conf'
++GRAPHTEMPLATES_CONF = '@GENTOO_PORTAGE_EPREFIX@/etc/graphite-web/graphTemplates.conf'
+ 
+ ## Data directories
+ # NOTE: If any directory is unreadable in DATA_DIRS it will break metric browsing
+@@ -77,7 +79,11 @@
+ #DATA_DIRS = [WHISPER_DIR, RRD_DIR] # Default: set from the above variables
+ #LOG_DIR = '/opt/graphite/storage/log/webapp'
+ #INDEX_FILE = '/opt/graphite/storage/index'  # Search index file
+-
++WHISPER_DIR = '@GENTOO_PORTAGE_EPREFIX@/var/lib/carbon/whisper'
++RRD_DIR = '@GENTOO_PORTAGE_EPREFIX@/var/lib/carbon/rrd'
++DATA_DIRS = [WHISPER_DIR, RRD_DIR] # Default: set from the above variables
++LOG_DIR = '@GENTOO_PORTAGE_EPREFIX@/var/log/graphite-web/'
++INDEX_FILE = '@GENTOO_PORTAGE_EPREFIX@/var/lib/graphite-web/index'  # Search index file
+ 
+ #####################################
+ # Email Configuration #
+--- graphite-web-0.9.13/webapp/graphite/manage.py
++++ graphite-web-0.9.13/webapp/graphite/manage.py
+@@ -6,7 +6,7 @@
+ 
+ 
+ if __name__ == "__main__":
+-    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
++    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "graphite.settings")
+ 
+     from django.core.management import execute_from_command_line
+ 
diff --git a/net-analyzer/graphite-web/files/graphite-web-0.9.13-system-libs.patch b/net-analyzer/graphite-web/files/graphite-web-0.9.13-system-libs.patch
new file mode 100644 (file)
index 0000000..be5bbb9
--- /dev/null
@@ -0,0 +1,100 @@
+From 1ca73dd4ec442d6ada765e5375efee84bbc7522b Mon Sep 17 00:00:00 2001
+From: Jamie Nguyen &lt;j@jamielinux.com&gt;
+Date: Mon, 29 Sep 2014 09:53:22 +0100
+Subject: [PATCH] Force use of system libraries
+
+---
+ setup.py                          | 2 --
+ webapp/graphite/cli/parser.py     | 2 +-
+ webapp/graphite/render/attime.py  | 5 +----
+ webapp/graphite/render/glyph.py   | 5 +----
+ webapp/graphite/render/grammar.py | 2 +-
+ webapp/graphite/render/views.py   | 5 +----
+ 6 files changed, 5 insertions(+), 16 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 4dc0ce0..1b910d1 100644
+--- a/setup.py
++++ b/setup.py
+@@ -54,8 +54,6 @@ setup(
+     'graphite.graphlot',
+     'graphite.events',
+     'graphite.version',
+-    'graphite.thirdparty',
+-    'graphite.thirdparty.pytz',
+   ],
+   package_data={'graphite' :
+     ['templates/*', 'local_settings.py.example']},
+diff --git a/webapp/graphite/cli/parser.py b/webapp/graphite/cli/parser.py
+index ec1a435..7d7d48d 100644
+--- a/webapp/graphite/cli/parser.py
++++ b/webapp/graphite/cli/parser.py
+@@ -12,7 +12,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License."""
+ 
+-from graphite.thirdparty.pyparsing import *
++from pyparsing import *
+ 
+ grammar = Forward()
+ 
+diff --git a/webapp/graphite/render/attime.py b/webapp/graphite/render/attime.py
+index 55a644c..8adde3f 100644
+--- a/webapp/graphite/render/attime.py
++++ b/webapp/graphite/render/attime.py
+@@ -16,10 +16,7 @@ from datetime import datetime,timedelta
+ from time import daylight
+ from django.conf import settings
+ 
+-try: # See if there is a system installation of pytz first
+-  import pytz
+-except ImportError: # Otherwise we fall back to Graphite's bundled version
+-  from graphite.thirdparty import pytz
++import pytz
+ 
+ 
+ months = ['jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec']
+diff --git a/webapp/graphite/render/glyph.py b/webapp/graphite/render/glyph.py
+index a2cc893..c6f31f1 100644
+--- a/webapp/graphite/render/glyph.py
++++ b/webapp/graphite/render/glyph.py
+@@ -22,10 +22,7 @@ from graphite.render.datalib import TimeSeries
+ from graphite.util import json
+ 
+ 
+-try: # See if there is a system installation of pytz first
+-  import pytz
+-except ImportError: # Otherwise we fall back to Graphite's bundled version
+-  from graphite.thirdparty import pytz
++import pytz
+ 
+ INFINITY = float('inf')
+ 
+diff --git a/webapp/graphite/render/grammar.py b/webapp/graphite/render/grammar.py
+index 07e3e4b..2b0ba41 100644
+--- a/webapp/graphite/render/grammar.py
++++ b/webapp/graphite/render/grammar.py
+@@ -1,4 +1,4 @@
+-from graphite.thirdparty.pyparsing import *
++from pyparsing import *
+ 
+ ParserElement.enablePackrat()
+ grammar = Forward()
+diff --git a/webapp/graphite/render/views.py b/webapp/graphite/render/views.py
+index 186232e..cd747a7 100644
+--- a/webapp/graphite/render/views.py
++++ b/webapp/graphite/render/views.py
+@@ -25,10 +25,7 @@ try:
+ except ImportError:
+   import pickle
+ 
+-try:  # See if there is a system installation of pytz first
+-  import pytz
+-except ImportError:  # Otherwise we fall back to Graphite's bundled version
+-  from graphite.thirdparty import pytz
++import pytz
+ 
+ from graphite.util import getProfileByUsername, json, unpickle
+ from graphite.remote_storage import HTTPConnectionWithTimeout
+-- 
+1.9.3
diff --git a/net-analyzer/graphite-web/graphite-web-0.9.13.ebuild b/net-analyzer/graphite-web/graphite-web-0.9.13.ebuild
new file mode 100644 (file)
index 0000000..010425b
--- /dev/null
@@ -0,0 +1,95 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-analyzer/graphite-web/graphite-web-0.9.13.ebuild,v 1.1 2015/03/10 20:17:50 grobian Exp $
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 python-utils-r1 prefix
+
+DESCRIPTION="Enterprise scalable realtime graphing"
+HOMEPAGE="http://graphite.readthedocs.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="ldap mysql memcached +sqlite"
+
+DEPEND=""
+RDEPEND="dev-lang/python[sqlite?]
+       || ( >=dev-python/django-1.4[sqlite?,mysql?,${PYTHON_USEDEP}]
+               ( >=dev-python/django-1.6[sqlite?,${PYTHON_USEDEP}] 
+               mysql? ( || ( dev-python/mysql-python dev-python/mysqlclient ) ) ) )
+       >=dev-python/twisted-core-10.0[${PYTHON_USEDEP}]
+       >=dev-python/django-tagging-0.3.1[${PYTHON_USEDEP}]
+       dev-python/pycairo[${PYTHON_USEDEP}]
+       dev-python/zope-interface[${PYTHON_USEDEP}]
+       dev-python/pytz[${PYTHON_USEDEP}]
+       dev-python/pyparsing[${PYTHON_USEDEP}]
+       dev-python/txAMQP[${PYTHON_USEDEP}]
+       dev-python/carbon[${PYTHON_USEDEP}]
+       dev-python/whisper[${PYTHON_USEDEP}]
+       media-libs/fontconfig
+       memcached? ( dev-python/python-memcached[${PYTHON_USEDEP}] )
+       ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] )"
+
+PATCHES=(
+       # Do not install the configuration and data files. We install them
+       # somewhere sensible by hand.
+       "${FILESDIR}"/${P}-fhs-paths.patch
+       "${FILESDIR}"/${P}-system-libs.patch
+)
+
+EXAMPLES=(
+       examples/example-graphite-vhost.conf
+)
+
+src_prepare() {
+       # use FHS-style paths
+       rm setup.cfg || die
+       # make sure we don't use bundled stuff
+       rm -Rf webapp/graphite/thirdparty
+       distutils-r1_src_prepare
+       eprefixify \
+               conf/graphite.wsgi.example \
+               webapp/graphite/local_settings.py.example
+}
+
+python_install() {
+       distutils-r1_python_install \
+               --install-data="${EPREFIX}"/usr/share/${PN}
+
+       # make manage.py available from an easier location/name
+       dodir /usr/bin
+       mv "${D}"/$(python_get_sitedir)/graphite/manage.py \
+               "${ED}"/usr/bin/${PN}-manage || die
+       chmod 0755 "${ED}"/usr/bin/${PN}-manage || die
+       python_fix_shebang "${ED}"/usr/bin/${PN}-manage
+
+       insinto /etc/${PN}
+       newins webapp/graphite/local_settings.py.example local_settings.py
+       pushd "${D}"/$(python_get_sitedir)/graphite > /dev/null || die
+       ln -s ../../../../../etc/${PN}/local_settings.py local_settings.py
+       popd > /dev/null || die
+       doins conf/dashboard.conf.example
+       doins conf/graphite.wsgi.example
+}
+
+pkg_config() {
+       "${ROOT}"/usr/bin/${PN}-manage syncdb --noinput
+       local idx=$(grep 'INDEX_FILE =' "${EROOT}"/etc/local_settings.py 2>/dev/null)
+       if [[ -n ${idx} ]] ; then
+               idx=${idx##*=}
+               idx=$(echo ${idx})
+               eval "idx=${idx}"
+               touch "${ROOT}"/"${idx}"/index
+       fi
+}
+
+pkg_postinst() {
+       einfo "You will need to ${PN} it with Apache (mod_wsgi) or nginx (uwsgi)."
+       einfo "Don't forget to edit local_settings.py in ${EPREFIX}/etc/${PN}"
+       einfo "See http://graphite.readthedocs.org/en/latest/config-local-settings.html"
+       einfo "Run emerge --config =${P} if this is a fresh install."
+}
diff --git a/net-analyzer/graphite-web/metadata.xml b/net-analyzer/graphite-web/metadata.xml
new file mode 100644 (file)
index 0000000..263de02
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+       <maintainer>
+               <email>grobian@gentoo.org</email>
+               <name>Fabian Groffen</name>
+       </maintainer>
+</pkgmetadata>