Commit inicial: G Radio Player

Sistema de automatización de radio en Rust (GTK4 + GStreamer): reproductor
principal con crossfade y ducking, scheduler de comerciales, refill de
playlist, y herramientas auxiliares (pautaje, parrilla, botonera, visor,
buscador, playlist, grabador, reportes). Incluye sistema de skins y modos
de Players (paneles de reproducción configurables).
This commit is contained in:
2026-08-23 00:57:40 -05:00
commit 03084e2d5a
231 changed files with 31055 additions and 0 deletions
+96
View File
@@ -0,0 +1,96 @@
# Reparar dpkg roto por G Radio Player
## Actualizar desde 0.4.8 o anterior a 0.4.9+
Si tienes una versión anterior instalada, **no ejecutes `dpkg -i` directamente** — el `prerm` del paquete instalado corre primero y puede matar a `dpkg`.
Usa el script incluido en el ZIP, que parchea automáticamente antes de instalar:
```bash
sudo bash instalar.sh
```
O aplica el parche manual de una línea antes de instalar:
```bash
sudo bash -c 'printf "#!/bin/bash\nexit 0\n" > /var/lib/dpkg/info/gradio-player.prerm'
sudo dpkg -i gradio-player_0.4.9_amd64.deb # o arm64 / arm64_bookworm
```
---
## Mi dpkg ya está roto (no puedo instalar ni actualizar nada)
### Síntoma
```
E: se interrumpió la ejecución de dpkg, debe ejecutar manualmente
«sudo dpkg --configure -a» para corregir el problema
```
O:
```
dpkg: error al procesar el paquete gradio-player (--configure):
El paquete está en un estado grave de inconsistencia - debe reinstalarlo
antes de intentar su configuración.
```
### Reparación rápida
```bash
# 1. Parchear el prerm roto
sudo bash -c 'printf "#!/bin/bash\nexit 0\n" > /var/lib/dpkg/info/gradio-player.prerm'
# 2. Reinstalar 0.4.9 (ya tiene prerm correcto)
sudo dpkg -i gradio-player_0.4.9_amd64.deb # o arm64 / arm64_bookworm
```
Si aun así dpkg reporta inconsistencia, forzar la eliminación primero:
```bash
sudo bash -c 'printf "#!/bin/bash\nexit 0\n" > /var/lib/dpkg/info/gradio-player.prerm'
sudo dpkg --remove --force-remove-reinstreq gradio-player
sudo dpkg --configure -a
sudo dpkg -i gradio-player_0.4.9_amd64.deb
```
---
## Causa raíz
El script `prerm` de versiones anteriores usaba `pkill -f "radio-player"`. El flag `-f` busca en la línea de comando **completa** de todos los procesos. La cadena `"radio-player"` es subcadena de `"gradio-player"`, por lo que el patrón coincide con:
- El propio script de mantenimiento: `/var/lib/dpkg/info/gradio-player.prerm`
- La invocación de dpkg: `dpkg -i gradio-player_0.4.9_amd64.deb`
Al ejecutar, el script se mata a sí mismo y a dpkg, dejando el gestor de paquetes en estado inconsistente.
**Desde 0.4.9**: el `prerm` es `exit 0`. No hay kill de procesos. Los ejecutables en uso se reemplazan de forma segura en disco (Linux mantiene el inode anterior abierto hasta que el proceso cierre).
---
## Limpieza manual (si dpkg no removió los archivos)
```bash
sudo rm -f /usr/local/bin/{radio-player,comercial-scheduler,playlist-refill}
sudo rm -f /usr/local/bin/{gradio.sh,gr-buscador,gr-playlist}
sudo rm -f /usr/local/bin/{gr-pautaje,gr-parrilla,gr-botonera,gr-visor,gr-reportes,gr-record}
sudo rm -rf /usr/local/share/radio-player
sudo rm -f /usr/share/applications/gradio-player.desktop
sudo rm -f /usr/share/icons/hicolor/48x48/apps/gradio-player.png
sudo gtk-update-icon-cache -f -t /usr/share/icons/hicolor 2>/dev/null
sudo update-desktop-database /usr/share/applications 2>/dev/null
```
Los datos del usuario en `~/.gradio/` no se eliminan (parrilla, comerciales, configuración).
---
## Historial del bug
| Versión | Estado prerm | Notas |
|---------|-------------|-------|
| 0.3.x 0.4.7 | `pkill -f` roto | Todos los .deb publicados afectados |
| 0.4.8 | `pkill -x` (mejorado) | Sigue siendo un kill — al actualizar a 0.4.9 corre el prerm de 0.4.8 instalado, que puede matar dpkg en algunos entornos |
| **0.4.9+** | `exit 0` | **Fix definitivo** — no hay kill de procesos |