I have recently started using GitHub, as I was told that it is a good thing to do. However, I am wondering how to upload a certain project that uses external libraries. This project, made using Visual Studio 2017, uses some external libraries (SDL 2, GLEW and GLM) stored in a "dependencies" folder inside the solution. This folder contains the header files, .lib files and the .dll files.

Can I upload these to GitHub as part of my project, in order for it to run, without getting any legal issues from the creators of these libraries? Do I have to credit them somewhere, just let the user manually install them, or is there something that I'm missing?


1 Answer 1


I wouldn't recommend uploading static binaries and header files to GitHub. A better approach might be to create a script that is executed before compilation that downloads these dependencies. Alternatively, you could use what is already installed on the machine, if that is applicable.

If you choose to upload the external libraries to GitHub, you must comply with all of the terms and conditions of their licenses. For example, you must show the full copyright notice for some of these libraries.

https://github.com/nigels-com/glew/blob/master/LICENSE.txt https://www.libsdl.org/license.php http://glm.g-truc.net/copying.txt

It looks like the licenses for your external dependencies are fairly permissive. However, I'll give you an example of might happen if you chose to upload a GPLv3 binary. If you uploaded a GPLv2 binary, you would be required to provide the source code for this binary as well as all instructions to configure, compile, and install the binary. If you don't comply with these requirements, you could lose your rights to continue using the binary or be sued.

Do I have to credit them somewhere, just let the user manually install them or is there something that I'm missing?

Yes, the external libraries you are using require attribution if you choose to upload static binaries to GitHub. See the URLs to the licenses that I linked above. From the MIT license:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

I don't believe you have to do any sort of attribution if you let the user manually install the dependencies. However, the same sort of attribution would be required if you are statically linking your these libraries into your program, and sending the resulting binary to somebody else.

  • Thanks for the answer, and the links to the licences. About downloading the dependencies, doesn't GitHub have some sort of method to link other GitHub projects or is that for something else?
    – user8213
    Commented May 30, 2017 at 20:15
  • 2
    @Gigas There are git submodules to pin a particular version of a dependency. Whether it's a good idea to use them in your case, I can't tell (they are a bit difficult to use).
    – Zimm i48
    Commented May 31, 2017 at 12:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.