AutoSumma

AutoSuma (indistintamente summa con una o dos m) es una extensión a las Autotools para instrumentar los conceptos de Sumapack.

Permite la instalación de paquetes desde las fuentes desde sistemas con autoconf/automake, en forma congruente con el sistema de paquetería de cada sistema. Así facilita la tarea del usuario y/o desarrollador. Genera en cualquier sistema paquetes deb, txz, rpm, ebuild, etc..

Los paquetes fuente, originales, son fáciles de usar con Sumapack, y la inexistencia de Sumapack en una computadora que instala un paquete preparado para Sumapack no bloquea las funciones esenciales.

Se proveen macros m4 genéricos y específicos para cada paquete. Con los mismos se puede instruir al configure.ac de un paquete fuente, para que averigüe si los paquetes requeridos para su compilación están instalados. Esta información es volcada a un archivo "lacks". De allí puede ser tomada por un script que los instala. Este script puede ser ejectuado desde un objetivo "prepare" del Makefile.am En particular los archivos que portan información específica del paquete en cada tipo: .spec (de los paquetes rpm), .lsm (de la base de paquetes de GNU/Linux), control (de Debian), .ebuild (de Gentoo) se generan desde un archivo común.

Autogenera las listas de archivos y las dependencias con la información del proyecto fuente, hasta donde es posible. Se debe trabajar con un rosetta.dat específico para esto. Así se facilita la generación de binarios en cada sistema. Puede funcionar con sistemas de cross-tools (compilación en una computadora, de binarios para otra, con diferente arquitectura) y con jaulas de compilación específicas. Es útil para pruebas y desarrollo. Eventualmente para hacer las mismas distros con diferentes sistemas de paquetería, funcionando ortogonalmente. Así ayuda a los fabricantes de distros y repositorios. Que estos paquetes sean usables en otros sistemas ya no depende de estas herramientas, sino de las versiones de librerías y dependencias reales. Genera los paquetes desde cada fuente; la idea es que el papel de un sistema externo que controle los make de cada proyecto fuente sea mínimo. En todo caso se generan los archivos rules, y partes del spec y del ebuild.

Guía de uso preliminar

Hoja de acciones, comandos y resultados: http://www.sumapack.org/sumapack.svg en formato png:

./lacks

rosetta ademas de la linea de comando lee ./lacks como fuente para tomar sus datos. es generado al hacer ./configure

make prepare,

llama a sp e instala todo lo que lacks le indica

TEST_PACK

TEST_PACKS([proyecto1 proyecto2 ])

macro para añadir al configure.ac de un proyecto para testear, e instalar automaticamente las dependencias junto a otros macros que dan datos para cada paquete, y leer variabeles importantes

genera un archivo ./lacks con todos los paquetes necesarios no isntalados, que es leido por rosetta y otro ./needs para referencia de todos los paquetes necesarios

Utilidades para el ChangeLog

genera changelog del svn e info para spec y demas

infosis, detectasistema y detectahttpd

scripts que proveen info del sistema

Inclusiones en la Makefiles para generar distros binarias

para incluir en makefile.am que generan para cada paqute fuente binarios

todas las makefiles en orden con la filosofia del las autotools

producen binarios para una arquitectura y sistema de acuerdo al nombre canonico "cpu-manufacturer-kernel-operating_system" vigente, uno puede proveerle uno o lo deduce del sistema. Manufacturer es la distro y su version, Las distros en funcion de sus "repositorios". Diferentes repositorios son diferentes distros.

Esto funciona en cualquier sistema, aunque si el sistema donde se genera no es el adecuado, puede haber problemas, no estamos en condiciones ahora de predecir si habra errores o no. Lo ideal es producir en el mismo. (librerias, crosscompiling, etc)

make binpackages

genera todos los formatos: make rpm, deb, txz, tbz, tgz

make bootstrap

llama a sumapackbootstrap y genera un paquete bs.tar.gz, que al abrirlo contiene ejecutables autoportados que instalan lo necesario y a sumapack

pkginfo

produce meta datos para rpm.spec .ebuild, no-rules etc a partir de $PACKAGE.summa

macros m4

permiten identificar si esta instalado el paquete, setean variables necesario para usarlo y generan lacks y needs

Archivos para otros proyectos

hay que generar una base universal de estos, se puede hacer a mano o automaticamente de otros repos.

$PACKAGE.summa

macros .m4

entrada en rosetta.dat

En cuanto al proceso de creación y distribución de software Sumapack plantea incorporar la maxima cantidad posible de informacion extra necesaria hoy aportada por los empaquetadores en los paquetes originales mediante un formato comun, archivo: paquete.summa integrado en el trabajo del configure.ac y los makefiles.am de las autotools.

De tal forma es posible con las makefiles originales generar paquetes binarios de todo tipo y color.

Bootstrap

Sumpack genera un archivo en Bash para realizar un proceso de bootstrap que instala Sumapack. Baja las dependencias que Sumapack necesita y finalmente al propio Sumapack. Funciona incluso usando un directorio con los paquetes a usar en un medio portátil como un dvd, para poder instalar el software sin disponer de Internet. Este proceso puede generalizarse para hacer paquetes autoinstalables en cualquier distro.