flavors rev 67

Add core-xfce
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Dec 05 17:40:41 2010 +0100 (2010-12-05)
parents a5f7a52a36b0
children fb7557eb6d02
files core-xfce/packages.list core-xfce/receipt core-xfce/rootcd/README core-xfce/rootcd/boot/isolinux/splash.lss core-xfce/rootcd/images/header.png core-xfce/rootcd/index.html core-xfce/rootcd/style.css core-xfce/rootfs/etc/init.d/bootopts.sh core-xfce/rootfs/etc/init.d/network.sh core-xfce/rootfs/etc/lxpanel/default/panels/panel core-xfce/rootfs/etc/skel/.Xdefaults core-xfce/rootfs/etc/skel/.config/pcmanfm/main core-xfce/rootfs/etc/skel/.gtkrc-2.0 core-xfce/rootfs/etc/skel/.netsurf/Choices core-xfce/rootfs/etc/skel/Desktop/slitaz-doc.desktop core-xfce/rootfs/etc/slitaz/applications.conf core-xfce/rootfs/etc/xdg/openbox/menu.en.xml core-xfce/rootfs/etc/xdg/openbox/menu.fr.xml core-xfce/rootfs/etc/xdg/openbox/menu.pt.xml core-xfce/rootfs/etc/xdg/openbox/rc.xml core-xfce/rootfs/root/.Xdefaults core-xfce/rootfs/root/.gtkrc-2.0 core-xfce/rootfs/sbin/tazlocale core-xfce/rootfs/usr/bin/slitaz-installer core-xfce/rootfs/usr/bin/tazlito core-xfce/rootfs/usr/bin/tazlitobox core-xfce/rootfs/usr/bin/wifibox core-xfce/rootfs/usr/share/applications/burnbox-doc.desktop core-xfce/rootfs/usr/share/applications/gpl-license.desktop core-xfce/rootfs/usr/share/applications/system-doc.desktop core-xfce/rootfs/usr/share/applications/tazlito-doc.desktop core-xfce/rootfs/usr/share/applications/tazlitobox.desktop core-xfce/rootfs/usr/share/applications/tazpkg-doc.desktop core-xfce/rootfs/usr/share/doc/slitaz/book.css core-xfce/rootfs/usr/share/doc/slitaz/favicon.ico core-xfce/rootfs/usr/share/doc/slitaz/images/css/header.png core-xfce/rootfs/usr/share/doc/slitaz/index.de.html core-xfce/rootfs/usr/share/doc/slitaz/index.en.html core-xfce/rootfs/usr/share/doc/slitaz/index.fr.html core-xfce/rootfs/usr/share/doc/slitaz/index.hu.html core-xfce/rootfs/usr/share/doc/slitaz/index.pt.html core-xfce/rootfs/usr/share/doc/slitaz/template.html core-xfce/rootfs/usr/share/images/slitaz-background.jpg core-xfce/rootfs/usr/share/pixmaps/slitaz-menu.png core-xfce/rootfs/usr/share/slim/themes/slitaz/background.png core-xfce/rootfs/usr/share/slim/themes/slitaz/panel.png core-xfce/rootfs/usr/share/slim/themes/slitaz/slim.theme core-xfce/rootfs/usr/share/webhome/index.html core-xfce/rootfs/usr/share/webhome/netsurf.html core-xfce/rootfs/usr/share/webhome/style.css
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/core-xfce/packages.list	Sun Dec 05 17:40:41 2010 +0100
     1.3 @@ -0,0 +1,250 @@
     1.4 +915resolution
     1.5 +alsa-lib
     1.6 +alsaplayer
     1.7 +alsa-utils
     1.8 +asunder
     1.9 +atk
    1.10 +attr
    1.11 +beaver
    1.12 +busybox
    1.13 +busybox-pam
    1.14 +bzlib
    1.15 +cairo
    1.16 +cairomm
    1.17 +cairo
    1.18 +cdparanoia-III
    1.19 +cdrkit
    1.20 +clearlooks
    1.21 +conspy
    1.22 +curl
    1.23 +dbus
    1.24 +dbus-glib
    1.25 +depmod
    1.26 +desktop
    1.27 +dialog
    1.28 +dropbear
    1.29 +e2fsprogs
    1.30 +enchant
    1.31 +epdfview
    1.32 +expat
    1.33 +firefox
    1.34 +fontconfig
    1.35 +freetype
    1.36 +fuse
    1.37 +galculator
    1.38 +gamin
    1.39 +gcc-lib-base
    1.40 +gcolor2
    1.41 +GConf
    1.42 +gdbm
    1.43 +get-flash-plugin
    1.44 +gettext
    1.45 +get-wifi-firmware
    1.46 +glib
    1.47 +glibc-base
    1.48 +glibmm
    1.49 +gparted
    1.50 +gpxe
    1.51 +grub
    1.52 +gtk+
    1.53 +gtkdialog
    1.54 +gtkmm
    1.55 +gtk
    1.56 +hal
    1.57 +hardinfo
    1.58 +hicolor-icon-theme
    1.59 +isapnptools
    1.60 +isomaster
    1.61 +jpeg
    1.62 +kbd-busybox
    1.63 +lcms
    1.64 +leafpad
    1.65 +libcap
    1.66 +libcddb
    1.67 +libcdio
    1.68 +libcomerr
    1.69 +libcrypto
    1.70 +libcurl
    1.71 +libdb
    1.72 +libdrm
    1.73 +libexif
    1.74 +libexo
    1.75 +libfirefox
    1.76 +libgcrypt
    1.77 +libgio
    1.78 +libgiomm
    1.79 +libglade
    1.80 +libgnutls
    1.81 +libgpg-error
    1.82 +libical
    1.83 +libIDL
    1.84 +libidn
    1.85 +libmad
    1.86 +libnotify
    1.87 +libogg
    1.88 +libpng
    1.89 +libsexy
    1.90 +libsigc++
    1.91 +libsoup
    1.92 +libssl
    1.93 +libtasn1
    1.94 +libtool
    1.95 +libunique
    1.96 +libusb
    1.97 +libusb
    1.98 +libvorbis
    1.99 +libwebkit
   1.100 +libwnck
   1.101 +libxcb
   1.102 +libxfce4menu
   1.103 +libxfce4util
   1.104 +libxfcegui4
   1.105 +libxml2
   1.106 +libxslt
   1.107 +linux
   1.108 +linux-crypto
   1.109 +linux-sound
   1.110 +linux-wireless
   1.111 +locale-de
   1.112 +locale-es
   1.113 +locale
   1.114 +locale
   1.115 +lostirc
   1.116 +lua
   1.117 +lxappearance
   1.118 +lxpanel
   1.119 +lxtask
   1.120 +lzlib
   1.121 +lzma
   1.122 +menu-cache
   1.123 +mercurial
   1.124 +mesa
   1.125 +mhwaveedit
   1.126 +midori
   1.127 +mtpaint
   1.128 +nano
   1.129 +ncurses
   1.130 +ncurses
   1.131 +ncursesw
   1.132 +ntfs-3g
   1.133 +ntfsprogs
   1.134 +obconf
   1.135 +openbox
   1.136 +openssl
   1.137 +ORBit2
   1.138 +osmo
   1.139 +pam
   1.140 +pango
   1.141 +pangomm
   1.142 +parted
   1.143 +patch
   1.144 +pciutils
   1.145 +pcmanfm
   1.146 +pcmciautils
   1.147 +pcre
   1.148 +perl
   1.149 +perl
   1.150 +perl-xml-parser
   1.151 +pixman
   1.152 +PolicyKit0
   1.153 +poppler
   1.154 +popt
   1.155 +ppp
   1.156 +python
   1.157 +readline
   1.158 +rp-pppoe
   1.159 +shared-mime-info
   1.160 +slim
   1.161 +slitaz-base-files
   1.162 +slitaz-boot-scripts
   1.163 +slitaz-configs
   1.164 +slitaz-doc
   1.165 +slitaz
   1.166 +slitaz-menus
   1.167 +slitaz-polar-cursors
   1.168 +slitaz-tools
   1.169 +slitaz-tools-boxes
   1.170 +sqlite
   1.171 +startup-notification
   1.172 +sudo
   1.173 +sudoku-savant
   1.174 +suggested
   1.175 +sysfsutils
   1.176 +syslinux
   1.177 +syslinux-extra
   1.178 +tazlito
   1.179 +tazpkg
   1.180 +tazusb
   1.181 +tazwok
   1.182 +tcl
   1.183 +thunar
   1.184 +thunar-archive-plugin
   1.185 +thunar-volman
   1.186 +tiff
   1.187 +tk
   1.188 +transmission
   1.189 +transset-df
   1.190 +ttf-dejavu
   1.191 +udev
   1.192 +util
   1.193 +util
   1.194 +util
   1.195 +viewnior
   1.196 +web-applications
   1.197 +wireless_tools
   1.198 +wpa_supplicant
   1.199 +xcb
   1.200 +xfce4
   1.201 +xfce4-icon-theme
   1.202 +xfce4-panel
   1.203 +xfce4-session
   1.204 +xfce4
   1.205 +xfce4
   1.206 +xfce-utils
   1.207 +xfconf
   1.208 +xfdesktop
   1.209 +xfdesktop
   1.210 +xfwm4
   1.211 +xfwm4-themes
   1.212 +xorg
   1.213 +xorg-base-fonts
   1.214 +xorg-iceauth
   1.215 +xorg-libfontenc
   1.216 +xorg-libICE
   1.217 +xorg
   1.218 +xorg-libSM
   1.219 +xorg-libX11
   1.220 +xorg-libXau
   1.221 +xorg-libXaw
   1.222 +xorg-libXcomposite
   1.223 +xorg-libXcursor
   1.224 +xorg-libXdamage
   1.225 +xorg-libXdmcp
   1.226 +xorg-libXext
   1.227 +xorg-libXfixes
   1.228 +xorg-libXfont
   1.229 +xorg-libXft
   1.230 +xorg-libXi
   1.231 +xorg-libXinerama
   1.232 +xorg-libxkbfile
   1.233 +xorg-libXmu
   1.234 +xorg
   1.235 +xorg-libXpm
   1.236 +xorg-libXrandr
   1.237 +xorg-libXrender
   1.238 +xorg-libXss
   1.239 +xorg-libXt
   1.240 +xorg-libXtst
   1.241 +xorg
   1.242 +xorg-rgb
   1.243 +xorg-server
   1.244 +xorg-setxkbmap
   1.245 +xorg-xauth
   1.246 +xorg-xcompmgr
   1.247 +xorg-xf86-input-keyboard
   1.248 +xorg-xf86-input-mouse
   1.249 +xorg-xf86-video-vesa
   1.250 +xorg-xkbcomp
   1.251 +xorg-xkeyboard-config
   1.252 +xterm
   1.253 +zlib
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/core-xfce/receipt	Sun Dec 05 17:40:41 2010 +0100
     2.3 @@ -0,0 +1,11 @@
     2.4 +# SliTaz flavor receipt.
     2.5 +
     2.6 +FLAVOR="core-xfce"
     2.7 +SHORT_DESC="SliTaz Core with XFCE Desktop, Firefox and Mercurial"
     2.8 +VERSION="20100512"
     2.9 +MAINTAINER="miltonsj@gmail.com"
    2.10 +
    2.11 +FRUGAL_RAM="320M"
    2.12 +ROOTFS_SIZE="252.8M"
    2.13 +INITRAMFS_SIZE="54.3M"
    2.14 +ISO_SIZE="57.1M"
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/core-xfce/rootcd/README	Sun Dec 05 17:40:41 2010 +0100
     3.3 @@ -0,0 +1,67 @@
     3.4 +README SliTaz GNU/Linux CD                                          August 2007
     3.5 +===============================================================================
     3.6 +
     3.7 +
     3.8 +Français
     3.9 +--------
    3.10 +Ce cdrom est un système autonome Live, il vous suffit de démarrer sur le CD
    3.11 +(booter) et SliTaz se lance en mémoire vive (RAM), sans toucher à votre système
    3.12 +actuel. SliTaz peut fonctionner des mois entiers sans redémarrer, le système
    3.13 +peut fonctionner dans 128 Mb de mémoire vive et sur des machines sans disque dur.
    3.14 +Mais SliTaz est aussi pleinement installable sur un disque dur et largement
    3.15 +extensible via le gestionnaire de paquets et la compilation de nouvelles
    3.16 +applications depuis les sources.
    3.17 +
    3.18 +Une fois le système lancé, vous disposez d'un shell ash, et vous pouvez retirer
    3.19 +le cdrom, car SliTaz utilise la mémoire vive (RAM) de la machine. Le système
    3.20 +fournit plus de 200 commandes Linux, un mini serveur web, navigateur web,
    3.21 +client de chat IRC, support IDE, eth0, usb, le système X et bien plus {...}.
    3.22 +
    3.23 +SliTaz peut être utilisé pour réparer, et tester un disque dur avec fdisk,
    3.24 +hdparm, ou les outils e2fsprogs. Le système et aussi pleinement installable,
    3.25 +vous pouvez jetter un coup d'oeil au document install-guide.html.
    3.26 +
    3.27 +Slitaz GNU/Linux est distribué sans aucune garantie et publié car
    3.28 +potentiellement utile. SliTaz n'as aucune prétention, nous ne sommes que des
    3.29 +passionnés par l'informatique libre, qui aimons la liberté et le partage. Sur
    3.30 +le système vous trouverez le manuel d'utilisateur et la documentation dans :
    3.31 +/usr/share/doc, et les licences complète dans : /usr/share/licenses.
    3.32 +
    3.33 +Havefun!
    3.34 +
    3.35 +
    3.36 +English
    3.37 +-------
    3.38 +SliTaz is a micro GNU/Linux distro using BusyBox, a Linux kernel, and GNU
    3.39 +free software. SliTaz also use goodies from the Debian project. The goal of
    3.40 +SliTaz is to have a GNU/Linux distro working all in memory (RAM). SliTaz boot
    3.41 +with Syslinux, provide more than 200 Linux commands, LightTPD web serveur,
    3.42 +SSH server/client powered by Dropbear, rescue tools, X system, and much more
    3.43 +{...}.
    3.44 +
    3.45 +On the system you will find documentation in: /usr/share/doc, and the full
    3.46 +GPL license in: /usr/share/licenses.
    3.47 +
    3.48 +
    3.49 +LICENSE
    3.50 +-------
    3.51 +
    3.52 +Copyright (c)  2007  SliTaz GNU/Linux
    3.53 +
    3.54 +SliTaz is free software; you can redistribute it and/or modify
    3.55 +it under the terms of the GNU General Public License as published by
    3.56 +the Free Software Foundation; either version 3 of the License, or
    3.57 +(at your option) any later version.
    3.58 +
    3.59 +SliTaz is distributed in the hope that it will be useful,
    3.60 +but WITHOUT ANY WARRANTY; without even the implied warranty of
    3.61 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    3.62 +GNU General Public License for more details.
    3.63 +
    3.64 +You should have received a copy of the GNU General Public License
    3.65 +along with SliTaz; if not, write to the Free Software
    3.66 +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    3.67 +
    3.68 +
    3.69 +===============================================================================
    3.70 +                                                         http://www.slitaz.org/
     4.1 Binary file core-xfce/rootcd/boot/isolinux/splash.lss has changed
     5.1 Binary file core-xfce/rootcd/images/header.png has changed
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/core-xfce/rootcd/index.html	Sun Dec 05 17:40:41 2010 +0100
     6.3 @@ -0,0 +1,64 @@
     6.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     6.5 +    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     6.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
     6.7 +<head>
     6.8 +	<title>SliTaz GNU/Linux - CD</title>
     6.9 +	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    6.10 +	<meta name="description" content="SliTaz documentation book" />
    6.11 +	<meta name="expires" content="never" />
    6.12 +	<meta name="modified" content="2007-10-07 20:30:00" />
    6.13 +	<meta name="publisher" content="www.slitaz.org" />
    6.14 +	<meta name="author" content="Christophe Lincoln"/>
    6.15 +	<link rel="stylesheet" type="text/css" href="style.css" />
    6.16 +</head>
    6.17 +<body bgcolor="#ffffff">
    6.18 +<!-- Header -->
    6.19 +<div id="header">
    6.20 +	<a name="top"></a>
    6.21 +	<h1>SliTaz GNU/Linux - CD</h1>
    6.22 +</div>
    6.23 +
    6.24 +<!-- Content -->
    6.25 +<div id="content">
    6.26 +<h2><font color="#DF8F06">LiveCD informations</font></h2>
    6.27 +
    6.28 +<h3><font color="#9c2424">Français</font></h3>
    6.29 +<p>
    6.30 +Bienvenue sur la page d'index d'un cdrom de SliTaz GNU/Linux. Lisez le
    6.31 +fichier <a href="README">README</a> pour de plus amples informations, ou
    6.32 +démarrez votre ordinateur avec le cdrom dans le lecteur CD ou DVD, pour
    6.33 +lancer SliTaz en RAM et sans risques pour la machine hôte.
    6.34 +</p>
    6.35 +
    6.36 +<h3><font color="#9c2424">English</font></h3>
    6.37 +<p>
    6.38 +Welcome on a SliTaz GNU/Linux cdrom, SliTaz is mostly documented in French,
    6.39 +but the full system is available in English. To boot SliTaz from a cdrom,
    6.40 +just burn the ISO image onto a blank disc. Then reboot your computer with
    6.41 +the disc into your cdrom driver.
    6.42 +</p>
    6.43 +<p>
    6.44 +Have fun!<br />
    6.45 +- SliTaz community
    6.46 +</p>
    6.47 +
    6.48 +</div>
    6.49 +<!-- End content -->
    6.50 +<hr />
    6.51 +<!-- Footer -->
    6.52 +<div align="center" id="footer">
    6.53 +<p>
    6.54 +<font size="-1">
    6.55 +    <a href="#top">Haut de la page</a>
    6.56 +</font>
    6.57 +</p>
    6.58 +<p>
    6.59 +<font size="-1">
    6.60 +    Copyright © 2007 <a href="http://www.slitaz.org/">SliTaz</a> -
    6.61 +    <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a><br />
    6.62 +    Code <a href="http://validator.w3.org/">XHTML 1.0 valide</a>.
    6.63 +</font>
    6.64 +</p>
    6.65 +</div>
    6.66 +</body>
    6.67 +</html>
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/core-xfce/rootcd/style.css	Sun Dec 05 17:40:41 2010 +0100
     7.3 @@ -0,0 +1,57 @@
     7.4 +/* CSS style for SliTaz GNU/Linux generic xHTML files. */
     7.5 +body {
     7.6 +    font: 90% sans-serif, vernada, arial;
     7.7 +    margin: 0;
     7.8 +    }
     7.9 +/* Header */
    7.10 +#header{
    7.11 +    background: #BFB06B url(images/header.png) repeat-x top;
    7.12 +    color: black;
    7.13 +    width: 100%;
    7.14 +    height: 50px ;
    7.15 +    border-top: 1px solid black;
    7.16 +    border-bottom: 1px solid black;
    7.17 +    }
    7.18 +#content {
    7.19 +	margin: 0px 50px 26px 50px;
    7.20 +	}
    7.21 +#footer {
    7.22 +	border-top: 1px solid black;
    7.23 +	}
    7.24 +a {
    7.25 +	text-decoration: underline;
    7.26 +	}
    7.27 +a:hover {
    7.28 +	text-decoration: none;
    7.29 +	}
    7.30 +h1 {
    7.31 +    margin: 10px 0px 0px 6px;
    7.32 +    }
    7.33 +h2 {
    7.34 +    margin: 12px 0;
    7.35 +    }
    7.36 +pre {
    7.37 +    padding: 5px;
    7.38 +    color: black;
    7.39 +    background: #e1e0b0;
    7.40 +    }
    7.41 +pre.script {
    7.42 +    padding: 10px;
    7.43 +    color: black;
    7.44 +    background: #e8e8e8;
    7.45 +    border: 1px inset #333333;
    7.46 +}
    7.47 +li {
    7.48 +    line-height: 1.4em;
    7.49 +    }
    7.50 +code {
    7.51 +    font-size: 100%;
    7.52 +    color: #669900;
    7.53 +    background: transparent;
    7.54 +    }
    7.55 +hr {
    7.56 +	color: white;
    7.57 +    background-color: white;
    7.58 +    height: 1px;
    7.59 +    border: 0;
    7.60 +	}
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/core-xfce/rootfs/etc/init.d/bootopts.sh	Sun Dec 05 17:40:41 2010 +0100
     8.3 @@ -0,0 +1,212 @@
     8.4 +#!/bin/sh
     8.5 +# /etc/init.d/bootopts.sh - SliTaz boot options from the cmdline.
     8.6 +#
     8.7 +# Earlier boot options are in rcS, ex: config= and modprobe=
     8.8 +#
     8.9 +. /etc/init.d/rc.functions
    8.10 +
    8.11 +# Update fstab for swapon/swapoff 
    8.12 +add_swap_in_fstab()
    8.13 +{
    8.14 +	grep -q "$1	" /etc/fstab || cat >> /etc/fstab <<EOT
    8.15 +$1	swap	swap	default	0 0
    8.16 +EOT
    8.17 +}
    8.18 +
    8.19 +# Default user account without password (uid=1000). In live mode the option
    8.20 +# user=name can be used, but user must be added before home= to have home dir.
    8.21 +# This option is not handled by a loop and case like others and has no
    8.22 +# effect on an installed system.
    8.23 +if ! grep -q "100[0-9]:100[0-9]" /etc/passwd; then
    8.24 +	if grep -q "user=" /proc/cmdline; then
    8.25 +		USER=`cat /proc/cmdline | sed 's/.*user=\([^ ]*\).*/\1/'`
    8.26 +		# Avoid usage of an existing system user or root.
    8.27 +		if grep -q ^$USER /etc/passwd; then
    8.28 +			USER=tux
    8.29 +		fi
    8.30 +	else
    8.31 +		USER=tux
    8.32 +	fi
    8.33 +	echo -n "Configuring user and group: $USER..."
    8.34 +	echo "$USER:x:1000:1000:SliTaz User,,,:/home/$USER:/bin/sh" >> /etc/passwd
    8.35 +	echo "$USER::14035:0:99999:7:::" >> /etc/shadow
    8.36 +	echo "$USER:x:1000:" >> /etc/group
    8.37 +	echo "$USER:!::" >> /etc/gshadow
    8.38 +	status
    8.39 +	# Audio and cdrom group.
    8.40 +	addgroup $USER audio
    8.41 +	addgroup $USER cdrom
    8.42 +	# /home/$USER files from /etc/skel.
    8.43 +	if [ -d /etc/skel ]; then
    8.44 +		cp -a /etc/skel /home/$USER
    8.45 +		# Path for user desktop files.
    8.46 +		for i in /home/$USER/.local/share/applications/*.desktop
    8.47 +		do
    8.48 +			sed -i s/"user_name"/"$USER"/g $i
    8.49 +		done
    8.50 +	else
    8.51 +		mkdir -p /home/$USER
    8.52 +	fi
    8.53 +	# Set permissions.
    8.54 +	chown -R $USER.$USER /home/$USER
    8.55 +	# Slim default user.
    8.56 +	if [ -f /etc/slim.conf ]; then
    8.57 +		sed -i s/"default_user .*"/"default_user        $USER"/\
    8.58 +			/etc/slim.conf
    8.59 +	fi
    8.60 +fi
    8.61 +
    8.62 +# Parse /proc/cmdline for boot options.
    8.63 +echo "Parsing kernel cmdline for SliTaz live options... "
    8.64 +
    8.65 +for opt in `cat /proc/cmdline`
    8.66 +do
    8.67 +	case $opt in
    8.68 +		eject)
    8.69 +			# Eject cdrom.
    8.70 +			eject /dev/cdrom ;;
    8.71 +		autologin)
    8.72 +			# Autologin option to skip first graphic login prompt.
    8.73 +			echo "auto_login        yes" >> /etc/slim.conf ;;
    8.74 +		lang=*)
    8.75 +			# Check for a specified locale (lang=*).
    8.76 +			LANG=${opt#lang=}
    8.77 +			echo -n "Setting system locale to: $LANG... "
    8.78 +			echo "LANG=$LANG" > /etc/locale.conf
    8.79 +			echo "LC_ALL=$LANG" >> /etc/locale.conf
    8.80 +			[ ! -d /usr/lib/locale/$LANG ] && localedef \
    8.81 +				-i $LANG -c -f UTF-8 /usr/lib/locale/$LANG &
    8.82 +			status ;;
    8.83 +		kmap=*)
    8.84 +			# Check for a specified keymap (kmap=*).
    8.85 +			KEYMAP=${opt#kmap=}
    8.86 +			echo -n "Setting system keymap to: $KEYMAP..."
    8.87 +			echo "$KEYMAP" > /etc/keymap.conf
    8.88 +			status ;;
    8.89 +		home=*)
    8.90 +			# Check for a specified home partition (home=*) and check for 
    8.91 +			# user home dir. Note: home=usb is a shorter and easier way to
    8.92 +			# have home=/dev/sda1.
    8.93 +			DEVICE=${opt#home=}
    8.94 +			[ "$DEVICE" = "usb" ] && DEVICE=sda1
    8.95 +			echo "Home has been specified to $DEVICE..."
    8.96 +			USBDELAY=`cat /sys/module/usb_storage/parameters/delay_use`
    8.97 +			USBDELAY=$((1+$USBDELAY))
    8.98 +			echo "Sleeping $USBDELAY s to let the kernel detect the device... "
    8.99 +			sleep $USBDELAY
   8.100 +			USER=`cat /etc/passwd | grep 1000 | cut -d ":" -f 1`
   8.101 +			DEVID=$DEVICE
   8.102 +			if [ -x /sbin/blkid ]; then
   8.103 +				# Can be a label, uuid or devname. DEVID gives us first: /dev/name.
   8.104 +				DEVID=`/sbin/blkid | grep $DEVICE | cut -d: -f1`
   8.105 +				DEVID=${DEVID##*/}
   8.106 +			fi
   8.107 +			if [ -n "$DEVID" ] && grep -q "$DEVID" /proc/partitions ; then
   8.108 +				echo "Mounting /home on /dev/$DEVID... "
   8.109 +				[ -d /home/$USER ] && mv /home/$USER /tmp/$USER-files
   8.110 +				mount /dev/$DEVID /home -o uid=1000,gid=1000 2>/dev/null \
   8.111 +					|| mount /dev/$DEVID /home
   8.112 +				# Check if swap file must be generated in /home: swap=size (Mb).
   8.113 +				# This option is only used within home=device.
   8.114 +				if grep -q "swap=[1-9]*" /proc/cmdline; then
   8.115 +					SWAP_SIZE=`cat /proc/cmdline | sed 's/.*swap=\([^ ]*\).*/\1/'`
   8.116 +					# DD to gen a virtual disk.
   8.117 +					echo "Generating swap file: /home/swap ($SWAP_SIZE)..."
   8.118 +					dd if=/dev/zero of=/home/swap bs=1M count=$SWAP_SIZE
   8.119 +					# Make the Linux swap filesystem.
   8.120 +					mkswap /home/swap
   8.121 +					add_swap_in_fstab /home/swap
   8.122 +				fi
   8.123 +			else
   8.124 +				echo "Unable to find $DEVICE... "
   8.125 +			fi
   8.126 +			# Move all user dir if needed.
   8.127 +			if [ ! -d "/home/$USER" ] ; then
   8.128 +				mv /tmp/$USER-files /home/$USER
   8.129 +				chown -R $USER.$USER /home/$USER
   8.130 +			else
   8.131 +				rm -rf /tmp/$USER-files
   8.132 +			fi
   8.133 +			# Install all packages in /home/boot/packages. In live CD and 
   8.134 +			# USB mode the option home= mounts the device on /home, so we 
   8.135 +			# already have a boot directory with the Kernel and rootfs.
   8.136 +			if [ -d "/home/boot/packages" ]; then
   8.137 +				for pkg in /home/boot/packages/*.tazpkg
   8.138 +				do
   8.139 +					tazpkg install $pkg
   8.140 +				done
   8.141 +			fi ;;
   8.142 +		laptop)
   8.143 +			# Laptop option to load related Kernel modules.
   8.144 +			echo "Loading laptop modules: ac, battery, fan, yenta_socket..."
   8.145 +			for mod in ac battery fan yenta_socket
   8.146 +			do
   8.147 +				modprobe $mod
   8.148 +			done
   8.149 +			grep -qs batt /etc/lxpanel/default/panels/panel || 
   8.150 +			sed -i 's/= cpu/= batt\n}\n\nPlugin {\n    type = cpu/' \
   8.151 +				/etc/lxpanel/default/panels/panel 2> /dev/null
   8.152 +			# Enable Kernel Laptop mode.
   8.153 +			echo "5" > /proc/sys/vm/laptop_mode ;;
   8.154 +		mount)
   8.155 +			# Mount all ext3 partitions found (opt: mount).
   8.156 +			# Get the list of partitions.
   8.157 +			DEVICES_LIST=`fdisk -l | grep 83 | cut -d " " -f 1`
   8.158 +			# Mount filesystems rw.
   8.159 +			for device in $DEVICES_LIST
   8.160 +			do
   8.161 +				name=${device#/dev/}
   8.162 +				# Device can be already used by home=usb.
   8.163 +				if ! mount | grep ^$device >/dev/null; then
   8.164 +					echo "Mounting partition: $name on /mnt/$name"
   8.165 +					mkdir /mnt/$name
   8.166 +					mount $device /mnt/$name
   8.167 +				fi
   8.168 +			done ;;
   8.169 +		mount-packages)
   8.170 +			# Mount and install packages-XXX.iso (useful without Internet 
   8.171 +			# connection).
   8.172 +			PKGSIGN="LABEL=\"packages-$(cat /etc/slitaz-release)\" TYPE=\"iso9660\""
   8.173 +			PKGDEV=$(blkid | grep "$PKGSIGN" | cut -d: -f1)
   8.174 +			[ -z "$PKGDEV" -a -L /dev/cdrom ] && \
   8.175 +				PKGDEV=$(blkid /dev/cdrom | grep "$PKGSIGN" | cut -d: -f1)
   8.176 +			if [ -n "$PKGDEV" ]; then
   8.177 +				echo -n "Mounting packages archive from $PKGDEV..."
   8.178 +				mkdir /packages && mount -t iso9660 -o ro $PKGDEV /packages
   8.179 +				status
   8.180 +				/packages/install.sh
   8.181 +			fi ;;
   8.182 +		wm=*)
   8.183 +			# Check for a Window Manager (for a flavor, default WM can be changed
   8.184 +			# with boot options or with an addfile in /etc/X11/wm.default.
   8.185 +			WM=${opt#wm=}
   8.186 +			mkdir -p /etc/X11
   8.187 +			case $WM in
   8.188 +				jwm)
   8.189 +					echo "jwm" > /etc/X11/wm.default ;;
   8.190 +				ob|openbox|openbox-session)
   8.191 +					echo "openbox" > /etc/X11/wm.default ;;
   8.192 +				e17|enlightenment|enlightenment_start)
   8.193 +					echo "enlightenment" > /etc/X11/wm.default ;;
   8.194 +			esac ;;
   8.195 +		*)
   8.196 +			continue ;;
   8.197 +	esac
   8.198 +done
   8.199 +
   8.200 +# If no default WM fallback to Openbox (we never know).
   8.201 +if [ ! -f /etc/X11/wm.default ]; then
   8.202 +	echo "openbox" > /etc/X11/wm.default
   8.203 +fi
   8.204 +
   8.205 +# Activate an eventual swap file or partition.
   8.206 +if [ "`fdisk -l | grep swap`" ]; then
   8.207 +	for SWAP_DEV in `fdisk -l | grep swap | awk '{ print $1 }'`; do
   8.208 +		echo "Swap memory detected on: $SWAP_DEV"
   8.209 +		add_swap_in_fstab $SWAP_DEV
   8.210 +	done
   8.211 +fi
   8.212 +if grep -q swap /etc/fstab; then
   8.213 +	echo "Activating swap memory..."
   8.214 +	swapon -a
   8.215 +fi
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/core-xfce/rootfs/etc/init.d/network.sh	Sun Dec 05 17:40:41 2010 +0100
     9.3 @@ -0,0 +1,216 @@
     9.4 +#!/bin/sh
     9.5 +# /etc/init.d/network.sh - Network initialization boot script.
     9.6 +# Config file is: /etc/network.conf
     9.7 +#
     9.8 +. /etc/init.d/rc.functions
     9.9 +
    9.10 +if [ -z "$2" ]; then
    9.11 +	. /etc/network.conf 
    9.12 +else
    9.13 +	. $2 
    9.14 +fi
    9.15 +
    9.16 +
    9.17 +Boot() {
    9.18 +	# Set hostname.
    9.19 +	echo -n "Setting hostname..."
    9.20 +	/bin/hostname -F /etc/hostname
    9.21 +	status
    9.22 +
    9.23 +	# Configure loopback interface.
    9.24 +	echo -n "Configuring loopback..."
    9.25 +	/sbin/ifconfig lo 127.0.0.1 up
    9.26 +	/sbin/route add 127.0.0.1 lo
    9.27 +	status	
    9.28 +}
    9.29 +
    9.30 +
    9.31 +eth() {
    9.32 +#  Use ethernet
    9.33 +	   	ifconfig $INTERFACE up	
    9.34 +}
    9.35 +
    9.36 +wifi() {
    9.37 +	# For wifi. Users just have to enable it through yes and usually
    9.38 +	# essid any will work and the interface is autodetected.
    9.39 +	if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then
    9.40 +	    ifconfig $INTERFACE down
    9.41 +		
    9.42 +		# Confirm if $WIFI_INTERFACE is the wifi interface
    9.43 +		if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
    9.44 +			echo "$WIFI_INTERFACE is not a wifi interface, changing it."
    9.45 +			WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \
    9.46 +				while read dev; do iwconfig $dev 2>&1 | \
    9.47 +					grep -iq "essid" && { echo $dev ; break; }; \
    9.48 +				done)
    9.49 +			[ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
    9.50 +		fi
    9.51 +		
    9.52 +		echo -n "Configuring $WIFI_INTERFACE..."
    9.53 +		ifconfig $WIFI_INTERFACE up
    9.54 +		if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then
    9.55 +			iwconfig $WIFI_INTERFACE txpower on
    9.56 +		fi
    9.57 +		status
    9.58 +		
    9.59 +		[ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext"
    9.60 +		
    9.61 +		
    9.62 +		IWCONFIG_ARGS=""
    9.63 +		[ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE"
    9.64 +		[ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL"
    9.65 +		
    9.66 +		if [ "$WIFI_KEY_TYPE" == "" ]; then
    9.67 +			iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS
    9.68 +		fi
    9.69 +		
    9.70 +		[ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in
    9.71 +			wep|WEP) 
    9.72 +			     IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY"
    9.73 +				 iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS
    9.74 +# wpa_supplicant can also deal with wep encryption but iwconfig is preferred
    9.75 +# Tip: Use unquoted strings for hexadecimal key in wep_key0
    9.76 +#			cat /etc/wpa_supplicant.conf > /tmp/wpa.conf 
    9.77 +#			cat >> /tmp/wpa.conf <<EOF
    9.78 +#ctrl_interface=/var/run/wpa_supplicant
    9.79 +#ctrl_interface_group=0
    9.80 +#ap_scan=1
    9.81 +#network={
    9.82 +#	ssid="$WIFI_ESSID"
    9.83 +#	scan_ssid=1
    9.84 +#	key_mgmt=NONE
    9.85 +#	wep_key0="$WIFI_KEY"
    9.86 +#	wep_tx_keyidx=0
    9.87 +#	priority=5
    9.88 +#}
    9.89 +#EOF
    9.90 +				    ;;
    9.91 +			wpa|WPA) cat /etc/wpa_supplicant.conf > /tmp/wpa.conf # load pre-configured multiple profiles 
    9.92 +			cat >> /tmp/wpa.conf <<EOF
    9.93 +ctrl_interface=/var/run/wpa_supplicant
    9.94 +ctrl_interface_group=0
    9.95 +ap_scan=1
    9.96 +network={
    9.97 +	ssid="$WIFI_ESSID"
    9.98 +	scan_ssid=1
    9.99 +	proto=WPA RSN
   9.100 +	key_mgmt=WPA-PSK
   9.101 +	psk="$WIFI_KEY"
   9.102 +	priority=5
   9.103 +}
   9.104 +EOF
   9.105 +				echo "Starting wpa_supplicant for WPA-PSK..."
   9.106 +				wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 
   9.107 +				;;
   9.108 +			any|ANY) cat /etc/wpa_supplicant.conf > /tmp/wpa.conf 
   9.109 +			cat >> /tmp/wpa.conf <<EOF
   9.110 +ctrl_interface=/var/run/wpa_supplicant
   9.111 +ctrl_interface_group=0
   9.112 +ap_scan=1
   9.113 +network={
   9.114 +	ssid="$WIFI_ESSID"
   9.115 +	scan_ssid=1
   9.116 +	key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
   9.117 +	group=CCMP TKIP WEP104 WEP40
   9.118 +	pairwise=CCMP TKIP
   9.119 +	psk="$WIFI_KEY"
   9.120 +	priority=5
   9.121 +}
   9.122 +EOF
   9.123 +				echo "Starting wpa_supplicant for any key type..."
   9.124 +				wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 
   9.125 +				;;
   9.126 +		esac
   9.127 +		
   9.128 +		rm -f /tmp/wpa.conf
   9.129 +		
   9.130 +		INTERFACE=$WIFI_INTERFACE			
   9.131 +	fi
   9.132 +
   9.133 +}
   9.134 +
   9.135 +wpa()
   9.136 +{
   9.137 +	DHCP_SCRIPT="/etc/init.d/wpa_action.sh"
   9.138 +	wpa_cli -a$DHCP_SCRIPT -B 
   9.139 +}
   9.140 +
   9.141 +dhcp() {
   9.142 +
   9.143 +# For a dynamic IP with DHCP. 
   9.144 +	if [ "$DHCP" = "yes" ]  ; then
   9.145 +		echo "Starting udhcpc client on: $INTERFACE..."		
   9.146 +		if [ -d /var/run/wpa_supplicant ]; then # wpa wireless && wpa_ctrl_open interface is up
   9.147 +		   wpa		  
   9.148 +		else  # fallback on udhcpc: wep, eth
   9.149 +		   /sbin/udhcpc -b -T 1 -A 12 -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid
   9.150 +		fi		
   9.151 +	fi
   9.152 +	
   9.153 +}
   9.154 +
   9.155 +static_ip() {
   9.156 +# For a static IP.
   9.157 +	if [ "$STATIC" = "yes" ] ; then
   9.158 +		echo "Configuring static IP on $INTERFACE: $IP..."
   9.159 +		/sbin/ifconfig $INTERFACE $IP netmask $NETMASK up
   9.160 +		/sbin/route add default gateway $GATEWAY
   9.161 +		# Dirty trick: wpa_supplicant waits for wpa_cli
   9.162 +		wpa_cli -B
   9.163 +		# Multi-DNS server in $DNS_SERVER.
   9.164 +		/bin/mv /etc/resolv.conf /tmp/resolv.conf.$$
   9.165 +		for NS in $DNS_SERVER
   9.166 +		do
   9.167 +			echo "nameserver $NS" >> /etc/resolv.conf
   9.168 +		done
   9.169 +	fi
   9.170 +}
   9.171 +
   9.172 +# Stopping everything
   9.173 +Stop() {
   9.174 +	echo "Stopping all interfaces"
   9.175 +	ifconfig $INTERFACE down
   9.176 +	ifconfig $WIFI_INTERFACE down
   9.177 +
   9.178 +	echo "Killing all daemons"
   9.179 +	killall udhcpc
   9.180 +	killall wpa_supplicant 2>/dev/null
   9.181 +	
   9.182 +	if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then
   9.183 +		echo "Shutting down wifi card"
   9.184 +		iwconfig $WIFI_INTERFACE txpower off
   9.185 +	fi
   9.186 +}
   9.187 +
   9.188 +Start() {
   9.189 +   eth
   9.190 +   wifi
   9.191 +   dhcp 
   9.192 +   static_ip	
   9.193 +}
   9.194 +
   9.195 +
   9.196 +# looking for arguments:
   9.197 +if [ -z "$1" ]; then
   9.198 +	Boot
   9.199 +	Start
   9.200 +else
   9.201 +	case $1 in
   9.202 +		start)
   9.203 +			Start ;;
   9.204 +		stop)
   9.205 +			Stop ;;
   9.206 +		restart)
   9.207 +			Stop
   9.208 +			Start ;;
   9.209 +		*)
   9.210 +			echo ""
   9.211 +			echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]"
   9.212 +			echo ""
   9.213 +			echo -e "	Default configuration file is \033[1m/etc/network.conf\033[0m"
   9.214 +			echo -e "	You can specify another configuration file in the second argument:"
   9.215 +			echo -e "	\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf"
   9.216 +			echo ""
   9.217 +
   9.218 +	esac
   9.219 +fi
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/core-xfce/rootfs/etc/lxpanel/default/panels/panel	Sun Dec 05 17:40:41 2010 +0100
    10.3 @@ -0,0 +1,185 @@
    10.4 +# lxpanel <profile> config file. Manually editing is not recommended.
    10.5 +# Use preference dialog in lxpanel to adjust config when you can.
    10.6 +
    10.7 +Global {
    10.8 +    edge=bottom
    10.9 +    allign=center
   10.10 +    margin=0
   10.11 +    widthtype=percent
   10.12 +    width=100
   10.13 +    height=24
   10.14 +    transparent=1
   10.15 +    tintcolor=#000000
   10.16 +    alpha=0
   10.17 +    autohide=0
   10.18 +    heightwhenhidden=2
   10.19 +    setdocktype=1
   10.20 +    setpartialstrut=1
   10.21 +    usefontcolor=1
   10.22 +    fontcolor=#ffffff
   10.23 +    background=0
   10.24 +    backgroundfile=/usr/share/lxpanel/images/background.png
   10.25 +    iconsize=24
   10.26 +}
   10.27 +
   10.28 +Plugin {
   10.29 +    type = space
   10.30 +    Config {
   10.31 +        Size=4
   10.32 +    }
   10.33 +}
   10.34 +
   10.35 +Plugin {
   10.36 +    type = menu
   10.37 +    Config {
   10.38 +        image=/usr/share/pixmaps/slitaz-menu.png
   10.39 +        system {
   10.40 +        }
   10.41 +        separator {
   10.42 +        }
   10.43 +        item {
   10.44 +            image=/usr/share/icons/SliTaz/16x16/categories/applications-system.png
   10.45 +            command=run
   10.46 +        }
   10.47 +        separator {
   10.48 +        }
   10.49 +        item {
   10.50 +            image=/usr/share/pixmaps/logout.png
   10.51 +            command=logout
   10.52 +        }
   10.53 +    }
   10.54 +}
   10.55 +
   10.56 +Plugin {
   10.57 +    type = space
   10.58 +    Config {
   10.59 +        Size=4
   10.60 +    }
   10.61 +}
   10.62 +
   10.63 +Plugin {
   10.64 +    type = launchbar
   10.65 +    Config {
   10.66 +        Button {
   10.67 +            id=xterm.desktop
   10.68 +        }
   10.69 +        Button {
   10.70 +            id=midori.desktop
   10.71 +        }
   10.72 +    }
   10.73 +}
   10.74 +
   10.75 +Plugin {
   10.76 +    type = pager
   10.77 +}
   10.78 +
   10.79 +Plugin {
   10.80 +    type = wincmd
   10.81 +    Config {
   10.82 +        image=window-manager
   10.83 +        Button1=iconify
   10.84 +        Button2=shade
   10.85 +        Toggle=0
   10.86 +    }
   10.87 +}
   10.88 +
   10.89 +Plugin {
   10.90 +    type = taskbar
   10.91 +    expand=1
   10.92 +    Config {
   10.93 +        tooltips=1
   10.94 +        IconsOnly=0
   10.95 +        ShowAllDesks=0
   10.96 +        UseMouseWheel=1
   10.97 +        UseUrgencyHint=1
   10.98 +        FlatButton=1
   10.99 +        MaxTaskWidth=200
  10.100 +        spacing=1
  10.101 +        GroupedTasks=0
  10.102 +    }
  10.103 +}
  10.104 +
  10.105 +Plugin {
  10.106 +    type = space
  10.107 +    Config {
  10.108 +        Size=4
  10.109 +    }
  10.110 +}
  10.111 +
  10.112 +Plugin {
  10.113 +    type = tray
  10.114 +}
  10.115 +
  10.116 +Plugin {
  10.117 +    type = volumealsa
  10.118 +}
  10.119 +
  10.120 +Plugin {
  10.121 +    type = space
  10.122 +    Config {
  10.123 +        Size=4
  10.124 +    }
  10.125 +}
  10.126 +
  10.127 +Plugin {
  10.128 +    type = netstatus
  10.129 +    Config {
  10.130 +        iface=eth0
  10.131 +        configtool=subox netbox %i
  10.132 +    }
  10.133 +}
  10.134 +
  10.135 +Plugin {
  10.136 +    type = space
  10.137 +    Config {
  10.138 +        Size=4
  10.139 +    }
  10.140 +}
  10.141 +
  10.142 +Plugin {
  10.143 +    type = batt
  10.144 +    Config {
  10.145 +        HideIfNoBattery=0
  10.146 +        AlarmCommand=xmessage Battery low
  10.147 +        AlarmTime=5
  10.148 +        BackgroundColor=black
  10.149 +        BorderWidth=1
  10.150 +        ChargingColor1=#28f200
  10.151 +        ChargingColor2=#22cc00
  10.152 +        DischargingColor1=#ffee00
  10.153 +        DischargingColor2=#d9ca00
  10.154 +        Size=8
  10.155 +    }
  10.156 +}
  10.157 +
  10.158 +Plugin {
  10.159 +    type = cpu
  10.160 +}
  10.161 +
  10.162 +Plugin {
  10.163 +    type = space
  10.164 +    Config {
  10.165 +        Size=2
  10.166 +    }
  10.167 +}
  10.168 +
  10.169 +Plugin {
  10.170 +    type = launchbar
  10.171 +    Config {
  10.172 +        Button {
  10.173 +            id=tazpkgbox.desktop
  10.174 +        }
  10.175 +    }
  10.176 +}
  10.177 +
  10.178 +Plugin {
  10.179 +    type = dclock
  10.180 +    Config {
  10.181 +        ClockFmt=%R
  10.182 +        TooltipFmt=%A %x
  10.183 +        Action=desktopbox calendar
  10.184 +        BoldFont=0
  10.185 +        IconOnly=0
  10.186 +    }
  10.187 +}
  10.188 +
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/core-xfce/rootfs/etc/skel/.Xdefaults	Sun Dec 05 17:40:41 2010 +0100
    11.3 @@ -0,0 +1,20 @@
    11.4 +!~/.Xdefault: Control the behavior of x-clients.
    11.5 +!
    11.6 +
    11.7 +! Xcursor theme (~/.icons).
    11.8 +!
    11.9 +Xcursor.theme:		slitaz-polar
   11.10 +
   11.11 +! XTerm settings.
   11.12 +!
   11.13 +xterm*background:	black
   11.14 +xterm*foreground:	white
   11.15 +xterm*cursorColor:	#6AA2D8
   11.16 +xterm*scrollBar:	off
   11.17 +xterm*faceName:		DejaVu Sans Mono
   11.18 +xterm*faceSize:		9
   11.19 +
   11.20 +! Xload settings.
   11.21 +!
   11.22 +!xload*background:	black
   11.23 +!xload*foreground:	lightblue
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/core-xfce/rootfs/etc/skel/.config/pcmanfm/main	Sun Dec 05 17:40:41 2010 +0100
    12.3 @@ -0,0 +1,15 @@
    12.4 +[General]
    12.5 +big_icon_size=32
    12.6 +terminal=xterm
    12.7 +
    12.8 +[Window]
    12.9 +width=640
   12.10 +height=480
   12.11 +splitter_pos=160
   12.12 +maximized=0
   12.13 +
   12.14 +[Desktop]
   12.15 +show_desktop=1
   12.16 +show_wallpaper=1
   12.17 +wallpaper=/usr/share/images/slitaz-background.jpg
   12.18 +show_wm_menu=1
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/core-xfce/rootfs/etc/skel/.gtkrc-2.0	Sun Dec 05 17:40:41 2010 +0100
    13.3 @@ -0,0 +1,13 @@
    13.4 +# ~/.gtkrc-2.0 - GTK+ theme, icon and font configuration.
    13.5 +#
    13.6 +# System files   : /usr/share/{themes,icons,fonts}
    13.7 +# Personal files : ~/.icons and ~/.fonts
    13.8 +#
    13.9 +
   13.10 +gtk-theme-name = "SliTaz"
   13.11 +#gtk-theme-name = "Clearlooks-DeepSky"
   13.12 +#gtk-theme-name = "Clearlooks-Olive"
   13.13 +
   13.14 +gtk-icon-theme-name = "SliTaz"
   13.15 +
   13.16 +gtk-font-name = "DejaVu Sans 9"
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/core-xfce/rootfs/etc/skel/.netsurf/Choices	Sun Dec 05 17:40:41 2010 +0100
    14.3 @@ -0,0 +1,64 @@
    14.4 +http_proxy:0
    14.5 +http_proxy_host:
    14.6 +http_proxy_port:8080
    14.7 +http_proxy_auth:0
    14.8 +http_proxy_auth_user:
    14.9 +http_proxy_auth_pass:
   14.10 +font_size:128
   14.11 +font_min_size:85
   14.12 +font_sans:Sans
   14.13 +font_serif:Serif
   14.14 +font_mono:Monospace
   14.15 +font_cursive:Serif
   14.16 +font_fantasy:Serif
   14.17 +accept_language:
   14.18 +accept_charset:
   14.19 +memory_cache_size:2097152
   14.20 +disc_cache_age:28
   14.21 +block_advertisements:0
   14.22 +minimum_gif_delay:10
   14.23 +send_referer:1
   14.24 +animate_images:1
   14.25 +expire_url:28
   14.26 +font_default:1
   14.27 +ca_bundle:
   14.28 +ca_path:/etc/ssl/certs
   14.29 +homepage_url:file:///usr/share/webhome/netsurf.html
   14.30 +url_suggestion:1
   14.31 +window_x:40
   14.32 +window_y:40
   14.33 +window_width:800
   14.34 +window_height:600
   14.35 +window_screen_width:0
   14.36 +window_screen_height:0
   14.37 +toolbar_status_size:0
   14.38 +scale:100
   14.39 +incremental_reflow:1
   14.40 +min_reflow_period:25
   14.41 +max_fetchers:24
   14.42 +max_fetchers_per_host:5
   14.43 +max_cached_fetch_handles:6
   14.44 +suppress_curl_debug:1
   14.45 +target_blank:1
   14.46 +button_2_tab:1
   14.47 +margin_top:10
   14.48 +margin_bottom:10
   14.49 +margin_left:10
   14.50 +margin_right:10
   14.51 +export_scale:70
   14.52 +suppress_images:0
   14.53 +remove_backgrounds:0
   14.54 +enable_loosening:1
   14.55 +enable_PDF_compression:1
   14.56 +enable_PDF_password:0
   14.57 +render_resample:0
   14.58 +downloads_clear:0
   14.59 +request_overwrite:1
   14.60 +show_single_tab:0
   14.61 +button_type:1
   14.62 +disable_popups:0
   14.63 +disable_plugins:0
   14.64 +history_age:0
   14.65 +hover_urls:0
   14.66 +focus_new:0
   14.67 +new_blank:0
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/core-xfce/rootfs/etc/skel/Desktop/slitaz-doc.desktop	Sun Dec 05 17:40:41 2010 +0100
    15.3 @@ -0,0 +1,5 @@
    15.4 +[Desktop Entry]
    15.5 +Name=Documentation
    15.6 +Exec=GtkLauncher file:///usr/share/doc/slitaz/index.html
    15.7 +Icon=slitaz-doc.png
    15.8 +Type=Application
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/core-xfce/rootfs/etc/slitaz/applications.conf	Sun Dec 05 17:40:41 2010 +0100
    16.3 @@ -0,0 +1,18 @@
    16.4 +# SliTaz default applications configuration file. Thes apps can be
    16.5 +# started throught wrappers: browser, editor and terminal.
    16.6 +#
    16.7 +
    16.8 +# File manager.
    16.9 +FILE_MANAGER="pcmanfm"
   16.10 +
   16.11 +# Web browser.
   16.12 +BROWSER="midori"
   16.13 +
   16.14 +# Text editor.
   16.15 +EDITOR="leafpad"
   16.16 +
   16.17 +# X terminal.
   16.18 +TERMINAL="xterm"
   16.19 +
   16.20 +# Window manager.
   16.21 +WINDOW_MANAGER="openbox"
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/core-xfce/rootfs/etc/xdg/openbox/menu.en.xml	Sun Dec 05 17:40:41 2010 +0100
    17.3 @@ -0,0 +1,134 @@
    17.4 +<?xml version="1.0" encoding="UTF-8"?>
    17.5 +
    17.6 +<openbox_menu xmlns="http://openbox.org/3.4/menu">
    17.7 +
    17.8 +<!-- Favorite applications -->
    17.9 +<menu id="favorites-menu" label="Favorite Applications">
   17.10 +  <item label="File Manager">
   17.11 +    <action name="Execute"><command>file-manager</command></action>
   17.12 +  </item>
   17.13 +  <item label="Terminal">
   17.14 +    <action name="Execute"><command>terminal</command></action>
   17.15 +  </item>
   17.16 +  <item label="Web Browser">
   17.17 +    <action name="Execute"><command>browser</command></action>
   17.18 +  </item>
   17.19 +  <item label="Text Editor">
   17.20 +    <action name="Execute"><command>editor</command></action>
   17.21 +  </item>
   17.22 +  <separator />
   17.23 +  <item label="Configure favorite">
   17.24 +    <action name="Execute"><command>desktopbox tazapps</command></action>
   17.25 +  </item>
   17.26 +</menu>
   17.27 +
   17.28 +<!-- Desktop files -->
   17.29 +<menu id="desktop-menu" label="Desktop Files &amp; Icons">
   17.30 +  <item label="Create new directory">
   17.31 +    <action name="Execute"><command>desktopbox new-folder</command></action>
   17.32 +  </item>
   17.33 +  <item label="Create new file">
   17.34 +    <action name="Execute"><command>desktopbox new-file</command></action>
   17.35 +  </item>
   17.36 +  <separator />
   17.37 +  <item label="Add new icon">
   17.38 +    <action name="Execute"><command>desktopbox add-icons</command></action>
   17.39 +  </item>
   17.40 +</menu>
   17.41 +
   17.42 +<!-- Desktop effects -->
   17.43 +<menu id="desktop-effects" label="Desktop Effects">
   17.44 +  <item label="Activate composite">
   17.45 +    <action name="Execute"><command>xcompmgr</command></action>
   17.46 +  </item>
   17.47 +  <item label="Activate shadows">
   17.48 +    <action name="Execute"><command>xcompmgr -c -r 10</command></action>
   17.49 +  </item>
   17.50 +  <item label="Activate shadows/fade">
   17.51 +    <action name="Execute"><command>xcompmgr -c -f -r 10</command></action>
   17.52 +  </item>
   17.53 +  <separator />
   17.54 +  <item label="Set opacity (actual)">
   17.55 +    <action name="Execute">
   17.56 +      <command>transset-df --actual --max 60</command>
   17.57 +    </action>
   17.58 +  </item>
   17.59 +  <item label="Set opacity (click)">
   17.60 +    <action name="Execute">
   17.61 +      <command>transset-df --click --max 60</command>
   17.62 +    </action>
   17.63 +  </item>
   17.64 +  <separator />
   17.65 +  <item label="Stop effects">
   17.66 +    <action name="Execute"><command>killall xcompmgr</command></action>
   17.67 +  </item>
   17.68 +</menu>
   17.69 +
   17.70 +<!-- SliTaz Live (Tazlito and Tazusb) -->
   17.71 +<menu id="slitaz-live-menu" label="SliTaz Live">
   17.72 +  <item label="Tazlito LiveCD Tool">
   17.73 +    <action name="Execute"><command>subox tazlitobox</command></action>
   17.74 +  </item>
   17.75 +  <item label="TazUSB LiveUSB Tool">
   17.76 +    <action name="Execute"><command>subox tazusbbox</command></action>
   17.77 +  </item>
   17.78 +  <separator />
   17.79 +  <item label="TazUSB Writefs (gzip)">
   17.80 +    <action name="Execute">
   17.81 +      <command>subox "xterm -e tazusb writefs gzip"</command>
   17.82 +    </action>
   17.83 +  </item>
   17.84 +  <item label="TazUSB Writefs (lzma)">
   17.85 +    <action name="Execute">
   17.86 +      <command>subox "xterm -e tazusb writefs lzma"</command>
   17.87 +    </action>
   17.88 +  </item>
   17.89 +  <item label="TazUSB Writefs (none)">
   17.90 +    <action name="Execute">
   17.91 +      <command>subox "xterm -e tazusb writefs none"</command>
   17.92 +    </action>
   17.93 +  </item>
   17.94 +</menu>
   17.95 +
   17.96 +<!-- Openbox configuration -->
   17.97 +<menu id="openbox-menu" label="Openbox">
   17.98 +  <item label="ObConf">
   17.99 +    <action name="Execute"><command>obconf</command></action>
  17.100 +  </item>
  17.101 +  <item label="Autostart Script">
  17.102 +    <action name="Execute">
  17.103 +      <command>desktopbox autostart</command>
  17.104 +    </action>
  17.105 +  </item>
  17.106 +  <item label="Openbox Menu">
  17.107 +    <action name="Execute">
  17.108 +      <command>editor ~/.config/openbox/menu.xml</command>
  17.109 +    </action>
  17.110 +  </item>
  17.111 +  <separator />
  17.112 +  <item label="Reconfigure">
  17.113 +    <action name="Reconfigure" />
  17.114 +  </item>
  17.115 +  <item label="Restart">
  17.116 +    <action name="Restart" />
  17.117 +  </item>
  17.118 +</menu>
  17.119 +
  17.120 +<menu id="root-menu" label="Openbox 3">
  17.121 +  <!-- <separator label="SliTaz Openbox" /> -->
  17.122 +  <menu id="favorites-menu" />
  17.123 +  <menu id="desktop-menu" />
  17.124 +  <!-- Pipe menu to open folder using GTK bookmarks -->
  17.125 +  <menu id="open-folder-menu" label="Open Folder"
  17.126 +        execute="/usr/lib/openbox/open-folder-menu.sh" />
  17.127 +  <menu id="desktop-effects" />
  17.128 +  <menu id="slitaz-live-menu" />
  17.129 +  <menu id="openbox-menu" />
  17.130 +  <menu id="client-list-menu" />
  17.131 +  <separator />
  17.132 +  <item label="Logout">
  17.133 +    <action name="Execute"><command>desktopbox logout</command></action>
  17.134 +  </item>
  17.135 +</menu>
  17.136 +
  17.137 +</openbox_menu>
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/core-xfce/rootfs/etc/xdg/openbox/menu.fr.xml	Sun Dec 05 17:40:41 2010 +0100
    18.3 @@ -0,0 +1,137 @@
    18.4 +<?xml version="1.0" encoding="UTF-8"?>
    18.5 +
    18.6 +<openbox_menu xmlns="http://openbox.org/3.4/menu">
    18.7 +
    18.8 +<!-- Favorites applications -->
    18.9 +<menu id="favorites-menu" label="Applications favorites">
   18.10 +  <item label="Gestionnaire de fichiers">
   18.11 +    <action name="Execute"><command>file-manager</command></action>
   18.12 +  </item>
   18.13 +  <item label="Emulateur de Terminal">
   18.14 +    <action name="Execute"><command>terminal</command></action>
   18.15 +  </item>
   18.16 +  <item label="Navigateur Web">
   18.17 +    <action name="Execute"><command>browser</command></action>
   18.18 +  </item>
   18.19 +  <item label="Editeur de texte">
   18.20 +    <action name="Execute"><command>editor</command></action>
   18.21 +  </item>
   18.22 +  <separator />
   18.23 +  <item label="Configuration des favoris">
   18.24 +    <action name="Execute"><command>desktopbox tazapps</command></action>
   18.25 +  </item>
   18.26 +</menu>
   18.27 +
   18.28 +<!-- Desktop files -->
   18.29 +<menu id="desktop-menu" label="Fichiers &amp; Icônes du bureau">
   18.30 +  <item label="Créer un nouveau dossier">
   18.31 +    <action name="Execute"><command>desktopbox new-folder</command></action>
   18.32 +  </item>
   18.33 +  <item label="Créer un nouveau fichier">
   18.34 +    <action name="Execute"><command>desktopbox new-file</command></action>
   18.35 +  </item>
   18.36 +  <separator />
   18.37 +  <item label="Ajouter un icône">
   18.38 +    <action name="Execute"><command>desktopbox add-icons</command></action>
   18.39 +  </item>
   18.40 +</menu>
   18.41 +
   18.42 +<!-- Desktop effects -->
   18.43 +<menu id="desktop-effects" label="Effets visuels">
   18.44 +  <item label="Activer le composite">
   18.45 +    <action name="Execute"><command>xcompmgr</command></action>
   18.46 +  </item>
   18.47 +  <item label="Active les ombres">
   18.48 +    <action name="Execute"><command>xcompmgr -c -r 10</command></action>
   18.49 +  </item>
   18.50 +  <item label="Activer les ombres fade">
   18.51 +    <action name="Execute"><command>xcompmgr -c -f -r 10</command></action>
   18.52 +  </item>
   18.53 +  <separator />
   18.54 +  <item label="Régler l'opacité (actuel)">
   18.55 +    <action name="Execute">
   18.56 +      <command>transset-df --actual --max 60</command>
   18.57 +    </action>
   18.58 +  </item>
   18.59 +  <item label="Régler l'opacité (clicque)">
   18.60 +    <action name="Execute">
   18.61 +      <command>transset-df --click --max 60</command>
   18.62 +    </action>
   18.63 +  </item>
   18.64 +  <separator />
   18.65 +  <item label="Stoper les effets">
   18.66 +    <action name="Execute"><command>killall xcompmgr</command></action>
   18.67 +  </item>
   18.68 +</menu>
   18.69 +
   18.70 +<!-- SliTaz Live (Tazlito and Tazusb) -->
   18.71 +<menu id="slitaz-live-menu" label="SliTaz Live CD/USB">
   18.72 +  <item label="Tazlito LiveCD Tool">
   18.73 +    <action name="Execute"><command>subox tazlitobox</command></action>
   18.74 +  </item>
   18.75 +  <item label="TazUSB LiveUSB Tool">
   18.76 +    <action name="Execute"><command>subox tazusbbox</command></action>
   18.77 +  </item>
   18.78 +  <separator />
   18.79 +  <item label="TazUSB Writefs (gzip)">
   18.80 +    <action name="Execute">
   18.81 +      <command>subox "xterm -e tazusb writefs gzip"</command>
   18.82 +    </action>
   18.83 +  </item>
   18.84 +  <item label="TazUSB Writefs (lzma)">
   18.85 +    <action name="Execute">
   18.86 +      <command>subox "xterm -e tazusb writefs lzma"</command>
   18.87 +    </action>
   18.88 +  </item>
   18.89 +  <item label="TazUSB Writefs (none)">
   18.90 +    <action name="Execute">
   18.91 +      <command>subox "xterm -e tazusb writefs none"</command>
   18.92 +    </action>
   18.93 +  </item>
   18.94 +</menu>
   18.95 +
   18.96 +<!-- Openbox configuration -->
   18.97 +<menu id="openbox-menu" label="Openbox">
   18.98 +  <item label="Configuration via OBconf">
   18.99 +    <action name="Execute"><command>obconf</command></action>
  18.100 +  </item>
  18.101 +  <item label="Script de démarrage">
  18.102 +    <action name="Execute">
  18.103 +      <command>desktopbox autostart</command>
  18.104 +    </action>
  18.105 +  </item>
  18.106 +  <item label="Menu d'Openbox">
  18.107 +    <action name="Execute">
  18.108 +      <command>editor ~/.config/openbox/menu.xml</command>
  18.109 +    </action>
  18.110 +  </item>
  18.111 +  <separator />
  18.112 +  <item label="Reconfigurer">
  18.113 +    <action name="Reconfigure" />
  18.114 +  </item>
  18.115 +  <item label="Redémarrer">
  18.116 +    <action name="Restart" />
  18.117 +  </item>
  18.118 +</menu>
  18.119 +
  18.120 +<menu id="root-menu" label="Openbox 3">
  18.121 +  <!-- <separator label="SliTaz Openbox" /> -->
  18.122 +  <menu id="favorites-menu" />
  18.123 +  <menu id="desktop-menu" />
  18.124 +  <!-- Pipe menu to open folder using GTK bookmarks -->
  18.125 +  <menu id="open-folder-menu" label="Dossiers favoris"
  18.126 +        execute="/usr/lib/openbox/open-folder-menu.sh" />
  18.127 +  <menu id="desktop-effects" />
  18.128 +  <menu id="slitaz-live-menu" />
  18.129 +  <menu id="openbox-menu" />
  18.130 +  <menu id="client-list-menu" />
  18.131 +  <separator />
  18.132 +  <!-- <item label="Exécuter">
  18.133 +    <action name="Execute"><command>gmrun</command></action>
  18.134 +  </item> -->
  18.135 +  <item label="Déconnexion">
  18.136 +    <action name="Execute"><command>desktopbox logout</command></action>
  18.137 +  </item>
  18.138 +</menu>
  18.139 +
  18.140 +</openbox_menu>
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/core-xfce/rootfs/etc/xdg/openbox/menu.pt.xml	Sun Dec 05 17:40:41 2010 +0100
    19.3 @@ -0,0 +1,134 @@
    19.4 +<?xml version="1.0" encoding="UTF-8"?>
    19.5 +
    19.6 +<openbox_menu xmlns="http://openbox.org/3.4/menu">
    19.7 +
    19.8 +<!-- Aplicações Favoritas -->
    19.9 +<menu id="favorites-menu" label="Aplicativos Favoritos">
   19.10 +  <item label="Gerenciador de Arquivos">
   19.11 +    <action name="Execute"><command>pcmanfm</command></action>
   19.12 +  </item>
   19.13 +  <item label="Terminal">
   19.14 +    <action name="Execute"><command>terminal</command></action>
   19.15 +  </item>
   19.16 +  <item label="Navegador Web">
   19.17 +    <action name="Execute"><command>browser</command></action>
   19.18 +  </item>
   19.19 +  <item label="Editor de Texto">
   19.20 +    <action name="Execute"><command>editor</command></action>
   19.21 +  </item>
   19.22 +  <separator />
   19.23 +  <item label="Configure favorite">
   19.24 +    <action name="Execute"><command>desktopbox tazapps</command></action>
   19.25 +  </item>
   19.26 +</menu>
   19.27 +
   19.28 +<!-- Desktop files -->
   19.29 +<menu id="desktop-menu" label="Arquivos &amp; Ãcones do Desktop">
   19.30 +  <item label="Criar nova pasta">
   19.31 +    <action name="Execute"><command>desktopbox new-folder</command></action>
   19.32 +  </item>
   19.33 +  <item label="Criar novo arquivo">
   19.34 +    <action name="Execute"><command>desktopbox new-file</command></action>
   19.35 +  </item>
   19.36 +  <separator />
   19.37 +  <item label="Adicionar novo ícone">
   19.38 +    <action name="Execute"><command>desktopbox add-icons</command></action>
   19.39 +  </item>
   19.40 +</menu>
   19.41 +
   19.42 +<!-- Efeitos do Desktop -->
   19.43 +<menu id="desktop-effects" label="Efeitos Visuais">
   19.44 +  <item label="Ativar composite">
   19.45 +    <action name="Execute"><command>xcompmgr</command></action>
   19.46 +  </item>
   19.47 +  <item label="Ativar sombreamento">
   19.48 +    <action name="Execute"><command>xcompmgr -c -r 10</command></action>
   19.49 +  </item>
   19.50 +  <item label="Ativar sombreamento/fade">
   19.51 +    <action name="Execute"><command>xcompmgr -c -f -r 10</command></action>
   19.52 +  </item>
   19.53 +  <separator />
   19.54 +  <item label="Definir opacidade (atual)">
   19.55 +    <action name="Execute">
   19.56 +      <command>transset-df --actual --max 60</command>
   19.57 +    </action>
   19.58 +  </item>
   19.59 +  <item label="Definir opacidade (click)">
   19.60 +    <action name="Execute">
   19.61 +      <command>transset-df --click --max 60</command>
   19.62 +    </action>
   19.63 +  </item>
   19.64 +  <separator />
   19.65 +  <item label="Parar efeitos">
   19.66 +    <action name="Execute"><command>killall xcompmgr</command></action>
   19.67 +  </item>
   19.68 +</menu>
   19.69 +
   19.70 +<!-- SliTaz Live (Tazlito e Tazusb) -->
   19.71 +<menu id="slitaz-live-menu" label="SliTaz Live CD/USB">
   19.72 +  <item label="Tazlito Ferramenta LiveCD">
   19.73 +    <action name="Execute"><command>subox tazlitobox</command></action>
   19.74 +  </item>
   19.75 +  <item label="TazUSB LiveUSB Tool">
   19.76 +    <action name="Execute"><command>subox tazusbbox</command></action>
   19.77 +  </item>
   19.78 +  <separator />
   19.79 +  <item label="TazUSB Writefs (gzip)">
   19.80 +    <action name="Execute">
   19.81 +      <command>subox "xterm -e tazusb writefs gzip"</command>
   19.82 +    </action>
   19.83 +  </item>
   19.84 +  <item label="TazUSB Writefs (lzma)">
   19.85 +    <action name="Execute">
   19.86 +      <command>subox "xterm -e tazusb writefs lzma"</command>
   19.87 +    </action>
   19.88 +  </item>
   19.89 +  <item label="TazUSB Writefs (none)">
   19.90 +    <action name="Execute">
   19.91 +      <command>subox "xterm -e tazusb writefs none"</command>
   19.92 +    </action>
   19.93 +  </item>
   19.94 +</menu>
   19.95 +
   19.96 +<!-- Configuração do Openbox -->
   19.97 +<menu id="openbox-menu" label="Openbox">
   19.98 +  <item label="Configuração do Openbox (GUI)">
   19.99 +    <action name="Execute"><command>obconf</command></action>
  19.100 +  </item>
  19.101 +  <item label="Aplicações autoiniciadas">
  19.102 +    <action name="Execute">
  19.103 +      <command>desktopbox autostart</command>
  19.104 +    </action>
  19.105 +  </item>
  19.106 +  <item label="Menu do Openbox">
  19.107 +    <action name="Execute">
  19.108 +      <command>editor ~/.config/openbox/menu.xml</command>
  19.109 +    </action>
  19.110 +  </item>
  19.111 +  <separator />
  19.112 +  <item label="Reconfigurar">
  19.113 +    <action name="Reconfigure" />
  19.114 +  </item>
  19.115 +  <item label="Reiniciar">
  19.116 +    <action name="Restart" />
  19.117 +  </item>
  19.118 +</menu>
  19.119 +
  19.120 +<menu id="root-menu" label="Openbox 3">
  19.121 +  <!-- <separator label="SliTaz Openbox" /> -->
  19.122 +  <menu id="favorites-menu" />
  19.123 +  <menu id="desktop-menu" />
  19.124 +  <!-- Pipe menu to open folder using GTK bookmarks -->
  19.125 +  <menu id="open-folder-menu" label="Locais Favoritos"
  19.126 +        execute="/usr/lib/openbox/open-folder-menu.sh" />
  19.127 +  <menu id="desktop-effects" />
  19.128 +  <menu id="slitaz-live-menu" />
  19.129 +  <menu id="openbox-menu" />
  19.130 +  <menu id="client-list-menu" />
  19.131 +  <separator />
  19.132 +  <item label="Sair">
  19.133 +    <action name="Execute"><command>desktopbox logout</command></action>
  19.134 +  </item>
  19.135 +</menu>
  19.136 +
  19.137 +</openbox_menu>
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/core-xfce/rootfs/etc/xdg/openbox/rc.xml	Sun Dec 05 17:40:41 2010 +0100
    20.3 @@ -0,0 +1,699 @@
    20.4 +<?xml version="1.0" encoding="UTF-8"?>
    20.5 +<!-- Do not edit this file, it will be overwritten on install.
    20.6 +        Copy the file to $HOME/.config/openbox/ instead. -->
    20.7 +<openbox_config xmlns="http://openbox.org/3.4/rc">
    20.8 +  <resistance>
    20.9 +    <strength>10</strength>
   20.10 +    <screen_edge_strength>20</screen_edge_strength>
   20.11 +  </resistance>
   20.12 +  <focus>
   20.13 +    <focusNew>yes</focusNew>
   20.14 +    <!-- always try to focus new windows when they appear. other rules do
   20.15 +       apply -->
   20.16 +    <followMouse>no</followMouse>
   20.17 +    <!-- move focus to a window when you move the mouse into it -->
   20.18 +    <focusLast>yes</focusLast>
   20.19 +    <!-- focus the last used window when changing desktops, instead of the one
   20.20 +       under the mouse pointer. when followMouse is enabled -->
   20.21 +    <underMouse>no</underMouse>
   20.22 +    <!-- move focus under the mouse, even when the mouse is not moving -->
   20.23 +    <focusDelay>200</focusDelay>
   20.24 +    <!-- when followMouse is enabled, the mouse must be inside the window for
   20.25 +       this many milliseconds (1000 = 1 sec) before moving focus to it -->
   20.26 +    <raiseOnFocus>no</raiseOnFocus>
   20.27 +    <!-- when followMouse is enabled, and a window is given focus by moving the
   20.28 +       mouse into it, also raise the window -->
   20.29 +  </focus>
   20.30 +  <placement>
   20.31 +    <policy>Smart</policy>
   20.32 +    <!-- 'Smart' or 'UnderMouse' -->
   20.33 +    <center>yes</center>
   20.34 +    <!-- whether to place windows in the center of the free area found or
   20.35 +       the top left corner -->
   20.36 +    <monitor>Any</monitor>
   20.37 +    <!-- with Smart placement on a multi-monitor system, try to place new windows
   20.38 +       on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where
   20.39 +       the active window is -->
   20.40 +  </placement>
   20.41 +  <theme>
   20.42 +    <name>SliTaz</name>
   20.43 +    <titleLayout>NLIMC</titleLayout>
   20.44 +    <!--
   20.45 +      available characters are NDSLIMC, each can occur at most once.
   20.46 +      N: window icon
   20.47 +      L: window label (AKA title).
   20.48 +      I: iconify
   20.49 +      M: maximize
   20.50 +      C: close
   20.51 +      S: shade (roll up/down)
   20.52 +      D: omnipresent (on all desktops).
   20.53 +  -->
   20.54 +    <keepBorder>yes</keepBorder>
   20.55 +    <animateIconify>yes</animateIconify>
   20.56 +    <font place="ActiveWindow">
   20.57 +      <name>Sans</name>
   20.58 +      <size>8</size>
   20.59 +      <!-- font size in points -->
   20.60 +      <weight>Bold</weight>
   20.61 +      <!-- 'bold' or 'normal' -->
   20.62 +      <slant>Normal</slant>
   20.63 +      <!-- 'italic' or 'normal' -->
   20.64 +    </font>
   20.65 +    <font place="InactiveWindow">
   20.66 +      <name>Sans</name>
   20.67 +      <size>8</size>
   20.68 +      <!-- font size in points -->
   20.69 +      <weight>Bold</weight>
   20.70 +      <!-- 'bold' or 'normal' -->
   20.71 +      <slant>Normal</slant>
   20.72 +      <!-- 'italic' or 'normal' -->
   20.73 +    </font>
   20.74 +    <font place="MenuHeader">
   20.75 +      <name>Sans</name>
   20.76 +      <size>10</size>
   20.77 +      <!-- font size in points -->
   20.78 +      <weight>Normal</weight>
   20.79 +      <!-- 'bold' or 'normal' -->
   20.80 +      <slant>Normal</slant>
   20.81 +      <!-- 'italic' or 'normal' -->
   20.82 +    </font>
   20.83 +    <font place="MenuItem">
   20.84 +      <name>Sans</name>
   20.85 +      <size>9</size>
   20.86 +      <!-- font size in points -->
   20.87 +      <weight>Normal</weight>
   20.88 +      <!-- 'bold' or 'normal' -->
   20.89 +      <slant>Normal</slant>
   20.90 +      <!-- 'italic' or 'normal' -->
   20.91 +    </font>
   20.92 +    <font place="OnScreenDisplay">
   20.93 +      <name>sans</name>
   20.94 +      <size>9</size>
   20.95 +      <!-- font size in points -->
   20.96 +      <weight>bold</weight>
   20.97 +      <!-- 'bold' or 'normal' -->
   20.98 +      <slant>normal</slant>
   20.99 +      <!-- 'italic' or 'normal' -->
  20.100 +    </font>
  20.101 +  </theme>
  20.102 +  <desktops>
  20.103 +    <!-- this stuff is only used at startup, pagers allow you to change them
  20.104 +       during a session
  20.105 +
  20.106 +       these are default values to use when other ones are not already set
  20.107 +       by other applications, or saved in your session
  20.108 +
  20.109 +       use obconf if you want to change these without having to log out
  20.110 +       and back in -->
  20.111 +    <number>2</number>
  20.112 +    <firstdesk>1</firstdesk>
  20.113 +    <names>
  20.114 +      <!-- set names up here if you want to, like this:
  20.115 +    <name>desktop 1</name>
  20.116 +    <name>desktop 2</name>
  20.117 +    -->
  20.118 +    </names>
  20.119 +    <popupTime>875</popupTime>
  20.120 +    <!-- The number of milliseconds to show the popup for when switching
  20.121 +       desktops.  Set this to 0 to disable the popup. -->
  20.122 +  </desktops>
  20.123 +  <resize>
  20.124 +    <drawContents>yes</drawContents>
  20.125 +    <popupShow>Nonpixel</popupShow>
  20.126 +    <!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
  20.127 +    <popupPosition>Center</popupPosition>
  20.128 +    <!-- 'Center', 'Top', or 'Fixed' -->
  20.129 +    <popupFixedPosition>
  20.130 +      <!-- these are used if popupPosition is set to 'Fixed' -->
  20.131 +      <x>10</x>
  20.132 +      <!-- positive number for distance from left edge, negative number for
  20.133 +         distance from right edge, or 'Center' -->
  20.134 +      <y>10</y>
  20.135 +      <!-- positive number for distance from top edge, negative number for
  20.136 +         distance from bottom edge, or 'Center' -->
  20.137 +    </popupFixedPosition>
  20.138 +  </resize>
  20.139 +  <!-- You can reserve a portion of your screen where windows will not cover when
  20.140 +     they are maximized, or when they are initially placed.
  20.141 +     Many programs reserve space automatically, but you can use this in other
  20.142 +     cases. -->
  20.143 +  <margins>
  20.144 +    <top>0</top>
  20.145 +    <bottom>0</bottom>
  20.146 +    <left>0</left>
  20.147 +    <right>0</right>
  20.148 +  </margins>
  20.149 +  <dock>
  20.150 +    <position>TopLeft</position>
  20.151 +    <!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
  20.152 +    <floatingX>0</floatingX>
  20.153 +    <floatingY>0</floatingY>
  20.154 +    <noStrut>no</noStrut>
  20.155 +    <stacking>Above</stacking>
  20.156 +    <!-- 'Above', 'Normal', or 'Below' -->
  20.157 +    <direction>Vertical</direction>
  20.158 +    <!-- 'Vertical' or 'Horizontal' -->
  20.159 +    <autoHide>no</autoHide>
  20.160 +    <hideDelay>300</hideDelay>
  20.161 +    <!-- in milliseconds (1000 = 1 second) -->
  20.162 +    <showDelay>300</showDelay>
  20.163 +    <!-- in milliseconds (1000 = 1 second) -->
  20.164 +    <moveButton>Middle</moveButton>
  20.165 +    <!-- 'Left', 'Middle', 'Right' -->
  20.166 +  </dock>
  20.167 +  <keyboard>
  20.168 +    <chainQuitKey>C-g</chainQuitKey>
  20.169 +    <!-- Keybindings for desktop switching -->
  20.170 +    <keybind key="C-A-Left">
  20.171 +      <action name="DesktopLeft">
  20.172 +        <dialog>no</dialog>
  20.173 +        <wrap>no</wrap>
  20.174 +      </action>
  20.175 +    </keybind>
  20.176 +    <keybind key="C-A-Right">
  20.177 +      <action name="DesktopRight">
  20.178 +        <dialog>no</dialog>
  20.179 +        <wrap>no</wrap>
  20.180 +      </action>
  20.181 +    </keybind>
  20.182 +    <keybind key="C-A-Up">
  20.183 +      <action name="DesktopUp">
  20.184 +        <dialog>no</dialog>
  20.185 +        <wrap>no</wrap>
  20.186 +      </action>
  20.187 +    </keybind>
  20.188 +    <keybind key="C-A-Down">
  20.189 +      <action name="DesktopDown">
  20.190 +        <dialog>no</dialog>
  20.191 +        <wrap>no</wrap>
  20.192 +      </action>
  20.193 +    </keybind>
  20.194 +    <keybind key="S-A-Left">
  20.195 +      <action name="SendToDesktopLeft">
  20.196 +        <dialog>no</dialog>
  20.197 +        <wrap>no</wrap>
  20.198 +      </action>
  20.199 +    </keybind>
  20.200 +    <keybind key="S-A-Right">
  20.201 +      <action name="SendToDesktopRight">
  20.202 +        <dialog>no</dialog>
  20.203 +        <wrap>no</wrap>
  20.204 +      </action>
  20.205 +    </keybind>
  20.206 +    <keybind key="S-A-Up">
  20.207 +      <action name="SendToDesktopUp">
  20.208 +        <dialog>no</dialog>
  20.209 +        <wrap>no</wrap>
  20.210 +      </action>
  20.211 +    </keybind>
  20.212 +    <keybind key="S-A-Down">
  20.213 +      <action name="SendToDesktopDown">
  20.214 +        <dialog>no</dialog>
  20.215 +        <wrap>no</wrap>
  20.216 +      </action>
  20.217 +    </keybind>
  20.218 +    <keybind key="W-F1">
  20.219 +      <action name="Desktop">
  20.220 +        <desktop>1</desktop>
  20.221 +      </action>
  20.222 +    </keybind>
  20.223 +    <keybind key="W-F2">
  20.224 +      <action name="Desktop">
  20.225 +        <desktop>2</desktop>
  20.226 +      </action>
  20.227 +    </keybind>
  20.228 +    <keybind key="W-F3">
  20.229 +      <action name="Desktop">
  20.230 +        <desktop>3</desktop>
  20.231 +      </action>
  20.232 +    </keybind>
  20.233 +    <keybind key="W-F4">
  20.234 +      <action name="Desktop">
  20.235 +        <desktop>4</desktop>
  20.236 +      </action>
  20.237 +    </keybind>
  20.238 +    <keybind key="W-d">
  20.239 +      <action name="ToggleShowDesktop"/>
  20.240 +    </keybind>
  20.241 +    <!-- Keybindings for windows -->
  20.242 +    <keybind key="A-F4">
  20.243 +      <action name="Close"/>
  20.244 +    </keybind>
  20.245 +    <keybind key="A-Escape">
  20.246 +      <action name="Lower"/>
  20.247 +      <action name="FocusToBottom"/>
  20.248 +      <action name="Unfocus"/>
  20.249 +    </keybind>
  20.250 +    <keybind key="A-space">
  20.251 +      <action name="ShowMenu">
  20.252 +        <menu>client-menu</menu>
  20.253 +      </action>
  20.254 +    </keybind>
  20.255 +    <!-- Keybindings for window switching -->
  20.256 +    <keybind key="A-Tab">
  20.257 +      <action name="NextWindow"/>
  20.258 +    </keybind>
  20.259 +    <keybind key="A-S-Tab">
  20.260 +      <action name="PreviousWindow"/>
  20.261 +    </keybind>
  20.262 +    <keybind key="C-A-Tab">
  20.263 +      <action name="NextWindow">
  20.264 +        <panels>yes</panels>
  20.265 +        <desktop>yes</desktop>
  20.266 +      </action>
  20.267 +    </keybind>
  20.268 +    <!-- Keybindings for running applications -->
  20.269 +    <keybind key="W-e">
  20.270 +      <action name="Execute">
  20.271 +        <startupnotify>
  20.272 +          <enabled>true</enabled>
  20.273 +          <name>App Launcher</name>
  20.274 +        </startupnotify>
  20.275 +        <command>lxpanelctl run</command>
  20.276 +      </action>
  20.277 +    </keybind>
  20.278 +  </keyboard>
  20.279 +  <mouse>
  20.280 +    <dragThreshold>8</dragThreshold>
  20.281 +    <!-- number of pixels the mouse must move before a drag begins -->
  20.282 +    <doubleClickTime>200</doubleClickTime>
  20.283 +    <!-- in milliseconds (1000 = 1 second) -->
  20.284 +    <screenEdgeWarpTime>400</screenEdgeWarpTime>
  20.285 +    <!-- Time before changing desktops when the pointer touches the edge of the
  20.286 +       screen while moving a window, in milliseconds (1000 = 1 second).
  20.287 +       Set this to 0 to disable warping -->
  20.288 +    <context name="Frame">
  20.289 +      <mousebind button="A-Left" action="Press">
  20.290 +        <action name="Focus"/>
  20.291 +        <action name="Raise"/>
  20.292 +      </mousebind>
  20.293 +      <mousebind button="A-Left" action="Click">
  20.294 +        <action name="Unshade"/>
  20.295 +      </mousebind>
  20.296 +      <mousebind button="A-Left" action="Drag">
  20.297 +        <action name="Move"/>
  20.298 +      </mousebind>
  20.299 +      <mousebind button="A-Right" action="Press">
  20.300 +        <action name="Focus"/>
  20.301 +        <action name="Raise"/>
  20.302 +        <action name="Unshade"/>
  20.303 +      </mousebind>
  20.304 +      <mousebind button="A-Right" action="Drag">
  20.305 +        <action name="Resize"/>
  20.306 +      </mousebind>
  20.307 +      <mousebind button="A-Middle" action="Press">
  20.308 +        <action name="Lower"/>
  20.309 +        <action name="FocusToBottom"/>
  20.310 +        <action name="Unfocus"/>
  20.311 +      </mousebind>
  20.312 +      <mousebind button="A-Up" action="Click">
  20.313 +        <action name="DesktopPrevious"/>
  20.314 +      </mousebind>
  20.315 +      <mousebind button="A-Down" action="Click">
  20.316 +        <action name="DesktopNext"/>
  20.317 +      </mousebind>
  20.318 +      <mousebind button="C-A-Up" action="Click">
  20.319 +        <action name="DesktopPrevious"/>
  20.320 +      </mousebind>
  20.321 +      <mousebind button="C-A-Down" action="Click">
  20.322 +        <action name="DesktopNext"/>
  20.323 +      </mousebind>
  20.324 +      <mousebind button="A-S-Up" action="Click">
  20.325 +        <action name="SendToDesktopPrevious"/>
  20.326 +      </mousebind>
  20.327 +      <mousebind button="A-S-Down" action="Click">
  20.328 +        <action name="SendToDesktopNext"/>
  20.329 +      </mousebind>
  20.330 +    </context>
  20.331 +    <context name="Titlebar">
  20.332 +      <mousebind button="Left" action="Press">
  20.333 +        <action name="Focus"/>
  20.334 +        <action name="Raise"/>
  20.335 +      </mousebind>
  20.336 +      <mousebind button="Left" action="Drag">
  20.337 +        <action name="Move"/>
  20.338 +      </mousebind>
  20.339 +      <mousebind button="Left" action="DoubleClick">
  20.340 +        <action name="ToggleMaximizeFull"/>
  20.341 +      </mousebind>
  20.342 +      <mousebind button="Middle" action="Press">
  20.343 +        <action name="Lower"/>
  20.344 +        <action name="FocusToBottom"/>
  20.345 +        <action name="Unfocus"/>
  20.346 +      </mousebind>
  20.347 +      <mousebind button="Up" action="Click">
  20.348 +        <action name="Shade"/>
  20.349 +        <action name="FocusToBottom"/>
  20.350 +        <action name="Unfocus"/>
  20.351 +        <action name="Lower"/>
  20.352 +      </mousebind>
  20.353 +      <mousebind button="Down" action="Click">
  20.354 +        <action name="Unshade"/>
  20.355 +        <action name="Raise"/>
  20.356 +      </mousebind>
  20.357 +      <mousebind button="Right" action="Press">
  20.358 +        <action name="Focus"/>
  20.359 +        <action name="Raise"/>
  20.360 +        <action name="ShowMenu">
  20.361 +          <menu>client-menu</menu>
  20.362 +        </action>
  20.363 +      </mousebind>
  20.364 +    </context>
  20.365 +    <context name="Top">
  20.366 +      <mousebind button="Left" action="Press">
  20.367 +        <action name="Focus"/>
  20.368 +        <action name="Raise"/>
  20.369 +        <action name="Unshade"/>
  20.370 +      </mousebind>
  20.371 +      <mousebind button="Left" action="Drag">
  20.372 +        <action name="Resize">
  20.373 +          <edge>top</edge>
  20.374 +        </action>
  20.375 +      </mousebind>
  20.376 +    </context>
  20.377 +    <context name="Left">
  20.378 +      <mousebind button="Left" action="Press">
  20.379 +        <action name="Focus"/>
  20.380 +        <action name="Raise"/>
  20.381 +      </mousebind>
  20.382 +      <mousebind button="Left" action="Drag">
  20.383 +        <action name="Resize">
  20.384 +          <edge>left</edge>
  20.385 +        </action>
  20.386 +      </mousebind>
  20.387 +    </context>
  20.388 +    <context name="Right">
  20.389 +      <mousebind button="Left" action="Press">
  20.390 +        <action name="Focus"/>
  20.391 +        <action name="Raise"/>
  20.392 +      </mousebind>
  20.393 +      <mousebind button="Left" action="Drag">
  20.394 +        <action name="Resize">
  20.395 +          <edge>right</edge>
  20.396 +        </action>
  20.397 +      </mousebind>
  20.398 +    </context>
  20.399 +    <context name="Bottom">
  20.400 +      <mousebind button="Left" action="Press">
  20.401 +        <action name="Focus"/>
  20.402 +        <action name="Raise"/>
  20.403 +      </mousebind>
  20.404 +      <mousebind button="Left" action="Drag">
  20.405 +        <action name="Resize">
  20.406 +          <edge>bottom</edge>
  20.407 +        </action>
  20.408 +      </mousebind>
  20.409 +      <mousebind button="Middle" action="Press">
  20.410 +        <action name="Lower"/>
  20.411 +        <action name="FocusToBottom"/>
  20.412 +        <action name="Unfocus"/>
  20.413 +      </mousebind>
  20.414 +      <mousebind button="Right" action="Press">
  20.415 +        <action name="Focus"/>
  20.416 +        <action name="Raise"/>
  20.417 +        <action name="ShowMenu">
  20.418 +          <menu>client-menu</menu>
  20.419 +        </action>
  20.420 +      </mousebind>
  20.421 +    </context>
  20.422 +    <context name="BLCorner">
  20.423 +      <mousebind button="Left" action="Press">
  20.424 +        <action name="Focus"/>
  20.425 +        <action name="Raise"/>
  20.426 +      </mousebind>
  20.427 +      <mousebind button="Left" action="Drag">
  20.428 +        <action name="Resize"/>
  20.429 +      </mousebind>
  20.430 +    </context>
  20.431 +    <context name="BRCorner">
  20.432 +      <mousebind button="Left" action="Press">
  20.433 +        <action name="Focus"/>
  20.434 +        <action name="Raise"/>
  20.435 +      </mousebind>
  20.436 +      <mousebind button="Left" action="Drag">
  20.437 +        <action name="Resize"/>
  20.438 +      </mousebind>
  20.439 +    </context>
  20.440 +    <context name="TLCorner">
  20.441 +      <mousebind button="Left" action="Press">
  20.442 +        <action name="Focus"/>
  20.443 +        <action name="Raise"/>
  20.444 +        <action name="Unshade"/>
  20.445 +      </mousebind>
  20.446 +      <mousebind button="Left" action="Drag">
  20.447 +        <action name="Resize"/>
  20.448 +      </mousebind>
  20.449 +    </context>
  20.450 +    <context name="TRCorner">
  20.451 +      <mousebind button="Left" action="Press">
  20.452 +        <action name="Focus"/>
  20.453 +        <action name="Raise"/>
  20.454 +        <action name="Unshade"/>
  20.455 +      </mousebind>
  20.456 +      <mousebind button="Left" action="Drag">
  20.457 +        <action name="Resize"/>
  20.458 +      </mousebind>
  20.459 +    </context>
  20.460 +    <context name="Client">
  20.461 +      <mousebind button="Left" action="Press">
  20.462 +        <action name="Focus"/>
  20.463 +        <action name="Raise"/>
  20.464 +      </mousebind>
  20.465 +      <mousebind button="Middle" action="Press">
  20.466 +        <action name="Focus"/>
  20.467 +        <action name="Raise"/>
  20.468 +      </mousebind>
  20.469 +      <mousebind button="Right" action="Press">
  20.470 +        <action name="Focus"/>
  20.471 +        <action name="Raise"/>
  20.472 +      </mousebind>
  20.473 +    </context>
  20.474 +    <context name="Icon">
  20.475 +      <mousebind button="Left" action="Press">
  20.476 +        <action name="Focus"/>
  20.477 +        <action name="Raise"/>
  20.478 +        <action name="Unshade"/>
  20.479 +        <action name="ShowMenu">
  20.480 +          <menu>client-menu</menu>
  20.481 +        </action>
  20.482 +      </mousebind>
  20.483 +      <mousebind button="Right" action="Press">
  20.484 +        <action name="Focus"/>
  20.485 +        <action name="Raise"/>
  20.486 +        <action name="ShowMenu">
  20.487 +          <menu>client-menu</menu>
  20.488 +        </action>
  20.489 +      </mousebind>
  20.490 +    </context>
  20.491 +    <context name="AllDesktops">
  20.492 +      <mousebind button="Left" action="Press">
  20.493 +        <action name="Focus"/>
  20.494 +        <action name="Raise"/>
  20.495 +        <action name="Unshade"/>
  20.496 +      </mousebind>
  20.497 +      <mousebind button="Left" action="Click">
  20.498 +        <action name="ToggleOmnipresent"/>
  20.499 +      </mousebind>
  20.500 +    </context>
  20.501 +    <context name="Shade">
  20.502 +      <mousebind button="Left" action="Press">
  20.503 +        <action name="Focus"/>
  20.504 +        <action name="Raise"/>
  20.505 +      </mousebind>
  20.506 +      <mousebind button="Left" action="Click">
  20.507 +        <action name="ToggleShade"/>
  20.508 +      </mousebind>
  20.509 +    </context>
  20.510 +    <context name="Iconify">
  20.511 +      <mousebind button="Left" action="Press">
  20.512 +        <action name="Focus"/>
  20.513 +        <action name="Raise"/>
  20.514 +      </mousebind>
  20.515 +      <mousebind button="Left" action="Click">
  20.516 +        <action name="Iconify"/>
  20.517 +      </mousebind>
  20.518 +    </context>
  20.519 +    <context name="Maximize">
  20.520 +      <mousebind button="Left" action="Press">
  20.521 +        <action name="Focus"/>
  20.522 +        <action name="Raise"/>
  20.523 +        <action name="Unshade"/>
  20.524 +      </mousebind>
  20.525 +      <mousebind button="Middle" action="Press">
  20.526 +        <action name="Focus"/>
  20.527 +        <action name="Raise"/>
  20.528 +        <action name="Unshade"/>
  20.529 +      </mousebind>
  20.530 +      <mousebind button="Right" action="Press">
  20.531 +        <action name="Focus"/>
  20.532 +        <action name="Raise"/>
  20.533 +        <action name="Unshade"/>
  20.534 +      </mousebind>
  20.535 +      <mousebind button="Left" action="Click">
  20.536 +        <action name="ToggleMaximizeFull"/>
  20.537 +      </mousebind>
  20.538 +      <mousebind button="Middle" action="Click">
  20.539 +        <action name="ToggleMaximizeVert"/>
  20.540 +      </mousebind>
  20.541 +      <mousebind button="Right" action="Click">
  20.542 +        <action name="ToggleMaximizeHorz"/>
  20.543 +      </mousebind>
  20.544 +    </context>
  20.545 +    <context name="Close">
  20.546 +      <mousebind button="Left" action="Press">
  20.547 +        <action name="Focus"/>
  20.548 +        <action name="Raise"/>
  20.549 +        <action name="Unshade"/>
  20.550 +      </mousebind>
  20.551 +      <mousebind button="Left" action="Click">
  20.552 +        <action name="Close"/>
  20.553 +      </mousebind>
  20.554 +    </context>
  20.555 +    <context name="Desktop">
  20.556 +      <mousebind button="Up" action="Click">
  20.557 +        <action name="DesktopPrevious"/>
  20.558 +      </mousebind>
  20.559 +      <mousebind button="Down" action="Click">
  20.560 +        <action name="DesktopNext"/>
  20.561 +      </mousebind>
  20.562 +      <mousebind button="A-Up" action="Click">
  20.563 +        <action name="DesktopPrevious"/>
  20.564 +      </mousebind>
  20.565 +      <mousebind button="A-Down" action="Click">
  20.566 +        <action name="DesktopNext"/>
  20.567 +      </mousebind>
  20.568 +      <mousebind button="C-A-Up" action="Click">
  20.569 +        <action name="DesktopPrevious"/>
  20.570 +      </mousebind>
  20.571 +      <mousebind button="C-A-Down" action="Click">
  20.572 +        <action name="DesktopNext"/>
  20.573 +      </mousebind>
  20.574 +      <mousebind button="Left" action="Press">
  20.575 +        <action name="Focus"/>
  20.576 +        <action name="Raise"/>
  20.577 +      </mousebind>
  20.578 +      <mousebind button="Right" action="Press">
  20.579 +        <action name="Focus"/>
  20.580 +        <action name="Raise"/>
  20.581 +      </mousebind>
  20.582 +    </context>
  20.583 +    <context name="Root">
  20.584 +      <!-- Menus -->
  20.585 +      <mousebind button="Middle" action="Press">
  20.586 +        <action name="ShowMenu">
  20.587 +          <menu>client-list-combined-menu</menu>
  20.588 +        </action>
  20.589 +      </mousebind>
  20.590 +      <mousebind button="Right" action="Press">
  20.591 +        <action name="ShowMenu">
  20.592 +          <menu>root-menu</menu>
  20.593 +        </action>
  20.594 +      </mousebind>
  20.595 +    </context>
  20.596 +    <context name="MoveResize">
  20.597 +      <mousebind button="Up" action="Click">
  20.598 +        <action name="DesktopPrevious"/>
  20.599 +      </mousebind>
  20.600 +      <mousebind button="Down" action="Click">
  20.601 +        <action name="DesktopNext"/>
  20.602 +      </mousebind>
  20.603 +      <mousebind button="A-Up" action="Click">
  20.604 +        <action name="DesktopPrevious"/>
  20.605 +      </mousebind>
  20.606 +      <mousebind button="A-Down" action="Click">
  20.607 +        <action name="DesktopNext"/>
  20.608 +      </mousebind>
  20.609 +    </context>
  20.610 +  </mouse>
  20.611 +  <menu>
  20.612 +    <!-- You can specify more than one menu file in here and they are all loaded,
  20.613 +       just don't make menu ids clash or, well, it'll be kind of pointless -->
  20.614 +    <!-- default menu file (or custom one in $HOME/.config/openbox/) -->
  20.615 +    <file>menu.xml</file>
  20.616 +    <hideDelay>200</hideDelay>
  20.617 +    <!-- if a press-release lasts longer than this setting (in milliseconds), the
  20.618 +       menu is hidden again -->
  20.619 +    <middle>no</middle>
  20.620 +    <!-- center submenus vertically about the parent entry -->
  20.621 +    <submenuShowDelay>100</submenuShowDelay>
  20.622 +    <!-- this one is easy, time to delay before showing a submenu after hovering
  20.623 +       over the parent entry -->
  20.624 +    <applicationIcons>yes</applicationIcons>
  20.625 +    <!-- controls if icons appear in the client-list-(combined-)menu -->
  20.626 +    <manageDesktops>yes</manageDesktops>
  20.627 +    <!-- show the manage desktops section in the client-list-(combined-)menu -->
  20.628 +  </menu>
  20.629 +  <applications>
  20.630 +    <!--
  20.631 +  # this is an example with comments through out. use these to make your
  20.632 +  # own rules, but without the comments of course.
  20.633 +
  20.634 +  <application name="first element of window's WM_CLASS property (see xprop)"
  20.635 +              class="second element of window's WM_CLASS property (see xprop)"
  20.636 +               role="the window's WM_WINDOW_ROLE property (see xprop)">
  20.637 +  # the name or the class can be set, or both. this is used to match
  20.638 +  # windows when they appear. role can optionally be set as well, to
  20.639 +  # further restrict your matches.
  20.640 +
  20.641 +  # the name, class, and role use simple wildcard matching such as those
  20.642 +  # used by a shell. you can use * to match any characters and ? to match
  20.643 +  # any single character.
  20.644 +
  20.645 +  # when multiple rules match a window, they will all be applied, in the
  20.646 +  # order that they appear in this list
  20.647 +
  20.648 +
  20.649 +    # each element can be left out or set to 'default' to specify to not 
  20.650 +    # change that attribute of the window
  20.651 +
  20.652 +    <decor>yes</decor>
  20.653 +    # enable or disable window decorations
  20.654 +
  20.655 +    <shade>no</shade>
  20.656 +    # make the window shaded when it appears, or not
  20.657 +
  20.658 +    <position>
  20.659 +      # the position is only used if both an x and y coordinate are provided
  20.660 +      # (and not set to 'default')
  20.661 +      <x>center</x>
  20.662 +      # a number like 50, or 'center' to center on screen. use a negative number
  20.663 +      # to start from the right (or bottom for <y>), ie -50 is 50 pixels from the
  20.664 +      # right edge (or bottom).
  20.665 +      <y>200</y>
  20.666 +      <monitor>1</monitor>
  20.667 +      # specifies the monitor in a xinerama setup.
  20.668 +      # 1 is the first head, or 'mouse' for wherever the mouse is
  20.669 +    </position>
  20.670 +
  20.671 +    <focus>yes</focus>
  20.672 +    # if the window should try be given focus when it appears. if this is set
  20.673 +    # to yes it doesn't guarantee the window will be given focus. some
  20.674 +    # restrictions may apply, but Openbox will try to
  20.675 +
  20.676 +    <desktop>1</desktop>
  20.677 +    # 1 is the first desktop, 'all' for all desktops
  20.678 +
  20.679 +    <layer>normal</layer>
  20.680 +    # 'above', 'normal', or 'below'
  20.681 +
  20.682 +    <iconic>no</iconic>
  20.683 +    # make the window iconified when it appears, or not
  20.684 +
  20.685 +    <skip_pager>no</skip_pager>
  20.686 +    # asks to not be shown in pagers
  20.687 +
  20.688 +    <skip_taskbar>no</skip_taskbar>
  20.689 +    # asks to not be shown in taskbars. window cycling actions will also
  20.690 +    # skip past such windows
  20.691 +
  20.692 +    <fullscreen>yes</fullscreen>
  20.693 +    # make the window in fullscreen mode when it appears
  20.694 +
  20.695 +    <maximized>true</maximized>
  20.696 +    # 'Horizontal', 'Vertical' or boolean (yes/no)
  20.697 +  </application>
  20.698 +
  20.699 +  # end of the example
  20.700 +-->
  20.701 +  </applications>
  20.702 +</openbox_config>
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/core-xfce/rootfs/root/.Xdefaults	Sun Dec 05 17:40:41 2010 +0100
    21.3 @@ -0,0 +1,20 @@
    21.4 +!~/.Xdefault: Control the behavior of x-clients.
    21.5 +!
    21.6 +
    21.7 +! Xcursor theme (~/.icons).
    21.8 +!
    21.9 +Xcursor.theme:		slitaz-polar
   21.10 +
   21.11 +! XTerm settings.
   21.12 +!
   21.13 +xterm*background:	black
   21.14 +xterm*foreground:	white
   21.15 +xterm*cursorColor:	#6AA2D8
   21.16 +xterm*scrollBar:	off
   21.17 +xterm*faceName:		DejaVu Sans Mono
   21.18 +xterm*faceSize:		9
   21.19 +
   21.20 +! Xload settings.
   21.21 +!
   21.22 +!xload*background:	black
   21.23 +!xload*foreground:	lightblue
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/core-xfce/rootfs/root/.gtkrc-2.0	Sun Dec 05 17:40:41 2010 +0100
    22.3 @@ -0,0 +1,13 @@
    22.4 +# ~/.gtkrc-2.0 - GTK+ theme, icon and font configuration.
    22.5 +#
    22.6 +# System files   : /usr/share/{themes,icons,fonts}
    22.7 +# Personal files : ~/.icons and ~/.fonts
    22.8 +#
    22.9 +
   22.10 +gtk-theme-name = "SliTaz"
   22.11 +#gtk-theme-name = "Clearlooks-DeepSky"
   22.12 +#gtk-theme-name = "Clearlooks-Olive"
   22.13 +
   22.14 +gtk-icon-theme-name = "SliTaz"
   22.15 +
   22.16 +gtk-font-name = "DejaVu Sans 9"
    23.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.2 +++ b/core-xfce/rootfs/sbin/tazlocale	Sun Dec 05 17:40:41 2010 +0100
    23.3 @@ -0,0 +1,137 @@
    23.4 +#!/bin/sh
    23.5 +#
    23.6 +# Tazlocale: SliTaz GNU/Linux locale setting using dialog boxes.
    23.7 +# Configuration file is : /etc/locale.conf
    23.8 +#
    23.9 +# 20100201 <pankso@slitaz.org> - GNU gpl.
   23.10 +#
   23.11 +
   23.12 +# Check if user is root.
   23.13 +if test $(id -u) != 0; then
   23.14 +	echo -e "\nYou must be root to run `basename $0`!"
   23.15 +	echo -e "Type su and root password to become super-user.\n"
   23.16 +	exit 1
   23.17 +fi
   23.18 +
   23.19 +get_messages()
   23.20 +{
   23.21 +	[ -f "/etc/locale.conf" ] && . /etc/locale.conf
   23.22 +	LANGUAGE=${LANG%_*}
   23.23 +	[ "$LANG" = "C" ] && LANGUAGE="en_US"
   23.24 +	case $LANGUAGE in
   23.25 +		fr*)
   23.26 +			RECONFIG_MSG="
   23.27 +Veuilliez fermer votre session et vous reloguer pour utiliser SliTaz \
   23.28 +avec la locale : $LANG" ;;
   23.29 +		*)
   23.30 +			RECONFIG_MSG="
   23.31 +Please logout of your current session and login again to use SliTaz \
   23.32 +with $LANG locale." ;;
   23.33 +	esac
   23.34 +}
   23.35 +
   23.36 +# Create symlink to translated files provide by SliTaz language pack,
   23.37 +# doc and config files.
   23.38 +link_language_files()
   23.39 +{
   23.40 +	. /etc/locale.conf
   23.41 +	LANGUAGE=${LANG%_*}
   23.42 +	[ "$LANG" = "C" ] && LANGUAGE="en"
   23.43 +	# Openbox menu in /usr/share/doc/slitaz
   23.44 +	if [ -f /etc/xdg/openbox/menu.$LANGUAGE.xml ]; then
   23.45 +		cd /etc/xdg/openbox && rm -f menu.xml
   23.46 +		ln -s menu.$LANGUAGE.xml menu.xml
   23.47 +	fi
   23.48 +	# Documentation in /usr/share/doc/slitaz
   23.49 +	if [ -f /usr/share/doc/slitaz/index.$LANGUAGE.html ]; then
   23.50 +		cd /usr/share/doc/slitaz && rm -f index.html
   23.51 +		ln -s index.$LANGUAGE.html index.html
   23.52 +	fi
   23.53 +	# SliTaz Software Manuals
   23.54 +	for soft in tazpkg tazlito tazusb tazwok
   23.55 +	do
   23.56 +		if [ -f /usr/share/doc/$soft/$soft.$LANGUAGE.html ]; then
   23.57 +			cd /usr/share/doc/$soft && rm -f $soft.html
   23.58 +			ln -s $soft.$LANGUAGE.html $soft.html
   23.59 +		fi
   23.60 +	done
   23.61 +}
   23.62 +
   23.63 +# Locale name displayed.
   23.64 +get_locale_name()
   23.65 +{
   23.66 +	for i in `ls -1 /usr/share/i18n/locales/ | grep ^[a-z][a-z]_[A-Z][A-Z]`
   23.67 +	do
   23.68 +		#name=`locale -a -v | grep -A 2 "locale: $i" | grep "title" | \
   23.69 +		#	cut -d " " -f 7`
   23.70 +		echo "$i Locale"
   23.71 +	done
   23.72 +}
   23.73 +
   23.74 +# We have no locale files in /usr/lib/locale by default. Run localedef in
   23.75 +# background to have a faster boot.
   23.76 +gen_utf8_locale()
   23.77 +{
   23.78 +	localedef -i $locale -c -f UTF-8 /usr/lib/locale/$locale &
   23.79 +}
   23.80 +
   23.81 +# Dialog menu.
   23.82 +dialog_menu()
   23.83 +{
   23.84 +	exec 3>&1
   23.85 +	locale=`$DIALOG  --clear \
   23.86 +	--title " SliTaz language configuration " \
   23.87 +	--menu "" 15 70 5 \
   23.88 +"en" "English" \
   23.89 +$(get_locale_name) \
   23.90 +2>&1 1>&3`
   23.91 +	retval=$?
   23.92 +	exec 3>&-
   23.93 +	case $retval in
   23.94 +		0)
   23.95 +			continue ;;
   23.96 +		1)
   23.97 +			echo "Cancel pressed."
   23.98 +			exit 0 ;;
   23.99 +		255)
  23.100 +			if test -n "$locale"; then
  23.101 +				echo "$locale"
  23.102 +			else
  23.103 +				echo "ESC pressed."
  23.104 +				exit 0
  23.105 +			fi ;;
  23.106 +	esac
  23.107 +	# Default: C = English
  23.108 +	[ "$locale" = "en" ] && locale="en_US"
  23.109 +	[ -s /etc/locale.conf ] && RECONFIG="yes"
  23.110 +	# System configuration
  23.111 +	echo "LANG=$locale" > /etc/locale.conf
  23.112 +	echo "LC_ALL=$locale" >> /etc/locale.conf
  23.113 +	export LANG=$locale LC_ALL=$locale
  23.114 +	gen_utf8_locale
  23.115 +	get_messages
  23.116 +	# If it's a reconfiguration give an info message.
  23.117 +	if [ -n "$RECONFIG" ]; then
  23.118 +		$DIALOG --clear \
  23.119 +			--title " Information " \
  23.120 +			--msgbox "$RECONFIG_MSG" 16 70
  23.121 +	fi
  23.122 +}
  23.123 +
  23.124 +case "$1" in
  23.125 +	*_*)
  23.126 +		# Execute functions (can be called from an other apps).
  23.127 +		$1 ;;
  23.128 +	link-files)
  23.129 +		link_language_files ;;
  23.130 +	list)
  23.131 +		echo ""
  23.132 +		locale -a
  23.133 +		echo "" ;;
  23.134 +	*)
  23.135 +		: ${DIALOG=dialog}
  23.136 +		dialog_menu
  23.137 +		link_language_files ;;
  23.138 +esac
  23.139 +
  23.140 +exit 0
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/core-xfce/rootfs/usr/bin/slitaz-installer	Sun Dec 05 17:40:41 2010 +0100
    24.3 @@ -0,0 +1,1051 @@
    24.4 +#!/bin/sh
    24.5 +# slitaz-installer - SliTaz GNU/Linux installer.
    24.6 +#
    24.7 +# So this is SliTaz installer using dialog boxes. All the comments are in
    24.8 +# English but displayed messages are in French. The script starts with a
    24.9 +# few main variables, then all the functions and then a sequence of functions.
   24.10 +#
   24.11 +# (C) 2007-2009 SliTaz - GNU General Public License v3.
   24.12 +#
   24.13 +# Author : Christophe Lincoln <pankso@slitaz.org>
   24.14 +#
   24.15 +VERSION=2.0
   24.16 +
   24.17 +: ${DIALOG=dialog}
   24.18 +
   24.19 +# We need to know cdrom device and kernel version string to copy files.
   24.20 +DRIVE_NAME=`cat /proc/sys/dev/cdrom/info | grep "drive name" | cut -f 3`
   24.21 +CDROM=/dev/$DRIVE_NAME
   24.22 +KERNEL=vmlinuz-`uname -r`
   24.23 +TARGET_ROOT=/mnt/target
   24.24 +LOG=/var/log/slitaz-installer.log
   24.25 +BACKLIST="SliTaz GNU/Linux installer"
   24.26 +ACTION=$1
   24.27 +
   24.28 +#######################
   24.29 +# Installer functions #
   24.30 +#######################
   24.31 +
   24.32 +# Messages language setting.
   24.33 +set_messages()
   24.34 +{
   24.35 +	case $LANG in
   24.36 +		de*)
   24.37 +			. /usr/share/slitaz/messages/de/installer.msg ;;
   24.38 +		fr*)
   24.39 +			. /usr/share/slitaz/messages/fr/installer.msg ;;
   24.40 +		hu*)
   24.41 +			. /usr/share/slitaz/messages/hu/installer.msg ;;
   24.42 +		pt*)
   24.43 +			. /usr/share/slitaz/messages/pt/installer.msg ;;
   24.44 +		*)
   24.45 +			. /usr/share/slitaz/messages/en/installer.msg ;;
   24.46 +	esac
   24.47 +}
   24.48 +
   24.49 +# Display error message.
   24.50 +error_message()
   24.51 +{
   24.52 +	$DIALOG --title " Error " \
   24.53 +		--colors --backtitle "$BACKLIST" \
   24.54 +		--clear --msgbox "\n$ERROR_MSG" 18 70
   24.55 +}
   24.56 +
   24.57 +# Exit install if user is not root.
   24.58 +check_root()
   24.59 +{
   24.60 +	if test $(id -u) != 0 ; then
   24.61 +	ERROR_MSG="\
   24.62 +[\Z6en\Zn] You must be root administrator to start SliTaz installer, please \
   24.63 +use 'su' to get a root SHell and restart installation.\n\n
   24.64 +[\Z6fr\Zn] Vous devez être root pour installer SLiTaz GNU/Linux. Vous pouvez \
   24.65 +utiliser 'su' suivi du mot de passe administrateur pour devenir root \
   24.66 +et relancer l'installation."
   24.67 +		error_message
   24.68 +		exit 0
   24.69 +	fi
   24.70 +}
   24.71 +
   24.72 +# This function is used after each screen to contine or abort install.
   24.73 +check_retval()
   24.74 +{
   24.75 +	case $retval in
   24.76 +		0)
   24.77 +			continue ;;
   24.78 +		1)
   24.79 +			echo -e "\nVoluntary exit.\n" && exit 0 ;;
   24.80 +		3)
   24.81 +			continue ;;
   24.82 +		255)
   24.83 +			echo -e "ESC pressed.\n" && exit 0 ;;
   24.84 +	esac
   24.85 +}
   24.86 +
   24.87 +# Start install with basic information.
   24.88 +start_installer()
   24.89 +{
   24.90 +	$DIALOG --title " Install or Upgrade " \
   24.91 +		--backtitle "$BACKLIST" \
   24.92 +		--extra-button --extra-label "Upgrade" \
   24.93 +		--ok-label "Install" \
   24.94 +		--clear --colors --yesno "$START_INSTALL_MSG" 18 70
   24.95 +	retval=$?
   24.96 +		case $retval in
   24.97 +		0)
   24.98 +			ACTION=install ;;
   24.99 +		1)
  24.100 +			echo -e "\nVoluntary exit.\n" && exit 0 ;;
  24.101 +		3)
  24.102 +			ACTION=upgrade ;;
  24.103 +		255)
  24.104 +			echo -e "ESC pressed.\n" && exit 0 ;;
  24.105 +	esac
  24.106 +	echo "start_installer: `date`" > $LOG
  24.107 +}
  24.108 +
  24.109 +# Mount cdrom and verify if it's really SliTaz CD.
  24.110 +mount_cdrom()
  24.111 +{
  24.112 +	ERROR_MSG=""
  24.113 +	(
  24.114 +	echo "XXX" && echo 30
  24.115 +	echo -e "\nCreating mount point (/media/cdrom)..."
  24.116 +	echo "XXX"
  24.117 +	mkdir -p /media/cdrom
  24.118 +	sleep 1
  24.119 +	# First try to mount a cdrom
  24.120 +	if mount -t iso9660 $CDROM /media/cdrom 2>>$LOG; then
  24.121 +		echo "XXX" && echo 60
  24.122 +		echo -e "\nUsing file from cdrom ($CDROM)..."
  24.123 +		echo "XXX"
  24.124 +		sleep 2
  24.125 +	else
  24.126 +		# We may be in LiveUSB mode
  24.127 +		if [ -d /home/boot ]; then
  24.128 +			echo "XXX" && echo 60
  24.129 +			echo -e "\nUsing file from USB device..."
  24.130 +			echo "XXX"
  24.131 +			rm /media/cdrom/boot 2>/dev/null
  24.132 +			ln -s /home/boot /media/cdrom/boot
  24.133 +			sleep 2
  24.134 +		fi
  24.135 +	fi
  24.136 +
  24.137 +	echo "XXX" && echo 90
  24.138 +	echo -e "\nChecking installation media..."
  24.139 +	echo "XXX"
  24.140 +	sleep 2
  24.141 +	) |
  24.142 +	$DIALOG --title " Mounting cdrom " \
  24.143 +		--backtitle "$BACKLIST" \
  24.144 +		--gauge "Preparing the installation media..." 18 70 0
  24.145 +	# Exit with error msg if no rootfs.gz found.
  24.146 +	if [ ! -f /media/cdrom/boot/rootfs.gz ]; then
  24.147 +		ERROR_MSG="$MOUNT_CDROM_ERROR_MSG"
  24.148 +		error_message
  24.149 +		echo "missing: /media/cdrom/boot/rootfs.gz" >>$LOG
  24.150 +		exit 1
  24.151 +	fi
  24.152 +}
  24.153 +
  24.154 +# Display a list of available partitions.
  24.155 +fdisk_list()
  24.156 +{
  24.157 +	LIST_PARTITIONS=`fdisk -l | grep ^/dev | sed s/'e Win95'/'e'/g`
  24.158 +	$DIALOG --title " Partition tables " \
  24.159 +		--backtitle "$BACKLIST" \
  24.160 +		--clear --msgbox "\n
  24.161 +Available partitions :\n\n
  24.162 +$LIST_PARTITIONS" 18 70
  24.163 +}
  24.164 +
  24.165 +# We need a partition to install to (inputbox).
  24.166 +ask_for_target_dev()
  24.167 +{
  24.168 +	exec 3>&1
  24.169 +	TARGET_DEV=`$DIALOG --title " Root Partition " \
  24.170 +		--backtitle "$BACKLIST" --clear \
  24.171 +		--extra-label "List" --extra-button \
  24.172 +		--colors --inputbox "$ASK_FOR_TARGET_DEV_MSG" 18 70 2>&1 1>&3`
  24.173 +	retval=$?
  24.174 +	exec 3>&-
  24.175 +	check_retval
  24.176 +	# Display list and come back.
  24.177 +	if [ "$retval" = "3" ]; then
  24.178 +		fdisk_list
  24.179 +		ask_for_target_dev
  24.180 +	fi
  24.181 +	# Empty value.
  24.182 +	if [ -z $TARGET_DEV ]; then
  24.183 +		ask_for_target_dev
  24.184 +	fi
  24.185 +	set_messages
  24.186 +	# Check if specified device exists in /proc/partitions.
  24.187 +	DEV_NAME=${TARGET_DEV#/dev/}
  24.188 +	if cat /proc/partitions | grep -q $DEV_NAME; then
  24.189 +		if [ "$DEV_NAME" = "$TARGET_DEV" ]; then
  24.190 +			TARGET_DEV="/dev/$DEV_NAME"
  24.191 +		fi
  24.192 +		echo "ask_for_target_dev: $TARGET_DEV" >>$LOG
  24.193 +	else
  24.194 +		ERROR_MSG="Partition \Z2$TARGET_DEV\Zn doesn't exist."
  24.195 +		error_message
  24.196 +		ask_for_target_dev
  24.197 +	fi
  24.198 +}
  24.199 +
  24.200 +# Mkfs if needed/wanted on /.
  24.201 +ask_for_mkfs_target_dev()
  24.202 +{
  24.203 +	$DIALOG --title " Format " \
  24.204 +		--backtitle "$BACKLIST" \
  24.205 +		--clear --colors --yesno "$ASK_FOR_MKFS_TARGET_DEV_MSG" 18 70
  24.206 +	retval=$?
  24.207 +	case $retval in
  24.208 +		0)
  24.209 +			MKFS_TARGET_DEV="ext3"
  24.210 +			echo "mkfs_target_dev: ext3" >>$LOG ;;
  24.211 +		1)
  24.212 +			CLEAN="clean"
  24.213 +			echo "mkfs_target_dev: clean" >>$LOG ;;
  24.214 +		255)
  24.215 +			echo -e "ESC pressed.\n" && exit 0 ;;
  24.216 +	esac
  24.217 +
  24.218 +}
  24.219 +
  24.220 +# We can have a separate partition for /home.
  24.221 +ask_for_home()
  24.222 +{
  24.223 +	exec 3>&1
  24.224 +	HOME_DEV=`$DIALOG --title " Home Partition " \
  24.225 +		--backtitle "$BACKLIST" --clear \
  24.226 +		--extra-label "List" --extra-button \
  24.227 +		--colors --inputbox "
  24.228 +On most GNU/Linux systems users personal files are stored in the directory \
  24.229 +/home. Home can be on a separate partition or another hard disk.
  24.230 +
  24.231 +\Z2Home partition to use (Optional):\Zn" 18 70 2>&1 1>&3`
  24.232 +	retval=$?
  24.233 +	exec 3>&-
  24.234 +	check_retval
  24.235 +	# Display list and come back.
  24.236 +	if [ "$retval" = "3" ]; then
  24.237 +		fdisk_list
  24.238 +		ask_for_home
  24.239 +	fi
  24.240 +	if [ -n "$HOME_DEV" ]; then
  24.241 +		# Check if specified device exists in /proc/partitions.
  24.242 +		DEV_NAME=${HOME_DEV#/dev/}
  24.243 +		if cat /proc/partitions | grep -q $DEV_NAME; then
  24.244 +			if [ "$DEV_NAME" = "$HOME_DEV" ]; then
  24.245 +				HOME_DEV="/dev/$DEV_NAME"
  24.246 +			fi
  24.247 +			echo "ask_for_home: $HOME_DEV" >>$LOG
  24.248 +		else
  24.249 +			ERROR_MSG="Partition \Z2$HOME_DEV\Zn doesn't exist."
  24.250 +			error_message
  24.251 +			ask_for_home
  24.252 +		fi
  24.253 +	fi
  24.254 +}
  24.255 +
  24.256 +# Mkfs if needed/wanted on /.
  24.257 +ask_for_mkfs_home()
  24.258 +{
  24.259 +	$DIALOG --title " Format " \
  24.260 +		--backtitle "$BACKLIST" \
  24.261 +		--clear --colors --yesno "
  24.262 +Here you can format the /home partition: $HOME_DEV
  24.263 +
  24.264 +SliTaz uses ext3 by default but another filesystem can be used if wanted, \
  24.265 +for this please adjust /etc/fstab after installation.
  24.266 +
  24.267 +\Z2Do you want to format (Option): $HOME_DEV\Zn" 18 70
  24.268 +	retval=$?
  24.269 +	case $retval in
  24.270 +		0)
  24.271 +			MKFS_HOME="ext3"
  24.272 +			echo "mkfs_home: ext3" >>$LOG ;;
  24.273 +		1)
  24.274 +			MKFS_HOME=""
  24.275 +			echo "mkfs_home: no" >>$LOG ;;
  24.276 +		255)
  24.277 +			echo -e "ESC pressed.\n" && exit 0 ;;
  24.278 +	esac
  24.279 +
  24.280 +}
  24.281 +
  24.282 +# Ask for hostname before installing files.
  24.283 +ask_for_hostname()
  24.284 +{
  24.285 +	exec 3>&1
  24.286 +	HOSTNAME=`$DIALOG --title " Hostname " \
  24.287 +		--backtitle "$BACKLIST" --clear \
  24.288 +		--colors --inputbox "$ASK_FOR_HOSTNAME_MSG" 18 70 "slitaz" 2>&1 1>&3`
  24.289 +	retval=$?
  24.290 +	exec 3>&-
  24.291 +	check_retval
  24.292 +	# Empty value.
  24.293 +	if [ -z $HOSTNAME ]; then
  24.294 +		HOSTNAME="slitaz"
  24.295 +	fi
  24.296 +}
  24.297 +
  24.298 +# Ask for root password and default user settings.
  24.299 +ask_for_users_settings()
  24.300 +{
  24.301 +	# Root passwd
  24.302 +	exec 3>&1
  24.303 +	ROOT_PASSWD=`$DIALOG --title " Root password " \
  24.304 +		--backtitle "$BACKLIST" --clear \
  24.305 +		--colors --nocancel --inputbox "
  24.306 +The root administrator privilege lets you manage and configure the full \
  24.307 +system. A root user can damage your system so you should always setup a \
  24.308 +strong password with special characters and/or numbers.
  24.309 +
  24.310 +\Z2Please specify the Root password for your new system:\Zn" 18 70 "root" 2>&1 1>&3`
  24.311 +	retval=$?
  24.312 +	exec 3>&-
  24.313 +	check_retval
  24.314 +	# Prevent empty value.
  24.315 +	if [ -z $ROOT_PASSWD ]; then
  24.316 +		ROOT_PASSWD="root"
  24.317 +	fi
  24.318 +	# Default user
  24.319 +	exec 3>&1
  24.320 +	USER=`$DIALOG --title " User name " \
  24.321 +		--backtitle "$BACKLIST" --clear \
  24.322 +		--colors --nocancel --inputbox "
  24.323 +The default user for the system will have their personal files stored \
  24.324 +in /home/*user* (and will be automatically added to the audio group).
  24.325 +
  24.326 +\Z2Default user name login:\Zn" 18 70 "tux" 2>&1 1>&3`
  24.327 +	retval=$?
  24.328 +	exec 3>&-
  24.329 +	check_retval
  24.330 +	# Prevent empty value.
  24.331 +	if [ -z $USER ]; then
  24.332 +		USER="tux"
  24.333 +	fi
  24.334 +	# User passwd
  24.335 +	exec 3>&1
  24.336 +	USER_PASSWD=`$DIALOG --title " User password " \
  24.337 +		--backtitle "$BACKLIST" --clear \
  24.338 +		--colors --nocancel --inputbox "
  24.339 +The password for default user $USER. It may be a security risk if too \
  24.340 +weak and should always be strong if you use a SSH connection through the web.
  24.341 +
  24.342 +\Z2Please specify $USER password:\Zn" 18 70 "tux" 2>&1 1>&3`
  24.343 +	retval=$?
  24.344 +	exec 3>&-
  24.345 +	check_retval
  24.346 +	# Prevent empty value.
  24.347 +	if [ -z $USER_PASSWD ]; then
  24.348 +		USER_PASSWD="tux"
  24.349 +	fi
  24.350 +}
  24.351 +
  24.352 +# Tiny summary and last chance to cancel or restart for user.
  24.353 +summary()
  24.354 +{
  24.355 +	$DIALOG --title " Summary " \
  24.356 +		--backtitle "$BACKLIST" \
  24.357 +		--clear --colors --yesno "
  24.358 +Installation settings summary and last chance to cancel or restart all \
  24.359 +installation steps.
  24.360 +
  24.361 +Root partition: $TARGET_DEV
  24.362 +Home partition: $HOME_DEV
  24.363 +Hostname: $HOSTNAME
  24.364 +Default user: $USER
  24.365 +
  24.366 +\Z2Go and install SliTaz or cancel?\Zn" 18 70
  24.367 +	retval=$?
  24.368 +	check_retval
  24.369 +}
  24.370 +
  24.371 +# Mount and mkfs with progress.
  24.372 +prepare_partitions()
  24.373 +{
  24.374 +	(
  24.375 +	echo "XXX" && echo 30
  24.376 +	echo -e "\nPreparing target partition..."
  24.377 +	echo "XXX"
  24.378 +	# Mount point can be already used.
  24.379 +	if mount | grep -q $TARGET_ROOT; then
  24.380 +		umount $TARGET_ROOT 2>$LOG
  24.381 +	fi
  24.382 +	sleep 2
  24.383 +
  24.384 +	if [ "$MKFS_TARGET_DEV" == "ext3" ]; then
  24.385 +		echo "XXX" && echo 50
  24.386 +		echo -e "\nExecuting mkfs.ext3 on $TARGET_DEV"
  24.387 +		echo "XXX"
  24.388 +		mkfs.ext3 $TARGET_DEV >>$LOG 2>>$LOG
  24.389 +	else
  24.390 +		echo "XXX" && echo 50
  24.391 +		echo -e "\nThe partition ($TARGET_DEV) will be cleaned..."
  24.392 +		echo "XXX"
  24.393 +		sleep 2
  24.394 +	fi
  24.395 +
  24.396 +	if [ "$MKFS_HOME" == "ext3" ]; then
  24.397 +		echo "XXX" && echo 70
  24.398 +		echo -e "\nExecuting mkfs.ext3 on $HOME_DEV"
  24.399 +		echo "XXX"
  24.400 +		mkfs.ext3 -L "Home" $HOME_DEV >>$LOG 2>>$LOG
  24.401 +	else
  24.402 +		echo "XXX" && echo 70
  24.403 +		echo -e "\nThe partition ($HOME_DEV) will be kept..."
  24.404 +		echo "XXX"
  24.405 +		sleep 2
  24.406 +	fi
  24.407 +
  24.408 +	echo "XXX" && echo 90
  24.409 +	echo -e "\nCreating mount point: $TARGET_ROOT"
  24.410 +	echo "XXX"
  24.411 +	mkdir -p $TARGET_ROOT
  24.412 +	sleep 2
  24.413 +
  24.414 +	) |
  24.415 +	$DIALOG --title " Prepare the target " \
  24.416 +		--backtitle "$BACKLIST" \
  24.417 +		--gauge "Target in preparation..." 18 70 0
  24.418 +	# Mount target.
  24.419 +	mount $TARGET_DEV $TARGET_ROOT >>$LOG 2>>$LOG
  24.420 +}
  24.421 +
  24.422 +# Get a clean target device (15%).
  24.423 +clean_target()
  24.424 +{
  24.425 +	if [ "$CLEAN" == "clean" ]; then
  24.426 +		echo "XXX" && echo 15
  24.427 +		echo -e "\nCleaning the root partition ($TARGET_DEV)"
  24.428 +		echo "XXX"
  24.429 +		# Keep /home in case of reinstall.
  24.430 +		cd $TARGET_ROOT
  24.431 +		for dir in *
  24.432 +		do
  24.433 +			case "$dir" in
  24.434 +				home)
  24.435 +					mv $TARGET_ROOT/home $TARGET_ROOT/home.bak
  24.436 +					echo "keeping /home found on: $TARGET_DEV" >>$LOG ;;
  24.437 +				lost+found)
  24.438 +					continue ;;
  24.439 +				*)
  24.440 +					echo "removing target: $dir" >>$LOG
  24.441 +					rm -rf $dir 2>>$LOG ;;
  24.442 +			esac
  24.443 +		done
  24.444 +		if [ -d $TARGET_ROOT/mklost+found ]; then
  24.445 +			mklost+found 2>>$LOG
  24.446 +		fi
  24.447 +	fi
  24.448 +	sleep 2
  24.449 +}
  24.450 +
  24.451 +# Kernel is renamed to standard vmlinuz-$VERSION.
  24.452 +install_kernel()
  24.453 +{
  24.454 +	mkdir -p $TARGET_ROOT/boot
  24.455 +	cp /media/cdrom/boot/bzImage $TARGET_ROOT/boot/$KERNEL
  24.456 +	echo "install_kernel: $KERNEL" >> $LOG
  24.457 +	sleep 2
  24.458 +}
  24.459 +
  24.460 +# Copy isolinux r/w files (not syslinux, some files are read only).
  24.461 +copy_bootloaders()
  24.462 +{
  24.463 +	if [ -d "/media/cdrom/boot/isolinux" ]; then
  24.464 +		mkdir -p $TARGET_ROOT/boot/isolinux
  24.465 +		cp -a /media/cdrom/boot/isolinux/*.cfg $TARGET_ROOT/boot/isolinux
  24.466 +		cp -a /media/cdrom/boot/isolinux/*.kbd $TARGET_ROOT/boot/isolinux
  24.467 +		cp -a /media/cdrom/boot/isolinux/*.txt $TARGET_ROOT/boot/isolinux
  24.468 +		cp -a /media/cdrom/boot/isolinux/*.bin $TARGET_ROOT/boot/isolinux
  24.469 +		cp -a /media/cdrom/boot/isolinux/*.msg $TARGET_ROOT/boot/isolinux
  24.470 +		cp -a /media/cdrom/boot/isolinux/*.lss $TARGET_ROOT/boot/isolinux
  24.471 +		cp -a /media/cdrom/boot/isolinux/*.c32 $TARGET_ROOT/boot/isolinux
  24.472 +	fi
  24.473 +}
  24.474 +
  24.475 +# Extract lzma'ed or gziped rootfs.
  24.476 +extract_rootfs()
  24.477 +{
  24.478 +	cd $TARGET_ROOT
  24.479 +	(zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so || \
  24.480 +	 cat rootfs.gz) 2>>$LOG | cpio -id 2>>$LOG > /dev/null
  24.481 +	rm -f rootfs.gz
  24.482 +	# unpack /usr (double check...)
  24.483 +	if ls etc/tazlito | grep -q ".extract"; then
  24.484 +		for i in etc/tazlito/*.extract; do
  24.485 +			[ -f "$i" ] && . $i /media/cdrom
  24.486 +		done
  24.487 +	fi
  24.488 +}
  24.489 +
  24.490 +# Pre configure freshly installed system (60 - 80%).
  24.491 +pre_config_system()
  24.492 +{
  24.493 +	cd $TARGET_ROOT
  24.494 +	# Restore backup of existing /home if exists.
  24.495 +	# (created by prepare_target_dev)
  24.496 +	if [ -d home.bak ]; then
  24.497 +		echo "XXX" && echo 65
  24.498 +		echo -e "\nRestoring directory: /home..."
  24.499 +		echo "XXX"
  24.500 +		rm -rf home
  24.501 +		mv home.bak home
  24.502 +		sleep 1
  24.503 +	fi
  24.504 +	# Add root device to CHECK_FS in rcS.conf to check filesystem
  24.505 +	# on each boot.
  24.506 +	echo "XXX" && echo 70
  24.507 +	echo -e "\nAdding $TARGET_DEV and CHECK_FS to file /etc/rcS.conf..."
  24.508 +	echo "XXX"
  24.509 +	sed -i s#'CHECK_FS=\"\"'#"CHECK_FS=\"$TARGET_DEV\""# etc/rcS.conf
  24.510 +	sleep 2
  24.511 +	# Set hostname.
  24.512 +	echo "XXX" && echo 80
  24.513 +	echo -e "\nConfiguring host name: $HOSTNAME"
  24.514 +	echo "XXX"
  24.515 +	echo $HOSTNAME > etc/hostname
  24.516 +}
  24.517 +
  24.518 +# Set root passwd and create user after rootfs extraction.
  24.519 +users_settings()
  24.520 +{
  24.521 +	cat > $TARGET_ROOT/users.sh << _EOF_
  24.522 +#!/bin/sh
  24.523 +echo "root:$ROOT_PASSWD" | chpasswd
  24.524 +adduser -D -H $USER
  24.525 +addgroup $USER audio
  24.526 +echo "$USER:$USER_PASSWD" | chpasswd
  24.527 +if [ ! -d /home/$USER ]; then
  24.528 +	cp -a /etc/skel /home/$USER
  24.529 +	chown -R $USER.$USER /home/$USER
  24.530 +	# Path for user desktop files.
  24.531 +	for i in /home/$USER/.local/share/applications/*.desktop
  24.532 +	do
  24.533 +		sed -i s/"user_name"/"$USER"/g \$i
  24.534 +	done
  24.535 +fi
  24.536 +# Slim default user.
  24.537 +if [ -f /etc/slim.conf ]; then
  24.538 +	sed -i s/"default_user .*"/"default_user        $USER"/ \
  24.539 +		/etc/slim.conf
  24.540 +fi
  24.541 +_EOF_
  24.542 +	chmod +x $TARGET_ROOT/users.sh
  24.543 +	chroot $TARGET_ROOT ./users.sh
  24.544 +	rm $TARGET_ROOT/users.sh
  24.545 +}
  24.546 +
  24.547 +# /home can be on a separate partition. If default user exist in /home
  24.548 +# we remove default file crated by users_settings().
  24.549 +home_config()
  24.550 +{
  24.551 +	echo "home_config: $HOME_DEV" >> $LOG
  24.552 +	cd $TARGET_ROOT
  24.553 +	mv home/$USER tmp
  24.554 +	mount $HOME_DEV home
  24.555 +	if [ -d $TARGET_ROOT/home/$USER ]; then
  24.556 +		rm -rf tmp/$USER
  24.557 +	else
  24.558 +		mv tmp/$USER home
  24.559 +	fi
  24.560 +	echo "$HOME_DEV       /home        ext3    defaults          0       2" \
  24.561 +		>> etc/fstab
  24.562 +	umount home
  24.563 +}
  24.564 +
  24.565 +# Determine GRUB partition number and GRUB disk number.
  24.566 +grub_config()
  24.567 +{
  24.568 +	DISK_LETTER=${TARGET_DEV#/dev/[h-s]d}
  24.569 +	DISK_LETTER=${DISK_LETTER%[0-9]}
  24.570 +	GRUB_PARTITION=$((${TARGET_DEV#/dev/[h-s]d[a-z]}-1))
  24.571 +	for disk in a b c d e f g h
  24.572 +	do
  24.573 +		nb=$(($nb+1))
  24.574 +		if [ "$disk" = "$DISK_LETTER" ]; then
  24.575 +			GRUB_DISK=$(($nb-1))
  24.576 +			break
  24.577 +		fi
  24.578 +	done
  24.579 +	GRUB_ROOT="(hd${GRUB_DISK},${GRUB_PARTITION})"
  24.580 +	# Create the target GRUB configuration.
  24.581 +	mkdir -p $TARGET_ROOT/boot/grub
  24.582 +	cat > $TARGET_ROOT/boot/grub/menu.lst << _EOF_
  24.583 +# /boot/grub/menu.lst: GRUB boot loader configuration.
  24.584 +#
  24.585 +
  24.586 +# By default, boot the first entry.
  24.587 +default 0
  24.588 +
  24.589 +# Boot automatically after 8 secs.
  24.590 +timeout 8
  24.591 +
  24.592 +# Change the colors.
  24.593 +color yellow/brown light-green/black
  24.594 +
  24.595 +# For booting SliTaz from : $TARGET_DEV
  24.596 +#
  24.597 +title SliTaz GNU/Linux (cooking) (Kernel $KERNEL)
  24.598 +root $GRUB_ROOT
  24.599 +kernel /boot/$KERNEL root=$TARGET_DEV
  24.600 +
  24.601 +_EOF_
  24.602 +	# log
  24.603 +	echo "grub_config: $TARGET_ROOT/boot/grub/menu.lst" >>$LOG
  24.604 +	sleep 2
  24.605 +}
  24.606 +
  24.607 +# Files install with gauge, calling for functions or with cmds.
  24.608 +install_files()
  24.609 +{
  24.610 +	(
  24.611 +
  24.612 +	echo "XXX" && echo 10
  24.613 +	echo -e "\nCleaning the root partition if necessary..."
  24.614 +	echo "XXX"
  24.615 +	clean_target
  24.616 +
  24.617 +	echo "XXX" && echo 20
  24.618 +	echo -e "\nInstalling the kernel ($KERNEL)"
  24.619 +	echo "XXX"
  24.620 +	install_kernel
  24.621 +
  24.622 +	echo "XXX" && echo 30
  24.623 +	echo -e "\nCopying the bootloader syslinux/isolinux..."
  24.624 +	echo "XXX"
  24.625 +	copy_bootloaders
  24.626 +
  24.627 +	echo "XXX" && echo 40
  24.628 +	echo -e "\nCopying the compressed system (rootfs.gz)..."
  24.629 +	echo "XXX"
  24.630 +	cp /media/cdrom/boot/rootfs.gz $TARGET_ROOT
  24.631 +	sleep 2
  24.632 +
  24.633 +	echo "XXX" && echo 50
  24.634 +	echo -e "\nExtracting the root system..."
  24.635 +	echo "XXX"
  24.636 +	extract_rootfs
  24.637 +
  24.638 +	echo "XXX" && echo 60
  24.639 +	echo -e "\nPreconfiguring the system..."
  24.640 +	echo "XXX"
  24.641 +	pre_config_system
  24.642 +
  24.643 +	echo "XXX" && echo 70
  24.644 +	echo -e "\nConfiguring root and default $USER account..."
  24.645 +	echo "XXX"
  24.646 +	users_settings
  24.647 +	sleep 2
  24.648 +
  24.649 +	if [ "$HOME_DEV" != "" ]; then
  24.650 +		echo "XXX" && echo 80
  24.651 +		echo -e "\nConfiguring $HOME_DEV to be used as /home..."
  24.652 +		echo "XXX"
  24.653 +		home_config
  24.654 +		sleep 2
  24.655 +	fi
  24.656 +
  24.657 +	echo "XXX" && echo 90
  24.658 +	echo -e "\nCreating the configuration file for GRUB (menu.lst)..."
  24.659 +	echo "XXX"
  24.660 +	grub_config
  24.661 +
  24.662 +	echo "XXX" && echo 100
  24.663 +	echo -e "\nFinishing the files installation..."
  24.664 +	echo "XXX"
  24.665 +	echo "install_files: OK" >>$LOG
  24.666 +	sleep 2
  24.667 +
  24.668 +	) |
  24.669 +	$DIALOG --title " Install files " \
  24.670 +		--backtitle "$BACKLIST" \
  24.671 +		--gauge "Starting to install files..." 18 70 0
  24.672 +}
  24.673 +
  24.674 +# GRUB info with disk name used for grub-install.
  24.675 +grub_install()
  24.676 +{
  24.677 +	TARGET_DISK=`echo $TARGET_DEV | sed s/"[0-9]"/''/`
  24.678 +	set_messages
  24.679 +	$DIALOG --title " GRUB install " \
  24.680 +		--backtitle "$BACKLIST" \
  24.681 +		--clear --colors --yesno "$GRUB_INSTALL_MSG" 18 70
  24.682 +	retval=$?
  24.683 +	case $retval in
  24.684 +		0)
  24.685 +			(
  24.686 +			echo "XXX" && echo 50
  24.687 +			echo -e "\nRunning grub-install on : $TARGET_DISK"
  24.688 +			echo "XXX"
  24.689 +			grub-install --no-floppy \
  24.690 +				--root-directory=$TARGET_ROOT $TARGET_DISK 2>>$LOG
  24.691 +			echo "XXX" && echo 100
  24.692 +			echo -e "\nFinished installation..."
  24.693 +			echo "XXX"
  24.694 +			sleep 2
  24.695 +			) |
  24.696 +			$DIALOG --title " GRUB install " \
  24.697 +				--backtitle "$BACKLIST" \
  24.698 +				--gauge "Installing GRUB..." 18 70 0 ;;
  24.699 +		1)
  24.700 +			echo "grub_install: NO" >>$LOG ;;
  24.701 +		255)
  24.702 +			echo -e "ESC pressed.\n" && exit 0 ;;
  24.703 +	esac
  24.704 +}
  24.705 +
  24.706 +# Copy log file, umount target and eject cdrom.
  24.707 +umount_devices()
  24.708 +{
  24.709 +	(
  24.710 +	echo "XXX" && echo 25
  24.711 +	echo -e "\nCopying the log files ($LOG)"
  24.712 +	echo "XXX"
  24.713 +	cp -a $LOG $TARGET_ROOT/var/log
  24.714 +	sleep 2
  24.715 +	echo "XXX" && echo 50
  24.716 +	echo -e "\nUnmounting the target ($TARGET_DEV)"
  24.717 +	echo "XXX"
  24.718 +	if mount | grep -q $TARGET_ROOT; then
  24.719 +		umount $TARGET_ROOT 2>/dev/null
  24.720 +	fi
  24.721 +	echo "XXX" && echo 75
  24.722 +	echo -e "\nUnmounting and ejecting the cdrom..."
  24.723 +	echo "XXX"
  24.724 +	if mount | grep -q /media/cdrom; then
  24.725 +		umount /media/cdrom
  24.726 +		grep -q slitaz-loram-cdrom /etc/init.d/rcS || eject
  24.727 +	fi
  24.728 +	sleep 2
  24.729 +	echo "XXX" && echo 100
  24.730 +	echo -e "\n$TITLE..."
  24.731 +	echo "XXX"
  24.732 +	sleep 2
  24.733 +	) |
  24.734 +	$DIALOG --title " $TITLE " \
  24.735 +		--backtitle "$BACKLIST" \
  24.736 +		--gauge "$TITLE starting..." 18 70 0
  24.737 +}
  24.738 +
  24.739 +# End of installation.
  24.740 +end_of_install()
  24.741 +{
  24.742 +	echo "end_of_install: `date`" >>$LOG
  24.743 +	$DIALOG --title " Installation complete " \
  24.744 +		--backtitle "$BACKLIST" \
  24.745 +		--yes-label "Exit" \
  24.746 +		--no-label "Reboot" \
  24.747 +		--clear --colors --yesno "$END_OF_INSTALL_MSG" 18 70
  24.748 +	retval=$?
  24.749 +	case $retval in
  24.750 +	0)
  24.751 +		TITLE="Exiting"
  24.752 +		umount_devices ;;
  24.753 +	1)
  24.754 +		TITLE="Rebooting"
  24.755 +		umount_devices
  24.756 +		reboot || reboot -f ;;
  24.757 +	255)
  24.758 +		echo -e "ESC pressed.\n" && exit 0 ;;
  24.759 +esac
  24.760 +}
  24.761 +
  24.762 +#####################
  24.763 +# Upgrade functions #
  24.764 +#####################
  24.765 +
  24.766 +# We need a partition to upgrade SliTaz.
  24.767 +ask_for_upgrade_dev()
  24.768 +{
  24.769 +	exec 3>&1
  24.770 +	UPGRADE_DEV=`$DIALOG --title " Target to upgrade " \
  24.771 +		--backtitle "$BACKLIST" --clear \
  24.772 +		--extra-label "List" --extra-button \
  24.773 +		--colors --inputbox "\n
  24.774 +The installer will upgrade the target by saving all configuration files and \
  24.775 +the list of installed packages. Then, it will clean the partition and install the \
  24.776 +version of SliTaz contained on the cdrom, restore the configuration files and \
  24.777 +reinstall any packages which are not present on the cdrom. You will need an active \
  24.778 +internet connection before upgrading.\n\n
  24.779 +\Z2Partition containing the system upgrade:\Zn" 18 70 2>&1 1>&3`
  24.780 +	retval=$?
  24.781 +	exec 3>&-
  24.782 +	check_retval
  24.783 +	# Display list and come back.
  24.784 +	if [ "$retval" = "3" ]; then
  24.785 +		fdisk_list
  24.786 +		ask_for_upgrade_dev
  24.787 +	fi
  24.788 +	# Empty value.
  24.789 +	if [ -z $UPGRADE_DEV ]; then
  24.790 +		ask_for_upgrade_dev
  24.791 +	fi
  24.792 +	# Check if specified device exists in /proc/partitions.
  24.793 +	DEV_NAME=${UPGRADE_DEV#/dev/}
  24.794 +	if cat /proc/partitions | grep -q $DEV_NAME; then
  24.795 +		echo "ask_for_target_dev: $TARGET_DEV" >>$LOG
  24.796 +	else
  24.797 +		ERROR_MSG="The partition \Z2$UPGRADE_DEV\Zn doesn't seem to exist."
  24.798 +		error_message
  24.799 +		ask_for_upgrade_dev
  24.800 +	fi
  24.801 +	echo "partition to upgrade: $UPGRADE_DEV" >>$LOG
  24.802 +}
  24.803 +
  24.804 +# Prepare the partition to upgrade, backup, install, restore configs
  24.805 +# and reinstall pkgs.
  24.806 +upgrade_process()
  24.807 +{
  24.808 +	(
  24.809 +	echo "XXX" && echo 5
  24.810 +	echo -e "\nPreparing the target partition..."
  24.811 +	echo "XXX"
  24.812 +	# Mount point can be already used.
  24.813 +	if mount | grep -q $TARGET_ROOT; then
  24.814 +		umount $TARGET_ROOT 2>$LOG
  24.815 +	fi
  24.816 +	mkdir -p $TARGET_ROOT && sleep 2
  24.817 +	# Mount target.
  24.818 +	mount $UPGRADE_DEV $TARGET_ROOT >>$LOG 2>>$LOG
  24.819 +	cd $TARGET_ROOT
  24.820 +	TARGET_DEV=$UPGRADE_DEV
  24.821 +	set_messages
  24.822 +
  24.823 +	echo "XXX" && echo 10
  24.824 +	echo -e "\nSearch for /etc/slitaz-release"
  24.825 +	echo "XXX"
  24.826 +	if [ -f etc/slitaz-release ]; then
  24.827 +		release=`cat etc/slitaz-release`
  24.828 +		echo "XXX" && echo 15
  24.829 +		echo -e "\nSliTaz release: $release"
  24.830 +		echo "XXX"
  24.831 +	else
  24.832 +		ERROR_MSG="The partition \Z2$UPGRADE_DEV\Zn doesn't appear to contain \
  24.833 +a SliTaz system, the file: /etc/slitaz-release doesn't exist."
  24.834 +		error_message
  24.835 +		exit 0
  24.836 +	fi && sleep 2
  24.837 +
  24.838 +	echo "XXX" && echo 20
  24.839 +	echo -e "\nBackup /etc, /home and the packages list..."
  24.840 +	echo "XXX"
  24.841 +	# Backup target packages list.
  24.842 +	ls -1 var/lib/tazpkg/installed > home/packages-selection.list
  24.843 +	for dir in *
  24.844 +	do
  24.845 +		case "$dir" in
  24.846 +			boot)
  24.847 +				# Upgrade doesn't prompt for grub install, so backup and
  24.848 +				# create a new grub menu.lst.
  24.849 +				rm -rf $TARGET_ROOT/boot/vmlinuz-*
  24.850 +				mv $TARGET_ROOT/boot/grub/menu.lst \
  24.851 +					$TARGET_ROOT/boot/grub/menu.lst.bak 2>/dev/null
  24.852 +				grub_config ;;
  24.853 +			home)
  24.854 +				mv $TARGET_ROOT/home $TARGET_ROOT/home.bak
  24.855 +				echo "keeping /home found on: $UPGRADE_DEV" >>$LOG ;;
  24.856 +			etc)
  24.857 +				tar czf $TARGET_ROOT/etc.tar.gz etc
  24.858 +				mv $TARGET_ROOT/etc $TARGET_ROOT/etc.bak
  24.859 +				echo "keeping /etc found on: $UPGRADE_DEV" >>$LOG ;;
  24.860 +			var)
  24.861 +				if [ -d $TARGET_ROOT/var/www ]; then
  24.862 +					mv $TARGET_ROOT/var/www $TARGET_ROOT/www.bak
  24.863 +				fi
  24.864 +				rm -rf $TARGET_ROOT/var ;;
  24.865 +			lost+found)
  24.866 +				continue ;;
  24.867 +			*)
  24.868 +				echo "removing target: $dir" >>$LOG
  24.869 +				rm -rf $TARGET_ROOT/$dir 2>>$LOG ;;
  24.870 +		esac
  24.871 +	done
  24.872 +	if [ -d $TARGET_ROOT/mklost+found ]; then
  24.873 +		mklost+found 2>>$LOG
  24.874 +	fi
  24.875 +	sleep 2
  24.876 +
  24.877 +	echo "XXX" && echo 25
  24.878 +	echo -e "\nInstalling the kernel ($KERNEL)"
  24.879 +	echo "XXX"
  24.880 +	install_kernel
  24.881 +
  24.882 +	echo "XXX" && echo 30
  24.883 +	echo -e "\nCopying the bootloader syslinux/isolinux..."
  24.884 +	echo "XXX"
  24.885 +	copy_bootloaders
  24.886 +
  24.887 +	echo "XXX" && echo 35
  24.888 +	echo -e "\nCopying the compressed system (rootfs.gz)..."
  24.889 +	echo "XXX"
  24.890 +	cp /media/cdrom/boot/rootfs.gz $TARGET_ROOT
  24.891 +	sleep 2
  24.892 +
  24.893 +	echo "XXX" && echo 40
  24.894 +	echo -e "\nExtracting the root system..."
  24.895 +	echo "XXX"
  24.896 +	extract_rootfs
  24.897 +
  24.898 +	# Restore backups.
  24.899 +	echo "XXX" && echo 42
  24.900 +	echo -e "\nRestoring configuration files..."
  24.901 +	echo "XXX"
  24.902 +	rm -rf $TARGET_ROOT/home
  24.903 +	mv $TARGET_ROOT/home.bak $TARGET_ROOT/home
  24.904 +	rm -rf $TARGET_ROOT/etc
  24.905 +	mv $TARGET_ROOT/etc.bak $TARGET_ROOT/etc
  24.906 +	if [ -d $TARGET_ROOT/www.bak ]; then
  24.907 +		rm -rf $TARGET_ROOT/var/www
  24.908 +		mv $TARGET_ROOT/www.bak $TARGET_ROOT/var/www
  24.909 +	fi
  24.910 +	echo "backups restored: `date`" >> $LOG
  24.911 +
  24.912 +	# /var/lib/slitaz-installer
  24.913 +	mkdir $TARGET_ROOT/var/lib/slitaz-installer
  24.914 +	mv $TARGET_ROOT/etc.tar.gz $TARGET_ROOT/var/lib/slitaz-installer
  24.915 +	mv $TARGET_ROOT/home/packages-selection.list $TARGET_ROOT/var/lib/slitaz-installer
  24.916 +	cd $TARGET_ROOT/var/lib/slitaz-installer
  24.917 +
  24.918 +	# LiveCD packages list.
  24.919 +	echo "XXX" && echo 46
  24.920 +	echo -e "\nCreating package lists..."
  24.921 +	echo "XXX"
  24.922 +	ls -1 $TARGET_ROOT/var/lib/tazpkg/installed > packages-cdrom.list || exit 1
  24.923 +	echo "packages-cdrom.list: done" >> $LOG
  24.924 +	# Diff
  24.925 +	diff packages-cdrom.list packages-selection.list | \
  24.926 +		grep ^+[a-z] | sed s/^+// > packages-selection.diff
  24.927 +	echo "packages-selection.diff: done" >> $LOG
  24.928 +	# Get mirror list.
  24.929 +	tazpkg recharge >>$LOG 2>>$LOG
  24.930 +	if [ ! -f /var/lib/tazpkg/packages.list ]; then
  24.931 +		ERROR_MSG="The list of available packages on the mirror could not be \
  24.932 +downloaded. No missing packages will be reinstalled now, but \
  24.933 +you can do so later by looking at the following list: \n\n
  24.934 +
  24.935 +/var/lib/slitaz-installer/packages-selection.diff"
  24.936 +		error_message
  24.937 +	fi
  24.938 +	sleep 2
  24.939 +
  24.940 +	# Check if the pkg is on the mirror.
  24.941 +	echo "XXX" && echo 48
  24.942 +	echo -e "\nChecking the availability of packages..."
  24.943 +	echo "XXX"
  24.944 +	touch packages-to-install.list
  24.945 +	packages=0
  24.946 +	diff=`cat packages-selection.diff | sort`
  24.947 +	for pkg in $diff
  24.948 +	do
  24.949 +		if grep -q ^$pkg-[0-9] /var/lib/tazpkg/packages.list; then
  24.950 +			packages=$(($packages+1))
  24.951 +			echo "$pkg" >> packages-to-install.list
  24.952 +		fi
  24.953 +	done
  24.954 +
  24.955 +	# Calculate the percent for one package and install.
  24.956 +	echo "XXX" && echo 50
  24.957 +	echo -e "\nInstalling any packages..."
  24.958 +	echo "XXX"
  24.959 +	sleep 2
  24.960 +	if [ "$packages" == "0" ]; then
  24.961 +		echo "packages to install: 0" >> $LOG
  24.962 +	else
  24.963 +		onepkg=$((48/$packages))
  24.964 +		pct=50
  24.965 +		# Get-install all missing pkgs.
  24.966 +		for pkg in `cat packages-to-install.list`
  24.967 +		do
  24.968 +			pct=$(($pct+$onepkg))
  24.969 +			echo "XXX" && echo $pct
  24.970 +			echo -e "\nInstallation of: $pkg..."
  24.971 +			echo "XXX"
  24.972 +			# Log please.
  24.973 +			echo "get-install: $pkg" >>$LOG
  24.974 +			# Get install package and answer yes in case of dependencies.
  24.975 +			pkgname=`grep ^$pkg /var/lib/tazpkg/packages.list`
  24.976 +			tazpkg get $pkg >/dev/null 2>/dev/null
  24.977 +			yes "" | tazpkg install $pkgname.tazpkg --root=$TARGET_ROOT >/dev/null 2>/dev/null
  24.978 +			rm -f $pkgname.tazpkg
  24.979 +		done
  24.980 +	fi
  24.981 +	echo "XXX" && echo 100
  24.982 +	echo -e "\nInstallation of packages complete..."
  24.983 +	echo "XXX"
  24.984 +	sleep 2
  24.985 +	) |
  24.986 +	$DIALOG --title " Processing system upgrade " \
  24.987 +		--backtitle "$BACKLIST" \
  24.988 +		--gauge "Target in preparation..." 18 70 0
  24.989 +}
  24.990 +
  24.991 +# End of system upgrade.
  24.992 +end_of_upgrade()
  24.993 +{
  24.994 +	TARGET_DEV=$UPGRADE_DEV
  24.995 +	set_messages
  24.996 +	pkgscd=`cat $TARGET_ROOT/var/lib/slitaz-installer/packages-cdrom.list | wc -l`
  24.997 +	pkginst=`cat $TARGET_ROOT/var/lib/slitaz-installer/packages-to-install.list | wc -l`
  24.998 +	echo "end_of_upgrade: `date`" >>$LOG
  24.999 +	$DIALOG --title " Upgrade completed " \
 24.1000 +		--backtitle "$BACKLIST" \
 24.1001 +		--yes-label "Exit" \
 24.1002 +		--no-label "Reboot" \
 24.1003 +		--clear --colors --yesno "\n
 24.1004 +Upgrade finished. You can now restart (reboot) \
 24.1005 +from your SliTaz GNU/Linux system.\n\n
 24.1006 +Packages on the cdrom      : $pkgscd\n
 24.1007 +Packages installed from the mirror : $pkginst\n" 18 70
 24.1008 +	retval=$?
 24.1009 +	case $retval in
 24.1010 +	0)
 24.1011 +		TITLE="Exiting"
 24.1012 +		umount_devices ;;
 24.1013 +	1)
 24.1014 +		TITLE="Rebooting"
 24.1015 +		umount_devices
 24.1016 +		reboot || reboot -f ;;
 24.1017 +	255)
 24.1018 +		echo -e "ESC pressed.\n" && exit 0 ;;
 24.1019 +esac
 24.1020 +}
 24.1021 +
 24.1022 +######################
 24.1023 +# Installer sequence #
 24.1024 +######################
 24.1025 +
 24.1026 +set_messages
 24.1027 +check_root
 24.1028 +start_installer
 24.1029 +
 24.1030 +case $ACTION in
 24.1031 +	upgrade)
 24.1032 +		BACKLIST="$BACKLIST (Upgrade)"
 24.1033 +		mount_cdrom
 24.1034 +		ask_for_upgrade_dev
 24.1035 +		upgrade_process
 24.1036 +		end_of_upgrade ;;
 24.1037 +	install|*)
 24.1038 +		mount_cdrom
 24.1039 +		ask_for_target_dev
 24.1040 +		ask_for_mkfs_target_dev
 24.1041 +		ask_for_home
 24.1042 +		if [ -n "$HOME_DEV" ]; then
 24.1043 +			ask_for_mkfs_home
 24.1044 +		fi
 24.1045 +		ask_for_hostname
 24.1046 +		ask_for_users_settings
 24.1047 +		summary
 24.1048 +		prepare_partitions
 24.1049 +		install_files
 24.1050 +		grub_install
 24.1051 +		end_of_install ;;
 24.1052 +esac
 24.1053 +
 24.1054 +exit 0
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/core-xfce/rootfs/usr/bin/tazlito	Sun Dec 05 17:40:41 2010 +0100
    25.3 @@ -0,0 +1,1825 @@
    25.4 +#!/bin/sh
    25.5 +# TazLito - SliTaz Live Tool.
    25.6 +#
    25.7 +# Tazlito is a tool to help generate and configure SliTaz LiveCD
    25.8 +# ISO images. You can create a custom distro in one command from a list of
    25.9 +# packages, extract an existing ISO image to hack it, create a new initramfs
   25.10 +# and/or a new ISO. Most commands must be run by root, except the stats
   25.11 +# and the configuration file manipulation.
   25.12 +#
   25.13 +# (C) 2007-2010 SliTaz - GNU General Public License.
   25.14 +#
   25.15 +# Authors : Christophe Lincoln <pankso@slitaz.org>
   25.16 +#           Pascal Bellard <pascal.bellard@slitaz.org>
   25.17 +#
   25.18 +VERSION=2.0
   25.19 +
   25.20 +# Tazlito configuration variables to be shorter
   25.21 +# and to use words rather than numbers.
   25.22 +COMMAND=$1
   25.23 +LIST_NAME=$2
   25.24 +TMP_DIR=/tmp/tazlito-$$-$RANDOM
   25.25 +TMP_MNT=/media/tazlito-$$-$RANDOM
   25.26 +TOP_DIR=`pwd`
   25.27 +INITRAMFS=rootfs.gz
   25.28 +LOCALSTATE=/var/lib/tazpkg
   25.29 +INSTALLED=$LOCALSTATE/installed
   25.30 +CACHE_DIR=/var/cache/tazpkg
   25.31 +MIRROR=$LOCALSTATE/mirror
   25.32 +DEFAULT_MIRROR="http://mirror.slitaz.org/packages/`cat /etc/slitaz-release`/"
   25.33 +
   25.34 +# Try to include config file, continue if command is gen-config or exit.
   25.35 +# The main config used by default is in /etc/tazlito.
   25.36 +if [ -f "/etc/tazlito/tazlito.conf" ] ; then
   25.37 +	CONFIG_FILE="/etc/tazlito/tazlito.conf"
   25.38 +fi
   25.39 +# Specific distro config file can be put in a distro tree.
   25.40 +if [ -f "$TOP_DIR/tazlito.conf" ] ; then
   25.41 +	CONFIG_FILE="$TOP_DIR/tazlito.conf"
   25.42 +fi
   25.43 +if [ ! "$CONFIG_FILE" = "" ] ; then
   25.44 +	. $CONFIG_FILE
   25.45 +else
   25.46 +	if [ "$COMMAND" = "gen-config" ] ; then
   25.47 +		continue
   25.48 +	else
   25.49 +		echo "Unable to find any configuration file. Please read the docs"
   25.50 +		echo "or run '`basename $0` gen-config' to get an empty config file."
   25.51 +		exit 0
   25.52 +	fi
   25.53 +fi
   25.54 +
   25.55 +# While Tazpkg is not used the default mirror url file does not exist
   25.56 +# and user can't recharge the list of flavors.
   25.57 +if test $(id -u) = 0 ; then
   25.58 +	if [ ! -f "$MIRROR" ]; then
   25.59 +		echo "$DEFAULT_MIRROR" > $MIRROR
   25.60 +	fi
   25.61 +fi
   25.62 +
   25.63 +# Set the rootfs and rootcd path with $DISTRO
   25.64 +# configuration variable.
   25.65 +ROOTFS=$DISTRO/rootfs
   25.66 +ROOTCD=$DISTRO/rootcd
   25.67 +FLAVORS_REPOSITORY=/home/slitaz/flavors
   25.68 +
   25.69 +#####################
   25.70 +# Tazlito functions #
   25.71 +#####################
   25.72 +
   25.73 +# Print the usage.
   25.74 +usage ()
   25.75 +{
   25.76 +	echo -e "\nSliTaz Live Tool - Version: $VERSION\n
   25.77 +\033[1mUsage: \033[0m `basename $0` [command] [list|iso|flavor|compression] [dir|iso]
   25.78 +\033[1mCommands: \033[0m\n
   25.79 +  usage           Print this short usage.
   25.80 +  stats           View Tazlito and distro configuration statistics.
   25.81 +  gen-config      Generate a new configuration file for a distro.
   25.82 +  configure       Configure the main config file or a specific tazlito.conf.
   25.83 +  gen-iso         Generate a new ISO from a distro tree.
   25.84 +  gen-initiso     Generate a new initramfs and ISO from the distro tree.
   25.85 +  list-flavors    List all available package lists on the mirror.
   25.86 +  gen-flavor      Generate a new live-CD description.
   25.87 +  gen-liveflavor  Generate a live-CD description from current system.
   25.88 +  show-flavor     Show live-CD description.
   25.89 +  get-flavor      Get a flavor's list of packages.
   25.90 +  upgrade-flavor  Update package list to the latest available versions.
   25.91 +  extract-flavor  Extract a (*.flavor) flavor into $FLAVORS_REPOSITORY.
   25.92 +  pack-flavor     Pack (and update) a flavor from $FLAVORS_REPOSITORY.
   25.93 +  check-list      Check a distro-packages.list for updates.
   25.94 +  extract-distro  Extract an ISO to a directory and rebuild LiveCD tree.
   25.95 +  gen-distro      Generate a Live distro and ISO from a list of packages.
   25.96 +  clean-distro    Remove all files generated by gen-distro.
   25.97 +  check-distro    Help to check if distro is ready to release.
   25.98 +  writeiso        Use running system to generate a bootable ISO (with /home).
   25.99 +  merge           Merge multiple rootfs into one iso.
  25.100 +  repack          Recompress rootfs into iso with maximum ratio.
  25.101 +  frugal-install  Frugal install in /boot/frugal from a distro or ISO
  25.102 +  emu-iso         Emulate an ISO image with Qemu.
  25.103 +  burn-iso        Burn ISO image to a cdrom using Wodim.\n"
  25.104 +}
  25.105 +
  25.106 +# Status function.
  25.107 +status()
  25.108 +{
  25.109 +	local CHECK=$?
  25.110 +	echo -en "\\033[70G[ "
  25.111 +	if [ $CHECK = 0 ]; then
  25.112 +		echo -en "\\033[1;33mOK"
  25.113 +	else
  25.114 +		echo -en "\\033[1;31mFailed"
  25.115 +	fi
  25.116 +	echo -e "\\033[0;39m ]"
  25.117 +	return $CHECK
  25.118 +}
  25.119 +
  25.120 +yesorno()
  25.121 +{
  25.122 +	echo -n "$1"
  25.123 +	case "$DEFAULT_ANSWER" in
  25.124 +	Y|y) answer="y";;
  25.125 +	N|n) answer="n";;
  25.126 +	*) read answer;;
  25.127 +	esac
  25.128 +}
  25.129 +
  25.130 +field()
  25.131 +{
  25.132 +	grep "^$1" "$2" | sed 's/.*: \([0-9KMG\.]*\).*/\1/'
  25.133 +}
  25.134 +
  25.135 +todomsg()
  25.136 +{
  25.137 +	echo -e "\\033[70G[ \\033[1;31mTODO\\033[0;39m ]"
  25.138 +}
  25.139 +
  25.140 +# Download a file from this mirror
  25.141 +download_from()
  25.142 +{
  25.143 +	local i
  25.144 +	local mirrors
  25.145 +	mirrors="$1"
  25.146 +	shift
  25.147 +	for i in $mirrors; do
  25.148 +		case "$i" in
  25.149 +		http://*|ftp://*) wget -c $i$@ && break;;
  25.150 +		*) cp $i/$1 . && break;;
  25.151 +		esac
  25.152 +	done
  25.153 +}
  25.154 +
  25.155 +# Download a file trying all mirrors
  25.156 +download()
  25.157 +{
  25.158 +	local i
  25.159 +	for i in $(cat $MIRROR $LOCALSTATE/undigest/*/mirror 2> /dev/null); do
  25.160 +		download_from "$i" "$@" && break
  25.161 +	done
  25.162 +}
  25.163 +
  25.164 +# Execute hooks provided by some packages
  25.165 +genisohooks()
  25.166 +{
  25.167 +	local here=`pwd`
  25.168 +	for i in $(ls $ROOTFS/etc/tazlito/*.$1 2> /dev/null); do
  25.169 +		cd $ROOTFS
  25.170 +		. $i $ROOTCD
  25.171 +	done
  25.172 +	cd $here
  25.173 +}
  25.174 +
  25.175 +cleanup()
  25.176 +{
  25.177 +	if [ -d $TMP_MNT ]; then
  25.178 +		umount $TMP_MNT
  25.179 +		rmdir $TMP_MNT
  25.180 +		rm -f /boot
  25.181 +	fi
  25.182 +}
  25.183 +
  25.184 +# Echo the package name if the tazpkg is already installed
  25.185 +installed_package_name()
  25.186 +{
  25.187 +	local tazpkg
  25.188 +	local package
  25.189 +	local VERSION
  25.190 +	local EXTRAVERSION
  25.191 +	tazpkg=$1
  25.192 +	# Try to find package name and version to be able
  25.193 +	# to repack it from installation
  25.194 +	# A dash (-) can exist in name *and* in version
  25.195 +	package=${tazpkg%-*}
  25.196 +	i=$package
  25.197 +	while true; do
  25.198 +		VERSION=""
  25.199 +		eval $(grep -s ^VERSION= $INSTALLED/$i/receipt)
  25.200 +		EXTRAVERSION=""
  25.201 +		eval $(grep -s ^EXTRAVERSION= $INSTALLED/$i/receipt)
  25.202 +		if [ "$i-$VERSION$EXTRAVERSION" = "$tazpkg" ]; then
  25.203 +			echo $i
  25.204 +			break
  25.205 +		fi
  25.206 +		case "$i" in
  25.207 +		*-*);;
  25.208 +		*) break;;
  25.209 +		esac
  25.210 +		i=${i%-*}
  25.211 +	done
  25.212 +}
  25.213 +
  25.214 +# Check if user is root.
  25.215 +check_root()
  25.216 +{
  25.217 +	if test $(id -u) != 0 ; then
  25.218 +	   echo -e "\nYou must be root to run `basename $0` with this option."
  25.219 +	   echo -e "Please type 'su' and root password to become super-user.\n"
  25.220 +	   exit 0
  25.221 +	fi
  25.222 +}
  25.223 +
  25.224 +# Check for the rootfs tree.
  25.225 +check_rootfs()
  25.226 +{
  25.227 +	if [ ! -d "$ROOTFS/etc" ] ; then
  25.228 +		echo -e "\nUnable to find a distro rootfs...\n"
  25.229 +		exit 0
  25.230 +	fi
  25.231 +}
  25.232 +
  25.233 +# Check for the boot dir into the root CD tree.
  25.234 +verify_rootcd()
  25.235 +{
  25.236 +	if [ ! -d "$ROOTCD/boot" ] ; then
  25.237 +		echo -e "\nUnable to find the rootcd boot directory...\n"
  25.238 +		exit 0
  25.239 +	fi
  25.240 +}
  25.241 +
  25.242 +create_iso()
  25.243 +{
  25.244 +	genisoimage -R -o $1 -b boot/isolinux/isolinux.bin \
  25.245 + 		-c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
  25.246 +		-V "$VOLUM_NAME" -p "$PREPARED" -input-charset iso8859-1 \
  25.247 +		-boot-info-table $2
  25.248 +	if [ -x /usr/bin/isohybrid ]; then
  25.249 +		echo -n "Creating hybrid ISO..."
  25.250 +		/usr/bin/isohybrid $1 2> /dev/null
  25.251 +		status
  25.252 +	fi
  25.253 +}
  25.254 +
  25.255 +# Generate a new ISO image using isolinux.
  25.256 +gen_livecd_isolinux()
  25.257 +{
  25.258 +	# Some packages may want to alter iso
  25.259 +	genisohooks iso
  25.260 +	if [ ! -f "$ROOTCD/boot/isolinux/isolinux.bin" ]; then
  25.261 +		echo -e "\nUnable to find isolinux binary.\n"
  25.262 +		cleanup
  25.263 +		exit 0
  25.264 +	fi
  25.265 +	# Set date for boot msg.
  25.266 +	if grep -q 'XXXXXXXX' $ROOTCD/boot/isolinux/isolinux.msg; then
  25.267 +		DATE=`date +%Y%m%d`
  25.268 +		echo -n "Setting build date to: $DATE..."
  25.269 +		sed -i s/'XXXXXXXX'/"$DATE"/ $ROOTCD/boot/isolinux/isolinux.msg
  25.270 +		status
  25.271 +	fi
  25.272 +	cd $ROOTCD
  25.273 +	echo -n "Computing md5..."
  25.274 +	find * -type f ! -name md5sum -exec md5sum {} \; > md5sum
  25.275 +	status
  25.276 +	cd $DISTRO
  25.277 +	echo ""
  25.278 +	echo -e "\033[1mGenerating ISO image\033[0m"
  25.279 +	echo "================================================================================"
  25.280 +	create_iso $ISO_NAME.iso $ROOTCD
  25.281 +	echo -n "Creating the ISO md5sum..."
  25.282 +	md5sum $ISO_NAME.iso > $ISO_NAME.md5
  25.283 +	status
  25.284 +	echo "================================================================================"
  25.285 +	# Some packages may want to alter final iso
  25.286 +	genisohooks final
  25.287 +}
  25.288 +
  25.289 +lzma_history_bits()
  25.290 +{
  25.291 +	#
  25.292 +	# This genertae ISO who boot with Qemu but give
  25.293 +	# rootfs errors in frugal or liveUSB mode.
  25.294 +	#
  25.295 +	#local n
  25.296 +	#local sz
  25.297 +	#n=20	# 1Mb
  25.298 +	#sz=$(du -sk $1 | cut -f1)
  25.299 +	#while [ $sz -gt 1024 -a $n -lt 28 ]; do
  25.300 +		#n=$(( $n + 1 ))
  25.301 +		#sz=$(( $sz / 2 ))
  25.302 +	#done
  25.303 +	#echo $n
  25.304 +	echo 24
  25.305 +}
  25.306 +
  25.307 +lzma_switches()
  25.308 +{
  25.309 +	echo "-d$(lzma_history_bits $1) -mt$(grep ^processor < /proc/cpuinfo | wc -l)"
  25.310 +}
  25.311 +
  25.312 +# Pack rootfs
  25.313 +pack_rootfs()
  25.314 +{
  25.315 +	( cd $1 ; find . -print | cpio -o -H newc ) | \
  25.316 +	if [ "$COMPRESSION" = "none" ]; then
  25.317 +		echo "Generating uncompressed initramfs... "
  25.318 +		cat > $2
  25.319 +	elif [ -x /usr/bin/lzma -a "$COMPRESSION" != "gzip" ]; then
  25.320 +		echo -n "Generating lzma'ed initramfs... "
  25.321 +		lzma e -si -so $(lzma_switches $1) > $2
  25.322 +	else
  25.323 +		echo "Generating gziped initramfs... "
  25.324 +		gzip -9 > $2
  25.325 +	fi
  25.326 +	echo 1 > /tmp/rootfs
  25.327 +}
  25.328 +
  25.329 +# Compression functions for writeiso.
  25.330 +write_initramfs()
  25.331 +{
  25.332 +	if [ "$COMPRESSION" = "lzma" ]; then
  25.333 +		echo -n "Creating rootfs.gz with lzma compression... "
  25.334 +		cat /tmp/list | cpio -o -H newc | lzma e -si -so > /rootfs.gz
  25.335 +	elif [ "$COMPRESSION" = "gzip" ]; then
  25.336 +		echo "Creating rootfs.gz with gzip compression... "
  25.337 +		cat /tmp/list | cpio -o -H newc | gzip -9 > /rootfs.gz
  25.338 +	else
  25.339 +		echo "Creating rootfs.gz without compression... "
  25.340 +		cat /tmp/list | cpio -o -H newc > /rootfs.gz
  25.341 +	fi
  25.342 +	echo 1 > /tmp/rootfs
  25.343 +}
  25.344 +
  25.345 +# Generate a new initramfs from the root filesystem.
  25.346 +gen_initramfs()
  25.347 +{
  25.348 +	# Just in case CTRL+c
  25.349 +	rm -f $DISTRO/gen
  25.350 +	# Some packages may want to alter rootfs
  25.351 +	genisohooks rootfs
  25.352 +	cd $1
  25.353 +	echo ""
  25.354 +
  25.355 +        # Link duplicate files
  25.356 +        find . -type f -size +0c -exec stat -c '%s-%a-%u-%g %i %h %n' {} \; | \
  25.357 +           sort | ( save=0; old_attr=""; old_inode=""; old_link=""; old_file=""
  25.358 +           while read attr inode link file; do
  25.359 +               if [ "$attr" = "$old_attr" -a "$inode" != "$old_inode" ]; then
  25.360 +                   if cmp "$file" "$old_file" >/dev/null; then
  25.361 +                       rm -f "$file"
  25.362 +                       ln "$old_file" "$file"
  25.363 +                       inode="$old_inode"
  25.364 +                       [ "$link" = "1" ] && save="$(expr $save + ${attr%%-*})"
  25.365 +                   fi
  25.366 +               fi
  25.367 +               old_attr="$attr" ; old_inode="$inode" ; old_file="$file"
  25.368 +           done
  25.369 +           echo "$save bytes saved in duplicate files."
  25.370 +        )
  25.371 +
  25.372 +	# Use lzma if installed. Display rootfs size in realtime.
  25.373 +	rm -f /tmp/rootfs
  25.374 +	pack_rootfs . $DISTRO/$(basename $1).gz &
  25.375 +	sleep 2
  25.376 +	echo -en "\nFilesystem size:"
  25.377 +	while [ ! -f /tmp/rootfs ]
  25.378 +	do
  25.379 +		sleep 1
  25.380 +		echo -en "\\033[18G`du -sh $DISTRO/rootfs.gz | awk '{print $1}'`    "
  25.381 +	done
  25.382 +	echo -e "\n"
  25.383 +	cd $DISTRO
  25.384 +	mv $(basename $1).gz $ROOTCD/boot
  25.385 +}
  25.386 +
  25.387 +distro_sizes()
  25.388 +{
  25.389 +	echo "Build date      : `date +%Y%m%d\ \at\ \%H:%M:%S`"
  25.390 +	echo "Packages        : `ls -1 $ROOTFS*$INSTALLED/*/receipt | wc -l`"
  25.391 +	echo "Rootfs size     : `du -csh $ROOTFS*/ | awk '{ s=$1 } END { print s }'`"
  25.392 +	echo "Initramfs size  : `du -csh $ROOTCD/boot/rootfs*.gz | awk '{ s=$1 } END { print s }'`"
  25.393 +	echo "ISO image size  : `du -sh $ISO_NAME.iso | awk '{ print $1 }'`"
  25.394 +	echo "================================================================================"
  25.395 +	echo "Image is ready: $ISO_NAME.iso"
  25.396 +	echo ""
  25.397 +}
  25.398 +
  25.399 +# Print ISO and rootfs size.
  25.400 +distro_stats()
  25.401 +{
  25.402 +	echo ""
  25.403 +	echo -e "\033[1mDistro statistics\033[0m ($DISTRO)"
  25.404 +	echo "================================================================================"
  25.405 +	distro_sizes
  25.406 +}
  25.407 +
  25.408 +# Create an empty configuration file.
  25.409 +empty_config_file()
  25.410 +{
  25.411 +	cat >> tazlito.conf << "EOF"
  25.412 +# tazlito.conf: Tazlito (SliTaz Live Tool)
  25.413 +# configuration file.
  25.414 +#
  25.415 +
  25.416 +# Name of the ISO image to generate.
  25.417 +ISO_NAME=""
  25.418 +
  25.419 +# ISO image volume name.
  25.420 +VOLUM_NAME="SliTaz"
  25.421 +
  25.422 +# Name of the preparer.
  25.423 +PREPARED="$USER"
  25.424 +
  25.425 +# Path to the packages repository and the packages.list.
  25.426 +PACKAGES_REPOSITORY=""
  25.427 +
  25.428 +# Path to the distro tree to gen-distro from a
  25.429 +# list of packages.
  25.430 +DISTRO=""
  25.431 +
  25.432 +# Path to the directory containing additional files
  25.433 +# to copy into the rootfs and rootcd of the LiveCD.
  25.434 +ADDFILES="$DISTRO/addfiles"
  25.435 +
  25.436 +# Default answer for binary question (Y or N)
  25.437 +DEFAULT_ANSWER="ASK"
  25.438 +
  25.439 +# Compression utility (lzma, gzip or none)
  25.440 +COMPRESSION="lzma"
  25.441 +EOF
  25.442 +}
  25.443 +
  25.444 +# extract rootfs.gz somewhere
  25.445 +extract_rootfs()
  25.446 +{
  25.447 +	(zcat $1 || unlzma -c $1 || cat $1) 2>/dev/null | \
  25.448 +		(cd $2; cpio -idm > /dev/null)
  25.449 +}
  25.450 +
  25.451 +# Remove duplicate files
  25.452 +mergefs()
  25.453 +{
  25.454 +	echo -n "Merge $(basename $1) ($(du -hs $1 | awk '{ print $1}')) into "
  25.455 +	echo -n       "$(basename $2) ($(du -hs $2 | awk '{ print $1}'))"
  25.456 +	# merge symlinks files and devices
  25.457 +	( cd $1; find ) | while read file; do
  25.458 +		if [ -L $1/$file ]; then
  25.459 +			[ -L $2/$file ] &&
  25.460 +			[ "$(readlink $1/$file)" == "$(readlink $2/$file)" ] &&
  25.461 +			rm -f $2/$file
  25.462 +		elif [ -f $1/$file ]; then
  25.463 +			[ -f $2/$file ] &&
  25.464 +			cmp $1/$file $2/$file > /dev/null 2>&1 && rm -f $2/$file
  25.465 +			[ -f $2/$file ] && 
  25.466 +			[ "$(basename $file)" == "volatile.cpio.gz" ] &&
  25.467 +			[ "$(dirname $(dirname $file))" == \
  25.468 +			  "./var/lib/tazpkg/installed" ] && rm -f $2/$file
  25.469 +		elif [ -b $1/$file ]; then
  25.470 +			[ -b $2/$file ] && rm -f $2/$file
  25.471 +		elif [ -c $1/$file ]; then
  25.472 +			[ -c $2/$file ] && rm -f $2/$file
  25.473 +		fi
  25.474 +	done
  25.475 +	
  25.476 +	# cleanup directories
  25.477 +	( cd $1; find ) | while read file; do
  25.478 +		if [ -d $1/$file ]; then
  25.479 +			[ -d $2/$file ] && rmdir $2/$file 2> /dev/null
  25.480 +		fi
  25.481 +	done
  25.482 +	true
  25.483 +	status
  25.484 +}
  25.485 +
  25.486 +cleanup_merge()
  25.487 +{
  25.488 +	rm -rf $TMP_DIR
  25.489 +	exit 1
  25.490 +}
  25.491 +
  25.492 +human2cent()
  25.493 +{
  25.494 +case "$1" in
  25.495 +*k) echo $1 | sed 's/\(.*\).\(.\)k/\1\2/';;
  25.496 +*M) echo $(( $(echo $1 | sed 's/\(.*\).\(.\)M/\1\2/') * 1024));;
  25.497 +*G) echo $(( $(echo $1 | sed 's/\(.*\).\(.\)G/\1\2/') * 1024 * 1024));;
  25.498 +esac
  25.499 +}
  25.500 +
  25.501 +cent2human()
  25.502 +{
  25.503 +if [ $1 -lt 10000 ]; then
  25.504 +  echo "$(($1 / 10)).$(($1 % 10))k"
  25.505 +elif [ $1 -lt 10000000 ]; then
  25.506 +  echo "$(($1 / 10240)).$(( ($1/1024) % 10))M"
  25.507 +else
  25.508 +  echo "$(($1 / 10485760)).$(( ($1/1048576) % 10))G"
  25.509 +fi
  25.510 +}
  25.511 +
  25.512 +get_size()
  25.513 +{
  25.514 +cat /var/lib/tazpkg/packages.list $TMP_DIR/packages.list 2>/dev/null | awk "{ \
  25.515 +if (/^$(echo $1 | sed 's/[$+.\]/\\&/g')$/) get=1; \
  25.516 +if (/installed/ && get == 1) { print ; get++ } \
  25.517 +}
  25.518 +END { if (get < 2) print \" 0.0k  (0.0k installed)\" }" | \
  25.519 +sed 's/ *\(.*\) .\(.*\) installed./\1 \2/' | while read packed unpacked; do
  25.520 +  echo "$(human2cent $packed) $(human2cent $unpacked)"
  25.521 +done
  25.522 +}
  25.523 +
  25.524 +# Display package list with version, set packed_size and unpacked_size
  25.525 +get_pkglist()
  25.526 +{
  25.527 +packed_size=0; unpacked_size=0
  25.528 +grep -v ^#  $FLAVORS_REPOSITORY/$1/packages.list > $TMP_DIR/flavor.pkg
  25.529 +while read pkg; do
  25.530 +	set -- $(get_size $pkg)
  25.531 +	packed_size=$(( $packed_size + $1 ))
  25.532 +	unpacked_size=$(( $unpacked_size + $2 ))
  25.533 +	for i in $(grep -hs ^$pkg /var/lib/tazpkg/packages.list \
  25.534 +				  $TMP_DIR/packages.list); do
  25.535 +		echo $i
  25.536 +		break
  25.537 +	done
  25.538 +done < $TMP_DIR/flavor.pkg
  25.539 +rm -f $TMP_DIR/flavor.pkg
  25.540 +}
  25.541 +
  25.542 +# Update isolinux config files for multiple rootfs
  25.543 +update_bootconfig()	
  25.544 +{
  25.545 +	echo -n "Updating boot config files..."
  25.546 +	grep -l 'include common' $1/*.cfg | \
  25.547 +	while read file ; do
  25.548 +			awk -v n=$(echo $2 | awk '{ print NF/2 }') '{
  25.549 +if (/label/) label=$0;
  25.550 +else if (/kernel/) kernel=$0;
  25.551 +else if (/append/) {
  25.552 +	i=index($0,"rootfs.gz");
  25.553 +	append=substr($0,i+9);
  25.554 +}
  25.555 +else if (/include/) {
  25.556 +	for (i = 1; i <= n; i++) {
  25.557 +		print label i
  25.558 +		print kernel;
  25.559 +		initrd="initrd=/boot/rootfs" n ".gz"
  25.560 +		for (j = n - 1; j >= i; j--) {
  25.561 +			initrd=initrd ",/boot/rootfs" j ".gz";
  25.562 +		}
  25.563 +		printf "\tappend %s%s\n",initrd,append;
  25.564 +		print "";
  25.565 +	}
  25.566 +	print;
  25.567 +}
  25.568 +else print;
  25.569 +}' < $file > $file.$$
  25.570 +			mv -f $file.$$ $file
  25.571 +	done
  25.572 +	cat >> $1/common.cfg <<EOT
  25.573 +
  25.574 +label slitaz
  25.575 +	kernel /boot/isolinux/ifmem.c32
  25.576 +	append$(echo $2 | awk '{
  25.577 +  for (i=1; i<=NF; i++)
  25.578 +     if (i % 2 == 0) printf " slitaz%d",i/2
  25.579 +     else printf " %s",$i
  25.580 +}') noram
  25.581 +
  25.582 +label noram
  25.583 +	config noram.cfg
  25.584 +
  25.585 +EOT
  25.586 +	cat > $1/noram.cfg <<EOT
  25.587 +display isolinux.msg
  25.588 +say Not enough RAM to boot slitaz.
  25.589 +default reboot
  25.590 +label reboot
  25.591 +	com32 reboot.c32
  25.592 +
  25.593 +implicit 0
  25.594 +prompt 1
  25.595 +timeout 80
  25.596 +F1 help.txt
  25.597 +F2 options.txt
  25.598 +F3 isolinux.msg
  25.599 +F4 display.txt
  25.600 +F5 enhelp.txt
  25.601 +F6 enopts.txt
  25.602 +EOT
  25.603 +	status
  25.604 +}
  25.605 +
  25.606 +####################
  25.607 +# Tazlito commands #
  25.608 +####################
  25.609 +
  25.610 +case "$COMMAND" in
  25.611 +	stats)
  25.612 +		# Tazlito general statistics from the config file.
  25.613 +		#
  25.614 +		echo ""
  25.615 +		echo -e "\033[1mTazlito statistics\033[0m
  25.616 +===============================================================================
  25.617 +Config file         : $CONFIG_FILE
  25.618 +ISO name            : $ISO_NAME.iso
  25.619 +Volume name         : $VOLUM_NAME
  25.620 +Prepared            : $PREPARED
  25.621 +Packages repository : $PACKAGES_REPOSITORY
  25.622 +Distro directory    : $DISTRO"
  25.623 +		if [ ! "$ADDFILES" = "" ] ; then
  25.624 +			echo -e "Additional files    : $ADDFILES"
  25.625 +		fi
  25.626 +		echo "================================================================================"
  25.627 +		echo ""
  25.628 +	    ;;
  25.629 +	list-addfiles)
  25.630 +		# Simple list of additonal files in the rootfs
  25.631 +		echo ""
  25.632 +		cd $ADDFILES
  25.633 +		find rootfs -type f
  25.634 +		echo "" ;;
  25.635 +	gen-config)
  25.636 +		# Generate a new config file in the current dir or the specified
  25.637 +		# directory by $2.
  25.638 +		#
  25.639 +		if [ -n "$2" ] ; then
  25.640 +			mkdir -p $2 && cd $2
  25.641 +		fi
  25.642 +		echo -n "Generating empty tazlito.conf..."
  25.643 +		empty_config_file
  25.644 +		status
  25.645 +		echo ""
  25.646 +		if [ -f "tazlito.conf" ] ; then
  25.647 +			echo "Configuration file is ready to edit."
  25.648 +			echo "File location : `pwd`/tazlito.conf"
  25.649 +			echo ""
  25.650 +		fi
  25.651 +		;;
  25.652 +	configure)
  25.653 +		# Configure a tazlito.conf config file. Start by getting
  25.654 +		# a empty config file and sed it.
  25.655 +		#
  25.656 +		if [ -f "tazlito.conf" ] ; then
  25.657 +			rm tazlito.conf
  25.658 +		else
  25.659 +			if test $(id -u) = 0 ; then
  25.660 +				cd /etc
  25.661 +			else
  25.662 +				echo "You must be root to configure the main config file or in"
  25.663 +				echo "the same directory of the file you want to configure."
  25.664 +				exit 0
  25.665 +			fi
  25.666 +		fi
  25.667 +		empty_config_file
  25.668 +		echo""
  25.669 +		echo -e "\033[1mConfiguring :\033[0m `pwd`/tazlito.conf"
  25.670 +		echo "================================================================================"
  25.671 +		# ISO name.
  25.672 +		echo -n "ISO name            : " ; read answer
  25.673 +		sed -i s#'ISO_NAME=\"\"'#"ISO_NAME=\"$answer\""# tazlito.conf
  25.674 +		# Volume name.
  25.675 +		echo -n "Volume name         : " ; read answer
  25.676 +		sed -i s/'VOLUM_NAME=\"SliTaz\"'/"VOLUM_NAME=\"$answer\""/ tazlito.conf
  25.677 +		# Packages repository.
  25.678 +		echo -n "Packages repository : " ; read answer
  25.679 +		sed -i s#'PACKAGES_REPOSITORY=\"\"'#"PACKAGES_REPOSITORY=\"$answer\""# tazlito.conf
  25.680 +		# Distro path.
  25.681 +		echo -n "Distro path         : " ; read answer
  25.682 +		sed -i s#'DISTRO=\"\"'#"DISTRO=\"$answer\""# tazlito.conf
  25.683 +		echo "================================================================================"
  25.684 +		echo "Config file is ready to use."
  25.685 +		echo "You can now extract an ISO or generate a distro."
  25.686 +		echo ""
  25.687 +		;;
  25.688 +	gen-iso)
  25.689 +		# Simply generate a new iso.
  25.690 +		#
  25.691 +		check_root
  25.692 +		verify_rootcd
  25.693 +		gen_livecd_isolinux
  25.694 +		distro_stats
  25.695 +		;;
  25.696 +	gen-initiso)
  25.697 +		# Simply generate a new initramfs with a new iso.
  25.698 +		#
  25.699 +		check_root
  25.700 +		verify_rootcd
  25.701 +		gen_initramfs $ROOTFS
  25.702 +		gen_livecd_isolinux
  25.703 +		distro_stats
  25.704 +		;;
  25.705 +	extract-distro)
  25.706 +		# Extract an ISO image to a directory and rebuild the LiveCD tree.
  25.707 +		#
  25.708 +		check_root
  25.709 +		ISO_IMAGE=$2
  25.710 +		if [ -z "$ISO_IMAGE" ] ; then
  25.711 +			echo -e "\nPlease specify the path to the ISO image."
  25.712 +			echo -e "Example : `basename $0` image.iso /path/target\n"
  25.713 +			exit 0
  25.714 +		fi
  25.715 +		# Set the distro path by checking for $3 on cmdline.
  25.716 +		if [ -n "$3" ] ; then
  25.717 +			TARGET=$3
  25.718 +		else
  25.719 +			TARGET=$DISTRO
  25.720 +		fi
  25.721 +		# Exit if existing distro is found.
  25.722 +		if [ -d "$TARGET/rootfs" ] ; then
  25.723 +			echo -e "\nA rootfs exists in : $TARGET"
  25.724 +			echo -e "Please clean the distro tree or change directory path.\n"
  25.725 +			exit 0
  25.726 +		fi
  25.727 +		echo ""
  25.728 +		echo -e "\033[1mTazlito extracting :\033[0m `basename $ISO_IMAGE`"
  25.729 +		echo "================================================================================"
  25.730 +		# Start to mount the ISO.
  25.731 +		echo ""
  25.732 +		echo "Mounting ISO image..."
  25.733 +		mkdir -p $TMP_DIR
  25.734 +		# Get ISO file size.
  25.735 +		isosize=`du -sh $ISO_IMAGE | cut -f1`
  25.736 +		mount -o loop $ISO_IMAGE $TMP_DIR
  25.737 +		sleep 2
  25.738 +		# Prepare target dir, copy the kernel and the rootfs.
  25.739 +		mkdir -p $TARGET/rootfs
  25.740 +		mkdir -p $TARGET/rootcd/boot
  25.741 +		echo -n "Copying the Linux kernel..."
  25.742 +		if cp $TMP_DIR/boot/vmlinuz* $TARGET/rootcd/boot 2> /dev/null; then
  25.743 +			ln $TARGET/rootcd/boot/vmlinuz* $TARGET/rootcd/boot/bzImage
  25.744 +		else
  25.745 +			cp $TMP_DIR/boot/bzImage $TARGET/rootcd/boot
  25.746 +		fi
  25.747 +		status
  25.748 +		echo -n "Copying isolinux files..."
  25.749 +		cp -a $TMP_DIR/boot/isolinux $TARGET/rootcd/boot
  25.750 +		for i in $(ls $TMP_DIR); do
  25.751 +			[ "$i" = "boot" ] && continue
  25.752 +			cp -a $TMP_DIR/$i $TARGET/rootcd
  25.753 +		done
  25.754 +		status
  25.755 +		if [ -d $TMP_DIR/boot/syslinux ]; then
  25.756 +			echo -n "Copying syslinux files..."
  25.757 +			cp -a $TMP_DIR/boot/syslinux $TARGET/rootcd/boot
  25.758 +			status
  25.759 +		fi
  25.760 +		if [ -d $TMP_DIR/boot/extlinux ]; then
  25.761 +			echo -n "Copying extlinux files..."
  25.762 +			cp -a $TMP_DIR/boot/extlinux $TARGET/rootcd/boot
  25.763 +			status
  25.764 +		fi
  25.765 +		if [ -d $TMP_DIR/boot/grub ]; then
  25.766 +			echo -n "Copying GRUB files..."
  25.767 +			cp -a $TMP_DIR/boot/grub $TARGET/rootcd/boot
  25.768 +			status
  25.769 +		fi
  25.770 +		
  25.771 +		echo -n "Copying the rootfs..."
  25.772 +		cp $TMP_DIR/boot/rootfs.?z $TARGET/rootcd/boot
  25.773 +		status
  25.774 +		# Extract initramfs.
  25.775 +		cd $TARGET/rootfs
  25.776 +		echo -n "Extracting the rootfs... "
  25.777 +		extract_rootfs ../rootcd/boot/rootfs.gz $TARGET/rootfs
  25.778 +		# unpack /usr
  25.779 +		for i in etc/tazlito/*.extract; do
  25.780 +			[ -f "$i" ] && . $i ../rootcd
  25.781 +		done
  25.782 +		# Umount and remove temp directory and cd to $TARGET to get stats.
  25.783 +		umount $TMP_DIR && rm -rf $TMP_DIR
  25.784 +		cd ..
  25.785 +		echo ""
  25.786 +		echo "================================================================================"
  25.787 +		echo "Extracted       : `basename $ISO_IMAGE` ($isosize)"
  25.788 +		echo "Distro tree     : `pwd`"
  25.789 +		echo "Rootfs size     : `du -sh rootfs`"
  25.790 +		echo "Rootcd size     : `du -sh rootcd`"
  25.791 +		echo "================================================================================"
  25.792 +		echo ""
  25.793 +		;;
  25.794 +	list-flavors)
  25.795 +		# Show available flavors.
  25.796 +		if [ ! -s /etc/tazlito/flavors.list -o "$2" == "--recharge" ]; then
  25.797 +			download flavors.list -O - > /etc/tazlito/flavors.list
  25.798 +		fi
  25.799 +		echo ""
  25.800 +		echo -e "\033[1mList of flavors\033[0m"
  25.801 +		echo "================================================================================"
  25.802 +		cat /etc/tazlito/flavors.list
  25.803 +		echo ""
  25.804 +		;;
  25.805 +	show-flavor)
  25.806 +		# Show flavor description.
  25.807 +		FLAVOR=${2%.flavor}
  25.808 +		if [ ! -f "$FLAVOR.flavor" ]; then
  25.809 +			echo "File $FLAVOR.flavor not found."
  25.810 +			exit 1
  25.811 +		fi
  25.812 +		mkdir $TMP_DIR
  25.813 +		zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i 2> /dev/null)
  25.814 +		if [ "$3" = "--brief" ]; then
  25.815 +			if [ "$4" != "--noheader" ]; then
  25.816 +				echo "Name              ISO   Rootfs  Description"
  25.817 +				echo "================================================================================"
  25.818 +			fi
  25.819 +			printf "%-16.16s %6.6s %6.6s %s\n" "$FLAVOR" \
  25.820 +				"$(field ISO $TMP_DIR/$FLAVOR.desc)" \
  25.821 +				"$(field 'Rootfs size' $TMP_DIR/$FLAVOR.desc)" \
  25.822 +				"$(grep ^Description $TMP_DIR/$FLAVOR.desc | cut -d: -f2)"
  25.823 +		else
  25.824 +			echo "================================================================================"
  25.825 +			cat $TMP_DIR/$FLAVOR.desc
  25.826 +		fi
  25.827 +		rm -Rf $TMP_DIR
  25.828 +		;;
  25.829 +	gen-liveflavor)
  25.830 +		# Generate a new flavor form the live system.
  25.831 +		FLAVOR=${2%.flavor}
  25.832 +		DESC=""
  25.833 +		case "$FLAVOR" in
  25.834 +		'')	echo -n "Flavor name : "
  25.835 +			read FLAVOR
  25.836 +			[ -z "$FLAVOR" ] && exit 1;;
  25.837 +		-?|-h*|--help) echo -e "
  25.838 +
  25.839 +SliTaz Live Tool - Version: $VERSION
  25.840 +\033[1mUsage: \033[0m `basename $0` gen-liveflavor flavor-name [flavor-patch-file]
  25.841 +\033[1mflavor-patch-file format: \033[0m
  25.842 +code	data
  25.843 ++	package to add
  25.844 +-	package to remove
  25.845 +!	non-free package to add
  25.846 +?	display message
  25.847 +@	flavor description
  25.848 +
  25.849 +\033[1mExample: \033[0m
  25.850 +@	Developer tools for slitaz maintainers
  25.851 ++	slitaz-toolchain
  25.852 ++	mercurial
  25.853 +"
  25.854 +			exit 1;;
  25.855 +		esac
  25.856 +		mv /etc/tazlito/distro-packages.list \
  25.857 +		   /etc/tazlito/distro-packages.list.$$ 2> /dev/null
  25.858 +		rm -f distro-packages.list non-free.list 2> /dev/null
  25.859 +		tazpkg recharge
  25.860 +		[ -n "$3" ] && while read action pkg; do
  25.861 +			case "$action" in
  25.862 +			+)	yes | tazpkg get-install $pkg;;
  25.863 +			-)	yes | tazpkg remove $pkg;;
  25.864 +			!)	echo $pkg >> non-free.list;;
  25.865 +			@)	DESC="$pkg";;
  25.866 +			\?)	echo -en "$pkg"; read action;;
  25.867 +			esac
  25.868 +		done < $3
  25.869 +		yes '' | tazlito gen-distro
  25.870 +		echo "$DESC" | tazlito gen-flavor "$FLAVOR"
  25.871 +		mv /etc/tazlito/distro-packages.list.$$ \
  25.872 +		   /etc/tazlito/distro-packages.list 2> /dev/null
  25.873 +		;;
  25.874 +	gen-flavor)
  25.875 +		# Generate a new flavor from the last iso image generated.
  25.876 +		FLAVOR=${2%.flavor}
  25.877 +		echo ""
  25.878 +		echo -e "\033[1mFlavor generation\033[0m"
  25.879 +		echo "================================================================================"
  25.880 +		if [ -z "$FLAVOR" ]; then
  25.881 +			echo -n "Flavor name : "
  25.882 +			read FLAVOR
  25.883 +			[ -z "$FLAVOR" ] && exit 1
  25.884 +		fi
  25.885 +		check_rootfs
  25.886 +		FILES="$FLAVOR.pkglist"
  25.887 +		echo -n "Creating file $FLAVOR.flavor..."
  25.888 +		for i in rootcd rootfs; do
  25.889 +			if [ -d "$ADDFILES/$i" ] ; then
  25.890 +				FILES="$FILES\n$FLAVOR.$i"
  25.891 +				( cd "$ADDFILES/$i"; find . | \
  25.892 +				  cpio -o -H newc 2> /dev/null | gzip -9 ) > $FLAVOR.$i
  25.893 +			fi
  25.894 +		done
  25.895 +		status
  25.896 +		answer=`grep -s ^Description $FLAVOR.desc`
  25.897 +		answer=${answer#Description     : }
  25.898 +		if [ -z "$answer" ]; then
  25.899 +			echo -n "Description : "
  25.900 +			read answer
  25.901 +		fi
  25.902 +		echo -n "Compressing flavor $FLAVOR..."
  25.903 +		echo "Flavor          : $FLAVOR" > $FLAVOR.desc
  25.904 +		echo "Description     : $answer" >> $FLAVOR.desc
  25.905 +		( cd $DISTRO; distro_sizes) >> $FLAVOR.desc
  25.906 +		\rm -f $FLAVOR.pkglist $FLAVOR.nonfree 2> /dev/null
  25.907 +		for i in $(ls $ROOTFS$INSTALLED); do
  25.908 +			eval $(grep ^VERSION= $ROOTFS$INSTALLED/$i/receipt)
  25.909 +			EXTRAVERSION=""
  25.910 +			eval $(grep ^EXTRAVERSION= $ROOTFS$INSTALLED/$i/receipt)
  25.911 +			eval $(grep ^CATEGORY= $ROOTFS$INSTALLED/$i/receipt)
  25.912 +			if [ "$CATEGORY" = "non-free" -a "${i%%-*}" != "get" ]
  25.913 +			then
  25.914 +				echo "$i" >> $FLAVOR.nonfree
  25.915 +			else
  25.916 +				echo "$i-$VERSION$EXTRAVERSION" >> $FLAVOR.pkglist
  25.917 +			fi
  25.918 +		done
  25.919 +		[ -s $FLAVOR.nonfree ] && $FILES="$FILES\n$FLAVOR.nonfree"
  25.920 +		for i in $LOCALSTATE/undigest/*/mirror ; do
  25.921 +			[ -s $i ] && cat $i >> $FLAVOR.mirrors
  25.922 +		done
  25.923 +		[ -s $FLAVOR.mirrors ] && $FILES="$FILES\n$FLAVOR.mirrors"
  25.924 +		echo -e "$FLAVOR.desc\n$FILES" | cpio -o -H newc 2>/dev/null | \
  25.925 +			gzip -9 > $FLAVOR.flavor
  25.926 +		rm `echo -e $FILES`
  25.927 +		status
  25.928 +		echo "================================================================================"
  25.929 +		echo "Flavor size : `du -sh $FLAVOR.flavor`"
  25.930 +		echo ""
  25.931 +		;;
  25.932 +	upgrade-flavor)
  25.933 +		# Update package list to the lastest versions available.
  25.934 +		FLAVOR=${2%.flavor}
  25.935 +		if [ -f $FLAVOR.flavor ] || download $FLAVOR.flavor; then
  25.936 +			mkdir $TMP_DIR
  25.937 +			zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i >/dev/null )
  25.938 +			echo -n "Updating $FLAVOR package list..."
  25.939 +			[ -s /var/lib/tazpkg/packages.list ] || tazpkg recharge
  25.940 +			packed_size=0; unpacked_size=0
  25.941 +			while read org; do
  25.942 +				i=0
  25.943 +				pkg=$org
  25.944 +				while ! grep -q ^$pkg$ /var/lib/tazpkg/packages.txt; do
  25.945 +					pkg=${pkg%-*}
  25.946 +					i=$(($i + 1))
  25.947 +					[ $i -gt 5 ] && break;
  25.948 +				done
  25.949 +				set -- $(get_size $pkg)
  25.950 +				packed_size=$(( $packed_size + $1 ))
  25.951 +				unpacked_size=$(( $unpacked_size + $2 ))
  25.952 +				for i in $(grep ^$pkg /var/lib/tazpkg/packages.list); do
  25.953 +					echo $i
  25.954 +					break
  25.955 +				done
  25.956 +			done <  $TMP_DIR/$FLAVOR.pkglist \
  25.957 +			     > $TMP_DIR/$FLAVOR.pkglist.$$
  25.958 +			mv -f $TMP_DIR/$FLAVOR.pkglist.$$ $TMP_DIR/$FLAVOR.pkglist
  25.959 +			if [ -s $TMP_DIR/$FLAVOR.rootfs ]; then
  25.960 +				packed_size=$(($packed_size \
  25.961 +					+ $(cat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 ))
  25.962 +				unpacked_size=$(($unpacked_size \
  25.963 +					+ $(zcat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 ))
  25.964 +			fi
  25.965 +			# Estimate lzma
  25.966 +			packed_size=$(($packed_size * 2 / 3))
  25.967 +			iso_size=$(( $packed_size + 26000 ))
  25.968 +			if [ -s $TMP_DIR/$FLAVOR.rootcd ]; then
  25.969 +				iso_size=$(($iso_size \
  25.970 +					+ $(zcat $TMP_DIR/$FLAVOR.rootcd | wc -c ) / 100 ))
  25.971 +			fi
  25.972 +			sed -i -e '/Image is ready/d' \
  25.973 +			       -e "s/Rootfs size\( *:\) \(.*\)/Rootfs size\1 $(cent2human $unpacked_size)  (estimated)/" \
  25.974 +			       -e "s/Initramfs size\( *:\) \(.*\)/Initramfs size\1 $(cent2human $packed_size)  (estimated)/" \
  25.975 +			       -e "s/ISO image size\( *:\) \(.*\)/ISO image size\1 $(cent2human $iso_size)  (estimated)/" \
  25.976 +			       -e "s/date\( *:\) \(.*\)/date\1 $(date +%Y%m%d\ \at\ \%H:%M:%S)/" \
  25.977 +					$TMP_DIR/$FLAVOR.desc
  25.978 +			( cd $TMP_DIR ; ls | cpio -o -H newc ) | gzip -9 > \
  25.979 +				$FLAVOR.flavor
  25.980 +			status
  25.981 +			rm -Rf $TMP_DIR
  25.982 +		fi
  25.983 +		;;
  25.984 +	extract-flavor)
  25.985 +		# Extract a flavor into $FLAVORS_REPOSITORY.
  25.986 +		FLAVOR=${2%.flavor}
  25.987 +		if [ -f $FLAVOR.flavor ] || download $FLAVOR.flavor; then
  25.988 +			mkdir $TMP_DIR
  25.989 +			zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i >/dev/null )
  25.990 +			echo -n "Extracting $FLAVOR..."
  25.991 +			rm -rf $FLAVORS_REPOSITORY/$FLAVOR 2> /dev/null
  25.992 +			mkdir -p $FLAVORS_REPOSITORY/$FLAVOR
  25.993 +			echo "FLAVOR=\"$FLAVOR\"" > $FLAVORS_REPOSITORY/$FLAVOR/receipt
  25.994 +			grep ^Description $TMP_DIR/$FLAVOR.desc | \
  25.995 +				sed 's/.*: \(.*\)$/SHORT_DESC="\1"/' >> \
  25.996 +				$FLAVORS_REPOSITORY/$FLAVOR/receipt
  25.997 +			grep -q '^Rootfs list' $TMP_DIR/$FLAVOR.desc && \
  25.998 +			grep '^Rootfs list' $TMP_DIR/$FLAVOR.desc | \
  25.999 +				sed 's/.*: \(.*\)$/ROOTFS_SELECTION="\1"/' >> \
 25.1000 +				$FLAVORS_REPOSITORY/$FLAVOR/receipt
 25.1001 +			grep '^Rootfs size' $TMP_DIR/$FLAVOR.desc | \
 25.1002 +				sed 's/.*: \(.*\)$/ROOTFS_SIZE="\1"/' >> \
 25.1003 +				$FLAVORS_REPOSITORY/$FLAVOR/receipt
 25.1004 +			grep ^Initramfs $TMP_DIR/$FLAVOR.desc | \
 25.1005 +				sed 's/.*: \(.*\)$/INITRAMFS_SIZE="\1"/' >> \
 25.1006 +				$FLAVORS_REPOSITORY/$FLAVOR/receipt
 25.1007 +			grep ^ISO $TMP_DIR/$FLAVOR.desc | \
 25.1008 +				sed 's/.*: \(.*\)$/ISO_SIZE="\1"/' >> \
 25.1009 +				$FLAVORS_REPOSITORY/$FLAVOR/receipt
 25.1010 +			for i in rootcd rootfs; do
 25.1011 +				[ -f $TMP_DIR/$FLAVOR.$i ] || continue
 25.1012 +				mkdir $FLAVORS_REPOSITORY/$FLAVOR/$i
 25.1013 +				zcat $TMP_DIR/$FLAVOR.$i | \
 25.1014 +				  (cd $FLAVORS_REPOSITORY/$FLAVOR/$i; \
 25.1015 +				   cpio -idm > /dev/null)
 25.1016 +			done
 25.1017 +			[ -s $TMP_DIR/$FLAVOR.mirrors ] &&
 25.1018 +				cp $TMP_DIR/$FLAVOR.mirrors \
 25.1019 +					$FLAVORS_REPOSITORY/$FLAVOR/mirrors
 25.1020 +			[ -s /var/lib/tazpkg/packages.list ] || tazpkg recharge
 25.1021 +			while read org; do
 25.1022 +				i=0
 25.1023 +				pkg=$org
 25.1024 +				while ! grep -q ^$pkg$ /var/lib/tazpkg/packages.txt; do
 25.1025 +					pkg=${pkg%-*}
 25.1026 +					i=$(($i + 1))
 25.1027 +					[ $i -gt 5 ] && break;
 25.1028 +				done
 25.1029 +				echo $pkg
 25.1030 +			done <  $TMP_DIR/$FLAVOR.pkglist \
 25.1031 +			     > $FLAVORS_REPOSITORY/$FLAVOR/packages.list
 25.1032 +			status
 25.1033 +			rm -Rf $TMP_DIR
 25.1034 +		fi
 25.1035 +		;;
 25.1036 +	pack-flavor)
 25.1037 +		# Create a flavor from $FLAVORS_REPOSITORY.
 25.1038 +		FLAVOR=${2%.flavor}
 25.1039 +		if [ -s $FLAVORS_REPOSITORY/$FLAVOR/receipt ]; then
 25.1040 +			mkdir $TMP_DIR
 25.1041 +			echo -n "Creating flavor $FLAVOR..."
 25.1042 +			[ -s /var/lib/tazpkg/packages.list ] || tazpkg recharge
 25.1043 +			if [ -s $FLAVORS_REPOSITORY/$FLAVOR/mirrors ]; then
 25.1044 +				cp $FLAVORS_REPOSITORY/$FLAVOR/mirrors \
 25.1045 +					$TMP_DIR/$FLAVOR.mirrors
 25.1046 +				for i in $(cat $TMP_DIR/$FLAVOR.mirrors); do
 25.1047 +					wget -O - $i/packages.list >> $TMP_DIR/packages.list
 25.1048 +				done
 25.1049 +			fi
 25.1050 +			[ -s $FLAVORS_REPOSITORY/$FLAVOR/packages.list ] &&
 25.1051 +			get_pkglist $FLAVOR > $TMP_DIR/$FLAVOR.pkglist
 25.1052 +			if grep -q ^ROOTFS_SELECTION \
 25.1053 +				$FLAVORS_REPOSITORY/$FLAVOR/receipt; then
 25.1054 +				. $FLAVORS_REPOSITORY/$FLAVOR/receipt
 25.1055 +				set -- $ROOTFS_SELECTION
 25.1056 +				[ -n "$FRUGAL_RAM" ] || FRUGAL_RAM=$1
 25.1057 +				[ -f $FLAVORS_REPOSITORY/$2/packages.list ] ||
 25.1058 +					tazlito extract-flavor $2
 25.1059 +				get_pkglist $2 > $TMP_DIR/$FLAVOR.pkglist
 25.1060 +			fi
 25.1061 +			for i in rootcd rootfs; do
 25.1062 +				[ -d $FLAVORS_REPOSITORY/$FLAVOR/$i ] || \
 25.1063 +					continue
 25.1064 +				( cd $FLAVORS_REPOSITORY/$FLAVOR/$i ; find . | \
 25.1065 +				cpio -o -H newc 2> /dev/null ) | \
 25.1066 +				gzip -9 >$TMP_DIR/$FLAVOR.$i
 25.1067 +			done
 25.1068 +			if [ -s $TMP_DIR/$FLAVOR.rootfs ]; then
 25.1069 +				packed_size=$(($packed_size \
 25.1070 +					+ $(cat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 ))
 25.1071 +				unpacked_size=$(($unpacked_size \
 25.1072 +					+ $(zcat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 ))
 25.1073 +			fi
 25.1074 +			# Estimate lzma
 25.1075 +			packed_size=$(($packed_size * 2 / 3))
 25.1076 +			iso_size=$(( $packed_size + 26000 ))
 25.1077 +			if [ -s $TMP_DIR/$FLAVOR.rootcd ]; then
 25.1078 +				iso_size=$(($iso_size \
 25.1079 +					+ $(zcat $TMP_DIR/$FLAVOR.rootcd | wc -c ) / 100 ))
 25.1080 +			fi
 25.1081 +			VERSION=""
 25.1082 +			MAINTAINER=""
 25.1083 +			ROOTFS_SELECTION=""
 25.1084 +			ROOTFS_SIZE="$(cent2human $unpacked_size) (estimated)"
 25.1085 +			INITRAMFS_SIZE="$(cent2human $packed_size) (estimated)"
 25.1086 +			ISO_SIZE="$(cent2human $iso_size) (estimated)"
 25.1087 +			. $FLAVORS_REPOSITORY/$FLAVOR/receipt
 25.1088 +			cat > $TMP_DIR/$FLAVOR.desc <<EOT
 25.1089 +Flavor          : $FLAVOR
 25.1090 +Description     : $SHORT_DESC
 25.1091 +EOT
 25.1092 +			[ -n "$VERSION" ] && cat >> $TMP_DIR/$FLAVOR.desc <<EOT
 25.1093 +Version         : $VERSION
 25.1094 +EOT
 25.1095 +			[ -n "$MAINTAINER" ] && cat >> $TMP_DIR/$FLAVOR.desc <<EOT
 25.1096 +Maintainer      : $MAINTAINER
 25.1097 +EOT
 25.1098 +			[ -n "$FRUGAL_RAM" ] && cat >> $TMP_DIR/$FLAVOR.desc <<EOT
 25.1099 +LiveCD RAM size : $FRUGAL_RAM
 25.1100 +EOT
 25.1101 +			[ -n "$ROOTFS_SELECTION" ] && cat >> $TMP_DIR/$FLAVOR.desc <<EOT
 25.1102 +Rootfs list     : $ROOTFS_SELECTION
 25.1103 +EOT
 25.1104 +			cat >> $TMP_DIR/$FLAVOR.desc <<EOT
 25.1105 +Build date      : $(date +%Y%m%d\ \at\ \%H:%M:%S)
 25.1106 +Packages        : $(grep -v ^# $TMP_DIR/$FLAVOR.pkglist | wc -l)
 25.1107 +Rootfs size     : $ROOTFS_SIZE
 25.1108 +Initramfs size  : $INITRAMFS_SIZE
 25.1109 +ISO image size  : $ISO_SIZE
 25.1110 +================================================================================
 25.1111 +
 25.1112 +EOT
 25.1113 +			rm -f $TMP_DIR/packages.list
 25.1114 +			( cd $TMP_DIR ; ls | cpio -o -H newc 2> /dev/null) | \
 25.1115 +				gzip -9 > $FLAVOR.flavor
 25.1116 +			status
 25.1117 +			rm -Rf $TMP_DIR
 25.1118 +		else
 25.1119 +			echo "No $FLAVOR flavor in $FLAVORS_REPOSITORY."
 25.1120 +		fi
 25.1121 +		;;
 25.1122 +	get-flavor)
 25.1123 +		# Get a flavor's files and prepare for gen-distro.
 25.1124 +		FLAVOR=${2%.flavor}
 25.1125 +		echo ""
 25.1126 +		if [ -f $FLAVOR.flavor ] || download $FLAVOR.flavor; then
 25.1127 +			echo -n "Cleaning $DISTRO..."
 25.1128 +			rm -R $DISTRO 2> /dev/null
 25.1129 +			mkdir -p $DISTRO
 25.1130 +			status
 25.1131 +			mkdir $TMP_DIR
 25.1132 +			echo -n "Extracting flavor $FLAVOR.flavor... "
 25.1133 +			zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i 2>/dev/null )
 25.1134 +			echo -n "Creating distro-packages.list..."
 25.1135 +			mv $TMP_DIR/$FLAVOR.nonfree non-free.list 2> /dev/null
 25.1136 +			mv $TMP_DIR/$FLAVOR.pkglist distro-packages.list
 25.1137 +			status
 25.1138 +			for i in rootcd rootfs; do
 25.1139 +				if [ -f $TMP_DIR/$FLAVOR.$i ]; then
 25.1140 +					echo -n "Adding $i... "
 25.1141 +					mkdir -p "$ADDFILES/$i"
 25.1142 +					zcat $TMP_DIR/$FLAVOR.$i | \
 25.1143 +						( cd "$ADDFILES/$i"; cpio -id 2> /dev/null)
 25.1144 +				fi
 25.1145 +			done
 25.1146 +			if [ -s $TMP_DIR/$FLAVOR.mirrors ]; then
 25.1147 +				n=""
 25.1148 +				while read line; do
 25.1149 +					mkdir -p $LOCALSTATE/undigest/$FLAVOR$n
 25.1150 +					echo "$line" > $LOCALSTATE/undigest/$FLAVOR$n/mirror
 25.1151 +					n=$(( $n + 1 ))
 25.1152 +				done < $TMP_DIR/$FLAVOR.mirrors
 25.1153 +				tazpkg recharge
 25.1154 +			fi
 25.1155 +			rm -f /etc/tazlito/rootfs.list
 25.1156 +			grep -q '^Rootfs list' $TMP_DIR/$FLAVOR.desc &&
 25.1157 +				grep '^Rootfs list' $TMP_DIR/$FLAVOR.desc | \
 25.1158 +				sed 's/.*: \(.*\)$/\1/' > /etc/tazlito/rootfs.list
 25.1159 +			echo -n "Updating tazlito.conf..."
 25.1160 +			[ -f tazlito.conf ] || cp /etc/tazlito/tazlito.conf .
 25.1161 +			cat tazlito.conf | grep -v "^#VOLUM_NAME" | \
 25.1162 +			sed "s/^VOLUM_NA/VOLUM_NAME=\"SliTaz $FLAVOR\"\\n#VOLUM_NA/" \
 25.1163 +				> tazlito.conf.$$ && mv tazlito.conf.$$ tazlito.conf
 25.1164 +			sed -i "s/ISO_NAME=.*/ISO_NAME=\"slitaz-$FLAVOR\"/" tazlito.conf
 25.1165 +			status
 25.1166 +			rm -Rf $TMP_DIR
 25.1167 +		fi
 25.1168 +		echo ""
 25.1169 +		;;
 25.1170 +	check-list)
 25.1171 +		# Use current packages list in $PWD by default.
 25.1172 +		DISTRO_PKGS_LIST=distro-packages.list
 25.1173 +		[ -d "$2" ] && DISTRO_PKGS_LIST=$2/distro-packages.list
 25.1174 +		[ -f "$2" ] && DISTRO_PKGS_LIST=$2
 25.1175 +		[ ! -f $DISTRO_PKGS_LIST ] && echo "No packages list found." && exit 0
 25.1176 +		echo ""
 25.1177 +		echo -e "\033[1mLiveCD packages list check\033[0m"
 25.1178 +		echo "================================================================================"
 25.1179 +		for pkg in `cat $DISTRO_PKGS_LIST`
 25.1180 +		do
 25.1181 +			if ! grep -q "$pkg" /var/lib/tazpkg/packages.list; then
 25.1182 +				echo "Update: $pkg"
 25.1183 +				up=$(($up + 1))
 25.1184 +			fi
 25.1185 +		done
 25.1186 +		[ -z $up ] && echo -e "List is up-to-date\n" && exit 0
 25.1187 +		echo "================================================================================"
 25.1188 +		echo -e "Updates: $up\n" ;;
 25.1189 +	gen-distro)
 25.1190 +		# Generate a live distro tree with a set of packages.
 25.1191 +		#
 25.1192 +		check_root
 25.1193 +		
 25.1194 +		# Check if a package list was specified on cmdline.
 25.1195 +		LIST_NAME="distro-packages.list"
 25.1196 +		CDROM=""
 25.1197 +		while [ -n "$2" ]; do
 25.1198 +			case "$2" in
 25.1199 +			--iso=*)
 25.1200 +				CDROM="-o loop ${2#--iso=}"
 25.1201 +				;;
 25.1202 +			--cdrom)
 25.1203 +				CDROM="/dev/cdrom"
 25.1204 +				;;
 25.1205 +			--force)
 25.1206 +				DELETE_ROOTFS="true"
 25.1207 +				;;
 25.1208 +			*)	if [ ! -f "$2" ] ; then
 25.1209 +					echo -e "\nUnable to find the specified packages list."
 25.1210 +					echo -e "List name : $2\n"
 25.1211 +					exit 1
 25.1212 +				fi
 25.1213 +				LIST_NAME=$2
 25.1214 +				;;
 25.1215 +			esac
 25.1216 +			shift
 25.1217 +		done
 25.1218 +		 
 25.1219 +		if [ -d $ROOTFS ] ; then
 25.1220 +			# Delete $ROOTFS if --force is set on command line
 25.1221 +			if [ ! -z $DELETE_ROOTFS ]; then
 25.1222 +				rm -rf $ROOTFS
 25.1223 +				unset $DELETE_ROOTFS
 25.1224 +			else
 25.1225 +				echo -e "\nA rootfs exists in : $DISTRO"
 25.1226 +				echo -e "Please clean the distro tree or change directory path.\n"
 25.1227 +				exit 0
 25.1228 +			fi
 25.1229 +		fi
 25.1230 +		if [ ! -f "$LIST_NAME" -a -d $INSTALLED ] ; then
 25.1231 +		# Build list with installed packages
 25.1232 +			for i in $(ls $INSTALLED); do
 25.1233 +				eval $(grep ^VERSION= $INSTALLED/$i/receipt)
 25.1234 +				EXTRAVERSION=""
 25.1235 +				eval $(grep ^EXTRAVERSION= $INSTALLED/$i/receipt)
 25.1236 +				echo "$i-$VERSION$EXTRAVERSION" >> $LIST_NAME
 25.1237 +			done
 25.1238 +		fi
 25.1239 +		# Exit if no list name.
 25.1240 +		if [ ! -f "$LIST_NAME" ]; then
 25.1241 +			echo -e "\nNo packages list found or specified. Please read the docs.\n"
 25.1242 +			exit 0
 25.1243 +		fi
 25.1244 +		# Start generation.
 25.1245 +		echo ""
 25.1246 +		echo -e "\033[1mTazlito generating a distro\033[0m"
 25.1247 +		echo "================================================================================"
 25.1248 +		# Misc checks
 25.1249 +		[ -n "$PACKAGES_REPOSITORY" ] || PACKAGES_REPOSITORY="."
 25.1250 +		[ -d $PACKAGES_REPOSITORY ] || mkdir -p $PACKAGES_REPOSITORY
 25.1251 +		# Get the list of packages using cat for a file list.
 25.1252 +		LIST=`cat $LIST_NAME`
 25.1253 +		# Verify if all packages in list are present in $PACKAGES_REPOSITORY.
 25.1254 +		REPACK=""
 25.1255 +		DOWNLOAD=""
 25.1256 +		for pkg in $LIST
 25.1257 +		do
 25.1258 +			[ "$pkg" = "" ] && continue
 25.1259 +			pkg=${pkg%.tazpkg}
 25.1260 +			[ -f $PACKAGES_REPOSITORY/$pkg.tazpkg ] && continue
 25.1261 +			PACKAGE=$(installed_package_name $pkg)
 25.1262 +			[ -n "$PACKAGE" -a "$REPACK" = "y" ] && continue
 25.1263 +			[ -z "$PACKAGE" -a -n "$DOWNLOAD" ] && continue
 25.1264 +			echo -e "\nUnable to find $pkg in the repository."
 25.1265 +			echo -e "Path : $PACKAGES_REPOSITORY\n"
 25.1266 +			if [ -n "$PACKAGE" -a -z "$REPACK" ]; then
 25.1267 +				yesorno "Repack packages from rootfs (y/N) ? "
 25.1268 +				REPACK="$answer"
 25.1269 +				[ "$answer" = "y" ] || REPACK="n"
 25.1270 +				[ "$DOWNLOAD" = "y" ] && break
 25.1271 +			fi
 25.1272 +			if [ -f $MIRROR -a -z "$DOWNLOAD" ]; then
 25.1273 +				yesorno "Download packages from mirror (Y/n) ? "
 25.1274 +				DOWNLOAD="$answer"
 25.1275 +				if [ "$answer" = "n" ]; then
 25.1276 +					[ -z "$PACKAGE" ] && exit 1
 25.1277 +				else
 25.1278 +					DOWNLOAD="y"
 25.1279 +					[ -n "$REPACK" ] && break
 25.1280 +				fi
 25.1281 +			fi
 25.1282 +			[ "$REPACK" = "n" -a "$DOWNLOAD" = "n" ] && exit 1
 25.1283 +		done
 25.1284 +		
 25.1285 +		# Mount cdrom to be able to repack boot-loader packages
 25.1286 +		if [ ! -e /boot -a -n "$CDROM" ]; then
 25.1287 +			mkdir $TMP_MNT
 25.1288 +			if mount -r $CDROM $TMP_MNT 2> /dev/null; then
 25.1289 +				ln -s $TMP_MNT/boot /
 25.1290 +				if [ ! -d "$ADDFILES/rootcd" ] ; then
 25.1291 +					mkdir -p $ADDFILES/rootcd
 25.1292 +					for i in $(ls $TMP_MNT); do
 25.1293 +						[ "$i" = "boot" ] && continue
 25.1294 +						cp -a $TMP_MNT/$i $ADDFILES/rootcd
 25.1295 +					done
 25.1296 +				fi
 25.1297 +			else
 25.1298 +				rmdir $TMP_MNT
 25.1299 +			fi
 25.1300 +		fi
 25.1301 +
 25.1302 +		# Root fs stuff.
 25.1303 +		echo "Preparing the rootfs directory..."
 25.1304 +		mkdir -p $ROOTFS
 25.1305 +		sleep 2
 25.1306 +		for pkg in $LIST
 25.1307 +		do
 25.1308 +			[ "$pkg" = "" ] && continue
 25.1309 +			# First copy and extract the package in tmp dir.
 25.1310 +			pkg=${pkg%.tazpkg}
 25.1311 +			PACKAGE=$(installed_package_name $pkg)
 25.1312 +			mkdir -p $TMP_DIR
 25.1313 +			if [ ! -f $PACKAGES_REPOSITORY/$pkg.tazpkg ]; then
 25.1314 +				# Look for package in cache
 25.1315 +				if [ -f $CACHE_DIR/$pkg.tazpkg ]; then
 25.1316 +					ln -s $CACHE_DIR/$pkg.tazpkg $PACKAGES_REPOSITORY
 25.1317 +				# Look for package in running distribution
 25.1318 +				elif [ -n "$PACKAGE" -a "$REPACK" = "y" ]; then
 25.1319 +					tazpkg repack $PACKAGE && \
 25.1320 +					  mv $pkg.tazpkg $PACKAGES_REPOSITORY 
 25.1321 +				fi
 25.1322 +			fi
 25.1323 +			if [ ! -f $PACKAGES_REPOSITORY/$pkg.tazpkg ]; then
 25.1324 +				# Get package from mirror
 25.1325 +				[ "$DOWNLOAD" = "y" ] && \
 25.1326 +				download $pkg.tazpkg && \
 25.1327 +				mv $pkg.tazpkg $PACKAGES_REPOSITORY
 25.1328 +			fi
 25.1329 +			if [ ! -f $PACKAGES_REPOSITORY/$pkg.tazpkg ]; then
 25.1330 +				echo "Missing package $pkg."
 25.1331 +				cleanup
 25.1332 +				exit 1
 25.1333 +			fi
 25.1334 +		done
 25.1335 +		if [ -f non-free.list ]; then
 25.1336 +			echo "Preparing non-free packages..."
 25.1337 +			cp non-free.list $ROOTFS/etc/tazlito/non-free.list
 25.1338 +			for pkg in $(cat non-free.list); do
 25.1339 +				if [ ! -d $INSTALLED/$pkg ]; then
 25.1340 +					if [ ! -d $INSTALLED/get-$pkg ]; then
 25.1341 +						tazpkg get-install get-$pkg
 25.1342 +					fi
 25.1343 +					get-$pkg
 25.1344 +				fi
 25.1345 +				tazpkg repack $pkg
 25.1346 +				pkg=$(ls $pkg*.tazpkg)
 25.1347 +				grep -q "^$pkg$" $LIST_NAME || \
 25.1348 +					echo $pkg >>$LIST_NAME
 25.1349 +				mv $pkg $PACKAGES_REPOSITORY 
 25.1350 +			done
 25.1351 +		fi
 25.1352 +		echo ""
 25.1353 +		cp $LIST_NAME $DISTRO/distro-packages.list
 25.1354 +		sed 's/\(.*\)/\1.tazpkg/' < $DISTRO/distro-packages.list > $DISTRO/list-packages
 25.1355 +		cd $PACKAGES_REPOSITORY
 25.1356 +		yes y | tazpkg install-list \
 25.1357 +			$DISTRO/list-packages --root=$ROOTFS
 25.1358 +		cd $DISTRO
 25.1359 +		cp distro-packages.list $ROOTFS/etc/tazlito
 25.1360 +		# Copy all files from $ADDFILES/rootfs to the rootfs.
 25.1361 +		if [ -d "$ADDFILES/rootfs" ] ; then
 25.1362 +			echo -n "Copying addfiles content to the rootfs... "
 25.1363 +			cp -a $ADDFILES/rootfs/* $ROOTFS
 25.1364 +			status
 25.1365 +		fi
 25.1366 +		echo "Root file system is generated..."
 25.1367 +		# Root CD part.
 25.1368 +		echo -n "Preparing the rootcd directory..."
 25.1369 +		mkdir -p $ROOTCD
 25.1370 +		status
 25.1371 +		# Move the boot dir with the Linux kernel from rootfs.
 25.1372 +		# The boot dir goes directly on the CD.
 25.1373 +		if [ -d "$ROOTFS/boot" ] ; then
 25.1374 +			echo -n "Moving the boot directory..."
 25.1375 +			mv $ROOTFS/boot $ROOTCD
 25.1376 +			cd $ROOTCD/boot
 25.1377 +			ln vmlinuz-* bzImage
 25.1378 +			status
 25.1379 +		fi
 25.1380 +		cd $DISTRO
 25.1381 +		# Copy all files from $ADDFILES/rootcd to the rootcd.
 25.1382 +		if [ -d "$ADDFILES/rootcd" ] ; then
 25.1383 +			echo -n "Copying addfiles content to the rootcd... "
 25.1384 +			cp -a $ADDFILES/rootcd/* $ROOTCD
 25.1385 +			status
 25.1386 +		fi
 25.1387 +		# Execute the distro script (used to perform tasks in the rootfs
 25.1388 +		# before compression. Give rootfs path in arg
 25.1389 +		[ -z $DISTRO_SCRIPT ] && DISTRO_SCRIPT=$TOP_DIR/distro.sh
 25.1390 +		if [ -x $DISTRO_SCRIPT ]; then
 25.1391 +			echo "Executing distro script..."
 25.1392 +			sh $DISTRO_SCRIPT $DISTRO
 25.1393 +		fi
 25.1394 +		if [ -s /etc/tazlito/rootfs.list ]; then
 25.1395 +			[ -f $ROOTCD/boot/isolinux/ifmem.c32 ] ||
 25.1396 +			cp /boot/isolinux/ifmem.c32 $ROOTCD/boot/isolinux
 25.1397 +			n=0
 25.1398 +			last=$ROOTFS
 25.1399 +			while read flavor; do
 25.1400 +				n=$(($n+1))
 25.1401 +				echo "Building $flavor rootfs..."
 25.1402 +				download $flavor.flavor
 25.1403 +				zcat $flavor.flavor | cpio -i $flavor.pkglist
 25.1404 +				sed 's/.*/&.tazpkg/' < $flavor.pkglist \
 25.1405 +					> $DISTRO/list-packages0$n
 25.1406 +				mkdir ${ROOTFS}0$n
 25.1407 +				cd $PACKAGES_REPOSITORY
 25.1408 +				yes y | tazpkg install-list \
 25.1409 +					$DISTRO/list-packages0$n --root=${ROOTFS}0$n
 25.1410 +				rm -rf ${ROOTFS}0$n/boot
 25.1411 +				status
 25.1412 +				cd $DISTRO
 25.1413 +				mv $flavor.pkglist ${ROOTFS}0$n/etc/tazlito/distro-packages.list
 25.1414 +				rm -f $flavor.flavor install-list
 25.1415 +				mergefs ${ROOTFS}0$n $last
 25.1416 +				last=${ROOTFS}0$n
 25.1417 +			done <<EOT
 25.1418 +$(awk '{ for (i = 4; i <= NF; i+=2) print $i; }' < /etc/tazlito/rootfs.list)
 25.1419 +EOT
 25.1420 +			i=$(($n+1))
 25.1421 +			while [ $n -gt 0 ]; do
 25.1422 +				mv ${ROOTFS}0$n ${ROOTFS}$i
 25.1423 +				echo "Compression ${ROOTFS}0$n ($(du -hs ${ROOTFS}$i | awk '{ print $1 }')) ..."
 25.1424 +				gen_initramfs ${ROOTFS}$i
 25.1425 +				n=$(($n-1))
 25.1426 +				i=$(($i-1))
 25.1427 +			done
 25.1428 +			mv $ROOTFS ${ROOTFS}$i
 25.1429 +			gen_initramfs ${ROOTFS}$i
 25.1430 +			update_bootconfig $ROOTCD/boot/isolinux \
 25.1431 +				"$(cat /etc/tazlito/rootfs.list)"
 25.1432 +		else
 25.1433 +			# Initramfs and ISO image stuff.
 25.1434 +			gen_initramfs $ROOTFS
 25.1435 +		fi
 25.1436 +		gen_livecd_isolinux
 25.1437 +		distro_stats
 25.1438 +		cleanup
 25.1439 +		;;
 25.1440 +	clean-distro)
 25.1441 +		# Remove old distro tree.
 25.1442 +		#
 25.1443 +		check_root
 25.1444 +		echo ""
 25.1445 +		echo -e "\033[1mCleaning :\033[0m $DISTRO"
 25.1446 +		echo "================================================================================"
 25.1447 +		if [ -d "$DISTRO" ] ; then
 25.1448 +			if [ -d "$ROOTFS" ] ; then
 25.1449 +				echo -n "Removing the rootfs..."
 25.1450 +				rm -f $DISTRO/$INITRAMFS
 25.1451 +				rm -rf $ROOTFS
 25.1452 +				status
 25.1453 +			fi
 25.1454 +			if [ -d "$ROOTCD" ] ; then
 25.1455 +				echo -n "Removing the rootcd..."
 25.1456 +				rm -rf $ROOTCD
 25.1457 +				status
 25.1458 +			fi
 25.1459 +			echo -n "Removing eventual ISO image..."
 25.1460 +			rm -f $DISTRO/$ISO_NAME.iso
 25.1461 +			rm -f $DISTRO/$ISO_NAME.md5
 25.1462 +			status
 25.1463 +		fi
 25.1464 +		echo "================================================================================"
 25.1465 +		echo ""
 25.1466 +		;;
 25.1467 +	check-distro)
 25.1468 +		# Check for a few LiveCD needed files not installed by packages.
 25.1469 +		#
 25.1470 +		check_rootfs
 25.1471 +		echo ""
 25.1472 +		echo -e "\033[1mChecking distro :\033[0m $ROOTFS"
 25.1473 +		echo "================================================================================"
 25.1474 +		# SliTaz release info.
 25.1475 +		if [ ! -f "$ROOTFS/etc/slitaz-release" ]; then
 25.1476 +			echo "Missing release info : /etc/slitaz-release"
 25.1477 +		else
 25.1478 +			release=`cat $ROOTFS/etc/slitaz-release`
 25.1479 +			echo -n "Release      : $release"
 25.1480 +			status
 25.1481 +		fi
 25.1482 +		# Tazpkg mirror.
 25.1483 +		if [ ! -f "$ROOTFS/var/lib/tazpkg/mirror" ]; then
 25.1484 +			echo -n "Mirror URL   : Missing /var/lib/tazpkg/mirror"
 25.1485 +			todomsg
 25.1486 +		else
 25.1487 +			echo -n "Mirror configuration exists..."
 25.1488 +			status
 25.1489 +		fi
 25.1490 +		# Isolinux msg	
 25.1491 +		if grep -q "cooking-XXXXXXXX" /$ROOTCD/boot/isolinux/isolinux.msg; then
 25.1492 +			echo -n "Isolinux msg : Missing cooking date XXXXXXXX (ex `date +%Y%m%d`)"
 25.1493 +			todomsg
 25.1494 +		else
 25.1495 +			echo -n "Isolinux message seems good..."
 25.1496 +			status
 25.1497 +		fi
 25.1498 +		echo "================================================================================"
 25.1499 +		echo ""
 25.1500 +		;;
 25.1501 +	writeiso)
 25.1502 +				# Writefs to ISO image including /home unlike gen-distro we dont use
 25.1503 +		# packages to generate a rootfs, we build a compressed rootfs with all 
 25.1504 +		# the current filesystem similar to 'tazusb writefs'.
 25.1505 +		#
 25.1506 +		DISTRO="/home/slitaz/distro"
 25.1507 +		ROOTCD="$DISTRO/rootcd"
 25.1508 +		if [ -z $2 ]; then
 25.1509 +			COMPRESSION=none
 25.1510 +		else
 25.1511 +			COMPRESSION=$2
 25.1512 +		fi
 25.1513 +		if [ -z $3 ]; then
 25.1514 +			ISO_NAME="slitaz"
 25.1515 +		else
 25.1516 +			ISO_NAME="$3"
 25.1517 +		fi
 25.1518 +		check_root
 25.1519 +		# Start info
 25.1520 +		echo ""
 25.1521 +		echo -e "\033[1mWrite filesystem to ISO\033[0m
 25.1522 +===============================================================================
 25.1523 +The command writeiso will write the current filesystem into a suitable cpio 
 25.1524 +archive (rootfs.gz) and generate a bootable ISO image (slitaz.iso). 
 25.1525 +
 25.1526 +Archive compression: $COMPRESSION"
 25.1527 +		echo ""
 25.1528 +		
 25.1529 +		# Save some space
 25.1530 +		rm /var/cache/tazpkg/* -r -f
 25.1531 +		rm -rf /home/slitaz/distro
 25.1532 +
 25.1533 +		# Optionally remove sound card selection and screen resolution.
 25.1534 +		echo "Do you wish to remove the sound card and screen config ? "
 25.1535 +		echo -n "Press ENTER to keep or anser (No|yes|exit): "
 25.1536 +		read anser
 25.1537 +		case $anser in
 25.1538 +			e|E|"exit"|Exit)
 25.1539 +				exit 0 ;;
 25.1540 +			y|Y|yes|Yes)
 25.1541 +				echo -n "Removing current sound card and screen configuration..."
 25.1542 +				rm -f /var/lib/sound-card-driver
 25.1543 +				rm -f /etc/asound.state
 25.1544 +				rm -f /etc/X11/screen.conf 
 25.1545 +				rm -f /etc/X11/xorg.conf ;;
 25.1546 +			*)
 25.1547 +				echo -n "Keeping current sound card and screen configuration..." ;;
 25.1548 +		esac
 25.1549 +		status
 25.1550 +		
 25.1551 +		# Create list of files including default user files since it is defined in /etc/passwd
 25.1552 +		# and some new users might have been added.
 25.1553 +		find /bin /etc /init /sbin /var /dev /lib /root /usr /home >/tmp/list
 25.1554 +
 25.1555 +		for dir in /proc /sys /tmp /mnt /media /media/cdrom /media/flash /media/usbdisk
 25.1556 +		do
 25.1557 +			echo $dir >>/tmp/list
 25.1558 +		done
 25.1559 +
 25.1560 +		# Generate initramfs with specified compression and display rootf
 25.1561 +		# size in realtime.
 25.1562 +		rm -f /tmp/rootfs
 25.1563 +		write_initramfs &
 25.1564 +		sleep 2
 25.1565 +		echo -en "\nFilesystem size:"
 25.1566 +		while [ ! -f /tmp/rootfs ]
 25.1567 +		do
 25.1568 +			sleep 1
 25.1569 +			echo -en "\\033[18G`du -sh /rootfs.gz | awk '{print $1}'`    "
 25.1570 +		done
 25.1571 +		echo -e "\n"
 25.1572 +
 25.1573 +		# Move freshly generated rootfs to the cdrom.
 25.1574 +		mkdir -p $ROOTCD/boot
 25.1575 +		mv -f /rootfs.gz $ROOTCD/boot
 25.1576 +		
 25.1577 +		# Now we need the kernel and isolinux files.
 25.1578 +		if mount /dev/cdrom /media/cdrom 2>/dev/null; then
 25.1579 +			cp /media/cdrom/boot/bzImage $ROOTCD/boot
 25.1580 +			cp -a /media/cdrom/boot/isolinux $ROOTCD/boot
 25.1581 +			umount /media/cdrom
 25.1582 +		else
 25.1583 +			echo -e "
 25.1584 +Unable to mount the cdrom to copy the Kernel and needed files. When SliTaz
 25.1585 +is running in RAM the kernel and bootloader files are keeped on the cdrom.
 25.1586 +Please insert a LiveCD or unmount curent cdrom to let Tazlito handle the media.\n"
 25.1587 +			echo -en "----\nENTER to continue..."; read i
 25.1588 +			exit 1
 25.1589 +		fi
 25.1590 +		
 25.1591 +		# Generate the iso image.
 25.1592 +		cd $DISTRO
 25.1593 +		echo "Generating ISO image..."
 25.1594 +		genisoimage -R -o $ISO_NAME.iso -b boot/isolinux/isolinux.bin \
 25.1595 +		-c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
 25.1596 +		-V "SliTaz" -input-charset iso8859-1 -boot-info-table $ROOTCD
 25.1597 +		if [ -x /usr/bin/isohybrid ]; then
 25.1598 +			echo -n "Creating hybrid ISO..."
 25.1599 +			/usr/bin/isohybrid $ISO_NAME.iso 2> /dev/null
 25.1600 +			status
 25.1601 +		fi
 25.1602 +		echo -n "Creating the ISO md5sum..."
 25.1603 +		md5sum $ISO_NAME.iso > $ISO_NAME.md5
 25.1604 +		status
 25.1605 +
 25.1606 +		echo "==============================================================================="
 25.1607 +		echo "ISO image: `du -sh /home/slitaz/distro/$ISO_NAME.iso`"
 25.1608 +		echo ""
 25.1609 +		echo -n "Exit or burn ISO to cdrom (Exit|burn)? "; read anser
 25.1610 +		case $anser in
 25.1611 +			burn)
 25.1612 +				eject
 25.1613 +				echo -n "Please insert a blank cdrom and press ENTER..."
 25.1614 +				read i && sleep 2
 25.1615 +				tazlito burn-iso /home/slitaz/distro/$ISO_NAME.iso
 25.1616 +				echo -en "----\nENTER to continue..."; read i ;;
 25.1617 +			*)
 25.1618 +				exit 0 ;;
 25.1619 +		esac ;;
 25.1620 +	burn-iso)
 25.1621 +		# Guess cdrom device, ask user and burn the ISO.
 25.1622 +		#
 25.1623 +		check_root
 25.1624 +		DRIVE_NAME=`cat /proc/sys/dev/cdrom/info | grep "drive name" | cut -f 3`
 25.1625 +		DRIVE_SPEED=`cat /proc/sys/dev/cdrom/info | grep "drive speed" | cut -f 3`
 25.1626 +		# We can specify an alternative ISO from the cmdline.
 25.1627 +		if [ -n "$2" ] ; then
 25.1628 +			iso=$2
 25.1629 +		else
 25.1630 +			iso=$DISTRO/$ISO_NAME.iso
 25.1631 +		fi
 25.1632 +		if [ ! -f "$iso" ]; then
 25.1633 +			echo -e "\nUnable to find ISO : $iso\n"
 25.1634 +			exit 0
 25.1635 +		fi
 25.1636 +		echo ""
 25.1637 +		echo -e "\033[1mTazlito burn ISO\033[0m "
 25.1638 +		echo "================================================================================"
 25.1639 +		echo "Cdrom device  : /dev/$DRIVE_NAME"
 25.1640 +		echo "Drive speed   : $DRIVE_SPEED"
 25.1641 +		echo "ISO image     : $iso"
 25.1642 +		echo "================================================================================"
 25.1643 +		echo ""
 25.1644 +		yesorno "Burn ISO image (y/N) ? "
 25.1645 +		if [ "$answer" == "y" ]; then
 25.1646 +			echo ""
 25.1647 +			echo "Starting Wodim to burn the iso..." && sleep 2
 25.1648 +			echo "================================================================================"
 25.1649 +			wodim speed=$DRIVE_SPEED dev=/dev/$DRIVE_NAME $iso
 25.1650 +			echo "================================================================================"
 25.1651 +			echo "ISO image is burned to cdrom."
 25.1652 +		else
 25.1653 +			echo -e "\nExiting. No ISO burned."
 25.1654 +		fi
 25.1655 +		echo ""
 25.1656 +		;;
 25.1657 +	merge)
 25.1658 +		# Merge multiple rootfs into one iso.
 25.1659 +		#
 25.1660 +		if [ -z "$2" ]; then
 25.1661 +			cat << EOT
 25.1662 +Usage: tazlito merge size1 iso size2 rootfs2 [sizeN rootfsN]...
 25.1663 +
 25.1664 +Merge multiple rootfs into one iso. Rootfs are like russian dolls
 25.1665 +i.e: rootfsN is a subset of rootfsN-1
 25.1666 +rootfs1 is found in iso, sizeN is the RAM size need to launch rootfsN.
 25.1667 +The boot loader will select the rootfs according to the RAM size detected.
 25.1668 +
 25.1669 +Example: 
 25.1670 +$ tazlito merge 160M slitaz-core.iso 96M rootfs-justx.gz 32M rootfs-base.gz
 25.1671 +
 25.1672 +Will start slitaz-core with 160M+ RAM, slitaz-justX with 96M-160M RAM,
 25.1673 +slitaz-base with 32M-96M RAM and display an error message if RAM < 32M.
 25.1674 +EOT
 25.1675 +			exit 2
 25.1676 +		fi
 25.1677 +
 25.1678 +		shift	# skip merge
 25.1679 +		append="$1 slitaz1"
 25.1680 +		shift	# skip size1
 25.1681 +		mkdir -p $TMP_DIR/mnt $TMP_DIR/rootfs1
 25.1682 +
 25.1683 +		ISO=$1.merged
 25.1684 +		# Extract filesystems
 25.1685 +		echo -n "Mounting $1"
 25.1686 +		mount -o loop,ro $1 $TMP_DIR/mnt 2> /dev/null
 25.1687 +		status || cleanup_merge
 25.1688 +		cp -a $TMP_DIR/mnt $TMP_DIR/iso
 25.1689 +		rm -f $TMP_DIR/iso/boot/bzImage
 25.1690 +		ln $TMP_DIR/iso/boot/vmlinuz* $TMP_DIR/iso/boot/bzImage
 25.1691 +		umount -d $TMP_DIR/mnt
 25.1692 +		if [ -f $TMP_DIR/iso/boot/rootfs1.gz ]; then
 25.1693 +			echo "$1 is already a merged iso. Aborting."
 25.1694 +			cleanup_merge
 25.1695 +		fi
 25.1696 +		if [ ! -f $TMP_DIR/iso/boot/isolinux/ifmem.c32 ]; then
 25.1697 +			if [ ! -f /boot/isolinux/ifmem.c32 ]; then
 25.1698 +				cat <<EOT
 25.1699 +No file /boot/isolinux/ifmem.c32
 25.1700 +Please install syslinux package !
 25.1701 +EOT
 25.1702 +				rm -rf $TMP_DIR
 25.1703 +				exit 1
 25.1704 +			fi
 25.1705 +			cp /boot/isolinux/ifmem.c32 $TMP_DIR/iso/boot/isolinux
 25.1706 +		fi
 25.1707 +		
 25.1708 +		echo -n "Extracting iso/rootfs.gz"
 25.1709 +		extract_rootfs $TMP_DIR/iso/boot/rootfs.gz $TMP_DIR/rootfs1 &&
 25.1710 +		[ -d $TMP_DIR/rootfs1/etc ]
 25.1711 +		status || cleanup_merge
 25.1712 +		n=1
 25.1713 +		while [ -n "$2" ]; do
 25.1714 +			shift	# skip rootfs N-1
 25.1715 +			p=$n
 25.1716 +			n=$(($n + 1))
 25.1717 +			append="$append $1 slitaz$n"
 25.1718 +			shift	# skip size N
 25.1719 +			mkdir -p $TMP_DIR/rootfs$n
 25.1720 +			echo -n "Extracting $1"
 25.1721 +			extract_rootfs $1 $TMP_DIR/rootfs$n &&
 25.1722 +			[ -d $TMP_DIR/rootfs$n/etc ]
 25.1723 +			status || cleanup_merge
 25.1724 +			mergefs $TMP_DIR/rootfs$n $TMP_DIR/rootfs$p
 25.1725 +			echo "Creating rootfs$p.gz"
 25.1726 +			pack_rootfs $TMP_DIR/rootfs$p $TMP_DIR/iso/boot/rootfs$p.gz
 25.1727 +			status
 25.1728 +		done
 25.1729 +		echo "Creating rootfs$n.gz"
 25.1730 +		pack_rootfs $TMP_DIR/rootfs$n $TMP_DIR/iso/boot/rootfs$n.gz
 25.1731 +		status
 25.1732 +		rm -f $TMP_DIR/iso/boot/rootfs.gz
 25.1733 +		update_bootconfig $TMP_DIR/iso/boot/isolinux "$append"
 25.1734 +		echo "Generating $ISO"
 25.1735 +		create_iso $ISO $TMP_DIR/iso
 25.1736 +		rm -rf $TMP_DIR
 25.1737 +		;;
 25.1738 +
 25.1739 +	repack)
 25.1740 +		# Repack an iso with maximum lzma compression ratio.
 25.1741 +		#
 25.1742 +
 25.1743 +		ISO=$2
 25.1744 +
 25.1745 +		mkdir -p $TMP_DIR/mnt
 25.1746 +		# Extract filesystems
 25.1747 +		echo -n "Mounting $ISO"
 25.1748 +		mount -o loop,ro $ISO $TMP_DIR/mnt 2> /dev/null
 25.1749 +		status || cleanup_merge
 25.1750 +		cp -a $TMP_DIR/mnt $TMP_DIR/iso
 25.1751 +		umount -d $TMP_DIR/mnt
 25.1752 +		
 25.1753 +		for i in $TMP_DIR/iso/boot/rootfs* ; do
 25.1754 +			echo -n "Repacking $(basename $i)"
 25.1755 +			(zcat $i || unlzma -c $i || cat $i) \
 25.1756 +				2>/dev/null > $TMP_DIR/rootfs
 25.1757 +			lzma e $TMP_DIR/rootfs $i \
 25.1758 +				 $(lzma_switches $TMP_DIR/rootfs)
 25.1759 +			status
 25.1760 +		done
 25.1761 +		
 25.1762 +		echo "Generating $ISO"
 25.1763 +		create_iso $ISO $TMP_DIR/iso
 25.1764 +		rm -rf $TMP_DIR ;;
 25.1765 +	
 25.1766 +	frugal-install|-fi)
 25.1767 +		ISO_IMAGE="$2"
 25.1768 +		echo ""
 25.1769 +		mkdir -p /boot/frugal
 25.1770 +		if [ -f "$ISO_IMAGE" ]; then
 25.1771 +			echo -n "Using ISO image: $ISO_IMAGE"
 25.1772 +			mkdir -p /tmp/iso && mount -o loop $ISO_IMAGE /tmp/iso
 25.1773 +			status
 25.1774 +			echo -n "Installing the Kernel and rootfs..."
 25.1775 +			cp -a /tmp/iso/boot/bzImage /boot/frugal
 25.1776 +			cp -a /tmp/iso/boot/rootfs.gz /boot/frugal
 25.1777 +			umount /tmp/iso
 25.1778 +			status
 25.1779 +		else
 25.1780 +			echo -n "Using distro: $DISTRO"
 25.1781 +			cd $DISTRO && status
 25.1782 +			echo -n "Installing the Kernel and rootfs..."
 25.1783 +			cp -a $DISTRO/rootcd/boot/bzImage /boot/frugal
 25.1784 +			cp -a $DISTRO/rootcd/boot/rootfs.gz /boot/frugal
 25.1785 +			status
 25.1786 +		fi
 25.1787 +		# Grub entry
 25.1788 +		if ! grep -q "^kernel /boot/frugal/bzImage" /boot/grub/menu.lst; then
 25.1789 +			echo -n "Configuring GRUB menu list..."
 25.1790 +			cat >> /boot/grub/menu.lst << EOT
 25.1791 +title SliTaz GNU/Linux (frugal)
 25.1792 +root (hd0,0)
 25.1793 +kernel /boot/frugal/bzImage root=/dev/null
 25.1794 +initrd /boot/frugal/rootfs.gz
 25.1795 +EOT
 25.1796 +		else
 25.1797 +			echo -n "GRUB menu list is up-to-date..."
 25.1798 +		fi
 25.1799 +		status
 25.1800 +		echo "" ;;
 25.1801 +	
 25.1802 +	emu-iso)
 25.1803 +		# Emulate an ISO image with Qemu.
 25.1804 +		if [ -n "$2" ] ; then
 25.1805 +			iso=$2
 25.1806 +		else
 25.1807 +			iso=$DISTRO/$ISO_NAME.iso
 25.1808 +		fi
 25.1809 +		if [ ! -f "$iso" ]; then
 25.1810 +			echo -e "\nUnable to find ISO : $iso\n"
 25.1811 +			exit 0
 25.1812 +		fi
 25.1813 +		if [ ! -x "/usr/bin/qemu" ]; then
 25.1814 +			echo -e "\nUnable to find Qemu binary. Please install: qemu\n"
 25.1815 +			exit 0
 25.1816 +		fi
 25.1817 +		echo -e "\nStarting Qemu emulator:\n"
 25.1818 +		echo -e "qemu $QEMU_OPTS $iso\n"
 25.1819 +		qemu $QEMU_OPTS $iso ;;
 25.1820 +
 25.1821 +	usage|*)
 25.1822 +		# Clear and print usage also for all unknown commands.
 25.1823 +		#
 25.1824 +		clear
 25.1825 +		usage ;;
 25.1826 +esac
 25.1827 +
 25.1828 +exit 0
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/core-xfce/rootfs/usr/bin/tazlitobox	Sun Dec 05 17:40:41 2010 +0100
    26.3 @@ -0,0 +1,445 @@
    26.4 +#!/bin/sh
    26.5 +# 
    26.6 +# Gtkdialog box for Tazlito - SliTaz Live Tool.
    26.7 +# Tabs are used for ident ans all action should go into functions to
    26.8 +# separate GUI and commands.
    26.9 +#
   26.10 +# (C) GNU gpl v3 - SliTaz GNU/Linux 2010.
   26.11 +#
   26.12 +VERSION=2.2
   26.13 +
   26.14 +export BIN=$0
   26.15 +
   26.16 +# Check if user is root.
   26.17 +check_root()
   26.18 +{
   26.19 +	if test $(id -u) != 0 ; then
   26.20 +		echo -e "
   26.21 +You must be root to run `basename $0`. Please type 'su' and 
   26.22 +root password to become super-user.\n"
   26.23 +		exit 0
   26.24 +	fi
   26.25 +}
   26.26 +
   26.27 +# We need to parse flavors.list for GTK tree.
   26.28 +list_flavors()
   26.29 +{
   26.30 +	tazlito list-flavors | grep ^[a-z] | while read line
   26.31 +	do		
   26.32 +		info=`echo -n $line | awk '{print $1 " " $2 " " $3}'`
   26.33 +		printinfo=`echo -n $line | awk '{print $1 "|" $2 "|" $3}'`
   26.34 +		echo "$printinfo|`echo $line | sed s/\"$info\"//`"
   26.35 +	done
   26.36 +}
   26.37 +
   26.38 +recharge_list()
   26.39 +{
   26.40 +	xterm -geometry 90x14 \
   26.41 +		-title "list-flavors --recharge" \
   26.42 +		-e "tazlito list-flavors --recharge | grep ^[a-z] && sleep 2"
   26.43 +}
   26.44 +
   26.45 +# When using gen-liveflavor, gen-flavor or gen-distro, user can put some
   26.46 +# addfiles copied into the rootfs.
   26.47 +addfiles_action()
   26.48 +{
   26.49 +	cd /home/slitaz
   26.50 +	mkdir -p distro/addfiles/rootfs/usr/share/images
   26.51 +	mkdir -p distro/addfiles/rootcd
   26.52 +	file-manager distro/addfiles &
   26.53 +}
   26.54 +
   26.55 +writeiso_action()
   26.56 +{
   26.57 +	xterm -geometry 80x16 \
   26.58 +		-title "writeiso" \
   26.59 +		-e "tazlito writeiso $COMPRESSION"
   26.60 +}
   26.61 +
   26.62 +gen_liveflavor_action()
   26.63 +{
   26.64 +	cd /home/slitaz
   26.65 +	sed -i "s/ISO_NAME=.*/ISO_NAME=\"slitaz-$GEN_LIVEFLAVOR_NAME\"/" \
   26.66 +		/etc/tazlito/tazlito.conf
   26.67 +	xterm -geometry 80x16 \
   26.68 +		-title "gen-liveflavor" \
   26.69 +		-e "tazlito gen-liveflavor $GEN_LIVEFLAVOR_NAME && echo -e \"----\nENTER to continue...\" && read close"
   26.70 +}
   26.71 +
   26.72 +clean_distro_action()
   26.73 +{
   26.74 +	cd /home/slitaz
   26.75 +	xterm -geometry 80x16 \
   26.76 +		-title "clean-distro" \
   26.77 +		-e "tazlito clean-distro && sleep 1"
   26.78 +}
   26.79 +
   26.80 +get_flavor_action()
   26.81 +{
   26.82 +	cd /home/slitaz
   26.83 +	xterm -geometry 80x16 \
   26.84 +		-title "get-flavor $COMMUNITY_FLAVOR" \
   26.85 +		-e "tazlito get-flavor $COMMUNITY_FLAVOR && echo -e \"----\nENTER to continue...\" && read close"
   26.86 +}
   26.87 +
   26.88 +gen_distro_action()
   26.89 +{
   26.90 +	cd /home/slitaz
   26.91 +	xterm -geometry 80x16 \
   26.92 +		-title "gen-distro" \
   26.93 +		-e "tazlito gen-distro && echo -e \"----\nENTER to continue...\" && read close"
   26.94 +}
   26.95 +
   26.96 +gen_flavor_action()
   26.97 +{
   26.98 +	cd /home/slitaz
   26.99 +	xterm -geometry 80x16 \
  26.100 +		-title "gen-flavor $GEN_FLAVOR_NAME" \
  26.101 +		-e "tazlito gen-flavor $GEN_FLAVOR_NAME && echo -e \"----\nENTER to continue...\" && read close"
  26.102 +}
  26.103 +
  26.104 +edit_distro_script()
  26.105 +{
  26.106 +	[ ! -f $DISTRO_SCRIPT ] && echo "#!/bin/sh" > $DISTRO_SCRIPT
  26.107 +	chmod +x $DISTRO_SCRIPT
  26.108 +	editor $DISTRO_SCRIPT
  26.109 +}
  26.110 +
  26.111 +# Boxes
  26.112 +
  26.113 +export HELP='
  26.114 +<window title="Tazlito Box - Help" icon-name="media-cdrom">
  26.115 +<vbox>
  26.116 +	<text use-markup="true">
  26.117 +		<label>"
  26.118 +<b>Tazlito Box - Help</b>"
  26.119 +		</label>
  26.120 +	</text>
  26.121 +	
  26.122 +	<frame Overview>
  26.123 +		<text wrap="true" width-chars="52" use-markup="true">
  26.124 +			<label>
  26.125 +"
  26.126 +Tazlito Box is a tiny interface to the SliTaz Live Tool aka Tazlito.
  26.127 +You can simply generate a LiveCD in a few minutes, using your
  26.128 +own flavor or one from the SliTaz community. Tazlito can also 
  26.129 +generate a LiveCD flavor using all of the currently installed 
  26.130 +packages. Tazlito commands are executed in a XTerm, you can 
  26.131 +press ENTER or the mouse to close the window.
  26.132 +"
  26.133 +			</label>
  26.134 +		</text>
  26.135 +	</frame>
  26.136 +	
  26.137 +	<frame Default paths>
  26.138 +		<text wrap="true" width-chars="50" use-markup="true">
  26.139 +			<label>
  26.140 +"
  26.141 +Distro      : /home/slitaz/distro
  26.142 +Flavors    : /home/slitaz/flavors
  26.143 +Packages : /home/slitaz/packages
  26.144 +"
  26.145 +			</label>
  26.146 +		</text>
  26.147 +	</frame>
  26.148 +	
  26.149 +	<hbox>
  26.150 +		<button>
  26.151 +			<input file icon="exit"></input>
  26.152 +			<action type="closewindow">HELP</action>
  26.153 +		</button>
  26.154 +	</hbox>
  26.155 +
  26.156 +</vbox>
  26.157 +</window>
  26.158 +'
  26.159 +
  26.160 +# List all flavors on the mirror.
  26.161 +export LIST_FLAVORS_BOX='
  26.162 +<window title="Community flavors list" icon-name="tazlito">
  26.163 +<vbox>
  26.164 +	<tree>
  26.165 +		<width>500</width><height>200</height>
  26.166 +		<variable>COMMUNITY_FLAVOR</variable>
  26.167 +		<label>Name|ISO|Rootfs|Description</label>
  26.168 +		<input exported_column="0">$BIN list_flavors</input>
  26.169 +	</tree>
  26.170 +	<hbox>
  26.171 +		<button>
  26.172 +			<label>Recharge list</label>
  26.173 +			<input file icon="reload"></input>
  26.174 +			<action>$BIN recharge_list</action>
  26.175 +			<action>refresh:COMMUNITY_FLAVOR</action>
  26.176 +		</button>
  26.177 +		<button>
  26.178 +			<label>Exit</label>
  26.179 +			<input file icon="exit"></input>
  26.180 +			<action type="closewindow">LIST_FLAVORS_BOX</action>
  26.181 +		</button>
  26.182 +	</hbox>
  26.183 +</vbox>
  26.184 +</window>'
  26.185 +
  26.186 +# Execute tazlito commands in a XTerm. Notebook: tab-pos="GTK_POS_LEFT"
  26.187 +export TAZLITO_BOX='
  26.188 +<window title="Tazlito Box" icon-name="media-cdrom">
  26.189 +<vbox>
  26.190 +
  26.191 +	<hbox>
  26.192 +	<text use-markup="true">
  26.193 +		<label>"<b>SliTaz Live Tool</b>"</label>
  26.194 +	</text>
  26.195 +	<pixmap>
  26.196 +		<input file>/usr/share/pixmaps/tazlito.png</input>
  26.197 +	</pixmap>
  26.198 +	</hbox>
  26.199 +
  26.200 +	<notebook labels="Writeiso|Live flavor|Flavors list|Gen flavor|Configuration">
  26.201 +
  26.202 +	<frame Filesystem to ISO>
  26.203 +
  26.204 +	<text wrap="true" width-chars="60" use-markup="true">
  26.205 +		<label>
  26.206 +"
  26.207 +Writeiso will generate an ISO image of the current filesystem as
  26.208 +is, including the /home directory. It is an easy way to remaster a
  26.209 +SliTaz Live system, you just have to: boot, modify, writeiso.
  26.210 +"
  26.211 +		</label>
  26.212 +	</text>
  26.213 +
  26.214 +	<hbox>
  26.215 +		<text use-markup="true">
  26.216 +			<label>"<b>Compression (gzip,lzma,none):</b>"</label>
  26.217 +		</text>
  26.218 +		<entry>
  26.219 +			<default>gzip</default>
  26.220 +			<variable>COMPRESSION</variable>
  26.221 +		</entry>
  26.222 +	</hbox>
  26.223 +
  26.224 +	<hbox>
  26.225 +		<button>
  26.226 +			<label>Writeiso</label>
  26.227 +			<input file icon="forward"></input>
  26.228 +			<action>$BIN writeiso_action</action>
  26.229 +		</button>
  26.230 +	</hbox>
  26.231 +	
  26.232 +	</frame>
  26.233 +	
  26.234 +	<frame Current packages selection>
  26.235 +	
  26.236 +	<text wrap="true" width-chars="60" use-markup="true">
  26.237 +		<label>
  26.238 +"
  26.239 +Gen Live flavor will create a LiveCD based on all the currently
  26.240 +installed packages. To build the rootfs and ISO image it will use
  26.241 +original SliTaz packages. Some addfiles can be copied before
  26.242 +gen distro.
  26.243 +"
  26.244 +		</label>
  26.245 +	</text>
  26.246 +
  26.247 +	<hbox>
  26.248 +		<text use-markup="true">
  26.249 +			<label>"<b>Flavor name :</b>"</label>
  26.250 +		</text>
  26.251 +		<entry>
  26.252 +			<default>slitaz</default>
  26.253 +			<variable>GEN_LIVEFLAVOR_NAME</variable>
  26.254 +		</entry>
  26.255 +	</hbox>
  26.256 +
  26.257 +	<hbox>
  26.258 +		<button>
  26.259 +			<label>Addfiles</label>
  26.260 +			<input file icon="gtk-open"></input>
  26.261 +			<action>$BIN addfiles_action</action>
  26.262 +		</button>
  26.263 +		<button>
  26.264 +			<label>Gen distro</label>
  26.265 +			<input file icon="forward"></input>
  26.266 +			<action>$BIN gen_liveflavor_action</action>
  26.267 +		</button>
  26.268 +		<button>
  26.269 +			<label>Clean distro</label>
  26.270 +			<input file icon="edit-clear"></input>
  26.271 +			<action>$BIN clean_distro_action</action>
  26.272 +		</button>
  26.273 +	</hbox>
  26.274 +
  26.275 +	</frame>
  26.276 +	
  26.277 +	<frame Community and personal flavors>
  26.278 +	
  26.279 +	<text wrap="true" width-chars="60" use-markup="true">
  26.280 +		<label>
  26.281 +"
  26.282 +Get and build preconfigured flavors from the community. Flavors
  26.283 +llist can be recharged from SliTaz mirror. Some addfiles can be
  26.284 +copied before generating the distro.
  26.285 +"
  26.286 +		</label>
  26.287 +	</text>
  26.288 +
  26.289 +	<hbox>
  26.290 +		<text use-markup="true">
  26.291 +			<label>"<b>Flavor :</b>"</label>
  26.292 +		</text>
  26.293 +		<entry>
  26.294 +			<default>core</default>
  26.295 +			<variable>COMMUNITY_FLAVOR</variable>
  26.296 +		</entry>
  26.297 +		<button>
  26.298 +			<label>List flavors</label>
  26.299 +			<input file icon="media-cdrom"></input>
  26.300 +			<action type="launch">LIST_FLAVORS_BOX</action>
  26.301 +		</button>
  26.302 +	</hbox>
  26.303 +
  26.304 +	<hbox>
  26.305 +		<button>
  26.306 +			<label>Get flavor</label>
  26.307 +			<input file icon="forward"></input>
  26.308 +			<action>$BIN get_flavor_action</action>
  26.309 +		</button>
  26.310 +		<button>
  26.311 +			<label>Addfiles</label>
  26.312 +			<input file icon="gtk-open"></input>
  26.313 +			<action>$BIN addfiles_action</action>
  26.314 +		</button>
  26.315 +		<button>
  26.316 +			<label>Gen distro</label>
  26.317 +			<input file icon="forward"></input>
  26.318 +			<action>$BIN gen_distro_action</action>
  26.319 +		</button>
  26.320 +		<button>
  26.321 +			<label>Clean distro</label>
  26.322 +			<input file icon="edit-clear"></input>
  26.323 +			<action>$BIN clean_distro_action</action>
  26.324 +		</button>
  26.325 +	</hbox>
  26.326 +
  26.327 +	</frame>
  26.328 +	<frame Generate a flavor>
  26.329 +
  26.330 +	<text wrap="true" width-chars="60" use-markup="true">
  26.331 +		<label>
  26.332 +"
  26.333 +Gen Flavor will generate a new flavor file based on rootfs in 
  26.334 +/home/slitaz/distro. All addfiles will be included in the flavor file.
  26.335 +"
  26.336 +		</label>
  26.337 +	</text>
  26.338 +
  26.339 +	<hbox>
  26.340 +		<text use-markup="true">
  26.341 +			<label>"<b>New flavor :</b>"</label>
  26.342 +		</text>
  26.343 +		<entry>
  26.344 +			<default>slitaz</default>
  26.345 +			<variable>GEN_FLAVOR_NAME</variable>
  26.346 +		</entry>
  26.347 +	</hbox>
  26.348 +	
  26.349 +	<hbox>
  26.350 +		<button>
  26.351 +			<label>Addfiles</label>
  26.352 +			<input file icon="gtk-open"></input>
  26.353 +			<action>$BIN addfiles_action</action>
  26.354 +		</button>
  26.355 +		<button>
  26.356 +			<label>Gen new flavor</label>
  26.357 +			<input file icon="forward"></input>
  26.358 +			<action>$BIN gen_flavor_action</action>
  26.359 +		</button>
  26.360 +	</hbox>
  26.361 +
  26.362 +	</frame>
  26.363 +	
  26.364 +	<frame Flavor config and packages list>
  26.365 +
  26.366 +	<text wrap="true" width-chars="60" use-markup="true">
  26.367 +		<label>
  26.368 +"
  26.369 +Before editing files you must have a flavor description. Distro
  26.370 +script can be used to perform actions into the rootfs before
  26.371 +compression.
  26.372 +"
  26.373 +		</label>
  26.374 +	</text>
  26.375 +
  26.376 +	<hbox>
  26.377 +		<text use-markup="true">
  26.378 +			<label>"<b>Flavor config :</b>"</label>
  26.379 +		</text>
  26.380 +		<entry>
  26.381 +			<default>/home/slitaz/tazlito.conf</default>
  26.382 +			<variable>CONFIG_FILE</variable>
  26.383 +		</entry>
  26.384 +		<button>
  26.385 +			<input file icon="accessories-text-editor"></input>
  26.386 +			<action>editor $CONFIG_FILE</action>
  26.387 +		</button>
  26.388 +	</hbox>
  26.389 +
  26.390 +	<hbox>
  26.391 +		<text use-markup="true">
  26.392 +			<label>"<b>Packages list :</b>"</label>
  26.393 +		</text>
  26.394 +		<entry>
  26.395 +			<default>/home/slitaz/distro-packages.list</default>
  26.396 +			<variable>PKGS_LIST</variable>
  26.397 +		</entry>
  26.398 +		<button>
  26.399 +			<input file icon="accessories-text-editor"></input>
  26.400 +			<action>editor $PKGS_LIST</action>
  26.401 +		</button>
  26.402 +	</hbox>
  26.403 +
  26.404 +	<hbox>
  26.405 +		<text use-markup="true">
  26.406 +			<label>"<b>Distro script :</b> "</label>
  26.407 +		</text>
  26.408 +		<entry>
  26.409 +			<default>/home/slitaz/distro.sh</default>
  26.410 +			<variable>DISTRO_SCRIPT</variable>
  26.411 +		</entry>
  26.412 +		<button>
  26.413 +			<input file icon="accessories-text-editor"></input>
  26.414 +			<action>$BIN edit_distro_script</action>
  26.415 +		</button>
  26.416 +	</hbox>
  26.417 +
  26.418 +	</frame>
  26.419 +
  26.420 +	</notebook>
  26.421 +
  26.422 +	<hbox>
  26.423 +		<button help>
  26.424 +			<input file icon="help-browser"></input>
  26.425 +			<action type="launch">HELP</action>
  26.426 +		</button>
  26.427 +		<button>
  26.428 +			<label>Exit</label>
  26.429 +			<input file icon="exit"></input>
  26.430 +			<action type="exit">Exit</action>
  26.431 +		</button>
  26.432 +	</hbox>
  26.433 +
  26.434 +</vbox>
  26.435 +</window>
  26.436 +'
  26.437 +
  26.438 +case $1 in
  26.439 +	*_*)
  26.440 +		# Exec all function called by args (must have an underscore).
  26.441 +		$1 ;;
  26.442 +	*)
  26.443 +		# Tazlitobox action.
  26.444 +		check_root
  26.445 +		gtkdialog --center --program=TAZLITO_BOX ;;
  26.446 +esac
  26.447 +
  26.448 +exit 0
    27.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.2 +++ b/core-xfce/rootfs/usr/bin/wifibox	Sun Dec 05 17:40:41 2010 +0100
    27.3 @@ -0,0 +1,634 @@
    27.4 +#!/bin/sh
    27.5 +#
    27.6 +# GTKdialog interface to manage wireless connections in a simple way.
    27.7 +# Use tabs to indent, split commands from the GUI and use functions.
    27.8 +# Favorite networks are also supported
    27.9 +#
   27.10 +# (c) 2010 SliTaz GNU/Linux - GNU gpl v3
   27.11 +#
   27.12 +VERSION=20100118
   27.13 +
   27.14 +# Export script path and others if needed so we can use them in 'quote'.
   27.15 +export BIN=$0
   27.16 +export FAVORITES_WIFI=/etc/wireless
   27.17 +. /etc/network.conf
   27.18 +
   27.19 +# Wifibox is only for root.
   27.20 +if test $(id -u) != 0 ; then
   27.21 +	exec subox wifibox
   27.22 +	exit 0
   27.23 +fi
   27.24 +
   27.25 +# Sanity check
   27.26 +[ -x /usr/sbin/iwconfig ] || tazpkg get-install wireless_tools
   27.27 +[ -d $FAVORITES_WIFI ] || mkdir -p $FAVORITES_WIFI
   27.28 +rm -f $FAVORITES_WIFI/any.conf
   27.29 +
   27.30 +# Catch ESSIDs and format output for GTK tree. We get the list of
   27.31 +# networks by Cell and without spaces.
   27.32 +detect_wifi_networks()
   27.33 +{
   27.34 +	desktopbox notify "Scanning Wireless interface: $WIFI_INTERFACE" &
   27.35 +	if [ -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
   27.36 +		ifconfig $WIFI_INTERFACE up
   27.37 +		for i in `iwlist $WIFI_INTERFACE scan | sed s/"Cell "/Cell-/ | grep "Cell-" | awk '{print $1}'`
   27.38 +		do
   27.39 +			SCAN=`iwlist $WIFI_INTERFACE scan last | \
   27.40 +				awk '/(Cell|ESS|Qual|Encry|IE: WPA)/ {print}' | \
   27.41 +				sed s/"Cell "/Cell-/ | grep -A 5 "$i"`
   27.42 +			ESSID=`echo $SCAN | cut -d '"' -f 2`
   27.43 +			if echo "$SCAN" | grep -q Quality; then
   27.44 +				QUALITY=`echo $SCAN | sed 's/.*Quality=\([^ ]*\).*/\1/' | sed 's/.*Quality:\([^ ]*\).*/\1/'`
   27.45 +			else
   27.46 +				QUALITY="-"
   27.47 +			fi
   27.48 +			ENCRYPTION=`echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/'`
   27.49 +			# Check encryption type
   27.50 +			if echo "$SCAN" | grep -q WPA; then
   27.51 +				ENCRYPTION="${ENCRYPTION} (WPA)"
   27.52 +			fi
   27.53 +			# Connected or not connected...
   27.54 +			if ifconfig | grep -A 1 $WIFI_INTERFACE | \
   27.55 +				grep -q inet && iwconfig $WIFI_INTERFACE | \
   27.56 +				grep ESSID | grep -q -w "$ESSID"; then
   27.57 +				STATUS=connected
   27.58 +			else
   27.59 +				STATUS="-"
   27.60 +			fi
   27.61 +			echo -n ""
   27.62 +			echo "$ESSID | $QUALITY | $ENCRYPTION | $STATUS"
   27.63 +		done
   27.64 +	fi
   27.65 +}
   27.66 +
   27.67 +# cmdline functions
   27.68 +
   27.69 +# Toggle Software RF Switch on some laptops
   27.70 +set_rfswitch()
   27.71 +{
   27.72 +	for i in /proc/driver/acerhk/wirelessled /proc/acpi/asus/wled ; do
   27.73 +		[ -e $i ] && echo $1 > $i
   27.74 +	done
   27.75 +}
   27.76 +
   27.77 +# Configure /etc/network.conf and restart connection with init script.
   27.78 +start_wifi_connection()
   27.79 +{
   27.80 +	# Get tmp config created by connect_to_essid() if exists and set 
   27.81 +	# empty value to clean config file.
   27.82 +	if [ -f /tmp/wifi.conf ]; then
   27.83 +		. /tmp/wifi.conf
   27.84 +		WIFI_MODE=""
   27.85 +		WIFI_IWCONFIG_ARGS=""
   27.86 +		WIFI_CHANNEL=""
   27.87 +	fi
   27.88 +	sed -i "s/`grep ^WIFI= /etc/network.conf`/WIFI=\"yes\"/" \
   27.89 +		/etc/network.conf
   27.90 +	sed -i "s/`grep ^WIFI_INTERFACE= /etc/network.conf`/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" \
   27.91 +		/etc/network.conf
   27.92 +	sed -i "s/`grep ^WIFI_ESSID= /etc/network.conf`/WIFI_ESSID=\"$WIFI_ESSID\"/" \
   27.93 +		/etc/network.conf
   27.94 +	sed -i "s/`grep ^WIFI_KEY= /etc/network.conf`/WIFI_KEY=\"$WIFI_KEY\"/" \
   27.95 +		/etc/network.conf
   27.96 +	sed -i "s/`grep ^WIFI_MODE= /etc/network.conf`/WIFI_MODE=\"$WIFI_MODE\"/" \
   27.97 +		/etc/network.conf
   27.98 +	sed -i "s/`grep ^WIFI_IWCONFIG_ARGS= /etc/network.conf`/WIFI_IWCONFIG_ARGS=\"$WIFI_IWCONFIG_ARGS\"/" \
   27.99 +		/etc/network.conf
  27.100 +	sed -i "s/`grep ^WIFI_KEY_TYPE= /etc/network.conf`/WIFI_KEY_TYPE=\"$WIFI_KEY_TYPE\"/" \
  27.101 +		/etc/network.conf
  27.102 +	sed -i "s/`grep ^WIFI_CHANNEL= /etc/network.conf`/WIFI_CHANNEL=\"$WIFI_CHANNEL\"/" \
  27.103 +		/etc/network.conf	
  27.104 +	[ -s /var/run/udhcpc.$WIFI_INTERFACE.pid ] && kill `cat /var/run/udhcpc.$WIFI_INTERFACE.pid`
  27.105 +	ifconfig $WIFI_INTERFACE down
  27.106 +	set_rfswitch 1 
  27.107 +	iwconfig $WIFI_INTERFACE txpower auto
  27.108 +	/etc/init.d/network.sh restart
  27.109 +	# Remove tmp file (could be used to have wireless profiles)
  27.110 +	rm -f /tmp/wifi.conf
  27.111 +	sleep 2
  27.112 +}
  27.113 +
  27.114 +# We must sleep 4 sec to refresh networks list.
  27.115 +stop_wifi_connexion()
  27.116 +{
  27.117 +	sed -i s/`grep ^WIFI= /etc/network.conf`/WIFI=\"no\"/ \
  27.118 +		/etc/network.conf
  27.119 +	[ -x /etc/init.d/wpa_supplicant ] && /etc/init.d/wpa_supplicant stop
  27.120 +	ifconfig $WIFI_INTERFACE down
  27.121 +	iwconfig $WIFI_INTERFACE txpower off
  27.122 +	set_rfswitch 0 
  27.123 +	[ -s /var/run/udhcpc.$WIFI_INTERFACE.pid ] && kill `cat /var/run/udhcpc.$WIFI_INTERFACE.pid`
  27.124 +	sleep 2
  27.125 +}
  27.126 +
  27.127 +# Favorite wireless networks use only 3 values: essid. key and type of
  27.128 +# key
  27.129 +favorites_wifi_list()
  27.130 +{
  27.131 +	for i in $FAVORITES_WIFI/*.conf
  27.132 +	do
  27.133 +		WIFI_ESSID=""
  27.134 +		WIFI_KEY=""
  27.135 +		WIFI_KEY_TYPE=""
  27.136 +		. "$i"
  27.137 +		[ -z "$WIFI_ESSID" ] && WIFI_ESSID="Bad config file: $i"
  27.138 +		[ -z "$WIFI_KEY_TYPE" ] && WIFI_KEY_TYPE="-"
  27.139 +		if [ -n "$WIFI_KEY" ]; then
  27.140 +			WIFI_KEY="********"
  27.141 +		else
  27.142 +			WIFI_KEY="-"
  27.143 +		fi
  27.144 +		echo "$WIFI_ESSID | $WIFI_KEY_TYPE | $WIFI_KEY"
  27.145 +	done
  27.146 +}
  27.147 +
  27.148 +favorite_wifi_actions()
  27.149 +{
  27.150 +	cp -a $FAVORITES_WIFI/"$FAVORITE".conf /tmp/wifi.conf
  27.151 +	. /tmp/wifi.conf
  27.152 +	export CONNECT_FAVORITE="
  27.153 +<window title=\"Connect to: $WIFI_ESSID\" icon-name=\"network-wireless\">
  27.154 +<vbox>
  27.155 +	
  27.156 +	<text width-chars=\"54\">
  27.157 +		<label>
  27.158 +\"
  27.159 +ESSID name: $WIFI_ESSID
  27.160 +\"
  27.161 +		</label>
  27.162 +	</text>
  27.163 +	
  27.164 +	<hbox>
  27.165 +		<button>
  27.166 +			<label>Connect</label>
  27.167 +			<input file icon=\"forward\"></input>	
  27.168 +			<action>$0 start_wifi_connection</action>
  27.169 +			<action type=\"exit\">exit</action>
  27.170 +		</button>
  27.171 +		<button>
  27.172 +			<label>Edit settings</label>
  27.173 +			<input file icon=\"accessories-text-editor\"></input>	
  27.174 +			<action>leafpad $FAVORITES_WIFI/\"$FAVORITE\".conf</action>
  27.175 +			<action>rm -f /tmp/wifi.conf</action>
  27.176 +			<action type=\"exit\">exit</action>
  27.177 +		</button>
  27.178 +		<button>
  27.179 +			<label>Delete</label>
  27.180 +			<input file icon=\"gtk-delete\"></input>	
  27.181 +			<action>rm -f $FAVORITES_WIFI/\"$FAVORITE\".conf</action>
  27.182 +			<action type=\"exit\">exit</action>
  27.183 +		</button>
  27.184 +		<button cancel></button>
  27.185 +	</hbox>
  27.186 +	
  27.187 +</vbox>
  27.188 +</window>"
  27.189 +	gtkdialog --center --program=CONNECT_FAVORITE >/dev/null
  27.190 +}
  27.191 +
  27.192 +add_favorite_network_box()
  27.193 +{
  27.194 +	ADD_FAVORITE='
  27.195 +<window title="Add new favorite Wireless" icon-name="network-wireless">
  27.196 +<vbox>
  27.197 +	<text width-chars="54">
  27.198 +		<label>
  27.199 +"
  27.200 +Please configure your new favorite Wireless network
  27.201 +"
  27.202 +		</label>
  27.203 +	</text>
  27.204 +	<hbox>
  27.205 +		<text use-markup="true">
  27.206 +			<label>"<b>ESSID:</b>"</label>
  27.207 +		</text>
  27.208 +		<entry>
  27.209 +			<variable>WIFI_ESSID</variable>
  27.210 +		</entry>
  27.211 +	</hbox>
  27.212 +	<hbox>
  27.213 +		<text use-markup="true">
  27.214 +			<label>"<b>Key:   </b>"</label>
  27.215 +		</text>
  27.216 +		<entry>
  27.217 +			<variable>WIFI_KEY</variable>
  27.218 +		</entry>
  27.219 +	</hbox>
  27.220 +	<hbox>
  27.221 +		<text use-markup="true">
  27.222 +			<label>"<b>Key type:</b>"</label>
  27.223 +		</text>
  27.224 +		<combobox>'
  27.225 +	tmp="${ADD_FAVORITE}<item>$WIFI_KEY_TYPE</item>"
  27.226 +	for i in none WEP WPA any; do
  27.227 +		tmp=${tmp}"<item>$i</item>"
  27.228 +	done
  27.229 +	export ADD_FAVORITE=${tmp}'
  27.230 +			<variable>WIFI_KEY_TYPE</variable>
  27.231 +		</combobox>
  27.232 +	</hbox>
  27.233 +	<hbox>
  27.234 +		<button>
  27.235 +			<label>Add to list</label>
  27.236 +			<input file icon="forward"></input>
  27.237 +			<action>echo "# Wireless connection configuration." > $FAVORITES_WIFI/"$WIFI_ESSID".conf</action>
  27.238 +			<action>echo "#" >> /etc/wireless/"$WIFI_ESSID".conf</action>
  27.239 +			<action>echo "WIFI_ESSID=\"$WIFI_ESSID\"" >> $FAVORITES_WIFI/"$WIFI_ESSID".conf</action>
  27.240 +			<action>echo "WIFI_KEY=\"$WIFI_KEY\"" >> $FAVORITES_WIFI/"$WIFI_ESSID".conf</action>
  27.241 +			<action>echo "WIFI_KEY_TYPE=\"$WIFI_KEY_TYPE\"" >> $FAVORITES_WIFI/"$WIFI_ESSID".conf</action>
  27.242 +			<action type="exit">exit</action>
  27.243 +		</button>
  27.244 +		<button cancel></button>
  27.245 +	</hbox>
  27.246 +</vbox>
  27.247 +</window>'
  27.248 +	gtkdialog --center --program=ADD_FAVORITE #>/dev/null
  27.249 +}
  27.250 +
  27.251 +# GUI functions
  27.252 +
  27.253 +helpbutton()
  27.254 +{
  27.255 +	local label;
  27.256 +        label="<label>$3</label>"
  27.257 +	[ -n "$3" ] || label=""
  27.258 +	cat << EOT
  27.259 +<button>
  27.260 +	<input file icon="help"></input>$label
  27.261 +	<action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry $2 -title "$1 help" -e "$(which $1) --help ; echo -e \\"----\\nENTER to continue...\\" && read close"</action>
  27.262 +</button>
  27.263 +EOT
  27.264 +}
  27.265 +
  27.266 +manbutton()
  27.267 +{
  27.268 +	cat << EOT
  27.269 +<button>
  27.270 +	<input file icon="browser"></input>
  27.271 +	<label>man</label>
  27.272 +	<action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry 80x24 -title "$2 man (q to quit)" -e ". /etc/profile; man $1 $2"</action>
  27.273 +</button>
  27.274 +EOT
  27.275 +}
  27.276 +
  27.277 +# Independant dialog to connect on a wireless network. If encryption
  27.278 +# is on we ask for the security key.
  27.279 +connect_to_essid()
  27.280 +{
  27.281 +	SCAN=`iwlist $WIFI_INTERFACE scan | \
  27.282 +		awk '/(Cell|ESS|Qual|Encry|IE: WPA)/ {print}' | \
  27.283 +		grep -B 1 -A 1 "$ESSID_LIST"`
  27.284 +	WIFI_ESSID="$ESSID_LIST"
  27.285 +	ENCRYPTION=`echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/'`
  27.286 +	# Create tmp file used by active_wifi_connexion()
  27.287 +	cat > /tmp/wifi.conf << _EOF_
  27.288 +# Wireless connexion configuration file.
  27.289 +WIFI_ESSID="$ESSID_LIST"
  27.290 +_EOF_
  27.291 +	CONNECT_ESSID="
  27.292 +<window title=\"Connect to: $WIFI_ESSID\" icon-name=\"network-wireless\">
  27.293 +<vbox>
  27.294 +	<text width-chars=\"54\">
  27.295 +		<label>
  27.296 +\"
  27.297 +Connect $WIFI_INTERFACE to: $WIFI_ESSID
  27.298 +\"
  27.299 +		</label>
  27.300 +	</text>"
  27.301 +	# We maybe need a key to connect
  27.302 +	if [ "$ENCRYPTION" = "on" ] && [ "$ESSID_LIST" != "any" ]; then
  27.303 +		# WPA
  27.304 +		if echo "$SCAN" | grep -q WPA; then
  27.305 +			echo 'WIFI_KEY_TYPE="WPA"' >> /tmp/wifi.conf
  27.306 +			CONNECT_ESSID=${CONNECT_ESSID}'
  27.307 +			<hbox>
  27.308 +				<text use-markup="true">
  27.309 +					<label>"<b>WPA Key:</b>"</label>
  27.310 +				</text>
  27.311 +				<entry>
  27.312 +					<input>. /etc/network.conf; echo "$WIFI_KEY"</input>
  27.313 +					<variable>WIFI_KEY</variable>
  27.314 +				</entry>
  27.315 +			</hbox>'
  27.316 +		else
  27.317 +			# WEP
  27.318 +			echo 'WIFI_KEY_TYPE="WEP"' >> /tmp/wifi.conf
  27.319 +			CONNECT_ESSID=${CONNECT_ESSID}'
  27.320 +			<hbox>
  27.321 +				<text use-markup="true">
  27.322 +					<label>"<b>WEP Key:</b>"</label>
  27.323 +				</text>
  27.324 +				<entry>
  27.325 +					<input>. /etc/network.conf; echo "$WIFI_KEY"</input>
  27.326 +					<variable>WIFI_KEY</variable>
  27.327 +				</entry>
  27.328 +			</hbox>'
  27.329 +		fi
  27.330 +	else
  27.331 +		# No encryption
  27.332 +		echo 'WIFI_KEY=""' >> /tmp/wifi.conf
  27.333 +		echo 'WIFI_KEY_TYPE=""' >> /tmp/wifi.conf
  27.334 +		start_wifi_connection
  27.335 +		exit 0
  27.336 +	fi
  27.337 +	# Add key to config file so active_wifi_connexion() can use it.
  27.338 +	# WIFI_KEY is not exported if we quote with --> "
  27.339 +	export CONNECT_ESSID=${CONNECT_ESSID}'
  27.340 +	<hbox>
  27.341 +		<button>
  27.342 +			<label>Connect</label>
  27.343 +			<input file icon="forward"></input>	
  27.344 +			<action>echo "WIFI_KEY=\"$WIFI_KEY\"" >> /tmp/wifi.conf</action>
  27.345 +			<action>$BIN start_wifi_connection</action>
  27.346 +			<action type="exit">exit</action>
  27.347 +		</button>
  27.348 +		<button cancel></button>
  27.349 +	</hbox>
  27.350 +</vbox>
  27.351 +</window>'
  27.352 +	gtkdialog --center --program=CONNECT_ESSID #>/dev/null
  27.353 +}
  27.354 +
  27.355 +# Wifibox start with Networks tab.
  27.356 +box()
  27.357 +{
  27.358 +	WIFI_DIALOG="
  27.359 +<window title=\"Wireless manager\" icon-name=\"network-wireless\">
  27.360 +<vbox>
  27.361 +	
  27.362 +	<notebook labels=\"Networks|Favorites|Configuration|Drivers\">
  27.363 +	
  27.364 +	<vbox>
  27.365 +		<tree icon=\"network-wireless\">
  27.366 +			<width>520</width><height>160</height>
  27.367 +			<variable>ESSID_LIST</variable>
  27.368 +			<label>ESSID|Quality|Encryption|Status</label>
  27.369 +			<input>$0 detect_wifi_networks</input>
  27.370 +			<item icon=\"network-wireless\">any | * | off | (auto-connect)</item>
  27.371 +			<action>$0 connect_to_essid</action>
  27.372 +			<action>refresh:ESSID_LIST</action>
  27.373 +			<action>refresh:WIFI_ESSID</action>
  27.374 +			<action>refresh:WIFI_KEY</action>
  27.375 +			<action>refresh:WIFI_KEY_TYPE</action>
  27.376 +		</tree>
  27.377 +		<hbox>
  27.378 +			<text width-chars=\"54\">
  27.379 +				<label>
  27.380 +\"Please double click on a network to connect or enter security key\"
  27.381 +				</label>
  27.382 +			</text>
  27.383 +			<button>
  27.384 +				<label>Refresh list</label>
  27.385 +				<input file icon=\"reload\"></input>
  27.386 +				<action>refresh:ESSID_LIST</action>
  27.387 +			</button>
  27.388 +		</hbox>
  27.389 +	</vbox>"
  27.390 +	
  27.391 +	# Favorite networks
  27.392 +	WIFI_DIALOG=${WIFI_DIALOG}"	
  27.393 +	<vbox>
  27.394 +		<tree icon=\"network-wireless\">
  27.395 +			<width>500</width><height>160</height>
  27.396 +			<variable>FAVORITE</variable>
  27.397 +			<label>ESSID|Key Type|Key status</label>
  27.398 +			<input>$0 favorites_wifi_list</input>
  27.399 +			<item icon=\"network-wireless\">any | - | -</item>
  27.400 +			<action>$0 favorite_wifi_actions</action>
  27.401 +			<action>refresh:FAVORITE</action>
  27.402 +			<action>refresh:ESSID_LIST</action>
  27.403 +			<action>refresh:WIFI_ESSID</action>
  27.404 +			<action>refresh:WIFI_KEY</action>
  27.405 +			<action>refresh:WIFI_KEY_TYPE</action>
  27.406 +		</tree>
  27.407 +		<hbox>
  27.408 +			<text width-chars=\"50\">
  27.409 +				<label>
  27.410 +\"Please double click on a network to modify or remove it\"
  27.411 +				</label>
  27.412 +			</text>
  27.413 +			<button>
  27.414 +				<label>Add Network</label>
  27.415 +				<input file icon=\"gtk-add\"></input>
  27.416 +				<action>$0 add_favorite_network_box</action>
  27.417 +				<action>refresh:FAVORITE</action>
  27.418 +			</button>
  27.419 +		</hbox>
  27.420 +	</vbox>"
  27.421 +
  27.422 +	# Configuration tab
  27.423 +	WIFI_DIALOG=${WIFI_DIALOG}'
  27.424 +	<vbox>
  27.425 +		<frame Basic>
  27.426 +			<hbox>
  27.427 +				<text use-markup="true">
  27.428 +					<label>"<b>Interface:</b>"</label>
  27.429 +				</text>
  27.430 +				<entry>
  27.431 +					<input>. /etc/network.conf; echo "$WIFI_INTERFACE"</input>
  27.432 +					<variable>WIFI_INTERFACE</variable>
  27.433 +				</entry>
  27.434 +			</hbox>
  27.435 +			<hbox>
  27.436 +				<text use-markup="true">
  27.437 +					<label>"<b>ESSID:        </b>"</label>
  27.438 +				</text>
  27.439 +				<entry>
  27.440 +					<input>. /etc/network.conf; echo "$WIFI_ESSID"</input>
  27.441 +					<variable>WIFI_ESSID</variable>
  27.442 +				</entry>
  27.443 +			</hbox>
  27.444 +			<hbox>
  27.445 +				<text use-markup="true">
  27.446 +					<label>"<b>Key:           </b>"</label>
  27.447 +				</text>
  27.448 +				<entry>
  27.449 +					<input>. /etc/network.conf; echo "$WIFI_KEY"</input>
  27.450 +					<variable>WIFI_KEY</variable>
  27.451 +				</entry>
  27.452 +				<combobox>'
  27.453 +	tmp2="${WIFI_DIALOG}<item>$WIFI_KEY_TYPE</item>"
  27.454 +	for i in none WEP WPA any; do
  27.455 +		[ "$i" = "$WIFI_KEY_TYPE" ] || tmp2="$tmp2<item>$i</item>"
  27.456 +	done
  27.457 +	tmp3='		<variable>WIFI_KEY_TYPE</variable>
  27.458 +				</combobox>
  27.459 +			</hbox>
  27.460 +		</frame>
  27.461 +		<frame Advanced>
  27.462 +			<hbox>
  27.463 +				<text use-markup="true">
  27.464 +					<label>"<b>Channel/Mode:</b>"</label>
  27.465 +				</text>
  27.466 +				<entry>
  27.467 +					<input>. /etc/network.conf; echo "$WIFI_CHANNEL"</input>
  27.468 +					<variable>WIFI_CHANNEL</variable>
  27.469 +				</entry>
  27.470 +				
  27.471 +				<combobox>
  27.472 +					<variable>WIFI_MODE</variable>'
  27.473 +	tmp2="$tmp2$tmp3<item>$WIFI_MODE</item>"
  27.474 +	for i in managed ad-hoc master repeater secondary monitor; do
  27.475 +		[ "$i" = "$WIFI_MODE" ] || tmp2="$tmp2<item>$i</item>"
  27.476 +	done
  27.477 +	tmp3='		</combobox>
  27.478 +			</hbox>
  27.479 +			<hbox>
  27.480 +				<text use-markup="true">
  27.481 +					<label>"<b>Iwconfig args:</b> "</label>
  27.482 +				</text>
  27.483 +				<entry>
  27.484 +					<input>. /etc/network.conf; echo "$WIFI_IWCONFIG_ARGS"</input>
  27.485 +					<variable>WIFI_IWCONFIG_ARGS</variable>
  27.486 +				</entry>'
  27.487 +	WIFI_DIALOG="$tmp$tmp2$tmp3
  27.488 +	$(helpbutton iwconfig 80x24)
  27.489 +	$(manbutton 8 iwconfig)
  27.490 +			</hbox>
  27.491 +		</frame>"
  27.492 +		
  27.493 +	# Start Button for manual configuration.
  27.494 +	WIFI_DIALOG=${WIFI_DIALOG}'
  27.495 +		<hbox>
  27.496 +			<button>
  27.497 +				<label>Start connection</label>
  27.498 +				<input file icon="forward"></input>
  27.499 +				<action>[ "$WIFI_KEY_TYPE" = "WPA" -a ! -x /usr/bin/wpa_supplicant ] && xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry 80x17 -title "wpa_supplicant install" -e "tazpkg get-install wpa_supplicant ; echo -e \"----\n\nENTER to continue...\" && read close"</action>
  27.500 +				<action>sed -i s/`grep ^WIFI= /etc/network.conf`/WIFI=\"yes\"/ /etc/network.conf</action>
  27.501 +				<action>sed -i s/`grep ^WIFI_INTERFACE= /etc/network.conf`/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/ /etc/network.conf</action>
  27.502 +				<action>sed -i s/`grep ^WIFI_ESSID= /etc/network.conf`/WIFI_ESSID=\"$WIFI_ESSID\"/ /etc/network.conf</action>
  27.503 +				<action>sed -i s/`grep ^WIFI_KEY= /etc/network.conf`/WIFI_KEY=\"$WIFI_KEY\"/ /etc/network.conf</action>
  27.504 +				<action>sed -i s/`grep ^WIFI_MODE= /etc/network.conf`/WIFI_MODE=\"$WIFI_MODE\"/ /etc/network.conf</action>
  27.505 +				<action>sed -i "s/`grep ^WIFI_IWCONFIG_ARGS= /etc/network.conf`/WIFI_IWCONFIG_ARGS=\"$WIFI_IWCONFIG_ARGS\"/" /etc/network.conf</action>
  27.506 +				<action>sed -i s/`grep ^WIFI_KEY_TYPE= /etc/network.conf`/WIFI_KEY_TYPE=\"$WIFI_KEY_TYPE\"/ /etc/network.conf</action>
  27.507 +				<action>sed -i s/`grep ^WIFI_CHANNEL= /etc/network.conf`/WIFI_CHANNEL=\"$WIFI_CHANNEL\"/ /etc/network.conf</action>
  27.508 +				<action>[ -s /var/run/udhcpc.$WIFI_INTERFACE.pid ] && kill `cat /var/run/udhcpc.$WIFI_INTERFACE.pid`</action>
  27.509 +				<action>ifconfig $WIFI_INTERFACE down</action>
  27.510 +				<action>iwconfig $WIFI_INTERFACE txpower auto</action>
  27.511 +				<action>/etc/init.d/network.sh restart</action>
  27.512 +				<action>refresh:ESSID_LIST</action>
  27.513 +				<action>refresh:WIFI_ESSID</action>
  27.514 +				<action>refresh:WIFI_KEY</action>
  27.515 +				<action>refresh:WIFI_KEY_TYPE</action>
  27.516 +			</button>
  27.517 +		</hbox>
  27.518 +	</vbox>'
  27.519 +
  27.520 +	# Kernel Modules, firmware and tazndisbox note + button.
  27.521 +	WIFI_DIALOG=${WIFI_DIALOG}"
  27.522 +	<vbox>
  27.523 +		<hbox>
  27.524 +			<text width-chars=\"64\">
  27.525 +				<label>
  27.526 +\"
  27.527 +Some Wireless Adapters need non-free firmware. Please install the
  27.528 +firmware before loading the corresponding module. Note: you can use 
  27.529 +Tazhw to automatically detect your PCI, PCMCIA or USB Wireless adapter.
  27.530 +\"
  27.531 +				</label>
  27.532 +			</text>
  27.533 +		</hbox>
  27.534 +		<hbox>
  27.535 +			<text use-markup=\"true\">
  27.536 +				<label>\"<b>Tools:</b>\"</label>
  27.537 +			</text>
  27.538 +			<button>
  27.539 +				<input file icon=\"computer\"></input>
  27.540 +				<label>Auto detect devices</label>
  27.541 +				<action>tazhw box</action>
  27.542 +				<action>refresh:ESSID_LIST</action>
  27.543 +			</button>"
  27.544 +			# Display firmware stuff, tazndisbox button if installed and close 
  27.545 +			# tab + notebook
  27.546 +			if [ -x /usr/bin/tazndisbox ]; then
  27.547 +				WIFI_DIALOG=${WIFI_DIALOG}"
  27.548 +			<button>
  27.549 +				<input file icon=\"system-installer\"></input>
  27.550 +				<label>Install Windows driver</label>
  27.551 +				<action>tazndisbox</action>
  27.552 +				<action>refresh:ESSID_LIST</action>
  27.553 +			</button>"
  27.554 +			fi
  27.555 +		WIFI_DIALOG=${WIFI_DIALOG}"
  27.556 +		</hbox>
  27.557 +		<hbox>
  27.558 +			<text use-markup=\"true\">
  27.559 +				<label>\"<b>Module:</b>\"</label>
  27.560 +			</text>
  27.561 +			<combobox>
  27.562 +				<variable>MODULE</variable>"
  27.563 +	WIFI_DIALOG="${WIFI_DIALOG}$(find /lib/modules/$(uname -r)/kernel/drivers/net/wireless -type f 2> /dev/null |  sed 's,/.*/\(.*\).ko.*,<item>\1</item>,')"
  27.564 +	WIFI_DIALOG=${WIFI_DIALOG}'
  27.565 +			</combobox>
  27.566 +			<button>
  27.567 +				<label>Load</label>
  27.568 +				<input file icon="forward"></input>
  27.569 +				<action>modprobe $MODULE</action>
  27.570 +			</button>
  27.571 +			<button>
  27.572 +				<label>Unload</label>
  27.573 +				<input file icon="undo"></input>
  27.574 +				<action>modprobe -r $MODULE</action>
  27.575 +			</button>
  27.576 +			<button>
  27.577 +				<label>Lsmod</label>
  27.578 +				<input file icon="computer"></input>
  27.579 +				<action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry 80x25 -title "Modules (q to quit)" -e "lsmod | less"</action>
  27.580 +			</button>
  27.581 +		</hbox>'
  27.582 +	# Firmware stuff.
  27.583 +	tmp=$(for i in /usr/bin/get*firmware; do
  27.584 +		[ -x $i ] || continue
  27.585 +		[ "$i" = "/usr/bin/get-wifi-firmware" ] && continue
  27.586 +		[ -d /var/lib/tazpkg/installed/${i#/usr/bin/get-} ] && continue
  27.587 +		echo "<item>${i#/usr/bin/get-}</item>"; done)
  27.588 +		[ -n "$tmp" ] && tmp="
  27.589 +		<hbox>
  27.590 +			<text use-markup=\"true\">
  27.591 +				<label>\"<b>Firmware:</b>\"</label>
  27.592 +			</text>
  27.593 +			<combobox><variable>FIRMWARE</variable>$tmp</combobox>
  27.594 +			<button>
  27.595 +				<label>Install</label>
  27.596 +				<input file icon=\"go-jump\"></input>
  27.597 +				<action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry 80x25 -title \"Install \$FIRMWARE\" -e \"get-\$FIRMWARE\"</action>
  27.598 +				<action>refresh:ESSID_LIST</action>
  27.599 +			</button>
  27.600 +			<button>
  27.601 +				<input file icon=\"system-file-manager\"></input>
  27.602 +				<label>List files</label>
  27.603 +				<action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry 100x25 -title \"Firmware files (q to quit)\" -e \"find /lib/firmware -exec ls -ld {} \; | less\"</action>
  27.604 +				<action>refresh:ESSID_LIST</action>
  27.605 +			</button>
  27.606 +		</hbox>"
  27.607 +
  27.608 +# Bottom buttons
  27.609 +export WIFI_DIALOG=${WIFI_DIALOG}${tmp}"
  27.610 +		</vbox>
  27.611 +	</notebook>
  27.612 +	<hbox>
  27.613 +		<button>
  27.614 +			<label>Stop connection</label>
  27.615 +			<input file icon=\"stop\"></input>
  27.616 +			<action>$0 stop_wifi_connexion</action>
  27.617 +			<action>refresh:ESSID_LIST</action>
  27.618 +		</button>
  27.619 +		<button>
  27.620 +			<label>Exit</label>
  27.621 +			<input file icon=\"exit\"></input>
  27.622 +			<action type=\"exit\">Exit</action>
  27.623 +		</button>
  27.624 +	</hbox>
  27.625 +	
  27.626 +</vbox>
  27.627 +</window>"
  27.628 +	gtkdialog --center --program=WIFI_DIALOG #>/dev/null 2>&1
  27.629 +}
  27.630 +
  27.631 +if [ -n "$1" ]; then
  27.632 +	$1
  27.633 +else
  27.634 +	box
  27.635 +fi
  27.636 +
  27.637 +exit 0
    28.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.2 +++ b/core-xfce/rootfs/usr/share/applications/burnbox-doc.desktop	Sun Dec 05 17:40:41 2010 +0100
    28.3 @@ -0,0 +1,8 @@
    28.4 +[Desktop Entry]
    28.5 +Encoding=UTF-8
    28.6 +Name=Burnbox manual
    28.7 +Name[pt]=Manual do Burnbox
    28.8 +Exec=browser file:///usr/share/doc/slitaz-tools/burnbox.html
    28.9 +Icon=text-html
   28.10 +Type=Application
   28.11 +Categories=Documentation;
    29.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.2 +++ b/core-xfce/rootfs/usr/share/applications/gpl-license.desktop	Sun Dec 05 17:40:41 2010 +0100
    29.3 @@ -0,0 +1,8 @@
    29.4 +[Desktop Entry]
    29.5 +Encoding=UTF-8
    29.6 +Name=GNU General Public License
    29.7 +Name[pt]=Licença PuÌblica Geral GNU
    29.8 +Exec=browser file:///usr/share/licenses/gpl.txt
    29.9 +Icon=text-x-generic
   29.10 +Type=Application
   29.11 +Categories=Documentation;
    30.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.2 +++ b/core-xfce/rootfs/usr/share/applications/system-doc.desktop	Sun Dec 05 17:40:41 2010 +0100
    30.3 @@ -0,0 +1,8 @@
    30.4 +[Desktop Entry]
    30.5 +Name=System Doc
    30.6 +Name[fr]=Doc du système
    30.7 +Name[pt]=Documentação do Sistema
    30.8 +Exec=browser file:///usr/share/doc/slitaz/index.html
    30.9 +Icon=slitaz-doc.png
   30.10 +Type=Application
   30.11 +Categories=Documentation;
    31.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.2 +++ b/core-xfce/rootfs/usr/share/applications/tazlito-doc.desktop	Sun Dec 05 17:40:41 2010 +0100
    31.3 @@ -0,0 +1,9 @@
    31.4 +[Desktop Entry]
    31.5 +Name=Tazlito manual
    31.6 +Name[fr]=Manuel de Tazlito
    31.7 +Comment=SliTaz LiveCD generator and editor
    31.8 +Comment[fr]=Manuel de l'outil de geÌneÌration et eÌdition de LiveCD
    31.9 +Exec=browser file:///usr/share/doc/tazlito/tazlito.html
   31.10 +Icon=text-html
   31.11 +Type=Application
   31.12 +Categories=Documentation;
    32.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.2 +++ b/core-xfce/rootfs/usr/share/applications/tazlitobox.desktop	Sun Dec 05 17:40:41 2010 +0100
    32.3 @@ -0,0 +1,8 @@
    32.4 +[Desktop Entry]
    32.5 +Encoding=UTF-8
    32.6 +Name=Create a LiveCD
    32.7 +Name[fr]=Créer un LiveCD
    32.8 +Exec=subox tazlitobox
    32.9 +Icon=tazlito
   32.10 +Type=Application
   32.11 +Categories=System;
    33.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.2 +++ b/core-xfce/rootfs/usr/share/applications/tazpkg-doc.desktop	Sun Dec 05 17:40:41 2010 +0100
    33.3 @@ -0,0 +1,9 @@
    33.4 +[Desktop Entry]
    33.5 +Name=Tazpkg manual
    33.6 +Name[fr]=Manuel de Tazpkg
    33.7 +Comment=SliTaz packages manager manual
    33.8 +Comment[fr]=Manuel du gestionnaire de paquets SliTaz
    33.9 +Exec=browser file:///usr/share/doc/tazpkg/tazpkg.html
   33.10 +Icon=text-html
   33.11 +Type=Application
   33.12 +Categories=Documentation;
    34.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.2 +++ b/core-xfce/rootfs/usr/share/doc/slitaz/book.css	Sun Dec 05 17:40:41 2010 +0100
    34.3 @@ -0,0 +1,195 @@
    34.4 +/* 
    34.5 +	CSS style for SliTaz GNU/Linux *book.
    34.6 +	Pankso 2007 - www.slitaz.org
    34.7 +*/
    34.8 +
    34.9 +html {
   34.10 +	height:  102%;
   34.11 +}
   34.12 +
   34.13 +body {
   34.14 +	font: 13px sans-serif, vernada, arial;
   34.15 +	background: #ffffff;
   34.16 +	color: black;
   34.17 +	margin: 0;
   34.18 +}
   34.19 +
   34.20 +#header {
   34.21 +	background: #f0ba08 url(images/css/header.png) repeat-x top;
   34.22 +	color: black;
   34.23 +	height: 50px;
   34.24 +	border-top: 1px solid black;
   34.25 +	border-bottom: 1px solid black;
   34.26 +}
   34.27 +
   34.28 +#header h1 {
   34.29 +	padding: 10px;
   34.30 +}
   34.31 +
   34.32 +#quicknav {
   34.33 +	text-align: right;
   34.34 +	font-size: 12px;
   34.35 +	color: #666666;
   34.36 +	background-color: #eaeaea;
   34.37 +	padding: 4px 2px;
   34.38 +	font-weight: bold;
   34.39 +}
   34.40 +
   34.41 +#quicknav a {
   34.42 +	color: #0F314E;
   34.43 +	background: inherit;
   34.44 +	text-decoration: none;
   34.45 +	padding: 0px 2px;
   34.46 +}
   34.47 +
   34.48 +#quicknav a:hover {
   34.49 +	color: #DF8F06;
   34.50 +	text-decoration: none;
   34.51 +}
   34.52 +
   34.53 +/*  content. */
   34.54 +
   34.55 +#content {
   34.56 +	padding: 20px;
   34.57 +	margin: 0px 50px 0px 50px;
   34.58 +	width: auto;
   34.59 +	text-align: justify;
   34.60 +}
   34.61 +
   34.62 +#content li {
   34.63 +	line-height: 1.5em;
   34.64 +	text-align: left;
   34.65 +}
   34.66 +
   34.67 +/*  Footer. */
   34.68 +
   34.69 +#footer {
   34.70 +	font-size: 11px;
   34.71 +	color: black;
   34.72 +	height: 20px;
   34.73 +	padding: 0px 0px 0px 10px;
   34.74 +	margin: 0px;
   34.75 +	width: auto;
   34.76 +	text-align: center ;
   34.77 +}
   34.78 +
   34.79 +#footer a {
   34.80 +	background: #ffffff;
   34.81 +	color: #0F314E;
   34.82 +}
   34.83 +
   34.84 +#footer a:hover {
   34.85 +	background: #ffffff;
   34.86 +	color: blue;
   34.87 +}
   34.88 +
   34.89 +/* Legal informations */
   34.90 +
   34.91 +#copy {
   34.92 +	font-size: 11px ;
   34.93 +	text-align: center ;
   34.94 +	background: transparent;
   34.95 +	color: #a8a8a8;
   34.96 +	padding-top: 10px;
   34.97 +}
   34.98 +
   34.99 +#copy a {
  34.100 +	background: inherit;
  34.101 +	color: #a8a8a8;
  34.102 +}
  34.103 +
  34.104 +#copy a:hover {
  34.105 +	background: inherit;
  34.106 +	color: blue;
  34.107 +}
  34.108 +
  34.109 +/* Clouds */
  34.110 +
  34.111 +#cloud {
  34.112 +	padding: 10px 120px 10px 120px;
  34.113 +	line-height: 3em;
  34.114 +	text-align: center;
  34.115 +}
  34.116 +#cloud a { padding: 4px; color: #956411; }
  34.117 +#cloud a.tag1 { font-size: 0.7em; font-weight: 100; }
  34.118 +#cloud a.tag2 { font-size: 0.8em; font-weight: 200; }
  34.119 +#cloud a.tag3 { font-size: 0.9em; font-weight: 300; }
  34.120 +#cloud a.tag4 { font-size: 1.0em; font-weight: 400; }
  34.121 +#cloud a.tag5 { font-size: 1.2em; font-weight: 500; }
  34.122 +#cloud a.tag6 { font-size: 1.4em; font-weight: 600; }
  34.123 +#cloud a.tag7 { font-size: 1.6em; font-weight: 700; }
  34.124 +#cloud a.tag8 { font-size: 1.8em; font-weight: 800; }
  34.125 +#cloud a.tag9 { font-size: 2.2em; font-weight: 900; }
  34.126 +#cloud a.tag10 { font-size: 2.5em; font-weight: 900; }
  34.127 +
  34.128 +/* Div for round corners. */
  34.129 +
  34.130 +.content-right, .footer-right {
  34.131 +	width: 16px;
  34.132 +	color: white;
  34.133 +	background-color: #333333;
  34.134 +}
  34.135 +.content-right {
  34.136 +	background: url(images/css/content-tr.png) no-repeat top right;
  34.137 +	height: 16px;
  34.138 +	right: 50px;
  34.139 +	top: 82px;
  34.140 +	position: absolute;
  34.141 +}
  34.142 +
  34.143 +.footer-right {
  34.144 +	background: url(images/css/footer-br.png) no-repeat bottom right;
  34.145 +	height: 20px;
  34.146 +	float: right;
  34.147 +}
  34.148 +
  34.149 +/* General HTML entities for  content. */
  34.150 +
  34.151 +h1 {
  34.152 +	margin: 0px 0px 0px 16px;
  34.153 +}
  34.154 +
  34.155 +h2 {
  34.156 +	margin: 12px 0;
  34.157 +	color: #484B7C;
  34.158 +	background: white;
  34.159 +}
  34.160 +
  34.161 +h3 {
  34.162 +	font-weight: bold;
  34.163 +	color: #6c0023;
  34.164 +	background: white;
  34.165 +}
  34.166 +
  34.167 +a {
  34.168 +	text-decoration: underline;
  34.169 +}
  34.170 +a:hover {
  34.171 +	text-decoration: none;
  34.172 +}
  34.173 +
  34.174 +pre {
  34.175 +	padding: 5px;
  34.176 +	color: black;
  34.177 +	background: #e1e0b0;
  34.178 +}
  34.179 +pre.script {
  34.180 +	padding: 10px;
  34.181 +	color: black;
  34.182 +	background: #e8e8e8;
  34.183 +	border: 1px inset #333333;
  34.184 +}
  34.185 +
  34.186 +code {
  34.187 +	font-size: 12px;
  34.188 +	color: #669900;
  34.189 +	background: transparent;
  34.190 +}
  34.191 +
  34.192 +li {
  34.193 +	line-height: 1.4em;
  34.194 +}
  34.195 +
  34.196 +hr {
  34.197 +	border: 0pt none;
  34.198 +}
    35.1 Binary file core-xfce/rootfs/usr/share/doc/slitaz/favicon.ico has changed
    36.1 Binary file core-xfce/rootfs/usr/share/doc/slitaz/images/css/header.png has changed
    37.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    37.2 +++ b/core-xfce/rootfs/usr/share/doc/slitaz/index.de.html	Sun Dec 05 17:40:41 2010 +0100
    37.3 @@ -0,0 +1,67 @@
    37.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    37.5 +	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    37.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
    37.7 +<head>
    37.8 +	<title>SliTaz - System doc (de)</title>
    37.9 +	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
   37.10 +	<meta name="description" content="slitaz doc system releases notes information cooking" />
   37.11 +	<meta name="expires" content="never" />
   37.12 +	<meta name="modified" content="2009-04-16 10:30:00" />
   37.13 +	<meta name="publisher" content="www.slitaz.org" />
   37.14 +	<meta name="author" content="Christophe Lincoln"/>
   37.15 +	<link rel="shortcut icon" href="favicon.ico" />
   37.16 +	<link rel="stylesheet" type="text/css" href="book.css" />
   37.17 +</head>
   37.18 +<body bgcolor="#ffffff">
   37.19 +
   37.20 +<!-- Header and quick navigation -->
   37.21 +<div id="header">
   37.22 +<h1><font color="#3E1220">SliTaz - System doc</font></h1>
   37.23 +</div>
   37.24 +
   37.25 +<div id="quicknav">
   37.26 +	SliTaz:
   37.27 +	<a href="http://www.slitaz.org/">Website</a>
   37.28 +	<a href="http://forum.slitaz.org/">Forum</a>
   37.29 +	<a href="http://wiki.slitaz.org/">Wiki</a>
   37.30 +	<a href="http://labs.slitaz.org/">Labs</a>
   37.31 +</div>
   37.32 +
   37.33 +<!-- Content. -->
   37.34 +<div id="content">
   37.35 +
   37.36 +<h2><font color="#DF8F06">Documentation (de)</font></h2>
   37.37 +
   37.38 +<p>
   37.39 +SliTaz GNU/Linux stable Release wird mit den Dokumentationen für die 
   37.40 +SliTaz-Werkzeuge und den deutschen Release Notes veröffentlicht. Dokumentation
   37.41 +und diese Seite sind über das Openboxenü erreichbar. Bitte konsultieren Sie 
   37.42 +ebenfalls die <a href="http://www.slitaz.org/de/">Deutsche Projektseite</a> 
   37.43 +für allgemeine Informationen über SliTaz. Für die Benutzung des Systems lesen
   37.44 +Sie bitte das deutsche Handbuch. das Teil des 
   37.45 +<a href="http://wiki.slitaz.org/">SliTaz Wiki</a> ist.
   37.46 +</p>
   37.47 +
   37.48 +<!-- End of content -->
   37.49 +</div>
   37.50 +
   37.51 +<!-- Footer. -->
   37.52 +<div id="footer">
   37.53 +	<a href="#top">Top of the page</a> - Languages:
   37.54 +	<a href="index.de.html">de</a> |
   37.55 +	<a href="index.en.html">en</a> |
   37.56 +	<a href="index.fr.html">fr</a> |
   37.57 +	<a href="index.hu.html">hu</a> |
   37.58 +	<a href="index.pt.html">pt</a>
   37.59 +</div>
   37.60 +
   37.61 +<div id="copy">
   37.62 +	Copyright &copy; 2010 <a href="http://www.slitaz.org/">SliTaz</a> -
   37.63 +	<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
   37.64 +	Documentation uder
   37.65 +	<a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
   37.66 +	and valid <a href="http://validator.w3.org/">xHTML 1.0</a>.
   37.67 +</div>
   37.68 +
   37.69 +</body>
   37.70 +</html>
    38.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.2 +++ b/core-xfce/rootfs/usr/share/doc/slitaz/index.en.html	Sun Dec 05 17:40:41 2010 +0100
    38.3 @@ -0,0 +1,176 @@
    38.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    38.5 +	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    38.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    38.7 +<head>
    38.8 +	<title>SliTaz - System doc</title>
    38.9 +	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
   38.10 +	<meta name="description" content="slitaz doc system releases notes information cooking" />
   38.11 +	<meta name="expires" content="never" />
   38.12 +	<meta name="modified" content="2009-12-29 12:10:00" />
   38.13 +	<meta name="publisher" content="www.slitaz.org" />
   38.14 +	<meta name="author" content="Christophe Lincoln"/>
   38.15 +	<link rel="shortcut icon" href="favicon.ico" />
   38.16 +	<link rel="stylesheet" type="text/css" href="book.css" />
   38.17 +</head>
   38.18 +<body bgcolor="#ffffff">
   38.19 +
   38.20 +<!-- Header and quick navigation -->
   38.21 +<div id="header">
   38.22 +	<a name="top"></a>
   38.23 +	<h1><font color="#3E1220">SliTaz - System doc</font></h1>
   38.24 +</div>
   38.25 +
   38.26 +<div id="quicknav">
   38.27 +	SliTaz:
   38.28 +	<a href="http://www.slitaz.org/">Website</a>
   38.29 +	<a href="http://forum.slitaz.org/">Forum</a>
   38.30 +	<a href="http://wiki.slitaz.org/">Wiki</a>
   38.31 +	<a href="http://labs.slitaz.org/">Labs</a>
   38.32 +</div>
   38.33 +
   38.34 +<!-- Content. -->
   38.35 +<div id="content">
   38.36 +
   38.37 +<h2><font color="#DF8F06">Documentation (en)</font></h2>
   38.38 +
   38.39 +<p>
   38.40 +The Cooking version doesn't provide any Release Notes, major changes are announced
   38.41 +on the web site and the <a href="http://labs.slitaz.org/">Labs</a> provide
   38.42 +fresh news about the project's activity. Like the stable version, you will 
   38.43 +find <a href="http://www.slitaz.org/en/doc/">documentation</a> on the web 
   38.44 +site and support on the community <a href="http://forum.slitaz.org/">forum</a>.
   38.45 +</p>
   38.46 +
   38.47 +<!--
   38.48 +<p>
   38.49 +SliTaz GNU/Linux stable release is published with the project tools, 
   38.50 +manuals and Release Notes installed on the system. Manuals and this page
   38.51 +are accessible through the Openbox menu. Please check the 
   38.52 +<a href="http://www.slitaz.org/en/">project page</a> for general 
   38.53 +information on SliTaz. To use and configure the system you can read the 
   38.54 +<a href="http://www.slitaz.org/en/doc/handbook/">Handbook</a>.
   38.55 +Community documentation can be found on the
   38.56 +<a href="http://wiki.slitaz.org/">SliTaz Wiki</a> and support on the SliTaz
   38.57 +community <a href="http://forum.slitaz.org/#idx2">Forum</a>. 
   38.58 +</p>
   38.59 +-->
   38.60 +
   38.61 +<h2><font color="#DF8F06">Getting started</font></h2>
   38.62 +
   38.63 +<a name="network"></a>
   38.64 +<h3>Network connections</h3>
   38.65 +<p>
   38.66 +Click on the "Network Status Monitor" at the bottom right of the screen, 
   38.67 +"Configure" and then the network manager (netbox) will come up. You can 
   38.68 +go to the "DHCP" tab and click "Start", and Slitaz will send a DHCP request 
   38.69 +to the local router. You may also setup a static IP, PPPoE, PPP, VPN and 
   38.70 +more using their respective tabs. To configure a wireless connection you 
   38.71 +can use SliTaz wifibox by clicking "Wireless Manager" in the Network Manager 
   38.72 +or by using the "System Tools" menu entry -> "Wireless networks connections".
   38.73 +</p>
   38.74 +<p>
   38.75 +More detailed information can be found in the Handbook: 
   38.76 +<a href="http://www.slitaz.org/en/doc/handbook/network-config.html"
   38.77 +	>Network configuration</a>
   38.78 +</p>
   38.79 +
   38.80 +<a name="apps"></a>
   38.81 +<h3>Applications</h3>
   38.82 +<p>
   38.83 +To have a list of all graphical applications you can use the SliTaz menu button 
   38.84 +at the bottom left of the screen. To have a list of command line tools, you
   38.85 +can open a terminal and double press on the tabulation button. And to have
   38.86 +a list of all installed packages you can use the package manager user interface
   38.87 +using the panel icon or from the "System Tools" menu. To install any new packages
   38.88 +you must have a network connection, the DVD of packages or an USB storage device 
   38.89 +with downloaded packages from another machine. Naturally any package management
   38.90 +can also be done from the command line and <code>tazpkg</code>.
   38.91 +</p>
   38.92 +
   38.93 +<a name="office"></a>
   38.94 +<h3>Office suite</h3>
   38.95 +<p>
   38.96 +The SliTaz packages database provides some lightweight office applications.
   38.97 +All of these packages are easily installable in a few clicks through the packages
   38.98 +manager. SliTaz also provides a simple way to install the famous and powerful
   38.99 +OpenOffice suite: just search OpenOffice in the packages manager, double click
  38.100 +on "get-OpenOffice3" and install the script with the <code>Auto exec</code> option
  38.101 +enabled. 
  38.102 +</p>
  38.103 +<p>
  38.104 +To have a lightweight office suite; use: Abiword as Word processor, Gnumeric as 
  38.105 +Spreadsheet and Homebank for Bank Accounting.
  38.106 +</p>
  38.107 +
  38.108 +<a name="multimedia"></a>
  38.109 +<h3>Multimedia</h3>
  38.110 +<p>
  38.111 +Most SliTaz flavors include a wide range of sound card drivers, a volume
  38.112 +mixer and a light audio player to easily listen to any MP3 or OGG files. The Sound
  38.113 +card is autodetected at boot time and audio support works out-of-the-box
  38.114 +on many systems. If you manually add a new user and can't listen to audio, please
  38.115 +check that the user belongs to the <code>audio</code> group. For any other trouble please
  38.116 +look into the full documentation and use the forum for more help.
  38.117 +</p>
  38.118 +<p>
  38.119 +Videos can be watched by installing one single package or using a dedicated
  38.120 +LiveCD or LiveUSB system. The SliTaz team have packaged some of the best video players 
  38.121 +available under GNU/Linux: <code>mplayer</code>, <code>xine-ui</code> and <code>vlc</code>
  38.122 +</p>
  38.123 +
  38.124 +<a name="info"></a>
  38.125 +<h3>System information</h3>
  38.126 +<p>
  38.127 +You can get information on your system by clicking on "System information"
  38.128 +in the System Tools menu, then "Summary". Clicking on the other 
  38.129 +options on the side brings you more information, and using the benchmarks
  38.130 +gives you an idea on how fast your computer is. To have a list and control
  38.131 +of all your current processes you can use the "Task Manager".
  38.132 +</p>
  38.133 +
  38.134 +<a name="root"></a>
  38.135 +<h3>Becoming Root</h3>
  38.136 +<p>
  38.137 +By default, Slitaz doesn't have its desktop running as root administrator:
  38.138 +it asks for a root password (default <code>root</code>) for any dangerous work.
  38.139 +Therefore, it is safer and more secure. To become root in an xterm, simply 
  38.140 +type <code>su</code>, and enter the root password.
  38.141 +</p>
  38.142 +
  38.143 +<a name="install"></a>
  38.144 +<h3>Installation</h3>
  38.145 +<p>
  38.146 +SliTaz can be installed to a hard disk or on an USB mass storage device using the
  38.147 +"SliTaz Installer" from the "System Tools" menu. The installer makes a full HD install.
  38.148 +SliTaz won't work in memory (RAM) anymore like in Live or Frugal mode and 
  38.149 +everything is persistent.
  38.150 +</p>
  38.151 +<p>
  38.152 +To generate a LiveUSB system you can use "Tazusb LiveUSB Tool" from the "System Tools"
  38.153 +menu or <code>tazusb</code> from the command line. More information can be found in the SliTaz
  38.154 +Handbook: <a href="http://www.slitaz.org/en/doc/handbook/liveusb.html">LiveUSB media</a>
  38.155 +</p>
  38.156 +
  38.157 +<!-- End of content -->
  38.158 +</div>
  38.159 +
  38.160 +<!-- Footer. -->
  38.161 +<div id="footer">
  38.162 +	<a href="#top">Top of the page</a> - Languages:
  38.163 +	<a href="index.de.html">de</a> |
  38.164 +	<a href="index.en.html">en</a> |
  38.165 +	<a href="index.fr.html">fr</a> |
  38.166 +	<a href="index.hu.html">hu</a> |
  38.167 +	<a href="index.pt.html">pt</a>
  38.168 +</div>
  38.169 +
  38.170 +<div id="copy">
  38.171 +	Copyright &copy; 2010 <a href="http://www.slitaz.org/">SliTaz</a> -
  38.172 +	<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
  38.173 +	Documentation uder
  38.174 +	<a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
  38.175 +	and valid <a href="http://validator.w3.org/">xHTML 1.0</a>.
  38.176 +</div>
  38.177 +
  38.178 +</body>
  38.179 +</html>
    39.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.2 +++ b/core-xfce/rootfs/usr/share/doc/slitaz/index.fr.html	Sun Dec 05 17:40:41 2010 +0100
    39.3 @@ -0,0 +1,78 @@
    39.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    39.5 +	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    39.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    39.7 +<head>
    39.8 +	<title>SliTaz - System doc (fr)</title>
    39.9 +	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
   39.10 +	<meta name="description" content="slitaz doc system releases notes information cooking" />
   39.11 +	<meta name="expires" content="never" />
   39.12 +	<meta name="modified" content="2010-12-30 14:30:00" />
   39.13 +	<meta name="publisher" content="www.slitaz.org" />
   39.14 +	<meta name="author" content="Christophe Lincoln"/>
   39.15 +	<link rel="shortcut icon" href="favicon.ico" />
   39.16 +	<link rel="stylesheet" type="text/css" href="book.css" />
   39.17 +</head>
   39.18 +<body bgcolor="#ffffff">
   39.19 +
   39.20 +<!-- Header and quick navigation -->
   39.21 +<div id="header">
   39.22 +<h1><font color="#3E1220">SliTaz - Doc du système</font></h1>
   39.23 +</div>
   39.24 +
   39.25 +<div id="quicknav">
   39.26 +	SliTaz:
   39.27 +	<a href="http://www.slitaz.org/">Website</a>
   39.28 +	<a href="http://forum.slitaz.org/">Forum</a>
   39.29 +	<a href="http://wiki.slitaz.org/">Wiki</a>
   39.30 +	<a href="http://labs.slitaz.org/">Labs</a>
   39.31 +</div>
   39.32 +
   39.33 +<!-- Content. -->
   39.34 +<div id="content">
   39.35 +
   39.36 +<h2><font color="#DF8F06">Documentation (fr)</font></h2>
   39.37 +
   39.38 +<p>
   39.39 +La version en cuisson ou <em>Cooking</em> ne fourni pas de notes de
   39.40 +publication, les chagements sont annonçés sur le site web et 
   39.41 +<a href="http://labs.slitaz.org/">les laboratoires</a> proposent des
   39.42 +nouvelles fraîches. Comme pour la version stable, vous pouvez vous 
   39.43 +référer à la documentation du site et trouverez de l'aide sur 
   39.44 +<a href="http://forum.slitaz.org/">le forum</a> du projet.
   39.45 +</p>
   39.46 +
   39.47 +<!-- <p>
   39.48 +La version stable de SliTaz GNU/linux est distribuée avec les manuels 
   39.49 +des outils de la distribution et les notes de publication. Tous les manuels
   39.50 +ainsi que cette page sont directement accessibles depuis le menu 
   39.51 +documention du gestionnaire de fenêtres Openbox présent sur le LiveCD.
   39.52 +Sur le Web, vous trouverez une documentation complète via le livre de main ou 
   39.53 +<a href="http://www.slitaz.org/fr/doc/handbook/">Handbook</a> de SliTaz et la
   39.54 +documentation communautaire sur le <a href="http://wiki.slitaz.org/">Wiki</a>.
   39.55 +Pour de l'aide vous trouverez un support technique gratuit via la liste
   39.56 +de discussion ou <a href="http://forum.slitaz.org/">le forum</a> communautaire.
   39.57 +</p> -->
   39.58 +
   39.59 +<!-- End of content -->
   39.60 +</div>
   39.61 +
   39.62 +<!-- Footer. -->
   39.63 +<div id="footer">
   39.64 +	<a href="#top">Top of the page</a> - Languages:
   39.65 +	<a href="index.de.html">de</a> |
   39.66 +	<a href="index.en.html">en</a> |
   39.67 +	<a href="index.fr.html">fr</a> |
   39.68 +	<a href="index.hu.html">hu</a> |
   39.69 +	<a href="index.pt.html">pt</a>
   39.70 +</div>
   39.71 +
   39.72 +<div id="copy">
   39.73 +	Copyright &copy; 2010 <a href="http://www.slitaz.org/">SliTaz</a> -
   39.74 +	<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
   39.75 +	Documentation uder
   39.76 +	<a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
   39.77 +	and valid <a href="http://validator.w3.org/">xHTML 1.0</a>.
   39.78 +</div>
   39.79 +
   39.80 +</body>
   39.81 +</html>
    40.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.2 +++ b/core-xfce/rootfs/usr/share/doc/slitaz/index.hu.html	Sun Dec 05 17:40:41 2010 +0100
    40.3 @@ -0,0 +1,85 @@
    40.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    40.5 +	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    40.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    40.7 +<head>
    40.8 +  <title>SliTaz - System doc (hu)</title>
    40.9 +  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
   40.10 +  <meta name="description" content="slitaz doc system releases notes information cooking">
   40.11 +  <meta name="expires" content="never">
   40.12 +  <meta name="modified" content="2009-04-16 10:30:00">
   40.13 +  <meta name="publisher" content="www.slitaz.org">
   40.14 +  <meta name="author" content="Christophe Lincoln">
   40.15 +  <link rel="shortcut icon" href="favicon.ico">
   40.16 +  <link rel="stylesheet" type="text/css" href="book.css">
   40.17 +</head>
   40.18 +<body bgcolor="#ffffff">
   40.19 +<!-- Header and quick navigation -->
   40.20 +<div id="header">
   40.21 +<h1><font color="#3e1220">SliTaz - System doc</font></h1>
   40.22 +</div>
   40.23 +
   40.24 +<div id="quicknav">
   40.25 +	SliTaz:
   40.26 +	<a href="http://www.slitaz.org/">Website</a>
   40.27 +	<a href="http://forum.slitaz.org/">Forum</a>
   40.28 +	<a href="http://wiki.slitaz.org/">Wiki</a>
   40.29 +	<a href="http://labs.slitaz.org/">Labs</a>
   40.30 +</div>
   40.31 +
   40.32 +<!-- Content. -->
   40.33 +<div id="content">
   40.34 +
   40.35 +<h2><font color="#df8f06">Documentation (hu)</font></h2>
   40.36 +
   40.37 +<h3><font color="#6c0023">Megjegyz&eacute;s a kiad&aacute;shoz<br>
   40.38 +</font></h3>
   40.39 +<p>A SliTaz GNU/Linux stabil kiad&aacute;sa a rendszerre
   40.40 +telep&iacute;tett projekt-eszk&ouml;z&ouml;kkel,
   40.41 +le&iacute;r&aacute;sokkal &eacute;s Kiad&aacute;si
   40.42 +t&aacute;j&eacute;koztat&oacute;val jelent meg. A
   40.43 +le&iacute;r&aacute;sok &eacute;s ez az oldal az Openbox men&uuml;n
   40.44 +kereszt&uuml;l &eacute;rhet&#337;k el. A Slitazzal kapcsolatos
   40.45 +&aacute;ltal&aacute;nos inform&aacute;ci&oacute;k&eacute;rt
   40.46 +k&eacute;rj&uuml;k l&aacute;togassa meg a <a
   40.47 + href="http://www.slitaz.org/">projekt oldalt</a> . A rendszer
   40.48 +be&aacute;ll&iacute;t&aacute;s&aacute;hoz &eacute;s
   40.49 +haszn&aacute;lat&aacute;hoz olvassa el a&nbsp; <a
   40.50 + href="http://www.slitaz.org/hu/doc/handbook/">K&eacute;zik&ouml;nyvet</a>.
   40.51 +A k&ouml;z&ouml;ss&eacute;gr&#337;l a
   40.52 +<a href="http://wiki.slitaz.org/">SliTaz Wiki</a>&nbsp; oldalon
   40.53 +tal&aacute;l dokomentumokat. T&aacute;mogat&aacute;st a Slitaz
   40.54 +k&ouml;z&ouml;ss&eacute;gi <a href="http://forum.slitaz.org/#idx2">F&oacute;rumon</a>
   40.55 +kereszt&uuml;l kaphat. </p>
   40.56 +<p>A Cooking verzi&oacute;hoz nincs t&aacute;j&eacute;koztat&oacute;, a
   40.57 +v&aacute;ltoztat&aacute;sokat k&ouml;zz&eacute;tessz&uuml;k a honlapon,
   40.58 +&eacute;s a <a href="http://labs.slitaz.org/">Labs</a>
   40.59 +szolg&aacute;ltat &uacute;j inform&aacute;ci&oacute;kat a projektbeli
   40.60 +tev&eacute;kenys&eacute;gekr&#337;l. Csak&uacute;gy, mint a stabil
   40.61 +verzi&oacute;hoz, ehhez is tal&aacute;lhat&oacute;
   40.62 +dokument&aacute;ci&oacute; &eacute;s t&aacute;mogat&aacute;s a
   40.63 +k&ouml;z&ouml;ss&eacute;gi f&oacute;rumban.
   40.64 +</p>
   40.65 +
   40.66 +<!-- End of content -->
   40.67 +</div>
   40.68 +
   40.69 +<!-- Footer. -->
   40.70 +<div id="footer">
   40.71 +	<a href="#top">Top of the page</a> - Languages:
   40.72 +	<a href="index.de.html">de</a> |
   40.73 +	<a href="index.en.html">en</a> |
   40.74 +	<a href="index.fr.html">fr</a> |
   40.75 +	<a href="index.hu.html">hu</a> |
   40.76 +	<a href="index.pt.html">pt</a>
   40.77 +</div>
   40.78 +
   40.79 +<div id="copy">
   40.80 +	Copyright &copy; 2010 <a href="http://www.slitaz.org/">SliTaz</a> -
   40.81 +	<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
   40.82 +	Documentation uder
   40.83 +	<a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
   40.84 +	and valid <a href="http://validator.w3.org/">xHTML 1.0</a>.
   40.85 +</div>
   40.86 +
   40.87 +</body>
   40.88 +</html>
    41.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.2 +++ b/core-xfce/rootfs/usr/share/doc/slitaz/index.pt.html	Sun Dec 05 17:40:41 2010 +0100
    41.3 @@ -0,0 +1,66 @@
    41.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    41.5 +	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    41.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt">
    41.7 +<head>
    41.8 +	<title>SliTaz - Documentação do Sistema</title>
    41.9 +	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
   41.10 +	<meta name="description" content="slitaz doc system releases notes information cooking" />
   41.11 +	<meta name="expires" content="never" />
   41.12 +	<meta name="modified" content="2009-04-16 10:30:00" />
   41.13 +	<meta name="publisher" content="www.slitaz.org" />
   41.14 +	<meta name="author" content="Christophe Lincoln"/>
   41.15 +	<link rel="shortcut icon" href="favicon.ico" />
   41.16 +	<link rel="stylesheet" type="text/css" href="book.css" />
   41.17 +</head>
   41.18 +<body bgcolor="#ffffff">
   41.19 +
   41.20 +<!-- Header and quick navigation -->
   41.21 +<div id="header">
   41.22 +<h1><font color="#3E1220">SliTaz - Documentação do Sistema</font></h1>
   41.23 +</div>
   41.24 +
   41.25 +<div id="quicknav">
   41.26 +	SliTaz:
   41.27 +	<a href="http://www.slitaz.org/">Website</a>
   41.28 +	<a href="http://forum.slitaz.org/">Forum</a>
   41.29 +	<a href="http://wiki.slitaz.org/">Wiki</a>
   41.30 +	<a href="http://labs.slitaz.org/">Labs</a>
   41.31 +</div>
   41.32 +
   41.33 +<!-- Content. -->
   41.34 +<div id="content">
   41.35 +
   41.36 +<h2><font color="#DF8F06">Documentação (pt)</font></h2>
   41.37 +
   41.38 +<p>
   41.39 +A versão de testes (cooking) do SliTaz não fornece notas de lançamento, 
   41.40 +qualquer mudança para esta versão é anunciada no website e o 
   41.41 +<a href="http://labs.slitaz.org/">SliTaz Labs</a> traz as últimas notícias 
   41.42 +e atividades do projeto. Assim como na versão estável, você irá obter 
   41.43 +informações sobre a versão de testes no website e suporte no 
   41.44 +<a href="http://forum.slitaz.org/">fórum</a> do projeto.
   41.45 +</p>
   41.46 +
   41.47 +<!-- End of content -->
   41.48 +</div>
   41.49 +
   41.50 +<!-- Footer. -->
   41.51 +<div id="footer">
   41.52 +	<a href="#top">Top of the page</a> - Languages:
   41.53 +	<a href="index.de.html">de</a> |
   41.54 +	<a href="index.en.html">en</a> |
   41.55 +	<a href="index.fr.html">fr</a> |
   41.56 +	<a href="index.hu.html">hu</a> |
   41.57 +	<a href="index.pt.html">pt</a>
   41.58 +</div>
   41.59 +
   41.60 +<div id="copy">
   41.61 +	Copyright &copy; 2010 <a href="http://www.slitaz.org/">SliTaz</a> -
   41.62 +	<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
   41.63 +	Documentation uder
   41.64 +	<a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
   41.65 +	and valid <a href="http://validator.w3.org/">xHTML 1.0</a>.
   41.66 +</div>
   41.67 +
   41.68 +</body>
   41.69 +</html>
    42.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.2 +++ b/core-xfce/rootfs/usr/share/doc/slitaz/template.html	Sun Dec 05 17:40:41 2010 +0100
    42.3 @@ -0,0 +1,62 @@
    42.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    42.5 +	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    42.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    42.7 +<head>
    42.8 +	<title>SliTaz - System doc</title>
    42.9 +	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
   42.10 +	<meta name="description" content="slitaz doc system releases notes information cooking" />
   42.11 +	<meta name="expires" content="never" />
   42.12 +	<meta name="modified" content="2010-01-04 22:40:00" />
   42.13 +	<meta name="publisher" content="www.slitaz.org" />
   42.14 +	<meta name="author" content="Christophe Lincoln"/>
   42.15 +	<link rel="shortcut icon" href="favicon.ico" />
   42.16 +	<link rel="stylesheet" type="text/css" href="book.css" />
   42.17 +</head>
   42.18 +<body bgcolor="#ffffff">
   42.19 +
   42.20 +<!-- Header and quick navigation -->
   42.21 +<div id="header">
   42.22 +<h1><font color="#3E1220">SliTaz - System doc</font></h1>
   42.23 +</div>
   42.24 +
   42.25 +<div id="quicknav">
   42.26 +	SliTaz:
   42.27 +	<a href="http://www.slitaz.org/">Website</a>
   42.28 +	<a href="http://forum.slitaz.org/">Forum</a>
   42.29 +	<a href="http://wiki.slitaz.org/">Wiki</a>
   42.30 +	<a href="http://labs.slitaz.org/">Labs</a>
   42.31 +</div>
   42.32 +
   42.33 +<!-- Content. -->
   42.34 +<div id="content">
   42.35 +<div class="content-right"></div>
   42.36 +
   42.37 +<h2><font color="#DF8F06">Template</font></h2>
   42.38 +
   42.39 +<p>
   42.40 +CONTENT
   42.41 +</p>
   42.42 +
   42.43 +<!-- End of content -->
   42.44 +</div>
   42.45 +
   42.46 +<!-- Footer. -->
   42.47 +<div id="footer">
   42.48 +	<a href="#top">Top of the page</a> - Languages:
   42.49 +	<a href="index.de.html">de</a> |
   42.50 +	<a href="index.en.html">en</a> |
   42.51 +	<a href="index.fr.html">fr</a> |
   42.52 +	<a href="index.hu.html">hu</a> |
   42.53 +	<a href="index.pt.html">pt</a>
   42.54 +</div>
   42.55 +
   42.56 +<div id="copy">
   42.57 +	Copyright &copy; 2010 <a href="http://www.slitaz.org/">SliTaz</a> -
   42.58 +	<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
   42.59 +	Documentation uder
   42.60 +	<a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
   42.61 +	and valid <a href="http://validator.w3.org/">xHTML 1.0</a>.
   42.62 +</div>
   42.63 +
   42.64 +</body>
   42.65 +</html>
    43.1 Binary file core-xfce/rootfs/usr/share/images/slitaz-background.jpg has changed
    44.1 Binary file core-xfce/rootfs/usr/share/pixmaps/slitaz-menu.png has changed
    45.1 Binary file core-xfce/rootfs/usr/share/slim/themes/slitaz/background.png has changed
    46.1 Binary file core-xfce/rootfs/usr/share/slim/themes/slitaz/panel.png has changed
    47.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    47.2 +++ b/core-xfce/rootfs/usr/share/slim/themes/slitaz/slim.theme	Sun Dec 05 17:40:41 2010 +0100
    47.3 @@ -0,0 +1,37 @@
    47.4 +# SliTaz theme for SLiM
    47.5 +# 
    47.6 +
    47.7 +# Messages
    47.8 +msg_color               #000000
    47.9 +msg_font                Vera:size=18:bold:dpi=75
   47.10 +msg_x                   50%
   47.11 +msg_y                   35%
   47.12 +msg_shadow_color #FFFFFF
   47.13 +msg_shadow_xoffset 1
   47.14 +msg_shadow_yoffset 1
   47.15 +
   47.16 +# valid values: stretch, tile
   47.17 +background_style        tile
   47.18 +background_color        #1e0a0c
   47.19 +
   47.20 +# Input controls
   47.21 +input_panel_x           50%
   47.22 +input_panel_y           50%
   47.23 +input_name_x            64
   47.24 +input_name_y            179
   47.25 +input_font          	Vera:size=11:dpi=75
   47.26 +input_fgcolor           #000000
   47.27 +
   47.28 +# Username / password request
   47.29 +username_font          	Vera:size=18:bold:dpi=75
   47.30 +username_color        	#eeede9
   47.31 +username_x              50%
   47.32 +username_y              140
   47.33 +password_x              50%
   47.34 +password_y              140
   47.35 +username_shadow_color   #000000
   47.36 +username_shadow_xoffset 1
   47.37 +username_shadow_yoffset 1
   47.38 +
   47.39 +username_msg            Username:
   47.40 +password_msg            Password:
    48.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    48.2 +++ b/core-xfce/rootfs/usr/share/webhome/index.html	Sun Dec 05 17:40:41 2010 +0100
    48.3 @@ -0,0 +1,68 @@
    48.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    48.5 +    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    48.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    48.7 +<head>
    48.8 +    <title>SliTaz - Web Homepage</title>
    48.9 +    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
   48.10 +    <meta name="author" content="Christophe Lincoln"/>
   48.11 +    <link rel="shortcut icon" href="favicon.ico" />
   48.12 +    <link rel="stylesheet" type="text/css" href="style.css" />
   48.13 +</head>
   48.14 +<body>
   48.15 +
   48.16 +<!-- Header -->
   48.17 +<div id="header">
   48.18 +	<h1>Browse the Web</h1>
   48.19 +</div>
   48.20 +
   48.21 +<!-- Content -->
   48.22 +<div id="content">
   48.23 +
   48.24 +<div style="text-align: center; margin: 20px;">
   48.25 +<table>
   48.26 +	<!-- Search Wikipedia -->
   48.27 +	<tr>
   48.28 +		<th><strong>Wikipedia :</strong></th>
   48.29 +		<td>
   48.30 +			<form action="http://www.wikipedia.org/search-redirect.php" method="get">
   48.31 +				<input type="hidden" name="language" value="en" />
   48.32 +				<input type="text" name="search" size="30" />
   48.33 +				<input type="submit" name="go" value="Search" />
   48.34 +			</form>
   48.35 +		</td>
   48.36 +	</tr>
   48.37 +	<!-- Search Google -->
   48.38 +	<tr>
   48.39 +		<th><strong>Google :</strong></th>
   48.40 +		<td>
   48.41 +			<form method="get" action="http://www.google.com/search">
   48.42 +				<input type="text" name="q" size="30" maxlength="255" value="" />
   48.43 +				<input type="submit" value="Search" />
   48.44 +			</form>
   48.45 +		</td>
   48.46 +	</tr>
   48.47 +</table>
   48.48 +</div>
   48.49 +
   48.50 +<!-- Shortcuts -->
   48.51 +<div style="text-align: center; margin: 10px;">
   48.52 +	<strong>SliTaz :</strong>
   48.53 +	<a href="http://www.slitaz.org/">Website</a> | 
   48.54 +	<a href="http://doc.slitaz.org/">Documentation</a> |
   48.55 +	<a href="http://forum.slitaz.org/">Forum</a> |
   48.56 +	<a href="http://labs.slitaz.org/">Labs</a> |
   48.57 +	<a href="http://pkgs.slitaz.org/">Packages</a>
   48.58 +</div>
   48.59 +
   48.60 +<div style="text-align: center;">
   48.61 +<img
   48.62 +	src="pics/slitaz-tux.png" 
   48.63 +	title="SliTaz and Tux" alt="slitaz-tux"
   48.64 +	style="width: 90px; height: 98px;" />
   48.65 +</div>
   48.66 +
   48.67 +<!-- End of content -->
   48.68 +</div>
   48.69 +
   48.70 +</body>
   48.71 +</html>
    49.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    49.2 +++ b/core-xfce/rootfs/usr/share/webhome/netsurf.html	Sun Dec 05 17:40:41 2010 +0100
    49.3 @@ -0,0 +1,66 @@
    49.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    49.5 +    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    49.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    49.7 +<head>
    49.8 +    <title>SliTaz - Web Homepage</title>
    49.9 +    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
   49.10 +    <meta name="author" content="Christophe Lincoln"/>
   49.11 +    <link rel="shortcut icon" href="favicon.ico" />
   49.12 +    <link rel="stylesheet" type="text/css" href="netsurf.css" />
   49.13 +</head>
   49.14 +<body>
   49.15 +
   49.16 +<!-- Header -->
   49.17 +<div id="header">
   49.18 +<h1>Browse the Web</h1>
   49.19 +</div>
   49.20 +
   49.21 +<!-- Content -->
   49.22 +<div id="content">
   49.23 +
   49.24 +<div style="text-align: center; margin-top: 40px;">
   49.25 +<table>
   49.26 +	<!-- Search Wikipedia -->
   49.27 +	<tr>
   49.28 +		<th><strong>[ Wikipedia ]</strong></th>
   49.29 +		<td>
   49.30 +			<form action="http://www.wikipedia.org/search-redirect.php" method="get">
   49.31 +				<input type="hidden" name="language" value="en" />
   49.32 +				<input type="text" name="search" size="30" />
   49.33 +				<input type="submit" name="go" value="Search" />
   49.34 +			</form>
   49.35 +		</td>
   49.36 +	</tr>
   49.37 +	<!-- Search Google -->
   49.38 +	<tr>
   49.39 +		<th><strong>[ Google ]</strong></th>
   49.40 +		<td>
   49.41 +			<form method="get" action="http://www.google.com/search">
   49.42 +				<input type="text" name="q" size="30" maxlength="255" value="" />
   49.43 +				<input type="submit" value="Search" />
   49.44 +			</form>
   49.45 +		</td>
   49.46 +	</tr>
   49.47 +</table>
   49.48 +</div>
   49.49 +
   49.50 +<!-- Shortcuts -->
   49.51 +<div style="text-align: center; margin-top: 30px;">
   49.52 +	SliTaz :
   49.53 +	<a href="http://www.slitaz.org/">Website</a> |
   49.54 +	<a href="http://doc.slitaz.org/">Documentation</a> |
   49.55 +	<a href="http://forum.slitaz.org/">Forum</a> |
   49.56 +	<a href="http://pkgs.slitaz.org/">Packages</a> |
   49.57 +	<a href="http://labs.slitaz.org/">Labs</a>
   49.58 +</div>
   49.59 +<div style="text-align: center; margin-top: 20px;">
   49.60 +	NetSurf :
   49.61 +	<a href="http://www.netsurf-browser.org/">Website</a> |
   49.62 +	<a href="http://www.netsurf-browser.org/documentation/">Documentation</a>
   49.63 +</div>
   49.64 +
   49.65 +<!-- End of content with round corner -->
   49.66 +</div>
   49.67 +
   49.68 +</body>
   49.69 +</html>
    50.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    50.2 +++ b/core-xfce/rootfs/usr/share/webhome/style.css	Sun Dec 05 17:40:41 2010 +0100
    50.3 @@ -0,0 +1,113 @@
    50.4 +/*
    50.5 +	CSS style for SliTaz GNU/Linux local home page
    50.6 +	www.slitaz.org - (c) 2008 SliTaz Community
    50.7 +*/
    50.8 +
    50.9 +body {
   50.10 +	background: white;
   50.11 +	color: black;
   50.12 +	font: 13px sans-serif, vernada, arial;
   50.13 +	margin: 0 0 0 0;
   50.14 +	padding-bottom: 100%;
   50.15 +}
   50.16 +
   50.17 +#header {
   50.18 +	background: #f0ba08 url(pics/header.png) repeat-x top;
   50.19 +	color: black;
   50.20 +	width: 100%;
   50.21 +	height: 50px ;
   50.22 +	border-top: 1px solid black;
   50.23 +	border-bottom: 1px solid black;
   50.24 +	/* margin-bottom: 30px; */
   50.25 +}
   50.26 +
   50.27 +#header h1 {
   50.28 +	padding: 10px;
   50.29 +	text-align: center;
   50.30 +}
   50.31 +
   50.32 +/* Page content */
   50.33 +
   50.34 +
   50.35 +#content {
   50.36 +	height: auto;
   50.37 +	margin: 10px 100px 0px 100px;
   50.38 +	padding: 0px 72px 0px 72px;
   50.39 +}
   50.40 +
   50.41 +#content li {
   50.42 +	line-height: 1.5em;
   50.43 +	text-align: left;
   50.44 +}
   50.45 +
   50.46 +/* Footer */
   50.47 +
   50.48 +#bottom {
   50.49 +	float: none;
   50.50 +	background: inherit;
   50.51 +	color: black;
   50.52 +	width: auto;
   50.53 +	clear: both;
   50.54 +	padding: 0;
   50.55 +	margin: 0;
   50.56 +	text-align: center;
   50.57 +	vertical-align: middle;
   50.58 +}
   50.59 +
   50.60 +/* CSS class. */
   50.61 +
   50.62 +
   50.63 +/* HTML styles */
   50.64 +
   50.65 +h1 {
   50.66 +	margin: 0px 0px 0px 16px;
   50.67 +}
   50.68 +
   50.69 +h2 {
   50.70 +    color: #DF8F06;
   50.71 +    border-left: 10px solid #F3F3F3;
   50.72 +    padding: 4px 0px 4px 4px;
   50.73 +    margin: 0;
   50.74 +}
   50.75 +
   50.76 +h3 {
   50.77 +	font-weight: bold;
   50.78 +	color: #6c0023;
   50.79 +	background: inherit;
   50.80 +}
   50.81 +
   50.82 +a {
   50.83 +	text-decoration: underline;
   50.84 +	color: #0F314E;
   50.85 +	background: inherit;
   50.86 +}
   50.87 +
   50.88 +a:hover {
   50.89 +	text-decoration: none;
   50.90 +	color: blue;
   50.91 +	background: inherit;
   50.92 +}
   50.93 +
   50.94 +img {
   50.95 +	border: 0pt none;
   50.96 +}
   50.97 +
   50.98 +/* Table */
   50.99 +
  50.100 +table {
  50.101 +	width: variable;
  50.102 +	margin-left: auto;
  50.103 +	margin-right: auto;
  50.104 +}
  50.105 +
  50.106 +td {
  50.107 +	width: variable;
  50.108 +	padding: 6px;
  50.109 +}
  50.110 +
  50.111 +th {
  50.112 +	width: variable;
  50.113 +
  50.114 +
  50.115 +	text-align: right;
  50.116 +}