19 nov 2024

Asus VivoBook | Zephyrus | Rog | TUF overheating issue Linux SOLVED

The Asus Vivobook has a problem: fan curves do not exist in Linux. It runs in balanced mode by default, which is what’s set in the BIOS, and reaches 95 degrees.

Recently, with kernel 6.12, in asus-nb-wmi some code was added to choose between quiet, balanced, and performance modes, similar to Windows, but I don’t see it working, so I searched for my own solution.


With this, I guarantee that your laptop won’t overheat or suffer, and it will last many years, even if you live in a hot climate.

This is a modification of Sepero’s script with the addition of Arkapravo Ghosh’s script.

In Sepero’s script, I change the default throttle value from 1 to 6, and I add Arkapravo’s script so that the fan goes into full mode when it reaches the temperature defined in Sepero’s script, and switches back to automatic mode (as it comes by default) when it goes below the chosen temperature, which in my case is 81 degrees Celsius.

First, you’ll need to install Sepero’s script, which is here:

 https://github.com/Sepero/temp-throttle

They add it as a service in systemd and set the configuration to 1 second. I chose 81 degrees, and then in the script /usr/bin/temp-throttle, they change the 1 to 6 in the throttle line.


throttle () {
	CURRENT_FREQ=$((CURRENT_FREQ + 6)) 

 

Once this is done, they install the fan-mode script in /usr/bin/fan-mode (https://github.com/Arkapravo-Ghosh/asus-fan-mode), which has the following code:

After giving it permissions with chmod, they modify Sepero's lines (bold) so that it looks like this:


throttle () {
	CURRENT_FREQ=$((CURRENT_FREQ + 6))
	printf "%s %3sC %10s" "$(date -Iseconds)" "${TEMP%???}" "throttle"
	set_freq $CURRENT_FREQ && fan-mode -f
}

# Will increase the frequency of cpus if possible.
unthrottle () {
	CURRENT_FREQ=$((CURRENT_FREQ - 1))
	printf "%s %3sC %10s" "$(date -Iseconds)" "${TEMP%???}" "unthrottle"
	set_freq $CURRENT_FREQ && fan-mode -a
}
 

Look the number 6 and the && fan-mode -a / fan-mode -f. 

 

With this, they make the frequency drop down faster, and when it reaches the indicated temperature, it turns on the fan at full speed, switching back to auto speed when it goes below that temperature, which takes just a few seconds, so it doesn’t cause any unwanted wear on the fan.

This is valid for other Asus models, and I assume that by modifying the fan-mode script, it could work for other brands as well.
I’m leaving a video showing how the temperature is fully controlled with a 24°C ambient temperature, and you can hear the fan turning on and off.

Another version of this script is using the max and the min freq as step up and step down for the CPU, and 0.2s for throttle, so, this way use the CPU at max freq sustained but whitout break the limit and very fast response max and low freq / temp.

Additionally, turn on the fan 5 degrees before the maximum temperature, thus achieving less throttling and allowing the maximum temperature to be set at 85 without reaching 90 degrees or 86. And throttle 1 degree less than max temp and not 3 like original Sepero script.

This way is of throttle is more like Android works.


Script:


#!/usr/bin/env bash

# Usage: temp-throttle # No arguments will default read from /etc/temp-throttle.conf
# Usage: temp-throttle [-t MAX_TEMP] [-c CONFIG_FILE] [-k CORE] [-f TEMP_FILE] [-i INTERVAL] [-l LOG_FILE]

VERSION="3.2"

cat << EOF
Author: Sepero 2012- sepero 111 @ gmx . com
URL: http://github.com/Sepero/temp-throttle/

Mod: 2024 synflag
Changelog: fan full speed 5 degrees before max temp, throttle to max and low freq CPU and more speed in response 0.2s

EOF

# Additional Links
# http://seperohacker.blogspot.com/2012/10/linux-keep-your-cpu-cool-with-frequency.html

# License: GNU GPL 2.0
#set -x
CURRENT_FREQ=1
# Try to return frequency to max before exiting.
user_exit () {
  echo "Restoring to max CPU frequency."
	for((i=0; i < 50; i++)); do
		[[ CURRENT_FREQ -eq 1 ]] && break
		unthrottle 2> /dev/null
	done
	exit
}
trap user_exit EXIT SIGINT SIGTERM
#trap user_exit EXIT SIGINT SIGTERM

# Generic  function for printing an error and exiting.
err_exit () {
	echo ""
	echo -e "Error: $@" 1>&2
	echo -e "Errors may be reported at: http://github.com/Sepero/temp-throttle/issues" 1>&2
	exit 128
}

### START GET CONFIGURATIOM ARGUMENTS.

MAX_TEMP=""    # Maximum desired CPU temperature.
CONFIG_FILE="/etc/temp-throttle.conf" # Optional configuration file.
TEMP_FILE=""   # Optional file to force read CPU temperature from.
INTERVAL=1     # Optional seconds between checking CPU temperature. Default 3.
LOG_FILE="-"   # Optional log file. Default output to standard out.
CORE="0"       # Optional CPU Core to read frequency information from. Default 0.

parse_config_line () { # Interprets values from a line of config file.
  case "$1" in
    MAX_TEMP|TEMP_FILE|INTERVAL|LOG_FILE|CORE) eval "$1=$2";;
    *) err_exit "Unknown option in config file $1. (Options must be all capital letters.";;
  esac
}

parse_config_file () {
  [ -r "$CONFIG_FILE" ] || err_exit "Config file cannot be read: $CONFIG_FILE"
  while read -r LINE; do
    parse_config_line $(echo "$LINE" | tr '=' ' ')
  done < <(grep -oE "^[ \t]*[^=#]+=[^#]*" "$CONFIG_FILE")
}

if [ $# -eq 0 ]; then
  parse_config_file
elif [ $# -eq 1 ]; then # Accept only MAX_TEMP for backwards compatibility.
  MAX_TEMP="$1"; shift
fi

# Parse command arguments.
while [ -n "$1" ]; do
  case "$1" in
    -t) shift && MAX_TEMP="$1"  && shift;;
    -f) shift && TEMP_FILE="$1" && shift;;
    -i) shift && INTERVAL="$1"  && shift;;
    -l) shift && LOG_FILE="$1"  && shift;;
    -k) shift && CORE="$1"      && shift;;
    -c) shift && CONFIG_FILE="$1" && shift && parse_config_file;;
    *) err_exit "Unknown command line argument: $1";;
  esac
done

# Begin redirecting output to log.
[[ -n $LOG_FILE && "$LOG_FILE" != "-" ]] && {
	echo "Further output redirecting to logfile: $LOG_FILE"
	exec 1>> "$LOG_FILE"; exec 2>&1; echo "$INFO";
}

# Verify max temperature was set.
[ -n $MAX_TEMP ] ||
err_exit "MAX_TEMP not given. Please supply the maximum desired temperature in Celsius."

# Verify temperature is an integer.
[[ $MAX_TEMP =~ ^[0-9]+$ ]] ||
err_exit "Maximum temperature $MAX_TEMP must be an integer."

# Verify interval is an integer.
[[ $INTERVAL =~ ^[0-9]+$ ]] ||
err_exit "Seconds interval for checking temperature must be an integer."

[[ $CORE =~ ^[0-9]+$ ]] ||
err_exit "Seconds interval for checking temperature must be an integer."

echo "Maximum temperature set to:   ${MAX_TEMP}C"
echo -n "INTERVAL ${INTERVAL}. CORE $CORE."
[ -n "$TEMP_FILE" ] && echo -n " TEMP_FILE=$TEMP_FILE"
echo

### END GET CONFIGURATIOM ARGUMENTS.


### START INITIALIZE GLOBAL VARIABLES.

# The frequency will unthrottle when low temperature is reached.
LOW_TEMP=$((MAX_TEMP - 1)) # Formerly 5 degrees less.

