Re: [Bf-committers] extension clause

2010-10-06 Thread Damir Prebeg
That sentence is also unclear to me. If I understand it right, that means
that Blender can't have for instance, a legal VRay plugin. That doesn't make
much sense because If any proprietary program can use GPL'd DLL as long as
they provide license and access to the code of that DLL, why GPL program
shouldn't be able to use proprietary DLL?

If Python script and MyDLL doesn't use any GPL code, I don't see a reason
that they couldn't be published under a different license than GPL. That's
not supporting of proprietary code.

Few years a go I've watched a discussion about Python scripts for Blender
and licensing and someone stated that If some script needs Blender to work,
then It can not be published under any license but GPL.
And what If that script is divided in two parts? One that works only in
Blender and second that uses only generic python? For instance, first one
takes Blender mesh, gathers vertex coordinates and face data, creates
generic lists and exports them to second one. That way second one can be
used by any program that can create lists.


Damir


On 6 October 2010 04:43, Roger Wickes rogerwic...@yahoo.com wrote:

 What is not OK about it?
 I think it is clear that the Blender Foundation cannot support proprietary
 code.

 If you have the situation where a company wants to build
 some DLL and keep it proprietary, then never release it to the public.
 Guard it
 as
 your own intellectual property. Use your code to your competitive
 advantage.
 I have a client who did just that. Their scripts that they wrote and paid
 for
 are theirs.
 They license their code and have a great business model. Their complete
 solution
 includes Blender, but they do not sub-license Blender or steal code;
 instead the
 customer gets Blender from BF, and their solution from them.

 Or do you have the situation where you want to develop a plugin to Blender
 that
 you
 license out (sell) to customers?

  --Roger


 Check out my website at www.rogerwickes.com for a good deal on my book and
 training course, as well as information about my latest activities. Use
 coupon
 Papasmurf for $15 off!



 - Original Message 
 From: john grant johnkonradgr...@yahoo.com
 To: bf-committers@blender.org
 Sent: Tue, October 5, 2010 10:09:50 PM
 Subject: [Bf-committers] extension clause

 Hello,
 I assume this topic has been brought up before, but I have not yet found
 evidence of those conversations.  I would like to voice my opinion to find
 out
 what is the truth.  If I am not understanding correctly, please let me
 know.  I
 presume that the following text,
 Not OK is:
 Author publishes a Blender script, calling a compiled C library with own
 code,
 both under own license. 

 from this source,
 http://www.blender.org/education-help/faq/gpl-for-artists/


 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers




 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] extension clause

2010-10-06 Thread Leo Sutic
This is one of those questions that end up being decided by case law.

The issue is what is an aggregate and what is a modified version. See:

http://www.gnu.org/licenses/gpl-faq.html#MereAggregation

It is tricky to define where the line between these is drawn, as much of
it depends on the nature of the connection between the Blender-part and
the external part. If public APIs are used on both sides, then it
comes closer to aggregation. If private APIs are used, closer to
modified version.

I had this same discussion with the authors of JBoss, an EJB Server, a
while back. There, too, one could write plugins for the server. The end
result was that as long as the plugin only used public APIs (Java
standards), you could do anything you wanted.

/LS

On 2010-10-06 06:56, Dan Eicher wrote:
 As long as myDLL didn't link to or rely on any gpl'd code there's nothing
 anyone can say about how people use it -- except for the copyright owner of
 course.
 
 Bundling (distributing it and blender in the same 'package') is probably not
 an option though.

 The bottom line is that we consider everything you can create in Blender as
 'data', including Blender scripts. But when you extend Blender with other
 facilities you have to follow the regulations of the GPL.

 ...snip...

 The divider is If the script runs in the Blender Interpretor. When the
 script calls code not running in the Blender Interpretor you are making
 bindings to other facilities, and the regular GNU GPL rules apply.

 Hmm... so one can only make calls to gpl compatible code if they want to
 distribute a script that runs in blender's interpreter?
 
 That doesn't sound right.
 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers
 

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] OpenGL Profiles Project?

2010-10-06 Thread Michael Matthews
Thank you very much guys, this is very good information.  Keep it coming if
anyone else has anything they think is obvious, but which might not be clear
yet.

