update py-carbon

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

update py-carbon

Martijn van Duren-7
Currently I'm working at getting nice graphs in my icinga-web2 output,  
which requires graphite. Before I'm ready to submit graphite-web and
icinga-web2-graphite I would like to get some things out so I can keep
better focus.

Here's an update to databases/py-carbon.
There's experimental support for python3, but I haven't included it
here because of other dependencies which don't yet have python3
support in our tree.

Only tested with carbon-cache.
RC-scripts added for convenience.

major release notes found here:
https://graphite.readthedocs.io/en/latest/releases/1_1_1.html

OK?

martijn@

Index: Makefile
===================================================================
RCS file: /cvs/ports/databases/py-carbon/Makefile,v
retrieving revision 1.9
diff -u -p -r1.9 Makefile
--- Makefile 1 Nov 2017 10:44:39 -0000 1.9
+++ Makefile 27 Nov 2018 10:57:35 -0000
@@ -2,12 +2,11 @@
 
 COMMENT= backend data caching and persistence daemon for Graphite
 
-MODPY_EGG_VERSION= 1.0.1
+MODPY_EGG_VERSION= 1.1.4
 
 DISTNAME= carbon-${MODPY_EGG_VERSION}
 PKGNAME= py-${DISTNAME}
 CATEGORIES= databases
-REVISION= 0
 
 # Apache
 PERMIT_PACKAGE_CDROM= Yes
@@ -17,10 +16,11 @@ MODPY_PI = Yes
 
 BUILD_DEPENDS= ${RUN_DEPENDS}
 RUN_DEPENDS= databases/py-whisper \
- devel/py-twisted
+ devel/py-twisted \
+ www/py-urllib3
 
-BIN_FILES= carbon-aggregator.py carbon-cache.py carbon-client.py \
- carbon-relay.py validate-storage-schemas.py
+BIN_FILES= carbon-aggregator.py carbon-aggregator-cache.py carbon-cache.py \
+ carbon-client.py carbon-relay.py validate-storage-schemas.py
 
 .for b in ${BIN_FILES}
 MODPY_ADJ_FILES+= bin/$b
Index: distinfo
===================================================================
RCS file: /cvs/ports/databases/py-carbon/distinfo,v
retrieving revision 1.3
diff -u -p -r1.3 distinfo
--- distinfo 8 Jul 2017 16:09:46 -0000 1.3
+++ distinfo 27 Nov 2018 10:57:35 -0000
@@ -1,2 +1,2 @@
-SHA256 (carbon-1.0.1.tar.gz) = JbScsdVAFC38wAY4IwjGO5Ic+J0s2EhhHkmHTN1ciUU=
-SIZE (carbon-1.0.1.tar.gz) = 61444
+SHA256 (carbon-1.1.4.tar.gz) = G3DjSsDwvTKgPuFOrx7SyFfiCJhPyXYfWalcIcUmRRM=
+SIZE (carbon-1.1.4.tar.gz) = 71819
Index: patches/patch-bin_validate-storage-schemas_py
===================================================================
RCS file: /cvs/ports/databases/py-carbon/patches/patch-bin_validate-storage-schemas_py,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-bin_validate-storage-schemas_py
--- patches/patch-bin_validate-storage-schemas_py 11 Oct 2012 18:00:30 -0000 1.1.1.1
+++ patches/patch-bin_validate-storage-schemas_py 27 Nov 2018 10:57:35 -0000
@@ -1,12 +1,13 @@
 $OpenBSD: patch-bin_validate-storage-schemas_py,v 1.1.1.1 2012/10/11 18:00:30 jasper Exp $
---- bin/validate-storage-schemas.py.orig Thu Oct 11 19:15:55 2012
-+++ bin/validate-storage-schemas.py Thu Oct 11 19:16:45 2012
-@@ -22,7 +22,7 @@ if len(sys.argv) == 2:
+Index: bin/validate-storage-schemas.py
+--- bin/validate-storage-schemas.py.orig
++++ bin/validate-storage-schemas.py
+@@ -26,7 +26,7 @@ if len(sys.argv) == 2:
    SCHEMAS_FILE = sys.argv[1]
-   print "Loading storage-schemas configuration from: '%s'" % SCHEMAS_FILE
+   print("Loading storage-schemas configuration from: '%s'" % SCHEMAS_FILE)
  else:
 -  SCHEMAS_FILE = realpath(join(dirname(__file__), '..', 'conf', 'storage-schemas.conf'))
 +  SCHEMAS_FILE = '${SYSCONFDIR}/graphite/storage-schemas.conf'
-   print "Loading storage-schemas configuration from default location at: '%s'" % SCHEMAS_FILE
+   print("Loading storage-schemas configuration from default location at: '%s'" % SCHEMAS_FILE)
 
  config_parser = ConfigParser()
Index: patches/patch-lib_carbon_conf_py
===================================================================
RCS file: /cvs/ports/databases/py-carbon/patches/patch-lib_carbon_conf_py,v
retrieving revision 1.3
diff -u -p -r1.3 patch-lib_carbon_conf_py
--- patches/patch-lib_carbon_conf_py 8 Jul 2017 16:09:46 -0000 1.3
+++ patches/patch-lib_carbon_conf_py 27 Nov 2018 10:57:35 -0000
@@ -2,15 +2,16 @@ $OpenBSD: patch-lib_carbon_conf_py,v 1.3
 Index: lib/carbon/conf.py
 --- lib/carbon/conf.py.orig
 +++ lib/carbon/conf.py
-@@ -545,6 +545,7 @@ def read_config(program, options, **kwargs):
+@@ -577,7 +577,7 @@ def read_config(program, options, **kwargs):
+     for name, value in kwargs.items():
          settings.setdefault(name, value)
 
-     graphite_root = kwargs.get("ROOT_DIR")
+-    graphite_root = kwargs.get("ROOT_DIR")
 +    graphite_root = '/var/graphite/'
      if graphite_root is None:
          graphite_root = os.environ.get('GRAPHITE_ROOT')
      if graphite_root is None:
