add DefaultStateDir/ap_state_dir_relative()
mod_dav_fs: use state dir for default DAVLockDB mod_md: use state dir for default MDStoreDir
This commit is contained in:
		
							parent
							
								
									e869b8b799
								
							
						
					
					
						commit
						920857b24c
					
				| @ -1,21 +0,0 @@ | ||||
| 
 | ||||
| Override default. | ||||
| 
 | ||||
| --- httpd-2.4.33/modules/md/mod_md_config.c.mddefault
 | ||||
| +++ httpd-2.4.33/modules/md/mod_md_config.c
 | ||||
| @@ -54,10 +54,14 @@
 | ||||
|   | ||||
|  #define DEF_VAL     (-1) | ||||
|   | ||||
| +#ifndef MD_DEFAULT_STORE_DIR
 | ||||
| +#define MD_DEFAULT_STORE_DIR "state/md"
 | ||||
| +#endif
 | ||||
| +
 | ||||
|  /* Default settings for the global conf */ | ||||
|  static md_mod_conf_t defmc = { | ||||
|      NULL, | ||||
| -    "md",
 | ||||
| +    MD_DEFAULT_STORE_DIR,
 | ||||
|      NULL, | ||||
|      NULL, | ||||
|      80, | ||||
							
								
								
									
										317
									
								
								httpd-2.4.37-r1842929+.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										317
									
								
								httpd-2.4.37-r1842929+.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,317 @@ | ||||
| # ./pullrev.sh 1842929 1842931 | ||||
| http://svn.apache.org/viewvc?view=revision&revision=1842929 | ||||
| http://svn.apache.org/viewvc?view=revision&revision=1842931 | ||||
| 
 | ||||
| --- httpd-2.4.37/acinclude.m4.r1842929+
 | ||||
| +++ httpd-2.4.37/acinclude.m4
 | ||||
| @@ -45,6 +45,7 @@
 | ||||
|    APACHE_SUBST(installbuilddir) | ||||
|    APACHE_SUBST(runtimedir) | ||||
|    APACHE_SUBST(proxycachedir) | ||||
| +  APACHE_SUBST(statedir)
 | ||||
|    APACHE_SUBST(other_targets) | ||||
|    APACHE_SUBST(progname) | ||||
|    APACHE_SUBST(prefix) | ||||
| @@ -663,6 +664,7 @@
 | ||||
|    APACHE_SUBST_EXPANDED_ARG(runtimedir) | ||||
|    APACHE_SUBST_EXPANDED_ARG(logfiledir) | ||||
|    APACHE_SUBST_EXPANDED_ARG(proxycachedir) | ||||
| +  APACHE_SUBST_EXPANDED_ARG(statedir)
 | ||||
|  ]) | ||||
|   | ||||
|  dnl  | ||||
| --- httpd-2.4.37/config.layout.r1842929+
 | ||||
| +++ httpd-2.4.37/config.layout
 | ||||
| @@ -29,6 +29,7 @@
 | ||||
|      includedir:    ${prefix}/include | ||||
|      localstatedir: ${prefix} | ||||
|      runtimedir:    ${localstatedir}/logs | ||||
| +    statedir:      ${localstatedir}/state
 | ||||
|      logfiledir:    ${localstatedir}/logs | ||||
|      proxycachedir: ${localstatedir}/proxy | ||||
|  </Layout> | ||||
| @@ -54,6 +55,7 @@
 | ||||
|      includedir:    ${prefix}/include+ | ||||
|      localstatedir: ${prefix}/var+ | ||||
|      runtimedir:    ${localstatedir}/run | ||||
| +    statedir:      ${localstatedir}/state
 | ||||
|      logfiledir:    ${localstatedir}/log | ||||
|      proxycachedir: ${localstatedir}/proxy | ||||
|  </Layout> | ||||
| @@ -78,6 +80,7 @@
 | ||||
|      includedir:    /System/Library/Frameworks/Apache.framework/Versions/2.0/Headers | ||||
|      localstatedir: /var | ||||
|      runtimedir:    ${prefix}/Logs | ||||
| +    statedir:      ${prefix}/State
 | ||||
