Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Nov 2013 22:00:08 +0000 (UTC)
From:      Olli Hauer <ohauer@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r332914 - in head/www/apache22: . files
Message-ID:  <201311052200.rA5M08P5057668@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ohauer
Date: Tue Nov  5 22:00:07 2013
New Revision: 332914
URL: http://svnweb.freebsd.org/changeset/ports/332914

Log:
  - 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>

Added:
  head/www/apache22/files/patch-bug-55306   (contents, props changed)
Modified:
  head/www/apache22/Makefile
  head/www/apache22/pkg-plist

Modified: head/www/apache22/Makefile
==============================================================================
--- head/www/apache22/Makefile	Tue Nov  5 21:57:16 2013	(r332913)
+++ head/www/apache22/Makefile	Tue Nov  5 22:00:07 2013	(r332914)
@@ -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}

Added: head/www/apache22/files/patch-bug-55306
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/apache22/files/patch-bug-55306	Tue Nov  5 22:00:07 2013	(r332914)
@@ -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);
+     }
+ 
+     /*

Modified: head/www/apache22/pkg-plist
==============================================================================
--- head/www/apache22/pkg-plist	Tue Nov  5 21:57:16 2013	(r332913)
+++ head/www/apache22/pkg-plist	Tue Nov  5 22:00:07 2013	(r332914)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311052200.rA5M08P5057668>