- Flatpak इस समय डेवलपर्स और उपयोगकर्ताओं के बीच लोकप्रिय हो रहा है, लेकिन प्रोजेक्ट के भीतर विकास ठहराव की समस्या उभर रही है
- मुख्य डेवलपर्स के हटने और bottleneck के कारण नई सुविधाओं को शामिल करने और code review में देरी हो रही है
- OCI image support, permissions का सूक्ष्म विभाजन, और audio access control जैसी कई सुदृढ़ीकरण सुविधाएँ प्रस्तावित हुईं, लेकिन उनका वास्तविक समावेशन धीमा रहा
- प्रोजेक्ट के दीर्घकालिक विकास के लिए container technology standard (OCI) अपनाने और Rust-आधारित पुनर्प्रयोग पर चर्चा हो रही है
- portal improvements, driver support, network sandboxing जैसी प्रमुख चुनौतियों का समाधान Flatpak की वृद्धि के लिए निर्णायक है
Flatpak प्रोजेक्ट का अवलोकन और वर्तमान स्थिति
- Flatpak की शुरुआत 2007 से मिलते-जुलते प्रोजेक्ट्स के रूप में हुई, 2015 में XDG-App के रूप में पहला रिलीज़ आया, और 2016 में इसका नाम बदलकर Flatpak रखा गया
- यह command-line tools, build tools, runtime components प्रदान करता है, और cgroups, namespaces, bind mount, seccomp, Bubblewrap आदि के जरिए application isolation (sandboxing) की संरचना देता है
- OSTree इसकी मूल डिलीवरी विधि है, और हाल के समय में OCI image support भी जोड़ा गया है, जिसका उपयोग Fedora आदि में हो रहा है
- Flathub app store की वृद्धि और distributions द्वारा अपनाए जाने जैसी सफलताओं के बावजूद, प्रोजेक्ट के भीतर सक्रिय विकास में मंदी देखी जा रही है
विकास ठहराव और उसके मुख्य कारण
- maintenance और security patch स्तर की गतिविधियाँ जारी हैं, लेकिन बड़े नए features का विकास और code review लंबे समय से ठहरे हुए हैं
- प्रमुख डेवलपर्स के हटने (जैसे Larsson) से reviewers की कमी हो गई है, जिससे नए contributors का आना या बड़े बदलाव करना कठिन हो गया है
- Red Hat आदि द्वारा योगदान की जा रही Flatpak preinstall सुविधा जैसी चीज़ों में भी review delay और ज़िम्मेदार लोगों के हटने के कारण integration पूरा होने में बार-बार कई महीने लगे हैं
OSTree और OCI image support
- OSTree को Flatpak में सफलतापूर्वक लागू किया गया, लेकिन गैर-मानक और सीमित tooling की समस्या के कारण maintenance से आगे इसमें सक्रिय प्रगति नहीं हो रही
- OCI के लिए container images का व्यापक tooling ecosystem उपलब्ध है, इसलिए Flatpak डेवलपमेंट टीम के नज़रिए से इसे अपनाने पर maintenance burden और duplicate effort कम होने की उम्मीद है
- zstd:chunked जैसे efficient compression formats के समर्थन के लिए नए PR भी प्रस्तावित हुए, लेकिन वे अब भी विलंबित और unmerged स्थिति में हैं
permission management और sandbox का सूक्ष्म विभाजन
- Flatpak sandboxing के ज़रिए system access सीमित करने पर केंद्रित है, और नए Flatpak versions में permissions का सूक्ष्म विभाजन (जैसे
--device=input) समर्थित है
- अलग-अलग Linux distributions में Flatpak versions भिन्न होने से नई permission सुविधाओं के व्यापक रूप से लागू न हो पाने और version compatibility की समस्याएँ पैदा होती हैं
- audio permissions के मामले में PulseAudio की सीमाओं के कारण playback और recording को अलग-अलग नियंत्रित करना कठिन है, इसलिए PipeWire आदि के माध्यम से सुधार की ज़रूरत बताई गई है
- nested sandboxing का पर्याप्त समर्थन न होने से web browser जैसे apps अपने भीतर अलग sandbox का उपयोग नहीं कर पाते
D-Bus और network sandboxing
- Flatpak सीधे D-Bus तक पहुँचने के बजाय xdg-dbus-proxy के माध्यम से filtered communication का उपयोग करता है
- Wick ने filtering policy को D-Bus broker में स्थानांतरित कर dynamic policy application और cgroup-आधारित access control लागू करने की इच्छा जताई है
- network namespace implementation के अधूरे होने के कारण localhost port exposure की स्थिति में Flatpak apps के बीच अनचाहा संचार संभव है (वास्तविक उदाहरण: AusweisApp)
- NVIDIA drivers हर runtime के लिए अलग से दिए जाते हैं, जिससे अत्यधिक network traffic और updates में कठिनाई होती है। Valve के मॉडल को देखते हुए host sharing और static compilation जैसे विकल्पों पर विचार हो रहा है
Portal का उपयोग और सुधार की आवश्यकता
- Portal D-Bus आधारित external resource access API है, जो file, print, URL आदि के लिए विभिन्न भूमिकाएँ निभाता है
- Documents portal जैसी व्यवस्थाएँ file-level access के लिए प्रभावी हैं, लेकिन GIMP और Blender जैसे high-usability apps में अत्यधिक सूक्ष्म permission model एक सीमा बन जाता है
- password autofill, FIDO keys, text-to-speech जैसी नई APIs के प्रस्तावों के साथ-साथ, development complexity कम करने और Rust पुनर्प्रयोग के विचार पर भी चर्चा हुई
Flatpak का भविष्य (Flatpak-next)
- भविष्य में यदि Flatpak का विकास रुक जाए, तो OCI ecosystem की ओर बड़े पैमाने पर बदलाव (images, registries, tools, policies आदि के व्यापक उपयोग सहित) पर दीर्घकालिक दृष्टि से चर्चा हो रही है
- Rust-आधारित पुनर्प्रयोग जैसे कदमों के जरिए container ecosystem का एकीकरण होने पर management burden, maintenance, और scalability के लिहाज़ से लाभ की उम्मीद है
प्रश्नोत्तर सारांश
- OCI migration के दौरान मौजूदा Flatpak apps के प्रबंधन पर पूछे गए प्रश्न के जवाब में कहा गया कि Flathub की build automation आदि के कारण बड़ी समस्या नहीं होगी
- OCI registries में metadata की कमी को लेकर बताया गया कि non-image data standards बन रहे हैं, लेकिन वास्तविक उपयोग के लिए development और integration अभी भी ज़रूरी हैं
- PipeWire direct support की योजना पर कहा गया कि technical discussions जारी हैं, और दिशा PipeWire policy-आधारित integration की ओर है
निष्कर्ष
- Flatpak ने distribution और sandboxing के लिए मानक platform के रूप में अपनी जगह बना ली है, लेकिन review और नए development में ठहराव, permission/network/driver समस्याएँ, और भविष्य के standards migration जैसी कई चुनौतियाँ अब भी मौजूद हैं
- OCI-आधारित container technology और Rust का उपयोग Flatpak के विकास के लिए नई ऊर्जा बन सकता है
- मुख्य बिंदुओं को reviewer secure karna, standardization, ecosystem expansion, और user experience improvement के रूप में संक्षेपित किया जा सकता है
2 टिप्पणियां
मुझे लगता है कि एक्सेस परमिशन को पूरी तरह ब्लॉक करने के बजाय यह साफ़-साफ़ दिखाने का तरीका बेहतर है कि किस डायरेक्टरी तक एक्सेस किया जा रहा है.
इस मामले में Android ठीक है, लेकिन वहाँ परमिशन को बहुत बड़े समूहों में बाँध दिया जाता है, इसलिए ज़रूरत न होने वाले स्तर की परमिशन भी साथ में देनी पड़ती है...
Hacker News की राय
--device=inputके unsupported होने, और सिर्फ speaker खोलकर microphone block करने जैसे granular permission settings न कर पाने की समस्या का खुद अनुभव किया है/tmpdirectory तक पहुँच न होना, जिससे attachments save करना या दूसरे apps में खोलना बेहद असुविधाजनक हो जाता है — ऐसे sandboxed environment से असंतोष है। तर्क यह है कि computer का मालिक developer नहीं बल्कि user होना चाहिए। ऐसी अति-सुरक्षा productivity घटाती है, और इसकी तुलना Useless Machine से की गईflatpak-spawn,polkit-execजैसे workaround संभव हैं, लेकिन ऐसा करने पर sandbox protection लगभग छोड़नी पड़ती है