How to use GPL for a user project?

This forum is about you. Feel free to discuss anything is related to embedded and electronics, your awesome projects, your ideas, your announcements, not necessarily related to ChibiOS but to embedded in general. This forum is NOT for support.
panacekcz
Posts: 11
Joined: Mon Jan 13, 2014 3:19 pm

How to use GPL for a user project?

Postby panacekcz » Mon Mar 17, 2014 1:44 pm

Hi,

I want to develop a user project using ChibiOS/RT and keep the files in a public git repository.
However, I don't know how to use the license and copyright notices in the repository.

The repository will contain source codes written by us, but also some modified source code from ChibiOS/RT, such as the linker script, parts of the demos (most notably USB configuration structures).
I know the ChibiOS/RT is released under GPL and some parts under more permissive license or some exception. The GPL is meant to allow publishing modified source code. I don't want to use the project commercially and I don't want to release binary files. Just the source. I have read the GPL and some related faqs, but I have not found any, which would clearly state what to do.

So I ask if anyone knows concrete answers to these questions:

  • Can I replace everything by just GPL without exceptions? I want to simplify it, so that we don't have to care for every file, what exception applies to it.
  • How should the copyright notice of the modified files from ChibiOS/RT look like?
    Should I change "This file is a part of ChibiOS/RT" to "This file is a part of MyProject"?
    How should I indicate, that the file was modified (add "Modified 2014 by My Name" under "Copyright Giovanni di Sirio")?
  • Should I list all changes to the modified files?
  • Should I provide the unmodified files from ChibiOS/RT? Is a link to the website from the README sufficient?

I looked into repositories on github of some projects linked from this forum, and it seems that some users don't really care, they either omit the copyright declaration or licence, or they leave the original copyright comments, even in files they modified. Often, the copyright comment contains "This file is a part of ChibiOS/RT" which is obviously not true for the modified files.
I haven't found any project that I would believe that it handles this correctly.

So I think this could help others, who release the source codes of their projects and post it here, as well.

Thank you for reading,
Vlastimil Dort

User avatar
Giovanni
Site Admin
Posts: 13086
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 759 times
Been thanked: 637 times
Contact:

Re: How to use GPL for a user project?

Postby Giovanni » Mon Mar 17, 2014 4:04 pm

Hi,

You cannot change the files released under the GPL+exception, changing them invalidates the exception. You can change the files released under pure GPL (taken from trunk or unstable releases), you have to:
1) Keep the copyright notice in all files.
2) State somewhere in the documentation that you are using a modified version of ChibiOS, you have to offer your modified version. It would be nice to link the unmodified version too, just a link to chibios.org will do.

You can change the files under the Apache license without problems, keep the copyright notice. You can change freely files without copyright notice (makefiles etc).

Giovanni

panacekcz
Posts: 11
Joined: Mon Jan 13, 2014 3:19 pm

Re: How to use GPL for a user project?

Postby panacekcz » Wed Mar 19, 2014 2:18 pm

Hi,

Ok, so I will take the files from trunk - this is not a problem.

State somewhere in the documentation that you are using a modified version of ChibiOS, you have to offer your modified version. It would be nice to link the unmodified version too, just a link to chibios.org will do


This seems strange... Maybe I didn't describe what I really want to do clearly enough? I don't want to create a modified version of ChibiOS, but I want to create a project, which compiles against unmodified ChibiOS and contains a few modified files from ChibiOS. But as I will release the modified files and provide the link to chibios.org, this is also OK.

Now about that source comments. I misused the term "copyright notice". According to https://www.gnu.org/licenses/gpl-howto.html, this is copyright notice:

Code: Select all

/*
    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
                 2011,2012,2013 Giovanni Di Sirio.

And this is copying permission statement:

Code: Select all

/*
    This file is part of ChibiOS/RT.

    ChibiOS/RT is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    ChibiOS/RT is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program. If not, see <http://www.gnu.org/licenses/>.

Of course, the copyright notice must be kept intact.
I thought it would be logical to change the project name in the copying permission statement, because the file contains changes that are obviously not part of ChibiOS/RT, but probably that is not possible:
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;


I would at least want to indicate that the file is modified for the project, so would this be OK?

Code: Select all

/*
    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
                 2011,2012,2013 Giovanni Di Sirio.
    My Project - Modified 2014 by My Name

    This file is part of ChibiOS/RT.

    ChibiOS/RT is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    ChibiOS/RT is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/


And for the apache files:

Code: Select all

/*
    ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio
    My Project - Modified 2014 by My Name

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
*/


Vlastimil Dort

User avatar
Giovanni
Site Admin
Posts: 13086
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 759 times
Been thanked: 637 times
Contact:

Re: How to use GPL for a user project?

Postby Giovanni » Wed Mar 19, 2014 4:24 pm

I am missing the difference between a "modified version of ChibiOS" and an unmodified ChibiOS plus some modified files, may be you are going to disable some modules and replace them with modified ones? The end result is that the exception does not apply and it becomes a pure GPL license.

Anyway, both the additions to the GPL and Apache headers would be OK. Those preserve the rights of both the original author and the author of the changes.

Giovanni

panacekcz
Posts: 11
Joined: Mon Jan 13, 2014 3:19 pm

Re: How to use GPL for a user project?

Postby panacekcz » Thu Mar 20, 2014 8:00 pm

Hi,
thank you, that is pretty much everything I needed to know.

am missing the difference between a "modified version of ChibiOS" and an unmodified ChibiOS plus some modified files

It is about the linker script. I use a custom loader, so I need one modified script for the loader and one for the application.
I placed them into the projects of the loader and the application. I could keep them inside "modified ChibiOS", but
  • the modified script is useless without the related code, so why separate them...
  • this way it is possible to download the unmodified ChibiOS from git/zip and use it, and it is easier to upgrade
Also, there is a thin library that selects wheter to run the application or the loader after reset, and I used a part of vectors.c in it.

Vlastimil Dort


Return to “User Projects”

Who is online

Users browsing this forum: No registered users and 1 guest