You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "Brian J. France" <br...@brianfrance.com> on 2009/09/14 16:11:24 UTC

DAV Option Patch

I would like to get some form of mod_dav_acl[1] added to httpd.  My  
end goal with all of this is to get a mod_caldav and mod_cardav  
accepted down the line or at least be able to build the module with  
out hacking the core httpd source.

I am going to start by splitting up the Jari's mod_dav_acl patches to  
httpd into small patches with detailed explanation on why they are  
needed and first up is the DAV options patch.

Currently there is no way for other dav modules to add things do the  
DAV or Allow headers of a OPTIONS request, only the mod_dav module can  
output those items.  This patch:

   http://www.brianfrance.com/software/apache/dav/dav-options.diff

allows other mod_dav modules to add options to those headers.  The  
next patch is only an example usage of the above patch and should not  
be added to the svn tree.  This patch will add a mod_dav_acl module to  
the build:

   http://www.brianfrance.com/software/apache/dav/dav-options-acl.diff

The patch will require you to run ./buildconf to regenerate configure  
and:

     --enable-dav --enable-dav-acl

to enable it.  This example skeleton acl module using the options  
patch will add access-control to the DAV header and REPORT and ACL to  
the Allow header:

   DAV: 1,2,access-control
   Allow:  
OPTIONS 
,GET 
,HEAD 
,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,LOCK,UNLOCK,REPORT,ACL

This is the first step in getting a working mod_dav_acl module and  
with that allow a mod_caldav module to do something like this:

   DAV: 1,2,access-control,calendar-access
   Allow:  
OPTIONS 
,GET 
,HEAD 
,POST 
,DELETE 
,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,LOCK,UNLOCK,REPORT,ACL,MKCALENDAR

and a mod_carddav module to do something like:

   DAV: 1,2,access-control,addressbook,extended-mkcol
   Allow:  
OPTIONS 
,GET 
,HEAD 
,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,LOCK,UNLOCK,REPORT,ACL

There is one draw back to this patch in that there could be duplicated  
values in the headers.  Both mod_dav_acl and mod_caldav want to add  
the REPORT in the Allow header, so it would show up twice in the  
list.  I am not sure if this is a major problem, but wanted to make a  
note of it.

Thoughts, comments, questions?

These patches are based off of 2.2.13, but if you would rather have  
patch against a branch or head, please let me know.

Brian

[1] http://sourceforge.net/projects/moddavacl/


Re: DAV Option Patch

Posted by Jeff Trawick <tr...@gmail.com>.
On Mon, Sep 14, 2009 at 5:42 PM, Brian J. France <br...@brianfrance.com>wrote:

>
>
> Jari is the original author of mod_dav_acl, which requires patches to httpd
> to work.  I need the same functionality added to httpd to get a mod_dav_acl
> type module working, so I have split up his patch into smaller pieces.  Can
> a patch be under a different license than the original code?
>

Do you mean, can somebody create a patch to httpd and give the patch a
different license than ASL?  Or more directly, can we decide what license
Jari intended, or be compelled to agree to, for his patch?

We don't want to debate that here, as it is missing the point.  See wrowe's
post from 1-2 hours ago.  The author should contribute it to us, etc.  If
not, we need to remove what was already committed.

Re: DAV Option Patch

Posted by Graham Leggett <mi...@sharp.fm>.
Jari Urpalainen wrote:

> Ok, here's the patch (which I'm authorized to submit). And yes you can
> apply the Apache License, Version 2.0 or what is the official name.

Excellent, thank you for the running round - this clears Brian to keep
submitting patches based on this one.

Regards,
Graham
--

Re: DAV Option Patch

