AGX's Users Profiles 1.6.0
@1997,98,99 by Antonio GALLO <agx@TOGLIMI.linux.it>
===================================================
1999-04-27, Versione 1.0.0 by AGX
1999-09-18, Versione 1.1.0 by AGX
1999-10-16, Versione 1.2.0 by AGX [Candidate]
---------------------------------------------------





Policy per gli script degli user profiles
*****************************************

- I file eseguiti al boot del sistema risiedono in /etc/init.d/ ed hanno 
  estensione .rc, esclusi i servizi che hanno estensione .service
  
- Se i file di boot modificano file di sistema, in accordo a variabili
  lette dal profilo, devono allora avere una struttura simile ai servizi,
  ed includere le funzioni appropriate per il loro utilizzo.
  In pratica devono utilizzare 'service_check_profile' ed implementare un
  metodo 'initialize'
  
- I file con i parametri di configurazione risiedono 
  in /etc/sysconfig/$PROFILE/
  
- I file di configurazione risiedono in /usr/local/lib/agx-userprofiles/
  ed hanno estensione .sh o comunque in accordo alla shell che richiedono
  per essere eseguiti.
  
- Ogni script deve utilizzare 'trap' per la rimozione dei file temporanei
  come in questo esempio. I files sono memorizzati in $HOME/tmp

    # --- Temp Script ---
    TEMPDIR="$HOME/tmp"
    [ ! -d $TEMPDIR ] && mkdir -p $TEMPDIR
    TEMPSCRIPT=$TEMPDIR/tempscript.$$
    TEMPDATA=$TEMPDIR/tempdata.$$
    trap 'rm -f $TEMPDATA $TEMPSCRIPT' 0

- Ogni file di configurazione deve rispettare il seguente schema per
  applicare le modifiche:
    1. fermare il servizio con:
	service <nome_servizio> stop relaxed
    2. modificare il file di configurazione in /etc/sysconfig/$PROFILE/
    3. inizializzare il servizio con
	service <nome_servizio> init
    4. riavviare il servizio con
	service <nome_servizio> start





INDICE DELLE CATEGORIE
**********************
    - Tastiera e Console
    - Hardware
    - Modem & Internet
    - Informazioni di sistema
    - Configurazione del sistema

    - Altri


**********************  TASTIERA & CONSOLE  ************************

**********************  H A R D W A R E  *************************



cdrom
-----
Eseguito da /etc/init.d/cdrom.rc
    - in initialize: elabora il file /etc/fstab rimuovendo tutti i FS di 
      tipo iso9660 ed aggiungendo i cdrom configurati.
Inpostazioni in /etc/sysconfig/$PROFILE/cdrom e cdrom2
    CD_MOUNTPOINT=/cdrom|/cdrom2" 
    CD_DEVICE="NONE" or CD_DEVICE="/dev/sbpcd" or any other cdrom device
    CD_AUTOMOUNT="auto|noauto"
Configurato da /usr/local/lib/agx-userprofiles/cdrom.sh
    - Accetta come parametro il device da creare (cdrom,cdrom2,cdrom3)
      e crea di conseguenza /dev/cdrom o /dev/cdrom?


mouse
-----
Eseguito da /etc/init.d/gpm.service (agx-servicemanager)
    - Configura il device /dev/mouse
    - Carica il demone gpm usando l'opzione -R per il "repeater"
Inpostazioni in /etc/sysconfig/$PROFILE/mouse
    MOUSE_DEVICE="/dev/psaux"		# Device da linkare a /dev/mouse
    MOUSETYPE="Microsoft|PS/2"		# Tipo di mouse per X-Window
    XEMU3=no				# Emulare i 3 bottoni ?
    GPM_TYPE="ms"			# TIpo di mouse per 'gpm -t'
Configurato da /usr/local/lib/agx-userprofiles/mouse.sh
TODO:
    - Cambiare il file di configurazione ANCHE di SVGAlib
    - Non mostrare tutte le porte seriali ma solo quelle disponibili con
      setserial -bg /dev/ttyS[0123]
    - L'opzione -R funziona con X-Window ??



PCMCIA
------
Eseguito da /etc/init.d/pcmcia.service (agx-servicemanager)
Impostazioni in /etc/sysconfig/$PROFILE/pcmcia
    PCMCIA=yes|no
    PCIC=i82365|tcic
    PCIC_OPTS=
    CORE_OPTS=
    CARDMGR_OPTS=
    SCHEME=
Configurato in /usr/local/lib/agx-userprofiles/pcmcia.sh


**********************   MODEM & INTERNET  *************************

********************** INFORMAZIONI DI SISTEMA *************************


Cronistoria del sistema
=======================
Eseguito da /usr/local/lib/agx-userprofiles/user-and-system-history.sh
(agx-controlpanel)
Visualizza alcune informazioni sull'hardware del sistema.



Informazioni sul sistema
========================
Eseguito da /usr/local/lib/agx-userprofiles/system-information.sh
(agx-controlpanel)
Visualizza alcune informazioni sull'hardware del sistema.



Performance Monitor
===================
Eseguito da /usr/local/lib/agx-userprofiles/performance-monitor.sh
(agx-controlpanel)
Visualizza le statistiche sull'hardware (utilizzo, IRQ, swap)



Statistiche di utilizzo
=======================
Eseguito da /usr/local/lib/agx-userprofiles/load-stats-and-uptime.sh
(agx-controlpanel)
Visualizza l'uptime corrente.



Task Manager
============
Eseguito da /usr/local/lib/agx-userprofiles/task-manager.sh (agx-controlpanel)
Avvia il task manager.



Utenti connessi
---------------
Eseguito da /usr/local/lib/agx-userprofiles/logged-users.sh (agx-controlpanel)
Visualizza l'elenco degli utenti attualmente connessi al sistema.



Visualizzatore Eventi
=====================
Eseguito da /usr/local/lib/agx-userprofiles/event-viewer.sh (agx-controlpanel)
Legge l'elenco dei log da /var/log/*.log permettendo di
  visualizzarne il contenuto.



****************** CONFIGURAZIONE DEL SISTEMA  *********************


Accounting (agx-servicemanager)
===============================
Temporaneamente qui (TODO)


Apmd (agx-servicemanager)
==========================
Temporaneamente qui (TODO)


Esound (agx-servicemanager)
===========================
Temporaneamente qui (TODO)



