Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread HoP
2011/6/22 Markus Rechberger mrechber...@gmail.com:

 My very little opinion is that waving GPL is way to the hell. Nobody told me
 why similar technologies, in different kernel parts are acceptable,
 but not here.


 since a customer was trying to use this module the only feedback I can give
 right now is that there are still some fundamental bugs in that work.
 Just running it with some intuitive parameters (without having a dvb
 device connected) caused
 it to hang.

 ./vtunerc.i686  -c 1
 vtunerc: [5210 ../../vtunerc.c:349] debug: added frontend mode DVB-C
 as mode 0, searching for tuner types 2
 vtunerc: [5210 ../../vtunerc.c:346] error: unknown tuner mode
 specified: 1 allow values are: -s -S -s2 -S2 -c -t
 it just never returned.


Never returned? How it is possible if just next line is exit(1) call?

 DMESG:
 vtunerc: [5207 ../../vtunerc.c:593] info: fake server answer
 vtunerc: [5207 ../../vtunerc.c:606] info: msg: 4096 completed
 vtunerc: [5207 ../../vtunerc.c:506] info: vtuner message!
 vtunerc: [5207 ../../vtunerc.c:593] info: fake server answer

 ps fax | grep vtunerc:
  5194 pts/4    S      0:00  |       \_ bash
  5210 pts/4    S+     0:00  |           \_ [vtunerc.i686]

 that way it's not good enough for inclusion yet anyway.

I never wanted to get it include immediatelly. I never stated that.
That is why subject of this mail starts with [RFC]. I wanted
to know if such driver is even interesting by others and if
so to get help from community having the code better.
I was already noted that it is my first kernel driver and I understand
that reviewing code by kernel hackers can help making
code better.

On the other hand I never thought that the code can be
totally refused because of its nature. Even I all time
was writing that all subsystem (kernel + userland daemons)
are GPL.

Marcus, tell the customer I'm just starting some howto
document to guide all willing to test how it works through
compilation and installation process.

In parallel I'm going to address all hints gave me by Andreas,
the only guy who even had a look at source.

Anyway, I'm happy for any feedback, so thanks.

/Honza
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Mauro Carvalho Chehab
Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter o...@linuxtv.org 
 wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to connect
 a userspace driver to a DVB API device node, you can distribute a small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create
 1.) closed source modules derived from existing vendor drivers while
 still being able to use other drivers (c.f. EXPORT_SYMBOL vs.
 EXPORT_SYMBOL_GPL).

 AFAIK, the legal issues on writing a closed source driver using 
 EXPORT_SYMBOL
 are not 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Andreas Oberritter
On 06/22/2011 02:17 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter o...@linuxtv.org 
 wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with 
 further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to 
 connect
 a userspace driver to a DVB API device node, you can distribute a small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually 
 forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create
 1.) closed source modules derived from existing vendor drivers while
 still being able to use other drivers (c.f. EXPORT_SYMBOL vs.
 EXPORT_SYMBOL_GPL).

 AFAIK, the legal issues on 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread HoP
2011/6/22 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter o...@linuxtv.org 
 wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with 
 further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to 
 connect
 a userspace driver to a DVB API device node, you can distribute a small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually 
 forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create
 1.) closed source modules derived from existing vendor drivers while
 still being able to use other drivers (c.f. EXPORT_SYMBOL vs.
 EXPORT_SYMBOL_GPL).

 AFAIK, the legal issues on 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Mauro Carvalho Chehab
Em 22-06-2011 09:37, HoP escreveu:
 2011/6/22 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter o...@linuxtv.org 
 wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed 
 source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with 
 further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to 
 connect
 a userspace driver to a DVB API device node, you can distribute a 
 small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually 
 forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL 
 compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create
 1.) closed source modules derived from existing vendor drivers while
 still being able to use other drivers (c.f. EXPORT_SYMBOL vs.
 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Andreas Oberritter
On 06/22/2011 02:55 PM, Mauro Carvalho Chehab wrote:
 Em 22-06-2011 09:30, Andreas Oberritter escreveu:
 On 06/22/2011 02:17 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter 
 o...@linuxtv.org wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed 
 source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with 
 further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to 
 connect
 a userspace driver to a DVB API device node, you can distribute a 
 small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually 
 forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL 
 compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create
 1.) closed source modules derived from existing vendor drivers while
 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Andreas Oberritter
On 06/22/2011 03:03 PM, Mauro Carvalho Chehab wrote:
 Em 22-06-2011 09:37, HoP escreveu:
 2011/6/22 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter 
 o...@linuxtv.org wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed 
 source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with 
 further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to 
 connect
 a userspace driver to a DVB API device node, you can distribute a 
 small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually 
 forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL 
 compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create
 1.) closed source modules derived from existing vendor drivers while
 still being able 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread HoP
2011/6/22 Mauro Carvalho Chehab mche...@redhat.com:
 Em 22-06-2011 09:30, Andreas Oberritter escreveu:
 On 06/22/2011 02:17 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter 
 o...@linuxtv.org wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed 
 source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with 
 further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to 
 connect
 a userspace driver to a DVB API device node, you can distribute a 
 small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually 
 forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL 
 compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create
 1.) closed source modules derived from existing vendor drivers while
 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Mauro Carvalho Chehab
Em 22-06-2011 10:13, Andreas Oberritter escreveu:
 On 06/22/2011 03:03 PM, Mauro Carvalho Chehab wrote:
 Em 22-06-2011 09:37, HoP escreveu:
 2011/6/22 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter 
 o...@linuxtv.org wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed 
 source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with 
 further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's 
 not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to 
 connect
 a userspace driver to a DVB API device node, you can distribute a 
 small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually 
 forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use 
 i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he 
 wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver 
 code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL 
 compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in 
 the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create
 1.) closed source modules 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread HoP
2011/6/22 Mauro Carvalho Chehab mche...@redhat.com:
 Em 22-06-2011 10:13, Andreas Oberritter escreveu:
 On 06/22/2011 03:03 PM, Mauro Carvalho Chehab wrote:
 Em 22-06-2011 09:37, HoP escreveu:
 2011/6/22 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter 
 o...@linuxtv.org wrote:
 Mauro and Devin, I think you're missing the point. This is not 
 about
 creating drivers in userspace. This is not about open or closed 
 source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them 
 from
 another box as if they were local. It's used in conjunction with 
 further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's 
 not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing 
 boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create 
 tuner
 drivers in userspace using the i2c-dev interface. If you like to 
 connect
 a userspace driver to a DVB API device node, you can distribute a 
 small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually 
 forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use 
 i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he 
 wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch 
 of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver 
 code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL 
 compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in 
 the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which 
 drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Mauro Carvalho Chehab
Em 22-06-2011 11:03, HoP escreveu:
 2011/6/22 Mauro Carvalho Chehab mche...@redhat.com:
 Em 22-06-2011 10:13, Andreas Oberritter escreveu:
 On 06/22/2011 03:03 PM, Mauro Carvalho Chehab wrote:
 Em 22-06-2011 09:37, HoP escreveu:
 2011/6/22 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter 
 o...@linuxtv.org wrote:
 Mauro and Devin, I think you're missing the point. This is not 
 about
 creating drivers in userspace. This is not about open or closed 
 source.
 The vtuner interface, as implemented for the Dreambox, is used 
 to
 access remote tuners: Put x tuners into y boxes and access them 
 from
 another box as if they were local. It's used in conjunction with 
 further
 software to receive the transport stream over a network 
 connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's 
 not
 a bad approach) - but I'm talking about the effects of such a 
 driver
 being introduced which changes the kernel/userland licensing 
 boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You 
 can
 already create closed kernel drivers now. Also, you can create 
 tuner
 drivers in userspace using the i2c-dev interface. If you like to 
 connect
 a userspace driver to a DVB API device node, you can distribute a 
 small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually 
 forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use 
 i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he 
 wants
 to reuse the GPL licensed DVB core, he has to replace the entire 
 DVB
 core.

 The introduction of this patch makes it trivial for a third party 
 to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch 
 of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver 
 code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL 
 compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality 
 or
 any of the other GPL drivers (tuners, bridges, demods), so you 
 would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some 
 userland
 stuff that controls the demodulator which we can keep closed 
 source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get 
 them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in 
 the
 kernel, that going forward that vendor would have *zero* interest 
 in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which 
 drivers
 get accepted in to the kernel.  I can tell you though that this 
 will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are 
 doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Andreas Oberritter
On 06/22/2011 03:45 PM, Mauro Carvalho Chehab wrote:
 Em 22-06-2011 10:13, Andreas Oberritter escreveu:
 On 06/22/2011 03:03 PM, Mauro Carvalho Chehab wrote:
 Em 22-06-2011 09:37, HoP escreveu:
 2011/6/22 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
[...]
 If people have different understandings, then we'll likely need to ask 
 some
 support from Open source lawyers about this subject.

 My very little opinion is that waving GPL is way to the hell. Nobody 
 told me
 why similar technologies, in different kernel parts are acceptable,
 but not here.

 If you want to do the networking code at userspace, why do you need a 
 kernel
 driver after all? The proper solution is to write an userspace library 
 for that,
 and either enclose such library inside the applications, or use 
 LD_PRELOAD to
 bind the library to handle the open/close/ioctl glibc calls. libv4l does 
 that.
 As it proofed to be a good library, now almost all V4L applications are 
 using
 it.

 LD_PELOAD is out of bussiness for normal work. It is technique for 
 development
 and/or debugging.

 Well, libv4l successfully uses LD_PRELOAD in order to support all 
 applications 
 that weren't ported to it yet. It offers two ways:
 1) you can use it as a normal library;
 2) you can use it with LD_PRELOAD.


 Library would be possible, but then you kill main advantage
 - totally independece of changes inside userland DVB applications.

 Why? if you write a dvb_open, dvb_ioctl, ... methods with the same 
 syntax of
 glibc open, ioctl, ..., the efforts to migrate an userspace application to 
 use it
 is to just run:
 sed s,open,dvb_open,g
 sed s,ioctl,dvb_ioctl,g


 The library and the application will be completely independent.

 How do you transparently set up the network parameters? By using
 environment variables? How do you pass existing sockets to the library?
 How do you intercept an open() that won't ever happen, because no
 virtual device to be opened exists?
 
 Sorry, but I failed to see at the vtunerc driver anything network-related.