CORES=$(nproc) # Get total number of CPU cores.
printf "%s %2s\n" "Number of CPU cores detected:" $CORES
CORES=$((CORES - 1)) # Subtract 1 from $CORES for easier counting later.

# Temperatures internally are calculated to the thousandth.
MAX_TEMP=${MAX_TEMP}000
LOW_TEMP=${LOW_TEMP}000

FREQ_FILE="/sys/devices/system/cpu/cpu$CORE/cpufreq/scaling_available_frequencies"
FREQ_MIN="/sys/devices/system/cpu/cpu$CORE/cpufreq/cpuinfo_min_freq"
FREQ_MAX="/sys/devices/system/cpu/cpu$CORE/cpufreq/cpuinfo_max_freq"

# Store available cpu frequencies in a space separated string FREQ_LIST.
if [[ -f $FREQ_FILE ]]; then
	# If $FREQ_FILE exists, get frequencies from it + sort highest to lowest..
	FREQ_LIST="$(cat $FREQ_FILE | xargs -n1 | sort -urn)" || err_exit "Could not read available cpu frequencies from file $FREQ_FILE"
elif [[ -f $FREQ_MIN && -f $FREQ_MAX ]]; then
	# Else if $FREQ_MIN and $FREQ_MAX exist, try generate a list of frequencies between them.
	FREQ_LIST=$(seq $(cat $FREQ_MAX) -100000 $(cat $FREQ_MIN)) || err_exit "Could not compute available cpu frequencies"
else
	err_exit "Could not determine available cpu frequencies"
fi

FREQ_LIST_LEN=$(echo $FREQ_LIST | wc -w)

# Use a temperature file set from configuration.
if [ -n "$TEMP_FILE" ]; then
  [ -r "$TEMP_FILE" ] || err_exit "Temperature file cannot be read. $TEMP_FILE"
else
  # Rare case devices (SoC) need to find cpu-thermal in type.
  for i in {0..9}; do
    [ -f "/sys/class/thermal/thermal_zone$i/type" ] &&
      [ "$(cat /sys/class/thermal/thermal_zone$i/type)" == "cpu-thermal" ] &&
        TEMP_FILE="/sys/class/thermal/thermal_zone$i/temp" && break
  done
fi

# If TEMP_FILE is set, then it is used. Otherwise this line changes nothing.
TEMPERATURE_FILES="$TEMP_FILE"
# If temperature file location not set, then we autodetect.
if [ -z "$TEMP_FILE" ]; then
  # Generate a list of possible locations to read the current system temperature. Must add (ls) in order.
  TEMPERATURE_FILES="$(ls /sys/class/thermal/thermal_zone*/temp 2> /dev/null)"
  TEMPERATURE_FILES+="$(ls /sys/class/hwmon/hwmon*/temp*_input 2> /dev/null)"
  TEMPERATURE_FILES+="$(ls /sys/class/hwmon/hwmon*/device/temp*_input 2> /dev/null)"

  # If no temperature sensor exists, then exit with error.
  [ -z "$TEMPERATURE_FILES" ] && err_exit "A location for temperature reading was not found.\nPlease reference bug #7: https://github.com/Sepero/temp-throttle/issues/7"
fi

### END INITIALIZE GLOBAL VARIABLES.


### START DEFINE PRIMARY FUNCTIONS.

# Modify the frequency for all cpu cores.
set_freq () {
	# From the string FREQ_LIST, we choose the item at index CURRENT_FREQ.
	FREQ_TO_SET=$(echo $FREQ_LIST | cut -d " " -f $CURRENT_FREQ)
	printf " %5s Mhz\n" ${FREQ_TO_SET%???} # Print the Mhz frequency padded to 5 vharacters length.
	for i in $(seq 0 $CORES); do
		# Try to set core frequency by writing to /sys/devices.
		{ echo $FREQ_TO_SET 2> /dev/null > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_max_freq; } ||
		# Else, try to set core frequency using command cpufreq-set.
		{ cpufreq-set -c $i --max $FREQ_TO_SET > /dev/null; } ||
		# Else, return error message.
		{ err_exit "Failed to set frequency CPU core$i. Run script as Root user. Some systems may require installing the package cpufrequtils."; }
	done
}