Inetd
=====
Eseguito da /etc/init.d/inetd.service (agx-servicemanager)
Inpostazioni in 
    /etc/sysconfig/$PROFILE/inetd.conf
        ENABLED="NO"
	SERVICE=""
        SOCKET_TYPE="stream"
	PROTO="tcp"
        FLAGS="nowait"
	USER="root"
        SERVER_PATH=""
	SERVER_ARGS=""
    /etc/sysconfig/$PROFILE/*.inetd
Configurato da /usr/local/lib/agx-userprofiles/inetd-editor.sh


netdevice.rc
-----------
Eseguito da /etc/init.d/netdevice.rc (agx-servicemanager)
    Configura l'interfaccia di rete specificata come parametro
    Uso: netdevice.rc eth0 start
    Anche: netdevice.rc eth0:0 start
Inpostazioni in /etc/sysconfig/$PROFILE/*.interface
    HOSTNAME=$I_HOSTNAME
    DOMAINNAME=$I_DOMAINNAME
    IPADDR=127.0.0.1
    DHCP=NO
    NETWORK=127.0.0.0
    BROADCAST=127.0.0.255
    NETMASK=255.255.255.0
    GATEWAY=
    DNS1=
    DNS2=
Configurato da
    /usr/local/lib/agx-userprofiles/netdevice.sh
	Sceglie quale interfaccia configurare
    /usr/local/lib/agx-userprofiles/netconf.sh
	Configura l'interfaccia scelta con netdevice.sh




network
-------
Eseguito da /etc/init.d/network.service (agx-servicemanager)
    Configura l'interfaccia di loopback e la rete
Inpostazioni in /etc/sysconfig/$PROFILE/network
    NETWORKING=YES|NO
    HOSTNAME=localhost
    DOMAINNAME=localnet
Configurato da
    /usr/local/lib/agx-userprofiles/netstart.sh
	Chiede se la rete e' configurata o no (localhost)
	quindi altera il parametro NETWORKING in "network"
    /usr/local/lib/agx-userprofiles/hostname.sh	
	Per specificare l'hostname del sistema    
    /usr/local/lib/agx-userprofiles/netconf.sh
	Configura i device (vedi sopra)


portmapper
----------
Eseguito da /etc/init.d/portmapper.service (agx-servicemanager)


quotha
------
Eseguito da /etc/init.d/quota.service (agx-servicemanager) [TODO]


samba
-----
Eseguito da /etc/init.d/samba.service (agx-servicemanager) [TODO]


sendmail
--------
Eseguito da /etc/init.d/sendmail.service (agx-servicemanager) [TODO]


update
------
Eseguito da /etc/init.d/update.service (agx-sericemanager)
    Avvia update
Impostazioni in /etc/sysconfig/$PROFILE/update
    FLUSHTIME="30"
    SYNCTIME="300"
Configurato da /usr/local/lib/agx-userprofiles/update.sh



xdm
---
Eseguito da /etc/init.d/xdm.service (agx-servicemanager)



**************************** ALTRI *************************************


a: (agx-controlpanel)
---------------------
Monta il floppy



cdrom (agx-controlpanel)
------------------------
Monta il cdrom



color, echoc, colortest (agx-controlpanel)
------------------------------------------
Gestione dei colori dalla shell. Color cambia il colore attuale mentre
echoc visualizza una stringa con un dato colore. Colortest effettua un
test sulle capacita' grafiche del terminale in uso.


diskcopy (agx-controlpanel)
---------------------------
Effettua la duplicazione di un floppy usando un file di appoggio.


edit (agx-controlpanel)
-----------------------
Front end all'editor di default


filesize (agx-controlpanel)
---------------------------
Ritorna le dimensioni in bytes di un file


controlpanel --> mainmenu.sh (agx-controlpanel)
-----------------------------------------------
Lo script del pannello di controllo
Per una descrizione completa vedere 'controlpanel.txt'


messages (agx-controlpanel)
---------------------------
Visualizza quanti messaggi sono presenti nella inbox


rgrep (agx-controlpanel)
------------------------
Effettua un grep ricorsivo scendendo anche nelle sottodirectory


squeeze (agx-controlpanel)
--------------------------
Elimina ricorsivamente dei file temporanei, scendendo anche nelle sottodirectory


========================= TASTIERA E CONSOLE =============================



Layout della tastiera
*********************
Eseguito da /etc/init.d/keyboard-layout.rc
    - Carica la mappa della tastiera per la console
Inpostazioni in /etc/sysconfig/$PROFILE/keyboard
    KEYTABLE="Path completo della mappa di tastiera"
    MAPNAME="basename del file senza estensione"
Configurato da /usr/local/lib/agx-userprofiles/keyboard-layout.sh
    - Legge le mappe in /usr/lib/kbd/keytables o /usr/share/keytables
    - (TODO) Attualmente viene modificato /dev/port, questo deve essere
	     fatto in agx-base-devices


Mappa Unicode
*************
Eseguito da /etc/init.d/unicode-map.rc
    - Applica la mappa unicode selezionata alle prime 8 console
Inpostazioni in /etc/sysconfig/$PROFILE/unimap
    UNICODEMAP="percorso completo della mappa unicode"
Configurato da /usr/local/lib/agx-userprofiles/unimap.sh
    - Legge le mappe da /usr/lib/kbd/consoletrans/ o /usr/share/consoletrans
TODO:
    - Non viene configurato automaticamente



Velocita' e ritardo
*******************
Eseguito da /etc/init.d/keyboard-rate-and-delay.rc
    - Inposta la velocita di ritardo e di ripetizione per la tastiera
      in modalita' console
Inpostazioni in /etc/sysconfig/$PROFILE/ratedelay
    KRATE="valore della velocita' di ripetizione dei tasti"
    KDELAY="valore del ritardo"
Configurato da /usr/local/lib/agx-userprofiles/keyboard-rate-and-delay.sh
TODO:
    - Non viene configurato automaticamente


Stato dei Led
*************
Eseguito da /etc/init.d/keyboard-leds.rc
    - Applica le informazioni sullo stato dei led della tastiera alle prime
      8 console
    - Il tasto SCROLL-LOCK viene razionalmente lasciato sempre spento
Impostazioni in /etc/sysconfig/$PROFILE/kbleds
    KNUMLOCK="YES|NO"
    KCAPSLOCK="YES|NO"
Configurato da /usr/local/lib/agx-userprofiles/keyboard-leds.sh
TODO:
    - Non viene configurato automaticamente



Font della console
******************
Eseguito da /etc/init.d/console-fonts.rc
Inpostazioni in /etc/sysconfig/$PROFILE/fonts
    CONSOLEFONT=/complete/path/of/the/font/to/load
Configurato da /usr/local/lib/agx-userprofiles/console-fonts.sh
    - L'elenco dei font e' preso da /usr/lib/kbd/consolefonts/*
TODO:
    - Permettere l'utilizzo anche da un'altra directory,
	i.e. /usr/share/consolefonts/
    - Il font selezionato deve diventare quello di default
    - Restorare i font all'uscita di X-Window
    - Restorare i font dopo l'uso di stm



=========================  HARDWARE  =============================




plug-and-pray
**************
Eseguito da /etc/init.d/pnp
    - Crea isapnp.conf usando pnpdump
    - Passa isapnp.conf ad isapnp per abilitare le periferiche
Inpostazioni in /etc/sysconfig/$PROFILE/isapnp.conf
Configurato da TODO
TODO:
    - Creare script di configurazione
    - Chiedere se si vuole filtrare l'output prima di editarlo
    - Creare programma con libgringo per selezionare le possibili
      configurazioni





Porte Seriali
**************
Eseguito da /etc/init.d/pnp
    - Crea isapnp.conf usando pnpdump
    - Passa isapnp.conf ad isapnp per abilitare le periferiche
Inpostazioni in /etc/sysconfig/$PROFILE/isapnp.conf
Configurato da TODO
TODO:
      

=========================  MODEM & INTERNET  =============================


Modem
**************
Eseguito da /etc/init.d/modem.rc
    - Crea isapnp.conf usando pnpdump
    - Passa isapnp.conf ad isapnp per abilitare le periferiche
Inpostazioni in /etc/sysconfig/$PROFILE/modem
    MODEM_DEVICE="NONE|/dev/ttyS?"
    MODEM_FLOW="NONE|HARDWARE|SOFTWARE"
    MODEM_SPEED="9600|19200|38400|ecc."  
Configurato da /usr/local/lib/agx-userprofiles/modem.sh
    - Modifica /dev/modem
TODO:
    - Mostrare solo le porte seriali disponibili, tramite setserial -bg /dev/cua?
    - Mettere di default l'HARDWARE control flow
    - Su nuovo modem configurare in cascata tutte le impostazioni


internet.sh - manage internet connections
*****************************************
Inpostazioni in /etc/sysconfig/*.internet
Configurato da /usr/local/lib/agx-userprofiles/internet.sh
    - Enumera tutte le connessioni *.internet presenti nel sistema
      e chiama edit_connetion.sh per editarle


edit_connection.sh - edit one internet connection
*************************************************
Inpostazioni in /etc/sysconfig/*.internet
Configurato da /usr/local/lib/agx-userprofiles/edit_connection.sh <nome_connessione>
    ISP_CONNECTION="LINUX|MSCHAP|CHAP|PAP"	Connection Type
    ISP_TELEPHONE=""		Telephone number to call
    ISP_ACCOUNT=""		User Account at ISP
    ISP_PASSWORD=""		Clear Text Password (WATCH OUT!)
    MDM_TONE="TONE|PULSE"	Type of line
    MDM_WAIT="NO|YES"		Modem should wait for dialtone ?
    MDM_STRING=			Modem string
    ISP_DNS1,  ISP_DNS2		DNS
    ISP_WINS1, ISP_WINS2	Wins fucked address
    - Crea un chatscript in /etc/ppp/chatscripts/<connection_name>
TODO:
    - Callback support
    - Protocol PAP is OK. CHAP and MSCHAP have not been tested





[ swap.sh ] - Configura una swap partition o uno swap file
Prerequisiti:
Parametri in "swap":
    SWAP_FILE
    SWAP_DEVICE
    SWAP_SIZE_KB
    swap.service
Usa:
TODO:



[ timezone.sh ] - 
Prerequisiti:
    /usr/lib/zoneinfo	o	/usr/share/zoneinfo
Parametri in "timezone":
    TIMEZONE=
Usa:
    clock.rc
TODO:




* Network Configuration

  netconf.sh - Configure a network interface
    Need: /proc/net/dev
    Config: <interface|name> ( eth0, eth1, plip0, dummy0, ecc. )
    HOSTNAME=localhost
    DOMAINNAME=localnet
    IPADDR=127.0.0.1
    DHCP=NO|YES
    NETWORK=127.0.0.0
    BROADCAST=127.0.0.255
    NETMASK=255.255.255.0
    GATEWAY=
    DNS1=
    DNS2=
    Use: service network
    
  
  netstart.sh - ask to work or not into a network environment
    Config: network
    NETWORKING=no
      or use netdevice.sh
    Use: service network
     
  network.sh - network configuration menu'


* Pending Packages
  pendingpkg.sh - Configure AGX-Packages that need to be configured
    (i.e. to run the /install/POST-INSTALL scheduled )
  Use: /var/spool/agxqueue/*.pot-install
  
  
* Profiles
  profiles.sh - Manage profile
  Need: /etc/sysconfig/*
  [TODO: Add, Delete, Rename, Set as default ]    
  
* Reboot System menu'
  (todo)


* Swap File/Partition
  swap.sh
    Config: swap
    SWAP_DEVICE="NONE|<swap file name (default:/swapfile)>|<swap device name>"
	This is the device to use as swap partition or swapfile.
	If NONE no swap system is used.
    SWAP_FILE="NONE|YES"
	Tell if SWAP_DEVICE is a partition(no) or a swap-file (yes)
    SWAP_SIZE_KB="<size of swap file, if any>"
	Used to specify the size, in kilobytes, of a swapfile
    Use: service swap


* TimeZone
  timezone.sh
  Use: /usr/lib/zoneinfo/
  Config: timezone
  TIMEZONE=/timezone/path
  [ TODO: Enforce, seems that its not set at boot time ]
  

  
  
* User and Group Manager

  user_group.sh 	- user and group manager menu'
  user_new.sh		- add a new user
  usermanager.sh	- manage users
  [ TODO: ...TODO... ]
  
  
* X-Window Configuration Program
  xfree-configure
  Need: 
      /etc/sysconfig/$PROFILE/mouse
      /etc/sysconfig/$PROFILE/keyboard
      /usr/X11R6/lib/X11/Cards
  Modify:
      /etc/sysconfig/$PROFILE/xdm	( start/stop xdm )
