[Ohrrpgce] SVN: james/12130 Normalize the copyright header on source files

Ralph Versteegen teeemcee at gmail.com
Mon Dec 13 06:40:51 PST 2021


Great!
Yes, we've got a lot of files in subdirectories which also ought to be
fixed up; much of it never had a copyright or license notice, but there's
also lots of stuff under a different copyright/license, so it's much more
work.
That's mainly why I suggested using variant copyright lines: to credit Jay
for gfx_directx, Lenny for physpeak (which BTW was already dual-licensed
under the BSD 3-clause license, so now it's triple-licensed), and others.
Later I'll update LICENSE.txt to list the other licenses.

Aside, what's the purpose of putting 'less' in the pipe?

On Tue, 14 Dec 2021 at 02:59, James Paige <Bob at hamsterrepublic.com> wrote:

> Here is the method I ended up using.
>
> First I used the following two commands to do an in-place change to as
> many files as I could.
>
> sed -i s/"Please read LICENSE.txt for GPL License details and disclaimer
> of liability"/"Dual licensed under the GNU GPL v2+ and MIT Licenses. Read
> LICENSE.txt for terms and disclaimer of liability."/ *.bas *.bi *.c *.cpp
> *.e *.exw *.hpp *.h *.rbas
> sed -i s/"James Paige, Ralph Versteegen, and Hamster Republic
> Productions"/"James Paige, Ralph Versteegen, and the OHRRPGCE Developers"/
> *.bas *.bi *.c *.cpp *.e *.exw *.hpp *.h *.rbas
>
> Then I used these two commands to print out a list of the files that I
> needed to fix up manually. It was not as hard as I expected :D
>
> grep "GPL" * 2>&1 | less | grep -v -e "MIT" -e "Is a directory" -e "binary
> file matches"
> grep "James Paige" * 2>&1 | less | grep -v -e "OHRRPGCE Developers" -e "Is
> a directory" -e "binary file matches" -e "whatsnew.txt"
>
> I have not touched anything in any subdirectories, though I imagine there
> might be some subdirectories that need changes
>
> ---
> James
>
>
>
> On Sun, Dec 12, 2021 at 9:13 AM James Paige <Bob at hamsterrepublic.com>
> wrote:
>
>> Okay, thank you! I'll figure something out, and I expect the process will
>> be somewhat incremental :D
>>
>> On Sun, Dec 12, 2021 at 8:45 AM Ralph Versteegen <teeemcee at gmail.com>
>> wrote:
>>
>>> No, I just used ordinary tools such as sed/grep/ripgrep and a lot of
>>> manual edits. I normalised the headers in .bas files so that they'd be easy
>>> to change using sed, but C/C++ files still needed work.
>>>
>>> On Mon, 13 Dec 2021 at 02:36, James Paige <Bob at hamsterrepublic.com>
>>> wrote:
>>>
>>>> Ralph, did you already have a script for normalizing the headers? I
>>>> vaguely remembered something like that, but could not remember
>>>>
>>>> I was looking at the daunting number of headers that need updating, and
>>>> thinking I should write a script rather than trying to do it by hand, and
>>>> then that reminded me that the idea seemed awfully familiar :D
>>>>
>>>> ---
>>>> James
>>>>
>>>>
>>>> On Thu, Dec 2, 2021 at 11:53 PM Ralph Versteegen <teeemcee at gmail.com>
>>>> wrote:
>>>>
>>>>> Oh, also we need to replace base64.c with a non-GPL implementation.
>>>>> Also, we should state in LICENSE.txt that the engine is distributed
>>>>> under the GPL when using SDL_mixer/SDL2_mixer linked against libmad.
>>>>> We should switch to SDL2_mixer binaries not linked against libmad so
>>>>> that they're suitable for use on Steam.
>>>>> All of the MP3 decoding libraries we can currently use/support
>>>>> (libmad, mpg123, smpeg, audiere) are GPL or LGPL, so on Switch/etc we
>>>>> currently wouldn't offer MP3 playback.
>>>>>
>>>>> On Fri, 3 Dec 2021 at 17:36, Ralph Versteegen <teeemcee at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> All code contributors to the OHRRPGCE (with the exception of a couple
>>>>>> minor ones whose code has already been replaced) have agreed to relicense
>>>>>> their code. We will switch to a dual licence under the existing GPLv2+ and
>>>>>> under MIT.
>>>>>>
>>>>>> Digging up this old email thread, where we came to a number of
>>>>>> conclusions:
>>>>>> -change the copyright header to "Copyright 1997-20XX James Paige,
>>>>>> Ralph Versteegen and the OHRRPGCE Developers"
>>>>>> -have a single LICENSE.txt file, which is renamed to
>>>>>> LICENSE-binary.txt when included with binaries, with suitable wording for
>>>>>> both situations (otherwise, we can automatically add a header to it when
>>>>>> renaming)
>>>>>> -in LICENSE.txt list all licences and attributions for included code
>>>>>> and libraries like SDL.dll with a summary at the top.
>>>>>> -add an CREDITS.txt list to the source repo; it doesn't need to be
>>>>>> included with binaries (though I suppose there's no reason not to include
>>>>>> it with Custom). We can also link to the Developers wiki page in LICENSE.txt
>>>>>>
>>>>>> I suggest using this header at the top of each covered source file:
>>>>>> '(C) Copyright 1997-20XX James Paige, Ralph Versteegen, and the
>>>>>> OHRRPGCE Developers
>>>>>> 'Dual licensed under the GNU GPL v2+ and MIT Licenses. Read
>>>>>> LICENSE.txt for terms and disclaimer of liability.
>>>>>>
>>>>>> In cases where a file is written entirely or mostly by someone other
>>>>>> than James or I, I think it's appropriate to use a modified copyright line
>>>>>> which names the person who actually holds copyright (since we don't use
>>>>>> copyright assignment) "and the OHRRPGCE Developers". There are plenty of
>>>>>> files with other licenses anyway, and may already declare a copyright by
>>>>>> someone else, and I don't want to remove the existing credits. For
>>>>>> example,  "(C) Copyright 20XX-20XX Jay Tennant and the OHRRPGCE Developers"
>>>>>>
>>>>>> Regarding copyright years, my reading of copyright law is that
>>>>>> bumping the date to match the current year is legally meaningless if none
>>>>>> of the code was "first published" in that year. So I wouldn't change all
>>>>>> the years. And the only reason to do so is to delay it falling into the
>>>>>> public domain. If you want to bump the year at the same time as editing a
>>>>>> file go ahead.
>>>>>>
>>>>>> There are also various files I've marked public domain, I may try to
>>>>>> normalise those headers too. And there are many files lacking a copyright
>>>>>> header.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, 22 Dec 2020 at 00:44, James Paige <Bob at hamsterrepublic.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Oh! I understand. Yes, let's have a separate CREDITS.txt file (I
>>>>>>> like the sound of that better than AUTHORS) and not cram anything into
>>>>>>> LICENSE. And yes, the idea of putting all licenses into LICENSE.txt and
>>>>>>> combining LICENCE-binary.txt into a single file are good ideas. Yes, let's
>>>>>>> do that.
>>>>>>>
>>>>>>> I look forward to reading your relicensing notes :)
>>>>>>>
>>>>>>> ---
>>>>>>> James
>>>>>>>
>>>>>>> On Mon., Dec. 21, 2020, 1:38 a.m. Ralph Versteegen, <
>>>>>>> teeemcee at gmail.com> wrote:
>>>>>>>
>>>>>>>> Oh, I didn't actually mean to suggest putting the authors in the
>>>>>>>> LICENSE. I think a separate AUTHORS.txt (or CREDITS.txt) is simple,
>>>>>>>> standard, and a good idea but it's not necessary to include it with
>>>>>>>> binaries; I've haven't seen any other project do that (unless they include
>>>>>>>> all documentation). I'm not against combining the two, it's just unusual.
>>>>>>>> But since we are actually distributing software under multiple licenses I
>>>>>>>> thought it's simplest to have all those licenses listed in one LICENSE file.
>>>>>>>>
>>>>>>>> For that matter, it's not really necessary to have two different
>>>>>>>> LICENSE files (especially if they're going to need updating from time to
>>>>>>>> time). We could just reword it slightly to be suitable for any context. It
>>>>>>>> could still be renamed to LICENSE-binary.txt when distributed with games.
>>>>>>>>
>>>>>>>> Yes, I have a lot of notes for the relicensing. I wrote an enormous
>>>>>>>> draft email which was far too long to send out (it has multiple
>>>>>>>> appendices!), and still unfinished. It's about what license to switch to. I
>>>>>>>> can have another look over it and then send it to you. I realised I should
>>>>>>>> put most of the contents on the wiki instead.
>>>>>>>> I went through everyone's contributions (except help pages?) and
>>>>>>>> found the email address of everyone who needs to be contacted, although I
>>>>>>>> didn't keep notes on what their contribution was. I found there were a few
>>>>>>>> people who contributed code which has since been rewritten/replaced, or is
>>>>>>>> trivial, and luckily everyone whose email I couldn't find is in this
>>>>>>>> category. Some people only contributed to Custom, so we can still relicense
>>>>>>>> Game without them. So only about 6 people (including the two of us) need to
>>>>>>>> agree. I've also been careful to avoid any 3rd party GPL code.
>>>>>>>>
>>>>>>>> On Mon, 21 Dec 2020 at 04:53, James Paige <Bob at hamsterrepublic.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Putting the AUTHORS section in the LICENSE files would be
>>>>>>>>> reasonable.
>>>>>>>>>
>>>>>>>>> We could also adjust the builds to include AUTHORS.txt and leave
>>>>>>>>> the LICENSE.txt file simple
>>>>>>>>>
>>>>>>>>> Do you have any written notes for the relicensing plan? Maybe we
>>>>>>>>> should start a wiki page where we can track what needs to be done, who has
>>>>>>>>> already granted permission, who still needs to be contacted, and what might
>>>>>>>>> need to be rewritten
>>>>>>>>>
>>>>>>>>> On Sun., Dec. 20, 2020, 10:05 a.m. Ralph Versteegen, <
>>>>>>>>> teeemcee at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> OK. My only reason for arguing against it was that it felt
>>>>>>>>>> strange having my name there and not Mike's, since he wrote a lot of code
>>>>>>>>>> too. But then I looked at gitstats and realised I have over 10x as many svn
>>>>>>>>>> commits as Mike and almost 10x more lines added. It turns out Jay
>>>>>>>>>> contributed almost as much code as Mike! I'm still impressed by how many
>>>>>>>>>> headline features Mike implemented; he didn't waste time on cleanup for the
>>>>>>>>>> sake of it, something I still need to learn :)
>>>>>>>>>>
>>>>>>>>>> Isn't author information normally in AUTHORS.txt?
>>>>>>>>>>
>>>>>>>>>> Since LICENSE.txt / LICENSE-binary.txt are what are actually
>>>>>>>>>> distributed with binaries we really ought to have the copyright info in
>>>>>>>>>> there!
>>>>>>>>>> On that note, I wanted to expand those files to list the
>>>>>>>>>> copyright info of all the source code we incorporate (whether credit in
>>>>>>>>>> documentation is technically required or not) as distributing that code
>>>>>>>>>> under the GPL does not avoid attribution requirements. I'm imagining that
>>>>>>>>>> the top of the file would state that the whole program is GPL'd, summarise
>>>>>>>>>> copyrights and licenses of all components, and the rest of the file would
>>>>>>>>>> be a concatenation of the full GPL, LGPL, Apache, etc licenses and
>>>>>>>>>> attributions. This is a bit unconventional, admittedly.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sun, 20 Dec 2020 at 14:52, James Paige <
>>>>>>>>>> Bob at hamsterrepublic.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> How about:
>>>>>>>>>>>
>>>>>>>>>>> Copyright 1997-2020 James Paige, Ralph Versteegen and the
>>>>>>>>>>> OHRRPGCE Developers
>>>>>>>>>>>
>>>>>>>>>>> Having "Hamster Republic Productions" in there is was just
>>>>>>>>>>> meaningless fluff, because I haven't kept the fictitious business name
>>>>>>>>>>> registration for it current. I let it expire somewhere around 2007 or so (I
>>>>>>>>>>> don't remember exactly)
>>>>>>>>>>>
>>>>>>>>>>> Having our real names there is good, because without a proper
>>>>>>>>>>> legal umbrella organization, our names are where the copyright should
>>>>>>>>>>> actually be. Saying "the OHRRPGCE Developers" is a decent shorthand to
>>>>>>>>>>> acknowledge that there are others too. We could add a COPYRIGHT.txt file
>>>>>>>>>>> that describes contributions in more detail, which I think is a good idea
>>>>>>>>>>> for our relicensing plans anyway.
>>>>>>>>>>>
>>>>>>>>>>> If you would rather not have your name in there in the header,
>>>>>>>>>>> it is up to you, but you've written so much code you definitely deserve it
>>>>>>>>>>> if you want it :D
>>>>>>>>>>>
>>>>>>>>>>> On Sat., Dec. 19, 2020, 6:11 p.m. Ralph Versteegen, <
>>>>>>>>>>> teeemcee at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I'm pleased to see the old file headers replaced.
>>>>>>>>>>>> But I wanted to discuss what the copyright line should be. I've
>>>>>>>>>>>> never been inducted into the Hamster Republic and don't think it describes
>>>>>>>>>>>> the set of contributors to the project. And nobody has ever been asked to
>>>>>>>>>>>> assign/transfer their copyrights in their contributions to you or HR, so
>>>>>>>>>>>> they still possess them (and their permission is needed to relicense). I
>>>>>>>>>>>> also don't think I need to be credited as co-maintainer.
>>>>>>>>>>>> I suggest something like:
>>>>>>>>>>>>  Copyright 1997-2020 James Paige and the OHRRPGCE Developers
>>>>>>>>>>>>  Copyright 1997-2020 the OHRRPGCE Developers and Hamster
>>>>>>>>>>>> Republic Productions
>>>>>>>>>>>>  Copyright 1997-2020 James Paige, Hamster Republic Productions
>>>>>>>>>>>> and the OHRRPGCE Developers
>>>>>>>>>>>>
>>>>>>>>>>>> I also see some inconsistencies still exist, so I'm going to
>>>>>>>>>>>> fix those now without changing the copyright. (gitk makes it very easy to
>>>>>>>>>>>> compare each file, I just hold down left mouse button and drag over each
>>>>>>>>>>>> file in the changeset).
>>>>>>>>>>>>
>>>>>>>>>>>> On Sun, 20 Dec 2020 at 09:49, <subversion at hamsterrepublic.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> james
>>>>>>>>>>>>> 2020-12-19 12:49:12 -0800 (Sat, 19 Dec 2020)
>>>>>>>>>>>>> 77
>>>>>>>>>>>>> Normalize the copyright header on source files
>>>>>>>>>>>>> Deprecate the self-deprecation
>>>>>>>>>>>>> ---
>>>>>>>>>>>>> U   wip/attackedit.bas
>>>>>>>>>>>>> U   wip/backends.bas
>>>>>>>>>>>>> U   wip/bcommon.bas
>>>>>>>>>>>>> U   wip/bcommon.bi
>>>>>>>>>>>>> U   wip/bihead.txt
>>>>>>>>>>>>> U   wip/bmod.bi
>>>>>>>>>>>>> U   wip/bmod.rbas
>>>>>>>>>>>>> U   wip/bmodsubs.bas
>>>>>>>>>>>>> U   wip/bmodsubs.bi
>>>>>>>>>>>>> U   wip/browse.bas
>>>>>>>>>>>>> U   wip/cglobals.bi
>>>>>>>>>>>>> U   wip/common.bi
>>>>>>>>>>>>> U   wip/common.rbas
>>>>>>>>>>>>> U   wip/common_menus.bas
>>>>>>>>>>>>> U   wip/const.bi
>>>>>>>>>>>>> U   wip/custom.bas
>>>>>>>>>>>>> U   wip/custom.bi
>>>>>>>>>>>>> U   wip/customsubs.bi
>>>>>>>>>>>>> U   wip/customsubs.rbas
>>>>>>>>>>>>> U   wip/distribmenu.bas
>>>>>>>>>>>>> U   wip/distribmenu.bi
>>>>>>>>>>>>> U   wip/drawing.bas
>>>>>>>>>>>>> U   wip/editedit.bas
>>>>>>>>>>>>> U   wip/editedit.bi
>>>>>>>>>>>>> U   wip/editrunner.bas
>>>>>>>>>>>>> U   wip/editrunner.bi
>>>>>>>>>>>>> U   wip/enemyedit.bas
>>>>>>>>>>>>> U   wip/flexmenu.bi
>>>>>>>>>>>>> U   wip/formationedit.bas
>>>>>>>>>>>>> U   wip/game.bas
>>>>>>>>>>>>> U   wip/game.bi
>>>>>>>>>>>>> U   wip/gglobals.bi
>>>>>>>>>>>>> U   wip/globalstredit.bas
>>>>>>>>>>>>> U   wip/heroedit.rbas
>>>>>>>>>>>>> U   wip/itemedit.bas
>>>>>>>>>>>>> U   wip/loading.bi
>>>>>>>>>>>>> U   wip/loading.rbas
>>>>>>>>>>>>> U   wip/lumpfile.bas
>>>>>>>>>>>>> U   wip/lumpfile.bi
>>>>>>>>>>>>> U   wip/mapsubs.bas
>>>>>>>>>>>>> U   wip/menuedit.bas
>>>>>>>>>>>>> U   wip/menus.bas
>>>>>>>>>>>>> U   wip/menus.bi
>>>>>>>>>>>>> U   wip/menustuf.rbas
>>>>>>>>>>>>> U   wip/miditest.bi
>>>>>>>>>>>>> U   wip/misc.bas
>>>>>>>>>>>>> U   wip/moresubs.rbas
>>>>>>>>>>>>> U   wip/music_native_subs.bi
>>>>>>>>>>>>> U   wip/oldhsinterpreter.bas
>>>>>>>>>>>>> U   wip/pathfinding.bas
>>>>>>>>>>>>> U   wip/plankmenu.bas
>>>>>>>>>>>>> U   wip/purchase.rbas
>>>>>>>>>>>>> U   wip/reload.bas
>>>>>>>>>>>>> U   wip/reload.bi
>>>>>>>>>>>>> U   wip/reloadedit.bas
>>>>>>>>>>>>> U   wip/reloadedit.bi
>>>>>>>>>>>>> U   wip/reloadext.bas
>>>>>>>>>>>>> U   wip/reloadext.bi
>>>>>>>>>>>>> U   wip/relump.bas
>>>>>>>>>>>>> U   wip/savegame.rbas
>>>>>>>>>>>>> U   wip/scrconst.bi
>>>>>>>>>>>>> U   wip/scriptcommands.bas
>>>>>>>>>>>>> U   wip/scriptedit.bas
>>>>>>>>>>>>> U   wip/scripting.bas
>>>>>>>>>>>>> U   wip/sdl_lumprwops.bas
>>>>>>>>>>>>> U   wip/shopedit.bas
>>>>>>>>>>>>> U   wip/sliceedit.bas
>>>>>>>>>>>>> U   wip/sliceedit.bi
>>>>>>>>>>>>> U   wip/slices.bas
>>>>>>>>>>>>> U   wip/slices.bi
>>>>>>>>>>>>> U   wip/specialslices.bas
>>>>>>>>>>>>> U   wip/subs4.bas
>>>>>>>>>>>>> U   wip/testgame/autotest.rpg
>>>>>>>>>>>>> U   wip/textboxedit.bas
>>>>>>>>>>>>> U   wip/thingbrowser.bas
>>>>>>>>>>>>> U   wip/unlump.bas
>>>>>>>>>>>>> U   wip/util.bas
>>>>>>>>>>>>> U   wip/util.bi
>>>>>>>>>>>>> U   wip/walkabouts.bas
>>>>>>>>>>>>> U   wip/yetmore2.bas
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> Ohrrpgce mailing list
>>>>>>>>>>>>> ohrrpgce at lists.motherhamster.org
>>>>>>>>>>>>>
>>>>>>>>>>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Ohrrpgce mailing list
>>>>>>>>>>>> ohrrpgce at lists.motherhamster.org
>>>>>>>>>>>>
>>>>>>>>>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Ohrrpgce mailing list
>>>>>>>>>>> ohrrpgce at lists.motherhamster.org
>>>>>>>>>>>
>>>>>>>>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Ohrrpgce mailing list
>>>>>>>>>> ohrrpgce at lists.motherhamster.org
>>>>>>>>>>
>>>>>>>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Ohrrpgce mailing list
>>>>>>>>> ohrrpgce at lists.motherhamster.org
>>>>>>>>>
>>>>>>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Ohrrpgce mailing list
>>>>>>>> ohrrpgce at lists.motherhamster.org
>>>>>>>>
>>>>>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Ohrrpgce mailing list
>>>>>>> ohrrpgce at lists.motherhamster.org
>>>>>>>
>>>>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>>>>
>>>>>> _______________________________________________
>>>>> Ohrrpgce mailing list
>>>>> ohrrpgce at lists.motherhamster.org
>>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>>
>>>> _______________________________________________
>>>> Ohrrpgce mailing list
>>>> ohrrpgce at lists.motherhamster.org
>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>
>>> _______________________________________________
>>> Ohrrpgce mailing list
>>> ohrrpgce at lists.motherhamster.org
>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>
>> _______________________________________________
> Ohrrpgce mailing list
> ohrrpgce at lists.motherhamster.org
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/attachments/20211214/2d5eddcd/attachment-0001.html>


More information about the Ohrrpgce mailing list