Llevo unos días mangoneando en los actualizadores de la Wifislax 4.12 (sí, la última versión de 32 bits, soy un poco raro), y tengo algunas sugerencias para los actualizadores. Estas sugerencias son cosas que no están implementadas en la Wifislax 64 2.4 y creo que tampoco en las versiones de prueba de la 2.5:
1.- Forzar versiones:La idea es hacer que un actualizador pueda descargar cualquier versión de ese programa (si está disponible en el repositorio). Un ejemplo es firefox... si no nos gusta por alguna cuestión la versión 96.0, podríamos forzar la descarga de la 78.0.1.
Esto conllevaría cambios a todos los actualizadores para soportar la línea de comandos. En principio, si no se añaden comandos el actualizador debería comportarse normalmente (compatible con GUI updater) pero si se le añade una versión debería bajar la versión que le indiquemos (actualización manual).
2.- Sitios comunes de descargas:En la 4.12 hay montones de actualizadores que van a descargar a los mismos sitios (github, sourceforge, los repositorios de gnome). Una idea sería añadir funciones que detectan la versión y generan el nombre de descargas a funciones_updater (p.ej: f_variables_github) ya que son idénticas en todos los casos.
Hacerlo así tiene dos ventajas:
- Si el hosting cambia la manera de descargar o cómo presenta la última versión, fallarían varios updaters de golpe. Corrigiendo solo funciones_updater volverían a funcionar.
- Se simplifica y se limpian algo los updaters.
3.- Firefox y sus versiones:Las actualizaciones de Firefox nunca son del gusto de todos, así que he modificado el script firefox_updater para elegir qué es lo que queremos instalar. Mi modificación (chapucera) admite estos parámetros:
- firefox_updater : Sin parámetros se comporta exactamente como siempre. Compatible con GUI updater.
- firefox_updater latest : Descarga la última versión de firefox (igual que siempre).
- firefox_updater esr : Busca la última versión ESR y la instala.
- firefox_updater nq : Descarga la versión 52.9.0esr. Esta es la última versión "tradicional" de firefox, y la que recomendaría para equipos con pocos recursos (NOTA: Quantum se implementó en la versión 57. Aunque la última rama sin quantum fue la 56, la rama 52 la versión ESR inmediatamente anterior y recibió actualizaciones de seguridad con posterioridad a la 56).
- firefox_updater (lo que sea) : Si el parámetro no es latest, esr o nq, se trata como un número de versión. Es decir, si ponemos firefox_updater 60.0.1, intentará descargar la versión 60.0.1.
El parche (tomando como base el actualizador que acompaña a wifislax64 2.4):
--- firefox_updater 2022-01-16 12:53:12.000000000 +0100
+++ /mnt/livemedia/modulos/updaters/Navegadores/firefox_updater 2022-01-12 11:50:26.000000000 +0100
@@ -1,8 +1,14 @@
#!/bin/sh
# Script by www.seguridadwireless.net
+# Modificado para descargar varios tipos
+# firefox_updater nq -> Descarga la versión 52.9.0esr
+# firefox_updater esr -> Descarga la última versión esr
+# firefox_updater latest -> Descarga la última versión
+# firefox_updater 60.0.1 -> Descarga la versión 60.0.1
+# firefox_updater -> Descarga la última versión
-SCRIPT_VERSION=20181122
+SCRIPT_VERSION=20220101
############################################################
## Funciones comunes. Su nombre empieza por f_ ##
@@ -20,8 +26,25 @@
EXTENSION=tar.bz2
GESTOR=wget
echo -ne "\033]2;${PRGNAM}_updater\007"
- WEB=https://download.mozilla.org/?product=firefox-latest\&os=linux\&lang=es-ES
- VERSION=$(curl -s $WEB|grep .$EXTENSION|tail -1|rev|cut -d- -f1|rev|cut -d t -f-1|sed 's/.$//g')
+
+ case $PARAM1 in
+ latest)
+ WEB=https://download.mozilla.org/?product=firefox-latest\&os=linux\&lang=es-ES
+ VERSION=$(curl -s $WEB|grep .$EXTENSION|tail -1|rev|cut -d- -f1|rev|cut -d t -f-1|sed 's/.$//g')
+ break
+ ;;
+ esr)
+ WEB=https://download.mozilla.org/?product=firefox-esr-latest\&os=linux\&lang=es-ES
+ VERSION=$(curl -s $WEB|grep .$EXTENSION|tail -1|rev|cut -d- -f1|rev|cut -d t -f-1|sed 's/.$//g')
+ break
+ ;;
+ nq)
+ VERSION=52.9.0esr
+ break
+ ;;
+ *)
+ VERSION=$PARAM1
+ esac
SOURCES=$PRGNAM-$VERSION.$EXTENSION
DOWNLOAD=https://ftp.mozilla.org/pub/firefox/releases/$VERSION/linux-$ARCH/es-ES/$SOURCES
}
@@ -39,7 +62,12 @@
(ln -s /usr/lib${LIBDIRSUFFIX}/firefox/firefox ./usr/bin/firefox)
-cp $TMP/firefox/browser/chrome/icons/default/default128.png $PKG/usr/share/pixmaps/firefox.png
+if test -f $TMP/firefox/browser/chrome/icons/default/default128.png
+then
+ cp $TMP/firefox/browser/chrome/icons/default/default128.png $PKG/usr/share/pixmaps/firefox.png
+else
+ cp $TMP/firefox/browser/icons/mozicon128.png $PKG/usr/share/pixmaps/firefox.png
+fi
# Linkeamos plugins en /usr/lib
mkdir -p $PKG/usr/lib/mozilla
@@ -64,6 +92,14 @@
# Si se cierra el script inesperadamente, ejecutar la funcion de limpieza
trap f_exitmode SIGHUP SIGINT
+# Procesando parámetros
+if [ $# -ne 0 ]
+then
+ PARAM1=$1
+else
+ PARAM1=latest
+fi
+
#Inicializamos las variables globales
f_variables
#Asignamos o detectamos arquitectura
A este parche le falta detectar la versión instalada y actuar en consecuencia. Es decir, si la versión instalada era una ESR, no actualizar automáticamente a la más reciente sino seguir la rama ESR. O si era la versión nq, dejarla "bloqueada". Más que nada para que el GUI updater no nos actualice a una versión no deseada.
Algo que veo casi imposible sería dividirlo en dos actualizadores... tal y como está wifislax creo que no hay manera de hacer que "convivan" dos versiones diferentes de firefox en el mismo sistema.