Panduan · 05

Pengenal SPDX dan header file

Cara menulis header SPDX-License-Identifier dan SPDX-FileCopyrightText, pengenal usang (GPL-2.0→GPL-2.0-only), kolom license di metadata paket, dan spesifikasi REUSE.

Terakhir diperiksa: 2026-09-23

Apa itu SPDX

SPDX (Software Package Data Exchange) adalah proyek di bawah Linux Foundation, yaitu standar untuk menyatakan komponen perangkat lunak dan informasi lisensinya agar dapat dibaca mesin. Pada 2021 SPDX menjadi standar internasional ISO/IEC 5962:2021. Bagian yang paling banyak dipakai adalah pengenal pendek dalam SPDX License List. Ini adalah kesepakatan untuk menulis MIT saja sebagai ganti nama yang beragam seperti 'MIT License', 'The MIT license', atau 'Lisensi MIT'.

Dua baris header file

Jika dua baris berikut dimasukkan sebagai komentar di bagian paling atas file sumber, manusia maupun alat dapat langsung mengetahui pemegang hak cipta dan lisensi file itu.

// SPDX-FileCopyrightText: 2026 Jane Doe <jane@example.com>
// SPDX-License-Identifier: MIT

Tab Header file di generator membuat dua baris ini dalam 7 gaya komentar.

Waspadai pengenal yang usang

Sejak SPDX License List 3.0 (Desember 2017), klausul versi lisensi GNU dinyatakan di dalam pengenal.

Pengenal usangPengenal saat ini
GPL-2.0GPL-2.0-only
GPL-2.0+GPL-2.0-or-later
GPL-3.0GPL-3.0-only
LGPL-2.1LGPL-2.1-only
AGPL-3.0AGPL-3.0-only

Jika hanya ditulis GPL-3.0, tidak dapat diketahui apakah 'only' atau 'or later'. Perbedaan kedua cara itu dirangkum di only vs or-later.

Metadata paket

Sebagian besar manajer paket menerima pengenal atau ekspresi SPDX.

EkosistemFileContoh
npmpackage.json"license": "MIT" · untuk yang tertutup "UNLICENSED"
RustCargo.tomllicense = "MIT OR Apache-2.0"
Pythonpyproject.tomllicense = "Apache-2.0" (PEP 639)
Mavenpom.xmlNama dan URL di dalam <licenses>

UNLICENSED di npm berarti sesuatu yang sama sekali berbeda dari 'Unlicense', yaitu tanda paket tertutup yang tidak mengizinkan penggunaan. Ejaannya mirip sehingga kesalahan sering terjadi.

REUSE: membuat seluruh repositori dapat dibaca mesin

Spesifikasi REUSE dari Free Software Foundation Europe (FSFE) menetapkan cara menerapkan header SPDX secara konsisten di seluruh repositori.

  1. Taruh semua teks lisensi di folder LICENSES/ dengan nama PengenalSPDX.txt (misalnya LICENSES/MIT.txt).
  2. Masukkan SPDX-FileCopyrightText dan SPDX-License-Identifier ke setiap file.
  3. Untuk file yang tidak dapat diberi komentar (gambar, JSON, dll.), tulis informasinya di file pendamping namafile.license atau di REUSE.toml di akar repositori.
  4. Periksa dengan alat reuse lint apakah ada file yang terlewat.

Tips praktis

Artikel ini adalah informasi umum, bukan nasihat hukum. Untuk keputusan penting, konsultasikan dengan ahli.

Sumber