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

Reply via email to