On Tue, Oct 5, 2010 at 2:28 PM, Mathew Burrack mburr...@yahoo.com wrote:

 I actually had to write similar code back in the day for realMYST/URU for
 handling the peculiarities of various graphics cards (and back then, there
 were a TON more of them!). Having the user select a profile still doesn't
 make sense; instead, all it really takes is a bitfield of what capabilities
 you want to run with, which the OGL code checks (are GL_POINTS supported? If
 that bit is set, go that path, else go the fallback path, etc).

 In an ideal world, all you have to do is populate that bitfield with what
 you can detect from GL_EXTENSIONS, etc. Obviously, though, that never really
 works. So instead, you have a list of exceptions, keyed off of the
 reported device name, vendor name, and driver version, that says force this
 bit off or force this bit on. The startup code populates the bitfield
 based on what it detects, then checks the list of exceptions for bits to
 fix based on the card detected.

 That way, the user never has to select anything, and the code automatically
 does what it's supposed to, and enabling/disabling certain functionality
 based on a graphics card misbehaving is a simple matter of adding a line or
 two to the exception file (which can easily be tweaked based on bug reports
 from various users based on their gfx card; what's more, testing the fix
 with that user is dead simple, since all you have to do is send them a new
 exceptions list).

 ...worked on realMYST/URU just fine, at least :)

 -Mathew

 --- On Tue, 10/5/10, Tom M letter...@gmail.com wrote:

  From: Tom M letter...@gmail.com
  Subject: Re: [Bf-committers] OpenGL Profiles Project?
  To: bf-blender developers bf-committers@blender.org
  Date: Tuesday, October 5, 2010, 11:00 AM
  It might be worth looking at how Ogre
  and possibly CrystalSpace handle this.
 
  LetterRip
 
  On Tue, Oct 5, 2010 at 9:29 AM, Ton Roosendaal t...@blender.org
  wrote:
   Hi,
  
   The sad truth is that the implementation of Opengl,
  driver versions,
   bugs in drivers, all make Opengl not work as smooth as
  it could be.
  
   The idea of a Profile is that you can setup per-system
  settings that
   match the used hardware. These could be topics like:
   - FSA
   - Buffer swap methods
   - Bitmap support
   - mipmap settomgs
   - GLSL support levels
   - VBO (I guess)
   - dual graphics cards (?)
   - multi monitor setups, or stereo
   - 
  
   This should not to be automatically checked on,
  because most cards
   support it more or less. The profile is to ensure you
  can get maximum
   performance and best quality user experience.
  
   What is also possible it to extend our bgl calls
  (like
   bglBegin(GL_POINTS)), which wraps specific problematic
  calls in Opengl
   to match what we expect. The choosen profile can work
  that way without
   polluting the code with checks, making it all local in
  a single C file
   or so.
  
   If you check in our code, the places where opengl
  extension or vendor
   strings are being checked is probably a good
  indication where we have
   issues.
  
   Hope this info helps. Be warned it's not the best
  beginner code
   project, good understanding of opengl on various
  systems, and on how
   Blender uses opengl is required. And don't forget
  Mesa!
  
   Thanks,
  
   -Ton-
  
  
  
   Ton Roosendaal  Blender Foundation   t...@blender.org
   www.blender.org
   Blender Institute   Entrepotdok 57A  1018AD
  Amsterdam   The Netherlands
  
   On 5 Oct, 2010, at 8:50, Mathew Burrack wrote:
  
   Not to butt in here, but what exactly is the point
  of the OpenGL
   profiles? To simplify setting up OpenGL display
  settings? What's
   wrong with auto-detecting what the card is capable
  of and just using
   that? Is the goal to avoid settings that are buggy
  on certain cards?
  
   It just seems to me like the end users would want
  it to Just Work
   and not care (or even necessarily know about) the
  difference between
   the profiles, and would just end up picking the
  first one that
   worked, not necessarily the best one.
  
   (Just trying to understand the goal here :)
  
   --mcn
  
  
   --- On Mon, 10/4/10, Knapp magick.c...@gmail.com
  wrote:
  
   From: Knapp magick.c...@gmail.com
   Subject: Re: [Bf-committers] OpenGL Profiles
  Project?
   To: bf-blender developers bf-committers@blender.org
   Date: Monday, October 4, 2010, 11:12 PM
   Might start by doing a hardware poll
   among the users. Perhaps on the
   Blender.org site and also a few of the other
  bigger blender
   sites. I
   would bet that you could find a much narrower
  design goal
   that way.
  
   I will start out here. Nvidia Gforce 7600 GS.
  A nice card
   for blender
   but I am hoping to update soon.
  
 

Re: [Bf-committers] OpenGL Profiles Project?

2010-10-06 Thread Ton Roosendaal
Hi,

A user-definable profile will allow you to make Blender behave as you  
want, and not behave as the drivers, vendor strings, bugs, exceptions,  
and our smart developers think it will be. You can always do a good  
guess first though, but in the end allowing to tweak some important  
settings will only benefit for using Blender.

Simple example: some systems do support GL_POINTS only for point size  
1. Some only draw such points as squares, others as rounded shapes.  
You can try to get this all sorted out by smart guessing, but in the  
end it pays off to have the user make a decision what's acceptable, or  
where other methods are preferred.

-Ton-


Ton Roosendaal  Blender Foundation   t...@blender.orgwww.blender.org
Blender Institute   Entrepotdok 57A  1018AD Amsterdam   The Netherlands

On 5 Oct, 2010, at 20:28, Mathew Burrack wrote:

 I actually had to write similar code back in the day for realMYST/ 
 URU for handling the peculiarities of various graphics cards (and  
 back then, there were a TON more of them!). Having the user select a  
 profile still doesn't make sense; instead, all it really takes is a  
 bitfield of what capabilities you want to run with, which the OGL  
 code checks (are GL_POINTS supported? If that bit is set, go that  
 path, else go the fallback path, etc).

 In an ideal world, all you have to do is populate that bitfield with  
 what you can detect from GL_EXTENSIONS, etc. Obviously, though, that  
 never really works. So instead, you have a list of exceptions,  
 keyed off of the reported device name, vendor name, and driver  
 version, that says force this bit off or force this bit on. The  
 startup code populates the bitfield based on what it detects, then  
 checks the list of exceptions for bits to fix based on the card  
 detected.

 That way, the user never has to select anything, and the code  
 automatically does what it's supposed to, and enabling/disabling  
 certain functionality based on a graphics card misbehaving is a  
 simple matter of adding a line or two to the exception file (which  
 can easily be tweaked based on bug reports from various users based  
 on their gfx card; what's more, testing the fix with that user is  
 dead simple, since all you have to do is send them a new exceptions  
 list).

 ...worked on realMYST/URU just fine, at least :)

 -Mathew

 --- On Tue, 10/5/10, Tom M letter...@gmail.com wrote:

 From: Tom M letter...@gmail.com
 Subject: Re: [Bf-committers] OpenGL Profiles Project?
 To: bf-blender developers bf-committers@blender.org
 Date: Tuesday, October 5, 2010, 11:00 AM
 It might be worth looking at how Ogre
 and possibly CrystalSpace handle this.

 LetterRip

 On Tue, Oct 5, 2010 at 9:29 AM, Ton Roosendaal t...@blender.org
 wrote:
 Hi,

 The sad truth is that the implementation of Opengl,
 driver versions,
 bugs in drivers, all make Opengl not work as smooth as
 it could be.

 The idea of a Profile is that you can setup per-system
 settings that
 match the used hardware. These could be topics like:
 - FSA
 - Buffer swap methods
 - Bitmap support
 - mipmap settomgs
 - GLSL support levels
 - VBO (I guess)
 - dual graphics cards (?)
 - multi monitor setups, or stereo
 - 

 This should not to be automatically checked on,
 because most cards
 support it more or less. The profile is to ensure you
 can get maximum
 performance and best quality user experience.

 What is also possible it to extend our bgl calls
 (like
 bglBegin(GL_POINTS)), which wraps specific problematic
 calls in Opengl
 to match what we expect. The choosen profile can work
 that way without
 polluting the code with checks, making it all local in
 a single C file
 or so.

 If you check in our code, the places where opengl
 extension or vendor
 strings are being checked is probably a good
 indication where we have
 issues.

 Hope this info helps. Be warned it's not the best
 beginner code
 project, good understanding of opengl on various
 systems, and on how
 Blender uses opengl is required. And don't forget
 Mesa!

 Thanks,

 -Ton-


 
 Ton Roosendaal  Blender Foundation   t...@blender.org
  www.blender.org
 Blender Institute   Entrepotdok 57A  1018AD
 Amsterdam   The Netherlands

 On 5 Oct, 2010, at 8:50, Mathew Burrack wrote:

 Not to butt in here, but what exactly is the point
 of the OpenGL
 profiles? To simplify setting up OpenGL display
 settings? What's
 wrong with auto-detecting what the card is capable
 of and just using
 that? Is the goal to avoid settings that are buggy
 on certain cards?

 It just seems to me like the end users would want
 it to Just Work
 and not care (or even necessarily know about) the
 difference between
 the profiles, and would just end up picking the
 first one that
 worked, not necessarily the best one.

 (Just trying to understand the goal here :)

 --mcn


 --- On Mon, 

Re: [Bf-committers] extension clause

2010-10-06 Thread Roger Wickes
Think about it this way. A program that runs under Linux uses OS API's. Even 
though Linux is GPL, 

the program does not have to be GPL. Blender is a facility. If you use 
publicly-available APIs to 

write an extension to Blender, or even a whole suite of programs like an 
AutoCAD-type, you can
license your Intellectual Property any way you want to. 

What you cannot do is to take some existing Blender module, extend it with your 
own code,
and then license that module back out. 

 --Roger


Check out my website at www.rogerwickes.com for a good deal on my book and 
training course, as well as information about my latest activities. Use coupon
Papasmurf for $15 off!



- Original Message 
From: Leo Sutic leo.su...@gmail.com
To: bf-blender developers bf-committers@blender.org
Sent: Wed, October 6, 2010 3:23:50 AM
Subject: Re: [Bf-committers] extension clause

This is one of those questions that end up being decided by case law.

The issue is what is an aggregate and what is a modified version. See:

http://www.gnu.org/licenses/gpl-faq.html#MereAggregation

It is tricky to define where the line between these is drawn, as much of
it depends on the nature of the connection between the Blender-part and
the external part. If public APIs are used on both sides, then it
comes closer to aggregation. If private APIs are used, closer to
modified version.

I had this same discussion with the authors of JBoss, an EJB Server, a
while back. There, too, one could write plugins for the server. The end
result was that as long as the plugin only used public APIs (Java
standards), you could do anything you wanted.

/LS

On 2010-10-06 06:56, Dan Eicher wrote:
 As long as myDLL didn't link to or rely on any gpl'd code there's nothing
 anyone can say about how people use it -- except for the copyright owner of
 course.
 
 Bundling (distributing it and blender in the same 'package') is probably not
 an option though.

 The bottom line is that we consider everything you can create in Blender as
 'data', including Blender scripts. But when you extend Blender with other
 facilities you have to follow the regulations of the GPL.

 ...snip...

 The divider is If the script runs in the Blender Interpretor. When the
 script calls code not running in the Blender Interpretor you are making
 bindings to other facilities, and the regular GNU GPL rules apply.

 Hmm... so one can only make calls to gpl compatible code if they want to
 distribute a script that runs in blender's interpreter?
 
 That doesn't sound right.
 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers
 

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers



  
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] extension clause