throttle () {
    # put the freq to the low is possible
    CURRENT_FREQ=$FREQ_LIST_LEN
    if [[ $CURRENT_FREQ -gt $FREQ_LIST_LEN ]]; then
        CURRENT_FREQ=$FREQ_LIST_LEN
    fi
    printf "%s %3sC %10s" "$(date -Iseconds)" "${TEMP%???}" "throttle"
    if ! set_freq $CURRENT_FREQ; then
        echo "Warning: Failed to set frequency. Retrying..."
    fi
}

unthrottle () {
    # restore the most high frecuency.
    CURRENT_FREQ=1
    if [[ $CURRENT_FREQ -lt 1 ]]; then
        CURRENT_FREQ=1
    fi
    printf "%s %3sC %10s" "$(date -Iseconds)" "${TEMP%???}" "unthrottle"
    if ! set_freq $CURRENT_FREQ; then
        echo "Warning: Failed to set frequency. Retrying..."
    fi
}


# Get the temperature from selected sources, and find the highest temp.
get_temp () {
	TEMP="$(cat $TEMPERATURE_FILES 2>/dev/null | xargs -n1 | sort -gr | head -1)"
}

### END DEFINE PRIMARY FUNCTIONS.

# CURRENT_FREQ will keep the index of the currently used frequency in FREQ_LIST.
CURRENT_FREQ=2
get_temp
echo "Initialize to max CPU frequency"
unthrottle  # Will unthrottle CURRENT_FREQ to 1. Max Frequency.

# START MAIN LOOP.
while true; do
	get_temp # Gets the current temperature and set it to the variable TEMP.

# Establece el umbral para activar el ventilador en modo forzado 5 grados antes de MAX_TEMP
FAN_MODE_TEMP=$((MAX_TEMP - 5000))  # Restamos 5 grados

# Activa el modo full del ventilador cuando la temperatura esté 5 grados antes de MAX_TEMP
if [[ $TEMP -gt $FAN_MODE_TEMP && $TEMP -le $MAX_TEMP ]]; then
    fan-mode -f
    sleep 0.2; continue
# Aplica throttle solo cuando la temperatura alcance MAX_TEMP
elif [[ $TEMP -gt $MAX_TEMP && $CURRENT_FREQ -lt $FREQ_LIST_LEN ]]; then
    throttle
    sleep 0.2; continue
# Si la temperatura baja por debajo de LOW_TEMP, restaura el estado original
elif [[ $TEMP -le $LOW_TEMP ]]; then
    unthrottle
    fan-mode -a  # Restablece el ventilador a modo automático
    sleep 0.2; continue
fi



	# Sleep wait between checking temperatures.
	sleep $INTERVAL || err_exit "Sleep wait INTERVAL must be an integer or float value: $INTERVAL"
done


Original script + fan-mode + 0.2s:



Moded script with fan-mode -5 degree fan on before max temp + 0.2s and react only when 1 degree less than max temp and not 3:

 


21 may 2024

megasync: error while loading shared libraries: libicuuc.so.74 - [SOLVED] Manjaro - ArchLinux

Icu is now 75 version, this error is common in the last 4 days in Arch and derivatives.

Solution is NOT compile megasync and delete megasync-bin, is install icu74 using yay or paru.


yay / paru -S icu74 and voilá!

17 oct 2023

Mate Weather don't show the weather libmateweather is unable to retrieve weather data

Since 16 October 2023, mate weather is unable to retrieve weather data

The problem is that the Mate Team has changed the URL source for the weather and (genius - irony) they didn't do a redirect from old URL to new URL.

The suggestion in github is "edit libmateweather.so file"

Well, does not work and is a nasty way.


