diff options
author | Olli Hauer <ohauer@FreeBSD.org> | 2013-11-05 22:00:07 +0000 |
---|---|---|
committer | Olli Hauer <ohauer@FreeBSD.org> | 2013-11-05 22:00:07 +0000 |
commit | 2adbdf09f40dcc5c70c18d6ef8b01767c4340fa2 (patch) | |
tree | 978b4eb9c549a87fda6b7c7ee65da87c5bd8dd50 /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/Makefile | 2 | ||||
-rw-r--r-- | www/apache22/files/patch-bug-55306 | 50 | ||||
-rw-r--r-- | www/apache22/pkg-plist | 4 |
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 |