Bug 182419 - New port: devel/etcd A highly-available key value store and service discovery
Summary: New port: devel/etcd A highly-available key value store and service discovery
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Bryan Drewery
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-09-26 19:20 UTC by Bartek Rutkowski
Modified: 2013-10-04 12:10 UTC (History)
0 users

See Also:


Attachments
file.shar (3.11 KB, text/plain)
2013-09-26 19:20 UTC, Bartek Rutkowski
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bartek Rutkowski freebsd_committer 2013-09-26 19:20:00 UTC
This is a new port of etcd, software coming from CoreOS that is aiming at replacing ZooKeeper due to being fresh, faster, lightweight, well documented and quickly developing project.

Fix: Commit the port to Ports tree.

Patch attached with submission follows:
How-To-Repeat: Simply cd to /usr/ports/devel/etcd and test by entire combination of make install/deinstall/package/pkg_add/pkg_delete test suite.
Comment 1 Bryan Drewery freebsd_committer 2013-09-26 19:41:06 UTC
Responsible Changed
From-To: freebsd-ports-bugs->bdrewery

I'll take it.
Comment 2 Bryan Drewery freebsd_committer 2013-10-04 02:34:31 UTC
Please see: http://people.freebsd.org/~bdrewery/add-etcd.txt

I've made these changes:

1. It's better to dynamically replace the hardcoded version with
   $DISTVERSION so the patch doesn't need to change on every update
   (and it likely would be forgotten eventually)
2. ${WRKDIR}/${GH_ACCOUNT}-${PORTNAME}-${GH_COMMIT} is just
   ${WRKSRC}
3. Should support staging now on all new ports. riak was special as it
   fails to build with staging for some reason.
4. Really no need for bsd.port.pre.mk here
5. Don't hide install commands with @
6. Remove 'A' from COMMENT as convention/PH mandates not having 'A' or
   'An' here.
7. Add README.md into PORTDOCS and define OPTIONS_DEFINE=DOCS so the
   README.md can be excluded if DOCS are not set
8. Best to avoid a files/ patch if a line in post-patch can suffice as
   the ports tree is very large and every new file adds new burdens to
   user's checkouts/inode usage. Changed /bin/sh change for this. Note
   that latest upstream already changed to /bin/sh, but have not
   tagged a release with that yet.


A new rule has gone into place that all ports must have a unique
PKGNAME. This is 'etcd', but there is also an audio/etcd with 'etcd'
already. I am discussing on how to handle this still and will get back
to you.

-- 
Regards,
Bryan Drewery
Comment 3 dfilter service freebsd_committer 2013-10-04 12:09:46 UTC
Author: bdrewery
Date: Fri Oct  4 11:09:38 2013
New Revision: 329287
URL: http://svnweb.freebsd.org/changeset/ports/329287

Log:
  A highly-available key value store for shared
  configuration and service discovery. etcd is
  inspired by zookeeper and doozer, with a focus on:
  
  * Simple: curl'able user facing API (HTTP+JSON)
  * Secure: optional SSL client cert authentication
  * Fast: benchmarked 1000s of writes/s per instance
  * Reliable: Properly distributed using Raft
  
  Etcd is written in Go and uses the raft consensus
  algorithm to manage a highly-available replicated log.
  
  WWW: https://github.com/coreos/etcd#etcd
  
  Use PKGNAMEPREFIX=coreos to avoid PKGNAME conflict with audio/etcd
  
  PR:		ports/182419
  Submitted by:	Bartek Rutkowski <ports@robakdesign.com>

Added:
  head/devel/etcd/
  head/devel/etcd/Makefile   (contents, props changed)
  head/devel/etcd/distinfo   (contents, props changed)
  head/devel/etcd/pkg-descr   (contents, props changed)
Modified:
  head/devel/Makefile

Modified: head/devel/Makefile
==============================================================================
--- head/devel/Makefile	Fri Oct  4 10:40:52 2013	(r329286)
+++ head/devel/Makefile	Fri Oct  4 11:09:38 2013	(r329287)
@@ -410,6 +410,7 @@
     SUBDIR += eric4
     SUBDIR += eris
     SUBDIR += esdl
+    SUBDIR += etcd
     SUBDIR += etl
     SUBDIR += eventxx
     SUBDIR += evolution-gconf-tools

Added: head/devel/etcd/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/etcd/Makefile	Fri Oct  4 11:09:38 2013	(r329287)
@@ -0,0 +1,39 @@
+# $FreeBSD$
+
+PORTNAME=	etcd
+PORTVERSION=	0.1.1
+CATEGORIES=	devel
+PKGNAMEPREFIX=	coreos
+
+MAINTAINER=	ports@robakdesign.com
+COMMENT=	Highly-available key value store and service discovery
+
+BUILD_DEPENDS=	${LOCALBASE}/bin/go:${PORTSDIR}/lang/go
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	coreos
+GH_TAGNAME=	v${PORTVERSION}
+GH_COMMIT=	7b28904
+
+PLIST_FILES+=	bin/${PORTNAME}
+
+PORTDOCS=	README.md
+
+NO_BUILD=	yes
+
+OPTIONS_DEFINE=	DOCS
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|$$VER|${DISTVERSION}|' ${WRKSRC}/scripts/release-version
+	@${REINPLACE_CMD} -e '/VER=/d' ${WRKSRC}/scripts/release-version
+	@${REINPLACE_CMD} -e 's|#!/bin/bash|#!/bin/sh|' ${WRKSRC}/build
+
+pre-install:
+	@(cd ${WRKSRC}; ${SH} build)
+
+do-install:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}
+	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/
+
+.include <bsd.port.mk>

Added: head/devel/etcd/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/etcd/distinfo	Fri Oct  4 11:09:38 2013	(r329287)
@@ -0,0 +1,2 @@
+SHA256 (etcd-0.1.1.tar.gz) = 337f173b165360889586a7388f5874bf0b16746992f3cd43ed162f39cd30e9ff
+SIZE (etcd-0.1.1.tar.gz) = 601641

Added: head/devel/etcd/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/etcd/pkg-descr	Fri Oct  4 11:09:38 2013	(r329287)
@@ -0,0 +1,13 @@
+A highly-available key value store for shared
+configuration and service discovery. etcd is
+inspired by zookeeper and doozer, with a focus on:
+
+* Simple: curl'able user facing API (HTTP+JSON)
+* Secure: optional SSL client cert authentication
+* Fast: benchmarked 1000s of writes/s per instance
+* Reliable: Properly distributed using Raft
+
+Etcd is written in Go and uses the raft consensus
+algorithm to manage a highly-available replicated log.
+
+WWW: https://github.com/coreos/etcd#etcd
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 4 Bryan Drewery freebsd_committer 2013-10-04 12:09:47 UTC
State Changed
From-To: open->closed

New port added, with minor changes. Thanks!