py-carbon,py-graphite-web: updated databases/py-carbon & www/py-graphite-web to 1.1.5.

This commit is contained in:
Aleksej Lebedev 2019-08-05 19:06:20 +02:00
parent 34a80176fb
commit 83d3eda08f
18 changed files with 1408 additions and 0 deletions

1
py-carbon/DESCR Normal file
View File

@ -0,0 +1 @@
Carbon is a backend data caching and persistence daemon for Graphite.

74
py-carbon/Makefile Normal file
View File

@ -0,0 +1,74 @@
# $NetBSD: Makefile,v 1.8 2019/04/26 13:13:46 maya Exp $
DISTNAME= carbon-1.1.5
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
CATEGORIES= databases
GITHUB_PROJECT= carbon
MASTER_SITES= ${MASTER_SITE_GITHUB:=graphite-project/}
MAINTAINER= riz@NetBSD.org
HOMEPAGE= https://launchpad.net/graphite
COMMENT= Backend storage application for graphite
LICENSE= apache-2.0
DEPENDS+= ${PYPKGPREFIX}-twisted-[0-9]*:../../net/py-twisted
DEPENDS+= ${PYPKGPREFIX}-whisper>=${PKGVERSION_NOREV}:../../databases/py-whisper
USE_LANGUAGES= # none
.include "../../mk/bsd.prefs.mk"
.include "options.mk"
BUILD_DEFS+= VARBASE GRAPHITE_USER GRAPHITE_GROUP GRAPHITE_DIR
RCD_SCRIPTS= carbon-aggregator carbon-cache carbon-relay
FILES_SUBST+= GRAPHITE_USER=${GRAPHITE_USER} GRAPHITE_GROUP=${GRAPHITE_GROUP} \
GRAPHITE_DIR=${GRAPHITE_DIR}
OWN_DIRS_PERMS+= ${GRAPHITE_DIR} ${WWW_USER} ${GRAPHITE_GROUP} 0775
OWN_DIRS_PERMS+= ${GRAPHITE_DIR}/lists ${GRAPHITE_USER} ${GRAPHITE_GROUP} 0755
OWN_DIRS_PERMS+= ${GRAPHITE_DIR}/rrd ${GRAPHITE_USER} ${GRAPHITE_GROUP} 0755
OWN_DIRS_PERMS+= ${GRAPHITE_DIR}/whisper ${GRAPHITE_USER} ${GRAPHITE_GROUP} 0755
OWN_DIRS_PERMS+= ${GRAPHITE_LOG_DIR} ${GRAPHITE_USER} ${GRAPHITE_GROUP} 0755
OWN_DIRS_PERMS+= ${VARBASE}/run/graphite ${GRAPHITE_USER} ${GRAPHITE_GROUP} 0755
SUBST_CLASSES+= dirs
SUBST_STAGE.dirs= pre-configure
SUBST_MESSAGE.dirs= Patching default storage directory
SUBST_FILES.dirs= setup.py conf/*
SUBST_VARS.dirs= GRAPHITE_DIR GRAPHITE_EGDIR GRAPHITE_USER PREFIX \
PKG_SYSCONFDIR VARBASE
# NetBSD has posix_fallocate in libc, but fs can't actually use it.
SUBST_CLASSES.NetBSD+= fallocate
SUBST_STAGE.fallocate= pre-configure
SUBST_MESSAGE.fallocate=Patching for NetBSD defaults
SUBST_FILES.fallocate= conf/carbon.conf.example
SUBST_SED.fallocate= -e 's,^\(WHISPER_FALLOCATE_CREATE *= *\)\(.*\),\1False,'
PKG_SYSCONFSUBDIR= graphite
GRAPHITE_CONF_FILES= aggregation-rules.conf \
blacklist.conf \
carbon.amqp.conf \
carbon.conf \
relay-rules.conf \
rewrite-rules.conf \
storage-aggregation.conf \
storage-schemas.conf \
whitelist.conf
.for file in ${GRAPHITE_CONF_FILES}
CONF_FILES+= ${GRAPHITE_EGDIR}/${file}.example \
${PKG_SYSCONFDIR}/${file}
.endfor
PYSETUPINSTALLARGS= --prefix=${PREFIX} \
--install-lib=${PREFIX}/${PYSITELIB}
INSTALLATION_DIRS+= share/examples/graphite
.include "../../databases/py-carbon/Makefile.common"
.include "../../lang/python/distutils.mk"
.include "../../mk/bsd.pkg.mk"

16
py-carbon/Makefile.common Normal file
View File

@ -0,0 +1,16 @@
# $NetBSD: Makefile.common,v 1.1 2015/12/11 21:40:50 riz Exp $
# used by databases/py-carbon/Makefile
# used by www/py-graphite-web/Makefile
GRAPHITE_USER?= graphite
GRAPHITE_GROUP?= graphite
WWW_USER?= www
WWW_GROUP?= www
GRAPHITE_DIR?= ${VARBASE}/graphite
GRAPHITE_EGDIR?= share/examples/graphite
GRAPHITE_LOG_DIR?= ${VARBASE}/log/graphite
PKG_GROUPS+= ${GRAPHITE_GROUP} ${WWW_GROUP}
PKG_USERS+= ${GRAPHITE_USER}:${GRAPHITE_GROUP} ${WWW_USER}:${WWW_GROUP}
PKG_GECOS.${GRAPHITE_USER}= Graphite Carbon user

134
py-carbon/PLIST Normal file
View File

@ -0,0 +1,134 @@
@comment $NetBSD$
bin/carbon-aggregator-cache.py
bin/carbon-aggregator.py
bin/carbon-cache.py
bin/carbon-client.py
bin/carbon-relay.py
bin/validate-storage-schemas.py
${PYSITELIB}/${EGG_FILE}
${PYSITELIB}/carbon/__init__.py
${PYSITELIB}/carbon/__init__.pyo
${PYSITELIB}/carbon/__init__.pyc
${PYSITELIB}/carbon/amqp_listener.pyo
${PYSITELIB}/carbon/amqp_listener.pyc
${PYSITELIB}/carbon/amqp_publisher.pyo
${PYSITELIB}/carbon/amqp_publisher.pyc
${PYSITELIB}/carbon/cache.pyo
${PYSITELIB}/carbon/cache.pyc
${PYSITELIB}/carbon/carbon_pb2.pyo
${PYSITELIB}/carbon/carbon_pb2.pyc
${PYSITELIB}/carbon/client.pyo
${PYSITELIB}/carbon/client.pyc
${PYSITELIB}/carbon/conf.pyo
${PYSITELIB}/carbon/conf.pyc
${PYSITELIB}/carbon/database.pyo
${PYSITELIB}/carbon/database.pyc
${PYSITELIB}/carbon/events.pyo
${PYSITELIB}/carbon/events.pyc
${PYSITELIB}/carbon/exceptions.pyo
${PYSITELIB}/carbon/exceptions.pyc
${PYSITELIB}/carbon/hashing.pyo
${PYSITELIB}/carbon/hashing.pyc
${PYSITELIB}/carbon/http.pyo
${PYSITELIB}/carbon/http.pyc
${PYSITELIB}/carbon/instrumentation.pyo
${PYSITELIB}/carbon/instrumentation.pyc
${PYSITELIB}/carbon/log.pyo
${PYSITELIB}/carbon/log.pyc
${PYSITELIB}/carbon/management.pyo
${PYSITELIB}/carbon/management.pyc
${PYSITELIB}/carbon/manhole.pyo
${PYSITELIB}/carbon/manhole.pyc
${PYSITELIB}/carbon/pipeline.pyo
${PYSITELIB}/carbon/pipeline.pyc
${PYSITELIB}/carbon/protobuf.pyo
${PYSITELIB}/carbon/protobuf.pyc
${PYSITELIB}/carbon/protocols.pyo
${PYSITELIB}/carbon/protocols.pyc
${PYSITELIB}/carbon/regexlist.pyo
${PYSITELIB}/carbon/regexlist.pyc
${PYSITELIB}/carbon/relayrules.pyo
${PYSITELIB}/carbon/relayrules.pyc
${PYSITELIB}/carbon/resolver.pyo
${PYSITELIB}/carbon/resolver.pyc
${PYSITELIB}/carbon/rewrite.pyo
${PYSITELIB}/carbon/rewrite.pyc
${PYSITELIB}/carbon/routers.pyo
${PYSITELIB}/carbon/routers.pyc
${PYSITELIB}/carbon/service.pyo
${PYSITELIB}/carbon/service.pyc
${PYSITELIB}/carbon/state.pyo
${PYSITELIB}/carbon/state.pyc
${PYSITELIB}/carbon/storage.pyo
${PYSITELIB}/carbon/storage.pyc
${PYSITELIB}/carbon/util.pyo
${PYSITELIB}/carbon/util.pyc
${PYSITELIB}/carbon/writer.pyo
${PYSITELIB}/carbon/writer.pyc
${PYSITELIB}/carbon/aggregator/__init__.py
${PYSITELIB}/carbon/aggregator/__init__.pyo
${PYSITELIB}/carbon/aggregator/__init__.pyc
${PYSITELIB}/carbon/aggregator/buffers.pyo
${PYSITELIB}/carbon/aggregator/buffers.pyc
${PYSITELIB}/carbon/aggregator/processor.pyo
${PYSITELIB}/carbon/aggregator/processor.pyc
${PYSITELIB}/carbon/aggregator/rules.pyo
${PYSITELIB}/carbon/aggregator/rules.pyc
${PYSITELIB}/carbon/aggregator/buffers.py
${PYSITELIB}/carbon/aggregator/processor.py
${PYSITELIB}/carbon/aggregator/rules.py
${PYSITELIB}/carbon/amqp0-8.xml
${PYSITELIB}/carbon/amqp_listener.py
${PYSITELIB}/carbon/amqp_publisher.py
${PYSITELIB}/carbon/cache.py
${PYSITELIB}/carbon/carbon_pb2.py
${PYSITELIB}/carbon/client.py
${PYSITELIB}/carbon/conf.py
${PYSITELIB}/carbon/database.py
${PYSITELIB}/carbon/events.py
${PYSITELIB}/carbon/exceptions.py
${PYSITELIB}/carbon/hashing.py
${PYSITELIB}/carbon/http.py
${PYSITELIB}/carbon/instrumentation.py
${PYSITELIB}/carbon/log.py
${PYSITELIB}/carbon/management.py
${PYSITELIB}/carbon/manhole.py
${PYSITELIB}/carbon/pipeline.py
${PYSITELIB}/carbon/protobuf.py
${PYSITELIB}/carbon/protocols.py
${PYSITELIB}/carbon/regexlist.py
${PYSITELIB}/carbon/relayrules.py
${PYSITELIB}/carbon/resolver.py
${PYSITELIB}/carbon/rewrite.py
${PYSITELIB}/carbon/routers.py
${PYSITELIB}/carbon/service.py
${PYSITELIB}/carbon/state.py
${PYSITELIB}/carbon/storage.py
${PYSITELIB}/carbon/util.py
${PYSITELIB}/carbon/writer.py
${PYSITELIB}/twisted/plugins/carbon_aggregator_cache_plugin.pyo
${PYSITELIB}/twisted/plugins/carbon_aggregator_cache_plugin.pyc
${PYSITELIB}/twisted/plugins/carbon_aggregator_plugin.pyo
${PYSITELIB}/twisted/plugins/carbon_aggregator_plugin.pyc
${PYSITELIB}/twisted/plugins/carbon_cache_plugin.pyo
${PYSITELIB}/twisted/plugins/carbon_cache_plugin.pyc
${PYSITELIB}/twisted/plugins/carbon_relay_plugin.pyo
${PYSITELIB}/twisted/plugins/carbon_relay_plugin.pyc
${PYSITELIB}/twisted/plugins/carbon_aggregator_cache_plugin.py
${PYSITELIB}/twisted/plugins/carbon_aggregator_plugin.py
${PYSITELIB}/twisted/plugins/carbon_cache_plugin.py
${PYSITELIB}/twisted/plugins/carbon_relay_plugin.py
share/examples/graphite/aggregation-rules.conf.example
share/examples/graphite/blacklist.conf.example
share/examples/graphite/carbon.amqp.conf.example
share/examples/graphite/carbon.conf.example
share/examples/graphite/relay-rules.conf.example
share/examples/graphite/rewrite-rules.conf.example
share/examples/graphite/storage-aggregation.conf.example
share/examples/graphite/storage-schemas.conf.example
share/examples/graphite/whitelist.conf.example
@pkgdir var/graphite/whisper/dummy.txt
@pkgdir var/graphite/rrd/dummy.txt
@pkgdir var/graphite/log/dummy.txt
@pkgdir var/graphite/lists
@pkgdir var/graphite/ceres/dummy.txt

8
py-carbon/distinfo Normal file
View File

@ -0,0 +1,8 @@
$NetBSD: distinfo,v 1.1 2015/12/11 21:40:50 riz Exp $
SHA1 (carbon-1.1.5.tar.gz) = 05f11865190734e93eae37b963f0d4bb766c78a4
RMD160 (carbon-1.1.5.tar.gz) = a5ef9b7178007912ec01c30d4ebc1880c2767130
SHA512 (carbon-1.1.5.tar.gz) = 3694c68709ef743403db0f4e723c4cab84bcff013024c026b0e3450f644eaf4baae950c944ddb8025e2d7bc4b62de1cbc8c501aeac2fe9737824599fbfbcfcd6
Size (carbon-1.1.5.tar.gz) = 97614 bytes
SHA1 (patch-carbon_conf_example) = 7d463bb763dca15135d177ce117397b4abe774ac
SHA1 (patch-setup.py) = 67b1ec5987e1da61498b25d83a9ba41c2e2c5c57

View File

@ -0,0 +1,73 @@
#!@RCD_SCRIPTS_SHELL@
#
# $NetBSD: carbon-aggregator.sh,v 1.1 2015/12/11 21:40:50 riz Exp $
#
# PROVIDE: carbon-aggregator
# REQUIRE: DAEMON
# KEYWORD: shutdown
if [ -f /etc/rc.subr ]; then
. /etc/rc.subr
fi
name="carbon_aggregator"
rcvar=$name
command="@PREFIX@/bin/carbon-aggregator.py"
config="--config=@PKG_SYSCONFDIR@/carbon.conf"
graphite_user="@GRAPHITE_USER@"
graphite_group="@GRAPHITE_GROUP@"
graphite_dir="@GRAPHITE_DIR@"
extra_commands="status"
start_cmd="${name}_start"
stop_cmd="${name}_stop"
status_cmd="${name}_status"
start_precmd='setproclimits'
setproclimits()
{
local climit
climit=$(ulimit -n)
if [ "$climit" -lt 4096 ]; then
ulimit -n 4096
fi
}
carbon_aggregator_start()
{
@SU@ -m ${graphite_user} -c "${command} ${config} start"
}
carbon_aggregator_stop()
{
@SU@ -m ${graphite_user} -c "${command} ${config} stop"
}
carbon_aggregator_status()
{
@SU@ -m ${graphite_user} -c "${command} ${config} status"
}
if [ -f /etc/rc.subr -a -f /etc/rc.conf ]; then
load_rc_config $name
run_rc_command "$1"
else
if [ -f /etc/rc.conf ]; then
. /etc/rc.conf
fi
case $1 in
start)
${start_cmd}
;;
stop)
${stop_cmd}
;;
restart)
${stop_cmd} && ${start_cmd}
;;
*)
@ECHO@ "Usage: $0 {start|stop|restart}" 1>&2
exit 64
;;
esac
fi

View File

@ -0,0 +1,73 @@
#!@RCD_SCRIPTS_SHELL@
#
# $NetBSD: carbon-cache.sh,v 1.1 2015/12/11 21:40:50 riz Exp $
#
# PROVIDE: carbon-cache
# REQUIRE: DAEMON
# KEYWORD: shutdown
if [ -f /etc/rc.subr ]; then
. /etc/rc.subr
fi
name="carbon_cache"
rcvar=$name
command="@PREFIX@/bin/carbon-cache.py"
config="--config=@PKG_SYSCONFDIR@/carbon.conf"
graphite_user="@GRAPHITE_USER@"
graphite_group="@GRAPHITE_GROUP@"
graphite_dir="@GRAPHITE_DIR@"
extra_commands="status"
start_cmd="${name}_start"
stop_cmd="${name}_stop"
status_cmd="${name}_status"
start_precmd='setproclimits'
setproclimits()
{
local climit
climit=$(ulimit -n)
if [ "$climit" -lt 4096 ]; then
ulimit -n 4096
fi
}
carbon_cache_start()
{
@SU@ -m ${graphite_user} -c "${command} ${config} start"
}
carbon_cache_stop()
{
@SU@ -m ${graphite_user} -c "${command} ${config} stop"
}
carbon_cache_status()
{
@SU@ -m ${graphite_user} -c "${command} ${config} status"
}
if [ -f /etc/rc.subr -a -f /etc/rc.conf ]; then
load_rc_config $name
run_rc_command "$1"
else
if [ -f /etc/rc.conf ]; then
. /etc/rc.conf
fi
case $1 in
start)
${start_cmd}
;;
stop)
${stop_cmd}
;;
restart)
${stop_cmd} && ${start_cmd}
;;
*)
@ECHO@ "Usage: $0 {start|stop|restart}" 1>&2
exit 64
;;
esac
fi

View File

@ -0,0 +1,73 @@
#!@RCD_SCRIPTS_SHELL@
#
# $NetBSD: carbon-relay.sh,v 1.1 2015/12/11 21:40:50 riz Exp $
#
# PROVIDE: carbon-relay
# REQUIRE: DAEMON
# KEYWORD: shutdown
if [ -f /etc/rc.subr ]; then
. /etc/rc.subr
fi
name="carbon_relay"
rcvar=$name
command="@PREFIX@/bin/carbon-relay.py"
config="--config=@PKG_SYSCONFDIR@/carbon.conf"
graphite_user="@GRAPHITE_USER@"
graphite_group="@GRAPHITE_GROUP@"
graphite_dir="@GRAPHITE_DIR@"
extra_commands="status"
start_cmd="${name}_start"
stop_cmd="${name}_stop"
status_cmd="${name}_status"
start_precmd='setproclimits'
setproclimits()
{
local climit
climit=$(ulimit -n)
if [ "$climit" -lt 4096 ]; then
ulimit -n 4096
fi
}
carbon_relay_start()
{
@SU@ -m ${graphite_user} -c "${command} ${config} start"
}
carbon_relay_stop()
{
@SU@ -m ${graphite_user} -c "${command} ${config} stop"
}
carbon_relay_status()
{
@SU@ -m ${graphite_user} -c "${command} ${config} status"
}
if [ -f /etc/rc.subr -a -f /etc/rc.conf ]; then
load_rc_config $name
run_rc_command "$1"
else
if [ -f /etc/rc.conf ]; then
. /etc/rc.conf
fi
case $1 in
start)
${start_cmd}
;;
stop)
${stop_cmd}
;;
restart)
${stop_cmd} && ${start_cmd}
;;
*)
@ECHO@ "Usage: $0 {start|stop|restart}" 1>&2
exit 64
;;
esac
fi

30
py-carbon/options.mk Normal file
View File

@ -0,0 +1,30 @@
# $NetBSD: options.mk,v 1.5 2019/04/26 13:13:46 maya Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.py-carbon
PKG_SUPPORTED_OPTIONS= amqp ldap memcached
PKG_SUGGESTED_OPTIONS= #
.include "../../mk/bsd.options.mk"
###
### AMQP support
###
.if !empty(PKG_OPTIONS:Mamqp)
DEPENDS+= ${PYPKGPREFIX}-txamqp-[0-9]*:../../net/py-txamqp
.endif
###
### LDAP support
###
.if !empty(PKG_OPTIONS:Mldap)
DEPENDS+= ${PYPKGPREFIX}-ldap-[0-9]*:../../databases/py-ldap
PYTHON_VERSIONS_INCOMPATIBLE= 36 37 # py-ldap
.endif
###
### Memcached support
###
.if !empty(PKG_OPTIONS:Mmemcached)
DEPENDS+= ${PYPKGPREFIX}-memcached-[0-9]*:../../devel/py-memcached
PYTHON_VERSIONS_INCOMPATIBLE= 36 37 # py-memcached
.endif

View File

@ -0,0 +1,59 @@
$NetBSD: patch-carbon_conf_example,v 1.1 2015/12/11 21:40:50 riz Exp $
Set package-appropriate defaults
--- conf/carbon.conf.example.orig 2019-08-05 16:00:38.347990254 +0000
+++ conf/carbon.conf.example
@@ -30,6 +30,13 @@
#
#LOCAL_DATA_DIR = /opt/graphite/storage/whisper/
+STORAGE_DIR = @GRAPHITE_DIR@
+LOCAL_DATA_DIR = @GRAPHITE_DIR@/whisper
+WHITELISTS_DIR = @GRAPHITE_DIR@/lists
+CONF_DIR = @PKG_SYSCONFDIR@
+LOG_DIR = @VARBASE@/log/graphite/
+PID_DIR = @VARBASE@/run/graphite/
+
# Specify the database library used to store metric data on disk. Each database
# may have configurable options to change the behaviour of how it writes to
# persistent storage.
@@ -48,7 +55,7 @@ ENABLE_LOGROTATION = True
# Specify the user to drop privileges to
# If this is blank carbon-cache runs as the user that invokes it
# This user must have write access to the local data directory
-USER =
+USER = @GRAPHITE_USER@
# Limit the size of the cache to avoid swapping or becoming CPU bound.
# Sorts and serving cache queries gets more expensive as the cache grows.
@@ -347,6 +354,14 @@ WHISPER_FALLOCATE_CREATE = True
# LOG_LISTENER_CONN_SUCCESS = True
[relay]
+STORAGE_DIR = @GRAPHITE_DIR@
+LOCAL_DATA_DIR = @GRAPHITE_DIR@/whisper
+WHITELISTS_DIR = @GRAPHITE_DIR@/lists
+CONF_DIR = @PKG_SYSCONFDIR@
+LOG_DIR = @VARBASE@/log/graphite/
+PID_DIR = @VARBASE@/run/graphite/
+USER = @GRAPHITE_USER@
+
LINE_RECEIVER_INTERFACE = 0.0.0.0
LINE_RECEIVER_PORT = 2013
PICKLE_RECEIVER_INTERFACE = 0.0.0.0
@@ -557,6 +572,14 @@ MIN_RESET_INTERVAL=121
[aggregator]
+STORAGE_DIR = @GRAPHITE_DIR@
+LOCAL_DATA_DIR = @GRAPHITE_DIR@/whisper
+WHITELISTS_DIR = @GRAPHITE_DIR@/lists
+CONF_DIR = @PKG_SYSCONFDIR@
+LOG_DIR = @VARBASE@/log/graphite/
+PID_DIR = @VARBASE@/run/graphite/
+USER = @GRAPHITE_USER@
+
LINE_RECEIVER_INTERFACE = 0.0.0.0
LINE_RECEIVER_PORT = 2023

View File

@ -0,0 +1,32 @@
$NetBSD: patch-setup.py,v 1.1 2015/12/11 21:40:50 riz Exp $
Rearrange installation dirs for pkgsrc, and don't install redhat files
--- setup.py.orig 2019-08-05 15:57:03.615377427 +0000
+++ setup.py
@@ -58,21 +58,13 @@ else:
setup_kwargs = dict()
-storage_dirs = [ ('storage/ceres/dummy.txt', []), ('storage/whisper/dummy.txt',[]),
- ('storage/lists',[]), ('storage/log/dummy.txt',[]),
- ('storage/rrd/dummy.txt',[]) ]
-conf_files = [ ('conf', glob('conf/*.example')) ]
+storage_dirs = [ ('@GRAPHITE_DIR@/ceres/dummy.txt', []), ('@GRAPHITE_DIR@/whisper/dummy.txt',[]),
+ ('@GRAPHITE_DIR@/lists',[]), ('@GRAPHITE_DIR@/log/dummy.txt',[]),
+ ('@GRAPHITE_DIR@/rrd/dummy.txt',[]) ]
+conf_files = [ ('@PREFIX@/@GRAPHITE_EGDIR@', glob('conf/*.example')) ]
install_files = storage_dirs + conf_files
-# Let's include redhat init scripts, despite build platform
-# but won't put them in /etc/init.d/ automatically anymore
-init_scripts = [ ('examples/init.d', ['distro/redhat/init.d/carbon-cache',
- 'distro/redhat/init.d/carbon-relay',
- 'distro/redhat/init.d/carbon-aggregator']) ]
-install_files += init_scripts
-
-
try:
setup(
name='carbon',

10
py-graphite-web/DESCR Normal file
View File

@ -0,0 +1,10 @@
Graphite consists of a storage backend and a web-based visualization frontend.
Client applications send streams of numeric time-series data to the Graphite
backend (called carbon), where it gets stored in fixed-size database files
similar in design to RRD. The web frontend provides 2 distinct user interfaces
for visualizing this data in graphs as well as a simple URL-based API for
direct graph generation.
Graphite's design is focussed on providing simple interfaces (both to users
and applications), real-time visualization, high-availability, and enterprise
scalability.

12
py-graphite-web/MESSAGE Normal file
View File

@ -0,0 +1,12 @@
===========================================================================
$NetBSD: MESSAGE,v 1.1 2015/12/11 21:45:07 riz Exp $
If your webserver does not run as "${WWW_USER}", you should
chown ${GRAPHITE_LOG_DIR}/webapp and ${GRAPHITE_DIR} (but
not the subdirectories) to be owned by the user your webserver
runs as.
If you will be using a different database (besides sqlite3),
you will need to install the appropriate python package
to support it.
===========================================================================

77
py-graphite-web/Makefile Normal file
View File

@ -0,0 +1,77 @@
# $NetBSD: Makefile,v 1.6 2019/04/26 13:14:21 maya Exp $
DISTNAME= graphite-web-1.1.5
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
CATEGORIES= www
GITHUB_PROJECT= graphite-web
MASTER_SITES= ${MASTER_SITE_GITHUB:=graphite-project/}
MAINTAINER= riz@NetBSD.org
HOMEPAGE= https://launchpad.net/graphite
COMMENT= Enterprise scalable realtime graphing platform
LICENSE= apache-2.0
DEPENDS+= ${PYPKGPREFIX}-carbon>=${PKGREVISION_NOREV}:../../wip/py-carbon
DEPENDS+= ${PYPKGPREFIX}-django>=1.3.1:../../www/py-django
DEPENDS+= ${PYPKGPREFIX}-django-tagging>=0.3.1:../../www/py-django-tagging
DEPENDS+= ${PYPKGPREFIX}-pytz-[0-9]*:../../time/py-pytz
DEPENDS+= ${PYPKGPREFIX}-sqlite3-[0-9]*:../../databases/py-sqlite3
DEPENDS+= ${PYPKGPREFIX}-cairo-[0-9]*:../../graphics/py-cairo
EGG_NAME= ${DISTNAME:S/graphite-/graphite_/}
USE_LANGUAGES= # none
.include "../../mk/bsd.prefs.mk"
BUILD_DEFS+= VARBASE GRAPHITE_DIR
REPLACE_SH+= bin/build-index.sh
OWN_DIRS_PERMS+= ${GRAPHITE_LOG_DIR} ${GRAPHITE_USER} ${GRAPHITE_GROUP} 0755
OWN_DIRS_PERMS+= ${GRAPHITE_LOG_DIR}/webapp ${WWW_USER} ${GRAPHITE_GROUP} 0775
SUBST_CLASSES+= dirs
SUBST_STAGE.dirs= pre-configure
SUBST_MESSAGE.dirs= Patching default dirs
SUBST_FILES.dirs= bin/build-index.sh
SUBST_FILES.dirs+= conf/graphite.wsgi.example
SUBST_FILES.dirs+= examples/example-graphite-vhost.conf
SUBST_FILES.dirs+= setup.py
SUBST_FILES.dirs+= webapp/graphite/local_settings.py.example
SUBST_SED.dirs= -e 's,/opt/graphite/conf,${PKG_SYSCONFDIR},g'
SUBST_SED.dirs+= -e 's,/opt/graphite/storage/log,${GRAPHITE_LOG_DIR},g'
SUBST_SED.dirs+= -e 's,/opt/graphite/storage,${GRAPHITE_DIR},g'
SUBST_SED.dirs+= -e 's,/opt/graphite,${PREFIX}/graphite,g'
SUBST_VARS.dirs= GRAPHITE_DIR GRAPHITE_EGDIR GRAPHITE_LOG_DIR PREFIX
MESSAGE_SUBST+= GRAPHITE_DIR=${GRAPHITE_DIR}
MESSAGE_SUBST+= GRAPHITE_LOG_DIR=${GRAPHITE_LOG_DIR}
MESSAGE_SUBST+= GRAPHITE_USER=${GRAPHITE_USER}
MESSAGE_SUBST+= WWW_USER=${WWW_USER}
PKG_SYSCONFSUBDIR= graphite
GRAPHITE_CONF_FILES= dashboard.conf graphite.wsgi graphTemplates.conf
.for file in ${GRAPHITE_CONF_FILES}
CONF_FILES+= ${GRAPHITE_EGDIR}/${file}.example \
${PKG_SYSCONFDIR}/${file}
.endfor
PYSETUPINSTALLARGS= --prefix=${PREFIX} \
--install-lib=${PREFIX}/${PYSITELIB}
INSTALLATION_DIRS+= share/examples/graphite
pre-build:
${MKDIR} ${WRKSRC}/graphite/webapp
${CP} -LR ${WRKSRC}/webapp/content ${WRKSRC}/graphite/webapp
${RM} -f ${WRKSRC}/bin/build-index.sh.orig
post-install:
${LN} -s ${PKG_SYSCONFDIR}/local_settings.py ${DESTDIR}${PREFIX}/${PYSITELIB}/graphite/
.include "../../databases/py-carbon/Makefile.common"
.include "../../lang/python/distutils.mk"
.include "../../mk/bsd.pkg.mk"

688
py-graphite-web/PLIST Normal file
View File

@ -0,0 +1,688 @@
@comment $NetBSD$
bin/build-index
bin/build-index.sh
bin/run-graphite-devel-server.py
graphite/webapp/content/css/darkX.css
graphite/webapp/content/css/darkX/button-close-focused.png
graphite/webapp/content/css/darkX/button-maximize-focused.png
graphite/webapp/content/css/darkX/button-minimize-focused.png
graphite/webapp/content/css/darkX/frame-bottom-left-focused.png
graphite/webapp/content/css/darkX/frame-bottom-mid-focused.png
graphite/webapp/content/css/darkX/frame-bottom-right-focused.png
graphite/webapp/content/css/darkX/frame-left-focused.png
graphite/webapp/content/css/darkX/frame-right-focused.png
graphite/webapp/content/css/darkX/titlebar-left-focused.png
graphite/webapp/content/css/darkX/titlebar-mid-focused.png
graphite/webapp/content/css/darkX/titlebar-right-focused.png
graphite/webapp/content/css/dashboard-default.css
graphite/webapp/content/css/dashboard-white.css
graphite/webapp/content/css/dashboard.css
graphite/webapp/content/css/default.css
graphite/webapp/content/css/default/bottom_left.gif
graphite/webapp/content/css/default/bottom_mid.gif
graphite/webapp/content/css/default/bottom_right.gif
graphite/webapp/content/css/default/bottom_right_resize.gif
graphite/webapp/content/css/default/center_left.gif
graphite/webapp/content/css/default/center_right.gif
graphite/webapp/content/css/default/clear.gif
graphite/webapp/content/css/default/close.gif
graphite/webapp/content/css/default/inspect.gif
graphite/webapp/content/css/default/maximize.gif
graphite/webapp/content/css/default/minimize.gif
graphite/webapp/content/css/default/overlay.png
graphite/webapp/content/css/default/resize.gif
graphite/webapp/content/css/default/sizer.gif
graphite/webapp/content/css/default/top_left.gif
graphite/webapp/content/css/default/top_mid.gif
graphite/webapp/content/css/default/top_right.gif
graphite/webapp/content/css/table.css
graphite/webapp/content/html/completerHelp.html
graphite/webapp/content/html/searchHelp.html
graphite/webapp/content/img/blank.gif
graphite/webapp/content/img/calendar.png
graphite/webapp/content/img/carbon-fiber.png
graphite/webapp/content/img/clock.png
graphite/webapp/content/img/clock_16.png
graphite/webapp/content/img/favicon.ico
graphite/webapp/content/img/graphite-logo.png
graphite/webapp/content/img/graphite.png
graphite/webapp/content/img/graphite_short.png
graphite/webapp/content/img/leaf.gif
graphite/webapp/content/img/mini-bottom2.gif
graphite/webapp/content/img/mini-top2.gif
graphite/webapp/content/img/move_down.png
graphite/webapp/content/img/move_up.png
graphite/webapp/content/img/overview.png
graphite/webapp/content/img/refresh.png
graphite/webapp/content/img/save.png
graphite/webapp/content/img/share.png
graphite/webapp/content/img/trash.png
graphite/webapp/content/img/upload.png
graphite/webapp/content/js/ace/ace.js
graphite/webapp/content/js/ace/keybinding-vim.js
graphite/webapp/content/js/ace/mode-c_cpp.js
graphite/webapp/content/js/ace/mode-clojure.js
graphite/webapp/content/js/ace/mode-coffee.js
graphite/webapp/content/js/ace/mode-csharp.js
graphite/webapp/content/js/ace/mode-css.js
graphite/webapp/content/js/ace/mode-groovy.js
graphite/webapp/content/js/ace/mode-html.js
graphite/webapp/content/js/ace/mode-java.js
graphite/webapp/content/js/ace/mode-javascript.js
graphite/webapp/content/js/ace/mode-json.js
graphite/webapp/content/js/ace/theme-textmate.js
graphite/webapp/content/js/ace/worker-javascript.js
graphite/webapp/content/js/browser.js
graphite/webapp/content/js/completer.js
graphite/webapp/content/js/composer.js
graphite/webapp/content/js/composer_widgets.js
graphite/webapp/content/js/dashboard.js
graphite/webapp/content/js/ext/adapter/ext/ext-base-debug.js
graphite/webapp/content/js/ext/adapter/ext/ext-base.js
graphite/webapp/content/js/ext/ext-all-debug.js
graphite/webapp/content/js/ext/ext-all.js
graphite/webapp/content/js/ext/resources/css/ext-all.css
graphite/webapp/content/js/ext/resources/icons/fam/SILK.txt
graphite/webapp/content/js/ext/resources/icons/fam/accept.png
graphite/webapp/content/js/ext/resources/icons/fam/add.gif
graphite/webapp/content/js/ext/resources/icons/fam/add.png
graphite/webapp/content/js/ext/resources/icons/fam/application_go.png
graphite/webapp/content/js/ext/resources/icons/fam/application_view_list.png
graphite/webapp/content/js/ext/resources/icons/fam/book.png
graphite/webapp/content/js/ext/resources/icons/fam/cog.png
graphite/webapp/content/js/ext/resources/icons/fam/cog_edit.png
graphite/webapp/content/js/ext/resources/icons/fam/connect.gif
graphite/webapp/content/js/ext/resources/icons/fam/connect.png
graphite/webapp/content/js/ext/resources/icons/fam/control_rewind.png
graphite/webapp/content/js/ext/resources/icons/fam/cross.gif
graphite/webapp/content/js/ext/resources/icons/fam/delete.gif
graphite/webapp/content/js/ext/resources/icons/fam/error.png
graphite/webapp/content/js/ext/resources/icons/fam/feed_add.png
graphite/webapp/content/js/ext/resources/icons/fam/feed_delete.png
graphite/webapp/content/js/ext/resources/icons/fam/feed_error.png
graphite/webapp/content/js/ext/resources/icons/fam/folder_go.png
graphite/webapp/content/js/ext/resources/icons/fam/folder_wrench.png
graphite/webapp/content/js/ext/resources/icons/fam/grid.png
graphite/webapp/content/js/ext/resources/icons/fam/image_add.png
graphite/webapp/content/js/ext/resources/icons/fam/information.png
graphite/webapp/content/js/ext/resources/icons/fam/plugin.gif
graphite/webapp/content/js/ext/resources/icons/fam/plugin_add.gif
graphite/webapp/content/js/ext/resources/icons/fam/rss_go.png
graphite/webapp/content/js/ext/resources/icons/fam/table_refresh.png
graphite/webapp/content/js/ext/resources/icons/fam/user.gif
graphite/webapp/content/js/ext/resources/icons/fam/user.png
graphite/webapp/content/js/ext/resources/icons/fam/user_add.gif
graphite/webapp/content/js/ext/resources/icons/fam/user_add.png
graphite/webapp/content/js/ext/resources/icons/fam/user_comment.png
graphite/webapp/content/js/ext/resources/icons/fam/user_delete.gif
graphite/webapp/content/js/ext/resources/icons/fam/user_delete.png
graphite/webapp/content/js/ext/resources/icons/fam/user_edit.png
graphite/webapp/content/js/ext/resources/icons/fam/user_female.gif
graphite/webapp/content/js/ext/resources/icons/fam/user_female.png
graphite/webapp/content/js/ext/resources/icons/fam/user_gray.png
graphite/webapp/content/js/ext/resources/icons/fam/user_green.gif
graphite/webapp/content/js/ext/resources/icons/fam/user_green.png
graphite/webapp/content/js/ext/resources/icons/fam/user_orange.png
graphite/webapp/content/js/ext/resources/icons/fam/user_red.png
graphite/webapp/content/js/ext/resources/icons/fam/user_suit.gif
graphite/webapp/content/js/ext/resources/icons/fam/user_suit.png
graphite/webapp/content/js/ext/resources/images/default/box/corners-blue.gif
graphite/webapp/content/js/ext/resources/images/default/box/corners.gif
graphite/webapp/content/js/ext/resources/images/default/box/l-blue.gif
graphite/webapp/content/js/ext/resources/images/default/box/l.gif
graphite/webapp/content/js/ext/resources/images/default/box/r-blue.gif
graphite/webapp/content/js/ext/resources/images/default/box/r.gif
graphite/webapp/content/js/ext/resources/images/default/box/tb-blue.gif
graphite/webapp/content/js/ext/resources/images/default/box/tb.gif
graphite/webapp/content/js/ext/resources/images/default/button/arrow.gif
graphite/webapp/content/js/ext/resources/images/default/button/btn.gif
graphite/webapp/content/js/ext/resources/images/default/button/group-cs.gif
graphite/webapp/content/js/ext/resources/images/default/button/group-lr.gif
graphite/webapp/content/js/ext/resources/images/default/button/group-tb.gif
graphite/webapp/content/js/ext/resources/images/default/button/s-arrow-b-noline.gif
graphite/webapp/content/js/ext/resources/images/default/button/s-arrow-b.gif
graphite/webapp/content/js/ext/resources/images/default/button/s-arrow-bo.gif
graphite/webapp/content/js/ext/resources/images/default/button/s-arrow-noline.gif
graphite/webapp/content/js/ext/resources/images/default/button/s-arrow-o.gif
graphite/webapp/content/js/ext/resources/images/default/button/s-arrow.gif
graphite/webapp/content/js/ext/resources/images/default/dd/drop-add.gif
graphite/webapp/content/js/ext/resources/images/default/dd/drop-no.gif
graphite/webapp/content/js/ext/resources/images/default/dd/drop-yes.gif
graphite/webapp/content/js/ext/resources/images/default/editor/tb-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/form/checkbox.gif
graphite/webapp/content/js/ext/resources/images/default/form/clear-trigger.gif
graphite/webapp/content/js/ext/resources/images/default/form/clear-trigger.psd
graphite/webapp/content/js/ext/resources/images/default/form/date-trigger.gif
graphite/webapp/content/js/ext/resources/images/default/form/date-trigger.psd
graphite/webapp/content/js/ext/resources/images/default/form/error-tip-corners.gif
graphite/webapp/content/js/ext/resources/images/default/form/exclamation.gif
graphite/webapp/content/js/ext/resources/images/default/form/radio.gif
graphite/webapp/content/js/ext/resources/images/default/form/search-trigger.gif
graphite/webapp/content/js/ext/resources/images/default/form/search-trigger.psd
graphite/webapp/content/js/ext/resources/images/default/form/text-bg.gif
graphite/webapp/content/js/ext/resources/images/default/form/trigger-square.gif
graphite/webapp/content/js/ext/resources/images/default/form/trigger-square.psd
graphite/webapp/content/js/ext/resources/images/default/form/trigger-tpl.gif
graphite/webapp/content/js/ext/resources/images/default/form/trigger.gif
graphite/webapp/content/js/ext/resources/images/default/form/trigger.psd
graphite/webapp/content/js/ext/resources/images/default/gradient-bg.gif
graphite/webapp/content/js/ext/resources/images/default/grid/arrow-left-white.gif
graphite/webapp/content/js/ext/resources/images/default/grid/arrow-right-white.gif
graphite/webapp/content/js/ext/resources/images/default/grid/col-move-bottom.gif
graphite/webapp/content/js/ext/resources/images/default/grid/col-move-top.gif
graphite/webapp/content/js/ext/resources/images/default/grid/columns.gif
graphite/webapp/content/js/ext/resources/images/default/grid/dirty.gif
graphite/webapp/content/js/ext/resources/images/default/grid/done.gif
graphite/webapp/content/js/ext/resources/images/default/grid/drop-no.gif
graphite/webapp/content/js/ext/resources/images/default/grid/drop-yes.gif
graphite/webapp/content/js/ext/resources/images/default/grid/footer-bg.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid-blue-hd.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid-blue-split.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid-hrow.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid-loading.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid-split.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid-vista-hd.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid3-hd-btn.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid3-hrow-over.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid3-hrow.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid3-rowheader.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid3-special-col-bg.gif
graphite/webapp/content/js/ext/resources/images/default/grid/grid3-special-col-sel-bg.gif
graphite/webapp/content/js/ext/resources/images/default/grid/group-by.gif
graphite/webapp/content/js/ext/resources/images/default/grid/group-collapse.gif
graphite/webapp/content/js/ext/resources/images/default/grid/group-expand-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/grid/group-expand.gif
graphite/webapp/content/js/ext/resources/images/default/grid/hd-pop.gif
graphite/webapp/content/js/ext/resources/images/default/grid/hmenu-asc.gif
graphite/webapp/content/js/ext/resources/images/default/grid/hmenu-desc.gif
graphite/webapp/content/js/ext/resources/images/default/grid/hmenu-lock.gif
graphite/webapp/content/js/ext/resources/images/default/grid/hmenu-lock.png
graphite/webapp/content/js/ext/resources/images/default/grid/hmenu-unlock.gif
graphite/webapp/content/js/ext/resources/images/default/grid/hmenu-unlock.png
graphite/webapp/content/js/ext/resources/images/default/grid/invalid_line.gif
graphite/webapp/content/js/ext/resources/images/default/grid/loading.gif
graphite/webapp/content/js/ext/resources/images/default/grid/mso-hd.gif
graphite/webapp/content/js/ext/resources/images/default/grid/nowait.gif
graphite/webapp/content/js/ext/resources/images/default/grid/page-first-disabled.gif
graphite/webapp/content/js/ext/resources/images/default/grid/page-first.gif
graphite/webapp/content/js/ext/resources/images/default/grid/page-last-disabled.gif
graphite/webapp/content/js/ext/resources/images/default/grid/page-last.gif
graphite/webapp/content/js/ext/resources/images/default/grid/page-next-disabled.gif
graphite/webapp/content/js/ext/resources/images/default/grid/page-next.gif
graphite/webapp/content/js/ext/resources/images/default/grid/page-prev-disabled.gif
graphite/webapp/content/js/ext/resources/images/default/grid/page-prev.gif
graphite/webapp/content/js/ext/resources/images/default/grid/pick-button.gif
graphite/webapp/content/js/ext/resources/images/default/grid/refresh-disabled.gif
graphite/webapp/content/js/ext/resources/images/default/grid/refresh.gif
graphite/webapp/content/js/ext/resources/images/default/grid/row-check-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/grid/row-expand-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/grid/row-over.gif
graphite/webapp/content/js/ext/resources/images/default/grid/row-sel.gif
graphite/webapp/content/js/ext/resources/images/default/grid/sort-hd.gif
graphite/webapp/content/js/ext/resources/images/default/grid/sort_asc.gif
graphite/webapp/content/js/ext/resources/images/default/grid/sort_desc.gif
graphite/webapp/content/js/ext/resources/images/default/grid/wait.gif
graphite/webapp/content/js/ext/resources/images/default/layout/collapse.gif
graphite/webapp/content/js/ext/resources/images/default/layout/expand.gif
graphite/webapp/content/js/ext/resources/images/default/layout/gradient-bg.gif
graphite/webapp/content/js/ext/resources/images/default/layout/mini-bottom.gif
graphite/webapp/content/js/ext/resources/images/default/layout/mini-left.gif
graphite/webapp/content/js/ext/resources/images/default/layout/mini-right.gif
graphite/webapp/content/js/ext/resources/images/default/layout/mini-top.gif
graphite/webapp/content/js/ext/resources/images/default/layout/ns-collapse.gif
graphite/webapp/content/js/ext/resources/images/default/layout/ns-expand.gif
graphite/webapp/content/js/ext/resources/images/default/layout/panel-close.gif
graphite/webapp/content/js/ext/resources/images/default/layout/panel-title-bg.gif
graphite/webapp/content/js/ext/resources/images/default/layout/panel-title-light-bg.gif
graphite/webapp/content/js/ext/resources/images/default/layout/stick.gif
graphite/webapp/content/js/ext/resources/images/default/layout/stuck.gif
graphite/webapp/content/js/ext/resources/images/default/layout/tab-close-on.gif
graphite/webapp/content/js/ext/resources/images/default/layout/tab-close.gif
graphite/webapp/content/js/ext/resources/images/default/menu/checked.gif
graphite/webapp/content/js/ext/resources/images/default/menu/group-checked.gif
graphite/webapp/content/js/ext/resources/images/default/menu/item-over.gif
graphite/webapp/content/js/ext/resources/images/default/menu/menu-parent.gif
graphite/webapp/content/js/ext/resources/images/default/menu/menu.gif
graphite/webapp/content/js/ext/resources/images/default/menu/unchecked.gif
graphite/webapp/content/js/ext/resources/images/default/panel/corners-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/panel/left-right.gif
graphite/webapp/content/js/ext/resources/images/default/panel/light-hd.gif
graphite/webapp/content/js/ext/resources/images/default/panel/tool-sprite-tpl.gif
graphite/webapp/content/js/ext/resources/images/default/panel/tool-sprites.gif
graphite/webapp/content/js/ext/resources/images/default/panel/tools-sprites-trans.gif
graphite/webapp/content/js/ext/resources/images/default/panel/top-bottom.gif
graphite/webapp/content/js/ext/resources/images/default/panel/top-bottom.png
graphite/webapp/content/js/ext/resources/images/default/panel/white-corners-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/panel/white-left-right.gif
graphite/webapp/content/js/ext/resources/images/default/panel/white-top-bottom.gif
graphite/webapp/content/js/ext/resources/images/default/progress/progress-bg.gif
graphite/webapp/content/js/ext/resources/images/default/qtip/bg.gif
graphite/webapp/content/js/ext/resources/images/default/qtip/close.gif
graphite/webapp/content/js/ext/resources/images/default/qtip/tip-anchor-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/qtip/tip-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/s.gif
graphite/webapp/content/js/ext/resources/images/default/shadow-c.png
graphite/webapp/content/js/ext/resources/images/default/shadow-lr.png
graphite/webapp/content/js/ext/resources/images/default/shadow.png
graphite/webapp/content/js/ext/resources/images/default/shared/blue-loading.gif
graphite/webapp/content/js/ext/resources/images/default/shared/calendar.gif
graphite/webapp/content/js/ext/resources/images/default/shared/glass-bg.gif
graphite/webapp/content/js/ext/resources/images/default/shared/hd-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/shared/large-loading.gif
graphite/webapp/content/js/ext/resources/images/default/shared/left-btn.gif
graphite/webapp/content/js/ext/resources/images/default/shared/loading-balls.gif
graphite/webapp/content/js/ext/resources/images/default/shared/right-btn.gif
graphite/webapp/content/js/ext/resources/images/default/shared/warning.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/e-handle-dark.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/e-handle.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/ne-handle-dark.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/ne-handle.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/nw-handle-dark.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/nw-handle.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/s-handle-dark.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/s-handle.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/se-handle-dark.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/se-handle.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/square.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/sw-handle-dark.gif
graphite/webapp/content/js/ext/resources/images/default/sizer/sw-handle.gif
graphite/webapp/content/js/ext/resources/images/default/slider/slider-bg.png
graphite/webapp/content/js/ext/resources/images/default/slider/slider-thumb.png
graphite/webapp/content/js/ext/resources/images/default/slider/slider-v-bg.png
graphite/webapp/content/js/ext/resources/images/default/slider/slider-v-thumb.png
graphite/webapp/content/js/ext/resources/images/default/tabs/scroll-left.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/scroll-right.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/scroller-bg.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/tab-btm-inactive-left-bg.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/tab-btm-inactive-right-bg.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/tab-btm-left-bg.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/tab-btm-over-left-bg.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/tab-btm-over-right-bg.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/tab-btm-right-bg.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/tab-close.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/tab-strip-bg.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/tab-strip-bg.png
graphite/webapp/content/js/ext/resources/images/default/tabs/tab-strip-btm-bg.gif
graphite/webapp/content/js/ext/resources/images/default/tabs/tabs-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/toolbar/bg.gif
graphite/webapp/content/js/ext/resources/images/default/toolbar/btn-arrow-light.gif
graphite/webapp/content/js/ext/resources/images/default/toolbar/btn-arrow.gif
graphite/webapp/content/js/ext/resources/images/default/toolbar/btn-over-bg.gif
graphite/webapp/content/js/ext/resources/images/default/toolbar/gray-bg.gif
graphite/webapp/content/js/ext/resources/images/default/toolbar/more.gif
graphite/webapp/content/js/ext/resources/images/default/toolbar/tb-bg.gif
graphite/webapp/content/js/ext/resources/images/default/toolbar/tb-btn-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/toolbar/tb-xl-btn-sprite.gif
graphite/webapp/content/js/ext/resources/images/default/toolbar/tb-xl-sep.gif
graphite/webapp/content/js/ext/resources/images/default/tree/arrows.gif
graphite/webapp/content/js/ext/resources/images/default/tree/drop-add.gif
graphite/webapp/content/js/ext/resources/images/default/tree/drop-between.gif
graphite/webapp/content/js/ext/resources/images/default/tree/drop-no.gif
graphite/webapp/content/js/ext/resources/images/default/tree/drop-over.gif
graphite/webapp/content/js/ext/resources/images/default/tree/drop-under.gif
graphite/webapp/content/js/ext/resources/images/default/tree/drop-yes.gif
graphite/webapp/content/js/ext/resources/images/default/tree/elbow-end-minus-nl.gif
graphite/webapp/content/js/ext/resources/images/default/tree/elbow-end-minus.gif
graphite/webapp/content/js/ext/resources/images/default/tree/elbow-end-plus-nl.gif
graphite/webapp/content/js/ext/resources/images/default/tree/elbow-end-plus.gif
graphite/webapp/content/js/ext/resources/images/default/tree/elbow-end.gif
graphite/webapp/content/js/ext/resources/images/default/tree/elbow-line.gif
graphite/webapp/content/js/ext/resources/images/default/tree/elbow-minus-nl.gif
graphite/webapp/content/js/ext/resources/images/default/tree/elbow-minus.gif
graphite/webapp/content/js/ext/resources/images/default/tree/elbow-plus-nl.gif
graphite/webapp/content/js/ext/resources/images/default/tree/elbow-plus.gif
graphite/webapp/content/js/ext/resources/images/default/tree/elbow.gif
graphite/webapp/content/js/ext/resources/images/default/tree/folder-open.gif
graphite/webapp/content/js/ext/resources/images/default/tree/folder.gif
graphite/webapp/content/js/ext/resources/images/default/tree/leaf.gif
graphite/webapp/content/js/ext/resources/images/default/tree/loading.gif
graphite/webapp/content/js/ext/resources/images/default/tree/s.gif
graphite/webapp/content/js/ext/resources/images/default/window/icon-error.gif
graphite/webapp/content/js/ext/resources/images/default/window/icon-info.gif
graphite/webapp/content/js/ext/resources/images/default/window/icon-question.gif
graphite/webapp/content/js/ext/resources/images/default/window/icon-warning.gif
graphite/webapp/content/js/ext/resources/images/default/window/left-corners.png
graphite/webapp/content/js/ext/resources/images/default/window/left-corners.psd
graphite/webapp/content/js/ext/resources/images/default/window/left-right.png
graphite/webapp/content/js/ext/resources/images/default/window/left-right.psd
graphite/webapp/content/js/ext/resources/images/default/window/right-corners.png
graphite/webapp/content/js/ext/resources/images/default/window/right-corners.psd
graphite/webapp/content/js/ext/resources/images/default/window/top-bottom.png
graphite/webapp/content/js/ext/resources/images/default/window/top-bottom.psd
graphite/webapp/content/js/ext/ux/DataViewTransition.js
${PYSITELIB}/graphite/__init__.py
${PYSITELIB}/graphite/__init__.pyo
${PYSITELIB}/graphite/__init__.pyc
${PYSITELIB}/graphite/app_settings.pyo
${PYSITELIB}/graphite/app_settings.pyc
${PYSITELIB}/graphite/carbonlink.pyo
${PYSITELIB}/graphite/carbonlink.pyc
${PYSITELIB}/graphite/compat.pyo
${PYSITELIB}/graphite/compat.pyc
${PYSITELIB}/graphite/errors.pyo
${PYSITELIB}/graphite/errors.pyc
${PYSITELIB}/graphite/http_pool.pyo
${PYSITELIB}/graphite/http_pool.pyc
${PYSITELIB}/graphite/intervals.pyo
${PYSITELIB}/graphite/intervals.pyc
${PYSITELIB}/graphite/logger.pyo
${PYSITELIB}/graphite/logger.pyc
${PYSITELIB}/graphite/middleware.pyo
${PYSITELIB}/graphite/middleware.pyc
${PYSITELIB}/graphite/node.pyo
${PYSITELIB}/graphite/node.pyc
${PYSITELIB}/graphite/settings.pyo
${PYSITELIB}/graphite/settings.pyc
${PYSITELIB}/graphite/singleton.pyo
${PYSITELIB}/graphite/singleton.pyc
${PYSITELIB}/graphite/storage.pyo
${PYSITELIB}/graphite/storage.pyc
${PYSITELIB}/graphite/umsgpack.pyo
${PYSITELIB}/graphite/umsgpack.pyc
${PYSITELIB}/graphite/urls.pyo
${PYSITELIB}/graphite/urls.pyc
${PYSITELIB}/graphite/user_util.pyo
${PYSITELIB}/graphite/user_util.pyc
${PYSITELIB}/graphite/util.pyo
${PYSITELIB}/graphite/util.pyc
${PYSITELIB}/graphite/views.pyo
${PYSITELIB}/graphite/views.pyc
${PYSITELIB}/graphite/wsgi.pyo
${PYSITELIB}/graphite/wsgi.pyc
${PYSITELIB}/graphite/account/__init__.py
${PYSITELIB}/graphite/account/__init__.pyo
${PYSITELIB}/graphite/account/__init__.pyc
${PYSITELIB}/graphite/account/admin.pyo
${PYSITELIB}/graphite/account/admin.pyc
${PYSITELIB}/graphite/account/ldapBackend.pyo
${PYSITELIB}/graphite/account/ldapBackend.pyc
${PYSITELIB}/graphite/account/models.pyo
${PYSITELIB}/graphite/account/models.pyc
${PYSITELIB}/graphite/account/urls.pyo
${PYSITELIB}/graphite/account/urls.pyc
${PYSITELIB}/graphite/account/views.pyo
${PYSITELIB}/graphite/account/views.pyc
${PYSITELIB}/graphite/account/admin.py
${PYSITELIB}/graphite/account/ldapBackend.py
${PYSITELIB}/graphite/account/migrations/0001_initial.py
${PYSITELIB}/graphite/account/migrations/__init__.py
${PYSITELIB}/graphite/account/migrations/0001_initial.pyo
${PYSITELIB}/graphite/account/migrations/0001_initial.pyc
${PYSITELIB}/graphite/account/migrations/__init__.pyo
${PYSITELIB}/graphite/account/migrations/__init__.pyc
${PYSITELIB}/graphite/account/models.py
${PYSITELIB}/graphite/account/urls.py
${PYSITELIB}/graphite/account/views.py
${PYSITELIB}/graphite/app_settings.py
${PYSITELIB}/graphite/browser/__init__.py
${PYSITELIB}/graphite/browser/__init__.pyo
${PYSITELIB}/graphite/browser/__init__.pyc
${PYSITELIB}/graphite/browser/urls.pyo
${PYSITELIB}/graphite/browser/urls.pyc
${PYSITELIB}/graphite/browser/views.pyo
${PYSITELIB}/graphite/browser/views.pyc
${PYSITELIB}/graphite/browser/urls.py
${PYSITELIB}/graphite/browser/views.py
${PYSITELIB}/graphite/carbonlink.py
${PYSITELIB}/graphite/compat.py
${PYSITELIB}/graphite/composer/__init__.py
${PYSITELIB}/graphite/composer/__init__.pyo
${PYSITELIB}/graphite/composer/__init__.pyc
${PYSITELIB}/graphite/composer/urls.pyo
${PYSITELIB}/graphite/composer/urls.pyc
${PYSITELIB}/graphite/composer/views.pyo
${PYSITELIB}/graphite/composer/views.pyc
${PYSITELIB}/graphite/composer/urls.py
${PYSITELIB}/graphite/composer/views.py
${PYSITELIB}/graphite/dashboard/__init__.py
${PYSITELIB}/graphite/dashboard/__init__.pyo
${PYSITELIB}/graphite/dashboard/__init__.pyc
${PYSITELIB}/graphite/dashboard/admin.pyo
${PYSITELIB}/graphite/dashboard/admin.pyc
${PYSITELIB}/graphite/dashboard/models.pyo
${PYSITELIB}/graphite/dashboard/models.pyc
${PYSITELIB}/graphite/dashboard/send_graph.pyo
${PYSITELIB}/graphite/dashboard/send_graph.pyc
${PYSITELIB}/graphite/dashboard/urls.pyo
${PYSITELIB}/graphite/dashboard/urls.pyc
${PYSITELIB}/graphite/dashboard/views.pyo
${PYSITELIB}/graphite/dashboard/views.pyc
${PYSITELIB}/graphite/dashboard/admin.py
${PYSITELIB}/graphite/dashboard/migrations/0001_initial.py
${PYSITELIB}/graphite/dashboard/migrations/__init__.py
${PYSITELIB}/graphite/dashboard/migrations/0001_initial.pyo
${PYSITELIB}/graphite/dashboard/migrations/0001_initial.pyc
${PYSITELIB}/graphite/dashboard/migrations/__init__.pyo
${PYSITELIB}/graphite/dashboard/migrations/__init__.pyc
${PYSITELIB}/graphite/dashboard/models.py
${PYSITELIB}/graphite/dashboard/send_graph.py
${PYSITELIB}/graphite/dashboard/urls.py
${PYSITELIB}/graphite/dashboard/views.py
${PYSITELIB}/graphite/errors.py
${PYSITELIB}/graphite/events/__init__.py
${PYSITELIB}/graphite/events/__init__.pyo
${PYSITELIB}/graphite/events/__init__.pyc
${PYSITELIB}/graphite/events/admin.pyo
${PYSITELIB}/graphite/events/admin.pyc
${PYSITELIB}/graphite/events/compat.pyo
${PYSITELIB}/graphite/events/compat.pyc
${PYSITELIB}/graphite/events/models.pyo
${PYSITELIB}/graphite/events/models.pyc
${PYSITELIB}/graphite/events/urls.pyo
${PYSITELIB}/graphite/events/urls.pyc
${PYSITELIB}/graphite/events/views.pyo
${PYSITELIB}/graphite/events/views.pyc
${PYSITELIB}/graphite/events/admin.py
${PYSITELIB}/graphite/events/compat.py
${PYSITELIB}/graphite/events/migrations/0001_initial.py
${PYSITELIB}/graphite/events/migrations/__init__.py
${PYSITELIB}/graphite/events/migrations/0001_initial.pyo
${PYSITELIB}/graphite/events/migrations/0001_initial.pyc
${PYSITELIB}/graphite/events/migrations/__init__.pyo
${PYSITELIB}/graphite/events/migrations/__init__.pyc
${PYSITELIB}/graphite/events/models.py
${PYSITELIB}/graphite/events/urls.py
${PYSITELIB}/graphite/events/views.py
${PYSITELIB}/graphite/finders/__init__.py
${PYSITELIB}/graphite/finders/__init__.pyo
${PYSITELIB}/graphite/finders/__init__.pyc
${PYSITELIB}/graphite/finders/ceres.pyo
${PYSITELIB}/graphite/finders/ceres.pyc
${PYSITELIB}/graphite/finders/remote.pyo
${PYSITELIB}/graphite/finders/remote.pyc
${PYSITELIB}/graphite/finders/standard.pyo
${PYSITELIB}/graphite/finders/standard.pyc
${PYSITELIB}/graphite/finders/utils.pyo
${PYSITELIB}/graphite/finders/utils.pyc
${PYSITELIB}/graphite/finders/ceres.py
${PYSITELIB}/graphite/finders/remote.py
${PYSITELIB}/graphite/finders/standard.py
${PYSITELIB}/graphite/finders/utils.py
${PYSITELIB}/graphite/functions/__init__.py
${PYSITELIB}/graphite/functions/__init__.pyo
${PYSITELIB}/graphite/functions/__init__.pyc
${PYSITELIB}/graphite/functions/params.pyo
${PYSITELIB}/graphite/functions/params.pyc
${PYSITELIB}/graphite/functions/urls.pyo
${PYSITELIB}/graphite/functions/urls.pyc
${PYSITELIB}/graphite/functions/views.pyo
${PYSITELIB}/graphite/functions/views.pyc
${PYSITELIB}/graphite/functions/custom/__init__.py
${PYSITELIB}/graphite/functions/custom/__init__.pyo
${PYSITELIB}/graphite/functions/custom/__init__.pyc
${PYSITELIB}/graphite/functions/params.py
${PYSITELIB}/graphite/functions/urls.py
${PYSITELIB}/graphite/functions/views.py
${PYSITELIB}/graphite/http_pool.py
${PYSITELIB}/graphite/intervals.py
${PYSITELIB}/graphite/local_settings.py
${PYSITELIB}/graphite/local_settings.py.example
${PYSITELIB}/graphite/logger.py
${PYSITELIB}/graphite/metrics/__init__.py
${PYSITELIB}/graphite/metrics/__init__.pyo
${PYSITELIB}/graphite/metrics/__init__.pyc
${PYSITELIB}/graphite/metrics/urls.pyo
${PYSITELIB}/graphite/metrics/urls.pyc
${PYSITELIB}/graphite/metrics/views.pyo
${PYSITELIB}/graphite/metrics/views.pyc
${PYSITELIB}/graphite/metrics/urls.py
${PYSITELIB}/graphite/metrics/views.py
${PYSITELIB}/graphite/middleware.py
${PYSITELIB}/graphite/node.py
${PYSITELIB}/graphite/readers/__init__.py
${PYSITELIB}/graphite/readers/__init__.pyo
${PYSITELIB}/graphite/readers/__init__.pyc
${PYSITELIB}/graphite/readers/ceres.pyo
${PYSITELIB}/graphite/readers/ceres.pyc
${PYSITELIB}/graphite/readers/multi.pyo
${PYSITELIB}/graphite/readers/multi.pyc
${PYSITELIB}/graphite/readers/remote.pyo
${PYSITELIB}/graphite/readers/remote.pyc
${PYSITELIB}/graphite/readers/rrd.pyo
${PYSITELIB}/graphite/readers/rrd.pyc
${PYSITELIB}/graphite/readers/utils.pyo
${PYSITELIB}/graphite/readers/utils.pyc
${PYSITELIB}/graphite/readers/whisper.pyo
${PYSITELIB}/graphite/readers/whisper.pyc
${PYSITELIB}/graphite/readers/ceres.py
${PYSITELIB}/graphite/readers/multi.py
${PYSITELIB}/graphite/readers/remote.py
${PYSITELIB}/graphite/readers/rrd.py
${PYSITELIB}/graphite/readers/utils.py
${PYSITELIB}/graphite/readers/whisper.py
${PYSITELIB}/graphite/render/__init__.py
${PYSITELIB}/graphite/render/__init__.pyo
${PYSITELIB}/graphite/render/__init__.pyc
${PYSITELIB}/graphite/render/attime.pyo
${PYSITELIB}/graphite/render/attime.pyc
${PYSITELIB}/graphite/render/datalib.pyo
${PYSITELIB}/graphite/render/datalib.pyc
${PYSITELIB}/graphite/render/evaluator.pyo
${PYSITELIB}/graphite/render/evaluator.pyc
${PYSITELIB}/graphite/render/functions.pyo
${PYSITELIB}/graphite/render/functions.pyc
${PYSITELIB}/graphite/render/glyph.pyo
${PYSITELIB}/graphite/render/glyph.pyc
${PYSITELIB}/graphite/render/grammar.pyo
${PYSITELIB}/graphite/render/grammar.pyc
${PYSITELIB}/graphite/render/hashing.pyo
${PYSITELIB}/graphite/render/hashing.pyc
${PYSITELIB}/graphite/render/urls.pyo
${PYSITELIB}/graphite/render/urls.pyc
${PYSITELIB}/graphite/render/views.pyo
${PYSITELIB}/graphite/render/views.pyc
${PYSITELIB}/graphite/render/attime.py
${PYSITELIB}/graphite/render/datalib.py
${PYSITELIB}/graphite/render/evaluator.py
${PYSITELIB}/graphite/render/functions.py
${PYSITELIB}/graphite/render/glyph.py
${PYSITELIB}/graphite/render/grammar.py
${PYSITELIB}/graphite/render/hashing.py
${PYSITELIB}/graphite/render/urls.py
${PYSITELIB}/graphite/render/views.py
${PYSITELIB}/graphite/settings.py
${PYSITELIB}/graphite/singleton.py
${PYSITELIB}/graphite/storage.py
${PYSITELIB}/graphite/tags/__init__.py
${PYSITELIB}/graphite/tags/__init__.pyo
${PYSITELIB}/graphite/tags/__init__.pyc
${PYSITELIB}/graphite/tags/base.pyo
${PYSITELIB}/graphite/tags/base.pyc
${PYSITELIB}/graphite/tags/http.pyo
${PYSITELIB}/graphite/tags/http.pyc
${PYSITELIB}/graphite/tags/localdatabase.pyo
${PYSITELIB}/graphite/tags/localdatabase.pyc
${PYSITELIB}/graphite/tags/models.pyo
${PYSITELIB}/graphite/tags/models.pyc
${PYSITELIB}/graphite/tags/redis.pyo
${PYSITELIB}/graphite/tags/redis.pyc
${PYSITELIB}/graphite/tags/urls.pyo
${PYSITELIB}/graphite/tags/urls.pyc
${PYSITELIB}/graphite/tags/utils.pyo
${PYSITELIB}/graphite/tags/utils.pyc
${PYSITELIB}/graphite/tags/views.pyo
${PYSITELIB}/graphite/tags/views.pyc
${PYSITELIB}/graphite/tags/base.py
${PYSITELIB}/graphite/tags/http.py
${PYSITELIB}/graphite/tags/localdatabase.py
${PYSITELIB}/graphite/tags/migrations/0001_initial.py
${PYSITELIB}/graphite/tags/migrations/__init__.py
${PYSITELIB}/graphite/tags/migrations/0001_initial.pyo
${PYSITELIB}/graphite/tags/migrations/0001_initial.pyc
${PYSITELIB}/graphite/tags/migrations/__init__.pyo
${PYSITELIB}/graphite/tags/migrations/__init__.pyc
${PYSITELIB}/graphite/tags/models.py
${PYSITELIB}/graphite/tags/redis.py
${PYSITELIB}/graphite/tags/urls.py
${PYSITELIB}/graphite/tags/utils.py
${PYSITELIB}/graphite/tags/views.py
${PYSITELIB}/graphite/templates/500.html
${PYSITELIB}/graphite/templates/browser.html
${PYSITELIB}/graphite/templates/browserHeader.html
${PYSITELIB}/graphite/templates/composer.html
${PYSITELIB}/graphite/templates/dashboard.html
${PYSITELIB}/graphite/templates/dashboardHelp.html
${PYSITELIB}/graphite/templates/editProfile.html
${PYSITELIB}/graphite/templates/event.html
${PYSITELIB}/graphite/templates/events.html
${PYSITELIB}/graphite/templates/login.html
${PYSITELIB}/graphite/templates/version.html
${PYSITELIB}/graphite/umsgpack.py
${PYSITELIB}/graphite/url_shortener/__init__.py
${PYSITELIB}/graphite/url_shortener/__init__.pyo
${PYSITELIB}/graphite/url_shortener/__init__.pyc
${PYSITELIB}/graphite/url_shortener/baseconv.pyo
${PYSITELIB}/graphite/url_shortener/baseconv.pyc
${PYSITELIB}/graphite/url_shortener/models.pyo
${PYSITELIB}/graphite/url_shortener/models.pyc
${PYSITELIB}/graphite/url_shortener/views.pyo
${PYSITELIB}/graphite/url_shortener/views.pyc
${PYSITELIB}/graphite/url_shortener/baseconv.py
${PYSITELIB}/graphite/url_shortener/migrations/0001_initial.py
${PYSITELIB}/graphite/url_shortener/migrations/__init__.py
${PYSITELIB}/graphite/url_shortener/migrations/0001_initial.pyo
${PYSITELIB}/graphite/url_shortener/migrations/0001_initial.pyc
${PYSITELIB}/graphite/url_shortener/migrations/__init__.pyo
${PYSITELIB}/graphite/url_shortener/migrations/__init__.pyc
${PYSITELIB}/graphite/url_shortener/models.py
${PYSITELIB}/graphite/url_shortener/views.py
${PYSITELIB}/graphite/urls.py
${PYSITELIB}/graphite/user_util.py
${PYSITELIB}/graphite/util.py
${PYSITELIB}/graphite/version/__init__.py
${PYSITELIB}/graphite/version/__init__.pyo
${PYSITELIB}/graphite/version/__init__.pyc
${PYSITELIB}/graphite/version/urls.pyo
${PYSITELIB}/graphite/version/urls.pyc
${PYSITELIB}/graphite/version/views.pyo
${PYSITELIB}/graphite/version/views.pyc
${PYSITELIB}/graphite/version/urls.py
${PYSITELIB}/graphite/version/views.py
${PYSITELIB}/graphite/views.py
${PYSITELIB}/graphite/whitelist/__init__.py
${PYSITELIB}/graphite/whitelist/__init__.pyo
${PYSITELIB}/graphite/whitelist/__init__.pyc
${PYSITELIB}/graphite/whitelist/urls.pyo
${PYSITELIB}/graphite/whitelist/urls.pyc
${PYSITELIB}/graphite/whitelist/views.pyo
${PYSITELIB}/graphite/whitelist/views.pyc
${PYSITELIB}/graphite/whitelist/urls.py
${PYSITELIB}/graphite/whitelist/views.py
${PYSITELIB}/graphite/worker_pool/__init__.py
${PYSITELIB}/graphite/worker_pool/__init__.pyo
${PYSITELIB}/graphite/worker_pool/__init__.pyc
${PYSITELIB}/graphite/worker_pool/pool.pyo
${PYSITELIB}/graphite/worker_pool/pool.pyc
${PYSITELIB}/graphite/worker_pool/pool.py
${PYSITELIB}/graphite/wsgi.py
${PYSITELIB}/${EGG_FILE}
share/examples/graphite/dashboard.conf.example
share/examples/graphite/example-client.py
share/examples/graphite/example-graphite-vhost.conf
share/examples/graphite/graphTemplates.conf.example
share/examples/graphite/graphite.wsgi.example
@pkgdir var/graphite/whisper/dummy.txt
@pkgdir var/graphite/rrd/dummy.txt
@pkgdir var/graphite/log/webapp/dummy.txt
@pkgdir var/graphite/log/dummy.txt
@pkgdir var/graphite/ceres/dummy.txt

8
py-graphite-web/distinfo Normal file
View File

@ -0,0 +1,8 @@
$NetBSD: distinfo,v 1.1 2015/12/11 21:45:07 riz Exp $
SHA1 (graphite-web-1.1.5.tar.gz) = b7d03ae7d08b320a2e38a48aceefc9cb13fb132b
RMD160 (graphite-web-1.1.5.tar.gz) = d6e86f49f5d7a6380d88912405acfcb0f50e1991
SHA512 (graphite-web-1.1.5.tar.gz) = 6559ab2610a962e49d422c44cb39c871ac37775716d0154898148bc9fa0c4f125b93d2a3d8a0189fa93b46058587e9fc139750509263a7f83181560fe46906a7
Size (graphite-web-1.1.5.tar.gz) = 1437530 bytes
SHA1 (patch-bin_build-index.sh) = c79b13fefb76ca3c88fd8aa44142fe1094752e76
SHA1 (patch-setup.py) = aa6a5f401a8fbe64447e9a4746abc9e8650acc4a

View File

@ -0,0 +1,12 @@
$NetBSD: patch-bin_build-index.sh,v 1.1 2015/12/11 21:45:07 riz Exp $
Fix default paths.
--- bin/build-index.sh.orig 2019-08-05 16:56:40.170903148 +0000
+++ bin/build-index.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-export PYTHONPATH="/opt/graphite/webapp/:$PYTHONPATH"
+export PYTHONPATH="@GRAPHITE_DIR@/webapp/:$PYTHONPATH"
BINDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
${BINDIR}/build-index

View File

@ -0,0 +1,28 @@
$NetBSD: patch-setup.py,v 1.1 2015/12/11 21:45:07 riz Exp $
Use proper paths for storage and config example files.
--- setup.py.orig 2019-08-05 16:53:51.886345867 +0000
+++ setup.py
@@ -59,17 +59,17 @@ else:
storage_dirs = []
for subdir in ('whisper/dummy.txt', 'ceres/dummy.txt', 'rrd/dummy.txt', 'log/dummy.txt', 'log/webapp/dummy.txt'):
- storage_dirs.append( ('storage/%s' % subdir, []) )
+ storage_dirs.append( ('@GRAPHITE_DIR@/%s' % subdir, []) )
webapp_content = defaultdict(list)
-for root, dirs, files in os.walk('webapp/content'):
+for root, dirs, files in os.walk('graphite/webapp/content'):
for filename in files:
filepath = os.path.join(root, filename)
webapp_content[root].append(filepath)
-conf_files = [ ('conf', glob('conf/*.example')) ]
-examples = [ ('examples', glob('examples/example-*')) ]
+conf_files = [ ('@PREFIX@/@GRAPHITE_EGDIR@', glob('conf/*.example')) ]
+examples = [ ('@PREFIX@/@GRAPHITE_EGDIR@', glob('examples/example-*')) ]
try:
setup(