# Licenças

O projeto **PBIX Reader** é distribuído sob **GNU AGPL-3.0** (decisão do Lucas, 14/10/2026) — texto integral em [LICENSE](LICENSE). O texto é cópia byte a byte (SHA-1 `4c665f87…`, 661 linhas) da `share/licenses/AGPL-3` da distribuição do R 4.2 instalada nesta máquina; confira contra <https://www.gnu.org/licenses/agpl-3.0.txt> antes de publicar.

Levantamento de 14/10/2026, **sem rede**: metadados lidos do `.venv` (`importlib.metadata`) e de dentro das wheels e do `package.json`/`pyodide-lock.json` em `/Volumes/Ext Estudio/px14-web-online`. Não é parecer jurídico.

Regra de compatibilidade: MIT, BSD, Zlib, 0BSD, CC0, PSF e Apache-2.0 podem ser incorporadas a obra AGPL-3.0 (Apache-2.0 só com v3; a FSF a declara compatível com GPLv3/AGPLv3). MPL-2.0 é compatível por sua cláusula de "Licença Secundária" (§ 3.3), se o código MPL não for alterado ou for mantido sob MPL.

## Onde cada peça entra
- **Nativo / `.dmg`**: pbixray, kaitaistruct, xpress9, apsw, pandas, numpy, python-dateutil, six, xmhuffman, xpress8, openpyxl, et_xmlfile (do `.venv`), mais o CPython e o PyInstaller que o empacotam.
- **Página online (`web_online/`)**: Pyodide (CPython + runtime) e wheels wasm baixadas pelo `montar.sh` para a pasta servível.

## Tabela

| Peça | Versão | Licença (declarada) | Compatível com AGPL-3.0 | Evidência |
|---|---|---|---|---|
| pbixray | 0.15.5 | MIT | sim | `Metadata` do `.venv` e da wheel em `whl/` |
| kaitaistruct | 0.11 | MIT | sim | idem; `LICENSE` na wheel (Kaitai Project) |
| xpress9 | 0.3.9 | MIT (Igor Cotruta) + MIT (Microsoft, código embutido) | sim | `LICENSE` na wheel (só Igor Cotruta). Confirmado em 12/11/2026 na tag `v0.3.9` (ff81bd9) do GitHub: 16 arquivos de `include/` e `src/` abrem com `// Copyright (c) Microsoft Corporation.` / `// Licensed under the MIT License.`; o aviso da Microsoft não está no `LICENSE` da wheel nem do sdist, por isso vai reproduzido abaixo |
| xpress8 | 0.1.1 | MIT (Igor Cotruta) + MIT (Microsoft, código embutido) | sim | `LICENSE` na wheel e no `.venv`. O sdist (lido em 12/11/2026) traz 7 linhas `Copyright (c) Microsoft Corporation.` e o `README` diz "The vendored sources retain their original Microsoft copyright headers"; aviso reproduzido abaixo |
| xmhuffman | 0.3.1 | MIT (Igor Cotruta) | sim | idem |
| apsw | 3.54.0.0 | "any-OSI", texto próprio tipo zlib (Roger Binns); SQLite embutido é domínio público | sim (permissiva, sem copyleft) | `LICENSE` lido em 01/11/2026 no venv de build (`SPDX-License-Identifier: any-OSI`: texto próprio tipo zlib, com opção de usar sob qualquer licença OSI, como a AGPL). A nota de domínio público do SQLite: **não confirmada** (não consta no `LICENSE` nem no metadado) |
| pandas | 3.0.6 (nativo) / 3.0.2 (wasm) | BSD-3-Clause | sim | `License` no `.venv`; classificador BSD na wheel wasm |
| numpy | 2.5.4 (nativo) / 2.4.6 (wasm) | BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0 | sim | `License-Expression` no `.venv` e na wheel wasm (20 arquivos de licença na wheel) |
| python-dateutil | 2.9.0.post0 | BSD-3 / Apache-2.0 (dupla) | sim | classificadores no `.venv` e na wheel de `pyodide/` |
| six | 1.17.0 | MIT | sim | `.venv` e wheel |
| pytz | 2026.1.post1 | MIT | sim | wheel em `pyodide/` (só na página online) |
| tzdata | 2025.3 | Apache-2.0 | sim (Apache-2.0 é compatível com v3) | wheel `tzdata-2025.3` baixada do PyPI e lida em 01/11/2026: `License: Apache-2.0`, `LICENSE` (Paul Ganssle, Google) + `licenses/LICENSE_APACHE`; versão confere com `pyodide-lock.json`. Só na página online |
| openpyxl | 3.1.5 | MIT | sim | `.venv` e wheel |
| et_xmlfile | 2.0.0 | MIT | sim | `.venv` e wheel |
| Pyodide | 314.0.7 | MPL-2.0 | sim para o Pyodide (MPL-2.0 § 3.3), sem alteração do código; bibliotecas C do wasm: a confirmar | `"license"` em `pyodide/package.json`. O `pyodide.asm.wasm` também embute CPython (PSF-2.0) e bibliotecas C. **Lista** levantada em 12/11/2026 pelas cadeias de texto do binário (`strings`): zlib 1.3.1 (`deflate 1.3.1 Copyright 1995-2024 Jean-loup Gailly and Mark Adler`), bzip2/libbzip2, liblzma (xz), expat 2.7.3, libmpdec (`_decimal`), HACL* (`_hacl`), SRE 2.2.2 (Secret Labs AB, parte do CPython), compilado com Clang/LLVM 23 (Emscripten; runtime JS em `pyodide.asm.mjs`). O **texto** da licença de cada uma não foi lido (nenhum arquivo de licença no `python_stdlib.zip` nem na pasta do Pyodide): **a confirmar** |
| CPython (nativo e wasm) | 3.14 | PSF-2.0 | PSF-2.0 (identificada no `LICENSE`); compatibilidade com AGPL: não confirmada (afirmação da FSF, página não lida) | `LICENSE` do CPython 3.14.7 (Homebrew, `/opt/homebrew/Cellar/python@3.14/3.14.7/LICENSE`) lido: contém a "PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2". |
| PyInstaller (só no `.dmg`) | 6.22.3 (`docs/decisoes.md`) | GPL-2.0-or-later com exceção de bootloader (permite distribuir o executável gerado sob qualquer licença) | sim para o executável gerado | `METADATA` e `COPYING.txt` de 6.22.3 lidos no venv de build: GPLv2-or-later com "Bootloader Exception" (permissão ilimitada de embutir o bootloader em combinações distribuídas sem restrição). O `pyinstaller-hooks-contrib` 2026.8 declara Apache + GPLv2; o texto exato dos hooks usados **não foi lido** |
| pyarrow (extra opcional, só Parquet) | 26.0.0 | Apache-2.0 | sim (Apache-2.0 é compatível com v3) | `License-Expression: Apache-2.0` no `METADATA` de `pyarrow-26.0.0.dist-info` (instalação em outro venv da máquina, não neste `.venv`) e no JSON do PyPI (`/pypi/pyarrow/26.0.0/json`), lidos em 03/11/2026. A wheel traz `LICENSE.txt` (~108 KB, com licenças de componentes de terceiros embutidos) e `NOTICE.txt`: **a confirmar** cada componente. Fora do `requirements.txt`, do `.dmg` e da página online (wasm) |
| Fontes tipográficas | — | — | n/a | a página usa só pilha de sistema (`-apple-system`, `ui-monospace`…); nenhuma fonte embutida nem Google Fonts em `web_online/index.html` |