Of course it doesn't. You're the one who proposed to put networking into
the driver. I however fail to see how you imagined to add remote tuner
support to any existing application by using LD_PRELOAD.

 Also, the picture shows that it is just acting as a proxy to an userspace code
 that it is actually handling the network conversion. The complete solution
 seems to have a kernel driver and an userspace client/daemon.

Right.

 Technically, doing such proxy in kernel is not a good idea, due to several
 reasons:
 
 1) The proxy code and the userspace network client will need to be tightly 
 coupled:
 if you add a new feature at the proxy, the same feature will need to be 
 supported by
 the userspace daemon;

Just like anything else DVB related inside the kernel.

Adding a new feature to the proxy would mean that a new feature got
added to the frontend API, so a new kernel would be required anyway.

 2) Data will need to be using copy_from_user/copy_to_user for every data 
 access;

Also, just like anything else DVB related inside the kernel.

No one would notice some frontend ioctl parameters being copied twice.
We're talking about a few bytes.

Passing the remote TS to the kernel is completely *optional*, and only
required if you want to use the kernel's demux or the underlying
hardware's filtering and decoding features. However, the TS even gets
filtered before being transferred over the network. So again, even if
used though being optional, this is not a big data rate.

 3) There's no good reason to write such code inside kernelspace.
 
 On a library based approach, what you'll have, instead is a library. The same
 userspace client/daemon will be needed. However, as both can be shipped 
 together
 (the library proxy code and the userspace client/daemon), there are several
 advantages, like:
 
 1) The library and the userspace client will be in sync: there's no need to 
 check
 for version differences at the api, or providing any sort of backport support;

Breaking the ABI of libraries isn't much better than breaking the ABI of
kernel interfaces. A library may have many users, more than the
userspace client you're talking about.

 2) There's no need to recompile the kernel when someone wants to use the 
 proxy;

You could of course build it as a module, without the need to recompile
the kernel.

 3) The userspace won't be bound to the Kernel release schedule: When the code 
 is
 stable enough, both libraries and userspace can be released at the same time.

For the same reason one could argue that putting device drivers into
userspace would have the same benefits.

Well, the original proposal was to add a driver with supporting programs
which enables every existing DVB application to *transparently* work
with remote tuners.

What you're proposing now is to write a library, which works with remote
tuners, too, 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Mauro Carvalho Chehab
Em 22-06-2011 11:24, Andreas Oberritter escreveu:
 On 06/22/2011 03:45 PM, Mauro Carvalho Chehab wrote:
 Em 22-06-2011 10:13, Andreas Oberritter escreveu:
 On 06/22/2011 03:03 PM, Mauro Carvalho Chehab wrote:
 Em 22-06-2011 09:37, HoP escreveu:
 2011/6/22 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 14:38, HoP escreveu:
 2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 [...]
 If people have different understandings, then we'll likely need to ask 
 some
 support from Open source lawyers about this subject.

 My very little opinion is that waving GPL is way to the hell. Nobody 
 told me
 why similar technologies, in different kernel parts are acceptable,
 but not here.

 If you want to do the networking code at userspace, why do you need a 
 kernel
 driver after all? The proper solution is to write an userspace library 
 for that,
 and either enclose such library inside the applications, or use 
 LD_PRELOAD to
 bind the library to handle the open/close/ioctl glibc calls. libv4l does 
 that.
 As it proofed to be a good library, now almost all V4L applications are 
 using
 it.

 LD_PELOAD is out of bussiness for normal work. It is technique for 
 development
 and/or debugging.

 Well, libv4l successfully uses LD_PRELOAD in order to support all 
 applications 
 that weren't ported to it yet. It offers two ways:
1) you can use it as a normal library;
2) you can use it with LD_PRELOAD.


 Library would be possible, but then you kill main advantage
 - totally independece of changes inside userland DVB applications.

 Why? if you write a dvb_open, dvb_ioctl, ... methods with the same 
 syntax of
 glibc open, ioctl, ..., the efforts to migrate an userspace application to 
 use it
 is to just run:
sed s,open,dvb_open,g
sed s,ioctl,dvb_ioctl,g


 The library and the application will be completely independent.

 How do you transparently set up the network parameters? By using
 environment variables? How do you pass existing sockets to the library?
 How do you intercept an open() that won't ever happen, because no
 virtual device to be opened exists?

 Sorry, but I failed to see at the vtunerc driver anything network-related.
 
 Of course it doesn't. You're the one who proposed to put networking into
 the driver. I however fail to see how you imagined to add remote tuner
 support to any existing application by using LD_PRELOAD.

If you take a look at libv4l, it hooks calls to open/close/ioctl/read/write 
glibc
calls. So, when an userspace application calls open, it will run the library
code, and not glibc open function. So, it is completely transparent to the
userspace application.

 Also, the picture shows that it is just acting as a proxy to an userspace 
 code
 that it is actually handling the network conversion. The complete solution
 seems to have a kernel driver and an userspace client/daemon.
 
 Right.
 
 Technically, doing such proxy in kernel is not a good idea, due to several
 reasons:

 1) The proxy code and the userspace network client will need to be tightly 
 coupled:
 if you add a new feature at the proxy, the same feature will need to be 
 supported by
 the userspace daemon;
 
 Just like anything else DVB related inside the kernel.

Yes.

 Adding a new feature to the proxy would mean that a new feature got
 added to the frontend API, so a new kernel would be required anyway.
 
 2) Data will need to be using copy_from_user/copy_to_user for every data 
 access;
 
 Also, just like anything else DVB related inside the kernel.

Yes, but if you do it on userspace, you don't need to do double buffering.
With a proxy, the same data will need to be passed 3 times from/to kernelspace:
2 times at vtunerc, and 1 time to the network driver. If implemented on 
userspace,
all it needed is to pass the data to the network driver, reducing latency.

Also, newer functions can be added on userspace in order to optimize 
applications
that will use it as a library, like providing functions that combine DVB and
network commands altogether.

 No one would notice some frontend ioctl parameters being copied twice.
 We're talking about a few bytes.

If the intention is to limit it to just frontend ioctl's, you're right: the
only difference is that latency will be a little higher, probably unnoticed
(yet, introduced for not a good reason). But, if the intention is to also
provide remote streaming, then the volume of data copied tree times will
be noticeable, especially if the stream is in HD and/or if support for 
full-featured
DVB cards is added later.

 Passing the remote TS to the kernel is completely *optional*, and only
 required if you want to use the kernel's demux or the underlying
 hardware's filtering and decoding features. However, the TS even gets
 filtered before being transferred over the network. So again, even if
 used though being optional, this is not a big data rate.
 
 3) There's no good reason to write such code inside kernelspace.

 On a library based approach, what you'll 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Steven Toth
 This is not a political issue. It is a licensing issue. If you want to use
 someone's else code, you need to accept the licensing terms that the 
 developers
 are giving you, by either paying the price for the code usage (on closed 
 source
 licensing models), or by accepting the license when using an open-sourced 
 code.

Mauro,

My comments for your review:

I've spoken on this topic many times, it's bad news for the LinuxTV
eco-system and it will eventually lead to binary only drivers that
ultimately diminishes all of the good work that me any my fellow
developers have poured into Linux over the last 5-10 years.

I repeat my message from 2 years ago when the subject was raised: and
this is (paraphrase) I can say with great certainty that if we allow
API's that permit closed source drivers then silicon vendors and board
manufacturers will take advantage of that, they will only delivery (at
best) closed source drivers.

If closed source drivers is what the community wants then this is a
way to achieve this.

I don't want to see user-space drivers happen through LinuxDVB or V4L2 API's.

I politely and respectfully nack this idea.

Best,

