Date: Mon, 24 Feb 2020 15:32:55 +0000 (UTC) From: Dima Panov <fluffy@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r526974 - in head/mail/exim: . files Message-ID: <202002241532.01OFWtYu092332@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: fluffy Date: Mon Feb 24 15:32:55 2020 New Revision: 526974 URL: https://svnweb.freebsd.org/changeset/ports/526974 Log: mail/exim: unbreak with AUTH_RADIUS - bump PORTREVISION for radius users only - allow to build with net/freeradius-client instead of abandonware net/radiusclient-ng - Do not invoke printf-like function without parameter in call_radius.c With exim 4.93, string_sprintf() requires at least two arguments - take maintainership, discussed with vsevolod@ via private mail PR: 244287, 244299 Reported by: pi, Victor Sudakov Approved by: maintainer Added: head/mail/exim/files/patch-src-auths-call_radius.c (contents, props changed) Modified: head/mail/exim/Makefile Modified: head/mail/exim/Makefile ============================================================================== --- head/mail/exim/Makefile Mon Feb 24 15:12:22 2020 (r526973) +++ head/mail/exim/Makefile Mon Feb 24 15:32:55 2020 (r526974) @@ -12,7 +12,7 @@ DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:exim DIST_SUBDIR= exim EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} -MAINTAINER= vsevolod@FreeBSD.org +MAINTAINER= fluffy@FreeBSD.org COMMENT?= High performance MTA for Unix systems on the Internet LICENSE= GPLv2 @@ -381,15 +381,16 @@ SEDLIST+= -e 's,^\# (AUTH_CYRUS_SASL=),\1,' \ .endif .if ${PORT_OPTIONS:MAUTH_RADIUS} +PORTREVISION?= 1 WITH_RADIUS_TYPE?= RADLIB .if ${WITH_RADIUS_TYPE:tl} == radlib SEDLIST+= -e 's,XX_RADIUS_LIBS_XX,-lradius,' \ -e 's,^\# (RADIUS_CONFIG_FILE=).*,\1/etc/radius.conf,' \ -e 's,^\# (RADIUS_LIB_TYPE=).*,\1RADLIB,' .elif ${WITH_RADIUS_TYPE:tl} == radiusclient -LIB_DEPENDS+= libradiusclient-ng.so:net/radiusclient -SEDLIST+= -e 's,XX_RADIUS_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib -lradiusclient-ng,' \ - -e 's,^\# (RADIUS_CONFIG_FILE=).*,\1${LOCALBASE:S/,/\\,/g}/etc/radiusclient-ng/radiusclient.conf,' \ +LIB_DEPENDS+= libfreeradius-client.so:net/freeradius-client +SEDLIST+= -e 's,XX_RADIUS_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib -lfreeradius-client,' \ + -e 's,^\# (RADIUS_CONFIG_FILE=).*,\1${LOCALBASE:S/,/\\,/g}/etc/radiusclient/radiusclient.conf,' \ -e 's,^\# (RADIUS_LIB_TYPE=).*,\1RADIUSCLIENTNEW,' .else IGNORE= the variable WITH_RADIUS_TYPE must be either RADLIB or RADIUSCLIENT Added: head/mail/exim/files/patch-src-auths-call_radius.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/mail/exim/files/patch-src-auths-call_radius.c Mon Feb 24 15:32:55 2020 (r526974) @@ -0,0 +1,92 @@ +--- src/auths/call_radius.c.orig 2019-12-08 12:53:48 UTC ++++ src/auths/call_radius.c +@@ -112,37 +112,37 @@ rc_openlog("exim"); + + #ifdef RADIUS_LIB_RADIUSCLIENT + if (rc_read_config(RADIUS_CONFIG_FILE) != 0) +- *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE); ++ *errptr = string_sprintf("%s", "RADIUS: can't open %s", RADIUS_CONFIG_FILE); + + else if (rc_read_dictionary(rc_conf_str("dictionary")) != 0) +- *errptr = string_sprintf("RADIUS: can't read dictionary"); ++ *errptr = string_sprintf("%s", "RADIUS: can't read dictionary"); + + else if (rc_avpair_add(&send, PW_USER_NAME, user, 0) == NULL) +- *errptr = string_sprintf("RADIUS: add user name failed\n"); ++ *errptr = string_sprintf("%s", "RADIUS: add user name failed\n"); + + else if (rc_avpair_add(&send, PW_USER_PASSWORD, CS radius_args, 0) == NULL) +- *errptr = string_sprintf("RADIUS: add password failed\n"); ++ *errptr = string_sprintf("%s", "RADIUS: add password failed\n"); + + else if (rc_avpair_add(&send, PW_SERVICE_TYPE, &service, 0) == NULL) +- *errptr = string_sprintf("RADIUS: add service type failed\n"); ++ *errptr = string_sprintf("%s", "RADIUS: add service type failed\n"); + + #else /* RADIUS_LIB_RADIUSCLIENT unset => RADIUS_LIB_RADIUSCLIENT2 */ + + if ((h = rc_read_config(RADIUS_CONFIG_FILE)) == NULL) +- *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE); ++ *errptr = string_sprintf("%s", "RADIUS: can't open %s", RADIUS_CONFIG_FILE); + + else if (rc_read_dictionary(h, rc_conf_str(h, "dictionary")) != 0) +- *errptr = string_sprintf("RADIUS: can't read dictionary"); ++ *errptr = string_sprintf("%s", "RADIUS: can't read dictionary"); + + else if (rc_avpair_add(h, &send, PW_USER_NAME, user, Ustrlen(user), 0) == NULL) +- *errptr = string_sprintf("RADIUS: add user name failed\n"); ++ *errptr = string_sprintf("%s", "RADIUS: add user name failed\n"); + + else if (rc_avpair_add(h, &send, PW_USER_PASSWORD, CS radius_args, + Ustrlen(radius_args), 0) == NULL) +- *errptr = string_sprintf("RADIUS: add password failed\n"); ++ *errptr = string_sprintf("%s", "RADIUS: add password failed\n"); + + else if (rc_avpair_add(h, &send, PW_SERVICE_TYPE, &service, 0, 0) == NULL) +- *errptr = string_sprintf("RADIUS: add service type failed\n"); ++ *errptr = string_sprintf("%s", "RADIUS: add service type failed\n"); + + #endif /* RADIUS_LIB_RADIUSCLIENT */ + +@@ -175,7 +175,7 @@ switch (result) + + default: + case BADRESP_RC: +- *errptr = string_sprintf("RADIUS: unexpected response (%d)", result); ++ *errptr = string_sprintf("%s", "RADIUS: unexpected response (%d)", result); + return ERROR; + } + +@@ -186,7 +186,7 @@ switch (result) + h = rad_auth_open(); + if (h == NULL) + { +- *errptr = string_sprintf("RADIUS: can't initialise libradius"); ++ *errptr = string_sprintf("%s", "RADIUS: can't initialise libradius"); + return ERROR; + } + if (rad_config(h, RADIUS_CONFIG_FILE) != 0 || +@@ -196,7 +196,7 @@ if (rad_config(h, RADIUS_CONFIG_FILE) != 0 || + rad_put_int(h, RAD_SERVICE_TYPE, RAD_AUTHENTICATE_ONLY) != 0 || + rad_put_string(h, RAD_NAS_IDENTIFIER, CS primary_hostname) != 0) + { +- *errptr = string_sprintf("RADIUS: %s", rad_strerror(h)); ++ *errptr = string_sprintf("%s", "RADIUS: %s", rad_strerror(h)); + result = ERROR; + } + else +@@ -214,12 +214,12 @@ else + break; + + case -1: +- *errptr = string_sprintf("RADIUS: %s", rad_strerror(h)); ++ *errptr = string_sprintf("%s", "RADIUS: %s", rad_strerror(h)); + result = ERROR; + break; + + default: +- *errptr = string_sprintf("RADIUS: unexpected response (%d)", result); ++ *errptr = string_sprintf("%s", "RADIUS: unexpected response (%d)", result); + result= ERROR; + break; + }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202002241532.01OFWtYu092332>