## A confirmar antes de publicar
1. Texto de `LICENSE` contra o oficial da FSF.
2. Bibliotecas C do `pyodide.asm.wasm`: a **lista** foi levantada em 12/11/2026 (linha do Pyodide na tabela); falta o **texto** da licença de cada uma, que não existe na cópia local. A nota de domínio público do SQLite no apsw: sem evidência local. PyInstaller, tzdata, CPython e apsw foram lidos em 01/11/2026 (tabela acima).
3. Código MIT da Microsoft dentro de xpress9 e xpress8: **feito em 12/11/2026** — a MIT exige o aviso em toda cópia, e ele não vinha em nenhum `LICENSE`; está reproduzido na seção abaixo, que viaja com este arquivo para o `.dmg` e para a pasta servível.
4. Distribuição do `.dmg` e da pasta servível: incluir esta tabela e os textos MIT/BSD/Apache/MPL exigidos pelas licenças (avisos de copyright precisam acompanhar a redistribuição).
5. Os links do rodapé (`LICENSE`, `LICENCAS.md`) só funcionam se o `montar.sh` copiar esses arquivos para a pasta servível — o `montar.sh` (linha 22) já copia os dois (conferido em 01/11/2026).

## Avisos de terceiros reproduzidos

### Código da Microsoft em xpress9 e xpress8

Os decodificadores Xpress9 e Xpress8 embutidos nas extensões `xpress9` 0.3.9 e `xpress8` 0.1.1
(nativas no `.dmg`, wasm na página online) trazem, arquivo a arquivo, o cabeçalho
`Copyright (c) Microsoft Corporation. Licensed under the MIT License.` O texto da MIT
é o abaixo (o mesmo do `LICENSE` dessas wheels, com o titular da Microsoft):

```
MIT License

Copyright (c) Microsoft Corporation.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

O `LICENSE` de cada wheel (Igor Cotruta, MIT) segue dentro da própria wheel em
`*.dist-info/licenses/LICENSE`, que a pasta servível redistribui sem alterar.
