Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Jan 2020 08:08:01 +0000 (UTC)
From:      Dave Cottlehuber <dch@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r524463 - in head/databases: . foundationdb-devel foundationdb-devel/files
Message-ID:  <202001280808.00S881hC039213@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dch
Date: Tue Jan 28 08:08:01 2020
New Revision: 524463
URL: https://svnweb.freebsd.org/changeset/ports/524463

Log:
  databases/foundationdb-devel: [NEW PORT] distributed ACID transactions
  
  FDB 7.x has a new cmake-derive build system, and upstreamed patches that
  already supports C client bindings for other languages. While the
  upstreamed patches are still under development, this port allows
  FoundationDB users and committers to easily test and work with FreeBSD,
  and also enables FreeBSD-based clients to work out of the box.
  
  Approved by:	vanilla
  Sponsored by:	SkunkWerks, GmbH
  Differential Revision:	https://reviews.freebsd.org/D23287

Added:
  head/databases/foundationdb-devel/
  head/databases/foundationdb-devel/Makefile   (contents, props changed)
  head/databases/foundationdb-devel/distinfo   (contents, props changed)
  head/databases/foundationdb-devel/files/
  head/databases/foundationdb-devel/files/foundationdb.conf.in   (contents, props changed)
  head/databases/foundationdb-devel/files/foundationdb.in   (contents, props changed)
  head/databases/foundationdb-devel/pkg-descr   (contents, props changed)
  head/databases/foundationdb-devel/pkg-plist   (contents, props changed)
Modified:
  head/databases/Makefile

Modified: head/databases/Makefile
==============================================================================
--- head/databases/Makefile	Tue Jan 28 07:48:57 2020	(r524462)
+++ head/databases/Makefile	Tue Jan 28 08:08:01 2020	(r524463)
@@ -77,6 +77,7 @@
     SUBDIR += firebird25-server
     SUBDIR += fortytwo-bdb
     SUBDIR += foundationdb
+    SUBDIR += foundationdb-devel
     SUBDIR += fpc-dblib
     SUBDIR += fpc-fpindexer
     SUBDIR += fpc-gdbm