2010-10-06 Thread Roger Wickes
i think the person who made that statement is wrong. Any program 
needs an OS to work, yet you can license your program differently from
the way the OS is licensed. The API is the dividing line. If you dance on the
outside of the API, your stuff is yours. 

 --Roger


Check out my website at www.rogerwickes.com for a good deal on my book and 
training course, as well as information about my latest activities. Use coupon
Papasmurf for $15 off!



- Original Message 
From: Michelangelo Manrique michelangelomanri...@hotmail.com
To: bf-blender developers bf-committers@blender.org
Sent: Wed, October 6, 2010 3:08:19 AM
Subject: Re: [Bf-committers] extension clause

well, sentences like If something needs x to work... is little bit
tricky. After all you require a pc to run scripts independently what
they do. If we see little bit far away we can say you can't publish
anything under GPL because you require an Intel chipset to make it
running or you require Windows or anything else... this is a point of
view issue after all imo.

On Wed, 2010-10-06 at 08:20 +0200, Damir Prebeg wrote:
 That sentence is also unclear to me. If I understand it right, that means
 that Blender can't have for instance, a legal VRay plugin. That doesn't make
 much sense because If any proprietary program can use GPL'd DLL as long as
 they provide license and access to the code of that DLL, why GPL program
 shouldn't be able to use proprietary DLL?
 
 If Python script and MyDLL doesn't use any GPL code, I don't see a reason
 that they couldn't be published under a different license than GPL. That's
 not supporting of proprietary code.
 
 Few years a go I've watched a discussion about Python scripts for Blender
 and licensing and someone stated that If some script needs Blender to work,
 then It can not be published under any license but GPL.
 And what If that script is divided in two parts? One that works only in
 Blender and second that uses only generic python? For instance, first one
 takes Blender mesh, gathers vertex coordinates and face data, creates
 generic lists and exports them to second one. That way second one can be
 used by any program that can create lists.
 
 
 Damir
 
 
 On 6 October 2010 04:43, Roger Wickes rogerwic...@yahoo.com wrote:
 
  What is not OK about it?
  I think it is clear that the Blender Foundation cannot support proprietary
  code.
 
  If you have the situation where a company wants to build
  some DLL and keep it proprietary, then never release it to the public.
  Guard it
  as
  your own intellectual property. Use your code to your competitive
  advantage.
  I have a client who did just that. Their scripts that they wrote and paid
  for
  are theirs.
  They license their code and have a great business model. Their complete
  solution
  includes Blender, but they do not sub-license Blender or steal code;
  instead the
  customer gets Blender from BF, and their solution from them.
 
  Or do you have the situation where you want to develop a plugin to Blender
  that
  you
  license out (sell) to customers?
 
   --Roger
 
 
  Check out my website at www.rogerwickes.com for a good deal on my book and
  training course, as well as information about my latest activities. Use
  coupon
  Papasmurf for $15 off!
 
 
 
  - Original Message 
  From: john grant johnkonradgr...@yahoo.com
  To: bf-committers@blender.org
  Sent: Tue, October 5, 2010 10:09:50 PM
  Subject: [Bf-committers] extension clause
 
  Hello,
  I assume this topic has been brought up before, but I have not yet found
  evidence of those conversations.  I would like to voice my opinion to find
  out
  what is the truth.  If I am not understanding correctly, please let me
  know.  I
  presume that the following text,
  Not OK is:
  Author publishes a Blender script, calling a compiled C library with own
  code,
  both under own license. 
 
  from this source,
  http://www.blender.org/education-help/faq/gpl-for-artists/
 
 
  ___
  Bf-committers mailing list
  Bf-committers@blender.org
  http://lists.blender.org/mailman/listinfo/bf-committers
 
 
 
 
  ___
  Bf-committers mailing list
  Bf-committers@blender.org
  http://lists.blender.org/mailman/listinfo/bf-committers
 
 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers
 


___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers



  
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] extension clause

2010-10-06 Thread john grant
Hi all,
Thanks for contributing to the discussion.  It isn't clear to me what the final 
decision is.

I think many of you (Dan, Damir, others) see the issue with the wording and 
understand what I'm trying to do (definitely nothing malicious toward Blender) 
which is to extend Blender to do new things via a script or plugin.  Blender 
has 
created facilities for extension, but the language used by the Foundation makes 
it DEBATABLE that the extension may need to have a license compatible with the 
GPL.  The situation (probably common, like the VRay example) is that a script 
or 
plugin can be written to use the Blender API from within Blender AND call a DLL 
with a different license.  I can think of several examples that the community 
is 
probably already using or would like to use that may be violating the language 
used by the Blender Foundation.  Again, I think Blender will be well served by 
allowing for such extensions.

Will the Blender Foundation provide language that removes any doubt that 
proprietary DLLs can be used from at least one form of extension mechanism?


Thanks,
John






From: Roger Wickes rogerwic...@yahoo.com
To: bf-blender developers bf-committers@blender.org
Sent: Wed, October 6, 2010 6:20:38 AM
Subject: Re: [Bf-committers] extension clause

Think about it this way. A program that runs under Linux uses OS API's. Even 
though Linux is GPL, 

