Anteprima di"Bad Penguin"
=========================

 Autore: Antonio Gallo <agx@linux.it>
   Data: Mon Nov 13 23:19:39 2000 (0.0.1)



Prologo
=======
Dal 1997 ad oggi non ho fatto altro che scrivere e riscrivere "Bad Penguin",
mettendo insieme ideee, scripts e programmi. Da qui l'idea di ripartire da
zero implementando tutte le funzionalita' mancanti e sopratutto un sistema
di sviluppo in grado di portare alla completa ricostruzione della 
distribuzione in tempi brevi.



Feature
=======
"Bad Penguin" e' un insieme di componenti, concetti ed idee che forniscono
le seguenti features:
- profili hardware, si puo' scegliere al boot la configurazione della
  macchina da utilizzare tra diverse di esse;



Componenti
==========

- badpenguin-scripts, un'insieme di script di utilita' utilizzati da altri
  tool della distribuzione. Contiene "untar" per scompattare qualsiasi cosa.
  
- libbadpenguin, e' una libreria di base per fornire alcuni servizi: gestione
  del terminale (printf colorato), liste doppiamente concatenate, gestione
  del FileSystem, la funzione di untar per scompattare archivi .tar o .tar.gz

- libhardware, it's a library to detect your hardware devices (disks, 
  cdroms, scsi, netcard,
 soundcards, videocards and more);
 libhardware
  can also detect (read only) the partition of your hard disk EIDE or
  SCSI;

- libgringo, it's a library to develop programs that run both in CUI, 
  using ncurses,
 and/or in GUI, using GTK;

- device manager, it's a libgringo interface to handle module detection 
  and configuration;

- first stage setup program, it detect where is the distribution, then
  try to probe and load modules for each device using the distribution
  it self or prompting for the floppy with the modules, finally it mount
  again the distribution, if not found before, and run the second stage
  setup program;

- second stage setup program, it let you mangage your disks, let you
  edit a partition scheme for you system, let you select wich package
  to install, remove, restore or upgrade, and configure your system
  for the boot;

- package manager, it's a libgringo based interface to pkg-tools;


- package-tools, contains a set of command line tools to build, 
  install and manage
 packages assembled into the .bpp format;


- package-setup, it's the command line tool (like rpm, or dpkg) to
  deal with .bpp packages;


- gringosh, is a shell that read statements from the command line or 
  from a file 
in order to produce a form using libgringo; the form will 
  be interactive and will
 produce a dump of all the objects on the stderr, 
  this dump is usefull for shell
 script in order to build dinamic 
  interface for configuration scripts;


- service manager, a set of tools and libgringo utility to handle services, 
  devices
 and daemons;



Dependencies
============

package-setup -----> package-tools -----> "packages
"

libcfdisk
    |
    |
    V
libhardware ---> device manager -----> installer stage1
               ^                             |
               |                             |
               |
                             V
libgringo -+---+> package manager ----> installer stage2
           |
           +----> gringosh -----------> configuration tools
           |                          ^
	   |                          |
           \----> service manager ----/


