snap

Si bien más allá del ecosistema de Ubuntu el formato de paquetes Snap no ha atraído demasiado la atención, limitándose a ser mantenido en otras distribuciones por la propia Canonical y no con el nivel de soporte deseado, el enfoque de servicio cerrado con el que la compañía lo ha desarrollado tiene sus ventajas, pero también sus inconvenientes, y estos últimos comienzan a notarse. O al menos esa es la sensación que deja la postura al respecto de dos de las grandes distribuciones actuales, Fedora y Linux Mint.

Linux Mint y Snap

Comenzando por Linux Mint, recordaréis que cuando recogimos la noticia de que la distribución abandona los 32-bit, mencionamos que otro de los temas importantes sobre los que hablaba Clement Lefebvre en el boletín mensual era Snap. El líder de Linux Mint, distribución que apoya Flatpak como solución adicional a los repositorios tradicionales, reflexionaba sobre los potenciales riesgos que supondría que Snap se implante como la tienda de aplicaciones más popular de Linux.

«Cuando se anunció Snap, se suponía que era una solución, no un problema. Se suponía que permitiría ejecutar aplicaciones más nuevas sobre bibliotecas más antiguas y permitir que terceros publiquen su software fácilmente en múltiples distribuciones, como Flatpak y AppImage. Lo que no queríamos era que Canonical controlara la distribución de software entre distribuciones y terceros, para evitar la distribución directa de los editores, para que el software funcionara mejor en Ubuntu que en cualquier otro lugar y para que su tienda fuera un requisito«, arranca Lefebvre.

Se refiere a la relevancia que ha ganado Snap entre las desarrolladoras comerciales, un hecho del que dimos cuenta en su momento con el desacuerdo de algunas opiniones, pero que se está demostrando muy real. Es uno de los miedos de Lefebvre: que la Snap Store se convierta en un «estándar» para distribuir aplicaciones de terceros en Linux y que Canonical se aproveche de ello como no debiera. «¿Continuará la Snap Store permitiendo la descarga de archivos .snap en el futuro? ¿Continuará funcionando Snap Store sin una cuenta de Ubuntu One?«, se pregunta, con la inquietud de quien no quiere un Google Play para GNU/Linux.

«Cuando se comienzan a reemplazar paquetes sin una buena razón, cuando comienza a dañar nuestra interacción con los proyectos de software y proveedores de software y reduce nuestra elección, se convierte en una amenaza«, prosigue Lefebvre en alusión a la inexplicable decisión de Canonical de ofrecer Chromium solo como Snap, aunque ya veremos si llega a suceder (más detalles un poco más abajo).

«A un usuario de Fedora no le interesa Ubuntu o Ubuntu One cuando descarga software. Su navegador no debería tener marcadores que apunten a otra distribución. Su software no debe ser diseñado y probado teniendo en cuenta otro entorno de escritorio y distribución, y cuando mira capturas de pantalla no debe ver Ubuntu en todas partes. Es incorrecto que Spotify [una de las desarrolladores comerciales que usa Snap] haga eso y es incorrecto para cualquier proveedor pensar que dicha tienda puede ser la única tienda para todos los usuarios de Linux«, explica. Y puede que tenga parte de razón, pero la realidad es distinta.

La realidad es que si las desarrolladoras apuestan por Snap, porque a fin de cuentas Ubuntu es la distribución más utilizada en el escritorio, no hay nada que otras distribuciones puedan hacer para impedirlo -que de hecho ya lo hacen, ignorando a Snap- porque las desarrolladoras son soberanas. Una de las novedades de Linux Mint 19 fue la integración mejorada por defecto de soporte para Flatpak con Flathub, cuando perfectamente podrían haber incluido a Snap y dar al usuario la opción de elegir cuál quiere usar. Pero no lo hicieron. Por no recordar que aquí el que no corre, vuela, aunque sean casos distintos.

Así, Lefebvre continúa hablando de Flatpak y de la libertad que tiene este en comparación con Snap; de cómo Flathub no supone ninguna amenaza porque ante cualquier desacuerdo con la dirección del sitio montar una tienda alternativa sería sencillo -por lo menos sobre el papel, luego habría que verlo; o de cómo en comparación con los formatos de paquetes tradicionales, Snap impone muchas restricciones e inconvenientes.

Concluye Lefebvre contando que ha sido invitado por los desarrolladores de Snap a participar en algo, no está claro en qué; pero no parece muy interesado en el tema, aunque espera que «algún día podamos integrar Snap en Linux Mint«. Y vuelve a mencionar a Chromium, porque la verdad es que lo que tiene previsto Canonical con el paquete es de vergüenza: incluso instalándolo vía terminal con APT o a través de clientes como Synaptic, se instalaría el paquete Snap. Sin embargo, está por ver si se cumple o no, y en Mint siempre pueden mantener ellos el paquete.

Fedora y Snap

Unos días más tarde, era Fedora la que se plantaba con Snap. En concreto ha sido Richard Hughes, ingeniero de Red Hat y un desarrollador destacado dentro de la escena de GNU/Linux como parte de la comunidad de GNOME. Hughes es nada más y nada menos que la persona que creó el Linux Vendor Firmware Service, PackageKit y GNOME Software, por lo que se trata de una voz autorizada a todos los niveles. Pues bien, dice Hughes que a partir de Fedora 31 no habrá soporte de Snap que valga en GNOME Software.

