Skip to content

Licencia

Pablo Martínez López edited this page Nov 11, 2026 · 3 revisions

Licencia

English · Español

El código fuente de Tapete es software libre bajo la Licencia Pública General de GNU v3.0 o posterior (SPDX GPL-3.0-or-later). El texto completo es el fichero LICENSE de la raíz del repositorio, la GPL v3 oficial de gnu.org sin cambios.

Qué significa

  • Cualquiera puede usar, estudiar, compartir y modificar el código.
  • Quien distribuya una versión modificada (un instalador, un APK, un fork) tiene que publicar su código fuente con la misma licencia. Usar en privado una copia modificada no obliga a nada.
  • «O posterior» permite usar el código bajo cualquier GPL posterior que publique la FSF. Es la forma que recomienda el proyecto GNU; pasar a GPL-3.0-only supondría cambiar el identificador en todos los sitios de la tabla de abajo.

Dónde se declara

El identificador es el mismo en todos los manifiestos, así las herramientas de empaquetado y los analizadores de dependencias leen una sola respuesta:

Fichero Campo
LICENSE Texto completo
package.json license
src-tauri/Cargo.toml, src-tauri/crates/mesa/Cargo.toml, src-tauri/crates/proxy-core/Cargo.toml, src-tauri/plugins/android-extra/Cargo.toml license
src-tauri/tauri.conf.json bundle.license
README.md, README.es.md Sección «License» / «Licencia», antes de los créditos

bundle.license solo rellena los metadatos del paquete (por ejemplo, el campo de licencia del .deb y del .rpm). Deducido: no añade ninguna pantalla de aceptar la licencia a ningún instalador, porque no hay ninguna configurada (licenseFile no está puesto).

Qué no cubre

  • Magic: The Gathering: los nombres de las cartas, el texto de reglas, las imágenes, los símbolos de expansión y los marcos oficiales son de Wizards of the Coast. La app los descarga (Scryfall, Card Conjurer) y no los distribuye.
  • Los recursos de terceros conservan su licencia: las letras incluidas, Noto Color Emoji, los juegos de iconos de Iconify (game-icons:*, incluido el del logo, pide atribución), la letra del pack Balatro y las fuentes de datos. Las plantillas y las cartas de ejemplo del pack Balatro son de u/Poke_Hybrids; no consta ninguna licencia para ellas y la autorización expresa para redistribuirlas dentro de Tapete está pendiente de confirmación (véase Packs de marcos). Están en la sección «Créditos» del README.es.md.
  • El contenido descargable (los marcos «Original», packs como Balatro, letras libres, temas de tweakcn) se baja bajo demanda con un commit fijado y un SHA-256 por fichero y nunca va en los instaladores (véase Packs de marcos), así que la licencia de la app no le cambia la suya.
  • El servidor de amigos y el repositorio de packs de marcos son proyectos aparte, con su propia licencia: el servidor es AGPL-3.0-or-later (la GPL para software que se usa por la red: quien ponga en marcha una copia modificada para otros tiene que ofrecerles su código), y en el de packs solo los scripts de construcción son GPL-3.0-or-later, mientras que cada pack conserva las condiciones de sus autores (su CREDITS.md).

Las dependencias tienen que ser compatibles

Cada crate de Rust y cada paquete de npm que acaba dentro de la app tiene que tener una licencia compatible con la GPL v3. Las permisivas de siempre lo son: MIT, Apache-2.0, BSD-2/3-Clause, ISC, Zlib, 0BSD, Unlicense, CC0-1.0, BSL-1.0, Unicode-3.0 y MPL-2.0. Apache-2.0 es compatible con la GPL v3 pero no con la v2, un motivo más para que el proyecto sea v3.

No valen para código que se distribuye: GPL-2.0-only, SSPL, BUSL y licencias parecidas de «código visible», licencias privativas y licencias CC con cláusulas NC o ND. Un crate con licencia doble (MIT OR Apache-2.0) cuenta por la opción compatible.

Las herramientas que solo sirven para compilar (Biome, TypeScript, caniuse-lite con CC-BY-4.0…) no acaban en la app, así que no necesitan ser compatibles.

Cómo comprobarlo

No hace falta cargo-deny ni cargo-license; las licencias declaradas salen de las herramientas que ya se usan:

# Rust: cada paquete de Cargo.lock con su licencia declarada
cd src-tauri
cargo metadata --format-version 1 --locked \
  | python3 -c 'import json,sys,collections; c=collections.Counter(p.get("license") or "(none: see license_file)" for p in json.load(sys.stdin)["packages"]); [print(n, l) for l, n in c.most_common()]'

# npm: solo lo que se distribuye (--prod), agrupado por licencia
pnpm licenses list --prod

Un paquete sin campo license (solo license_file) hay que leerlo a mano. Deducido: conviene repetirlo al añadir una dependencia, junto con cargo audit (véase Tests y CI); no hay ninguna puerta del CI para las licencias.

Véase también

Documentation · Documentación

Language: English · Español

Use and build · Uso y desarrollo

Architecture · Arquitectura

Data · Datos

Getting cards · Conseguir cartas

Layout, images, PDF · Maquetación, imagen y PDF

Card designer · Diseñador de cartas

Game table · Mesa de juego

Mobile · Móvil

Frontend · Frontend

Reference · Referencia

Clone this wiki locally