Všechny verze specifikace naleznete na adrese <>.

Specifikace REUSE - verze 3.2

2024-07-03

Čtete neoficiální překlad originální stránky.

Tato specifikace definuje standardizovanou metodu pro deklarování autorských práv a licencování softwarových projektů. Cílem specifikace je mít komplexní, jednoznačné, člověkem i strojově čitelné informace o autorských právech a licencích pro každý jednotlivý soubor v projektu. V ideálním případě jsou tyto informace vloženy do každého souboru, takže informace jsou zachovány, když je soubor zkopírován a znovu použit třetími stranami.

Tato specifikace implementuje IETF RFC 2119: Key words for use in RFCs to Indicate Requirement Levels.

Historii revizí této specifikace naleznete v protokolu změn.

Definice

Toto jsou definice některých pojmů použitých v této specifikaci:

  • REUSE Tool — pomocný nástroj pro shodu s touto specifikací; k dispozici na https://github.com/fsfe/reuse-tool.
  • Projekt — jakákoli jednotka obsahu, která může být spojena s distribucí softwaru. Projekt se obvykle skládá z jednoho nebo více souborů. Někdy se také nazývá balíček.
  • Licenční soubor — soubor obsahující text licence, jak je definováno v Licenční soubory.
  • Licenční informace — informace, které obsahují seznam držitelů autorských práv k souboru nebo dílu a popisují, pod jakými licencemi je soubor nebo dílo zpřístupněno.
  • Copyright Notice — řádek textu, který vyjadřuje autorská práva držitele autorských práv. Jeho formát je definován v části Format of Copyright Notices.
  • Covered File — soubor, který musí obsahovat licenční informace, jak je definováno v Covered and ignored Files.
  • Komentovatelný soubor — prostý textový soubor, který může obsahovat komentáře.
  • Úryvek — část textu v komentovatelném souboru, na který se vztahují různé licenční informace.
  • Nekomentovatelný soubor — buď prostý textový soubor, který nemůže obsahovat komentáře, nebo soubor, který není prostým textovým souborem.
  • Specifikace SPDX — Specifikace SPDX, verze 2.3; jak je k dispozici na https://spdx.org/specifications.
  • Identifikátor licence SPDX — Zkrácený identifikátor SPDX, jak je definován ve specifikaci SPDX. Viz také https://spdx.org/ids, kde najdete krátký úvod a příklady.
  • SPDX License Expression — jak je definováno ve specifikaci SPDX, Příloha D, na https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/.
  • Seznam licencí SPDX — seznam běžně používaných licencí a výjimek; k dispozici na https://spdx.org/licenses/.
  • DEP5 — Strojově čitelný soubor debian/copyright, verze 1.0; jak je k dispozici na https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ a dále definované v DEP5 (zastaralé). Kde specifikace REUSE a DEP5 uvádějí různé věci, má přednost specifikace REUSE.
  • TOML — Formát konfiguračního souboru dostupný na https://toml.io/en/v1.0.0.

Zakryté a ignorované soubory

Zakryté soubory jsou všechny soubory, které musí obsahovat licenční informace. To se rovná všem souborům v projektu, s výjimkou:

  • Licenční soubory uložené v adresáři LICENSES/.
  • KOPÍROVÁNÍ a LICENCE s příponami souborů nebo bez nich.
  • Soubory patřící do systému správy verzí projektu (příklad: .git/).
  • Soubory ignorované systémem správy verzí (příklad: soubory uvedené v .gitignore).
  • Submoduly systému správy verzí projektu a podprojekty Meson. Každý dílčí modul a dílčí projekt Meson je chápán jako samostatný Projekt.
  • Soubory v adresáři .reuse/ v kořenovém adresáři projektu. Tento adresář MUSÍ obsahovat pouze soubory důležité pro provoz nástroje REUSE.
  • Symbolické odkazy a soubory bez dat (nulový bajt).
  • Dokumenty SPDX v různých formátech, jak je definováno ve Specifikaci SPDX, článek 4.4 ( příklad: sbom.spdx.json).

