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.

Instalación

Paquetes binarios

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.

Desde fuentes (recomendado para enlazar con las bibliotecas de la máquina)

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.

El proyecto actual

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.

HerramientaFunción
.summa y summa.pyDescribir el proyecto y generar la información de los paquetes.
hacer-pkg y hacer-pkg.incConstruir fuentes .tar.gz y paquetes .deb, .tgz y, si está disponible rpmbuild, .rpm.
subir-paquetesPublicar archivos por proyecto y administrar versiones estables e inestables.
subir-docPublicar 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 --sincronizarSincronizar 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-tgzInstalar TGZ con registro de archivos, consultar lo instalado, actualizar y desinstalar con --quitar. Respalda los archivos que reemplaza.
installsumma.shInstalar 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 diccionariodepaquetesTraducir nombres de dependencias entre distribuciones e instalarlas con sus gestores de paquetes. packinstall --prueba permite ver las órdenes sin ejecutarlas.
makefile.libCompartir reglas de construcción, instalación y preparación de dependencias entre proyectos.
prepararScript que acompaña las fuentes: instala lo necesario para compilarlas mediante las herramientas internas de SummaPack. No construye el proyecto principal.
fuentesexternasCatá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 ContainerfileConstruir paquetes en entornos Podman de Fedora, openSUSE y Arch; dejar RPM/TGZ y logs en distros/salida/. No publica automáticamente.
summapackConsultar la versión instalada, la ubicación de sus datos y la ayuda de las herramientas.
findbinlibBuscar programas, bibliotecas y módulos instalados manualmente que podrían ocultar los de un paquete nuevo.
icon_installInstalar lanzadores de escritorio y entradas de menú mediante las herramientas XDG; admite --prueba.
templatesummaHerramienta 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_utilBiblioteca 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 licenciasConfiguració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.

Publicar los documentos con subir-doc

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.

Herramientas para páginas web

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.

ProgramaFunciónEstado e implementación
sincronizar-pagina SISTEMAConsultar 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-paginaPublicación directa y opciones avanzadas.Se conserva por compatibilidad; no hace falta usarlo en el trabajo habitual.
Bajada de páginasPágina CMSimple → HTML local y MD.Operación interna del comando único; no requiere un programa independiente.
pandocMD → 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.

Orden de sincronización
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.

  1. Consultar la web antes de regenerar HTML. Si no se puede leer, detenerse sin sobrescribir archivos locales.
  2. Comparar MD y web contra sus respectivas versiones en la última base común, no por fechas.
  3. Si cambió solo MD, generar y subir; si cambió solo web, descargar e incorporar al MD; si cambiaron ambos o falta base, detenerse para revisión explícita.
  4. Preparar las conversiones y respaldar lo que se reemplazará.
  5. Aplicar la actualización. Antes de publicar, verificar bajo bloqueo que la web no haya cambiado desde la consulta; antes de importar, comprobar que el MD no haya cambiado.
  6. Actualizar la base local solo después de completar la operación. Ante fallos parciales, revisar las versiones y respaldos antes de reintentar.

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.

Documentación

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.

Operaciones habituales
NecesidadOrden o referencia
Consultar versión y sistemasummapack --version; distro +
Consultar metadatospython3 /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 sistemapackinstall --prueba UBUNTU libreadline-dev
Consultar paquetes TGZ instaladosinstalar-tgz --lista; instalar-tgz --archivos PAQUETE
Construir y publicar./hacer-pkg construye; subir-paquetes publica; subir-doc publica únicamente los PDF.
Integrar lanzadoresicon_install --prueba /ruta/lanzadores
Buscar instalaciones que ocultan otrasfindbinlib "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.

DocumentoQué contiene
Manual 2026Uso actual del archivo .summa, construcción, publicación, instalación y hoja de ruta. También disponible en PDF.
Presentacion historicaLa presentación de SummaPack conservada en UTUTO, fechada en enero de 2010: objetivos y diseño del proyecto.
Manifiesto Anti-distrosVersión 0.60, de agosto de 2005. Fundamentos de la propuesta de empaquetado desde los proyectos originales.
Rosetta Babel y PackletsConceptos, objetos, acciones y traducción entre los sistemas de administración de paquetes.
Articulo JSL 2011Trabajo de Diego Saravia publicado en las 40 JAIIO, Jornadas de Software Libre, páginas 41–59. PDF completo de 19 páginas.

Origen y conservación de los textos

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.