From 67d32a785dc7bd653e149066f242071bfcb5a315 Mon Sep 17 00:00:00 2001 From: Joe Orton Date: Wed, 12 Jun 2019 10:48:06 +0100 Subject: [PATCH] fixes for StateDir directive (upstream r1857731, r1857731) --- ...929+.patch => httpd-2.4.39-r1842929+.patch | 148 ++++++++++++------ httpd.spec | 7 +- 2 files changed, 105 insertions(+), 50 deletions(-) rename httpd-2.4.37-r1842929+.patch => httpd-2.4.39-r1842929+.patch (75%) diff --git a/httpd-2.4.37-r1842929+.patch b/httpd-2.4.39-r1842929+.patch similarity index 75% rename from httpd-2.4.37-r1842929+.patch rename to httpd-2.4.39-r1842929+.patch index e841e34..50f8aa1 100644 --- a/httpd-2.4.37-r1842929+.patch +++ b/httpd-2.4.39-r1842929+.patch @@ -1,10 +1,12 @@ -# ./pullrev.sh 1842929 1842931 +# ./pullrev.sh 1842929 1842931 1852982 1853631 1857731 http://svn.apache.org/viewvc?view=revision&revision=1842929 http://svn.apache.org/viewvc?view=revision&revision=1842931 http://svn.apache.org/viewvc?view=revision&revision=1852982 +http://svn.apache.org/viewvc?view=revision&revision=1857731 +http://svn.apache.org/viewvc?view=revision&revision=1853631 ---- httpd-2.4.38/acinclude.m4.r1842929+ -+++ httpd-2.4.38/acinclude.m4 +--- httpd-2.4.39/acinclude.m4.r1842929+ ++++ httpd-2.4.39/acinclude.m4 @@ -45,6 +45,7 @@ APACHE_SUBST(installbuilddir) APACHE_SUBST(runtimedir) @@ -21,8 +23,8 @@ http://svn.apache.org/viewvc?view=revision&revision=1852982 ]) dnl ---- httpd-2.4.38/config.layout.r1842929+ -+++ httpd-2.4.38/config.layout +--- httpd-2.4.39/config.layout.r1842929+ ++++ httpd-2.4.39/config.layout @@ -29,6 +29,7 @@ includedir: ${prefix}/include localstatedir: ${prefix} @@ -143,8 +145,8 @@ http://svn.apache.org/viewvc?view=revision&revision=1852982 logfiledir: ${localstatedir}/log/httpd proxycachedir: ${localstatedir}/cache/httpd ---- httpd-2.4.38/configure.in.r1842929+ -+++ httpd-2.4.38/configure.in +--- httpd-2.4.39/configure.in.r1842929+ ++++ httpd-2.4.39/configure.in @@ -41,7 +41,7 @@ AC_PREFIX_DEFAULT(/usr/local/apache2) @@ -154,8 +156,8 @@ http://svn.apache.org/viewvc?view=revision&revision=1852982 dnl reparse the configure arguments. APR_PARSE_ARGUMENTS ---- httpd-2.4.38/include/ap_config_layout.h.in.r1842929+ -+++ httpd-2.4.38/include/ap_config_layout.h.in +--- httpd-2.4.39/include/ap_config_layout.h.in.r1842929+ ++++ httpd-2.4.39/include/ap_config_layout.h.in @@ -60,5 +60,7 @@ #define DEFAULT_REL_LOGFILEDIR "@rel_logfiledir@" #define DEFAULT_EXP_PROXYCACHEDIR "@exp_proxycachedir@" @@ -164,8 +166,8 @@ http://svn.apache.org/viewvc?view=revision&revision=1852982 +#define DEFAULT_REL_STATEDIR "@rel_statedir@" #endif /* AP_CONFIG_LAYOUT_H */ ---- httpd-2.4.38/include/http_config.h.r1842929+ -+++ httpd-2.4.38/include/http_config.h +--- httpd-2.4.39/include/http_config.h.r1842929+ ++++ httpd-2.4.39/include/http_config.h @@ -757,6 +757,14 @@ */ AP_DECLARE(char *) ap_runtime_dir_relative(apr_pool_t *p, const char *fname); @@ -181,8 +183,8 @@ http://svn.apache.org/viewvc?view=revision&revision=1852982 /* Finally, the hook for dynamically loading modules in... */ /** ---- httpd-2.4.38/Makefile.in.r1842929+ -+++ httpd-2.4.38/Makefile.in +--- httpd-2.4.39/Makefile.in.r1842929+ ++++ httpd-2.4.39/Makefile.in @@ -213,6 +213,7 @@ install-other: @test -d $(DESTDIR)$(logfiledir) || $(MKINSTALLDIRS) $(DESTDIR)$(logfiledir) @@ -191,8 +193,8 @@ http://svn.apache.org/viewvc?view=revision&revision=1852982 @for ext in dll x; do \ file=apachecore.$$ext; \ if test -f $$file; then \ ---- httpd-2.4.38/modules/dav/fs/mod_dav_fs.c.r1842929+ -+++ httpd-2.4.38/modules/dav/fs/mod_dav_fs.c +--- httpd-2.4.39/modules/dav/fs/mod_dav_fs.c.r1842929+ ++++ httpd-2.4.39/modules/dav/fs/mod_dav_fs.c @@ -29,6 +29,10 @@ extern module AP_MODULE_DECLARE_DATA dav_fs_module; @@ -204,22 +206,43 @@ http://svn.apache.org/viewvc?view=revision&revision=1852982 const char *dav_get_lockdb_path(const request_rec *r) { dav_fs_server_conf *conf; -@@ -39,7 +43,11 @@ - - static void *dav_fs_create_server_config(apr_pool_t *p, server_rec *s) - { -- return apr_pcalloc(p, sizeof(dav_fs_server_conf)); -+ dav_fs_server_conf *conf = apr_pcalloc(p, sizeof(dav_fs_server_conf)); -+ -+ conf->lockdb_path = ap_state_dir_relative(p, DEFAULT_DAV_LOCKDB); -+ -+ return conf; +@@ -57,6 +61,24 @@ + return newconf; } - static void *dav_fs_merge_server_config(apr_pool_t *p, ---- httpd-2.4.38/modules/md/mod_md_config.c.r1842929+ -+++ httpd-2.4.38/modules/md/mod_md_config.c -@@ -54,10 +54,14 @@ ++static apr_status_t dav_fs_post_config(apr_pool_t *p, apr_pool_t *plog, ++ apr_pool_t *ptemp, server_rec *base_server) ++{ ++ server_rec *s; ++ ++ for (s = base_server; s; s = s->next) { ++ dav_fs_server_conf *conf; ++ ++ conf = ap_get_module_config(s->module_config, &dav_fs_module); ++ ++ if (!conf->lockdb_path) { ++ conf->lockdb_path = ap_state_dir_relative(p, DEFAULT_DAV_LOCKDB); ++ } ++ } ++ ++ return OK; ++} ++ + /* + * Command handler for the DAVLockDB directive, which is TAKE1 + */ +@@ -87,6 +109,8 @@ + + static void register_hooks(apr_pool_t *p) + { ++ ap_hook_post_config(dav_fs_post_config, NULL, NULL, APR_HOOK_MIDDLE); ++ + dav_hook_gather_propsets(dav_fs_gather_propsets, NULL, NULL, + APR_HOOK_MIDDLE); + dav_hook_find_liveprop(dav_fs_find_liveprop, NULL, NULL, APR_HOOK_MIDDLE); +--- httpd-2.4.39/modules/md/mod_md_config.c.r1842929+ ++++ httpd-2.4.39/modules/md/mod_md_config.c +@@ -54,10 +54,18 @@ #define DEF_VAL (-1) @@ -231,20 +254,29 @@ http://svn.apache.org/viewvc?view=revision&revision=1852982 static md_mod_conf_t defmc = { NULL, - "md", -+ NULL, ++#if 1 ++ NULL, /* apply default state-dir-relative */ ++#else ++ MD_DEFAULT_BASE_DIR, ++#endif NULL, NULL, 80, -@@ -112,6 +116,7 @@ - memcpy(mod_md_config, &defmc, sizeof(*mod_md_config)); - mod_md_config->mds = apr_array_make(pool, 5, sizeof(const md_t *)); - mod_md_config->unused_names = apr_array_make(pool, 5, sizeof(const md_t *)); -+ mod_md_config->base_dir = ap_state_dir_relative(pool, MD_DEFAULT_BASE_DIR); - - apr_pool_cleanup_register(pool, NULL, cleanup_mod_config, apr_pool_cleanup_null); +@@ -864,6 +872,12 @@ + if (mc->hsts_max_age > 0) { + mc->hsts_header = apr_psprintf(p, "max-age=%d", mc->hsts_max_age); } ---- httpd-2.4.38/server/core.c.r1842929+ -+++ httpd-2.4.38/server/core.c ++ ++#if 1 ++ if (mc->base_dir == NULL) { ++ mc->base_dir = ap_state_dir_relative(p, MD_DEFAULT_BASE_DIR); ++ } ++#endif + + return APR_SUCCESS; + } +--- httpd-2.4.39/server/core.c.r1842929+ ++++ httpd-2.4.39/server/core.c @@ -129,6 +129,8 @@ AP_DECLARE_DATA int ap_run_mode = AP_SQ_RM_UNKNOWN; AP_DECLARE_DATA int ap_config_generation = 0; @@ -254,7 +286,25 @@ http://svn.apache.org/viewvc?view=revision&revision=1852982 static void *create_core_dir_config(apr_pool_t *a, char *dir) { core_dir_config *conf; -@@ -3104,6 +3106,24 @@ +@@ -1409,12 +1411,15 @@ + return res_buf; + } + +-static int reset_config_defines(void *dummy) ++/* pconf cleanup - clear global variables set from config here. */ ++static apr_status_t reset_config(void *dummy) + { + ap_server_config_defines = saved_server_config_defines; + saved_server_config_defines = NULL; + server_config_defined_vars = NULL; +- return OK; ++ core_state_dir = NULL; ++ ++ return APR_SUCCESS; + } + + /* +@@ -3113,6 +3118,24 @@ return NULL; } @@ -279,7 +329,7 @@ http://svn.apache.org/viewvc?view=revision&revision=1852982 static const char *set_timeout(cmd_parms *cmd, void *dummy, const char *arg) { const char *err = ap_check_cmd_context(cmd, NOT_IN_DIR_CONTEXT); -@@ -4398,6 +4418,8 @@ +@@ -4407,6 +4430,8 @@ "Common directory of server-related files (logs, confs, etc.)"), AP_INIT_TAKE1("DefaultRuntimeDir", set_runtime_dir, NULL, RSRC_CONF | EXEC_ON_READ, "Common directory for run-time files (shared memory, locks, etc.)"), @@ -288,15 +338,17 @@ http://svn.apache.org/viewvc?view=revision&revision=1852982 AP_INIT_TAKE1("ErrorLog", set_server_string_slot, (void *)APR_OFFSETOF(server_rec, error_fname), RSRC_CONF, "The filename of the error log"), -@@ -4927,6 +4949,7 @@ +@@ -4934,8 +4959,7 @@ + + if (!saved_server_config_defines) + init_config_defines(pconf); +- apr_pool_cleanup_register(pconf, NULL, reset_config_defines, +- apr_pool_cleanup_null); ++ apr_pool_cleanup_register(pconf, NULL, reset_config, apr_pool_cleanup_null); + ap_regcomp_set_default_cflags(AP_REG_DOLLAR_ENDONLY); - mpm_common_pre_config(pconf); -+ core_state_dir = NULL; - - return OK; - } -@@ -5150,6 +5173,27 @@ +@@ -5163,6 +5187,27 @@ } } diff --git a/httpd.spec b/httpd.spec index 00094c6..9351fde 100644 --- a/httpd.spec +++ b/httpd.spec @@ -13,7 +13,7 @@ Summary: Apache HTTP Server Name: httpd Version: 2.4.39 -Release: 4%{?dist} +Release: 5%{?dist} URL: https://httpd.apache.org/ Source0: https://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2 Source1: index.html @@ -63,7 +63,7 @@ Patch3: httpd-2.4.1-deplibs.patch # Needed for socket activation and mod_systemd patch Patch19: httpd-2.4.25-detect-systemd.patch # Features/functional changes -Patch21: httpd-2.4.37-r1842929+.patch +Patch21: httpd-2.4.39-r1842929+.patch Patch23: httpd-2.4.33-export.patch Patch24: httpd-2.4.1-corelimit.patch Patch25: httpd-2.4.25-selinux.patch @@ -737,6 +737,9 @@ exit $rv %{_rpmconfigdir}/macros.d/macros.httpd %changelog +* Wed Jun 12 2019 Joe Orton - 2.4.39-5 +- fixes for StateDir directive (upstream r1857731, r1857731) + * Thu May 02 2019 Lubos Uhliarik - 2.4.39-4 - httpd dependency on initscripts is unspecified (#1705188)