Licenční soubory

Projekt MUSÍ obsahovat Licenční soubor pro každou licenci, pod kterou jsou licencovány Zahrnuté soubory.

Každý licenční soubor MUSÍ být umístěn v adresáři LICENSES/ v kořenovém adresáři projektu. Název licenčního souboru MUSÍ být identifikátor licence SPDX, za kterým následuje příslušná přípona souboru (například: LICENSES/GPL-3.0-or-later.txt). Licenční soubor MUSÍ být v prostém textovém formátu.

Pokud licence v seznamu licencí SPDX neexistuje, její identifikátor licence SPDX MUSÍ být LicenseRef-[idstring], jak je definováno ve specifikaci SPDX, článek 10 dostupný na <https://spdx.github.io/spdx-spec /v2.3/other-licensing-information-detected/>.

Projekt NESMÍ obsahovat licenční soubory pro licence, na jejichž základě není licencován žádný ze souborů v projektu. Adresář LICENSES/ NESMÍ obsahovat žádné další soubory.

Vše, co platí pro licence v této části, platí také pro výjimky z licencí s tou výjimkou, že NENÍ možné mít výjimku z licence, která neexistuje v seznamu licencí SPDX.

Aby se předešlo pochybnostem, v praxi to znamená, že pro každou licenci a výjimku, která je součástí jakéhokoli licenčního vyjádření SPDX v jakýchkoli licenčních informacích spojených s jakýmkoli krytým souborem, MUSÍ existovat licenční soubor, jak je definován v této části.

Do svého projektu MŮŽETE zahrnout soubor KOPÍROVÁNÍ nebo LICENCE (s příponami souborů nebo bez nich), aby byly v souladu s jinými standardy, konvencemi nebo nástroji. Tyto soubory MOHOU obsahovat kopii textu licence, shrnutí vaší licence nebo cokoli jiného. Tyto soubory jsou nástrojem REUSE ignorovány.

Licenční informace

Každý krytý soubor MUSÍ mít přidružené licenční informace. Licenční informace můžete k souboru přidružit následujícími způsoby:

  • Záhlaví komentářů
  • REUSE.toml
  • DEP5 (zastaralé)

REUSE.toml a DEP5 se vzájemně vylučují. NESMÍTE používat oba současně.

Záhlaví komentářů jsou DOPORUČENÁ metoda.

Kromě toho můžete přiřadit licenční informace k úryvkům uvnitř souborů.

Záhlaví komentářů

Kdykoli je to možné, MĚLI byste se pokoušet používat záhlaví komentářů k přenosu licenčních informací souboru. Ve srovnání s jinými metodami jsou záhlaví komentářů explicitnější a související licenční informace jsou odolnější vůči přesunutí nebo kopírování.

Chcete-li implementovat tuto metodu, soubor s možností komentáře MUSÍ deklarovat licenční informace souboru v záhlaví komentáře. Licenční informace BY MĚLY být v záhlaví komentáře co nejblíže k horní části souboru. Komentovatelný soubor BY MĚL používat kódování UTF-8.

