summaryrefslogtreecommitdiff
path: root/www/apache22
diff options
context:
space:
mode:
authorOlli Hauer <ohauer@FreeBSD.org>2013-11-05 22:00:07 +0000
committerOlli Hauer <ohauer@FreeBSD.org>2013-11-05 22:00:07 +0000
commit2adbdf09f40dcc5c70c18d6ef8b01767c4340fa2 (patch)
tree978b4eb9c549a87fda6b7c7ee65da87c5bd8dd50 /www/apache22
parent- update to version 1.3.2 (diff)
- backport upstream commit r1528718 into mod_dav [1].
This is needed because of a bug [2] due to an incorrect implementation of RFC 4918. The symptoms are a failure to copy a svn tree via DAV: - fix package installation with old pkg tools (create empty folders in pkg-plist even staging is enabled) [1] http://svn.apache.org/viewvc?view=revision&revision=1528718 [2] https://issues.apache.org/bugzilla/show_bug.cgi?id=55306 PR: ports/183685 Submitted by: Pietro Cerutti <gahr@FreeBSD.org>
Notes
Notes: svn path=/head/; revision=332914
Diffstat (limited to 'www/apache22')
-rw-r--r--www/apache22/Makefile2
-rw-r--r--www/apache22/files/patch-bug-5530650
-rw-r--r--www/apache22/pkg-plist4
3 files changed, 55 insertions, 1 deletions
diff --git a/www/apache22/Makefile b/www/apache22/Makefile
index e19ffb892f9e..cd3472462411 100644
--- a/www/apache22/Makefile
+++ b/www/apache22/Makefile
@@ -2,7 +2,7 @@
PORTNAME= apache22
PORTVERSION= 2.2.25
-#PORTREVISION?= 1
+PORTREVISION?= 1
CATEGORIES= www ipv6
MASTER_SITES= ${MASTER_SITE_APACHE_HTTPD}
DISTNAME= httpd-${PORTVERSION}
diff --git a/www/apache22/files/patch-bug-55306 b/www/apache22/files/patch-bug-55306
new file mode 100644
index 000000000000..22ec8f55b105
--- /dev/null
+++ b/www/apache22/files/patch-bug-55306
@@ -0,0 +1,50 @@
+PR: ports/183685
+[1] http://svn.apache.org/viewvc?view=revision&revision=1528718
+[2] https://issues.apache.org/bugzilla/show_bug.cgi?id=55306
+===========================================================================
+--- modules/dav/main/mod_dav.c.orig 2013-06-27 18:54:14.000000000 +0200
++++ modules/dav/main/mod_dav.c 2013-11-05 16:31:51.000000000 +0100
+@@ -2733,7 +2733,9 @@
+ */
+ if ((err = dav_validate_request(r, resource, depth, NULL,
+ &multi_response,
+- DAV_VALIDATE_PARENT
++ (is_move ? DAV_VALIDATE_PARENT
++ :DAV_VALIDATE_RESOURCE
++ |DAV_VALIDATE_NO_MODIFY)
+ | DAV_VALIDATE_USE_424,
+ NULL)) != NULL) {
+ err = dav_push_error(r->pool, err->status, 0,
+--- modules/dav/main/mod_dav.h.orig 2013/10/03 05:06:08 1528717
++++ modules/dav/main/mod_dav.h 2013/10/03 05:29:35 1528718
+@@ -1297,6 +1297,9 @@
+ the 424 DAV:response */
+ #define DAV_VALIDATE_USE_424 0x0080 /* return 424 status, not 207 */
+ #define DAV_VALIDATE_IS_PARENT 0x0100 /* for internal use */
++#define DAV_VALIDATE_NO_MODIFY 0x0200 /* resource is not being modified
++ so allow even if lock token
++ is not provided */
+
+ /* Lock-null related public lock functions */
+ DAV_DECLARE(int) dav_get_resource_state(request_rec *r,
+--- modules/dav/main/util.c.orig 2013/10/03 05:06:08 1528717
++++ modules/dav/main/util.c 2013/10/03 05:29:35 1528718
+@@ -954,13 +954,16 @@
+ /*
+ ** For methods other than LOCK:
+ **
+- ** If we have no locks, then <seen_locktoken> can be set to true --
++ ** If we have no locks or if the resource is not being modified
++ ** (per RFC 4918 the lock token is not required on resources
++ ** we are not changing), then <seen_locktoken> can be set to true --
+ ** pretending that we've already met the requirement of seeing one
+ ** of the resource's locks in the If: header.
+ **
+ ** Otherwise, it must be cleared and we'll look for one.
+ */
+- seen_locktoken = (lock_list == NULL);
++ seen_locktoken = (lock_list == NULL
++ || flags & DAV_VALIDATE_NO_MODIFY);
+ }
+
+ /*
diff --git a/www/apache22/pkg-plist b/www/apache22/pkg-plist
index feb52f2a9358..e4366f2dd690 100644
--- a/www/apache22/pkg-plist
+++ b/www/apache22/pkg-plist
@@ -1,4 +1,8 @@
@comment $FreeBSD$
+@comment keep the next three lines on top (only required for old pkg_... tools)
+@exec mkdir -p %D/%%ETCDIR%%/envvars.d 2> /dev/null || true
+@exec mkdir -p %D/%%ETCDIR%%/extra 2> /dev/null || true
+@exec mkdir -p %D/%%ETCDIR%%/Includes 2> /dev/null || true
%%ETCDIR%%/Includes/no-accf.conf
include/apache22/ap_compat.h
include/apache22/ap_config.h