This reverts commit e17e01d68caa6b28b897067ca5f82d2007269ac3.
commit 4c2decf87a2fd2008fc1ce228e620b596ce868a3
Author: Vlad Glagolev <stealth AT sourcemage.org>
Commit: Vlad Glagolev <stealth AT sourcemage.org>
hiredis: new spell, minimalist C client for Redis
diff --git a/ChangeLog b/ChangeLog
index 0e8c65c..d12c7bc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2023-10-14 Vlad Glagolev <stealth AT sourcemage.org>
+ * database/hiredis: new spell, minimalist C client for Redis
+ * http/varnish-libvmod-redis: new spell, VMOD to access Redis servers
+ from VCL
+
2023-10-13 Vlad Glagolev <stealth AT sourcemage.org>
* http/varnish-libvmod-vsthrottle: new spell, improved request
throttling module for Varnish
diff --git a/database/hiredis/BUILD b/database/hiredis/BUILD
new file mode 100755
index 0000000..8c67711
--- /dev/null
+++ b/database/hiredis/BUILD
@@ -0,0 +1 @@
+make V=1 OPTIMIZATION="$CFLAGS" $OPTS
diff --git a/database/hiredis/DEPENDS b/database/hiredis/DEPENDS
new file mode 100755
index 0000000..dfc5119
--- /dev/null
+++ b/database/hiredis/DEPENDS
@@ -0,0 +1,6 @@
+depends pkgconfig &&
+
+optional_depends SSL \
+ "USE_SSL=1" \
+ "USE_SSL=0" \
+ "for SSL/TLS support"
diff --git a/database/hiredis/DETAILS b/database/hiredis/DETAILS
new file mode 100755
index 0000000..79218f4
--- /dev/null
+++ b/database/hiredis/DETAILS
@@ -0,0 +1,29 @@
+ SPELL=hiredis
+ VERSION=1.2.0
+ SOURCE=${SPELL}-${VERSION}.tar.gz
+
SOURCE_URL[0]=https://github.com/redis/${SPELL}/archive/refs/tags/v${VERSION}.tar.gz
+
SOURCE_HASH=sha512:f8984abb29c09e7e6b56e656616c5155f36c53da4161a2d4c85688486411cadcdf20aa1adb9bda208c500b401c750871be1c8d58ba9df5328634d00e9d1b6589
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ LICENSE[0]=BSD
+ WEB_SITE=https://github.com/redis/hiredis
+ ENTERED=20231014
+ KEYWORDS="nosql database"
+ SHORT="minimalist C client for Redis"
+cat << EOF
+Hiredis is a minimalist C client library for the Redis database.
+
+It uses a high level printf-alike API in order to make it much higher level
+than otherwise suggested by its minimal code base and the lack of explicit
+bindings for every Redis command.
+
+Apart from supporting sending commands and receiving replies, it comes with a
+reply parser that is decoupled from the I/O layer. It is a stream parser
+designed for easy reusability, which can for instance be used in higher level
+language bindings for efficient reply parsing.
+
+Hiredis only supports the binary-safe Redis protocol, so you can use it with
+any Redis version >= 1.2.0.
+
+The library comes with multiple APIs. There is the synchronous API, the
+asynchronous API and the reply parsing API.
+EOF
diff --git a/database/hiredis/HISTORY b/database/hiredis/HISTORY
new file mode 100644
index 0000000..e0745bd
--- /dev/null
+++ b/database/hiredis/HISTORY
@@ -0,0 +1,2 @@
+2023-10-14 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS, DEPENDS, BUILD, INSTALL: created spell, version 1.2.0
diff --git a/database/hiredis/INSTALL b/database/hiredis/INSTALL
new file mode 100755
index 0000000..b93c86b
--- /dev/null
+++ b/database/hiredis/INSTALL
@@ -0,0 +1 @@
+make INSTALL_BIN="$INSTALL_ROOT/usr/bin" PREFIX="$INSTALL_ROOT/usr" $OPTS
install
diff --git a/http/varnish-libvmod-redis/DEPENDS
b/http/varnish-libvmod-redis/DEPENDS
new file mode 100755
index 0000000..7e4c51a
--- /dev/null
+++ b/http/varnish-libvmod-redis/DEPENDS
@@ -0,0 +1,10 @@
+depends varnish &&
+depends hiredis &&
+depends libev &&
+
+optional_depends SSL \
+ "--enable-tls" \
+ "--disable-tls" \
+ "for SSL/TLS support" &&
+
+optional_depends docutils "" "" "to generate manual page"
diff --git a/http/varnish-libvmod-redis/DETAILS
b/http/varnish-libvmod-redis/DETAILS
new file mode 100755
index 0000000..88ea626
--- /dev/null
+++ b/http/varnish-libvmod-redis/DETAILS
@@ -0,0 +1,34 @@
+ SPELL=varnish-libvmod-redis
+ SPELLX=${SPELL##varnish-}
+ VERSION=4.1-3.21
+ SOURCE="${SPELLX}-${VERSION}.tar.gz"
+
SOURCE_URL[0]=https://github.com/carlosabalde/${SPELLX}/archive/refs/tags/${VERSION}.tar.gz
+
SOURCE_HASH=sha512:bdef28a9929a25ee7fe8edd58b037dfe606fe50efa35601ff6a7349d0f54c2062482a3e936be1506e5754fe2865112b6fc1d503312758097cec0e9679df0f644
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELLX}-${VERSION}"
+ WEB_SITE=https://github.com/carlosabalde/libvmod-redis
+ LICENSE[0]=BSD
+ ENTERED=20231014
+ KEYWORDS=""
+ SHORT="VMOD to access Redis servers from VCL"
+cat << EOF
+VMOD using the synchronous hiredis library API to access Redis servers from
VCL.
+
+Highlights:
+ o Full support for execution of LUA scripts (i.e. EVAL command), including
+ optimistic automatic execution of EVALSHA commands.
+ o All Redis reply data types are supported, including partial support to
+ access to components of simple (i.e. not nested) array replies.
+ o Redis pipelines are not (and won't be) supported. LUA scripting, which is
+ fully supported by the VMOD, it's a much more flexible alternative to
+ pipelines for atomic execution and minimizing latency. Pipelines are hard
to
+ use and error prone, specially when using the WATCH command.
+ o Support for classic Redis deployments using multiple replicated Redis
+ servers and for clustered deployments based on Redis Cluster.
+ o Support for multiple databases and multiple Redis connections, local to
each
+ Varnish worker thread, or shared using one or more pools.
+ o Support for smart command execution, selecting the destination server
+ according with the preferred role (i.e. master or slave) and with distance
+ and healthiness metrics collected during execution.
+ o Support for Redis Sentinel, allowing automatic discovery of sick / healthy
+ servers and changes in their roles.
+EOF
diff --git a/http/varnish-libvmod-redis/HISTORY
b/http/varnish-libvmod-redis/HISTORY
new file mode 100644
index 0000000..b61cb7a
--- /dev/null
+++ b/http/varnish-libvmod-redis/HISTORY
@@ -0,0 +1,2 @@
+2023-10-14 Vlad Glagolev <stealth AT sourcemage.org>
+ * PRE_BUILD, DEPENDS, DETAILS: created spell, version 4.1-3.21
diff --git a/http/varnish-libvmod-redis/PRE_BUILD
b/http/varnish-libvmod-redis/PRE_BUILD
new file mode 100755
index 0000000..275e6f1
--- /dev/null
+++ b/http/varnish-libvmod-redis/PRE_BUILD
@@ -0,0 +1,4 @@
+default_pre_build &&
+cd "${SOURCE_DIRECTORY}" &&
+
+./autogen.sh
diff --git a/mail/exim/BUILD b/mail/exim/BUILD
index dabc1c3..3a58c4f 100755
--- a/mail/exim/BUILD
+++ b/mail/exim/BUILD
@@ -56,6 +56,11 @@ if list_find "$OPTS" '--enable-sqlite-lookup'; then
LOOKUP_LIBS="$LOOKUP_LIBS -lsqlite3"
fi &&