Forking proyek GPL: Apakah saya memiliki hak penuh pada garpu baru atau masih bergantung pada pemilik aslinya

34

Saya sedang mempertimbangkan pembuatan garpu untuk proyek kecil yang dilisensikan di bawah GPLv2 , dan saya memiliki beberapa pertanyaan yang sangat spesifik yang tidak saya jawab untuk menjawab dalam penelitian saya di berbagai situs dan forum.

Ketika saya bercabang kode, saya terpaksa merilis proyek baru di bawah lisensi yang sama (GPL) seperti yang akan saya lakukan, tetapi bisakah saya juga memutuskan untuk merilisnya di bawah lisensi ganda, salah satunya komersial?

Ketika memalsukan proyek, apakah saya secara otomatis memiliki hak cipta dari semuanya? Hal ini relevan ketika, misalnya, memutuskan perubahan masa depan dalam lisensi, atau untuk dapat menegakkan lisensi GPL ke 3 rd party

Visiedo
sumber
10
jika ini memungkinkan, siapa pun dapat dengan mudah melakukan proyek GPL dan mendapatkan perangkat lunak yang sama dengan lisensi baru secara efektif menghilangkan batasan terkait GPL dan membatalkan lisensi GPL dengan satu langkah sederhana.
user2485710
GPL mengizinkan penggunaan komersial!
feklee

Jawaban:

74

Jawaban singkatnya: Saat Anda bercabang dengan proyek yang sudah ada, umumnya Anda tidak memiliki izin untuk mengubah lisensi atau mendapatkan hak cipta atas kode yang Anda salin.

Anda melakukan memiliki hak cipta pada modifikasi (trivial) atau penambahan yang Anda buat.


Jawaban panjangnya:

Satu-satunya cara untuk mendapatkan hak cipta pada sepotong kode adalah dengan menulisnya sendiri atau dengan secara kontraktual mendapatkan hak cipta yang diberikan kepada Anda. Ini berarti bahwa forking proyek yang ada tidak mengubah hak cipta pada kode proyek asli atau garpu.

Satu-satunya orang yang dapat mengubah lisensi hak cipta adalah pemegang hak cipta tersebut. Jika ada beberapa pemegang hak cipta untuk kode proyek, maka semua pemegang hak cipta harus menyetujui perubahan dalam lisensi hak cipta. Ini berarti bahwa Anda tidak memiliki izin untuk mengubah lisensi garpu Anda (bahkan tidak untuk lisensi ganda itu), kecuali lisensi hak cipta yang ada secara eksplisit memberi Anda hak untuk mensublisensikan kode.

Bart van Ingen Schenau
sumber
2
Penjelasan yang bagus tentang masalah hak cipta.
Rory Hunter
2
@ArtB, tidak yakin tentang GPL -> AGPL, tetapi LGPL secara khusus memungkinkan Anda untuk merilis versi yang dimodifikasi di bawah GPL ( lihat artikel 2 ). Apa yang Anda boleh lakukan sangat tergantung pada apa lisensi awalnya.
Bruno
3
@ 2rs2ts tidak yakin apa yang Anda katakan itu benar (lihat bagian 13 dari GPLv3 ... tentu saja itu tergantung jika kita berbicara GPLv2 atau GPLv3). Selain itu, perubahan Anda biasanya selalu menjadi milik Anda. Jika Anda menambahkan widget ajaib ke proyek GPL A, Anda mungkin memang harus mendistribusikan ulang lot di bawah GPL, tetapi jika Anda menambahkan widget sihir yang sama ke proyek B BSD, Anda dapat melisensikan ulang barang-barang Anda (dan bukan barang dari proyek A) apa pun yang Anda suka (kompatibel dengan lisensi proyek B). (Seperti biasa, dapatkan nasihat hukum jika Anda ingin memastikan. Ini bukan.)
Bruno
1
Ingatlah bahwa AFAIK (tetapi IANAL) kode Anda adalah milik Anda apa pun yang terjadi, yaitu Anda dapat melepaskan tambalan di bawah lisensi apa pun yang Anda suka, terlepas dari lisensi proyek target.
o0 '.
4
@ Lohoris: Anda benar bahwa Anda dapat merilis tambalan yang Anda tulis dengan lisensi apa pun yang Anda inginkan. Tetapi jika pemilihan lisensi yang ceroboh dapat membuat kode yang ditambal tidak dapat didistribusikan karena tidak mungkin untuk memenuhi semua persyaratan lisensi.
Bart van Ingen Schenau
24

