After integrating the first chunk of IPv6 changes, Tim Peters quickly found that they won't compile on Windows - even though this was the least-critical part of the patch. Specifically, this code emulates the getaddrinfo and getnameinfo calls, which will be exposed to Python programs in a later patch. Therefore, it is essential that they are available on every system, either directly or through emulation. For Windows, one option is to use the Microsoft-provided emulation, which is available from http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp To use this emulation, only the header files of the package are required; it is not necessary to actually install the IPv6 preview on the system. The MS emulation will try to load a few DLLs which are known to provide getaddrinfo. If neither DLL is found, the code in the header file falls back to an emulation. That way, the resulting socket.pyd would use the true API function on installations that provide them, and the emulation on all other systems. The only requirement for building Python is then that the header file from the technology preview is available on the build machine (tpipv6.h). It may be that the header file is also included in recent SDK releases, I haven't checked. Is such a requirement acceptable for building the socket module on Windows? Regards, Martin
[Martin v. Loewis]
After integrating the first chunk of IPv6 changes, Tim Peters quickly found that they won't compile on Windows - even though this was the least-critical part of the patch.
Mark Favas also reported failure on a Unix box -- we can't leave the CVS tree in an unusable state, and Mark in particular provides uniquely valuable feedback from his collection of Platforms from Mars <wink>. I #ifdef'ed out the offending includes on Windows for now, but that doesn't help Mark.
Specifically, this code emulates the getaddrinfo and getnameinfo calls, which will be exposed to Python programs in a later patch. Therefore, it is essential that they are available on every system, either directly or through emulation.
For Windows, one option is to use the Microsoft-provided emulation, which is available from
http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp
It says it's unsupported preview software for Win2K only. Since even the first *real* release of anything from MS sucks, I wouldn't touch this unless I absolutely had to. But I don't have any cycles for this project anyway, so this:
... Is such a requirement acceptable for building the socket module on Windows?
will have to be addressed by someone who does. Is anyone, e.g., at ActiveState keen on this?
"Martin v. Loewis" wrote:
After integrating the first chunk of IPv6 changes, Tim Peters quickly found that they won't compile on Windows - even though this was the least-critical part of the patch.
Specifically, this code emulates the getaddrinfo and getnameinfo calls, which will be exposed to Python programs in a later patch. Therefore, it is essential that they are available on every system, either directly or through emulation.
For Windows, one option is to use the Microsoft-provided emulation, which is available from
http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp
To use this emulation, only the header files of the package are required; it is not necessary to actually install the IPv6 preview on the system. The MS emulation will try to load a few DLLs which are known to provide getaddrinfo. If neither DLL is found, the code in the header file falls back to an emulation. That way, the resulting socket.pyd would use the true API function on installations that provide them, and the emulation on all other systems.
The only requirement for building Python is then that the header file from the technology preview is available on the build machine (tpipv6.h). It may be that the header file is also included in recent SDK releases, I haven't checked.
Is such a requirement acceptable for building the socket module on Windows?
Isn't this the MS SDK that has the new "Open Source" license clause in it ?! If yes, I very much doubt that this approach would be feasable for Python... http://msdn.microsoft.com/downloads/eula_mit.htm Quote from a recent posting by Steven Majewski on c.l.p.: """ (c) Open Source. Recipients license rights to the Software are conditioned upon Recipient (i) not distributing such Software, in whole or in part, in conjunction with Potentially Viral Software (as defined below); and (ii) not using Potentially Viral Software (e.g. tools) to develop Recipient software which includes the Software, in whole or in part. For purposes of the foregoing, Potentially Viral Software means software which is licensed pursuant to terms that: (x) create, or purport to create, obligations for Microsoft with respect to the Software or (y) grant, or purport to grant, to any third party any rights to or immunities under Microsofts intellectual property or proprietary rights in the Software. By way of example but not limitation of the foregoing, Recipient shall not distribute the Software, in whole or in part, in conjunction with any Publicly Available Software. Publicly Available Software means each of (i) any software that contains, or is derived in any manner (in whole or in part) from, any software that is distributed as free software, open source software (e.g. Linux) or similar licensing or distribution models; and (ii) any software that requires as a condition of use, modification and/or distribution of such software that other software distributed with such software (A) be disclosed or distributed in source code form; (B) be licensed for the purpose of making derivative works; or (C) be redistributable at no charge. Publicly Available Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models similar to any of the following: (A) GNUs General Public License (GPL) or Lesser/Library GPL (LGPL), (B) The Artistic License (e.g., PERL), (C) the Mozilla Public License, (D) the Netscape Public License, (E) the Sun Community Source License (SCSL), and (F) the Sun Industry Standards License (SISL). """ -- Marc-Andre Lemburg CEO eGenix.com Software GmbH ______________________________________________________________________ Company & Consulting: http://www.egenix.com/ Python Software: http://www.lemburg.com/python/
Tim Peters wrote:
Is such a requirement acceptable for building the socket module on Windows?
will have to be addressed by someone who does. Is anyone, e.g., at ActiveState keen on this?
Not as far as I know. I haven't looked at the patches, but couldn't we have the IPv6 code be #ifdef'ed out, so that those who care about IPv6 can periodically test it while the various OS-level libraries are ramped up over the next months/years, but w/o disturbing the 'current' builds? --david
Is such a requirement acceptable for building the socket module on Windows?
Isn't this the MS SDK that has the new "Open Source" license clause in it ?!
No, this has a different license text, which can be seen on http://msdn.microsoft.com/downloads/sdks/platform/tpipv6/download.asp On redistribution, it says # If you redistribute the SOFTWARE and/or your Source Modifications, # or any portion thereof as provided above, you agree: (i) to # distribute the SOFTWARE only in conjunction with, and as part of, # your Source Modifications which add significant functionality to the # SOFTWARE; (ii) to distribute the SOFTWARE and/or your Source # Modifications solely as part of your research and not in any # commercial product; (iii) the SOFTWARE and/or your Source # Modifications will not be distributed for profit; (iv) to retain all # branding, copyright and trademark notices included with the SOFTWARE # and include a copy of this EULA with any distribution of the # SOFTWARE, or any portion thereof; and (v) to indemnify, hold # harmless, and defend Microsoft from and against any claims or # lawsuits, including attorneys' fees, that arise or result from # the use or distribution of your Source Modifications. I don't know whether this is acceptable or not. Regards, Martin
"Martin v. Loewis" wrote:
Is such a requirement acceptable for building the socket module on Windows?
Isn't this the MS SDK that has the new "Open Source" license clause in it ?!
No, this has a different license text, which can be seen on
http://msdn.microsoft.com/downloads/sdks/platform/tpipv6/download.asp
On redistribution, it says
# If you redistribute the SOFTWARE and/or your Source Modifications, # or any portion thereof as provided above, you agree: (i) to # distribute the SOFTWARE only in conjunction with, and as part of, # your Source Modifications which add significant functionality to the # SOFTWARE; (ii) to distribute the SOFTWARE and/or your Source # Modifications solely as part of your research and not in any # commercial product; (iii) the SOFTWARE and/or your Source # Modifications will not be distributed for profit; (iv) to retain all # branding, copyright and trademark notices included with the SOFTWARE # and include a copy of this EULA with any distribution of the # SOFTWARE, or any portion thereof; and (v) to indemnify, hold # harmless, and defend Microsoft from and against any claims or # lawsuits, including attorneys' fees, that arise or result from # the use or distribution of your Source Modifications.
I don't know whether this is acceptable or not.
Most likely not: there are lots of commercial Python users out there who wouldn't like these clauses at all... we'd also lose the GPL compatibility. -- Marc-Andre Lemburg CEO eGenix.com Software GmbH ______________________________________________________________________ Company & Consulting: http://www.egenix.com/ Python Software: http://www.lemburg.com/python/
http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp
[MAL]
Isn't this the MS SDK that has the new "Open Source" license clause in it ?!
No. That was for the "Mobile Internet Toolkit" toolkit; no relation, AFAICT.
If yes, I very much doubt that this approach would be feasable for Python...
# If you redistribute the SOFTWARE and/or your Source Modifications, # or any portion thereof as provided above, you agree: (i) to # distribute the SOFTWARE only in conjunction with, and as part of, # your Source Modifications which add significant functionality to the # SOFTWARE; (ii) to distribute the SOFTWARE and/or your Source # Modifications solely as part of your research and not in any # commercial product; (iii) the SOFTWARE and/or your Source # Modifications will not be distributed for profit; (iv) to retain all # branding, copyright and trademark notices included with the SOFTWARE # and include a copy of this EULA with any distribution of the # SOFTWARE, or any portion thereof; and (v) to indemnify, hold # harmless, and defend Microsoft from and against any claims or # lawsuits, including attorneys' fees, that arise or result from # the use or distribution of your Source Modifications.
I don't know whether this is acceptable or not.
Most likely not: there are lots of commercial Python users out there who wouldn't like these clauses at all... we'd also lose the GPL compatibility.
Don't even *think* about using code with that license. --Guido van Rossum (home page: http://www.python.org/~guido/)
participants (5)
-
David Ascher
-
Guido van Rossum
-
M.-A. Lemburg
-
Martin v. Loewis
-
Tim Peters