salesagility / SuiteCRM

SuiteCRM - Open source CRM for the world
https://www.suitecrm.com
GNU Affero General Public License v3.0
4.39k stars 2.06k forks source link

RFC - Copyright notice for code files #5952

Open horus68 opened 6 years ago

horus68 commented 6 years ago

Issue

According to coding standards https://docs.suitecrm.com/community/contributing-code/coding-standards/ the head of code files has a copyright notice that can be considered strange. The first sentence is about Sugar and the second sentence is about Suite. It says Suite is an "extension of". This makes it feel that the file is from Sugar and some little extension on top of it named Suite. It should be the opposite order for relevance for users reading it and to be clear to people what this is.

Notes: 1- The logos requirement sentence (by the end of the notice) would be better to be separated, placing all the contents of the SuiteCRM notice on top. This way the original SugarCRM notice would be intact. 2- New files with new code do not require the full copyright notice because they are not a SugarCRM forked file but a new file. So there must be a notice for forked files and for new files.

Expected Behavior

The first sentence should say what software is this file form Only the second should talk about the roots. So it should be something like "This is a file form SuiteCRM, a CRM to ..." the second sentence should then be on history: "SuiteCRM is a Fork from a software named SugarCMR developed by .... ".

Actual Behavior

 * SugarCRM Community Edition is a customer relationship management program developed by
 * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
 *
 * SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
 * Copyright (C) 2011 - 2018 SalesAgility Ltd.
 *
 * This program is free software;

and so on...

Possible Fix

* SuiteCRM is a customer relationship management program developed by SalesAgility Ltd
* Copyright (C) 2011 - 2018 SalesAgility Ltd.
*
* SuiteCRM is a fork from the SugarCRM Community Edition, released as open source until 2013.
* SugarCRM Community Edition is a customer relationship management program developed by
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
*
* This program is free software;

and so on, as in https://docs.suitecrm.com/community/contributing-code/coding-standards/

Context

When someone looks into a code file to see what is this file from they should be able to have clear information on software and license. I know this would take time to change all the files. I can do that if a change would be approved as a new notice.

Abuelodelanada commented 6 years ago

Hi @horus68 !

Why we put the license in every file? Is it a legal matter?

Like someone says in stackoverflow:

"Not from a legal view, but from a developer's view: Having the license in every file is EXTREMELY ANNOYING. Especially if you want to search for e.g. a function/variable which is named like a word used in the license block."

If it is not a legal matter, why don't we put one file called COPYING or LICENSE in the root folder of the repo?

horus68 commented 6 years ago

i'm not an lawyer and some things are simply common practices. I do prefer that every file has its own notice. When a webmaster get an old site to refresh you need to know where those files are coming from and not all files has the same license or author. This happened to me lately and it was very difficult to find all the software holders packed inside an old software I had to reactivate! So I always like to have a small info in each file. But the notice can be a small one! Note: when I minimize a script file I always let the original file next to it as source for others after me (and to have its notices intact)

Just as an example, the Joomla files has only 3 lines (and they have a legal team!):

/**
 * @package    Joomla.Site
 *
 * @copyright  Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
pgorod commented 6 years ago

Has any of you checked the SugarCRM CE license? Maybe this license-in-every-file was a requirement from Sugar...

horus68 commented 6 years ago

The GPL doesn't require advertisement, just disclosure. Same goes for the visible logos/links. There are some debates on the extent of the "Appropriate Legal Notices" requirement that some dev demand on their software, and if that are acceptable under some specific licenses.

Another issue is the files created after a fork with new code, I think they are not required to have notices from the forked software when they are new files and new code. They are not derivative, just packed together.

Anyway this is a Legal issue and should be taken in detail by SalesAgility. I opened the topic mainly because of new files and the required notices they need to have! An interesting light reading: https://opensource.stackexchange.com/questions/4971/what-are-the-attribution-requirements-of-the-agpl-license

Or a more detailed "This file is part of Foobar": How to use GNU licenses for your own software http://www.gnu.org/licenses/gpl-howto.html