Posted by Jari Urpalainen <ja...@nokia.com>.
On Wed, 2009-09-16 at 11:39 +0200, ext Joe Orton wrote:
> On Wed, Sep 16, 2009 at 10:09:23AM +0300, Jari Urpalainen wrote:
> > I'll assume that you don't need here the content which is included
> > within mod_dav_acl package at sf.net ? Otherwise you are certainly free
> > to use it anyways you like. Patch contains mostly some "hooks" to
> > mod_dav, but since i'm not that familiar with apr & apache code, you can
> > certainly improve things. For dav_acl, caldav and carddav modules (the
> > latter of which i just recently submitted), only similar kind of things
> > are needed, so you can change the api freely as long as the
> > functionality remains. I do have some cycles to update my modules
> > accordingly. What comes to having included these with httpd, I'm in the
> > process of asking permission from my company the change the license to
> > APL
> 
> If you can submit the patches to the ASF under the Apache Software 
> License, it is sufficient for you to send them to this mailing list - 
> that counts as a "contribution to the ASF".  
> 
> If you can do that, we can then include the patches in the tree, but if 
> your employer owns the copyright to the patches, then be sure you are 
> authorized to submit the code under that license first.
> 
> Regards, Joe

Ok, here's the patch (which I'm authorized to submit). And yes you can
apply the Apache License, Version 2.0 or what is the official name.

thanks Jari

Re: DAV Option Patch

Posted by Joe Orton <jo...@redhat.com>.
On Wed, Sep 16, 2009 at 10:09:23AM +0300, Jari Urpalainen wrote:
> I'll assume that you don't need here the content which is included
> within mod_dav_acl package at sf.net ? Otherwise you are certainly free
> to use it anyways you like. Patch contains mostly some "hooks" to
> mod_dav, but since i'm not that familiar with apr & apache code, you can
> certainly improve things. For dav_acl, caldav and carddav modules (the
> latter of which i just recently submitted), only similar kind of things
> are needed, so you can change the api freely as long as the
> functionality remains. I do have some cycles to update my modules
> accordingly. What comes to having included these with httpd, I'm in the
> process of asking permission from my company the change the license to
> APL

If you can submit the patches to the ASF under the Apache Software 
License, it is sufficient for you to send them to this mailing list - 
that counts as a "contribution to the ASF".  

If you can do that, we can then include the patches in the tree, but if 
your employer owns the copyright to the patches, then be sure you are 
authorized to submit the code under that license first.

Regards, Joe

Re: DAV Option Patch

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
Jari Urpalainen wrote:
> What comes to having included these with httpd, I'm in the
> process of asking permission from my company the change the license to
> APL

APL?  We presume you mean AL (or ApL) ;-)

Re: DAV Option Patch

Posted by Jari Urpalainen <ja...@nokia.com>.
On Tue, 2009-09-15 at 11:25 +0200, ext Graham Leggett wrote:
> Brian J. France wrote:
> 
> > Jari is the original author of mod_dav_acl, which requires patches to
> > httpd to work.  I need the same functionality added to httpd to get a
> > mod_dav_acl type module working, so I have split up his patch into
> > smaller pieces.  Can a patch be under a different license than the
> > original code?
> 
> Yes it can, but only the author of the original code can do that, as
> only the original author (the copyright holder) can set the terms by
> which his patch can be used.
> 
> The way forward is to ask Jari to submit his httpd-2.2.8-ju.patch to us,
> granting us permission to use the Apache software license on it.

I'll assume that you don't need here the content which is included
within mod_dav_acl package at sf.net ? Otherwise you are certainly free
to use it anyways you like. Patch contains mostly some "hooks" to
mod_dav, but since i'm not that familiar with apr & apache code, you can
certainly improve things. For dav_acl, caldav and carddav modules (the
latter of which i just recently submitted), only similar kind of things
are needed, so you can change the api freely as long as the
functionality remains. I do have some cycles to update my modules
accordingly. What comes to having included these with httpd, I'm in the
process of asking permission from my company the change the license to
APL

Thanks, Jari


Re: DAV Option Patch

Posted by Graham Leggett <mi...@sharp.fm>.
Brian J. France wrote:

> Jari is the original author of mod_dav_acl, which requires patches to
> httpd to work.  I need the same functionality added to httpd to get a
> mod_dav_acl type module working, so I have split up his patch into
> smaller pieces.  Can a patch be under a different license than the
> original code?

Yes it can, but only the author of the original code can do that, as
only the original author (the copyright holder) can set the terms by
which his patch can be used.

The way forward is to ask Jari to submit his httpd-2.2.8-ju.patch to us,
granting us permission to use the Apache software license on it.

At that point you are free to chop up the patch and submit it to us.

Long answer: A person who creates some code owns the copyright on that
code, and can set any terms they like on it's use. The copyright holder
can also change their mind as to the terms at some future date, and they
can also give one group of people the code under terms A (like bundled
with mod_dav_acl under the LGPL) and simultaneously give another group
of people the same code under terms B (like giving httpd-2.2.8-ju.patch
to the ASF under the ASL).

The reason all this matters is the terms of the LGPL - any derivative
work of LGPL code (ie your patches, derived from Jari's patches), has to
also be licensed under the LGPL. And LGPL code cannot be imported into
other code that isn't itself LGPL. Because httpd isn't LGPL, the LGPL
license doesn't allow it, so we (the httpd project) are legally obliged
in terms of the LGPL not to accept it.

The solution is for Jari to release httpd-2.2.8-ju.patch to us under the
ASL, and that clears the way legally for all the code to be officially
incorporated into the httpd codebase, removing the need for the special
patch on your side, and that can be done by Jari submitting the
httpd-2.2.8-ju.patch on this mailing list, and confirming his permission
to release it under the ASL.

Jari is still free to include the httpd-2.2.8-ju.patch within
mod_dav_acl under the LGPL, because he is free to license his code in as
many ways as he likes. The existing mod_dav_acl is not affected in any way.

Regards,
Graham
--


Re: DAV Option Patch

Posted by "Brian J. France" <br...@brianfrance.com>.
On Sep 14, 2009, at 05:02 PM, Joe Orton wrote:

> On Mon, Sep 14, 2009 at 10:11:24AM -0400, Brian J. France wrote:
>> I would like to get some form of mod_dav_acl[1] added to httpd.  My  
>> end
>> goal with all of this is to get a mod_caldav and mod_cardav  
>> accepted down
>> the line or at least be able to build the module with out hacking the
>> core httpd source.
>>
>> I am going to start by splitting up the Jari's mod_dav_acl patches to
>> httpd into small patches with detailed explanation on why they are
>> needed and first up is the DAV options patch.
>>
>> Currently there is no way for other dav modules to add things do  
>> the DAV
>> or Allow headers of a OPTIONS request, only the mod_dav module can
>> output those items.  This patch:
>
> It's not clear to me - is Jari the original author of this code, or
> yourself?  mod_dav_acl seems to be licensed under the LGPL still.


Jari is the original author of mod_dav_acl, which requires patches to  
httpd to work.  I need the same functionality added to httpd to get a  
mod_dav_acl type module working, so I have split up his patch into  
smaller pieces.  Can a patch be under a different license than the  
original code?

My plan is to create a mod_dav_acl module that would require providers  
to plugin (mod_dav_acl_fs, mod_dav_acl_dbd, etc).

Brian

Re: DAV Option Patch

Posted by Joe Orton <jo...@redhat.com>.
On Mon, Sep 14, 2009 at 10:11:24AM -0400, Brian J. France wrote:
> I would like to get some form of mod_dav_acl[1] added to httpd.  My end 
> goal with all of this is to get a mod_caldav and mod_cardav accepted down 
> the line or at least be able to build the module with out hacking the 
> core httpd source.
>
> I am going to start by splitting up the Jari's mod_dav_acl patches to  
> httpd into small patches with detailed explanation on why they are  
> needed and first up is the DAV options patch.
>
> Currently there is no way for other dav modules to add things do the DAV 
> or Allow headers of a OPTIONS request, only the mod_dav module can  
> output those items.  This patch:

It's not clear to me - is Jari the original author of this code, or 
yourself?  mod_dav_acl seems to be licensed under the LGPL still.

Regards, Joe

Re: DAV Option Patch

Posted by Jari Urpalainen <ja...@nokia.com>.
On Tue, 2009-09-15 at 18:42 +0200, ext Julian Reschke wrote:
> Brian J. France wrote:
> > ...
> > There is one draw back to this patch in that there could be duplicated 
> > values in the headers.  Both mod_dav_acl and mod_caldav want to add the 
> > REPORT in the Allow header, so it would show up twice in the list.  I am 
> > not sure if this is a major problem, but wanted to make a note of it.
> > ...
> 
> It shouldn't be a problem, but on the other hand: is there any 
> particular reason for the new code not to enforce each value is only 
> reported once?
> 
> BR, Julian

Nothing at all, since it is trivial to fix it so (originally i didn't
bother to do that since I knew clients don't mind...)

br, Jari


Re: DAV Option Patch

Posted by Julian Reschke <ju...@gmx.de>.
Brian J. France wrote:
> ...
> There is one draw back to this patch in that there could be duplicated 
> values in the headers.  Both mod_dav_acl and mod_caldav want to add the 
> REPORT in the Allow header, so it would show up twice in the list.  I am 
> not sure if this is a major problem, but wanted to make a note of it.
> ...

It shouldn't be a problem, but on the other hand: is there any 
particular reason for the new code not to enforce each value is only 
reported once?

BR, Julian

Re: DAV Option Patch

Posted by Graham Leggett <mi...@sharp.fm>.
Brian J. France wrote:

> While Jari's mod_dav_acl is licensed under LGPL, can the patches to
> httpd be licensed that way?
> 
> What would we need to do to get them added if Jari's patches (or even
> mod_dav_acl) would fall under LGPL?

All Jari would need to do is email the list to confirm that he is happy
that these patches can be licensed under the ASF license and included
within httpd, and that's it.

Jari's confirmation would not affect mod_dav_acl in any way, he can
license mod_dav_acl any way he feels comfortable with. It's only the
patches that are imported into httpd - ie these patches you are
submitting - that are affected.

Regards,
Graham
--

Re: DAV Option Patch

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
Brian J. France wrote:
> 
> While Jari's mod_dav_acl is licensed under LGPL, can the patches to
> httpd be licensed that way?

They are licensed however he licenses them.

> What would we need to do to get them added if Jari's patches (or even
> mod_dav_acl) would fall under LGPL?
> 
> I know he is would like to see them added to httpd.