|      logfiledir:    ${prefix}/Logs | ||||
|      proxycachedir: ${prefix}/ProxyCache | ||||
|  </Layout> | ||||
| @@ -102,6 +105,7 @@
 | ||||
|      includedir:    ${prefix}/include+ | ||||
|      localstatedir: /var | ||||
|      runtimedir:    ${localstatedir}/run | ||||
| +    statedir:      ${localstatedir}/state
 | ||||
|      logfiledir:    ${localstatedir}/log+ | ||||
|      proxycachedir: ${runtimedir}/proxy | ||||
|  </Layout> | ||||
| @@ -126,6 +130,7 @@
 | ||||
|      includedir:    ${prefix}/include/apache | ||||
|      localstatedir: /var | ||||
|      runtimedir:    ${localstatedir}/run | ||||
| +    statedir:      ${localstatedir}/lib/httpd
 | ||||
|      logfiledir:    ${localstatedir}/log/httpd | ||||
|      proxycachedir: ${localstatedir}/cache/httpd | ||||
|  </Layout>      | ||||
| @@ -151,6 +156,7 @@
 | ||||
|      includedir:    ${prefix}/include/httpd | ||||
|      runtimedir:    /run/httpd | ||||
|      logfiledir:    ${localstatedir}/log/httpd | ||||
| +    statedir:      ${localstatedir}/lib/httpd
 | ||||
|      proxycachedir: ${localstatedir}/cache/httpd/proxy | ||||
|  </Layout>      | ||||
|   | ||||
| @@ -175,6 +181,7 @@
 | ||||
|      localstatedir: /var${prefix} | ||||
|      runtimedir:    ${localstatedir}/run | ||||
|      logfiledir:    ${localstatedir}/logs | ||||
| +    statedir:      ${localstatedir}/state
 | ||||
|      proxycachedir: ${localstatedir}/proxy | ||||
|  </Layout> | ||||
|   | ||||
| @@ -197,6 +204,7 @@
 | ||||
|      cgidir:        ${datadir}/cgi-bin | ||||
|      includedir:    ${prefix}/include/apache | ||||
|      localstatedir: /var/lib/httpd | ||||
| +    statedir:      ${localstatedir}
 | ||||
|      runtimedir:    /var/run | ||||
|      logfiledir:    /var/log/httpd | ||||
|      proxycachedir: /var/cache/httpd | ||||
| @@ -223,6 +231,7 @@
 | ||||
|      localstatedir: /var | ||||
|      runtimedir:    ${localstatedir}/run | ||||
|      logfiledir:    ${localstatedir}/log/httpd | ||||
| +    statedir:      ${prefix}/state
 | ||||
|      proxycachedir: ${localstatedir}/proxy | ||||
|  </Layout> | ||||
|   | ||||
| @@ -246,6 +255,7 @@
 | ||||
|      includedir:    ${exec_prefix}/include | ||||
|      localstatedir: ${prefix} | ||||
|      runtimedir:    /var/run | ||||
| +    statedir:      ${datadir}/state
 | ||||
|      logfiledir:    ${datadir}/logs | ||||
|      proxycachedir: ${datadir}/proxy | ||||
|  </Layout> | ||||
| @@ -271,6 +281,7 @@
 | ||||
|      localstatedir: ${prefix} | ||||
|      runtimedir:    ${prefix}/logs | ||||
|      logfiledir:    ${prefix}/logs | ||||
| +    statedir:      ${prefix}/state
 | ||||
|      proxycachedir: ${prefix}/proxy | ||||
|  </Layout> | ||||
|   | ||||
| @@ -315,6 +326,7 @@
 | ||||
|      cgidir:        ${prefix}/usr/lib/cgi-bin | ||||
|      includedir:    ${exec_prefix}/include/apache2 | ||||
|      localstatedir: ${prefix}/var/lock/apache2 | ||||
| +    statedir:      ${prefix}/var/lib/apache2
 | ||||
|      runtimedir:    ${prefix}/var/run/apache2 | ||||
|      logfiledir:    ${prefix}/var/log/apache2 | ||||
|      proxycachedir: ${prefix}/var/cache/apache2/proxy | ||||
| @@ -343,6 +355,7 @@
 | ||||
|      manualdir:     ${datadir}/manual | ||||
|      cgidir:        ${datadir}/cgi-bin | ||||
|      runtimedir:    ${localstatedir}/run | ||||
| +    runtimedir:    ${localstatedir}/lib/httpd
 | ||||
|      logfiledir:    ${localstatedir}/log/httpd | ||||
|      proxycachedir: ${localstatedir}/cache/httpd/cache-root | ||||
|  </Layout> | ||||
| @@ -366,6 +379,7 @@
 | ||||
|      manualdir:     ${prefix}/manual | ||||
|      includedir:    ${prefix}/include | ||||
|      localstatedir: /var/httpd | ||||
| +    statedir:      ${localstatedir}/state
 | ||||
|      runtimedir:    ${localstatedir}/run | ||||
|      logfiledir:    ${localstatedir}/logs | ||||
|      proxycachedir: ${localstatedir}/proxy | ||||
| @@ -391,6 +405,7 @@
 | ||||
|      includedir:      ${prefix}/include/httpd | ||||
|      localstatedir:   /var | ||||
|      runtimedir:      ${localstatedir}/run/httpd | ||||
| +    statedir:        ${localstatedir}/lib/httpd
 | ||||
|      logfiledir:      ${localstatedir}/log/httpd | ||||
|      proxycachedir:   ${localstatedir}/cache/httpd | ||||
|  </Layout> | ||||
| --- httpd-2.4.37/configure.in.r1842929+
 | ||||
| +++ httpd-2.4.37/configure.in
 | ||||
| @@ -41,7 +41,7 @@
 | ||||
|  AC_PREFIX_DEFAULT(/usr/local/apache2) | ||||
|   | ||||
|  dnl Get the layout here, so we can pass the required variables to apr | ||||
| -APR_ENABLE_LAYOUT(Apache, [errordir iconsdir htdocsdir cgidir])
 | ||||
| +APR_ENABLE_LAYOUT(Apache, [errordir iconsdir htdocsdir cgidir statedir])
 | ||||
|   | ||||
|  dnl reparse the configure arguments. | ||||
|  APR_PARSE_ARGUMENTS | ||||
| --- httpd-2.4.37/include/ap_config_layout.h.in.r1842929+
 | ||||
| +++ httpd-2.4.37/include/ap_config_layout.h.in
 | ||||
| @@ -60,5 +60,7 @@
 | ||||
|  #define DEFAULT_REL_LOGFILEDIR "@rel_logfiledir@" | ||||
|  #define DEFAULT_EXP_PROXYCACHEDIR "@exp_proxycachedir@" | ||||
|  #define DEFAULT_REL_PROXYCACHEDIR "@rel_proxycachedir@" | ||||
| +#define DEFAULT_EXP_STATEDIR "@exp_statedir@"
 | ||||
| +#define DEFAULT_REL_STATEDIR "@rel_statedir@"
 | ||||
|   | ||||
|  #endif /* AP_CONFIG_LAYOUT_H */ | ||||
| --- httpd-2.4.37/include/http_config.h.r1842929+
 | ||||
| +++ httpd-2.4.37/include/http_config.h
 | ||||
| @@ -757,6 +757,14 @@
 | ||||
|   */ | ||||
|  AP_DECLARE(char *) ap_runtime_dir_relative(apr_pool_t *p, const char *fname); | ||||
|   | ||||
| +/**
 | ||||
| + * Compute the name of a persistent state file (e.g. a database or
 | ||||
| + * long-lived cache) relative to the appropriate state directory.
 | ||||
| + * Absolute paths are returned as-is.  The state directory is
 | ||||
| + * configured via the DefaultStateDir directive or at build time.
 | ||||
| + */
 | ||||
| +AP_DECLARE(char *) ap_state_dir_relative(apr_pool_t *p, const char *fname);
 | ||||
| +
 | ||||
