mail-filter/rmilter: version bump to 1.8.4, add memcached USE flag (fixes bug 581574)

Package-Manager: portage-2.2.28
This commit is contained in:
Dirkjan Ochtman
2016-05-14 18:15:34 +02:00
parent a4ccdbb871
commit b7ed97a4ff
4 changed files with 225 additions and 0 deletions

View File

@@ -2,3 +2,4 @@ DIST rmilter-1.7.2.tar.gz 159934 SHA256 3033c190667276f1d716784cb6b485971a3249ab
DIST rmilter-1.7.3.tar.gz 160323 SHA256 515e0f69af9f702cc36fd565e30c9f715bff819df250679d0a24e4f07ba5f081 SHA512 4e65dbcccd7f378eb1dd93ffca1983614df19edf62b531483a59c636eb4564dbb531da2ecce3ea789c038913c8623e78db8636eff64f574eb5abc709cf8fc0e1 WHIRLPOOL 6ae75ec8190f58893b3c33e66cf07dee5ac9326056c3da23005d4c2dcad5a8760c1db08701226ece96b6e3bb12f15337ff686d2eafc6e6323abc299d289de456
DIST rmilter-1.7.4.tar.gz 162081 SHA256 ad32c2efe23c8b49f6b52a5b78b80943b93082d30c799e3de05f9df1c02b83fb SHA512 189f792664e30a0d60c618b902c393a4af570bea38810001aa759acae27fbb625389576eb3923678fddaca806b946e99e0444738b24aa3124e988bbc2ab1552b WHIRLPOOL 10e549b9d3461252c6213a35145a2f158d67613733bf89b9c939d3eac7b77080b6886a3386e9a6358f31ad6ffe4e0c35ed9cfc025294392aeff5f4b9e15d987c
DIST rmilter-1.7.5.tar.gz 162698 SHA256 34cf0b6c38dac9b11d6aacd0d093fdf3544d76543cd1aad2b1342e1024768e27 SHA512 4cf76e330e55e5f8542c7a27d18cd593ad2b2f1c0bd45bf3787bce7b1cbfe77752bcff7b6558b89105d034a7f2e31f7805fe2b4bf5b1bb408b18c10646ad0aa8 WHIRLPOOL 61bad9244f9e45be35fe0cc6d3199d431066fdaeb61065077e069e320d71f80696db1d62f6ca7a9acb45cef4c4ddeda9719bf206a124c9c7f4f01e32839ae0d0
DIST rmilter-1.8.4.tar.gz 261800 SHA256 af7ad32d3fa8f41ec135a43468b98cc1c46128b30fe58700e9434fcdc3ce3f6a SHA512 7c1f9afc1cd489ff052ead5e1876fe334252766213cf8c30a394be7aa7b308896a9fb0b57391b37c5727f76707403d432c5fc1f56b78c996432c7524e4049803 WHIRLPOOL 296b8d7fd5db60b6b7b642907e5dc108019c6f61ed585769f81e68b51d11844e16ecacaab5d70416bcae45799df6c5fbd7f5495d58053c66bd237cb935f583b0

View File

