For example, we contain a copy of the bmpsuite at /Base/res/html/misc/bmpsuite.html, which we can probably use under the GLPv3. However, the current serenity repository doesn't seem to indicate that this is an external resource.
I believe we "sufficiently" adhere to all the terms and conditions, for bmpsuite.
However, it's probably a good idea to mark those project/license borders somehow, in order to properly attribute copyright and also declare licenses wherever we have to – after all, bmpsuite isn't the only "imported" code, by far.
Debian solves this by having a central-ish debian/copyright file per source package, which essentially lists pairs of shell-globs and licenses. Maybe something similar might work for us, too? We could create a few copyright files of a similar format in few, strategic places like Libraries/, Base/res/, etc. That would reduce the chances of legal trouble from "extremely low but not zero" to "virtually zero".
Hmm, that's a good point. I think the cleanest approach would be to (incrementally) move non-original resources to one or more separate repositories. It's not like we need to ship the bmpsuite anyway, it's just something used for testing.
For things like bmpsuite, that's a good idea.
Some of the code is copied from *BSD, for example /Libraries/LibELF/exec_elf.h. In that case, this doesn't work as easily. (Actually, this might be the only such file, I don't know.)
For actual code, I think the plan is to have no external code. It's probably a good idea to make a list of files that need converting.
Looks like Meta/check_style.sh already contains such a list:
Kernel/FileSystem/ext2_fs.hLibraries/LibC/getopt.cppLibraries/LibCore/puff.hLibraries/LibCore/puff.cppLibraries/LibELF/exec_elf.hFurthermore, these files contain "unusual" copyright notices:
Libraries/LibC/scanf.cpp:2: * Copyright (c) 2000-2002 Opsycon AB (www.opsycon.se) (dead website)AK/Checked.h:2: * Copyright (C) 2011-2019 Apple Inc. All rights reserved. (probably Andreas, but none of my business)AK/Function.h:2: * Copyright (C) 2016 Apple Inc. All rights reserved. (likewise)And finally, if you're so inclined, here are some likely typos. the word YEAR was inserted by my script:
// In case you want to update your e-mail address
1 * Copyright (c) YEAR, Andreas Kling <[email protected]>
1537 * Copyright (c) YEAR, Andreas Kling <[email protected]>
// In case you want to update your name spelling
6 * Copyright (c) YEAR, Hüseyin ASLITÜRK <[email protected]>
26 * Copyright (c) YEAR, Hüseyin Aslıtürk <[email protected]>
// I'm glad to see that I'm not the only person who sometimes mistypes their own name
1 * Copyright (c) YEAR, Jesse Buhgaiar <[email protected]>
5 * Copyright (c) YEAR, Jesse Buhagiar <[email protected]>
// lol
13 * Copyright (c) YEAR, the SerenityOS developers
136 * Copyright (c) YEAR, the SerenityOS developers.
150 * Copyright (c) YEAR, The SerenityOS developers.
Also, there are absolutely no mistakes with my copyright headers, zero issues at all, and I totally not fixed them just now ^^'.
If anyone is interested in the script: It's just a straight-forward derivation from check-style.sh:
git ls-files -- '*.cpp' '*.h' ':!:Base' \
| xargs head -qn2 \
| grep -Pv '^/\*$' \
| sed -re 's< 20[0-9][0-9],< YEAR,<' -e 's< 20[0-9][0-9]-20[0-9][0-9],< YEAR,<' \
| sort | uniq -c | sort -n
@nico It's probably a good idea to make a list of files that need converting.
Done. :)
puff can probably go away soon, with all the great gz work @asynts is doing :)
The exception for getopt can be dropped right now, @bugaevc has already NIH'ed it :)