|  /* Finally, the hook for dynamically loading modules in... */ | ||||
|   | ||||
|  /** | ||||
| --- httpd-2.4.37/Makefile.in.r1842929+
 | ||||
| +++ httpd-2.4.37/Makefile.in
 | ||||
| @@ -213,6 +213,7 @@
 | ||||
|  install-other: | ||||
|  	@test -d $(DESTDIR)$(logfiledir) || $(MKINSTALLDIRS) $(DESTDIR)$(logfiledir) | ||||
|  	@test -d $(DESTDIR)$(runtimedir) || $(MKINSTALLDIRS) $(DESTDIR)$(runtimedir) | ||||
| +	@test -d $(DESTDIR)$(statedir) || $(MKINSTALLDIRS) $(DESTDIR)$(statedir)
 | ||||
|  	@for ext in dll x; do \ | ||||
|  		file=apachecore.$$ext; \ | ||||
|  		if test -f $$file; then \ | ||||
| --- httpd-2.4.37/modules/dav/fs/mod_dav_fs.c.r1842929+
 | ||||
| +++ httpd-2.4.37/modules/dav/fs/mod_dav_fs.c
 | ||||
| @@ -29,6 +29,10 @@
 | ||||
|   | ||||
|  extern module AP_MODULE_DECLARE_DATA dav_fs_module; | ||||
|   | ||||
| +#ifndef DEFAULT_DAV_LOCKDB
 | ||||
| +#define DEFAULT_DAV_LOCKDB "davlockdb"
 | ||||
| +#endif
 | ||||
| +
 | ||||
|  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;
 | ||||
|  } | ||||
|   | ||||
|  static void *dav_fs_merge_server_config(apr_pool_t *p, | ||||
| --- httpd-2.4.37/modules/md/mod_md_config.c.r1842929+
 | ||||
| +++ httpd-2.4.37/modules/md/mod_md_config.c
 | ||||
| @@ -54,10 +54,14 @@
 | ||||
|   | ||||
|  #define DEF_VAL     (-1) | ||||
|   | ||||
| +#ifndef MD_DEFAULT_BASE_DIR
 | ||||
| +#define MD_DEFAULT_BASE_DIR "state/md"
 | ||||
| +#endif
 | ||||
| +
 | ||||
|  /* Default settings for the global conf */ | ||||
|  static md_mod_conf_t defmc = { | ||||
|      NULL, | ||||
| -    "md",
 | ||||
| +    NULL,
 | ||||
|      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); | ||||
|      } | ||||
| --- httpd-2.4.37/server/core.c.r1842929+
 | ||||
| +++ httpd-2.4.37/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; | ||||
|   | ||||
| +static const char *core_state_dir;
 | ||||
| +
 | ||||
|  static void *create_core_dir_config(apr_pool_t *a, char *dir) | ||||
|  { | ||||
|      core_dir_config *conf; | ||||
| @@ -3104,6 +3106,24 @@
 | ||||
|      return NULL; | ||||
|  } | ||||
|   | ||||
| +static const char *set_state_dir(cmd_parms *cmd, void *dummy, const char *arg)
 | ||||
| +{
 | ||||
| +    const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
 | ||||
| +
 | ||||
| +    if (err != NULL) {
 | ||||
| +        return err;
 | ||||
| +    }
 | ||||
| +
 | ||||
| +    if ((apr_filepath_merge((char**)&core_state_dir, NULL,
 | ||||
| +                            ap_server_root_relative(cmd->temp_pool, arg),
 | ||||
| +                            APR_FILEPATH_TRUENAME, cmd->pool) != APR_SUCCESS)
 | ||||
| +        || !ap_is_directory(cmd->temp_pool, core_state_dir)) {
 | ||||
| +        return "DefaultStateDir must be a valid directory, absolute or relative to ServerRoot";
 | ||||
| +    }
 | ||||
| +
 | ||||
| +    return NULL;
 | ||||
| +}
 | ||||
| +
 | ||||
|  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 @@
 | ||||
|    "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.)"), | ||||
| +AP_INIT_TAKE1("DefaultStateDir", set_state_dir, NULL, RSRC_CONF | EXEC_ON_READ,
 | ||||
| +  "Common directory for persistent state (databases, long-lived caches, etc.)"),
 | ||||