I did this in Arch but work for Manjaro and others (Ubuntu https://bugs.launchpad.net/ubuntu-mate/+bug/2039494) using the compilation way of Debian.


1.- Download the source $ wget https://pub.mate-desktop.org/releases/1.27/libmateweather-1.27.0.tar.xz

2.- $ tar xvf libmateweather-1.27.0.tar.xz

3.- edit libmateweather-1.27.0/libmateweather/weather-metar.c line 553 and replace


https://www.xviationweather.gov/adds/dataserver_current/httpparam


with


https://www.xviationweather.gov/cgi-bin/data/dataserver.php


Save and exit (use nano, vim, etc)


Download the PKGBUILD https://gitlab.archlinux.org/archlinux/packaging/packages/libmateweather/-/raw/main/PKGBUILD


edit the PKGBUILD and replace the line:


source=("https://pub.mate-desktop.org/releases/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz")

with

source=("libmateweather-1.27.tar.xz")

In the same directory compress again the edited source code:

$ tar cfJ libmateweather-1.27.0.tar.xz libmateweather-1.27.0

Make the package:

$ makepkg -s --skippgpcheck --skipchecksums

$ sudo pacman -U libmateweather-1.27.0-1-x86_64.pkg.tar.zst

Done, weather is working again.

19 mar 2022

Lenovo L340 teclado inglés convertido a español, símbolo < > less greater | Lenovo L340-15API us to la-latin1 fix less greater symbol

Con el teclado US standard keyboard viene:


 

Al pasarlo a latam mediante stickers (los detalles en amarillo) queda así:


Si poseen una Lenovo L340-15API con teclado US convertido a español (latam) habrán notado que si bien en X11 con altgr (el alt derecho) + shift + X o Z obtienen < >, en una consola tty no y deben usar "loadkeys us" alternado con "loadkeys la-latin1".

Se puede mapear dichos símbolos modificando el teclado la-latin1 que es el adecuado en consola para este teclado, modificando las siguientes líneas.

En /usr/share/kbd/keymaps/i386/qwerty/ vamos a encontrar la-latin1.map.gz

Creamos mkdir -p /usr/local/share/kbd/keymaps y ahí copiamos la-latin1.map.gz, hacemos gunzip la-latin1.map.gz y editamos el la-latin1.map con vim.

En la línea que tiene "keycode  86 = less             greater" (línea 61 que no funciona), borramos la misma y colocamos:

 

    altgr   keycode  51 = less
    altgr   keycode  52 = greater
 

Grabamos y salimos. Renombramos el archivo a personal.map con el comando mv y luego lo pasamos a .gz con gzip personal.map que lo comprime y pasa a llamar personal.map.gz


Ahora lo copiamos a /usr/share/kbd/keymaps/i386/qwerty/


Usamos localectl para setearlo de esta manera:


localectl set-keymap personal personal


Ya tenemos el alt derecho (altgr) para usar la ubicación original del símbolo <> en la posición que posee el teclado que es < sobre la , y el > sobre el . en consola tty sin tener que pasar a us.



13 feb 2022

El clickbait de Wayland en muylinux y la pelotudez de la comunidad millenial

 Espero que como en otros tiempos, no digan que hago una entrada sobre ellos para ganar tráfico, ya que mis lectores, o eso pretendo, son muy diferentes a los suyos.

Por empezar, no diría nunca que es más válida una encuesta de la mejor distro, hecha en mi blog (con 3000 votos) que en distrowatch, solo porque "la de distrowatch, se basa en los click en las páginas", como si eso fuera poco indicativo.

Armaron un artículo que es una pataleta, sobre que ellos (los tarados) aún no tienen Wayland.

No consultaron fuentes, programadores ni gente calificada, y todo para generar visitas.

Luego sale Eduardo Medina en Youtube diciendo lo contrario a lo que publicó su colega en muylinux, donde trabaja, bajando los ánimos, total, ya habían conseguido las visitas para ese entonces.

A diferencia de los palurdos de muylinux, me puse a charlar con un programador sobre la cuestión de Wayland, para entender el tema, ya que no soy programador y no conozco los detalles del asunto. Estés o no metido en el desarrollo de wayland, si sos programador de entornos Linux, sabés de qué va la cosa.

Primeras desinformaciones de Muylinux: Afirman que hace 14 años Wayland está en desarrollo.

Falso, no hace 14 años que está sin estar listo, desde 2013 Tizen lo usa de forma estable: https://www.phoronix.com/scan.php?page=news_item&px=MTUxMTE

Incluso ya antes estaba listo, se empezó en 2008, así que aunque hubiera sido en 2013, no me parece tanto 5 años para una pila gráfica.

Wayland se pensó para seguridad y entornos productivos, jamás para que fuera como Xorg, no es que (como dicen en muylinux), se pensó mal o no existía screencasting (wtf!) en 2008 (lo repite Medina en youtube).

No se puede tener todo, y me refiero a seguridad + flexibilidad. No leo usuarios de OpenBSD quejándose de Xenocara, porque saben y admiten que todo no es posible. Es como tener 123 de password root, porque sos de olvidarte, y a la vez exigir seguridad en tu PC.

Deberían agradecer que Red Hat y otros, están hace años, sí 14, añadiendo cosas alrededor de Wayland para que tenga algunas de las que posee Xorg, y probablemente nunca las tenga todas, porque usar pipewire para reemplazar funcionalidades perdidas, es un arreglo sucio, como capa sobre capa como xwayland.

Entonces, no es cierto que hace 14 años esperan nada, está listo desde al menos 2013 y antes también. No es cierto que "se diseñó mal", sino que se diseñó con otros objetivos y fué justo con el que salió en su versión estable.

Tampoco existe una conspiración entre Canonical y los "usuarios conservadores" para detener Wayland y aunque la hubiera, cómo es que los usuarios esos dentendrían el desarrollo de software en manos de una empresa? no pudieron (pudimos) con systemd, menos con esto. Es ridículo.

Las pelotucedes que dicen en ese blog no tienen límite, pero lo peor es que desinforman y generan discordia sin explicar, tirando su nivel aún más al de una comunidad de Taringa. Un /r de reddit tiene más nivel.

¿Quieren grabar el porno que ven o hacer streaming de su pene a su amigo/a? usen Xorg, ¿quieren seguridad? usen Wayland. Los pedidos de los nenes caprichosos jugones (ay los FPS) son los que demoran wayland, no los "usuarios conservadores".

¿Qué más querría un conservador de Linux (Slackware? Gentoo?) que un servidor gráfico y compositor seguro? no conozco ningún conservador old school contra eso, y si fué y es aún en contra de systemd, es porque de seguro no tiene nada y de KISS menos.

El error de Red Hat posiblemente fué no aclarar de entrada las limitaciones y decir "quieren todo? usen Xorg, quieren una sesión segura para usar su banca móvil? usen Wayland" y fin del asunto.

La demora es porque están metiendo funciones de Xorg en Weston, cosa que ni estaba pensada, y todo eso sin volverlo una cagada, que podría pasar.

Lo que deberían es dejar de joder con pedirle a Wayland HDR, VR, etc, etc, es Linux no Windows. Realmente la comunidad está cada día más pelotuda. Linux no compite con Apple o con Windows como dicen en algunos lados, es como decir que yo compito con el blog dedoimedo, una imbecilidad absoluta.

Empezaron usando Linux por libre, seguro y estable y terminan pidiendo HDR, realidad virtual, grabar la pantalla y stremear en twitch. Mejor se replantean qué OS es para ustedes.

Saludos.

9 feb 2022

Stremio libmpv.so.2: cannot open shared object file: No such file or directory Arch Linux / Manjaro

Si bien en la web oficial de Stremio hay una descarga para Arch / Manjaro, esta nos envía a AUR, para instalarlo usando paru o yay.


Pero existe un problema y es que originalmente, este software fué hecho para Debian / Ubuntu, y como se sabe, a Debian y sus hijos les encanta renombrar los paquetes y sus librerías.

En algunos casos esto no se presenta porque el paquete instalado de mpv de AUR o bien de repo, tiene ya el enlace simbólico, ejempllo de mpv-amd-full-git:

lrwxrwxrwx 1 root root 15 feb  9 20:52 libmpv.so.2 -> libmpv.so.2.0.0

La librería real es: 2,7M -rwxr-xr-x 1 root root 2,7M feb  9 20:52 /usr/lib/libmpv.so.2.0.0

Entonces, la solución a esto es tan simple como:


1) su - root