the program does not have to be GPL. Blender is a facility. If you use 
publicly-available APIs to 

write an extension to Blender, or even a whole suite of programs like an 
AutoCAD-type, you can
license your Intellectual Property any way you want to. 

What you cannot do is to take some existing Blender module, extend it with your 
own code,
and then license that module back out. 

--Roger


Check out my website at www.rogerwickes.com for a good deal on my book and 
training course, as well as information about my latest activities. Use coupon
Papasmurf for $15 off!



- Original Message 
From: Leo Sutic leo.su...@gmail.com
To: bf-blender developers bf-committers@blender.org
Sent: Wed, October 6, 2010 3:23:50 AM
Subject: Re: [Bf-committers] extension clause

This is one of those questions that end up being decided by case law.

The issue is what is an aggregate and what is a modified version. See:

http://www.gnu.org/licenses/gpl-faq.html#MereAggregation

It is tricky to define where the line between these is drawn, as much of
it depends on the nature of the connection between the Blender-part and
the external part. If public APIs are used on both sides, then it
comes closer to aggregation. If private APIs are used, closer to
modified version.

I had this same discussion with the authors of JBoss, an EJB Server, a
while back. There, too, one could write plugins for the server. The end
result was that as long as the plugin only used public APIs (Java
standards), you could do anything you wanted.

/LS

On 2010-10-06 06:56, Dan Eicher wrote:
 As long as myDLL didn't link to or rely on any gpl'd code there's nothing
 anyone can say about how people use it -- except for the copyright owner of
 course.
 
 Bundling (distributing it and blender in the same 'package') is probably not
 an option though.

 The bottom line is that we consider everything you can create in Blender as
 'data', including Blender scripts. But when you extend Blender with other
 facilities you have to follow the regulations of the GPL.

 ...snip...

 The divider is If the script runs in the Blender Interpretor. When the
 script calls code not running in the Blender Interpretor you are making
 bindings to other facilities, and the regular GNU GPL rules apply.

 Hmm... so one can only make calls to gpl compatible code if they want to
 distribute a script that runs in blender's interpreter?
 
 That doesn't sound right.
 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers
 

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers



  
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers



  
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] extension clause

2010-10-06 Thread Campbell Barton
Probably our FAQ should list possible ways to write closed source code
with blender, rather then only saying whats not possible.

AFAIK there are a few ways...
1) run your closed source code in a separate process and have your own
opensouce module communicate with it (pipes, sockets, shared-mem).
2) do what nvidia do on linux. mix closed and open code but distribute
separately. this means the violation only happens on the system where
both are installed and running.
3) do whatever the heck you like but only use internally or share with
clients but dont sell or distribute pubically.

On Wed, Oct 6, 2010 at 3:36 PM, john grant johnkonradgr...@yahoo.com wrote:
 Hi all,
 Thanks for contributing to the discussion.  It isn't clear to me what the 
 final
 decision is.

 I think many of you (Dan, Damir, others) see the issue with the wording and
 understand what I'm trying to do (definitely nothing malicious toward Blender)
 which is to extend Blender to do new things via a script or plugin.  Blender 
 has
 created facilities for extension, but the language used by the Foundation 
 makes
 it DEBATABLE that the extension may need to have a license compatible with the
 GPL.  The situation (probably common, like the VRay example) is that a script 
 or
 plugin can be written to use the Blender API from within Blender AND call a 
 DLL
 with a different license.  I can think of several examples that the community 
 is
 probably already using or would like to use that may be violating the language
 used by the Blender Foundation.  Again, I think Blender will be well served by
 allowing for such extensions.

 Will the Blender Foundation provide language that removes any doubt that
 proprietary DLLs can be used from at least one form of extension mechanism?


 Thanks,
 John





 
 From: Roger Wickes rogerwic...@yahoo.com
 To: bf-blender developers bf-committers@blender.org
 Sent: Wed, October 6, 2010 6:20:38 AM
 Subject: Re: [Bf-committers] extension clause

 Think about it this way. A program that runs under Linux uses OS API's. Even
 though Linux is GPL,

 the program does not have to be GPL. Blender is a facility. If you use
 publicly-available APIs to

 write an extension to Blender, or even a whole suite of programs like an
 AutoCAD-type, you can
 license your Intellectual Property any way you want to.

 What you cannot do is to take some existing Blender module, extend it with 
 your
 own code,
 and then license that module back out.

 --Roger


 Check out my website at www.rogerwickes.com for a good deal on my book and
 training course, as well as information about my latest activities. Use coupon
 Papasmurf for $15 off!



 - Original Message 
 From: Leo Sutic leo.su...@gmail.com
 To: bf-blender developers bf-committers@blender.org
 Sent: Wed, October 6, 2010 3:23:50 AM
 Subject: Re: [Bf-committers] extension clause

 This is one of those questions that end up being decided by case law.

 The issue is what is an aggregate and what is a modified version. See:

    http://www.gnu.org/licenses/gpl-faq.html#MereAggregation

 It is tricky to define where the line between these is drawn, as much of
 it depends on the nature of the connection between the Blender-part and
 the external part. If public APIs are used on both sides, then it
 comes closer to aggregation. If private APIs are used, closer to
 modified version.

 I had this same discussion with the authors of JBoss, an EJB Server, a
 while back. There, too, one could write plugins for the server. The end
 result was that as long as the plugin only used public APIs (Java
 standards), you could do anything you wanted.

 /LS

 On 2010-10-06 06:56, Dan Eicher wrote:
 As long as myDLL didn't link to or rely on any gpl'd code there's nothing
 anyone can say about how people use it -- except for the copyright owner of
 course.

 Bundling (distributing it and blender in the same 'package') is probably not
 an option though.

 The bottom line is that we consider everything you can create in Blender as
 'data', including Blender scripts. But when you extend Blender with other
 facilities you have to follow the regulations of the GPL.

 ...snip...

 The divider is If the script runs in the Blender Interpretor. When the
 script calls code not running in the Blender Interpretor you are making
 bindings to other facilities, and the regular GNU GPL rules apply.

 Hmm... so one can only make calls to gpl compatible code if they want to
 distribute a script that runs in blender's interpreter?

 That doesn't sound right.
 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers


 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers




 ___
 Bf-committers mailing list
 

