pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

influxdb: an open source time series database



Module Name:	pkgsrc-wip
Committed By:	Bill Welliver <bill%welliver.org@localhost>
Pushed By:	hww3
Date:		Tue Jan 22 15:43:24 2019 -0500
Changeset:	2d9281822a39c27dd4c6d999144b35ecbc43b5a5

Added Files:
	influxdb/DESCR
	influxdb/Makefile
	influxdb/PLIST
	influxdb/distinfo
	influxdb/files/influxdb.sh
	influxdb/files/mmap_solaris.go
	influxdb/files/smf/manifest.xml

Log Message:
influxdb: an open source time series database

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=2d9281822a39c27dd4c6d999144b35ecbc43b5a5

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 influxdb/DESCR                  |   2 +
 influxdb/Makefile               | 121 ++++++++++++++++++++++++++++++++++++++++
 influxdb/PLIST                  |  26 +++++++++
 influxdb/distinfo               |  10 ++++
 influxdb/files/influxdb.sh      |  23 ++++++++
 influxdb/files/mmap_solaris.go  |  41 ++++++++++++++
 influxdb/files/smf/manifest.xml |  30 ++++++++++
 7 files changed, 253 insertions(+)

diffs:
diff --git a/influxdb/DESCR b/influxdb/DESCR
new file mode 100644
index 0000000000..20d0bd9190
--- /dev/null
+++ b/influxdb/DESCR
@@ -0,0 +1,2 @@
+InfluxDB is an open-source time series database optimixed for fast
+storage and retrieval of time series data.
diff --git a/influxdb/Makefile b/influxdb/Makefile
new file mode 100644
index 0000000000..25f2cb06a6
--- /dev/null
+++ b/influxdb/Makefile
@@ -0,0 +1,121 @@
+# $NetBSD$
+
+GITHUB_PROJECT=	influxdb
+PKGVERSION_NOREV= 1.6.5
+DISTNAME=       influxdb-1.6.5
+GITHUB_TAG=	v${PKGVERSION_NOREV}
+CATEGORIES=	databases
+MASTER_SITES=	${MASTER_SITE_GITHUB:=influxdata/}
+MAINTAINER=	william%welliver.org@localhost
+HOMEPAGE=	https://www.influxdata.com/
+COMMENT=	Time-series Database
+LICENSE=	mit
+
+# despite being the default value, this explicit declaration is required for things
+# to build properly.
+EXTRACT_SUFX=   .tar.gz
+
+IFDB_DISTNAME=			${DISTNAME}${EXTRACT_SUFX}
+IFDB_DEPENDENCIES=	influxdb-dependencies-${PKGVERSION_NOREV}.tar.gz
+DISTFILES=			${IFDB_DISTNAME}
+.if !defined(BOOTSTRAP)
+DISTFILES+=     ${IFDB_DEPENDENCIES}
+SITES.influxdb-dependencies-${PKGVERSION_NOREV}.tar.gz= https://bitbucket.org/hww3/influxdb/downloads/
+.endif
+
+#EXTRACT_ONLY=			${IFDB_DISTNAME}
+EXTRACT_DIR.${IFDB_DISTNAME}=	${WRKDIR}/src/github.com/influxdata
+EXTRACT_DIR.${IFDB_DEPENDENCIES}=	${WRKDIR}/src/github.com/influxdata
+WRKSRC=				${WRKDIR}/src/github.com/influxdata/influxdb
+USE_TOOLS+=	gmake curl
+
+BUILD_DEPENDS+=			go19-1.9.*:../../lang/go19
+BUILD_DEPENDS+=			asciidoc-[0-9]*:../../textproc/asciidoc
+BUILD_DEPENDS+=			xmlto-[0-9]*:../../textproc/xmlto
+
+# go language executables don't have SSP support
+CHECK_SSP_SKIP=	bin/*
+
+PKGSRC_MAKE_ENV+=		GOPATH=${WRKDIR}
+
+PKG_SYSCONFSUBDIR=	influxdb
+
+DATADIR=	${VARBASE}/lib/influxdb
+LOGDIR=		${VARBASE}/log/influxdb
+
+SUBST_CLASSES+=		fix-cfg
+SUBST_STAGE.fix-cfg=	pre-configure
+SUBST_MESSAGE.fix-cfg=	Disabling phone-home in sample config
+SUBST_FILES.fix-cfg=	etc/config.sample.toml
+SUBST_SED.fix-cfg=	-e 's/^\# reporting-disabled = false/reporting-disabled = true/'
+
+BUILD_DEFS+=		INFLUXDB_USER INFLUXDB_GROUP VARBASE
+FILES_SUBST+=		INFLUXDB_USER=${INFLUXDB_USER:Q}
+FILES_SUBST+=		INFLUXDB_GROUP=${INFLUXDB_GROUP:Q}
+FILES_SUBST+=		DATADIR=${DATADIR:Q}
+FILES_SUBST+=		LOGDIR=${LOGDIR:Q}
+
+INFLUXDB_USER?=		influxdb
+INFLUXDB_GROUP?=	influxdb
+OWN_DIRS_PERMS+=	${DATADIR} ${INFLUXDB_USER} ${INFLUXDB_GROUP} 0700
+OWN_DIRS_PERMS+=	${LOGDIR} ${INFLUXDB_USER} ${INFLUXDB_GROUP} 0700
+PKG_USERS_VARS+=	INFLUXDB_USER
+PKG_GROUPS_VARS+=	INFLUXDB_GROUP
+PKG_GROUPS=		${INFLUXDB_GROUP}
+PKG_USERS=		${INFLUXDB_USER}:${INFLUXDB_GROUP}
+RCD_SCRIPTS=		influxdb
+
+INSTALLATION_DIRS+=	bin ${PKGMANDIR}/man1 etc/influxdb share/doc/influxdb share/examples/influxdb
+
+DOC_FILES+=	LICENSE LICENSE_OF_DEPENDENCIES.md QUERIES.md README.md CHANGELOG.md
+BIN_FILES+=	influx influx_inspect influx_stress influx_tsm influxd stress_test_server test_client
+CONF_FILES+=	${PREFIX}/share/examples/${PKGBASE}/config.sample.toml ${PKG_SYSCONFDIR}/config.toml
+
+GO_BIN=	${PREFIX}/go19/bin/go
+
+post-extract:
+	${MV} ${WRKDIR}/src/github.com/influxdata/${DISTNAME}	\
+	  ${WRKDIR}/src/github.com/influxdata/influxdb
+#	${CP} files/mmap_solaris.go ${WRKSRC}/pkg/mmap
+
+# TODO: figure out how to properly depend on the extract target
+# fetch the additional dependencies that telegraf requires to compile and prepare a tarball containing them for use later.
+.PHONY:         _fetch_dependencies
+_fetch_dependencies: extract
+	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV}  ${GO_BIN} get github.com/sparrc/gdm
+	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV}  ${GO_BIN} install github.com/sparrc/gdm
+	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV}  ${WRKDIR}/bin/gdm restore
+	cd ${WRKDIR} && ${SETENV} ${PKGSRC_MAKE_ENV} rm -rf src/github.com/influxdata/influxdb
+	cd ${WRKDIR} && ${SETENV} ${PKGSRC_MAKE_ENV} find . -type d -name \.git -exec rm -rf {} \;
+	cd ${WRKDIR} && ${SETENV} ${PKGSRC_MAKE_ENV} tar czvf ${IFDB_DEPENDENCIES}  src
+	cd ${WRKDIR} && ${SETENV} ${PKGSRC_MAKE_ENV} mv ${IFDB_DEPENDENCIES} ${WRKDIR}
+
+# upload the dependency tarball somewhere that others can access.
+# this should probably be someplace more "official".
+.PHONY: 	_upload_dependencies
+_upload_dependencies: 	_fetch_dependencies
+	curl -u $$BITBUCKET_USERNAME:$$BITBUCKET_PASSWORD -s -X POST https://api.bitbucket.org/2.0/repositories/$$BITBUCKET_USERNAME/influxdb/downloads -F files=@${WRKDIR}/${IFDB_DEPENDENCIES}
+
+do-build:
+	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV}  ${GO_BIN} get -ldflags "-X main.version=${PKGVERSION_NOREV} -X main.commit=${GITHUB_TAG} -X main.buildstamp=pkgsrc" ./...
+	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV}  ${GO_BIN} install ./...
+
+do-install:
+	cd ${WRKSRC}/man && ${SETENV} ${PKGSRC_MAKE_ENV} ${MAKE_PROGRAM}
+.for idir in ${INSTALLATION_DIRS}
+	${MKDIR}  ${DESTDIR}${PREFIX}/${idir}
+.endfor
+	for manpage in ${WRKSRC}/man/*.1 ; do \
+		${INSTALL_MAN} $$manpage ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 ; \
+	done
+.for x in ${BIN_FILES}
+	${INSTALL} ${WRKDIR}/bin/${x}	\
+	  ${DESTDIR}${PREFIX}/bin/${x}
+.endfor
+.for x in ${DOC_FILES}
+	${INSTALL_DATA} ${WRKSRC}/${x} \
+	  ${DESTDIR}${PREFIX}/share/doc/influxdb/${x}
+.endfor
+	${INSTALL_DATA} ${WRKSRC}/etc/config.sample.toml ${DESTDIR}${PREFIX}/share/examples/${PKGBASE}
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/influxdb/PLIST b/influxdb/PLIST
new file mode 100644
index 0000000000..99cb3f456e
--- /dev/null
+++ b/influxdb/PLIST
@@ -0,0 +1,26 @@
+@comment $NetBSD$
+bin/influx
+bin/influx_inspect
+bin/influx_stress
+bin/influx_tsm
+bin/influxd
+bin/stress_test_server
+bin/test_client
+man/man1/influx.1
+man/man1/influx_inspect.1
+man/man1/influx_stress.1
+man/man1/influx_tsm.1
+man/man1/influxd-backup.1
+man/man1/influxd-config.1
+man/man1/influxd-restore.1
+man/man1/influxd-run.1
+man/man1/influxd-version.1
+man/man1/influxd.1
+share/doc/influxdb/CHANGELOG.md
+share/doc/influxdb/LICENSE
+share/doc/influxdb/LICENSE_OF_DEPENDENCIES.md
+share/doc/influxdb/QUERIES.md
+share/doc/influxdb/README.md
+share/examples/influxdb/config.sample.toml
+@pkgdir man1
+@pkgdir etc/influxdb
diff --git a/influxdb/distinfo b/influxdb/distinfo
new file mode 100644
index 0000000000..2dc4715d48
--- /dev/null
+++ b/influxdb/distinfo
@@ -0,0 +1,10 @@
+$NetBSD$
+
+SHA1 (influxdb-1.6.5.tar.gz) = 45250a33285ad4e1e03bf8ad5066c6ac5202b710
+RMD160 (influxdb-1.6.5.tar.gz) = 5762e1ad031f6d688e976ef18fcc4972975d716d
+SHA512 (influxdb-1.6.5.tar.gz) = 4bf8acfdf423d4ef84a34c63fe9fb7aad66b22c95ed55efb9f4c6602f96ee8ee0d45fc1eb5f793f4eac02b67b7eac4a966cb60e6583da4fbd8f6cdea9665cea1
+Size (influxdb-1.6.5.tar.gz) = 1513474 bytes
+SHA1 (influxdb-dependencies-1.6.5.tar.gz) = 0c8e0d0833e11953b0c89c714219bcad4e5c8c3c
+RMD160 (influxdb-dependencies-1.6.5.tar.gz) = 50b110a7d9f150945d8862006f61e80934566809
+SHA512 (influxdb-dependencies-1.6.5.tar.gz) = 7103a11df1cb0f7844ba9840766700585ecd9e0102fe3073d7df71932b158c7883192f3fbfa57e7e3a35765949ccb9970dab9f09f84f7233dab38a6f59bd6c7d
+Size (influxdb-dependencies-1.6.5.tar.gz) = 18642231 bytes
diff --git a/influxdb/files/influxdb.sh b/influxdb/files/influxdb.sh
new file mode 100644
index 0000000000..6ec689cf89
--- /dev/null
+++ b/influxdb/files/influxdb.sh
@@ -0,0 +1,23 @@
+#!@RCD_SCRIPTS_SHELL@
+
+# PROVIDE: influxdb
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+
+if [ -f /etc/rc.subr ]
+then
+        . /etc/rc.subr
+fi
+
+name="influxdb"
+rcvar=$name
+influxdb_user="@INFLUXDB_USER@"
+influxdb_group="@INFLUXDB_GROUP@"
+influxdb_chdir="@VARBASE@/lib/influxdb"
+pidfile="@VARBASE@/lib/influxdb/data/influxdb.pid"
+STDERR="@LOGDIR@/influxdb.log"
+command="@PREFIX@/bin/influxd"
+command_args="-config @PREFIX@/etc/influxdb/config.toml -pidfile ${pidfile} 1>/dev/null 2>> $STDERR &"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/influxdb/files/mmap_solaris.go b/influxdb/files/mmap_solaris.go
new file mode 100644
index 0000000000..674556b0af
--- /dev/null
+++ b/influxdb/files/mmap_solaris.go
@@ -0,0 +1,41 @@
+// +build solaris
+
+package mmap
+
+import (
+	"os"
+	"syscall"
+
+	"golang.org/x/sys/unix"
+)
+
+func Map(path string) ([]byte, error) {
+	f, err := os.Open(path)
+	if err != nil {
+		return nil, err
+	}
+	defer f.Close()
+
+	fi, err := f.Stat()
+	if err != nil {
+		return nil, err
+	} else if fi.Size() == 0 {
+		return nil, nil
+	}
+
+	data, err := unix.Mmap(int(f.Fd()), 0, int(fi.Size()), syscall.PROT_READ, syscall.MAP_SHARED)
+	if err != nil {
+		return nil, err
+	}
+
+	return data, nil
+}
+
+// Unmap closes the memory-map.
+func Unmap(data []byte) error {
+	if data == nil {
+		return nil
+	}
+	return unix.Munmap(data)
+}
+
diff --git a/influxdb/files/smf/manifest.xml b/influxdb/files/smf/manifest.xml
new file mode 100644
index 0000000000..c7e3cff715
--- /dev/null
+++ b/influxdb/files/smf/manifest.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<service_bundle type='manifest' name='@SMF_NAME@:default'>
+  <service name='@SMF_PREFIX@/@SMF_NAME@' type='service' version='1'>
+    <create_default_instance enabled='false' />
+    <single_instance />
+    <dependency name='network' grouping='require_all' restart_on='none' type='service'>
+      <service_fmri value='svc:/milestone/network:default' />
+    </dependency>
+    <dependency name='fs-local' grouping='require_all' restart_on='none' type='service'>
+      <service_fmri value='svc:/system/filesystem/local:default' />
+    </dependency>
+    <method_context working_directory="@DATADIR@">
+      <method_credential user='@INFLUXDB_USER@' group='@INFLUXDB_GROUP@' />
+    </method_context>
+    <exec_method type='method' name='start'
+      exec='@PREFIX@/bin/influxd -config @PKG_SYSCONFDIR@/config.toml -pidfile @DATADIR@/influxdb.pid 2>> @LOGDIR@/influxdb.log &amp;'
+      timeout_seconds="60" />
+    <exec_method type='method' name='stop' exec=':kill' timeout_seconds="60" />
+    <template>
+      <common_name>
+        <loctext xml:lang='C'>InfluxDB Time Series database</loctext>
+      </common_name>
+      <documentation>
+        <manpage title='influxd' section='1' manpath='/@PREFIX@/man' />
+        <doc_link name='homepage' uri='https://docs.influxdata.com/influxdb/' />
+      </documentation>
+    </template>
+  </service>
+</service_bundle>


Home | Main Index | Thread Index | Old Index