That will only happen if he offers them to httpd dev list under the Apache
License.  The best way for that to happen is an email to the list from him.
If they are substantial, we also need an ICLA from him;
http://www.apache.org/licenses/#clas


Re: DAV Option Patch

Posted by "Brian J. France" <br...@brianfrance.com>.
On Sep 14, 2009, at 05:23 PM, Graham Leggett wrote:

> Brian J. France wrote:
>
>> Can you credit Jari Urpalainen (jari.urpalainen nokia.com) as well as
>> these are all based on his patches for his mod_dav_acl.
>
> Done in 814860.
>
>> More patches tomorrow.
>
> I see the example module that you asked not to commit is ASF licensed,
> is this true


That example module is my testing module and is under the ASF licensed.


> also of the patches you've have submitted so far?


While Jari's mod_dav_acl is licensed under LGPL, can the patches to  
httpd be licensed that way?

What would we need to do to get them added if Jari's patches (or even  
mod_dav_acl) would fall under LGPL?

I know he is would like to see them added to httpd.

Brian




Re: DAV Option Patch

Posted by Graham Leggett <mi...@sharp.fm>.
Brian J. France wrote:

> Can you credit Jari Urpalainen (jari.urpalainen nokia.com) as well as
> these are all based on his patches for his mod_dav_acl.

