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Í
aLICENCE
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 souboruREUSE.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 souboruREUSE.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 souboremREUSE.toml
a krytými soubory v tabulce a mezi více souboryREUSE.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 souboruREUSE.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 souboruREUSE.toml
priorituoverride
, pak se tato přednost použije aclosest
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 vREUSE.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
(neboSPDX-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