|  AP_INIT_TAKE1("ErrorLog", set_server_string_slot, | ||||
|    (void *)APR_OFFSETOF(server_rec, error_fname), RSRC_CONF, | ||||
|    "The filename of the error log"), | ||||
| @@ -5150,6 +5172,27 @@
 | ||||
|      } | ||||
|  } | ||||
|   | ||||
| +AP_DECLARE(char *) ap_state_dir_relative(apr_pool_t *p, const char *file)
 | ||||
| +{
 | ||||
| +    char *newpath = NULL;
 | ||||
| +    apr_status_t rv;
 | ||||
| +    const char *state_dir;
 | ||||
| +
 | ||||
| +    state_dir = core_state_dir
 | ||||
| +        ? core_state_dir
 | ||||
| +        : ap_server_root_relative(p, DEFAULT_REL_STATEDIR);
 | ||||
| +
 | ||||
| +    rv = apr_filepath_merge(&newpath, state_dir, file, APR_FILEPATH_TRUENAME, p);
 | ||||
| +    if (newpath && (rv == APR_SUCCESS || APR_STATUS_IS_EPATHWILD(rv)
 | ||||
| +                                      || APR_STATUS_IS_ENOENT(rv)
 | ||||
| +                                      || APR_STATUS_IS_ENOTDIR(rv))) {
 | ||||
| +        return newpath;
 | ||||
| +    }
 | ||||
| +    else {
 | ||||
| +        return NULL;
 | ||||
| +    }
 | ||||
| +}
 | ||||
| +
 | ||||
|  static apr_random_t *rng = NULL; | ||||
|  #if APR_HAS_THREADS | ||||
|  static apr_thread_mutex_t *rng_mutex = NULL; | ||||
							
								
								
									
										11
									
								
								httpd.spec
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								httpd.spec
									
									
									
									
									
								
							| @ -13,7 +13,7 @@ | ||||
| Summary: Apache HTTP Server | ||||
| Name: httpd | ||||
| Version: 2.4.37 | ||||
| Release: 1%{?dist} | ||||
| Release: 2%{?dist} | ||||
| URL: https://httpd.apache.org/ | ||||
| Source0: https://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2 | ||||
| Source1: index.html | ||||
| @ -63,7 +63,7 @@ Patch6: httpd-2.4.34-apctlsystemd.patch | ||||
| # Needed for socket activation and mod_systemd patch | ||||
| Patch19: httpd-2.4.25-detect-systemd.patch | ||||
| # Features/functional changes | ||||
| Patch21: httpd-2.4.33-mddefault.patch | ||||
| Patch21: httpd-2.4.37-r1842929+.patch | ||||
| Patch23: httpd-2.4.33-export.patch | ||||
| Patch24: httpd-2.4.1-corelimit.patch | ||||
| Patch25: httpd-2.4.25-selinux.patch | ||||
| @ -224,7 +224,7 @@ interface for storing and accessing per-user session data. | ||||
| 
 | ||||
| %patch19 -p1 -b .detectsystemd | ||||
| 
 | ||||
| %patch21 -p1 -b .mddefault | ||||
| %patch21 -p1 -b .r1842929+ | ||||
| %patch23 -p1 -b .export | ||||
| %patch24 -p1 -b .corelimit | ||||
| %patch25 -p1 -b .selinux | ||||
| @ -729,6 +729,11 @@ exit $rv | ||||
| %{_rpmconfigdir}/macros.d/macros.httpd | ||||
| 
 | ||||
| %changelog | ||||
| * Wed Oct 31 2018 Joe Orton <jorton@redhat.com> - 2.4.37-2 | ||||
| - add DefaultStateDir/ap_state_dir_relative() | ||||
| - mod_dav_fs: use state dir for default DAVLockDB | ||||
| - mod_md: use state dir for default MDStoreDir | ||||
| 
 | ||||
| * Wed Oct 31 2018 Joe Orton <jorton@redhat.com> - 2.4.37-1 | ||||
| - update to 2.4.37 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user