Date: Wed, 15 Oct 2014 20:44:40 +0000 (UTC) From: Olli Hauer <ohauer@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r370952 - in branches/2014Q4/www/mod_authnz_crowd: . files Message-ID: <201410152044.s9FKieUS053279@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ohauer Date: Wed Oct 15 20:44:40 2014 New Revision: 370952 URL: https://svnweb.freebsd.org/changeset/ports/370952 QAT: https://qat.redports.org/buildarchive/r370952/ Log: MFH: r370882 - fix build with apache24 - fix build with subversion 1.8.x PR: 193536 Submitted by: ohauer Approved by: Vick Khera (maintainer) Obtained from: https://bitbucket.org/atlassian/cwdapache/pull-request/18/added-apache-24-compatibility-and-fixed/diff [2] [1] fix shaped and tested by Vick Khera [2] based on Approved by: portmgr (mat) Added: branches/2014Q4/www/mod_authnz_crowd/files/patch-src__apache24_svn18 - copied unchanged from r370882, head/www/mod_authnz_crowd/files/patch-src__apache24_svn18 Modified: branches/2014Q4/www/mod_authnz_crowd/Makefile branches/2014Q4/www/mod_authnz_crowd/files/patch-configure.ac branches/2014Q4/www/mod_authnz_crowd/files/patch-src__Makefile.am branches/2014Q4/www/mod_authnz_crowd/files/patch-src__svn__Makefile.am branches/2014Q4/www/mod_authnz_crowd/pkg-descr Directory Properties: branches/2014Q4/ (props changed) Modified: branches/2014Q4/www/mod_authnz_crowd/Makefile ============================================================================== --- branches/2014Q4/www/mod_authnz_crowd/Makefile Wed Oct 15 20:28:48 2014 (r370951) +++ branches/2014Q4/www/mod_authnz_crowd/Makefile Wed Oct 15 20:44:40 2014 (r370952) @@ -3,13 +3,13 @@ PORTNAME= mod_authnz_crowd PORTVERSION= 2.2.2 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= www MASTER_SITES= http://downloads.atlassian.com/software/crowd/downloads/cwdapache/ DIST_SUBDIR= apache2 MAINTAINER= vivek@khera.org -COMMENT= Apache 2.2.x module to use Atlassian Crowd for authentication +COMMENT= Apache 2.2+ module to use Atlassian Crowd for authentication LICENSE= APACHE20 @@ -22,19 +22,26 @@ LIBS+= -L${LOCALBASE}/lib USES= autoreconf libtool USE_GNOME= libxml2 USE_GCC= any -USE_APACHE= 22 +USE_APACHE= 22+ SUB_FILES= pkg-message zzz_authnz_crowd.conf SUB_LIST+= APACHEETCDIR=${APACHEETCDIR} \ - APACHEMODDIR=${APACHEMODDIR} + APACHEMODDIR=${APACHEMODDIR} \ + AP_MODULE=mod_authnz_crowd PLIST_FILES= ${APACHEMODDIR}/mod_authnz_crowd.so \ + ${APACHEMODDIR}/mod_authnz_crowd.so.0.0.0 \ ${APACHEMODDIR}/mod_authz_svn_crowd.so \ + ${APACHEMODDIR}/mod_authz_svn_crowd.so.0.0.0 \ ${APACHEETCDIR}/Includes/zzz_authnz_crowd.conf post-patch: ${REINPLACE_CMD} -e 's|@APXS_STAGE@|-S LIBEXECDIR=${STAGEDIR}${PREFIX}/${APACHEMODDIR}|' \ ${WRKSRC}/src/Makefile.am + ${REINPLACE_CMD} -e 's|%%APACHEETCDIR%%|${APACHEETCDIR}|g' \ + -e 's|%%APACHEINCLUDEDIR%%|${APACHEINCLUDEDIR}|g' \ + -e 's|%%APACHEMODDIR%%|${APACHEMODDIR}|g' \ + ${WRKSRC}/configure.ac pre-install: @${MKDIR} ${STAGEDIR}${PREFIX}/${APACHEMODDIR} Modified: branches/2014Q4/www/mod_authnz_crowd/files/patch-configure.ac ============================================================================== --- branches/2014Q4/www/mod_authnz_crowd/files/patch-configure.ac Wed Oct 15 20:28:48 2014 (r370951) +++ branches/2014Q4/www/mod_authnz_crowd/files/patch-configure.ac Wed Oct 15 20:44:40 2014 (r370952) @@ -1,22 +1,23 @@ ---- ./configure.ac.orig 2011-03-29 07:51:33.000000000 +0200 -+++ ./configure.ac 2013-06-22 22:54:04.000000000 +0200 +--- configure.ac.orig 2013-07-26 05:20:50 UTC ++++ configure.ac @@ -1,5 +1,6 @@ - AC_INIT([mod_authnz_crowd], [2.0.2], [support@atlassian.com]) - AM_INIT_AUTOMAKE([-Wall -Werror foreign]) + AC_INIT([mod_authnz_crowd], m4_esyscmd([./version-gen]), [support@atlassian.com]) +-AM_INIT_AUTOMAKE([-Wall -Werror foreign]) ++AM_INIT_AUTOMAKE([-Wall foreign]) +AM_PROG_AR AC_PROG_CC AC_PROG_LIBTOOL AC_CONFIG_HEADERS([config.h]) -@@ -12,7 +13,7 @@ +@@ -16,7 +17,7 @@ - AC_CHECK_LIB([apr-1], [apr_pool_pre_cleanup_register], [], [AC_MSG_ERROR([apr_pool_pre_cleanup_register was not found in libapr-1])]) + AC_CHECK_LIB([xml2], [xmlFree], [CFLAGS+=" `xml2-config --cflags`" LIBS+=" `xml2-config --libs`"], [AC_MSG_ERROR([libxml2 was not found])]) -AC_CHECK_FILE([/usr/local/apache2/include/httpd.h], [APACHE_INCLUDE_DIR="/usr/local/apache2/include"], [ -+AC_CHECK_FILE([/usr/local/include/apache22/httpd.h], [APACHE_INCLUDE_DIR="/usr/local/include/apache22"], [ ++AC_CHECK_FILE([/usr/local/%%APACHEINCLUDEDIR%%/httpd.h], [APACHE_INCLUDE_DIR="/usr/local/%%APACHEINCLUDEDIR%%"], [ AC_CHECK_FILE([/usr/include/httpd/httpd.h], [APACHE_INCLUDE_DIR="/usr/include/httpd"], [ AC_CHECK_FILE([/usr/include/apache2/httpd.h], [APACHE_INCLUDE_DIR="/usr/include/apache2"], [ AC_MSG_ERROR([Could not locate Apache include directory]) -@@ -21,7 +22,7 @@ +@@ -25,7 +26,7 @@ ]) AC_SUBST([APACHE_INCLUDE_DIR]) @@ -25,25 +26,25 @@ APACHE_BIN_DIR=`AS_DIRNAME($HTTPD)` AC_SUBST([APACHE_BIN_DIR]) -@@ -32,7 +33,7 @@ +@@ -36,7 +37,7 @@ ]) AC_SUBST([SVN_DIR]) -AC_CHECK_FILE([/usr/libexec/apache2/mod_dav.so], [APACHE_MODULES_DIR="/usr/libexec/apache2"], [ -+AC_CHECK_FILE([/usr/local/libexec/apache22/mod_dav.so], [APACHE_MODULES_DIR="/usr/local/libexec/apache22"], [ ++AC_CHECK_FILE([/usr/local/%%APACHEMODDIR%%/mod_dav.so], [APACHE_MODULES_DIR="/usr/local/%%APACHEMODDIR%%"], [ AC_CHECK_FILE([/usr/lib64/httpd/modules/mod_dav.so], [APACHE_MODULES_DIR="/usr/lib64/httpd/modules"], [ AC_CHECK_FILE([/usr/lib/httpd/modules/mod_dav.so], [APACHE_MODULES_DIR="/usr/lib/httpd/modules"], [ AC_CHECK_FILE([/usr/lib/apache2/modules/mod_dav.so], [APACHE_MODULES_DIR="/usr/lib/apache2/modules"], [ -@@ -43,7 +44,7 @@ +@@ -47,7 +48,7 @@ ]) AC_SUBST([APACHE_MODULES_DIR]) -AC_CHECK_FILE([/usr/local/apache2/conf/httpd.conf], [HTTPD_CONF="/usr/local/apache2/conf/httpd.conf"], [ -+AC_CHECK_FILE([/usr/local/etc/apache22/httpd.conf], [HTTPD_CONF="/usr/local/etc/apache22/httpd.conf"], [ ++AC_CHECK_FILE([/usr/local/%%APACHEETCDIR%%/httpd.conf], [HTTPD_CONF="/usr/local/%%APACHEETCDIR%%/httpd.conf"], [ AC_CHECK_FILE([/etc/httpd/conf/httpd.conf], [HTTPD_CONF="/etc/httpd/conf/httpd.conf"], [ AC_CHECK_FILE([/etc/apache2/httpd.conf], [HTTPD_CONF="/etc/apache2/httpd.conf"], [ - AC_MSG_ERROR([Could not locate Apache configuration file]) -@@ -52,7 +53,7 @@ + AC_CHECK_FILE([/etc/apache2/apache2.conf], [HTTPD_CONF="/etc/apache2/apache2.conf"], [ +@@ -58,7 +59,7 @@ ]) AC_SUBST([HTTPD_CONF]) @@ -52,7 +53,7 @@ AC_CHECK_FILE([/usr/sbin/apxs], [APXS="/usr/sbin/apxs"], [ AC_CHECK_FILE([/usr/bin/apxs2], [APXS="/usr/bin/apxs2"], [ AC_MSG_ERROR([Could not locate Apache apxs binary]) -@@ -61,7 +62,7 @@ +@@ -67,7 +68,7 @@ ]) AC_SUBST([APXS]) Modified: branches/2014Q4/www/mod_authnz_crowd/files/patch-src__Makefile.am ============================================================================== --- branches/2014Q4/www/mod_authnz_crowd/files/patch-src__Makefile.am Wed Oct 15 20:28:48 2014 (r370951) +++ branches/2014Q4/www/mod_authnz_crowd/files/patch-src__Makefile.am Wed Oct 15 20:44:40 2014 (r370952) @@ -1,5 +1,5 @@ ---- src/Makefile.am-dist 2013-09-25 02:41:53.000000000 -0400 -+++ src/Makefile.am 2014-01-14 11:20:54.178664699 -0500 +--- src/Makefile.am.orig 2013-09-25 06:41:53 UTC ++++ src/Makefile.am @@ -3,9 +3,9 @@ lib_LTLIBRARIES = mod_authnz_crowd.la mod_authnz_crowd_la_SOURCES = mod_authnz_crowd.c mod_authnz_crowd.h crowd_client.c crowd_client.h cache.c cache.h util.c util.h Copied: branches/2014Q4/www/mod_authnz_crowd/files/patch-src__apache24_svn18 (from r370882, head/www/mod_authnz_crowd/files/patch-src__apache24_svn18) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2014Q4/www/mod_authnz_crowd/files/patch-src__apache24_svn18 Wed Oct 15 20:44:40 2014 (r370952, copy of r370882, head/www/mod_authnz_crowd/files/patch-src__apache24_svn18) @@ -0,0 +1,193 @@ +diff --git a/src/crowd_client.c b/src/crowd_client.c +index c190d0b..9a42acf 100644 +--- a/src/crowd_client.c ++++ src/crowd_client.c +@@ -631,9 +631,15 @@ static char *make_app_cache_key(const request_rec *r, const crowd_config *config + } + + static char *make_session_cache_key(const char *token, const char *forwarded_for, const request_rec *r, const crowd_config *config) { ++#if AP_MODULE_MAGIC_AT_LEAST(20080403,1) ++ return log_ralloc(r, apr_psprintf(r->pool, "%s\037%s\037%s\037%s\037%s", token, ++ forwarded_for == NULL ? "" : forwarded_for, r->connection->client_ip, config->crowd_app_name, ++ config->crowd_url)); ++#else + return log_ralloc(r, apr_psprintf(r->pool, "%s\037%s\037%s\037%s\037%s", token, + forwarded_for == NULL ? "" : forwarded_for, r->connection->remote_ip, config->crowd_app_name, + config->crowd_url)); ++#endif + } + + /*========================== +@@ -764,9 +770,15 @@ static bool handle_crowd_create_session_session_element(write_data_t *write_data + } + + static const char *get_validation_factors(const request_rec *r, const char *forwarded_for) { ++#if AP_MODULE_MAGIC_AT_LEAST(20080403,1) ++ const char *payload_beginning = log_ralloc(r, apr_pstrcat(r->pool, ++ "<validation-factors><validation-factor><name>remote_address</name><value>", r->connection->client_ip, ++ "</value></validation-factor>", NULL)); ++#else + const char *payload_beginning = log_ralloc(r, apr_pstrcat(r->pool, + "<validation-factors><validation-factor><name>remote_address</name><value>", r->connection->remote_ip, + "</value></validation-factor>", NULL)); ++#endif + if (payload_beginning == NULL) { + return NULL; + } +@@ -863,7 +875,7 @@ static const char *make_validate_session_url(const request_rec *r, const crowd_c + + char *url = log_ralloc(r, apr_pstrcat(r->pool, urlWithoutToken, escapedToken, NULL)); + +- curl_free(escapedToken); ++ curl_free((void *)escapedToken); + + return url; + } +diff --git a/src/mod_authnz_crowd.c b/src/mod_authnz_crowd.c +index 44232a2..e9f849b 100644 +--- a/src/mod_authnz_crowd.c ++++ src/mod_authnz_crowd.c +@@ -520,7 +520,6 @@ static authn_status authn_crowd_check_password(request_rec *r, const char *user, + static const authn_provider authn_crowd_provider = + { + &authn_crowd_check_password, /* Callback for HTTP Basic authentication */ +- NULL /* Callback for HTTP Digest authentication */ + }; + + static unsigned int parse_number(const char *string, const char *name, unsigned int min, unsigned int max, +@@ -611,6 +610,83 @@ apr_array_header_t *authnz_crowd_user_groups(const char *username, request_rec * + * @param r the current request + * @return OK, DECLINED, or HTTP_... + */ ++#if AP_MODULE_MAGIC_AT_LEAST(20080403,1) ++static authz_status auth_group_checker(request_rec *r, ++ const char *require_line, ++ const void *parsed_require_args) { ++ const char *t, *w; ++ ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, "mod_authnz_crowd:auth_group_checker"); ++ ++ authnz_crowd_dir_config *config = get_config(r); ++ if (config == NULL) { ++ return AUTHZ_GENERAL_ERROR; ++ } ++ ++ if (r->user == NULL) { ++ ap_log_rerror(APLOG_MARK, APLOG_CRIT, 0, r, "Authorisation requested, but no user provided."); ++ return AUTHZ_DENIED_NO_USER; ++ } ++ ++ apr_array_header_t *user_groups = NULL; ++ ++ /* Fetch groups only if actually needed. */ ++ if (user_groups == NULL) { ++ user_groups = crowd_user_groups(r->user, r, config->crowd_config); ++ if (user_groups == NULL) { ++ return AUTHZ_GENERAL_ERROR; ++ } ++ } ++ ++ /* Iterate over the groups mentioned in the requirement. */ ++ t = require_line; ++ while ((w = ap_getword_conf(r->pool, &t)) && w[0]) { ++ int y; ++ for (y = 0; y < user_groups->nelts; y++) { ++ const char *user_group = APR_ARRAY_IDX(user_groups, y, const char *); ++ ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, ++ "auth_group_checker: user_group=%s, required_group=%s", user_group, w); ++ if (strcasecmp(user_group, w) == 0) { ++ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, ++ "Granted authorisation to '%s' on the basis of membership of '%s'.", r->user, user_group); ++ return AUTHZ_GRANTED; ++ } ++ } ++ ++ } ++ ++ ++ ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r, "Denied authorisation to '%s'.", r->user); ++ return AUTHZ_DENIED; ++} ++ ++static const authz_provider authz_crowd_group_provider = ++{ ++ &auth_group_checker, ++ NULL, ++}; ++ ++static void register_hooks(apr_pool_t *p) ++{ ++ ap_hook_post_config(post_config, NULL, NULL, APR_HOOK_MIDDLE); ++ ap_hook_check_user_id(check_user_id, NULL, NULL, APR_HOOK_FIRST); ++ ap_register_auth_provider( ++ p, ++ AUTHN_PROVIDER_GROUP, ++ "crowd", ++ AUTHN_PROVIDER_VERSION, ++ &authn_crowd_provider, AP_AUTH_INTERNAL_PER_CONF ++ ); ++ ++ // Require crowd-group group1 group2 ... ++ ap_register_auth_provider( ++ p, ++ AUTHZ_PROVIDER_GROUP, ++ "crowd-group", ++ AUTHZ_PROVIDER_VERSION, ++ &authz_crowd_group_provider, AP_AUTH_INTERNAL_PER_CONF ++ ); ++} ++#else + static int auth_checker(request_rec *r) { + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, "mod_authnz_crowd:auth_checker"); + +@@ -690,6 +766,9 @@ static void register_hooks(apr_pool_t *p) + ap_hook_auth_checker(auth_checker, pre_auth_checker, NULL, APR_HOOK_MIDDLE); + } + ++#endif ++ ++ + module AP_MODULE_DECLARE_DATA authnz_crowd_module = + { + STANDARD20_MODULE_STUFF, +diff --git a/src/svn/mod_authz_svn_crowd.c b/src/svn/mod_authz_svn_crowd.c +index 69b9aa0..3164a40 100644 +--- a/src/svn/mod_authz_svn_crowd.c ++++ src/svn/mod_authz_svn_crowd.c +@@ -50,6 +50,7 @@ + + #include <svn_pools.h> + #include <svn_dirent_uri.h> ++#include <svn_version.h> + + const char * + svn_fspath__canonicalize(const char *fspath, +@@ -73,6 +74,7 @@ typedef struct authz_svn_config_rec { + const char *base_path; + const char *access_file; + const char *repo_relative_access_file; ++ const char *groups_file; // rwb + const char *force_username_case; + } authz_svn_config_rec; + +@@ -105,6 +107,12 @@ struct svn_config_t + /* Temporary value used for expanded default values in svn_config_get. + (Using a stringbuf so that frequent resetting is efficient.) */ + svn_stringbuf_t *tmp_value; ++ ++#if SVN_VER_MINOR >= 7 ++ /* Specifies whether section names are populated case sensitively. */ ++ svn_boolean_t section_names_case_sensitive; ++#endif ++ + }; + + typedef struct +@@ -113,7 +121,7 @@ typedef struct + const char *name; + + /* The section name, converted into a hash key. */ +- const char *hash_key; ++ // const char *hash_key; + + /* Table of cfg_option_t's. */ + apr_hash_t *options; Modified: branches/2014Q4/www/mod_authnz_crowd/files/patch-src__svn__Makefile.am ============================================================================== --- branches/2014Q4/www/mod_authnz_crowd/files/patch-src__svn__Makefile.am Wed Oct 15 20:28:48 2014 (r370951) +++ branches/2014Q4/www/mod_authnz_crowd/files/patch-src__svn__Makefile.am Wed Oct 15 20:44:40 2014 (r370952) @@ -1,5 +1,5 @@ ---- ./src/svn/Makefile.am.orig 2011-03-29 07:51:32.000000000 +0200 -+++ ./src/svn/Makefile.am 2013-06-22 22:54:04.000000000 +0200 +--- src/svn/Makefile.am.orig 2013-07-26 05:20:50 UTC ++++ src/svn/Makefile.am @@ -1,6 +1,6 @@ lib_LTLIBRARIES = mod_authz_svn_crowd.la mod_authz_svn_crowd_la_SOURCES = mod_authz_svn_crowd.c Modified: branches/2014Q4/www/mod_authnz_crowd/pkg-descr ============================================================================== --- branches/2014Q4/www/mod_authnz_crowd/pkg-descr Wed Oct 15 20:28:48 2014 (r370951) +++ branches/2014Q4/www/mod_authnz_crowd/pkg-descr Wed Oct 15 20:44:40 2014 (r370952) @@ -1,4 +1,4 @@ -Apache 2.2 connector for Atlassian Crowd to provide authentication and +Apache 2.2/2.4 connector for Atlassian Crowd to provide authentication and authorization support using Basic Auth. WWW: https://confluence.atlassian.com/display/CROWD/Integrating+Crowd+with+Apache
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201410152044.s9FKieUS053279>