How to organize an open source project

I plan to publish an open source personal project mainly for educational (if any) purposes. It is only Windows.

My own code will be released under the MIT license, but I also use these libraries / components:

  • OH YEAH
  • Scintilla
  • Component Scintilla PJ Naughter
  • GLaux

Also, to make sure that I include the license files for each of these libraries, how do I integrate them into the source code release tree?

Currently, for each of them I use a specific release / revision, which I manually configured or created and integrated in terms of source code files and library binaries. It's enough? I don’t want to burden the resulting package with the full source trees of third-party developers, but at the same time I want it to be compiled from scratch.

I also want to include my final compiled executables. Did it frown? I will check the resulting exe with VirusTotal.

+6
source share
2 answers

My own code will be released under the MIT license, but I also use these libraries / components: [...]

Currently, for each of them I use a specific release / revision, which I manually configured or created and integrated in terms of source code files and library binaries. It's enough? I don’t want to burden the resulting package with the full source trees of third-party developers, but at the same time I want it to be compiled from scratch.

As you want to offer your application to others, to remake it, next to the binary version, you may want to offer a kind of "SDK" version that contains your code as binary source and library dependencies.

Since you also want to be able to compile from all sources, for practical reasons it is also necessary to create a complete source package for each version.

Create yourself a script that can automatically create each of these packages. Put your build script under version control. If you don't have version control right now, first put the source tree under version control.

These are just practical suggestions so that you can achieve what you are looking for, providing other users with good accessibility to your program.

To license the libraries / components you listed, I tried to learn more. If applicable, I obtained short identifiers from the SPDX Open Source License Registry . It contains links to each license, so this is a good tool for classifying the license terms of your package:

(IANAL) It looks like these are all types of permissions, so you are basically not required to release the source. Two notes:

  • I was unable to get information about GLAux. You might want to examine the source files that you have. It was somewhat difficult to learn more, it seems that the library is out of date. I saw that this is part of the OpenGL project, but I do not know what source files you use and where you got them.

  • The Scintilla PJ Naughter component has a non-standard license that prevents the distribution of modified source code. But you are allowed to distribute the code unchanged. I think the goal of the original author is that he does not want another distribution of the source next to his own (plug, but did not change the plug). I would say that you must comply as much as you can, and if you can no longer contact the author and discuss the problem. If this does not solve the practical solution, you may need to contact a lawyer about the rights that you have, in this case, to replace the copyright restrictions expressed by the original author.

I also want to include my final compiled executables. Did it frown? I will check the resulting exe with VirusTotal.

Why do this, it will make the software available to those who cannot or do not want to compile.

If you are looking for a public source code repository that accepts your reproduction under these conditions, github does. Their only obligation is that the source code is visible, and the repo can be forked - since this does not mean the rights granted with the code and each fork, license the code that you cleared. Other sites, such as the google code, will not allow this, since they only accept code under a licensed OSI license, which does not correspond to the Scintilla PJ Naughter component.

Add rainbru files.

+1
source

At the very least, you should add a COPYING file containing the full text of the license used (for example, MIT). I think this is the only file required.

I usually also include NEWS and AUTHORS . It may also be useful to add a DEPENDENCIES file.

+2
source

Source: https://habr.com/ru/post/909674/


All Articles