diff options
author | Louis Sautier <sbraz@gentoo.org> | 2018-06-25 12:11:53 +0200 |
---|---|---|
committer | Louis Sautier <sbraz@gentoo.org> | 2018-06-25 23:24:34 +0200 |
commit | d4c60400f9bcd7871e8aa78426f86904d1099118 (patch) | |
tree | d483a28e825059d6b2e540951ac3363546eb0b79 /net-analyzer | |
parent | net-analyzer/graphite-web: update HOMEPAGE, add GitHub to metadata.xml (diff) | |
download | gentoo-d4c60400f9bcd7871e8aa78426f86904d1099118.tar.gz gentoo-d4c60400f9bcd7871e8aa78426f86904d1099118.tar.bz2 gentoo-d4c60400f9bcd7871e8aa78426f86904d1099118.zip |
net-analyzer/graphite-web: fix deps, re-add USE=ldap, misc.
* Sort dependencies.
* Do not require python[sqlite], it is never directly used.
* Do not require twisted or txAMQP, they are not directly
used by graphite-web.
* Do not require zope-interface, it was removed in
https://github.com/graphite-project/graphite-web/commit/bed2d5b82d128b751ea080d86a4ccb9c27bb6c58
* Do not require whisper. It is optional and in the future we could
probably use carbon with ceres instead of whisper.
* pytz and pyparsing are not bundled any more, remove the call to rm.
* Use python_prepare_all instead of src_prepare.
* Install examples only once in the _all function. Use dodoc instead of
doins. Do not compress them.
* Use the recommended way to configure the app instead of re-creating
manage.py.
* Do not remove build-index from install but rename it.
* Run build-index during pkg_config() instead of just creating an empty
file. This allows us to drop the complex python file parsing.
* Mention build-index in the postinst message. Only display the message
for new installs. Use elog instead of einfo.
* Create the /var/{lib,log}/graphite-web directories which are
referenced in local_settings.py.
* Add the example database location to the FHS-style settings patch.
* Fix STATIC_ROOT in the FHS-style settings patch.
* Add missing || die to the ln call.
* bump to EAPI=7.
Closes: https://github.com/gentoo/gentoo/pull/8962
Package-Manager: Portage-2.3.40, Repoman-2.3.9
Diffstat (limited to 'net-analyzer')
3 files changed, 110 insertions, 121 deletions
diff --git a/net-analyzer/graphite-web/files/graphite-web-1.1.3-fhs-paths.patch b/net-analyzer/graphite-web/files/graphite-web-1.1.3-fhs-paths.patch index 39d325984245..aa6ea74ff93f 100644 --- a/net-analyzer/graphite-web/files/graphite-web-1.1.3-fhs-paths.patch +++ b/net-analyzer/graphite-web/files/graphite-web-1.1.3-fhs-paths.patch @@ -10,11 +10,12 @@ Install FHS-style paths from graphite.wsgi import application --- a/setup.py +++ b/setup.py -@@ -59,8 +59,7 @@ +@@ -59,8 +59,8 @@ ], package_data={'graphite' : ['templates/*', 'local_settings.py.example']}, - scripts=glob('bin/*'), ++ scripts=['bin/graphite-web-build-index'], - data_files=list(webapp_content.items()) + storage_dirs + conf_files + examples, + data_files=list(webapp_content.items()), install_requires=['Django>=1.8,<1.11.99', 'django-tagging==0.4.3', 'pytz', 'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'], @@ -36,7 +37,7 @@ Install FHS-style paths #INDEX_FILE = '/opt/graphite/storage/index' # Search index file +CONF_DIR = '@GENTOO_PORTAGE_EPREFIX@/etc/graphite-web' +STORAGE_DIR = '@GENTOO_PORTAGE_EPREFIX@/var/lib/carbon' -+STATIC_ROOT = '@GENTOO_PORTAGE_EPREFIX@/usr/share/graphite-web' ++STATIC_ROOT = '@GENTOO_PORTAGE_EPREFIX@/usr/share/graphite-web/webapp/content' +LOG_DIR = '@GENTOO_PORTAGE_EPREFIX@/var/log/graphite-web' +INDEX_FILE = '@GENTOO_PORTAGE_EPREFIX@/var/lib/graphite-web/index' # Search index file @@ -51,3 +52,12 @@ Install FHS-style paths # # Data directories using the "Standard" metrics finder (i.e. not Ceres) #STANDARD_DIRS = [WHISPER_DIR, RRD_DIR] # Default: set from the above variables +@@ -244,7 +244,7 @@ + # + #DATABASES = { + # 'default': { +-# 'NAME': '/opt/graphite/storage/graphite.db', ++# 'NAME': '@GENTOO_PORTAGE_EPREFIX@/var/lib/graphite-web/graphite.db', + # 'ENGINE': 'django.db.backends.sqlite3', + # 'USER': '', + # 'PASSWORD': '', diff --git a/net-analyzer/graphite-web/graphite-web-1.1.3-r1.ebuild b/net-analyzer/graphite-web/graphite-web-1.1.3-r1.ebuild new file mode 100644 index 000000000000..1f67a202f1ff --- /dev/null +++ b/net-analyzer/graphite-web/graphite-web-1.1.3-r1.ebuild @@ -0,0 +1,98 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PYTHON_COMPAT=( python{2_7,3_{4,5,6}} ) + +inherit distutils-r1 python-utils-r1 prefix + +DESCRIPTION="Enterprise scalable realtime graphing" +HOMEPAGE="https://graphiteapp.org/" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+carbon ldap mysql memcached postgres +sqlite" + +DEPEND="" +RDEPEND=" + carbon? ( dev-python/carbon[${PYTHON_USEDEP}] ) + ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] ) + memcached? ( dev-python/python-memcached[${PYTHON_USEDEP}] ) + mysql? ( + || ( + dev-python/mysql-python[${PYTHON_USEDEP}] + dev-python/mysqlclient[${PYTHON_USEDEP}] + ) + ) + postgres? ( dev-python/psycopg:2[${PYTHON_USEDEP}] ) + >=dev-python/django-1.8[sqlite?,${PYTHON_USEDEP}] + <dev-python/django-1.11.99[sqlite?,${PYTHON_USEDEP}] + >=dev-python/django-tagging-0.4.3[${PYTHON_USEDEP}] + dev-python/cairocffi[${PYTHON_USEDEP}] + dev-python/pyparsing[${PYTHON_USEDEP}] + dev-python/pytz[${PYTHON_USEDEP}] + dev-python/scandir[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + dev-python/urllib3[${PYTHON_USEDEP}] + media-libs/fontconfig +" + +PATCHES=( + # Do not install the configuration and data files. We install them + # somewhere sensible by hand. + "${FILESDIR}"/${PN}-1.1.3-fhs-paths.patch +) + +python_prepare_all() { + # Use a less common name + mv bin/build-index bin/${PN}-build-index || die + # use FHS-style paths + export GRAPHITE_NO_PREFIX=yes + distutils-r1_python_prepare_all + eprefixify \ + conf/graphite.wsgi.example \ + webapp/graphite/local_settings.py.example +} + +python_install_all() { + distutils-r1_python_install_all + keepdir /var/{lib,log}/${PN} + docinto examples + docompress -x "/usr/share/doc/${PF}/examples" + dodoc \ + examples/example-graphite-vhost.conf \ + conf/dashboard.conf.example \ + conf/graphite.wsgi.example +} + +python_install() { + distutils-r1_python_install \ + --install-data="${EPREFIX}"/usr/share/${PN} + + 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 || die + popd > /dev/null || die +} + +pkg_config() { + "${EROOT}"/usr/bin/django-admin.py migrate \ + --settings=graphite.settings --run-syncdb + "${EROOT}"/usr/bin/${PN}-build-index +} + +pkg_postinst() { + # Only display this for new installs + if [[ -z ${REPLACING_VERSIONS} ]]; then + elog "You need to configure ${PN} to run with a WSGI server of your choice." + elog "Don't forget to edit local_settings.py in ${EPREFIX}/etc/${PN}" + elog "See https://graphite.readthedocs.org/en/latest/config-local-settings.html" + elog "Run emerge --config =${PN}-${PVR} if this is a fresh install." + elog "" + elog "If you want to update the search index regularily, you should consider running" + elog "the '${PN}-build-index' script in a crontab." + fi +} diff --git a/net-analyzer/graphite-web/graphite-web-1.1.3.ebuild b/net-analyzer/graphite-web/graphite-web-1.1.3.ebuild deleted file mode 100644 index a51361a091c1..000000000000 --- a/net-analyzer/graphite-web/graphite-web-1.1.3.ebuild +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python{2_7,3_{4,5,6}} ) - -inherit distutils-r1 python-utils-r1 prefix - -DESCRIPTION="Enterprise scalable realtime graphing" -HOMEPAGE="https://graphiteapp.org/" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="+carbon mysql memcached postgres +sqlite" -#ldap - needs bump of python-ldap to latest -# ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] ) - -DEPEND="" -RDEPEND=" - carbon? ( dev-python/carbon[${PYTHON_USEDEP}] ) - mysql? ( - || ( - dev-python/mysql-python[${PYTHON_USEDEP}] - dev-python/mysqlclient[${PYTHON_USEDEP}] - ) - ) - memcached? ( dev-python/python-memcached[${PYTHON_USEDEP}] ) - postgres? ( - dev-python/psycopg:2[${PYTHON_USEDEP}] - ) - dev-lang/python[sqlite?] - dev-python/cairocffi[${PYTHON_USEDEP}] - >=dev-python/django-1.8[sqlite?,${PYTHON_USEDEP}] - <dev-python/django-1.11.99[sqlite?,${PYTHON_USEDEP}] - >=dev-python/django-tagging-0.4.3[${PYTHON_USEDEP}] - dev-python/pyparsing[${PYTHON_USEDEP}] - dev-python/pytz[${PYTHON_USEDEP}] - dev-python/scandir[${PYTHON_USEDEP}] - dev-python/six[${PYTHON_USEDEP}] - dev-python/txAMQP[${PYTHON_USEDEP}] - dev-python/twisted[${PYTHON_USEDEP}] - dev-python/urllib3[${PYTHON_USEDEP}] - dev-python/zope-interface[${PYTHON_USEDEP}] - dev-python/whisper[${PYTHON_USEDEP}] - media-libs/fontconfig" - -PATCHES=( - # Do not install the configuration and data files. We install them - # somewhere sensible by hand. - "${FILESDIR}"/${PN}-1.1.3-fhs-paths.patch -) - -src_prepare() { - # use FHS-style paths - export GRAPHITE_NO_PREFIX=yes - # 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 - # (missing from tarball) - dodir /usr/bin - cat > "${ED}"/usr/bin/${PN}-manage <<- EOS - #!/usr/bin/env python - import os - import sys - - if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "graphite.settings") - - from django.core.management import execute_from_command_line - - execute_from_command_line(sys.argv) - EOS - #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 - - insinto /usr/share/doc/${PF}/examples - doins \ - examples/example-graphite-vhost.conf \ - conf/dashboard.conf.example \ - conf/graphite.wsgi.example -} - -pkg_config() { - "${ROOT}"/usr/bin/${PN}-manage syncdb --noinput - local idx=$(grep 'INDEX_FILE =' "${EROOT}"/etc/graphite-web/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 need to configure ${PN} to run with a WSGI server of your choice." - 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 =${PN}-${PVR} if this is a fresh install." -} |