El proyecto SummaPack tiene todavía un grado de avance pequeño: apenas lo necesario para instalar los paquetes del proyecto Simusol.
SummaPack es un conjunto de herramientas para compilar, empaquetar, publicar e instalar software libre. Su idea central es mantener la información del empaquetado en el proyecto original y generar desde allí los formatos que necesitan diferentes sistemas.
El proyecto fue desarrollado por Diego Saravia y está vinculado a UTUTO, Simusol y Siru. Su nombre aparece en los documentos tanto como Sumapack como SummaPack.
Los paquetes publicados de SummaPack incluyen el programa principal y las bibliotecas libmem-util0 y libmem-util-dev. En Debian o Ubuntu se instalan así:
curl -fsSLO https://www.simusol.org/downloads/installsumma.sh
sh installsumma.sh --para deb
Sin nombre de proyecto, el instalador instala solamente SummaPack y sus dependencias. Para instalar además otro proyecto, agregar su nombre, por ejemplo sh installsumma.sh --para deb tabular2. También hay paquetes RPM y TGZ; el TGZ se administra con instalar-tgz. Los binarios se construyen sobre una base antigua para ampliar su compatibilidad, pero el formato por sí solo no garantiza que funcionen con todas las bibliotecas del sistema.
Para construir el paquete en la máquina destinataria a partir de las fuentes publicadas:
sh installsumma.sh --para fuentes
El instalador conserva SummaPack si sus paquetes ya están instalados en la versión publicada o una posterior. Si faltan o están desactualizados, instala las herramientas externas de desarrollo, construye paquetes con el entorno local y los instala mediante APT, DNF o Zypper. No hace make install en /usr/local ni admite --prefijo en este modo. Se puede revisar antes con sh installsumma.sh --para fuentes --prueba.
En la reorganización de octubre de 2026, cada proyecto tiene un archivo .summa que reúne los metadatos, las dependencias y las instrucciones de empaquetado. La herramienta hacer-pkg construye paquetes DEB, RPM y TGZ y archivos de fuentes .tar.gz. La generación de RPM requiere rpmbuild; si no está disponible, se avisa y se omite ese formato. El manual describe el estado de esa implementación, sus límites y lo que todavía falta.
| Herramienta | Función |
|---|---|
.summa y summa.py | Describir el proyecto y generar la información de los paquetes. |
hacer-pkg y hacer-pkg.inc | Construir fuentes .tar.gz y paquetes .deb, .tgz y, si está disponible rpmbuild, .rpm. |
subir-paquetes | Publicar archivos por proyecto y administrar versiones estables e inestables. |
subir-doc | Publicar los dos PDF de SummaPack en downloads/summapack/docs/ del sitio de Simusol. Crea docs/ solamente si el directorio del proyecto ya existe y respalda los PDF que reemplaza. No modifica las páginas de CMSimple. |
subir-pagina --sincronizar | Sincronizar Markdown con una página existente de CMSimple XH 1.8. Consulta la web antes de regenerar HTML. Si cambió solo el MD, genera y sube; si cambió solo la web, baja e incorpora al MD; si cambiaron ambos, se detiene. Conserva una base común y respaldos. Requiere Python 3, SSH y Pandoc; guía completa en doc/SINCRONIZAR-WEB.md de las fuentes. |
instalar-tgz | Instalar TGZ con registro de archivos, consultar lo instalado, actualizar y desinstalar con --quitar. Respalda los archivos que reemplaza. |
installsumma.sh | Instalar SummaPack y los proyectos solicitados con sus dependencias, tanto si SummaPack ya está instalado como si todavía no lo está. |
distro (fuente: distro.sh) | Identificar el sistema con uname -s y leer ID/ID_LIKE de /etc/os-release sin ejecutarlo. Si falta, consulta /usr/lib/os-release; conserva detección histórica. distro + añade nombre y versión; DISTRO_ROOT permite diagnóstico sobre otra raíz. WSL informa su distribución real. El descargador no elige automáticamente el formato. |
packinstall y diccionariodepaquetes | Traducir nombres de dependencias entre distribuciones e instalarlas con sus gestores de paquetes. packinstall --prueba permite ver las órdenes sin ejecutarlas. |
makefile.lib | Compartir reglas de construcción, instalación y preparación de dependencias entre proyectos. |
preparar | Script que acompaña las fuentes: instala lo necesario para compilarlas mediante las herramientas internas de SummaPack. No construye el proyecto principal. |
fuentesexternas | Catálogo de URL, versiones, SHA256, dependencias y recetas para construir bibliotecas y herramientas externas. Las entradas de base deben estar previamente instaladas; no se construye todo el sistema desde cero. |
distros/compilar, dentro.sh y Containerfile | Construir paquetes en entornos Podman de Fedora, openSUSE y Arch; dejar RPM/TGZ y logs en distros/salida/. No publica automáticamente. |
summapack | Consultar la versión instalada, la ubicación de sus datos y la ayuda de las herramientas. |
findbinlib | Buscar programas, bibliotecas y módulos instalados manualmente que podrían ocultar los de un paquete nuevo. |
icon_install | Instalar lanzadores de escritorio y entradas de menú mediante las herramientas XDG; admite --prueba. |
templatesumma | Herramienta heredada para generar .changes y .spec desde plantillas. Se conserva para las reglas antiguas; el flujo actual utiliza summa.py y hacer-pkg.inc. |
mem_util | Biblioteca C para memoria, archivos, rutas, cadenas y fechas; se usa mediante pkg-config --cflags --libs mem_util. Fechas completas a segundos epoch, con zona local o explícita; horas sin fecha a segundos desde medianoche. Paquetes libmem-util0 y libmem-util-dev. |
doc/web/generar.py, verificar.py y pruebas/ | Generar HTML para TinyMCE y vistas previas, verificar enlaces y PDF y probar las herramientas con casos controlados. No instalan ni publican por el hecho de generar la documentación. |
etc/, viejo/ y licencias | Configuración distribuida, programas retirados y documentos de autoría/licencia. No sustituyen la configuración personal de publicación; los programas retirados no son la interfaz recomendada. |
Alcance: generar un paquete RPM o TGZ no garantiza que los binarios funcionen en cualquier distribución. El manual señala limitaciones actuales en los nombres de dependencias y las rutas de bibliotecas. Las propuestas de los documentos históricos no deben confundirse con funciones ya implementadas.
Para quienes mantienen el proyecto: desde la raíz de las fuentes, comprobar y publicar los PDF con:
./subir-doc --prueba
./subir-doc
El comando instalado también acepta subir-doc --doc /ruta/summapack/doc. Deben existir los archivos locales summapack.pdf y 738.pdf, y el directorio remoto downloads/summapack/. Solo se crea su subdirectorio docs/. La conexión se configura en ~/.config/simusol/subir con SUBIR_SERVIDOR, SUBIR_USUARIO y SUBIR_DIR; requiere acceso SSH autorizado. --prueba no conecta ni escribe, por lo que no comprueba la existencia del directorio remoto. Los enlaces a los PDF se agregan por separado en TinyMCE.
La entrada única de SummaPack es sincronizar-pagina SISTEMA [--prueba]. Solo se indica el sistema: destinos, rutas, páginas y bases están en la tabla central share/summapack/data/paginas-web.json, sustituible por ~/.config/simusol/paginas-web.json.
| Programa | Función | Estado e implementación |
|---|---|---|
sincronizar-pagina SISTEMA | Consultar la web, comparar MD/web y coordinar subidas y bajadas de las páginas configuradas. | Implementado: lanzador Bash, configuración JSON, motor Python 3 y transporte SSH. Opción --prueba sin escritura. |
subir-pagina | Publicación directa y opciones avanzadas. | Se conserva por compatibilidad; no hace falta usarlo en el trabajo habitual. |
| Bajada de páginas | Página CMSimple → HTML local y MD. | Operación interna del comando único; no requiere un programa independiente. |
pandoc | MD → HTML y HTML descargado → MD. | Dependencia externa escrita en Haskell, invocada como ejecutable; no es código propio de SummaPack. |
La web se consulta antes de regenerar el HTML. Solo cambió MD: generar y subir; solo cambió web: descargar e incorporar al MD; cambiaron ambos: detenerse sin sobrescribir. El HTML local no es una tercera fuente editable. La guía de configuración, respaldo y límites está en doc/SINCRONIZAR-WEB.md de las fuentes.
sincronizar-pagina slex --prueba
sincronizar-pagina slex
La tabla inicial configura Slex y la portada de SummaPack para importar desde la web al iniciar; Tabular2 exige revisar la versión inicial. Calcula y Puyuspa están identificados como pendientes de definir fuente y destino. Las subpáginas no listadas y los generadores antiguos no se migran automáticamente.
La base guarda un par correspondiente de versiones MD y HTML web; no compara directamente ambos formatos. Sin cambios en las fuentes no publica ni modifica el MD, aunque puede recuperar el HTML local si falta. --prueba no reemplaza archivos ni crea una base nueva. No hay sincronización periódica automática: se ejecuta por página al invocar el comando. Los generadores antiguos todavía deben conectarse o migrarse a este flujo; no deben ejecutarse antes de consultar la web.
El manual completo incluye la referencia de todos los componentes: sintaxis, entradas y salidas, requisitos, configuración, efectos sobre archivos o sistemas, ejemplos y límites. Distingue herramientas actuales de las históricas.
| Necesidad | Orden o referencia |
|---|---|
| Consultar versión y sistema | summapack --version; distro + |
| Consultar metadatos | python3 /usr/share/summapack/data/summa.py campo . VERSION; solo sobre un .summa de confianza. |
| Preparar dependencias | ./preparar --prueba desde las fuentes; make dependencias desde fuentes y make dependencias-distro mediante paquetes del sistema. |
| Simular instalación de dependencias del sistema | packinstall --prueba UBUNTU libreadline-dev |
| Consultar paquetes TGZ instalados | instalar-tgz --lista; instalar-tgz --archivos PAQUETE |
| Construir y publicar | ./hacer-pkg construye; subir-paquetes publica; subir-doc publica únicamente los PDF. |
| Integrar lanzadores | icon_install --prueba /ruta/lanzadores |
| Buscar instalaciones que ocultan otras | findbinlib "interpola" "" "" "" tabular; con el tercer argumento BORRA mueve archivos, no solo informa. |
Precauciones: --prueba no es una opción universal ni un sandbox. Algunas herramientas pueden consultar la red o crear temporales; subir-doc --prueba no conecta. Los .summa, las recetas externas y las plantillas pueden ejecutar órdenes. Usar fuentes confiables; las sumas MD5/SHA256 no sustituyen una firma del autor. templatesumma se conserva para compatibilidad y puede sobrescribir metadatos; para proyectos nuevos se usa summa.py.
| Documento | Qué contiene |
|---|---|
| Manual 2026 | Uso actual del archivo .summa, construcción, publicación, instalación y hoja de ruta. También disponible en PDF. |
| Presentacion historica | La presentación de SummaPack conservada en UTUTO, fechada en enero de 2010: objetivos y diseño del proyecto. |
| Manifiesto Anti-distros | Versión 0.60, de agosto de 2005. Fundamentos de la propuesta de empaquetado desde los proyectos originales. |
| Rosetta Babel y Packlets | Conceptos, objetos, acciones y traducción entre los sistemas de administración de paquetes. |
| Articulo JSL 2011 | Trabajo de Diego Saravia publicado en las 40 JAIIO, Jornadas de Software Libre, páginas 41–59. PDF completo de 19 páginas. |
Esta sección reúne el manual actual y los documentos históricos conservados con las fuentes del proyecto. Se mantienen sus autores, referencias y avisos de licencia. Los artículos antiguos se identifican como tales; sus enlaces externos y sus instrucciones pueden haber quedado desactualizados.