U nekomentovatelných souborů MUSÍ být záhlaví komentáře, které deklaruje licenční informace souboru, v sousedním textovém souboru se stejným názvem s dodatečnou příponou .license (příklad: cat.jpg.license, pokud je původní soubor `cat. jpg"). Sousední soubor BY MĚL používat kódování UTF-8.

Soubory .license MOHOU být používány s komentovatelnými soubory, ale přesto se DOPORUČUJE, aby záhlaví komentářů bylo umístěno do komentovatelných souborů.

Záhlaví komentáře MUSÍ obsahovat jedno nebo více oznámení o autorských právech a jeden nebo více párů značka-hodnota SPDX-License-Identifier. Za značkou následuje dvojtečka, za ní textová hodnota a je ukončena novým řádkem.

Za značkou SPDX-License-Identifier MUSÍ následovat platný licenční výraz SPDX popisující licencování souboru (příklad: SPDX-License-Identifier: GPL-3.0-nebo-novější NEBO Apache-2.0).

Příklad záhlaví komentáře:

# SPDX-FileCopyrightText: 2016, 2018-2019 Jane Doe <jane@example.com>
# SPDX-FileCopyrightText: 2019 Příklad Společnosti
#
# SPDX-License-Identifier: GPL-3.0-or-later

Vložené komentáře úryvků

Někdy se licenční informace vztahuje pouze na určitý úryvek namísto celého komentovatelného souboru. V těchto případech MUSÍ být pro daný úryvek použity značky úryvků SPDX (jak je definováno ve Specifikaci SPDX, příloha H). To znamená, že oznámení o autorských právech uvnitř úryvků MUSÍ mít předponu SPDX-SnippetCopyrightText.

Stejně jako u hlaviček komentářů, značky úryvků SPDX BY MĚLY být komentovány.

Úryvek BY MĚL obsahovat oznámení o autorských právech i licenční vyjádření SPDX.

Příklad:

# SPDX-SnippetBegin
# SPDX-SnippetCopyrightText: 2022 Jane Doe <jane@example.com>
# SPDX-License-Identifier: MIT

print("Hello, world!")

# SPDX-SnippetEnd

Ignorovat blok

Pokud jsou licenční informace deklarovány v souboru bez popisu skutečné licence nebo autorských práv k souboru nebo úryvku (například: jako součást výstupního příkazu nebo dokumentace), tyto výskyty BY MĚLY být vloženy mezi dva komentáře: REUSE-IgnoreStart a REUSE-IgnoreEnd. Nástroj REUSE pak ignoruje všechny licenční informace mezi těmito komentáři. Tato technika NESMÍ být použita k ignorování platných licenčních informací.

Příklad ignorovaného bloku:

# SPDX-FileCopyrightText: 2021 Jane Doe
#
# SPDX-License-Identifier: GPL-3.0-or-later

# REUSE-IgnoreStart
echo "SPDX-FileCopyrightText: $(date +'%Y') John Doe" > file.txt
echo "SPDX-License-Identifier: MIT" > file.txt
# REUSE-IgnoreEnd

REUSE.toml

Licenční informace MOHOU být přidruženy k souboru prostřednictvím souboru REUSE.toml, který MUSÍ být platným souborem TOML. Zamýšleným případem použití této metody jsou velké adresáře, kde je zahrnutí záhlaví komentáře do každého souboru (nebo do doprovodných souborů .license) nemožné nebo nežádoucí.

Soubor REUSE.toml MŮŽE být umístěn v libovolném adresáři a může pokrývat soubory, které jsou v jeho adresáři nebo hlouběji. MŮŽETE mít více souborů REUSE.toml v různých adresářích.

Klíč version (POVINNÝ) MUSÍ mít celočíselnou hodnotu představující verzi schématu souboru. Tato specifikace popisuje verzi 1 souboru REUSE.toml.

Každá tabulka [[annotations]] představuje přidružení licenčních informací k žádnému nebo více krytým souborům. Má následující klíče:

  • cesta (VYŽADOVÁNO), řetězec nebo seznam řetězců představujících cesty. Cesta MUSÍ používat lomítka jako oddělovače cest. Cesta BY MĚLA odpovídat jednomu nebo více krytým souborům vzhledem k adresáři souboru REUSE.toml. Cesta, která se převede na neexistující nebo nezakrytý soubor, je ignorována. Cesta MUSÍ ukazovat na umístění v adresáři souboru REUSE.toml nebo hlouběji. Cesta MŮŽE používat globbing ke shodě s několika krytými soubory v jediném výrazu. Toto jsou pravidla pro globování a párování:
    • * odpovídá všemu kromě lomítek (tj. oddělovačů cest).
    • ** a **/ odpovídají všemu včetně lomítek (tj. oddělovačů cest).
    • Chcete-li uniknout hvězdičce a zahrnout ji doslovně, předponu \\. Nemůžete mu předponu \, protože to je neplatný TOML. Chcete-li doslovně zahrnout zpětné lomítko, použijte \\\\. \\ následovaný jakýmkoli jiným znakem je funkčně stejný jako pouhé psaní tohoto znaku.
  • precedence (VOLITELNÉ), doslovný řetězec. Určuje pořadí priority pro licenční informace mezi souborem REUSE.toml a krytými soubory v tabulce a mezi více soubory REUSE.toml, pokud oba obsahují licenční informace pro stejný krytý soubor. Dostupné hodnoty jsou:
    • closest, výchozí hodnota, když precedence není definována. Toto je instrukce pro přidružení licenčních informací uvnitř zahrnutých souborů (nebo jejich přilehlého souboru .license), pokud je k dispozici. Pokud nejsou žádné takové licenční informace nalezeny, jsou přidruženy licenční informace v tabulce nejbližšího souboru REUSE.toml, který pokrývá soubor. Tento algoritmus se používá samostatně pro autorská práva a pro licencování. Pokud má tabulka pro stejný soubor v bližším souboru REUSE.toml prioritu override, pak se tato přednost použije a closest se ignoruje. To je v podstatě záložní.
    • “aggregate”. Toto je instrukce, abyste vždy přiřadili licenční informace definované v tabulce k pokrytým souborům tabulky. Následně je také aplikována „nejbližší“ logika.
    • override. Toto je instrukce pro přidružení licenčních informací definovaných v tabulce se zahrnutými soubory tabulky a ignorování jakýchkoli dalších licenčních informací, které jsou blíže souborům. Směrodatná je tabulka v REUSE.toml, která je nejblíže kořenu projektu.
  • SPDX-FileCopyrightText (VOLITELNÉ), řetězec nebo seznam řetězců. Každý řetězec MUSÍ být oznámením o autorských právech, aby mohl být spojen s krytými soubory tabulky. Předpona Oznámení o autorských právech MŮŽE být vynechána.
  • SPDX-License-Identifier (VOLITELNÉ), řetězec nebo seznam řetězců. Každý řetězec MUSÍ být platným licenčním výrazem SPDX popisujícím licencování zahrnutých souborů tabulky.

MŮŽETE zahrnout další klíče a tabulky k předání dalších informací. Jejich sémantika není touto specifikací definována. Pokud si přejete zahrnout další klíče, DOPORUČUJEME použít stávající značky SPDX. Můžete například použít SPDX-FileComment v tabulce [[annotations]] k přidání kontextu k tomu, co děláte, nebo SPDX-FileContributor k připsání dalších přispěvatelů.

Přestože klíče pro přidružení licenčních informací k zahrnutému souboru jsou VOLITELNÉ, úplné licenční informace MUSÍ být stále nějakým způsobem spojeny se souborem.

Pokud je krytý soubor pokryt více tabulkami [[annotations]] ve stejném souboru REUSE.toml, pak se pro tento krytý soubor použije výhradně poslední odpovídající tabulka v souboru.

Příklad souboru REUSE.toml:

version = 1

[[annotations]]
path = ["po/*.po", "po/*.pot"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2019 Translation Company"
SPDX-License-Identifier = "GPL-3.0-or-later"

[[annotations]]
path = "tests/resources/**"
precedence = "override"
SPDX-FileCopyrightText = "2019 Jane Doe"
SPDX-License-Identifier = "CC0-1.0"

DEP5 (zastaralé)

Licenční informace MOHOU být přidruženy k souboru prostřednictvím souboru DEP5, ale místo toho MĚLI byste vytvořit soubor REUSE.toml. Soubor DEP5 je zastaralý, což znamená, že se očekává, že zmizí z budoucí iterace této specifikace.

Soubor DEP5 MUSÍ být pojmenován dep5 a uložen v adresáři .reuse/ v kořenovém adresáři projektu (tj. .reuse/dep5).

Za tagem Files MUSÍ následovat jedna nebo více cest, na které se vztahují licenční informace odstavce.

Za značkou License MUSÍ následovat platné vyjádření licence SPDX popisující licencování přidružených souborů.

Za tagem „Copyright“ MUSÍ následovat jedno nebo více oznámení o autorských právech. Předpony oznámení o autorských právech MOHOU být vynechány.

Příklad souboru DEP5:

Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/

Files: po/*.po po/*.pot
Copyright: 2019 Translation Company
License: GPL-3.0-or-later

Files: tests/resources/*
Copyright: 2019 Jane Doe
License: CC0-1.0

Pořadí přednosti

Pokud soubor s možností komentáře obsahuje licenční informace, ale má také sousední soubor .license, pak mají přednost licenční informace definované v souboru .license a obsah souboru s komentářem je ignorován. Pro všechny záměry a účely se to počítá jako licenční informace souboru .license obsažené v souboru s komentářem.

Licenční informace definované v .reuse/dep5 jsou agregovány s licenčními informacemi, které se nacházejí v zahrnutých souborech. Pro jasnost to znamená, že pokud licenční výrazy SPDX v hlavičce komentáře souboru a v sekci pro tento soubor v .reuse/dep5 vzájemně nesouhlasí, pak se na soubor budou vztahovat oba licenční výrazy SPDX.

Pořadí priority pro soubory REUSE.toml je popsáno v příslušné části a je spravováno pomocí klíče precedence.

Formát oznámení o autorských právech

Upozornění na autorská práva MUSÍ začínat značkou, slovem nebo symbolem (souhrnně: předpony) z následujícího seznamu:

  • SPDX-FileCopyrightText (nebo SPDX-SnippetCopyrightText ve Snippets)
  • Copyright
  • ©

DOPORUČUJEME používat značku SPDX-FileCopyrightText. Za předponu MŮŽETE přidat ‘(C)’, ‘(c)’ nebo ‘©’.

V souborech s komentářem je oznámení o autorských právech ukončeno novým řádkem.

Oznámení o autorských právech MUSÍ obsahovat jméno držitele autorských práv. Upozornění o autorských právech BY MĚLO obsahovat rok vydání a kontaktní adresu držitele autorských práv. Pořadí těchto položek BY MĚLO být: rok, jméno, kontaktní adresa.

Rok vydání MŮŽE být jeden rok, více let nebo období několika let.

Držitel autorských práv BY MĚL být jednotlivec, seznam jednotlivců, skupina, právnická osoba nebo jakýkoli jiný deskriptor, podle kterého lze snadno identifikovat držitele autorských práv.

Jakákoli kontaktní adresa by měla být v hranatých závorkách.

Do Oznámení o autorských právech MŮŽETE přidat jakékoli další informace.

Příklady platných oznámení o autorských právech:

SPDX-FileCopyrightText: 2019 Jane Doe <jane@example.com>
SPDX-FileCopyrightText: © 2019 John Doe <john@example.com>
SPDX-FileCopyrightText: Přispěvatelé do příkladového projektu <https://project.example.com>
SPDX-FileCopyrightText: 2023 Alice Hack a (další) přispěvatelé do projektu X <https://git.example.com/alicehack/projectx/CONTRIBUTORS.md>
SPDX-SnippetCopyrightText: (C) Příkladové družstvo <info@coop.example.com>
© Example Corporation <https://corp.example.com>
Copyright 2016, 2018-2019 Joe Anybody
Copyright (c) Alice, některá práva vyhrazena