- Flatpak şu anda geliştiriciler ve kullanıcılar arasında popülerlik kazanıyor, ancak projenin kendisinde gelişimin duraksaması sorunu öne çıkıyor
- Çekirdek geliştiricilerin ayrılması ve darboğazlar nedeniyle yeni özelliklerin eklenmesi ve kod incelemeleri gecikiyor
- OCI image desteği, izinlerin daha ayrıntılı hale getirilmesi ve ses erişim kontrolü gibi çeşitli güçlendirme özellikleri önerildi, ancak bunların fiilen hayata geçirilmesi yavaş ilerliyor
- Projenin uzun vadeli gelişimi için kapsayıcı teknoloji standardı (OCI) benimsenmesi ve Rust tabanlı yeniden uygulama seçenekleri tartışılıyor
- Portal iyileştirmeleri, sürücü desteği ve ağ sandboxing'i gibi temel zorlukların çözümü, Flatpak'in büyümesi için kritik önem taşıyor
Flatpak projesine genel bakış ve mevcut durum
- Flatpak, 2007'den itibaren benzer projelerle başladı; 2015'te ilk kez XDG-App olarak yayımlandı ve 2016'da adı Flatpak olarak değiştirildi
- Komut satırı aracı, build araçları ve runtime bileşenleri sunar; cgroups, namespaces, bind mount, seccomp, Bubblewrap gibi teknolojilerle uygulama yalıtımı (sandboxing) sağlar
- Temel dağıtım yöntemi olarak OSTree kullanır; son dönemde OCI image desteği de eklenerek Fedora gibi ortamlarda kullanılmaktadır
- Flathub uygulama mağazasının büyümesi ve dağıtımlar tarafından benimsenmesi açısından başarılı olsa da, proje içinde aktif geliştirmede yavaşlama yaşanıyor
Geliştirme tıkanıklığı ve başlıca nedenler
- Bakım ve güvenlik yamaları düzeyinde faaliyet sürse de, büyük yeni özelliklerin geliştirilmesi ve kod incelemeleri uzun süredir durgun durumda
- Önemli geliştiricilerin ayrılması (Larsson vb.) nedeniyle inceleme yapacak kişi sayısı azaldı; bu da yeni katkıcıların katılımını ve büyük değişiklikleri zorlaştıran bir ortam yarattı
- Red Hat gibi kurumların katkı verdiği Flatpak preinstall özelliği de inceleme gecikmeleri ve sorumluların ayrılması nedeniyle entegrasyonun tamamlanmasına kadar aylar süren tekrar eden sorunlar yaşadı
OSTree ve OCI image desteği
- OSTree Flatpak'te başarılı şekilde kullanıldı, ancak standart dışı/sınırlı araçlar sorunu nedeniyle bakım dışında aktif bir gelişim göstermiyor
- OCI, kapsayıcı image'ları için geniş bir araç ekosistemine sahip olduğundan, Flatpak geliştirme ekibi açısından benimsenmesi bakım yükünü ve mükerrer çabayı azaltabilir
- zstd:chunked gibi verimli sıkıştırma biçimlerine destek de yeni PR'larla önerildi, ancak gecikmiş ve birleştirilmemiş durumda kalmaya devam ediyor
İzin yönetimi ve sandbox'ın daha ayrıntılı hale getirilmesi
- Flatpak, sandboxing yoluyla sistem erişimini kısıtlamaya odaklanır; güncel Flatpak sürümlerinde izinlerin ayrıntılılaştırılması (ör.
--device=input) desteklenmektedir
- Linux dağıtımları arasında Flatpak sürümleri farklı olduğundan, yeni izin özelliklerinin yaygın olarak kullanılamaması ve sürüm uyumluluğu sorunları ortaya çıkıyor
- Ses izinleri konusunda PulseAudio'nun sınırlamaları nedeniyle oynatma ve kayıt ayrımını yapmak zor; bunun için PipeWire gibi çözümlerle iyileştirme gereği dile getiriliyor
- İç içe sandboxing desteğinin yetersizliği nedeniyle web tarayıcıları gibi uygulamalar içeride ayrı bir sandbox kullanamıyor
D-Bus ve ağ sandboxing'i
- Flatpak, D-Bus'a doğrudan erişmek yerine xdg-dbus-proxy üzerinden filtrelenmiş iletişim modelini kullanır
- Wick, filtreleme politikasını D-Bus broker'a taşıyarak politikanın dinamik uygulanması ve cgroup tabanlı erişim kontrolünü hayata geçirme niyeti gösteriyor
- Ağ namespace'lerinin eksik uygulanması nedeniyle localhost portlarının açığa çıkması durumunda Flatpak uygulamaları arasında istenmeyen iletişim olasılığı bulunuyor (gerçek örnek: AusweisApp)
- NVIDIA sürücüleri her runtime için ayrı sunulduğundan aşırı ağ trafiğine ve güncelleme zorluklarına yol açıyor. Valve'ın modeli örnek alınarak host ile paylaşım ve statik derleme gibi seçenekler değerlendiriliyor
Portal kullanımı ve iyileştirme ihtiyacı
- Portal, D-Bus tabanlı harici kaynak erişim API'si olarak dosya, yazdırma, URL ve benzeri birçok rol üstlenir
- Documents portal gibi bileşenler dosya bazında etkili olsa da, GIMP ve Blender gibi kullanım yoğunluğu yüksek uygulamalarda aşırı ayrıntılı izin modeli sınırlayıcı hale geliyor
- Parola otomatik doldurma, FIDO anahtarları ve konuşma sentezi gibi yeni API'ler önerilirken, geliştirme zorluğunu azaltma ve Rust ile yeniden uygulama fikirleri de tartışılıyor
Flatpak'in geleceği (Flatpak-next)
- Gelecekte Flatpak'in artık geliştirilmediği bir senaryo varsayılarak, OCI ekosistemine büyük ölçekli geçiş (image, registry, araçlar, politikalar vb. geniş kullanım) uzun vadeli perspektifte tartışılıyor
- Rust tabanlı yeniden uygulama gibi kapsayıcı ekosisteminde birleşme adımlarının yönetim yükü, bakım ve genişletilebilirlik açısından avantaj sağlayabileceği düşünülüyor
Soru-cevap özeti
- OCI'ye geçişte mevcut Flatpak uygulamalarının nasıl ele alınacağı sorusuna, Flathub'un build otomasyonu sayesinde bunun büyük bir sorun olmayacağı yanıtı verildi
- OCI registry'lerinde metadata eksikliği konusunda, image dışı veri için standartlar hazırlanmakta olduğu, ancak gerçek hayata geçirilmesi için geliştirme ve entegrasyon gerektiği belirtildi
- Doğrudan PipeWire desteği planları hakkında, teknik tartışmaların sürdüğü ve yönelimin PipeWire politika tabanlı entegrasyona doğru olduğu ifade edildi
Sonuç
- Flatpak, dağıtım ve sandboxing için standart bir platform haline gelmiş olsa da, inceleme ve yeni geliştirmelerde durgunluk, izin/ağ/sürücü sorunları ve gelecekteki standart geçişi gibi çeşitli iyileştirme alanlarıyla karşı karşıya
- OCI tabanlı kapsayıcı teknolojileri ve Rust kullanımı, Flatpak'in gelişimi için yeni bir itici güç olma potansiyeli taşıyor
- Başlıca noktalar inceleyici sayısının artırılması, standardizasyon, ekosistemin genişletilmesi ve kullanıcı deneyiminin iyileştirilmesi olarak özetlenebilir
2 yorum
Erişimi tamamen engellemek yerine, hangi dizine erişildiğini açıkça gösteren bir yaklaşımın daha iyi olduğunu düşünüyorum.
Android bu açıdan fena değil, ancak burada izinler fazla geniş gruplandırıldığı için gerekli olmayan düzeydeki izinleri de birlikte vermek gerekiyor...
Hacker News görüşü
--device=inputdesteğinin olmaması, yalnızca hoparlörü açıp mikrofonu kapatma gibi ayrıntılı izin ayarlarının yapılamaması gibi sorunları bizzat yaşadığını aktarıyor./tmpdizinine erişememesi nedeniyle ekleri kaydetmenin ya da başka uygulamalarda açmanın aşırı derecede zahmetli hale geldiği sandbox ortamından şikâyet ediliyor. Bilgisayarın sahibinin geliştirici değil kullanıcı olması gerektiği, bu kadar aşırı güvenliğin üretkenliği düşürdüğü savunuluyor ve durum Useless Machine ile kıyaslanıyor.git config, yazı tipi klasörleri vb.) için tüm örneklerin aynı erişim hakkına sahip olmasını sağlayan seçenekli hibrit bir yaklaşımın daha pratik olacağı öneriliyor.flatpak-spawn,polkit-execgibi dolaylı yollarla bunun aşılabildiği, ancak bu durumda sandbox korumasından büyük ölçüde vazgeçilmiş olduğu belirtiliyor.