2) cd /usr/lib/

3) ln -s /usr/lib/libmpv.so.1.109.0 libmpv.so.2

 

Sino, instalen mpv de AUR, en version git.

Solucionado.

3 feb 2022

LibreOffice 7.3.0.3 Developer branch langpack ES PKGBUILD ArchLinux / Manjaro

 Si usan Arch o derivados, Manjaro como es mi caso, habrán notado que en AUR se encuentra la rama desarrollo de libreoffice, que mejora la compatibilidad con MS-Office.

El -dev-bin que se instala, mediante yay, es el paquete clásico, el otro, el de idioma si notan el PKGBUILD contiene todos los idiomas y a la hora de descargar y armarlo, no solo demora mas de 1 hora porque los repos de libreoffice son lentos (500kb promedio) sino que además llena muchísimo el disco para armar algo que no vamos a usar.

Bajé y modifiqué el PKGBUILD de libreoffice para que cree e instale el langpack (no el helppack) de -es. Son apenas 3.7MB.


Resultado del paquete instalado: 

 

pacman -Qi libreoffice-dev-bin-langpack-es
Nombre                    : libreoffice-dev-bin-langpack-es
Versión                   : 7.3.0.3-1
Descripción               : LibreOffice development branch
Arquitectura              : x86_64
URL                       : https://www.libreoffice.org/
Licencias                 : LGPL3
Grupos                    : Nada
Provee                    : libreoffice  libreoffice-es-ES
Depende de                : gtk3  lpsolve  neon  curl
Dependencias opcionales   : java-runtime: adds java support [instalado]
                            java-environment: required by extension-wiki-publisher and extension-nlpsolver
                            coin-or-mp: required by the Calc solver
                            kio: for Qt5 integration