Re: [Bf-committers] extension clause

2010-10-06 Thread Elia Sarti
Related to this, wouldn't it suffice to release the RNA and bpy modules 
under a less restrictive license (BSD) to potentially solve this issue?
I think we can reasonably track down all contributors to these modules, 
as they're fairly recent and all of the APIs scripts use are bridged by 
these two modules so it should screen out any possible licensing conflicts?
The same would be true for C extensions, by using RNA exclusively to 
access the Blender API.

Or does the fact that RNA itself uses GPL'd code influence this possibility?


Campbell Barton wrote, on 10/06/2010 05:07 PM:
 Probably our FAQ should list possible ways to write closed source code
 with blender, rather then only saying whats not possible.

 AFAIK there are a few ways...
 1) run your closed source code in a separate process and have your own
 opensouce module communicate with it (pipes, sockets, shared-mem).
 2) do what nvidia do on linux. mix closed and open code but distribute
 separately. this means the violation only happens on the system where
 both are installed and running.
 3) do whatever the heck you like but only use internally or share with
 clients but dont sell or distribute pubically.

 On Wed, Oct 6, 2010 at 3:36 PM, john grantjohnkonradgr...@yahoo.com  wrote:

 Hi all,
 Thanks for contributing to the discussion.  It isn't clear to me what the 
 final
 decision is.

 I think many of you (Dan, Damir, others) see the issue with the wording and
 understand what I'm trying to do (definitely nothing malicious toward 
 Blender)
 which is to extend Blender to do new things via a script or plugin.  Blender 
 has
 created facilities for extension, but the language used by the Foundation 
 makes
 it DEBATABLE that the extension may need to have a license compatible with 
 the
 GPL.  The situation (probably common, like the VRay example) is that a 
 script or
 plugin can be written to use the Blender API from within Blender AND call a 
 DLL
 with a different license.  I can think of several examples that the 
 community is
 probably already using or would like to use that may be violating the 
 language
 used by the Blender Foundation.  Again, I think Blender will be well served 
 by
 allowing for such extensions.

 Will the Blender Foundation provide language that removes any doubt that
 proprietary DLLs can be used from at least one form of extension mechanism?


 Thanks,
 John





 
 From: Roger Wickesrogerwic...@yahoo.com
 To: bf-blender developersbf-committers@blender.org
 Sent: Wed, October 6, 2010 6:20:38 AM
 Subject: Re: [Bf-committers] extension clause

 Think about it this way. A program that runs under Linux uses OS API's. Even
 though Linux is GPL,

 the program does not have to be GPL. Blender is a facility. If you use
 publicly-available APIs to

 write an extension to Blender, or even a whole suite of programs like an
 AutoCAD-type, you can
 license your Intellectual Property any way you want to.

 What you cannot do is to take some existing Blender module, extend it with 
 your
 own code,
 and then license that module back out.

 --Roger


 Check out my website at www.rogerwickes.com for a good deal on my book and
 training course, as well as information about my latest activities. Use 
 coupon
 Papasmurf for $15 off!



 - Original Message 
 From: Leo Suticleo.su...@gmail.com
 To: bf-blender developersbf-committers@blender.org
 Sent: Wed, October 6, 2010 3:23:50 AM
 Subject: Re: [Bf-committers] extension clause

 This is one of those questions that end up being decided by case law.

 The issue is what is an aggregate and what is a modified version. See:

 http://www.gnu.org/licenses/gpl-faq.html#MereAggregation

 It is tricky to define where the line between these is drawn, as much of
 it depends on the nature of the connection between the Blender-part and
 the external part. If public APIs are used on both sides, then it
 comes closer to aggregation. If private APIs are used, closer to
 modified version.

 I had this same discussion with the authors of JBoss, an EJB Server, a
 while back. There, too, one could write plugins for the server. The end
 result was that as long as the plugin only used public APIs (Java
 standards), you could do anything you wanted.

 /LS

 On 2010-10-06 06:56, Dan Eicher wrote:
  
 As long as myDLL didn't link to or rely on any gpl'd code there's nothing
 anyone can say about how people use it -- except for the copyright owner of
 course.

 Bundling (distributing it and blender in the same 'package') is probably not
 an option though.

 The bottom line is that we consider everything you can create in Blender as

 'data', including Blender scripts. But when you extend Blender with other
 facilities you have to follow the regulations of the GPL.

 ...snip...

 The divider is If the script runs in the Blender Interpretor. When the
 script calls code not running in the Blender Interpretor you are making
 bindings to other 