Hasta ahora los usuarios de Fedora podían instalar el soporte de Snap para GNOME Software a mano, pero se acabó lo que se daba. Quien quiera usar Snap en Fedora 31 y siguientes versiones tendrá que hacerlo por consola. La razón es, según Hughes, que «el complemento existente no está muy probado y no quiero ser el responsable cuando se rompa. En este momento, la activación del complemento hace que la UX general de GNOME Software se degrade, ya que todas las consultas de búsqueda se enrutan a través de snapd en lugar de ser manejadas en el mismo proceso. El diseño de snapd también significa que los paquetes solo se actualizan con GNOME Software, por lo que es muy difícil hacer algo útil en la interfaz de usuario o hacer que cosas como las mediciones de datos funcionen correctamente«, explica.

No obstante, el mensaje de Hughes inicia un hilo de discusión en el que participa uno de los mantenedores de Snap en Fedora con puntos de vista diferentes que podrían derivar en un cambio de enfoque, aunque solo el tiempo lo dirá. Además, al igual que con Lefebvre, la posición de Hughes no es un no rotundo y si alguien soluciona los problemas no tendría inconveniente en volver a habilitar el soporte de Snap, pero nunca de manera predeterminada, pues como sucede con Flathub, se trata de un un sitio repleto de software privativo y con patentes.

Sin embargo, lo más preocupante de lo que expone Hughes, y Lefebvre también sugiere algo similar, es algo que hasta donde se sabe no parece estar confirmado: «Recientemente Canonical decidió que no va a instalar GNOME Software en la próxima LTS [Ubuntu 20.04], prefiriendo en cambio usar una «Snap Store by Canonical» en su lugar. La nueva tienda Snap obviamente no admitirá Flatpaks (o paquetes, ni siquiera actualizaciones de firmware). Los desarrolladores actualmente asignados para trabajar en GNOME Software han sido reasignados para trabajar en Snap Store, y no estoy seguro de que puedan mantener al mismo tiempo el código antiguo y el nuevo«, comenta.

En efecto, Canonical desarrolla una tienda Snap cuya interfaz es un calco de GNOME Software, pero -conviene repetirlo- hasta donde se sabe no hay planes para que la reemplace como solución única. He buscado información al respecto y no he encontrado nada, y me he puesto en contacto con Canonical sin obtener respuesta por el momento. No obstante, lo que asevera Hughes es tan loco que cuesta creer porque el grueso de aplicaciones sigue estando en los repositorios. Si Canonical se atreviera a hacer algo así, entonces sí arde Troya.

¿Podría ser que Ubuntu 20.04 LTS llegue solo con la tienda de Snap y que los usuarios que quieran otros paquetes los instalen desde los repositorios tradicionales a través de la consola o instalando ex profeso asistentes como Synaptic? Por poder ser… Pero se antoja una pésima, pésima decisión.

Las dos cuestiones de fondo son: ¿con cuántos paquetes piensa Canonical hacer lo mismo que con Chromium? Si nos leéis habitualmente ya sabéis que no nos gusta nada lo que está haciendo Canonical al preinstalar paquetes Snap en Ubuntu: no lo compartimos de ninguna de las maneras porque ni tiene sentido, ni mejora en nada la experiencia de usuario, más bien al contrario. Snap, Flatpak o AppImage son opciones interesantes para probar aplicaciones o para acceder a aplicaciones o actualizaciones que no se encuentran de otro modo, para nada más.

Y la segunda cuestión de fondo, con mayor trascendencia si cabe en la discusión que nos ocupa, es: si los temores de Lefebvre se hiciesen realidad y la Snap Store se convirtiese en «la tienda de aplicaciones Linux», la guerra estaría servida. Dejando a un lado los problemas del formato, que tampoco son ajenos a Flatpak, que Canonical controlase la distribución de aplicaciones comerciales en Linux le otorgaría una posición de privilegio difícil de aceptar por otras distribuciones, tanto por las condiciones que podían imponer, como por monopolizar los posibles beneficios económicos de la compra de aplicaciones.

¿Conclusiones?

Snap tiene en su concepción el ser un servicio cerrado de proveedor único, lo cual tiene una gran ventaja y un gran inconveniente: la ventaja es que todo está mantenido por Canonical y para el usuario final es positivo, porque tiene –o debería tener– la confianza de que el servicio estará bien mantenido y estará siempre disponible. Además, podría suponer un revulsivo para atraer –ya lo ha hecho en algunos casos– aplicaciones de terceros a Linux.

El inconveniente, por supuesto, es que las demás distros no van a tragar con ello, como por otra parte es normal: ni GNU/Linux es Android, ni la Snap Store va a ser nunca Google Play. Pero como decía en relación a la postura de Clement Lefebvre, las desarrolladoras son soberanas y para que la situación no se enroque no es suficiente con decir por ahí no paso. Es evidente que Snap y Flatpak son lo mismo con diferente nombre y traen cosas buenas, pero también malas: más fragmentación.

Si Canonical sigue a la suya con Snap, que es lo que parece, y el resto de distribuciones lo desprecian en favor de Flatpak, lo que sucederá es que solo los usuarios de Ubuntu podrán disfrutar de ambas -de manera plena, se entiende: snapd es software libre-, incluyendo las aplicaciones exclusivas que hay en su tienda. Desafortunadamente revertir la situación ahora es mucho pedir. Es cierto que los orígenes de Flatpak se remontan a bastante tiempo atrás, antes de que Snap apareciese; pero no es menos cierto que fue aparecer Snap y resurgir Flatpak como proyecto, tras el cual hay varios desarrolladores de Red Hat.