Re: [PATCH 02/14] soundwire: Add SoundWire bus type

From: Vinod Koul
Date: Fri Oct 20 2017 - 13:06:39 EST


On Fri, Oct 20, 2017 at 06:21:23PM +0200, Greg Kroah-Hartman wrote:
> On Fri, Oct 20, 2017 at 09:31:34PM +0530, Vinod Koul wrote:
> > On Fri, Oct 20, 2017 at 12:45:28PM +0200, Greg Kroah-Hartman wrote:
> > > On Thu, Oct 19, 2017 at 08:33:18AM +0530, Vinod Koul wrote:
> > > > +/*
> > > > + * This file is provided under a dual BSD/GPLv2 license. When using or
> > > > + * redistributing this file, you may do so under either license.
> > > > + *
> > > > + * GPL LICENSE SUMMARY
> > > > + *
> > > > + * Copyright(c) 2015-17 Intel Corporation.
> > > > + *
> > > > + * This program is free software; you can redistribute it and/or modify
> > > > + * it under the terms of version 2 of the GNU General Public License as
> > > > + * published by the Free Software Foundation.
> > > > + *
> > > > + * This program is distributed in the hope that it will be useful, but
> > > > + * WITHOUT ANY WARRANTY; without even the implied warranty of
> > > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> > > > + * General Public License for more details.
> > > > + *
> > > > + * BSD LICENSE
> > > > + *
> > > > + * Copyright(c) 2015-17 Intel Corporation.
> > > > + *
> > > > + * Redistribution and use in source and binary forms, with or without
> > > > + * modification, are permitted provided that the following conditions
> > > > + * are met:
> > > > + *
> > > > + * * Redistributions of source code must retain the above copyright
> > > > + * notice, this list of conditions and the following disclaimer.
> > > > + * * Redistributions in binary form must reproduce the above copyright
> > > > + * notice, this list of conditions and the following disclaimer in
> > > > + * the documentation and/or other materials provided with the
> > > > + * distribution.
> > > > + * * Neither the name of Intel Corporation nor the names of its
> > > > + * contributors may be used to endorse or promote products derived
> > > > + * from this software without specific prior written permission.
> > > > + *
> > > > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> > > > + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> > > > + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> > > > + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> > > > + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > > > + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> > > > + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> > > > + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> > > > + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> > > > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> > > > + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> > >
> > > Are you _sure_ that code that interacts with the driver core can have a
> > > dual-license here? Have you explained to lawyers what you are doing
> > > here (wrapping gpl-only symbols with non-gpl-only exports)?
> >
> > Sorry, the intention is not to wrap gpl symbols for non-gpl-only exports.
> >
> > > And why dual license something that will only ever work on Linux?
> >
> > We have non Linux users (mostly RTOS folks) which we would like to support
> > with as much as common code.
>
> Note, you need to be VERY CAREFUL about doing this. You need to have
> all sorts of infrastructure set up and in place and paperwork up the
> wazoo in order to make it work properly.
>
> In the end, I can almost guarantee it will not be worth the extra hassle
> and effort you are trying to do here.
>
> Seriously, go talk to your managers and corporate lawyer about this, you
> are in for a world of hurt if you want to do this in a way that actually
> works (i.e. doesn't just degrade to GPLv2 only instantly.)
>
> I recommend not doing this unless you have money to burn. If you do,
> then great! If not, it is much easier just to have two separate code
> repos.
>
> > > And finally, put a real SPDX header up there so that people don't have
> > > to parse that horrid amount of text to try to determine exactly what
> > > that license is.
> >
> > Sorry for confusion, For the record we are trying to do Dual GPL v2/ BSD 3
> > clause here. Can you give me example of SPDX use. I will be gald to use that
>
> I could give you an example, but you need to get the real marking from
> your company as I am not the one to pick it for you :)
>
> > > > +struct bus_type sdw_bus_type = {
> > > > + .name = "soundwire",
> > > > + .match = sdw_bus_match,
> > > > + .uevent = sdw_uevent,
> > > > +};
> > > > +EXPORT_SYMBOL(sdw_bus_type);
> > >
> > > EXPORT_SYMBOL_GPL()?
> >
> > This can be EXPORT_SYMBOL_GPL as non Linux users wont have this. But then
> > would it be to okay to have a module with some symbols _GPL and some non
> > _GPL (the SoundWire protocol ones would need to be non GPL)
>
> Again, don't even try to do that, it's not going to work.
>
> The only team I know that ever has done this successfully is the core
> ACPI code. Go talk to them about the work involved in doing this
> properly to see if you are willing to do that.

Thanks for the advice Greg, really appreciate it!

I will work with the folks and try to come up with a better proposal

--
~Vinod