Standar Ganda Open Source Unity: Pemblokiran VLC
(mfkl.github.io)- VLC for Unity adalah integrasi open source yang menghubungkan mesin game Unity dan mesin multimedia VLC, dan telah mendistribusikan biner per platform di Unity Store sejak Desember 2019
- Setelah email dari Unity pada akhir musim panas 2023, akun publisher langsung diblokir, dan meski sudah berbulan-bulan berdiskusi serta mengusulkan pengecualian kode LGPL, kembalinya ke Store tetap ditolak
- Di Unity Store masih ada banyak aset yang menyertakan dependensi LGPL seperti FFmpeg, dan Unity Editor serta runtime itu sendiri juga memakai pustaka LGPL seperti Lame, libiconv, libwebsockets, dan websockify.js
- Setelah aset dihapus, ketika pelanggan menanyakan pemeliharaan dan pembaruan build, Videolabs membuka Videolabs Store di situs mereka sendiri dan mulai menjual biner tanpa melalui Unity Store
- Selain biner plugin VLC Unity, Videolabs Store juga menangani skema dukungan komersial untuk LibVLC dan FFmpeg, lisensi LibVLCSharp, ebook LibVLC, Kyber, serta produk integrasi Unreal yang direncanakan
VLC for Unity yang diblokir dari Unity Store
- VLC for Unity adalah integrasi jembatan yang memungkinkan pembuatan pemutar media berbasis mesin VLC di game berbasis Unity
- Unity melalui Mono, dan LibVLC dengan portabilitasnya yang tinggi, membuat integrasi ini ditujukan untuk penggunaan lintas platform
- Di Unity Store, biner integrasi open source VLC for Unity telah didistribusikan sejak Desember 2019, dengan 3 platform target
- Windows
- UWP
- Android
- Setelah Unity mengirim email pada akhir musim panas 2023, akun publisher langsung diblokir
- Selama berbulan-bulan setelah itu, kompromi dicari lewat email, dan bahkan penghapusan kode LGPL dari aset pun diusulkan, tetapi Unity tidak mengizinkan kembali ke Store
- Dijawab bahwa sekalipun semua kode LGPL dihapus dari paket Unity, pemulihan tetap tidak dimungkinkan
- Di Unity Store, saat ini masih ada ratusan hingga ribuan aset yang menyertakan dependensi LGPL seperti FFmpeg
- Unity sendiri juga menggunakan dependensi LGPL di Editor dan runtime, dan ini juga berdampak pada game yang didistribusikan dengan Unity
- Pustaka contoh yang disebutkan adalah Lame, libiconv, libwebsockets, dan websockify.js
- Daftar lengkap dependensi open source Unity dapat dilihat di daftar terpisah
- Benturan utamanya terletak pada standar ganda Unity: memakai pustaka open source LGPL, tetapi tidak mengizinkan distribusi berbasis LGPL oleh publisher dan pengguna Unity Store
Videolabs Store dan dukungan komersial
- Setelah aset VLC for Unity dihapus, pelanggan lama maupun baru menanyakan apakah pemeliharaan masih berlanjut dan bagaimana cara mendapatkan pembaruan build
- Karena banyak perusahaan menggunakan LibVLC SDK dan teknologi terkait seperti FFmpeg, Videolabs memutuskan membuka Videolabs Store mereka sendiri
- Pelanggan lama dan baru kini bisa membeli biner plugin open source VLC Unity tanpa melalui Unity Store
- Karena VLC for Unity bersifat open source, pengguna juga dapat membangunnya sendiri
- Videolabs Store menjadi jalur untuk memperjelas struktur penawaran produk dan layanan untuk LibVLC dan FFmpeg
- Sebagian pengguna meminta pemecahan masalah atau fitur baru, tetapi ada keterbatasan dalam merespons hanya dengan komunitas dan sedikit relawan yang memiliki waktu terbatas
- Tim Videolabs terdiri dari para ahli VLC dan FFmpeg, dan menangani berbagai protokol, format, serta platform
- Paket konsultasi multimedia yang ditawarkan adalah 3 jam, 10 jam, dan 24 jam, dan dapat dibeli sebagai layanan satu kali atau langganan bulanan
- Cakupan dukungan mencakup custom build, perbaikan bug, integrasi SDK, dan tanya jawab untuk kebutuhan tertentu
- Dukungan dapat diberikan tanpa bergantung pada platform sistem operasi atau toolkit
- Store juga mencakup lisensi komersial LibVLCSharp dan ebook LibVLC
- Produk yang direncanakan mencakup Kyber, SDK untuk streaming game/desktop latensi ultra-rendah dan kendali jarak jauh, serta integrasi dengan mesin game tambahan seperti Unreal
4 komentar
Perusahaan yang bahkan tidak bisa membuat engine dengan benar ini rupanya melakukan segala macam kebodohan ya wkwk
Mungkin ini pemikiran yang samar dan ekstrem, tetapi rasanya kalau ada masalah yang tak masuk akal di industri teknologi, hampir selalu ulah para orang berdasi.
Unity lagi...
Sudah pernah sampai hampir menghancurkan perusahaan gara-gara urusan lisensi, eh sekarang malah bikin orang kesal lagi wkwk
Pendapat Hacker News
Tampaknya jelas tim legal menerima informasi yang keliru lalu memasukkannya ke dalam kontrak
Seperti disebutkan dalam tulisan itu, banyak aset Unity memakai dependensi LGPL, Unity sendiri juga menggunakan aset LGPL, dan game rilis yang dibuat dengan Unity pun memuat aset LGPL
Kemungkinan besar niatnya adalah hanya menyaring dependensi GPL
GPL dan LGPL punya perbedaan besar: LGPL adalah lisensi yang dirancang agar, selama syarat tertentu dipenuhi, aplikasi proprietari yang menautkan ke library open source tidak diwajibkan membuka source code aplikasinya
Sebaliknya, GPL memiliki tuntutan yang lebih ketat: seluruh turunan yang memuat kode GPL harus didistribusikan sebagai GPL dan source code-nya juga harus dibuka
Misalnya, saya kira aplikasi yang hanya didistribusikan lewat store di platform yang mewajibkan tanda tangan tidak bisa menyertakan komponen LGPL, karena pengguna tidak dapat memodifikasi komponen LGPL tersebut
Terlepas dari rincian hukumnya, LGPL memang lebih fleksibel daripada GPL, tetapi tetap cukup membatasi, sehingga software proprietari sebaiknya menjaga semuanya tetap sederhana atau berkonsultasi dengan pengacara spesialis terkait untuk memeriksa kepatuhan dengan hati-hati
Dari sisi itu, masuk akal jika Unity melarang software LGPL. Bukan berarti hal itu tidak bisa dilakukan dengan benar, melainkan karena tidak realistis bagi Unity atau penyedia untuk meninjau secara legal setiap aset yang masuk ke store setiap kali
Aneh bahwa bahkan di HN pada 2025 pun tidak ada yang benar-benar tahu secara pasti makna spesifik LGPL atau persyaratan implementasinya
Jika situasinya serumit, membingungkan, dan sangat bergantung pada penafsiran seperti ini, jelas ada ruang untuk membuat sistem lisensi baru yang lebih baik dan benar-benar dapat dipahami orang
Lisensi seperti MIT relatif jelas dipahami semua orang, tetapi berbagai keluarga GPL dan lisensi kustom yang lebih kompleks idealnya digantikan oleh sesuatu yang lebih baik
Yang penting di sini adalah apa yang diizinkan di Unity Asset Store
Unity tidak berkewajiban mengizinkan semua hal yang dapat ditautkan ke game Unity masuk ke store, dan kontrak penyedia saat itu tampaknya hanya menyatakan bahwa aset LGPL tidak boleh dijual di store
Tidak mengejutkan atau tidak adil jika store menetapkan persyaratan tambahan, dan sebagai distributor konten pihak ketiga ada pula alasan untuk mengurangi risiko
Selain itu, aset di Unity Asset Store tidak harus selalu hanya dipakai di Unity; sebagian aset dapat digunakan di engine lain tergantung lisensinya: https://support.unity.com/hc/en-us/articles/34387186019988-C...
Namun, yang lebih bermasalah adalah jika mereka terus mendistribusikan aset lain yang berisi komponen LGPL tetapi tidak menerapkan aturan LGPL secara konsisten
Pada dasarnya LGPL mengharuskan pengguna dapat memodifikasi library open source, membangunnya ulang, lalu mengintegrasikan kembali library baru itu ke aplikasi yang sudah ada
Developer yang memakai library LGPL harus membuat hal ini “mungkin”, tetapi apa arti nyatanya masih terbuka untuk ditafsirkan
Alasan pengacara dan perusahaan enggan terhadap LGPL juga karena lisensi ini mengandung lebih banyak ruang tafsir dibanding GPL
Saya tidak terlalu yakin apakah asumsi itu berlaku di sini
Para pengacara Unity terus merusak perusahaan, dan itu tidak terlalu mengejutkan
Dulu saya pernah bekerja di sana; saya bangga dengan pencapaian teknisnya, tetapi hampir semua hal lainnya memalukan
Koreksi: ternyata memang terkait, dan sebagian besar pengembang inti VLC bekerja di VideoLabs
Komentar asli saya biarkan tetap ada
Tulisan blog ini menautkan ke “VideoLab Store” di https://videolabs.io, yang menggunakan logo besar yang sangat mirip dengan logo VLC (singkatan dari VideoLAN, bukan VideoLab), tetapi tidak sama
Di beranda bahkan terpampang tulisan “Hire the VLC team”
Setahu saya, VideoLab tidak terkait dengan organisasi nirlaba VideoLAN, dan tampaknya mencoba menyesatkan orang seolah-olah mereka adalah pengembang VLC
Saat ini VideoLabs mempekerjakan sebagian besar pengembang inti VLC, dan merekalah penggerak utama pengembangan VLC
Alasan struktur seperti ini dibuat adalah agar VLC tetap menjadi perangkat lunak bebas selamanya dan organisasi nirlaba tetap bertahan, sekalipun perusahaan Videolabs tidak bertahan selamanya
Ini struktur yang cukup umum dalam proyek open source, dan dalam kasus VideoLAN ada 3–4 perusahaan yang melakukan konsultasi
Pada dasarnya, ini adalah badan usaha berorientasi laba yang mempekerjakan dan menggaji sebagian besar kontributor utama VLC agar mereka bekerja di ekosistem tersebut, serta membiayainya melalui konsultasi dan layanan lain
Mereka juga memberi kontribusi yang cukup besar pada codebase VLC
Sebagai tambahan dari pengalaman bekerja sama dalam kemitraan, “berorientasi laba” terutama hanya bentuk hukumnya; pola pikirnya tidak seperti itu
Selain itu, Videolabs juga tercantum di https://www.videolan.org/videolan/partners.html
Pihak proyek tampaknya sangat mengenal perusahaan itu
Kini, sebagai kontributor utama VLC, mereka mempekerjakan para pengembang historis dan membuat solusi kustom di sekitar ekosistem VLC dan FFmpeg
Menurut halaman perkenalannya, mereka adalah maintainer utama VLC
Mohon koreksi jika saya salah
Sepemahaman saya, penggunaan kode LGPL v2 juga tidak masalah untuk rilis konsol. Di v2 tidak ada klausul anti-Tivoisasi, yang berarti tidak masalah meskipun pengguna akhir tidak dapat menautkan ulang program karena platform yang terkunci
Namun websockify.js dan mungkin dependensi lain berlisensi LGPL v3, dan ini tampaknya berarti komponen tersebut tidak boleh disertakan di platform seperti Nintendo Switch, di mana pengguna akhir tidak dapat mengganti komponen tersebut
Saya penasaran apakah Unity mengecualikan komponen seperti ini dari platform terkunci, atau sekadar melanggar LGPL v3
Klausul ini ditulis cukup sempit untuk mencegah hal yang dilakukan Tivo. Artinya, klausul ini menargetkan kasus ketika seseorang menjual perangkat dengan sistem operasi terkunci yang menyertakan perangkat lunak *GPLv3
Agar berlaku, perangkat lunak harus disampaikan di dalam “produk pengguna”, dan penyampaian itu harus menjadi bagian dari transaksi yang memindahkan hak kepemilikan dan penggunaan produk kepada penerima
“Produk pengguna” biasanya berarti properti pribadi berwujud yang digunakan untuk keperluan pribadi, keluarga, atau rumah tangga, atau sesuatu yang dirancang dan dijual untuk dipasang dalam tempat tinggal
Dalam kasus Nintendo Switch, ini berarti Nintendo tidak boleh memasukkan perangkat lunak *GPLv3 ke dalam Switch itu sendiri atau apa pun yang disertakan saat pembelian
Perangkat lunak tambahan yang diunduh dan dipasang kemudian, atau perangkat lunak yang dijual melalui toko online Nintendo maupun media fisik, tidak tercakup oleh klausul anti-Tivoisasi
Jadi jika hanya melihat klausul itu, tidak ada masalah bagi Unity untuk menyertakan kode *GPLv3 untuk platform terkunci, atau bagi pengembang untuk membuat game dengan Unity untuk platform tersebut
Yang bisa menjadi masalah adalah bagian lain dari *GPLv3. Jika perangkat lunak didistribusikan dan dibeli melalui app store seperti Apple atau Nintendo, pihak yang membuat dan mendistribusikan salinan unduhan adalah Apple atau Nintendo
Tidak masalah jika mereka mendapat izin dari pemegang hak cipta, tetapi untuk memakai toko semacam ini biasanya harus menyetujui syarat yang melarang redistribusi atau rekayasa balik, dan itu melanggar *GPLv3
Jika pemegang hak cipta memiliki hak cipta atas seluruh kode yang digunakan, mereka bisa memberi izin distribusi kepada Apple atau Nintendo
Namun jika aplikasi atau game menyertakan pustaka *GPL pihak ketiga dan pihak ketiga itu tidak memberikan lisensi seperti itu kepada operator toko, aplikasi atau game tersebut tidak dapat didistribusikan di toko tersebut
Ini salinan isi dari tautan yang sudah mati
Apple juga punya masalah yang sama dengan Unity. Jika menjalankan
% bash --versiondi macOS, yang muncul adalah GNU bash 3.2.57; mereka tidak bisa naik melewati 3.2, rilis terakhir GPL v2, jadi mereka memelihara sendiri versi lama ituVersi itu, menurut standar AS, sudah cukup tua untuk merokok, memilih, dan ikut perang, dan Apple sedang berusaha memindahkan pengguna ke zsh
Saya melihat LGPL 2.1, dan bagian “or later” dalam lisensinya agak aneh. Pengguna, atas kebijakannya sendiri, dapat menggantinya ke versi GPL 2.1 atau versi lebih baru mana pun
Namun penulis pustaka harus menyatakan di berkas COPYING apakah itu LGPL, tepatnya LGPL 2.1, atau yang direkomendasikan “LGPL 2.1 or later”
Pernyataan Unity bahwa kode LGPL sudah “deprecated” bisa dipahami selama kode itu tidak mengunci versi LGPL. Sebab penyedia LGPL hulu bisa kapan saja melakukan license rug pull seperti bash
Namun pustaka VLC di sini ditandai sebagai “LGPL 2.1 only”, sehingga secara eksplisit mengklaim bahwa mereka tidak bisa melakukan rug pull kecuali melompat ke GPL3: https://code.videolan.org/explore/projects/starred
Namun VLC tidak menyertakan lisensi dengan benar; COPYING dan COPYING.lib tidak mengatakan apakah versi LGPL dikunci, sementara README.md berbunyi
libVLC, the engine is released under the LGPLv2 (or later) license.: https://code.videolan.org/videolan/vlcJadi kekhawatiran Unity tampaknya ada benarnya. “or later” mencakup v3, dan v3 khususnya tidak cocok dengan teknologi anti-kecurangan atau konsol dan semacamnya
Namun dugaan saya, Unity khawatir membuat pihak ketiga yang memegang paten atas algoritme yang diimplementasikan VLC marah, dan memakai LGPL sebagai alasan untuk menyembunyikan detail kesepakatan tertutup itu
Godot lebih baik
Saat ini Unity adalah pilihan bisnis yang buruk
Kalau harus memilih engine komersial, setidaknya saya akan memilih Epic Games, yang memakai pengacaranya untuk melawan Apple alih-alih mengganggu pengembang open source
Menariknya, sepertinya tidak ada 5.10.4 dalam Perjanjian Penyedia: https://unity.com/legal/provider
Dulu klausul ini pernah ada:
5.10.4 Provider represents and warrants that its Assets shall not contain (a) any software licensed under the GNU General Public License or GNU Library or Lesser General Public License, or any other license with terms that include a requirement to extend such license to any modification or combined work and provide for the distribution of the combined or modified product’s source code upon demand so that Customer content becomes subject to the terms of such license; or (b) any software that is a modification or derivative of any software licensed under the GNU General Public License or Library or Lesser Public License, or any other license with terms similar thereto so that Customer content become subject to the terms of such license.Namun menurut Wayback Machine, itu dihapus antara 3 Desember dan 12 Desember
Saya benar-benar ingin memakai Unity untuk proyek
Saya sebenarnya suka editor dan API-nya, dan untuk orang-orang yang tidak terlalu akrab dengan teknologi, cukup mudah membuat berbagai tool di dalam editor
Tapi Unity membuatnya sulit dipakai di setiap langkah: tindakan yang memusuhi pengguna, 20 paket beta dengan janji “kami benar-benar berjanji akan menstabilkannya tahun depan”, sampai performa yang memburuk parah bahkan pada proyek kosong
Sekarang saya terutama memakai Godot dan itu oke, tapi tidak sepenuhnya sebanding dengan Unity
Unity sekarang memblokir permanen akun hanya karena mengunggah paket yang kemudian mereka tetapkan sebagai deprecated? Sebenarnya mereka sedang mengisap apa?
Apakah bersaing dengan media player buatan mereka sendiri? Atau pembuat VLC pernah pacaran dengan mantan kekasih eksekutif Unity?
Ini tren yang benar-benar bodoh, dan kita semua harus melawannya, tapi belum sampai ke sana
Jika menafsirkan memo Unity, artinya mereka menghapus library VLC dari Unity Store dan memblokir permanen akun Unity Store milik grup VLC karena pelanggaran ketentuan kontrak dengan Unity
Jargon korporat bisa sulit dipahami. Mungkin itu memang tujuan utama jargon korporat
Unity kembali menunjukkan sikap bermusuhan
Memblokir permanen developer karena alasan seperti ini benar-benar gila
Kejadian ini berlangsung pada Agustus 2023, sebelum kisruh biaya per instalasi
Tidak mengejutkan. Unity benar-benar perusahaan yang mengerikan