Ok, here goes for more input on the most difficult part of vomp so far...

@dbm: I like the idea. I had forgotten you posted it here and came up with it again myself yesterday - it is a nice solution to the problem because nobody is distributing anything that violates the GPL, and what users do with GPL code under their own roofs is as far as I can tell, not our problem. But somebody would have to work out how to actually do it - no small task.
Myself and Mark discussed the release of vomp-for-windows yesterday and came to the following conclusion about distributing and licencing the vomp-for-windows binary under the terms of the GPL: It is impossible.
Why?
- As a user receiving a binary under the terms of the GPL they must be granted the following right:
"You may modify your copy or copies of the Program or any portion of it" (GPL section 2).
We cannot provide the source code to the Microsoft parts, therefore this right can never be true.
- As a user receiving a binary under the terms of the GPL they must be able to modify their copy of the program and redistribute it under the terms of the GPL. They cannot legally do this because they would need to be able to licence the Microsoft parts under the GPL.
So, here are our thoughts on what to do.
--------------------------------------------------------------
The copyright holders of vomp own the code.
The copyright holders of vomp are not bound by the terms of the GPL.
The GPL is the licence used to allow other people to have rights concerning the program.
The vomp-for-windows binary is not distributed under the terms of the GPL because:
- The vomp developers are incapable of granting the following right in the GPL:
"2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:"
... because the Direct X components are closed source.
The Vomp For Windows Binary _could_ be released _not_ under the GPL because:
- All the copyright holders could decide to do so.
- There is no code in the program licenced to us by others under the GPL. (This has to
be the case because otherwise: as GPL licencees of other code we would be violating GPL part 2b.)
Re: Exceptions to the GPL
- A user may compile vomp + the Microsoft binary parts themselves for their own personal use.
There is nothing in the GPL to stop them doing this ??
- A user cannot distribute this binary because the vomp copyright holders licenced the source
code for vomp under the terms of the GPL which states:
"You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications ..."
which they cannot legally do since they cannot modify the Microsoft parts.
- If we add an exception to our GPL licence allowing modified versions of our code to be linked
with non-GPL software, specifically the Microsoft parts, then the users can distribute binaries.
The exception statement template from the GPL documentation:
"In addition, as a special exception, <name of copyright holder> gives permission to link the code
of this program with the FOO library (or with modified versions of FOO that use the same license
as FOO), and distribute linked combinations including the two. You must obey the GNU General
Public License in all respects for all of the code used other than FOO. If you modify this file,
you may extend this exception to your version of the file, but you are not obligated to do so.
If you do not wish to do so, delete this exception statement from your version."
This creates a binary / work that has some parts covered by the GPL and some not.
The vomp developers have to make sure that there is no GPL licenced code in the vomp-for-windows
binary that is not written by the vomp copyright holders. This is because as users of other people's
GPL covered code we are not allowed to re-distribute it in a program linked to non-free libraries.
vomp-for-windows dynamically links to some libraries on Windows. Again, the vomp copyright holders
can distribute a binary that does this. Can users of the vomp code do this?
Extract of the GPL covering what the user must do concerning providing source code to their binaries:
"The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable."
The GPL states that
- Complete source code must be made available
- Except parts that are normally distributed (source or binary) as part of the O/S
- Except if the part in question is actually in the original distributed executable
The libraries that vomp-for-windows links to are distributed as part of the O/S
_and_ they are not part of the vomp for windows executable. Therefore licencees of vomp
need not provide the source code to these dynamically linked libraries.
Conclusions:
1. vomp-for-windows binary is releasable, but is not a binary covered by the GPL.
2. Must remove any source code in vomp that is licenced to us under the GPL.
3. Must add GPL exception to the licence so that our licencees can create & distribute the same/modified binary that we can.
4. Must get permission from all vomp copyright holders to link and distrbite their code against non-GPL code.
-----------------------------------------------------
So, input please. Personally I think this is the answer as I cannot see how we would be violating the GPL if we did this. (Actually I havn't read the Microsoft distribution licence recently but I don't think it will be a problem).