mirror of
https://github.com/radareorg/radare2.git
synced 2024-11-23 13:19:54 +00:00
Update doc/license for more clarifications ##build
* Orphaned shlr/arm/omap3430 script moved to extras * Unified json format for r2 -Lj * Update QNX io plugin to GPL until clarified with the author
This commit is contained in:
parent
50580d3e87
commit
73f220f22d
2
dist/plugins-cfg/plugins.nogpl.cfg
vendored
2
dist/plugins-cfg/plugins.nogpl.cfg
vendored
@ -25,7 +25,6 @@ anal.v850
|
||||
anal.ws
|
||||
anal.x86_cs
|
||||
anal.xcore_cs
|
||||
anal.z80
|
||||
esil.dummy
|
||||
asm.8051
|
||||
asm.arm_cs
|
||||
@ -56,7 +55,6 @@ asm.ws
|
||||
asm.x86_cs
|
||||
asm.x86_nz
|
||||
asm.xcore_cs
|
||||
asm.z80
|
||||
bin.any
|
||||
bin.bf
|
||||
bin.bios
|
||||
|
@ -1,5 +1,4 @@
|
||||
Licensing
|
||||
=========
|
||||
# Licensing
|
||||
|
||||
Before you try to statically link r2, you should know about the licenses that go along with it,
|
||||
|
||||
@ -15,17 +14,88 @@ r2 is licensed under the LGPL license, which permits statically linking, but for
|
||||
|
||||
r2pipe or scripting/plugins can be used from r2 without any kind of legal issue, only if you modify r2 to make it work with your tools, you should make those changes public, this way we ensure the users always have the freedom to change or upgrade the r2 libraries that come along with r2.
|
||||
|
||||
Some parts of r2 are under the GPL license, here's a list of them:
|
||||
|
||||
* C++ demangler (libr/bin)
|
||||
* Some exotic disassemblers
|
||||
* GNU binutils disassemblers (libr/asm)
|
||||
* GRUB filesystems (libr/fs)
|
||||
|
||||
If you are going to use r2 in your proprietary product bear in mind to build it without those parts, which may infect your program. Please refer to the FSF or GNU sites to understand how licenses work.
|
||||
|
||||
As long as r2pipe, or webui access is done via a textual interface which requires no reverse engineering or linking for integration other programs will not be affected by the license rules.
|
||||
|
||||
If you have any other question about how to use, build, link and distribute r2 with your own tools drop me an email (pancake@nopcode.org) or just talk to the Free Software Foundation in order to clarify that.
|
||||
|
||||
## Plugins license
|
||||
|
||||
The radare2 plugins expose the licensing information in the definition structure:
|
||||
|
||||
```c
|
||||
RAsmPlugin r_asm_plugin_dummy = {
|
||||
...
|
||||
.license = "LGPL3",
|
||||
...
|
||||
};
|
||||
```
|
||||
|
||||
This information is accessible at runtime by using the `L` command or commandline flag in any of the r2 programs:
|
||||
|
||||
```
|
||||
$ r2 -Lj | jq -r '.[].license' | sort -u
|
||||
BSD
|
||||
GPL3
|
||||
LGPL
|
||||
LGPL3
|
||||
MIT
|
||||
```
|
||||
|
||||
## WebUI license
|
||||
|
||||
Please refer to the radare2-webui repository for a detailed list of all the javascript frameworks used on every webui shipped under the shlr/www directory. Read the following links for detailed understanding of licensing the web.
|
||||
|
||||
* https://www.gnu.org/software/librejs/free-your-javascript.html
|
||||
* http://greendrake.info/#nfy0
|
||||
|
||||
## Non-LGPL code shipped in r2
|
||||
|
||||
Some parts of r2 are not under the LGPL license, this is a list of them sorted
|
||||
|
||||
### GPL: More restrictive than LGPL
|
||||
|
||||
The plugins written under the GPL license can be opt-out at compile time in case you are worried about them.
|
||||
|
||||
Using the acr/make build system:
|
||||
|
||||
```
|
||||
$ ./configure --without-gpl
|
||||
```
|
||||
|
||||
Using the meson build system:
|
||||
|
||||
```
|
||||
$ meson -D nogpl=true
|
||||
```
|
||||
|
||||
Note that by default both build systems will behave the same way if no options are passed.
|
||||
|
||||
You can get a list of safe non-gpl plugins in the `dist/plugins-cfg/plugins.nogpl.cfg` which
|
||||
should be copied to `./plugins.cfg` before calling `./configure-plugins` to take effect.
|
||||
|
||||
### Less restrictive than LGPL
|
||||
|
||||
* libr/asm/arch/gnu: GPLv2
|
||||
* libr/bin/mangling/cxx: GPLv2
|
||||
* shlr/capstone: BSD + LLVM
|
||||
* shlr/zip/zip: BSD
|
||||
* shlr/zip/zlib: BSD
|
||||
* shlr/java: Apache2.0
|
||||
* shlr/sdb: MIT
|
||||
* shlr/qnx: GPL (will be moved to extras soon)
|
||||
* shlr/grub: GPL (used by some fs plugins)
|
||||
* shlr/yxml: BSD
|
||||
* shlr/lz4: simplified BSD license
|
||||
* shlr/mpc: BSD3
|
||||
|
||||
### The rest of code in shlr/ follows the LGPL
|
||||
|
||||
* shlr/winkd: LGPL
|
||||
* shlr/bochs: LGPL
|
||||
* shlr/tcc: LGPL
|
||||
* shlr/spp: LGPL (may change to MIT or BSD)
|
||||
* shlr/gdb: LGPL
|
||||
|
||||
--pancake
|
||||
|
@ -110,8 +110,6 @@ R_API int r_io_plugin_list_json(RIO *io) {
|
||||
|
||||
char str[4];
|
||||
int n = 0;
|
||||
pj_o (pj);
|
||||
pj_k (pj, "io_plugins");
|
||||
pj_a (pj);
|
||||
ls_foreach (io->plugins, iter, plugin) {
|
||||
str[0] = 'r';
|
||||
@ -149,7 +147,6 @@ R_API int r_io_plugin_list_json(RIO *io) {
|
||||
n++;
|
||||
}
|
||||
pj_end (pj);
|
||||
pj_end (pj);
|
||||
io->cb_printf ("%s", pj_string (pj));
|
||||
pj_free (pj);
|
||||
return n;
|
||||
|
@ -150,7 +150,7 @@ static char *__system (RIO *io, RIODesc *fd, const char *cmd) {
|
||||
|
||||
RIOPlugin r_io_plugin_qnx = {
|
||||
.name = "qnx",
|
||||
.license = "LGPL3",
|
||||
.license = "GPL3",
|
||||
.desc = "Attach to QNX pdebug instance",
|
||||
.uris = "qnx://",
|
||||
.open = __open,
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user