sábado, 18 de septiembre de 2021

¿No te gusta una decisión sobre un programa que es software libre? ¡haz un fork!

Hoy, 18 de septiembre, es el Día del Software Libre 2021. Un buen día para plantearse cosas respecto a lo que significa, yo por ejemplo me pregunto si un programa es software libre si el código no se puede compilar, aunque diga que lo es.

Aunque hoy de lo que vamos a hablar de un caso aún más especial pero que sí sería software libre a todos los efectos pero con un trasfondo un poco oscuro, este programa sí se puede compilar pero solo en distribuciones de desarrollo, no en algunas estables debido a un error tonto en una función para pintar ventanas que manda 6 variables en lugar de 4 lo que le hace incompatible con las versiones probadas de la librería qpdf.

Se trata de PDF Mix Tool, un programa que hace unos meses, muchas webs importantes del mundo GNU/Linux anunciaban a bombo y platillo como la gran solución para el manejo de archivos PDF, un programa muy visual y llamativo sobre todo para los novatos pero que no supera a otros como PDF Arranger por ejemplo.

En estos casos, un usuario de software libre lo que debe hacer es avisar al autor del problema y si ya conoce la solución como es mi caso mejor, ya se lo deja en bandeja para dejar solucionado el problema.

El autor es siempre quien toma la decisión respecto a su software, ¿cual fue su decisión en este caso? Pues negarse a solucionarlo poniendo todo tipo de excusas (no dejéis de leerlo que tiene miga) y dando otras opciones, como el uso de la nueva paquetería snap y flathub, ya sabéis lo que pienso de esas "soluciones" al estilo cutre shareware de Windows.

Bueno, es su software está en su derecho entonces... el usuario no puede hacer nada más... ¡pues SÍ que puede hacer! para eso están los fork y como el autor del programa anunciaba que era software libre de la línea hard pues vamos a aprovecharlo.

Así que eso es lo que hice, un fork de lo más tonto para que se pueda compilar mientras tanto en las distros LTS que existen, así de paso lo he podido incluir en RetroMultiInstaller.

No es un caso aislado, hay muchos otros programas que solo se puede compilar en distros experimentales e inestables sin ser nuevos, y en sus contestaciones deja claro que lo se pretende por algunos autores es forzarnos a usar snap o similares, porque es una puerta abierta a distribuir software con mantenimiento deficiente sin que deje de funcionar o directamente programas privativos, a cambio tendremos un GNU/Linux que se irá haciendo cada vez más lento a medida que instalamos más programas y que se comerán el espacio disponible en tu SSD en muy poco tiempo, a los (ex-)usuarios de Windows os sonará.

2 comentarios:

  1. Leyendo el articulo, primero la sugerencia
    «Do you consider to detect the installed version of qpdf and use the necessary parameters in each case?»

    Me parece la solucion más facil y logica aplicable, ademas de que tampoco seria dificil de implementar.

    Pero la respuesta del autor es lo que realmente es indefendible y que es la que no tiene sentido pero responde :

    «It wouldn't make sense to use the old version of that function because the result of some operations on PDF files will be wrong.»

    Lo peor de la respuesta es :
    « Using the snap package of flatpak package is not an option? »

    Esto lo digo porque el mismo esta diciendo que « Snap » o « Flatpak » son opciones, pero basicamente le estas infiriendo al usuario que esta obligado a usar cualquiera de estas dos, excluyendo cualquier otra posible opcion como por ejemplo :

    1 - Descargar de GitHub y Compilar (Que es lo que ha hecho el que da la sugerencia y solucion, pero el autor no confia en que vaya a compilar por eso recomienda el uso de versiones precompiladas de Snap o Flatpak)

    2 - Descargar un archivo empaquetado en algun formato comprimido 100% compatible con GNU como por ejemplo : "7z" / "ztd" / ".tar(.xz, .gz, .bz2)" que este precompilado, y bueno aqui podrian haber 2 sub-opciones la primera el programa precompilado con sus archivos necesarios para funcionar. y la segunda seria lo anterior pero incluyendo las librerias y un guion que utilice las variables de entorno para usar las librerias contra las que fue precompilado que deben estar incluidas para que funcione correctamente, que es basicamente lo que hago yo cada vez que les comparto un videojuego nativo para Liñux

    Para finalizar termina con :

    « Sorry, but if you use an LTS distro you should be aware of its drawbacks, and this is exactly one of them. If it isn't too much complex to build it I'll provide an AppImage. »

    Obviamente esta persona no tiene idea de como funciona el sistema operativo GNU, porque como ya he demostrado incansablemente, las distros no tienen importancia alguna, ademas si el codigo fuente esta bien escrito puedes hacer que compile con librerias que tienen literalmente una decada.

    Como hay muchisimos ejemplo en GitHub y/o GitLab por ejemplo :
    DevilutionX
    (https://github.com/diasurgical/devilutionX)Solarus

    (https://gitlab.com/solarus-games/solarus)Por ende, sus excusas estan bastante mal, pero para mi ese no es el problema. Es la falta de honestidad en Adminitir que no tiene idea en si eso podria afectar negativamente al programa precompilado. Aunque bien no pierda nada con hacer el cambio y probarlo en diversas distribuciones en vivo ( Como hago yo con maquinas virtuales como VirtualBox, QEmu ) para determinar todas las librerias que necesita un binario ejecutable. y a darle uso por lo menos haciendo todas las cosas basicas que hara un usuario para ver que tan estable resulta.

    Aunque por eso mismo es que ven que casi no subo Videojuegos Completos seguidos, porque en mi caso, yo pruebo el juego / emulador, etc ( Binario ejecutable + sus datos + los datos que yo necesito como roms y partidas salvadas de bateria )

    Aparte de que no solo lo pruebo en mi maquina, si es posible pruebos los datos mios con binarios ejecutables hechos para Microsoft Windows, tanto a traves de Wine como nativo, en otros 5 equipos con hardware demasiado distintos entre si. para asegurarme de que funcione. y una vez me he terminado el juego de principio a fin es que lo subo.

    ResponderEliminar
  2. Totalmente de acuerdo, si publicas software libre, ese código debe ser compilable, si no eso y nada es lo mismo.

    Forzar a la gente a usar una paquetería que desperdicia recursos y pierdes el control de lo que tienes en el ordenador es no entender como funciona el software libre, solo apuntarse a él porque quedas bien.

    ResponderEliminar