@@ -0,0 +1,176 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e12aad4..910ba55 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,6 +39,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)
OPTION(ENABLE_DEBUG "Enable debug output [default: OFF]" OFF)
OPTION(ENABLE_OPTIMIZATION "Enable optimization [default: OFF]" OFF)
OPTION(ENABLE_DKIM "Enable dkim signatures [default: ON]" ON)
+OPTION(ENABLE_MEMCACHED "Enable memcached storage [default: ON]" ON)
OPTION(WANT_SYSTEMD_UNITS "Install systemd unit files on Linux [default: OFF]" OFF)
############################# INCLUDE SECTION #############################################
@@ -121,8 +122,8 @@ MACRO(ProcessPackage PKG_NAME)
PATH_SUFFIXES ${PKG_LIB_SUFFIXES} lib64 lib
PATHS ${RMILTER_DEFAULT_LIBRARY_PATHS})
IF(NOT _lib)
- IF(OPTIONAL)
- MESSAGE("Cannot find library ${PKG_LIBRARY} for package ${PKG_NAME}")
+ IF(PKG_OPTIONAL)
+ MESSAGE(STATUS "Cannot find library ${PKG_LIBRARY} for package ${PKG_NAME}")
ELSE()
MESSAGE(FATAL_ERROR "Cannot find library ${PKG_LIBRARY} for package ${PKG_NAME}")
ENDIF()
@@ -133,8 +134,8 @@ MACRO(ProcessPackage PKG_NAME)
PATH_SUFFIXES ${PKG_INCLUDE_SUFFIXES} "include"
PATHS ${RMILTER_DEFAULT_INCLUDE_PATHS})
IF(NOT _incl)
- IF(OPTIONAL)
- MESSAGE("Cannot find header ${PKG_INCLUDE} for package ${PKG_NAME}")
+ IF(PKG_OPTIONAL)
+ MESSAGE(STATUS "Cannot find header ${PKG_INCLUDE} for package ${PKG_NAME}")
ELSE()
MESSAGE(FATAL_ERROR "Cannot find header ${PKG_INCLUDE} for package ${PKG_NAME}")
ENDIF()
@@ -362,8 +363,6 @@ ProcessPackage(PCRE LIBRARY pcre INCLUDE pcre.h INCLUDE_SUFFIXES include/pcre
ROOT ${PCRE_ROOT_DIR} MODULES pcre libpcre pcre3 libpcre3)
ProcessPackage(LIBMILTER LIBRARY milter INCLUDE mfapi.h INCLUDE_SUFFIXES include/libmilter
LIB_SUFFIXES lib/libmilter ROOT ${LIBMILTER_ROOT_DIR} MODULES libmilter)
-ProcessPackage(LIBMEMCACHED LIBRARY memcached INCLUDE memcached.h INCLUDE_SUFFIXES include/libmemcached
- LIB_SUFFIXES lib/libmemcached ROOT ${LIBMEMCACHED_ROOT_DIR} MODULES libmemcached)
IF(ENABLE_DKIM MATCHES "ON")
SET(WITH_DKIM 1)
@@ -373,6 +372,14 @@ IF(ENABLE_DKIM MATCHES "ON")
ROOT ${OPENDKIM_ROOT_DIR} MODULES opendkim)
ENDIF()
+IF(ENABLE_MEMCACHED MATCHES "ON")
+ SET(WITH_MEMCACHED 1)
+ ProcessPackage(LIBMEMCACHED LIBRARY memcached
+ INCLUDE memcached.h INCLUDE_SUFFIXES include/libmemcached
+ LIB_SUFFIXES lib/libmemcached ROOT ${LIBMEMCACHED_ROOT_DIR}
+ MODULES libmemcached)
+ENDIF()
+
################################ SOURCES SECTION ###########################
ADD_SUBDIRECTORY(hiredis)
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/hiredis")
diff --git a/config.h.in b/config.h.in
index b90d422..0ab2725 100644
--- a/config.h.in
+++ b/config.h.in
@@ -159,6 +159,8 @@
#cmakedefine WITH_SPF 1
+#cmakedefine WITH_MEMCACHED 1
+
#cmakedefine HAVE_SENDFILE 1
#cmakedefine HAVE_SYS_SENDFILE_H 1
diff --git a/src/cache.c b/src/cache.c
index d83b6e3..c84cafc 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -23,7 +23,9 @@
*/
#include "config.h"
+#ifdef WITH_MEMCACHED
#include "libmemcached/memcached.h"
+#endif
#include "cfg_file.h"
#include "cache.h"
#include "hiredis.h"
@@ -33,6 +35,7 @@
#define DEFAULT_REDIS_PORT 6379
+#ifdef WITH_MEMCACHED
static inline bool compat_memcached_success(int rc)
{
return (rc == MEMCACHED_BUFFERED ||
@@ -60,6 +63,7 @@ static inline bool compat_memcached_fatal(int rc)
rc != MEMCACHED_SUCCESS &&
rc != MEMCACHED_VALUE);
}
+#endif
static struct cache_server *
rmilter_get_server (struct config_file *cfg, enum rmilter_query_type type,
@@ -110,6 +114,7 @@ rmilter_get_server (struct config_file *cfg, enum rmilter_query_type type,
return serv;
}
+#ifdef WITH_MEMCACHED
static void
rmilter_format_libmemcached_config (struct config_file *cfg,
struct cache_server *serv,
@@ -128,6 +133,7 @@ rmilter_format_libmemcached_config (struct config_file *cfg,
memcached_behavior_set (ctx, MEMCACHED_BEHAVIOR_POLL_TIMEOUT,
cfg->memcached_connect_timeout);
}
+#endif
bool
rmilter_query_cache (struct config_file *cfg, enum rmilter_query_type type,
@@ -211,6 +217,7 @@ rmilter_query_cache (struct config_file *cfg, enum rmilter_query_type type,
}
}
else {
+#ifdef WITH_MEMCACHED
char *kval;
size_t value_len = 0;
uint32_t mflags;
@@ -254,6 +261,10 @@ rmilter_query_cache (struct config_file *cfg, enum rmilter_query_type type,
}
memcached_free (mctx);
+#else
+ msg_err ("memcached query requested when memcached support is"
+ " not compiled");
+#endif
}
}
@@ -340,6 +351,7 @@ rmilter_set_cache (struct config_file *cfg, enum rmilter_query_type type ,
}
}
else {
+#ifdef WITH_MEMCACHED
char *kval;
size_t value_len = 0;
uint32_t mflags;
@@ -373,6 +385,10 @@ rmilter_set_cache (struct config_file *cfg, enum rmilter_query_type type ,
}
memcached_free (mctx);
+#else
+ msg_err ("memcached query requested when memcached support is"
+ " not compiled");
+#endif
}
}
@@ -448,6 +464,7 @@ rmilter_delete_cache (struct config_file *cfg, enum rmilter_query_type type ,
}
}
else {
+#ifdef WITH_MEMCACHED
char *kval;
size_t value_len = 0;
uint32_t mflags;
@@ -480,7 +497,12 @@ rmilter_delete_cache (struct config_file *cfg, enum rmilter_query_type type ,
upstream_ok (&serv->up, time (NULL));
memcached_free (mctx);
+#else
+ msg_err ("memcached query requested when memcached support is"
+ " not compiled");
+#endif
}
+
}
return true;

