Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New page with licensing information about the different WPE components #91

Open
aperezdc opened this issue Aug 4, 2021 · 8 comments
Open
Labels
enhancement New feature or request

Comments

@aperezdc
Copy link
Member

aperezdc commented Aug 4, 2021

It would be good to have a page in the site with a summarize of the different licenses used by the WPE components, and maybe a small table listing compatibility with some other popular licenses.

@aperezdc aperezdc added the enhancement New feature or request label Aug 4, 2021
@aperezdc
Copy link
Member Author

aperezdc commented Aug 4, 2021

Quick notes from the top of my head (needs double checking):

  • WebKit:
    • Mostly BSD 2-clause (JSC, WTF, WebCore, most of WebKit)
    • LGPL (WebKit part of the WPE/GTK ports)
    • Some things under Source/ThirdParty/ have their own licenses (mostly some BSD or MIT; beware of the BoringSSL license as it may bring license incompatibilities.)
  • libwpe: BSD 2-clause
  • wpebackend-fdo: BSD 2-clause
  • Cog: MIT

@meyerweb
Copy link
Member

meyerweb commented Aug 4, 2021

Can confirm the repositories for libwpe and wpebackend-fdo use this version of the BSC 2-clause license: https://choosealicense.com/licenses/bsd-2-clause/

Also that the Cog repository uses this version of the MIT license: https://mit-license.org/

I haven’t been able to confirm the WebKit licensing information.

@meyerweb
Copy link
Member

meyerweb commented Aug 4, 2021

Sorry, should have been more clear: the WebKit page https://webkit.org/licensing-webkit/ says it’s a mixture of Gnu, LGPL, and BSD licenses, but doesn’t say which portions are what, so verifying that page’s claims is difficult.

@aperezdc
Copy link
Member Author

aperezdc commented Aug 4, 2021

Sorry, should have been more clear: the WebKit page https://webkit.org/licensing-webkit/ says it’s a mixture of Gnu, LGPL, and BSD licenses, but doesn’t say which portions are what, so verifying that page’s claims is difficult.

I just remembered that Debian extracts licensing information from the source code as part of the build process for their packages, and it seems it's quite complete because it scans each source file and generates a breakdown of licenses. For example see here for version 2.32.3. The part we are interested in are the lines that start with License: and the lists of files they apply to. There is quite a lot of noise (like the myriad of BSD license variants, or some files under “license A, or B”) but it basically boils down to what I wrote above. Which means the “mixture of GNU LGPL and BSD licenses” claimed by the website is basically correct.

@meyerweb
Copy link
Member

meyerweb commented Aug 4, 2021

Here’s the list I parsed out of the above link to the 2.32.3 breakdown:

License: AFL-2.0
License: AFL-2.0 or LGPL-2+
License: Apache-2.0
License: BSD-2-clause
License: BSD-2-clause or BSL-1.0
License: BSD-3-clause-adam-barth
License: BSD-3-clause-apple
License: BSD-3-clause-apple-mozilla
License: BSD-3-clause-canon
License: BSD-3-clause-code-aurora
License: BSD-3-clause-copyright-holder
License: BSD-3-clause-ericsson
License: BSD-3-clause-google
License: BSD-3-clause-microsoft
License: BSD-3-clause-motorola
License: BSD-3-clause-opera
License: BSL-1.0
License: Expat
License: GPL-2+
License: GPL-2+ or LGPL-2.1+ or MPL-1.1
License: GPL-3+
License: ISC
License: LGPL-2
License: LGPL-2.1
License: LGPL-2.1+
License: LGPL-2.1+ or MPL-1.1
License: LGPL-2+
License: LGPL-2+ or MPL-1.1
License: MPL-1.1
License: MPL-2.0

@aperezdc
Copy link
Member Author

aperezdc commented Aug 4, 2021

Thanks for the summary @meyerweb! If we group all the “BSD-style” licenses, apply the same to the LGPLs, and pick from the “A or B” entries the one compatible with the rest of the source code, we would be down to:

License: BSD-ish (BSD-2-clause*, BSD-3-clause*, MIT, Expat, ISC, BSDL, BSL-1.0)
License: AFL-2.0
License: Apache-2.0
License: LGPL-2.1 (LGPL-2, LGPL-2+, LGPL-2.1, LGPL-2.1+)
License: GPL-2+
License: GPL-3+
License: MPL-1.1
License: MPL-2.0

What stands out the most are the GPL entries. The first case is this one:

Files: Source/WebCore/xml/XPathGrammar.cpp
       Source/WebCore/xml/XPathGrammar.h
Copyright: 1984, 1989-1990, 2000-2006 Free Software Foundation Inc
License: GPL-2+

As per this Bugzilla issue the two files above are generated from a Yacc grammar, so I understand this not to be an actual incompatibility, and this is explained for example in the Bison documentation.

The other case is this one:

Files: Source/ThirdParty/ANGLE/src/compiler/preprocessor/preprocessor_tab_autogen.cpp
       Source/ThirdParty/ANGLE/src/compiler/translator/*
       Source/ThirdParty/ANGLE/tools/flex-bison/third_party/skeletons/yacc.c
Copyright: 1984, 1989-1990, 2000-2015, 2018-2019 Free Software
           1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
License: GPL-3+

These first and last files from the list above are used to generate code, and they do not get linked in the resulting WebKit libraries. As for the …/translator/* entry, it looks like a wrong guess from Debian's tooling, because checking the files by hand they have the following blurb at the top:

// Copyright 2002 The ANGLE Project Authors. All rights reserved.                
// Use of this source code is governed by a BSD-style license that can be        
// found in the LICENSE file.

@meyerweb
Copy link
Member

meyerweb commented Aug 4, 2021

// Copyright 2002 The ANGLE Project Authors. All rights reserved.                
// Use of this source code is governed by a BSD-style license that can be        
// found in the LICENSE file.

Good that it’s BSD-style, but can you find the LICENSE file? I’ve tried and failed.

@meyerweb
Copy link
Member

meyerweb commented Aug 4, 2021

Never mind, I think I found it: https://sources.debian.org/src/wpewebkit/2.32.2-1/Source/ThirdParty/ANGLE/LICENSE/

Looks to me like BSD 3-clause.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants