On Thu, Jul 11, 2013 at 02:22:12PM +0200, Ondřej Surý wrote: > there's one catch. The Apache 2.4 should have a new API and it should be > able to set per request document_root. (It was proposed by me for this > module and later SF submitted a tad bit different patch achieving the same > functionality.) > > And I just didn't have a time to lookup the new API and update the upstream.
I *think* this is right, but I have no real way to test it beyond build-testing; so if you get a chance to look over this then that would be very helpful. diff -Nru mod-vhost-ldap-2.0.8/debian/apache2 mod-vhost-ldap-2.0.8/debian/apache2 --- mod-vhost-ldap-2.0.8/debian/apache2 1970-01-01 01:00:00.000000000 +0100 +++ mod-vhost-ldap-2.0.8/debian/apache2 2013-07-10 23:17:48.000000000 +0100 @@ -0,0 +1,3 @@ +mod .libs/mod_vhost_ldap.so +mod debian/vhost_ldap.load +mod debian/vhost_ldap.conf diff -Nru mod-vhost-ldap-2.0.8/debian/changelog mod-vhost-ldap-2.0.8/debian/changelog --- mod-vhost-ldap-2.0.8/debian/changelog 2011-06-21 17:18:19.000000000 +0100 +++ mod-vhost-ldap-2.0.8/debian/changelog 2013-07-10 23:18:58.000000000 +0100 @@ -1,3 +1,10 @@ +mod-vhost-ldap (2.0.8-1.1) UNRELEASED; urgency=low + + * Non-maintainer upload. + * Port to Apache 2.4 (closes: #666813). + + -- Colin Watson <cjwat...@debian.org> Wed, 10 Jul 2013 23:18:48 +0100 + mod-vhost-ldap (2.0.8-1) unstable; urgency=low * Upstream release 2.0.8 diff -Nru mod-vhost-ldap-2.0.8/debian/control mod-vhost-ldap-2.0.8/debian/control --- mod-vhost-ldap-2.0.8/debian/control 2011-06-21 17:18:19.000000000 +0100 +++ mod-vhost-ldap-2.0.8/debian/control 2013-07-10 23:18:40.000000000 +0100 @@ -3,13 +3,14 @@ Priority: optional Maintainer: Ondřej Surý <ond...@debian.org> Standards-Version: 3.8.4 -Build-Depends: debhelper (>> 7.0.52~), +Build-Depends: debhelper (>> 7.2.11~), quilt (>= 0.46-7~), - apache2-threaded-dev (>= 2.2.3-3) + dh-apache2, + apache2-dev (>= 2.2.3-3) Package: libapache2-mod-vhost-ldap Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, apache2.2-common +Depends: ${shlibs:Depends}, ${misc:Depends} Description: Apache 2 module for Virtual Hosting from LDAP mod-vhost-ldap is an Apache 2 module for storing and configuring virtual hosts from LDAP. It supports the DocumentRoot, ScriptAlias, diff -Nru mod-vhost-ldap-2.0.8/debian/patches/document-root.patch mod-vhost-ldap-2.0.8/debian/patches/document-root.patch --- mod-vhost-ldap-2.0.8/debian/patches/document-root.patch 1970-01-01 01:00:00.000000000 +0100 +++ mod-vhost-ldap-2.0.8/debian/patches/document-root.patch 2013-07-11 15:13:23.000000000 +0100 @@ -0,0 +1,60 @@ +Description: Update document_root handling for Apache 2.4 +Author: Colin Watson <cjwat...@ubuntu.com> +Forwarded: no +Last-Update: 2013-07-11 + +Index: b/mod_vhost_ldap.c +=================================================================== +--- a/mod_vhost_ldap.c ++++ b/mod_vhost_ldap.c +@@ -469,7 +469,7 @@ + int sleep1 = 1; + int sleep; + struct berval hostnamebv, shostnamebv; +- char **document_root_ptr; ++ char *document_root; + int ret = DECLINED; + + reqc = +@@ -687,9 +687,11 @@ + } + ap_set_module_config(r->server->module_config, &core_module, core); + +- document_root_ptr = (char **)&core->ap_document_root; ++ document_root = apr_pstrdup(r->pool, core->ap_document_root); ++#elif AP_MODULE_MAGIC_AT_LEAST(20110605,0) ++ document_root = apr_pstrdup(r->pool, ap_context_document_root(r)); + #else +- document_root_ptr = (char **)&r->document_root; ++ document_root = apr_pstrdup(r->pool, r->document_root); + #endif + + /* Make it absolute, relative to ServerRoot */ +@@ -703,16 +705,25 @@ + } + + /* TODO: ap_configtestonly && ap_docrootcheck && */ +- if (apr_filepath_merge(document_root_ptr, NULL, reqc->docroot, ++ if (apr_filepath_merge(&document_root, NULL, reqc->docroot, + APR_FILEPATH_TRUENAME, r->pool) != APR_SUCCESS + || !ap_is_directory(r->pool, reqc->docroot)) { + + ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, + "[mod_vhost_ldap.c] set_document_root: Warning: DocumentRoot [%s] does not exist", + reqc->docroot); +- *document_root_ptr = reqc->docroot; ++ document_root = reqc->docroot; + } + ++#ifndef HAS_PER_REQUEST_DOCUMENT_ROOT ++ *(char **)&core->ap_document_root = document_root; ++#elif AP_MODULE_MAGIC_AT_LEAST(20110605,0) ++ ap_set_context_info(r, NULL, document_root); ++ ap_set_document_root(r, document_root); ++#else ++ *(char **)&r->document_root = document_root; ++#endif ++ + /* Return DECLINE to allow post-processing by other modules (mod_rewrite, mod_alias) */ + return ret; + } diff -Nru mod-vhost-ldap-2.0.8/debian/patches/series mod-vhost-ldap-2.0.8/debian/patches/series --- mod-vhost-ldap-2.0.8/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 +++ mod-vhost-ldap-2.0.8/debian/patches/series 2013-07-11 14:35:16.000000000 +0100 @@ -0,0 +1 @@ +document-root.patch diff -Nru mod-vhost-ldap-2.0.8/debian/rules mod-vhost-ldap-2.0.8/debian/rules --- mod-vhost-ldap-2.0.8/debian/rules 2011-06-21 17:18:19.000000000 +0100 +++ mod-vhost-ldap-2.0.8/debian/rules 2013-07-10 23:24:42.000000000 +0100 @@ -19,7 +19,7 @@ #}}} %: - dh --with quilt $@ + dh $@ --with quilt,apache2 AP2_MAKE_DEFS=top_dir=/usr/share/apache2 \ APXS=apxs2 APACHECTL=apachectl2 \ @@ -35,8 +35,4 @@ $(MAKE) $(AP2_MAKE_DEFS) override_dh_auto_install: - mkdir -p $(DEST)/usr/lib/apache2/modules - install -m 644 .libs/mod_vhost_ldap.so $(DEST)/usr/lib/apache2/modules - mkdir -p $(DEST)/etc/apache2/mods-available - install -m 644 debian/vhost_ldap.load $(DEST)/etc/apache2/mods-available - install -m 644 debian/vhost_ldap.conf $(DEST)/etc/apache2/mods-available + # handled by dh_apache2 -- Colin Watson [cjwat...@debian.org] -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org