View File

@@ -5,6 +5,9 @@
<email>djc@gentoo.org</email>
<name>Dirkjan Ochtman</name>
</maintainer>
<use>
<flag name="memcached">Enable support for memcached</flag>
</use>
<upstream>
<remote-id type="github">vstakhov/rmilter</remote-id>
</upstream>

View File

@@ -0,0 +1,45 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit cmake-utils user
DESCRIPTION="Another sendmail milter for different mail checks"
SRC_URI="https://github.com/vstakhov/rmilter/archive/${PV}.tar.gz -> ${P}.tar.gz"
HOMEPAGE="https://github.com/vstakhov/rmilter"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+memcached"
RDEPEND="dev-libs/libpcre
dev-libs/openssl:0
mail-filter/libmilter
mail-filter/opendkim
memcached? ( dev-libs/libmemcached )"
DEPEND="${RDEPEND}"
PATCHES=( "${FILESDIR}/${PV}-optional-memcached.patch" )
pkg_setup() {
enewgroup rmilter
enewuser rmilter -1 -1 /var/run/rmilter rmilter
}
src_configure() {
local mycmakeargs=(
-DENABLE_MEMCACHED=$(usex memcached ON OFF)
)
cmake-utils_src_configure
}
src_install() {
cmake-utils_src_install
newinitd "${FILESDIR}/rmilter.initd" rmilter
insinto /etc/rmilter
newins rmilter.conf.sample rmilter.conf.sample
newins rmilter-grey.conf rmilter-grey.conf
}