Skip to content

dryark/faircoding_license

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 

Repository files navigation

Fair Coding License


The license lets users:

  • Link the code to proprietary programs, and keep their proprietary code private.

  • Use the code in services online, without making the service itself follow the license.

It requires users to:

  • Make any and all changes they make to the code public for all to share and benefit from.

  • Give a patent grant if they use a patent

There is the usual legal terminology, and it is carefully written to close various loopholes existing in other licenses.


Example index

Examples

I’m using a FCL project in a program I am running myself

This one is easy. You can simply do so without having to do anything extra.

I’m using a FCL project in a program I am selling / licensing to others

If you are just using the project in your code, you can do the following:

  1. Fork the Github repo you likely downloaded the code from into your own company repo as a public project.

  2. Tell those buying your software / licensing it that you are using the project by providing a link to that fork.

The license requires that the code you link to be available for a year, so it is best to fork the project to ensure you remain in control of keeping it available.

If you just linked to a random Github repo you used, it’s possible whoever put up that repo may pull it down when your users may still want to access it.

I’m using a FCL project at work, in a private system

Just like the previous example, you need to mention to users, which includes users of the system within your company, that you are using the project.

I forked a FCL project, and am improving it

You need to release your improvements. If you are using the changed code in any way you need to push the changes to a public repo for others to benefit within 90 days of using those changes yourself.

You further must identify your legal name publicly or the legal name of the entity to which the copyright for your changes belongs.

If you don’t want to reveal your name, you’ll need to give your changes to someone to own who is willing to do so. Or give the changes to a company and have them own the changes.

I forked a FCL project, and am accepting PRs

You’ll need to ensure that for each PR the legal name of the copyright owner of the change is known.

As this is uncommon with other licenses, you should probably add a contribution section to your readme and mention this so that people are aware it is necessary.

I forked a FCL project, and got an anonymous PR

You can’t merge that PR. It is in violation of the license.

I work for a Linux distro and want to ship a FCL project

Easy enough. Just keep the license with the software and/or any binaries of it.

If you have to patch the project in some way to make it build for all your platforms, that patch is a modification and needs to be published. From the date of the patch you need to ensure the public can get that patch for 1 year.

I read a FCL project and saw a nifty bit that I’ve lifted

That’s fine, if you license all the code where you use that bit under this license.

Even if you didn’t copy and paste, and simply wrote some code based on something you learned by reading the project, you cannot do so without keeping any resulting new code under the same license.

Any process by which you create code resulting from having done something with the licensed code, is considered by the license to be making a derivative.

You can’t just read the code and steal ideas from it without fairly placing those new ideas into the same license.

I ingested a FCL project under this license into my LLM

Okay, but as a result any output from your LLM may be required to be licensed under this license. Additionally you’ll have to tell every user of your LLM that your LLM ingested the project, and that any output may be tainted by the license.

As there is no way to tell if an output of the LLM used information gleaned from the project, you’ll need to treat ALL outputs of the LLM as under this license.

Essentially, don’t ingest the project into your LLM. The license allows it only if all outputs of your LLM are licensed under this license.

I want to add a feature to a FCL project, but I don’t want it under this license

Okay, you can actually do this by creating your feature in a new project that links to the FCL instead of modifying the project itself.

If you do that you just have to state that you are using the project and share the code used and the license. Your new project using it does not have to be under the license.

You really shouldn’t do this sort of thing, as it isn’t in the spirit of cooperation, but it is allowed by the license.

I want to extend a feature in a FCL project to do more, but I don’t want my extension under this license

Ok, so like the previous example you probably are calling into the project via linking, but you’ve found you need to make some changes to the project to get your extension to function as needed.

This is a modification. It’s reasonable to add the extension into the project, and you are attempting to avoid that. You are in violation of the "Prohibition on Circumvention to PROVIDE".

Don’t do this. Share your change.

I packaged a FCL project and added man pages for it

The documentation you created is considered a modification to the project. You need to:

  • Identify the legal name of the copyright owner of your change ( yourself or the company you work for )

  • Publish your new documentation publicly and license it under this license.

  • Ensure your published documentation is available online for at least 1 year. Just publish it to Github.

Any source code or configuration you created in the process of packaging needs to be published as well as it is considered SOURCE for the creation of the source tarball or BINARY package.

Can I use LGPL code within a FCL project?

Yes. This is explicitly allowed by the license.

You may have to jump through some hoops in how your project is built to ensure that it follows the linking provision of LGPL.

That is, you probably are not allowed to directly compile LGPL code files and FCL code files together, as that isn’t considered "linking".

If you statically or dynamically link them in, that is likely fine. If in doubt, read the LGPL license carefully.

Can I use GPL code within a FCL project?

No. GPL is "contagious" and they insist that all code in a project be GPL. Don’t use GPL. Problem solved.

Can I use AGPL code within a FCL project?

No. Same as with GPL.

I have a binary built from an FCL project but I don’t know what source code it was built from.

Whoever redistributed that binary to you without providing information about the source is violating the license. You should not use the binary. Delete it and inform whoever is redistributing the binary that they are violating the license.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published