Re: [Bf-committers] extension clause

2010-10-06 Thread Engel Sanchez




Date: Wed, 6 Oct 2010 16:07:13 +
From: Campbell Barton ideasma...@gmail.com
Subject: Re: [Bf-committers] extension clause

 3) do whatever the heck you like but only use internally or share with
clients but dont sell or distribute pubically.


Absolutely DO NOT distribute Blender pubically!! There has GOT to be 
something 
in the GPL against that :)



  
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] extension clause

2010-10-06 Thread Dan Eicher
On Wed, Oct 6, 2010 at 9:07 AM, Campbell Barton ideasma...@gmail.comwrote:

 ...snip...

2) do what nvidia do on linux. mix closed and open code but distribute
 separately. this means the violation only happens on the system where
 both are installed and running.

 That is merely tolerated by Linus et al. and is probably a violation of the
gpl from what I understand.

And, if you look into it a bit, they have a 'fine line' between public api
(good) and other kernel level calls (bad) which in blender would most likely
translate to py-api (good) and ctypes (bad).

Found an article from the recent WordPress gpl dustup that explains the
distinction pretty well --
http://markjaquith.wordpress.com/2010/07/17/why-wordpress-themes-are-derivative-of-wordpress/.
It kind of seems from the FSF analysis of 'themes' --
http://wordpress.org/news/2009/07/themes-are-gpl-too/ -- that operators and
extensions would indeed be subject to the gpl since they are intermingled
with and operated on by blender code.

I'm also thinking that calling external renderers is probably good (vray
example) since they aren't designed to run linked together in a shared
address space but the actual blender exporter script is most likely subject
to the gpl.

But, as always, seek proper legal council.

Dan**
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] extension clause

2010-10-06 Thread Matt Ebb

On 07/10/2010, at 05:20 , Dan Eicher wrote:

 I'm also thinking that calling external renderers is probably good (vray
 example) since they aren't designed to run linked together in a shared
 address space but the actual blender exporter script is most likely subject
 to the gpl.

I think the VRay query is not related to use of python per se, but potentially 
what would happen with a C or C++ RNA API/Render API, which could be used like 
a 'normal' render plugin in other software, without having to go through python.


On 07/10/2010, at 00:23 , Roger Wickes wrote:

 i think the person who made that statement is wrong. Any program 
 needs an OS to work, yet you can license your program differently from
 the way the OS is licensed. The API is the dividing line. If you dance on the
 outside of the API, your stuff is yours. 

Unfortunately, the GPL itself doesn't seem so clear on this. And in many cases 
I think it's quite silly and doesn't really do anything to preserve the 
open-ness of an application.


On 07/10/2010, at 03:07 , Campbell Barton wrote:

 AFAIK there are a few ways...
 1) run your closed source code in a separate process and have your own
 opensouce module communicate with it (pipes, sockets, shared-mem).
 2) do what nvidia do on linux. mix closed and open code but distribute
 separately. this means the violation only happens on the system where
 both are installed and running.

This is kinda funny to me, in that awkward solutions like this would seem more 
compliant with 'the letter of the law', when in effect its really the same end 
result, without any differing levels of open-ness in blender itself. It seems 
to me that criteria like shared address space/dlopen/etc are a bit arbitrary in 
deciding whether its a single program, or two, communicating via an API. I 
suspect if such a case went to court, the question would be judged more on that 
'is it a modified single program' issue, rather than 'does it satisfy these 
arbitrary technical requirements via obtuse workarounds'. AFAIK this part 
hasn't been tested in court.

Personally I'd just go and do what you want anyway, especially if as you say 
it's not a modification to Blender itself. I don't think any blender developers 
will sue you - I promise not to, at least ;)

Matt
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


[Bf-committers] new patch:uniform displace modifier when no texture is present

2010-10-06 Thread Fredrik hansson
https://projects.blender.org/tracker/index.php?func=detailaid=24177group_id=9atid=127

copy pasted from the patch description:
this removes the need for adding a texture if all you want is a uniform push 
over the entire mesh using the displace
modifier.
now my usual workflow is to use the displace modifier + one single colored 
texture when i am retopologizing a mesh so
the new mesh will be sightly above the surface instead of partially hidden this 
patch removes the need for that texture
step.
now this works in x y z and normal mode disabled the xyz-rgb one since it 
would just result in the entire mesh being
pushed in the all axises at once.
and it works just as before with a texture present.

compiled against rev:32357


  
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] OpenGL Profiles Project?

2010-10-06 Thread GSR
Hi,
mburr...@yahoo.com (2010-10-06 at 0815.35 -0700):
 The irony is that, at least IMHO, the specific example you gave
 actually supported my idea of *not* having user intervention.

 Specifically, you're putting the burden on the user to determine
 whether their graphics card supports GL_POINTS correctly or not. End
 users don't want to bother with that; they just want to get
 modeling!

