diff --git a/devel/etcd35/Makefile b/devel/etcd35/Makefile new file mode 100644 --- /dev/null +++ b/devel/etcd35/Makefile @@ -0,0 +1,68 @@ +PORTNAME= etcd +DISTVERSIONPREFIX= v +DISTVERSION= 3.5.21 +CATEGORIES= devel +MASTER_SITES= https://raw.githubusercontent.com/etcd-io/${PORTNAME}/${DISTVERSIONFULL}/:gomod +PKGNAMEPREFIX= coreos- +PKGNAMESUFFIX= 35 +DISTFILES= go.mod:gomod \ + api/go.mod:gomod \ + pkg/go.mod:gomod \ + client/pkg/go.mod:gomod \ + client/v2/go.mod:gomod \ + client/v3/go.mod:gomod \ + etcdctl/go.mod:gomod \ + etcdutl/go.mod:gomod \ + raft/go.mod:gomod \ + server/go.mod:gomod \ + tests/go.mod:gomod + +MAINTAINER= kiwi@FreeBSD.org +COMMENT= Highly-available key value store and service discovery +WWW= https://github.com/coreos/etcd + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= cpe go:1.23,modules +USE_GITHUB= yes +GH_ACCOUNT= etcd-io +GO_MODULE= go.etcd.io/etcd/v3 +GO_MOD_DIST= github +GO_TARGET= ./etcdctl ./etcdutl ./server + +CONFLICTS_INSTALL= coreos-etcd[0-9][0-9] + +PLIST_FILES= bin/etcd \ + bin/etcdctl \ + bin/etcdutl + +# This target is based on the post-extract target from Uses/go.mk +post-extract: +.for gt in ${GO_TARGET:T} + @${ECHO_MSG} "===> Tidying ${GO_MODNAME} dependencies"; + @(cd ${GO_WRKSRC}/${gt}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=${GO_MODCACHE} ${GO_CMD} mod tidy -e) + @${ECHO_MSG} "===> Vendoring ${GO_MODNAME} dependencies"; + @(cd ${GO_WRKSRC}/${gt}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=${GO_MODCACHE} ${GO_CMD} mod vendor -e) +.endfor + +# This target is based on the do-build target from Uses/go.mk. +do-build: +.for gt in ${GO_TARGET:T} + (cd ${GO_WRKSRC}/${gt}; \ + for t in ${gt}; do \ + out=$$(${BASENAME} $$(${ECHO_CMD} $${t} | \ + ${SED} -Ee 's/^[^:]*:([^:]+).*$$/\1/' -e 's/^\.$$/${PORTNAME}/')); \ + pkg=$$(${ECHO_CMD} $${t} | \ + ${SED} -Ee 's/^([^:]*).*$$/\1/' -e 's/^${PORTNAME}$$/./'); \ + ${ECHO_MSG} "===> Building $${out} from $${pkg}"; \ + ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${GO_ENV} GOMAXPROCS=${MAKE_JOBS_NUMBER} GOPROXY=off ${GO_CMD} build ${GO_BUILDFLAGS} \ + -o ${GO_WRKDIR_BIN}/$${out} \ + .; \ + done) +.endfor + +post-install: + ${MV} ${STAGEDIR}${PREFIX}/bin/server ${STAGEDIR}${PREFIX}/bin/etcd + +.include diff --git a/devel/etcd35/distinfo b/devel/etcd35/distinfo new file mode 100644 --- /dev/null +++ b/devel/etcd35/distinfo @@ -0,0 +1,25 @@ +TIMESTAMP = 1746210825 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/go.mod) = 49bb45ae5a3ba5c6bc24c92734bd3a4298b6cd9e4cc0bfac976c0bcdd2efcfa2 +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/go.mod) = 4196 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/api/go.mod) = de19beffd2aeb61c6025339859195286befa8f2284ec915be82a5ff56f655e26 +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/api/go.mod) = 1072 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/pkg/go.mod) = 70454afe2c7c63195470c8c970dea95bd9677e1e33bcb8426d4ea76bc0522928 +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/pkg/go.mod) = 1173 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/client/pkg/go.mod) = f98d36cfad740f8cdc6842de31a9267b731b26846ab495b3fbe2cfd69f29aa03 +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/client/pkg/go.mod) = 437 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/client/v2/go.mod) = 56b9256ae4b934d59e91cf7cbb7414422c1e6590919454afdad320d979caac10 +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/client/v2/go.mod) = 763 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/client/v3/go.mod) = 49c2c838963786507c98634b200235f7632edee57e4de48672c8f63867003bb3 +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/client/v3/go.mod) = 1818 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/etcdctl/go.mod) = 720d9323de6d81fe582271c2a6d1302ec554404790c44eca5275247ad52427b0 +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/etcdctl/go.mod) = 3489 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/etcdutl/go.mod) = 4780489b45bd1ca9f7e293bdc2059c2ee2b3888d5fa9fa5019f3d2750117d187 +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/etcdutl/go.mod) = 3152 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/raft/go.mod) = 851637a68394671dd0bdf027acae8f5bd6e72cc693c01f680542b9dee09cec4d +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/raft/go.mod) = 645 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/server/go.mod) = 5a1c635f8b7a125609c330f1c621e3a1f458ba2d9359a518fd87839cb33669a8 +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/server/go.mod) = 3783 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/tests/go.mod) = db8c5104c032364d5e32e32d04360a0340292476d45946533ce3663f23e1e2da +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/tests/go.mod) = 3941 +SHA256 (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/etcd-io-etcd-v3.5.21_GH0.tar.gz) = 76d7fcafe4fcc957fcd45671226b992c16e5f5e724935dea9df0190ac2b13481 +SIZE (go/devel_etcd35/etcd-io-etcd-v3.5.21_GH0/etcd-io-etcd-v3.5.21_GH0.tar.gz) = 4132943 diff --git a/devel/etcd35/pkg-descr b/devel/etcd35/pkg-descr new file mode 100644 --- /dev/null +++ b/devel/etcd35/pkg-descr @@ -0,0 +1,11 @@ +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.