- Flatpak actualmente goza de popularidad entre desarrolladores y usuarios, pero han surgido problemas de estancamiento en el desarrollo del proyecto en sí
- La salida de desarrolladores clave y los cuellos de botella han provocado retrasos en la incorporación de nuevas funciones y en la revisión de código
- Se han propuesto diversas mejoras como soporte para imágenes OCI, granularidad de permisos y control de acceso al audio, pero su integración real ha avanzado con lentitud
- Para el desarrollo a largo plazo del proyecto, se debate la adopción del estándar de tecnología de contenedores (OCI) y una reimplementación basada en Rust
- Resolver desafíos clave como la mejora de los portales, el soporte de drivers y el sandboxing de red será decisivo para el crecimiento de Flatpak
Resumen y estado actual del proyecto Flatpak
- Flatpak comenzó en 2007 como un proyecto similar, tuvo su primer lanzamiento en 2015 como XDG-App y en 2016 cambió su nombre a Flatpak
- Proporciona herramientas de línea de comandos, herramientas de compilación y componentes de runtime, y presenta características de aislamiento de aplicaciones (sandboxing) mediante cgroups, namespaces, bind mount, seccomp y Bubblewrap
- Usa OSTree como mecanismo de distribución predeterminado y, más recientemente, también incorporó soporte para imágenes OCI, utilizado en Fedora y otros entornos
- Aunque ha tenido éxito con el crecimiento de la tienda de apps Flathub y la adopción por parte de distribuciones, internamente el proyecto atraviesa una desaceleración del desarrollo activo
Estancamiento del desarrollo y causas principales
- Existe actividad de mantenimiento y parches de seguridad, pero el desarrollo de nuevas funciones de gran escala y la revisión de código han quedado estancados durante largos periodos
- La salida de desarrolladores principales (como Larsson) ha dejado pocos revisores, creando un entorno donde es difícil incorporar nuevos contribuidores o cambios grandes
- Incluso funciones como la de preinstalación de Flatpak (Preinstall), impulsada por contribuciones de Red Hat y otros, han sufrido repetidamente demoras de meses hasta su integración final debido a revisiones lentas y a la salida de responsables
OSTree y soporte para imágenes OCI
- OSTree se aplicó con éxito en Flatpak, pero por problemas de herramientas no estándar o limitadas, no ha tenido un desarrollo activo más allá del mantenimiento
- OCI cuenta con un amplio ecosistema de herramientas para imágenes de contenedores, por lo que el equipo de Flatpak espera que su adopción reduzca la carga de mantenimiento y el esfuerzo duplicado
- También se han propuesto en nuevos PR compatibilidades como el formato de compresión eficiente zstd:chunked, pero siguen en estado de retraso o sin integración
Gestión de permisos y granularidad del sandbox
- Flatpak se centra en restringir el acceso al sistema mediante sandboxing, y las versiones recientes ya admiten permisos más granulares (por ejemplo,
--device=input)
- Como las distribuciones Linux incluyen distintas versiones de Flatpak, surgen problemas de compatibilidad de versiones y de adopción limitada de nuevas funciones de permisos
- En el caso de los permisos de audio, las limitaciones de PulseAudio dificultan separar reproducción y grabación, por lo que se plantea la necesidad de mejorar esto con PipeWire y tecnologías similares
- La compatibilidad insuficiente con sandboxing anidado impide que aplicaciones como los navegadores web usen internamente sandboxes adicionales
D-Bus y sandboxing de red
- Flatpak no accede directamente a D-Bus, sino que usa xdg-dbus-proxy para un modelo de comunicación filtrada
- Wick ha expresado la intención de mover las políticas de filtrado al broker de D-Bus para permitir la aplicación dinámica de políticas y un control de acceso basado en cgroups
- Debido a la implementación incompleta de network namespaces, existe la posibilidad de comunicación no intencional entre apps Flatpak cuando se exponen puertos de
localhost (caso real: AusweisApp)
- Los drivers de NVIDIA se distribuyen por separado para cada runtime, lo que genera tráfico de red excesivo y dificultades de actualización. Tomando como referencia el modelo de Valve, se exploran alternativas como compartirlos desde el host o usar compilación estática
Uso de portales y necesidad de mejoras
- Los portales son APIs basadas en D-Bus para acceder a recursos externos, y cubren funciones como archivos, impresión y URLs
- Portales como Documents funcionan bien a nivel de archivo individual, pero en apps de uso intensivo como GIMP o Blender, un modelo de permisos demasiado granular se vuelve una limitación
- Junto con propuestas de nuevas APIs como autocompletado de contraseñas, llaves FIDO y síntesis de voz, también se discuten ideas para reducir la dificultad de desarrollo y una reimplementación en Rust
El futuro de Flatpak (Flatpak-next)
- Partiendo del supuesto de un escenario donde Flatpak ya no continúe desarrollándose, se discute a largo plazo una gran transición hacia el ecosistema OCI (imágenes, registros, herramientas, políticas y más)
- Se espera que una reimplementación en Rust y la unificación con el ecosistema de contenedores ofrezcan ventajas en carga de gestión, mantenimiento y escalabilidad
Resumen de preguntas y respuestas
- Ante la pregunta de cómo se manejarían las apps Flatpak existentes en una transición a OCI, se respondió que no habría grandes problemas gracias a la automatización de compilaciones en Flathub
- Sobre el problema de la falta de metadatos en los registros OCI, se indicó que ya se están definiendo estándares para datos no relacionados con imágenes, aunque aún hace falta desarrollo e integración para aplicarlos realmente
- Respecto a los planes de soporte directo para PipeWire, se explicó que las discusiones técnicas siguen en curso y que la dirección apunta a una integración basada en políticas de PipeWire
Conclusión
- Flatpak ya se consolidó como una plataforma estándar de distribución y sandboxing, pero aún enfrenta múltiples retos de mejora, como el estancamiento en revisiones y nuevo desarrollo, problemas de permisos/red/drivers y la transición a estándares futuros
- El uso de tecnología de contenedores basada en OCI y de Rust podría convertirse en un nuevo motor para la evolución de Flatpak
- Los puntos principales pueden resumirse en asegurar revisores, estandarización, expansión del ecosistema y mejora de la experiencia de usuario
2 comentarios
Creo que sería mejor no bloquear por completo los permisos de acceso, sino mostrar claramente a qué directorio se está accediendo.
Android está bastante bien en ese aspecto, pero ahí agrupan demasiado los permisos y terminas teniendo que permitir también permisos de un nivel que no necesitas...
Comentarios en Hacker News
--device=inputy la imposibilidad actual de configurar permisos granulares, como permitir solo los parlantes y bloquear el micrófono/tmp, lo que vuelve muy incómodo guardar adjuntos o abrirlos desde otras apps. Afirma que el dueño de la computadora debe ser el usuario, no el desarrollador, y piensa que este exceso de seguridad reduce la productividad. Lo compara con una Useless Machinegit config, carpeta de fuentes, etc.) sería práctico un enfoque híbrido con una opción para que todas las instancias tengan el mismo permiso de accesoflatpak-spawnopolkit-exec, pero en ese caso prácticamente se renuncia a la protección del sandbox