Some cards/drivers claim X, then give you X by software (looks
correct, but too slow) or X done to the basic level required by spec
(compliant but slow and/or not looking as expected by coder that
wanted the extras). In both cases, being able to manually pick Y is a
lot better than being stuck with X, even if down the road an exception
will be added so Blender knows it has to pick Y, because all that time
you have been enjoying X. Or the other option, the driver gets fixed
or improved and X becomes fast and implements the full spec, so now Y
is the wrong thing.

One example inside Blender is swap mode (triple buffer, overlap,
etc). It sounded like a great thing, but once people started testing
with other cards than the developer's one, problems appeared. Auto
select was added to tune out of the box behaviour, but manual
override was kept.

As another example of thrusting the drivers to use advertised options,
that are slower and worse looking than the old fallbacks, you can
check the latest rants arround KDE. Probably if they had an manual
override from start they could had collect user reports to make better
guesses, whilst people would be getting good performance until a new
release that integrates the changes is done.

So having a manual option means reducing the pains but also the delays
from updating to guess code. IE, happier users, and even better,
people being able to test what workarrounds must be added or if the
old workarround can be disabled now or still needed.

[...]
 The code could also store what exception set from the exceptions
 file matched the current profile. If/when the Python API is called
 to change a value in the profile, we automatically write out the
 updated exceptions to the exception file. That way, developers (and
 hard-core users) have a way of tweaking the exceptions file without
 manually editing it, and plus they can check the tweaks in
 real-time. If someone tweaks their particular setup to a better
 profile, all they have to do is submit the updated exceptions file
 as a patch, and we merge in the new set of exceptions (after any
 appropriate testing, of course).

So in the end there should be a manual override system on top of code
that tries to do a first guess. Just like the swap method selection.

GSR
 
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] OpenGL Profiles Project?

2010-10-06 Thread Mathew Burrack

  Specifically, you're putting the burden on the user to
 determine
  whether their graphics card supports GL_POINTS
 correctly or not. End
  users don't want to bother with that; they just want
 to get
  modeling!
 
 Some cards/drivers claim X, then give you X by software
 (looks
 correct, but too slow) or X done to the basic level
 required by spec
 (compliant but slow and/or not looking as expected by coder
 that
 wanted the extras). In both cases, being able to manually
 pick Y is a
 lot better than being stuck with X, 

Actually, in both cases, *using* Y is a lot better than being stuck with X. 
Manually choosing Y has nothing to do with it, because in both cases, X will be 
unequivocally less desirable. Do you want the option to be able to Y instead of 
X in those cases? Absolutely. Should the user have to intervene to pick Y 
instead of X? No, not if at all possible.
 
 Or the other option, the driver
 gets fixed
 or improved and X becomes fast and implements the full
 spec, so now Y
 is the wrong thing.

At which point, you update the exceptions list from:

vendor.device.*:
do Y instead of X

to:

vendor.device.version  foobar:
do Y instead of X

This is expected, and inevitable as drivers are updated. *Something* will have 
to be changed as the drivers are updated; in my case, it's just a configuration 
file instead of the code, and all you need is one updated exception config file 
to push out to users, instead of having every single user go back into the 
preferences and unselect the do Y instead of X option.

In fact, in my proposal, instead of *every* user doing that, only *one* has to 
do that and submit the updated exceptions file as a patch. All future users 
benefit automatically.

 So having a manual option means reducing the pains but also
 the delays
 from updating to guess code. IE, happier users, and even
 better,
 people being able to test what workarrounds must be added
 or if the
 old workarround can be disabled now or still needed.

 ...

 So in the end there should be a manual override system on
 top of code
 that tries to do a first guess. Just like the swap method
 selection.

My suggestion for the Python API for the exceptions list satisfies that. Yes, 
you need the manual control one way or another; the fundamental difference 
I'm proposing is that, instead of having *every* user needing to modify those 
exceptions manually, that we save them back out and store them in such a way 
that they can be submitted as a patch so that, ideally, only one user (or at 
least a small subset) need to actually bother with the manual control. Everyone 
else just downloads an update and benefits automatically.

--mcn


  
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] BGE Components Proposal

2010-10-06 Thread Dalai Felinto
HI Mitchell.
I have no familiarity with Unity (although always heard wonders about it)
nevertheless it sounds like an interesting feature.

I confess that the workflow confused me a little bit. Why to go to outliner
instead of loading the class straight from a text (internal or not)
datablock? If I'm not mistaken your original proposal (the one in the video)
was doing something like this, no?

Some details:
1) how to tell blender what is the type of the game property you are adding
(in your example Health, Energy and Regen are floats, but and if they
are boolean, strings, timer, ...)
2) your update function runs every logic tic. I can see some cases where
this is more often than the necessary (given the overhead that python+logics
can sometimes produce). Maybe something to be workarounded with some
internal counter (e.g. if counter%5: return).

Those are my 2 cents for now. I think that to be able to do more with python
is a great gain for BGE. Too bad we don't have a feature roadmap, but from
my understanding this kind of functionality fits well with present and
future plans for BGE.

Dalai


2010/10/5 Mitchell Stokes moguri...@gmail.com

 I would like feedback on this proposal:
 http://wiki.blender.org/index.php/User:Moguri/BGE_Components_Proposal

 It is a proposal to add Unity-like components to the BGE. I plan to
 hopefully implement this soon, but as I said, I would like some feedback.

 Thanks,
 Mitchell Stokes (Moguri)
 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers