blob: 83e240742b9117fb60a4c3923438d249524260ba (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
PORTNAME= redis
DISTVERSION= 7.0.9.20230228
CATEGORIES= databases
PKGNAMESUFFIX= -devel
MAINTAINER= yasu@FreeBSD.org
COMMENT= Persistent key-value database with built-in net interface
WWW= https://redis.io/
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/COPYING
USES+= compiler:c11 cpe gmake
CPE_VENDOR= redislabs
USE_GITHUB= yes
GH_TAGNAME= 9d336ac39
MAKE_ENV= OPTIMIZATION= \
V=yo
CONFLICTS_INSTALL= redis redis6 redis62 # etc/rc.d/redis
PORTSCOUT= ignore:1
OPTIONS_DEFINE= JEMALLOC TESTS TLS TRIB
OPTIONS_DEFAULT= TLS
OPTIONS_RADIO= EXTLUA
OPTIONS_RADIO_EXTLUA= LUA LUAJIT
OPTIONS_SUB= yes
JEMALLOC_DESC= Use jemalloc
LUAJIT_DESC= Use luajit instead of builtin lua
LUA_DESC= Use lang/lua instead of builtin lua
TESTS_DESC= Install lang/tcl for redis unit tests
TLS_DESC= Use TLS (openssl req.)
TRIB_DESC= Install redis-trib.rb (lang/ruby req.)
JEMALLOC_MAKE_ENV= USE_JEMALLOC=yes
LUAJIT_BROKEN= Fails to link
LUAJIT_USES= luajit
LUAJIT_VARS= _ADDFLAGS=true
LUA_BROKEN= Fails to link
LUA_USES= lua:51
LUA_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-src-Makefile.lua
LUA_VARS= _ADDFLAGS=true
TESTS_USES= tcl:build
TLS_USES= ssl
TLS_MAKE_ENV= BUILD_TLS=yes
TRIB_CATEGORIES= ruby
TRIB_RUN_DEPENDS= rubygem-redis>=2.2:databases/rubygem-redis
TRIB_USES= ruby
.include <bsd.port.pre.mk>
.if ${ARCH} == i386 && !${CFLAGS:M-march=*}
# Needed for __atomic_fetch_add_8
USE_GCC= yes
CFLAGS+= -march=i586
.endif
.if defined(_ADDFLAGS)
CFLAGS+= -fPIC
LDFLAGS+= -Wl,-E
.endif
.if ${PORT_OPTIONS:MLUAJIT}
. if ${LUAJIT_VER} == luajit
EXTRA_PATCHES= ${PATCHDIR}/extra-patch-src-Makefile.luajit
. else
EXTRA_PATCHES= ${PATCHDIR}/extra-patch-src-Makefile.luajit-or \
${PATCHDIR}/extra-patch-src-function_lua.c \
${PATCHDIR}/extra-patch-deps_lua_src_lua__cjson.c
. endif
.endif
LDFLAGS+= -lpthread -lm -lexecinfo
CONFLICTS?= redis-[1-9].* redis6-* redis62-*
USE_RC_SUBR= redis sentinel
BIN_FILES= redis-benchmark redis-check-aof redis-check-rdb redis-cli \
redis-sentinel redis-server
USERS= redis
GROUPS= redis
REDIS_DBDIR?= /var/db/redis
REDIS_RUNDIR?= /var/run/redis
REDIS_LOGDIR?= /var/log/redis
SUB_FILES= pkg-message
SUB_LIST+= PORTNAME=${PORTNAME} \
REDIS_DBDIR=${REDIS_DBDIR} \
REDIS_LOGDIR=${REDIS_LOGDIR} \
REDIS_RUNDIR=${REDIS_RUNDIR} \
REDIS_USER=${USERS}
PLIST_SUB+= REDIS_DBDIR=${REDIS_DBDIR} \
REDIS_GROUP=${GROUPS} \
REDIS_LOGDIR=${REDIS_LOGDIR} \
REDIS_RUNDIR=${REDIS_RUNDIR} \
REDIS_USER=${USERS}
post-patch:
${REINPLACE_CMD} '77s!malloc.h!stdlib.h!' ${WRKSRC}/src/zmalloc.h
post-patch-JEMALLOC-on:
@${REINPLACE_CMD} '35s!Linux!FreeBSD!g' ${WRKSRC}/src/Makefile
post-patch-LUA-on:
@cd ${WRKSRC}/deps/lua/src && ${CP} fpconv.* lua_* strbuf.* ${WRKSRC}/src/
post-patch-LUAJIT-on: post-patch-LUA-on
post-patch-LUAJITOR-on: post-patch-LUA-on
post-build:
${SED} ${SUB_LIST:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
${WRKSRC}/redis.conf > ${WRKDIR}/redis.conf
do-install:
${INSTALL_PROGRAM} ${BIN_FILES:C!^!${WRKSRC}/src/!} ${STAGEDIR}${PREFIX}/bin/
${INSTALL_DATA} ${WRKDIR}/redis.conf ${STAGEDIR}${PREFIX}/etc/redis.conf.sample
${INSTALL_DATA} ${WRKSRC}/sentinel.conf ${STAGEDIR}${PREFIX}/etc/sentinel.conf.sample
${MKDIR} ${STAGEDIR}${REDIS_LOGDIR} \
${STAGEDIR}${REDIS_DBDIR} \
${STAGEDIR}${REDIS_RUNDIR}
do-install-TRIB-on:
${INSTALL_SCRIPT} ${WRKSRC}/src/redis-trib.rb ${STAGEDIR}${PREFIX}/bin/
do-test:
@cd ${WRKSRC} && ${TCLSH} tests/test_helper.tcl
.include <bsd.port.post.mk>
|