Done in 814860.

> More patches tomorrow.

I see the example module that you asked not to commit is ASF licensed,
is this true also of the patches you've have submitted so far?

Regards,
Graham
--

Re: DAV Option Patch

Posted by "Brian J. France" <br...@brianfrance.com>.
On Sep 14, 2009, at 04:32 PM, Graham Leggett wrote:

> Brian J. France wrote:
>
>> I have updated the patches:
>>
>>  http://www.brianfrance.com/software/apache/dav/dav-option-provider.diff
>
> Committed in r814832, can you verify that I have attributed the patch
> correctly in CHANGES?

Thanks!

Can you credit Jari Urpalainen (jari.urpalainen nokia.com) as well as  
these are all based on his patches for his mod_dav_acl.

More patches tomorrow.

Cheers,

Brian






Re: DAV Option Patch

Posted by Graham Leggett <mi...@sharp.fm>.
Brian J. France wrote:

> I have updated the patches:
> 
>   http://www.brianfrance.com/software/apache/dav/dav-option-provider.diff

Committed in r814832, can you verify that I have attributed the patch
correctly in CHANGES?

Regards,
Graham
--

Re: DAV Option Patch

Posted by "Brian J. France" <br...@brianfrance.com>.
On Sep 14, 2009, at 12:04 PM, Dan Poirier wrote:
> One suggestion - using "hook" in the names could be confusing since  
> this
> isn't using the built-in hook mechanism.  Since it is using the  
> provider
> mechanism, maybe names like "dav_options_provider" would be clearer.



I have updated the patches:

   http://www.brianfrance.com/software/apache/dav/dav-option-provider.diff

and the example module (which shouldn't be commited):

   http://www.brianfrance.com/software/apache/dav/dav-option-provider-acl.diff

Let me know what you think.

Thanks!

Brian

Re: DAV Option Patch

Posted by Dan Poirier <po...@pobox.com>.
"Brian J. France" <br...@brianfrance.com> writes:

> I have updated the dav-options patch against head:
>
>   http://www.brianfrance.com/software/apache/dav/dav-options.diff

One suggestion - using "hook" in the names could be confusing since this
isn't using the built-in hook mechanism.  Since it is using the provider
mechanism, maybe names like "dav_options_provider" would be clearer.

-- 
Dan Poirier <po...@pobox.com>

Re: DAV Option Patch

Posted by "Brian J. France" <br...@brianfrance.com>.
On Sep 14, 2009, at 10:23 AM, Graham Leggett wrote:
> Brian J. France wrote:
>
>> These patches are based off of 2.2.13, but if you would rather have
>> patch against a branch or head, please let me know.
>
> Creating patches off head is the place to start, and once the patches
> have been committed to head, the next step is for people to vote on
> backporting the patches to v2.2, which as you already have patches for
> v2.2 should be straightfoward.


I have updated the dav-options patch against head:

   http://www.brianfrance.com/software/apache/dav/dav-options.diff

The dav-options-acl.diff patch will apply to head because it just  
creates new files, but remember it shouldn't be committed as it is  
just an example.


> Breaking up the patches as you have mentioned above makes reviewing  
> the
> patches easier, and in turn that makes it easier to gets votes for  
> backport.
>
> If you break up the patches, I'll take a look and get them into trunk.


Great!

Thanks,

Brian

Re: DAV Option Patch

Posted by Graham Leggett <mi...@sharp.fm>.
Brian J. France wrote:

> These patches are based off of 2.2.13, but if you would rather have
> patch against a branch or head, please let me know.

Creating patches off head is the place to start, and once the patches
have been committed to head, the next step is for people to vote on
backporting the patches to v2.2, which as you already have patches for
v2.2 should be straightfoward.

Breaking up the patches as you have mentioned above makes reviewing the
patches easier, and in turn that makes it easier to gets votes for backport.

If you break up the patches, I'll take a look and get them into trunk.

Regards,
Graham
--