[[[ svnserve: Make use-sasl=true a fatal error in SASL-less builds. * subversion/svnserve/serve.c (find_repos): Check 'use-sasl' in SASL-less builds, too. * subversion/libsvn_repos/repos.c (create_conf): Update documentation. TODO: write release notes entry and/or notes/api-errata/1.10/svnserve001.txt ]]] [[[ Index: subversion/svnserve/serve.c =================================================================== --- subversion/svnserve/serve.c (revision 1734828) +++ subversion/svnserve/serve.c (working copy) @@ -3637,6 +3637,7 @@ find_repos(const char *url, { const char *path, *full_path, *fs_path, *hooks_env; svn_stringbuf_t *url_buf; + svn_boolean_t sasl_requested; /* Skip past the scheme and authority part. */ path = skip_scheme_part(url); @@ -3710,14 +3711,16 @@ find_repos(const char *url, SVN_ERR(load_authz_config(repository, repository->repos_root, cfg, authz_pool, result_pool)); + /* Should we use Cyrus SASL? */ + SVN_ERR(svn_config_get_bool(cfg, &sasl_requested, + SVN_CONFIG_SECTION_SASL, + SVN_CONFIG_OPTION_USE_SASL, FALSE)); + if (sasl_requested) + { #ifdef SVN_HAVE_SASL - { const char *val; - /* Should we use Cyrus SASL? */ - SVN_ERR(svn_config_get_bool(cfg, &repository->use_sasl, - SVN_CONFIG_SECTION_SASL, - SVN_CONFIG_OPTION_USE_SASL, FALSE)); + repository->use_sasl = sasl_requested; svn_config_get(cfg, &val, SVN_CONFIG_SECTION_SASL, SVN_CONFIG_OPTION_MIN_SSF, "0"); @@ -3726,8 +3729,14 @@ find_repos(const char *url, svn_config_get(cfg, &val, SVN_CONFIG_SECTION_SASL, SVN_CONFIG_OPTION_MAX_SSF, "256"); SVN_ERR(svn_cstring_atoui(&repository->max_ssf, val)); +#else /* !SVN_HAVE_SASL */ + return svn_error_createf(SVN_ERR_BAD_CONFIG_VALUE, NULL, + _("SASL requested but not compiled in; " + "set '%s' to 'false' or recompile " + "svnserve with SASL support"), + SVN_CONFIG_OPTION_USE_SASL); +#endif /* SVN_HAVE_SASL */ } -#endif /* Use the repository UUID as the default realm. */ SVN_ERR(svn_fs_get_uuid(repository->fs, &repository->realm, scratch_pool)); Index: subversion/libsvn_repos/repos.c =================================================================== --- subversion/libsvn_repos/repos.c (revision 1734828) +++ subversion/libsvn_repos/repos.c (working copy) @@ -882,7 +882,7 @@ create_conf(svn_repos_t *repos, apr_pool_t *pool) "[sasl]" NL "### This option specifies whether you want to use the Cyrus SASL" NL "### library for authentication. Default is false." NL -"### This section will be ignored if svnserve is not built with Cyrus" NL +"### Enabling this option requires svnserve to have been built with Cyrus" NL "### SASL support; to check, run 'svnserve --version' and look for a line" NL "### reading 'Cyrus SASL authentication is available.'" NL "# use-sasl = true" NL ]]]