Exigido por               : Nada
Opcional para             : Nada
En conflicto con          : Nada
Remplaza a                : Nada
Tamaño de la instalación  : 26,81 MiB
Encargado                 : Unknown Packager
Fecha de creación         : jue 03 feb 2022 04:31:55
Fecha de instalación      : jue 03 feb 2022 04:34:06
Motivo de la instalación  : Instalado explícitamente
Guion de instalación      : No
Validado por              : Nada

El PKGBUILD es el siguiente:

_pkgnamefmt=LibreOffice
_pkgname=libreoffice
pkgname=${_pkgname}-dev-bin-langpack-es
_LOver=7.3.0.3
pkgver=7.3.0.3
#_basever=$( cut -f1-2 -d'.' <<< ${_LOver} )
pkgrel=1
arch=('x86_64')
license=('LGPL3')
url="https://www.libreoffice.org/"
pkgdesc="LibreOffice langpack-es development branch"
depends=('gtk3' 'lpsolve' 'neon' 'curl')
optdepends=('java-runtime:          adds java support'
            'java-environment:      required by extension-wiki-publisher and extension-nlpsolver'
            'coin-or-mp:            required by the Calc solver'
            'kio:                   for Qt5 integration')
provides=('libreoffice-dev-bin-langpack-es')

source=("https://dev-builds.libreoffice.org/pre-releases/rpm/x86_64/${_pkgnamefmt}_${_LOver}_Linux_x86-64_rpm_langpack_es.tar.gz")
sha256sums=('SKIP')

