For example: If I make a python program that uses PyQt5, I have to distribute my software under GPLv3. So naturally I would include the source code of my program as "corresponding source code" together with building instructions (since building scripts are part of the source as by GPL's definition).
But what else do I have to put in the package?
If I use pyinstaller to freeze the program to an executable file and include the used librarys, the package now includes binaries of PyQt5 and Qt itself. Do I have to include the source code PLUS build instructions for PyQt5 and Qt? What if I don't know how to build it from source?
The resulting package also includes Python34.dll. Does that mean I have to include the source code of the reference implementation of Python plus instructions how to build it from source?
Pyinstaller also puts "msvcp100.dll" and "msvcr100.dll" in the package, wich I can't provide sources for. I believe it's part of the "Microsoft Visual C++ 2010 Redistributable Package". Does this count as "System Library", which I don't have to provide source code for under GPL?
Pyinstaller also includes "icudt53.dll", "icuin53.dll" and "icuuc53.dll". Those libraries seem to be C/C++ libraries from ICU (International Components for Unicode). PyQt5's Qt build needs them. Are those "System Librarys", which I can include in a package that is distributed under GPL without providing source code for that particular libraries?
If my interpretation of GPL is correct, it seems almost impossible not to violate GPL if you are not a very skilled programmer.
EDIT: I now stumbled upon this: https://www.gnu.org/licenses/quick-guide-gplv3.html
It states: "GPLv3 has adjusted the definition of System Library to include software that may not come directly with the operating system, but that all users of the software can reasonably be expected to have. For example, it now also includes the standard libraries of common programming languages such as Python and Ruby. The new definition also makes it clear that you can combine GPLed software with GPL-incompatible System Libraries, such as OpenSolaris' C library, and distribute them both together. These changes will make life easier for free software distributors who want to provide these combinations to their users."
So that does mean that I don't have to do point 2. (I suppose) I'm still unsure about the other points, though.