SumaPack

http://www.sumapack.org

Puede navegar en esta presentación con PgUp y PgDw (en Firefox), y con el ratón en la esquina inferior derecha. (usa html + S5 http://meyerweb.com/eric/tools/s5/)

Sumapack o Summapack es un conjunto de herramientas integradas y en desarrollo para preparar, documentar, compilar (cross-compiling), empaquetar (cross-packaging), distribuir e instalar Software Libre, directamente de desarrollador a usuario, en diferentes sistemas y "distros" bajo un mismo esquema de comandos y funciones. Así:

  • Uso de una herramienta y sus comandos en todas las distros (sp)
  • Traducción automática de nombres de paquetes entre distros (rosetta y babel).
  • Soporte de todos los formatos de empaquetamiento y repositorios (.deb, .rpm, .tbz2, etc.), mediante comandos de nivel, bajo, medio (fetch ... ) y alto (ubuild).
  • Creación de metapaquetes facilmente traducibles a todos los otros formatos (.summa)
  • Creación de documentos traducibles a todos los formatos. (.muse, LaTeX)

Aspectos Centrales

  • Funciona en muchos sistemas en forma similar
  • El comando sumapack presenta una interfaz comun para algunas de las tareas (install) de apt-get; zypper; emerge; ututo-get; urpmi; yum; installpkg; wget,./configure, make, sudo make install; package
  • En cada sistema usa el comando apropiado para el sistema de paquetes del mismo Si no encuentra un sistema o no encuentra un paquete apropiado, usa el sistema generico desde las fuentes. Eventualmente provee de scripts específicos para instalar a nivel de cada sistema paquetes complejos. Si instala desde las fuentes primero empaqueta, si puede.
  • Se usa un sistema comun de nombres para los proyectos de software libre, independientemente de cada repositorio. Se provee un archivo "rosetta" que acumula informacion sobre nombres de paquetes en diferentes repositorios. Se da un nombre por funcion, esta funcion puede instalar uno o mas proyectos, y estos proyectos pueden contener uno o mas paquetes diferentes en cada repositorio. Asi se provee y generalizan conceptos como paquetes virtuales, slots varios, etc.. Existe la posibilidad de poner un archivo rosetta local en cada uso, que se superpone sobre el genérico , para definir politicas particulares.
  • Permite usar y trabajar desde sistemas con autoconf/automake en forma congruente con el sistema de paqueteria de cada sistema. Así facilita la tarea del usuario desarrollador. Y la instalacion de paquetes desde las fuentes. Los paquetes fuentes originales son faciles de usar con sumapack, y la inexistencia de sumapack en un sistema no bloquea las funciones comunes.
  • Se proveen macros m4 genericos y especificos para cada paquete. Con los mismos se puede instruir al configure.ac de un paquete fuente, para que averigue si los paquetes requeridos para su compilacion estan instalados. Esta informacions es volcada a un archivo "lacks". De alli puede ser tomada por un script que instala estos paquetes. Este script puede ser ejectuado desde un objetivo "prepare" del Makefile.am
  • Genera en cualquier sistema paquetes deb, txz, rpm, ebuild, etc.

    En particular los .spec .lsm control .ebuild se generan desde un archivo comun. Autogenera las listas de archivos y las dependencias de la info del proyecto fuente, hasta donde es posible. Se debe trabajar con una rosetta especifica para esto. Así se facilita la generacion de binarios en cada sitema.

    Puede funcionar con crosstools y con jaulas de compilación específicas.

    Util para pruebas y desarrollo, eventualemente para hacer las mismas distros con diferentes sistemas de paqueteria, haciendo ortogonal este tema. Asi 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 librerias y dependencias reales.

    Genera los paquetes desde cada fuente, no es un sistema externo el que controla los make de cada proyecto fuente, sino que el Makefile del proyecto hace todo. En todo caso los archivos rules, y partes del spec y ebuild que pretenden reemplazar/usar al make de cada proyecto se generan, pero no para uso por sumapack.

    Puede usarse un software externo para otros fines como el uso de USE por emerge, o herramientas de cross compiling o sistemas de generacion de repositorios completos. Este no es el fin (al menos por ahora) de sumapack.

  • Provee software para facilitar el uso de Muse y LaTeX en la realizacion de documentos
  • Tiene un generador de un bootstrap para bajar las dependencias previas el mismo que podria generalizarse para hacer paquetes autoinstalables en cualquier distro, con un lugar previsto para bajar a mano las dependencias, si no anda interne o wget.

Ayuda a:

Objetivos:

1. Apoyar el análisis simbólico y formal del problema de las dependencias de paquetes binarios y fuente, y aportar a los estudios de calidad en sistemas GNU/Linux;

2. Contribuir a una mejor comprensión de las acciones y complejidades de cada sistema de administración de paquetes y las virtudes, potenciales y defectos de unos con respecto a otros;

3. Abstraer al usuario, y al desarrollador del problema de las diferentes distribuciones y sistemas de instalación y de sus diferentes comandos, esquemas y nombres de paquetes. En tal sentido el programa sp que integra a Rosetta y Babel constituye un meta/summa/super instalador de paquetes que cumple estos objetivos. La Rosetta de aplicaciones y paquetería en sistemas GNU/Linux/BSD/Windows, base para construir la Babel del Software Libre;

4. Conseguir un mecanismo de instalación simple y robusto que pueda funcionar en todos los sistemas y que provea la funcionalidad básica tanto de instalar paquetes como apoyar el empaquetamiento y backup de datos de los usuarios. Uinstall cumple esos objetivos;

5. Facilitar la compilación, empaquetamiento, instalación, uso y distribución de software desde sus paquetes fuente originales, y diversos parches aportados desde distintos orígenes, sin interferir negativamente con la administración de cada sistema. Autosuma: es una extensión a las Autotools: autoconf, automake, libtoolize; para: generar paquetería binaria compatible con los manejadores de paquetes instalados en diferentes máquinas (cross-packaging) y que permite detectar e instalar automáticamente las dependencias para compilar los paquetes.

6. Instalar automáticamente con uGet dependencias y requisitos previos para la ejecución desde repostiorios;

7. Proveer sistemas de generación de documentación que permitan con simplicidad y con editores de texto o vía web, generar todos los formatos pertinentes en forma automática. Autodocs es otra extensión a las Autotools para facilitar el uso de Muse y Tex - LaTeX en la documentación de los paquetes.

8. Poder generar paquetes y distribuciones completas parametrizadas en forma automática. Ubuild: maneja las Autotools y otros programas para la compilación manual o en entornos diversos, jaulas de compilación, “cross-compiling”, generadores de repositorios, etc..

9. Facilitar la generación de interfaces de usuarios o de otros programas, que funcionen en muchos sistemas. Tanto Rosetta como Babel pueden constituir una capa intermedia para que cualquier interfaz de usuario pueda convocar a cualquier instalador -según el sistema donde se ejecute- utilizando los mismos comandos, a través de estos programas. En particular estamos construyendo XulPack, que es una interfaz gráfica (GUI) para Sumapack (en diseño), basada en XUL, que puede servir de instrumentación de referencia de un instalador universal.

10. Summapack también provee Aux o programas auxiliares que ayudan a cumplir los objetivos ya citados a los otros programas: Upack y Upackname son programas auxiliares para empaquetar, desempaquetar e interpretar nombres de paquetes; Bootstrap es un programa para la auto-instalación de Sumapack. Sumapack se escribe indistintamente con una o dos emes. El nombre de algunos programas inicia con la letra “u” por su posible integración con la aplicación Uget, usada en el Ututo.

11. Summapack también es útil a los efectos de utilizarlo como ejemplo en la enseñanza de compialdo, instalación y compilación de paquetes de Sofware Libre.

Artículos sobre Conceptos Fundamentales

  • Sumapack y el proceso de distribución del Software Libre
  • Metáfora
  • Metodologías y herramientas

    Se ha utilizado Bash para todos aquellas partes de Sumapack que deben funcionar en sistemas mínimos, por ejemplo cuando un sistema se comienza a instalar. Perl para las otras partes del mismo. También se utiliza entre otros make, las autotools de GNU, Muse, y LaTeX. Las interfaces gráficas se realizan en XUL para Firefox, mediante el módulo de Perl XUL::Gui.

    Se trabaja con un repositorio basado en “subversion” y se comparten resultados con comunidades de desarrollo de intereses similares.

    sp, Rosetta y Babel

    Sp integra a Rosetta y Babel. En cualquier distro “sp PAQUETE”, instala el paquete, donde ese nombre es el mismo en todas las distros.

    Ambos comandos trabajan juntos. Rosetta, para cada sistema, habitualmente instalado mediante una distribución, identifica el nombre solicitado, o función a instalar, con un proyecto en particular. El nombre puede estar asociado en rosetta.dat con varios proyectos de software que brindan esa función. Ante cada función puede instalar uno o más proyectos alternativos o complementarios, permitiendo definir en cada caso el comportamiento y proveyendo uno por defecto. Cada proyecto para cada distribución ofrece uno o más paquetes para su instalación. Hay tres niveles involucrados: función, proyecto y paquete. Para cada función y cada “distro” Rosetta propone diferentes paquetes para su instalación. Babel toma estos paquetes y los instala.

    AutoSumma

    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..

    AutoDoc

    Provee software para facilitar el uso de Muse y LaTeX en la realización y visualización de la documentación de los proyectos. Basado en el trabajo original realizado para Psicro.

    uGet

    Provee la inteligencia para bajar de repositorios paquetes y sus dependencias, instalando el software asi obtenido.

    uBuild, construyendo paquetes

    Baja, desempaqueta (mediante upack), compila fuentes, y empaqueta binarios (mediante upack). Es una reescritura de ebuild.sh de Gentoo para que funcione en toda distro. Procesa paquetes fuente, como tar.gz, y tar.bz2, y metapaquetes como .ebuilds. Ubuild toma lo bueno del Gentoo incorporando la filosofia unix de herramientas simples interoperables, siento ortogonal a la distro y pudiendo interoperar con otros empaquetadores como dpkg o rpm. Junto con Uinstall pueden reemplazar completamente a emerge.sh además de ser instalable en cualquier distro.

    uInstall

    Es un conjunto de scripts para administrar conjuntos de archivos, denominados paquetes, en computadoras. Puede instalar, asignar, desinstalar, desasignar, y extraer archivos definiéndolos como miembros de un paquete.

    Upack

    Empaqueta y desempaqueta varios formatos de archivos, en particular .tbz2, o binarios de Gentoo/Ututo, recuperando la meta -información contenida.

    Upackname

    Dado el nombre de un paquete, sea de Gentoo, Debian, una distro basada en rpm u otros, lo separa en sus componentes como nombre, versión, “release”, extensión, etc.. Dados dos nombres del mismo paquete compara cual es más nuevo.

    Docs

    Conjunto de documentos del sistema

    XulPack

    Interfaz gráfica del uGet.

    Como participar:

    Para participar suscribirse a:

    Criticar, comentar, colaborar, etc. development@sumapack.org PONER URL
    Consultar users@sumapack.org
    Recibir anuncios (bajo tráfico) announcements@sumapack.org

    Toda colaboración es Bienvenida.

    Historia

    En desarrollo a retazos desde el 2002, con el Enrutador Ututo y la segunda versión del Ututo, y en el 2005 con el manifiesto antidistros. En enero del 2010 Diego Saravia crea el sitio de Summapack en el INENCO, UNSa y un esquema básico de herramientas y funciones. En setiembre del 2010 Pablo Rizzo integra uGet a Sumapack y se crea un sitio web para permitir un desarrollo colaborativo.

    Descargas

    download.html

    Referencias

    Murdock, Ian. How package management changed everything. http://ianmurdock.com/solaris/how-package-management-changed-everything/

    Saravia, Diego. Manifiesto Anti Distros. http://docs.hipatia.info/distros/

    http://en.opensuse.org/Software_Management_Command_Line_Comparison

    http://wiki.archlinux.org/index.php/Pacman_Rosetta

    http://www.packagekit.org/index.html

    SOFTWARE EN DESARROLLO. Usar con precaución y sin garantía. Este software es absolutamente experimental. Diferentes areas de cada programa reflejan diferentes niveles de conocimiento, todavia no esta completo, ha sido probado en pocos paquetes y puede cambiar mucho en poco tiempo, no es estable y sus interfaces estan en re-diseño permanente.

    FIN. Muchas gracias.
    Maxima is a descendant of DOE Macsyma, which had its origins in the late 1960s at MIT. It is the only system based on that effort still publicly available and with an active user community, thanks to its open source nature. Macsyma was the first of a new breed of computer algebra systems, leading the way for programs such as Maple and Mathematica. This particular variant of Macsyma was maintained by William Schelter from 1982 until he passed away in 2001. In 1998 he obtained permission to release the source code under GPL. It was his efforts and skill which have made the survival of Maxima possible, and we are very grateful to him for volunteering his time and skill to keep the original Macsyma code alive and well. Since his passing a group of users and developers has formed to keep Maxima alive and kicking. Maxima itself is reasonably feature complete at this stage, with abilities such as symbolic integration, 3D plotting, and an ODE solver, but there is a lot of work yet to be done in terms of bug fixing, cleanup, and documentation. This is not to say there will be no new features, but there is much work to be done before that stage will be reached, and for now new features are not likely to be our focus.