package() {
	find "${srcdir}/${_pkgnamefmt}_${_LOver}"*/RPMS/*rpm -exec bsdtar -x -f '{}' -C "${pkgdir}" \;
}

Crean un archivo PKGBUILD con el contenido, hacen makepkg -s y eso va a crear un paquete local pkg.tar.zst, el cual instalan con sudo pacman -U.


Espero que les sirva.

30 ene 2022

De nuevo Fedora, o mejor dicho, Red Hat

Ya hace muchos años, cuando era usuario de Fedora, tuve que pasar por varias situaciones, para darme cuenta que no era una comunidad, sino una aparente comunidad manejada y controlada por Red Hat, porque al fín y al cabo, Fedora no es algo más que la segunda etapa en el control de calidad y creación de RHEL.

Comienza con Fedora rawhide, sigue con Fedora en sus alfa, beta, etc, Fedora final, luego CentOS Stream (antes no lo tenían y es un paso más que añaden a mejorar la distro) y finalmente RHEL.

Más allá de las cuestiones técnicas de si es buena o no, que veo se debate demasiado seguido en muylinux, la cuestión es política y es algo que no se da muy bien en los ambientes de IT. Política no es solamente a quién votan para presidente o son de izquierda, centro o derecha.

Red Hat aprovecha esta cuestión para hacer algo similar a lo que hacen las empresas, llamado "engagement empresarial". De esta manera logran que mucha gente colabore de forma gratuita con Red Hat y Fedora, a cambio de ser reconocidos, formar parte de algo, y claro, poder sumar eso eventualmente a un curriculum.

Por tanto, tenemos una falsa comunidad, ya que si mañana absolutamente todos los colaboradores de Fedora, se van a Debian o Ubuntu, Red Hat en pocos días crea otra Fedora, porque es parte de su workflow y porque realmente Fedora no existe sin Red Hat ni Red Hat sin Fedora. No olvidemos que el equivalente en SLES de SUSE es OpenSUSE y está bien que así sea, la cuestión es cuando no se es claro y se dice cosas como que vos sos igual a cualquier otro porque es una comunidad, y se habla de horizontalidad, cuando no es tal.

Debian por ejemplo, tiene una comunidad, y sus controles de calidad pasan por su debian experimental (fedora rawhide), unstable (Fedora testing), testing (Fedora) y finalmente la stable (RHEL). Más allá de la burocracia y el esquema verticalista de Debian, más que menos es una comunidad.

Hace algunos años, me pasó que Red Hat me robó y borró un bug report /aporte sin reconocimiento alguno y sinceramente no le di mayor importancia porque era gastar tiempo para no obtener resultados, además, debo admitir que lo dejé pasar también un poco por idiota.

Hace poco, el colega sincorchetes, antes Netsys, del blogroll, tuvo un incidente similar con un PR en Fedora.

A Lyude le pagan, su @ es redhat, a Álvaro no le paga nadie y su única ganancia en esto es tener algún reconocimiento y eventualmente ponerlo en su curriculum o donde mejor le guste.

Se ve que Lyude estaba muy apurada (risas) y le resultó más rápido (risas) cerrar un PR, abrir otro, copiar el código, que simplemente añadirlo como estaba y no colocarse en el changelog. Sucede que cuando sos empleado, tenés que cuidar el trabajo y parte de eso es hacer lo que tenés que hacer, porque si lo hace otro, no estás haciendo tu trabajo. No creo que Lyude no sepa o no quiera poner ese parche, sino que alguien de la comunidad, hizo lo que debería haber hecho eso, y en medio de la adquisición de Red Hat por parte de IBM, no es menor "hacer buena letra". Lo podemos ver en su cuenta de twitter:


Sin mucho más que decir, les dejo el enlace a quien cuenta en primer persona lo que le sucedió: https://echemosunbitstazo.es/posts/es-realmente-comunitaria-fedora-project/

29 abr 2016

Una implementación en TCP sobre ICMP permite bypassear Firewalls usando Echo Reply

Una implementación programada en Go, permite usar TCP para transferir datos, sobre ICMP usando echo reply y así bypassear firewalls. Así que ya saben, no permitir pings ;)

16 sept 2015

Clonar disco VPS y crear nueva NIC

Hace un tiempo vimos como restaurar un VPS desde un archivo de imagen conservando la red y ahora vamos a ver como clonar un VPS.