-@@ -555,7 +556,7 @@ def read_config(program, options, **kwargs):
+@@ -588,7 +588,7 @@ def read_config(program, options, **kwargs):
      # 'GRAPHITE_CONF_DIR' environment variable.
      settings.setdefault("CONF_DIR",
                          os.environ.get("GRAPHITE_CONF_DIR",
Index: patches/patch-setup_py
===================================================================
RCS file: /cvs/ports/databases/py-carbon/patches/patch-setup_py,v
retrieving revision 1.3
diff -u -p -r1.3 patch-setup_py
--- patches/patch-setup_py 8 Jul 2017 16:09:46 -0000 1.3
+++ patches/patch-setup_py 27 Nov 2018 10:57:35 -0000
@@ -2,20 +2,20 @@ $OpenBSD: patch-setup_py,v 1.3 2017/07/0
 Index: setup.py
 --- setup.py.orig
 +++ setup.py
-@@ -54,7 +54,7 @@ else:
- storage_dirs = [ ('storage/ceres', []), ('storage/whisper',[]),
-                  ('storage/lists',[]), ('storage/log',[]),
-                  ('storage/rrd',[]) ]
+@@ -61,7 +61,7 @@ else:
+ 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')) ]
 +conf_files = [ ('${GRAPHITE_EGDIR}', glob('conf/*.example')) ]
 
  install_files = storage_dirs + conf_files
 
-@@ -63,7 +63,6 @@ install_files = storage_dirs + conf_files
+@@ -70,7 +70,6 @@ install_files = storage_dirs + conf_files
  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(
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/databases/py-carbon/pkg/PLIST,v
retrieving revision 1.4
diff -u -p -r1.4 PLIST
--- pkg/PLIST 1 Nov 2017 10:44:39 -0000 1.4
+++ pkg/PLIST 27 Nov 2018 10:57:35 -0000
@@ -1,6 +1,11 @@
 @comment $OpenBSD: PLIST,v 1.4 2017/11/01 10:44:39 landry Exp $
 @newgroup _graphite:706
 @newuser _graphite:706:_graphite:daemon:Graphite and Carbon user:/nonexistent:/sbin/nologin
+@rcscript ${RCDIR}/carbon_aggregator
+@rcscript ${RCDIR}/carbon_aggregator_cache
+@rcscript ${RCDIR}/carbon_cache
+@rcscript ${RCDIR}/carbon_relay
+bin/carbon-aggregator-cache.py
 bin/carbon-aggregator.py
 bin/carbon-cache.py
 bin/carbon-client.py
@@ -40,6 +45,8 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/carbon/exceptions.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/hashing.py
 lib/python${MODPY_VERSION}/site-packages/carbon/hashing.pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/http.py
+lib/python${MODPY_VERSION}/site-packages/carbon/http.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/instrumentation.py
 lib/python${MODPY_VERSION}/site-packages/carbon/instrumentation.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/log.py
@@ -58,6 +65,8 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/carbon/regexlist.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/relayrules.py
 lib/python${MODPY_VERSION}/site-packages/carbon/relayrules.pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/resolver.py
+lib/python${MODPY_VERSION}/site-packages/carbon/resolver.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/rewrite.py
 lib/python${MODPY_VERSION}/site-packages/carbon/rewrite.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/routers.py
@@ -72,6 +81,8 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/carbon/util.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/writer.py
 lib/python${MODPY_VERSION}/site-packages/carbon/writer.pyc
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_cache_plugin.py
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_cache_plugin.pyc
 lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_plugin.py
 lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_plugin.pyc
 lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_cache_plugin.py
Index: pkg/carbon_aggregator.rc
===================================================================
RCS file: pkg/carbon_aggregator.rc
diff -N pkg/carbon_aggregator.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_aggregator.rc 27 Nov 2018 10:57:35 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-aggregator.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_aggregator_cache.rc
===================================================================
RCS file: pkg/carbon_aggregator_cache.rc
diff -N pkg/carbon_aggregator_cache.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_aggregator_cache.rc 27 Nov 2018 10:57:35 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-aggregator-cache.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_cache.rc
===================================================================
RCS file: pkg/carbon_cache.rc
diff -N pkg/carbon_cache.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_cache.rc 27 Nov 2018 10:57:35 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-cache.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_relay.rc
===================================================================
RCS file: pkg/carbon_relay.rc
diff -N pkg/carbon_relay.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_relay.rc 27 Nov 2018 10:57:35 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-relay.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1

Reply | Threaded
Open this post in threaded view
|

Re: update py-carbon

Daniel Jakots-3
On Tue, 27 Nov 2018 12:43:52 +0100, Martijn van Duren
<[hidden email]> wrote:

> Here's an update to databases/py-carbon.
> There's experimental support for python3, but I haven't included it
> here because of other dependencies which don't yet have python3
> support in our tree.

Which one(s)?


Cheers,
Daniel

Reply | Threaded
Open this post in threaded view
|

Re: update py-carbon

Martijn van Duren-7
On 11/27/18 2:36 PM, Daniel Jakots wrote:

> On Tue, 27 Nov 2018 12:43:52 +0100, Martijn van Duren
> <[hidden email]> wrote:
>
>> Here's an update to databases/py-carbon.
>> There's experimental support for python3, but I haven't included it
>> here because of other dependencies which don't yet have python3
>> support in our tree.
>
> Which one(s)?
>
I must have goofed somewhere. It's not py-carbon directly which has
"issues", but py-whisper. But let's safe that discussion for that
threat.

Here's an updated diff. I don't know whether mostly executable
python packages should be moved to python3, or if they still
should come in flavors, so I just made it a flavor, so we can
quite easily dumb it down again if we just want python3.

Note: carbon-aggregator{,-cache} doesn't work because it misses
py-cachetools, but people could get that themselves via pip, or it
could be added as a package in the future, so I left the plumbing in
as is.

martijn@

Index: Makefile
===================================================================
RCS file: /cvs/ports/databases/py-carbon/Makefile,v
retrieving revision 1.9
diff -u -p -r1.9 Makefile
--- Makefile 1 Nov 2017 10:44:39 -0000 1.9
+++ Makefile 28 Nov 2018 07:22:54 -0000
@@ -2,12 +2,11 @@
 
 COMMENT= backend data caching and persistence daemon for Graphite
 
-MODPY_EGG_VERSION= 1.0.1
+MODPY_EGG_VERSION= 1.1.4
 
 DISTNAME= carbon-${MODPY_EGG_VERSION}
 PKGNAME= py-${DISTNAME}
 CATEGORIES= databases
-REVISION= 0
 
 # Apache
 PERMIT_PACKAGE_CDROM= Yes
@@ -16,25 +15,45 @@ MODULES= lang/python
 MODPY_PI = Yes
 
 BUILD_DEPENDS= ${RUN_DEPENDS}
-RUN_DEPENDS= databases/py-whisper \
- devel/py-twisted
+RUN_DEPENDS= databases/py-whisper${MODPY_FLAVOR} \
+ devel/py-twisted${MODPY_FLAVOR} \
+ www/py-urllib3${MODPY_FLAVOR}
 
-BIN_FILES= carbon-aggregator.py carbon-cache.py carbon-client.py \
- carbon-relay.py validate-storage-schemas.py
+PYBINS= carbon-aggregator carbon-aggregator-cache carbon-cache \
+ carbon-client carbon-relay validate-storage-schemas
 
-.for b in ${BIN_FILES}
-MODPY_ADJ_FILES+= bin/$b
+FLAVORS= python3
+FLAVOR?=
+
+.for b in ${PYBINS}
+MODPY_ADJ_FILES+= bin/$b.py
 .endfor
 
 GRAPHITE_EGDIR= ${PREFIX}/share/examples/graphite/
 
-SUBST_VARS+= GRAPHITE_EGDIR MODPY_SITEPKG
+MODPY_RC_SUFFIX= ${MODPY_BIN_SUFFIX:S/-//1}
+
+SUBST_VARS+= GRAPHITE_EGDIR MODPY_SITEPKG MODPY_RC_SUFFIX \
+ MODPY_BIN_SUFFIX
 
 NO_TEST= Yes
 
+PYPKGNAME= ${MODPY_PY_PREFIX}carbon
+
 pre-configure:
  ${SUBST_CMD} ${WRKSRC}/setup.{cfg,py} ${WRKSRC}/lib/carbon/conf.py \
- ${WRKSRC}/bin/validate-storage-schemas.py
+ ${WRKSRC}/bin/validate-storage-schemas.py \
+ ${WRKSRC}/lib/twisted/plugins/carbon_aggregator_cache_plugin.py \
+ ${WRKSRC}/lib/twisted/plugins/carbon_aggregator_plugin.py \
+ ${WRKSRC}/lib/twisted/plugins/carbon_cache_plugin.py \
+ ${WRKSRC}/lib/twisted/plugins/carbon_relay_plugin.py
  rm ${WRKSRC}/{bin/validate-storage-schemas,lib/carbon/conf}.py.{orig,beforesubst}
+
+post-install:
+.for b in ${PYBINS}
+ mv -f ${PREFIX}/bin/$b.py ${PREFIX}/bin/$b${MODPY_BIN_SUFFIX}.py
+.endfor
+ mv -f ${PREFIX}/share/examples/graphite \
+ ${PREFIX}/share/examples/${MODPY_PY_PREFIX}graphite
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/databases/py-carbon/distinfo,v
retrieving revision 1.3
diff -u -p -r1.3 distinfo
--- distinfo 8 Jul 2017 16:09:46 -0000 1.3
+++ distinfo 28 Nov 2018 07:22:54 -0000
@@ -1,2 +1,2 @@
-SHA256 (carbon-1.0.1.tar.gz) = JbScsdVAFC38wAY4IwjGO5Ic+J0s2EhhHkmHTN1ciUU=
-SIZE (carbon-1.0.1.tar.gz) = 61444
+SHA256 (carbon-1.1.4.tar.gz) = G3DjSsDwvTKgPuFOrx7SyFfiCJhPyXYfWalcIcUmRRM=
+SIZE (carbon-1.1.4.tar.gz) = 71819
Index: patches/patch-bin_validate-storage-schemas_py
===================================================================
RCS file: /cvs/ports/databases/py-carbon/patches/patch-bin_validate-storage-schemas_py,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-bin_validate-storage-schemas_py
--- patches/patch-bin_validate-storage-schemas_py 11 Oct 2012 18:00:30 -0000 1.1.1.1
+++ patches/patch-bin_validate-storage-schemas_py 28 Nov 2018 07:22:54 -0000
@@ -1,12 +1,13 @@
 $OpenBSD: patch-bin_validate-storage-schemas_py,v 1.1.1.1 2012/10/11 18:00:30 jasper Exp $
---- bin/validate-storage-schemas.py.orig Thu Oct 11 19:15:55 2012
-+++ bin/validate-storage-schemas.py Thu Oct 11 19:16:45 2012
-@@ -22,7 +22,7 @@ if len(sys.argv) == 2:
+Index: bin/validate-storage-schemas.py
+--- bin/validate-storage-schemas.py.orig
++++ bin/validate-storage-schemas.py
+@@ -26,7 +26,7 @@ if len(sys.argv) == 2:
    SCHEMAS_FILE = sys.argv[1]
-   print "Loading storage-schemas configuration from: '%s'" % SCHEMAS_FILE
+   print("Loading storage-schemas configuration from: '%s'" % SCHEMAS_FILE)
  else:
 -  SCHEMAS_FILE = realpath(join(dirname(__file__), '..', 'conf', 'storage-schemas.conf'))
 +  SCHEMAS_FILE = '${SYSCONFDIR}/graphite/storage-schemas.conf'
-   print "Loading storage-schemas configuration from default location at: '%s'" % SCHEMAS_FILE
+   print("Loading storage-schemas configuration from default location at: '%s'" % SCHEMAS_FILE)
 
  config_parser = ConfigParser()
Index: patches/patch-lib_carbon_conf_py
===================================================================
RCS file: /cvs/ports/databases/py-carbon/patches/patch-lib_carbon_conf_py,v
retrieving revision 1.3
diff -u -p -r1.3 patch-lib_carbon_conf_py
--- patches/patch-lib_carbon_conf_py 8 Jul 2017 16:09:46 -0000 1.3
+++ patches/patch-lib_carbon_conf_py 28 Nov 2018 07:22:54 -0000
@@ -2,15 +2,16 @@ $OpenBSD: patch-lib_carbon_conf_py,v 1.3
 Index: lib/carbon/conf.py
 --- lib/carbon/conf.py.orig
 +++ lib/carbon/conf.py
-@@ -545,6 +545,7 @@ def read_config(program, options, **kwargs):
+@@ -577,7 +577,7 @@ def read_config(program, options, **kwargs):
+     for name, value in kwargs.items():
          settings.setdefault(name, value)
 
-     graphite_root = kwargs.get("ROOT_DIR")
+-    graphite_root = kwargs.get("ROOT_DIR")
 +    graphite_root = '/var/graphite/'
      if graphite_root is None:
          graphite_root = os.environ.get('GRAPHITE_ROOT')
      if graphite_root is None:
-@@ -555,7 +556,7 @@ def read_config(program, options, **kwargs):
+@@ -588,7 +588,7 @@ def read_config(program, options, **kwargs):
      # 'GRAPHITE_CONF_DIR' environment variable.
      settings.setdefault("CONF_DIR",
                          os.environ.get("GRAPHITE_CONF_DIR",
Index: patches/patch-lib_twisted_plugins_carbon_aggregator_cache_plugin_py
===================================================================
RCS file: patches/patch-lib_twisted_plugins_carbon_aggregator_cache_plugin_py
diff -N patches/patch-lib_twisted_plugins_carbon_aggregator_cache_plugin_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_twisted_plugins_carbon_aggregator_cache_plugin_py 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: lib/twisted/plugins/carbon_aggregator_cache_plugin.py
+--- lib/twisted/plugins/carbon_aggregator_cache_plugin.py.orig
++++ lib/twisted/plugins/carbon_aggregator_cache_plugin.py
+@@ -9,7 +9,7 @@ from carbon import conf
+ @implementer(IServiceMaker, IPlugin)
+ class CarbonAggregatorCacheServiceMaker(object):
+
+-    tapname = "carbon-aggregator-cache"
++    tapname = "carbon-aggregator-cache${MODPY_BIN_SUFFIX}"
+     description = "Aggregate and write stats for graphite."
+     options = conf.CarbonAggregatorOptions
+
Index: patches/patch-lib_twisted_plugins_carbon_aggregator_plugin_py
===================================================================
RCS file: patches/patch-lib_twisted_plugins_carbon_aggregator_plugin_py
diff -N patches/patch-lib_twisted_plugins_carbon_aggregator_plugin_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_twisted_plugins_carbon_aggregator_plugin_py 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: lib/twisted/plugins/carbon_aggregator_plugin.py
+--- lib/twisted/plugins/carbon_aggregator_plugin.py.orig
++++ lib/twisted/plugins/carbon_aggregator_plugin.py
+@@ -9,7 +9,7 @@ from carbon import conf
+ @implementer(IServiceMaker, IPlugin)
+ class CarbonAggregatorServiceMaker(object):
+
+-    tapname = "carbon-aggregator"
++    tapname = "carbon-aggregator${MODPY_BIN_SUFFIX}"
+     description = "Aggregate stats for graphite."
+     options = conf.CarbonAggregatorOptions
+
Index: patches/patch-lib_twisted_plugins_carbon_cache_plugin_py
===================================================================
RCS file: patches/patch-lib_twisted_plugins_carbon_cache_plugin_py
diff -N patches/patch-lib_twisted_plugins_carbon_cache_plugin_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_twisted_plugins_carbon_cache_plugin_py 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: lib/twisted/plugins/carbon_cache_plugin.py
+--- lib/twisted/plugins/carbon_cache_plugin.py.orig
++++ lib/twisted/plugins/carbon_cache_plugin.py
+@@ -9,7 +9,7 @@ from carbon import conf
+ @implementer(IServiceMaker, IPlugin)
+ class CarbonCacheServiceMaker(object):
+
+-    tapname = "carbon-cache"
++    tapname = "carbon-cache${MODPY_BIN_SUFFIX}"
+     description = "Collect stats for graphite."
+     options = conf.CarbonCacheOptions
+
Index: patches/patch-lib_twisted_plugins_carbon_relay_plugin_py
===================================================================
RCS file: patches/patch-lib_twisted_plugins_carbon_relay_plugin_py
diff -N patches/patch-lib_twisted_plugins_carbon_relay_plugin_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_twisted_plugins_carbon_relay_plugin_py 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: lib/twisted/plugins/carbon_relay_plugin.py
+--- lib/twisted/plugins/carbon_relay_plugin.py.orig
++++ lib/twisted/plugins/carbon_relay_plugin.py
+@@ -9,7 +9,7 @@ from carbon import conf
+ @implementer(IServiceMaker, IPlugin)
+ class CarbonRelayServiceMaker(object):
+
+-    tapname = "carbon-relay"
++    tapname = "carbon-relay${MODPY_BIN_SUFFIX}"
+     description = "Relay stats for graphite."
+     options = conf.CarbonRelayOptions
+
Index: patches/patch-setup_py
===================================================================
RCS file: /cvs/ports/databases/py-carbon/patches/patch-setup_py,v
retrieving revision 1.3
diff -u -p -r1.3 patch-setup_py
--- patches/patch-setup_py 8 Jul 2017 16:09:46 -0000 1.3
+++ patches/patch-setup_py 28 Nov 2018 07:22:54 -0000
@@ -2,20 +2,20 @@ $OpenBSD: patch-setup_py,v 1.3 2017/07/0
 Index: setup.py
 --- setup.py.orig
 +++ setup.py
-@@ -54,7 +54,7 @@ else:
- storage_dirs = [ ('storage/ceres', []), ('storage/whisper',[]),
-                  ('storage/lists',[]), ('storage/log',[]),
-                  ('storage/rrd',[]) ]
+@@ -61,7 +61,7 @@ else:
+ 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')) ]
 +conf_files = [ ('${GRAPHITE_EGDIR}', glob('conf/*.example')) ]
 
  install_files = storage_dirs + conf_files
 
-@@ -63,7 +63,6 @@ install_files = storage_dirs + conf_files
+@@ -70,7 +70,6 @@ install_files = storage_dirs + conf_files
  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(
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/databases/py-carbon/pkg/PLIST,v
retrieving revision 1.4
diff -u -p -r1.4 PLIST
--- pkg/PLIST 1 Nov 2017 10:44:39 -0000 1.4
+++ pkg/PLIST 28 Nov 2018 07:22:54 -0000
@@ -1,102 +1,115 @@
 @comment $OpenBSD: PLIST,v 1.4 2017/11/01 10:44:39 landry Exp $
 @newgroup _graphite:706
 @newuser _graphite:706:_graphite:daemon:Graphite and Carbon user:/nonexistent:/sbin/nologin
-bin/carbon-aggregator.py
-bin/carbon-cache.py
-bin/carbon-client.py
-bin/carbon-relay.py
-bin/validate-storage-schemas.py
+@rcscript ${RCDIR}/carbon_aggregator${MODPY_RC_SUFFIX}
+@rcscript ${RCDIR}/carbon_aggregator_cache${MODPY_RC_SUFFIX}
+@rcscript ${RCDIR}/carbon_cache${MODPY_RC_SUFFIX}
+@rcscript ${RCDIR}/carbon_relay${MODPY_RC_SUFFIX}
+bin/carbon-aggregator${MODPY_BIN_SUFFIX}.py
+bin/carbon-aggregator-cache${MODPY_BIN_SUFFIX}.py
+bin/carbon-cache${MODPY_BIN_SUFFIX}.py
+bin/carbon-client${MODPY_BIN_SUFFIX}.py
+bin/carbon-relay${MODPY_BIN_SUFFIX}.py
+bin/validate-storage-schemas${MODPY_BIN_SUFFIX}.py
 lib/python${MODPY_VERSION}/site-packages/carbon/
 lib/python${MODPY_VERSION}/site-packages/carbon-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info
 lib/python${MODPY_VERSION}/site-packages/carbon/__init__.py
-lib/python${MODPY_VERSION}/site-packages/carbon/__init__.pyc
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}amqp_listener.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}amqp_publisher.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}cache.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}carbon_pb2.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}conf.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}database.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}events.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}exceptions.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}hashing.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}http.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}instrumentation.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}log.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}management.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}manhole.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}pipeline.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}protobuf.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}protocols.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}regexlist.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}relayrules.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}resolver.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}rewrite.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}routers.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}service.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}state.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}storage.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}writer.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/
 lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/__init__.py
-lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/__init__.pyc
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}buffers.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}processor.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}rules.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/buffers.py
-lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/buffers.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/processor.py
-lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/processor.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/rules.py
-lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/rules.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/amqp0-8.xml
 lib/python${MODPY_VERSION}/site-packages/carbon/amqp_listener.py
-lib/python${MODPY_VERSION}/site-packages/carbon/amqp_listener.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/amqp_publisher.py
-lib/python${MODPY_VERSION}/site-packages/carbon/amqp_publisher.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/cache.py
-lib/python${MODPY_VERSION}/site-packages/carbon/cache.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/carbon_pb2.py
-lib/python${MODPY_VERSION}/site-packages/carbon/carbon_pb2.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/client.py
-lib/python${MODPY_VERSION}/site-packages/carbon/client.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/conf.py
-lib/python${MODPY_VERSION}/site-packages/carbon/conf.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/database.py
-lib/python${MODPY_VERSION}/site-packages/carbon/database.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/events.py
-lib/python${MODPY_VERSION}/site-packages/carbon/events.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/exceptions.py
-lib/python${MODPY_VERSION}/site-packages/carbon/exceptions.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/hashing.py
-lib/python${MODPY_VERSION}/site-packages/carbon/hashing.pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/http.py
 lib/python${MODPY_VERSION}/site-packages/carbon/instrumentation.py
-lib/python${MODPY_VERSION}/site-packages/carbon/instrumentation.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/log.py
-lib/python${MODPY_VERSION}/site-packages/carbon/log.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/management.py
-lib/python${MODPY_VERSION}/site-packages/carbon/management.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/manhole.py
-lib/python${MODPY_VERSION}/site-packages/carbon/manhole.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/pipeline.py
-lib/python${MODPY_VERSION}/site-packages/carbon/pipeline.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/protobuf.py
-lib/python${MODPY_VERSION}/site-packages/carbon/protobuf.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/protocols.py
-lib/python${MODPY_VERSION}/site-packages/carbon/protocols.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/regexlist.py
-lib/python${MODPY_VERSION}/site-packages/carbon/regexlist.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/relayrules.py
-lib/python${MODPY_VERSION}/site-packages/carbon/relayrules.pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/resolver.py
 lib/python${MODPY_VERSION}/site-packages/carbon/rewrite.py
-lib/python${MODPY_VERSION}/site-packages/carbon/rewrite.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/routers.py
-lib/python${MODPY_VERSION}/site-packages/carbon/routers.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/service.py
-lib/python${MODPY_VERSION}/site-packages/carbon/service.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/state.py
-lib/python${MODPY_VERSION}/site-packages/carbon/state.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/storage.py
-lib/python${MODPY_VERSION}/site-packages/carbon/storage.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/util.py
-lib/python${MODPY_VERSION}/site-packages/carbon/util.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/writer.py
-lib/python${MODPY_VERSION}/site-packages/carbon/writer.pyc
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_aggregator_cache_plugin.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_aggregator_plugin.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_cache_plugin.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_relay_plugin.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_cache_plugin.py
 lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_plugin.py
-lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_plugin.pyc
 lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_cache_plugin.py
-lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_cache_plugin.pyc
 lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_relay_plugin.py
-lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_relay_plugin.pyc
-share/examples/graphite/
+share/examples/${MODPY_PY_PREFIX}graphite/
 @sample ${SYSCONFDIR}/graphite/
-share/examples/graphite/aggregation-rules.conf.example
+share/examples/${MODPY_PY_PREFIX}graphite/aggregation-rules.conf.example
 @sample ${SYSCONFDIR}/graphite/aggregation-rules.conf
-share/examples/graphite/blacklist.conf.example
+share/examples/${MODPY_PY_PREFIX}graphite/blacklist.conf.example
 @sample ${SYSCONFDIR}/graphite/blacklist.conf
-share/examples/graphite/carbon.amqp.conf.example
+share/examples/${MODPY_PY_PREFIX}graphite/carbon.amqp.conf.example
 @sample ${SYSCONFDIR}/graphite/amqp.conf
-share/examples/graphite/carbon.conf.example
+share/examples/${MODPY_PY_PREFIX}graphite/carbon.conf.example
 @sample ${SYSCONFDIR}/graphite/carbon.conf
-share/examples/graphite/relay-rules.conf.example
+share/examples/${MODPY_PY_PREFIX}graphite/relay-rules.conf.example
 @sample ${SYSCONFDIR}/graphite/relay-rules.conf
-share/examples/graphite/rewrite-rules.conf.example
+share/examples/${MODPY_PY_PREFIX}graphite/rewrite-rules.conf.example
 @sample ${SYSCONFDIR}/graphite/rewrite-rules.conf
-share/examples/graphite/storage-aggregation.conf.example
+share/examples/${MODPY_PY_PREFIX}graphite/storage-aggregation.conf.example
 @sample ${SYSCONFDIR}/graphite/store-aggregation.conf
-share/examples/graphite/storage-schemas.conf.example
+share/examples/${MODPY_PY_PREFIX}graphite/storage-schemas.conf.example
 @sample ${SYSCONFDIR}/graphite/storage-schemas.conf
-share/examples/graphite/whitelist.conf.example
+share/examples/${MODPY_PY_PREFIX}graphite/whitelist.conf.example
 @sample ${SYSCONFDIR}/graphite/whitelist.conf
 @owner _graphite
 @group _graphite
@@ -108,3 +121,13 @@ share/examples/graphite/whitelist.conf.e
 @sample /var/graphite/storage/whisper/
 @owner
 @group
+storage/
+storage/ceres/
+storage/ceres/dummy.txt/
+storage/lists/
+storage/log/
+storage/log/dummy.txt/
+storage/rrd/
+storage/rrd/dummy.txt/
+storage/whisper/
+storage/whisper/dummy.txt/
Index: pkg/carbon_aggregator.rc
===================================================================
RCS file: pkg/carbon_aggregator.rc
diff -N pkg/carbon_aggregator.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_aggregator.rc 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-aggregator${MODPY_BIN_SUFFIX}.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_aggregator3.rc
===================================================================
RCS file: pkg/carbon_aggregator3.rc
diff -N pkg/carbon_aggregator3.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_aggregator3.rc 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-aggregator${MODPY_BIN_SUFFIX}.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_aggregator_cache.rc
===================================================================
RCS file: pkg/carbon_aggregator_cache.rc
diff -N pkg/carbon_aggregator_cache.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_aggregator_cache.rc 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-aggregator-cache${MODPY_BIN_SUFFIX}.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_aggregator_cache3.rc
===================================================================
RCS file: pkg/carbon_aggregator_cache3.rc
diff -N pkg/carbon_aggregator_cache3.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_aggregator_cache3.rc 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-aggregator-cache${MODPY_BIN_SUFFIX}.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_cache.rc
===================================================================
RCS file: pkg/carbon_cache.rc
diff -N pkg/carbon_cache.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_cache.rc 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-cache${MODPY_BIN_SUFFIX}.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_cache3.rc
===================================================================
RCS file: pkg/carbon_cache3.rc
diff -N pkg/carbon_cache3.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_cache3.rc 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-cache${MODPY_BIN_SUFFIX}.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_relay.rc
===================================================================
RCS file: pkg/carbon_relay.rc
diff -N pkg/carbon_relay.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_relay.rc 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-relay${MODPY_BIN_SUFFIX}.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_relay3.rc
===================================================================
RCS file: pkg/carbon_relay3.rc
diff -N pkg/carbon_relay3.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_relay3.rc 28 Nov 2018 07:22:54 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-relay${MODPY_BIN_SUFFIX}.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1

Reply | Threaded
Open this post in threaded view
|

Re: update py-carbon

Stuart Henderson
On 2018/11/28 08:25, Martijn van Duren wrote:

> On 11/27/18 2:36 PM, Daniel Jakots wrote:
> > On Tue, 27 Nov 2018 12:43:52 +0100, Martijn van Duren
> > <[hidden email]> wrote:
> >
> >> Here's an update to databases/py-carbon.
> >> There's experimental support for python3, but I haven't included it
> >> here because of other dependencies which don't yet have python3
> >> support in our tree.
> >
> > Which one(s)?
> >
> I must have goofed somewhere. It's not py-carbon directly which has
> "issues", but py-whisper. But let's safe that discussion for that
> threat.
>
> Here's an updated diff. I don't know whether mostly executable
> python packages should be moved to python3, or if they still
> should come in flavors, so I just made it a flavor, so we can
> quite easily dumb it down again if we just want python3.

If it's actually useful as a library then it might be worth considering
whether to subpackage it - have the executables as a separate package
only built with the python3 flavour.

But if (as COMMENT implies) it's only really useful as daemon/utilties
then I'd much prefer to just switch to py3 outright. This cuts a lot of
complexity from Makefile, patches and PLIST, and makes it so all users
are on recent python (rather than the "default" being old python).

> Note: carbon-aggregator{,-cache} doesn't work because it misses
> py-cachetools, but people could get that themselves via pip, or it
> could be added as a package in the future, so I left the plumbing in
> as is.

Hmm. People shouldn't be installing via pip to make packages work3
I'd prefer to either port the dep, or @comment the files that need it.

> @@ -108,3 +121,13 @@ share/examples/graphite/whitelist.conf.e
>  @sample /var/graphite/storage/whisper/
>  @owner
>  @group
> +storage/
> +storage/ceres/
> +storage/ceres/dummy.txt/
> +storage/lists/
> +storage/log/
> +storage/log/dummy.txt/
> +storage/rrd/
> +storage/rrd/dummy.txt/
> +storage/whisper/
> +storage/whisper/dummy.txt/

It feels like these /usr/local/storage directories should not be installed,
they are already @sample'd under /var/graphite/storage so I think should just
be rm'd. But there are some missing @extra or @extraunexec that would be
needed for pkg_delete -c to correctly remove files generated in this tree.

Reply | Threaded
Open this post in threaded view
|

Re: update py-carbon

Martijn van Duren-7
So something like this?
I'll send py-cachetools in a separate diff.

On 11/28/18 12:07 PM, Stuart Henderson wrote:

> On 2018/11/28 08:25, Martijn van Duren wrote:
>> On 11/27/18 2:36 PM, Daniel Jakots wrote:
>>> On Tue, 27 Nov 2018 12:43:52 +0100, Martijn van Duren
>>> <[hidden email]> wrote:
>>>
>>>> Here's an update to databases/py-carbon.
>>>> There's experimental support for python3, but I haven't included it
>>>> here because of other dependencies which don't yet have python3
>>>> support in our tree.
>>>
>>> Which one(s)?
>>>
>> I must have goofed somewhere. It's not py-carbon directly which has
>> "issues", but py-whisper. But let's safe that discussion for that
>> threat.
>>
>> Here's an updated diff. I don't know whether mostly executable
>> python packages should be moved to python3, or if they still
>> should come in flavors, so I just made it a flavor, so we can
>> quite easily dumb it down again if we just want python3.
>
> If it's actually useful as a library then it might be worth considering
> whether to subpackage it - have the executables as a separate package
> only built with the python3 flavour.
>
> But if (as COMMENT implies) it's only really useful as daemon/utilties
> then I'd much prefer to just switch to py3 outright. This cuts a lot of
> complexity from Makefile, patches and PLIST, and makes it so all users
> are on recent python (rather than the "default" being old python).
>
>> Note: carbon-aggregator{,-cache} doesn't work because it misses
>> py-cachetools, but people could get that themselves via pip, or it
>> could be added as a package in the future, so I left the plumbing in
>> as is.
>
> Hmm. People shouldn't be installing via pip to make packages work3
> I'd prefer to either port the dep, or @comment the files that need it.
>
>> @@ -108,3 +121,13 @@ share/examples/graphite/whitelist.conf.e
>>  @sample /var/graphite/storage/whisper/
>>  @owner
>>  @group
>> +storage/
>> +storage/ceres/
>> +storage/ceres/dummy.txt/
>> +storage/lists/
>> +storage/log/
>> +storage/log/dummy.txt/
>> +storage/rrd/
>> +storage/rrd/dummy.txt/
>> +storage/whisper/
>> +storage/whisper/dummy.txt/
>
> It feels like these /usr/local/storage directories should not be installed,
> they are already @sample'd under /var/graphite/storage so I think should just
> be rm'd. But there are some missing @extra or @extraunexec that would be
> needed for pkg_delete -c to correctly remove files generated in this tree.
>

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/quirks/Makefile,v
retrieving revision 1.651
diff -u -p -r1.651 Makefile
--- Makefile 27 Nov 2018 15:24:15 -0000 1.651
+++ Makefile 28 Nov 2018 12:54:48 -0000
@@ -5,7 +5,7 @@ CATEGORIES = devel databases
 DISTFILES =
 
 # API.rev
-PKGNAME = quirks-3.44
+PKGNAME = quirks-3.45
 PKG_ARCH = *
 MAINTAINER = Marc Espie <[hidden email]>
 
Index: files/Quirks.pm
===================================================================
RCS file: /cvs/ports/devel/quirks/files/Quirks.pm,v
retrieving revision 1.665
diff -u -p -r1.665 Quirks.pm
--- files/Quirks.pm 27 Nov 2018 15:24:15 -0000 1.665
+++ files/Quirks.pm 28 Nov 2018 12:54:48 -0000
@@ -288,6 +288,7 @@ my $stem_extensions = {
  'py-pafy' => 'py3-pafy',
  'py-libmagic' => 'py-magic',
  'py3-libmagic' => 'py3-magic',
+ 'py-carbon' => 'py3-carbon',
 };
 
 my $obsolete_reason = {
Index: Makefile
===================================================================
RCS file: /cvs/ports/databases/py-carbon/Makefile,v
retrieving revision 1.9
diff -u -p -r1.9 Makefile
--- Makefile 1 Nov 2017 10:44:39 -0000 1.9
+++ Makefile 28 Nov 2018 12:54:15 -0000
@@ -2,12 +2,11 @@
 
 COMMENT= backend data caching and persistence daemon for Graphite
 
-MODPY_EGG_VERSION= 1.0.1
+MODPY_EGG_VERSION= 1.1.4
 
 DISTNAME= carbon-${MODPY_EGG_VERSION}
 PKGNAME= py-${DISTNAME}
 CATEGORIES= databases
-REVISION= 0
 
 # Apache
 PERMIT_PACKAGE_CDROM= Yes
@@ -16,19 +15,26 @@ MODULES= lang/python
 MODPY_PI = Yes
 
 BUILD_DEPENDS= ${RUN_DEPENDS}
-RUN_DEPENDS= databases/py-whisper \
- devel/py-twisted
+RUN_DEPENDS= databases/py-whisper${MODPY_FLAVOR} \
+ devel/py-cachetools${MODPY_FLAVOR} \
+ devel/py-twisted${MODPY_FLAVOR} \
+ www/py-urllib3${MODPY_FLAVOR}
 
-BIN_FILES= carbon-aggregator.py carbon-cache.py carbon-client.py \
- carbon-relay.py validate-storage-schemas.py
+PYBINS= carbon-aggregator carbon-aggregator-cache carbon-cache \
+ carbon-client carbon-relay validate-storage-schemas
 
-.for b in ${BIN_FILES}
-MODPY_ADJ_FILES+= bin/$b
+MODPY_VERSION= ${MODPY_DEFAULT_VERSION_3}
+
+.for b in ${PYBINS}
+MODPY_ADJ_FILES+= bin/$b.py
 .endfor
 
 GRAPHITE_EGDIR= ${PREFIX}/share/examples/graphite/
 
 SUBST_VARS+= GRAPHITE_EGDIR MODPY_SITEPKG
+
+MODPY_DISTUTILS_INSTALL=install --prefix=${LOCALBASE} \
+ --root=${DESTDIR} --install-lib=${MODPY_SITEPKG}
 
 NO_TEST= Yes
 
Index: distinfo
===================================================================
RCS file: /cvs/ports/databases/py-carbon/distinfo,v
retrieving revision 1.3
diff -u -p -r1.3 distinfo
--- distinfo 8 Jul 2017 16:09:46 -0000 1.3
+++ distinfo 28 Nov 2018 12:54:15 -0000
@@ -1,2 +1,2 @@
-SHA256 (carbon-1.0.1.tar.gz) = JbScsdVAFC38wAY4IwjGO5Ic+J0s2EhhHkmHTN1ciUU=
-SIZE (carbon-1.0.1.tar.gz) = 61444
+SHA256 (carbon-1.1.4.tar.gz) = G3DjSsDwvTKgPuFOrx7SyFfiCJhPyXYfWalcIcUmRRM=
+SIZE (carbon-1.1.4.tar.gz) = 71819
Index: patches/patch-bin_validate-storage-schemas_py
===================================================================
RCS file: /cvs/ports/databases/py-carbon/patches/patch-bin_validate-storage-schemas_py,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-bin_validate-storage-schemas_py
--- patches/patch-bin_validate-storage-schemas_py 11 Oct 2012 18:00:30 -0000 1.1.1.1
+++ patches/patch-bin_validate-storage-schemas_py 28 Nov 2018 12:54:15 -0000
@@ -1,12 +1,13 @@
 $OpenBSD: patch-bin_validate-storage-schemas_py,v 1.1.1.1 2012/10/11 18:00:30 jasper Exp $
---- bin/validate-storage-schemas.py.orig Thu Oct 11 19:15:55 2012
-+++ bin/validate-storage-schemas.py Thu Oct 11 19:16:45 2012
-@@ -22,7 +22,7 @@ if len(sys.argv) == 2:
+Index: bin/validate-storage-schemas.py
+--- bin/validate-storage-schemas.py.orig
++++ bin/validate-storage-schemas.py
+@@ -26,7 +26,7 @@ if len(sys.argv) == 2:
    SCHEMAS_FILE = sys.argv[1]
-   print "Loading storage-schemas configuration from: '%s'" % SCHEMAS_FILE
+   print("Loading storage-schemas configuration from: '%s'" % SCHEMAS_FILE)
  else:
 -  SCHEMAS_FILE = realpath(join(dirname(__file__), '..', 'conf', 'storage-schemas.conf'))
 +  SCHEMAS_FILE = '${SYSCONFDIR}/graphite/storage-schemas.conf'
-   print "Loading storage-schemas configuration from default location at: '%s'" % SCHEMAS_FILE
+   print("Loading storage-schemas configuration from default location at: '%s'" % SCHEMAS_FILE)
 
  config_parser = ConfigParser()
Index: patches/patch-lib_carbon_conf_py
===================================================================
RCS file: /cvs/ports/databases/py-carbon/patches/patch-lib_carbon_conf_py,v
retrieving revision 1.3
diff -u -p -r1.3 patch-lib_carbon_conf_py
--- patches/patch-lib_carbon_conf_py 8 Jul 2017 16:09:46 -0000 1.3
+++ patches/patch-lib_carbon_conf_py 28 Nov 2018 12:54:15 -0000
@@ -2,15 +2,16 @@ $OpenBSD: patch-lib_carbon_conf_py,v 1.3
 Index: lib/carbon/conf.py
 --- lib/carbon/conf.py.orig
 +++ lib/carbon/conf.py
-@@ -545,6 +545,7 @@ def read_config(program, options, **kwargs):
+@@ -577,7 +577,7 @@ def read_config(program, options, **kwargs):
+     for name, value in kwargs.items():
          settings.setdefault(name, value)
 
-     graphite_root = kwargs.get("ROOT_DIR")
+-    graphite_root = kwargs.get("ROOT_DIR")
 +    graphite_root = '/var/graphite/'
      if graphite_root is None:
          graphite_root = os.environ.get('GRAPHITE_ROOT')
      if graphite_root is None:
-@@ -555,7 +556,7 @@ def read_config(program, options, **kwargs):
+@@ -588,7 +588,7 @@ def read_config(program, options, **kwargs):
      # 'GRAPHITE_CONF_DIR' environment variable.
      settings.setdefault("CONF_DIR",
                          os.environ.get("GRAPHITE_CONF_DIR",
Index: patches/patch-setup_cfg
===================================================================
RCS file: patches/patch-setup_cfg
diff -N patches/patch-setup_cfg
--- patches/patch-setup_cfg 8 Jul 2017 16:09:46 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-$OpenBSD: patch-setup_cfg,v 1.2 2017/07/08 16:09:46 jasper Exp $
-Index: setup.cfg
---- setup.cfg.orig
-+++ setup.cfg
-@@ -4,6 +4,6 @@ requires = python-twisted
- post-install = distro/redhat/misc/postinstall
-
- [install]
--prefix = /opt/graphite
--install-lib = %(prefix)s/lib
-+prefix = ${PREFIX}
-+install-lib = ${MODPY_SITEPKG}
-
Index: patches/patch-setup_py
===================================================================
RCS file: /cvs/ports/databases/py-carbon/patches/patch-setup_py,v
retrieving revision 1.3
diff -u -p -r1.3 patch-setup_py
--- patches/patch-setup_py 8 Jul 2017 16:09:46 -0000 1.3
+++ patches/patch-setup_py 28 Nov 2018 12:54:15 -0000
@@ -2,20 +2,20 @@ $OpenBSD: patch-setup_py,v 1.3 2017/07/0
 Index: setup.py
 --- setup.py.orig
 +++ setup.py
-@@ -54,7 +54,7 @@ else:
- storage_dirs = [ ('storage/ceres', []), ('storage/whisper',[]),
-                  ('storage/lists',[]), ('storage/log',[]),
-                  ('storage/rrd',[]) ]
+@@ -61,7 +61,7 @@ else:
+ 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')) ]
 +conf_files = [ ('${GRAPHITE_EGDIR}', glob('conf/*.example')) ]
 
  install_files = storage_dirs + conf_files
 
-@@ -63,7 +63,6 @@ install_files = storage_dirs + conf_files
+@@ -70,7 +70,6 @@ install_files = storage_dirs + conf_files
  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(
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/databases/py-carbon/pkg/PLIST,v
retrieving revision 1.4
diff -u -p -r1.4 PLIST
--- pkg/PLIST 1 Nov 2017 10:44:39 -0000 1.4
+++ pkg/PLIST 28 Nov 2018 12:54:15 -0000
@@ -1,6 +1,11 @@
 @comment $OpenBSD: PLIST,v 1.4 2017/11/01 10:44:39 landry Exp $
 @newgroup _graphite:706
 @newuser _graphite:706:_graphite:daemon:Graphite and Carbon user:/nonexistent:/sbin/nologin
+@rcscript ${RCDIR}/carbon_aggregator
+@rcscript ${RCDIR}/carbon_aggregator_cache
+@rcscript ${RCDIR}/carbon_cache
+@rcscript ${RCDIR}/carbon_relay
+bin/carbon-aggregator-cache.py
 bin/carbon-aggregator.py
 bin/carbon-cache.py
 bin/carbon-client.py
@@ -9,75 +14,83 @@ bin/validate-storage-schemas.py
 lib/python${MODPY_VERSION}/site-packages/carbon/
 lib/python${MODPY_VERSION}/site-packages/carbon-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info
 lib/python${MODPY_VERSION}/site-packages/carbon/__init__.py
-lib/python${MODPY_VERSION}/site-packages/carbon/__init__.pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}amqp_listener.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}amqp_publisher.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}cache.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}carbon_pb2.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}conf.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}database.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}events.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}exceptions.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}hashing.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}http.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}instrumentation.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}log.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}management.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}manhole.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}pipeline.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}protobuf.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}protocols.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}regexlist.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}relayrules.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}resolver.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}rewrite.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}routers.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}service.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}state.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}storage.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}writer.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/
 lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/__init__.py
-lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/__init__.pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}buffers.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}processor.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}rules.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/buffers.py
-lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/buffers.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/processor.py
-lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/processor.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/rules.py
-lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/rules.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/amqp0-8.xml
 lib/python${MODPY_VERSION}/site-packages/carbon/amqp_listener.py
-lib/python${MODPY_VERSION}/site-packages/carbon/amqp_listener.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/amqp_publisher.py
-lib/python${MODPY_VERSION}/site-packages/carbon/amqp_publisher.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/cache.py
-lib/python${MODPY_VERSION}/site-packages/carbon/cache.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/carbon_pb2.py
-lib/python${MODPY_VERSION}/site-packages/carbon/carbon_pb2.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/client.py
-lib/python${MODPY_VERSION}/site-packages/carbon/client.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/conf.py
-lib/python${MODPY_VERSION}/site-packages/carbon/conf.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/database.py
-lib/python${MODPY_VERSION}/site-packages/carbon/database.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/events.py
-lib/python${MODPY_VERSION}/site-packages/carbon/events.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/exceptions.py
-lib/python${MODPY_VERSION}/site-packages/carbon/exceptions.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/hashing.py
-lib/python${MODPY_VERSION}/site-packages/carbon/hashing.pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/http.py
 lib/python${MODPY_VERSION}/site-packages/carbon/instrumentation.py
-lib/python${MODPY_VERSION}/site-packages/carbon/instrumentation.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/log.py
-lib/python${MODPY_VERSION}/site-packages/carbon/log.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/management.py
-lib/python${MODPY_VERSION}/site-packages/carbon/management.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/manhole.py
-lib/python${MODPY_VERSION}/site-packages/carbon/manhole.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/pipeline.py
-lib/python${MODPY_VERSION}/site-packages/carbon/pipeline.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/protobuf.py
-lib/python${MODPY_VERSION}/site-packages/carbon/protobuf.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/protocols.py
-lib/python${MODPY_VERSION}/site-packages/carbon/protocols.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/regexlist.py
-lib/python${MODPY_VERSION}/site-packages/carbon/regexlist.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/relayrules.py
-lib/python${MODPY_VERSION}/site-packages/carbon/relayrules.pyc
+lib/python${MODPY_VERSION}/site-packages/carbon/resolver.py
 lib/python${MODPY_VERSION}/site-packages/carbon/rewrite.py
-lib/python${MODPY_VERSION}/site-packages/carbon/rewrite.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/routers.py
-lib/python${MODPY_VERSION}/site-packages/carbon/routers.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/service.py
-lib/python${MODPY_VERSION}/site-packages/carbon/service.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/state.py
-lib/python${MODPY_VERSION}/site-packages/carbon/state.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/storage.py
-lib/python${MODPY_VERSION}/site-packages/carbon/storage.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/util.py
-lib/python${MODPY_VERSION}/site-packages/carbon/util.pyc
 lib/python${MODPY_VERSION}/site-packages/carbon/writer.py
-lib/python${MODPY_VERSION}/site-packages/carbon/writer.pyc
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_aggregator_cache_plugin.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_aggregator_plugin.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_cache_plugin.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_relay_plugin.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_cache_plugin.py
 lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_plugin.py
-lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_plugin.pyc
 lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_cache_plugin.py
-lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_cache_plugin.pyc
 lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_relay_plugin.py
-lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_relay_plugin.pyc
 share/examples/graphite/
 @sample ${SYSCONFDIR}/graphite/
 share/examples/graphite/aggregation-rules.conf.example
Index: pkg/carbon_aggregator.rc
===================================================================
RCS file: pkg/carbon_aggregator.rc
diff -N pkg/carbon_aggregator.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_aggregator.rc 28 Nov 2018 12:54:15 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-aggregator.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_aggregator_cache.rc
===================================================================
RCS file: pkg/carbon_aggregator_cache.rc
diff -N pkg/carbon_aggregator_cache.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_aggregator_cache.rc 28 Nov 2018 12:54:15 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-aggregator-cache.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_cache.rc
===================================================================
RCS file: pkg/carbon_cache.rc
diff -N pkg/carbon_cache.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_cache.rc 28 Nov 2018 12:54:15 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-cache.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1
Index: pkg/carbon_relay.rc
===================================================================
RCS file: pkg/carbon_relay.rc
diff -N pkg/carbon_relay.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/carbon_relay.rc 28 Nov 2018 12:54:15 -0000
@@ -0,0 +1,26 @@
+#!/bin/ksh
+#
+# $OpenBSD: $
+
+daemon="/usr/local/bin/carbon-relay.py"
+daemon_user="_graphite"
+
+. /etc/rc.d/rc.subr
+
+rc_usercheck=NO
+
+rc_check() {
+ ${rcexec} "${daemon} ${daemon_flags} status"
+}
+
+rc_reload=NO
+
+rc_start() {
+ ${rcexec} "${daemon} ${daemon_flags} start"
+}
+
+rc_stop() {
+ ${rcexec} "${daemon} stop"
+}
+
+rc_cmd $1

Reply | Threaded
Open this post in threaded view
|

Re: update py-carbon

Martijn van Duren-7
ping

On 11/28/18 1:56 PM, Martijn van Duren wrote:

> So something like this?
> I'll send py-cachetools in a separate diff.
>
> On 11/28/18 12:07 PM, Stuart Henderson wrote:
>> On 2018/11/28 08:25, Martijn van Duren wrote:
>>> On 11/27/18 2:36 PM, Daniel Jakots wrote:
>>>> On Tue, 27 Nov 2018 12:43:52 +0100, Martijn van Duren
>>>> <[hidden email]> wrote:
>>>>
>>>>> Here's an update to databases/py-carbon.
>>>>> There's experimental support for python3, but I haven't included it
>>>>> here because of other dependencies which don't yet have python3
>>>>> support in our tree.
>>>>
>>>> Which one(s)?
>>>>
>>> I must have goofed somewhere. It's not py-carbon directly which has
>>> "issues", but py-whisper. But let's safe that discussion for that
>>> threat.
>>>
>>> Here's an updated diff. I don't know whether mostly executable
>>> python packages should be moved to python3, or if they still
>>> should come in flavors, so I just made it a flavor, so we can
>>> quite easily dumb it down again if we just want python3.
>>
>> If it's actually useful as a library then it might be worth considering
>> whether to subpackage it - have the executables as a separate package
>> only built with the python3 flavour.
>>
>> But if (as COMMENT implies) it's only really useful as daemon/utilties
>> then I'd much prefer to just switch to py3 outright. This cuts a lot of
>> complexity from Makefile, patches and PLIST, and makes it so all users
>> are on recent python (rather than the "default" being old python).
>>
>>> Note: carbon-aggregator{,-cache} doesn't work because it misses
>>> py-cachetools, but people could get that themselves via pip, or it
>>> could be added as a package in the future, so I left the plumbing in
>>> as is.
>>
>> Hmm. People shouldn't be installing via pip to make packages work3
>> I'd prefer to either port the dep, or @comment the files that need it.
>>
>>> @@ -108,3 +121,13 @@ share/examples/graphite/whitelist.conf.e
>>>  @sample /var/graphite/storage/whisper/
>>>  @owner
>>>  @group
>>> +storage/
>>> +storage/ceres/
>>> +storage/ceres/dummy.txt/
>>> +storage/lists/
>>> +storage/log/
>>> +storage/log/dummy.txt/
>>> +storage/rrd/
>>> +storage/rrd/dummy.txt/
>>> +storage/whisper/
>>> +storage/whisper/dummy.txt/
>>
>> It feels like these /usr/local/storage directories should not be installed,
>> they are already @sample'd under /var/graphite/storage so I think should just
>> be rm'd. But there are some missing @extra or @extraunexec that would be
>> needed for pkg_delete -c to correctly remove files generated in this tree.
>>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/quirks/Makefile,v
> retrieving revision 1.651
> diff -u -p -r1.651 Makefile
> --- Makefile 27 Nov 2018 15:24:15 -0000 1.651
> +++ Makefile 28 Nov 2018 12:54:48 -0000
> @@ -5,7 +5,7 @@ CATEGORIES = devel databases
>  DISTFILES =
>  
>  # API.rev
> -PKGNAME = quirks-3.44
> +PKGNAME = quirks-3.45
>  PKG_ARCH = *
>  MAINTAINER = Marc Espie <[hidden email]>
>  
> Index: files/Quirks.pm
> ===================================================================
> RCS file: /cvs/ports/devel/quirks/files/Quirks.pm,v
> retrieving revision 1.665
> diff -u -p -r1.665 Quirks.pm
> --- files/Quirks.pm 27 Nov 2018 15:24:15 -0000 1.665
> +++ files/Quirks.pm 28 Nov 2018 12:54:48 -0000
> @@ -288,6 +288,7 @@ my $stem_extensions = {
>   'py-pafy' => 'py3-pafy',
>   'py-libmagic' => 'py-magic',
>   'py3-libmagic' => 'py3-magic',
> + 'py-carbon' => 'py3-carbon',
>  };
>  
>  my $obsolete_reason = {
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/databases/py-carbon/Makefile,v
> retrieving revision 1.9
> diff -u -p -r1.9 Makefile
> --- Makefile 1 Nov 2017 10:44:39 -0000 1.9
> +++ Makefile 28 Nov 2018 12:54:15 -0000
> @@ -2,12 +2,11 @@
>  
>  COMMENT= backend data caching and persistence daemon for Graphite
>  
> -MODPY_EGG_VERSION= 1.0.1
> +MODPY_EGG_VERSION= 1.1.4
>  
>  DISTNAME= carbon-${MODPY_EGG_VERSION}
>  PKGNAME= py-${DISTNAME}
>  CATEGORIES= databases
> -REVISION= 0
>  
>  # Apache
>  PERMIT_PACKAGE_CDROM= Yes
> @@ -16,19 +15,26 @@ MODULES= lang/python
>  MODPY_PI = Yes
>  
>  BUILD_DEPENDS= ${RUN_DEPENDS}
> -RUN_DEPENDS= databases/py-whisper \
> - devel/py-twisted
> +RUN_DEPENDS= databases/py-whisper${MODPY_FLAVOR} \
> + devel/py-cachetools${MODPY_FLAVOR} \
> + devel/py-twisted${MODPY_FLAVOR} \
> + www/py-urllib3${MODPY_FLAVOR}
>  
> -BIN_FILES= carbon-aggregator.py carbon-cache.py carbon-client.py \
> - carbon-relay.py validate-storage-schemas.py
> +PYBINS= carbon-aggregator carbon-aggregator-cache carbon-cache \
> + carbon-client carbon-relay validate-storage-schemas
>  
> -.for b in ${BIN_FILES}
> -MODPY_ADJ_FILES+= bin/$b
> +MODPY_VERSION= ${MODPY_DEFAULT_VERSION_3}
> +
> +.for b in ${PYBINS}
> +MODPY_ADJ_FILES+= bin/$b.py
>  .endfor
>  
>  GRAPHITE_EGDIR= ${PREFIX}/share/examples/graphite/
>  
>  SUBST_VARS+= GRAPHITE_EGDIR MODPY_SITEPKG
> +
> +MODPY_DISTUTILS_INSTALL=install --prefix=${LOCALBASE} \
> + --root=${DESTDIR} --install-lib=${MODPY_SITEPKG}
>  
>  NO_TEST= Yes
>  
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/databases/py-carbon/distinfo,v
> retrieving revision 1.3
> diff -u -p -r1.3 distinfo
> --- distinfo 8 Jul 2017 16:09:46 -0000 1.3
> +++ distinfo 28 Nov 2018 12:54:15 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (carbon-1.0.1.tar.gz) = JbScsdVAFC38wAY4IwjGO5Ic+J0s2EhhHkmHTN1ciUU=
> -SIZE (carbon-1.0.1.tar.gz) = 61444
> +SHA256 (carbon-1.1.4.tar.gz) = G3DjSsDwvTKgPuFOrx7SyFfiCJhPyXYfWalcIcUmRRM=
> +SIZE (carbon-1.1.4.tar.gz) = 71819
> Index: patches/patch-bin_validate-storage-schemas_py
> ===================================================================
> RCS file: /cvs/ports/databases/py-carbon/patches/patch-bin_validate-storage-schemas_py,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 patch-bin_validate-storage-schemas_py
> --- patches/patch-bin_validate-storage-schemas_py 11 Oct 2012 18:00:30 -0000 1.1.1.1
> +++ patches/patch-bin_validate-storage-schemas_py 28 Nov 2018 12:54:15 -0000
> @@ -1,12 +1,13 @@
>  $OpenBSD: patch-bin_validate-storage-schemas_py,v 1.1.1.1 2012/10/11 18:00:30 jasper Exp $
> ---- bin/validate-storage-schemas.py.orig Thu Oct 11 19:15:55 2012
> -+++ bin/validate-storage-schemas.py Thu Oct 11 19:16:45 2012
> -@@ -22,7 +22,7 @@ if len(sys.argv) == 2:
> +Index: bin/validate-storage-schemas.py
> +--- bin/validate-storage-schemas.py.orig
> ++++ bin/validate-storage-schemas.py
> +@@ -26,7 +26,7 @@ if len(sys.argv) == 2:
>     SCHEMAS_FILE = sys.argv[1]
> -   print "Loading storage-schemas configuration from: '%s'" % SCHEMAS_FILE
> +   print("Loading storage-schemas configuration from: '%s'" % SCHEMAS_FILE)
>   else:
>  -  SCHEMAS_FILE = realpath(join(dirname(__file__), '..', 'conf', 'storage-schemas.conf'))
>  +  SCHEMAS_FILE = '${SYSCONFDIR}/graphite/storage-schemas.conf'
> -   print "Loading storage-schemas configuration from default location at: '%s'" % SCHEMAS_FILE
> +   print("Loading storage-schemas configuration from default location at: '%s'" % SCHEMAS_FILE)
>  
>   config_parser = ConfigParser()
> Index: patches/patch-lib_carbon_conf_py
> ===================================================================
> RCS file: /cvs/ports/databases/py-carbon/patches/patch-lib_carbon_conf_py,v
> retrieving revision 1.3
> diff -u -p -r1.3 patch-lib_carbon_conf_py
> --- patches/patch-lib_carbon_conf_py 8 Jul 2017 16:09:46 -0000 1.3
> +++ patches/patch-lib_carbon_conf_py 28 Nov 2018 12:54:15 -0000
> @@ -2,15 +2,16 @@ $OpenBSD: patch-lib_carbon_conf_py,v 1.3
>  Index: lib/carbon/conf.py
>  --- lib/carbon/conf.py.orig
>  +++ lib/carbon/conf.py
> -@@ -545,6 +545,7 @@ def read_config(program, options, **kwargs):
> +@@ -577,7 +577,7 @@ def read_config(program, options, **kwargs):
> +     for name, value in kwargs.items():
>           settings.setdefault(name, value)
>  
> -     graphite_root = kwargs.get("ROOT_DIR")
> +-    graphite_root = kwargs.get("ROOT_DIR")
>  +    graphite_root = '/var/graphite/'
>       if graphite_root is None:
>           graphite_root = os.environ.get('GRAPHITE_ROOT')
>       if graphite_root is None:
> -@@ -555,7 +556,7 @@ def read_config(program, options, **kwargs):
> +@@ -588,7 +588,7 @@ def read_config(program, options, **kwargs):
>       # 'GRAPHITE_CONF_DIR' environment variable.
>       settings.setdefault("CONF_DIR",
>                           os.environ.get("GRAPHITE_CONF_DIR",
> Index: patches/patch-setup_cfg
> ===================================================================
> RCS file: patches/patch-setup_cfg
> diff -N patches/patch-setup_cfg
> --- patches/patch-setup_cfg 8 Jul 2017 16:09:46 -0000 1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,13 +0,0 @@
> -$OpenBSD: patch-setup_cfg,v 1.2 2017/07/08 16:09:46 jasper Exp $
> -Index: setup.cfg
> ---- setup.cfg.orig
> -+++ setup.cfg
> -@@ -4,6 +4,6 @@ requires = python-twisted
> - post-install = distro/redhat/misc/postinstall
> -
> - [install]
> --prefix = /opt/graphite
> --install-lib = %(prefix)s/lib
> -+prefix = ${PREFIX}
> -+install-lib = ${MODPY_SITEPKG}
> -
> Index: patches/patch-setup_py
> ===================================================================
> RCS file: /cvs/ports/databases/py-carbon/patches/patch-setup_py,v
> retrieving revision 1.3
> diff -u -p -r1.3 patch-setup_py
> --- patches/patch-setup_py 8 Jul 2017 16:09:46 -0000 1.3
> +++ patches/patch-setup_py 28 Nov 2018 12:54:15 -0000
> @@ -2,20 +2,20 @@ $OpenBSD: patch-setup_py,v 1.3 2017/07/0
>  Index: setup.py
>  --- setup.py.orig
>  +++ setup.py
> -@@ -54,7 +54,7 @@ else:
> - storage_dirs = [ ('storage/ceres', []), ('storage/whisper',[]),
> -                  ('storage/lists',[]), ('storage/log',[]),
> -                  ('storage/rrd',[]) ]
> +@@ -61,7 +61,7 @@ else:
> + 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')) ]
>  +conf_files = [ ('${GRAPHITE_EGDIR}', glob('conf/*.example')) ]
>  
>   install_files = storage_dirs + conf_files
>  
> -@@ -63,7 +63,6 @@ install_files = storage_dirs + conf_files
> +@@ -70,7 +70,6 @@ install_files = storage_dirs + conf_files
>   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(
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/databases/py-carbon/pkg/PLIST,v
> retrieving revision 1.4
> diff -u -p -r1.4 PLIST
> --- pkg/PLIST 1 Nov 2017 10:44:39 -0000 1.4
> +++ pkg/PLIST 28 Nov 2018 12:54:15 -0000
> @@ -1,6 +1,11 @@
>  @comment $OpenBSD: PLIST,v 1.4 2017/11/01 10:44:39 landry Exp $
>  @newgroup _graphite:706
>  @newuser _graphite:706:_graphite:daemon:Graphite and Carbon user:/nonexistent:/sbin/nologin
> +@rcscript ${RCDIR}/carbon_aggregator
> +@rcscript ${RCDIR}/carbon_aggregator_cache
> +@rcscript ${RCDIR}/carbon_cache
> +@rcscript ${RCDIR}/carbon_relay
> +bin/carbon-aggregator-cache.py
>  bin/carbon-aggregator.py
>  bin/carbon-cache.py
>  bin/carbon-client.py
> @@ -9,75 +14,83 @@ bin/validate-storage-schemas.py
>  lib/python${MODPY_VERSION}/site-packages/carbon/
>  lib/python${MODPY_VERSION}/site-packages/carbon-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info
>  lib/python${MODPY_VERSION}/site-packages/carbon/__init__.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/__init__.pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}/
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}amqp_listener.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}amqp_publisher.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}cache.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}carbon_pb2.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}conf.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}database.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}events.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}exceptions.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}hashing.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}http.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}instrumentation.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}log.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}management.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}manhole.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}pipeline.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}protobuf.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}protocols.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}regexlist.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}relayrules.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}resolver.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}rewrite.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}routers.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}service.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}state.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}storage.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}writer.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/
>  lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/__init__.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/__init__.pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}/
> +lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}buffers.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}processor.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}rules.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/buffers.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/buffers.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/processor.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/processor.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/rules.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/rules.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/amqp0-8.xml
>  lib/python${MODPY_VERSION}/site-packages/carbon/amqp_listener.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/amqp_listener.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/amqp_publisher.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/amqp_publisher.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/cache.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/cache.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/carbon_pb2.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/carbon_pb2.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/client.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/client.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/conf.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/conf.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/database.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/database.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/events.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/events.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/exceptions.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/exceptions.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/hashing.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/hashing.pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/http.py
>  lib/python${MODPY_VERSION}/site-packages/carbon/instrumentation.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/instrumentation.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/log.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/log.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/management.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/management.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/manhole.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/manhole.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/pipeline.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/pipeline.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/protobuf.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/protobuf.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/protocols.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/protocols.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/regexlist.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/regexlist.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/relayrules.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/relayrules.pyc
> +lib/python${MODPY_VERSION}/site-packages/carbon/resolver.py
>  lib/python${MODPY_VERSION}/site-packages/carbon/rewrite.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/rewrite.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/routers.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/routers.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/service.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/service.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/state.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/state.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/storage.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/storage.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/util.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/util.pyc
>  lib/python${MODPY_VERSION}/site-packages/carbon/writer.py
> -lib/python${MODPY_VERSION}/site-packages/carbon/writer.pyc
> +lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_aggregator_cache_plugin.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_aggregator_plugin.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_cache_plugin.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_relay_plugin.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_cache_plugin.py
>  lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_plugin.py
> -lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_plugin.pyc
>  lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_cache_plugin.py
> -lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_cache_plugin.pyc
>  lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_relay_plugin.py
> -lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_relay_plugin.pyc
>  share/examples/graphite/
>  @sample ${SYSCONFDIR}/graphite/
>  share/examples/graphite/aggregation-rules.conf.example
> Index: pkg/carbon_aggregator.rc
> ===================================================================
> RCS file: pkg/carbon_aggregator.rc
> diff -N pkg/carbon_aggregator.rc
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ pkg/carbon_aggregator.rc 28 Nov 2018 12:54:15 -0000
> @@ -0,0 +1,26 @@
> +#!/bin/ksh
> +#
> +# $OpenBSD: $
> +
> +daemon="/usr/local/bin/carbon-aggregator.py"
> +daemon_user="_graphite"
> +
> +. /etc/rc.d/rc.subr
> +
> +rc_usercheck=NO
> +
> +rc_check() {
> + ${rcexec} "${daemon} ${daemon_flags} status"
> +}
> +
> +rc_reload=NO
> +
> +rc_start() {
> + ${rcexec} "${daemon} ${daemon_flags} start"
> +}
> +
> +rc_stop() {
> + ${rcexec} "${daemon} stop"
> +}
> +
> +rc_cmd $1
> Index: pkg/carbon_aggregator_cache.rc
> ===================================================================
> RCS file: pkg/carbon_aggregator_cache.rc
> diff -N pkg/carbon_aggregator_cache.rc
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ pkg/carbon_aggregator_cache.rc 28 Nov 2018 12:54:15 -0000
> @@ -0,0 +1,26 @@
> +#!/bin/ksh
> +#
> +# $OpenBSD: $
> +
> +daemon="/usr/local/bin/carbon-aggregator-cache.py"
> +daemon_user="_graphite"
> +
> +. /etc/rc.d/rc.subr
> +
> +rc_usercheck=NO
> +
> +rc_check() {
> + ${rcexec} "${daemon} ${daemon_flags} status"
> +}
> +
> +rc_reload=NO
> +
> +rc_start() {
> + ${rcexec} "${daemon} ${daemon_flags} start"
> +}
> +
> +rc_stop() {
> + ${rcexec} "${daemon} stop"
> +}
> +
> +rc_cmd $1
> Index: pkg/carbon_cache.rc
> ===================================================================
> RCS file: pkg/carbon_cache.rc
> diff -N pkg/carbon_cache.rc
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ pkg/carbon_cache.rc 28 Nov 2018 12:54:15 -0000
> @@ -0,0 +1,26 @@
> +#!/bin/ksh
> +#
> +# $OpenBSD: $
> +
> +daemon="/usr/local/bin/carbon-cache.py"
> +daemon_user="_graphite"
> +
> +. /etc/rc.d/rc.subr
> +
> +rc_usercheck=NO
> +
> +rc_check() {
> + ${rcexec} "${daemon} ${daemon_flags} status"
> +}
> +
> +rc_reload=NO
> +
> +rc_start() {
> + ${rcexec} "${daemon} ${daemon_flags} start"
> +}
> +
> +rc_stop() {
> + ${rcexec} "${daemon} stop"
> +}
> +
> +rc_cmd $1
> Index: pkg/carbon_relay.rc
> ===================================================================
> RCS file: pkg/carbon_relay.rc
> diff -N pkg/carbon_relay.rc
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ pkg/carbon_relay.rc 28 Nov 2018 12:54:15 -0000
> @@ -0,0 +1,26 @@
> +#!/bin/ksh
> +#
> +# $OpenBSD: $
> +
> +daemon="/usr/local/bin/carbon-relay.py"
> +daemon_user="_graphite"
> +
> +. /etc/rc.d/rc.subr
> +
> +rc_usercheck=NO
> +
> +rc_check() {
> + ${rcexec} "${daemon} ${daemon_flags} status"
> +}
> +
> +rc_reload=NO
> +
> +rc_start() {
> + ${rcexec} "${daemon} ${daemon_flags} start"
> +}
> +
> +rc_stop() {
> + ${rcexec} "${daemon} stop"
> +}
> +
> +rc_cmd $1
>

