Menggunakan "SPDX-License-Identifier" di Kode Sumber

Ketika saya menulis suatu program dan membagikannya dalam bentuk kode sumber, saya biasa menggunakan lisensi seperti MIT atau GPL. Jika menggunakan lisensi MIT, yang saya tahu, tidak diharuskan bagi kita untuk menulis pemberitahuan lisensi di header sebuah file / kode. Cukup menyertakan sebuah file lisensi khusus seperti LICENSE atau LICENSE.txt. Namun, jika menggunakan GPL, menurut FAQ di https://www.gnu.org/licenses/gpl-faq.en.html#NoticeInSourceFile seharusnya menggunakan pemberitahuan lisensi seperti berikut:

  1. This program is free software: you can redistribute it and/or modify 
  2. it under the terms of the GNU General Public License as published by 
  3. the Free Software Foundation, either version 3 of the License, or 
  4. (at your option) any later version. 
  5.  
  6. This program is distributed in the hope that it will be useful, 
  7. but WITHOUT ANY WARRANTY; without even the implied warranty of 
  8. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
  9. GNU General Public License for more details. 
  10.  
  11. You should have received a copy of the GNU General Public License 
  12. along with this program.  If not, see <https://www.gnu.org/licenses/>. 

Petunjuk lengkap bisa dibaca di https://www.gnu.org/licenses/gpl-howto.en.html

Karena saya tidak suka menambahkan banyak tulisan di kode sumber yang kemungkinan besar juga jarang dibaca, saya mencoba menggunakan sebuah standar yaitu SPDX untuk mengatasi hal ini. Apa itu SPDX?

Apa itu SPDX?

SPDX (Software Package Data Exchange) adalah sebuah upaya untuk men-standarisasi format / penulisan informasi seperti lisensi, hak cipta, dll agar mudah dibaca baik oleh manusia maupun mesin. Standar ini diharapkan dapat menciptakan keseragaman dalam berbagi data. SPDX ada dibawah naungan Linux Foundation. Jika kita melihat kode sumber kernel Linux, maka tidak heran kita akan menemukan implementasi SPDX ini di file header.

Berikut contoh penggunaan dasar SPDX Identifiers pada kode sumber.

  1. // SPDX-License-Identifier: MIT 
  2. /* SPDX-License-Identifier: MIT OR Apache-2.0 */ 
  3. # SPDX-License-Identifier: GPL-2.0-or-later 

Selengkapnya bisa dibaca di https://spdx.dev/ids/