- Steve

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Michael Krufky
On Sat, Jun 18, 2011 at 8:10 PM, HoP jpetr...@gmail.com wrote:
 Hi,

 get inspired by (unfortunately close-source) solution on stb
 Dreambox 800 I have made my own implementation
 of virtual DVB device, based on the same device API.

 In conjunction with Dreamtuner userland project
 [http://code.google.com/p/dreamtuner/] by Ronald Mieslinger
 user can create virtual DVB device on client side and connect it
 to the server. When connected, user is able to use any Linux DVB API
 compatible application on client side (like VDR, MeTV, MythTV, etc)
 without any need of code modification. As server can be used any
 Linux DVB API compatible device.


I can think of many interesting uses for a solution like this.  It's
great that such a driver exists and that people can use it now to
create interesting do-it-yourself projects, however, I do not believe
this should ever be merged into the kernel.

If this solution were merged into the kernel, there would be no reason
for companies like Hauppauge to ever again contribute any open source
drivers.  Once it's possible to deliver a closed source driver to the
masses, that's what vendors will do -- there will no longer be any
motivation to continue working in open source.

Some may like that idea, but I feel this will destroy the foundation
that we've been building for years.

I repeat, the solution itself has some potential, and I see nothing
wrong with this existing and being available to users in source code
form, but it should never be merged into a kernel to be shipped
directly to end-users.  This can create a horrible president that
would truly result in the prevention of open source driver
contributions from silicon vendors and hardware manufacturers.

Regards,

Michael Krufky
LinuxTV developer / Hauppauge Digital
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-22 Thread Mauro Carvalho Chehab
Em 22-06-2011 16:18, Rémi Denis-Courmont escreveu:
 Le mercredi 22 juin 2011 15:17:27 Mauro Carvalho Chehab, vous avez écrit :
 My very little opinion is that waving GPL is way to the hell. Nobody told
 me why similar technologies, in different kernel parts are acceptable,
 but not here.

 If you want to do the networking code at userspace, why do you need a
 kernel driver after all?
 
 Are you seriously asking why people write tunneling drivers in user-space? Or 
 why they want to use the kernel-space socket API and protocol stack?
 
 The proper solution is to write an userspace
 library for that, and either enclose such library inside the applications,
 or use LD_PRELOAD to bind the library to handle the open/close/ioctl glibc
 calls. libv4l does that. As it proofed to be a good library, now almost
 all V4L applications are using it.
 
 No. Set aside the problem of licensing, the correct way is to reuse existing 
 code, which means the layer-3/4 stacks and the socket API in net/*. That 
 avoids duplicating efforts (and bugs) and allows socket API apps to run 
 unchanged and without brittle hacks like LD_PRELOAD.
 
 And indeed, that's what the Linux ecosystem does, thanks to the tuntap 
 network 
 device driver.

Rémi,

Using the Kernel network layer is the right thing to do, but you don't need to 
add
a new driver for it: it is already there. All that userspace needs to do is to 
use
glibc socket's support.

It could make sense to have some sort of virtualization driver that would allow 
passing DVB API calls via, for example, the network socket API, to allow 
accessing
a physical DVB driver (or a remote machine DVB driver)from a VM machine. That 
was 
my original understanding.

Instead, the proposal is wrapper, that will be a sort of kernelspace 
implementation for
LD_PRELOAD that just returns the DVB commands back to some other application
in userspace. The real code to transmit DVB commands will be in userspace.

Technically speaking, this is a hack.

If I would code something like that, I would write it as a library with some 
functions like:
connect_to_dvb()
get_dvb_properties()
get_frontend_parameters()
set_frontend_parameters()
get_dvb_ts()
And write a few patches for the userspace applications I would care.

If I wanted to provide transparent access to it, I would simply implement a 
LD_PRELOAD
schema, in order to help the new library deployment.

With such approach, at the initial stages (the worse case, e. g. using 
LD_PRELOAD), it will
be equivalent to have a kernel wrapper code, but, at long term, it will allow 
important
optimizations, like avoiding the need of copying data from/to the wrapper, 
supporting the extra
delays introducing by the network and allowing the applications to implement 
themselves the
dialog windows to control the network properties.

Thanks,
Mauro.
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Andreas Oberritter
On 06/21/2011 03:35 AM, Mauro Carvalho Chehab wrote:
 Em 20-06-2011 18:31, HoP escreveu:
 2011/6/20 Mauro Carvalho Chehab mche...@redhat.com:
 Em 20-06-2011 17:24, HoP escreveu:
 2011/6/20 Devin Heitmueller dheitmuel...@kernellabs.com:
 On Mon, Jun 20, 2011 at 3:56 PM, HoP jpetr...@gmail.com wrote:
 Do you think it is really serious enough reason to prevent of having
 such virtualization driver in the kernel?

 Let check my situation and tell me how I should continue (TBH, I already
 thought that driver can be accepted, but my dumb brain thought because
 of non quality code/design or so. It was really big surprise which
 reason was used aginst it):

 Yes, this is entirely a political issue and not a technical one.

 Political? So we can declare that politics win (again) technicians. Sad.

 This is not a political issue. It is a licensing issue. If you want to use
 someone's else code, you need to accept the licensing terms that the 
 developers
 are giving you, by either paying the price for the code usage (on closed 
 source
 licensing models), or by accepting the license when using an open-sourced 
 code.

 Preserving the open-source eco-system is something that everyone
 developing open source expect: basically, you're free to do whatever
 you want, but if you're using a code written by an open-source developer,
 the expected behaviour that GPL asks (and that the developer wants, when he
 opted for GPL) is that you should return back to the community with any
 changes you did, including derivative work. This is an essential rule of 
 working
 with GPL.

 If you're not happy with that, that's fine. You can implement another stack
 that is not GPL-licensed.

 Mauro, you totally misunderstood me. If you see on my first post in that 
 thread
 I was sending full GPL-ed driver to the mailinglist.
 
 You misunderstood me. Something that exposes the kernel interface to for an
 userspace client driver to implement DVB is not a driver, it is a wrapper.
 
 The real driver will be in userspace, using the DVB stack, and can even be
 closed source. Some developers already tried to do things like that and sell
 the userspace code. Such code submission were nacked. There is even one case
 where the kernelspace code were dropped due to that (and later, replaced by an
 opensource driver).
 
 We don't want to go on this way again.

Mauro and Devin, I think you're missing the point. This is not about
creating drivers in userspace. This is not about open or closed source.
The vtuner interface, as implemented for the Dreambox, is used to
access remote tuners: Put x tuners into y boxes and access them from
another box as if they were local. It's used in conjunction with further
software to receive the transport stream over a network connection.
Honza's code does the same thing.

You don't need it in order to create closed source drivers. You can
already create closed kernel drivers now. Also, you can create tuner
drivers in userspace using the i2c-dev interface. If you like to connect
a userspace driver to a DVB API device node, you can distribute a small
(open or closed) wrapper with it. So what are you arguing about?
Everything you're feared of can already be done since virtually forever.

If you're feared of exposing kernel interfaces to userspace, then I
think your only option is to remove the whole userspace. You might want
to remove i2c-dev and the loadable module interface first.

Regarding the code, Honza, I think the interface is neither clean nor
generic enough to be included in the kernel. It doesn't make much sense
to stay compatible to the interface used by the Dreambox. This interface
evolved from very old versions of the DVB API and therefore carries way
too much cruft and hacks for a shiny new interface. As a side note: Your
ioctl constants already differ from the original vtuner code.

IMO, at least these steps need to be taken:
- Remove unused code. You already mentioned it, but it really should be
removed before submitting code, because it makes review much harder.
- Remove redefined structs and constants.
- Drop support for anything older than S2API.
- Define a way to use an existing demux instead of registering a new
software demux. On hardware that supports it, an input channel should be
allocated for each vtuner, in order to use the hardware's filtering and
decoding capabilities.
- Drop VTUNER_SET_NAME, VTUNER_SET_HAS_OUTPUTS, VTUNER_SET_MODES,
VTUNER_SET_TYPE and VTUNER_SET_NUM_MODES. They are all either specific
to the Dreambox or already obsoleted by S2API commands or should be
implemented as new S2API commands.

Regards,
Andreas
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread HoP
2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 20-06-2011 18:31, HoP escreveu:
 2011/6/20 Mauro Carvalho Chehab mche...@redhat.com:
 Em 20-06-2011 17:24, HoP escreveu:
 2011/6/20 Devin Heitmueller dheitmuel...@kernellabs.com:
 On Mon, Jun 20, 2011 at 3:56 PM, HoP jpetr...@gmail.com wrote:
 Do you think it is really serious enough reason to prevent of having
 such virtualization driver in the kernel?

 Let check my situation and tell me how I should continue (TBH, I already
 thought that driver can be accepted, but my dumb brain thought because
 of non quality code/design or so. It was really big surprise which
 reason was used aginst it):

 Yes, this is entirely a political issue and not a technical one.

 Political? So we can declare that politics win (again) technicians. Sad.

 This is not a political issue. It is a licensing issue. If you want to use
 someone's else code, you need to accept the licensing terms that the 
 developers
 are giving you, by either paying the price for the code usage (on closed 
 source
 licensing models), or by accepting the license when using an open-sourced 
 code.

 Preserving the open-source eco-system is something that everyone
 developing open source expect: basically, you're free to do whatever
 you want, but if you're using a code written by an open-source developer,
 the expected behaviour that GPL asks (and that the developer wants, when he
 opted for GPL) is that you should return back to the community with any
 changes you did, including derivative work. This is an essential rule of 
 working
 with GPL.

 If you're not happy with that, that's fine. You can implement another stack
 that is not GPL-licensed.

 Mauro, you totally misunderstood me. If you see on my first post in that 
 thread
 I was sending full GPL-ed driver to the mailinglist.

 You misunderstood me. Something that exposes the kernel interface to for an
 userspace client driver to implement DVB is not a driver, it is a wrapper.

 The real driver will be in userspace, using the DVB stack, and can even be
 closed source. Some developers already tried to do things like that and sell
 the userspace code. Such code submission were nacked. There is even one case
 where the kernelspace code were dropped due to that (and later, replaced by an
 opensource driver).

No, you are again wrong, sorry.

If you ever tried to understand my small schema and description, you would
find that REAL drivers remeains in kernel. May be you understand what
I want from attached picture. You can see that the driver acts as bridge
(ok, you like wording wrapper so) to distribute remote driver functionality
down to the client and back.

/Honza
attachment: vtuner-small-picture.png

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Mauro Carvalho Chehab
Em 21-06-2011 08:04, Andreas Oberritter escreveu:
 On 06/21/2011 03:35 AM, Mauro Carvalho Chehab wrote:
 Em 20-06-2011 18:31, HoP escreveu:
 2011/6/20 Mauro Carvalho Chehab mche...@redhat.com:
 Em 20-06-2011 17:24, HoP escreveu:
 2011/6/20 Devin Heitmueller dheitmuel...@kernellabs.com:
 On Mon, Jun 20, 2011 at 3:56 PM, HoP jpetr...@gmail.com wrote:
 Do you think it is really serious enough reason to prevent of having
 such virtualization driver in the kernel?

 Let check my situation and tell me how I should continue (TBH, I already
 thought that driver can be accepted, but my dumb brain thought because
 of non quality code/design or so. It was really big surprise which
 reason was used aginst it):

 Yes, this is entirely a political issue and not a technical one.

 Political? So we can declare that politics win (again) technicians. Sad.

 This is not a political issue. It is a licensing issue. If you want to use
 someone's else code, you need to accept the licensing terms that the 
 developers
 are giving you, by either paying the price for the code usage (on closed 
 source
 licensing models), or by accepting the license when using an open-sourced 
 code.

 Preserving the open-source eco-system is something that everyone
 developing open source expect: basically, you're free to do whatever
 you want, but if you're using a code written by an open-source developer,
 the expected behaviour that GPL asks (and that the developer wants, when he
 opted for GPL) is that you should return back to the community with any
 changes you did, including derivative work. This is an essential rule of 
 working
 with GPL.

 If you're not happy with that, that's fine. You can implement another stack
 that is not GPL-licensed.

 Mauro, you totally misunderstood me. If you see on my first post in that 
 thread
 I was sending full GPL-ed driver to the mailinglist.

 You misunderstood me. Something that exposes the kernel interface to for an
 userspace client driver to implement DVB is not a driver, it is a wrapper.

 The real driver will be in userspace, using the DVB stack, and can even be
 closed source. Some developers already tried to do things like that and sell
 the userspace code. Such code submission were nacked. There is even one case
 where the kernelspace code were dropped due to that (and later, replaced by 
 an
 opensource driver).

 We don't want to go on this way again.
 
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.
 
 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to connect
 a userspace driver to a DVB API device node, you can distribute a small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually forever.

Yes, but we don't need to review/maintain a kernel driver meant to be
used by closed source applications, and, if they're using a GPL'd code
inside a closed source application, they can be sued.

I didn't review the patchset, but, from the description, I understood that
it were developed to use some Dreambox-specific closed source applications.
With such requirement, for me it is just a wrapper to some closed source
application.

That's said, I'm not against a driver that allows using a DVB kernel
driver by a DVB open source application either inside a virtual machine
or on a remote machine. This seems useful for me. So, if the code could
be turned into it, I'll review and consider for its inclusion upstream.

For that to happen, it should not try to use any Dreambox specific application
or protocol, but to just use the standard DVBv5 API, as you've pointed.

 If you're feared of exposing kernel interfaces to userspace, then I
 think your only option is to remove the whole userspace. You might want
 to remove i2c-dev and the loadable module interface first.
 
 Regarding the code, Honza, I think the interface is neither clean nor
 generic enough to be included in the kernel. It doesn't make much sense
 to stay compatible to the interface used by the Dreambox. This interface
 evolved from very old versions of the DVB API and therefore carries way
 too much cruft and hacks for a shiny new interface. As a side note: Your
 ioctl constants already differ from the original vtuner code.
 
 IMO, at least these steps need to be taken:
 - Remove unused code. You already mentioned it, but it really should be
 removed before submitting code, because it makes review much harder.
 - 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Andreas Oberritter
On 06/21/2011 02:05 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 08:04, Andreas Oberritter escreveu:
 On 06/21/2011 03:35 AM, Mauro Carvalho Chehab wrote:
 Em 20-06-2011 18:31, HoP escreveu:
 2011/6/20 Mauro Carvalho Chehab mche...@redhat.com:
 Em 20-06-2011 17:24, HoP escreveu:
 2011/6/20 Devin Heitmueller dheitmuel...@kernellabs.com:
 On Mon, Jun 20, 2011 at 3:56 PM, HoP jpetr...@gmail.com wrote:
 Do you think it is really serious enough reason to prevent of having
 such virtualization driver in the kernel?

 Let check my situation and tell me how I should continue (TBH, I 
 already
 thought that driver can be accepted, but my dumb brain thought because
 of non quality code/design or so. It was really big surprise which
 reason was used aginst it):

 Yes, this is entirely a political issue and not a technical one.

 Political? So we can declare that politics win (again) technicians. Sad.

 This is not a political issue. It is a licensing issue. If you want to use
 someone's else code, you need to accept the licensing terms that the 
 developers
 are giving you, by either paying the price for the code usage (on closed 
 source
 licensing models), or by accepting the license when using an open-sourced 
 code.

 Preserving the open-source eco-system is something that everyone
 developing open source expect: basically, you're free to do whatever
 you want, but if you're using a code written by an open-source developer,
 the expected behaviour that GPL asks (and that the developer wants, when 
 he
 opted for GPL) is that you should return back to the community with any
 changes you did, including derivative work. This is an essential rule of 
 working
 with GPL.

 If you're not happy with that, that's fine. You can implement another 
 stack
 that is not GPL-licensed.

 Mauro, you totally misunderstood me. If you see on my first post in that 
 thread
 I was sending full GPL-ed driver to the mailinglist.

 You misunderstood me. Something that exposes the kernel interface to for an
 userspace client driver to implement DVB is not a driver, it is a wrapper.

 The real driver will be in userspace, using the DVB stack, and can even be
 closed source. Some developers already tried to do things like that and sell
 the userspace code. Such code submission were nacked. There is even one case
 where the kernelspace code were dropped due to that (and later, replaced by 
 an
 opensource driver).

 We don't want to go on this way again.

 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to connect
 a userspace driver to a DVB API device node, you can distribute a small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually forever.
 
 Yes, but we don't need to review/maintain a kernel driver meant to be
 used by closed source applications

*Not that it would apply to this case*, but disallowing closed source
applications in userspace is ridiculous. And why should you reject a
possibly nice interface just because no open source application using it
has already been written?

 and, if they're using a GPL'd code
 inside a closed source application, they can be sued.
 
 I didn't review the patchset, but, from the description, I understood that
 it were developed to use some Dreambox-specific closed source applications.
 With such requirement, for me it is just a wrapper to some closed source
 application.

I see. That's where you're wrong. Neither does it depend on any closed
application (Honza even included the link to the source code of the
application: https://code.google.com/p/dreamtuner/), nor is this
application specific to the Dreambox. The Dreambox is just the origin of
the vtuner API.

Btw.: Honza repeatedly stated that he's using his code with VDR, which
in other words means that he's not using a Dreambox.

 That's said, I'm not against a driver that allows using a DVB kernel
 driver by a DVB open source application either inside a virtual machine
 or on a remote machine. This seems useful for me. So, if the code could
 be turned into it, I'll review and consider for its inclusion upstream.

You mean, if the code could be turned into what it already is?

 For that to happen, it should not try to use any Dreambox specific application
 or protocol, but to just use the standard DVBv5 API, as you've pointed.

The DVB API v5 (as of now) is a 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread HoP
2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 08:04, Andreas Oberritter escreveu:
 On 06/21/2011 03:35 AM, Mauro Carvalho Chehab wrote:
 Em 20-06-2011 18:31, HoP escreveu:
 2011/6/20 Mauro Carvalho Chehab mche...@redhat.com:
 Em 20-06-2011 17:24, HoP escreveu:
 2011/6/20 Devin Heitmueller dheitmuel...@kernellabs.com:
 On Mon, Jun 20, 2011 at 3:56 PM, HoP jpetr...@gmail.com wrote:
 Do you think it is really serious enough reason to prevent of having
 such virtualization driver in the kernel?

 Let check my situation and tell me how I should continue (TBH, I 
 already
 thought that driver can be accepted, but my dumb brain thought because
 of non quality code/design or so. It was really big surprise which
 reason was used aginst it):

 Yes, this is entirely a political issue and not a technical one.

 Political? So we can declare that politics win (again) technicians. Sad.

 This is not a political issue. It is a licensing issue. If you want to use
 someone's else code, you need to accept the licensing terms that the 
 developers
 are giving you, by either paying the price for the code usage (on closed 
 source
 licensing models), or by accepting the license when using an open-sourced 
 code.

 Preserving the open-source eco-system is something that everyone
 developing open source expect: basically, you're free to do whatever
 you want, but if you're using a code written by an open-source developer,
 the expected behaviour that GPL asks (and that the developer wants, when 
 he
 opted for GPL) is that you should return back to the community with any
 changes you did, including derivative work. This is an essential rule of 
 working
 with GPL.

 If you're not happy with that, that's fine. You can implement another 
 stack
 that is not GPL-licensed.

 Mauro, you totally misunderstood me. If you see on my first post in that 
 thread
 I was sending full GPL-ed driver to the mailinglist.

 You misunderstood me. Something that exposes the kernel interface to for an
 userspace client driver to implement DVB is not a driver, it is a wrapper.

 The real driver will be in userspace, using the DVB stack, and can even be
 closed source. Some developers already tried to do things like that and sell
 the userspace code. Such code submission were nacked. There is even one case
 where the kernelspace code were dropped due to that (and later, replaced by 
 an
 opensource driver).

 We don't want to go on this way again.

 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to connect
 a userspace driver to a DVB API device node, you can distribute a small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually forever.

 Yes, but we don't need to review/maintain a kernel driver meant to be
 used by closed source applications, and, if they're using a GPL'd code
 inside a closed source application, they can be sued.

Well, seems you are trying to argue using wrong arguments.
One more again: If you follow my picture - all on the path,
INCLUDING userland application, is GPL code. If you think
about Enigma, it is GPLed also, at least version 1. But my driver
is not for dreamboxes! They have similar implementation already
included there. My intention was different: to allow same thing
like is possible with dreamboxes, on normal linux PC desktop.
Using any other userland DVB application, like VDR or MythTV or vlc.
Got my point? I have nothing to do with any closed source or even
binary blobs! I want DVB adapter distribution across network,
nothing more. Everything is clear, from GPL point of view.


 I didn't review the patchset, but, from the description, I understood that
 it were developed to use some Dreambox-specific closed source applications.
 With such requirement, for me it is just a wrapper to some closed source
 application.

I understand that my English can be not crystal clear, so you missed
inside my description. But I must say it again - my code has zero
connection with dreamboxes. Of course other then borrowing theirs
sharing possibility and reusing same network daemons (again fully GPLed!)
for it.


 That's said, I'm not against a driver that allows using a DVB kernel
 driver by a DVB open source application either inside a virtual machine
 or on a remote machine. This seems useful for me. So, if the code could
 be turned 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Issa Gorissen
I hope this driver will be included if it can be useful for some and if
it follows the GPL rules.

But really, +1 to Sebastien's comment - this project is a frustrating
one it seems. And at the point where I am, I would rather pay for a
working driver for a S2 + CI card, instead of trying to debug existing
drivers for which the maintainers are virtually non existent.

--
Issa
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Devin Heitmueller
On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter o...@linuxtv.org wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

I'm not missing the point at all.  I realize exactly what Honza is
trying to accomplish (and from a purely technical standpoint, it's not
a bad approach) - but I'm talking about the effects of such a driver
being introduced which changes the kernel/userland licensing boundary
and has very real implications with how the in-kernel code is
accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to connect
 a userspace driver to a DVB API device node, you can distribute a small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually forever.

I disagree.  There is currently no API which allows applications to
issue tuning requests into the DVB core, and have those requests
proxied back out to userland where an application can then use i2c-dev
to tune the actual device.  Meaning if somebody wants to write a
closed source userland application which controls the tuner, he/she
can do that (while not conforming to the DVB API).  But if if he wants
to reuse the GPL licensed DVB core, he has to replace the entire DVB
core.

The introduction of this patch makes it trivial for a third party to
provide closed-source userland support for tuners while reusing all
the existing GPL driver code that makes up the framework.

I used to work for a vendor that makes tuners, and they do a bunch of
Linux work.  And that work has resulted in a bunch of open source
drivers.  I can tell you though that *every* conversation I've had
regarding a new driver goes something like this:

===
Devin, we need to support tuner X under Linux.

Great!  I'll be happy to write a new GPL driver for the
tuner/demodulator/whatever for that device

But to save time/money, we just want to reuse the Windows driver code
(or reference code from the vendor).

Ok.  Well, what is the licensing for that code?  Is it GPL compatible?

Not currently.  So can we just make our driver closed source?

Well, you can't reuse any of the existing DVB core functionality or
any of the other GPL drivers (tuners, bridges, demods), so you would
have rewrite all that from scratch.

Oh, that would be a ton of work.   Can we maybe write some userland
stuff that controls the demodulator which we can keep closed source?
Since it's not in the kernel, the GPL won't apply.

Well, you can't really do that because there is no way for the DVB
core to call back out to userland when the application makes the
tuning request to the DVB core.

Oh, ok then.  I guess we'll have to talk to the vendor and get them
to give us the reference driver code under the GPL.
===

I can tell you without a doubt that if this driver were present in the
kernel, that going forward that vendor would have *zero* interest in
doing any GPL driver work.  Why would they?  Why give away the code
which could potentially help their competitors if they can keep it
safe and protected while still being able to reuse everybody else's
contributions?

Companies don't contribute GPL code out of good will.  They do it
because they are compelled to by licenses or because there is no
economically viable alternative.

Mauro, ultimately it is your decision as the maintainer which drivers
get accepted in to the kernel.  I can tell you though that this will
be a very bad thing for the driver ecosystem as a whole - it will
essentially make it trivial for vendors (some of which who are doing
GPL work now) to provide solutions that reuse the GPL'd DVB core
without having to make any of their stuff open source.

Anyway, I said in my last email that would be my last email on the
topic.  I guess I lied.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Andreas Oberritter
On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter o...@linuxtv.org wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.
 
 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.
 
 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to connect
 a userspace driver to a DVB API device node, you can distribute a small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually forever.
 
 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.
 
 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.
 
 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:
 
 ===
 Devin, we need to support tuner X under Linux.
 
 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device
 
 But to save time/money, we just want to reuse the Windows driver code
 (or reference code from the vendor).
 
 Ok.  Well, what is the licensing for that code?  Is it GPL compatible?
 
 Not currently.  So can we just make our driver closed source?
 
 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.
 
 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.
 
 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.
 
 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===
 
 I can tell you without a doubt that if this driver were present in the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?
 
 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.
 
 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.
 
 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

Yes, and you did lie to your vendor, too, as you did not mention the
possibilities to create
1.) closed source modules derived from existing vendor drivers while
still being able to use other drivers (c.f. EXPORT_SYMBOL vs.
EXPORT_SYMBOL_GPL).
2.) a simple wrapper that calls userspace, therefore not having to open
up any secrets at all.

Of course it's nice that you could trick that vendor into publishing
code under GPL terms. And while everyone appreciates it, I would also
appreciate keeping politics off the table.

If the proposed interface results in closed 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Devin Heitmueller
2011/6/21 Andreas Oberritter o...@linuxtv.org:
 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create

I don't know if this is a language barrier issue, but calling someone
a liar (let alone in an open forum) is a pretty offensive thing to do.

In fact, such discussions did come up.  However I simply didn't
mention them here in the previous email in an attempt consolidate one
hour conversations into nine sentences in an attempt at brevity.

 1.) closed source modules derived from existing vendor drivers while
 still being able to use other drivers (c.f. EXPORT_SYMBOL vs.
 EXPORT_SYMBOL_GPL).

This definitely enters a grey area from a legal standpoint.  Depending
on who you talk to, using such symbols may or may not violate the GPL,
depending on what lawyer you talk to.  This all falls back to the
notion of whether non-GPL loadable modules violate the GPL, for which
even today there is considerable debate within the kernel community.

Smart companies are generally risk-averse, and recognize that it's
usually not worth the risk of being sued by doing something that may
or may not violate a license.

 2.) a simple wrapper that calls userspace, therefore not having to open
 up any secrets at all.

Like the above, this raises all sorts of issues involving the
definition of derivative work.

Again, we're going around in circles here.  This issue has been beaten
to death both in the linux dvb mailing lists as well as in the lkml in
general.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Bjørn Mork
Devin Heitmueller dheitmuel...@kernellabs.com writes:

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

Wouldn't it be just as trivial to bundle the closed-source tuner support
with this patch or a similar GPL licensed driver? This doesn't change
anything wrt closed source drivers.


Bjørn

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Mauro Carvalho Chehab
Em 21-06-2011 10:44, Devin Heitmueller escreveu:

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

I was a little faster to answer to my previous emails. I'm not feeling
well today due to a strong pain on my backbone.

So, let me explain what would be ok, from my POV:

A kernelspace driver that will follow DVBv5 API and talk with wit another
device via the Kernel network stack, in order to access a remote Kernel board,
or a kernel board at the physical machine, for virtual machines. That means that
the dvb stack won't be proxied to an userspace application.

Something like:

Userspace app (like kaffeine, dvr, etc) - DVB net_tunnel driver - Kernel 
Network stack

Kernel Network stack - DVB net_tunnel driver - DVB hardware

In other words, the DVB net_tunnel driver will take care of using the
network stack, implement Kernel namespaces, etc, in order to allow virtualizing
a remote hardware, without needing any userspace driver for doing that
(well, except, of course, for the standard network userspace applications for
DNS solving, configuring IP routes, etc).

Cheers,
Mauro
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Mauro Carvalho Chehab
Em 21-06-2011 11:56, Bjørn Mork escreveu:
 Devin Heitmueller dheitmuel...@kernellabs.com writes:
 
 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.
 
 Wouldn't it be just as trivial to bundle the closed-source tuner support
 with this patch or a similar GPL licensed driver? This doesn't change
 anything wrt closed source drivers.

Yes, but adding some code into a GPL licensed code is derivative work,
The end result is also covered by GPL (not only the kernelspace, but also
the userspace counterpart). If some company is doing things like that
and not providing the entire driver under GPL, if going to court, the judge 
will likely consider this as an explicitly attempt to violate the legal 
property of someone's else's copyright.

Mauro
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Andreas Oberritter
On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter o...@linuxtv.org 
 wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to connect
 a userspace driver to a DVB API device node, you can distribute a small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create
 1.) closed source modules derived from existing vendor drivers while
 still being able to use other drivers (c.f. EXPORT_SYMBOL vs.
 EXPORT_SYMBOL_GPL).
 
 AFAIK, the legal issues on writing a closed source driver using EXPORT_SYMBOL
 are not proofed legally in any court. While EXPORT_SYMBOL_GPL explicitly 
 adds a restriction, not using it doesn't necessarily mean that the symbol

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Mauro Carvalho Chehab
Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter o...@linuxtv.org 
 wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to connect
 a userspace driver to a DVB API device node, you can distribute a small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create
 1.) closed source modules derived from existing vendor drivers while
 still being able to use other drivers (c.f. EXPORT_SYMBOL vs.
 EXPORT_SYMBOL_GPL).

 AFAIK, the legal issues on writing a closed source driver using EXPORT_SYMBOL
 are not proofed legally in any court. While EXPORT_SYMBOL_GPL explicitly 
 adds a restriction, not 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Markus Rechberger
2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 10:44, Devin Heitmueller escreveu:

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 I was a little faster to answer to my previous emails. I'm not feeling
 well today due to a strong pain on my backbone.

 So, let me explain what would be ok, from my POV:

 A kernelspace driver that will follow DVBv5 API and talk with wit another
 device via the Kernel network stack, in order to access a remote Kernel board,
 or a kernel board at the physical machine, for virtual machines. That means 
 that
 the dvb stack won't be proxied to an userspace application.

 Something like:

 Userspace app (like kaffeine, dvr, etc) - DVB net_tunnel driver - Kernel 
 Network stack

 Kernel Network stack - DVB net_tunnel driver - DVB hardware


for such a design a developer should be fired ^^
Everything back to ring 0, however I guess that particular developer
who designed this does not
know about that security concept, otherwise he wouldn't propose to put
such things into kernelspace.

and from the kernel network stack you go via TCP and connect to
whoever you want (particular userspace
daemon with all the implementation).
Aside of the security issue which it introduces you won't even protect
what you try to protect because you
cannot control the connection.

It would be interesting if someone would implement it that way now, so
Mauro disqualified himself with this proposal.

Although please continue I'll keep watching, either result (supporting
or not supporting it) is fine with me.

Markus
 In other words, the DVB net_tunnel driver will take care of using the
 network stack, implement Kernel namespaces, etc, in order to allow 
 virtualizing
 a remote hardware, without needing any userspace driver for doing that
 (well, except, of course, for the standard network userspace applications for
 DNS solving, configuring IP routes, etc).

 Cheers,
 Mauro
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread HoP
2011/6/21 Mauro Carvalho Chehab mche...@redhat.com:
 Em 21-06-2011 12:09, Andreas Oberritter escreveu:
 On 06/21/2011 04:35 PM, Mauro Carvalho Chehab wrote:
 Em 21-06-2011 11:15, Andreas Oberritter escreveu:
 On 06/21/2011 03:44 PM, Devin Heitmueller wrote:
 On Tue, Jun 21, 2011 at 7:04 AM, Andreas Oberritter o...@linuxtv.org 
 wrote:
 Mauro and Devin, I think you're missing the point. This is not about
 creating drivers in userspace. This is not about open or closed source.
 The vtuner interface, as implemented for the Dreambox, is used to
 access remote tuners: Put x tuners into y boxes and access them from
 another box as if they were local. It's used in conjunction with further
 software to receive the transport stream over a network connection.
 Honza's code does the same thing.

 I'm not missing the point at all.  I realize exactly what Honza is
 trying to accomplish (and from a purely technical standpoint, it's not
 a bad approach) - but I'm talking about the effects of such a driver
 being introduced which changes the kernel/userland licensing boundary
 and has very real implications with how the in-kernel code is
 accessed.

 You don't need it in order to create closed source drivers. You can
 already create closed kernel drivers now. Also, you can create tuner
 drivers in userspace using the i2c-dev interface. If you like to connect
 a userspace driver to a DVB API device node, you can distribute a small
 (open or closed) wrapper with it. So what are you arguing about?
 Everything you're feared of can already be done since virtually forever.

 I disagree.  There is currently no API which allows applications to
 issue tuning requests into the DVB core, and have those requests
 proxied back out to userland where an application can then use i2c-dev
 to tune the actual device.  Meaning if somebody wants to write a
 closed source userland application which controls the tuner, he/she
 can do that (while not conforming to the DVB API).  But if if he wants
 to reuse the GPL licensed DVB core, he has to replace the entire DVB
 core.

 The introduction of this patch makes it trivial for a third party to
 provide closed-source userland support for tuners while reusing all
 the existing GPL driver code that makes up the framework.

 I used to work for a vendor that makes tuners, and they do a bunch of
 Linux work.  And that work has resulted in a bunch of open source
 drivers.  I can tell you though that *every* conversation I've had
 regarding a new driver goes something like this:

 ===
 Devin, we need to support tuner X under Linux.

 Great!  I'll be happy to write a new GPL driver for the
 tuner/demodulator/whatever for that device

 But to save time/money, we just want to reuse the Windows driver code
 (or reference code from the vendor).

 Ok.  Well, what is the licensing for that code?  Is it GPL compatible?

 Not currently.  So can we just make our driver closed source?

 Well, you can't reuse any of the existing DVB core functionality or
 any of the other GPL drivers (tuners, bridges, demods), so you would
 have rewrite all that from scratch.

 Oh, that would be a ton of work.   Can we maybe write some userland
 stuff that controls the demodulator which we can keep closed source?
 Since it's not in the kernel, the GPL won't apply.

 Well, you can't really do that because there is no way for the DVB
 core to call back out to userland when the application makes the
 tuning request to the DVB core.

 Oh, ok then.  I guess we'll have to talk to the vendor and get them
 to give us the reference driver code under the GPL.
 ===

 I can tell you without a doubt that if this driver were present in the
 kernel, that going forward that vendor would have *zero* interest in
 doing any GPL driver work.  Why would they?  Why give away the code
 which could potentially help their competitors if they can keep it
 safe and protected while still being able to reuse everybody else's
 contributions?

 Companies don't contribute GPL code out of good will.  They do it
 because they are compelled to by licenses or because there is no
 economically viable alternative.

 Mauro, ultimately it is your decision as the maintainer which drivers
 get accepted in to the kernel.  I can tell you though that this will
 be a very bad thing for the driver ecosystem as a whole - it will
 essentially make it trivial for vendors (some of which who are doing
 GPL work now) to provide solutions that reuse the GPL'd DVB core
 without having to make any of their stuff open source.

 Anyway, I said in my last email that would be my last email on the
 topic.  I guess I lied.

 Yes, and you did lie to your vendor, too, as you did not mention the
 possibilities to create
 1.) closed source modules derived from existing vendor drivers while
 still being able to use other drivers (c.f. EXPORT_SYMBOL vs.
 EXPORT_SYMBOL_GPL).

 AFAIK, the legal issues on writing a closed source driver using 
 EXPORT_SYMBOL
 are not proofed legally in any court. While 

Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Markus Rechberger

 My very little opinion is that waving GPL is way to the hell. Nobody told me
 why similar technologies, in different kernel parts are acceptable,
 but not here.


since a customer was trying to use this module the only feedback I can give
right now is that there are still some fundamental bugs in that work.
Just running it with some intuitive parameters (without having a dvb
device connected) caused
it to hang.

./vtunerc.i686  -c 1
vtunerc: [5210 ../../vtunerc.c:349] debug: added frontend mode DVB-C
as mode 0, searching for tuner types 2
vtunerc: [5210 ../../vtunerc.c:346] error: unknown tuner mode
specified: 1 allow values are: -s -S -s2 -S2 -c -t
it just never returned.

DMESG:
vtunerc: [5207 ../../vtunerc.c:593] info: fake server answer
vtunerc: [5207 ../../vtunerc.c:606] info: msg: 4096 completed
vtunerc: [5207 ../../vtunerc.c:506] info: vtuner message!
vtunerc: [5207 ../../vtunerc.c:593] info: fake server answer

ps fax | grep vtunerc:
 5194 pts/4S  0:00  |   \_ bash
 5210 pts/4S+ 0:00  |   \_ [vtunerc.i686]

that way it's not good enough for inclusion yet anyway.

Markus
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread Rémi Denis-Courmont
Hello,

Le dimanche 19 juin 2011 03:10:15 HoP, vous avez écrit :
 get inspired by (unfortunately close-source) solution on stb
 Dreambox 800 I have made my own implementation
 of virtual DVB device, based on the same device API.

Some might argue that CUSE can already do this. Then again, CUSE would not be 
able to reuse the kernel DVB core infrastructure: everything would need to be 
reinvented in userspace.

 In conjunction with Dreamtuner userland project
 [http://code.google.com/p/dreamtuner/] by Ronald Mieslinger
 user can create virtual DVB device on client side and connect it
 to the server. When connected, user is able to use any Linux DVB API
 compatible application on client side (like VDR, MeTV, MythTV, etc)
 without any need of code modification. As server can be used any
 Linux DVB API compatible device.

IMHO, this needs a Documentation file for the userspace API (kinda like 
tuntap.txt).

-- 
Rémi Denis-Courmont
http://www.remlab.net/
http://fi.linkedin.com/in/remidenis
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread Devin Heitmueller
2011/6/20 Rémi Denis-Courmont r...@remlab.net:
        Hello,

 Le dimanche 19 juin 2011 03:10:15 HoP, vous avez écrit :
 get inspired by (unfortunately close-source) solution on stb
 Dreambox 800 I have made my own implementation
 of virtual DVB device, based on the same device API.

 Some might argue that CUSE can already do this. Then again, CUSE would not be
 able to reuse the kernel DVB core infrastructure: everything would need to be
 reinvented in userspace.

Generally speaking, this is the key reason that virtual dvb drivers
have been rejected in the past for upstream inclusion - it makes it
easier for evil tuner manufacturers to leverage all the hard work done
by the LinuxTV developers while providing a closed-source solution.
It was an explicit goal to *not* allow third parties to reuse the
Linux DVB core unless they were providing in-kernel drivers which
conform to the GPL.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread HoP
Hi Devin.

2011/6/20 Devin Heitmueller dheitmuel...@kernellabs.com:
 2011/6/20 Rémi Denis-Courmont r...@remlab.net:
        Hello,

 Le dimanche 19 juin 2011 03:10:15 HoP, vous avez écrit :
 get inspired by (unfortunately close-source) solution on stb
 Dreambox 800 I have made my own implementation
 of virtual DVB device, based on the same device API.

 Some might argue that CUSE can already do this. Then again, CUSE would not be
 able to reuse the kernel DVB core infrastructure: everything would need to be
 reinvented in userspace.

 Generally speaking, this is the key reason that virtual dvb drivers
 have been rejected in the past for upstream inclusion - it makes it

Can you tell me when such disscussion was done? I did a big attempt
to check if my work is not reinventing wheels, but I found only some
very generic frontend template by Emard em...@softhome.net.

 easier for evil tuner manufacturers to leverage all the hard work done
 by the LinuxTV developers while providing a closed-source solution.

May be I missunderstood something, but I can't see how frontend
virtualization/sharing can help to leverage others work.

 It was an explicit goal to *not* allow third parties to reuse the
 Linux DVB core unless they were providing in-kernel drivers which
 conform to the GPL.

I'm again not sure if you try to argument against vtunerc code
or nope.

Thanks

/Honza
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread Devin Heitmueller
On Mon, Jun 20, 2011 at 2:17 PM, HoP jpetr...@gmail.com wrote:
 Can you tell me when such disscussion was done? I did a big attempt
 to check if my work is not reinventing wheels, but I found only some
 very generic frontend template by Emard em...@softhome.net.

See the userspace tuner thread here for the background:

http://www.linuxtv.org/pipermail/linux-dvb/2007-August/thread.html#19840

 easier for evil tuner manufacturers to leverage all the hard work done
 by the LinuxTV developers while providing a closed-source solution.

 May be I missunderstood something, but I can't see how frontend
 virtualization/sharing can help to leverage others work.

It helps in that it allows third parties to write drivers in userspace
that leverage the in-kernel implementation of DVB core.  It means that
a product developer who didn't want to abide by the GPL could write a
closed-source driver in userland which takes advantage of the
thousands of lines of code that make up the DVB core.

 It was an explicit goal to *not* allow third parties to reuse the
 Linux DVB core unless they were providing in-kernel drivers which
 conform to the GPL.

 I'm again not sure if you try to argument against vtunerc code
 or nope.

I am against things like this being in the upstream kernel which make
it easier for third parties to leverage GPL code without making their
code available under the GPL.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread COEXSI


 -Original Message-
 From: linux-media-ow...@vger.kernel.org [mailto:linux-media-
 ow...@vger.kernel.org] On Behalf Of Devin Heitmueller
 Sent: lundi 20 juin 2011 20:25
 To: HoP
 Cc: Rémi Denis-Courmont; linux-media@vger.kernel.org
 Subject: Re: [RFC] vtunerc - virtual DVB device driver
 
 On Mon, Jun 20, 2011 at 2:17 PM, HoP jpetr...@gmail.com wrote:
  Can you tell me when such disscussion was done? I did a big attempt to
  check if my work is not reinventing wheels, but I found only some very
  generic frontend template by Emard em...@softhome.net.
 
 See the userspace tuner thread here for the background:
 
 http://www.linuxtv.org/pipermail/linux-dvb/2007-August/thread.html#19840
 
  easier for evil tuner manufacturers to leverage all the hard work
  done by the LinuxTV developers while providing a closed-source
 solution.
 
  May be I missunderstood something, but I can't see how frontend
  virtualization/sharing can help to leverage others work.
 
 It helps in that it allows third parties to write drivers in userspace
 that leverage the in-kernel implementation of DVB core.  It means that a
 product developer who didn't want to abide by the GPL could write a
 closed-source driver in userland which takes advantage of the thousands
 of lines of code that make up the DVB core.
 
  It was an explicit goal to *not* allow third parties to reuse the
  Linux DVB core unless they were providing in-kernel drivers which
  conform to the GPL.
 
  I'm again not sure if you try to argument against vtunerc code or
  nope.
 
 I am against things like this being in the upstream kernel which make it
 easier for third parties to leverage GPL code without making their code
 available under the GPL.
 

If I may put my two cents in this discussion regarding the closed source
code problem: maybe it could be great to have some closed source drivers
making some DVB hardware working better or even allowing more DVB hardware
working under Linux. For example, there is a good support of PCI DVB
devices, but not yet so much support for PCIe DVB devices (and even less if
you're searching for DVB-S2 tuner with CAM support at reasonable price).
Also, most the DVB drivers code released under GPL is nearly impossible to
understand as there is no documentation (because of NDA agreements with
developers - as I understood) and no inline comments. So does-it make so
much difference with closed source code? I really don't want to aggress
anybody here, but it's really a question I have.
 
 Devin
 
 --
 Devin J. Heitmueller - Kernel Labs
 http://www.kernellabs.com
 --
 To unsubscribe from this list: send the line unsubscribe linux-media
 in the body of a message to majord...@vger.kernel.org More majordomo
 info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread Devin Heitmueller
2011/6/20 Sébastien RAILLARD (COEXSI) s...@coexsi.fr:
 If I may put my two cents in this discussion regarding the closed source
 code problem: maybe it could be great to have some closed source drivers
 making some DVB hardware working better or even allowing more DVB hardware
 working under Linux. For example, there is a good support of PCI DVB
 devices, but not yet so much support for PCIe DVB devices (and even less if
 you're searching for DVB-S2 tuner with CAM support at reasonable price).

Nothing prevents a third-party from writing closed source drivers.
What we do *not* think is fair though is that those third parties
should be able to take advantage of all the GPL code that makes up the
DVB core, and the man-years spent developing that code.

If somebody wants to write a closed source driver, they are welcome to
(in fact, some companies actually have).  But I'll be damned if
they're going to reuse GPL code to accomplish it.  They are welcome to
reimplement the DVB core in userland if that is their goal (under
whatever licensing terms suits them).

 Also, most the DVB drivers code released under GPL is nearly impossible to
 understand as there is no documentation (because of NDA agreements with
 developers - as I understood) and no inline comments. So does-it make so
 much difference with closed source code? I really don't want to aggress
 anybody here, but it's really a question I have.

I disagree with this assertion.  I have worked on *many* different
drivers in the DVB subsystem, most of them without having the
datasheets.  While having the datasheets definitely is helpful (and
can definitely speed up debugging), I would argue that they are not
essential.

Also, a number of the drivers are reverse engineered (no datasheets
from the vendor), which is why the registers are not documented (the
person writing the code didn't actually know).  While there are indeed
cases where an NDA specifically prohibited releasing a GPL driver that
contained the register names, this tends to be more the exception
rather than the rule.  All the drivers I have done with vendor
assistance/datasheets have allowed me to include register names in the
driver.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread Rémi Denis-Courmont
Hello again,

Le lundi 20 juin 2011 20:41:44 Devin Heitmueller, vous avez écrit :
  Some might argue that CUSE can already do this. Then again, CUSE would
  not be able to reuse the kernel DVB core infrastructure: everything
  would need to be reinvented in userspace.
 
 Generally speaking, this is the key reason that virtual dvb drivers
 have been rejected in the past for upstream inclusion - it makes it
 easier for evil tuner manufacturers to leverage all the hard work done

Err? My point is exactly the opposite: without a dedicated virtual DVB device, 
(open-source) developers are stuck with CUSE, which if it would work at all, 
would be a major waste of effort. And then, it won't work for unprivileged 
processes due to CUSE ioctl's restrictions.

In other words, my point was technical, not political.

 by the LinuxTV developers while providing a closed-source solution.

This does not enable much that evil closed-source device vendors couldn't 
already do. Virtually any Linux-DVB-capable tool will also accept MPEG-TS feed 
piped from standard input. Tuning would have to use a dedicated interface; 
that's pretty much the only inconvenience.

DVB_NET can be implemented with the TUNTAP driver easily if it comes to that. 
And remote control can be mulated with the uinput driver all the same. There 
is even a mem2mem V4L2 device nowadays, is there not? And while uinput and 
tuntap allow proprietary userspace drivers, they come with major limitations 
inherent to userspace which limit their usefulness for proprietary device 
drivers.

FWIW, virtual device driver enables (open-source) innovation. There are 
countless useful IP tunnels or emulators using TUN or TAP for instance.

 It was an explicit goal to *not* allow third parties to reuse the
 Linux DVB core unless they were providing in-kernel drivers which
 conform to the GPL.

I am afraid I don't understand how is Linux-DVB different from other Linux 
subsystems, such as the (much larger in terms of non-driver-specific code) 
networking one.

-- 
Rémi Denis-Courmont
http://www.remlab.net/
http://fi.linkedin.com/in/remidenis
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread HoP
2011/6/20 Devin Heitmueller dheitmuel...@kernellabs.com:
 2011/6/20 Sébastien RAILLARD (COEXSI) s...@coexsi.fr:
 If I may put my two cents in this discussion regarding the closed source
 code problem: maybe it could be great to have some closed source drivers
 making some DVB hardware working better or even allowing more DVB hardware
 working under Linux. For example, there is a good support of PCI DVB
 devices, but not yet so much support for PCIe DVB devices (and even less if
 you're searching for DVB-S2 tuner with CAM support at reasonable price).

 Nothing prevents a third-party from writing closed source drivers.
 What we do *not* think is fair though is that those third parties
 should be able to take advantage of all the GPL code that makes up the
 DVB core, and the man-years spent developing that code.

 If somebody wants to write a closed source driver, they are welcome to
 (in fact, some companies actually have).  But I'll be damned if
 they're going to reuse GPL code to accomplish it.  They are welcome to
 reimplement the DVB core in userland if that is their goal (under
 whatever licensing terms suits them).


Do you think it is really serious enough reason to prevent of having
such virtualization driver in the kernel?

Let check my situation and tell me how I should continue (TBH, I already
thought that driver can be accepted, but my dumb brain thought because
of non quality code/design or so. It was really big surprise which
reason was used aginst it):

I have equipment, based of course on Linux and others open-source
code, which is using DVB tuners sharing (the box has two DVB-S2 NIMs
on inputs and ethernet on output). If I understand you well, I have to cut
such box feature (which is, btw, one of very nicer usecase of such box)
and stop thinking about it?

Do you really think that it is a good way which should linux come?
I don't like binary drivers as well. But if developers can't extend
usability of linux because of worrying about blob drivers, it is not
good, it is path to the hell.

My 2cents.

/Honza

PS: I don't want to start any war, but I would like to know if it is only
Devin POV or it has wider support inside linux-media hackers.
Of course I will stay with my drivers outside the kernel. Ugly, I know.
But I never want to enter by closed doors. Not my way.
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread Devin Heitmueller
On Mon, Jun 20, 2011 at 3:56 PM, HoP jpetr...@gmail.com wrote:
 Do you think it is really serious enough reason to prevent of having
 such virtualization driver in the kernel?

 Let check my situation and tell me how I should continue (TBH, I already
 thought that driver can be accepted, but my dumb brain thought because
 of non quality code/design or so. It was really big surprise which
 reason was used aginst it):

Yes, this is entirely a political issue and not a technical one.
Every couple of years somebody implements such a driver, and they have
all been rejected for upstream.

 I have equipment, based of course on Linux and others open-source
 code, which is using DVB tuners sharing (the box has two DVB-S2 NIMs
 on inputs and ethernet on output). If I understand you well, I have to cut
 such box feature (which is, btw, one of very nicer usecase of such box)
 and stop thinking about it?

 Do you really think that it is a good way which should linux come?
 I don't like binary drivers as well. But if developers can't extend
 usability of linux because of worrying about blob drivers, it is not
 good, it is path to the hell.

The unfortunate fact is that allowing this sort of thing *does* allow
for abuse of the interface, even if was not the intention of the
original author of the patch/driver.  In fact, I believe all the cases
in the past were by people who were friendly to open source.

 My 2cents.

 /Honza

 PS: I don't want to start any war, but I would like to know if it is only
 Devin POV or it has wider support inside linux-media hackers.
 Of course I will stay with my drivers outside the kernel. Ugly, I know.
 But I never want to enter by closed doors. Not my way.

To be fair, I am not the originator of this argument.  If you read the
history, a variety of other Linux DVB-V4L developers have shared the
same view (which I adopted after hearing the arguments).

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread HoP
2011/6/20 Devin Heitmueller dheitmuel...@kernellabs.com:
 On Mon, Jun 20, 2011 at 3:56 PM, HoP jpetr...@gmail.com wrote:
 Do you think it is really serious enough reason to prevent of having
 such virtualization driver in the kernel?

 Let check my situation and tell me how I should continue (TBH, I already
 thought that driver can be accepted, but my dumb brain thought because
 of non quality code/design or so. It was really big surprise which
 reason was used aginst it):

 Yes, this is entirely a political issue and not a technical one.

Political? So we can declare that politics win (again) technicians. Sad.

 Every couple of years somebody implements such a driver, and they have
 all been rejected for upstream.

Why same not apply to other devices? If I would be really accurate
I would vote for removing nfs, smbfs and all other network sharing filesystems.

 original author of the patch/driver.  In fact, I believe all the cases
 in the past were by people who were friendly to open source.

I would like to know how much such bad guys stayed with kernel
development.

 To be fair, I am not the originator of this argument.  If you read the
 history, a variety of other Linux DVB-V4L developers have shared the
 same view (which I adopted after hearing the arguments).

Seems DVB hackers are very specific group. Such politic rule
don't wan't to have any place in the code development. Of course,
it's my personal opinion only.

/Honza
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread Mauro Carvalho Chehab
Em 20-06-2011 17:24, HoP escreveu:
 2011/6/20 Devin Heitmueller dheitmuel...@kernellabs.com:
 On Mon, Jun 20, 2011 at 3:56 PM, HoP jpetr...@gmail.com wrote:
 Do you think it is really serious enough reason to prevent of having
 such virtualization driver in the kernel?

 Let check my situation and tell me how I should continue (TBH, I already
 thought that driver can be accepted, but my dumb brain thought because
 of non quality code/design or so. It was really big surprise which
 reason was used aginst it):

 Yes, this is entirely a political issue and not a technical one.
 
 Political? So we can declare that politics win (again) technicians. Sad.

This is not a political issue. It is a licensing issue. If you want to use
someone's else code, you need to accept the licensing terms that the developers
are giving you, by either paying the price for the code usage (on closed source
licensing models), or by accepting the license when using an open-sourced code.

Preserving the open-source eco-system is something that everyone
developing open source expect: basically, you're free to do whatever
you want, but if you're using a code written by an open-source developer,
the expected behaviour that GPL asks (and that the developer wants, when he
opted for GPL) is that you should return back to the community with any 
changes you did, including derivative work. This is an essential rule of working
with GPL.

If you're not happy with that, that's fine. You can implement another stack 
that is not GPL-licensed.

Mauro.
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread HoP
2011/6/20 Mauro Carvalho Chehab mche...@redhat.com:
 Em 20-06-2011 17:24, HoP escreveu:
 2011/6/20 Devin Heitmueller dheitmuel...@kernellabs.com:
 On Mon, Jun 20, 2011 at 3:56 PM, HoP jpetr...@gmail.com wrote:
 Do you think it is really serious enough reason to prevent of having
 such virtualization driver in the kernel?

 Let check my situation and tell me how I should continue (TBH, I already
 thought that driver can be accepted, but my dumb brain thought because
 of non quality code/design or so. It was really big surprise which
 reason was used aginst it):

 Yes, this is entirely a political issue and not a technical one.

 Political? So we can declare that politics win (again) technicians. Sad.

 This is not a political issue. It is a licensing issue. If you want to use
 someone's else code, you need to accept the licensing terms that the 
 developers
 are giving you, by either paying the price for the code usage (on closed 
 source
 licensing models), or by accepting the license when using an open-sourced 
 code.

 Preserving the open-source eco-system is something that everyone
 developing open source expect: basically, you're free to do whatever
 you want, but if you're using a code written by an open-source developer,
 the expected behaviour that GPL asks (and that the developer wants, when he
 opted for GPL) is that you should return back to the community with any
 changes you did, including derivative work. This is an essential rule of 
 working
 with GPL.

 If you're not happy with that, that's fine. You can implement another stack
 that is not GPL-licensed.

Mauro, you totally misunderstood me. If you see on my first post in that thread
I was sending full GPL-ed driver to the mailinglist.

I simply didn't expect that my source will be refused because of worrying
about misuse it to the bad things(tm).

Note again: I did it GPLed and opensourced, I never ever thought about
binary blobs or some other closed stuffs!

/Honza
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread Bjørn Mork
Devin Heitmueller dheitmuel...@kernellabs.com writes:

 Nothing prevents a third-party from writing closed source drivers.
 What we do *not* think is fair though is that those third parties
 should be able to take advantage of all the GPL code that makes up the
 DVB core, and the man-years spent developing that code.

You could use the same argument against adding a loadable module
interface to the Linux kernel (and I'm pretty sure it was used).
Thankfully, usability won back then.  Or we most likely wouldn't have
had a single Linux DVB driver.  Or Linux at all, except as a historical
footnote.

Honza posted a GPL licensed driver and gave a pretty good usage
scenario.  Please don't reject it based on fear of abuse.  If you think
about it, almost any usability improvement will also make abuse easier.
And if you reject all of them based on such fear, then your system will
die.


Thanks.


Bjørn

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread Devin Heitmueller
On Mon, Jun 20, 2011 at 6:11 PM, Bjørn Mork bj...@mork.no wrote:
 Devin Heitmueller dheitmuel...@kernellabs.com writes:

 Nothing prevents a third-party from writing closed source drivers.
 What we do *not* think is fair though is that those third parties
 should be able to take advantage of all the GPL code that makes up the
 DVB core, and the man-years spent developing that code.

 You could use the same argument against adding a loadable module
 interface to the Linux kernel (and I'm pretty sure it was used).
 Thankfully, usability won back then.  Or we most likely wouldn't have
 had a single Linux DVB driver.  Or Linux at all, except as a historical
 footnote.

 Honza posted a GPL licensed driver and gave a pretty good usage
 scenario.  Please don't reject it based on fear of abuse.  If you think
 about it, almost any usability improvement will also make abuse easier.
 And if you reject all of them based on such fear, then your system will
 die.

There isn't much sense in having this discussion again (and kicking
off yet another flamewar).  All of your arguments have been made
before (and in the case of Linux DVB, they failed).  I would suggest
you read the archives and see how the developers arrived at their
conclusions.

If you have some *new* argument to offer, then feel free.  Otherwise
it's just flamebait.

Anyway, I've said what I have to say on this topic.

Cheers,

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-20 Thread Mauro Carvalho Chehab
Em 20-06-2011 18:31, HoP escreveu:
 2011/6/20 Mauro Carvalho Chehab mche...@redhat.com:
 Em 20-06-2011 17:24, HoP escreveu:
 2011/6/20 Devin Heitmueller dheitmuel...@kernellabs.com:
 On Mon, Jun 20, 2011 at 3:56 PM, HoP jpetr...@gmail.com wrote:
 Do you think it is really serious enough reason to prevent of having
 such virtualization driver in the kernel?

 Let check my situation and tell me how I should continue (TBH, I already
 thought that driver can be accepted, but my dumb brain thought because
 of non quality code/design or so. It was really big surprise which
 reason was used aginst it):

 Yes, this is entirely a political issue and not a technical one.

 Political? So we can declare that politics win (again) technicians. Sad.

 This is not a political issue. It is a licensing issue. If you want to use
 someone's else code, you need to accept the licensing terms that the 
 developers
 are giving you, by either paying the price for the code usage (on closed 
 source
 licensing models), or by accepting the license when using an open-sourced 
 code.

 Preserving the open-source eco-system is something that everyone
 developing open source expect: basically, you're free to do whatever
 you want, but if you're using a code written by an open-source developer,
 the expected behaviour that GPL asks (and that the developer wants, when he
 opted for GPL) is that you should return back to the community with any
 changes you did, including derivative work. This is an essential rule of 
 working
 with GPL.

 If you're not happy with that, that's fine. You can implement another stack
 that is not GPL-licensed.
 
 Mauro, you totally misunderstood me. If you see on my first post in that 
 thread
 I was sending full GPL-ed driver to the mailinglist.

You misunderstood me. Something that exposes the kernel interface to for an
userspace client driver to implement DVB is not a driver, it is a wrapper.

The real driver will be in userspace, using the DVB stack, and can even be
closed source. Some developers already tried to do things like that and sell
the userspace code. Such code submission were nacked. There is even one case
where the kernelspace code were dropped due to that (and later, replaced by an
opensource driver).

We don't want to go on this way again.

Mauro.
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html