Reply | Threaded
Open this post in threaded view
|

Re: update py-carbon

Martijn van Duren-7
ping

On 1/24/19 1:29 PM, Martijn van Duren wrote:

> ping
>
> On 11/28/18 1:56 PM, Martijn van Duren wrote:
>> So something like this?
>> I'll send py-cachetools in a separate diff.
>>
>> On 11/28/18 12:07 PM, Stuart Henderson wrote:
>>> On 2018/11/28 08:25, Martijn van Duren wrote:
>>>> On 11/27/18 2:36 PM, Daniel Jakots wrote:
>>>>> On Tue, 27 Nov 2018 12:43:52 +0100, Martijn van Duren
>>>>> <[hidden email]> wrote:
>>>>>
>>>>>> Here's an update to databases/py-carbon.
>>>>>> There's experimental support for python3, but I haven't included it
>>>>>> here because of other dependencies which don't yet have python3
>>>>>> support in our tree.
>>>>>
>>>>> Which one(s)?
>>>>>
>>>> I must have goofed somewhere. It's not py-carbon directly which has
>>>> "issues", but py-whisper. But let's safe that discussion for that
>>>> threat.
>>>>
>>>> Here's an updated diff. I don't know whether mostly executable
>>>> python packages should be moved to python3, or if they still
>>>> should come in flavors, so I just made it a flavor, so we can
>>>> quite easily dumb it down again if we just want python3.
>>>
>>> If it's actually useful as a library then it might be worth considering
>>> whether to subpackage it - have the executables as a separate package
>>> only built with the python3 flavour.
>>>
>>> But if (as COMMENT implies) it's only really useful as daemon/utilties
>>> then I'd much prefer to just switch to py3 outright. This cuts a lot of
>>> complexity from Makefile, patches and PLIST, and makes it so all users
>>> are on recent python (rather than the "default" being old python).
>>>
>>>> Note: carbon-aggregator{,-cache} doesn't work because it misses
>>>> py-cachetools, but people could get that themselves via pip, or it
>>>> could be added as a package in the future, so I left the plumbing in
>>>> as is.
>>>
>>> Hmm. People shouldn't be installing via pip to make packages work3
>>> I'd prefer to either port the dep, or @comment the files that need it.
>>>
>>>> @@ -108,3 +121,13 @@ share/examples/graphite/whitelist.conf.e
>>>>  @sample /var/graphite/storage/whisper/
>>>>  @owner
>>>>  @group
>>>> +storage/
>>>> +storage/ceres/
>>>> +storage/ceres/dummy.txt/
>>>> +storage/lists/
>>>> +storage/log/
>>>> +storage/log/dummy.txt/
>>>> +storage/rrd/
>>>> +storage/rrd/dummy.txt/
>>>> +storage/whisper/
>>>> +storage/whisper/dummy.txt/
>>>
>>> It feels like these /usr/local/storage directories should not be installed,
>>> they are already @sample'd under /var/graphite/storage so I think should just
>>> be rm'd. But there are some missing @extra or @extraunexec that would be
>>> needed for pkg_delete -c to correctly remove files generated in this tree.
>>>
>>
>> Index: Makefile
>> ===================================================================
>> RCS file: /cvs/ports/devel/quirks/Makefile,v
>> retrieving revision 1.651
>> diff -u -p -r1.651 Makefile
>> --- Makefile 27 Nov 2018 15:24:15 -0000 1.651
>> +++ Makefile 28 Nov 2018 12:54:48 -0000
>> @@ -5,7 +5,7 @@ CATEGORIES = devel databases
>>  DISTFILES =
>>  
>>  # API.rev
>> -PKGNAME = quirks-3.44
>> +PKGNAME = quirks-3.45
>>  PKG_ARCH = *
>>  MAINTAINER = Marc Espie <[hidden email]>
>>  
>> Index: files/Quirks.pm
>> ===================================================================
>> RCS file: /cvs/ports/devel/quirks/files/Quirks.pm,v
>> retrieving revision 1.665
>> diff -u -p -r1.665 Quirks.pm
>> --- files/Quirks.pm 27 Nov 2018 15:24:15 -0000 1.665
>> +++ files/Quirks.pm 28 Nov 2018 12:54:48 -0000
>> @@ -288,6 +288,7 @@ my $stem_extensions = {
>>   'py-pafy' => 'py3-pafy',
>>   'py-libmagic' => 'py-magic',
>>   'py3-libmagic' => 'py3-magic',
>> + 'py-carbon' => 'py3-carbon',
>>  };
>>  
>>  my $obsolete_reason = {
>> Index: Makefile
>> ===================================================================
>> RCS file: /cvs/ports/databases/py-carbon/Makefile,v
>> retrieving revision 1.9
>> diff -u -p -r1.9 Makefile
>> --- Makefile 1 Nov 2017 10:44:39 -0000 1.9
>> +++ Makefile 28 Nov 2018 12:54:15 -0000
>> @@ -2,12 +2,11 @@
>>  
>>  COMMENT= backend data caching and persistence daemon for Graphite
>>  
>> -MODPY_EGG_VERSION= 1.0.1
>> +MODPY_EGG_VERSION= 1.1.4
>>  
>>  DISTNAME= carbon-${MODPY_EGG_VERSION}
>>  PKGNAME= py-${DISTNAME}
>>  CATEGORIES= databases
>> -REVISION= 0
>>  
>>  # Apache
>>  PERMIT_PACKAGE_CDROM= Yes
>> @@ -16,19 +15,26 @@ MODULES= lang/python
>>  MODPY_PI = Yes
>>  
>>  BUILD_DEPENDS= ${RUN_DEPENDS}
>> -RUN_DEPENDS= databases/py-whisper \
>> - devel/py-twisted
>> +RUN_DEPENDS= databases/py-whisper${MODPY_FLAVOR} \
>> + devel/py-cachetools${MODPY_FLAVOR} \
>> + devel/py-twisted${MODPY_FLAVOR} \
>> + www/py-urllib3${MODPY_FLAVOR}
>>  
>> -BIN_FILES= carbon-aggregator.py carbon-cache.py carbon-client.py \
>> - carbon-relay.py validate-storage-schemas.py
>> +PYBINS= carbon-aggregator carbon-aggregator-cache carbon-cache \
>> + carbon-client carbon-relay validate-storage-schemas
>>  
>> -.for b in ${BIN_FILES}
>> -MODPY_ADJ_FILES+= bin/$b
>> +MODPY_VERSION= ${MODPY_DEFAULT_VERSION_3}
>> +
>> +.for b in ${PYBINS}
>> +MODPY_ADJ_FILES+= bin/$b.py
>>  .endfor
>>  
>>  GRAPHITE_EGDIR= ${PREFIX}/share/examples/graphite/
>>  
>>  SUBST_VARS+= GRAPHITE_EGDIR MODPY_SITEPKG
>> +
>> +MODPY_DISTUTILS_INSTALL=install --prefix=${LOCALBASE} \
>> + --root=${DESTDIR} --install-lib=${MODPY_SITEPKG}
>>  
>>  NO_TEST= Yes
>>  
>> Index: distinfo
>> ===================================================================
>> RCS file: /cvs/ports/databases/py-carbon/distinfo,v
>> retrieving revision 1.3
>> diff -u -p -r1.3 distinfo
>> --- distinfo 8 Jul 2017 16:09:46 -0000 1.3
>> +++ distinfo 28 Nov 2018 12:54:15 -0000
>> @@ -1,2 +1,2 @@
>> -SHA256 (carbon-1.0.1.tar.gz) = JbScsdVAFC38wAY4IwjGO5Ic+J0s2EhhHkmHTN1ciUU=
>> -SIZE (carbon-1.0.1.tar.gz) = 61444
>> +SHA256 (carbon-1.1.4.tar.gz) = G3DjSsDwvTKgPuFOrx7SyFfiCJhPyXYfWalcIcUmRRM=
>> +SIZE (carbon-1.1.4.tar.gz) = 71819
>> Index: patches/patch-bin_validate-storage-schemas_py
>> ===================================================================
>> RCS file: /cvs/ports/databases/py-carbon/patches/patch-bin_validate-storage-schemas_py,v
>> retrieving revision 1.1.1.1
>> diff -u -p -r1.1.1.1 patch-bin_validate-storage-schemas_py
>> --- patches/patch-bin_validate-storage-schemas_py 11 Oct 2012 18:00:30 -0000 1.1.1.1
>> +++ patches/patch-bin_validate-storage-schemas_py 28 Nov 2018 12:54:15 -0000
>> @@ -1,12 +1,13 @@
>>  $OpenBSD: patch-bin_validate-storage-schemas_py,v 1.1.1.1 2012/10/11 18:00:30 jasper Exp $
>> ---- bin/validate-storage-schemas.py.orig Thu Oct 11 19:15:55 2012
>> -+++ bin/validate-storage-schemas.py Thu Oct 11 19:16:45 2012
>> -@@ -22,7 +22,7 @@ if len(sys.argv) == 2:
>> +Index: bin/validate-storage-schemas.py
>> +--- bin/validate-storage-schemas.py.orig
>> ++++ bin/validate-storage-schemas.py
>> +@@ -26,7 +26,7 @@ if len(sys.argv) == 2:
>>     SCHEMAS_FILE = sys.argv[1]
>> -   print "Loading storage-schemas configuration from: '%s'" % SCHEMAS_FILE
>> +   print("Loading storage-schemas configuration from: '%s'" % SCHEMAS_FILE)
>>   else:
>>  -  SCHEMAS_FILE = realpath(join(dirname(__file__), '..', 'conf', 'storage-schemas.conf'))
>>  +  SCHEMAS_FILE = '${SYSCONFDIR}/graphite/storage-schemas.conf'
>> -   print "Loading storage-schemas configuration from default location at: '%s'" % SCHEMAS_FILE
>> +   print("Loading storage-schemas configuration from default location at: '%s'" % SCHEMAS_FILE)
>>  
>>   config_parser = ConfigParser()
>> Index: patches/patch-lib_carbon_conf_py
>> ===================================================================
>> RCS file: /cvs/ports/databases/py-carbon/patches/patch-lib_carbon_conf_py,v
>> retrieving revision 1.3
>> diff -u -p -r1.3 patch-lib_carbon_conf_py
>> --- patches/patch-lib_carbon_conf_py 8 Jul 2017 16:09:46 -0000 1.3
>> +++ patches/patch-lib_carbon_conf_py 28 Nov 2018 12:54:15 -0000
>> @@ -2,15 +2,16 @@ $OpenBSD: patch-lib_carbon_conf_py,v 1.3
>>  Index: lib/carbon/conf.py
>>  --- lib/carbon/conf.py.orig
>>  +++ lib/carbon/conf.py
>> -@@ -545,6 +545,7 @@ def read_config(program, options, **kwargs):
>> +@@ -577,7 +577,7 @@ def read_config(program, options, **kwargs):
>> +     for name, value in kwargs.items():
>>           settings.setdefault(name, value)
>>  
>> -     graphite_root = kwargs.get("ROOT_DIR")
>> +-    graphite_root = kwargs.get("ROOT_DIR")
>>  +    graphite_root = '/var/graphite/'
>>       if graphite_root is None:
>>           graphite_root = os.environ.get('GRAPHITE_ROOT')
>>       if graphite_root is None:
>> -@@ -555,7 +556,7 @@ def read_config(program, options, **kwargs):
>> +@@ -588,7 +588,7 @@ def read_config(program, options, **kwargs):
>>       # 'GRAPHITE_CONF_DIR' environment variable.
>>       settings.setdefault("CONF_DIR",
>>                           os.environ.get("GRAPHITE_CONF_DIR",
>> Index: patches/patch-setup_cfg
>> ===================================================================
>> RCS file: patches/patch-setup_cfg
>> diff -N patches/patch-setup_cfg
>> --- patches/patch-setup_cfg 8 Jul 2017 16:09:46 -0000 1.2
>> +++ /dev/null 1 Jan 1970 00:00:00 -0000
>> @@ -1,13 +0,0 @@
>> -$OpenBSD: patch-setup_cfg,v 1.2 2017/07/08 16:09:46 jasper Exp $
>> -Index: setup.cfg
>> ---- setup.cfg.orig
>> -+++ setup.cfg
>> -@@ -4,6 +4,6 @@ requires = python-twisted
>> - post-install = distro/redhat/misc/postinstall
>> -
>> - [install]
>> --prefix = /opt/graphite
>> --install-lib = %(prefix)s/lib
>> -+prefix = ${PREFIX}
>> -+install-lib = ${MODPY_SITEPKG}
>> -
>> Index: patches/patch-setup_py
>> ===================================================================
>> RCS file: /cvs/ports/databases/py-carbon/patches/patch-setup_py,v
>> retrieving revision 1.3
>> diff -u -p -r1.3 patch-setup_py
>> --- patches/patch-setup_py 8 Jul 2017 16:09:46 -0000 1.3
>> +++ patches/patch-setup_py 28 Nov 2018 12:54:15 -0000
>> @@ -2,20 +2,20 @@ $OpenBSD: patch-setup_py,v 1.3 2017/07/0
>>  Index: setup.py
>>  --- setup.py.orig
>>  +++ setup.py
>> -@@ -54,7 +54,7 @@ else:
>> - storage_dirs = [ ('storage/ceres', []), ('storage/whisper',[]),
>> -                  ('storage/lists',[]), ('storage/log',[]),
>> -                  ('storage/rrd',[]) ]
>> +@@ -61,7 +61,7 @@ else:
>> + 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')) ]
>>  +conf_files = [ ('${GRAPHITE_EGDIR}', glob('conf/*.example')) ]
>>  
>>   install_files = storage_dirs + conf_files
>>  
>> -@@ -63,7 +63,6 @@ install_files = storage_dirs + conf_files
>> +@@ -70,7 +70,6 @@ install_files = storage_dirs + conf_files
>>   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(
>> Index: pkg/PLIST
>> ===================================================================
>> RCS file: /cvs/ports/databases/py-carbon/pkg/PLIST,v
>> retrieving revision 1.4
>> diff -u -p -r1.4 PLIST
>> --- pkg/PLIST 1 Nov 2017 10:44:39 -0000 1.4
>> +++ pkg/PLIST 28 Nov 2018 12:54:15 -0000
>> @@ -1,6 +1,11 @@
>>  @comment $OpenBSD: PLIST,v 1.4 2017/11/01 10:44:39 landry Exp $
>>  @newgroup _graphite:706
>>  @newuser _graphite:706:_graphite:daemon:Graphite and Carbon user:/nonexistent:/sbin/nologin
>> +@rcscript ${RCDIR}/carbon_aggregator
>> +@rcscript ${RCDIR}/carbon_aggregator_cache
>> +@rcscript ${RCDIR}/carbon_cache
>> +@rcscript ${RCDIR}/carbon_relay
>> +bin/carbon-aggregator-cache.py
>>  bin/carbon-aggregator.py
>>  bin/carbon-cache.py
>>  bin/carbon-client.py
>> @@ -9,75 +14,83 @@ bin/validate-storage-schemas.py
>>  lib/python${MODPY_VERSION}/site-packages/carbon/
>>  lib/python${MODPY_VERSION}/site-packages/carbon-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info
>>  lib/python${MODPY_VERSION}/site-packages/carbon/__init__.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/__init__.pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}/
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}amqp_listener.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}amqp_publisher.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}cache.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}carbon_pb2.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}conf.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}database.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}events.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}exceptions.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}hashing.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}http.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}instrumentation.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}log.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}management.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}manhole.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}pipeline.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}protobuf.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}protocols.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}regexlist.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}relayrules.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}resolver.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}rewrite.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}routers.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}service.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}state.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}storage.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/${MODPY_PYCACHE}writer.${MODPY_PYC_MAGIC_TAG}pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/
>>  lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/__init__.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/__init__.pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}/
>> +lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}buffers.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}processor.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/${MODPY_PYCACHE}rules.${MODPY_PYC_MAGIC_TAG}pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/buffers.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/buffers.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/processor.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/processor.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/rules.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/aggregator/rules.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/amqp0-8.xml
>>  lib/python${MODPY_VERSION}/site-packages/carbon/amqp_listener.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/amqp_listener.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/amqp_publisher.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/amqp_publisher.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/cache.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/cache.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/carbon_pb2.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/carbon_pb2.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/client.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/client.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/conf.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/conf.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/database.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/database.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/events.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/events.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/exceptions.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/exceptions.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/hashing.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/hashing.pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/http.py
>>  lib/python${MODPY_VERSION}/site-packages/carbon/instrumentation.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/instrumentation.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/log.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/log.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/management.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/management.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/manhole.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/manhole.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/pipeline.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/pipeline.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/protobuf.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/protobuf.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/protocols.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/protocols.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/regexlist.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/regexlist.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/relayrules.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/relayrules.pyc
>> +lib/python${MODPY_VERSION}/site-packages/carbon/resolver.py
>>  lib/python${MODPY_VERSION}/site-packages/carbon/rewrite.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/rewrite.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/routers.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/routers.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/service.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/service.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/state.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/state.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/storage.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/storage.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/util.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/util.pyc
>>  lib/python${MODPY_VERSION}/site-packages/carbon/writer.py
>> -lib/python${MODPY_VERSION}/site-packages/carbon/writer.pyc
>> +lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_aggregator_cache_plugin.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_aggregator_plugin.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_cache_plugin.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/twisted/plugins/${MODPY_PYCACHE}carbon_relay_plugin.${MODPY_PYC_MAGIC_TAG}pyc
>> +lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_cache_plugin.py
>>  lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_plugin.py
>> -lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_aggregator_plugin.pyc
>>  lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_cache_plugin.py
>> -lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_cache_plugin.pyc
>>  lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_relay_plugin.py
>> -lib/python${MODPY_VERSION}/site-packages/twisted/plugins/carbon_relay_plugin.pyc
>>  share/examples/graphite/
>>  @sample ${SYSCONFDIR}/graphite/
>>  share/examples/graphite/aggregation-rules.conf.example
>> Index: pkg/carbon_aggregator.rc
>> ===================================================================
>> RCS file: pkg/carbon_aggregator.rc
>> diff -N pkg/carbon_aggregator.rc
>> --- /dev/null 1 Jan 1970 00:00:00 -0000
>> +++ pkg/carbon_aggregator.rc 28 Nov 2018 12:54:15 -0000
>> @@ -0,0 +1,26 @@
>> +#!/bin/ksh
>> +#
>> +# $OpenBSD: $
>> +
>> +daemon="/usr/local/bin/carbon-aggregator.py"
>> +daemon_user="_graphite"
>> +
>> +. /etc/rc.d/rc.subr
>> +
>> +rc_usercheck=NO
>> +
>> +rc_check() {
>> + ${rcexec} "${daemon} ${daemon_flags} status"
>> +}
>> +
>> +rc_reload=NO
>> +
>> +rc_start() {
>> + ${rcexec} "${daemon} ${daemon_flags} start"
>> +}
>> +
>> +rc_stop() {
>> + ${rcexec} "${daemon} stop"
>> +}
>> +
>> +rc_cmd $1
>> Index: pkg/carbon_aggregator_cache.rc
>> ===================================================================
>> RCS file: pkg/carbon_aggregator_cache.rc
>> diff -N pkg/carbon_aggregator_cache.rc
>> --- /dev/null 1 Jan 1970 00:00:00 -0000
>> +++ pkg/carbon_aggregator_cache.rc 28 Nov 2018 12:54:15 -0000
>> @@ -0,0 +1,26 @@
>> +#!/bin/ksh
>> +#
>> +# $OpenBSD: $
>> +
>> +daemon="/usr/local/bin/carbon-aggregator-cache.py"
>> +daemon_user="_graphite"
>> +
>> +. /etc/rc.d/rc.subr
>> +
>> +rc_usercheck=NO
>> +
>> +rc_check() {
>> + ${rcexec} "${daemon} ${daemon_flags} status"
>> +}
>> +
>> +rc_reload=NO
>> +
>> +rc_start() {
>> + ${rcexec} "${daemon} ${daemon_flags} start"
>> +}
>> +
>> +rc_stop() {
>> + ${rcexec} "${daemon} stop"
>> +}
>> +
>> +rc_cmd $1
>> Index: pkg/carbon_cache.rc
>> ===================================================================
>> RCS file: pkg/carbon_cache.rc
>> diff -N pkg/carbon_cache.rc
>> --- /dev/null 1 Jan 1970 00:00:00 -0000
>> +++ pkg/carbon_cache.rc 28 Nov 2018 12:54:15 -0000
>> @@ -0,0 +1,26 @@
>> +#!/bin/ksh
>> +#
>> +# $OpenBSD: $
>> +
>> +daemon="/usr/local/bin/carbon-cache.py"
>> +daemon_user="_graphite"
>> +
>> +. /etc/rc.d/rc.subr
>> +
>> +rc_usercheck=NO
>> +
>> +rc_check() {
>> + ${rcexec} "${daemon} ${daemon_flags} status"
>> +}
>> +
>> +rc_reload=NO
>> +
>> +rc_start() {
>> + ${rcexec} "${daemon} ${daemon_flags} start"
>> +}
>> +
>> +rc_stop() {
>> + ${rcexec} "${daemon} stop"
>> +}
>> +
>> +rc_cmd $1
>> Index: pkg/carbon_relay.rc
>> ===================================================================
>> RCS file: pkg/carbon_relay.rc
>> diff -N pkg/carbon_relay.rc
>> --- /dev/null 1 Jan 1970 00:00:00 -0000
>> +++ pkg/carbon_relay.rc 28 Nov 2018 12:54:15 -0000
>> @@ -0,0 +1,26 @@
>> +#!/bin/ksh
>> +#
>> +# $OpenBSD: $
>> +
>> +daemon="/usr/local/bin/carbon-relay.py"
>> +daemon_user="_graphite"
>> +
>> +. /etc/rc.d/rc.subr
>> +
>> +rc_usercheck=NO
>> +
>> +rc_check() {
>> + ${rcexec} "${daemon} ${daemon_flags} status"
>> +}
>> +
>> +rc_reload=NO
>> +
>> +rc_start() {
>> + ${rcexec} "${daemon} ${daemon_flags} start"
>> +}
>> +
>> +rc_stop() {
>> + ${rcexec} "${daemon} stop"
>> +}
>> +
>> +rc_cmd $1
>>
>