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