Added: head/databases/foundationdb-devel/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/foundationdb-devel/Makefile	Tue Jan 28 08:08:01 2020	(r524463)
@@ -0,0 +1,72 @@
+# $FreeBSD$
+
+PORTNAME=	foundationdb-devel
+DISTVERSION=	7.0.0
+CATEGORIES=	databases
+
+MAINTAINER=	dch@FreeBSD.org
+COMMENT=	Distributed, transactional key-value store
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	bash:shells/bash
+LIB_DEPENDS=	libboost_system.so:devel/boost-libs \
+		libeio.so:devel/libeio
+
+USES=		compiler:c++17-lang cmake mono:build python:build shebangfix ssl
+USE_GITHUB=	yes
+GH_ACCOUNT=	wolfspider
+GH_PROJECT=	foundationdb
+GH_TAGNAME=	bc56b13
+
+USE_RC_SUBR=	foundationdb
+
+SHEBANG_FILES=	build/csprojtom4.py build/link-wrapper.sh build/vcxprojtom4.py \
+		bindings/c/generate_asm.py
+
+USERS=		foundationdb
+GROUPS=		foundationdb
+DBDIR?=		/var/db/foundationdb
+LOGDIR?=	/var/log/foundationdb
+
+SUB_FDB=	DB_USER=${USERS} \
+		DB_GROUP=${GROUPS} \
+		DB_DIR=${DBDIR} \
+		LOG_DIR=${LOGDIR}
+SUB_FILES+=	foundationdb.conf
+SUB_LIST+=	${SUB_FDB}
+PLIST_SUB+=	${SUB_FDB}
+
+do-install:
+	# commands on first line, dev tools on next two
+.for f in fdbbackup fdbcli fdbmonitor fdbserver \
+	    actor_flamegraph fdb_c_performance_test fdb_c_ryw_benchmark \
+	    fdb_c_txn_size_test fdb_flow_tester mako
+	${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/${f} ${STAGEDIR}${PREFIX}/bin/
+.endfor
+	# confirm with upstream if these are actually needed
+.for s in backup_agent dr_agent fdbr fdbrestore
+	${RLN} ${STAGEDIR}${PREFIX}/bin/fdbbackup ${STAGEDIR}${PREFIX}/bin/${s}
+.endfor
+	# exposed libraries - confirm with upstream
+.for l in libfdb_c.so libfdb_flow.a libfdb_sqlite.a libfdbclient.a libfdbrpc.a libflow.a libthirdparty.a
+	${STRIP_CMD} ${WRKDIR}/.build/lib/${l}
+	${INSTALL_DATA} ${WRKDIR}/.build/lib/${l} ${STAGEDIR}/${PREFIX}/lib/
+.endfor
+	# exposed headers - confirm with upstream
+	${MKDIR} ${STAGEDIR}${PREFIX}/include/foundationdb
+	${INSTALL_DATA} ${WRKSRC}/bindings/c/foundationdb/fdb_c.h \
+	    ${STAGEDIR}/${PREFIX}/include/foundationdb/
+	${INSTALL_DATA} ${WRKSRC}/fdbclient/vexillographer/fdb.options \
+	    ${STAGEDIR}/${PREFIX}/include/foundationdb/
+	${INSTALL_DATA} ${WRKDIR}/.build/bindings/c/foundationdb/fdb_c_options.g.h \
+	    ${STAGEDIR}/${PREFIX}/include/foundationdb/
+	# runtime related
+	${MKDIR} ${STAGEDIR}${DBDIR} \
+	    ${STAGEDIR}${LOGDIR} \
+	    ${STAGEDIR}${PREFIX}/etc/foundationdb
+	${INSTALL_DATA} ${WRKDIR}/foundationdb.conf \
+	    ${STAGEDIR}${PREFIX}/etc/foundationdb/foundationdb.conf.sample
+
+.include <bsd.port.mk>

Added: head/databases/foundationdb-devel/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/foundationdb-devel/distinfo	Tue Jan 28 08:08:01 2020	(r524463)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1579515168
+SHA256 (wolfspider-foundationdb-7.0.0-bc56b13_GH0.tar.gz) = 70b380a3fa8d4eea94a03ef1874cdd39bd9c705d9a1c902bab758004557343b0
+SIZE (wolfspider-foundationdb-7.0.0-bc56b13_GH0.tar.gz) = 5049549

Added: head/databases/foundationdb-devel/files/foundationdb.conf.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/foundationdb-devel/files/foundationdb.conf.in	Tue Jan 28 08:08:01 2020	(r524463)
@@ -0,0 +1,47 @@
+## foundationdb.conf
+##
+## Configuration file for FoundationDB server processes
+## Full documentation is available at
+## https://apple.github.io/foundationdb/configuration.html#the-configuration-file
+
+[fdbmonitor]
+user = %%DB_USER%%
+group = %%DB_GROUP%%
+
+[general]
+restart_delay = 60
+## by default, restart_backoff = restart_delay_reset_interval = restart_delay
+# initial_restart_delay = 0
+# restart_backoff = 60
+# restart_delay_reset_interval = 60
+cluster_file = %%PREFIX%%/etc/foundationdb/fdb.cluster
+# delete_envvars =
+# kill_on_configuration_change = true
+
+## Default parameters for individual fdbserver processes
+[fdbserver]
+command = %%PREFIX%%/bin/fdbserver
+public_address = auto:$ID
+listen_address = public
+datadir = %%DB_DIR%%/data/$ID
+logdir = %%LOG_DIR%%
+# logsize = 10MiB
+# maxlogssize = 100MiB
+# machine_id =
+# datacenter_id =
+# class =
+# memory = 8GiB
+# storage_memory = 1GiB
+# cache_memory = 2GiB
+# metrics_cluster =
+# metrics_prefix =
+
+## An individual fdbserver process with id 4500
+## Parameters set here override defaults from the [fdbserver] section
+[fdbserver.4500]
+
+[backup_agent]
+command = %%PREFIX%%/bin/backup_agent
+logdir = %%LOG_DIR%%
+
+[backup_agent.1]

Added: head/databases/foundationdb-devel/files/foundationdb.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/foundationdb-devel/files/foundationdb.in	Tue Jan 28 08:08:01 2020	(r524463)
@@ -0,0 +1,33 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: foundationdb
+# REQUIRE: LOGIN
+# BEFORE:  securelevel
+# KEYWORD: shutdown
+
+# Add the following line to /etc/rc.conf to enable `foundationdb':
+#
+#foundationdb_enable="YES"
+#
+# Define config file here to run with different config file:
+#
+#foundationdb_config="xxxxx"
+#
+
+. /etc/rc.subr
+
+name="foundationdb"
+rcvar="${name}_enable"
+foundationdb_enable=${foundationdb_enable:-"NO"}
+command=%%PREFIX%%/bin/fdbmonitor
+pidfile="/var/run/fdbmonitor.pid"
+
+load_rc_config "$name"
+: ${foundationdb_enable="NO"}
+: ${foundationdb_config="%%PREFIX%%/etc/foundationdb/foundationdb.conf"}
+
+command_args="--conffile ${foundationdb_config} --lockfile ${pidfile} --daemonize"
+run_rc_command $1

Added: head/databases/foundationdb-devel/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/foundationdb-devel/pkg-descr	Tue Jan 28 08:08:01 2020	(r524463)
@@ -0,0 +1,16 @@
+A massively distributed, transactional key-value store, extensible by
+design, with unparalleled reliability and performance.
+
+FoundationDB is multi-model, meaning you can store many types of data in a
+single database. All data is safely stored, distributed, and replicated
+in the Key-Value Store component. It is easy to install, grow, and
+manage, with a distributed architecture that gracefully scales out, and
+handles faults while acting like a single ACID database. FoundationDB
+provides amazing performance on commodity hardware, allowing you to
+support very heavy loads at low cost. It has been running in production
+for years and been hardened with lessons learned in some of the world's
+largest database deployments. Backing FoundationDB up is an unmatched
+testing system based on a deterministic simulation engine that ensures
+optimal reliability of operations.
+
+WWW: https://www.foundationdb.org/

Added: head/databases/foundationdb-devel/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/foundationdb-devel/pkg-plist	Tue Jan 28 08:08:01 2020	(r524463)
@@ -0,0 +1,27 @@
+@dir(%%DB_USER%%,%%DB_GROUP%%,) %%DB_DIR%%
+@dir(%%DB_USER%%,%%DB_GROUP%%,) %%LOG_DIR%%
+@sample etc/foundationdb/foundationdb.conf.sample
+bin/actor_flamegraph
+bin/backup_agent
+bin/dr_agent
+bin/fdb_c_performance_test
+bin/fdb_c_ryw_benchmark
+bin/fdb_c_txn_size_test
+bin/fdb_flow_tester
+bin/fdbbackup
+bin/fdbcli
+bin/fdbmonitor
+bin/fdbr
+bin/fdbrestore
+bin/fdbserver
+bin/mako
+include/foundationdb/fdb.options
+include/foundationdb/fdb_c.h
+include/foundationdb/fdb_c_options.g.h
+lib/libfdb_c.so
+lib/libfdb_flow.a
+lib/libfdb_sqlite.a
+lib/libfdbclient.a
+lib/libfdbrpc.a
+lib/libflow.a
+lib/libthirdparty.a



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001280808.00S881hC039213>