- Flatpak saat ini populer di kalangan pengembang dan pengguna, tetapi masalah stagnasi pengembangan proyek itu sendiri mulai mencuat
- Karena hengkangnya pengembang inti dan bottleneck, penerapan fitur baru serta code review mengalami penundaan
- Berbagai fitur penguatan seperti dukungan image OCI, perincian izin, dan kontrol akses audio telah diusulkan, tetapi implementasi nyatanya berjalan lambat
- Untuk perkembangan jangka panjang proyek, dibahas penerapan standar teknologi container (OCI) dan opsi reimplementasi berbasis Rust
- Penyelesaian tantangan utama seperti peningkatan portal, dukungan driver, dan sandboxing jaringan menjadi kunci pertumbuhan Flatpak
Gambaran Umum dan Kondisi Proyek Flatpak
- Flatpak dimulai dari proyek serupa sejak 2007, pertama dirilis sebagai XDG-App pada 2015, lalu berganti nama menjadi Flatpak pada 2016
- Flatpak menyediakan alat command line, build tool, dan komponen runtime, serta memiliki karakteristik isolasi aplikasi (sandboxing) menggunakan cgroups, namespaces, bind mount, seccomp, Bubblewrap, dan lain-lain
- OSTree digunakan sebagai metode distribusi utama, dan belakangan dukungan image OCI juga ditambahkan untuk digunakan di Fedora dan lainnya
- Pertumbuhan app store Flathub dan adopsi distro tergolong sukses, tetapi di dalam proyek sendiri terjadi perlambatan pengembangan aktif
Kebuntuan Pengembangan dan Penyebab Utama
- Aktivitas pemeliharaan dan patch keamanan masih ada, tetapi pengembangan fitur baru berskala besar serta code review mengalami stagnasi berkepanjangan
- Karena hengkangnya pengembang utama (seperti Larsson), jumlah reviewer menjadi kurang, sehingga masuknya kontributor baru atau perubahan besar menjadi sulit
- Bahkan fitur preinstall Flatpak yang dikontribusikan oleh Red Hat dan lainnya berulang kali memerlukan waktu berbulan-bulan untuk integrasi penuh karena review tertunda dan penanggung jawab keluar
OSTree dan Dukungan Image OCI
- OSTree berhasil diterapkan di Flatpak, tetapi karena masalah alat yang nonstandar/terbatas, tidak banyak perkembangan aktif selain pemeliharaan
- OCI memiliki ekosistem alat yang luas untuk image container, sehingga dari sudut pandang tim pengembang Flatpak, adopsinya diharapkan dapat mengurangi beban pemeliharaan dan upaya yang tumpang tindih
- Dukungan format kompresi efisien seperti zstd:chunked juga telah diusulkan lewat PR baru, tetapi tetap berada dalam status tertunda/belum digabungkan
Manajemen Izin dan Perincian Sandbox
- Flatpak berfokus pada pembatasan akses sistem melalui sandboxing, dan pada Flatpak versi terbaru sudah didukung perincian izin (misalnya
--device=input)
- Karena versi Flatpak berbeda di tiap distro Linux, muncul masalah fitur izin baru tidak dapat diterapkan secara luas serta masalah kompatibilitas versi
- Untuk izin audio, keterbatasan dukungan PulseAudio membuat pemisahan pemutaran dan perekaman sulit dilakukan, sehingga muncul kebutuhan perbaikan melalui PipeWire dan sejenisnya
- Dukungan nested sandboxing yang masih kurang membuat aplikasi seperti web browser tidak dapat memanfaatkan sandbox internal secara terpisah
D-Bus dan Sandboxing Jaringan
- Flatpak tidak mengakses D-Bus secara langsung, melainkan menggunakan xdg-dbus-proxy untuk komunikasi yang difilter
- Wick menunjukkan niat untuk memindahkan kebijakan filtering ke broker D-Bus agar penerapan kebijakan dinamis dan kontrol akses berbasis cgroup dapat diwujudkan
- Karena implementasi network namespace masih belum memadai, ada kemungkinan komunikasi tak disengaja antar aplikasi Flatpak saat port
localhost terekspos (contoh nyata: AusweisApp)
- Driver NVIDIA disediakan terpisah untuk setiap runtime, yang menyebabkan trafik jaringan berlebihan dan sulitnya pembaruan. Dengan merujuk model Valve, sedang dijajaki pendekatan seperti berbagi dengan host dan kompilasi statis
Pemanfaatan Portal dan Kebutuhan Peningkatan
- Portal adalah API akses sumber daya eksternal berbasis D-Bus, yang menangani beragam peran seperti file, cetak, URL, dan lainnya
- Portal seperti Documents efektif pada tingkat file per file, tetapi untuk aplikasi dengan kegunaan tinggi seperti GIMP dan Blender, model izin yang terlalu terperinci menjadi kendala
- Bersamaan dengan usulan API baru seperti autofill kata sandi, kunci FIDO, dan sintesis suara, dibahas pula ide untuk mempermudah tingkat kesulitan pengembangan serta reimplementasi Rust
Masa Depan Flatpak (Flatpak-next)
- Dengan asumsi Flatpak suatu saat tidak lagi dikembangkan, dibahas dalam perspektif jangka panjang peralihan besar ke ekosistem OCI (image, registry, alat, kebijakan, dan pemanfaatan yang luas)
- Melalui reimplementasi berbasis Rust dan penyatuan dengan ekosistem container, diharapkan ada keunggulan dari sisi beban pengelolaan, pemeliharaan, dan skalabilitas
Ringkasan Tanya Jawab
- Menanggapi pertanyaan tentang penanganan aplikasi Flatpak yang sudah ada saat beralih ke OCI, dijawab bahwa hal itu tidak akan menjadi masalah besar berkat otomatisasi build di Flathub
- Terkait kurangnya metadata di registry OCI, standar untuk data non-image sedang disiapkan, tetapi untuk penerapan nyata tetap diperlukan pengembangan dan integrasi
- Mengenai rencana dukungan langsung untuk PipeWire, diskusi teknis sedang berlangsung, dan arahnya adalah integrasi berbasis kebijakan PipeWire
Kesimpulan
- Flatpak telah memantapkan diri sebagai platform standar untuk distribusi dan sandboxing, tetapi masih memiliki berbagai tugas perbaikan seperti stagnasi review dan pengembangan baru, masalah izin/jaringan/driver, serta transisi ke standar masa depan
- Teknologi container berbasis OCI dan pemanfaatan Rust berpotensi muncul sebagai pendorong baru bagi perkembangan Flatpak
- Poin utama dapat diringkas sebagai menambah reviewer, standardisasi, perluasan ekosistem, dan peningkatan pengalaman pengguna
2 komentar
Menurut saya, lebih baik bukan memblokir izin akses sepenuhnya, melainkan menampilkan dengan jelas direktori mana yang diakses.
Android cukup baik dalam hal itu, tetapi di sana izin digabungkan terlalu besar sehingga kita juga harus mengizinkan tingkat akses yang sebenarnya tidak diperlukan...
Opini Hacker News
--device=input, serta tidak adanya pengaturan izin yang lebih rinci seperti hanya membuka speaker tetapi memblokir mikrofonflatpak-spawndanpolkit-exec, tetapi jika demikian perlindungan sandbox pada dasarnya hampir ditinggalkan