Proyek bercabang Anda adalah turunan dari kode proyek asli. Dengan kata lain, proyek Anda menggunakan proyek asli, dan dengan demikian Anda terikat dengan lisensinya. Jika ini tidak benar, lisensi tidak akan ada gunanya sama sekali.

Jadi, tidak, Anda tidak dapat merilis kode di bawah lisensi eksklusif jika berasal dari kode yang tidak mengizinkannya.

hidung besar
sumber
Jawaban Bart menyiratkan kondisi yang lebih ketat daripada Anda pada persyaratan lisensi kode bercabang - mana yang akurat dalam kasus umum?
Thomas
Jawaban Anda membuat proyek turunan bercabang, yang memungkinkan untuk relicense jika kode asli berada di bawah lisensi yang memungkinkan pelisensian karya turunan. Jawaban Bart mengatakan Anda tidak akan pernah bisa mengubah kode forked kecuali Anda memperoleh hak cipta, apa pun yang dikatakan lisensi aslinya. Apakah ini setara?
Thomas
4
@ Thomas Dan sudah benar, jika lisensi asli memungkinkan untuk melepaskan kembali maka Anda dapat melepaskan kembali proyek baru. Saya tidak yakin bahwa jawaban Bart menyatakan apa yang Anda interpretasikan. OP berbicara tentang kode yang dilisensikan di bawah GPL sehingga keduanya setara dalam hal ini.
Taemyr
5
@ Thomas, saya tidak berpikir ada konflik di sana. Inti dari kedua jawaban kami adalah bahwa Anda terus terikat oleh lisensi kode yang Anda gunakan untuk bercabang . Namun, Anda dapat melakukan apa pun yang diizinkan oleh lisensi kode itu. Bart mencatat bahwa, jika lisensi karya asli memberi Anda izin, Anda dapat menerbitkan karya Anda di bawah lisensi lain.
@Taemyr Ya, saya kira saya bingung apakah jawaban Bart berlaku untuk semua lisensi (seperti yang dituliskan) atau hanya untuk GPL (seperti yang disarankan pertanyaan ini).
Thomas
17

Lupakan GPL sejenak, dan lihat hak cipta. Ketika Anda bercabang sebuah proyek, semua kode yang ada dalam proyek asli adalah hak cipta dari siapa pun yang menulis kode itu dalam proyek asli. Semua kode yang Anda tulis sesudahnya adalah hak cipta Anda. Jadi kecuali Anda menulis ulang semua kode dari proyek asli, kode itu bukan milik Anda dan Anda tidak memiliki hak hukum.

Selanjutnya Anda melihat lisensi GPL, dan memeriksa hak apa yang diberikannya kepada Anda di luar hak hukum hak cipta. Ini memungkinkan Anda untuk membuat karya turunan yang menjadikan seluruh bisnis forking legal di tempat pertama - dengan undang-undang hak cipta yang jelas, Anda tidak akan diizinkan untuk membuat karya turunan. Selanjutnya, ini memungkinkan Anda untuk menggunakan kode selama Anda tidak mendistribusikannya. Jadi selama tidak ada orang lain yang dapat menggunakan kode bercabang, GPL memungkinkan Anda untuk melakukan apa yang Anda inginkan dengannya.

Namun, jika Anda mendistribusikan kode bercabang, termasuk kode hak cipta orang lain, Anda hanya memiliki izin dari pemegang hak cipta jika Anda mengikuti aturan mereka. Satu aturan adalah Anda harus melisensikan seluruh kode di bawah GPL (termasuk milik Anda). Aturan lain adalah bahwa Anda harus memberikan kode sumber kepada orang lain; periksa GPL untuk detailnya.

Mengubah lisensi akan sulit, asalkan ada kode asli yang masih ada. Anda tidak dapat melisensikan kode Anda dengan cara yang mencegah orang berikutnya menggunakan kode dengan cara yang diizinkan GPL, Anda juga tidak dapat mengizinkan mereka melakukan sesuatu dengan kode yang tidak diizinkan GPL.

gnasher729
sumber
1
Saya umumnya setuju dengan jawaban Anda, tetapi saya pikir Anda mungkin ingin mengulangi kalimat ini: "dengan undang-undang hak cipta, Anda tidak akan diizinkan untuk membuat karya turunan." Sebagai aturan umum, itu mungkin cukup untuk berpura-pura akurat, tetapi ada pengecualian. (Hak cipta yang sudah lewat, parodi, dll.) Namun, saya akui bahwa sebagian besar tidak berlaku untuk GPL.
Patrick M