- 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>
This commit is contained in:
parent
9d7ac6ce31
commit
2adbdf09f4
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=332914
3 changed files with 55 additions and 1 deletions
|
@ -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}
|
||||
|
|
50
www/apache22/files/patch-bug-55306
Normal file
50
www/apache22/files/patch-bug-55306
Normal file
|
@ -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);
|
||||
}
|
||||
|
||||
/*
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue